From d27922e52fc2372c1a5bf3abbfc762007b488c5a Mon Sep 17 00:00:00 2001 From: "craig.p.drummond" Date: Fri, 28 Jun 2013 18:24:49 +0000 Subject: [PATCH] Simplify streams page --- CMakeLists.txt | 7 +- ChangeLog | 64 +- cantata.qrc | 10 +- gui/filesettings.ui | 2 +- gui/initialsettingswizard.ui | 2 +- gui/mainwindow.cpp | 16 +- icons/streams-digitallyimported.png | Bin 0 -> 1204 bytes .../heart.svg => icons/streams-favourites.svg | 0 .../cube.svg => icons/streams-icecast.svg | 0 icons/streams-jazzradio.png | Bin 0 -> 1630 bytes icons/streams-shoutcast.png | Bin 0 -> 6820 bytes icons/streams-skyfm.png | Bin 0 -> 1981 bytes icons/streams-somafm.png | Bin 0 -> 1781 bytes icons/streams-tunein.png | Bin 0 -> 1479 bytes models/streamsmodel.cpp | 1507 +++++++---------- models/streamsmodel.h | 164 +- models/streamsproxymodel.cpp | 83 +- models/streamsproxymodel.h | 5 +- streams/icons/CMakeLists.txt | 7 - streams/icons/bassclef.svg | 15 - streams/icons/dice.svg | 6 - streams/icons/flag_ad.png | Bin 2130 -> 0 bytes streams/icons/flag_ae.png | Bin 152 -> 0 bytes streams/icons/flag_af.png | Bin 1985 -> 0 bytes streams/icons/flag_ag.png | Bin 1453 -> 0 bytes streams/icons/flag_ai.png | Bin 1897 -> 0 bytes streams/icons/flag_al.png | Bin 1486 -> 0 bytes streams/icons/flag_am.png | Bin 118 -> 0 bytes streams/icons/flag_ao.png | Bin 947 -> 0 bytes streams/icons/flag_aq.png | Bin 685 -> 0 bytes streams/icons/flag_ar.png | Bin 1269 -> 0 bytes streams/icons/flag_as.png | Bin 2165 -> 0 bytes streams/icons/flag_at.png | Bin 121 -> 0 bytes streams/icons/flag_au.png | Bin 1714 -> 0 bytes streams/icons/flag_aw.png | Bin 549 -> 0 bytes streams/icons/flag_ax.png | Bin 200 -> 0 bytes streams/icons/flag_az.png | Bin 1001 -> 0 bytes streams/icons/flag_ba.png | Bin 1243 -> 0 bytes streams/icons/flag_bb.png | Bin 842 -> 0 bytes streams/icons/flag_bd.png | Bin 560 -> 0 bytes streams/icons/flag_be.png | Bin 148 -> 0 bytes streams/icons/flag_bf.png | Bin 743 -> 0 bytes streams/icons/flag_bg.png | Bin 115 -> 0 bytes streams/icons/flag_bh.png | Bin 262 -> 0 bytes streams/icons/flag_bi.png | Bin 1486 -> 0 bytes streams/icons/flag_bj.png | Bin 148 -> 0 bytes streams/icons/flag_bl.png | Bin 130 -> 0 bytes streams/icons/flag_bm.png | Bin 2501 -> 0 bytes streams/icons/flag_bn.png | Bin 3137 -> 0 bytes streams/icons/flag_bo.png | Bin 151 -> 0 bytes streams/icons/flag_bq.png | Bin 115 -> 0 bytes streams/icons/flag_br.png | Bin 1670 -> 0 bytes streams/icons/flag_bs.png | Bin 803 -> 0 bytes streams/icons/flag_bt.png | Bin 3111 -> 0 bytes streams/icons/flag_bv.png | Bin 247 -> 0 bytes streams/icons/flag_bw.png | Bin 128 -> 0 bytes streams/icons/flag_by.png | Bin 1235 -> 0 bytes streams/icons/flag_bz.png | Bin 2034 -> 0 bytes streams/icons/flag_ca.png | Bin 713 -> 0 bytes streams/icons/flag_cc.png | Bin 1892 -> 0 bytes streams/icons/flag_cd.png | Bin 849 -> 0 bytes streams/icons/flag_cf.png | Bin 406 -> 0 bytes streams/icons/flag_cg.png | Bin 221 -> 0 bytes streams/icons/flag_ch.png | Bin 138 -> 0 bytes streams/icons/flag_ci.png | Bin 145 -> 0 bytes streams/icons/flag_ck.png | Bin 1865 -> 0 bytes streams/icons/flag_cl.png | Bin 390 -> 0 bytes streams/icons/flag_cm.png | Bin 505 -> 0 bytes streams/icons/flag_cn.png | Bin 805 -> 0 bytes streams/icons/flag_co.png | Bin 119 -> 0 bytes streams/icons/flag_cr.png | Bin 147 -> 0 bytes streams/icons/flag_cu.png | Bin 942 -> 0 bytes streams/icons/flag_cv.png | Bin 1057 -> 0 bytes streams/icons/flag_cw.png | Bin 377 -> 0 bytes streams/icons/flag_cx.png | Bin 1590 -> 0 bytes streams/icons/flag_cy.png | Bin 1346 -> 0 bytes streams/icons/flag_cz.png | Bin 367 -> 0 bytes streams/icons/flag_de.png | Bin 117 -> 0 bytes streams/icons/flag_dj.png | Bin 545 -> 0 bytes streams/icons/flag_dk.png | Bin 172 -> 0 bytes streams/icons/flag_dm.png | Bin 1379 -> 0 bytes streams/icons/flag_do.png | Bin 632 -> 0 bytes streams/icons/flag_dz.png | Bin 1047 -> 0 bytes streams/icons/flag_ec.png | Bin 2620 -> 0 bytes streams/icons/flag_ee.png | Bin 134 -> 0 bytes streams/icons/flag_eg.png | Bin 788 -> 0 bytes streams/icons/flag_eh.png | Bin 913 -> 0 bytes streams/icons/flag_eo.png | Bin 410 -> 0 bytes streams/icons/flag_er.png | Bin 1597 -> 0 bytes streams/icons/flag_es.png | Bin 2141 -> 0 bytes streams/icons/flag_et.png | Bin 996 -> 0 bytes streams/icons/flag_fi.png | Bin 193 -> 0 bytes streams/icons/flag_fj.png | Bin 2320 -> 0 bytes streams/icons/flag_fk.png | Bin 3307 -> 0 bytes streams/icons/flag_fm.png | Bin 666 -> 0 bytes streams/icons/flag_fo.png | Bin 235 -> 0 bytes streams/icons/flag_fr.png | Bin 130 -> 0 bytes streams/icons/flag_ga.png | Bin 118 -> 0 bytes streams/icons/flag_gb.png | Bin 618 -> 0 bytes streams/icons/flag_gd.png | Bin 1329 -> 0 bytes streams/icons/flag_ge.png | Bin 593 -> 0 bytes streams/icons/flag_gf.png | Bin 130 -> 0 bytes streams/icons/flag_gg.png | Bin 351 -> 0 bytes streams/icons/flag_gh.png | Bin 611 -> 0 bytes streams/icons/flag_gi.png | Bin 1733 -> 0 bytes streams/icons/flag_gl.png | Bin 605 -> 0 bytes streams/icons/flag_gm.png | Bin 169 -> 0 bytes streams/icons/flag_gn.png | Bin 148 -> 0 bytes streams/icons/flag_gp.png | Bin 130 -> 0 bytes streams/icons/flag_gq.png | Bin 759 -> 0 bytes streams/icons/flag_gr.png | Bin 262 -> 0 bytes streams/icons/flag_gs.png | Bin 3562 -> 0 bytes streams/icons/flag_gt.png | Bin 1695 -> 0 bytes streams/icons/flag_gu.png | Bin 1837 -> 0 bytes streams/icons/flag_gw.png | Bin 548 -> 0 bytes streams/icons/flag_gy.png | Bin 1588 -> 0 bytes streams/icons/flag_hk.png | Bin 979 -> 0 bytes streams/icons/flag_hm.png | Bin 1786 -> 0 bytes streams/icons/flag_hn.png | Bin 587 -> 0 bytes streams/icons/flag_hr.png | Bin 1283 -> 0 bytes streams/icons/flag_ht.png | Bin 133 -> 0 bytes streams/icons/flag_hu.png | Bin 132 -> 0 bytes streams/icons/flag_id.png | Bin 105 -> 0 bytes streams/icons/flag_ie.png | Bin 130 -> 0 bytes streams/icons/flag_il.png | Bin 772 -> 0 bytes streams/icons/flag_im.png | Bin 1481 -> 0 bytes streams/icons/flag_in.png | Bin 1562 -> 0 bytes streams/icons/flag_io.png | Bin 3921 -> 0 bytes streams/icons/flag_iq.png | Bin 967 -> 0 bytes streams/icons/flag_ir.png | Bin 1649 -> 0 bytes streams/icons/flag_is.png | Bin 196 -> 0 bytes streams/icons/flag_it.png | Bin 130 -> 0 bytes streams/icons/flag_je.png | Bin 1480 -> 0 bytes streams/icons/flag_jm.png | Bin 656 -> 0 bytes streams/icons/flag_jo.png | Bin 436 -> 0 bytes streams/icons/flag_jp.png | Bin 453 -> 0 bytes streams/icons/flag_ke.png | Bin 1433 -> 0 bytes streams/icons/flag_kg.png | Bin 1647 -> 0 bytes streams/icons/flag_kh.png | Bin 1181 -> 0 bytes streams/icons/flag_ki.png | Bin 2628 -> 0 bytes streams/icons/flag_km.png | Bin 1053 -> 0 bytes streams/icons/flag_kn.png | Bin 1606 -> 0 bytes streams/icons/flag_kp.png | Bin 737 -> 0 bytes streams/icons/flag_kr.png | Bin 2113 -> 0 bytes streams/icons/flag_kw.png | Bin 481 -> 0 bytes streams/icons/flag_ky.png | Bin 2863 -> 0 bytes streams/icons/flag_kz.png | Bin 2385 -> 0 bytes streams/icons/flag_la.png | Bin 409 -> 0 bytes streams/icons/flag_lb.png | Bin 987 -> 0 bytes streams/icons/flag_lc.png | Bin 1234 -> 0 bytes streams/icons/flag_li.png | Bin 1110 -> 0 bytes streams/icons/flag_lk.png | Bin 1339 -> 0 bytes streams/icons/flag_lr.png | Bin 491 -> 0 bytes streams/icons/flag_ls.png | Bin 1391 -> 0 bytes streams/icons/flag_lt.png | Bin 137 -> 0 bytes streams/icons/flag_lu.png | Bin 148 -> 0 bytes streams/icons/flag_lv.png | Bin 119 -> 0 bytes streams/icons/flag_ly.png | Bin 400 -> 0 bytes streams/icons/flag_ma.png | Bin 1100 -> 0 bytes streams/icons/flag_mc.png | Bin 105 -> 0 bytes streams/icons/flag_md.png | Bin 2185 -> 0 bytes streams/icons/flag_me.png | Bin 2509 -> 0 bytes streams/icons/flag_mf.png | Bin 1431 -> 0 bytes streams/icons/flag_mg.png | Bin 145 -> 0 bytes streams/icons/flag_mh.png | Bin 2279 -> 0 bytes streams/icons/flag_mk.png | Bin 1461 -> 0 bytes streams/icons/flag_ml.png | Bin 148 -> 0 bytes streams/icons/flag_mm.png | Bin 1331 -> 0 bytes streams/icons/flag_mn.png | Bin 642 -> 0 bytes streams/icons/flag_mo.png | Bin 1004 -> 0 bytes streams/icons/flag_mp.png | Bin 2859 -> 0 bytes streams/icons/flag_mq.png | Bin 130 -> 0 bytes streams/icons/flag_mr.png | Bin 741 -> 0 bytes streams/icons/flag_ms.png | Bin 2171 -> 0 bytes streams/icons/flag_mt.png | Bin 483 -> 0 bytes streams/icons/flag_mu.png | Bin 132 -> 0 bytes streams/icons/flag_mv.png | Bin 607 -> 0 bytes streams/icons/flag_mw.png | Bin 1020 -> 0 bytes streams/icons/flag_mx.png | Bin 1389 -> 0 bytes streams/icons/flag_my.png | Bin 737 -> 0 bytes streams/icons/flag_mz.png | Bin 1199 -> 0 bytes streams/icons/flag_na.png | Bin 1695 -> 0 bytes streams/icons/flag_nc.png | Bin 130 -> 0 bytes streams/icons/flag_ne.png | Bin 347 -> 0 bytes streams/icons/flag_nf.png | Bin 1415 -> 0 bytes streams/icons/flag_ng.png | Bin 121 -> 0 bytes streams/icons/flag_ni.png | Bin 1561 -> 0 bytes streams/icons/flag_nl.png | Bin 133 -> 0 bytes streams/icons/flag_no.png | Bin 254 -> 0 bytes streams/icons/flag_np.png | Bin 1341 -> 0 bytes streams/icons/flag_nr.png | Bin 533 -> 0 bytes streams/icons/flag_nu.png | Bin 2018 -> 0 bytes streams/icons/flag_nz.png | Bin 1835 -> 0 bytes streams/icons/flag_om.png | Bin 624 -> 0 bytes streams/icons/flag_pa.png | Bin 629 -> 0 bytes streams/icons/flag_pe.png | Bin 135 -> 0 bytes streams/icons/flag_pf.png | Bin 1374 -> 0 bytes streams/icons/flag_pg.png | Bin 1469 -> 0 bytes streams/icons/flag_ph.png | Bin 1461 -> 0 bytes streams/icons/flag_pk.png | Bin 643 -> 0 bytes streams/icons/flag_pl.png | Bin 105 -> 0 bytes streams/icons/flag_pm.png | Bin 130 -> 0 bytes streams/icons/flag_pn.png | Bin 2667 -> 0 bytes streams/icons/flag_pr.png | Bin 941 -> 0 bytes streams/icons/flag_ps.png | Bin 294 -> 0 bytes streams/icons/flag_pt.png | Bin 1782 -> 0 bytes streams/icons/flag_pw.png | Bin 526 -> 0 bytes streams/icons/flag_py.png | Bin 714 -> 0 bytes streams/icons/flag_qa.png | Bin 266 -> 0 bytes streams/icons/flag_re.png | Bin 130 -> 0 bytes streams/icons/flag_ro.png | Bin 148 -> 0 bytes streams/icons/flag_rs.png | Bin 1808 -> 0 bytes streams/icons/flag_ru.png | Bin 115 -> 0 bytes streams/icons/flag_rw.png | Bin 735 -> 0 bytes streams/icons/flag_sa.png | Bin 1458 -> 0 bytes streams/icons/flag_sb.png | Bin 985 -> 0 bytes streams/icons/flag_sc.png | Bin 1326 -> 0 bytes streams/icons/flag_sd.png | Bin 390 -> 0 bytes streams/icons/flag_se.png | Bin 254 -> 0 bytes streams/icons/flag_sg.png | Bin 635 -> 0 bytes streams/icons/flag_sh.png | Bin 2534 -> 0 bytes streams/icons/flag_si.png | Bin 675 -> 0 bytes streams/icons/flag_sj.png | Bin 247 -> 0 bytes streams/icons/flag_sk.png | Bin 891 -> 0 bytes streams/icons/flag_sl.png | Bin 148 -> 0 bytes streams/icons/flag_sm.png | Bin 1908 -> 0 bytes streams/icons/flag_sn.png | Bin 488 -> 0 bytes streams/icons/flag_so.png | Bin 465 -> 0 bytes streams/icons/flag_sr.png | Bin 465 -> 0 bytes streams/icons/flag_ss.png | Bin 1016 -> 0 bytes streams/icons/flag_st.png | Bin 904 -> 0 bytes streams/icons/flag_sv.png | Bin 2031 -> 0 bytes streams/icons/flag_sx.png | Bin 1437 -> 0 bytes streams/icons/flag_sy.png | Bin 454 -> 0 bytes streams/icons/flag_sz.png | Bin 1440 -> 0 bytes streams/icons/flag_tc.png | Bin 2201 -> 0 bytes streams/icons/flag_td.png | Bin 148 -> 0 bytes streams/icons/flag_tf.png | Bin 130 -> 0 bytes streams/icons/flag_tg.png | Bin 440 -> 0 bytes streams/icons/flag_th.png | Bin 142 -> 0 bytes streams/icons/flag_tj.png | Bin 690 -> 0 bytes streams/icons/flag_tk.png | Bin 1028 -> 0 bytes streams/icons/flag_tl.png | Bin 912 -> 0 bytes streams/icons/flag_tm.png | Bin 1998 -> 0 bytes streams/icons/flag_tn.png | Bin 824 -> 0 bytes streams/icons/flag_to.png | Bin 242 -> 0 bytes streams/icons/flag_tr.png | Bin 881 -> 0 bytes streams/icons/flag_tt.png | Bin 1412 -> 0 bytes streams/icons/flag_tv.png | Bin 2001 -> 0 bytes streams/icons/flag_tw.png | Bin 811 -> 0 bytes streams/icons/flag_tz.png | Bin 707 -> 0 bytes streams/icons/flag_ua.png | Bin 112 -> 0 bytes streams/icons/flag_ug.png | Bin 712 -> 0 bytes streams/icons/flag_us.png | Bin 1384 -> 0 bytes streams/icons/flag_uy.png | Bin 1155 -> 0 bytes streams/icons/flag_uz.png | Bin 694 -> 0 bytes streams/icons/flag_va.png | Bin 1386 -> 0 bytes streams/icons/flag_vc.png | Bin 693 -> 0 bytes streams/icons/flag_ve.png | Bin 494 -> 0 bytes streams/icons/flag_vg.png | Bin 2590 -> 0 bytes streams/icons/flag_vi.png | Bin 2590 -> 0 bytes streams/icons/flag_vn.png | Bin 550 -> 0 bytes streams/icons/flag_vu.png | Bin 1623 -> 0 bytes streams/icons/flag_wf.png | Bin 130 -> 0 bytes streams/icons/flag_ws.png | Bin 366 -> 0 bytes streams/icons/flag_ye.png | Bin 133 -> 0 bytes streams/icons/flag_yt.png | Bin 130 -> 0 bytes streams/icons/flag_za.png | Bin 1536 -> 0 bytes streams/icons/flag_zm.png | Bin 671 -> 0 bytes streams/icons/flag_zw.png | Bin 1703 -> 0 bytes streams/icons/football.svg | 39 - streams/icons/globe.svg | 16 - streams/icons/guitar.svg | 37 - streams/icons/keyboard.svg | 39 - streams/icons/lightning.svg | 24 - streams/icons/microphone.svg | 22 - streams/icons/news.svg | 109 -- streams/icons/radio.svg | 1 - streams/icons/radioactive.svg | 7 - streams/icons/rubikscube.svg | 31 - streams/icons/smiley.svg | 17 - streams/icons/star.svg | 28 - streams/icons/stream.png | Bin 89882 -> 0 bytes streams/icons/trebleclef.svg | 1 - streams/icons/violin.svg | 25 - streams/streamcategorydialog.cpp | 119 -- streams/streamcategorydialog.h | 54 - streams/streamdialog.cpp | 123 +- streams/streamdialog.h | 26 +- streams/streamfetcher.cpp | 8 +- streams/streamspage.cpp | 446 ++--- streams/streamspage.h | 10 +- streams/streamspage.ui | 19 +- streams/webstreams.cpp | 585 ------- streams/webstreams.h | 117 -- 295 files changed, 1001 insertions(+), 2790 deletions(-) create mode 100644 icons/streams-digitallyimported.png rename streams/icons/heart.svg => icons/streams-favourites.svg (100%) rename streams/icons/cube.svg => icons/streams-icecast.svg (100%) create mode 100644 icons/streams-jazzradio.png create mode 100644 icons/streams-shoutcast.png create mode 100644 icons/streams-skyfm.png create mode 100644 icons/streams-somafm.png create mode 100644 icons/streams-tunein.png delete mode 100644 streams/icons/CMakeLists.txt delete mode 100644 streams/icons/bassclef.svg delete mode 100644 streams/icons/dice.svg delete mode 100644 streams/icons/flag_ad.png delete mode 100644 streams/icons/flag_ae.png delete mode 100644 streams/icons/flag_af.png delete mode 100644 streams/icons/flag_ag.png delete mode 100644 streams/icons/flag_ai.png delete mode 100644 streams/icons/flag_al.png delete mode 100644 streams/icons/flag_am.png delete mode 100644 streams/icons/flag_ao.png delete mode 100644 streams/icons/flag_aq.png delete mode 100644 streams/icons/flag_ar.png delete mode 100644 streams/icons/flag_as.png delete mode 100644 streams/icons/flag_at.png delete mode 100644 streams/icons/flag_au.png delete mode 100644 streams/icons/flag_aw.png delete mode 100644 streams/icons/flag_ax.png delete mode 100644 streams/icons/flag_az.png delete mode 100644 streams/icons/flag_ba.png delete mode 100644 streams/icons/flag_bb.png delete mode 100644 streams/icons/flag_bd.png delete mode 100644 streams/icons/flag_be.png delete mode 100644 streams/icons/flag_bf.png delete mode 100644 streams/icons/flag_bg.png delete mode 100644 streams/icons/flag_bh.png delete mode 100644 streams/icons/flag_bi.png delete mode 100644 streams/icons/flag_bj.png delete mode 100644 streams/icons/flag_bl.png delete mode 100644 streams/icons/flag_bm.png delete mode 100644 streams/icons/flag_bn.png delete mode 100644 streams/icons/flag_bo.png delete mode 100644 streams/icons/flag_bq.png delete mode 100644 streams/icons/flag_br.png delete mode 100644 streams/icons/flag_bs.png delete mode 100644 streams/icons/flag_bt.png delete mode 100644 streams/icons/flag_bv.png delete mode 100644 streams/icons/flag_bw.png delete mode 100644 streams/icons/flag_by.png delete mode 100644 streams/icons/flag_bz.png delete mode 100644 streams/icons/flag_ca.png delete mode 100644 streams/icons/flag_cc.png delete mode 100644 streams/icons/flag_cd.png delete mode 100644 streams/icons/flag_cf.png delete mode 100644 streams/icons/flag_cg.png delete mode 100644 streams/icons/flag_ch.png delete mode 100644 streams/icons/flag_ci.png delete mode 100644 streams/icons/flag_ck.png delete mode 100644 streams/icons/flag_cl.png delete mode 100644 streams/icons/flag_cm.png delete mode 100644 streams/icons/flag_cn.png delete mode 100644 streams/icons/flag_co.png delete mode 100644 streams/icons/flag_cr.png delete mode 100644 streams/icons/flag_cu.png delete mode 100644 streams/icons/flag_cv.png delete mode 100644 streams/icons/flag_cw.png delete mode 100644 streams/icons/flag_cx.png delete mode 100644 streams/icons/flag_cy.png delete mode 100644 streams/icons/flag_cz.png delete mode 100644 streams/icons/flag_de.png delete mode 100644 streams/icons/flag_dj.png delete mode 100644 streams/icons/flag_dk.png delete mode 100644 streams/icons/flag_dm.png delete mode 100644 streams/icons/flag_do.png delete mode 100644 streams/icons/flag_dz.png delete mode 100644 streams/icons/flag_ec.png delete mode 100644 streams/icons/flag_ee.png delete mode 100644 streams/icons/flag_eg.png delete mode 100644 streams/icons/flag_eh.png delete mode 100644 streams/icons/flag_eo.png delete mode 100644 streams/icons/flag_er.png delete mode 100644 streams/icons/flag_es.png delete mode 100644 streams/icons/flag_et.png delete mode 100644 streams/icons/flag_fi.png delete mode 100644 streams/icons/flag_fj.png delete mode 100644 streams/icons/flag_fk.png delete mode 100644 streams/icons/flag_fm.png delete mode 100644 streams/icons/flag_fo.png delete mode 100644 streams/icons/flag_fr.png delete mode 100644 streams/icons/flag_ga.png delete mode 100644 streams/icons/flag_gb.png delete mode 100644 streams/icons/flag_gd.png delete mode 100644 streams/icons/flag_ge.png delete mode 100644 streams/icons/flag_gf.png delete mode 100644 streams/icons/flag_gg.png delete mode 100644 streams/icons/flag_gh.png delete mode 100644 streams/icons/flag_gi.png delete mode 100644 streams/icons/flag_gl.png delete mode 100644 streams/icons/flag_gm.png delete mode 100644 streams/icons/flag_gn.png delete mode 100644 streams/icons/flag_gp.png delete mode 100644 streams/icons/flag_gq.png delete mode 100644 streams/icons/flag_gr.png delete mode 100644 streams/icons/flag_gs.png delete mode 100644 streams/icons/flag_gt.png delete mode 100644 streams/icons/flag_gu.png delete mode 100644 streams/icons/flag_gw.png delete mode 100644 streams/icons/flag_gy.png delete mode 100644 streams/icons/flag_hk.png delete mode 100644 streams/icons/flag_hm.png delete mode 100644 streams/icons/flag_hn.png delete mode 100644 streams/icons/flag_hr.png delete mode 100644 streams/icons/flag_ht.png delete mode 100644 streams/icons/flag_hu.png delete mode 100644 streams/icons/flag_id.png delete mode 100644 streams/icons/flag_ie.png delete mode 100644 streams/icons/flag_il.png delete mode 100644 streams/icons/flag_im.png delete mode 100644 streams/icons/flag_in.png delete mode 100644 streams/icons/flag_io.png delete mode 100644 streams/icons/flag_iq.png delete mode 100644 streams/icons/flag_ir.png delete mode 100644 streams/icons/flag_is.png delete mode 100644 streams/icons/flag_it.png delete mode 100644 streams/icons/flag_je.png delete mode 100644 streams/icons/flag_jm.png delete mode 100644 streams/icons/flag_jo.png delete mode 100644 streams/icons/flag_jp.png delete mode 100644 streams/icons/flag_ke.png delete mode 100644 streams/icons/flag_kg.png delete mode 100644 streams/icons/flag_kh.png delete mode 100644 streams/icons/flag_ki.png delete mode 100644 streams/icons/flag_km.png delete mode 100644 streams/icons/flag_kn.png delete mode 100644 streams/icons/flag_kp.png delete mode 100644 streams/icons/flag_kr.png delete mode 100644 streams/icons/flag_kw.png delete mode 100644 streams/icons/flag_ky.png delete mode 100644 streams/icons/flag_kz.png delete mode 100644 streams/icons/flag_la.png delete mode 100644 streams/icons/flag_lb.png delete mode 100644 streams/icons/flag_lc.png delete mode 100644 streams/icons/flag_li.png delete mode 100644 streams/icons/flag_lk.png delete mode 100644 streams/icons/flag_lr.png delete mode 100644 streams/icons/flag_ls.png delete mode 100644 streams/icons/flag_lt.png delete mode 100644 streams/icons/flag_lu.png delete mode 100644 streams/icons/flag_lv.png delete mode 100644 streams/icons/flag_ly.png delete mode 100644 streams/icons/flag_ma.png delete mode 100644 streams/icons/flag_mc.png delete mode 100644 streams/icons/flag_md.png delete mode 100644 streams/icons/flag_me.png delete mode 100644 streams/icons/flag_mf.png delete mode 100644 streams/icons/flag_mg.png delete mode 100644 streams/icons/flag_mh.png delete mode 100644 streams/icons/flag_mk.png delete mode 100644 streams/icons/flag_ml.png delete mode 100644 streams/icons/flag_mm.png delete mode 100644 streams/icons/flag_mn.png delete mode 100644 streams/icons/flag_mo.png delete mode 100644 streams/icons/flag_mp.png delete mode 100644 streams/icons/flag_mq.png delete mode 100644 streams/icons/flag_mr.png delete mode 100644 streams/icons/flag_ms.png delete mode 100644 streams/icons/flag_mt.png delete mode 100644 streams/icons/flag_mu.png delete mode 100644 streams/icons/flag_mv.png delete mode 100644 streams/icons/flag_mw.png delete mode 100644 streams/icons/flag_mx.png delete mode 100644 streams/icons/flag_my.png delete mode 100644 streams/icons/flag_mz.png delete mode 100644 streams/icons/flag_na.png delete mode 100644 streams/icons/flag_nc.png delete mode 100644 streams/icons/flag_ne.png delete mode 100644 streams/icons/flag_nf.png delete mode 100644 streams/icons/flag_ng.png delete mode 100644 streams/icons/flag_ni.png delete mode 100644 streams/icons/flag_nl.png delete mode 100644 streams/icons/flag_no.png delete mode 100644 streams/icons/flag_np.png delete mode 100644 streams/icons/flag_nr.png delete mode 100644 streams/icons/flag_nu.png delete mode 100644 streams/icons/flag_nz.png delete mode 100644 streams/icons/flag_om.png delete mode 100644 streams/icons/flag_pa.png delete mode 100644 streams/icons/flag_pe.png delete mode 100644 streams/icons/flag_pf.png delete mode 100644 streams/icons/flag_pg.png delete mode 100644 streams/icons/flag_ph.png delete mode 100644 streams/icons/flag_pk.png delete mode 100644 streams/icons/flag_pl.png delete mode 100644 streams/icons/flag_pm.png delete mode 100644 streams/icons/flag_pn.png delete mode 100644 streams/icons/flag_pr.png delete mode 100644 streams/icons/flag_ps.png delete mode 100644 streams/icons/flag_pt.png delete mode 100644 streams/icons/flag_pw.png delete mode 100644 streams/icons/flag_py.png delete mode 100644 streams/icons/flag_qa.png delete mode 100644 streams/icons/flag_re.png delete mode 100644 streams/icons/flag_ro.png delete mode 100644 streams/icons/flag_rs.png delete mode 100644 streams/icons/flag_ru.png delete mode 100644 streams/icons/flag_rw.png delete mode 100644 streams/icons/flag_sa.png delete mode 100644 streams/icons/flag_sb.png delete mode 100644 streams/icons/flag_sc.png delete mode 100644 streams/icons/flag_sd.png delete mode 100644 streams/icons/flag_se.png delete mode 100644 streams/icons/flag_sg.png delete mode 100644 streams/icons/flag_sh.png delete mode 100644 streams/icons/flag_si.png delete mode 100644 streams/icons/flag_sj.png delete mode 100644 streams/icons/flag_sk.png delete mode 100644 streams/icons/flag_sl.png delete mode 100644 streams/icons/flag_sm.png delete mode 100644 streams/icons/flag_sn.png delete mode 100644 streams/icons/flag_so.png delete mode 100644 streams/icons/flag_sr.png delete mode 100644 streams/icons/flag_ss.png delete mode 100644 streams/icons/flag_st.png delete mode 100644 streams/icons/flag_sv.png delete mode 100644 streams/icons/flag_sx.png delete mode 100644 streams/icons/flag_sy.png delete mode 100644 streams/icons/flag_sz.png delete mode 100644 streams/icons/flag_tc.png delete mode 100644 streams/icons/flag_td.png delete mode 100644 streams/icons/flag_tf.png delete mode 100644 streams/icons/flag_tg.png delete mode 100644 streams/icons/flag_th.png delete mode 100644 streams/icons/flag_tj.png delete mode 100644 streams/icons/flag_tk.png delete mode 100644 streams/icons/flag_tl.png delete mode 100644 streams/icons/flag_tm.png delete mode 100644 streams/icons/flag_tn.png delete mode 100644 streams/icons/flag_to.png delete mode 100644 streams/icons/flag_tr.png delete mode 100644 streams/icons/flag_tt.png delete mode 100644 streams/icons/flag_tv.png delete mode 100644 streams/icons/flag_tw.png delete mode 100644 streams/icons/flag_tz.png delete mode 100644 streams/icons/flag_ua.png delete mode 100644 streams/icons/flag_ug.png delete mode 100644 streams/icons/flag_us.png delete mode 100644 streams/icons/flag_uy.png delete mode 100644 streams/icons/flag_uz.png delete mode 100644 streams/icons/flag_va.png delete mode 100644 streams/icons/flag_vc.png delete mode 100644 streams/icons/flag_ve.png delete mode 100644 streams/icons/flag_vg.png delete mode 100644 streams/icons/flag_vi.png delete mode 100644 streams/icons/flag_vn.png delete mode 100644 streams/icons/flag_vu.png delete mode 100644 streams/icons/flag_wf.png delete mode 100644 streams/icons/flag_ws.png delete mode 100644 streams/icons/flag_ye.png delete mode 100644 streams/icons/flag_yt.png delete mode 100644 streams/icons/flag_za.png delete mode 100644 streams/icons/flag_zm.png delete mode 100644 streams/icons/flag_zw.png delete mode 100644 streams/icons/football.svg delete mode 100644 streams/icons/globe.svg delete mode 100644 streams/icons/guitar.svg delete mode 100644 streams/icons/keyboard.svg delete mode 100644 streams/icons/lightning.svg delete mode 100644 streams/icons/microphone.svg delete mode 100644 streams/icons/news.svg delete mode 100644 streams/icons/radio.svg delete mode 100644 streams/icons/radioactive.svg delete mode 100644 streams/icons/rubikscube.svg delete mode 100644 streams/icons/smiley.svg delete mode 100644 streams/icons/star.svg delete mode 100644 streams/icons/stream.png delete mode 100644 streams/icons/trebleclef.svg delete mode 100644 streams/icons/violin.svg delete mode 100644 streams/streamcategorydialog.cpp delete mode 100644 streams/streamcategorydialog.h delete mode 100644 streams/webstreams.cpp delete mode 100644 streams/webstreams.h diff --git a/CMakeLists.txt b/CMakeLists.txt index c7d5ca9e4..687d7bc93 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -92,7 +92,7 @@ set(CANTATA_SRCS gui/application.cpp gui/main.cpp gui/initialsettingswizard.cpp gui/settings.cpp gui/covers.cpp gui/filesettings.cpp gui/interfacesettings.cpp gui/playbacksettings.cpp gui/serversettings.cpp gui/librarypage.cpp gui/albumspage.cpp gui/folderpage.cpp gui/playlistspage.cpp gui/trayitem.cpp gui/cachesettings.cpp gui/coverdialog.cpp gui/stdactions.cpp - streams/streamspage.cpp streams/streamdialog.cpp streams/streamcategorydialog.cpp streams/streamfetcher.cpp streams/webstreams.cpp + streams/streamspage.cpp streams/streamdialog.cpp streams/streamfetcher.cpp models/musiclibraryitemroot.cpp models/musiclibraryitemartist.cpp models/musiclibraryitemalbum.cpp models/musiclibrarymodel.cpp models/musiclibraryproxymodel.cpp models/playlistsmodel.cpp models/playlistsproxymodel.cpp models/playqueuemodel.cpp models/playqueueproxymodel.cpp models/dirviewmodel.cpp models/dirviewproxymodel.cpp models/dirviewitem.cpp models/dirviewitemdir.cpp @@ -114,7 +114,7 @@ set(CANTATA_MOC_HDRS gui/initialsettingswizard.h gui/mainwindow.h gui/settings.h gui/covers.h gui/folderpage.h gui/librarypage.h gui/albumspage.h gui/playlistspage.h gui/playbacksettings.h gui/serversettings.h gui/preferencesdialog.h gui/filesettings.h gui/interfacesettings.h gui/cachesettings.h gui/trayitem.h gui/coverdialog.h - streams/streamspage.h streams/streamdialog.h streams/streamcategorydialog.h streams/streamfetcher.h streams/webstreams.h + streams/streamspage.h streams/streamdialog.h streams/streamfetcher.h models/musiclibrarymodel.h models/musiclibraryproxymodel.h models/playlistsmodel.h models/playlistsproxymodel.h models/playqueuemodel.h models/playqueueproxymodel.h models/dirviewmodel.h models/dirviewproxymodel.h models/albumsmodel.h models/streamsmodel.h models/actionmodel.h @@ -402,8 +402,7 @@ endif (MSVC) add_subdirectory(po) add_subdirectory(support) -add_subdirectory(streams/icons) - + if (ENABLE_KDE_SUPPORT) include_directories(${KDE4_INCLUDES}) add_definitions(${KDE4_DEFINITIONS}) diff --git a/ChangeLog b/ChangeLog index 53a5137f2..9fd1f711c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -51,56 +51,54 @@ 33. Automatic accelator assignment for Qt builds. 34. Add cmake check to see if TagLib has id3version in MPEG save. 35. RTL fixes. -36. Add import/export of Streams XML files - these contians just streams, - without categories. The intention is to be able to import these into - MPDroid. -37. For Qt4 linux builds, use system QJson if found. -38. Remove amazon cover fetching - required API key that Cantata never really +36. For Qt4 linux builds, use system QJson if found. +37. Remove amazon cover fetching - required API key that Cantata never really had. -39. Add debug logging. Please see README for details. -40. Enable MPD HTTP stream playback using QtMultiMedia for Qt5 builds. Thanks +38. Add debug logging. Please see README for details. +39. Enable MPD HTTP stream playback using QtMultiMedia for Qt5 builds. Thanks to Marcel Bosling for the patch. Disabled by default, to enable pass -DENABLE_HTTP_STREAM_PLAYBACK=ON to cmake. -41. Fix Qt5 segfault on exit, due to static QIcons being destructed. -42. Work-around Qt5 bug where toolbuttons (usually with menus) stay in the +40. Fix Qt5 segfault on exit, due to static QIcons being destructed. +41. Work-around Qt5 bug where toolbuttons (usually with menus) stay in the raised state. -43. Add port number to library cache filename, to cater for scenarios where +42. Add port number to library cache filename, to cater for scenarios where there is more than 1 server on the same host. -44. Fix retrieval of covers in albums view for multiple-artist albums when +43. Fix retrieval of covers in albums view for multiple-artist albums when these are configured to be grouped under "Various Artists" -45. Refresh albums view when multiple-artist grouping is changed. -46. Add context menu to replygain and file organizer dialogs to remove items +44. Refresh albums view when multiple-artist grouping is changed. +45. Add context menu to replygain and file organizer dialogs to remove items from list. -47. Also use discogs for artist images in cover dialog. -48. Fix invalid covers showing for online services. -49. For Qt builds, if shortcut is set to default then remove entry from config +46. Also use discogs for artist images in cover dialog. +47. Fix invalid covers showing for online services. +48. For Qt builds, if shortcut is set to default then remove entry from config file. -50. Don't show page shortcuts in tooltips, as tooltip is not updated when +49. Don't show page shortcuts in tooltips, as tooltip is not updated when shortcut is changed. -51. Check that perl is installed before attempting to start cantata-dynamic in +50. Check that perl is installed before attempting to start cantata-dynamic in local mode. -52. If cantata-dynamic is started in server mode, then have it create any +51. If cantata-dynamic is started in server mode, then have it create any missing folders. -53. Simpler proxy settings. -54. Delay loading of local devices at atart-up, so that we have time to add +52. Simpler proxy settings. +53. Delay loading of local devices at atart-up, so that we have time to add device to view before try to expand it. -55. If cantata-dynamic is started in server mode, then communicate status via +54. If cantata-dynamic is started in server mode, then communicate status via UDP multicast messages. -56. If using server mode cantata-dynamic and this is not started, then show an +55. If using server mode cantata-dynamic and this is not started, then show an error message in dynamic page. -57. Fix keyboard shortcuts of tab pages. -58. Add support for a simple profile where MPD is started by cantata, and +56. Fix keyboard shortcuts of tab pages. +57. Add support for a simple profile where MPD is started by cantata, and the only settings are the music folder and cover names. -59. Combine Output and Playback config pages. -60. Remove proxy config from settings, and always use system proxy. +58. Combine Output and Playback config pages. +59. Remove proxy config from settings, and always use system proxy. To re-enable proxy settings pass -DENABLE_PROXY_CONFIG=ON to cmake. -61. Add option to draw curent album cover as backdrop to play queue. -62. Add 'Copy Songs To Device' action to playlists page. -63. Copy Qt5 Linux system proxy code for Qt4 builds. -64. Embed pre-rendered PNG versions of cantata icon, to help with Qt5 builds +60. Add option to draw curent album cover as backdrop to play queue. +61. Add 'Copy Songs To Device' action to playlists page. +62. Copy Qt5 Linux system proxy code for Qt4 builds. +63. Embed pre-rendered PNG versions of cantata icon, to help with Qt5 builds on systems that do not have the Qt SVG icon engine installed. -65. Add support for importing Digitally Imported, Jazz Radio, and Sky.fm - streams. Only free, ad supported, streams at the moment. +64. Simplify streams page. Remove user-categories, instead have a set of + predefined top-level items; Favourites (user streams), TuneIn, IceCast, + SomaFM, Digitially Imported, Jazz Radio, and Sky.fm. 1.0.3 ----- diff --git a/cantata.qrc b/cantata.qrc index d716832f6..14d8865a9 100644 --- a/cantata.qrc +++ b/cantata.qrc @@ -1,7 +1,6 @@ context/ultimate_providers.xml -streams/providers.xml context/weblinks.xml icons/view-media-repeat16.png icons/view-media-repeat22.png @@ -11,7 +10,6 @@ icons/view-media-shuffle22.png icons/view-media-shuffle32.png icons/view-media-shuffle48.png - icons/sidebar-albums-dark.svg icons/sidebar-artists-dark.svg icons/sidebar-devices-dark.svg @@ -32,5 +30,13 @@ icons/sidebar-playlists-light.svg icons/sidebar-playqueue-light.svg icons/sidebar-streams-light.svg +icons/streams-icecast.svg +icons/streams-shoutcast.png +icons/streams-favourites.svg +icons/streams-tunein.png +icons/streams-digitallyimported.png +icons/streams-somafm.png +icons/streams-skyfm.png +icons/streams-jazzradio.png diff --git a/gui/filesettings.ui b/gui/filesettings.ui index f7f91b523..229662d6b 100644 --- a/gui/filesettings.ui +++ b/gui/filesettings.ui @@ -49,7 +49,7 @@ - Save list of streams in music folder: + Save list of favourite streams in music folder: storeStreamsInMpdDir diff --git a/gui/initialsettingswizard.ui b/gui/initialsettingswizard.ui index 2138dd47f..7e9f7b24d 100644 --- a/gui/initialsettingswizard.ui +++ b/gui/initialsettingswizard.ui @@ -744,7 +744,7 @@ - Save list of streams in music folder: + Save list of favourite streams in music folder: storeStreamsInMpdDir diff --git a/gui/mainwindow.cpp b/gui/mainwindow.cpp index 43fe2560c..01f74623e 100644 --- a/gui/mainwindow.cpp +++ b/gui/mainwindow.cpp @@ -2192,25 +2192,13 @@ void MainWindow::addToExistingStoredPlaylist(const QString &name, bool pq) void MainWindow::addStreamToPlayQueue() { - // Need to load streams, if not already loaded - so that we can get list of categories/genres... - if (!(loaded&TAB_STREAMS)) { - loaded|=TAB_STREAMS; - streamsPage->refresh(); - } - - StreamDialog dlg(streamsPage->getCategories(), streamsPage->getGenres(), this, true); + StreamDialog dlg(this, true); if (QDialog::Accepted==dlg.exec()) { QString url=dlg.url(); if (dlg.save()) { - QString name=dlg.name(); - QString cat=dlg.category(); - QString existing=StreamsModel::self()->name(cat, url); - - if (existing.isEmpty()) { - StreamsModel::self()->add(cat, name, dlg.genre(), dlg.icon(), url); - } + StreamsModel::self()->addToFavourites(url, dlg.name()); } playQueueModel.addItems(QStringList() << StreamsModel::modifyUrl(url), false, 0); } diff --git a/icons/streams-digitallyimported.png b/icons/streams-digitallyimported.png new file mode 100644 index 0000000000000000000000000000000000000000..bfef73f5c7eeef963cbd1c1ef6096afcae189368 GIT binary patch literal 1204 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 literal 0 HcmV?d00001 diff --git a/icons/streams-shoutcast.png b/icons/streams-shoutcast.png new file mode 100644 index 0000000000000000000000000000000000000000..e3ee70abd0adee54d77689699c6afe6cda617995 GIT binary patch literal 6820 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 E01Ws2IRF3v literal 0 HcmV?d00001 diff --git a/icons/streams-skyfm.png b/icons/streams-skyfm.png new file mode 100644 index 0000000000000000000000000000000000000000..2243f49bbcca9a88954e075349db9d3672edd1b3 GIT binary patch literal 1981 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 literal 0 HcmV?d00001 diff --git a/icons/streams-tunein.png b/icons/streams-tunein.png new file mode 100644 index 0000000000000000000000000000000000000000..913797886cbbef49ff005d44563ed603abc9da7f GIT binary patch literal 1479 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?FH=O_Pea20`kH$CMND-U|UF^yn_P1B z;JMh{3=Grr@9(rsx%J%hsaf^v2aFC=L?a}{=Ih2w?tdQeu9l&rr|Xj}8<+oly-Rf_ zue{q;w!fb6*kngwOofu6P0l>2_i4LdIh?RGNIY`o<;q^a>FzfJL|7G%B`$6fefjFh z$;t9@yDBd3RuxI$IJIW8X}M1J9Ja;jXZucj_h6-^BehfCI* z7ruCOVd1U^5BzLbUwzH!@H&)X(rw=DYf6r?e${FyW<91jxfXae z?)~&_?QGe3cX^mE-m5vLE;jQ;i5}bG5)nqdxjG)*9X(&xi9M>6ixztHK2OEMw(wn3 zMi`Hd6;g-h*&+p8vzqD9M%++M{e~Rdljz zM}=#z>atx@xf`FJp0-ZHF7J@g{{wcluGPhVADq+N zbjg;qg!)^4E$choojx6FH9%9*T${VP}pR3!^H7jb;^m4m4((~TT5@pCE8Ekt!P$| z9r&_SJ?bz|w;R8BZuLHst9H(%KhFHCe5(H{x;OCErr)Qh83nk8P0bT)aGYp*xulN! zzt5klyt=~yiznl_4SbP1OIw(@N|AJiWBhZ+lChn8C}NWy@w9xoR-+ zmiOw*Eiw!Zg;$QxtiNrkyL9g5(k08)CoR&DI1}N^U{HU|r1t*D;OUmT7i3sg9PC-b zSbRv>t?zCBvttV!8_r%W)l}5pbf>iR-AqXdb&gP`)cp=?eP6kJi@&V1p5e-kC!6G! zHwAfF&oF&e=D2Q6;U2~Zt!Jmc43PM-%k!$}GaL4twG1vF6Hf?ilD7%|b;Zy&)P1gC z-W;*6omDTTZ9jBRU}f+q_MI8z|J6>)wsEh<{~WiXn8Mkas!QsQ zl*V0okwl4Qd*7biv_Mb&NVfPVBcY^y55kXcvvrGZnKE&snD3@_e7{cafAE24-J@V8 zDJO?W)5m22yeb>SK0j_RtKWRnY2~79Z+F9%h@-!+XUQ!8l)S0`f8Z&1cjq6O{rMp- zSx1`qWMg-Kbug|!cZUBLuT0LD3Tg8zHfQW2gPsekZ}N@yb<51UF*)7r{PO8rS28m9 zum6?u{^FzRxW8JA42zazoLVE3HCwfRv!g(Vqs;PCJCw5mPLwPb`fh3Zi|>Fn!>i2Z zd)y9>SG2ornN_XZz~H?zx%^=3^1VU~sxnMEqW8a_lS`0jvC&#{=DytS{^wVJTAf`f z7_$4nxdht+hl0?TYb|f@lV0q7i}j$$b7=-CY3Z14)6?3+g6^rcX{eiB<*f*rQJ(Sr snfyI(57&KO2fwdqbv<6veg8jWGna%$=Y!;<3=9kmp00i_>zopr0JnR!)&Kwi literal 0 HcmV?d00001 diff --git a/models/streamsmodel.cpp b/models/streamsmodel.cpp index 057bdc018..2c51eb00a 100644 --- a/models/streamsmodel.cpp +++ b/models/streamsmodel.cpp @@ -21,36 +21,33 @@ * Boston, MA 02110-1301, USA. */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "config.h" -#include "settings.h" -#if defined Q_OS_WIN -#include -#endif -#include "localize.h" -#include "itemview.h" #include "streamsmodel.h" -#include "playqueuemodel.h" -#include "mpdconnection.h" -#include "config.h" +#include "icon.h" #include "icons.h" -#include "utils.h" -#include "qtiocompressor/qtiocompressor.h" #include "networkaccessmanager.h" -#include "stdactions.h" +#include "localize.h" +#include "utils.h" +#include "mpdconnection.h" #include "mpdparseutils.h" +#include "settings.h" +#include "playqueuemodel.h" +#include "itemview.h" +#include "action.h" +#include "stdactions.h" +#include "qjson/parser.h" +#include "qtiocompressor/qtiocompressor.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if QT_VERSION >= 0x050000 +#include +#endif #ifdef ENABLE_KDE_SUPPORT K_GLOBAL_STATIC(StreamsModel, instance) @@ -70,73 +67,29 @@ StreamsModel * StreamsModel::self() } const QString StreamsModel::constPrefix("cantata-"); -static const QString constStreamCategoryMimeType("cantata/streams-category"); -static const QString constStreamMimeType("cantata/stream"); -static const QLatin1String constSeparator("##Cantata##"); -const QLatin1String StreamsModel::constGenreSeparator("|"); -static QString encodeStreamItem(StreamsModel::StreamItem *i) -{ - return i->name.replace(constSeparator, " ")+constSeparator+ - i->url.toString()+constSeparator+ - i->genreString()+constSeparator+ - i->icon+constSeparator+ - i->parent->name; -} +static const char * constOrigUrlProperty = "orig-url"; -struct DndStream -{ - QString name; - QString url; - QString genre; - QString icon; - QString category; -}; +static QString constRadioTimeHost=QLatin1String("opml.radiotime.com"); +static QString constRadioTimeUrl=QLatin1String("http://")+constRadioTimeHost+QLatin1String("/Browse.ashx"); +static QString constFavouritesUrl=QLatin1String("cantata://internal"); +static QString constIceCastUrl=QLatin1String("http://dir.xiph.org/yp.xml"); +static QString constSomaFMUrl=QLatin1String("http://somafm.com/channels.xml"); -static DndStream decodeStreamItem(const QString &s) -{ - DndStream i; - QStringList parts=s.split(constSeparator); - if (parts.size()>=5) { - i.name=parts.at(0); - i.url=parts.at(1); - i.genre=parts.at(2); - i.icon=parts.at(3); - i.category=parts.at(4); - } - return i; -} +static QString constDigitiallyImportedUrl=QLatin1String("http://www.di.fm"); +static QString constJazzRadioUrl=QLatin1String("http://www.jazzradio.com"); +static QString constSkyFmUrl=QLatin1String("http://www.sky.fm"); +static QStringList constDiUrls=QStringList() << constDigitiallyImportedUrl << constJazzRadioUrl << constSkyFmUrl; +static const char * constDiApiUsername="ephemeron"; +static const char * constDiApiPassword="dayeiph0ne@pp"; +//static const QString constDiAuthUrl=QLatin1String("http://api.audioaddict.com/v1/%1/members/authenticate"); +static const QString constDiChannelListHost=QLatin1String("api.v2.audioaddict.com"); +static const QString constDiChannelListUrl=QLatin1String("http://")+constDiChannelListHost+("/v1/%1/mobile/batch_update?asset_group_key=mobile_icons&stream_set_key="); +static const QString constDiStdUrl=QLatin1String("http://%1/public3/%2.pls"); -static const QLatin1String constStreamsCompressedFileName("streams.xml.gz"); -static const QLatin1String constStreamsOldFileName("streams.xml"); +static const QLatin1String constFavouritesFileName("streams.xml.gz"); -static void convertOldFile(const QString &compressedName) -{ - if (compressedName.startsWith("http:/")) { - return; - } - QString prev=compressedName; - prev.replace(constStreamsCompressedFileName, constStreamsOldFileName); - - if (QFile::exists(prev) && !QFile::exists(compressedName)) { - QFile old(prev); - if (old.open(QIODevice::ReadOnly)) { - QByteArray a=old.readAll(); - old.close(); - - QFile newFile(compressedName); - QtIOCompressor compressor(&newFile); - compressor.setStreamFormat(QtIOCompressor::GzipFormat); - if (compressor.open(QIODevice::WriteOnly)) { - compressor.write(a); - compressor.close(); - QFile::remove(prev); - } - } - } -} - -QString StreamsModel::dir() +QString StreamsModel::favouritesDir() { return Settings::self()->storeStreamsInMpdDir() ? MPDConnection::self()->getDetails().dir : Utils::configDir(QString(), false); } @@ -144,66 +97,32 @@ QString StreamsModel::dir() static QString getInternalFile(bool createDir=false) { if (Settings::self()->storeStreamsInMpdDir()) { - return MPDConnection::self()->getDetails().dir+constStreamsCompressedFileName; + return MPDConnection::self()->getDetails().dir+constFavouritesFileName; } - return Utils::configDir(QString(), createDir)+constStreamsCompressedFileName; + return Utils::configDir(QString(), createDir)+constFavouritesFileName; } -StreamsModel::StreamsModel() - : ActionModel(0) - , modified(false) - , timer(0) - , job(0) +StreamsModel::StreamsModel(QObject *parent) + : ActionModel(parent) + , root(new CategoryItem(QString(), "root")) + , favouritesIsWriteable(true) + , favouritesModified(false) + , favouritesSaveTimer(0) { + root->children.append(new CategoryItem(constRadioTimeUrl, i18n("TuneIn"), root, QIcon(":streams-tunein"))); + root->children.append(new CategoryItem(constIceCastUrl, i18n("IceCast"), root, QIcon(":streams-icecast"))); + root->children.append(new CategoryItem(constSomaFMUrl, i18n("SomaFM"), root, QIcon(":streams-somafm"))); + root->children.append(new CategoryItem(constDigitiallyImportedUrl, i18n("Digitally Imported"), root, QIcon(":streams-digitallyimported"))); + root->children.append(new CategoryItem(constJazzRadioUrl, i18n("JazzRadio.com"), root, QIcon(":streams-jazzradio"))); + root->children.append(new CategoryItem(constSkyFmUrl, i18n("Sky.fm"), root, QIcon(":streams-skyfm"))); + favourites=new CategoryItem(constFavouritesUrl, i18n("Favourites"), root, QIcon(":streams-favourites")); + favourites->isFavourites=true; + root->children.append(favourites); } StreamsModel::~StreamsModel() { -} - -QVariant StreamsModel::headerData(int /*section*/, Qt::Orientation /*orientation*/, int /*role*/) const -{ - return QVariant(); -} - -int StreamsModel::rowCount(const QModelIndex &index) const -{ - if (!index.isValid()) { - return items.size(); - } - - Item *item=static_cast(index.internalPointer()); - if (item->isCategory()) { - return static_cast(index.internalPointer())->streams.count(); - } - return 0; -} - -bool StreamsModel::hasChildren(const QModelIndex &parent) const -{ - return !parent.isValid() || static_cast(parent.internalPointer())->isCategory(); -} - -QModelIndex StreamsModel::parent(const QModelIndex &index) const -{ - if (!index.isValid()) { - return QModelIndex(); - } - - Item *item=static_cast(index.internalPointer()); - - if(item->isCategory()) - return QModelIndex(); - else - { - StreamItem *stream=static_cast(item); - - if (stream->parent) { - return createIndex(items.indexOf(stream->parent), 0, stream->parent); - } - } - - return QModelIndex(); + delete root; } QModelIndex StreamsModel::index(int row, int column, const QModelIndex &parent) const @@ -212,139 +131,599 @@ QModelIndex StreamsModel::index(int row, int column, const QModelIndex &parent) return QModelIndex(); } - if (parent.isValid()) { - Item *p=static_cast(parent.internalPointer()); + const CategoryItem * p = parent.isValid() ? static_cast(parent.internalPointer()) : root; + const Item * c = rowchildren.count() ? p->children.at(row) : 0; + return c ? createIndex(row, column, (void *)c) : QModelIndex(); +} - if (p->isCategory()) { - CategoryItem *cat=static_cast(p); - return rowstreams.count() ? createIndex(row, column, cat->streams.at(row)) : QModelIndex(); - } +QModelIndex StreamsModel::parent(const QModelIndex &index) const +{ + if (!index.isValid()) { + return QModelIndex(); } - return rowparent; + + if (!parent || parent == root || !parent->parent) { + return QModelIndex(); + } + + return createIndex(static_cast(parent->parent)->children.indexOf(parent), 0, parent); +} + +QVariant StreamsModel::headerData(int /*section*/, Qt::Orientation /*orientation*/, int /*role*/) const +{ + return QVariant(); +} + +int StreamsModel::rowCount(const QModelIndex &parent) const +{ + if (parent.isValid()) { + Item *item = toItem(parent); + return item->isCategory() ? static_cast(item)->children.count() : 0; + } + + return root->children.count(); +} + +int StreamsModel::columnCount(const QModelIndex &) const +{ + return 1; } QVariant StreamsModel::data(const QModelIndex &index, int role) const { - if (!index.isValid()) { - return QVariant(); - } + const Item *item = toItem(index); - Item *item=static_cast(index.internalPointer()); - - if (item->isCategory()) { - CategoryItem *cat=static_cast(item); - switch(role) { - case Qt::DisplayRole: return cat->name; - case Qt::ToolTipRole: - return 0==cat->streams.count() - ? cat->name - : cat->name+"\n"+ - #ifdef ENABLE_KDE_SUPPORT - i18np("1 Stream", "%1 Streams", cat->streams.count()); - #else - QTP_STREAMS_STR(cat->streams.count()); - #endif - case Qt::DecorationRole: { - if (!cat->icon.isEmpty()) { - QIcon i=icon(cat->icon); - if (!i.isNull()) { - return i; - } + switch (role) { + case Qt::DecorationRole: + if (item->isCategory()) { + const CategoryItem *cat=static_cast(item); + return cat->icon.isNull() ? Icons::self()->streamCategoryIcon : cat->icon; + } else { + return Icon("audio-x-generic"); + } + case Qt::DisplayRole: + return item->name; + case Qt::ToolTipRole: + return item->isCategory() ? item->name : item->url; + case ItemView::Role_SubText: + if (item->isCategory()) { + const CategoryItem *cat=static_cast(item); + switch (cat->state) { + case CategoryItem::Initial: + return i18n("No Loaded"); + case CategoryItem::Fetching: + return i18n("Loading..."); + default: + #ifdef ENABLE_KDE_SUPPORT + return i18np("1 Entry", "%1 Entries", cat->children.count()); + #else + return QTP_ENTRIES_STR(cat->children.count()); + #endif } - return Icons::self()->streamCategoryIcon; } - case ItemView::Role_SubText: - #ifdef ENABLE_KDE_SUPPORT - return i18np("1 Stream", "%1 Streams", cat->streams.count()); - #else - return QTP_STREAMS_STR(cat->streams.count()); - #endif - case ItemView::Role_Actions: { -// QVariant v; -// v.setValue >(QList() << StdActions::self()->replacePlayQueueAction); -// return v; - break; - } - } - } else { - StreamItem *stream=static_cast(item); - switch(role) { - case Qt::DisplayRole: return stream->name; - case ItemView::Role_SubText: return QVariant(); - case Qt::ToolTipRole: return stream->url; - case Qt::DecorationRole: { - if (!stream->icon.isEmpty()) { - QIcon i=icon(stream->icon); - if (!i.isNull()) { - return i; - } - } - return Icons::self()->radioStreamIcon; - } - case ItemView::Role_Actions: { + break; + case ItemView::Role_Actions: + if (!item->isCategory()){ QVariant v; v.setValue >(QList() << StdActions::self()->replacePlayQueueAction); return v; } - } + break; + default: + break; } - return QVariant(); } -void StreamsModel::reload() +Qt::ItemFlags StreamsModel::flags(const QModelIndex &index) const { - beginResetModel(); - clearCategories(); - // clearCategories sets modified, so we need to reset here - otherwise we save file on exit, eventhough nothing has changed! - modified=false; - load(getInternalFile(), true); - endResetModel(); + if (index.isValid()) { + return Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsEnabled; + } else { + return Qt::NoItemFlags; + } } -void StreamsModel::save(bool force) +bool StreamsModel::hasChildren(const QModelIndex &index) const +{ + return index.isValid() ? toItem(index)->isCategory() : true; +} + +bool StreamsModel::canFetchMore(const QModelIndex &index) const +{ + if (index.isValid()) { + Item *item = toItem(index); + return item->isCategory() && CategoryItem::Initial==static_cast(item)->state && !item->url.isEmpty(); + } else { + return false; + } +} + +void StreamsModel::fetchMore(const QModelIndex &index) +{ + if (!index.isValid()) { + return; + } + + Item *item = toItem(index); + if (item->isCategory() && !item->url.isEmpty()) { + CategoryItem *cat=static_cast(item); + if (item->url==constFavouritesUrl && !getInternalFile().startsWith(QLatin1String("http://"))) { + cat->state=CategoryItem::Fetching; + emit dataChanged(index, index); + loadFavourites(index); + cat->state=CategoryItem::Fetched; + } else { + QNetworkRequest req; + if (constDiUrls.contains(cat->url)) { + req=QNetworkRequest(constDiChannelListUrl.arg(cat->url.split(".").at(1))); + #if QT_VERSION < 0x050000 + req.setRawHeader("Authorization", "Basic "+QString("%1:%2").arg(constDiApiUsername, constDiApiPassword).toAscii().toBase64()); + #else + req.setRawHeader("Authorization", "Basic "+QString("%1:%2").arg(constDiApiUsername, constDiApiPassword).toLatin1().toBase64()); + #endif + } else { + req=QNetworkRequest(cat->url); + } + + if (cat==favourites && !favourites->children.isEmpty()) { + beginRemoveRows(index, 0, favourites->children.count()-1); + qDeleteAll(favourites->children); + favourites->children.clear(); + endRemoveRows(); + } + + QNetworkReply *job=NetworkAccessManager::self()->get(req); + job->setProperty(constOrigUrlProperty, cat->url); + if (jobs.isEmpty()) { + emit loading(); + } + jobs.insert(job, cat); + connect(job, SIGNAL(finished()), SLOT(jobFinished())); + cat->state=CategoryItem::Fetching; + } + emit dataChanged(index, index); + } +} + +void StreamsModel::saveFavourites(bool force) { if (force) { - if (timer) { - timer->stop(); + if (favouritesSaveTimer) { + favouritesSaveTimer->stop(); } - persist(); + persistFavourites(); } else if (!QFile::exists(getInternalFile(false)) || !QFileInfo(getInternalFile(false)).isWritable()) { - if (timer) { - timer->stop(); + if (favouritesSaveTimer) { + favouritesSaveTimer->stop(); } - persist(); // Call persist now so as to log errors immediately + persistFavourites(); // Call persist now so as to log errors immediately } else { - if (!timer) { - timer=new QTimer(this); - connect(timer, SIGNAL(timeout()), this, SLOT(persist())); + if (!favouritesSaveTimer) { + favouritesSaveTimer=new QTimer(this); + connect(favouritesSaveTimer, SIGNAL(timeout()), this, SLOT(persistFavourites())); } - timer->start(30*1000); + favouritesSaveTimer->start(10*1000); } } -bool StreamsModel::load(const QString &filename, bool isInternal) +bool StreamsModel::checkFavouritesWritable() { - if (isInternal) { - if (filename.startsWith("http:/")) { - if (job) { - return false; - } - emit downloading(true); - job=NetworkAccessManager::self()->get(QUrl(filename)); - connect(job, SIGNAL(finished()), SLOT(downloadFinished())); + QString dirName=favouritesDir(); + bool isHttp=dirName.startsWith("http:/"); + favouritesIsWriteable=!isHttp && QFileInfo(dirName).isWritable(); + if (favouritesIsWriteable) { + QString fileName=getInternalFile(false); + if (QFile::exists(fileName) && !QFileInfo(fileName).isWritable()) { + favouritesIsWriteable=false; + } + } + return favouritesIsWriteable; +} + +void StreamsModel::reloadFavourites() +{ + fetchMore(createIndex(root->children.indexOf(favourites), 0, favourites)); +} + +void StreamsModel::removeFromFavourites(const QModelIndex &index) +{ + Item *item=static_cast(index.internalPointer()); + int pos=favourites->children.indexOf(item); + + if (-1!=pos) { + QModelIndex index=createIndex(root->children.indexOf(favourites), 0, (void *)favourites); + beginRemoveRows(index, pos, pos); + delete favourites->children.takeAt(pos); + endRemoveRows(); + favouritesModified=true; + saveFavourites(); + } +} + +void StreamsModel::addToFavourites(const QString &url, const QString &name) +{ + QSet existingNames; + + foreach (Item *i, favourites->children) { + if (i->url==url) { + return; + } + existingNames.insert(i->name); + } + + QString n=name; + int i=1; + for (; i<100 && existingNames.contains(n); ++i) { + n=name+QLatin1String("_")+QString::number(i); + } + + if (i<100) { + QModelIndex index=createIndex(root->children.indexOf(favourites), 0, (void *)favourites); + beginInsertRows(index, favourites->children.count(), favourites->children.count()); + favourites->children.append(new Item(url, n, favourites)); + endInsertRows(); + favouritesModified=true; + saveFavourites(); + } +} + +QString StreamsModel::favouritesNameForUrl(const QString &u) +{ + foreach (Item *i, favourites->children) { + if (i->url==u) { + return i->name; + } + } + return QString(); +} + +bool StreamsModel::nameExistsInFavourites(const QString &n) +{ + foreach (Item *i, favourites->children) { + if (i->name==n) { return true; - } else { - convertOldFile(filename); + } + } + return false; +} + +void StreamsModel::updateFavouriteStream(Item *item) +{ + int pos=favourites->children.indexOf(item); + + if (-1==pos) { + return; + } + QModelIndex index=createIndex(favourites->children.indexOf(item), 0, (void *)item); + favouritesModified=true; + saveFavourites(); + emit dataChanged(index, index); +} + +bool StreamsModel::importXml(const QString &fileName) +{ + return loadXml(fileName, createIndex(root->children.indexOf(favourites), 0, favourites)); +} + +bool StreamsModel::saveXml(const QString &fileName, const QList &items) +{ + QFile file(fileName); + + if (fileName.endsWith(".xml")) { + return file.open(QIODevice::WriteOnly) && saveXml(&file, items.isEmpty() ? favourites->children : items, true); + } else { + QtIOCompressor compressor(&file); + compressor.setStreamFormat(QtIOCompressor::GzipFormat); + return compressor.open(QIODevice::WriteOnly) && saveXml(&compressor, items.isEmpty() ? favourites->children : items, false); + } +} + +bool StreamsModel::validProtocol(const QString &file) +{ + QString scheme=QUrl(file).scheme(); + return scheme.isEmpty() || MPDConnection::self()->urlHandlers().contains(scheme); +} + +QString StreamsModel::modifyUrl(const QString &u, bool addPrefix, const QString &name) +{ + return MPDParseUtils::addStreamName(!addPrefix || !u.startsWith("http:") ? u : (constPrefix+u), name); +} + +static void filenames(QStringList &fn, bool addPrefix, const StreamsModel::CategoryItem *cat) +{ + foreach (const StreamsModel::Item *i, cat->children) { + if (i->isCategory()) { + filenames(fn, addPrefix, static_cast(i)); + } else if (!fn.contains(i->url) && StreamsModel::validProtocol(i->url)) { + fn << StreamsModel::modifyUrl(i->url, addPrefix, i->name); + } + } +} + +QStringList StreamsModel::filenames(const QModelIndexList &indexes, bool addPrefix) const +{ + QStringList fnames; + foreach(QModelIndex index, indexes) { + Item *item=static_cast(index.internalPointer()); + + if (item->isCategory()) { + ::filenames(fnames, addPrefix, static_cast(item)); + } else if (!fnames.contains(item->url) && validProtocol(item->url)) { + fnames << modifyUrl(item->url, addPrefix, item->name); } } - QFile file(filename); + return fnames; +} + +QMimeData * StreamsModel::mimeData(const QModelIndexList &indexes) const +{ + QMimeData *mimeData = new QMimeData(); + PlayQueueModel::encode(*mimeData, PlayQueueModel::constFileNameMimeType, filenames(indexes, true)); + return mimeData; +} + +QStringList StreamsModel::mimeTypes() const +{ + QStringList types; + types << PlayQueueModel::constFileNameMimeType; + return types; +} + +void StreamsModel::jobFinished() +{ + QNetworkReply *job=dynamic_cast(sender()); + + if (!job) { + return; + } + + job->deleteLater(); + + if (jobs.contains(job)) { + CategoryItem *cat=jobs[job]; + cat->state=CategoryItem::Fetched; + jobs.remove(job); + + QModelIndex index=createIndex(cat->parent->children.indexOf(cat), 0, (void *)cat); + if (QNetworkReply::NoError==job->error()) { + QList newItems; + if (cat==favourites) { + newItems=loadXml(job, true); + } else if (QLatin1String("http")==job->url().scheme()) { + QString url=job->url().toString(); + if (constRadioTimeHost==job->url().host()) { + newItems=parseRadioTimeResponse(job, cat); + } else if (constIceCastUrl==url) { + newItems=parseIceCastResponse(job, cat); + } else if (constSomaFMUrl==url) { + newItems=parseSomaFmResponse(job, cat); + } else if (constDiChannelListHost==job->url().host()) { + newItems=parseDigitallyImportedResponse(job, cat, job->property(constOrigUrlProperty).toString()); + } + } + + if (!newItems.isEmpty()) { + beginInsertRows(index, 0, newItems.count()-1); + cat->children=newItems; + endInsertRows(); + } + } + emit dataChanged(index, index); + if (jobs.isEmpty()) { + emit loaded(); + } + } +} + +void StreamsModel::persistFavourites() +{ + if (favouritesModified) { + QString fileName=getInternalFile(true); + favouritesModified=false; + if (favourites->children.isEmpty()) { + // No entries, so remove file... + if (QFile::exists(fileName) && !QFile::remove(fileName)) { + emit error(i18n("Failed to save stream list. Please check %1 is writable.").arg(fileName)); + reloadFavourites(); + } + } else if (saveXml(fileName, favourites->children)) { + Utils::setFilePerms(fileName); + } else { + emit error(i18n("Failed to save stream list. Please check %1 is writable.").arg(fileName)); + reloadFavourites(); + } + } +} + +QList StreamsModel::parseRadioTimeResponse(QIODevice *dev, CategoryItem *cat) +{ + QList newItems; + QXmlStreamReader doc(dev); + while (!doc.atEnd()) { + doc.readNext(); + if (doc.isStartElement() && QLatin1String("outline")==doc.name()) { + Item *item = parseRadioTimeEntry(doc, cat); + if (item) { + newItems.append(item); + } + } + } + return newItems; +} + +QList StreamsModel::parseIceCastResponse(QIODevice *dev, CategoryItem *cat) +{ + QList newItems; + QXmlStreamReader doc(dev); + while (!doc.atEnd()) { + doc.readNext(); + if (doc.isStartElement() && QLatin1String("entry")==doc.name()) { + Item *item = parseIceCastEntry(doc, cat); + if (item) { + newItems.append(item); + } + } + } + return newItems; +} + +QList StreamsModel::parseSomaFmResponse(QIODevice *dev, CategoryItem *cat) +{ + QList newItems; + QXmlStreamReader doc(dev); + while (!doc.atEnd()) { + doc.readNext(); + if (doc.isStartElement() && QLatin1String("channel")==doc.name()) { + Item *item = parseSomaFmEntry(doc, cat); + if (item) { + newItems.append(item); + } + } + } + return newItems; +} + +QList StreamsModel::parseDigitallyImportedResponse(QIODevice *dev, CategoryItem *cat, const QString &origUrl) +{ + QList newItems; + QJson::Parser parser; + QVariantMap data = parser.parse(dev).toMap(); + QString listenHost=QLatin1String("listen.")+QUrl(origUrl).host().remove("www."); + + if (data.contains("channel_filters")) { + QVariantList filters = data["channel_filters"].toList(); + + foreach (const QVariant &filter, filters) { + // Find the filter called "All" + QVariantMap filterMap = filter.toMap(); + if (filterMap.value("name", QString()).toString() != "All") { + continue; + } + + // Add all its stations to the result + QVariantList channels = filterMap.value("channels", QVariantList()).toList(); + foreach (const QVariant &channel, channels) { + QVariantMap channelMap = channel.toMap(); + QString url=constDiStdUrl.arg(listenHost).arg(channelMap.value("key").toString()); + newItems.append(new Item(url, channelMap.value("name").toString(), cat)); + } + + break; + } + } + + return newItems; +} + +StreamsModel::Item * StreamsModel::parseRadioTimeEntry(QXmlStreamReader &doc, CategoryItem *parent) +{ + Item *item=0; + CategoryItem *cat=0; + while (!doc.atEnd()) { + if (doc.isStartElement()) { + QString text=doc.attributes().value("text").toString(); + if (!text.isEmpty()) { + QString url=doc.attributes().value("URL").toString(); + bool isStation=QLatin1String("audio")==doc.attributes().value("type").toString(); + if (isStation) { + item=new Item(url, text, parent); + } else { + item=cat=new CategoryItem(url, text, parent); + } + } + } + + doc.readNext(); + if (doc.isStartElement() && QLatin1String("outline")==doc.name()) { + Item *child = parseRadioTimeEntry(doc, cat); + if (child) { + if (cat) { + cat->state=CategoryItem::Fetched; + cat->children.append(child); + } else { + delete child; + } + } + } else if (doc.isEndElement() && QLatin1String("outline")==doc.name()) { + break; + } + } + + return item; +} + +StreamsModel::Item * StreamsModel::parseIceCastEntry(QXmlStreamReader &doc, CategoryItem *parent) +{ + QString name; + QString url; + while (!doc.atEnd()) { + doc.readNext(); + + if (QXmlStreamReader::StartElement==doc.tokenType()) { + QStringRef elem = doc.name(); + + if (QLatin1String("server_name")==elem) { + name=doc.readElementText().trimmed(); + } else if (QLatin1String("listen_url")==elem) { + url=doc.readElementText().toFloat(); + } + } else if (doc.isEndElement() && QLatin1String("entry")==doc.name()) { + break; + } + } + + return name.isEmpty() || url.isEmpty() ? 0 : new Item(url, name, parent); +} + +StreamsModel::Item * StreamsModel::parseSomaFmEntry(QXmlStreamReader &doc, CategoryItem *parent) +{ + QString name; + QString url; + QString streamFormat; + + while (!doc.atEnd()) { + doc.readNext(); + + if (QXmlStreamReader::StartElement==doc.tokenType()) { + QStringRef elem = doc.name(); + + if (QLatin1String("title")==elem) { + name=doc.readElementText().trimmed(); + } else if (QLatin1String("fastpls")==elem) { + if (streamFormat.isEmpty() || QLatin1String("mp3")!=streamFormat) { + streamFormat=doc.attributes().value("format").toString(); + url=doc.readElementText(); + } + } + } else if (doc.isEndElement() && QLatin1String("channel")==doc.name()) { + break; + } + } + + return name.isEmpty() || url.isEmpty() ? 0 : new Item(url, name, parent); +} + +void StreamsModel::loadFavourites(const QModelIndex &index) +{ + if (!favourites->children.isEmpty()) { + beginRemoveRows(index, 0, favourites->children.count()-1); + qDeleteAll(favourites->children); + favourites->children.clear(); + endRemoveRows(); + } + loadXml(getInternalFile(false), index); +} + +bool StreamsModel::loadXml(const QString &fileName, const QModelIndex &index) +{ + QFile file(fileName); if (!file.open(QIODevice::ReadOnly)) { return false; } - // Check for gzip header... QByteArray header=file.read(2); bool isCompressed=((unsigned char)header[0])==0x1f && ((unsigned char)header[1])==0x8b; @@ -357,119 +736,60 @@ bool StreamsModel::load(const QString &filename, bool isInternal) return false; } } - return load(isCompressed ? (QIODevice *)&compressor : (QIODevice *)&file, isInternal); -} -void StreamsModel::downloadFinished() -{ - QNetworkReply *reply=qobject_cast(sender()); + QList newItems=loadXml(isCompressed ? (QIODevice *)&compressor : (QIODevice *)&file, true); - if (reply==job) { - job=0; - if(QNetworkReply::NoError==reply->error()) { - QtIOCompressor comp(reply); - comp.setStreamFormat(QtIOCompressor::GzipFormat); - if (comp.open(QIODevice::ReadOnly)) { - beginResetModel(); - if (!load(&comp, true)) { - emit error(i18n("Failed to parse downloaded stream list.")); - } - endResetModel(); - } else { - emit error(i18n("Failed to read downloaded stream list.")); - } - } else { - emit error(i18n("Failed to download stream list.")); - } - emit downloading(false); + if (!newItems.isEmpty()) { + beginInsertRows(index, favourites->children.count(), (favourites->children.count()+newItems.count())-1); + favourites->children+=newItems; + endInsertRows(); + return true; } - reply->deleteLater(); + return false; } -bool StreamsModel::load(QIODevice *dev, bool isInternal) +QList StreamsModel::loadXml(QIODevice *dev, bool isInternal) { + QList newItems; QXmlStreamReader doc(dev); - bool haveInserted=false; - CategoryItem *cat=0; - QString unknown=i18n("Unknown"); - QString import=i18n("Import"); + QSet existingUrls; + QSet existingNames; + + if (!isInternal) { + foreach (Item *i, favourites->children) { + existingUrls.insert(i->url); + existingNames.insert(i->name); + } + } while (!doc.atEnd()) { doc.readNext(); - if (doc.isStartElement()) { - if (QLatin1String("category")==doc.name()) { - QString catName=doc.attributes().value("name").toString(); - QString catIcon=doc.attributes().value("icon").toString(); - cat=getCategory(catName, true, !isInternal); - if (cat && cat->icon.isEmpty() && !catIcon.isEmpty()) { - cat->icon=catIcon; - } - } else if (QLatin1String("stream")==doc.name()) { - QString name=doc.attributes().value("name").toString(); - QString icon=doc.attributes().value("icon").toString(); - QString genre=doc.attributes().value("genre").toString(); - QString origName=name; - QUrl url=QUrl(doc.attributes().value("url").toString()); + if (doc.isStartElement() && QLatin1String("stream")==doc.name()) { + QString name=doc.attributes().value("name").toString(); + QString origName=name; + QString url=doc.attributes().value("url").toString(); - if (!cat) { - cat=getCategory(isInternal ? unknown : import, true, !isInternal); - } - - if (!name.isEmpty() && url.isValid() && (isInternal || !entryExists(cat, QString(), url))) { - int i=1; - for (; i<100 && entryExists(cat, name); ++i) { + if (!name.isEmpty() && !name.isEmpty() && (isInternal || !existingUrls.contains(url))) { + int i=1; + if (!isInternal) { + for (; i<100 && existingNames.contains(name); ++i) { name=origName+QLatin1String("_")+QString::number(i); } - - if (i<100) { - if (!haveInserted) { - haveInserted=true; - } - if (!isInternal) { - beginInsertRows(createIndex(items.indexOf(cat), 0, cat), cat->streams.count(), cat->streams.count()); - } - StreamItem *stream=new StreamItem(name, genre.isEmpty() ? unknown : genre, icon, url, cat); - cat->itemMap.insert(url.toString(), stream); - cat->streams.append(stream); - if (!isInternal) { - endInsertRows(); - } - } } - } - } else if (doc.isEndElement()) { - if (QLatin1String("category")==doc.name()) { - cat=0; + + if (i<100) { + existingNames.insert(name); + existingUrls.insert(url); + newItems.append(new Item(url, name, favourites)); + } } } } - - if (haveInserted) { - updateGenres(); - } - if (haveInserted && !isInternal) { - modified=true; - save(); - } - - return haveInserted; + return newItems; } -bool StreamsModel::save(const QString &filename, const QSet &selection, bool streamsOnly) -{ - QFile file(filename); - - if (streamsOnly) { - return file.open(QIODevice::WriteOnly) && save(&file, selection, streamsOnly, true); - } else { - QtIOCompressor compressor(&file); - compressor.setStreamFormat(QtIOCompressor::GzipFormat); - return compressor.open(QIODevice::WriteOnly) && save(&compressor, selection, streamsOnly, filename!=getInternalFile(false)); - } -} - -bool StreamsModel::save(QIODevice *dev, const QSet &selection, bool streamsOnly, bool format) +bool StreamsModel::saveXml(QIODevice *dev, const QList &items, bool format) const { QXmlStreamWriter doc(dev); doc.writeStartDocument(); @@ -482,536 +802,13 @@ bool StreamsModel::save(QIODevice *dev, const QSet &select doc.setAutoFormatting(false); } - QString unknown=i18n("Unknown"); - - foreach (CategoryItem *c, items) { - if (selection.isEmpty() || selection.contains(c)) { - if (!streamsOnly) { - doc.writeStartElement("category"); - doc.writeAttribute("name", c->name); - if (!c->icon.isEmpty()) { - doc.writeAttribute("icon", c->icon); - } - } - foreach (StreamItem *s, c->streams) { - if (selection.isEmpty() || selection.contains(s)) { - doc.writeStartElement("stream"); - doc.writeAttribute("name", s->name); - doc.writeAttribute("url", s->url.toString()); - if (!streamsOnly && !s->icon.isEmpty()) { - doc.writeAttribute("icon", s->icon); - } - QSet genres=s->genres; - genres.remove(unknown); - if (!genres.isEmpty()) { - doc.writeAttribute("genre", QStringList(genres.toList()).join(constGenreSeparator)); - } - doc.writeEndElement(); - } - } - if (!streamsOnly) { - doc.writeEndElement(); - } - } + foreach (const Item *i, items) { + doc.writeStartElement("stream"); + doc.writeAttribute("name", i->name); + doc.writeAttribute("url", i->url); + doc.writeEndElement(); } doc.writeEndElement(); doc.writeEndDocument(); return true; } - -bool StreamsModel::add(const QString &cat, const QString &name, const QString &genre, const QString &icon, const QString &url) -{ - CategoryItem *c=getCategory(cat, true, true); - - if (entryExists(c, name, url)) { - return false; - } - - beginInsertRows(createIndex(items.indexOf(c), 0, c), c->streams.count(), c->streams.count()); - StreamItem *stream=new StreamItem(name, genreSet(genre), icon, QUrl(url), c); - c->itemMap.insert(url, stream); - c->streams.append(stream); - endInsertRows(); - updateGenres(); - modified=true; - save(); - return true; -} - -void StreamsModel::add(const QString &cat, const QString &icon, const QList &streams) -{ - if (streams.isEmpty()) { - return; - } - StreamsModel::CategoryItem *ci=getCategory(cat, false, true); - if (ci) { - removeCategory(ci); - } - ci=getCategory(cat, true, true); - ci->icon=icon; - beginInsertRows(createIndex(items.indexOf(ci), 0, ci), 0, streams.count()-1); - foreach (StreamsModel::StreamItem *s, streams) { - s->parent=ci; - ci->itemMap.insert(s->url.toString(), s); - ci->streams.append(s); - } - endInsertRows(); - updateGenres(); - modified=true; - save(); -} - -void StreamsModel::editCategory(const QModelIndex &index, const QString &name, const QString &icon) -{ - if (!index.isValid()) { - return; - } - - Item *item=static_cast(index.internalPointer()); - - if (item->isCategory() && (item->name!=name || item->icon!=icon)) { - item->name=name; - item->icon=icon; - emit dataChanged(index, index); - modified=true; - save(); - } -} - -void StreamsModel::editStream(const QModelIndex &index, const QString &oldCat, const QString &newCat, const QString &name, const QString &genre, const QString &icon, const QString &url) -{ - if (!index.isValid()) { - return; - } - - CategoryItem *cat=getCategory(oldCat); - - if (!cat) { - return; - } - - if (!newCat.isEmpty() && oldCat!=newCat) { - if(add(newCat, name, genre, icon, url)) { - updateGenres(); - remove(index); - } - return; - } - - int row=index.row(); - - if (rowstreams.count()) { - StreamItem *stream=cat->streams.at(row); - QString oldUrl(stream->url.toString()); - stream->name=name; - stream->url=url; - stream->icon=icon; - if (oldUrl!=url) { - cat->itemMap.remove(oldUrl); - cat->itemMap.insert(url, stream); - } - QSet genres=genreSet(genre); - if (stream->genres!=genres) { - stream->genres=genres; - updateGenres(); - } - emit dataChanged(index, index); - modified=true; - save(); - } -} - -void StreamsModel::remove(const QModelIndex &index) -{ - if (!index.isValid()) { - return; - } - int row=index.row(); - Item *item=static_cast(index.internalPointer()); - - if (item->isCategory()) { - if (row(item); - if (rowparent->streams.count()) { - CategoryItem *cat=stream->parent; - StreamItem *old=cat->streams.at(row); - - /*if (1==cat->streams.count()) { - int catRow=items.indexOf(cat); - beginRemoveRows(QModelIndex(), catRow, catRow); - items.removeAt(catRow); - delete cat; - endRemoveRows(); - } else*/ { - beginRemoveRows(createIndex(items.indexOf(cat), 0, cat), row, row); - cat->streams.removeAt(row); - cat->itemMap.remove(old->url.toString()); - endRemoveRows(); - delete old; - updateGenres(); - } - modified=true; - } - } - - save(); -} - -void StreamsModel::removeCategory(CategoryItem *cat) -{ - int row=items.indexOf(cat); - if (-1==row) { - return; - } - beginRemoveRows(QModelIndex(), row, row); - items.removeAt(row); - delete cat; - endRemoveRows(); - modified=true; -} - -void StreamsModel::removeStream(StreamItem *stream) -{ - int parentRow=items.indexOf(stream->parent); - if (-1==parentRow) { - return; - } - CategoryItem *cat=stream->parent; - int row=cat->streams.indexOf(stream); - if (-1==row) { - return; - } - beginRemoveRows(createIndex(parentRow, 0, cat), row, row); - cat->streams.removeAt(row); - cat->itemMap.remove(stream->url.toString()); - endRemoveRows(); - delete stream; - modified=true; -} - -void StreamsModel::removeStream(const QString &category, const QString &name, const QString &url) -{ - CategoryItem *cat=getCategory(category); - if (!cat) { - return; - } - int parentRow=items.indexOf(cat); - if (-1==parentRow) { - return; - } - StreamItem *stream=getStream(cat, name, QUrl(url)); - if (0==stream) { - return; - } - int row=cat->streams.indexOf(stream); - if (-1==row) { - return; - } - beginRemoveRows(createIndex(parentRow, 0, cat), row, row); - cat->streams.removeAt(row); - cat->itemMap.remove(stream->url.toString()); - endRemoveRows(); - delete stream; - - if (cat->streams.isEmpty()) { - removeCategory(cat); - } - modified=true; -} - -StreamsModel::CategoryItem * StreamsModel::getCategory(const QString &name, bool create, bool signal) -{ - foreach (CategoryItem *c, items) { - if (c->name==name) { - return c; - } - } - - if (create) { - CategoryItem *cat=new CategoryItem(name); - if (signal) { - beginInsertRows(QModelIndex(), items.count(), items.count()); - } - items.append(cat); - if (signal) { - endInsertRows(); - } - return cat; - } - return 0; -} - -QString StreamsModel::name(CategoryItem *cat, const QString &url) -{ - if(cat) { - QHash::ConstIterator it=cat->itemMap.find(url); - - return it==cat->itemMap.end() ? QString() : it.value()->name; - } - - return QString(); -} - -StreamsModel::StreamItem * StreamsModel::getStream(CategoryItem *cat, const QString &name, const QUrl &url) -{ - if(cat) { - foreach (StreamItem *s, cat->streams) { - if ( (!name.isEmpty() && s->name==name) || (!url.isEmpty() && s->url==url)) { - return s; - } - } - } - - return 0; -} - -Qt::ItemFlags StreamsModel::flags(const QModelIndex &index) const -{ - if (index.isValid()) { - return index.internalPointer() && static_cast(index.internalPointer())->isCategory() - ? (Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsEnabled | Qt::ItemIsDropEnabled) - : (Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsEnabled); - } else { - return Qt::NoItemFlags; - } -} - - -Qt::DropActions StreamsModel::supportedDropActions() const -{ - return Qt::CopyAction | Qt::MoveAction; -} - -bool StreamsModel::validProtocol(const QString &file) const -{ - QString scheme=QUrl(file).scheme(); - return scheme.isEmpty() || MPDConnection::self()->urlHandlers().contains(scheme); -} - -QString StreamsModel::modifyUrl(const QString &u, bool addPrefix, const QString &name) -{ - return MPDParseUtils::addStreamName(!addPrefix || !u.startsWith("http:") ? u : (constPrefix+u), name); -} - -QStringList StreamsModel::filenames(const QModelIndexList &indexes, bool addPrefix) const -{ - QStringList fnames; - QSet selectedCategories; - foreach(QModelIndex index, indexes) { - Item *item=static_cast(index.internalPointer()); - - if (item->isCategory()) { - selectedCategories.insert(item); - foreach (const StreamItem *s, static_cast(item)->streams) { - QString f=s->url.toString(); - if (!fnames.contains(f) && validProtocol(f)) { - fnames << modifyUrl(f, addPrefix, s->name); - } - } - } else if (!selectedCategories.contains(static_cast(item)->parent)) { - QString f=static_cast(item)->url.toString(); - if (!fnames.contains(f) && validProtocol(f)) { - fnames << modifyUrl(f, addPrefix, static_cast(item)->name); - } - } - } - - return fnames; -} - -QMimeData * StreamsModel::mimeData(const QModelIndexList &indexes) const -{ - QMimeData *mimeData = new QMimeData(); - PlayQueueModel::encode(*mimeData, PlayQueueModel::constFileNameMimeType, filenames(indexes, true)); - QStringList categories; - QStringList streams; - - foreach(QModelIndex index, indexes) { - Item *item=static_cast(index.internalPointer()); - - if (item->isCategory()) { - categories.append(item->name); - } else { - streams.append(encodeStreamItem(static_cast(item))); - } - } - - if (!categories.isEmpty()) { - PlayQueueModel::encode(*mimeData, constStreamCategoryMimeType, categories); - } - if (!streams.isEmpty()) { - PlayQueueModel::encode(*mimeData, constStreamMimeType, streams); - } - return mimeData; -} - -bool StreamsModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int col, const QModelIndex &parent) -{ - Q_UNUSED(col) - Q_UNUSED(row) - - if (!writable) { - return false; - } - - if (Qt::IgnoreAction==action) { - return true; - } - - if (!parent.isValid()) { - return false; - } - - if (data->hasFormat(constStreamCategoryMimeType)) { - // Cant drag categories onto categories... - return false; - } - - if (data->hasFormat(constStreamMimeType)) { - Item *item=static_cast(parent.internalPointer()); - if (!item->isCategory()) { - // Should not happen, due to flags() - but make sure!!! - return false; - } - CategoryItem *dest=static_cast(item); - QStringList streams=PlayQueueModel::decode(*data, constStreamMimeType); - bool ok=false; - - foreach (const QString &s, streams) { - DndStream stream=decodeStreamItem(s); - if (!stream.category.isEmpty() && stream.category!=dest->name) { - if (add(dest->name, stream.name, stream.genre, stream.icon, stream.url)) { - removeStream(stream.category, stream.name, stream.url); - } - ok=true; - } - } - return ok; - } - - return false; -} - -QStringList StreamsModel::mimeTypes() const -{ - QStringList types; - types << PlayQueueModel::constFileNameMimeType << constStreamCategoryMimeType; - return types; -} - - -void StreamsModel::persist() -{ - if (modified) { - QString fileName=getInternalFile(true); - modified=false; - if (items.isEmpty()) { - // No entries, so remove file... - if (QFile::exists(fileName) && !QFile::remove(fileName)) { - emit error(i18n("Failed to save stream list. Please check %1 is writable.").arg(fileName)); - reload(); - } - } - else if (save(fileName)) { - Utils::setFilePerms(fileName); - } else { - emit error(i18n("Failed to save stream list. Please check %1 is writable.").arg(fileName)); - reload(); - } - } -} - -void StreamsModel::updateGenres() -{ - QSet genres; - foreach (CategoryItem *c, items) { - c->genres.clear(); - foreach (const StreamItem *s, c->streams) { - c->genres+=s->genres; - genres+=s->genres; - } - } - - emit updateGenres(genres); -} - -bool StreamsModel::checkWritable() -{ - QString dirName=dir(); - bool isHttp=dirName.startsWith("http:/"); - writable=!isHttp && QFileInfo(dirName).isWritable(); - if (writable) { - QString fileName=getInternalFile(false); - if (QFile::exists(fileName) && !QFileInfo(fileName).isWritable()) { - writable=false; - } - } - return writable; -} - -Action * StreamsModel::getAction(const QModelIndex &idx, int num) -{ - Q_UNUSED(idx) - return 0==num ? StdActions::self()->replacePlayQueueAction : 0; -} - -void StreamsModel::clearCategories() -{ - qDeleteAll(items); - items.clear(); - modified=true; -} - -void StreamsModel::CategoryItem::clearStreams() -{ - qDeleteAll(streams); - streams.clear(); -} - -const QMap & StreamsModel::icons() -{ - static bool loaded=false; - if (!loaded) { - loaded=true; - #ifdef Q_OS_WIN - QString dir(QCoreApplication::applicationDirPath()+"/streamicons/"); - #else - QString dir(QString(INSTALL_PREFIX"/share/")+QCoreApplication::applicationName()+"/streamicons/"); - #endif - QStringList names=QDir(dir).entryList(QStringList() << "*.svg" << "*.png"); - foreach (const QString &name, names) { - QString n=QString(name).remove(".svg").remove(".png"); - if (!iconMap.contains(n)) { - iconMap.insert(n, QIcon(dir+name)); - } - } - } - return iconMap; -} - -QIcon StreamsModel::icon(const QString &name) const -{ - if (name.isEmpty()) { - return QIcon(); - } - - if (!iconMap.contains(name)) { - #ifdef Q_OS_WIN - QString dir(QCoreApplication::applicationDirPath()+"/streamicons/"); - #else - QString dir(QString(INSTALL_PREFIX"/share/")+QCoreApplication::applicationName()+"/streamicons/"); - #endif - iconMap.insert(name, QFile::exists(dir+name+".svg") ? QIcon(dir+name+".svg") : (QFile::exists(dir+name+".png") ? QIcon(dir+name+".png") : QIcon())); - } - - return iconMap[name]; -} diff --git a/models/streamsmodel.h b/models/streamsmodel.h index fd993ea2c..18a5924bd 100644 --- a/models/streamsmodel.h +++ b/models/streamsmodel.h @@ -20,133 +20,123 @@ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ + #ifndef STREAMSMODEL_H #define STREAMSMODEL_H -#include -#include -#include -#include -#include -#include #include "actionmodel.h" +#include +#include +#include -class QTimer; -class QIODevice; class QNetworkReply; +class QXmlStreamReader; +class QIODevice; +class QTimer; class StreamsModel : public ActionModel { Q_OBJECT public: - static const QString constPrefix; - static QString modifyUrl(const QString &u, bool addPrefix=true, const QString &name=QString()); - static QString dir(); - static const QLatin1String constGenreSeparator; - - static QSet genreSet(const QString &str) { return str.split(constGenreSeparator, QString::SkipEmptyParts).toSet(); } - + struct CategoryItem; struct Item { - Item(const QString &n, const QString &i) : name(n), icon(i) { name.replace("#", ""); } - virtual bool isCategory() = 0; + Item(const QString &u, const QString &n=QString(), CategoryItem *p=0) : url(u), name(n), parent(p) { } virtual ~Item() { } + QString url; QString name; - QString icon; - }; - - struct CategoryItem; - struct StreamItem : public Item - { - StreamItem(const QString &n, const QString &g, const QString &i, const QUrl &u, CategoryItem *p=0) : Item(n, i), genres(genreSet(g)), url(u), parent(p) { } - StreamItem(const QString &n, const QSet &g, const QString &i, const QUrl &u, CategoryItem *p=0) : Item(n, i), genres(g), url(u), parent(p) { } - bool isCategory() { return false; } - QString genreString() const { return QStringList(genres.toList()).join(constGenreSeparator); } - QSet genres; - QUrl url; CategoryItem *parent; + virtual bool isCategory() const { return false; } }; - + struct CategoryItem : public Item { - CategoryItem(const QString &n, const QString &i=QString()) : Item(n, i) { } - virtual ~CategoryItem() { clearStreams(); } - bool isCategory() { return true; } - void clearStreams(); - QHash itemMap; - QList streams; - QSet genres; + enum State + { + Initial, + Fetching, + Fetched + }; + + CategoryItem(const QString &u, const QString &n=QString(), CategoryItem *p=0, const QIcon &i=QIcon()) + : Item(u, n, p), state(Initial), isFavourites(false), icon(i) { } + virtual ~CategoryItem() { qDeleteAll(children); } + virtual bool isCategory() const { return true; } + State state; + bool isFavourites; + QList children; + QIcon icon; }; + + static const QString constPrefix; static StreamsModel * self(); + static QString favouritesDir(); + static QString modifyUrl(const QString &u, bool addPrefix=true, const QString &name=QString()); + static bool validProtocol(const QString &file); - StreamsModel(); + StreamsModel(QObject *parent = 0); ~StreamsModel(); + QModelIndex index(int, int, const QModelIndex & = QModelIndex()) const; + QModelIndex parent(const QModelIndex &) const; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; int rowCount(const QModelIndex &parent = QModelIndex()) const; - int columnCount(const QModelIndex&) const { return 1; } - bool hasChildren(const QModelIndex &parent) const; - QModelIndex parent(const QModelIndex &index) const; - QModelIndex index(int row, int column, const QModelIndex &parent) const; + int columnCount(const QModelIndex &) const; QVariant data(const QModelIndex &, int) const; - void reload(); - void save(bool force=false); - bool save(const QString &filename, const QSet &selection=QSet(), bool streamsOnly=false); - bool import(const QString &filename) { return load(filename, false); } - bool add(const QString &cat, const QString &name, const QString &genre, const QString &icon, const QString &url); - void add(const QString &cat, const QString &icon, const QList &streams); - void editCategory(const QModelIndex &index, const QString &name, const QString &icon); - void editStream(const QModelIndex &index, const QString &oldCat, const QString &newCat, const QString &name, const QString &genre, const QString &icon, const QString &url); - void remove(const QModelIndex &index); - void removeCategory(CategoryItem *cat); - void removeStream(StreamItem *stream); - void removeStream(const QString &category, const QString &name, const QString &url); - QString name(const QString &cat, const QString &url) { return name(getCategory(cat), url); } - bool entryExists(const QString &cat, const QString &name, const QUrl &url=QUrl()) { return entryExists(getCategory(cat), name, url); } Qt::ItemFlags flags(const QModelIndex &index) const; - Qt::DropActions supportedDropActions() const; - bool validProtocol(const QString &file) const; + bool hasChildren(const QModelIndex &index) const; + bool canFetchMore(const QModelIndex &index) const; + void fetchMore(const QModelIndex &index); + + void saveFavourites(bool force=false); + bool haveFavourites() const { return !favourites->children.isEmpty(); } + bool isFavoritesWritable() { return favouritesIsWriteable; } + bool checkFavouritesWritable(); + void reloadFavourites(); + void removeFromFavourites(const QModelIndex &index); + void addToFavourites(const QString &url, const QString &name); + QString favouritesNameForUrl(const QString &u); + bool nameExistsInFavourites(const QString &n); + void updateFavouriteStream(Item *item); + + bool importXml(const QString &fileName); + bool saveXml(const QString &fileName, const QList &items); + QStringList filenames(const QModelIndexList &indexes, bool addPrefix) const; QMimeData * mimeData(const QModelIndexList &indexes) const; - bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int col, const QModelIndex &parent); QStringList mimeTypes() const; - void mark(const QList &rows, bool f); - void updateGenres(); - bool isWritable() const { return writable; } - bool checkWritable(); - Action * getAction(const QModelIndex &idx, int num); - const QMap & icons(); - QIcon icon(const QString &name) const; Q_SIGNALS: - void downloading(bool); - void updateGenres(const QSet &genres); - void error(const QString &e); + void loading(); + void loaded(); + void error(const QString &msg); private Q_SLOTS: - void downloadFinished(); + void jobFinished(); + void persistFavourites(); private: - bool save(QIODevice *dev, const QSet &selection, bool streamsOnly, bool format); - void clearCategories(); - bool load(const QString &filename, bool isInternal); - bool load(QIODevice *dev, bool isInternal); - CategoryItem * getCategory(const QString &name, bool create=false, bool signal=false); - QString name(CategoryItem *cat, const QString &url); - bool entryExists(CategoryItem *cat, const QString &name, const QUrl &url=QUrl()) { return 0!=getStream(cat, name, url); } - StreamItem * getStream(CategoryItem *cat, const QString &name, const QUrl &url); - -private Q_SLOTS: - void persist(); + Item * toItem(const QModelIndex &index) const { return index.isValid() ? static_cast(index.internalPointer()) : root; } + QList parseRadioTimeResponse(QIODevice *dev, CategoryItem *cat); + QList parseIceCastResponse(QIODevice *dev, CategoryItem *cat); + QList parseSomaFmResponse(QIODevice *dev, CategoryItem *cat); + QList parseDigitallyImportedResponse(QIODevice *dev, CategoryItem *cat, const QString &origUrl); + Item * parseRadioTimeEntry(QXmlStreamReader &doc, CategoryItem *parent); + Item * parseIceCastEntry(QXmlStreamReader &doc, CategoryItem *parent); + Item * parseSomaFmEntry(QXmlStreamReader &doc, CategoryItem *parent); + void loadFavourites(const QModelIndex &index); + bool loadXml(const QString &fileName, const QModelIndex &index); + QList loadXml(QIODevice *dev, bool isInternal); + bool saveXml(QIODevice *dev, const QList &items, bool format) const; private: - QList items; - mutable QMap iconMap; - bool writable; - bool modified; - QTimer *timer; - QNetworkReply *job; + QMap jobs; + CategoryItem *root; + CategoryItem *favourites; + bool favouritesIsWriteable; + bool favouritesModified; + QTimer *favouritesSaveTimer; }; #endif diff --git a/models/streamsproxymodel.cpp b/models/streamsproxymodel.cpp index ce31968f0..d72f39157 100644 --- a/models/streamsproxymodel.cpp +++ b/models/streamsproxymodel.cpp @@ -33,6 +33,26 @@ StreamsProxyModel::StreamsProxyModel(QObject *parent) sort(0); } +bool StreamsProxyModel::filterAcceptsItem(const void *i, QStringList strings) const +{ + const StreamsModel::Item *item=static_cast(i); + strings << item->name; + if (matchesFilter(strings)) { + return true; + } + + if (item->isCategory()) { + const StreamsModel::CategoryItem *cat=static_cast(item); + foreach (const StreamsModel::Item *c, cat->children) { + if (filterAcceptsItem(c, strings)) { + return true; + } + } + } + + return false; +} + bool StreamsProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const { if (!filterEnabled) { @@ -41,33 +61,58 @@ bool StreamsProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourc if (!isChildOfRoot(sourceParent)) { return true; } + const QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent); StreamsModel::Item *item = static_cast(index.internalPointer()); + QModelIndex idx=index.parent(); + QStringList strings; + + // Traverse back up tree, so we get parent strings... + while (idx.isValid()) { + StreamsModel::Item *i = static_cast(idx.internalPointer()); + if (!i->isCategory()) { + break; + } + strings << i->name; + idx=idx.parent(); + } if (item->isCategory()) { - StreamsModel::CategoryItem *cat = static_cast(item); - - if (!filterGenre.isEmpty() && !cat->genres.contains(filterGenre)) { - return false; - } - - if (cat->name.contains(filterRegExp())) { + // Check *all* children... + if (filterAcceptsItem(item, strings)) { return true; } - - foreach (StreamsModel::StreamItem *s, cat->streams) { - if (matchesFilter(QStringList() << cat->name << s->name)) { - return true; - } - } } else { - StreamsModel::StreamItem *s = static_cast(item); - - if (!filterGenre.isEmpty() && !s->genres.contains(filterGenre)) { - return false; - } - return matchesFilter(QStringList() << s->name); + strings << item->name; + return matchesFilter(strings); } return false; } + +bool StreamsProxyModel::lessThan(const QModelIndex &left, const QModelIndex &right) const +{ + const StreamsModel::Item * leftItem = static_cast(left.internalPointer()); + const StreamsModel::Item * rightItem = static_cast(right.internalPointer()); + + if (leftItem->isCategory() && !rightItem->isCategory()) { + return true; + } + if (!leftItem->isCategory() && rightItem->isCategory()) { + return false; + } + + if (leftItem->isCategory() && rightItem->isCategory()) { + const StreamsModel::CategoryItem * leftCat = static_cast(leftItem); + const StreamsModel::CategoryItem * rightCat = static_cast(rightItem); + + if (leftCat->isFavourites && !rightCat->isFavourites) { + return true; + } + if (!leftCat->isFavourites && rightCat->isFavourites) { + return false; + } + } + + return QSortFilterProxyModel::lessThan(left, right); +} diff --git a/models/streamsproxymodel.h b/models/streamsproxymodel.h index c01a9a7fa..20f444196 100644 --- a/models/streamsproxymodel.h +++ b/models/streamsproxymodel.h @@ -26,12 +26,15 @@ #include "proxymodel.h" + class StreamsProxyModel : public ProxyModel { public: StreamsProxyModel(QObject *parent = 0); - void setFilterGenre(const QString &genre); + + bool filterAcceptsItem(const void *i, QStringList strings) const; bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const; + bool lessThan(const QModelIndex &left, const QModelIndex &right) const; }; #endif diff --git a/streams/icons/CMakeLists.txt b/streams/icons/CMakeLists.txt deleted file mode 100644 index 09d58db83..000000000 --- a/streams/icons/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -file(GLOB svg_files *.svg) -file(GLOB png_files *.png) -if (WIN32) - install(FILES ${svg_files} ${png_files} DESTINATION ${CMAKE_INSTALL_PREFIX}/streamicons/) -else (WIN32) - install(FILES ${svg_files} ${png_files} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/${CMAKE_PROJECT_NAME}/streamicons/) -endif (WIN32) diff --git a/streams/icons/bassclef.svg b/streams/icons/bassclef.svg deleted file mode 100644 index 6a0159772..000000000 --- a/streams/icons/bassclef.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/streams/icons/dice.svg b/streams/icons/dice.svg deleted file mode 100644 index 834a81477..000000000 --- a/streams/icons/dice.svg +++ /dev/null @@ -1,6 +0,0 @@ - -Six Sided Dice - - - - diff --git a/streams/icons/flag_ad.png b/streams/icons/flag_ad.png deleted file mode 100644 index 25c62eac29200279227144b850c99427db9038f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2130 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 E084Pl4*&oF diff --git a/streams/icons/flag_ag.png b/streams/icons/flag_ag.png deleted file mode 100644 index 66bade7533540df53aa642663089394d68509a3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1453 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfr05%fKQ0)o1ma~X=w}$ z3=A=!7!v<8GBPm6d}K`g$Hc_I%)r3R%)p%RhlQDeCF(6J0|Ofa0~;#?I~xNB0|N&; z12-oF4;KS3Hv=CJ10NrsK-617J_f<4H$n^yLi`NE0t_O845ADSVnPh!3=HDoPbC-_ zB*LFai7`ksFvy5A$TBd6V8g&*%fMi3%wX%j%ifg1!HmJloWa?G!Nron#buML z6@wcCgImvk4+aKL1_m!X25)-?e+GsCXNC|rhER8gIDdu&i^<8s3@K)PsRd^;Ou8~7 z7;+dGa-tdXVi@vc8S>M27cejs7&aC&Fccfq7AG>4r!Z9LRa7%DRHrjEFfcS^Gc+?W zv=%V57cz7dF?5wM^p!KrY+#t(#4u0RcU~*Q{8okqvfc~Y7#2#oF6v-d+{v({i(v%= z!%7B*l@boC`WaR;FszoaTQh-Sqln2S28K;j8MZJmY@NZdZ6?F^SqwWF7_ZS%NF|piZV!g-0es34U0|tf%j7$&qFg#>nc*wx`kdf&T1H&U0mPh*- z9<#DOW@mrQ!SR@z`|&=8C;J(miidjk%F54FRGz7+Jv+$oTwD9O zj?VK#3@?u`ymE4S<>~qA2*Yb{@7KP*Z$d-ggoVA0kAIt-{O$z9$F{alU0t90`#(>f z{CWEHFSBQVS+L;CqD5cMGJHM9@a-JKk3)xk969pi0>jT^$9|qU^Yh%fUl%U?y2SA7 z>eXM@uKm8u@aOsSzgHOkzJC4p&6~e(-~RpZ;qS+f|E@Cp`}FDG*RTJ+efxin;s2jM z|Ns5_|NnouT2Ctj0|Qe@kYDic->bLWyT!o3z?kIi?(#NlUvn=515>l7i(`n#@ue5O z$NLsauzz^`P%Bb#_N1ADH>=^UweO`pYgzQrulh++AEFUFt)Ty3!{eRVAf-VTY3fN{jq{cXUYc zUS_MxTGv;ivdG|@@~Vn8+rw70ZrQ%>TAuGD{y-k~NvW#WFP{jxtCtvC_|Wn|e@BLt zd%#znd9Kbs*0Kv$eiLnCo#x1-#{K@Cv{RQLt06ys(!Lv7bCWxC8q;@i9W-oUSHNI;^Zv;n2=qAKTO*nefIJu5(|Egs9RWiKV4WX`Y z%eMy24Boe)$f=cC$IYz4v+FzCKQSe)wB433U0s$+|GM3@IDz?5)s1_#%E8;u$=-jz zPe$Ze31$pBR5kTfr-`)!!;R49jukG?R|aOTG5x*# z`*$^^RU0Ig8lJX(mYVbD^8&U6C%a~2iB|_c>K*&#%b&$?Bk-)p{y%CNj2!wa?w8MI z&Sgmc+SpjYB9puPdVb9b#fIEaneV6bT9O&OW#%2sRr|uwQ^vy6U{{coQhrvlYw|JPpUc z{e51**HJ%t_y3PuCNrF?5C2vl+qRh@Py2j<{5j@|q}Tf!Bp+Pa{pR0tmtY3HKO4T) z$G2KCl&?vzVA#ws@6;xp{VkOW5BKWS`;{;{6g``tUBKEf#a;b_{Ni=-yHzopr0JH8(O#lD@ diff --git a/streams/icons/flag_ai.png b/streams/icons/flag_ai.png deleted file mode 100644 index da108facfc846587a8d0d30c0e91274fa8ee2292..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1897 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idV_;xd=v^bvz`($k|H*Y zfq`Al)5S3)OW2@uu zC#vxr`R{7K&v`$u`2EkmnKl3Z?ArCG#7tBV|35$X=Xbcd zE~S*bYMHJWzazlAezxiB3D?f)h1{2Uu_I<Xb7VWG4zV&B* z(rIhu&Dr6#ZN0p594r@BYVtR@Ep|>>BCu^+yt(DgyML?A_8qt{uVlQL?ZkZZ{=d)O z?p=Q}f5(m%Ma6$&T8kDHoW3{j?9{V!I<02*oPB>ub;*$>EK|HvwyJR5I25_Jda;p} z)P>hK9~D)yrk(k5P=zHTdVQP21cuZqwjy=^v|^RNzZYvMHl7V$`AR^nOioN}^%gbN z0|yi5+S%9$PJRAZv9K_)?MYR&^W3SdhlRz}oz}-mNA)rYy*qJw%3=)_mLzZQjrWlKeq-rTsG`*;WAv}y5D{}-NPWs`IMxYgv& zOoK+riqi)fQzuSTh(6r2r!Kbb;bGQ%*M{D+QeyA=jWAO zrpNhxTj{(-8(rVNy{>5V$mo>6i!sxRgO>B=1uR`=)I8tza?`Tj>ERWdS#s`5_2(2a zcI#B#=&~*`aGMr(T6SB>UbFH$4D$1vqvG##NEp=pk*lb9leD1yLUJS{*PlNV9zSfn zz1VHxpAU&IwnjaR@jUrBjdOvy_sef@zeKqloTM7CbjgPA{`0OR-Q8vJIBI?KNzRJ8 z|Jz?=b~Q}1d-m*L)nuW9{GUa>i3ti(OhG&LI5ix(DXIHcuk|G7g3#Obz5gd%@N=+c ze9JOp8p9&yE#=S8xq2(Sy#8MF@a8#lE?jyaG-FOf|39fYw!e?FwO%-FQTT{Wu&rvb zVb;niC&Rkbr|a!CWjycY9k{1Z`5i0!|F{+&Gx^^k$fTlv z-&AVd+I4Ae-8wo7+qShS*~p~w%WW*$VafFEov%w`;?wSY&8c&^R8%)Q7A%cBY4)ny z?D%PxfL_13i?;527&y-^Hzcp}@^a_7>d9ZLx92U)*J-mV`@^NExPQ~9>mROk9NqEw z>Ct0p{8B7WkGgC#+xl>?fI;pp#uF*2Zp^Q{y9&zB$@mF=dvQ=@jmd5nVfA;l>6UkP ze>eAe9enmYC#&r5cWdX_-jrD-zT~9PG@)EKhy8W4zg)bic`RnRQ+r!Q+ge?hXU}xL zgf8XZSot|}+vK$u1wMYc(>g_@a&hLwn|rNK^~*S3nV5Zc+mk5Pqes2A8tPoWJn`|n zb21Zl?OOEfRp^}^itV#+_l4zmUbJKJ<-V1XsiXU8nUCYIncBIF*-E!=t=Nz&eVubr zm92?LYAe^ZB^5iFQ@WO|n0q&B+V8JlrSzCgrKY&LC~S^4Pq}q-=Ddcig&X{=N;Iy2 zQP}Oj_`#i>JYU}KUU~E6TE_;)FQ*n?Oxt55$|b_Wa^RLyL~@kSnWoV9Yo$LsKB)I- z*jp>GGL$J}>Wv3~9~^AFvGcP0WHsH&r{>|;8G`QAp5te_bLUTBTwPnt?e>YYcJ(`| z{gw8HOc9B{=;3vXb726($}b8bTAWGA+dnloTwFYT!Lny%hpl$MQ2Ov; zzFO(glar%=I5zCAR%Yp7aS+*grLUAxPoK%?aN`?~qFHvPe3o@J#`YW%#>dtxGDZa@ zxqnxXyT!OE_<*qG_wRW=%zcX%nSE+*NIcBs;g`Pu!y2XL+kaW|9YUFwYwJn*e_~%mMv-g9JZ)R=bz^VmlvPc zC_gbRl}uX})6nX{u0D~eu6^5qOGQtQUll4Y`NPybUGIp;_J(is5gTe~DWM4fFLsLA diff --git a/streams/icons/flag_al.png b/streams/icons/flag_al.png deleted file mode 100644 index ab55d7d3f3188eb2ca33ede20d0fd960a8e3477f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1486 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq`jafKP}k0|Nsi0|OHS z12Y2yGa~~FBLgcV0~;d)J0k-JBO@mxBNrnhHxnZd6C*DZBOenZKNF(>6Qdv#qaZV* z5Hq6)GovUolNd9TI5U$3Gm``hlN1Y+Gz*gq3zIAhlN<|^94nJNE0Y2%lOijV5-XE3 zE3*nKvnngIDjTyJ8?!navj!WpCL6OB8?!bWvkp76E<3XxJF`AJvjID^Av=o^JBtwq zi!ld_2?vWQ2a6d8i#Z321qX{I2a6>qixnq}H7AP=CyOm7iybG6JtwOJ7po%|t1}m? z3m2;^7pof=t2-B~J2$HbH>)Q%t2Z~R4>zkXH=8dHn;#Eb01sOr4_goqTQCn>C@)($ zFIxmJTO==A6faveFMBi}dki0YEFXIuAA39>dmt6UDeDiE&RBLLa7#hpwt~QIMS(kt0(TV!?kNiV|Nq~~$-4uTD3iS1U2eT&R%>El zV0!K8;uzv_{Oz=t;XDZ<$Lh~sa+-Z<1&^d>hN`!bglpNdnm} znFmw!L)>ni5bApJH^0W?_{HVnvhs5-|NZypTc)|__|k+s=xt+gzoqkrxFu2hDnV$WA6&&w-dykO4#@e=2Oth3!KzOl?wW$3?H z`+q}X7cYaL{k}ey1C_C_cC%|OFPkaJGEvdx=)x_{8@+yApTl^2NpU#W{f_JJa;9$l zu=mX5j=54Byv{T}>RoXvT{EF-Uf+u>Ne4Z}V_&u3FwE;c>g*d~)=*v%v~B;QK&A^) zU0L5kOdXy^HC#E&FiUgtT9KDVvLR`y%ksNJn5Mj7D0{~$AtSke`I0_a- z@AL_2RC0bMs?{64srgs=W$iVO?PklHoQ&AwpwJQ%dvB3|`Z zx83}+@;XbKEJw(>oT)##`MD>(4c_YfpJm7Sm=$;H_c|Rrq*ri8a^4%8!#}s*Ii4Mp z5i&{0N2p<%a{GGTyNL#~UR+Nwbj=bsil-r$roDQ7_-FGH@R}!3OcYIfH{#=9e zKgv#|h9A$oxL%bZGb{DWS;nufbu;T8TQh3^<-U`BF2k2`#rspaOMZW=J~M00p~d@U zc3kUZng3n5=GFWescjiuS6BZz&v#{O?3OpP4$gSxw*BGGYv0;JONAQF8r=G$^*eA5 zt4?vV;KGF6$7?ozYLe=%k>uX0Z`~p=@4zxu2J@uGUZ)QK(B7ixodtIcC$i_n@iqKi zTEgvSvQ@op>&dlWfBo=$p<7$)zN_r4f<@uV!wm^aJ+eU!QIoCLh%Ni!61)7~ggyJV z=?dIgweLh^#lkQ15`OzVvDSRU@a996-nt0Z%8b;>D^*=PlI4$_JhRF1@PXt%Yu_$? zRMwYq^ZWLT-%cHU&++DR+jkS`Y$K^j4>DZ6&L7_D$y{7L`P_M#gj?6|9jWe2^~iqz kuKDuWTJuZw3_m!JZ_GX9de_OBfq{X+)78&qol`;+0Fqz>9RL6T diff --git a/streams/icons/flag_am.png b/streams/icons/flag_am.png deleted file mode 100644 index 41f1f17a8b1518ed74abc39f410f5bd720111f73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}}W?*2rqdKLBfq{W1z$e6&f#Lsu28RDj z8UFwOe=w%-BLf2iW0JSK3$q}P&nE^31_@6W#}JM4$sDfCJjyW%A`6;AGZI?385nf8 X{AV<|_v{V>0|SGntDnm{r-UW|wZ|aB diff --git a/streams/icons/flag_ao.png b/streams/icons/flag_ao.png deleted file mode 100644 index c2d5ec36ccf98ed6657973eddab72d15d4f3ec79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 947 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfq^;0)5S3)qw(#GSRavaiMIKv?YUaZv`%MDoumy+~K z$qJ74%-M49Mn?4Fs~S>K$yXS}+3LF%uAFs?Meoj*KQ|URMrZW)ZavDe`>=crNtvK<#s>kw?^Tmg9Htah;{BqbVos?koV?lWP!}jCL&cEIw%=IAG zgLQ%6qz6iC8g}pU`A|`E;_(m1=lKf09bGFr_&-YQYxyGaG+3oFpjf7eEpXziiz^s^ zPwOat-Xc;VXV%PYGJ~V;hq#uaY#b}^oe!%ga%+BiA)2E6NIJs6x1%~>J@?MGAA+Kh zi3x0rZm|DKP?wR;Sl718ac|uZrW}SnB0p6WJFApuGrwNQ^~~;4D5HaFPEXmShaFnY zk0-9==-@pm;Z-1KnVTbcyU#^rn~?j0=?*I{o%!4MBVc;$Q++nDga$RrH-*ey2o|$8)wax9sjC4WXi$8X@^?W&gD#q{E zEsM~+H8VZtIo-9r@|Q)xzA<+GhJ5Sf$88h#hBn;oJKbrmYt`>I!Dgzqy^_>i-J0K` zSK~JuyjE;nbRkAsr{R&T+D@5yHzK(1FMZ7K@_2ew-}Hh-Ek{lsym!d7!|SnS)NIeW z$*V3t^z>TtN1(Bc>1{}8P~D6z77PCujhoSQ_W{32bi}Jj{Y&c}=KufyHT+r7 z7T)tUd8H55E?m!l)GtUW^5>u0X!G?K9~E4PIcD>I0EiFY!we(yuAJ8(b|3=E#GelF{r5}E)GXS(eG diff --git a/streams/icons/flag_aq.png b/streams/icons/flag_aq.png deleted file mode 100644 index e8ccd143a0f3b33ea60df89585186242f672135a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 685 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq~I9z$e7js`i|9-8q}O zb2jzoZR^k5HJrC^IB(y0-l6e=W77rKmWyt!7d_iAd39X!?zrUBdC9-~a$wJupx!GX zeOJT!uZB;!8Zq%&)TC=^vu>u(zL`1aR_^@U`3r6rF1%B;=uY|4yOqoCRV}|)x9WcV zs{74rAGEE1*s0=ao^U*6SqH^wEfBC9Z#n0d@^m<)9JgP&ffcM z&c0`J_dTC~;Q7LXFP0pBvGnlErAJ<_IQnwUiC3G>yxDyA&6aa-c3yn9_saW2*FPM; z_3`BGPv`D`zVz_Ro57vJu``u^bc_lK{4 zJbLrv@!KCSKm2_8@z<-5zutWM_2%=hcVB*g{PySTk3Zjj{{8;z@6X?VfBpXV>(9U6 zfByaX`|t1He}Dh||M&0z|NsAM^yO?A7#J9nyxm>WbgtY~Wnf@b^K@|xk&t|QFf*Dl zk%9HX>|+5YD>KwHFE3jZyZRfe=fo8p-~az_dBv%FW>0d}uV*q_ws1tM{yCXZP+ysJ zjCFC?{2z)hTX~qDOx3ZU8gyRKbN1`OwrSJ;e_=ag^L~N$((+mc1_lOC LS3j3^P6|H*Y zfq`X}r;B4q#=W;UerHcDm0|yI{`;pp=ZeepKCdt}w|QzJcyXqewrZeeufo|3l~#>g z{8Po7^rRw}Z0j*H5ZmE$YC@jL#l~5BLOG7&!ted&KACAY_i}Mr-ub7$YxMu#IWKD= zJnww{hev1I-#`EBdSUH@JUJ02CkGA=MnwgdmIeUnJ>Qfi+Nny&Uf;>OEi1c zj9(N58eclDHBt4A%F)P78>PS6Qd+DfU4`-L@1wmg%eF`yR$~1At6J;3<*m-MJw7rgy#+=!i4;WMRpA}7cnpfx= zrR?J}{c%yd;&~>8`6iybS)bcK3rKh1_s%)|NvrT%^&&g7m(R7BBYtlAz}}eZ@lIBS z-C|zD583N=%J23aYkkCI!S2l7`)JSBvqjrHY`muLopj}+;MybeT(?+U6~4;yqdDF& zar+m&gyJj#k<1H+&;DFf&|>X8$N37|u?E%zsfMo?qt-}%jLWl4oN;o&kL6->d)}~C z)s&esHrBiUsxMY&K5FanY=ex(OWm@>$&a0$vHAEk2TXX`UhUqL+ho2d_VICsqoRHf zUf3k{Eq*59v}Kjrgtsj3%Q=j?rY}udz%>2b=1wnquhD=esS``yC1@~3ZIY-Zk9GZn|948=+?>BWovFOx-eIvU6#Lu zt7QRG)S^t+r}GYatePbn_49N?^@Lj@E2D$|mM<{5(6~19##^VQ`L&h%RqH>!VCrer zmf{U!xX{YQ^WR|lzNLCbMv^x~S48rh+-kJnd{*9CI|mN2lxaqrSx_#vCUbL`YB1)JTIpHTz}Tnwk6^!yT;NbQ||2U`!zr9WUk5X zxGQW3zAGw9@KbHKw;VR41#akXOPP~3%!lbuPTFq~& z|4!}>e|9^3c5dwiy_GLYifVT6UT1Cj{NSBV=Wl;Jry z^YO{2d%C7ijcxyZeDdl2AD=aEc=Ar;tMHYb*#_I>e#LZ%D4MaYo9iBYIDe{u0CGX` cVg66?2!-k8t?f}h3=9kmp00i_>zopr0Q#m;m;e9( diff --git a/streams/icons/flag_as.png b/streams/icons/flag_as.png deleted file mode 100644 index 16dbf81e73a6ed5a22fcba84910b283ed1556541..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2165 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfq_HI)5S3)GS2Y~2~Z&+PC5r39fD zw(pwWshW|g$3Lbfb3+hXCmKE!HI z^38XXwaZ-g=emU6H1IXqq7<5Y?cCk7`y5|{tIYbhPw)E6_itNX)aBhha^uI6BNx`Y zmb|b1wt3>jlh1P)8K%TXe_>*1$e5j4-M8+Brtn2BrU~sY)aU-+DO_v$Y=Z3aB@TKF z`M!d&A8swG-nIL|X74Y;wo@g_AAZ(IKklHNDzE%xC#&HKOC#n9YcuY!{rbIvbE2KR z)DhYLGd6tw?zrqlkKV47uA1JB{`Ir(_ww-X7i+L_X})OuSovJtv{!WsmmdC|ZFVA5 zzB2#dEmz?ZFD8MErmxEVwMO%0CQN?uaN$BOE=%nz%C9E;HJzP$Ut+O#wBgzd=Uy*l zNcJh*plP+T`%kZdM8XMgm2+Ybd{xsoFRf11lgdd-YN|6=K3Muc)H<}l?4F*)g6?G+ zcbI}X&${w+mvdC{JFls)5&mTCrszI*o^7p_aKj%L|E(6=n_Z+;W6FC>)viY?iG1EJ z`Hl0^`Bw|Mf1SwY{&h>>^_KFH(vNYmBHbH{GEn9Jr|zu(tgAov*hUWdWJ5M-rE-*ICwpn z*}cr0<5|QXm#9S&(mV`KtU?Tr*tM2@R^wq?HKCo+YL8&$|Etsf=RfNXPdeH$O{zas zaN}_X{@M>4O==gf37BDN#yMfr{aHzU<=5Pfmrm$jn&lW|lJe(@{L43Qo_wsZXYSzY zKK}ccx@hXd-)EL|zE)jn5Y)Dkv$o2Z?Lk_DlFo&-_N&w9|Mw32@RRA(-dVGx8XYd& zyQe3@m1!cyX0S4%`^O>0oZqWfG~brAl)Na|B2cXA!F)g=%2&Nnd%->TPw_J(x7)8U zet-Y@=btfp)6b@D-?HVx%P$WfCb}{^7?hNkce^Y)b;?U^vCfM-7Zr|w6|hNscA4>m zSZ=GYNXWwAuva=_+-VFo_I7sn?%(JCd+Sz|D|1O{si6c92eZu-Vb8$pe((AJFV-^S zj}GXNREk=>VQqv~^Y4#V+{O%VS$`| zT~EBEtnAtIXZeb4i|&5oy};GQcsP`wyY_~QgW7}10{e2Gir(JNWN&t;ncci#|Ds}s zCCisC4P1F;-#)vSu8GGFi#Ro`-#cylM^8qG;GPv%4)Kgx2u?Q3t9x7*Kpxh$@37dt!q&plCLu6EsSNt67i zsQt|?DcP~E=fuLcJ#VysYN}}bT<~v`jCwU59Oj=UFtbTjx(#D?~_Aa$3 zloz9*&Cgcz@lp5$ulyMojF>UZ|T#5 zr5!RyQl}Qo_@WYDs#aJUyT`3|4_ohodtTde7T4Z9wddNk06y0owFdoZx7*j7)c!lz zcqZ}ItQocG7H=)seZ2Tvq@1 z_3X?F<|d`@*B-5xS|NT(*?wuT(8?#PpMJ4kxsh?sDJH(=Gn(EHFC<%T;qY@T2>!bF z=N!M&GHhaxqr|5Aa;6BBa_tM2*1S?PWvia?hrQdrY)!o$<}BB}>3VQS-;|bQrgv{v zU3k+kmddRx)-9cN`nA`g==V3A9xiv2;<#jPs!$`lia71{ArAGo6qsOUD^ABA%%N$N1W*l w`7=tjHy>ZU`X)Aa+TP2Ls%|FN8T@BWV0e%_`D>sd0|Nttr>mdKI;Vst0F1O1pa1{> diff --git a/streams/icons/flag_at.png b/streams/icons/flag_at.png deleted file mode 100644 index 0933fd15e740f7970f6aa291688522838a951ad6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}}W?*2rqdKLBfq{W1z$e7@J_EyjCZ_*? z{`~*{f5GWFS_}*fj7i?^F3f^FKA#vE7^FR2978nDCv&(m^C-)#abo8AfAIi^umr0H b1A|7$f5u1G=4LQ3Ffe$!`njxgN@xNAK%F6d diff --git a/streams/icons/flag_au.png b/streams/icons/flag_au.png deleted file mode 100644 index e702fab6e59cccd5dcde3e2a0a84a7de91572154..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1714 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfq^aE)5S3)P->}wKMX0otv$^@Dl+^Cf5Sx8j6DRgd`^`TW9H@Bh?p4$3 zvIhyh>F2(juZ}r%cO$dz{F^si*pBdB3kpom$`U(2>*~3bF1y&u${3qyL55YUcGuLb z`)ItmTUTest5>DR`^&jmo}aT_z{N2Cq~1*H=_?loic4_JZ)iN9e}9jqmmR~eUv`BX zBe&Mo73@86XOFJ=^fTPOW$juFYHIGA<)(#HS9f2(b?qB-yR)36{CN|D8~VZxTeHt! zHM+qe@#oan4==JZ6(>rHxP*t__Z4N>Bk;Y#E!c^v`Vh;sdG~Iw4(DXk+g^BclR+j! zM%FvW2`0ymEU-R(V1cIHyqTCVl~mhZ^tZYw*J zE-%`Dqy$yL~mDd-}UiySfCvskLX=;5nIZnabwZnI>=EI0;X_ zcE;z?sl)A0j~%OvXMONW>TZF#Z0|)@*^_!%*}pfGzIJ^TE6=b%zuo4fj*;oq8#lkd zx1Y=~Vakktwv4cpv}?x_1h(Xq^-c|4uxZctfP-nW8JU?&|E#+8Y>UZ^hU3Du`&1Yn zET3oA+q=Zk_2_G9^H1!2J8FNYu43p&*{QhT`@R|E+ z_44PoT8t8svQfKC&fNa3FFyT+sJ5SXsGHj@t_v?&6XZ8|Pd9Rp7mM2a%O^6D`Q@Rc z(AzgJK3T)8vG?s;`I8R0H*fl0U%!9xWml(%2@Fw}E?;D0UAS!7%V)mZ?vyfoDSUeB z!?S1K-`_7kH(y>!R`};9>kP>i`e6cjjxQQSIwM!jjrH|Q^zvHB(s1L(yjR*4pO+>5 zt-4e5?!}3dx~?*(=Z3CX>-=!n-oN_Orm3ea6I!1yttBG%2ud3W|b{B+~&Tkl2pE?(5^ zo3(CTxT9l|Vs_fKA1^w0SFfp=CDHZh+FGTiht94?jkB{i?kOp^7oD_Z$7^=JnETuH z-yQ8X|NT8adb{4D^?VM_Q*YjW>^W6WZ|3(K0VlcSRy&+^xZLr4>E_MXu8Yr9s66`p zuQX3#g>j3bb!mBd@{L!omKi30`*!EJQ1Zf!cP!yUvUaRY?A=2&`D_j5Qh-t$UKPaob%wQ$}9vA~5jwZdLrag9>nlB9PsY{)JyUd@&jZ;GP(Ty9@RyD_vq`TFBBcXO7m2CP7{X8?i^-=kw(s3AFm@ zOY}^xuVx51;Nj@;M^SP6g!*5~ItSbKT;r<2YzyD`TEv#nPmU>#=_PLYpqst6a z&Ln>H^gkaRT-gfYTzaW^=3L*imp|1f=H%sxi|blho?l)y2f+=Mq<(PhNE)dG)2V4vpu8dsfYU4Eoz=hexp4$oY+Z}#$ivsdh&yKwu0 zNy`?@+p=)+_JxagEMB~0$-(Q(X0BZ|b@}=!OEynfux;Y}?VZzhc1_>aI%!wuwB6m) z_iR19=dSbKn)bbm*6&@sVSiocfySQ0%{|8}8cq~do-C_7dHnLJg7PyA3}+Y_&oD8a z@eesuRC$)2{TwIfIRm3}DVgU51kPL8o{vemASQOf&GVw1+(l)Tiv~s)9i1U{r}JK|Ns99YhTtdFfcGCdAqwr&f4@vf`NhIsHcl#h=ku^;`$tQ{aT;X5P8x)aNNcciQlKhLIO-L5I@_w&%w&;6S9U+zo) zT&p0%@#cJ-?mx4Cd*a%Z7rOj=bn(%h73F(2XC1Iqp0rnW_tzzy*ZodRH|6+tVj834 zo8DB7Kj!6<9)0tsE8NU=+8oq+OuYU0<1XDMT_@j`{o%p~#SV%ceEjnpE0nektYjiIOm|RoTzp1Tz%TW7OiRAaSod3@;{Qv*|S>diO1_lPkByV>Y-fvqH zzcMf|_;|WFhFF|VPH147Ykd3CrE7Bv6ArMtiS}@?HU%Uw2MTC(ut}Udz!<^EwxGRf zX2FGN)50u;nGKc*GJFYexG=F}03MLqxk diff --git a/streams/icons/flag_az.png b/streams/icons/flag_az.png deleted file mode 100644 index ee3a35aeb1184cfb1a7ea17a457a6a73b6ba80ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1001 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfr0T;fKP}k!%Sm_nP(Vh zo?)JKmSwgX>uhtj*=GgjI|wc~FSF#5;`)e-t*IE^7z43?O<{j&_-n)HIKb)m6i8uYVOt6-mj~>UtfQ}q2WPeFn9hXU~4Vc=5}nOJA;B`EvE@w_CTq-M#zc;lm$~9{qUw z^ylASzh1ul_4@U%H*bEwef#^}yWj8M|M~Rk&*#s7{{H#<{rle^KmPst_3!uZe}De` z`}_C*-@pI={rms_zs7?9#~2tG7?Zr+U6$(Y^wMWwU|j0y;uzv_JUL;BfI*LxLDqo; z^M*(dx4=->xJlhM%oZu!)0`SNa!9guTyOrW_e$gJ$@R0Bo%3A8n8TIu);M^rse{95 z2OF~;0c=EsJAMX(NLkKKtiPPifKa2!JH1p-WFaCrj@g^ zJJe?FSz%TEa?y%;NA*~E4d!qgDN3GYpXtZ8>~oZfNzEco^`|lu7%!i_(AsN~b*S?+ z_cLQhwJom}bTQ3+m+du&QR<+#gW8l=irtknG7?yMA{tFB4p`3>9h_HQ1^?vV6gIm9?2WB%3K7pxNdgshoQHiRDHomH`V%1?i<4h)| zS@pTog1hm(B@C+A!)uDRUYb9s2?@$$~&f_5=I(KRtNx*`Y(vj~sb^^yrIYNA4aw_Tv1(C6`u6U%B$`+R2UA zuRgzi{r#<5AMV}z_~5~(hYvqLdi446<1bH6mp!}C{QUXX7caiOeDUect2b}o{`mCi z*O$ZWUk-D8d3F5Tx8L87v3~#l=f{sfKfgTu_2cWWpWlA{`uqF$-#;G?{rUO+@0Sbz zzCZZ)`|bZT4FAtC{y)R?|19(Wvn>D5vi?8I_WvyV|8pGw&vE}h&-eel;QtH4|1XIA zzaaYmg4q9ylK(GC{lBdA|FZJ`E1LhWYX85g^Z%OR|7%A7uNnWpZubAW`TrX>|8Lm- zzvce_j^F<~0srp={l6Rf|9;&6`w9Oar2K!7_WyC=|Hq~OpOpQ7TJ!&D?f+*D|DQGg zf8O!`Mc4lqz5icM{Qr99|2K>Nzg_(Q?UMg*m;Qgd{Qvv)|KD%?|6$Aj4_p6#-2MOa z;s2kH{Qq+5|M%ORqi;3QiPheaOl=p~G;Iq5_L(&W+x^<@{kT zy|Sk_hUXl=cREamb5Y=$2*#y1tdsOtXuO{EXQK6u^!NkD?`Qo?v*Wp?{Qc-LM#j&# zd959;-(&v2Z{;ejQ0A42lhn0xdXe$pOf+R$?I$*IYU*f*p+{+8+Jty1I3zQp(Ak57}C zmW5n<)i8}gCT~a2ul1)m85+K6dwjYsYsye=xAXO$eGDgVZ%>}5s8kflu5#w=r}Lj! zb$9;qVOLRS?7PM>qrYB5{m8x4jJJ+vb?XC|Kb%qMzkfxX;qZ>?shUbcflREiLC&(g z6Hj={KJZ|llgSY^b$@p$D?`JSliuGypMEZ7+AwA2llfV-j1#=`ZfhzP`Efq!J*o31 zyXyqE>I7z$vI5DXwVI2V85ner=~*0VyT0{k6hki8iD%)7rHm6Cz>a}1u^U1l)%chvbUSr&-pY!8Wm6^?Y?rg@2<&*!2go-n~+ndwZ#k;`$;)Bx9 zt}b#~jdpewzgcxB&c9yDz@U(KVwrnQeDGSf3uSyKkKL|f=;M8&yOA+PZr+a4&9V#9 f&7yiu{xKiqPQLtB^=T>t0|SGntDnm{r-UW|iT|Fq diff --git a/streams/icons/flag_bb.png b/streams/icons/flag_bb.png deleted file mode 100644 index 6d668f3e8e35cd46bcae03e84866d274fb0fd0d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 842 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq^k8z$e7@_BOE-%S28t z7l{wxjP>PIk!5CMWn^b#WB>ta1_l`h1``GbGX{nf28I#_hB5|*E(V5f28P)T40D;7 z7?_zDSeO}DSs2(@8Q9qvIM^9@xET0&82EV@gasHx1sNnn7^KA*gT0O&A(OBp6qFifpsnBB-Qx0zvn3&Wyzh9w;g%eolWO=MU< zkzwOxhD}o#woGH#Hl5+{B8DT28P2U{xUiPt;yQ*)>lv*8hR1suo*!WNaDw5}Nro?{8NQxj_;!}z$2o>Sml*zEVfg?5Kg0SvmlzlrI7)*2 zf{&j*{rJh3zkjE2&)C8MiUMzUm(mqkGk!BLFgAI*IEHu}e|s%7{IG#U!^4OA=h}X^ z@s!VeWY@-1UM~OSzx*W8b31OhUY>XOYSCm9-+9YUPT$h^DdePLkc#`OWtj@RGZ>N# zYY#-e@nP!r_H?*sz`Enp$(w!BbM1ERs`vW1R)#C)S=>UF4ExZ%@2VDj_nYc>D zi7#^E(v3ZmUmpa@{(TU>lU>TV^ie{j-A6OdJ1fjDaV>eS6=B}caOT>AU#|K>>WMMm zcq9%;_+++yYMk@0pG83A(O$7W)5aZhj$Mv_z#?T=YJS;d4VRz~gW!yd_j;`b{1_G< zvG}&7vAWg9Gk^lcIOkmWK}PvLm&%7zU)8aTNR=*UQ}F5vhq*1((b>6%0D zc1|;0hTVTWe~UFV?>{h+^}!kK$vqFFrp}MHz4m*-{cGik3~afK&IUQ$5{-e;2WAwm si(s#rDq0uqpd!+< z5O1`QK$MVBq@YNIkZ6RESh$dQxR6wskaU=kOsJ4-sE}NUkYcc)a&SvCd+hDV+*jv*3~Zx3b~J0(i6J&0BpREpe`KQZO(KG{|Q)zbg}<&)d^eZSfn zf4{AscCJ)W=;!IQYumW3Uq|w&?fiZqetmmp1^1`YGLtUOACkM1wjYoDF=Ne!@LaiF z6DRz=XEb5%g{OHOi(1X*nkiTQS^s#xZD-YRi+hY5X3mwrqJEu;;?1 zF6Tnu)7C1gQBEFanU)PHdpr*-nWUFg_cl- z2hH7gmpxEFasB2+4YdclkvslB>i<+H)jTue-mSB1eUycM>hEJzI<-w#-%WH10|Ntt Mr>mdKI;Vst0IiR~Hvj+t diff --git a/streams/icons/flag_be.png b/streams/icons/flag_be.png deleted file mode 100644 index d64e81d6b41508b689298d04930ed5c696f2d42f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU| z!)FPD|2KL5|Ns9t)ao?@0|Qe@kYDieEwVWW>#?v0kbydwm{a!TyCO0S`wiKs}9_dU|?0zXy{Q7T*1J=z~JfX=d#Wzp$P!F CiYqz* diff --git a/streams/icons/flag_bf.png b/streams/icons/flag_bf.png deleted file mode 100644 index 3f6870456e3de05ba3ea61efe227f3673b4a16ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 743 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq~I6z$e7@9s`5vLI$&i z4Cad%Eaov-EMl-+%wV;c!Fo1>^%4e~B@Fg67@U_gxGZPzTg~9Vnjw5WL(~R_*i8%x zn-~%|FeGkbNZP=VyqO_o3q#g+hMXM?1v?pvcQN!HW#~J~(0`0!@^OY)rx+HVWmtTc zVa0id)fX8yTxQsOmEr7thI98BEsRGa~ZxYVED3# z;mcBnFYg(?u3-4Kmf_n5hVNS$zVBf8afso^2Zo;?7=C|b`1^_B-%EynuNnTmVfgo! z;om!kfA1Ooe_;6kk>USmhX4QnTc>|%VPIfjED7=p{w8A4?+@Z6dAqx0sU}V3V_;x( z_jGX#@i_kWa(M6|2NBi>F-lq*U9llL8^aIu@oo&?5Z>eBYV-d;|BnfUJ_VgSZ<;@~ zNiF|YGkLG^Y7OI}K&=Dy4A0V38{g`BKKSIs7h%##zh{t?)jH? zouA68VUqdQ|BA5qf+?aA3T78__B#nnOKf455)UYU<8bRZi`AKX!TIy^>b4p*CNdm| zU=Dn2!I03w{^LBui$Hn7iBeY?=d99Mzg)q zNej2Goqye+K~DF_=h{-^h6%5I+qXZ^6Mc}+F#m&9bMyLG`E&*b1_n=8KbLh*2~7a9 C2{(BF diff --git a/streams/icons/flag_bg.png b/streams/icons/flag_bg.png deleted file mode 100644 index bca9dcfe9c53d2e9e0b5f7da2d05cadc50237f90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}}W?*2rqdKLBfq{WDz$e7ja0cexAAD%YtQJ7OnWUdB^vChkhJ6 z@#pFDKQCVWee?G3yZ3)TeEj$A`~N?G{{Q{^|NsB^Ppg6%7#J9nyxm=-nG&unVPIfL z@N{tu@i_kWq9wH|(hbI6`2#rjELfSFvFU?lZRy$CcTxeN ziK}Xuxvzd}EY4c|x25*YqSu{=LMlXCR({dC6VSjUvVehA!-0`2;78-3iBY;-{OYp; W6$0kygflQOFnGH9xvXsQ+}Ja1^(>DP5QcH*mvla6OhS>ZipmG6{e znNv>Z&3rR+)+DQ0^W0{ykC=O*dhXk~^WM&zKh0_W=J@$<=P!7>VBy<^i_TOpdb?!~AUyq;2vp@Ou6c-Pye5v z|G&Kae?!Cni4*_NocVv&tp5uZ{9m-_|B4m=SFQTLdiDQ}8~<`|BoO4fByXc>(~F^zyJUF^Z)PP|NsBz zg_{+*2Vo5VMHd-RtUb}kV#I=|uixs;}c z`Ns~wnR@uxdCy7tt%+iY|fXv=l0Yx%sI2pN$&@X+rkN++B2s6I4cG=+C7PqoGa(Fc0%uK z=Pc(7uTKSh)H>gCWrN@n$*CuG=YJEJwyx>It#*?a4AXB-6np&OlEkGX!I&-uT`_0V zQbn#DX`WD)OhdK?yQ19ZW)oj8xFvHl=|# z=+Yz$6YljM=e*dDA7C~-xOC-&S=kDyu~q!)?=NpsSi91ZZ|X6pUpWbO^Ct2u{&y7G z{LpyG#;GTc#f!5)-2RaxI<_Y3VEr_8@f)u?KAN{!%(d5KGIy-1>w7yX|4#kH&x)__ zeNEYB{axl#o5P}o6ZYNpc#x!e=MP(^hU1S^pOo!Fz55jeWQ@*lQcItIurVRsY(pBG z@f!}ao#nzenLEqt540_)nt4dhtCCgJaboezy#UPI9aNSEkLtz`)??>gTe~DWM4f&#EH& diff --git a/streams/icons/flag_bj.png b/streams/icons/flag_bj.png deleted file mode 100644 index b9077459068e1cd961497c00b461fca3f7e9acc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|zopr04B65 Az5oCK diff --git a/streams/icons/flag_bl.png b/streams/icons/flag_bl.png deleted file mode 100644 index 5d6af4d1eb66aade9a1e67c36202cfb643bc9f11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|`@6@Ck8cP^(|H{mN$v zgWsEW{r~@e)*=0q3=9m6N#5=*Ed3cb0~r_?6g^!WLoEE06B?M^#4QYhnwVSutY`{k kUCiYs+M^|Lkc**C?!-m8Gaq#s7#J8lUHx3vIVCg!0L$Mdg#Z8m diff --git a/streams/icons/flag_bm.png b/streams/icons/flag_bm.png deleted file mode 100644 index 9eebcef88b5f14eb69adb17586c79cffcd70826a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2501 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfq}Ei)5S3)-z_ZYx(ZO?W+hrtwb!mB~vs ze*E^f-D_Hd!oGtCCHHr|yTi@3%2i-OtVR95#Vsv+RI`swvz(}~Z#W4`2sgb$yd zdMPiy@L!8z;*al-k8@XBSsjm*ulvX}WoG)uFwKVaMYG?&d&g8-`eAY9%}vXX9-W-k zTh7d|RZeKq&ur(_UoJ{XDR@7Abkz3dO=V~2#r<+}a_1tq#Aq^ze4QTVyf{ON=jd9) z$cBqi@5Q$IrqmV`aM+x?^2I}`MT^xSO0RRv|GNfL*aPnU%J_AXvFGTEf8pJqBu+8- zT>G_~`NY8)X1<1PNerrM^&<+NIoV%vZE+8>u znL}dYPMxsRm$U30^4812z4KEtm`K=Bgb}zQwRZ&<{#B%+@g$)iD z3O}W6eB{1-lJ8U|iJ!{rwlgk^Tej)7!{*+zS4?+Fow|~dX!zBL`|O&j(Vg}o7kzdA z^M7c6wQF^@bJ(;`y8=Dtzli^`W5=cM{0_@6itt1hmY3^JKDo1Cp^jRcoY*x*k*@hR zGc^jk15Qj~wDI$qvy0{O^8T;C9vtc1etF9B<=PAxPd^t2Y?BaDd_P1p~grdXrD8pL~)evew%tgsZ{f!)%XZ$J)=&P5%Dv+v%cj zSFhf^vu7s%VTI)9>cIP;?jM4h0`~pBTx2p1~LQ)iXL^k$YNwE+OoY!|QN23B27iW8qcGvjR7zSe&I%F0yPrX|<1vyVs3zfzfSZjSTy zbx%)v$w^67UAe0IJF?`Fi)PoniI>-%M>o0erhD)Yi2ev z*k1TFgH?1?U+~KCx2AR5u0QzoD{RNEwEc4&URqi0)ZjYADdNT0#kFOtevrn`g9l5G z9?gu8SbFhFjfY2Y<KpPpm}Np=)Wy9|3|>p{ES&72qqMP5 zu;_4K(B{UVts>zai)@(pBj;T$!_1K&D=e=?0e_YA_j-&)2>>* zuzd8XD0PiLtAmc@oc;D+r~Lk~ zSB&%DZtT;3v@J64zWj^orEz}ZTAV$rBDQW!`WbJjZI}M*0#}l;bJ&lZwlIyA7T+~~ z{ggSEWzDDYaBJ88{WX6x9_^U2af`7L!}%p?5As7+$Uok^;gG1HYF3<2ekH@c-P}?4wKXt4-aYFSaq?d}?Xwl?#(@3P;*c5U5_P_ix<`k?nTD zUl|TN*E-i;I`<*}q;uj~!-T)@)}FFnJLlZCEbgd_x8HHze^P$euVQZCimHa$Iom$G zx_YarNlb0?q-vp%dUtL1JMZtW>pGj{^I78jgVKL@&T6sE=$49Hvu>N2D6@%(_~&P5 zG7mg{y>)A`LC?fD>`@F6`!Ani`>vKa^RS%!_Zv>zZzNscF{#0uXZdEU^3_5L_C`jNU6_hfwc0|3I(IJLR@!0F&^Wzj%hr7?ET@c;TJM};e|xoI z`P!W_9tZxpvwE>ub8k58%^tn%K|&}~h^xE%>z8w{U$tGkTwUb>_a$bl+p8MF7dD(b z`$L^$yUCPk$J>oE`6~0|@8(Y9dl!}%wpaJ*nt5?O>-28qO_8--<;BpqJe{}k!XLv+ zS<5F^mlap!?hOdJTeAAuj1SNJU1yp~+Apy_=f9~@Pq%qe?gFOp&wXVF|CZU={`T0q zd0~O=Aw|JcbLWO~1{D7?kzhzzyYbQYh)>lEF2ymQ6V}?y{fK9karM74izDUTp;v@n zNF_vA{%zX6*70d@tsnmxX~Rd}hl={Hy?#*X=%~faFgxJc*C!&vlY8{fT${2<;a*3` z9mNi7jlInUPd^;L*lEA+(yk4a^D?#gS4jk{mT5cn%hAT8K@f*Z?L$k@%_u{5XsVQKbT)7K@_)+tVsE&N>LW3vB} z;hij}_WRZcR>^WF*0bDO&03vtbN0(8uU@1qSRv5vy;x|m*aW_RZ&A8ag{w}o}jmIt*KvCenO-5xyfj@cbm zzM7S*I^)rtG>f^n9!!+wT(dsixcu1fNY{WXe3`eSCz(aQnkLBk@R&+1v&@_31Mg;? zmJwU=;HnaTla8!U!uH4y<{WR@4n%L=GCkw)I*vVYuSFvm&e`5O&{cZc_%nkkPh<1P zpqp8T^f<0|Dfqrz#>)P1qwVJN69upCxs&=g^Olx)v8lbx8{RjM9?C|ok2%HS@h$66 zU5AKKhR+{6nHmoE>dZ;9D-+#RMEB4A7M0vnb!M6o%cEn=K5H`BKWfXKy(G}f|LAMg zu{AII;%80V^Hse>reU(#p*k6k6~7qZu5@qf2o_?Qjv7J zT*v0m#W(!FnAs)nC_W3hy_Wl=-sXqRLHB3HPqzDLQhq;UTGQnp@xPpyJ(PGnf7{QT mY~~#MGe-WMx|-@&d5%ZyI-M<{*BKZX7(8A5T-G@yGywpzhPJN& diff --git a/streams/icons/flag_bn.png b/streams/icons/flag_bn.png deleted file mode 100644 index dfbf15da47b42627ad8d4471aa2ad4db11eb3434..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3137 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idV_;xd=v^bvz`($k|H*Y zfr0y*r;B4q#=W;uoDm_{MbiXWSX*vN&PXhCa1Au_KScd;O ze0bgtP4||$jdC6HU;KN`)UfSZ#m2Ukx2K&9Ip>-9>2E|pp3RGs-}h-aPT9|sSzj;0 zuw%2~*#o|pS(l~FY}A}RC+pnxSs4z8^(`yUln4gh-EuEozKjjTl1aA(5&m}kGA#46XjL4%Ise;L}Z^0U;p@)pm6cW zyCKi+cr@R95?HG*JbRy5!u1r*G9P85n&^hN!m2BLME>wIC9E~AtL|OdubHqa&eWjw z-^{ehOV<5evT-M_O40p0J9HwgW zn~Li{Ixzp<(U0e+7tiS;8b8KX9+g%3y9x&sJqruCzEi=pn)O=U3 zlyCMl-Eoy^!fVqLN$M%J8^fQRwapIB-}U{%#6I;rjn#=+;ZF^o246n=(~fmX%6rc( zH%s2%+k5Hyb@SYRe|~Cqc6RPGU-36aps#KHu~`QMaz5}mOz~*X-MdHNy7$qQ`*LnQ zEit#Tea$+^yVD9TlS&7|+gsP3hgrfFt}|j)liw?#?#+q#qVA zyDe>NZI#@#X_MF4HOF(f_WTzVzqZn)E^M*#PlKQ^*M!*niV@;Aa-H(EZJ+)yt^U4j z&)ywRBfY~T_RiZ^&2RScYKKCqZLCh6h5`$YiLP)T$p}Dbg87^ z9c!SG|RmK93 z=Pz6QVd4G#mlPLEDVs;mOOM&z_*z@_oW&x!BVTpPKQ{%w=si-W91tD*_W@&quTytw z`To5PoLgR>jO8vZ*!+ce+v~*AJ?myO-+QTfG)!DytDH-xK*T7H&sOi}&!3WFdNDJ+ zp5D0P(0f@l(Oc)d_umJ?=U#3ReVsSkdZt)>k=Ej1)!o4iTN(?dELw23Q=wXY-G5bf zJFR6}6JNjUjqGDuom~AXXXl2yo?q=IRjABSI`wV&cT+2CYjK^c+3Q36f){B7bSLNU zJwLJG;b~L*CZ|`Eo;ID^=Er>CmRr%jvlA27GVIZM^7xN;oW`5=N6WbUt)=H(-5Blp zVoUGeJDzD@<=mNGHAJ+^G@73~AC$Dnd3|(^-F=hj+soJF=EzKpcYpe09)m_l`EHqg zCp4=M6;vy6&u_^{UgTmp&G_{Es=%+C#J%Q+J)HS&@0z~ejOk9@ znzC!|8Xr9Sdi?nEy7>KdKld?g zSk|x2&zZIF*9Fz$ppIrood==<8s=*)cicI7_|b_IVGI$Ew7FE;n@wZtC#`1NR2I6( zmO*oh)0!`TyG0ppWF1;I!*ikYPZ!gDg0EJt+A`(NgEEFcm%YA}yuP;9ZDBylxp}s; zr+#0y`{eKHD#J@Nl%3A$ZNH^|ujG`Z`4zj^2ggn??v%R4EO3d7q2HHRY1@1IX^ZPv zW7XU4sZ1)KbI{UV({S5v?r9TeB-M*0zg;^oi6>Vz@S07|+l@0hKJoPGez?5IE~ss3 zNTJTs9kL8-_`eIRJ-cSoR<})a>x@H$v~%J#r2ynlD*hU1~Fyev){t=8*J_k0h!FWD(~bn(?4o5I}G z-E8OOP4`OHIJ+r|@khs^cGauDpXv+chPx^S<}GJ5sM9#)=g+z*rO3s@W@G9O>va;X zy`9XjaUna2ZsQbyM9bD7y{kxaH zZAS9@&0e-zD|((*y?D9#-Tr?HK{AURU$U6GFL>U;;43BDwtZRn?6W0Lk~LieEN*f! zE!aQz@L~1`vpEdEgc z%efb}z1S?p_5Isha^Wd`cy-1}`p81hm$ z3V)Ou@|~TcRJo2t)Np%zKmRwEFBY6h&QT5;U#>4o*(3FI%jT=xqAM!>8$TECEqExZ zU-Mh7_Wx>`(9Izl3-6}CPd_hQ?CG)hxynF__uY%XfSJ!qmEt*B`eU zGR63bK1ykrl>BkWM7bO0!A&CkXLA?M(^j1Pa%W7wJntIW@D&?tyKdAJ%-EypzdZFC zm(BmXhbM+VJF?mIzs$pL2N-u$Ms@K1Gs=h2mF{_`qMde*hE zTtIe-%dPoO>ShIWKWXHWneCn4lIfJvrV;qFrhAE>@GAk+z@83|0r9 zW!=2E+4rR~v%^h2MWJ+$iAvWKX0I0Cr}oTlUGTyt292c`?A@0d^oiAHG_tf$-=Ubj zRA8B^&^bSSVWpq%nIxWhPkgaj<*EBiA*Yu{k*yW`xS~CTkL+Ak*fMXrMRe0EW~bA8 z#QQkbxwTq~?=d)da6!TQX_==t@BDLtafQ9+kzbrjDy^pq3g)o;o!WATfA*Wk=M@d& zb9tx4lg-ZW|7O3qApCmS z6OIj^SXK4*J!=&bvd9S$=?_|L(6Op%JD+OuRSV^7i@W%Oo-Wina^lAHWnL+Q3Y?2= z3lig>|5a4IT~pN_op~eMmiJ)u+u)yiHo~h@YcY}e7L@_Ac31B-NXFIuHYv>b}8r0Q2%DH+59p8(e8I;>1*FD`Ow~S zRc|N%*ZE7b`h|AtPJ5ux`f=ZJTLF0&(Ige!DNfdv(?pJocNbjMc=OAAryj#Dh8Ii= fxEtD2|1*l$v@b4rrq{^8z`)??>gTe~DWM4fGIsSh diff --git a/streams/icons/flag_bo.png b/streams/icons/flag_bo.png deleted file mode 100644 index ba4b4d625745f5d28aa1980403c658599d3320d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|14yS1N;#ZZlXOZtm&MZ1(LigE`DiP;!t3+z-ImW=iz~JfX=d#Wz Gp$Pz&Jul?| diff --git a/streams/icons/flag_bq.png b/streams/icons/flag_bq.png deleted file mode 100644 index f5659f71e1c9e11689c3c27b85875b1da6bf2c7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}}W?*2rqdKLBfq{WDz$e62(XD%(jK=@} z|0kF%oWsDtz?kIi?!uJDU6aDVz#!r2;uxZFKA9)gfz^jcIjSMm#Kw(Lj)5UCh2hP# U$Ft8fFfcH9y85}Sb4q9e0O)%iZvX%Q diff --git a/streams/icons/flag_br.png b/streams/icons/flag_br.png deleted file mode 100644 index f26d1f80da3495c69d287c9b31f317cce7c08e03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1670 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfq~81)5S3)~NEfn5=S)toniI=NP8lyh`BeP9q=W{_~S>4wsjZ3{ZC z-g-49aAQe^b%do*k%N$eKwpb~ z(jL3{3@i4;?mr!tI9K|8bm#%)crU)ce_jV4-{;X`DgO8F*2Ok@PwUoezB>7A-PLM~ zzRwH~nsvOg=04qgaj8c8Eot+%<45zCrRCn5-YYuET=&iC%jK`ugv2wdF5nW`XUD+) zxvcEltOYUkHRY~{o^nhQm%UyZy7Akhr{GuzSya3F(jDQ4Lc_vZj0FJ;GEO3k^e1&l2?wqi1w9G zXSLJ8>F=jbn)tMNb)`>Y$)+REmNF=`_{_DDiKt%fJW2E1^3I>Exmz>8#<-Op=5_qL z^vkUco0XO`@Ch>P{&Q);o2&%+-4S}b7!C*-t=Y0g<*VJB<)xdtpQfr7T`Vos@;$Xm za;0@}t>d>1>#LovnVS@9x_<~S)&q$HCV33K>dn%jV zS#r7i`g%G46)gY%EcSBno3q-gcJD8*vf8T1xj7#kFVFaKZ}Z0|)2{evI$wzVeD>@q zZu@Id)em!+Osv;#du4rn$K#Fs%(5IagO<5Xza{JOo#UabzrdqoZF}R-Z8TO|wqSYC zJ&mA{jk|Z2A6ufiN2*vdy_#SWnyWl&GZy*d8>qoKgH^v(nkXeMj3R zEBAFptEZKI^kR4MVNyHH~dQCbw|8 z?c9;L#&YS`>7U9tzq&Afx<4%{`_VFW_kYRqml-@tj28dAyE5{Ur{`qVb&EfS=d~W2 zn&nWW;&vc^t@xMeVW+asEt~q1DWT-$`LAN~N(=&7H?JjI-4-~+UHfgDv(A(Bq@t~V z6U}B_tuz$6XG`#V>2Uubw}vf&i73Ez_w_n z%$d8N3+2Rm&enxhEb4e-JD1HOx^UGDbwQ`6qTcTWJs-Inf4$-qE2R8r+T##qQ{^T_ zEyFV7(p#r_^0cqG=XA2Xf4J*;#ytND#&>18-&4cQ`%gV7TDvXJ`%FyHoK7>N7gC0Y zbicE2UBflqS#$mCZ43WN8@NCAmSw)6`YAyro_FOrzlEl^WK-libVRron;w1jps3(j z47*n1`4ZhL9;)+rqyn3QCTuvC%OTk5U8y*c zY4^g$sjqkrEa2_Ihb;|K^ZH}+w=3`!-IYDn%*SzheV^aql+9Cbq!@QM z9^0SbUOt~wPTlkyr}w2>ClVgorfZ4jc$^4V{m`E7@u|6Pi&JY&s>j7|JEb(&Zqm4( zb-&)KYu)C6qgQ*U2uulKD;4aRx753cD zd(C;hTMS}*nZnE$(bxICg4#gn@y9!PC{xWt~$(69B-Z4&?v< diff --git a/streams/icons/flag_bs.png b/streams/icons/flag_bs.png deleted file mode 100644 index 98597c13e994a67d457ac63b5d7100b28ac6ad06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 803 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq^k5z$e62!q;E_+Fgw; zy9B}_nT3Q{goRmzMOZ{cSwzJc7#J8B85x+E7?_wDn3)+^SsA#v7@3(FSy&iZSsB^b z7}?nv1q2xdg&2iJ7)8Yx#U&UeBpD^87?o8RRa8Ox*x8u$4Ves$nM}=@Z0wl%d71h7 znfV2n1q7J|g_vF3n1jNYBV$<7vsqagSxYKeo7!2sCa|$Gu$h~(O_<6ycQM<%CG0EL zv#;97zHSTq=3VSN_OtIl&VJwo$DxxPhfi}HJI8VA636Mw9A~d`oV&)!!N|qQz{SbP z&Be&W&BV*Yz{|tL$IHae$0WeVB*4!gAiyHX&m_EYjhG07*o9LHvJA=!3~I^@x|$4j zmJBX-3_h+5p?(Y**?f7a4D}@p6IvJ+PG;D&m|^QuhTW?fj%;SQeoyA+F@}3jWgnbn zczTiH#TABkHyJ+NW%&Al;pY>E-%lC-JY)Fxg5m#5hX4QnyMNs$&A`CGSrX(I{O$XX zzyClWIj!L!C}5Mk-Cc?uIc?7|Ffb-~x;Tb-9A7#uHTbZDK%4mcZ9A+*+L>6pg1;1$ zFFzXl`M>=I#mh5Wo|Mdg|K7Or`MXWr6J|OxF|kg}bYo!Z2))SKq`)8C;@-(*@}6;L zM)ED@B7@#Y{`LcF*i#lWH_PQUI`Y3L;@(nS!O~&M9M$CaMM&>e^3Rb$|!g;*hh4InR)gBuZ z#UGS?nyuzwQ~R9jTIi?r{y+K=Q;&aNU$4`&;NvUb3NGzQe@^awBG(%)n&YQ;MDlu8?NOqq4Bx1U8(Tv{-TxU_YD>qi`z6U z`d7L3V9+Q1`?f1BrSCTFn(?hfuj~kSb-JYMg`7=`9O|s%61S;1p6Fw*UdFTCBs#!8 xXOBAD|Gv7uK$f+_Q(`5vlY5v_j(S#p|H*Y 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 B-*5l` diff --git a/streams/icons/flag_bv.png b/streams/icons/flag_bv.png deleted file mode 100644 index fe3781cf18ca1534b0b231a003eceee8b8e6b346..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq}s$z$e6&!D70M|6;YU z<=RmzgDQ69_8zI8adPFJJJ&Td?s|IO4+^>;8v6LZrvwb7#J8Blf2zsgn4$yOk-eR$nw92d%ZG@AeY%T^cFD|L|8uBB7I_|%!SOk>{WAx7xD*X z_Rim;wVX?Ar9{X2Z0^QXp=!2c;{O>K7#Qps)qiUxOlvjk`2ym4y85}Sb4q9e0Dk;r Ap8x;= diff --git a/streams/icons/flag_bw.png b/streams/icons/flag_bw.png deleted file mode 100644 index 2da8ed2833e76911752d51483cf59d3bcdfb8b0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}}W?*2rqdKLBfq{W1z$e6&fq{YH^#2(% zX8iyE|AmxcA_D^hW0JSK3$q}P&nE^31|?4y#}JM4$vmkJtUbyx59}QqLtilQIJ+f? fzT7A4E3d)8U~o-9F{O;T4`h_5tDnm{r-UW|$KE02 diff --git a/streams/icons/flag_by.png b/streams/icons/flag_by.png deleted file mode 100644 index 13b71e5282036daa0c02838ceb614cf3900686bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1235 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 diff --git a/streams/icons/flag_cc.png b/streams/icons/flag_cc.png deleted file mode 100644 index 0042415275945fd0623a328429d4c27fabb28f43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1892 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 diff --git a/streams/icons/flag_cg.png b/streams/icons/flag_cg.png deleted file mode 100644 index 5bd932ae568dd6604200ed05271ad2c2506615b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 221 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|^64@Ck8cIK@!@n4$g& z!+!>b|Md+2I~e}|XZZjBzg6VvG6n_)#w2fd7k074j@Jwf48@)t1tvC2#e1S=VPueQcN`jF=PA0Ec@`gtN0|Nttr>mdKI;Vst0QUkcmjD0& diff --git a/streams/icons/flag_ci.png b/streams/icons/flag_ci.png deleted file mode 100644 index e20a81f7070f077bc6104863362eda3bd47edb21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 145 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|`@6@Ck9f|MUL;uTL4y zGW?&#@c;jR;p`K)7#J9sN`m}?Pn@n~>vm&cU|>x0c6VXv&$t=Lz`&s7>Eak-aXQ(c zjoDe;A|a@Wxh;@&F_)WYkCsHJ!72w&PKKwGG#ac#C(mYJU|{fc^>bP0l+XkKoMS4; diff --git a/streams/icons/flag_ck.png b/streams/icons/flag_ck.png deleted file mode 100644 index aee7b04830cb4073d14c5b5c8fd2e460343fd1ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1865 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfr0Ixr;B4q#=W$U6k|K1nB7K;tPKHaHM)^|bho{B=bR;Gijc|SE?zYG+9 zR3zm$KTShh{Kbns{oRij>+BJE@#@*?Rc5U0`~?;qFD@^?_xSjGO^qG(ybLoAb6Trz zJ#k}(o_6%}$Ct0)J14*P!=&$fw*0$cxT}fj^o0$7FDh>m`T4U{Of0>HnZY^DtE_de zZON&(Z+4wN-Fg1b9jS>76DAei-l+U4x2*2xtE&>5PF>u%ed9zPN%{H9mzEa%VOUUO zY{q^0U_g-8mCM=QUP^VdW?LJuunBQ8d~%Pyt8QZQH#SBl*jqc^cde#M%7XR$$=kQp zeficmdE(8}@(dyiu1%Qq?b4AJJ>}r%Pp@9T))xQ!H~RyzbFRX_1Q=Y_tYM0rsVX7o zC^CCiSz78u%_Wz!&z}A3&fGBnMP^S{`g0r2l|tOz{XA?NlQzD37%*kwXNHCor;46W z`fIZJ$Q>L1D5=E4s3-y6_RIY{pRfvuO}bW~XAvJe*RnLryTs&~48OJ2t_LjZT;%s^ zt13OxTpzQ0T5xF8{i@&Je*gG!?#!9<&US|xzFfKDz<%lTFVnyktC9}axNKKqybv6# zJ7Lcp`}qt9S{H0vS{`;0y=3~M_(nK-@U=esm>JLbAFF^IH=OZ41&_KaUe z_gi_{w&ly5c4=!@UVia_{ic}Jk2b|K?j_oNPHYc@7H`j0(YdmWDfexSsOW_58K))p zFeD}I3weF7jV;e`S%BBtwb}CNhdV7+-7sKqb92w!5+oE5?&&$Rmv{O-ON)@yjc?xS z_qeHk2rez<-uP<4#jc*77ez%6l(+omu@Es)IB0oafbIU(tEcZ8$HwNb2-&r#=HZ&i zH!Zg->@qLa{Y&BF3V8kUp+K>oVra+_#YA=0&oA}drZBTVVr5H67Y_=&=(22st!is( zLcyzo^Ub&*e)U@=@{`0rCzUIo&kNd-3cJts`2T;lY)Q4Sy7Fo3doLgYkj6)1N(iHP_lu zKXu!-!&i8C{saYeEoj^8UiGn|Vann5_bO^e1#4IAkY{+HsJ%Mt$hQyOCHpE4_Ii4) zI(F66d~Rl1*{f*NucxQ8i-_%0w0@;Lm#@xm-ug)4ZIz$p6_($+W&cR*W$Ev4`{&G2 zI??o?`csO(Oe)LX!eom{TvtBSyuY{FBJ=YzS$Vq&KYjSSCExwHcKyF=TwTxQw5+P4 z-i_bgl*>8v3Qot%^F5q)VvhWZCl9~8v`@UOlqexBe|T-@NlrVtv@;8o@>Es%Uo19_ z-SFW0#@7uVu6}v)ezCE4t8@76_ge=qtLV>c65UZb`QF{L2mLm0wA4;yP}#1qv7+*> zz=;po9%LFv-tRg>9v|9!{+q=Jz5uU-u(N-Q*zQW z0l9)-{c^sC5-mzJF5a^8VA6i@vQk#^<-NU42fv#zarPBeS#1x9+d0YdNpGVBuDA>!!BuUgE;vHaJp>$*>#Oz=@)WYCD~NO*Wi*s1!)2E~}*&kOed zXD(!Rc*i_HJNtJ_$+>><9@TsI3T6E2-Q1o|U{Vrem|-?2!C>>fdv^bFTI*x|eRbU| z7hlc}bPEtZy0F+o+CeB|GxsOP-^OVPL_u6Ay1xN(}^k(lIGlc?WX0a>*kCXxqlXgD;#1FkNqwx-p?N3#lXP8;OXk;vd$@?2>><-cwYbj diff --git a/streams/icons/flag_cl.png b/streams/icons/flag_cl.png deleted file mode 100644 index 29263c8126bfe678efe27b549b1c3c63b397e078..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 390 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq|htz$e5tG+<>|;L7lz zRgod9EEs(zVdvC==DbD6S z@t@J|Y<$o3c%k5pH9ZF&=P|PxF3U;~bh4P(+MyHb@c&r&^?C1FT%soB zs0QY5P&>Ic@rbc!+!u%Ck3I^_UMDrpx6BaBc=OpT&a)=6Y5e aMu)op8FnGH9xvXC*fF diff --git a/streams/icons/flag_cm.png b/streams/icons/flag_cm.png deleted file mode 100644 index 807e33abf356ad2a6dc925451db4a8c753ebc881..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq~&M~4!x0XKBb*G!_!y1}Fn|q$N&%$uj5@wEEU85kH? zN`m}?uid-%po41?4+8@OW0JSKi<7{0+b;|Z4Cg#u978;gzrA{#ugO7#H9&`1OX&u8 zna&N-jY+%z{}0x4S=`pTCvxVQ*!y!*?wvm4@o|BNj)EYIt55?2%LnNNg-o|vgkQW7 zwM*!e5?@d;qlhu}!GaGA%nWL*9xGR^l5X3`W}s~&#LX;n_x+=zU2RrQhxXNdDVuu1 zSR?mdR<}uF$H|Xp_2=r&+}1iTepS$Qi%;IVN(%Y&g%y}886v6n|_G1C^YP6dbeKC;bCNr_#eRVKak;n5X1jqhW{Z9|3ex6hcWz*VE7-&@IQv(e=NiQIEMf64F8iD z{--efPi6R@#_&I#;eRH>|15_8xeWjF82;xo{4ZqqU&`>mjNyL;!~aT#|FsPN>lpsm zGyHF4_}|L#zm4I4C&T|PhW|Yb|9ct!_c8pR!0>+}!~dxa|7SA%pT+QhF2nz24F8ui z{9noNe-*?3)eQgFF#KQ3@P9qS{|yZPH!}R+%@c%2r|8ETce=z+2$?*Rd!~fq5|Nk)j|I6_IAH)Cu4FCWC z?{b`dih+TFG0EHArR09@id+T;#u85##}En0w+DX~b0;z!e|Y}gve!3UwjK%H;+ia4 zcumm#{EACm+cZK$O!@*Y*8KlJGtDQZz=dG73ch9xiuJ^m;Uf!)MdhX7~UHveOe_G7H1->#} XdFJ0&9Fb*UU|{fc^>bP0l+XkKkn(~m diff --git a/streams/icons/flag_co.png b/streams/icons/flag_co.png deleted file mode 100644 index b72031dbe084e2a132609e6436708e9d3dfd014e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 119 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}}W?*2rqdKLBfq{W1z$e6&L8R{%gTVh6 z4FCWCKdJow2m=EHW0JSK3$q}P&nE^321!pB#}JM4$q}t=5^k()tp^I27G@-Ha5FGy YJ+-^=e&yv;3=9kmp00i_>zopr0O7+Svj6}9 diff --git a/streams/icons/flag_cr.png b/streams/icons/flag_cr.png deleted file mode 100644 index 27a88bb9f90f505238b31a1b3639167d69d54317..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|~7#Neh-Cfuc({|J{FfizNx;TbdoK8+rV325UXL5An zy5!c@6yU_w<1X5x!m79UC({~-&Tp<4HUuy*Y>eXU+q?0DF#`hwgQu&X%Q~loCIBCa BF53VA diff --git a/streams/icons/flag_cu.png b/streams/icons/flag_cu.png deleted file mode 100644 index ecdc47c50331fa328ab6140a843cb77e2bcc8a6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 942 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq`*xkg2WMtPlTL5pK& zyK+WX-j+UvgbDI-(`6$TNck-dXkI4av0TD^l~&|BQHO297P|yZ_Veo<;?q9Ht8t1) zb;E2 zdpWuH^70?l)IMlxe$dzdU}*T!$mpZ7@kcYWk5*P6ZEQZ;+kbL&{N&>D$;<1LkI(1O z(9aPOUt(jwq@;XFOZ$?Z{xvV}YkvOM^73!>_21juzxVWfpD^M3#EC!V%=xi!;m_sE ze{I_IYxCw`+qeJPvE$dCJ-_zt`?Y`n??Z=vpE&XR&;Ge^;m?&Te{S6Pd+*-g z2M_)}e*E|4%YSd){CofY--i$XK7IQ4_3OWH-~Rvn`Ty6i|9}4c|NHmu1pSVdk!!%NTnvpFf6d*SAUnnU;2%l~tI*pxCR0MVetlRXdBr{HLPq z3>V~U9x^a|4)iOXSEoHV9tl`z(8UyA#9gCp}+F z`QOB5p|&pYTl%)AEydptJ!vza)AFWrb7$j<^H1{BKBqs3EVF$rHkEVE-5nnuOy9ls zmV)cTbCV0UZoc>Kvi*9NwX4J;IhM)C zQaUx)dp}RlWIO*=B%?g`cS)st9oKm$BYD1x%a4BM?>zVE(C#Vee=BPY7MR~n_`|Tw zKcLOXWpA>K=kBj9n@k?7o|<|*C$DGi_vpDR4sI&zm&)~REjm+>8{U$5tU5o?B}d!yr}DAXU#KN#7*Nz%dRu#9H&o_2yIR&8Ib*&1o~9+h#nk&1g}l z!O|Z6H4}B#PSjpENqhZdt&LN)w$D`GF-v{-9JM`jRQJtOIkH&k*b>E)%j8cjmp`{k z_R?CJtLvriS!&+1(tNO8^r45^Lr?36J49dX6?)ZB_PRvob#vkCmi*Uk`ES~D-t;uT z?aFv}kpKN*z7HS2e>}qX@%{6U@85m=^!>{*-XABqf8NRbbvypgtK)y(KK%3k?cc|< z{=PWy_rv>tXF2{|G5&Y2;{Q30{}%-RUl96#LHPeg$^Vz-|6f-Ae?{g0HG}`x&Hvx9 z_i>h3{}0puKg|69DEt58qW@3I|39ty|FrJ^v!?&gn*YD( z{r|G>|EnqgU(fviX2JirOaH&$@c-kk|DX2%|9<`d_Z$Cz-2VUL&i`M}{{MdS|Idg2 ze?I>I`}P0dZ~y=O{QvLI|Nnpg|Nr;@|Nqcc9KH+;3@jxl>rDu{jT(&V_z zYP92|!GYPL9v{-KNi|uheNvG+koGF{4yG*U%E*Wx zkr6Br5jWmubAK(^-5|Mo!+vLurep~j{odOQb~%gQeA3x8r(m9y^m-;wHjboF&5pwj ze{y&N=Co^0n;Si)SJYsQGkdYxm2&^sMztL|Md6QIcD~-g;KLmD{rWb&qXMy)f~+%j z3)$AZo_lQ{mvceo?J1qFH%LvG*TH8b6dYv8a(PnYqZa`H{GsN&tQe_1g4-aKZQPrnzg!l;s!~g+ctd+P80mtafXZK8aI<- z+PNLP2?w-vjvdnC`cj>?)^LLIiGxaRs~80ogi~@)J25;kb!g%3zj{Q%fk&c(nW3Hi Wx&@2p*NqGe3=E#GelF{r5}E)@u=JY% diff --git a/streams/icons/flag_cw.png b/streams/icons/flag_cw.png deleted file mode 100644 index d1fc9f9dd459690ca5cce59ccdf243601f2a953d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 377 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq|hnz$e6&LA#z&r=Cf- zfkm&8RlkYdu$kYyUEZ}{(QSf~`vi6G$r?VBbpxj91x~Y$nQId}*DijZef)fvl!dM- zi`-HdrPOUqt>2X2zP)bBzWS;AyXPP6nSXS`;^Q+`o}Rht%<^rQS8Tt$YR8qW2XAdV zbnEzq$0sg6zI^NDmD?|0zx(>-+t07xfBk$R^7Gf9zkmPz|NsA){}yKk1_s6?Z+92H zkjnz?3=9mjJY5_^BqZM+^b~3`5MaF^?|h)L!&xSvLpWo>`+A#TJsXGesjK(2KS?)g zJCn%YICJaS%eORl6!}j)f6#12rxt6Y`{g@|23ozE?Hya#+8t8_a<5I;IY)8P?XYHV z%lG*%;qT`%br;FH&JBJL_0{FCPz`t2vj^6Dx9$Een6pZ+VNuwFQ#?wO6+QpyaVR37 d=cM)g43E7O7yrr;XJBAp@O1TaS?83{1OS8wr27B> diff --git a/streams/icons/flag_cx.png b/streams/icons/flag_cx.png deleted file mode 100644 index c0d86dd5ef3ad85ca9e4feb9910e205fe0d43fb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1590 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfr05xfKP}kgW_67r8SI7 zYZ+BnGAplPQC`iWvW~@Q4y(#)R@L=vs;k)4*0Zax=TKY4p|OEWV+EH-E4TJW9_@`h zK8?JZ%lY*-2^wq?Ovn{B+AN%yBWk=wydqS>Zix82%(PC9*#x*ogrJogy->@}R=Xym)sc!Hye-#(KGj+T=gtR^{H zyHB#7r+z*(XA0+K1$RvCVO_ z9pdAg;!DoN&vr;iXiS)6pICY(agKfBT>G@Db7^xOGHcFf&a=;|J)bqtK6}1>Zbo(9 zeEa+b_61p0g$wP9S}qkWv@cm`SDITugr6 zw^_B`cJ+k#)f;TqZLnRx(PqQs*v*@4wr#T6xy5?-7Mnd=t@m!V-nZ4}z*g%6Cte@i zW_@U@&7o7T4{x(Ra^}sk?KY=(Sf9T1?#xc>vpcQM?X*6B^}~f-))%gQxVX#e(k|;O zt9`EQwz{_3=i2R0*LPdr*kg5bkJYXFpYQCoy1T*S-d^hmo7^AnvwHOG+v9y!kDq^g zdC>CJ0jt+LonIfYdb88%-9fAOdmKI-vix+&>eH9spATDoIc)jm>+i4o?Yz-+%u7J!DBM?zJ(I(AKE7f8aam@X)Qzd7?)d8WLc;op!W zv*zur+5@hf0ynR3;QQcX`!bCwLROiJbDmnmR>NKC59eqb8(U9|xpuUJb=xe)Yezp+ zam`&Vxxmov&Dz?7@6I?nh!;CV^K2J(xWzU-AYqH@0!_ESU#%2AifjmAy&$$Yn2F&* zhtz^XlS7*s_mqUQZs|StLWUtTbER?!gKN*PzsuLg3SJ7#l_+Lp=zM#H!P2dLMF@k# zyThUHo*l4Zh+N)eyJMP`!?wONuS-s>zV7VvJKFC2Ua@;!GhG>OhV->U%K;A9*e`t z@QUxM{2WQo(k;X`(c) z>u~#IKeKdjW(wa7Nx_Hu@mo0=3LJS?WV40*(Alf$Hf3I^P=nsTUt8v#d9zTySAy5! z;LDSj-UhlH@7=61X=XhGLt4g8=35q}`|9LQly>hFX5e_%$eQ3@<`VK_qEG}k!;RCk z7`nF#oS(zMAirwWyO6D}s|z>t$RznOeYosidsvjowf~g&&$K)051zXmY}000ap2MW zW9mN-xo>%R%0XUq(XDmge|=-$+{Jxgx@tlE?A>+Br)PZKuBLS*`O>1D$+P~w-n)?f z*8ho1{w{laH*8spsX*S2V?}C8TATiCSBcF@DVn)mMRmGB&JMn34oeS)FS-9XYIcn1 zH(#%ndQ}IyB+mVc=ld0V_V;eFU;SF`o-xNH*cK>F)m&!3%KV#Kf~Jy^)+hc05{Ga8 z@i}<+lES5+Hi=RlKc4UJR&g2}S>gOY-i+@jOUIk+C&CKR?%oU5Of~$+v_&G=u6g

? diff --git a/streams/icons/flag_cy.png b/streams/icons/flag_cy.png deleted file mode 100644 index 6c795008a932aec0ec0079f3d8eb85f5414ed138..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1346 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfr05xfKP}k<19v|*-Xr{ znK|ZiaL(i8p2y8QpO2lUO1lwM0sGsjS>GIfdm4YAe;W zR%_|3*3ny|XRy}5Xq}PidQ-FYX675rEjLm**OOg)p6uEGZ2#fshmX8Ca{R^d6E9Dk ze0B2ltJ7y+pFRKP{Dn6cuDrW)?cKF&@2_2dfBoi%o3}pPy7TeQ-A{M#f4cwR^Ml7< z9zXs1^x4;EFTTBa`R(Pa@2_5efBokBoA*E8fBE(0%kM8=e}Db{=lhR8KYsrG`Rnhm zzyJRJ`~UC%Ifnn|82_JV{(qk3|9RH`=h^;W;P`)m^Zx~|{};IbU*P$FQQ-eY!T%S9 z{$CRQe@W#3CDH$v#QtBF{C`>c{}s9aR}}tVQT%^Z>Hk&b|5sK1U(@)1P4oYC-T&A1 z|KBkBf5Z6y4b%TOE&kuK`G3py|1G=!w;cZ8a{PbW_5U5u|98Cq-}U={*Z=?BfdBV` z{y&KO|1kOg!<7GzGX6ix{Qo%T|C6HsPfGqjt^EJA>i@I4|IZu$KX3W}qV@la_Wv(B z{=e-0|9aa0*VF&Mp7H<9od0j;{(rmZ|GOps-!1?De)a$NYyN*&|Np~={~x#g|G54C z#~uGa?fm~~*Z)tu|9{&1|MTJhUylF(dh-9*)BnGo`Ty<0|L>Rof4}no`_=zHZvX#r z=l_qp|9{^5|Le*BU(f#ke)0eJoBw~_{{Qpt|DO;4|9t%a_w)b1U;qF8_W$3H|Ns8{ z|Nr;@|9}7g|1WZ>|IEO^z?kIi?(%uf#(nP?7??ynT^vI^jwk={QB069O}Ns~X!hXp zv(qWk1+Py%?_VzNx7+nV!}izD*VHy>{&{y~*S5Z?pVi;iJDuR39TgqDeBS>Ctsnnh z@GK~J{iL`5W81-K0Ylj(n@WFud#&%dr(Hd)blbLX-y4tI+HP}Hv}5_Rdq4iXd$MVr z?Dx3(d3U+k?{cRpTG&Rvf6&vqdF|TneEIyN>}j$Uo$6BCw+gYW{;;%p``(r<{&rt@ z@|||=m)id?HlJhZ5#Nfh+wZE*n4* zgR+1g)8_;4{yyicQ<*W>UM{-D_5T_FB~#e@&Cbj;;#`t@Z`J+^O?Ttw{q^OVpNej++no9&-S@-wTQuWxrj|UmR&wNx1ZNETOHE7kmg-zAgawM z8hL(V%jqY&Z;dRjbbfH!yVhY=SH*@v<4p)`F+`6YF zCG*-EiVIx#b&0>aV#Uoa*8}rUWUT4-|1|MY-|6pNVr+%2i|-gGw}||i^mujWx`?Ew zIn8TRij{bj?d$zac=Rt6d@&X5Ra=>M>gm*v;ZL|j!>(Q8e0b@rSo&G@omtw`udFFVdQ&MBb@03qTO82|tP diff --git a/streams/icons/flag_cz.png b/streams/icons/flag_cz.png deleted file mode 100644 index 0c8fd9389fb6683af5978d794eb6b93f7c35a81d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 367 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq}t0z$e6&fgzujA%~SA zS5&lGOsra3x=x27N|zxjG<1Gk+>%rV`x*w5RjbagUVUNBnhRUEUfs(evX4RJJ_E~R z2BsGb46j~&e*OB(yLVsz|NnpG?*=^v1_s6?Z+91o*_o|!3=9mHJY5_^JdQ6tcb%!p zfyd=yV88~2X%YYad)FRtx_MS@=AP$w4!--jh;K!o3d5Fip#^RUJAQQVH>^@_{Lo?F zuuHk|MhB;WWaG`9?q?XkbLgBmS7Q9(rcl`@n0dgEY3Js?6HM0x1J0Q^G5aVlh_7^E zbf{HgTu?iK!OWJ^L_Bcak9}5mS{T372u6s1Qe9x#EzqF2o@v@1rW>Cs6S7Y~XDGH~ zzVX@fz+`{Mb$^5ko{2Y@+cW?9sVQ)xzcHYW<;W*{g<1cZ9{ynvs1$toNvY}Y)L+xh ZJErXm-96uxpMima!PC{xWt~$(696evlsy0d diff --git a/streams/icons/flag_de.png b/streams/icons/flag_de.png deleted file mode 100644 index 4ff8e05810d84e8a0b6729166f02486bbbfbcbf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}}W?*2rqdKLBfq{W1z$e6&fq~&a1H=Dk z4FCWCxA$nNVPIfjO!9VjVHV`^`NY7$Anxhn7@~1LInjYxM>$5J#Kgw!F!Oc>2G1{y W*%5UwI~W)k7(8A5T-G@yGywn}s~$f9 diff --git a/streams/icons/flag_dj.png b/streams/icons/flag_dj.png deleted file mode 100644 index 12582c0c8527917f7024683c9c30778e218ae3ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 545 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq`LrfKP}k!x;wFv#ea_ zxb&{->0i}PoB6+B!T+L#|BDy?FMm=#;YI(X?f+-&`afg$|Czi0AHVVM%$F_vzcepMQV+`up=g1H*qNrvJ>$|GBvSi;Di2mi}*R``^{|zn9nln3(@b zN&iz){->q=udDmt)bzi<|Nq2^|EEv?KX2auEnEKY+Vy|`{{N>>|37!`|LxoV@7(!+ z_wN6vPyfGs`Ty0c|8L&>|M21ek01Yk|Nj5?@Be@Q{{R196=QLNfq{WB$=lt13dsG)q z@!QxJ@Ks4TVAY=^ED_2|4aSd{R#Y`|PH?}&5UOp!c#DI1L5~6Bp$>}%xkSbrf_x0- zhgcW5?O;5@!OtN7kadA_$%74wJr^2(swcMa@$7D?f5i3X(1+J+xAHW-ztLeMaDzXk zIQ%iE@$J$bRN@0Br+Md^~9T$%Tgl>*<--G3jp$$Xme>ni2h0tOHMK3*cG zoD#==?PBtb>+%0jzixQ_TD~=bVZt9oFVDp|$pi;cylr=-lJ*Evm zEgH_vW>Cy$n6iiM!YA{F8T*-@{9#@2T)AQLf7Xbf^Cx?MdN-d@yX1Upqz>N-1_lNO MPgg&ebxsLQ0NW23^#A|> diff --git a/streams/icons/flag_dk.png b/streams/icons/flag_dk.png deleted file mode 100644 index cd258831accc8f5c900f5becec7d8581c4364c05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|12a8=IvXyh$NRJ957gw5W+ZDbjJb5h^VMl+*SoC9*6lSwY4!d-IMX|H*Y zfq_-R)5S3)<6g4Bi^K(7lja`y@L!54Gur4tQw@EST{#aV-h^Pg5Ay5;8kNF ze@|7y73Rfq5@B*b$~zw(7rJK27So-&GhE|y4vUiPM*gKM?_bmZ{rlzN1>X+r|J*ZQ z+A?m|2m9+H6{|Ei__wE5X}x~Lvdwv!&3O~nh9>2^@0&Gs!lCt9R+nmog$&3`^fAi~ikx z;=`$V{O^vO-nFM%cc;PJz8=0=AMdm;)eyKO_+#(vnL_3PPa47iD&4 zZcbI>-t>micwXh#GsRIe8bt5dg)(lMd+@{jm=CG;=a}}b2qi`R zgtqFM{mu-+$+pc2g36n&M1`N*u$1TQYRQJs+q>6rY?|x1kG<~xzPjMa|0nQ%pOe{B zowMWI!C4L`Rvew}ZhEzCWs{@TWJj%j&Yf}$yQ-^rKYudVw)mJ${Pc5j4EziSv;6}^ zt68>kHH-MN_w3Y@_-J!Q@Pl4r*y{9@oHP#JH0R*5p!wo6>gHv0{;T|$lVHQ(<63Z? zL3-Zx#9o;N>}8glb3dfri#kz~Vg2~w(w?uJJi)dR57+LB_Bgw+JaXcc9gT@+zow=v z-a1|UZh1)Sj^uvj>z`80&aBuWbFS2^E84pM=PJ1?7iaIa2zTG;ymzhgp45DM)w~5; zEahe#{}tk$&}r=cI;w5URG!U?BIFaZz3*Rc`jx(qz51+G+n=jE#Z5OGEEihNDGn&f zXn2|at>jqcXGwjf)KrgH?l;nRt~jX7Xg}~Pk?--JpFQSVe@x$5%w5XgBqzC{JX-V! zW67^r-G9QnIQZvWe;j+^w8{S2FV%v&_OCfvA3OX1G_(Ic>3TQKjyYag>3=SxDBXue{oP z=+U?Hr@x*%_3iTc{b!zD)0Fsfc>kW0Pj{bq`tAFlzhA%p|NsB*w{M@n{`&j-=ik5o z7!2oJ)0AK^oMRTXAg6q3e(%15?oGx0+Z%Q#H_qJGvFL2);1)pPtv_;Q!`0JYk57R_08;-H#g3{ z-L&EDg(L6!>fb%M^?v#M_fKzscyRT@vpb)+Z}|MzaQH7{rsu#zrTL}{q4u^ zZ@=!{`Tgb7pTEEV{QdX$?>`Xy_4EJ#|CUcqerI4{5Ge`r3*LG7#K}{qFI>5H>-K{u z&z`^h^7Yp*?>B6%3=9m6N#5=*8K-l;C^0ZFoc45a4DmRgEO3x_M#aL0Mp^TO1IY~0 zY$6+OJ!V_X)+1$*bzlW!^9csGI}O&#%D3*YWiarw=N*{P$bQ4qBkPpp%cT#3o6k3d zNTz0XUr1n&EaLUJ7!+voaU)-$pW5XH3scsQ3knR?n@x;(3yi;TY$-7{4(nIH+@PTv zT`pc5Sjk(ocfx|T*`f;;Yo&VSDWp~W`uV%6+EVSIX#>BxK!?v6j&6_sPSGdFc_lt9 z2@;#38&h%V_XGR5a3=9kmp00i_>zopr0I~RK A82|tP diff --git a/streams/icons/flag_dz.png b/streams/icons/flag_dz.png deleted file mode 100644 index 05931cce81b43132305e2118f7a1c070a6a4121a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1047 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfr0UBfKP}k!+v4LeZow8 zg;{rtu&4_(ifb;G(3>w|Fi+BGj->G%NsF0MmNTTR zrb{|bmiFzE32BuLZIz8~kc(-Mi*1mLtCvrzkxQ+TPpgzquTaP;Q^+n=D9ckU&sD0= zP-;w5?ul2K7_B-jLUmrS+7dtYWxndmebiTaYiw}S*yN(I*+p}^qvj4rt^GDyM=Z3D znrj_5*FJ5cebz|lyrIrT1D#9yx|j8JuIcF9(9*rBse4;f_l}0%b4C3Z3i_|)^xw(o zf0Q!#Bx&$T%J7r4(I*+BPjV)obT~S=IWpy6tBTyU*GVpY@zS>pOoo zaQSTH{>94gi%q~6`=BpQp1E$DE57Gee=lnI zUfTSly5mPp=a0JXAN4&y8hd}VO#IP0@kiUFpS?4G_Rad)KkMh@c|WJj`#E*~&zXyV z&R+U+-tu4bR{UDH`q#4czm~86wQk$*O}l=)|AH zC;uEh{paMlKW8reIeY2Pg{yxqUi)+D+MmnU|6aZM_u8$$x9-~M~^?%&(@|K5N2_wn<;&tLw1`TGC+kN>}Z{r~;v|DV7A|Ni~| z@8AFb|JB~V%41+)U`+CMcUiW5gY;Ae2F44XE{-7{$CDEj7^Vp_@GNHQk#ab|5XLBJ z`t?iGGs`EE3QHb7;bYynwcFFIA^Ny<7sh!wA>vlUxXVvzr8 z)631B#tveu?$6@2R8%e1i{93v!7P!h@awM2gy5vD)#e*FDzKC`FwQt0!gXO zgRRS6LmTV!T+O>QEw&aa3bI)^gv>s`8zI8%J>y@euZu(iYhVtyxq`Hkz{J}dXK3hW zIIex%Bz55l<3oQ%Gl8iK**Y9|TyDCn{P}f_r$K{!R)gS-<8wmoL|3e7Vqumzvp|hQ zS@r2sP8A6Se$xY7md0m!X8LSlJhLo7xFm97QS#v@sh86PA{Tr($R$$Cw}dJ6WQ)|I zZj;Q2i7zzR^e;UVSJPM97cjM1{Nyy%+5=Cl*XybqqzY;t-POXqDB?RG*QcWIr=p#r zjvh+x2-@gUIx%o-=AoE}lJWaH)|{H!8Xn|ox_wLPw+!yoD-5%w85kS`K0Ue9akQR+ Pfq}u()z4*}Q$iB};gamj diff --git a/streams/icons/flag_ec.png b/streams/icons/flag_ec.png deleted file mode 100644 index 1bd8480d0b3c3d882753da24da74ef07f92aa95e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2620 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 diff --git a/streams/icons/flag_ee.png b/streams/icons/flag_ee.png deleted file mode 100644 index 77cf97ce2ccdee38de332e6cf4ea48b777d37533..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|`@6@Ck8c0D*T54FBJ~ zd-wnU|H|dfS_}*fj7i?^E-d{SHv<_M7*su7978NlCkH4oNVtjesIxY)FdWv9U_EhQ g217!DA_G{A;g0h0gO_$X>VeGjboFyt=akR{081|;EC2ui diff --git a/streams/icons/flag_eg.png b/streams/icons/flag_eg.png deleted file mode 100644 index 3f5076096e70238308c3a07862534b1a96b2056b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 788 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idV_;xd=v^bvz`($k|H*Y zfr06yr;B4qM&sLA_W2_2G7k6i)5>bA%fJ2d@6l#2Xq+Ixx+!4MmX%6NJty`%HfjXB z{&ZLwyli3PIbIJAch3WC&N+S7_usueldsXE*EQvuaqD-})pvEDy?py7%Ot8(VCSJ3 zcbIm*WPT!c!dG5lyF=bDhMlZMm)TF~PMB@ykk@$U3u6)YlV_*c3)ZZce=_Yv=Mjm? z@7P^(Gu8Y#-b!~}%sur`E@{;iuK$Xa3=H?>5@UKdir)R>-}S00t5r2}ALA=^@#6;W zrPG`fJts*%5YNwCe!eiZcdKdlPwy?i8I~Q{p?EAe*{AWB@dnoBk9$vtMLi1QF|z+V z_vGyOPOHVM-Y-sUjNaK6@L;zxgVT3LdwZ9|bMF4VAC$q^8OQiF_(1ZRhIN*Y{+^DP zSo3c4uFuTx8Q_i=U$yXai&+jx|%gZXiXmG44U z6>bC9J6d1gF`vrfPi}8{*0RCk;0@C?vFVS0Id?sjYf}Buueqhcg)!_{`OQ5aJ67Fu z|Eu}x{EJ=5yN+`1vp)K}UV|xk`c z*Z-V7_2XP>He)AK$!GhHTM9uB*mielDr$8ccs{kUO>$pt>o3mct$&|>J?+NF&mXTY z$=T4+lAPXSZdfy=n?r2l;}wOfF2%Y_ig!A^_|L!N7C4P8+u@D UHk19!z`(%Z>FVdQ&MBb@00c&84gdfE diff --git a/streams/icons/flag_eh.png b/streams/icons/flag_eh.png deleted file mode 100644 index ff25a7d502c39e34f1a520074333cb687af187fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 913 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfq~i0)5S3)qw(rYZ;y~fiMIR3#V`S2Al-=aZ@-VBH(LMEa$AS7&d{>yOZhGB% zuYlf`QO6O(dZH1{$K%wRruYT6x+ z`HXYEigZj}`%2QDSwMn?@5HvR4gVQAA{w(CCcb^swv6Fi7W<@>?DY!+GH&}fFT9oU zrn`%4Qy&A9`hsZ(9lBe~td|NoFr?4)k&zdFnWJp)Q=H;f#?auVY;A4&MP^oFp6OH` zrYq{7Z`JDQdGRs?1ZJ2OXPzuSyzc##^i{hz`4?w}McA%joD&*w;NipGUB1zhGxt{I zsp+lXadzL^X|fCnH8#=Fd&^d5M8vL4KX1NW^R*IpSz+qY)8{s@7KDY0ii_Elbe{|s zKO(YP*-SfqnWgdBK5-w`-Ek}9r{@GQGn_g3@W6rpcc)~Ontk5%`q2GdheCE}`6kYt zX}0o3`_m;?;35jzfFLSb7 z-M6A+@nY%H&9`R;tkCPTJJDHLTJvFY_Sx(GMoceCwnY5d#o6am^gFRM{Epzae;1ZW z&tk~Td~@v+Pt>;0XOxf4>QH%gsd8Os{hz(hTNE5JHPzKxZnOI_yb=`5$yst(@#4HC z5BO)ToU&tD)a8t6ff?lnf}9t&iJPX*xGz>C&B!w=ELu6BTIT%sb`LieUdDYYkDXN8 z%G&(gSn8Qg#25XO$hpO*BlE*-R&Ucz8ClE334#aR8}9MMtT}Sy+lLb!4@?`J9i0u| zi5`}lC4Md8q2+-TopoUk&b~7^-SI&2z-!wbag8Tud^p|lKrF$v-C8xnj%DNV%_1?3 zZo&mGReo)|^uPK*RKvHJD^rs5iucH797-^LkaqJ~mGy;|pdz`yFE{BjIc#70mhlhk Z75|Q7x9vVQFfcGMc)I$ztaD0e0szZMoS^^! diff --git a/streams/icons/flag_eo.png b/streams/icons/flag_eo.png deleted file mode 100644 index 23f0ed909146c55a40abad26033cc72c2501e210..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 410 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyV9@4ZW?*3W-%?k~z`!skz$e7je7$+n!6cyt zLJTt*7-urF%w}Pm%_g`&P<)ZN!ZHPw8m%?5++b<7!OD80wfk20sJ&4M z`xDX*rKKNAFFsyeezLssWM%cK>c+E;E$3P$T%IuP>a;o6=ghx3fAOuwYwoRCdvEQ| z$2(8II(_E#nJe$ETzh}*`upn-K0kQ+_37*HuiyWC|MBO??|;7k`19lE-=BZ}{rUI* z-~a#r@A6wzFfcGMmjw9*-@N<0=o;G#1_lPkByV>YWAm#uaSRL$b3I)gLp+YZy>e2B z(NLh_;fLfm)(3C&roLHr|Nq?>k?EEfEEj0~U#lOlI(Lfb1-T|S|Op+xVMsvm>Ii};1C zsw-ACI`1>^o5m=uYp{Bat4dzamIHq@l$4&otpCq`pUEgQ)t;f?471#a26medulQbG XON-=5Ol)FcU|{fc^>bP0l+XkKg4n`O diff --git a/streams/icons/flag_er.png b/streams/icons/flag_er.png deleted file mode 100644 index 005eb6f0052051000a4e51381f68aba204aa112e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1597 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq`j3fKQ04@;o<{xo&E+ zTy>|o7))?BoZ#YA=iprD5SD3^6lawaV%}hHJVnc3j`X+;Z*nmg`@( zZn?Dez`d;}pKn`!Z2P>uJBlXnXk4^2rF~aK^={+v-5%L{m^Ah%x$osQ*(+?hk3oGO zqsBf~o&8K2`AjgCkfACWRSB4c_)*7T^f$x%78qw;1)70iw*njcfPIHqEGT*K;ww(UtB zo0A6iCk^dS8rh#Rb~t6?aLUy2w3*XsbEnf5PNyxM&R990v2rOO3pi7I7^z>RM*>_4LT=S<%CCCfq7Zyj7lfyE5^1Wzy}Ml-sq*x9d`F z*QefXPP^NZez!H_Zd=B^j?DX=S@-*L?)T^1pOE{YH|N2G+y@i$9!$!6FggF>l>CQN z^B+ztcr>H%(afSpvx*+iE_ytt`0?E0$MZ@aFDQMyu=L4-k|&GGo-8hZvb5sq@`|S` zDxR*We73Uc*{Z7N>uR2_uX(<{_W9eZe z8(-~idbOwd_5PMO2V379YI}3I?ah(4H^)2P9&LYnto`kYj<+W}-=6Axd%El0nXY$d zyWgGbes`|t{rR5v7kb`b?0tW!_rvAB4_Ep=TDDT^#W& zMAtLV%jAPo@;kozgx1_`zg;4Of|VMh*G}Ov`FXGI&fl2rb-#UWK_T^8vPQNklrfAOI>aVjq?|HFY_}5qN z|FC(x^}c^sx3g(je7LNBUtE5xYK3;9f_CuQ>|(}G`vcC^9t~Tt=ZbWVk@Y`zF}8cP z-e-TuvrM1MZgc*B>;|SA7a~?(o%cgNLgL33KifF<6!Ggjr~O^JZR>$Ejd@qM9ji%5 zmty+O_rlq_Ao~8sOGTOPat;qS__22E`)97obERDF6w`^-fw|@T*`_gk*d-DxV4BLa zA#C+e!-n+srM{ByelEOyddc~GGoeGl#~L2#W^HG-DEqx@o86{@^cQ94I<8HXWL_M6 ztYMW_=(E0m8-9N{*7ua*PEhdruk2?T5{c5BqF&j^=n;9cdv>f62PjCbb#Y@YkI zuwmu(7&|Tz581B`rFloU^qZ`B7|yWfpU}z^c}2gLyOSAQ z^K7|xpO@61PnxqccPTP(-^>5%aSQ_+)HN2u`Zb>$JwL(*Zx79w!ZB5%gTe~DWM4f1OOY& diff --git a/streams/icons/flag_es.png b/streams/icons/flag_es.png deleted file mode 100644 index 4373c6b5cbfc55c46456f0a65ee7493fa9c5a84c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2141 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfq_HF)5S3)wgA1wOKw@utSh1?Uwr#~n4=|JgkkPXLxTm`_f(EHDcp0K zma;56U*N@z3w4LK|KxvMwah`E`PTEEe4m7qkC~nnOWHa%t`}>_V2eGW_)>F0apA*t z%NNeGV_cu^W@~Ork-`42$!GId2b(JrRoAMYIr~s! zw)YzjcAmychrePO5$wwfzb%`?JNKf?af!=Kg^OlgaPLp5|9vr@fnn0B!mc*wfQt@q znRT-pHIgg<2J?_-&u+kDNUYl?5iJZ@dj1+y74W++Wu@xJPDtIV&X3<_K2KTOG0 zIibWH-RwApCy0+jOt>|_F+uXfbb-{(jx%_29Tobyro2_y@+>IsO5uFr2e+$pmKwZh zmrrV|s{2#8Z0pheY3sA^{$3|q8F$?7%k$~KJ-_YrG`jmE{m-YOzxq#tUVqe9CA+-18ztgznSawqDo=EI+*#p-=B|Bs%{%+0hb-F-55_n!6I%X$P4%$+TG{E}@~ zkcX>$z`x&X|Ek^jYx8QFsm#k=Mq9G@w<=8x5qnxR?P<|RUZ=l@7A%{3@Q;ey?R^)P z62cjq%(3 zH)T4P`dahp=r!L~W9W6e{Qt@FKrU+)o8#ZMW?O0qv?>d?-%efpUxM+@znZ9E(a0G0 z!0x@WnFcHizBDW=S<&5+cgdh(lKvHr+egy1wzR5>+ePWGefTnJDIbH#y(3?p!sed6 zqW|7UTA5)=LDk-fr9xRItbOwo8REn`${gRaO*kXTHX*#|xBj-W(Chc~L?1kl%GvYH zZt_jWhLnv{X86d~)P4Q@^y6m+9-bo+I%3TS7hDhTVF~bM(-r5ry1YVV_o6TU7W2o~6uLC-2B{}kJ0(18^gqqCy zf8&oU=Y6fPSFfVt)ebCXzj)oA&nRcc;^ziDhH-m4^J?FGJhn8hPjgE7oK^`mGu& zx2f+F__fHR?WWJ)Su202@fUaOw!6hVcilPpD=`__AIv&qtje9HOM5UL5fogd?EZw; zcdq;Cvr~EJi^XkP#mnJPueR8HR*QON+4{7vI-FbA6dZkgz~+AP6~;BI)xM|&m=syg za?<*EvT=9Ll}gLg|8A+?Wt?TzaoW#1@>GsJL+X~5lY_gOgZ;%XDu*mxTC{J2`*QO+ ztBf??wth95mpi|={N~DY@zuYxJpyZ_Jo0ajgTi3U;SejhDz2FY- zs)zs?wosN2!Vl-(l%D=9FMj6s%Fs7vlF~WRjJLVBH78Vye@I>6TPMs~SK7LCo@AQ- z!4j)YwH5VWCjU64CcoO+aqff*Gw0ifxV73d3p{sTEUl=X^RDqj#6J1J{Sq586TDe< z#5R0wC}v}nNe!ufHKpgUq1-!zY!d7gozj;}!K3Zud*hN;$!x7lt) zz3@>_mzke>oApQ0hI7AJ8>F4ojOs1@lMXIaXDIY%p2K>!f@vPpU%`ai410ISY~XD; z&tmgUoZ(oWX5o8#JK$u6^JR?y$f93ro_s#YUH>cPqW^#5uH%o*GA zoK#+1O6T3@uO0Mdmds3x*9ZSfCbJaqCQDeK@L0 zWq8F_MZ}%lcx~0=OP}6+{%Sh+^|j2J+TD9jyqX{oSg|A7hU?6&OmoMu69PAjW?pvx zds=4xF^{>Mt6tAuU9Ohn*&8`eX!e!gEC)8uy3p44YFpmb=g-aOtUqH@m{R|6<7LsM zyPBBpZp)2Q6P8YFWeT(~0-Ln$f|}+32arnGk3qdb_(AEV{|uEK0@b}be)bFu3=E#G KelF{r5}E*kfbF{g diff --git a/streams/icons/flag_et.png b/streams/icons/flag_et.png deleted file mode 100644 index 839366f03db19dd80a700debad5684de0f87db66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 996 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfr0T~fKP}kL-sMo?8A&X zN11YtFlQZM&N;%8bA%;#H*4-;w%kK(1uNNe4{_uj=7#5C0w*qqUZY?Cb6Ce`30UAjd!Wut7_X1UVM zaxK>KWt$XQjTFl_D3xzeYSUIuSff(0UZqo3wPKxGm#|uwn0n<}jphi=s@0l39GX2` z+EuG{s#ob(uQ04xW)!o?v~G!6-D2}@U5mO!mh}s*8y46!&bN)2W!o^{zG<#Q(;Ua9 zInI;0-CAaPv`+VIo#x#(&A)weK>MV?j)_5mT|u1_Ln1muIwyp7_Q(1)#rAZ?^>)Vh zb|mz*C;8T;^tYzg+{H^OnRfS{l2=(r@Xq=w-{ImM@Q5u{>(!^2pUI z!q=<}Te~7`-O8}_t3o%d3fZ(Oc=PI@Evo~!uL;<>)^FEZzuoJ6_pSHdzux=c2G7GA zJdWF#o!RVkeyhWUZT1(p+F#Pry}Zr#+IE{88k%=^ncv@K_Gq`sQ&okhdySs$HGF9z z`*NTD8zrf?2Xx;Z(0Q*Y@&2IphXdLljU_%F)cSN#^V?zd?}ycX98vvsMCH#><-bRj z{~uHQ|NsBLV%x6_3=E7(-tI0d)%n?27#J9*c)B=-cpQIw`KI}mM496sx2JYYbd>lV zHS>+8P~;}@$gCqbG*8~>$~kH0x$Td^&0`bR{xps)dHwRs3z_i!-`{?pbN%Y`)6M^R zL<1N_cd#jZeD}8cWH?(;lMUmX8YTIEq8frF_hl7i54`v6w2+zp?Y2vkvCA38j1pnK zM5YCtvt}z?kYhT3YiHs_7M+IAKa|<*&68$aKQvd^QbAfFOY6ytuY1zWI1lKs>M%EK zd)U1_R-WBqmdJ;;L#D2QQxnERsn!eqZ}Nr(MB0gM8HTk@|7ZT_Ik)8KF9p#1ahw7B>2)A)}y_f2dn3|7!N z!Jxe7OyR;mtKUyptbXm?LgRBOFZ)s%e)~2w&XaGh%sxDMDMM(Ha~89Sb?nx}(zv~| z^%pdk|8zm2_~SC`t9lcSm6~ru7#J8BJYD@< J);T3K0RZ1x#r6OI diff --git a/streams/icons/flag_fi.png b/streams/icons/flag_fi.png deleted file mode 100644 index e4140c40f9d3b253b9ab8e445bef922d1ab600e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 193 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 diff --git a/streams/icons/flag_fk.png b/streams/icons/flag_fk.png deleted file mode 100644 index 4cd225674031369c56d2550b4ee51ce7b484b85c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3307 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 A9{>OV diff --git a/streams/icons/flag_fm.png b/streams/icons/flag_fm.png deleted file mode 100644 index 458bf1503d3aa4f2ca6cbe0bc363891372de0142..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 666 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq~H|z$e5tefqVG>DMx5 zT+5tsEpz7eteMxdXI{^qbv?zgCAX`W z-mY1Cr)Jrm+GTg@mfxvgey4uL-G&u+n^xUzS$(f{^}Y7B_dC|!?^t)gYyJK14G(%Z zKIq@{aKh$?leRpXy!Fx4ZI7mIe>`pb;~6_1&)W55&h97k_C8&(@9ENm&sQIPvF^mn z4JTi1KK**fxi@<+z1@HL-NCEx4qtnJDOD&zTSTR_0IEecVB$F_ww8Qm){<~{{HCo_s4I(KY8=x>DwRA-~D*;{^!dNKVN)s`SIuLk3Zjk{{8v;@2}tge*gLR z`|rO$fB*gc`|t0+|NsC0&-qmw%D}+DnB?v5lDhS7$9x6`Mlnwp#}En0w+COEF(opv zJ=i|$Sb)=sNqbW~B~D(-T7SZ5;RL5W-|M-bF{SOZd_KGQm+5)ter5X@FP+14FU!P8 z{;CO9(5=n4ne4lGBd6y@?pf#56m+ksS4%xv8kujvTB#ZvxQW%{v+kiSEaw}JK2TuW zn8f51eOy4>{P5zLwemVYzRoRJ659~by1ss`VMJG1U9`@@d9%()s_cKXVdE#~OD9yD zH!RD2V(;-SEiw7w>?glHy;^mjHpbq|++gzQgkClyhi&NApUtrmw=O?#lP>KDRThxi z-x49i_vi!9w0xmunkTf=nO`LeeloJz|IF-3>#r35<}EX&XRTYNs9Bl4XM*qIZETrY r%Vit1e=6_TypOBAsjgzqA7-UMozusU+gTe~DWM4fsq>8+ diff --git a/streams/icons/flag_fo.png b/streams/icons/flag_fo.png deleted file mode 100644 index 87a474894b025f404b9c9b7bf6669e8e4c116512..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 235 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq}s+z$e6&!D6~m{OXjp z1C{y_Z41wJIi^m~^_{l%%3>Yom3!{2+IwfavC|GMi`}OlAJa5EdG+OW4UPZ*|34A$ zYGPnuU`+CMcM*KF)pi#H14FW>i(`n#@wZo^xf&EiS{}Yk%Zz;d&-`|S; oU)c)j^0}MNE~^JAe$QZ?vScyC%f`%)3=9kmp00i_>zopr09t%pO8@`> diff --git a/streams/icons/flag_fr.png b/streams/icons/flag_fr.png deleted file mode 100644 index 5d6af4d1eb66aade9a1e67c36202cfb643bc9f11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|`@6@Ck8cP^(|H{mN$v zgWsEW{r~@e)*=0q3=9m6N#5=*Ed3cb0~r_?6g^!WLoEE06B?M^#4QYhnwVSutY`{k kUCiYs+M^|Lkc**C?!-m8Gaq#s7#J8lUHx3vIVCg!0L$Mdg#Z8m diff --git a/streams/icons/flag_ga.png b/streams/icons/flag_ga.png deleted file mode 100644 index cefa4653f2462c1553009be5934da1401d05caee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}}W?*2rqdKLBfq{W1z$e6&A$O12LWcj( z8UFwOU$5xz%D}+DnB?v5!Ys(+^NE3hLBi9;F+}5hGEb@ls}GNIR70wXjT@sJ14Cd6 X!<%W3XP;+aU|{fc^>bP0l+XkKU&S7> diff --git a/streams/icons/flag_gb.png b/streams/icons/flag_gb.png deleted file mode 100644 index 6fec2bc7ff421d988d38029380a2fe0b494f0dde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 618 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq`L8fKP}k14EjuY`L6V zg}i*Fnp&;8daZ^=-NcD|r%v5JZQ6n9(+|#>b7cPfql*`xShD2As#RysFfg3s;<}=) zennIBsz*yty;uzv_{Oz>cVa)~tuI;R}DEm5_GP%RI-IH1nrBnb zki2<9Ed-OccY&r?CUOg5Nx z#@xAC_FoDdD{iZNn5vb+Ftzq|D)$7J6AWwTzAk0F@RFaQX0ID-LWm&Cnx+33w=-t! zosjn+-D&5J&}YADMElxP*D$Y{f8;_*>+WgXlWgatesmP7G&<1Twc>0HPoMZkhm!BB z{@&Pr)%WU4`OqW#xI@Y&-@E3!ifh92c{fejy*VfD@8%4+soiI`lxx9T(e~A)oef1F z!}dPj+Y+&#A$R|!ged|6BKfA-h37Z~?$|H*Y zfq~_jr;B4qM&s3+`8iXcO0s>pZz-a&c8XR=WcOr8e!~qbI`|A8%>S9bi)D_)5uwtX zN)uNo6rS8%_8)t9K|E9=hXFCu;AzKwWCb z9M?>)?}5`Lk_x%(UFu%7rniVKbiJVz6VowYa2of2scC;aC89kpDXfuywqNH=r6!M&FGFx%=dCq;O=9y&bhWNk@N-IgU?wOCUx}HaYyCa&ROPV)^NCaUHy(x#CtVMJw!P|o#-=M_n%dDRL{{6)T4c@5=j--v zT>Z#1a1~?DYt#Lq(eblhWo%e;_!je0H~nVDEng#Vq@|ZszO{PxJa^uEP3IS%Bo3%E z>*a6$8IYKkJ^$z0ZQrM<=iTI4P<~>P?X{<}qGw%ux7&1NtJa-%T&(o&ox}CMlKe%16cKOjbH~faP78_xgK>=UHb&FFg8bqyOD+4czzHx^JFg zoBw{pqd50f-abEEj_@uF42XO?Z?nn#*H7WfBSP-ZfERsox}^%m3bEC99#S~?0TWu^Np>0 zuM}!-zUva(s#^VJ%B6j^;+pSUe`vgKTWpm4*K*o5zW?)%of5VTpR>&J`SiC|za}g7 zcWl}!G+ArUwI6HWxF0*?WnJ{_$=c+P8vTtcllNSFG3iBU*{6*BCpxP%onIJ9>{xN? z+nkwGGgrM@(|h@j>B=iFmP$p0JpSr7*t_wYT^9C zPaaBPE*0Ho7By+Rv@YM}^^DkAyFR8 z_Gf9-cg4FWJC`P&wXj~aeeUu}p$%cM14{nP86T8(nH?B|}S z>!`Sk-`(=`Y5I(_8F@?Rp3hMK|9ZjZ8K;<*6?W*AiJ#N{#aUuJT}|(qSgU%`g6Y3k zK6P9se(GOE$4?#ke|@V(FS4;!PP5x})8~xlg?5w6hmRkQ-u%bn+ggFy9W}+X3WDkv z8aS^IUDrF!gfqG2s8g;?ecuFOKk+(2=|@xa7soR%n#Pp=PjAZ>1_lNOPgg&ebxsLQ E03+;{iU0rr diff --git a/streams/icons/flag_ge.png b/streams/icons/flag_ge.png deleted file mode 100644 index 00068c02f44a9b9d1c4986a07e6869fa8419ca0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 593 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq~(CfKQ0)e+GvCjEw)8 znEo>}|7T(O&&v9ro&7%_-+uvt|AK=5g@pbK3;!1t{cmgg-^uB}yZe6+kN;j?|NZ>_ z`}_Y72>9RC^}o0G|D;L(Cr|!AXU_k5^Zw7D|9`=P{|guXU$p4|(xv~GE&IQG`TrFw z{;yi~f9=};>(>3>u;Ksa&Hs1r{=a|!{{sj9A3F5^^y&X+&iuc2?f>=b|8Ly*fBW|T zyLbQJyZ8V8{r@jt{(trA|J%3!KYslG>C^wupZ|aP^8f4C|KGm-|Ni~|k01Yk{rdm= z_y0eC{{Q{^|Nno16DfNc7#J9nyxm<~er}m@kb!~Gz|+Ms#N+teYq9=^3?x_|B&Rw# zPBHCm)Kzw#xHktD?cxJd1;>0RGw?n9NlZUmS{}M z6A(x_p9ULUtQw>NJEYtpp- z@{9)t|I<3f1U9TnFuh@Nfh~PSly%U4Ci{Kv&bmxe9QQclW4)ncU(UlsDT{9p{MEa>!Ykxmf^xi&$^X%FY}*rh`BFqGvk$M2tT09p*un3=%Wh`%QdEjaJSg5 z@BdX{ViG2Oyz_c*-SU|FMfY6QCaY>snEAu|=%TppoDb1It$(s`9da$nUTWjVz`(%Z M>FVdQ&MBb@0D12<1^@s6 diff --git a/streams/icons/flag_gf.png b/streams/icons/flag_gf.png deleted file mode 100644 index 5d6af4d1eb66aade9a1e67c36202cfb643bc9f11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|`@6@Ck8cP^(|H{mN$v zgWsEW{r~@e)*=0q3=9m6N#5=*Ed3cb0~r_?6g^!WLoEE06B?M^#4QYhnwVSutY`{k kUCiYs+M^|Lkc**C?!-m8Gaq#s7#J8lUHx3vIVCg!0L$Mdg#Z8m diff --git a/streams/icons/flag_gg.png b/streams/icons/flag_gg.png deleted file mode 100644 index 6be6e154bfb30ab49547dade3773364959132972..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 351 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq@}5z$e7@g`niZ;>_gTsx zGO9jJll?qh_RDx0c6X60 z;!@CNU|`tb>EamTas2JIw|q?s5^ae`*60LZ{>1(M+<$}LiP^7~7|z(*^<2F<`|;CO z#k^ftlBPsi`>x?^neFc6op77MLHK4~qQI;Z``9EMo&_8cQTW=xzK?N5spfHqm2=hN zo^eX3cK9}0M6jgP8!-3njbVGy_1Q$!!Bkqus-&T?PU6L<%O>ItuX7Bpi*39+TlVp~ zsjp2YrD|KptNmB1d?3$o-9Ky*Lr4-g&ud53`MFVdQ I&MBb@00d-^vj6}9 diff --git a/streams/icons/flag_gh.png b/streams/icons/flag_gh.png deleted file mode 100644 index 4cccea545d76517ebc7599a00d32f362d9166f39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 611 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq{`bz$e6&fq{XMnTd&k zfti_sg@u7dkc*X-kyVJBRg{-QPKZNZn46oC$3T|XM4peANx)V`z)n?AfJsP@NytT0 z*i%Q8fl)NTKwOMjGQmnpl36O*Mk>WdD$Q0p%R#otMXtnEuFPG&!b3rxMMa54Uzg32 zfzig2-N~NA)rrHymBZ7G)61PRI-EN$iaUXUDKmv9E0w1(hqow~x2%w_s+6z3iocbC zxwT%Pi-BeCG@*sFgx4~#tY0p=XN%arZDRYkiyhx5e)53CnZpw2k4ao)V7<=3cKw{> zqZ`ss8Q7lQmVU;-_WZ8&3kJ5A_oZJylzI0==FjMlLl0_FJOC374ovDD?;k)rw(FWm$yVIA;99U_q@J5IwK8Qnck{!owxy`IW0x^H0 z_1qOydCwT^ycWIQ-%yvg=lrbl&w-H&dz0?2UzVExz)bD| diff --git a/streams/icons/flag_gi.png b/streams/icons/flag_gi.png deleted file mode 100644 index 0e65e3a61146f9fac907dcb5622f1752d21d2c62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1733 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfq|{c)5S3)HIpLkh79rYExUgr~Eove|P8Q%UjO( zZisGov=Yp738u8uKVxy-mZ`N`s+{d@{>o)c3zm~7`QQK^Kb9dYOL*jX!@o1| zWunohoXBY$e=JQzHr_m(=52A`Nj2Ch&AU4G?%(R~4;s1K`IuKTC^6ia+5gF&mt66;DM*I6r0^DoL+tz)&dE{8{ z0|CLtnVrGz4vp)(vL5^{e{aRoJlne0RqDdz*W&4>oywoZei$-Z9QZw>LU7`S58c;K zr#E-MN<89z)_)Gi&l&G#h8#<;_f@fxVCwIfu|<(ZsO0^YmyxOh8k(Yle94Cxr?FK& zbWr2|tGaZfMG+quqm>-m4&;1)-Y%lDrOAJSfD4m{`Umq_o7@?gY_(ooc9B2G zbfl^&Kz2gR-nR3{Zd@0+SZ%nqb{2&=&4NhnXMwKpc zZ9mX%Z*HFL_aI73H2PoCf^A_=Chs1uH4;1bM4^Lm!9$kqHCtk<^5(hcPtXZlztv## z#iZT(`yI}hdZj*m4cU7Rw_h@ zIA=LsT`u{i!tH&^?vzw^cXfYGuAN4vdk%E(^_Z*7BGBgOup?zsOXj`PI)-;8_Sw+o~$?DM5d1v2e&O2gmWnFol`ePR)=N!EvUY2*4irY!?uBC;?w!TZ@Jn2)>-Vycz<9PxBOer%;Soi)=#+4 zylA@nX-U~OkK|sH#%)eXjpA_|gNm7+o9{Ww%f=$J%V+;j1?AuVb1Y8#@ZFL5Qm`Pp ze52P<*-PbrD%3g!^ODPD`K^O~B&7KDK4UqzcPC@nvsBp?hr0M9&bj8Rhs?Xbx!p|A zs>q7niuI7S62DB1WkT|+6<7M^UU2$d@?;9%HoppI*5i^r2X=%+FSl%bvPt~MxdTPd zBaXH__-4T0F!S+jv&KW#s-C|5GkA?;Q&R4}z9XI6;d156gG}bljVI4%`6>K5&@K4p%$vb|=f$6>bl=N#p>UQP)Yd-M4E303a}%&fvDhgIEDImD$T8Vmg^ zTc5Gq%6@$%ccMk`gOIY-M~}pY9TZjPUUkOO^*l?c{&^dQa;eB#hmh&om1$==HB5^a zzv;Ww6u@z@$@z2#-{*su*@VLrSb`SKof;^_o}y7uVFT?f-a$BgU%IXpwmjQ&6ergQuG=uJtuDvH81SY<*16 z_vQO!5C8A&6aFF2Vx<$-TW~K*Lw?1S{cC*0Z*QqS-STBa_HkjCODSEZp(nhx4}D$w zeBTU_?a#BnD6QqtSiQVNM&nV{s*`e2_NhIB3@+ifFYnH|`2Dm~_NlGa-EAx@Su+g%9;{R;^z_X59ul5>HbV76Q0(8s+T79K&&jW5xuunEz5Pt? zZTtK+LLN`0lGD1&@9Jb;j#%f^X;WO2v~St^AM8$N%oN#AZT!i=z`)??>gTe~DWM4f DgT5;C diff --git a/streams/icons/flag_gl.png b/streams/icons/flag_gl.png deleted file mode 100644 index 9d716ad2f12aecf2175f55d348c7b559e4199765..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 605 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq~(FfKQ0)eFld6jEwi0 zneVf(JYZ#gz|Q`FgW~}w=L0UThdewFd3hg6Nj;X4c`PsgSV7^jqT&-3l_#2-Pjz&j z>gqn#(|f9~|IF0%nT5r3JGG{Ij`=y`XOMm}Yp`ov$qF%?x zzfMYelbZTAH}`FR{@cRBccrE8Dk|PpR=#g&c;DFgp`+tNXXmFWQ$9_f{%Q8?&vWN~ zo;UCFqD7w(_tXu;JUTUElZa{eJM^j}s?;oId^Y?Af2^ z&;Pt|;pgSczph^Wb?w@(Tep5cc<|@RlRqzC{(1H4@4I(@KYjZ5<;%bC-~a#l^Z)PP z|Ns8||NlQ_KNmLx0|R4{x4TQo6XuSk3=E7so-U3d9>?Eai8f~nlsNWL-P1Hh=9J=c zHpONyKh@=GL4k+9|JTWL(*C?}-rTJ*XaE2ExwdxW_hY~1of%jf7)tc+_#Qv`EPF9y z_-o-8(@)q+GT$>|+sqe#rol*1CAW_v$8%o2-d0I(kYPs$U33!X~R967B86s zrMHGRmo`KS9x!A!d18A_;(-UFk}T5+4Te091V3gkmJJ!&qNxhsBE5I#|2ACtKKNet z0kgXGs~EjmHY|U$JCJEcSOeFLS4JCL8KocnOYC7P&}Ed&>tFIAOW#?g;p)8m|Ma+a z#m+zf`eK`-_W8rVvt-=PPPxza{Ow!=pJ-;Sau3ziz7}kCI WwZ$nS_y_|71B0ilpUXO@geCxWKQ9#k diff --git a/streams/icons/flag_gm.png b/streams/icons/flag_gm.png deleted file mode 100644 index a3126c48646491d4bcdb7afdfc57614f73f3384b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|^64@Ck99ba~SM+qWM) z`26S3KL&=G3^N)2Gcf%B|NkoIqe=z_29}Z_zu@D?pFe-RLrH*vfq^l}+uem-EV1J? z0|SG;r;B5V#pz_9{vwqtWnfun4mv>%zrcZ9Pm3 Z8T|aKjs|U9%D}+D;OXk;vd$@?2>_^MH(3Ax diff --git a/streams/icons/flag_gn.png b/streams/icons/flag_gn.png deleted file mode 100644 index c7251de4fae2313b97389a3e7d2960d02f4572ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|{>$SG3=B%1E{-7< zr;`oZn4QHf5`vnT+X7h^bGeE3Xi0<`ta9+=WOzDBqrpma@@xhM1_n=8KbLh*2~7Y2 C)GSf} diff --git a/streams/icons/flag_gp.png b/streams/icons/flag_gp.png deleted file mode 100644 index 5d6af4d1eb66aade9a1e67c36202cfb643bc9f11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|`@6@Ck8cP^(|H{mN$v zgWsEW{r~@e)*=0q3=9m6N#5=*Ed3cb0~r_?6g^!WLoEE06B?M^#4QYhnwVSutY`{k kUCiYs+M^|Lkc**C?!-m8Gaq#s7#J8lUHx3vIVCg!0L$Mdg#Z8m diff --git a/streams/icons/flag_gq.png b/streams/icons/flag_gq.png deleted file mode 100644 index 5bd3169efaccf1ee31696ddaf51960688c26e5e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 759 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq~I6z$e7@+k^Xm9zXi~ z@6WRf=a(#cymZ|=hF%7SJ_fcfHnwgy_D*(=E)L~NNxNALE**BBO<7)zMLsiq0;UCo zra#HFRmgSG$X}LU8|U4e8Qxu%K7IQ1nVV+Lo;`bxOWoY=h6M{2EZDwa$-0j#wyjt> zZ~CfLt5$9PxO(;KH9OXVK*Y1P6_a5B4Z{NOy`}Q0>c<}Jy!-tO^ zK6>QH(W6I?9y@yM*sF<*%Nd zdwpxdoBPY&Jlg)|&6~IP=DvNh=k4<|@2+RPd$|1F<8>dN@BR4kKY#xG62>Wswm<#o?%)5x9WTbXAG=S> z&b76%-xnuS7sB`9(D{GcHqU*n&)Fbea?Gvz*mjed%0F1<@?N=qwd{;H)4T=cW?Rk7 z&3sNWty{2ON9XI>^I4Y;%qVAHGvAQc=Fnu`HQ#O>_-$U)c~Y2r#*41aXQv;L{v_~n~@-5@b>N7j~{>XAD5M2U|?WO@^*I-n7WBqhk=11%hSa%#N+teE4zgn z6nI=Na_m!{_5Xj=L8fC)YErp#Y-L5ZC$c}%@i=5I$h7sq15>R=SCfAN95<_CrhI;4 z@?zKCm-7S}j|uJPEm_j!KXv8#W0soFw_Q{)bb4U&G+m&BF~3FiScCB)p?Hor6CX|J V`BVJUmVtqR!PC{xWt~$(696z;alHTl diff --git a/streams/icons/flag_gs.png b/streams/icons/flag_gs.png deleted file mode 100644 index 0c4c1dca88ced6c9f9c712576300d1e618ec7246..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3562 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 diff --git a/streams/icons/flag_gt.png b/streams/icons/flag_gt.png deleted file mode 100644 index ec5343d973f550eeae3711d6b43cf65edb60e392..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1695 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfq^Z=)5S3)G?l(F$W2`)yNthV4gXxf~~ zb`#Uqq?D-woVz(Wt2s^y36*hj&Ssn7%4E1^lPgoF0!K%NqJskCukH3qthd{5dCu^A zcc;DnU-i2)Ki^qCpI5BM;uKdmd*<~$f6SO~{F}z*;KQKCAl$%tfF*&+fbow#)~ znJf8n=0e?u0~gO4tZK0FbX=U_xSm-gD>qkHd%?5i|EA0?N?UQY_-)NC*VvdVH*ei4 zvXF7$+2R~L|Bk9AU)#B6L9T|!1_lR&n8X=v!}r=VyqznzB0lD0?=K^-iUSi{II0^Q zC)CWEzr{%1{iz6->)No}H*aQ|NCiZw=x^uV&Ex!3F}CT9$743uhDjmMjzkqdU$lA6 z2FbT)R^8t(Beu@Ex?olGpQu^085kQK4kT@KNPLjxblf;`g^q=ubl-WiE!+n;u6!2Z z>Ee0&)`8e7=XvbER4X6uR{z;>;LMpb`)YqXJiIvlvERl(4<6Pw&&CPQd2$#{AH`_M z%-?1xoUOJbpG6|;x9f6Qc9u13*QTeZJ3h4Vw7=BKLZXuG#xM^~4fjqQN$#HDY=BJ@>G zarZrz;$!d%IrKp^AVgVa`k6HWYi$2~i%VT>vRmo!=9a=BnSv0Zf3Z({-$!qnJJodE z0>Mq2S$CJcy_B_eeN4uIIRV_RCm&SE^#r6@a3A0(Ph8=nqG#fw5&PWXr}ot)vM2^Z`bl=kqMq2ArHiK(OucGYkv)RJ# ze9ep-c5FGJ_w+`4b@YP2+Y-*tn&`$8!`;gy*mLAZ!lQ_fsWAcz_N?+ca=M~cQdd8n z>;07LrfdIcK1r9gD_gUAvFwk!KW{pVd0wV0v6ng9^zih;C3c6^j3%9%qtX6&vlI91 zI~MnBox92k3sZw1-}wAoTQWD(Qz>`epIondD<_!znW$4@b$6a^b(hOg8@Dfi+rRq9 z_so4B^UYJAvCEQMTwh^DPkJsz#6Jlz?&3A3L?O$DWgV9XSYHwV~U4yleC&TV~ zea-chHMO{L@?>V%YF~%{Z+^}Edgn{X)IHBw?s7MFo29u=3$cCjpz6(`-_dtv_?Fxk z&Uj|x+x6_xs^6<`H9Jp;FOl+{WD;8ZZdtHpqxklG?tkB22Os2%leBcp)BJl_nBlE{ z?LOte69>@-)N{%!h`3-{i=eto)!d+*6&e$Rt9*lxA&TzF@@qQU$;`v;Hz zyg&Tio{>X6Zg0j;Rdw~1dv;Dbx!h)w;fb6(g|{+y7A<{|pPlXP>6vIW(?#rC)S~2A zQ`=Eqtj#bS- z&S%z{x3r5reUX8KI9tpD2R<`f-B}Dsh4>8?hW*Swd_~odUUZybU|?YIboFyt=akR{ E0Gf3H@&Et; diff --git a/streams/icons/flag_gu.png b/streams/icons/flag_gu.png deleted file mode 100644 index 3e54b4ed540b3321319a52b46a763094548155c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1837 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfr0Ijr;B4q#=W<*GJS$0MUI!ss3(^^JM6RQu~1SBqio=v?R;IEB3i7pHtks7z^$O6 z^sdKMFvNj-sh79o?VwXi0baVgcNaDUL`89lOpp~dk2#Q$cJA}UuH-W+!amW-MRs@g zmA`-Zzxw-}-9|0;DZ3(XPgu{QQ2eCkQodhW%FD%KwJaZ|KfSgzPBSef(d_p=#y`_7 zA9GxsY&LJ!#?$9)Po80zRvGwLTrQ1&yW`ySo|p~X#g}pz-k7N#jeKxG{k?j$q@81t z!k&T|rhj<0-`RF%a@H$`zIwHQ`dCiB)^1yoPp2*|Gut4vZG!z-PPw@G53-*7nZ-7Q zN_%{nKfTF(V|l^KeUeMsIfVn+Tyuj3ud&D7m3iFoals5FhGWW-ZRrK7HwB|^-QZeO zS$b<_io0X1?kNV3MPJz$I$cpI_Yj)QY++h#E@Zj7OhYQ_(-zTB$I=|<<`qq1_Kpn- zSp4mAT*`_iOTV6VB*QPcyFVWe*82H; z=}N~|!wb?My!@6pr#`Y+vy!1=y%oQli{I|Rmq#|)%xBtTum5Y(oQ)5r9q&mA=Slv3 z?oYAx&GhuZ!Yx{yR|Ie6H>=H-(VxNM@F*hvL%A}P;(6IpDgDD)H}Rf<(SeJWzZdR&`(S<>IN^ zbv3i|v|Zb*HWe_L*w~!Ee}ci|S6%v2jZn!c2N%4I7GP{WyHov5@E#_MiSH~GGfG-H zh3!&yevzAWD*3vEFvBzDbNrjTmRa!p`Lidg*X2G3tF+cTjn6Jsn)y~YBbTg~k63Ph zPbcijUyI{27}jMcPx#2b{eN&_*Rrq^&;HcRa*1SIoPP56&Y$sWMJ~_m*4#E-%=l)5 zHE-_HgA?a>z2;Zva}EmpwsX7C{>>L^UY{y}k5v{~zR#6i zBT90^x8G2YkPuvKD;#|B&czQOHs*W{vsLyN5^20PeclePv$fOYjHMhN)YPXi?JMIJ zW!a^zFR)rk*i^u2VPI+O-9vlZkIwsjmHqq+EBU+c>!O}*+phb29V5dry^MGJA8feD z!1Rn=$yQ)?6W6M|`UQ5iTNO>cmtLAGzcZkA;tBO5Q(I%#C@nDw3t?`sl8BeC{mjf@ z_t4g1!9|7z-vt{u7AdX?T^l=9SJq?UTJM{eP6|IcacaWW=1p6LnS6fUI;5~{VrI{xMN4G^SAiCI_A`s z(Yxn;`!el*etXe6FGn@m)7NTD1WroL`t{LZ_QIWq|3~@qJaS13PT88az^-Fad2PM@ z`xG4#zbw-T!-H$I1`op2D%cJOU>A46~lk*?n%+ zrAE;V>8kj>&Ws1D;`Zzejy?Y*ZF#E7LQ$S+xtao{SF!O$ zmT9JM(yk@0pK)rLT`AM1mF@4j9tFIvo_p(Bt^4(pPp^e23C6E|S2gS6=NT;PtyY}i zdiCo_>9UeFkBXKS{NVZd#MO4L=hL%`?qr!ty)G{m&6v43bX(c;hF|x-v7D5Me%Eo+ z?={D=(ha3G+w^~EmfSfObS-7|)=zGgkD1H9Z~k)p{LBl|8Qb^Nx~|*c?)RQgm&a)5 zxw;k1vjd_r`hV@+Dzopr0Jn2%b^rhX diff --git a/streams/icons/flag_gw.png b/streams/icons/flag_gw.png deleted file mode 100644 index 7e3285f883fe7b4037dbb74ed327ca354504e4b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 548 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq~&+fKP~Pg|l|8rzQgf z10w?iD+2=?0|N&G0~Z4WHvFV5Cc;P15+piQwjrfHUo1W19K4rb1?&R1p{+6 z19J@nb0Y(DGXrxg1M?&Xmg(8*a~N0_Ft99TU|Ge$vX+5m3j^y82G;!ytOpoa4>GVG zW?((SzF5_!u&lYn`S!JlLod^e+0M$nSsjL4 y3;zA6nG%`f$k!7RTPAW~dqD%U%n#!ST%CVo*Uq}PCzgSMfx*+&&t;ucLK6T}YpJsU diff --git a/streams/icons/flag_gy.png b/streams/icons/flag_gy.png deleted file mode 100644 index d0b9e521144ded659d63944e34f5eba6ecf7f977..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1588 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 Ib4q9e0Me{KMF0Q* diff --git a/streams/icons/flag_hr.png b/streams/icons/flag_hr.png deleted file mode 100644 index c7a6454b63be506b89f04917ca63cf65e679c714..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1283 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfq`X*r;B4q#=YbnYFc(n1P`xZce6E^VOtRE^Qdjhn}AOT79Lr2c;d|KDoYyPNPqH@ zey+dzZq0*bGgV!_t($#)Thlk`O`n=iFtc-M>#?}U2~TF(JlB=k)ieT)RRo<@%(g-92fxixVCm>EXPtx}@<{e&ns3toc>JahV5f3NBv? zE5GddO_crcb=e!?cjx3!y|46UL(q+i?hXHpeEC;D<<;Zv-a5_CCr&K$_U^fk3mBSi z9O-&K?R-wuR_DsgocE^QzP{a8%7EV|Zc}8!*JqmPO>ejPPMNp;Z(qlww8ZAT#NAqo z(`(M|c-EO^ET;L)cVqm%fD=n=+_r6x+q0}`V~44B{j%7bSqW!y_9oPRn>O$4He2&E zy6gv-%|)mDDVrY}x&O!K*ndsRI~~|>?)bie^Vw@o)f=2{m8aAr^>R9*CeGSqa;LO% zY3;#FkvF-%UflI`VOyQqx|h-CJJ(r<)L5+kRUsAdxNp<0#?D6GyT%gJ-#?7s+F5&) z?>n=27L!*#hqj&QG{!~hhc+b@Zx8=6``k=by$wlob59+*rSbLb)0*GeH>H&iUB79y zKliQG{^tSbW=j9FK6htIsDuRnooiRV-Kbsn{@CKu{&?NW4|jGaCU#DkJw0H?vV=)9 z5~lrGb63lIne|zH#g0rfNHHg8M|m@)V7re&U!LrtoEbd!!Qy*4{SW|mRDg7?Co zlf_o#*yU~iuJiiT-#6ahUf(L)S>f-~H|Nq6v&w^WrgDp|X;>hcdU@64U&4>lB6s=l z%-gvC!JD;@+57D?v#iA@*91FOD%ch{pTAIY`ewt~<;#5HciJ!iGjHe9(n3v}SMOg* z-s|zbcfopZ$z#TL+vn!zB8)zW-t7LfX!_2d98Tq9T~9@Sp;KI%rmt43)qFA=2$ zvmYGW`|8ave&+9YZ67?ce}AWuGZ{NDj_|I~QJ?mDh-)63tvsrTC zTOdD!ZGiO=+Yf~&jTUTHc;T64wL+82Eq}RRb9emoiOn2w)2Fs`*WKG#98mG#@+;GV zZ<`+pRWQ^$2<_*4Ey`faApWQB-JJ&?4y;=Eu5s$>_HFEO*RR|U32tBTeCgBs`tfZG zey__b_~?Ion{=Db&y!=jA>-xs#qNqPGX37gTC;Oh z-MsUu^1B?zuIyZH(e33e+W$7>{Cr>iUGwXK^YQhXF7al0Y70dsg|~3m-P`c-`0jp@ zTjvfWn9p|#iQ4ev_}OTc>Ie7t7hj$hlxHn!qwv7s_0Ku1OR65cp13&BlbfxTy+K2- z^5E)QyVw~U&li2Vrys-O*srumuFciq!s>f=9S>IT`&X^Ej=#31yj*8V*VQW@83fL* zj48N(?qR6A`XZ4}ADWII>z{3|*kqq~cbB4W@!Dmv7jv&Y_{6aI?jBCn;`@HHKmLCo zZzK1k?A@QGzv4vucV5{vJxi`Z;rjER_p817MW5y^O}9I%y~n)v;hbqx+w3;4%#;0U%iylFt@!8K z<&1)>-^$#&>Ez6RfwQ+N;R^F&If<_az~$4cMn)F~caMehTv-&aGB7YOc)I$ztaD0e F0sze7fyDp- diff --git a/streams/icons/flag_ht.png b/streams/icons/flag_ht.png deleted file mode 100644 index b3dd4fd46d73865d0e75033bf6e6f51cbeae5fdc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}}W?*2rqdKLBfq{W1z$e6YAA^vvPWb@_ z!T5+jx)y)<#o1fPz`(%Z>FVdQ&MBb@04=H_F8}}l diff --git a/streams/icons/flag_hu.png b/streams/icons/flag_hu.png deleted file mode 100644 index 019b52f2f311beb31a654f4379ff230930161b6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|`@6@Ck9X=w-NKDt5(O z;@{st|NsA=TKBDhfq{WB$=lt9r9b0lAOiz~vZsq}GwI%AU|oWii{_NwQ} z0^d)s|NsBL-s|4G3=9m6N#5=*Ed3cb0~r_?6g^!WLoEE06B?M^#4QYhnwVSutY`{k kUCiYs+M^|Lkc**C?!-m8Gaq#s7#J8lUHx3vIVCg!0Q9dX2LJ#7 diff --git a/streams/icons/flag_il.png b/streams/icons/flag_il.png deleted file mode 100644 index 7b060d22a438a3afc21bd30d022ef3941c734da4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq^kEz$e6&f#D1z;~6HV zGtA6qSy|7rv7P1MILFC(j*IIYAK!UF!Sg~w7equZh>Bhi6T2WKbx~USqKwQXS=mc+ za+l=gFDWWsR#CaEs(M*n{fdUh6>aUSIyzVN^sX8hTr)JhW@L2D%(WATzWx2~-JkdG|9trH=kw>kU%&qS{{8Qd zAOC*+`uF?yzdwKe{r&s@-@pI=|Nr++yeiDVz`&T~?e0>!@XnPB3=E7eo-U3d9>cxfkom5ddGWnu`ii(j|L#UmKipv!1*&@tWHmam* z8x<{X3&~71+AaL^re)jFtwF(?TAG-SHl3E$w49LWpvS+MFST_Qx4Tv<+mwn6`x+Pe qD@x?b1Ten{;%IXYo*u-^pz-k2?p)s48yOfF7(8A5T-G@yGywoJD0-Lx diff --git a/streams/icons/flag_im.png b/streams/icons/flag_im.png deleted file mode 100644 index e62edb8b411108f9081378d2296db7f23b40f017..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1481 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfq}Ko)5S3)53drq&`-MjP)=T=s(pbSmjquaa^9GIQEl{+l{U1(}scw%2AvoD$}O+CEg57O_!!t5m=h!!KXkghxuO|%sq@Zb_Mm%lrnwm(_d&96{c zW|q12rDr;;{QCO0>!p|)w^nbTaxfz+hvnk!+qZxJ?%CA!*lf0MNL<{zcXsEud=;N~ zwWUZ&nd{rTvkH@oZEP=}d~zptcLXEjhhwZ^3$J`A=+*KLt&~unobIB}#}_trs;{qa zq%c9-;T&F`S<6X{?B-+c;c)+6Ry^iDVrj6Oh4J=#%|c< zdGqewx#Gf`4=`M1VX{|sxqfB}XX{Hr!KETy8oF<9Zce|vKFZm-`CvlE#Vc1nl!bT; zzcH`QyYryB;*9C?B;83>i*2lA<=(u0Ej(>%VO?K>+uIXgzfIF`6ZDRWG18Bbkd%D+ z_HAouer9H4sCcK#hint6*&$jNmwGRa-d?1vlwf)M*s(V}ca+_q&D@-Dm~Cy??>|33 zzd3P&EBw0acc*X-5dm?r-AzY@=Gg0d`JLC(&Xd3S?8{@nWhSnsslI~iAAZ(8gpA{hJXd69c#<7P&Ovs^W`_pK)F zto=RLx;)|glbJK$Yw&SgTa@jYaiJyT{@Jyn`}S>ST<|e-%k~`#5&yoFEDhpZrtj@p z>CRA;-V!)bkGYV4!OpUVmruX`_?R5fv!8KY+!Vok559bql#!89|^=uppD}Kle3mdPB zUwk4^d(Ye238Cw+^YimN|NnO(;N{Ew7T1Lm)`AmUIy+A*N$c`(ZL+OO5ic((5jo^q zK0WeSw7Ko-$hFtDZ8J0AH?+T)6_b1I@1d;ZyJ_cut>;eZ8TCl3DeETl3|LBOX54GKHa4QSpHiuYMHk`%5#<9lIaGXq-OJpI*AKsJz@WYt>vwrHLU2SDrolcIo-Z z&dGst+^Rvl+OaN4+c|Ne!mUVVFeTdDDZSHJ`v zDc`;Yca&G~xo-`8xGFSDPyCW%ubc9Tvm*aqocnYYtVxMCv?#9afqXbs&AmAG-r86IU%QZ2jWOf3n*&KP^E)MSQxm z(}!QJYW5~md>5bmUp)2B$Ig?C4;Ts<9(?&FJmJbt#WO+KwhRmm44$rjF6*2UngCXe B$=(0} diff --git a/streams/icons/flag_in.png b/streams/icons/flag_in.png deleted file mode 100644 index 089037af0937af1b81365e2da49e229903829e21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1562 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfr0hBr;B4q#=W-@l|GZxWzy7NEh?UAb=JtY#A@?~l-V2He#O) zOVr!@U(D?*j@-y=F1s;neP%tcPH%56vrb7t!c?IbMKxdVX*R#zwXfm#N&l68|DMLr zOEcn*zUi7P|9`?GnG?USsY%{j9^B zIrnWWZSP;Sjtjfp{j_;XRn7G4Ur+5mcF(-)wo_t_W8uVL)2j{%kz3FIIrJ!S_Z{9{ zf$J8ECQmND(Rpstp%1;eTpi2zrOpVxqc?@`+0@c=XZ5RGxeFPNI0e7nKKn?$``PG- zm>|K1RV;@tsb+7@l>Yi+?p|SYISw|_%M4W~SC?dF{=D;cxlN$_k3Vv8KWh>$*{<5P zyS}I_@1pgxvb4O!+YfJS=X24T>L$TBL#Ap$%!3nFZW~xEq|ZNEw~up!SN)x$JBs~Z zx4f;3xw|m_MnT8i@|P!mym9S+)VZ=!W?Fggypm^i2{P-yNE@;ox~$3(v&vtxg>Uzv zKMtSw*2?j$ubo!KU zGkNd-^fbo(+@D|GY_;ZJy^if;c53sjbYt5Wrq`QT%9U3ie3%w-RCT=&^J^Ww{n@E; ztF~ArMcubLeZ#C>f+>JWNa>9H*=cquW;UzeNzR?YT-D4iqrSgLp)GUr&QAwa1cg?6 zd$gAK6wI%5OH0&la#47fUa+J`N7HN~!?H9n4h4l=`9_9&#yyUEl0F=*4QKwjg8ACJ z^Y1RKY6?EW*x8`R$f(hKEN9O@2ZpC}3Qp}8I>F5N)VbvR=8qGW^#w9C0kWqqy>`<4L7{jfL#75|gz2v@<^Tu4Zk#ks~?hL&ODMzNDW9 zY84!N+$9i$zY%bDLW$w83@1f?7qc_aN9WHvu z^F3JD#rXGSbZY>gS>x8N)jWGAY)bBZc!EPO<$_@n!!CCQjkyK35f_XtI=?ZlJa)v) ze5!VPG+)Ff1>GZT3l6*PZ4S2JQJ=FrcFXUINk$SJdCx9*FbfFnPs(AFo%q(vIK6Z` zM_BuGo5iiXYq{p%xHapT;~RGM?u#OCEu_}(`gzrXp+P5R{+_ko?K|4t(x$vMsXG5{ zUSWz)h=vH)3ARX%xyB+(-~3##J@&Ye;#$?v-7iyn&ojpd7uHnO-*uZjdp57c`x~;H{tM@kiT!U6dFFx-2W`h*xTdLiF`{A zhChPBGjFc&*?MPc7=PZ%Y$>NWqw>n8Jv*=d;aRuh>D5TW@<_J<9lXU*K7mf9G6I=iZK+zPCEo{!-EXRb_YnTQ&aAftRHXDh@&lMSnPb Y%(G7Zak?VTz`(%Z>FVdQ&MBb@0AeH7;s5{u diff --git a/streams/icons/flag_io.png b/streams/icons/flag_io.png deleted file mode 100644 index 7d2cef90c19db0b198b0d4289c2c1898998ac62f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3921 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 diff --git a/streams/icons/flag_iq.png b/streams/icons/flag_iq.png deleted file mode 100644 index 9946fa4026517d554beb4987e8e96857d5634cbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 967 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq`*tfKP}k0|Ns?m@-qi zDszMyd$cB3tPXdq4sX03U%b9RqM=}-kx-JcaI&#TvWaMlsaUF+M4E+Ex}|i6l}x6! ze72oJw!LPdn^uv#c9Dlpv8P^%w?UbYVVSQ{xt~RKuw_k%RZXZ}eS~vUtXoUGM_Zz2 zTas6MvQI~9NMCknUrtzmZp4KAs7Zygc5T+2y6n02dGnj{ z7c>_vXenFLS-!NZVp(_X%Ko}l6Y5t@Y*;<9arLCO_0!wePw&_;qi6G+-pzCSx6Yfq zebJO1i>K{eGGq6$nY)+I+OuNz-j#Fqu3B(l?ZSiWmK@%&?8v6&M>nrLwsqC2RjZC~ zTXSOjx|2IMp5C+R%-*f%_HR3XVEg%lJ1!jBb@A}-OGoxzK6c>h$%EHU9lCz%@b%Nj zZk{`F`@*R^7ti0ncHzObE01nneSG`clRMX++`0Me-mPc%Z$E!<=f%UjFCN`{`S|{; z#}8gTdHDM2qc_hUzj^-j-OK0iU%mM7`sIf=uRgwg{psC@ub)1C`~2zKm(L6gpTB?o z^5fh0Uq62Q`uX$suU~(D|6aA~_n$w1{{H#<@9)2V|Nj5~UzhKc#K6G7nB?v5($~bg zIiG=n@r0*~V~EG`x0ADjg91g`&NHn!^T4nmWZb%;}|~ z&}qG-SzN3?{-oKz3HDGnK6}B$xA>la^*z(qGxuJr+x~H@i=^2Bwi^t*KjIegcwO1g zedEWbUdi4+W(sv`TX{=fWCsH(K zpZ}d>e&n~GTpZ(r%PVaj>{-rmA^hvCh2;!7yN~G@Te|zqdt~o7S1u*xxmCl&-OECH zzpVJTbbiBP<$!FbHQ|*@Jy-rd(EUoFu(Izv%T&i5i?1+RuB{T5So6cxMJnyHd4{QJ zL&4S#3+Bj_}S6%m8fBM_|pBGG&Z*af#$ci)Ixn}jDJ!dYJHGeX2XkQ(v zW~xy4q}a@WXoUS24G6XX-VbP1;OrWQ`XNu!i|^I0J0!~#FXgc=>Zz`$Pw8m}?~O?d>nlI^iY`wI?CbOY o8-D+%KGVCY8i%LpM%TN|emC2%XiG#GD=0^Ly85}Sb4q9e04odZEC2ui diff --git a/streams/icons/flag_ir.png b/streams/icons/flag_ir.png deleted file mode 100644 index 3daf241868d532814bb782d64d4f4d54a47612e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1649 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfq_lU)5S3)+*Z12BuH`5G&B-u+ zak`V`(bpMIzud03QRcbu;nZHEGdy*_kF%a?_ICY{W3(vg0PAYIsp?gAYhRlwgvDl+ zxqH?aTW{XGqU}D1%JR?8mTr?@G(XlW=OkxEk=`c7#jaPTe%~{v=-@jY-;9%<*=N_w zt*{TC-?mfY%&w3NO0R;GX0J2hyxkptXZeZDJvBS50)-F1)A_k|KUXFXm@3wo5i`FlSBD?m6N&9~Z4cl&CcjX$d=d`vy`dQ#Ai%7}~o z!kp?HkG`#*e^<-T{mRmqw>rMhpDMn1kv{!&oNY(;nNM{!Y)M7C@^*!`h3;AH`|#;O zPP;Up1eReA#&aLP5b)iRHabfrhF5{+Xgts;Q@swQsGu z>;B~CwtEZ2dp*-)B(4fCUezhcrG9Kl#n;Zx4#tTA-(EbK5w!dt%gr3)WzXN3&zY*a zyCP6d-hR$p+w#>lb&SV87V1vVo^X13TbsztnO$2<_C~CkesYVhuG`vcmsnry+T{`# zH*2~7*0*mfWFoe5F}F=Se)-DPP8-`&Tia>c36I|1{(gG8|F`emHZ~eh4(}>u&b}6~ z?ZnyKP1~odeEAx=f?;8I_mrcDzCFILlJM9qV?oZzmzN*&@=ogD(Aen0=r(s<{=-8b zkGWMk9Wt2h+xTZ~w0+Kvgi|lI!=GqsUbwJ5V`5>^rAI6Z!PSyHhhJzseBU48%d}># zeatU7zqjV~n-Ed){n6WarfWuKm%V?Mf7|Vpv~>0Ml9j8rh-?>bjabAG8aUC$ zGE#r)H~qMt$9`Nlw(~FNU^^B0f0AldE0g3REzOMqjK?}TA3i+n!IoNAcfW~M`TKir zJ{gHS8=Y&v=e_^)bHZ|Uj)j|zGp0qK*zh;`>eUxbDhn4{yx!r)9=4`IG1cf}*x`o_ z2_M(CxHWez%gt71V*0gaP1V{p9P;wH*{_ehzCPcu{CNOF!-es z+c(Ed;+acBoSwO#Z{Yc0mXGKCqzY&GE(_~^eZIt_tvztFo!a?rU#s@IB<+fJcR#z^ zPfl*{KVf0P=ACvAjAyC;`>(aZ)%fj}6IZA1uibs&Vqijgd*eNBj@e zhKH1`5(_gl^z1T2rd+ry8?GWKqQb`)7Pr4IT;=9j--+}3KB;(n1T0zRHN&SeXN`_t z-id>bV)FcIR`RKd3ze*AE1h1n=t*a1M%NNS!NcL}53NG|;CK#9br8xda=Hhq5n zw6IX2ySYh#^WpRMn4r76RCgCNmOOf_e7s9XOfs%&mxW4;qFtd=$s37TrJrJpHl4T~ z{o)mufN(+Pf|&+Y0Xz2?dLTdey}-HDlS ze|=2nj|t2#`ZSDcxMXAnd3kcWcCF#L_dwG2+ksnKg~YstZx|RDLOfj@Lo7}w zCp0jgl+4VWJ6WQjIgoWRS4W@%2lF%q)?k*4jE8+J7&K>eGID6YXlVYnWlI+y&w&YU z3>Tak9o>WE_`D1ra0VHKa?18BI~mA&C6s|dRD@l2YUYv-1_lNOPgg&ebxsLQ01 diff --git a/streams/icons/flag_it.png b/streams/icons/flag_it.png deleted file mode 100644 index cdf4370d4f594356dc0193aa961b214180e63366..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|`@6@Ck8c2xnMzeAOQY zhJUM8{r~^}olE9J1_lPkByV>Ymi~;JfeZ``ik>cxAr}702@T9{;uZ!$P0THSRx|~& jF6MF*?a`7r$i+}6cjBVlnUA^*3=9mOu6{1-oD!Mlc*_;F8z6aI21y$#OVX`QW2i(q6?fHZ$%@x1WUsYJU7IU$T}S)6qw;lMo$J1O*V|-oq{-iCmcD7M ze$zztW`W$T%97jq>bK2RZ@VhrQPsbbs&J=H_Rh{tcl}iErYPJCP`=kEeP2-bzL4I1 zVg36e`u9Z*?u%*P7c;z{rFXy5;(oRD{Wh5g!Uhkd%^qlLJV;Y~kXQVmyz`;FYO3+nHsq;Y=u`X9rw(Dyv^1YNM?Q0jdgdDa z%q`}bd+alhxMwq^p50saT+!yaXWaA2GA{&mUnp9?$gO>GPUdAq&dbu4m!++*5{h3X zm%d6Vd(|`Z)xIsSGpb(a*1ztZ`Fhg4H+l7M3L4*(D88BP`sRlBn;SlFZUnx$8S=KG zHUra?;n)De^BxM<+1m# zj(=Dx{b8@=$LUKxKAZIM+2l_>@}K6f`m|v6r<)3&p0<5@+VSc6^iR)ce|oj))2l6? zmv8#K-}>`S`OmM`e}293%hA(c-k~iE}?rp8s+B;*WDzexASj^TM^C7q9=kbp7Y$8$Yky{Q3UF&mUiY z{rvp<@w4Agp8tOO;`jF-f1bbk^YZndS8x8jdi&?~yFYK<|M~Ir@7wo(-+%o3;nUxb zpa1>*_3!te|9}4e|NHmeP@y6usmYGYZ>`^L%B%ieE!B68c7K_!A?S5M-BXA$>SA8u?f zZu6C}3j9zw?YeD?WUPn4M!)y3|9X6=ej{&}d+Jfy=39JmYL?Xu4Dq$HN);H&H5I5OkF-{cX@nj`QcQasYNo-o~(K?sJPj z&tFgXiu_*0)L}XCp6#t3p0(w&GtZxKNxQP6M^Qnmt(ujQvHkYmSiPyK%$qg(?#qYk z$iLns>n)@|AtiU4gYT*~w+l;d%~E|}!qUlac;Z2b{(8R_@^vDF|Tt zX?3*PzwpHwp2nbpt%G~o{yuP1S@`qpzy_rX8qT+dWjh6xPK%+WD?&I~ILgk9BdTD#`|3vot`O`3r> R7#J8BJYD@<);T3K0RTrp8ioJ> diff --git a/streams/icons/flag_jm.png b/streams/icons/flag_jm.png deleted file mode 100644 index 36405b25b0c1cb090b3bbfb8bbb63ac2aaef44d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq~&Ix+;VWC(I%2wKGuwVEM%HABi;hSaqTY3msBBN_U)GECUUFtLPT;x>jw zO$>{6F)VIkSkuL@wu@n1H^a$=45tn;oIc2Kei_60!wgqeFgnPb;&FWLw3k7L3`AO$6{hUkAR5CESY|%ul%7K6|LH{y zZA-o`+k5=;>bFl)_UX?oQF>yx`}h^f8CNd93lRM@qfqd*_;JTTUxoeeC)U;KE*AE< zdAjKJ&3Sp9{(t{eoqQd?_vN{EkL_P?@9KN#ebbLyG0WTK@R9gyM-;EW|1~?l>;3c^ z+iy>uSRQ7Zm^`Il~(DAdezld*GOY}0vI-E>yk{+TWE>kl4W zZladTa(~^&14qMm@@6Xhm~t$s@jxN$-jS>Lqc%(W_qqBH`)gtjA9@b~CbDYFOg`<8w-l zSF&8jmO6_cVZ7gGcIRI-SXX)H_N$lEs&+h6{4u5Nz=!`?9M4`wmpd=`5!f3)gTe~DWM4f18)d;jFJ1b7`SSlOSN`9$ z>Hqfa|99{HfB5kKqeuT=y7d3kr~m)|3+G11F)%PNCV9KNXa(=PGLM0Q;i0FCV~EG` zrI)VrH5>4>CcdyKdB3;3@;|$dQ>d$kh1qeZoxkmm3Oa5UD`4Itt>PfW;K`uEIDrK_ zZ4f~B^_7#)T8?t`#ub5Te_^Oi2ppvPeQlgGQ X{BOnuR^CEiQ1E-Y`njxgN@xNA5ACkV diff --git a/streams/icons/flag_jp.png b/streams/icons/flag_jp.png deleted file mode 100644 index 6cb0c326981ee3f892db7d625bd2700162ae2f6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 453 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq`LlfKQ0)Wd?@JjEq;9 znXj<0Tw!Co%E@_MQu4Z#)D3Crn@UPIRa9=Os@_spzonsZOH=cfmey?@o!h#)xApXH z8yMU%GJ4?U^}xsHfv@jFfB$DWInVO)Ue?#YYH4}Z+WM-!{Z&WD>#nZ1Q>VV2Htp@q zneS%Lem7^%yLt28&7c2%(W3WDmVDm5`^*0QUk)Dpdie17ix+Z)e*gaW=gZ?B!? zJES1c@NnZg(XH#&datd%yESj>_j;pzH8TUgB#V#te+n@rGOUw~IKUL&Q2e5L-Rqx^ zpNK!$xayF#*z#2e7P883?e{uRJf+#^oC~W&!vaOw4u>04xZcPZPPl)$L7Lfft2O70 z<}Iw82}KM182uWi2s8*VD=}R-+|a;aVz9uI;gm#xB7zhxHuDwY3c{t;;{JL-LNsLqDcw{)17~M0B RVqjok@O1TaS?83{1OP_|*F^vT diff --git a/streams/icons/flag_ke.png b/streams/icons/flag_ke.png deleted file mode 100644 index 07c187ed6360a07a842006233441a8cffc9c6a5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1433 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfr05ufKP}k0|Ns?2LnSV z10y3NV;ciwJ0lYVBNHPdQ#%tgGc$8LGYbm~8xs>JGc#8^7dJOIcMS_qCl4RcP!s5_=L;&ib@5DNe2W31d7W9 z%?%0(lnt2|5*8K~At@gj85t!hA1$R28yg!tB`h^HHND<9TTV4cPBm{$UV)NEK|w)L zQBl$Qq7o0SG85}^CCzd-&B|DtT4n7z7413|ox0lE`uh3?Ro#Xy4NXl=P1~B9Rdrj{ z^xD<*CS+t!YHOb~Y0^|LyQ#quGj&X7+L+EUwwdSVut3**p`Q67Yl}rTR*Uv6TC{)B zVrz>f`<5)*zij#P+Q|kZ=XMZ`}Xa- z+MIEHu}e|se~AT&_q*vF@44u%0bZ{8g`k|)9) z{pQ^}vEAIexvl@-xO;cTf<-qDhPte;db;OFLG5JQ$MY_l@0(tncHVq{Wct~ex|^yZrEhYWD(>mMuhG1reE0oKC2k4b#EWx-l$5SsH{99L z;c@naZd&x4RN3z$nL9q(Z5ONPe6lO6*MNCd#oMP$#m#8!vJ4PL*Nwd*A}YDiyGjxh7P{Yk)k^8D2e z8PZ`E8}40ls|>HrZfxn9G-6 z)*xaRBm4bNrV3M6^CQVc%(k2QAIh4<2xlT*7LX zc`1dt;C$m>o()^?1jqVU%gZoVJUvh+oUrs~>!(Uxfu{%L*xppEVE3tWp`H2h zR$cqRT_sUG@8=5Vyjzs3sXM`FgQknchIWVf2cA50ct4HvSMkxtzbcdOM3|OelwWHuE%M)g>}ad%lpx+VX{MiPY9U@L4+VcatFd-U(8n}U wW9FF6R`XXz@3fBB5;KZ@bYG3{2m1m2-lu|H*Y zfq_lM)5S3)$VRONZ>}nR3%aSGp}-a5;Mmi2 z!+U`dONZi-dy5+)Zf0&Szw}1!>^;x94}I$1buSX@te<7VH)*MV*qiTf?tH#meBScD z@Lyf8pYi&EA`WnPU}5y5+SmVC6>QI)&;B^GFC|8p z^y{(PqsrJOb)PSo5})Kdl|3r%V(O9Kv$siQxW2Vb%R6E6W14J(Nvgw*udkwYBGcku z&*t2zeWyC^^3(N2j0;{>onCiaNPFFeu)7H-%PLl{^X4j7KDfV!;fdTsv2Q!RPv7CQ zI6r^mBsHFt6|3?$y{Wr(;d^w7;jtmWzSsL%bSx~D31L>#Kt%;)vH z{^RE3Hr->htcA+$lVAMwi`}W1nH6#A-@I*~FaKB>$T`2fW<_qT^1_dS$xpX>+S;%9 znfKJx^YkKSOF#bVJ%=B2hG|LM?9{tika*_Il8Ul0ll{w_A0@OV?ePt(o?f{o(y!ji zzE7MXdV6*lAm+rI8q@EpK#o@9oD9 zra_AreA!if_GMQ6OV)2E>oo7KxSg};%f%?ygPeY9jlCTV3>g>xH0^u;eaEHGZ|}xu zs#PrwR-V-KIQHl2*pO}Z^(~@V)2Gf!zF!&f$z^^?mCv0&i}w8}albsdZQlEG#=Q`dgN+Wcq#oyqWO}-hPSM z^Dl?TWa>tzFHZhC+jj@!bg@ZBF6`nLSBPf1pHpX7d0d?`fyHy7;^#Sy1}qDIzKV{! zbUyx8^pYdC34+}-O@>A^I zYm{FOZrk*A+ack(F1t2$=SUbNH@E)fX6O+TJ0iSeONo}tp2V8l_xuuSSh>Fb6Im8; zoc-1=-?UlHFUxAzF^V!sFerrH&v@9D@KdI>;jBP%JvV0=J7+_afNzuY$;h%fqOt0( z#-dlki?;3koy}`rkXaOPNc}|3*<(l6oi|z1wt?AZJ^Q6IQ)bLLF3-z9GitkPL+;92 zh0~96Ywma)bNO`AvN=-gTj?54wHL9x0;m2Y?kbUgeyA-l$jL}mOy)UL#Oc*mF_8=o=>h?_T-P4We(Sp2B7M2b z;@(f&%D236`k8v|7rW0N!A2dIqd7KD+YYGxVcj@KlN@u zt+s0^>+0C0uXAQv#h=_+cF(WByU}Eeaa*{{w1+nzes$65o%CFxr$9nMs^wOSk2>f2 zKS|NMvizchrZO&Q%gwV|v#=n4jpx3@)6blo{7SiULE?`IH9ox0SM4};DzZo7`tDfU zsO1c95uaY3v{O{N!Ma*xa<%G~?vk?-CH0FRiW}_kkjrQ}+E=8eXLZ(b69fOrMepp4 zCG)oU-P`5ce%AMk$7^{L!JWJJT`}0CVrkRzTYTT&Zf1uQxh_^qIFpYx6q?*oxT2{Y z_xeGE%@k?pH4-a>o~$prsMPmu#@$WTdM=$SKQSERSzo{wB%s3i{PJ41Z*o&*P6QP0 zIkLHfCnk2ya_8=!3ET`jwGT;3Pd+Aaf}=t*-Md7rTse}XN4-SnwR?At!S3!8lb!^4 z?rG9!Tsd)F@tt|D|I6F|yfoR;X&2Ye)B%S-)_>*y;PZD+b=AuM3=9kmp00i_>zopr E06JF{t^fc4 diff --git a/streams/icons/flag_kh.png b/streams/icons/flag_kh.png deleted file mode 100644 index b338dfcc856bf4da6fa7e097c341cbc76bdd3624..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1181 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq}_0z$e62nxXg^1KTqu zj%UoA&seygvGF`(=Y7V(`<#vYIUCP&cHZa0;?G4SUhs>&5DV>$>O9|PR z^2#q2lwT^SywuctrK2@rQL*o% z-gN?|D}K8mkE=;OrG*()vB+Pr+l3}_3PBBU#Cz1I(^3188g1lp8a+9+^=)y ze4R7*>zsMtX3Y3DbJn*73%)H{^lkCtZ;O|FTea%j)~(+cF8sc1+4ohezOP;Tecih6 z>(+l?zv26a4c|9z{Jv?^_syHXZ`<~L`}XfUc6{Ht^ZU+S-*@f)v3m874I6%J-1uYD zrXQO(|Jbti$M)?%w(t0{W5(_tZy!rR_ z>%VW`{{R2)@yQ94!Wfgh-CYj-&EI#0fq{w1)5S5w<9Kp{1nc4ikp@QPIt4912S!Hb z9ZiR4Xc#rzJw3O#gjwat1D}Z<1&KM2e(-MC(y+0mXY%A87Q>?-r4KxRaezJbRLhpF ztzODUDm#rDtZkdwg_{1%YQ4N%eAUO|#+_?Udg{1HF1UMhC4brpYj;-Pc`_1D7co4O zDl5+vOm1lWe`Teen!>bKPdZK6`LFoQS;F&ZCcDr4cdOl77}rI=mfjZD5aDHQ9_~LU zVsGViosRH(fzj6=y4+wmFX_EKH+o-^l)w|+=qq(E0-j!R{i$#-Yr+o`{wB5?%fx^F z6rCPg#^9Lb>6B9A7^~J1JC#+)f4gEv!@FDtUUD++mktTO*ch1>+&b0#H7A`%_ zmwQ1mqv6px+0)bB+L+Wo{`FN_>`nBBvcH>bxy=}Edh@@H-;{IQ&r*peVqeb9Q_kGa z&c|Dn-+MQ6^|f<1ZS&t9`uSO0=GOL#n?+R;31+I<=jPn8ym_{_SGUmi-rmj0(ZvpL z-dI|0ezv@Hwvd6tf~wEcbY*3ux8<-k>qbvo>$KtEqs%iucpm7)Zm;|M%XIa%!v~F2 z%pz)hx!CiVmn8jCXE?YjRQN%{HzpQorF-JKou?T@U#l5JY+c34r*_79L*k<_EejqG zdltsoX0lDqZ*L3c?5NPcI_3=9mOu6{1-oD!M<^s1Tb diff --git a/streams/icons/flag_ki.png b/streams/icons/flag_ki.png deleted file mode 100644 index c9a47fe9fb92c2157e074dcb1bf5cb0a96d588c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2628 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 TAImW?Ffe$!`njxgN@xNA`H2>o diff --git a/streams/icons/flag_km.png b/streams/icons/flag_km.png deleted file mode 100644 index f8318ca403d43cab93815007f36345ce49a2b5b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1053 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfr0TsfKQ04@?3Z2d2T9m zT~+3}t43w^W~`s%c%>n!rsS>&hNoUOk&z+g$B@zM~J z+zyl6E|a_t)0|Gz+)mSFp=Qe*%$9|jFLy9s9&XX$XtCVhGH$MA{9MZpC(9M~mMbDG zS43LH&9#b~XVvCp)$U{+wb;7N(RyW+O{=5bsu=rKvG%Lu99G9Wu8wzIo8-PO#dCd{ z&xQ=24Viu$v-~$^2XD>~+fo>@wJ2&^N&L>rgq@X%JF8N5*QD;Q%iPGq2~&{Jygbrd(J$^}@307ne`JxMHTN z-b^+9nU_}1Qq`MvY1M2My*bLdbCmVwTwXKp%G&u?*DbiZe&MwZi?3~5c4Nzmo7-01 z+`j78j@7qzuD!i$!<{`F?(E%kci;B=;yc(hc03T@$*QsQf!MBxM|VFI+x_s^o`<4) zABpaLbYdTa`u@i!4?a14=*j6LPtP5DcK-OY3n!jmJoWt2sTY?|zqow%<<)a9uU&t8 z@5Z}(cRoD2_wn(=PtP8GdiLb=%coynKKt_O`Ipx(zP^6_?cKZYtna>mc>ja-{g00y zezJc2$@1mbx39mxef$0W+wULW|NQv*=hxqV|Ni~|_y0e`|NsB>ZZUsiU|?WO@^*Kb z|6=RpxeN@9uRUEHLp+Wzz4Sa>I8cD~!(KJ6BSIV5q`OK(Seo}P-YDSW7`R44`^N6` zaREoVWCbq%UjIwcvL*J&p6$l>?^#;!|6O*kqPp%+;MDd_+FlGEwP8#eyO*&vTnSfg zm}x%6;f41T#xpyYvK)#%#J=EBpAbXP{izIE@3a_QURAvaaBi6O<>@ymh7~m;Y%6Nd z#{U*mnWI0E`PhAx-`n2Q2FjnD7j9F=tX4LGIl8dxuQj{+#n((RDmQuN)Lob-?|D_Y zI>GwnJ5GiPUu@mis|vhSxyitA^5;JBwRKtSISMCJ9ds^VmEeBkGM~4g;fXYZ#Yz9! z%-NxT&oEVZd@^H@*;`U}BdKrY??{0P*G;;=fAa9GpL(8~ajuF!14CHoU*;LLH~uWQ zVfgNOk2#>|U+n883BO;+UiVd8(3&F7VDj57xi;yKEw@ARvpLZ+c$pi@=rbK^X`*)%%*Vh*W1%(J*D09TntBFm#3y%yq{p0$Z&nXJfp@e zB|lMyJwKE#GPquL5oxI2Bj4dCev#p0>mtTQlU+?5_QaStl&tDt>+j;PGcYhPc)I$ztaD0e0syaz5Iq0@ diff --git a/streams/icons/flag_kn.png b/streams/icons/flag_kn.png deleted file mode 100644 index 224658cbb6689af39f2673787fe6e430460189cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1606 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idV_;xd=v^bvz`($k|H*Y zfr0h6r;B4q#=X0sVNp|9$}FqJ#qs6tQOhsw zVj152Tjo94Z8_&j&H2yszEqztcZkq>@iw_s>W8x-+wU(GZp`ycr!BV6vh7*rP_TwE zzx}@!e@-S-Cd2QjgUr?Y!-vTaEOj$XI6gf6`Czv9T!!yyjGjLe+&44a zyUX(K9^4(tQorrwVH*{M%BxQ1b+vxNbqtr@+9# zoSd8|9~N)kJo(|nhki@%g>zoZIuOL+T*UZ(8E5M@gx2<2VAF3sK_|PGr2e-H7 zCcC(>Bqt?F$jkdL4a%JSYjXXOE7}Kc6=WB9vaYe_dv=F`{ixIBD9*eqJ@sd&olG&2 z;L*|1k@+|)T&ywtT*sx`tyfMnzd7u!^k8=J1KW#xHpZ^lc*^0s==3{xVrJVJY+3jI zUgE@EVr%{;q!euDzA%SHKYXVA_g$+W+`9TMKQDTF-qQa5{;NA#KOgXpJRDS?m{YNx z(;|SuE@R`mja@4*m6Xr)NxS?^u4}*X-lz>}dy^mJ34ZWYi^vJg_@~8iKThrA>28Z> zs}KJ1`FO7?p#H|kE5~&cQl%=kaJ+2ewD@V%eX@V&2b<ee z>+0|x{yUnC@$(qpo6HD4f1XAB+eEh&u56%L;NO74dt>l*9C*bJ+z-0x4D znw#JH#VicCp%ebt^KT|+gzPiB4~DF7_A>mdzCNewRbat4o!g$rjvX`7*Y9U!WL#D( z)!X*+jSjcP6Rqa}^ZJ!55qlTD{95HV)9C2SE9d7*Oxrbo z%Lg^a*+vIfi?u!r$sYnh{%ysr@XWoEiEnAEstZl$1_##j>?1E_s_1h7q-{8 z4oXfnk`xvezIpX(>UUdPW##6}%Y3D4XJ_+OeA_XjO1q+5JmQ&k;fJLRhEsm^dOwI( z?At&8{r&y(qt;I2<>k%E%G#v8aLt;YtgTf?uE=+^uKH~hA!@Yoff}RjS*PC8pPx4! zt+w*aGLgD0H_vP7BBzBLc9p%$G02}3yj|$QC412uk~eSOyz;VSaopxW=6k~7Gv0Y8 zT)lLX*_^W=Jo)zKbpG;pcQU`{Z%%89wCDA{oBrwHT`dI_l_RTocza)PBzpI-ZLpSK zQ+3z)z+JrqX_a#l{c1NH-5fMM=D>34miIqR8v6B{rh41(#|SZotu(LBdo_vUh79kv z?%Yp_dJ!8>Y(98bEn(RyrLSrm6d84gbi! zd+hHgHO%OD`0H!{aM4SfIr diff --git a/streams/icons/flag_kp.png b/streams/icons/flag_kp.png deleted file mode 100644 index 080561898b99e0941b8783f6bbfa875a3be6ea25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 737 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq~H_z$e7jE^LNt% zWo1vx%b$^!KBJ^`Mp^l+oZLAjrE_X(=e4xX8ya5F*1lk3a>3N}f|=Pxef^8(=9kRO zE?Zh&wz9h7=62Q5@v5`)RS%DAZf@87{I2`>Tn`Gm5f*kcEbL}<^qr)nd)e6!%F7?t z*FSD;ecaLUq`m!VfB&<|lb=tS@_g#l=hLRWm_7UDym_w{EO@ne@v9|EUM*Ypdg;>F z%a^}dz530XHE-6geYbJryUm;5ZQ1gE`}X%ccD&!Y^TV!PANKD3uy5a|!-qc|Ir8b) zu}{a3e>rpJ+qG-ou3!IlmRTKt04E;3ZFczt)~Va1*Z&PhBM+EsaN(}Fd$8$_5Z zlo#v@+Bx%SLR#j8ga$F6$->6Q-X>Gtx-~IgyQwLbrm*11nKNs0d6@ccu53CYEx^)a zA(^IfAZ^mbxw_ta7y})|m(SjC=qopS!=DANvlwsQ{O1(#m+j|H*Y zfr0&-r;B4q#=WOe*#RN$VsfsG?vBSU3Av|gxE{IWBscNsQQ2u51txMy9bkNf) zC#yLMSX{Y&efI3xi*pkb3;+N7`%rL4#Yd%PxyO?yOdF44Dd-(I_RjYYxSJbY=8?|eJi`mUpo z?%lhm$noK4joaU;Q>QvD6ySAsK78p?(9RgY{ra)HzWn_Bd`?oO|M`ZtrSf|?dOo(a zv|PD*)pxFy=vz)b!$)MW-}%;Gc%rF!s>oHQCm80NlHpqR#v8XgoTC4 z%F0G{h2dY4zVXjDNUR)YgXKj0>=8d zT_v1sJe|gAXBgzg#l@K>&zP}dqC-)UQSFxc|No|HhX+-Ee|I;6i;FMCW0pXPmdO1Z zHv}?#Lr*?$o~I_oFK45np|Qa1jhvSXPgz;nhciDvKlh()_V(0N?OQ%8R;)O2|GvE9 ze7C$C8y0TdC}^e7uBWY?ENXM%YU%Oo;nrW~Uw>_!ZueJ}Z`pz1hq1S}lWsew6slKH5YGiG(YT{w{i7*`+qY^onG9# zaYMrCAzS&oI}87cBt$5$Jl3nDs>cU4tYTkVtsc22Vz0yoO9y7Ed&Uw`h!#Y!Ib>sKXB<+~u_d47)N z;@^pUa+}l6O8LII-7hQ6S+(l^zOUD`&E7hsMsLeGdGcgsENAbo-M@DQSj6m5ecW5j zvU$_;h$#|&KlUr8rtWR*$=UJh{A?W_(f0qE4>YdYdrx*cBKYHDyK6x~1v5*Qjm?h5 z{&U}MsL54o{`cI3FLL+8X7OEWwN^q755lFSi(US|G|^^|?U}c-eT}Nt&Y1NqA=CFi z>iBnhBip_F|L)vXSDx0j=d>tYXCt zg+K4_5V-N|Yx!QG6aIg`IBS2L@IwCs>$-oMF&r(w-d)#j^p0eGefPhiN@Iq5z21w! z|3BB∾Sr_v2uJ?p!yan!1O~6F>gC$6izOSm0K$u1w^``lNja?tXXfdl5Kwe(l11 zCQd=4Nq^@(S?@WmzQJEy`qO#eIaM{wa*xP2AN_ao&c*$I{pM6Ttj%ZQy}mlOy*bF+ zR;KbrsjTXRe@f@CT#*)*u`l{EZ{MbL{`niu=}$kMe{au9YsM6};^*g%E|fXR`@8bp zeq8~3C#IY7a}wtM`SSAeiOdPz;^N}3ofhobBeU|tp32V}t52Lho&5jJ9Z~a@G3j4+ zJEyF8|E~HSF<<#b5XYkY`}=&&d9tssOFg@~qWSXzb^m#5qPBJgJ=|OU zecIHil2THObVayk&z>D=Ip?fi^ue;IYeD~Izg}dBe!_Sv{ro&lk*<@I)tyUna�U zx97$B`ttTTNjEO{pI=o~Wo2bmR#s+ZX?gL)V)y>El$3zm_wL1Ao|+LoSAQR|{UFZK=y z5O8T}Yn#+@?OGT+JNtnHr@D_O?Ye7O`f7?BQ`Xk1udlAMlsrE-H#9W#%=HWI4h{^Z zuCA`UlJoYj&;O^j`$6$d^_?3tp9dB1)BX3$)qnjr#m>%7ll|Mbo6CrYHOMFWef|2i zfZ>%=Zq{eUh>p2)Wozfonsv&i?95DK_U?|QOZ0SSH}@UCJzwvmxPIK7d-wQ`DmR7y zt$56|eTlgGjiV1DjtI3T*lbQadx(K$)1pO6H)I;i3JX`RUcLBtmbbUJZ@KQSsav*e zDSUkF;1R_`=g;@6sHvzJ6Vw5 zPxUf=rEk*O+B#i7zOS=WF|uQx*V0Qzj;LsAcK)fZkiL0yb9$z4qD_Qwr;F3)wB84N z=_fATy_=hw%BtDXSpNRrQt#B@;L8UuPQD!Iq&8XbMe6Bk4+B_Uw^X&&?2t`tTyWrk zgM`o>hD8gHe13lZb={2HTQY?UIk>qGvn}6V{^-k>65qu13YLV*4Hd@5#ucBn|B4+s u@ZrOUz!U5nn0YFf)iysh|9@ZWKXY_pf|8U&ULgYm1B0ilpUXO@geCxudkTyI diff --git a/streams/icons/flag_kw.png b/streams/icons/flag_kw.png deleted file mode 100644 index 764fab1d29307e62374d8b799d6ab967cf55ede4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 481 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq~&bfKP}k0|NsC4+{e? z3j-eu13xQ+jSz#a5QCjCgS{|=gD``mFoVAYLz6l~mnOr0ONIkh3d7Z(>dH#ZLt4=*pT zBonI?GpjT+s|+)%EHj%DGrKY~y9x_?B&Sd!mvAPRXd$=Q8bPIXf=cTJl{X40?-Eko zEu^|fSoN`(?h`THr{cQL#C2ba>%9`!`z&Gb|NnnCo`X&d3=E7(-tI2;cF6{%3=9nC zJzX3_JdPhdcioSPQN;D4w#VeS7RRbkhxWj(E06#GpQ^~>#Kdo4-SW5Yx~OB5_WILFBl!V1mI^hJcdmN(YX+C^hUBV!T(c!t|r2p5fPhA;vpPIW922 fFF$ad>F#U!Z@KF??3q*j3lvwLu6{1-oD!M|H*Y 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 CICc^M diff --git a/streams/icons/flag_kz.png b/streams/icons/flag_kz.png deleted file mode 100644 index da85193bee3af7822d21b72cb15264c329d294c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2385 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfq|3F)5S3)aH)2;=r=9eltkW|FomYp=B%IT?y9l*~GAHwwQD1Lz&Nd z?u}Arj^*o*A9vutU(K-i%7Sk}ewWvJ){B3XJb0z{OPSN{$p?$(*uGR1|8Vol&t3nR zUucDuOj}(kv@`!@&U=M9Cz`j39-B9zuOwYr{q$Y+TOIlmWfLnK*9(_!{}nZJ$_@Q1 zg{z9U^nP%ExhLcB%`20hdG0b+mw(yA`YhCMTh)H~g>8M;ZLja(|2pY&Yqhxe?#`!` zSv7lEF9fcUU&(g+v(epU8;cDN6;x&&3NYO@vACkYT(R{?Pk)8|S%G(o|G(UPX8ZKt z&BFJl_ttv*Hrs7V+Wp^vBnauyr?>;5keWrWu(P=rB(lNXflkF!2Z>tQSvdZuG-uQFI`3e?&)&6ZCUP(Ey zZ(Qh7&bnUom+yz>sSjFis)#VGRDJz((*tSy)JdnFq;%*oeTm+y&HpQ1=9|Cr)6-{y z6IL#c*?#Fy?v69}pU>^B+^D=oD0(q_L&a9{re^klN(nBx%hBg}jam5HHfaQ?%vq^_ z;s3vYUdM~(RpuYQE;(NI-e}sQh_7Pr?!MeKDZMuD-#!0x9dZmc=GRSFT$!J2xu}&s zE6>#1JnM}Nhb33Ty{CVx=2qX=nH;s?Qz!d{>n7FJGGF~A*H<${<=uHc|1d{slYm~; zvOFioge8%|Y9Bi*S>If%vR}7*zYhET1(l1-mHkwr&oSwKO#dItV}EkGa#zWJxvWC@ zpN9NPUtFGhN`vtNXUeJ2y-)X)zWXcxdizY?*9>P{B^T|Ed9>R+cuMwN_F3KQ%PRKs z8dp~rh#RXFowGOfKm0&2ykV8@^~^aTFSZvHtvDF-d45#>vQsBx>Md&*XstHjeg5(~ z_tym# z;pE=3=IZw@bFX^kbPF+j<`a=q^3vd4aZe%il2eVRtC|#p`>q=-*^?bJHu!}#ajEfe zFy7^SX}I#A>bv6VJ={8tav%MB1sG&J7&X50oyu?dHQ}9&7sCx930Xe|p|f-6a&9cL zUU+QvyqQT?^WHDwU^Ee~j;NVcl-4hpr^3goY+n40&2QT@h6$nt{+h;Ov-)=&nQwBh z)BniqhKUi+8e5coI?u^nJH#Hc>-yOXXZ=+2UI=CjAFo?}=O>eS^qu}4>hFJesiv>|TwnZ>W~?tj!h;j@E-qVpU^^)p%_3_Akryjc6g zy#1phZr(CXq>4D!4Gd178St5elR+t+vZ`&@i0uqiPsN{>!ZJ+vB-> zzwMoW8*aG6EyBnj{_WTE&&GDu9j*_!6bi5OPnf8<>-NJe3+;2p8xC%ptMK;$dwBcS zCCNvm3izCCzE8Wc@^+cJ^N+blW;Oqt*=i+z+xsTZw4*)Dg7r`1W&TKXw=Q>CWjIUS zw_Ze>G5xbTi~M7U13I+}tZkZ$=A_4^^Bxr9HI!hOwq=Tks22B{g_Y|Lm}#F)UVYcS z=KV4)AGw6k-zR78-Wy+=_Ro>Eh&xy6-<(TMOW0R-nr{7n^{h;)i|8@)Vw*R@pY_*h zKiAoKH)F-Cr_XQ43a>g*`rpLsS=h!Dt+zKAOhs)NYzkPvL`q7rJve0%_Lb2#*F+|( zohf$p-F8PQ74P-zkFQ=??7s1Ghsm7W)-_rEDywHjTw6fnB{C8;uFRz}oUd)~Gz;5yZ*$F%17x35bku{ipcbU4n+ z%GXSvrIxD2tf>)Vsj9U(#=QS>(582xy0@PlxGKo3BoUo;E$Wf}o1+dr4h#0OK4)GR zw&On!%f)*~-!MwNSiaFMec$?J^W>ecMiyljq;7hbu;+F}*A0V+miJZva~bz3MxOus zIOuYNP}kROHWRxw#1}A~PrN4-dOs{OBW~L=t25iU3Y(VR$hFyY`tidsi&riWZoOl_ z&$j99w8tCwh3K^TH2N+rw+-c+$Z$nNI$A|ejd%aX))URD9V>3dX_dHqR4fY-VK%bY zl0NXk`;gtfl@?uv7H{TnySaPTS9Y`i?Q4(vY%FU1ZE=mY(;~1?pyC<3S;F_pxy#?p zUUWPE<3ENk3->V;1zH)gIc1zw)$F_wA1rEd=!SNH)4W*?_d-us+4=H%qT4SzuNKA|IO}`{_Q?n&uCZNu6<>5 S<~jxj1_n=8KbLh*2~7Z_xqjOK diff --git a/streams/icons/flag_la.png b/streams/icons/flag_la.png deleted file mode 100644 index 0294062b0e963957d892eb875b3dce105741616a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 409 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq`LifKP}kgY6|Yr_1b4 zm$_W8aJydN_qZzHc~!{!s+iw33IA&{LD#k8Zt29`(oei)m~`7H`Ln~#3la_rOAhbY z2CL%jCqEy)`1R=JuV-(5KY#oCC4iks*PicYXSmZH;8ku`G4XcI{o9Y5?>4;N z?H*#Wug~>hi6Cs+%V&H4%2_Z3Z~7W XM%=5Vbk!Ib7#KWV{an^LB{Ts5A!W=i diff --git a/streams/icons/flag_lb.png b/streams/icons/flag_lb.png deleted file mode 100644 index d3bc98f147bea158e3dd8b9a1a2cf26c62558bce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 987 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfr0T&fKP}kLnQ-a6(ds> z6LU2)OEn8?4J&&sJ4Y=CXB{VZJvUE14{rl6UjrY1BfmhSfKZc=aI>&Ti->58s939* zc&oTXn}k%mluU<=Y=^9Dr>tD3oP4LeLZ^a4mx5xKqEfe#a*wiFubM`mhGw6pX1}J+ z1RdQ8y1El}^(W~YOfoQ>Y-lpY#B_?O=~Pp*sb=QW%q^x{SWdUJnQ3D?)7E~Lz2j_0 z=Q++Ub6q^m)?Yb-LHeTDf z>H4P4*Eesuv1QxMZQE~d-*Icl&RaWo-QKnP_U=7*_Uyg0ci-K8`|s{QeE;y#heuC5 zI&tdpsSD38Tzr1<@{7yYUS7NY>iW&sH*dYUb^FcjJ8$pYeS7!*yZaB`KX~%-$@5Ro zUwnS?=Ific-`>9e{{G{SkDq^j{_^w7kKaFj{rUC#@9#f<|NQ&+?>_^>|NsBrsJOE; zFfcGCdAqwTK7Q-H6axd}Tu&Fr5Rc=@5iW`e5~c}P8WNKZB>hoXH?4t*i7myzczIC5 z0h@R>g$=p0{MRwM@(3tQ*wmoIJS%m{LN$YmiKz|~W=(RKm{`_e(j35M$+jh9Q`oVL z#y8hjaCxfUY?%44hv!xukJUWC7#ati3Vc&5S8CSNf#Zbtq|rYomkvY0ttxOnug&0G~`uPF{vlSN`?wJ4sO@L6-7 z>mJ6vX*@h?n*S7f!~P`vb(+T5`S*zQgM(?g(y|BHz1@6l9Nt`T?-GBOddkqCV7B8I zGQjP*}yOyW0Gn0Q7hcb7EtavSLj3=cD(NNh0hy|E?X-J_Ld zJiE>W#imG1kTT^=3P`&_?SM{pLuThgn@y9!PC{xWt~$( F698Bo&6@xK diff --git a/streams/icons/flag_lc.png b/streams/icons/flag_lc.png deleted file mode 100644 index 94e0429db76ec68b8e50a70eff1482d132a4b207..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1234 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 KpUXO@geCx5dR0gO diff --git a/streams/icons/flag_lr.png b/streams/icons/flag_lr.png deleted file mode 100644 index d1bb09933334898d7c1c5126e710861ddf5be9a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 491 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq~&&Z) z1`A6DD{CefR}LRv9zTD+fIxwuV1blWnXGKNynLmCLZy;Ym8xounp&-E@80YC_T4yr`oS3nhKm;;U(wRKs;hhZ_RIURv5yK0 zUcC7D`t|2Gix$0o`{mQ#y`K&o`2PLZj~~B(K6>=~_3Pii|Ni;&_wV0-|NsAAwx4k; z0|NtNlDE5ylfZS`FANL}7d%}YLp+YZonkI@$UwlAbwmMQ+Ae;OTHE!X>#e-tBlq4S=OscRBIP>oc6{V;D=oj$INRSYv%j!O?uMqLqf6=< z2DVJMDH9G&lvX?8V{@!H{AV3^a%h(Dk)m-)>g0ZpDRvBIF*c1~zw&7_FfcH9y85}Sb4q9e07cK( Ag#Z8m diff --git a/streams/icons/flag_ls.png b/streams/icons/flag_ls.png deleted file mode 100644 index 957d83f549dceb0b36e27c783e2b33557f660394..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1391 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq|(kz$e7jENP)x(jv3u zg=Q&p%u;8WrOq}>n{JlfZI;t+mfLEUUuRZOZ&q4tR*_{^8*QFE&pdgNdD;x~>>l&n zHuJm|^MYFQf;#hx4D*Ui^Xeq?`Y`jRK=W=Z^Il`~K11`V^5)Ye&1VUlFJQ4qUTl%F z*rLPHqRZN%&&Xnmg2hw?i)qpp)1@qCNLb7iv6v-fF^AV;4xhzbZi~4*7W3FF=5bie zW%fYk2EE)H79a3 zCvmnUbGM}Mw1N!oW{Gw#KGBsW)|D;Z zog>kmBiWN9)srjLnW*P2?PJ+(q- zT9w}PYJ(ZohBIo6X4V?dtTUZeXF99iY<9i*oJOlTP1bXpt>?Aa&u?{H*zU5h!(~yY z+tMEIWqp1tCI+pX7`%3R%)05Z>t`mcKX7Zqti%nolQzyx-83h4^Sq3$3v;$D%G?Mn)FEG^o(ta#_Ll3ge7?_OE4cXjptwe<(qHyzs8dU#X&ku9A^wsalc+I@U` z|M49YPVAg?de8K;`)8j&H2=bpMVF2(y>fEZ)sw5QpILwX%!V6hH{LwA`R4g8w=eFv zb7|+D$M5f5-FxrqzDKu?JidMW$=#FB?w@_}=+eu_mtQ`)^5*%?H_vaqeR2Ek%RBF0 z-u>|A;fFVmKE8eY@!gY8@1A~o|Ln`hmtQ}>{`TYdk8dA-eEazG`=_73{`~s!<@e8T zzkhxI^ZUo2-#`EU`Sthj?|*;){QLL!|G$6#|NobE60K!mU|>x0c6Yg0dGS9N0|V1? zPZ!4!kK;?P{0#32WH|P5=eOGXC-r{I#s2k&uZQaQgy@-K_XSRrzP0jxZuMk? z!JnmS@f?b3SN|NdUf3?waAC=doY;MaA99Qtq#0x?)}AzHdDq5pAco<9N3^!hVIhlWXf0n*_HPig*Oxt$6cx%SMU;B}H$r|AkEYEEJ zi+&6Ek&Ap#9;|j0F&$~@a(jM&pv6acI z?y}v!??tPQPPuR8k;OLU&$i|zAoa3s9(NBcjqIvjeQ{Q`R diff --git a/streams/icons/flag_lu.png b/streams/icons/flag_lu.png deleted file mode 100644 index d0652614e7342739543ee70caeca4c89f877e9d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|`@6@Ck8cpZ)*;zkduf z{{LrS`2YXEmPG1Z1_lPEk|4j}dmpY$y}p%!fq^l}+uenwKjUT~0|SGqr;B5Vg@3Y1 z+5vtEchMdV)}|Jb9X(nSo?IL!j19DUwIm$57#^u{=A5fPIfsFPfx*+&&t;ucLK6TX CFDz{U diff --git a/streams/icons/flag_lv.png b/streams/icons/flag_lv.png deleted file mode 100644 index c883fead9c4a08fa6a3f3b064b91a63fce6bcc3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 119 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}}W?*2rqdKLBfq{WDz$e6YwX*EH%a{KD z|Nm>2t04me17ni6y9-kqcTEZd1A~mGi(`n!`Q!u%)+tQ^CI>cf@$yVzXglo2xRimR YSR#JmMUAy~3=9kmp00i_>zopr0153OF8}}l diff --git a/streams/icons/flag_ly.png b/streams/icons/flag_ly.png deleted file mode 100644 index 2363ad530c3b2fd25a48a8f8213caf5f9d9726f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 400 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq`LufKP}k0|NsiBO?d7Z(=~509jzq_niOf`WqbJU0~;6?JuWO-)S$0|P@tLkkNF z8yg!tJ3AK_m%zZlprD}m`1s`H)g zJbn7~xpU{vpFe-$!i9?$FJ8HF<<6ZuckkYP&LI5a#fz6OUw;1l`OB9tKYsl9`}gnv z|Nk9kiRpu!nB?v5VzP4M%fBFZd%8G=cpOi@uvEaHN6H}UfPrCx2v6Aoz16GMFH$+` zwyrLZH`!H>jZMtXjV-O{%jQ)xJr3RY^h81-c@a;#bhqJ$&dFH~U7Z|rau+SnQ*l|v z$fhPE(AF?#S!ZXb&dE3flZPyqdk%3~rARJFQtJB9v`_41oCCK@9p^50WedfR1_m2A zjV4Z?aKQ7XM|9+@T$5n_ssrAN5~c}P8WNKj7-n$q?4G3m-hhFDfx*+&&t;ucLK6T+ C?3qyj diff --git a/streams/icons/flag_ma.png b/streams/icons/flag_ma.png deleted file mode 100644 index 11fe7220feebdb92afc30679f65cf8593cf59ff6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1100 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfr0U2fKP}kcYrBRfGMxP zDWAUyzrTrqpNXKKiLkGUh_8vLkBO+SiI|VEgtxJjw~@4$k&Ks-tf#S}hmn$pk&3&a zs=J}On}NEUp@y4*rmLa0i-C@dfuXa$k(0i$lb(sAo|&V*xr4rigPxVWp0&N6jlG_& zovxj&uDz|Uqphy9jjoH0j=Qyvhn0?}mA1E~wy%YDpt*LCxmK{5Ragwqic-6Za)+`~r?OI)vQn>-V!xu|1O3>S73IPma3Pm3>0uYzEpORqPJxWXc( zJc%iS?v7IybO`ktJaAIbQgAEq6}V|K;a9%x1a<$;M783jc~{r}u8zH1s&OQ317{A; zp3U4l>TfXL`+P%gL2x$z3Z?ved;*NW-Y{%$tg=2(r;x8#oDj8;VO|>F7H4<9duJM( zQ`}cyzCJ;0Mv#S4><5+L1A-W`3PEAskdY1>Bynk&xQyS_V^Dk#|bGq0rcgt7XYio8eS`>GpjCqHVu z`nFT(%K6Rdjk{*-%>VM-XdIdPDr)$CjFQ;Q)^i|q;>@T8DFI8wZ>?d}6_|7})*;s9M^KuK z%qF%en~Rs)vTw7Qk*)GOY|*SWD?}ggUfIofe#;S4Q5&f*5sXoejPAELb$D#x;Ciq{ zbb-u*BAc1DYZ*_(8}auruln}df8Ux^M&@UXyfN$lMM)MNQvK|}`uxAF&pz4ZXG{zt zMI!dk*ztOX0XL6p(7n?Y8RciZbNY5^J~r1X4aqJ_-^Izmz`)??>gTe~DWM4fF2{!p diff --git a/streams/icons/flag_mc.png b/streams/icons/flag_mc.png deleted file mode 100644 index 1df630981772c33af042a7c19d0d451bf2daaed9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%~0W?*2L-TE$ufq{W7z$e7@vxLF_|Np0@ zTx0c6VX?&!l^gfq_BL)5S4F;&O6=#IgtWB0R=y3|kZSJDyp2dMN_~1B0il KpUXO@geCx2Mjgrk diff --git a/streams/icons/flag_md.png b/streams/icons/flag_md.png deleted file mode 100644 index 60cb71814b62d86ac57669d6472b0e9bcc470f7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2185 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idV_;xd=v^bvz`($k|H*Y zfq}!$)5S3)JpHw`$xWZKB+5ru{4v~q* zr>u008X7v7!XkNicse*V7Aa{s`u5I}ICF7P(i9D?tV1iKwiaft+Ei2hyq9lb!teg& zKWCni|GsDD{XLbR_szdw`~B|ky2CS~Ipel&oo|qP%(N{$lfS6VEPk`;q19%~7#ASH z5A}=%@0kw2?cUGC&>QVOfBkv+oBjvRinaB5^VIJ?S@2Qi@I)i!D>)k+o8q=%3hVASXvt!u!UT5oywHxCs_PYD)KD);FsimfEn}T4O zZn=Z+E1uH(vv{X5AGvS2l+|_4^k%%&yjQXR%Ol}w?iCAdQhnyL z*EkzCOmpJj$~ALqR77eMztq#i>nWxUP*Fy1%1Db-_(|0K(?o)P3>vh$-yLC&#ZpWjh*Iz8Kxi}MLju`F{{Flr=D&wJ;C!uJ8QR9-(d#WOAP-U_AFi7{^r>9l)V44 z2bLz(mgv+3GccsNHMRP%POfOqz0x%A`>N?o4_?n_xqm|G;bTp08MpE~6QYc({LAu1 zDm_FZ1rGsZlY823$7!~%Tybl?qS?^j78@n+b=!O6W()dG#cbR3)XjRv#4Ih z(f@5{eg67Wa`)4A*!Avd`1Pmw#%abaZ?Cw2R~B4nCB??!<@@FwvFBZ~80@#o7G5sga!Kxc{_6!fGv!x> z@3Ce$Ff;epj=3w;7f5`#&71I#G2s#af~g6Of;XKvnjLYq{rIQl<&Piy4h#No|1kTr z#6#^YHqrH47S(Wm{VUk`$n4)-pOqyH4awPU+&UaVU($ov<(S(%GTu+$sbEqg6ExlW zGw1W8{^}3+#!UFn&j0ZLL;e$S+oejY_Z03uEOGZPPjyzU!u?Gwj*MCl_21Yto=E+c z5oH$Cu=~K2oDDydUYwcJU73BaskF^*n#hq+nnUn78c^tNPO+9M8$G1oK&_?Cp z4b{`xY{VwzE!VVt)4djpq@GnhOCuEe=Qf=G&XN#%g7e7nkffiJ z!d%v`arm8DEMsRet&BmiPj;)DW1dFJN6RfS^Co>=V584oI$QTD!@r=k{yiSsSh6%os*TF z)1rjL>T9@PFY;FOpM7lgp=MR(D-3;aw}@6~ty#mW!O!6>$-i7g`Nnd-=iZ6ljfzsq zB|jS5lrAwZ|IT-O<=^57Dt}o@cmFNektud*@-^p)vVB1_&EsElt@^XBZe8oOzs?i) zU6EwH)M>G%pn{hnKv!Vy8wOpWyg4hG&zrLCsEuja-N(ajLZj@;;EOSf+qrwKG(K#0oVQ+9Z~e7LwZ)HnHiqZ*zH*s=ow>nCly70~1^q6y zdn;Pcg>E@M+qlH*w_jD3d0$X&_7lNV+bm9TtFF$yc-1enfIGEGkLUcc0Pn5MpDG<| zTN&*|YI7Nm=xwSkdELTsb;|Gio0rzypW3w`Z0Zl?Xx;#^*Nuxb%2U=BJYcxSa_h5d z(7e2^d#kVPpRw?E6W6kpDJ&1-%_Y5>&stq)-^nHKFrz~1->;P?SH6D~QvPq9>eGKA zzqI^o%k#~gR$ghAZ_b}IYk|qJ;HeKi*DRQ@>*MRCn$LDzS8_^csO|4svik||_3+hl zy_)y73feJf^K;gl-6);t6&o*|H*Y zfq}Eh)5S3)3#o^PmC#pBzdG9`RBiVYf?o}gz8mwO5a`C@4joh)_^S>YJ#&d5-Ls4c3mkCajFe++=jZ z_y7m{q$QJjTDK=H{>zsTx}iqN_s+}@^W#4nD*jo?vrnm8|LUYJo$9TA7IQuGo>+aF z{BwP>_!{$aX;qh&AN&kIYg%I_JzR5s;-|^tb!raErUB>tj#(eD+MT&`?lfzShx^~o zmoPIu<5};kp?af~yW^}INfUCXBrRSNHf#SB z=S9w*F)O5A%&KhcnjP+MYh-zP>!WiO^$ZFd6`5phZ4aH?dUKswSB8lP$Fw5l<5y2| zoMlVbf4uYbq*zX;1#SI&2btIlcD;+ccK3MKcFmfzkM2$HeIIoj*B-v}#^v4@ z-FLcb4Vy^M-8mgkf7qS9dhUnY*?HA&_k%xM=XUabEHRqQ?;HGM)%_FmFYZly{C3*b zz8wZH+eHK%b~^jpJ)4p>H)c-T6g@?Tj6D%k+5(nj-#nLRy6omgo6cUP_{?V~-gak;8PL!1lgypNyB-ju%VM zHb|eV@_hX+ac}domx7qmG`aUl(=i1^s3*{~xzgc+tO}EWK zna}ImZ%f%*9_bA05?O9-cFb$-luKtP8NHRszFHf``m=3^`D3vSCyMWLv|Nap-aAeI zRZHnc@0pDq4^HmxDY1;+cJUs&TR6Y%=Q~Efjrc{I7KO8N9dvEyNR50lE%DdPn>Ss( z&5M`2pWVRpFUV}+qAR|3@ef}vxWDJG=mG2968D9LuW-(KmSxznTWFdQ^DmE}6-5p^ zR?e?FWw|>tpiECh=VgEpC(oCXi`!1$?=#P>ySQcL%3r%ri+^&L-nMU3-iEOE!oPJ- zD9#u7miB1+e23{Ve{}@Be0N@m+-c^1V^ftT)SdE(ho>2W)-}&tB@q`9Q>*hr z`=&$mBOJG>*EKCEd9S?c#*+R*uTfc?9=$8Wf~wGPe`UTL?%^4*o4izZ4(_sz3g z`eo)G{+-WDXP3?2)A9KI&OPaeH)dx|eXP)AvcloOH`}KQ%mKRZ7hGi3x1RUSdVbs+ zo(1jJi+4@Evw+<+(A!J>adq0fpBIg6PwlkM2)I_3d*43)d9KzzvuhhTO(fRc4U4LJ zQ+4#b(m(9i%dSk3Z+LQk>YXpe zo9`T4pvuUzu{CHGuTaFg?wBa`XTgV-&aQgtW!5JqxVuVX2V>v;tH%{eM7BJiw{pW1 z7K;l(AJbR%PK(Z5F?n@+YtYmwVp80BJF0p%Kh|P+@%~G&-`am+UQ>-GFfR7@cyNiS zL0Hq&QpMV7-^ACimIUs;;Qm5kmi&2UWjp3e^A>S^_?i>>@WIqv_U`lZ?2CVdo<25z zmbn$X?zE<;os%1%EM}isnb#IR!Hs#(nY*V~)IOYLP+zjRCaooAj$e_|QZ3yn?0zg# z741Hgn~#}4PP6!OEIIsat9kvq*#Ef?Tc;@JE`83u=IZ@iy*t@?*f#&Rqr}xE zj?6pswY)NyyULt8$70WGvZ~>WG^?+|O`+#6)9>Exxy9-beLG`mci^p+;k?H_M!z|o zR<)#2I`_echmngj*G!z5k#tO|r$}GO)l%{2TazyK$;-)y*vejFJt~nR>&cMD@B74@Sd;EJhJ$-#pY;sfFTD|Z!S2*oexLH^3 zcl9~cY{(;Mbt_)^=_v&{$20lTSNp1pW!Pjl1g~Anmv$&^&#f)%?(C{Nku}LmQiZ*1 zNmp8;6es_$vy!vR^VZr-)i;s+H%;RC{%FpB1zb0Gr`?my2%Pm}+T~Tp`U}4O^;}@_ zXj{4D+;WNE-&k%i?fZ1koQZSil46zBeW&01{+WLD&#h_c`OnK_R(_Ias4m*^-f;On z(eqO$s7_mdd9h*HcZZ;}eTy?6?ey8|DjT?b^Y+8Mspd!h_-0a_1AB6Uut;~ zuy5wf74iPJLOwm%t|kAcL|a?sN1*eU1QSsyNWSn@$% z$3ixTuXkUqyG^~Bu>UTDAKy3I2(t=W*M2(jbrW;Y{-6Jz%061>V$XQshU(R4JFecG zeweYEJ>vK>i{rl{Lj6BD_!zhxYfY;@(zHx;8|z2Gy3negL+iJzPPpU~A)!{q-%1wrS_f$UT!j|MnFM z?+T6j=rpalSB+7s{(i65(SM0I{>FTg zul9*eNcHsu7Z%24ijIF@OvzATdHSR}XVR)t`J%U<>+9?vbnq9yiGRH%kVDqCzhw3| z9*L*XY(Wc4Gr~DfKjr0}b}6Y~+rEpZQn1%IlBI>9nbP7#J8BJYD@<);T3K0RTVE$jkr$ diff --git a/streams/icons/flag_mf.png b/streams/icons/flag_mf.png deleted file mode 100644 index 21d6db6d95cd473b0d7143dba6255cb65700ef53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1431 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 N22WQ%mvv4FO#nuKY)$|G diff --git a/streams/icons/flag_mk.png b/streams/icons/flag_mk.png deleted file mode 100644 index ca41af9facd41cac0a9102c2f77eae0c9b4601eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1461 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfr0T*fKQ0)TU&;=P7Lqd z8NL)Td?{skYs>J?iQ%0Ki2JpM;qN{W`ge@s-wBY^TRVog_6%LkMRs26Bs@wGJHyA_>{u%DV5<<8pEe_hEEv`pE4OfWifopVfd8G@Hva& zb2h{09EQ)i44?BEJ{K^2E(AI9O9{x?U&ZLjISfDNGW?v!@N+)H&jk!W7c%@@ z#PD+o!>=U_zm_umTE_5eCBv^(48K-0{9eoOdmY2?^$fo^F#O)g@Ou-(@68NRddY0B)7?Q^)_hPpy*R)yIB1Knz&HN9^1itl0 zm?LW@yPW^yyv3|%O*;9u{#AI8GuI-lVo&P)NR^dmp7`5}|CspTu}sW)y_-|_Ts~v+ zI9XX<@CRe}FQYR}5nEXrHhDLG<@U*FSdf!APo(!AAL9aHhW8>z_sw6v@o8ksO24j9 zy$vrJl`eGOFuWMa-W%t1!Mw}ju}Q7AivZ(?pyLv}{Yp=GUE4CM%o8{nGH$D_>yWII zW|UR?FyqJ@4HhHL2J5!Dt<}%kln;16i>;I~^86l^WVS<8e51ZF%e;tLXQVb?`y$2^ z(AypGS7L@?TA|I#qsMKZvX-$hv~06*+-sud|IsdA>80i$E^bCmrKgRX(~|FSw1?WW zykuor!l9xuz3y$%)BuKfmzS+92UxpjG&V(rUR7Z^&YN?K+e`7n`_+LiKJqbdWo6&; zJ~%6|WV`Z(?hD!PcN+C?t37x>PGI?VRR)D0)lbjKU5x$qZj;4c#}8hdJ6c>%L{_~o z(mnJ=Z~rHzZCmcREwb0SZV|D3^3LzGwuPPhC1YB&!+zeWsA{EWj@$QpKGuoY5_BQN zciztJ58E8&dg8dhtD6-ay~xCrae4Be8nZm%3~z%}#UC+Njk9{bYnC3i`LQmn(?{iM zGv}2jE-su8!c;#OD&8q&@>1EhB8qdz)F%@4n_kz47WlQfOVw%omSLJ0GW)Oh_CITj zn*^4xUzvWw?^N#0qv~qT|8D+Cn>=?)>x$bJTV^}z9NQYO{a#jb=u+V=(q~H?)^D_& z<>8Y0m)pJP*{v9*M)s^{%y(w2U%i?;;P5g19RkHuofs}>7k~H`^5T~6foEYmIjr~m ziD#M;7wxuFs^=r`lZeYLt`Qto7tY()PW(C5*8Q>6n@Ri%2VQQyYsFL3GgiFbc4{x`<|10zAhAP~I26XKhHp5)RF?-%RY)HyJkVfBwMj z+x87dza4o~8n^WHk%^o3D16HCxAA`a#PD3-bV2umdKI;Vst0PUi*#Q*>R diff --git a/streams/icons/flag_ml.png b/streams/icons/flag_ml.png deleted file mode 100644 index 538fa94bcccb6163eca3b357756b6eb7985d0e43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|kn zi$_avf4PDG3WI>Pb@s9A z9OKqI#jkfx*x-_|!7XW{Tk=NtZ?E@(Sk*mk(E{cusok&@0MW!*>1yN_1%9;@s-Ue$NJZsLi$Nhh18o@$&U}h zM;`4u`e^r&$GeX{+5YVA zOE=zJy7~Ij%{P~By}5kr?Umbauibfj?auq_ci&yV_wL5McQ@|8zj^=t%?Iyp>B`)C z@b=b&54Rt_zy0vT9T56>=h25dkKf;Y^zrVK5BDB@y#M6mgD0OJJpJ_G*{6rkK0SK& z>CyAgkDq^j^5XN87hj&d{QUI!=cli}JbU@&*{d(lUwwW4`pfgzUthlY_Ui4o*YCc+ zdH?;p2}FpMHM){PWY7pI^WI{`URPw;#WM{QUFt*Pma% z|Nj2-@6X?V|Ni~||Np6#XUf&**JNT3C`pv1 z&gHzwW+3{6%k}OI6UCFcf2Vv}8$Rp&o86Pn?q55xLfpW}!048V>DBEiYwtvCuU`Lr zs_N&vtv6LYIb1~D+1S4C*qWNT`nUQz5tIlg|JUpd>IpG?U5OFT|r#FVXj zB)paz-iZEWY|!%i<)kR3&fPjC4-+SdCMP`8pYl*;u}AWmIn1WVFfe$!`njxgN@xNAO?CjR diff --git a/streams/icons/flag_mn.png b/streams/icons/flag_mn.png deleted file mode 100644 index 44d8bf7e508ba92428329557e0c0ab5ac9fd612b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq_viz$e6&vG2Zn+B}c6 zxz|L+uZf9YlMufyDSll_?7Fnr4H>Z;vSK&n#BRuo-Bc92sU&t&Mf8@M=q+{8+u99P~@^cr<&ppgP_cH(5$Nc~Q|31&1px|Rn@^*Jg z+_b@`je&uY%hSa%#N+tetDeD3h9WEvF1j5M6)ki$>XMpX7#_p!%HrO-gJ&Jf)bIc6 zTiMqYf849(fBE^9@T)IFjyi_?n$z*cU9L1qfenn9PON>J>aaI<5+h@!k;41l&W1ye zpHJ3iyw~v}mSM^K&J|OiFu#5m`8j6ohsK3b1%>5vC#^AvJ!2G}Az|GAwB3LwKfN&F z%)9tT{Y9z?k5(1WV9Rnz6)Sl3TlD_@$ISBAqOxb#FwBUSZCP;WMQ!!x3`Yi;;P20_ za5SvCs~K7!RFkm#&aNfzS>z?|y~?>!>&U9oeQ!!a>(S|P$96W{exZ7J-Gi*PThD!b xudpzFH{)kT(J4}l1_sOwkxSM7f6xBS`sYkk?3|2HF9rq%22WQ%mvv4FO#m2l81(=E diff --git a/streams/icons/flag_mo.png b/streams/icons/flag_mo.png deleted file mode 100644 index dacb8ba9e10dc219aac156659ef6d38ab814bedf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1004 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq_Xlz$e62axR0^Tt?}+ z4AS$MWacu+%wv|F&muRML2f>){5%Hv1?-A*8ICgcKapl_D|g#oVG7CeP3AS{>bbD(K*W)au3Gl zFJ~w?lvuc&q4;o0+0pd!qZt)PGb@i}RUON&Ii6R0BEN10L-VQ9meb{}rz<pkBz@j~0=iyc!gc1*d{Iqg#Sj4OS!uTGqIZR-4MQx{&Jv1l#BqU$pj-I%%f#>^!* zXD_=scg3ywD{n1Wb$ik3bquR-FIs(P@!C5}*WX>f;qLMc_f~AUw{qjX6`Ss@+H!yG zwg>CCKish6;l`a0H|>11dDo*YdmeAw3qsrXJ=wAU$<6~$b{%@U`|t*aW6uvB-^g(M z#i0`~4xfE>^4zPF=U$&W4??FeygqaB&Dl$D&RyBWaOLfVt8Xt}eRt{FCWdS8F5i5A z_0ETz_deaZzlGucr@Ie7-+%P^!IRGqpMH7#{Ohw9-=4qv{_-^lz54Lu-G`s=KmPjo z`Pb*KzrTL}^Zm!4A3y*8`t|qs?|*;({QLX&|G$6#K|oLBl?(#|17ni6yUPaWlyyfK z7#Q0w}ZQ=&&DQCKjlm#+e4wzC)^wb*k-A%iI;!%*kPBSB8Tbrgtx!Go<228(Z=r4 z*XXSt4H_%IPJP|DAW1Uf!lKUk8O&Ga9Gr6MSKb81wW|-<{ABP8vOToBi0eedy~ri) zjP4;#+l`o=@77FUd^?ke$Lrq1e?3cPB+Q&+x%ck1Ld_Ema>Cm^b59Ctsbq-r%-)do zbIPuHpJqDz)z*rBy*h1ewC&0M<_u<=Yt9Fh40dKoOx~U2kMCuL`CJd2hRe> zpeQlFv(C&1dzL(9YkVOh^1!pIZIg~xTeFJlCNGo1^*yut*3BwWe|V9rOr(dYiGksP Xz$$sSpxi751_lOCS3j3^P6|H*Y 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 A-2eap diff --git a/streams/icons/flag_mq.png b/streams/icons/flag_mq.png deleted file mode 100644 index 5d6af4d1eb66aade9a1e67c36202cfb643bc9f11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|`@6@Ck8cP^(|H{mN$v zgWsEW{r~@e)*=0q3=9m6N#5=*Ed3cb0~r_?6g^!WLoEE06B?M^#4QYhnwVSutY`{k kUCiYs+M^|Lkc**C?!-m8Gaq#s7#J8lUHx3vIVCg!0L$Mdg#Z8m diff --git a/streams/icons/flag_mr.png b/streams/icons/flag_mr.png deleted file mode 100644 index 81e73168148cbd0df8db05360a198158d9ec08df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 741 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq^kNz$e62caFE-9B=)( zUIz2L4Ci^7%=0jr=V?0M!)(5X`2u@4v$-K`e7Sub+4S?FfF(A9R4tKA}3rzI{f zOP$@9I(aU0^jhxdz1+cXrG3CkyP%bJp{s4f*Vsg^v5s0}9kbRdZk=V^I;({BmZ=-e z(>9u?Z!*i?Y?`y#GKKQTeoSqZu4%P_PyF&`?R|E zY4+^b>_4C};h@IE1M1TbtIj^6GXI#;f@4aHjw>!cp}6#f!m<+zD^ALEU$ zZAo`ncy%3Dl(=eo{#cN-t7Y1)5Y>=Xk5&E#e0E!?X~-`sKJ%esNXu&B46glVj)qg^ zHm=`))lu+)k%{gniLR?@47GMAWIXvCFEdzj&g9*BX1R#$g^+oRUK}ppcCz@z4aNC) zHF9R9Fj(F4SXLd_AfO_--RZpK$u9<G;goO9Yp0^uHG{jj!|(dzAV&y`+sNJ~mzFYJNDsg8g25Mx^KSL$??h7#KWV{an^L HB{Ts58+lP( diff --git a/streams/icons/flag_ms.png b/streams/icons/flag_ms.png deleted file mode 100644 index 0a11637185bd45ae78d7eb34e0447acc32d9c428..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2171 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfq}!o)5S3)|33r~{vija>QvD@^96&0@H@fCBO9x9&T?-rkL8DRQNdx|iB`|hlaA1{6s_BiT@ZN7Q`%$%LR zfz7+i>-Tvtch;Iwm6cswd|s0)ZiB+l+sDEJ!^GmfyZu$lHbp!-cyO{h>txOgpJOlc zfBQDU>vosuU;BR@iFbA=Ms3r1yq)1e!Nc3z!^>)m7v4O^b||l+^6S>^$^7Z;Lly_-Z`5|yD>_4efrd0RdsPaS7;Ns9_E50wc z?z!xbug_jxWtNq_v3Om)xNhvO@}S^)&W4khj27;DCuJqV!W17Z{jWjp@V(g3qs9g| z4D}i&3kO&1e9PC%_S$Q~`u{6dab???nDB%|MMW=DsMc(lxUiyP<;tTM1!cL+x8Iv4 zrqjvJKaYiVqbTE<8G2mk+Z|ErU>_Kr$zg8~PYLsDkuChvg?-GC|60271q7^edC66=jJV1^touh zjLeytJ`Lih;ukYc+2uEP)|K}RZ!VwmTCm)lNny*DkZqOC_uVJ|QgyqxMQZMy{|rBv z6QmfwT)C>b+RT3c#2l-cKB=?k&yBIZd)rzeytcOa!Cn>X`yW1BSnR%Ho{eO(H0$b~ zR$lvBD+`M?FHR=-Ec@o&BiZ%t-Sdd3^FRKiMMqx|s;=m$IMmKxKao*@qi)iIuA{Lr zdO4dCoDO!?ozIrvZZoTfq2PLaz3#?EkN(wN5qkWwMpkyik@%3$y*)`!suYbZH*fvQ zc#Z4LbKm;0TZ|GGP+P;UALBsLDE}QCW{ZBuB`INdwEc5F(v5&J2)y>Um} zrZ5=o=xCqsQl_WTp#1de+&Nl5874{Ae|)sHm3!l*f9F&euFrp$Z$Guci{Y5qDyEaG zR;&@3;ITpLm3`kd{s}b#ijv8nzAn)#-x7XVeeI%GRr*)m^55xB=4XiBy+llLV%@qm zEi+fG-d)=hy8g;Wu8fO|{44fYPr9{fxAeWMFW&UsEq^|5lC^DtYPwVTJC&>~E90PZ zDQz3gR_>iT)xL_$)2uCI|Bswc_ZiBbhBjcNI)7SWUwMwQ;n-qJ>E6(xzwX;u89I+^fWAgdi?zS%{SCpwm ztjH!wSkaj2rdrNrsX6ma5B(}JVbC!aWeyN!`0-T4T}^#)_l>hWk(pwWUllhg|NG9; zpk*e@svxb;vtfPma%Ioz6eh9NG6&A(nWx$`*#C?$ocwa*M@0{>Zy5|9^e>A$=(b5d zdVN;=e0M+h#oF^?53ihJ(FwF{*t^$>f%)6XBUe)DyH>B;ZTZNOz0lC{Td_Oy9-F!_ zS%#kzY#KJzzfD_nTVkhNEVG|V%2d`*^E5ZjR1}l= zmEqa5kBsi;y`GEAdnGNhcap>HMwhp4hmyQsygHWmE91Mqx$7U>6ox%~*BfRBsWR+% z7prN#IXtRog__swooUC|e&1Z!?J0jtDkpZGoQMVY$63u4du{Ju^{^5W5qCE??haOE z=qNRK&oR?N>70?$Z~Y&+d{TkjriY(DzWe;~jElw>-lXrDYC<}?riOSll5PoL_BxO4_daY=g*~0N&dBxZRf)U^;875%t_DQ zDaBSDRj~N~uJf#W@q9E=B1W%9yL8Zw&^j$+_yeDWtX*himXI3y1&*Q zT(~Lle_^mGL)olj>n!FPbbm`J%GYgh2Tef^w;fl#|D^{#nxp?-(_7C zux`VK4I3BsZ``FfbhQba4#vIR5tPcCjV{k%mMa zjgwO|I&KK;zOfj(>byp1|w4Dr;+w?93>G z)JM!}JKnK1tZZUfcIC4S8=FupBkOMCQh~1htsex~MVWfuJHHoyESGdch0#IBY3iNe zH*#}cE3e7i5o>Yk`Vaqv=x1m1Kc!DmdKI;Vst E0G)jJKL7v# diff --git a/streams/icons/flag_mu.png b/streams/icons/flag_mu.png deleted file mode 100644 index 82eb0b41875d50add4d348b1a0b20fe68ef8ce58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|`@6@Ck8cVEE54i{U>5 z!~g#b|NsBj<7|1vz`($mvVA28p2njdQ3*HC!UM!F> l;p%ZeoM;l?qvgQPU~rD<(xn)kQw$6Y44$rjF6*2UngECfCIbKf diff --git a/streams/icons/flag_mv.png b/streams/icons/flag_mv.png deleted file mode 100644 index 527b2c7d8ac42dc712399bf0a99665c74ac6ed80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607 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 diff --git a/streams/icons/flag_my.png b/streams/icons/flag_my.png deleted file mode 100644 index 3c3a34cf7a2d8e9b25460081453e29a13e42d87e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 737 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq^j~z$e7@1p~)XM(H;y zTJPL^K4#{9?dtt~`t0A=Zy4A*8QD9SI69a)+gZ8W*m&AFcw0I7TDbUIxCNSdg_`(9 z8U;ifgeB@lBBEq7gBO~Hs!s27Y(o=$R zGW_$ieG8bq3v+yma(&7?`^yTw%8NWJq8C)A@-ssTP zVn3zVa$29o^nQyO6U^sKFK6BFRh>6?xZZpEzrWA<;Q_~|yy7oU*uGAh z`u#b}&+R*ZzF_|Sis{eoJAYm?{eQ>s|NnpPLWXb#1_q9jAiv<3Z{EEB^ySyz>Fp~| zGB7YOCV9KNx6CMZV-;>< zoc@1*<;2NRU*(D!Uj8n->f^um5r3NSv4EfK>+JT+uFwy-P&wm{jO>P8FOP?I9GJf6 zQ$w%g|ES9nRluYjnXJ*EE6c+1);4?X<=c*zz2{td?2uf2yE1D3{gUrnW{B>H_h*nX zZrptP@rPB1YmTYf^4^gAcy!mX47P|m<73|yUG2;EG_(uI&REazBYAhXbJ>O`{x{b= zU~h9@vE$EN>&4z7oRUS3xnXUqPM@5>on>U?wV){?;15@lva&ok8gbMEzY1_lNOPgg&ebxsLQ0EgT-5dZ)H diff --git a/streams/icons/flag_mz.png b/streams/icons/flag_mz.png deleted file mode 100644 index 1259ab48bf9ecf864cd1f4fd82eba7424fea4016..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1199 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 T^4`tBz`)??>gTe~DWM4flOZy^ diff --git a/streams/icons/flag_nc.png b/streams/icons/flag_nc.png deleted file mode 100644 index 5d6af4d1eb66aade9a1e67c36202cfb643bc9f11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|`@6@Ck8cP^(|H{mN$v zgWsEW{r~@e)*=0q3=9m6N#5=*Ed3cb0~r_?6g^!WLoEE06B?M^#4QYhnwVSutY`{k kUCiYs+M^|Lkc**C?!-m8Gaq#s7#J8lUHx3vIVCg!0L$Mdg#Z8m diff --git a/streams/icons/flag_ne.png b/streams/icons/flag_ne.png deleted file mode 100644 index 27e035f4b1948b5c0d9137ff8682294b1803903e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 347 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq|hhz$e7jY$3z{0*3#E zO#h47{+Dw8ui*b*De%8q_BaxAZvFr8)c;4P|3AI(|M`{w?;iaB@Z|sJ zm;b-K`Tzan{~w?J|N8d-&(HsV|NQ^=_y7O@X{UrM85kHClf2zsw1W3tna9Au(BbLg z7~*mK?d6kvO%4LCfpX0}i;OfoinSmAuUDAu*RI0~5yw^8-6J zy=Qo}qx)N`GxKy_28BJ74&1%^n=?+Pz(D$(#)Dkx1JV)?%&Jq4GW1JcFmQN3`={>q zBZnA7*|%(*=g;;@xi(0;VRHE&U7PdEqyB!HA;vgK#d8;@yYB4$VllseFfcGMc)I$z JtaD0e0st=)u0#L; diff --git a/streams/icons/flag_nf.png b/streams/icons/flag_nf.png deleted file mode 100644 index d048c00ca8c64142f91f0a167cdc78ead909f80f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1415 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idV_;xd=v^bvz`($k|H*Y zfq~V=)5S3)t*yWeybXS#NT@MCyq^h*z6~h#=FYK=DLREkU-BCmd6~T?CcS z+~JdXGCZ#EjgKeKQ1 z`OmX!?azPyGw=Ss_p@eb`Bp?8U-j#O*}tdZF@HC0oBngIZx4eTgK~r50geQgAO9Kh z?(fXK!N9&h(+4QE9@kla&6c)*vaEc$;vqxH{U4pC(czDlY)M;nNM^nNUC%WghCB_*vGG9_ z2D4ixX&lMe`@@Tx8TvEz(-n#BWKu8UtptI zcT-4b3iHSFpOjo)AOH4^>o04?rzf0}yj(h>&Jke`PaiieY!UtOcwOb>C$}nOo}^i% zMs524NA54nj=I-UtIJyyukH}s;_6kn(JU-j?NA<_kvw{L_#@2TmIZrK2>N&Y;qRRWoweiLa@=b(S zFXmhy;qvBMfYA1%8&>^rp7!Kd(o%`G+*jG>lh0hX+EiA~qANb@3;Tl)-`j88jB|D9 zyM8%vTK}WHcOom6+%gO_ZDPIo{=uRxg7(E>zDipT^v`K4G0cC#df?pSsWY_Vw!HQ( z^X{&xG(Rpod&)$Q&39O)gvTEdy5(i!_vco1tUZI=|F077P0W4FzaI9p^jUW+)zzIn$D_V$v?%Pkd-3rhdYVCvp$dA&Hwp5as!*NrXOf~9lkSX%N$XtzIJ zG_%LWnwR^gLP)h4M|6Bofa2+Rs)GD$yqf~yu_jB)M?5;a~URfn%7wx$q zfbm;y>-k?ZPO?3iZ5bWIRr}o7ELu?G3a6&;$tkiYA7{PS-^E+-?9%olQ`NlhT^Q-}!7@+gc+KY~C-v-KKo&+sjWEyf~k;RQaLmKaKJn zg^fmSv%VFr`x8jbxuL(bs%6znJn`Uxk&<2LgKJBzmj4dI1^rswH z|3`UR{Yx9OcYX^tn0Bwzwtpe#@aJ5?v;0D(%IZI#l~(8)ojns}-}R z+u~KNc-~qGy>FWXdyd5zI@IKAN-Kr5ty2kc-?Y)J@lKWL&EJO~#Ye=k!lxhi-QK5xQfYQP-~E zt-ClcT)TNnefPCVTdb#@Wj70|-ZW|6?7K3%E}XdeE|_Ji$I&|V-Sh4V)&KagFws`B zYsEM5-+%wyPCZ;>@{MP~;@?{mnYYAcnB_F&zIAQmym05E<z~JfX=d#Wzp$P!tm8*OJ diff --git a/streams/icons/flag_ng.png b/streams/icons/flag_ng.png deleted file mode 100644 index 05d1a089087a59f1d207df7af0c85689521c3a2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}}W?*2rqdKLBfq{W1z$e7jY$3z$`z!Z6 zSoQz^|G3s=q6`cSj7i?^F3f^FKA#vE7^FR2978nDCnqp4{{8Rpp_P%*jTHnpa4;}5 YI)1%4<;xUf1_lNOPgg&ebxsLQ0Ek8-Q~&?~ diff --git a/streams/icons/flag_ni.png b/streams/icons/flag_ni.png deleted file mode 100644 index 087ced093bfe6fc1dee2b93318e9da8b954fb378..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1561 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 diff --git a/streams/icons/flag_nr.png b/streams/icons/flag_nr.png deleted file mode 100644 index 57757878b8ba8245034ab9c0b1b32ac336b3be02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 533 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq~&efKP}kgJJ=rQX!La zA+t&mi%JozYB9Td35P}ruSPbXW{!YP={^UB)jm* z_7RgEqo%mTOmmBy?jAqGGjXPO(yZ{@g)xOo;!Bn$lrBpwU6x$FBBf$QYURqbs+C!_ ztF!CYCxHCkFVW+@$|)q7q36P zegE~#*Pq|M|N8#p_pjf7e*gLV=g;52fB*ga_wWBE-v68V|NsBL@J87S1_lPkByV>Y z|GYFuPX-2t%bqTdArg{r4@O%vIm#S(7{B|J!g3eC*FLI3iq8c$&HDKN-+i|8yDrR~ z`Ekdr@2VV43O}4r2_FN)v>UrOwn&*-ubd(ky#F}Aa&*AmMyYjH)iE&}>$_H8J^1VK z<#m1wCLF%ywmQgXYsZV1Pl}}3eP1sB_TV1vmfz diff --git a/streams/icons/flag_nu.png b/streams/icons/flag_nu.png deleted file mode 100644 index b123fd86cfd622a905159bb71df77b11bb13e44d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2018 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfq{Lxr;B4q#=W;Qs(pgPWsdvHZxK1=%oynCI!FJ?%H-f>f%BxE-?<@X{oP46<-r{1 z<-uyRANS|3n|-1n`jNrJBRlNH=BjP7s657gIdO^Tsm%_onyg;h{bCsl1HSE^SG9Am zL-p<}s@_$fy>H!{SAFh#@wxZq=iZkG9-gNAxBOjC;JSPF4kjO8$I&XUJmt-Vsng63 zJ+A%v^C^dK)~?sr7alx2oA>fE*@6>hITnEt5!shAZuQBmjM}h3%S2>N+R?6cmzV3t zUSA)5efD(sqZeNCBo*%4UcTxwV^{a<8Q*uNo&C6I(XGU(t5hu`4?TWZ_wM(Pl8&Rw zR){1k_t1n$`WaJa2 zJ1yO8_C%+JhF7j=xF`uNF1xzw9k=)ce&_?mQ+_?UJ}1ENKoz{@29V}8**=-56XPKz{l#&M(Zs z$$xUO#oYMMSMPs(*xhoTL&55oN{P{(o1RnkzJAE?_HJf4VC1vxV)65Tal1?oe-hyf z6Vqlj(9)XnH#N2Q_O^+|Y>iHbSF8)`bg{f}?;Y0(Wy{4`4_91Ut=N`b&bp!G@?!S| zp;{tQp6_2NEq(sv4i~TQ_Np)iiSPMl)~rXaUN1kiPo=+C_ISj;nCf?PDpOjHXlPdp zh<|U+Ww>dx?U%|%rcmx1W(-M5n;smT_%2WTCDTEdm!F?6_urIP^Dpj}Zja*h@>ky8 zPXhxVOPro|(IDYLue84ptHML2TjEj8kRQ@86ta!hGiYd9h!Y z57JtB>G@gftn~e}uFUov%z{$FVD<#Q|y zQ+mIA6}3sUus=%*C&ir=@+1+w0YvUo(-RUg^A!i9UC0jH{CtL(GGZZmmrwml8jO1_inE zc5-1Ibxf%yvzARKFzmZSS|1UT0JqX=E?5*e33U5D>J6PmD6I1 zxOMrRvaD0>LifjF>x#n`d|!0nOTZ0*<6CbR$w#&BO?~-jdsJ3>($`yI|HTiv{;1>P z+J4*fvUZHby5HfAlVdu1r50HR`G?iA9M60FK2SsK)YG~Jl`rzIRrkKyllZH4kMPI8 zk24zY`n|edcpy_cY3EZN^`i{M+OBtAW~g(p?$6KW=;`dK|7RKK{PfM;_qk28_hnqy zee&$cLk&8xhQx=3%DtEC%N!Xq_vt+3qVX7;nY%N~X^Cv?5N&AWB0g?I9#GrYVr zU&v~S=yrArnR{1+{P^v>$aKy7^Jn+U%FIdApFjH%{|dPUMa?Fcvz9DVTl6L+noGoE zv7-0Um*Q6*OyD+RoZunn6v|pDv9{RbWydVHgqyaC;co@HduyvQBqe^VWM;S^HLtO9 z(YL%x>klcDR*C5yS(;W^$sIY%m+62~*~3nT9kx?64K956(80?SSzwT|Z`ZuKjTZM$ zYhUGS=s#bVvHZGprmc|bw)Xa?u7}^;bWt_1;Zc=dYcY?5!P+Y1OE6CpDY93rwk93pDJ}c<;($Z(X0cUs zI+x0bIvjF-8~>qq>O8lZ>F#Xve}y%%HSnIA?rE@V*9wV%%ZD~yzg`;QEAzs`&u)E4 zS@3)rSs9l9%?V2PPaZfQxHoR?HOFMR{P#=Vc|keRdPi8IgUot~aJbKVho?~Tdrj(Y4b z1tk9cV}Cns`I&M>wWE0s2Nw49?Ad46e6@37$hLR4*)RXH@Jv2kuCAyfTeI3qCnsi? zN6L!T&3C2v8jp7O8`cQEj$z1gbaeNdtF_R2s#|k7^B=C4`S+)}yY;=7etrFQ{@o@w zR#wv^v)$d})<-jNajV+gTe56_<>f$zoXu&n=T2!!Nl0wEbu(0JMf=4WfBxs{F^D&C qA7FjJRKU1{A%+3WeGq@!-l$-A>3)|>&lngO7(8A5T-G@yGywqVaK3W@ diff --git a/streams/icons/flag_nz.png b/streams/icons/flag_nz.png deleted file mode 100644 index 3d8fe6f6e7347612f0e13066796fbcf8e67957fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1835 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 diff --git a/streams/icons/flag_pe.png b/streams/icons/flag_pe.png deleted file mode 100644 index 0c8dcb034a3d3aa4ceaa5e7b41df3c1c3a1f933f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}}W?*2rqdKLBfq{W1z$e7@|Dr|zv$Ov* zF#P}jf1T&9j|>b9OeH~n!Kbeo>TZc)U|?WO@^*J&7Uc2y#K6EH?djqeqH#Vsf|cp- n|HcQ>Gfo<4fnb9-1B3W=cm80n$Cnrw7#KWV{an^LB{Ts5`ur%W diff --git a/streams/icons/flag_pf.png b/streams/icons/flag_pf.png deleted file mode 100644 index eb7102ea559bdef9ac39fb9d73d00a25cd3d4317..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1374 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 diff --git a/streams/icons/flag_ph.png b/streams/icons/flag_ph.png deleted file mode 100644 index 4aff86ee679e60d61ca70001ab892ae5e0446e36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1461 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfr05}fKP}kgTyRG$yv{dyyawl&)J6Fv+a{FOqhLn;p$tfx7^#b>*210Pxc>scKqziGnZbU zz5M3J-4BnReR=%+%jG&Wd%KMN?J|zH%emgJ;Cs75;O$DG zcdG>7trmT^TI}6w@po$^->s2)w@&umI=Of20eG}d^wr<Tl)2E+1GPrU(c0)Jzw?peD&80wO=naf4$uD z^>XXi%WYq;w12(Q@%3ug*Q?!Mul0QW{`;GN(l=q%Z{ix?B(=WD=zf#c`=)00?ON}* zYkl9YPxy9o+P9n2zulVoUETbht`r|;J%e7`;W`|Ua3@67*xcft3&3%}o8^!@(Q z@AsGgaPa%#67<72>PKkOj|Z!MJY4hR;o2XM*8Pmj`k7z#v!U~6$HbqHH~xIO{pYjY zKcDaU`F!us7yEy{IPml3p`XA0{+c-R*UW{#W-t1+Xyvb0$9}yz`RmQ8UvEzTdVA*g zmR-NM?*9Gm;_vsDe}BCG`_t_|hmZd`a^la0%YQCj`E&KgpKCY&e0lii>!Uy4p8omv z?9cZXf4;x`^ZnJIzyJO|c=Y$>>%Xtw{QdCp@5fJnf4u(t{imF!NNo82ckwAB2o@ful{w2PMEN3 z;?}#-tqIzk6Y~z-7Fm1RBgQf>hn~HNvO&ty>YOR+v^~yamvy<}(Z(H>|jx|ILvc_gRgXB1h0Q|n3Ujc2i9pS(s|5!)i-}0Rp#O7 z{=PAu)A+%**09I23bnPqk(^-+9}n%hvaM!D-Dy|Wm*o%REGpLhJ8`^U|62Lcv%)2*w$ygCdQ*rvUH)~~yD+0A@; z^Ru5TnJ(8SrFn7|vN>!jo|^VNR^{K;R8>_K$q#1E|Am^q=ft{lcCyvfY!E$Hvw!*i zB`qn;0uQcCnk2-FhmF0wJWL+QPWral+uO^-^uZ^Y9p9o^F6o*v z$H~9nu=+Ni=l0#dygb-=@}JMlPHFl&e@>_q8$;DWYg3UadDEv)n~;8>eXsoc{ndUk zyN*isR;x{!5|D7QDp^uKO->RH@Gt>xGOlM zDC@A)XJzNi&goj;*}ti8!sh--TPIE4I(h2$snfPk zo4tGXoZYjR9$LEW(6SXrR;)j00~{QdKHpWnUz^8VAe zPoKYk{`%wVx1Zm>|N8#p*N>mSfByRO>+iq6|NsAYHr;oOfq{WB$=lr}cJ6%xMg|5( zaZeY=5Rc<;uX+X_au8^HC?R05ZpXu>MJqHG?O33ZCsBT3N4Hev|Nr+tEI4+u^VONs zXH!b{Rb^>SeizXa)~_1JX3)TB#q@D%kJyBrTA6PbTv)|+{pJ#x6TkIq51xIMs1sV` z((w7nvwDs5FF()AVHcgjXB2$=gOvi)obr1~^%GscGv9I*+`zWoOXHz=)^tnG0tWG{ zQ?oa($>S{GdUerMt^T|_%nw4{7xk4|+gi_;HQR5-EV1D8FE;1->i@Ri32tOyU|{fc^>bP0 Hl+XkK017fX diff --git a/streams/icons/flag_pl.png b/streams/icons/flag_pl.png deleted file mode 100644 index 5ea5b0408999739e9984c4121e13e28c3c0817ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%~0W?*2L-TE$ufq{W7z$e7@J_E!5|Nq@K z8mcoeFfb;0ySp&{XVSgLz`!8r>Eak7aXI-1KP%7S9z!2S2AO;N9dioxQW+Q+7(8A5 KT-G@yGywqjnHwqq diff --git a/streams/icons/flag_pm.png b/streams/icons/flag_pm.png deleted file mode 100644 index 5d6af4d1eb66aade9a1e67c36202cfb643bc9f11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|`@6@Ck8cP^(|H{mN$v zgWsEW{r~@e)*=0q3=9m6N#5=*Ed3cb0~r_?6g^!WLoEE06B?M^#4QYhnwVSutY`{k kUCiYs+M^|Lkc**C?!-m8Gaq#s7#J8lUHx3vIVCg!0L$Mdg#Z8m diff --git a/streams/icons/flag_pn.png b/streams/icons/flag_pn.png deleted file mode 100644 index b4b46f3603cdd21aacbbccf2ac5d35b38ab12a4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2667 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 IbxsLQ09ca67XSbN diff --git a/streams/icons/flag_ps.png b/streams/icons/flag_ps.png deleted file mode 100644 index f49794067da4fd13cfd356cdf75785b885bc8496..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq}s+z$e6&fq{WxCWAQx zgH0)e3j@P828P|53`ZCk{xdNAx3KtcZT;WH<-e!r|LxoV@813Y@ZtYQkN*Gv|54A* zas~zl#w2fd7r{qcZFey+FwFCGaSZV|{`R~lACn=EOW^FZA7={wpZ>6zp6c&QjIEH9>uq!?X+r%SD_i9Sj|v0u7gaS-z!n zTEs2o4wPdkyvJfx$$a8zsKV^us!=A2wF6*2UngHZ%Z07&~ diff --git a/streams/icons/flag_pt.png b/streams/icons/flag_pt.png deleted file mode 100644 index ec4daa5be4143d0b0244d3c9146d8e00ca104be9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1782 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idV_;xd=v^bvz`($k|H*Y zfq`wcr;B4q#=W<*sspZE7d^gz!!5O~%WiEk-FC4oZ05#^D|0V?yr>v#oh@=9(1}H? zk>k;gh)NdggC9>abnW$~66=Z< zmUCoi=5F2W^k%K#*RPL0r9Ld`?BOZ=w4~x^>gU~SePwJkPMLQb7qf12XE>mL`p7n+ zk0;gBCM@^sJm$7>dzg!!A;TQSM}L(T|Nm3`IVO0r#yNrbzc~!dGd4$ugv?@`YoS;c z+TG!0xa-W8-$x`EHu61QlRhP*UpRky*LgePxpNn-^7&Kxje+GuQtOJfqOq~(FVvjz zyl1FB@x2vi_40V3&vWM3zE;t{d-Cpvx}Cyrm#jT;a=H54lG57Q&Frq#4;YvXGFwmR zo8)g;chJ%QjKvKr5$#HeY4EZ4f;CoHu+dUvUDfrb7Kg$?%~Kj3fDJGipCxecpXMeyU7`=Vgj{HnP>0+4(&BF&(e|Q-@l4BQbl5XmMcd=Kv zM0)SmZ_9OJv(%rs3QB6u@e6!dkj$`+X=Czq4IL3iMkPJJk`jvz%X(Ps8|P=psNI_~ z@tNeJn~MKT-1np!@9Li?%EFb_HSa}d2>Xqd(#m{OrB<|W+ilpO`TOjl@<%NZ-*;)~ ziq4$Lw~$<0UaefrJ##^3w#{`n0I5!?CF&c6!|+*I(emLZJo zX64cFBmeKTIM(d(n4`GsF5dyZi4)W|ZFVi0^W!ShN2ivE=^qmqR8<888QJ-4Bpkx0 z%TD*M{q%JDvjZikWf|ARtYE9SgWy{Q*Fqt_pa6_H# znpp0YD<|wuVNK!8YMuJ-@FNTBg9nv#&Uln;smNTn<6)nofN1KnOplI^4uiR8Pt9Ts zZGJfE!Hx*Y`-e_V6_CnuQm~axJKL0cI^m*{M|@1ywlmsIiypo?vw3sX&L6Q;PMkLl z$lkv5rPPF7p)q^4%)~k7Cw#nPvoXzEM5J=|-+wzYR@BV@Q4z6unLW#@RSK4pK|u?u zg3Y#kpU1k5e_`b$eqEt(RjF#mD@%83He5Zrtl8D{@2=E(pN5V8GngmDzKIjLEdKuI zPc@cJn}1(#h~59K{bAF?L!T2`cAq@OdF2w;#a-QYaqyeJ_PHHl&iWu$VcMTC8Ox+)S?S9yY9eX^=dv}k zJ2ySpw4tx7O`bpL_?MSY&dopHw=&q$>>PJgmH7UrhpK*6zqu{YpFE3Ww*Iz!^Kak6 zyR^;B&#^vR-gU%9P*~aNu#3kE4cb|LdJR@U)6) zy7!*%^G@m?I_&z%#@xS+?P+J}?4w^_KPuQeBT{2ec<0TXmv_wE#IlK1Tke5@=Y-71 zZr8M~x!jI?roTi<7uSi$adL;c&gu%=U5t^uj}tQqt9)mNKeFwT{# zsJ#3BOxoi-2LhOh1S}(19bZ!P?h~TW9=by0XP5`3&(Duei3ZNmjrqsCL(68H&zk$nc0Ug6 zIs2__@|iuAE;=U4)z|lLRY7jsj=z)LAH*Hdj%Nw$k_}xJcj4Br{qI@N z%`trY)$&okzRjZWWIIu%RS_!hL=Ij|daP!c-nPP9L|xhS{EXu-^9q*llz#K^4qr7x l1rpq$+;IHw`%nKFGd5+ujQDQJ$H2hA;OXk;vd$@?2>{9ONxJ|5 diff --git a/streams/icons/flag_pw.png b/streams/icons/flag_pw.png deleted file mode 100644 index 6aca784a2fa78264fd2b20e6c110e07f7ed7ad2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 526 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq~&+fKQ04*V=2|Yp;5* zyW+p@LcscS0qf5Pu0I#F;cW2wGhrJ}gl{|^wefJ&#v=)v_oQywmbP_k`qnMk+t%l9 zUz59iZRyU%<+~PC?V4M)YhLZ{S#`T-w(XtJv9Gu9Kx_a0)`t-J=n|GvW;nDm>NAs2)%UpgeW9^B=bte+GoQm9fDtz0iu$`xacby5`eL8T@>45!b zeGZ)UK7QWm+(oM^myEAmHoAUU|JD_q+gG(8UR8d4P4V$HrMEXl-`*7acw6w(ErBn$ zdB5G^{&|P}_g$7h_n80QW&U@U>Hj^3|Ns9-9dc-9U|?WO@^*LelH=KWjDdmSwx^3@ zh=k~X_P;W+WBl9hobx3bHD!AckmyZ@b}!ByXwa0J}XTAd3ur8 z=BqEa%$mw{Y-7RY=ga?nwQ=&Dulh&La<0pSpy|rHR9Q6aK2M*nl(O0XOU0bVS50xx z1$38v@tVG1=c0!~lUABbJ>t{|%ZzGXNsz6?e}G|@UT?6>pr13{NIIW_XR5iKYQQl5IFaC tEBhaVjO)(~md(+g9?LiLO#Mf`2Uq64T5{;F76StVgQu&X%Q~loCIFh}39JAB diff --git a/streams/icons/flag_py.png b/streams/icons/flag_py.png deleted file mode 100644 index be7f66110861c41179f81c9d40b914fafdcc488c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 714 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq}6tz$e7@`Qsly@84$+ zWasqfRXyca@8)iBz~5?cI@1_bLWxuJCAJKzkmOM0|ySyw>o(6;Gsi@4j(>z^ytxJ z$Bvymx#P^~-51s?U$M2l;^1(VgY~MM+*Nt`YYYt6Sy-;KvR*&7@A`=o*H50jA;5G) zK;VX;;0+0u8?v%DmH>?wgW~w;U92UA}z#^5r{re0Q9c?`kmIwd1{;?0h%H z<(|93y$FkY_wL=dV7hP3bl+a;zL(+y8-@q&8V{mP9$dQg;K753KAI0NU3wH0^e8y^ z(W6I?gTx*`e*C03>&g5%Ps>uC)x+|Q|ES>vi+3YtfR=nA>`R#=Z@6MlpfB5kGBS$`b`ts?~qrZRu{{R19amnOn z1_lPEk|4j}XV1*<-IHfvU|>x0c6VtM+O_T<0|UboPZ!4!kK@T3777^jNEu`uSiyMs z7=s%ZqqB0{ghi|8x5cx@G57EYcWXc9={;$(z;Un22~(>BMms|GHtH~&d}0#*^!l}S z(jP99lZFas%uPdjV%PaaTAN)`pU1;o(sf95M#>IWQCAz~Q>7;i9PCfeZ}#;#@8cAA z)H-%P4>QlE#TAi1Q>Rv_ggP7Xo-kZ+;pDtXhnSGA^M_ZTnXty8WOG3B!%1S-jLOxu z1*A>0=BzFD^)X%(lVy6+$K$H!HZ!xblc6bUOOClI*S61*aj#9@^qDDeW@pj?PelpS igewh!%x%4l4BG-WW`5qyGmC+Nfx*+&&t;ucLK6THC|Z92 diff --git a/streams/icons/flag_qa.png b/streams/icons/flag_qa.png deleted file mode 100644 index 8f0802ba50c1a8cde792ce89cb8492d94da9bdd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq@}Bz$e5tjUhapF`_^) zsaQ0%L_Dolt)Nb$uwJXU)wr_DrhZ=RlzDMe7pKnJ+^~9U^V%I98_%sfb#e3A%UjPq zICJ;uCcr!@E~@{;<2RPPtF9>551PTo z;BfRd+qHY@7n!eLN&Bcir+E79c`JgVL>C0z6m6Tu6|#UybcF+}RzM@y{_q>l(NhjF Zr>Y0UY@Mi8%)r3F;OXk;vd$@?2>?#abUc|t_z?kIi?!x*b|K)K81_mWh7sn8b z)5!r%%&g)T0%mQ@ZGo(dx!gp1v?M|eRvow@!N97b(a@tFxPpO!fx*+&&t;ucLK6Vr CyepLe diff --git a/streams/icons/flag_rs.png b/streams/icons/flag_rs.png deleted file mode 100644 index 32bbeece7cf72377a899514cb12c91e4f1b7afed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1808 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfr0I)r;B4q#=W;QqjO}!C6Dhfes-o*|8eZ?-PzWDGRF(`&K>o1(aU=z<*Mo1)TFuO zLxUCz>k_Zd3~5IO#-N=Zu1=3wKOS&h6eGW2L71Qi@6Lr=LOq>kTN!>-EqwE}v^+h% ztSqhU*_kv$)@{@8RjP_?j>&y^i&0MP$!BGQQt_h#3RZjA*9#U-D*n9a(`+t=332wO zFMdu`-RH$9CcQi6Z>Rqi&#vm`C;G}el8&5Ub`0OW;bK#K?4rlluQ>6aH(*#`^!R{7 z%KM`yRtrrGf4pC&(<}X9M*JQh9X$zwv_tC{?irpvwKl8&b@Dl})=w`am-jH8(M*mr zj<~+wi?QQvrAe+nf5V5LeOJE=w;#G7bk}NSLN4=Hb%(Akvdt!ziOg3&HSQ?9k-sx< zH>25tg-hnNtlhJ%A$ckz!v%e5(RCIo5LO769D57cDXO+C_d=n#jC5EGlC<5iY&t3YGM>nkT1PFmApn47Z7@mle3Fli+ zOkkY0e(u627sB63maJG%v-S%=14AIoF{UT#zsnc4Zi=5%Yu`U>RqpL9zrG2RxK}a7 zF*E#|`M$Ewuh*5+wWoDkZ&~j9+L!5#TBf!;CBF2e@Bh8_n)tq#tGQ&XH$7ZB|NNKo zEj;~hKfT@^F~0fSpKYJJbX||lfmyT6>i=#rw(ER8-Ai2M{o0$aP8>aVS6*pV)Qx?- zoILCP=6y3YouPQ_X7Ou2`*r;FI&o^}WPWl?T9Q&O?!UCfP<4aT`?cOoiYJx(*Gkz0 z?EAHBTgK-?&o6~lx5bVZaveVYi1k9viv{n0zjRV8f3<``!*J;bPd0{~?(Bk269qYx zyDkZw==-$B%PooBf>kT(rA2-M?j4 zS88fzrs2)4%Z$t#Gj}|6*S|M!*I9}6)_s=SKRoY@idlDYgAdYx#d~=j2&cz9-Nw+ z6>If4n^d}+78wLGIK}LiTfCg5bA{*MFvIA0t=4YupO??)-q`!Qw!8l0O9c*w2dCu! zMHJM&`t9f;y~yG2vF5XP{tGjNZM}7Eo%fQ`&F>N>-VoQjFFX54%ZvD`TRV!j{(8sT zW7t>Y)UirqlFs&LQ%*C+vNinHRSYqc;^k-H5X`*0GPdsUWRJx$Obwr=u8#4)zHC`j z5Ub*o;8m)VOAjZ+&6y|k@DEdR&&H0{Ep@;9Zd^>ezr)jnmq9`y%yf>|)}7n0&(%$8 zSa2~zBt5Xk=Zxi|WttjVr8Wh&m+oHubMf#brRe-UoD4$Gd#x|$c`vK)wA0?a{QDWnIijCyqj#)}mWiB}+I~f;;_JiXPCPezS8KiREAV=% zu}L73jp4}8z01SJSd{PADSmzE{yKc!)aU0nz02J>ZSK|k|Li_LD(_h})9>}Wnfr?t z&$_X@_}w-CE#6VTSL%DqOzPP#S7{^0z+mvJS>Es8>(sdco9=yoFHqzwTyvhT8%W`eLUtKWwS8ZOq&N&gobt!Fif3h{_cXxMkGye`bdVH>9MWAom&I69N8{`=k z9&m8(^I>oZbBLed+rE0|g51C7QZ4?n&tzx&_Uxi^uhpZuCO2h2%`@0q-apSPbJHr1 zAhp|P*tb1?=MW=XDDM8abL;#{t+Z&)p6m6GOJ1d^o1b`_$?>|yY|n-;e%tHoA{#S3 zTeoG+oyqsueCfSp^~trfledRWynWlO_Wf_6Qz}_17q|PD)#gNPiMhx+(S1$wiwRLv zJzQfxA4#{iE3NstP3U{(qyH-mgLVFW5igCLvOPc4IMSu14k$&?{L>9G<;9#zq2Cl&u&ZG$I)tmPnXO)`{wrSoAwGSCJ}MA3Jx_}KAqjgv;ho1 c#J{{hThZ_6@z0E=3=9kmp00i_>zopr06^Mg5&!@I diff --git a/streams/icons/flag_ru.png b/streams/icons/flag_ru.png deleted file mode 100644 index c1dfa582e4aae9ab7f4a0df177de49660f4ab604..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}}W?*2rqdKLBfq{WDz$e6&k+JR{Bjf-7 z|NZ3MjxsPXFeZ7syD+73*Q78oFi3d1IEHAPPmXA1lW^N{K*ND`VMam=Hv_{BhyRTB UvCT&q7#J8lUHx3vIVCg!0Ne{5(f|Me diff --git a/streams/icons/flag_rw.png b/streams/icons/flag_rw.png deleted file mode 100644 index d5aea467060c6b426a3c2ffc6ddb61cf2b56445f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 735 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 diff --git a/streams/icons/flag_sc.png b/streams/icons/flag_sc.png deleted file mode 100644 index 8dc6e09fc76e1ae6f1559e8c7cb325cee16334fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1326 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq|(kz$e6&fng@YOa>;# z>1@nXIcBnOu}HP8nZSvCu6a`xqrwM9^ zHt2}g8BCKhmaa0Ft+ZDvwx6oxtWxN$ne8`K+h02?(l8~)I4NeTajIoZ<}{luo5&L9 z;Ie5h<*q?ZGklwUz1ssk`euesig26}Yd3Rt+=67Q#dFh^WtgqbHCnqMe^asEw#DT; zq6~IaXz!eyxwlqh|FVWdO{&M+l}=_ko$ir8zi#4%NitWbOJ3VJ^X44!yNg8bZd>$l zxzOX?t6m)3{Aw%j>+L*mkL`ZHpXed*%fGJ~|Gi=S_mSb>r%(SrfBw(F@Sl<4 zKO^IRCZ_)^4F6eJ{JNF|En1O zuVwhZj^Y32&Hr~W{NKay|HzU5#~A*fWcYuH;r~^J|5va6zjp2a9ftpR8UEjA_<#TY z|3{DhKY8;18N>e<4FBIU{D1rQ|9gi2@8AFb@ZtX#hW}p~{(t@Y|J%3!-@pI=!SMgb zkN-az{{Le5|C{0eABO*b{`~*T@c-}M|Nj{N|NHmhD-=8<0e}3lo&vOecbR_Skxc=2;$liZDOZ$H+ z-v_3`uz!b39i2-vYF)zb_vaZ4n1gTpd)$10pXZCg-|FZF`HbB&mR^rz z72t5$^e0{2LFK~wc@L*AZS+|1lqn{E$6J<#2O{p&my0=QT-Yu4RbH0i;DH#Q{42H9 za}H>n`ClRFU~r*U_L2Qrwuc9Nj_BXwJk%(7qT~*P0AERD>Zka*jM9ynYWs`iZ*cIK zt?O8RfYXdgcAC_mS>6m~OonX#PbzK@mH06En|uy?bmKM8DRJez2jUWxp6<8cHDhkP z|Fy2t>bza)f77SiXY}*fPflK!<-{Q>(adXqPVlH1OV!%rZSso7`(K$WK06>&@}u|7 z`SnG@ymRe^&Sn$Ib0YB1IG&++$R!rK3SHru@TFu%k$eRZ~Ql6!l}*Pm~v zD;%!Ba`e}m-pU*M-!CUgholB>daE=85RcK0Ot;4{NUQ|E?%mRUWcK=~eKm5#U<3=9kmp00i_>zopr0C{nW AuK)l5 diff --git a/streams/icons/flag_sd.png b/streams/icons/flag_sd.png deleted file mode 100644 index 1c65e20e60ce168e263aaf2ade683dd6465f5aa9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 390 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq@|*z$e6&fq{X6m4QKm zfx(i2A%=mWo`GR91H&u^j=3D1QyDntadOY&)@WkTSf!!6MmIKzA$EUk+M%?}Xol(6 zrq8rvn0bBX!dnY3Ni$q}d+GZ7>tEOzzWo03ot5GHpYQ(}82OE0>MH9PRQ94wnseD34F?O&LrCDbB1kiIO z)22OpwoYeDDN|vbcy=z!7RgG7nSl%?lCBPu1KC6*>l;qaV-5?~OZ>gW?$Mtkf8CD$ zQCcuFo}uLP=Z2y>F^O*r_W$@gUrd(ZUjr{aSd@(lBS<{mKJ w&p79E_5thv>^q)^GZ@MFVdQ&MBb@0Nf3hxc~qF diff --git a/streams/icons/flag_se.png b/streams/icons/flag_se.png deleted file mode 100644 index e7aecab60cbdba6357897e75548e16382fa8c4e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 254 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq}s?z$e7@(=pc1M_K#( zjeC2IdwNX%pJv##RQ~;8_G4?Lz8quaa4I;mTKe23F?Qzy2K!x0c6Sk~-jlEamT zas2HiOTGpJ9@fCk?>Tq=PhFX$a`}dkNyf6RUsvg$yf*FDESZy;uSG33DKjuIG<=9%08Btf2^qZSV`%zvhouZl_#pIPc${3XlXsw*MDkY@YK-onW^bBGqdLo4$mDO zpF24{cXoc^;_|}P^@Y3p3s28ik&&;WqFzNuzmAD{9T)dHDd|mW>YKE*HyIgkva{dj z1r=r+%6-eP?Zr+=O~^Yh%fpBFFwymaa3<;%aWU;lmo{_n?+ z|Gaqd=k@EqZ{PlX|Nh^XFaN%N{rBzLzn?$<{r>&`@8AFb|KBF42(RUE{-7{oo_EinmaLy9R2uzs3$;4_=(;8HS@E5 z(UZ6EIvfc;S9f695;y)M2P|)%az4XhdPioPkDzXmu!P~$9(0dPF%vlur}_-7WrTMRCJkKzB8nS_cDZf zE_e9&Zm(48Yk6$nN+M?{aJuyP!+<^;!TrP20h|H*Y zfq`?jr;B4q#=W;QIc=sy%OB@|zjxR5)!pj?v`(3o)rLe(c&B?W=jGF9LC1=mx2a93 zm25LmPJUyZd{U@a!~3DuDQ^#tiQA$*SL$dgpV{Ny|77dZUk3NiKR@^UyW#oIXa3Lm z{NL{Rod2Ky+aF*SKJ)vW-miB5=;-V3?z%9XNxxElU$)V#d~2_ih3kS_-()1Dq~@KK z@QSrvv-ssh;qd*^+DB&{6^RSxdT#Kq%JkDolXZ80*cf%1*)%1Hh};noD3~dlAYUbu z@I8MsZ2j3*#)wNoLME_3U zVu+FEHI*&sH(NJp-%0)JbLV)<%ewZQpR@A$-HMfyYqJK+V#t=>emCMwyNM* z_xWFD@-X6HNb@p1XP7ej00G zZ>pod|NP$m)lVL6itk~+c|>rM$evnjlX-SmOz+)W$t(Nzf?;h`HMbh8!R0ygybKH@ z56n-v*081O`jxIV8_T{nuYVn#(5|Bs_W5J-Q7-Gq$TiE<{M^~QJ-ko5`<<(P>eXJ! zxMD@ifh@Mdq#vQ@BbxpiuW~I)_fORHQL(h_KRfr#!H3C7>l8k_Ex(u$c3nkO}xHvJb+;eB;{&*2F%Z|7`3_Ew8K7818uFRCE*^%n&{IBgU zXA%|tcJic3X6AGM$A_$#C5t|kSuJDqz=-*0Xz=B3x5+av z?mV=)UgY>GHML`p3SO_ga+9GVH|LK%FMD$Q<{e5gA16GFdt4jQS-)(>eD(wG?uX^= zWcZK2x8D6uTHbYCc6Rl}mqEr>;=+wxeMWYblk}~u6iiE_Gc>%Tq$DI~CT$aH{y5*X z=bXEb{FkeZ{B9Cfu{CZD*U}zjXvNR#=j8ilY;a@ws#RIZo8{K6`)~UD<~_Ryvl;dU zR#gcwnBErh_f9S>jO=$i{q1XG6O*5%hgu z3--w+7!>C`dV20$g&Wg?ivkV>yVCF8J#ba@$Por1P8oZ?RjbpPe=Of^-8hlKY@6bg zKa(v*-t<^ae$4qlZQjQo|1FN|Ql9ScH9K+k@WUEqNzMhu4IX(5gx8;2aNrVSP@tU+ zhgG$)mA3h$AmJEC)qo<7hnH=k%V zlw8?zCFp&R*z^q^=chz5?KIHs7n)pZxZ;axl6>{tyfn$<9u4tzM+LvF*RtlAbI7CR z(!a~QbS%n`Z`@rsvuaAj15w#WlLDretTkW$=+n;EbB}o6eW+SlcXYjan!?I?>+&Uz zc`#&V<|qGrT4A2>`hZ}q$B#vJI~K72>E7MkHDA=^TiDin9;<75^s8S_uav5Ow=({s z_J5sC{s%X6G8C2W|D%?(2ZY)`o~suN|JPDuXT9u8V8GD;hcKgehq#?szoxj!ymQ+A|ES%Izbj8otT@Fx zqsv%`;nb-Q-#u~#mNR}TY3$`TC}WYjcG`B+yBqDIyW1bldA$CC@wzrOm-Y#tZ6~j~ z^KqY_qvp22>E0brW*ykkab?v`uTw__kDU_z&;G%RN6M#Rr|t(^wkdoEZRZNjhw)>UuAVmY?i5^5zWQ*=_I=Tl7FORm%Y1EV;m(#1NynHq-hcTN__KYp{s~j2 zCH0JF!W5FZzR5i^I+7MqnRMs;9pg`D`*b|{cm1j3zZL869U1TG6YuB|A9%r7EB?H~ zq>l^*(h(WjOJ_5#F95OzrQFw67_OAqxzlaO>)l6gAH9AgJmuAjxBq;5ZaT=w zOkq&FCRyd z!FkN;Un0UqR&X*pYbNNhZc)9thq>7Pb5!cZBj@T|Qg8deVq9>JWs0PMwq?|MKmJ(% zj;FWQonE@?PyHplGsr-;8c>QPlDJhv>f4bKm72!TT zQPxQ5M(k;W>Q>*YqN%Z`T0X8^-BEE;IZ|W2&N~^V`kXmijxRO!ocJhCq>h)@%xv{i z)(;E+*sE=PdtZrBQlmd7vxLw8ndZDV!P;CkM{Cb>3L1wkoyg)G?D}^z>l9NL7lY4L zTX+0;B)-8d_nvy*R6P#`@11j=e?GdNS7~i`|I>b-xXCh|Md!srZm2hH`uS(ID_hsx zyFppqR$lD-0&}-0+Dz3xUmwd*80)iTL1x1fKHt1|JLCQI7#UoOKDjN5-qP~sFpKBQ zn9g^vL$_?#kT5o^{kDILH`{~5+qT_Ul%TS>AmO-vdt~I=XV5#VB*`&fbV~e|IpSMY|uW_NDNugiDlAw}Z;h9-+Mj7$B zsqyvu6O7Xms&*uY_N3%2OABbpGK|kMiqEdyo)guZYnzj26jR`oU(mF(#5ArXaYA|W zqzc3EYJ<>vgP?kY;CjQ*dZUnr*=L&c16uQEwHXDrrF8cgc=s&6*uV7B1j~>K%PvpW zbDy&6%9K@Cr>(v^ea+PwYp>1hcbK{M+N^cgXRp6LXT$ZmovY?;yuQdSV#zeC_51H{ zJ@RnJiUYgD6Lz0`vghQJyY0;W|07qbOwI2O66 zSH0Ig_g`K+vikgX!)JS^pFgwHjJ;4&>__r}tJgd%BxL4UR$O9`-z*xixh>zk`OPox z;s;9w4=~F$I2S+IE7~y4h~eDX#`ARyw@xwcFl67S#;C!h@ILHgD=S0aD~3Jaxf0lK zeV_I8O#LkXtIbRn$NsBnPMq>4-PGp4oQHW_<#*$C?OlfJ7i+JbcSiG_rc9KN#ksT^ zJF)jNR~dR(rzNkJ*5*vt3R=ZfG_6YB)nyX1?~7A&U)-zPE7Nmr(YmT#`j>(mW_uZJ nyeSg9`wWxVh6DQ<_b~>fdKKK;ux~K~0|SGntDnm{r-UW|K-)ci diff --git a/streams/icons/flag_sj.png b/streams/icons/flag_sj.png deleted file mode 100644 index 0e315acdb7cb8a2bfafef040e20ab61ed3832bbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq}s$z$e6&!D2d-)eJu8 zIYMsp=5D%v==`&DH(y`Z(75a2@uIQuWmnhhsZ-z1ne%DKj?V`Ue7|_{_nS9=K7Rc7 z>(~GP|0N54PiJ6YU`+CMcM;~<9W#xAfg#h=#WBR=_}eSH`5F`iTrLKReE56g|Nn4l zq0K=J3l*)l-+dA?yYX_b(j^9l3*9_=k{kjGA0!XFPGj}4lT>-fW~9ZQ6T@INTR4Ju z=8l3)Uq8{BB*P6a_*myuZ+b45!xeF#pNo-+i#piHuB-GHao_`b2HUOk?hR6UJ0ij%+itnHG%6 zmW)Z(A|)=Oh3@VP{rr|jMXioz3`$`1Ph#{-WAw?^F3HK+l9#u&ynI)MLsK1teLaVJ zlWkR(e`k+p(?mw|>5)AP!&;Uuy|^rI)~Z!kHZW>zsaw2d%gz1!?;kjD|M205r%pXN zKXvU@M$v26US0Q&d-UkT4Oexc=ph#~+`*`Sj$~r;p!1efshF^Uv>$EI*#T z{Kdofmyz-B$4`Gheg4PD_>Y;FA|{J*2)e^1Z<2^0R$p8bE}!vCvQ{a?TS|Ar0!H*WmDY198LTmJ9b_5Z+u|3{Ae zKY8;1nKS>-o%?_3(*LVh|KGg%|Mu0Y7?42)TxE{-7{$KPHK4L!=@L00xh#^8FD{0uCQg0eam3t@|xiQ zqlD%}-XHh8*ZVUuB3@IsLz;R5qjpq?-|SzdwjRlzGe?Q=d9WAZZgyS>$|*P9kZCioDsX$zbO5T;ifME z{H6>B8*a~;8dPe&-0|Nttr>mdKI;Vst E0PE_fq5uE@ diff --git a/streams/icons/flag_sl.png b/streams/icons/flag_sl.png deleted file mode 100644 index 3d85d5b0f8473fed821d13cb31b92274cfa3867a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|`@6@Ck8!^ZN}a=LH6a zvkYe${{R0k=(uz_0|Nt7NswRg`|mw#T$eB~Ffb;0ySuRTXWR^AU|>-7ba4!^IGt>m zc7Q)Z!cDYCg*Ba1vp|w}#lG3xEFUJ@d7#KWV{an^LB{Ts5 Dj_NHQ diff --git a/streams/icons/flag_sm.png b/streams/icons/flag_sm.png deleted file mode 100644 index 5cc7f03d4d0bb395cc78cf7638289723f98a1c1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1908 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfq`Aq)5S3)k0Sl zvvW>AWzlOFFr6)Nv_N8pfYT(&@(pRho}MRVn0$(VtZQs+6uO-mf3~}Ug~4OKoyjb< zZ#mP~zg%9Uz`$Vf`RCW!%e}p#-UT%rO=7$&^Z!f4rxSuTKQ`EEOiVAoysz)X=hF-J z#ogF&@OIF`%JSye7|o>JJr#W5^=0;<(UBCtEH3o{JGoq?5)U(B}?WuJ=Qzb zu;x_%|5qP*z0GVkznl4@NmNDP8qc}6Yem;GE>M~JVzRMkUwPf)kJh{O_vSr38hz}o z>_6T9sq4?%Hw4`(+qyP;$?KdSZ_b=KbFEA9a)EY$(3;i{S8~r(a9(S+^9*q8J$T{c zu~(<2`(-IAEYZH2oZ4c#bhSjwC(exA?7t8Guyd_8;9Iuth!5L+;|g!F=(gjl^A9Uc z*PPn=$U{dYqZpm;6k;8u)_;`x8CgTf0CzW`uxS0En)96 zr0ru(Z#n;+;J2%HE?snPhRCgCo>KL^C+V6WKfRBu+yD3P*3fL@)Ufk^v;A7F z7#$_dla4GCwOz}|I)Qh_MFEB^XLh+BQVMz``|b9=SFB9WG*$VoO_D#buD$%N z_2zsXvuleg`L_K(lD9RGNy37mWbJP6ClW51&tLMfcQY>7|2&>4R8u=k%6p=xL)xK9 zbF{)Yr3#i-d2pTI$L`gyn*Q@OPwb+5^4tCQEUMfm>DBUo;kvpg3nd4sz)LqST(EZ0 zaMGTAO=fO_;DJM`-tI+elg)CCo@`k8>Q9NUu3cl^<7KQgan3e(>Pny=Z3B7k_$^e)ia%G7i4jGG9CNaZzlLe`R-o&d&SNDk^HU)?9&d$ecqY$Z_TpXkAM8z!)WopXaUbWiAzuS zt@-lu++*>*XIjrbIlumq^VgNZ4{xzLXa<~^Hrx7(sJe~5&GoOpEEkt_Tx8M9D}4Da zsa1(jIlQilfnmkO)T0bZu1gf#b{&1B?$%v4^`}^^^tsq`>lRG(G9Q*_>B9d;N`fhPhc;I^V68 zX(pRdV4^?s`Yo%E1-WnA)$@M*tuqkltf-A#ntFWSd*MxA7klpC`D~RDwuW4TlC0V_sQE&kaL(I z=RQ?7c(!!N9O>kx5?L$73)YI2tQTwAF4DR~xNDD4?_Qy)hXm)J;9qcpf9YwyWoP(S zpX1$liD&B-?rm4O_b@Q*y~%a(HrMg{oG0#coPES`{xSQF7i>3QvfX~gcK0>wy*I3n z-myIS!1DSt^Ov7YUw<-w`^EVEH{*}rjKBXf{`t%B?;pee{|x{C|KDGA;4cFM15-(m zU-0qc-!*P8VqjokO!9Vjark#L<^}@;!%Z?9hGYcddFOZek@z_#$gfxX)s zHh=n;zqHBCcgI5$!?-UoCbqu6mfHG8b2=*SWE7NSZ&hJn_Uq_m|BG0ue_)v zx^cB_@M9mF)>-pYPaL1|ZSx9WmTUbdPwmYVZd98vE3epLCWpuZ>vh#e3**NpKc8)r|9)%#2d(=bvGIT8rvFi!{wHqzpS10N%J%;mJO5|y z{GYw+f6ngzdAt8t9sFN==zqhJ|82+q_ni9QfBOH_v;U`_`#fBfnH6VLvidiMYH^Z(~w{J-$>|HW7TufO?!^X>mz@BZI@_y57i z|BpWYfBfnH%dh`mfBXOO$Nw+C{(t@T|JUFDzyJRK^Y8!PfB*me2Z3W7W6m-#Ffb;0 zySvzVrZ7BaU|=}p>Eak7A^G;;YrjJV3~U$tHC<;mb(}cjT^Q`R^RUR8&(;5rCkaGw zsI+a{?^DHRbN;t_R>76EhdnKOA3kX;<`j1}YH8*=X>L)W_A|I`>*bc2?lX3EnI)~O z*_X4W+af6Wm~#}TjIW#K_ny@TMaEC{*0S)N)JV+>YHp3r>-E}DczkVZOD|usqRyPm zG@-L+v~})GzTy>AH{r^2gX`+ ef3SJ)@BK$o>v)4P4?hC~1B0ilpUXO@geCyMrUan? diff --git a/streams/icons/flag_sr.png b/streams/icons/flag_sr.png deleted file mode 100644 index b843be8357ab69e1e5d78bdf4289cd8d1bc8e55f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 465 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfq}8j)5S3)qw(#`jb6--BCh9GXzG~s#!6jub7bLGtxr&P3CPL0q_RvnDC#F;Q|Z5h zr{o1TZrQML!$l>9X-x~7q}Csmic~agoclZ_kuUhoJDuwLbHCryd1DpzWY)$Dj47&8 z9KI$3voaJ+cA6UmMz3h?Qxx_KdLdyn@wZSHo73ZvwQYTh!sj-$swc{=d&_cQTZ>uZ z`41mCr%7708clg{*N-{HB<+H<&@F?>43g6>n29jl*c$ZXSXS=2i4!hpYe}UYSjO&k z!7p_?pZeas>L$OmwQI5i9Qp4am8;vcpw{G>BD38mi{7Xg#V=l*zp!Sz(5LXe*DGu_ zzNCk^pPRqJpP4zhuv2XBsh{Q(dT!gXP2<_}XFq#b!n*TU`qEdj+-KVsbX>N=XYMVD z53>T=-|b>8Zk-nRu{?ZDZw3DvrG@+@9b7A4+e=^h*dcA$qs5Y=&5Wbnlv5*x zv(lfl#*<4opG&`#%b<)aFPW<#o~t;Dt2CV3sG8ffi94f!J13pTvYRKVh9|j_*Jd)W z{cK)`xx69MdBZ01Ms@Q>ck;$J@;NQ$b6&#dvYgLzHJ|qiKK})L0rU7>SM$5A;dfid z@4k-TeLcU&T7Hjp{GO}%eU|e3E*5ZKC+M+G#A}17*J?4>Rbt*7#C=wZ`>c|1T_NeW zT+VrkLeLUrr-jPFi&PxvtAs4naG0YJHrF6}hDqF1Gn+}4HWRE5|Gp$-X zp{6^zzAv#!GrFbcK*!XmuBnj|R0HQKxi47kwRD-=N_qP=a@Ol*EjP)SZ{1+Ed$ale zZ6*gK^$tsDAC=HLCa!T}kM7z1S{Fo>E*@0BEFyp9sOq(&%GZTuu0Q;AQ%L%jkks9$ zUtXO!|Ms%*yHgk5T@iYJRrt#dzArcUzux5gev9YFg^NFK^ZdTU_2(|<|NsBXU4I^A zU|?V?3Gxd*bm-ERFW;IQ=KKc5ev-Gl%ZdOFvq=mLj59r5978;gFTD~P9qlN<_TYhE zm&nTm-Gi}Fcf1-8np(6xdUxSbz=Ddx=}r@#rWegFE}HZvao_LS`7>|c3~kX|>lv6Z z@6<##g|wP2OBp-jV>=m=woKx9z(19l*TJV~`$EQ!k9sZ)+)i^d8Iq>0x8-&C^URG! zAlXiU@eF_ABF2uHa%CnA7f(4I6gQdC_&L1q1yk0<0K?k9DMq^v-0?3I{Q5b4y4oUc z9l4NKUoY-cV^8qz=rG;Ov?$-5?Ss)3qpg+pS~`oeK24BLDCh6_d-3(+%AZZl88a-B zdJM~=)C-r&zE*2kwsNieF^OcK+nPH?QkDPrFy(Ikt$(cXU~I5%M%`SAyoJ@x#U1~* z207=%KHS^-T<+_KS7sCav3;~Cdi;(q!4^%J+9{<`Y@FYV;1_1Q;`OZVnXU{R<$ zca?klr+J$-lEaJaMI3d`p52kepuzc{rDh@vm#{svKto791JeX)RtJWnM|&C=L{uu6 z1RAC!Ffe_vy(G=yP?n=`;CJJqFANM!6J%H%7`&8g8W=>5*D*SYWY#&HlKybuj@sVd RO~*kQ*3;F`Wt~$(696@Ik5K>s diff --git a/streams/icons/flag_st.png b/streams/icons/flag_st.png deleted file mode 100644 index 7cfda1b09b0a55eb3c2144cc753068e06a813371..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 904 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq`*(fKP}k0|NuYTn0u) z2F5uIOiT<+a~N1=GqBELV4umr#lXPD#K6tXz{9{GEX*J(${-=ZASJ~hFTtRoz@Ws) zprXQHY|LP7&0uH8;OffYv6I0^gu%yy!EZBze>OuvHbY<*Ll_f7m@`8}1VdC5LsTk5 zOfo}kGDCbKLmCG|Mg~J>3`15lLrxS!ZX`oq9z#(mLvb-fc@RTg9Yb9MLw!9%Qxijf zKf^?4hDlBgQydtkIxx(h%`kTw!#pd7`Bn@IEEyJBFf6iQSZvO)q=sSna)wn#3>!8u zY~0AOnT283E{45(8TRdCIAFzakd@)+QHIl}8P1+%xOR=<`gMjIHyCcSGTghz@ZbT% zLpFv-0t}D&8J@5)JmF_}%Es`NkKyS}hG)DCFZmf>zh-#D#_*Pd;Vl=#+qVqwI2hh> zGQ4}o@SdIF13SYQo*#W zb48nC!nBSR*CulYG`DgFERJOSJfFcdat4EG^bCfr6*HN{>KU@WCNW)kn9CG#iQ$U8 zyz=gX6|65l#d_$;I*4y#;+w;0RiDgM^6ePQi!ZKRH;NfwJW0*HscNCdc%iU%uHAPT zP3C}{Ido&GQG_G*FkZ~g2GgE$PWa(D`CPR(VteNZvMruX))e|r-c zcb8u>zcg*z{#xxNjl90~TXo$21#SKNEtfOxUhCKUb&C!$<#=*&Z&*INX71bgzdWt1 zH;hHaHq1<|bG!BAt9@fkEBlj;YN3m2?yd1*J(Ib&#qwP}L$cS=zzAP1K~R?RboFyt I=akR{0Drw(8~^|S diff --git a/streams/icons/flag_sv.png b/streams/icons/flag_sv.png deleted file mode 100644 index 78e56c5db167fec169fbc7a0220c1a3e6e8c706a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2031 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 DDBYqM diff --git a/streams/icons/flag_sy.png b/streams/icons/flag_sy.png deleted file mode 100644 index 5bd73581a9feb542f0b64ae9e57d75491ba857bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 454 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq~&bfKP}k0|NuYOa|sz z%q+86*k-e_&td1B%gHsDOJKf$prD|{VhNSyDrzg#)K{wOtk$vFXk)j@&Si^>$2O0k zT|sgC}?3mAD_SSz&CIF2sjSab8|_RIDO@u`gq|MC|Ih4ZbLYVqKvs@4KW z6W-Vwl~*$|gmagu-+0Ezple_AyOWh+C1Y``yJUm*-UE8|H*Y zfq^yD)5S3)<6iQH?%S421P`xZce6Ek)fmX%Q`Mlv?=xo(Nbvt`XX)Omgafu4Cbp-0 zC`VN$Z0qot+~>Et^Q2Vz^U$&~?$p%lyqx?cD^?$mjLKTQ%E-{r(8y?A+}>aI5`TVv ze*Wv@)J-x82ATWI(kFmMPBLboZB~^ZWAmv&G~#|r>nNM_W#Fh=hwx@KYnNTL2kvB>*B(K zjBVR{w)Oiv?2kQj$!GHsjptmp%Z(x! zX=!Y`=1rU!d3&YFS);plX`S9Ta_s-dxjxPaE8Dkg*DnA0c7Km^`>l)F>Ey;XT{rv3 zkA|ZMmTlM&nw0dUB4MS>^;tp7OrO5Us5IiKD}45xn_C+%_WGXBwVj4d)te*AmuzO*c_JfRZTb9e zRc0*#0Re_t)M3}`bfx|B|5*^yu8{Qo478icmsJwc4PTy0PZQ>nbEu7VDCO2I4%eXQ$IEwB| z9Nicte3*H4WrgkB(~o4j8lNU?^PCfVW>W-j_!*Uy^~>E2IN#pgEpEwq_1ZO|nJso0-qzyejNx6I@cInHeZA)$I}QC(w+VjcN-5be-Kn-oXrh~7;JK*|@l~_c zAFXct`J?9S83_)?!orWU&GY}Mv#iUxzc0#*tG~3fYG32Dl^6Y<9=O&ux$=?Ll2<%? zCFUwDlgODTktngN$A3b?%2_!{OqpH}7!T;Yd;k9bo14Zl>+B73Z%G9PHm$w8w5Dkx zUu&S6;bqpNovTiCtdU%m&}+HIAv9EU#x?WYTVI%Cv=hyqnT3a~Q`}{^eU3lF*{@eJ z{mzRD7hk)6{1sz$_3zl-Wq<$v7Qg(p|NPwO+mdKI;Vst E0BJ_E!T|H*Y zfq}!%)5S3)--7W=x=1WZ*I#?#SKUvrmpu;c7;>w|-;o`u-U#Y`V>EWbMlj#4$$gn{vV#1co zXX+K=i}wGXdw=KmIo0oYm!oQ_Edx7$Ty>yt{=MDeQP-lQHfd=utp8Ckk#SzA*_PeA!X6fsK6|G8^y!NL6Z7wH zZxsIA%UDu+K5de=)!x0UQ&U&IdUfW<4^KJ%U8$RoZ_ne6Okwamxp=w%f?uw^dUNLOd-rN@@5L`(%!y5T z{d3l@^o$o%i+3-xR#*__*0yZv(eF2}bRU&sZa%Q)CqvCQ$&WV|R~0bM_;=+<%8nfp zZ@1E_n(`4c0&I-hK8+S2~tf4j~^|F zy#DiZt?yfvpr6v!ar^(>xwP(xkdV8rjZuQC)7qv*9n04GPMp-Fx>IBOvFqmPY!0QR z)*{}?$ua-3&OT*I>0Ol6J4tBI$$hbl*T3KRM0?|l*4|$Gska(u*&RzTd3%R5?2>uz zt6l#E+T^-RE2DK&^45rfS=Q>$Gpjz2=J z^K*LQPn|v)c=gIJk0mcw{9d){e@(h6R|Uh#l)eQL&5@B?+1NxpJ#XX$c)eb`R$ot% z!Dh$qYL40ut2b@3GBz$r4hZ+!yqP=hLLGyb?24Z)2bmQac}!&I))`64u;fM6H1zaj zeW~2gFF55B%c0YMoH`!gO#NU}p0c~#ecSf^B5At6)aN@qUKYE1me;DYXU^$+O39u$ zv*zk$=KRu{|Fv~usb^>X|8vZC{10(Wc=9=!VLlfWIh_=<(RJw0_R*5uUY z=iYgtULp1-O3Lo#uxUfU25qVL@7e_S?Qq>7RR857>yoR| znn%yMEB~~Z@L|&RnyTB|yqlK4F)6*BTvW6DB&W7_{EdjSwsG3wyZ&E2^*sCX;}!dU z+&FyYi)^KA(1h03^-Gt^YsFrjY|Ow`{G?6jdY|~?V_i$)?nbF*m6tDj;==ijwUSjg zXxStU?)U6Ps&RLZ`Z7oSviY0F$;f7OrA^8F`;j%Wo*N|X8&W%l&`i+~qtBwlgR7 z>z}+P__1Ds^#~-DORle&qogQ8*&obxBNc|VP`$8AQWiv4N;Bu?EwXN@&=B9NPTYgk- z-u%^_dqZgZ6zjf~MeiTB<$3msCI|Cni2d>AbW1QO&SJS$Ctz6^rN$sCYQ99<%j7lx z{fX@p8qC9Gp59vOdso#|UM@^(mu{%&q6t+2wqGaw3g~0`@IiVzdzZ{DJz<6ys>;86 zU%%sQvT?4O+rH$Psr1u{b3}8mFFn0ys@5No$o-EVOtO!eYhGY6{VBV~?(YwJ85~!K z+g*)~UXV9qlcV^jH7~+nq{gORj4n@+52~x%$#FEL?dwjBAr--_&r4hwt7d<0*&nWB%<$rZ zqR{%f{tG)gW_vxT?zX6%>9Y81_}4_P#7Di&Mxk-L|99@4EnT@TxRYP!gX-dSESi&D z-`<|TELU!AerYJbOup=L_G`%=Zhht@EDZc%Uu^V40xVSB7!+>k7Tnfbs1~(MD&oj1 zN1lWrj%$XyY8qIQCqKFRV!JR;{zTS@90rHDIP*%La)ZL+rg>?1;uFLYCv&_`UcM~A z=-`|q_n&^4weR!y^R?d(UMo6z{X5_Khw^KxZyewe{hbo~_;s7wN4Dt6rM1Q(?c9Yn zzwUV}T7I^g8LgMNQP0kjYx@apUCJg~98zA2dNYK?*Gc~SE>X_iPNJjUN{8{Ap9aNYuOGyM5gM cyD$I8illK**6murz`(%Z>FVdQ&MBb@0JkC-DF6Tf diff --git a/streams/icons/flag_td.png b/streams/icons/flag_td.png deleted file mode 100644 index 65f850a0a9a1ba38cfca8ccd137a2f5173ba58ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|EwVWW>#?v0kbydwm{a!TyCO0S`wiKs}9_dU|?0zXy{Q7T*1J=z~JfX=d#Wzp$Pz> CxGK^B diff --git a/streams/icons/flag_tf.png b/streams/icons/flag_tf.png deleted file mode 100644 index 5d6af4d1eb66aade9a1e67c36202cfb643bc9f11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|`@6@Ck8cP^(|H{mN$v zgWsEW{r~@e)*=0q3=9m6N#5=*Ed3cb0~r_?6g^!WLoEE06B?M^#4QYhnwVSutY`{k kUCiYs+M^|Lkc**C?!-m8Gaq#s7#J8lUHx3vIVCg!0L$Mdg#Z8m diff --git a/streams/icons/flag_tg.png b/streams/icons/flag_tg.png deleted file mode 100644 index 7ff001cd8b762d23d83659c0698749c50d92fd90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq`LTfKQ04U>k#2J450! zhV&H-UE3HIsxd59X4s*_aM*z13NynE28J7qj5nB=ZgOzk;^n=?&wpE3`1Tft+j|*q zUtzebpm0x9^PZO0eQoXgy1Mrb4IdaAKQJ?UXk+uphT)Ne!y`w>CxL-aLqeX##l2~0 zc+=AIrmgK=U*Efl6W>jq{9(?VkIR;QTD|)F>C->Xo%?a|;*Tp=e%`$K^VY3jcklkX zfB*O6$G@LG{qyeK->+Z){rvg=F~k4=|IJq{n$Ez$z?kIi?qcP~dE^%Z1H)EN7sn8f z<8QAV7doUM;THIYORD;PU~=bPm1oue*^4LksLftrA8C0<)ZnmW0;BfPDc&cOZI;>m zR^nCRJ0sHg&Q&mCk@!5ZOP`b)b|eYT>$j~GOyH1N>G1r4MIX2QZZC_*jof92O*_L4 z{xZ+G^~C%J1B2TWcM)@j23NLU2M$*~id)8{eZ$nwBH4-MNZmQh=TpCa+Z%G`)Ncki zZ3&;R{Yx6}H&*%dF0*;2xvcR&gHe~^T)oaX7xCB6W?0BCV_;xl@O1TaS?83{1OQN- B$2}%WVsSdzK#f7dt%FINsX=iH wgM=Cv3nxQcpuwUBAx49sPe(H>IoTLa9OK-up7-=B1_lNOPgg&ebxsLQ0Eeq7A^-pY diff --git a/streams/icons/flag_tj.png b/streams/icons/flag_tj.png deleted file mode 100644 index 38d2cd3281d050f2d739b9847a1af1f826085e80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 690 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfq^OA)5S3)qw(zx|Bk7lGRHoipL#JsVye`Xe-mH08840$@y(qSwPi!8LYMYp-wUTg z1Ff3_vaTAni0P_uM{U)X5y}dCCcorNq=lARa&h6MpO+si>GfEe_Y~{tGrun{KVMn@ z{m{tJcJ~1N|h>=#y_<^ zKb040?z}O3u1}dt^2x7VlS-=-=B=-s5&k=-py}$HmCGa6b~>kjP(2;6l>OYt%SDg3 z|C}cOJ4AN%<;zF)A8vi}GsR@)uJRf~N#Ad3`s(lRhkte6q*tjvQ-6xQRvpvqihftQ zz2!BH+A=B3`|pN-l{tRHWo2WdUdri&zAms_kZy>M@=4s zv*JC)um4|#0EZh%UvmJ|B8pd_%?IaV~+V>*Vh`bAGIy$GPw5pr?GMl zqj|-oK)-MQKJ8C7Uwx2CxTIpC%RVpR`RUd>PQ59DKn%mC#J)K>ChJoRXZ|FHLu5&y* z=lS@~^YdR27QP@NazRw|f|T?{DXELn(idGkFUiPUl9j!rq;yGH`I46QrQnE5XYXIS z^yIRR?qv(B%b`(M)YPtMXk5|Mykc%~B`xQwp59e`{i`Wi*UinZTUgw%vbteyeZ$uF zmW#_RSJzt}9=CmbZeM$H`}WJbp`rJSN*<)9KB%gB(9!d-yZ=#h>!Y6jN4*msO_=g% z-r~ni&5tKec|3pd+qYldty=YN!^U^J_Pl%d^~0u3AGU4#@ZsCX?b|=@-u?08_fLEG zem->Q^Wnpvj~@MU{P>qIKfazh^Yz@huU~(DyKv###f#rAUHbn0*N?k*fBg9U^XH%6 zFJJ!o^Y`zczkmP!`}gnP|9}7f|NpOS@tB2yfq^l}+udcYLee2w1_s6zo-U3d9>&R(X5StwG_03k>RW>|4E|P&axXqZd8W!Z%y4+<_+Unf%;+!6XJ&*C^rZo|WC#^t`{foe(ftz{vW9h5h-0E&&sT84L^d zGKy3)3Wd~d)xLJ_?c9ArA|0!*t&6>MJN&VGib7Mvf}el32A@v4U0UP7_9MeL&U&-b zuA^QPPJ}41Tt3I{?NL+F^WgY}cRNIu$!cmoHfg#kezzerJ3ZXBEQ)(kx|-wXquJ`B z>f07-h#8ceHog47Ns#&0J=Sfq%GRGVeVKPLU9~!T=0Sxgo0mgY7=!Dt)~PeE?38HZ zPFNUVzt}MKR;Z0p?9$F~eYHltL$VTYe41LP@ku!S+hyjGJ^j4DpH`3qw^JFL+#^{9 zVKFW5zzLbVZoCdmX%H|dHtJ~#G}zN%(fZ4>N#l}U>O;wQDOygBff*vga~8RD3P*f4 ra?<$JJco1nZVgqo4UQiZm>A?ub~gs>-N??sz`)??>gTe~DWM4fnX%nk diff --git a/streams/icons/flag_tl.png b/streams/icons/flag_tl.png deleted file mode 100644 index edeac1cc9e3596f3a2acf0c8a895938a96d63900..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 912 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq}6wz$e6&fq{XMk&%gs ziJ6(1ot>S7je(P$fs2cahm(<)i;pb$-uzC(9qD>*w|E)+0@k3OpDpl z($c}f!PV8(!^6YV)6>`2Hy|J&(2gb2l_koJB`PW^&Vn`0lQqGDH6tSmCnrBY zzp${dp`oFqI&C$vIr7=5n1nb?P(&|7k}4({s7b%;P$%$$w6V@7w~eON+TKFXpzkdDtO)u}8?c8s7 zaKC-~_T3bocT;)Z?cjMojpzLw-uH8PKg{L*u#4xzhYufj^L+gH@ynMl-@bkOae(K~ zpFe;9{{8pw-~a#r*Q(SU0|k1Lx4TP~#nsj<1_s8no-U3d9>XhaIt9^lbh1EiGzWxA@MA-|_lu?K^H>+Xdy>cP}z&L{FN-IKfJ2 znhYbuzvx0I#sw+NwjO>AmC_y)7&cku3sy~Wdc+{IUa4i?Ip;$Sn|NF1S#mB2KQ3y2 zkRf1?kmv<&_Jd3tb3X_yh_@A-$}yjV>DA>8_DAa#_VHG;NUS|)?G#}zcxi{k!W`k7 zsvegvo#Mz`TR_@ z8h`9#!(8cioGHx;<J!d;=56$;@+&(;=mWgN@)JoBSe+^mS}!(THaTid!vbC|f)U)p4!i}PdD zY(4gP_H)iSjaxs$b}BCD&7UjH82VdgC!;{c)06)hBRALVlv{D<@tM*FD?9&l3^R@Y zSn_H-{`^ctKz6=;Kl4TNeh)u}_v;emn3>iu+R3!z_|eZA4`RzEoObxWZS(%$^>?DA WGj!AMPhwzTVDNPHb6Mw<&;$TNSb0qV diff --git a/streams/icons/flag_tm.png b/streams/icons/flag_tm.png deleted file mode 100644 index b56059f2dc6b349b62b1d491be2998ecc049cd2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1998 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 B!+-z) diff --git a/streams/icons/flag_tt.png b/streams/icons/flag_tt.png deleted file mode 100644 index f2d09db4b63bfb3f030fe1f233b2070fa4925140..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1412 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 diff --git a/streams/icons/flag_tw.png b/streams/icons/flag_tw.png deleted file mode 100644 index 0ce1cb263cceda1766d90f152c11eb37e1dd66e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 811 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq`*zfKP}kTX+|TzM#W=!MJ|GxCugz3q+h2in}h7a9b?p zu~;g3s&vv+S+AwCsncZBr^=;FllNJwkU34sZ<$i?Vx^23N?FrY!1*mb7m3(R8ISyV2xO59*owaBV! zv0ch0$NHsC8Jk@)x430*bnjf5Sat0Bn&UUt?!C9^;Dc>v@9tJr+k5H3zRM2|o_%)u&hs;OpP#$_ z`qIN!m+!p0dhgxU$FHy7e}7L=;QrH34_f4=|v{o~i4Uw{7o{`2?G-+zBW=>Ok;|Ni~^|NsC0C!07IF)%PNCV9KN zOsL@M<6&T6RP%Ik4DmRgoS?$=B=jL0&lU3q*DfaJAB{II$)8d<-r(TwcC1Cn&24Xr z5pThZZ)q#%FG#y6;I)h~NVw?flcz_8f6qN((4czac*j*2t6eKBJWmH)yQ1$mBSc)| zy6=Wb)W4`a|cNtc` z;!G=>knttx<(opqs|?E?FckaA9{q8tOC&aw)pxswq0yvG3Hhr!Z1m$JrnAqiJh<%a z%#Afovx-ugX0rWYxSa1Hsk}IVhn2O9QA4{pAV}>LPsu{BRg9q`O@YjAyb`7fR~iDD d+om!yWH4s$+qq(@CIbTlgQu&X%Q~loCIIoElD7Z= diff --git a/streams/icons/flag_tz.png b/streams/icons/flag_tz.png deleted file mode 100644 index 6ee1b5ae23496e7984312930372e5337dc47ef71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 707 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq_vlz$e6&fq{WxCIiFF z|BN&LG0kFNp2fhz!obSPz|PLV!NI`E$-u?MAi4ON>{15#r4JOA-B(+|puUnpV+(?IQoL&*b9c^FBwj}WH@<};nXRH)2A8EoMAY7mf_qvh6@)ME?#7~a)sgQRfgNQ z8SdO+c=to_<4?X%KR7@A;QI8F`_oUJPrrD-{$}|4o9o*zhHt+azW-+U{)gem4~CyV z8Gij@`2CyV&mV@re;NM&XZZjB{{hW=<_ruBj7i?^E>X<8mo8#pU`+6IaSZV|zV!U{ zup)O3d-|khv-@8Wd{eLB=0Deyij+DIipZl3jZumWCTDryVHrxK> z%6lSvH~gN=$gtgE!?|yQtbA}n*zR!V{;iKe2YS;#Gk>e- Vk-X5h&j6GfJzf1=);T3K0RXCuK12Wj diff --git a/streams/icons/flag_ua.png b/streams/icons/flag_ua.png deleted file mode 100644 index 16925951965cd29cf726d81e80cf55492a5615f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}}W?*2rqdKLBfq{WDz$e62t>^#$|J?uo z|Ccpom1kgJU`+CMcVSB7u1R5FU=a0maSYKopPV4U+AP$vs4=k7QIUaRv2=Z-Z*+hU Q0|Nttr>mdKI;Vst0LT>_-2eap diff --git a/streams/icons/flag_ug.png b/streams/icons/flag_ug.png deleted file mode 100644 index 3e0f89f95efb6ec2ed70eb563b75a1cbe2120d1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 712 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq}6kz$e6&fq{XGi;J6^ zo0pfDkB?74KtNDPP+neMQAu7|NkK(LMO9T*O+!snN7L5H*2&Sy+1c5}*~Qh>)zib% zH^?_IATT&6I5adgJT5#UG9o%5IyNyjE-o&~(!$Z@ z^)ue)uCr~+w%z-7?>?}5-=2L3)~-6@q9r?zRHK6(1gsWWFzpE-N_?71`N z&R3;hICtTav-0J1|0{u7SAuk|qdh_bd+t+X3y?OWL&6_Xp-hF-h_Uro( zzkdAs^Xt#QKmYzeXZZj3|NsC0GxG$B85kHClf2zss{Jo*{lmb($mHqb7~*mK?N#?+ zCPxw1hh-v$&6bNA1dGpgbtU=D*gRvi@uEe~uWv3mJLT@16?U(~?|-sWEU{8NlHZl7 zVB3(rTZ#SRi@GDs-PM}zSC{mBch-Sd+$GOS_8-rRY3nO9>P8;@{F1vteTl!|&{h9XK2t%r af#r-{cishG(?bjl3=E#GelF{r5}E+mSzPJ> diff --git a/streams/icons/flag_us.png b/streams/icons/flag_us.png deleted file mode 100644 index 22391c3aff72612a9c5a162398302d2eac4798c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1384 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq}^+z$e7@&B;^u<}JF` z+57wRm-3Rn6Y;4% zww_atfpe~bOP--?o{?L=v3tIWdx5D(p}AL)g?F)~Pl=UpskL9JjenVKK$%@YxqV=T zLr{fdaHUg7l~ZVyb7-|oShZV3t$SpxM`WF6RJ~Vpy?0E5Pi&)aT$6u7b6`?SP*Q7f za$87BTWD%~SXxJTdS^sNXJlqqR91I%c6Us6Pi#(aTyAe%USE8Ee?oqLQsIQ;qKPTR zlTu42rIk!hFPoB4J~gXiT6X31oT}-$)id(U1M+HS=GV+Dte;)fFsHb2ZdvoZiq-{{ ztqZE!7S?nwuI*Y<*R`a+duc<@(#GCp&3((8`&YD1T-i2hRoB!t-P6|gOkdYOYr}-u z8z;`*IBCwNsq?o?Td;M;qV2Pm?3lZ3*SzJs7OdQ}aMj*LtM@Hlvv0}T{Y%&GU%vj} z%1wt?Z$7ei>(LF{k8j*@V&l#en|7VtvisDwy=QjpKfCAfg}t^edkbK&Z}i&yVox_1A{jfdB6J-Tt{$*p@& zZ{K@%_rddf51&7H{POX$*H50mdHVeAi&yVnzW(s~?ZTkCpT2zi`t8TJ z?>~S3{Qc|qpTB?q{r~^}XQ0x11_lPck|4j}1BXvux_AG<;}>t<>j-bW`hR^ex0L*|lAoNfK3!_C zWnNUayvpNqzK+M<&c19kE%(&P9X}T~X)m9y#>%Vw`}PT*{Wl!{99XD#=)y!*35!e2 zzxAf5vBuSzKiGL*si$u8vBmb+l0Q7Z#>KL;spj4qzn?a)KP@LNs@dijXm@u(gx>_~ zZ})6At*^c1_v`1$R+ruTVx1&@?&Cjff9Gje=2Fj(KR8U=+*fW)3=c@YJ1@%g-3@E^ z-lf&IPA_$cy?@v;OFTbY>0M2hUgE(BZmVOrv?Np(b?R?w3HN`#;eCv8*`IrTXX{JD z6;@;iy$QO!>W1q-AXrc(g~{uL8T5A1Avm+PHq2;I_H1 zj!z4AewuV=EB`k6mg9Vf+ZJ!$kd|atb#LFkISMRi_c~38Rpz)jL1D*x`>(4cm;NlD zVs90!Q2ggj?-BR9y{#V({j{_B{oR3ezQol?Q-`Fd3Z3^BdOX@z8rkWZ{oL~uXHhl( z8Rgxd1FT=Jb+_&`lZ*C=u-_=tEUbOHwBUikn_BL&ef-gO{RQV!Y=7<3+o5C1s?yn( z=cyE@b&}0?(ia_VmB6{8lO{}wfBwtdK2!DcsTB5)|K9K7JU=J4PrdHd`X_Qn%<@#r z{!c!_w*7e0Uu&U_^JLFHDr&kZz0GW5?B5dOm-p`Gx_BSYSGZ%fkD>dR_^xN4E-h*4 zE#HMGLb zrpB-|t+EVM6>m&%n;OGncy7%kZ^dJop+%Z&K7Y~L$@1)hd@JKt(d#-A6B!s77(8A5 KT-G@yGywo-y2MZb diff --git a/streams/icons/flag_uy.png b/streams/icons/flag_uy.png deleted file mode 100644 index 4d1a8fa0ab49218e6d6707f1014f5b882b85923d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1155 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfq})s)5S3)mSBFDowxU3M6&)BM~wup_(>GIvI{T%_0nHRODWo1WyZ0@*l z<4ups3eh!Jx-PYc)R;^&aWfE$UQuTt5}f_IJ#Uu#|>(|mWGe3$mz_WQZoGu7MA zrI}7M`8IoYtkLxU?Z)Lh+JBz4Ek184yd&(H@&o26CJuaYf3>D>{SXEa3UcIom|Jf%|+v8Qk zycOF$UhNP2`{DGB-|kl3iz^v^Z0rww7IIL{sato0)sN;yY<8QhUI!`3d`4PO zO9R>3!-h*O<>Kz#m5cc5I?*KlN&3$lYLyQ{uZyhwvUc$%mmI|xky}42&aipn(3Wzq zSSRxOt!35MUS8TMEvv)hp!Yn$^3kmen`5)1@2Be67(=THe>UL3{Kg_>r}IYeIK04R@mj|d&m0u zOWVNW&SfE)pV(H(nt8Nmd#X-kKhmju=Rla^uDEyc+-%O3yey36*LxY}EmSHco|nDoLvguinynvgQ@veoJ*|Dt?v zy|9u<-*>Rn%2-tG&&o-fs(YGGJZSY+tSmBZRbO%I!7iSTkky@16K+1d>5*|EsWd2F zpiBOVw$gQjErHy}z1bC}zq_ZRUbbUfN2^)8K}hbEMfxj*O{QZnMkvNZ&b6 z-SnZ$$|*vdoxAFn`N+*#`J3J6W3F?i!O2vS`^tS+s&T) zyZx6`DL(T=!uj=?<@+uZ>&cUctLh2$SydEUzH zEd8W?+tb;e%D$7{2d&%5Qw22WQ%mvv4FO#rU@Cl3Gs diff --git a/streams/icons/flag_uz.png b/streams/icons/flag_uz.png deleted file mode 100644 index 7b76b01f76fe0c99871ea72cfd1c6c17987b7180..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 694 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfq~I3z$e6&VI@OO62p`= zSEjDLGIj0MY3r^|Uw3u-`l~b6Uz@q%+N?V3SsSm--gJG=rt5Pz-z=5M(% zf9uT!TW>Dhc5~78TZ^~fTC(%@()`?IyKb-8eP`vKJFE8IU93?mzeR z;Q42V&ObYJ;rZbU&yQYuaqRMo6IWiIxcc(s)t4u)y*hR6)#>Z6&fIu??$(?0x8Gd6 z^Y+r+w^#1JyL#{4)%)+SJ$Qfp;rknpKHPlx;nt%Mw;zAJ{p91Fr=RXU{dDiyr~A)8 zKY0G>!HdriUwnS@>dVvDU!T4C`r_TUm+!v4eE@=P))@0Q;akh}l={id({RrWISG8^ml9=+?5RB95rSo{9H&EFXguPQZy z?6^$CTwZ^X`Z<|DMaN>M!nAZ&wHqp@yrxDdzWSI}#o=%zRx#G$gUge(t7^Y1^(@U| zD!zL0!^=4LnXn_{kmju$5rQ)m{7v+)HadU#@Hdp3;mrDGRu&hl1BMr8 z{@(Dv=wg1#`P~MgUcb`3{5EVz=HlqlUUYk77{jlxCL5}lR8G&GvBPk~UR5K;KipHd zSLN!mojuODj!{NNM#@55$m75+)x^n@3?{j7PI2Iz<#s`hGkao-rbw6CL*aFkj@>bI T`xMB)z`)??>gTe~DWM4f8=ajA diff --git a/streams/icons/flag_va.png b/streams/icons/flag_va.png deleted file mode 100644 index cf50340cb61b6b24ce6e098902a3b6f9b8db7deb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1386 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfq_-t)5S3)|H1ylNg%Ol-<;WeRx{r9>Z{G}@ChqXFnVUj-Q2e| zr^#Yt$2Kk5&3SM0a^sgoUh=-R%=h+|$Zd1(O^Ta#+jF{!y5-58@kQq<&u#q|Rrtm? zJ}=XN|KW!ZbJU-FudLgiKd(0WX087B&y$YtvvQDKz!$*2g82&LH-?7f&s%vDPSjhP z1s`Ux`Fg?RY!vGQi*uWF90hm|uP|gdzOf{>T*iI!bDhb~90$F08E0s8OPSSx3nZXC|EXjQUJ6Q=e8S{%j-#aUek>LOX{|vA7fiG8YkY&1icH(}oGjF|Io3>l; zQ|jyuGb)x+-1tk8<(b>!ivbyW29^@D|Hp|$MhMQh^J-`CL+1Bv_bY1i{?ESA&Tht5 z*Lb+?v3Y=&+}uNT6_Y!5d!*QI>s`gb&|6kmSeTanz#>jV z9m;rn}y~w_#coYDY9fJm}@_= zXus~n<0^{D|I8QMIQ6H+YkuI87jZ9-6g-)v(z%GE?D*rt56mvDal4+`{+jjti1le^ z=G&KMJy*|a;2un)Voz-QyFt^w>>uJja%@3 z!ueS{F8NM6VDU(}H|s(8zHjqwt?yrJ>+NyqI?v|r)%xMqty^#2=xFfy2FvVzVo^1f zQEMvKw;$^qYE*=HOP(oguME+X>r6cB^O5b^x8fa3S-)4Xt&j0M_FQS8xYvr|vcQo;zmr~C?O=+!y)7t#ediy?tfSK9JD1I#Jvs0Duf5eP zFT8p2B13KR&+W{I(q7ze2&^?!FJA2Q&o=gU&Bx~_pDdj7-h0NGEn8CB+ZLp@R8_Ir z&J+LcaO`)DoyRXN<_)Rl)2%aJy!kBJx@Z%3`>B~?Guor03)hRQO;q=n`}S><#lITq zCniUP{vGlvWzgYPU98UgPntPbisL-bS9|Un!T4Wul7&B%{rdED%4t^NS%;RZ{hRUf z)gdb@FKOw3;)QxYkLSHBOaJI~dd2zYwI;=3T5=ax9KNx2yOFkh`(b5;-UnAjR5sq; z`**ve=a!jtBq% diff --git a/streams/icons/flag_vc.png b/streams/icons/flag_vc.png deleted file mode 100644 index 57f31f0422e19af425efa3cf4b844ed642aff2e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 693 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 My85}Sb4q9e0Q^|@ZU6uP diff --git a/streams/icons/flag_vu.png b/streams/icons/flag_vu.png deleted file mode 100644 index 9e2dce97c8bb5b88e4542246176d543002a3fc72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1623 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idW?*2LHnm5Wfr05)fKQ04PMJE>pD>wR8rCNem3-3=C@-81(D(O}kAkr&;b{U{KFcPiA0P$-p2VB=60@ zAYvwB)@L?_fx)oB&}xR2sJW;{wuS`*LnQ-)Vz{F10^21F4Dk#MyBQd47TCBmFdSoG z;8*A0!N72Yfx&K>orIl)5(9%71B1mBi^E_M+eNng8vLgi80=Tt3+fA=WMEKdU@&E1 zIK#leDb8uX)Sg?G+hL`HCPmOabBz{0@bu*!j%gPE0wm6w6RewF<>1_nkZMu_-11~6b`U}RumWMp7s zU|?cmU}9lnVr61xW?*4qU}a@sV_;xoV_;`z;NW23SVvv?*kdtGOmuFB=U{F$GP*w){ zQC*!uLxVw+fk9J~K}(B4Tbn^ghe1z|L0_N2z<|Nfkip1^!PJz&%#6Xpg2Bp)!P=U^ z#)iSxmch=B!QLL^DMv>J7Z(OsR|Zc{25)Z$Utb1)e};enhTvd^kPwE@P=>HDhUjR9 zm>7n*IEMImhJ*x$v^0kFbcUQ9hTL3+{CtLj0*2C3hVpWT>S~6X8ix9MhK2@)mKKJ# zHinK4hR#lgt}ccN6Bs5=WSBmkVdhMR`STeTEMQo;kYUjxh9yfFmM&#jv4UaMDu(sz z88&Zb*t(Tr+ct(BI~aEDV%WW#Vb30hy?Yt{*6$3=9`8FkHOIaP=y~wQCGFZ!+Av#c=yJ!<{<}ckeRXyT|bGA;Y6b z3{RdgJblXW>>0z07Yr|7GQ4`l@a7G}+qVqw-!pvp!0_o4!$h*;fBg9IrAXq_0aM%oW-TeC3@=K;R&iHhXhV} z98!?XR&r_CGGWUE&Ck0F4E=nMTPE9l-dlD5^PK0!ALrdasy#*e%dHhG(>JD`?O`f9 zv}V>;b2f%~Rp)h#Tjc|oE7M(Kvx}JHv>5W4bhUdQv2-+DZakE6{9$M%V^M$zl9Wf3eIY%mixTg=P^r1(>{@y@{SSM>-tTXIP6*w#_{79+w{jDS33WaFK^n&Toh9xQA8g*RwKMU+yfw8h zE_&aSy?PfZ94d3tZf;PK%(bk!GgrpW)4N}(vi<2X-zwpbjytA(DuG9>g=6=v`)!yS zzp!sg$5%B0!Jp5CEcaGC^-`(+b6w-#L`vW#`x^Lrn}tK)1GeWT-ww*2J$kkNef)YYoro0;E7zcGdlt}c1!Q?D9qS8nY5H26=MfoMl*{GBUPBzaEwRf*YGA7OlX@XC7eDMdv5#2wiz5__Lw5|hiCiDTMdSC4l4iIRDMNnkvO=6VLyw4 zzK_Wk!(^KST`!y-yu0PPRn1sWL52AQ*TQ?bl8+g$9cP>+@o`O7u_S+j_(x_B&P8gr zl8+hrmN2+>r6#X3KE}M`7*oa0sjv8wZ5p=Pu%DQ&FB#MPQH4c~vEqg4`bQPV*fZ)s zTWv|1!`W~tcTvKr9gSO@L-rd#_Aii(JUB;^dCL3KJ+I7t*mkbVcKjgsWYxdz-GwZ7LUi~>N8uP089m?i)SiQ)7epN+IKVIp{ z?gcxUc&@E7-X`?aUq;+2;ai1nXv6N9X08vJ9`&qlUoBl4BN`dmBoZ1J*(5%cA7Gb% XdGd?6M6ePA0|SGntDnm{r-UW|*gBWX diff --git a/streams/icons/flag_ye.png b/streams/icons/flag_ye.png deleted file mode 100644 index 0d5f1c89b2b7e43056edeed71add059c30b3954b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@%}|W?*0lPEFKdU|`@6@Ck8cU|?`^a{9=| z@YT)f|NsBV6TZA)U|?WO@^*J&>Cd|H*Y zfq`|ar;B4q#=X0`ys8O~=i* zr!%rgzUQP}hELD$j77)z1Hu%PZ?cq3I9U>{7OSa{t+{?%z^y*_#K}`Hty_Qlx6Qro z?N9D;zxZIWR1cwbSo^vF$m3d%>5?%!LVMWv`eYELmZ9CT7FcnG$WCT?%K;KHRWM>no$m*8iuX zga1_&I9y_7yLR>HLci(17$zk%UuU~k;nQ;PegAd#d|!9>-r5zK917bSO?tK!zGjPQQIwd|e7rxoh($oy zX~w%C-?t`DN)~Qg_~LnaOdyl=)Gdu|XU|?XPPqe|%u)(4!k8=N^Bw=w*RdHv3M%|sTimN&mPeMm@n!@tAt zd@|#MDf>7lwCOiYG@UQdv|;8Jx!Bx!%v*Vv=g;3B#AB-*&EP32!|<+y)1p&%4O{=+SbQ&Xx92qmmD~fZ3O%w`{o9^hu)SiIvs#-w_4;)7>rVeU9fDl- z8N;vexXp8szUHIBV4-=L@!BIhmg<4%{fx3}GJ`k{q?{?r`r3X+lXt-@ zQG4W0`>-nhFZBJeR|-bYWZZb~SL<0}-C07tR_$){-+R7vEZEtopBSj} zqp{!TW@f-zCeFGI!h2tb1-H$e`>QSR|CM{E^L>ij^|Kd-GFwdJmx(Yh;O>1a#`>>* z$-dR0KEC}G zKi|S-|Mq=69cT76va|e7!UyTgmw%twYO2pzU^3nJE>FxQ|M;3$g(8n<^DdqEu;I9l zudUERcP{R^$=Ufa3=Ow0eOlSQZHsc+*(cj>?Qy(v<^H~(D|?r$%zSy=U$1oOrv3=~ z&uhGj4rFWzp7ZNbqKB`e#L*q+0;HbW7aBS}zo=nb^`ztS)^*1wPm=5N`?limZl0Yd z*cC$e*Ix2BxUxj0bk$zlj4K&AGjz^;W)M63**&2@pl5ZqchWO<=Iu+{*|-^ zOihmANLUs9^ZDjd%kscr{oLON8Us1|-vo=ldL3UjBXIqR6<>~8)L(J!3SNF(Tl;uh zYGzGf$4c?-`>f>@A6>eVsaLx8n%MO1l`IT*p0eAOI&E2WaAv2l`W@#_=6wtb+n;VR z_i=f9dg;80iQTy}pI5VNSh;M%BYlU&MR&PRo|$9y^zH44W8s_+j>`M@v48w9;R{zx ze*Tp$sowP!$+PNt8177suq(Y-TG^HKZocK?t$8tz>tE}C6FauZcT4qQ1_lNOPgg&e IbxsLQ0BY{zI{*Lx diff --git a/streams/icons/flag_zm.png b/streams/icons/flag_zm.png deleted file mode 100644 index de9abd7d833cd4982ce1f8441d87cacb4aa3d092..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 671 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idVqjp<(|qm0z`($k|H*Y zfq^N+)5S3)qw(#{^VydJ7!G`Vf4bkycXn=>(XCRBMdvu31I=0L6}04BKB&puH&nm*v`62yV;c6OH43U+r_x`(AsC zionFZzV6FU#vRzdjA7Gc<`*9=-Wf&wI{h+gvTS$CXNF_-G1snHzuFX?yyeVusq@ob z6ji(k@L2n9@29!Rm1??jDKod%pY431KY@FLFQ5K}+>H$7ttt$>ZoI#AbNVOS?kU_U z@#)s%=3_Z?4ckvVN@G=4d0xEWlpz0VpZcye5340f!W>$nG44VMHT?6vVm?`3b#+qC z-S}qX-gBLHU8X*aR@ZIW4z5*t_2o#Uh)He9TrQR5DXVSXElONuoxW6{;IWS+OL2|v zq|U|MKC=7U8n*PR-FW$-s81rq*-q?&&$nfUye7R1&h2FpmK5N4slTb#`$?FEtWnMb zXD?-r4UZ$(uBu)3wh-i;{LZ57oXceK+Z9uf^sn`s&i`Yk;HBt<@B;=hege&r{8B88 z+Jc{X=b6uxTQnucdSfiZ{_c+HJHO6buDNd39nGXeHTsWdUOTL6+iK={!Ju+_%B7SQ zM;0^Qd3UyLyFA0WnukqiPchYI3O$r(+phe;Q_TGQZJF=B)2`qBlAY!5Fe4!=VRf_h zzhu8dq89eT*5<<5J73@0H2?eJuebT%K0oI1da)-%ir1}!`D@Rw7I$5Hfk}YZASl0f zOW*!h5r;A^1#8v`bD2)~F{UhM*c8lgQ?ua>s_^xX4Q9XX6&!Ll)Hc^KY=5?*vU)*v RDFXuogQu&X%Q~loCIAFhCSU*n diff --git a/streams/icons/flag_zw.png b/streams/icons/flag_zw.png deleted file mode 100644 index bbebabcd537257b81608250e59da1040a0aed434..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1703 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU@+idV_;xd=v^bvz`($k|H*Y zfq^Z?)5S3)1FYzO*Y)(95|y#A)Fa*>=GRXBpENWo{<6?AnmO{QbS-3pg~) zGOZ5(o}{0WRx#P~`Ml!y-|tqR>=af{$j;`r&gZNtJ0&2IuDwd-f%EFCNxnC-1e_i` z(QmEqaf)HNAR!}jq>-6jg0m={@3j5I?rw(SB}Ft%3Nzdl7+g9*t zBg+K?sa_6F&crN^c=ro4kK2cBHYkc?xga4c>snG`V$s*U-P-YCI@zWmHhM;1D_D@^p*5aBtY zG>CTs@$uuw1}pYT{*Vsm%qq5AVYkKo>L%5mmV4dL_J^hN)Y*HxI2Hs>`^`1$3d^!vzr9xcJITiSdhW$P|ISsem8q<({P5*VO4f}u z{q}Q*bR3Vdvt9Uk_4y9TpJubZzj1s0Ph(mx`*-KbPt4DG5_dhq|;%Q^+-)|3BMa4l-{ubsxS z_bba?DW>MEGNGtVO9S$Y<}vxNHN17#bh+x4EYq6W+L=;1O7j02OUlgO-DtZreXijJ zmj${)4P_rh<5JBWtDpJ^Rhi0M`90-@Z_oTN)pMe1lQ{(i1*ds7?0mS=Lim`2y+%FP zK9#xot(Q5xj5(ydT0|eMbNq29;3MCCWuEh!*9zz;PCu>N->`5YTvclYf~@eh4{d@b$m(d$^ZnA$tc)oa*O(zl?A zea^%K{RaLHWk&gpA&!Eje`Kn%H@Ri3Ehu&ci%E?=X3fjuG1@0Mc&t{6huW{O6v@3E0L`6OkBKqN9u=zJLc{4iFp09 z??cfZh5uVVv;5RNbbpOYlf6*u_mx6Yr~A%x?%TUpR@yu-rRVpD)_{#mMV&Ug{(QJx zlCfmV%NT=bUWd(Fo3?u~wqLuvadVx2TAJFOJ9i|0+^s3k_^`1lu0hOb=j|yg`lc^@ zWL`cc#fE=vmgwoKsq(M7V-s{Hf6o2%O<|4|Z+D+658n@^rRSx{2aa^{$o>i_ke3(VaXEn0MA z#qUbN7+;Z#A9ox~a0mzxVE+G$Z6C9a$VJx9B}-J)Dm$n6tf_LowfV1mYvJ#gt&^Vw zF3n3xQIRe^n#6ZrR^+0pX0KbbsCJmahf@xkfA$Mrv_06;!eU`z(eOC^=ThsGM>{od zUB6x)|7qQxC-$NjLvPNSCAEfc=9E8Dai7{ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/streams/icons/globe.svg b/streams/icons/globe.svg deleted file mode 100644 index a4a6668c3..000000000 --- a/streams/icons/globe.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/streams/icons/guitar.svg b/streams/icons/guitar.svg deleted file mode 100644 index 324bf9cd2..000000000 --- a/streams/icons/guitar.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/streams/icons/keyboard.svg b/streams/icons/keyboard.svg deleted file mode 100644 index 13b1ad8f1..000000000 --- a/streams/icons/keyboard.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/streams/icons/lightning.svg b/streams/icons/lightning.svg deleted file mode 100644 index 90a49aa5d..000000000 --- a/streams/icons/lightning.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/streams/icons/microphone.svg b/streams/icons/microphone.svg deleted file mode 100644 index 1a06e178f..000000000 --- a/streams/icons/microphone.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/streams/icons/news.svg b/streams/icons/news.svg deleted file mode 100644 index 9d05ec45b..000000000 --- a/streams/icons/news.svg +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/streams/icons/radio.svg b/streams/icons/radio.svg deleted file mode 100644 index 47779898d..000000000 --- a/streams/icons/radio.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/streams/icons/radioactive.svg b/streams/icons/radioactive.svg deleted file mode 100644 index 359960759..000000000 --- a/streams/icons/radioactive.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/streams/icons/rubikscube.svg b/streams/icons/rubikscube.svg deleted file mode 100644 index b56bd9024..000000000 --- a/streams/icons/rubikscube.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/streams/icons/smiley.svg b/streams/icons/smiley.svg deleted file mode 100644 index 1e530e7ed..000000000 --- a/streams/icons/smiley.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/streams/icons/star.svg b/streams/icons/star.svg deleted file mode 100644 index 2473f35de..000000000 --- a/streams/icons/star.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/streams/icons/stream.png b/streams/icons/stream.png deleted file mode 100644 index cbcf9488518ba67751d9969c5bd41c175b8da794..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89882 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 a&oFbM+v8ZD4S5U<3=E#GelF{r5}E)@hR|*R diff --git a/streams/icons/trebleclef.svg b/streams/icons/trebleclef.svg deleted file mode 100644 index 29808c4c0..000000000 --- a/streams/icons/trebleclef.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/streams/icons/violin.svg b/streams/icons/violin.svg deleted file mode 100644 index bf7ccb9e7..000000000 --- a/streams/icons/violin.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/streams/streamcategorydialog.cpp b/streams/streamcategorydialog.cpp deleted file mode 100644 index 00a8a8678..000000000 --- a/streams/streamcategorydialog.cpp +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Cantata - * - * Copyright (c) 2011-2013 Craig Drummond - * - * ---- - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include -#include -#include "streamcategorydialog.h" -#include "mainwindow.h" -#include "settings.h" -#include "streamsmodel.h" -#include "localize.h" -#include "buddylabel.h" -#include "icons.h" - -StreamCategoryDialog::StreamCategoryDialog(const QStringList &categories, QWidget *parent) - : Dialog(parent) - , iconCombo(0) -{ - existingCategories=categories.toSet(); - QWidget *wid = new QWidget(this); - QFormLayout *layout = new QFormLayout(wid); - - nameEntry = new LineEdit(wid); - QSizePolicy sizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); - sizePolicy.setHorizontalStretch(0); - sizePolicy.setVerticalStretch(0); - int row=0; - - layout->setWidget(row, QFormLayout::LabelRole, new BuddyLabel(i18n("Name:"), wid, nameEntry)); - layout->setWidget(row++, QFormLayout::FieldRole, nameEntry); - - QMap icons=StreamsModel::self()->icons(); - if (!icons.isEmpty()) { - iconCombo=new ComboBox(this); - iconCombo->addItem(Icons::self()->streamCategoryIcon, QString(), QString()); - int size=Icon::stdSize(fontMetrics().height()*1.5); - iconCombo->setIconSize(QSize(size,size)); - iconCombo->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); - QMap::ConstIterator it=icons.constBegin(); - QMap::ConstIterator end=icons.constEnd(); - - for (; it!=end; ++it) { - if (!it.value().isNull() && !it.key().startsWith(QLatin1String("flag_"))) { - iconCombo->addItem(it.value(), QString(), it.key()); - } - } - bool firstFlag=true; - for (it=icons.constBegin(); it!=end; ++it) { - if (!it.value().isNull() && it.key().startsWith(QLatin1String("flag_"))) { - if (firstFlag) { - if (iconCombo->count()) { - iconCombo->insertSeparator(iconCombo->count()); - } - firstFlag=false; - } - iconCombo->addItem(it.value(), QString(), it.key()); - } - } - layout->setWidget(row, QFormLayout::LabelRole, new BuddyLabel(i18n("Icon:"), wid, iconCombo)); - layout->setWidget(row++, QFormLayout::FieldRole, iconCombo); - connect(iconCombo, SIGNAL(currentIndexChanged(int)), SLOT(changed())); - } - setCaption(i18n("Add Category")); - setMainWidget(wid); - setButtons(Ok|Cancel); - enableButton(Ok, false); - - connect(nameEntry, SIGNAL(textChanged(const QString &)), SLOT(changed())); - nameEntry->setFocus(); - resize(400, 100); -} - -void StreamCategoryDialog::setEdit(const QString &editName, const QString &editIconName) -{ - prevIconName=editIconName; - if (iconCombo) { - iconCombo->blockSignals(true); - iconCombo->setCurrentIndex(0); - for (int i=0; icount(); ++i) { - if (iconCombo->itemData(i)==editIconName) { - iconCombo->setCurrentIndex(i); - break; - } - } - iconCombo->blockSignals(false); - } - setCaption(i18n("Edit Category")); - enableButton(Ok, false); - prevName=editName; - nameEntry->blockSignals(true); - nameEntry->setText(editName); - nameEntry->blockSignals(false); -} - -void StreamCategoryDialog::changed() -{ - QString n=name(); - bool enableOk=!n.isEmpty() && (n!=prevName || (iconCombo && icon()!=prevIconName) || !existingCategories.contains(n)); - enableButton(Ok, enableOk); -} diff --git a/streams/streamcategorydialog.h b/streams/streamcategorydialog.h deleted file mode 100644 index 3d064aa5f..000000000 --- a/streams/streamcategorydialog.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Cantata - * - * Copyright (c) 2011-2013 Craig Drummond - * - * ---- - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef STREAMCATEGORYDIALOG_H -#define STREAMCATEGORYDIALOG_H - -#include "dialog.h" -#include "lineedit.h" -#include "combobox.h" -#include - -class StreamCategoryDialog : public Dialog -{ - Q_OBJECT - -public: - StreamCategoryDialog(const QStringList &categories, QWidget *parent); - - void setEdit(const QString &editName, const QString &editIconName); - QString name() const { return nameEntry->text().trimmed(); } - QString icon() const { return iconCombo ? iconCombo->itemData(iconCombo->currentIndex()).toString() : prevIconName; } - -private Q_SLOTS: - void changed(); - -private: - QString prevName; - QString prevIconName; - ComboBox *iconCombo; - LineEdit *nameEntry; - QSet existingCategories; -}; - -#endif diff --git a/streams/streamdialog.cpp b/streams/streamdialog.cpp index 83ba77d20..f594e8daa 100644 --- a/streams/streamdialog.cpp +++ b/streams/streamdialog.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include "streamdialog.h" #include "mainwindow.h" #include "settings.h" @@ -45,45 +46,9 @@ class NameValidator : public QValidator } }; -void IconCombo::load() -{ - if (0==count()) { - addItem(Icons::self()->radioStreamIcon, QString(), QString()); - QMap icons=StreamsModel::self()->icons(); - QMap::ConstIterator it=icons.constBegin(); - QMap::ConstIterator end=icons.constEnd(); - - for (; it!=end; ++it) { - if (!it.value().isNull() && !it.key().startsWith(QLatin1String("flag_"))) { - addItem(it.value(), QString(), it.key()); - } - } - bool firstFlag=true; - for (it=icons.constBegin(); it!=end; ++it) { - if (!it.value().isNull() && it.key().startsWith(QLatin1String("flag_"))) { - if (firstFlag) { - if (count()) { - insertSeparator(count()); - } - firstFlag=false; - } - addItem(it.value(), QString(), it.key()); - } - } - } -} - -void IconCombo::showEvent(QShowEvent *e) -{ - load(); - ComboBox::showEvent(e); -} - -StreamDialog::StreamDialog(const QStringList &categories, const QStringList &genres, QWidget *parent, bool addToPlayQueue) +StreamDialog::StreamDialog(QWidget *parent, bool addToPlayQueue) : Dialog(parent) , saveCombo(0) - , iconCombo(0) - , iconLabel(0) , urlHandlers(MPDConnection::self()->urlHandlers()) { QWidget *wid = new QWidget(this); @@ -94,52 +59,24 @@ StreamDialog::StreamDialog(const QStringList &categories, const QStringList &gen urlEntry = new LineEdit(wid); saveCombo=new QComboBox(wid); nameEntry = new LineEdit(wid); - if (!StreamsModel::self()->icons().isEmpty()) { - iconCombo=new IconCombo(wid); - } } else { nameEntry = new LineEdit(wid); urlEntry = new LineEdit(wid); - if (!StreamsModel::self()->icons().isEmpty()) { - iconCombo=new IconCombo(wid); - } } nameEntry->setValidator(new NameValidator(this)); - catCombo = new CompletionCombo(wid); - catCombo->setEditable(true); - genreCombo = new CompletionCombo(wid); statusText = new QLabel(this); - if (iconCombo) { - int size=Icon::stdSize(fontMetrics().height()*1.5); - iconCombo->setIconSize(QSize(size,size)); - iconCombo->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); - connect(iconCombo, SIGNAL(currentIndexChanged(int)), SLOT(changed())); - } - - QSizePolicy sizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); - sizePolicy.setHorizontalStretch(0); - sizePolicy.setVerticalStretch(0); - sizePolicy.setHeightForWidth(catCombo->sizePolicy().hasHeightForWidth()); - catCombo->setSizePolicy(sizePolicy); - genreCombo->setSizePolicy(sizePolicy); urlEntry->setMinimumWidth(300); - multipleGenresText=new QLabel(i18n("NOTE: Use '|' to split mutliple genres - e.g. 'Current|Classic'"), this); nameLabel=new BuddyLabel(i18n("Name:"), wid, nameEntry); - catLabel=new BuddyLabel(i18n("Category:"), wid, catCombo); - genreLabel=new BuddyLabel(i18n("Genre:"), wid, genreCombo); - if (iconCombo) { - iconLabel=new BuddyLabel(i18n("Icon:"), wid, iconCombo); - } BuddyLabel *urlLabel=new BuddyLabel(i18n("URL:"), wid, urlEntry); int row=0; if (addToPlayQueue) { saveCombo->addItem(i18n("Just add to play queue, do not save")); - saveCombo->addItem(i18n("Add to play queue, and save in list of streams")); + saveCombo->addItem(i18n("Add to play queue, and save to favourites")); saveCombo->setCurrentIndex(0); - saveCombo->setEnabled(StreamsModel::self()->isWritable()); + saveCombo->setEnabled(StreamsModel::self()->isFavoritesWritable()); layout->setWidget(row, QFormLayout::LabelRole, urlLabel); layout->setWidget(row++, QFormLayout::FieldRole, urlEntry); layout->setWidget(row++, QFormLayout::FieldRole, saveCombo); @@ -152,28 +89,14 @@ StreamDialog::StreamDialog(const QStringList &categories, const QStringList &gen layout->setWidget(row, QFormLayout::LabelRole, urlLabel); layout->setWidget(row++, QFormLayout::FieldRole, urlEntry); } - if (iconCombo) { - layout->setWidget(row, QFormLayout::LabelRole, iconLabel); - layout->setWidget(row++, QFormLayout::FieldRole, iconCombo); - } - layout->setWidget(row, QFormLayout::LabelRole, catLabel); - layout->setWidget(row++, QFormLayout::FieldRole, catCombo); - layout->setWidget(row, QFormLayout::LabelRole, genreLabel); - layout->setWidget(row++, QFormLayout::FieldRole, genreCombo); - layout->setWidget(row++, QFormLayout::SpanningRole, multipleGenresText); + layout->setWidget(row++, QFormLayout::SpanningRole, statusText); setCaption(i18n("Add Stream")); setMainWidget(wid); setButtons(Ok|Cancel); enableButton(Ok, false); - catCombo->clear(); - catCombo->insertItems(0, categories); - genreCombo->clear(); - genreCombo->insertItems(0, genres); connect(nameEntry, SIGNAL(textChanged(const QString &)), SLOT(changed())); connect(urlEntry, SIGNAL(textChanged(const QString &)), SLOT(changed())); - connect(catCombo, SIGNAL(editTextChanged(const QString &)), SLOT(changed())); - connect(genreCombo, SIGNAL(editTextChanged(const QString &)), SLOT(changed())); if (addToPlayQueue) { urlEntry->setFocus(); } else { @@ -182,33 +105,14 @@ StreamDialog::StreamDialog(const QStringList &categories, const QStringList &gen resize(400, 100); } -void StreamDialog::setEdit(const QString &cat, const QString &editName, const QString &editGenre, const QString &editIconName, const QString &editUrl) +void StreamDialog::setEdit(const QString &editName, const QString &editUrl) { - Q_UNUSED(editIconName) setCaption(i18n("Edit Stream")); enableButton(Ok, false); prevName=editName; prevUrl=editUrl; - prevCat=cat; - prevGenre=editGenre; - prevIconName=editIconName; nameEntry->setText(editName); urlEntry->setText(editUrl); - catCombo->setEditText(cat); - genreCombo->setEditText(editGenre); - - if (iconCombo) { - iconCombo->blockSignals(true); - iconCombo->load(); - iconCombo->setCurrentIndex(0); - for (int i=0; icount(); ++i) { - if (iconCombo->itemData(i)==editIconName) { - iconCombo->setCurrentIndex(i); - break; - } - } - iconCombo->blockSignals(false); - } } void StreamDialog::saveComboChanged() @@ -221,16 +125,7 @@ void StreamDialog::setWidgetVisiblity() { bool s=save(); nameEntry->setVisible(s); - catCombo->setVisible(s); - genreCombo->setVisible(s); nameLabel->setVisible(s); - catLabel->setVisible(s); - genreLabel->setVisible(s); - multipleGenresText->setVisible(s); - if (iconCombo) { - iconCombo->setVisible(s); - iconLabel->setVisible(s); - } QApplication::processEvents(); adjustSize(); } @@ -245,11 +140,7 @@ void StreamDialog::changed() enableOk=!u.isEmpty(); } else { QString n=name(); - QString c=category(); - QString g=genre(); - enableOk=!n.isEmpty() && !u.isEmpty() && !c.isEmpty() && - (n!=prevName || u!=prevUrl || c!=prevCat || g!=prevGenre || (iconCombo && icon()!=prevIconName)); - + enableOk=!n.isEmpty() && !u.isEmpty() && (n!=prevName || u!=prevUrl); statusText->setText(validProtocol ? QString() : i18n("ERROR: Invalid protocol")); } enableOk=enableOk && validProtocol; diff --git a/streams/streamdialog.h b/streams/streamdialog.h index 0ae9922ec..aa52f7d0b 100644 --- a/streams/streamdialog.h +++ b/streams/streamdialog.h @@ -28,32 +28,20 @@ #include "combobox.h" #include "dialog.h" #include "lineedit.h" -#include "completioncombo.h" class QLabel; class BuddyLabel; -class IconCombo : public ComboBox -{ -public: - IconCombo(QWidget *p) : ComboBox(p) { } - void load(); - void showEvent(QShowEvent *e); -}; - class StreamDialog : public Dialog { Q_OBJECT public: - StreamDialog(const QStringList &categories, const QStringList &genres, QWidget *parent, bool addToPlayQueue=false); + StreamDialog(QWidget *parent, bool addToPlayQueue=false); - void setEdit(const QString &cat, const QString &editName, const QString &editGenre, const QString &editIconName, const QString &editUrl); + void setEdit(const QString &editName, const QString &editUrl); QString name() const { return nameEntry->text().trimmed(); } QString url() const { return urlEntry->text().trimmed(); } - QString category() const { return catCombo->currentText().trimmed(); } - QString genre() const { return genreCombo->currentText().trimmed(); } - QString icon() const { return iconCombo ? iconCombo->itemData(iconCombo->currentIndex()).toString() : prevIconName; } bool save() const { return !saveCombo || 1==saveCombo->currentIndex(); } private Q_SLOTS: @@ -66,20 +54,10 @@ private: private: QString prevName; QString prevUrl; - QString prevCat; - QString prevGenre; - QString prevIconName; QComboBox *saveCombo; - IconCombo *iconCombo; LineEdit *nameEntry; LineEdit *urlEntry; - CompletionCombo *catCombo; - CompletionCombo *genreCombo; BuddyLabel *nameLabel; - BuddyLabel *catLabel; - BuddyLabel *genreLabel; - BuddyLabel *iconLabel; - QLabel *multipleGenresText; QLabel *statusText; QSet urlHandlers; }; diff --git a/streams/streamfetcher.cpp b/streams/streamfetcher.cpp index 83c3bf3fd..a8d568c89 100644 --- a/streams/streamfetcher.cpp +++ b/streams/streamfetcher.cpp @@ -136,6 +136,13 @@ static QString parse(const QByteArray &data) return parseExt3Mu(data, handlers); } + if (data.startsWith("http://")) { + QStringList lines=QString(data).split(QRegExp(QLatin1String("(\r\n|\n|\r)")), QString::SkipEmptyParts); + if (!lines.isEmpty()) { + return lines.first(); + } + } + return QString(); } @@ -248,7 +255,6 @@ void StreamFetcher::jobFinished(QNetworkReply *reply) redirected=true; } else { QString u=parse(data); - if (u.isEmpty() || u==current) { done.append(MPDParseUtils::addStreamName(current.startsWith(StreamsModel::constPrefix) ? current.mid(StreamsModel::constPrefix.length()) : current, currentName)); } else if (u.startsWith(QLatin1String("http://")) && ++redirects #ifdef ENABLE_KDE_SUPPORT @@ -46,89 +44,31 @@ #include #include -static const char * constUrlProperty("url"); -static const char * constStreamsOnly("streamsOnly"); - StreamsPage::StreamsPage(QWidget *p) : QWidget(p) , enabled(false) , modelIsDownloading(false) { setupUi(this); - importAction = ActionCollection::get()->createAction("importstreams", i18n("Import Streams"), "document-import"); - exportAction = ActionCollection::get()->createAction("exportstreams", i18n("Export Streams"), "document-export"); - addAction = ActionCollection::get()->createAction("addstream", i18n("Add Stream"), Icons::self()->addRadioStreamIcon); + importAction = ActionCollection::get()->createAction("importstreams", i18n("Import Streams Into Favourites"), "document-import"); + exportAction = ActionCollection::get()->createAction("exportstreams", i18n("Export Favourite Streams"), "document-export"); + addAction = ActionCollection::get()->createAction("addstream", i18n("Add New Stream To Favourites"), Icons::self()->addRadioStreamIcon); + addToFavouritesAction = ActionCollection::get()->createAction("addtofavourites", i18n("Add Stream To Favourites"), Icons::self()->addRadioStreamIcon); editAction = ActionCollection::get()->createAction("editstream", i18n("Edit"), Icons::self()->editIcon); - QMenu *importMenu=new QMenu(this); - QAction *importFileAction=importMenu->addAction("From File"); - QList webStreams=WebStream::getAll(); - QAction *radioAction=0; - QMenu *radioMenu=0; - QMap regions; - QAction *diAction=0; - QMenu *diMenu=0; - - foreach (const WebStream *ws, webStreams) { - if (dynamic_cast(ws)) { - if (!radioAction) { - radioAction=importMenu->addAction(i18n("Radio Stations")); - radioMenu=new QMenu(this); - radioAction->setMenu(radioMenu); - } - QMenu *menu=radioMenu; - if (!ws->getRegion().isEmpty()) { - if (!regions.contains(ws->getRegion())) { - QAction *regionAction=radioMenu->addAction(ws->getRegion()); - regions.insert(ws->getRegion(), new QMenu(this)); - regionAction->setMenu(regions[ws->getRegion()]); - } - menu=regions[ws->getRegion()]; - } - QAction *act=menu->addAction(ws->getName()); - act->setProperty(constUrlProperty, ws->getUrl()); - connect(act, SIGNAL(triggered(bool)), this, SLOT(importWebStreams())); - } else if (dynamic_cast(ws)) { - if (!diAction) { - diAction=importMenu->addAction(i18n("Digitally Imported")); - diMenu=new QMenu(this); - diAction->setMenu(diMenu); - } - QAction *act=diMenu->addAction(ws->getName()); - act->setProperty(constUrlProperty, ws->getUrl()); - connect(act, SIGNAL(triggered(bool)), this, SLOT(importWebStreams())); - } else { - QAction *act=importMenu->addAction(i18n("From %1").arg(ws->getName())); - act->setProperty(constUrlProperty, ws->getUrl()); - connect(act, SIGNAL(triggered(bool)), this, SLOT(importWebStreams())); - } - connect(ws, SIGNAL(error(const QString &)), this, SIGNAL(error(const QString &))); - connect(ws, SIGNAL(finished()), this, SLOT(checkIfBusy())); - } - - importAction->setMenu(importMenu); - - QMenu *exportMenu=new QMenu(this); - QAction *exportCantataFileAction=exportMenu->addAction("Streams And Categories"); - exportCantataFileAction->setProperty(constStreamsOnly, false); - QAction *exportStreamsFileAction=exportMenu->addAction("Streams Only"); - exportStreamsFileAction->setProperty(constStreamsOnly, true); - exportAction->setMenu(exportMenu); - replacePlayQueue->setDefaultAction(StdActions::self()->replacePlayQueueAction); // connect(view, SIGNAL(itemsSelected(bool)), addToPlaylist, SLOT(setEnabled(bool))); connect(view, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(itemDoubleClicked(const QModelIndex &))); connect(view, SIGNAL(searchItems()), this, SLOT(searchItems())); connect(view, SIGNAL(itemsSelected(bool)), SLOT(controlActions())); connect(addAction, SIGNAL(triggered(bool)), this, SLOT(add())); + connect(addToFavouritesAction, SIGNAL(triggered(bool)), this, SLOT(addToFavourites())); connect(editAction, SIGNAL(triggered(bool)), this, SLOT(edit())); - connect(importFileAction, SIGNAL(triggered(bool)), this, SLOT(importXml())); - connect(exportCantataFileAction, SIGNAL(triggered(bool)), this, SLOT(exportXml())); - connect(exportStreamsFileAction, SIGNAL(triggered(bool)), this, SLOT(exportXml())); - connect(genreCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(searchItems())); - connect(StreamsModel::self(), SIGNAL(updateGenres(const QSet &)), genreCombo, SLOT(update(const QSet &))); + connect(importAction, SIGNAL(triggered(bool)), this, SLOT(importXml())); + connect(exportAction, SIGNAL(triggered(bool)), this, SLOT(exportXml())); connect(StreamsModel::self(), SIGNAL(error(const QString &)), this, SIGNAL(error(const QString &))); - connect(StreamsModel::self(), SIGNAL(downloading(bool)), this, SLOT(downloading(bool))); + connect(StreamsModel::self(), SIGNAL(loading()), view, SLOT(showSpinner())); + connect(StreamsModel::self(), SIGNAL(loaded()), view, SLOT(hideSpinner())); connect(MPDConnection::self(), SIGNAL(dirChanged()), SLOT(mpdDirChanged())); QMenu *menu=new QMenu(this); menu->addAction(addAction); @@ -147,8 +87,8 @@ StreamsPage::StreamsPage(QWidget *p) view->addAction(StdActions::self()->replacePlayQueueAction); view->addAction(StdActions::self()->addWithPriorityAction); view->addAction(editAction); - view->addAction(exportAction); view->addAction(StdActions::self()->removeAction); + view->addAction(addToFavouritesAction); proxy.setSourceModel(StreamsModel::self()); view->setModel(&proxy); view->setDeleteAction(StdActions::self()->removeAction); @@ -159,9 +99,6 @@ StreamsPage::StreamsPage(QWidget *p) StreamsPage::~StreamsPage() { - foreach (WebStream *ws, WebStream::getAll()) { - ws->cancelDownload(); - } } void StreamsPage::setEnabled(bool e) @@ -181,14 +118,14 @@ void StreamsPage::mpdDirChanged() void StreamsPage::checkWritable() { - bool wasWriteable=StreamsModel::self()->isWritable(); - bool nowWriteable=StreamsModel::self()->checkWritable(); + bool wasWriteable=StreamsModel::self()->isFavoritesWritable(); + bool nowWriteable=StreamsModel::self()->checkFavouritesWritable(); if (nowWriteable) { infoLabel->hide(); } else { infoLabel->setVisible(true); - infoLabel->setText(StreamsModel::dir().startsWith("http:/") ? i18n("Streams from HTTP server") : i18n("Read only.")); + infoLabel->setText(StreamsModel::favouritesDir().startsWith("http:/") ? i18n("Streams from HTTP server") : i18n("Read only.")); } if (wasWriteable!=nowWriteable) { controlActions(); @@ -200,14 +137,14 @@ void StreamsPage::refresh() if (enabled) { checkWritable(); view->setLevel(0); - StreamsModel::self()->reload(); + StreamsModel::self()->reloadFavourites(); exportAction->setEnabled(StreamsModel::self()->rowCount()>0); } } void StreamsPage::save() { - StreamsModel::self()->save(true); + StreamsModel::self()->saveFavourites(true); } void StreamsPage::addSelectionToPlaylist(bool replace, quint8 priorty) @@ -246,33 +183,9 @@ void StreamsPage::itemDoubleClicked(const QModelIndex &index) } } -void StreamsPage::downloading(bool dl) -{ - modelIsDownloading=dl; - checkIfBusy(); -} - -void StreamsPage::checkIfBusy() -{ - bool busy=modelIsDownloading; - if (!busy) { - foreach (WebStream *ws, WebStream::getAll()) { - if (ws->isDownloading()) { - busy=true; - break; - } - } - } - if (busy) { - view->showSpinner(); - } else { - view->hideSpinner(); - } -} - void StreamsPage::importXml() { - if (!StreamsModel::self()->isWritable()) { + if (!StreamsModel::self()->isFavoritesWritable()) { return; } #ifdef ENABLE_KDE_SUPPORT @@ -286,47 +199,18 @@ void StreamsPage::importXml() return; } - if (!StreamsModel::self()->import(fileName)) { + if (!StreamsModel::self()->importXml(fileName)) { MessageBox::error(this, i18n("Failed to import %1!
Please check this is of the correct type.").arg(fileName)); } } void StreamsPage::exportXml() { - QAction *act=qobject_cast(sender()); - bool streamsOnly=act && act->property(constStreamsOnly).toBool(); - QModelIndexList selected=view->selectedIndexes(); - QSet items; - QSet categories; - foreach (const QModelIndex &idx, selected) { - QModelIndex i=proxy.mapToSource(idx); - StreamsModel::Item *itm=static_cast(i.internalPointer()); - if (itm->isCategory()) { - if (!categories.contains(itm)) { - categories.insert(itm); - } - foreach (StreamsModel::StreamItem *s, static_cast(itm)->streams) { - items.insert(s); - } - } else { - items.insert(itm); - categories.insert(static_cast(itm)->parent); - } - } - - QLatin1String ext(streamsOnly ? ".xml" : ".cantata"); - QString name=1==categories.count() - ? static_cast(*(categories.begin()))->name+ext - : QLatin1String("Cantata")+ext; - + QLatin1String ext(".xml"); #ifdef ENABLE_KDE_SUPPORT - QString fileName=streamsOnly - ? KFileDialog::getSaveFileName(name, i18n("*.xml|XML Streams"), this, i18n("Export Streams")) - : KFileDialog::getSaveFileName(name, i18n("*.cantata|Cantata Streams"), this, i18n("Streams And Categories")); + QString fileName=KFileDialog::getSaveFileName(QLatin1String("Cantata")+ext, i18n("*.xml|XML Streams"), this, i18n("Export Streams")); #else - QString fileName=streamsOnly - ? QFileDialog::getSaveFileName(this, i18n("Export Streams"), name, i18n("XML Streams (*.xml)")) - : QFileDialog::getSaveFileName(this, i18n("Streams And Categories"), name, i18n("Cantata Streams (*.cantata)")); + QString fileName=QFileDialog::getSaveFileName(this, i18n("Export Streams"), QLatin1String("Cantata")+ext, i18n("XML Streams (*.xml)")); #endif if (fileName.isEmpty()) { @@ -337,124 +221,100 @@ void StreamsPage::exportXml() fileName+=ext; } - if (!StreamsModel::self()->save(fileName, categories+items, streamsOnly)) { + if (!StreamsModel::self()->saveXml(fileName, QList())) { MessageBox::error(this, i18n("Failed to create %1!").arg(fileName)); } } void StreamsPage::add() { - if (!StreamsModel::self()->isWritable()) { + if (!StreamsModel::self()->isFavoritesWritable()) { return; } - StreamDialog dlg(getCategories(), getGenres(), this); + StreamDialog dlg(this); if (QDialog::Accepted==dlg.exec()) { QString name=dlg.name(); QString url=dlg.url(); - QString cat=dlg.category(); - QString existing=StreamsModel::self()->name(cat, url); + QString existingNameForUrl=StreamsModel::self()->favouritesNameForUrl(url); - if (!existing.isEmpty()) { - MessageBox::error(this, i18n("Stream already exists!
%1").arg(existing)); - return; - } - - if (!StreamsModel::self()->add(cat, name, dlg.genre(), dlg.icon(), url)) { + if (!existingNameForUrl.isEmpty()) { + MessageBox::error(this, i18n("Stream already exists!
%1").arg(existingNameForUrl)); + } else if (StreamsModel::self()->nameExistsInFavourites(name)) { MessageBox::error(this, i18n("A stream named %1 already exists!").arg(name)); + } else { + StreamsModel::self()->addToFavourites(url, name); } } - exportAction->setEnabled(StreamsModel::self()->rowCount()>0); + exportAction->setEnabled(StreamsModel::self()->haveFavourites()); +} + +void StreamsPage::addToFavourites() +{ + if (!StreamsModel::self()->isFavoritesWritable()) { + return; + } + + QModelIndexList selected = view->selectedIndexes(); + QList items; + + foreach (const QModelIndex &i, selected) { + QModelIndex mapped=proxy.mapToSource(i); + const StreamsModel::Item *item=static_cast(mapped.internalPointer()); + if (!item->isCategory() && item->parent && !item->parent->isFavourites) { + items.append(item); + } + } + + foreach (const StreamsModel::Item *item, items) { + StreamsModel::self()->addToFavourites(item->url, item->name); + } } void StreamsPage::removeItems() { - if (!StreamsModel::self()->isWritable()) { + if (!StreamsModel::self()->isFavoritesWritable()) { return; } - QStringList streams; + QModelIndexList selected = view->selectedIndexes(); + QModelIndexList useable; - if (0==selected.size()) { + foreach (const QModelIndex &i, selected) { + QModelIndex mapped=proxy.mapToSource(i); + const StreamsModel::Item *item=static_cast(mapped.internalPointer()); + if (!item->isCategory() && item->parent && item->parent->isFavourites) { + useable.append(mapped); + } + } + + if (useable.isEmpty()) { return; } - - bool haveStreams=false; - bool haveCategories=false; - foreach(const QModelIndex &index, selected) { - if (static_cast(proxy.mapToSource(index).internalPointer())->isCategory()) { - haveCategories=true; - } else { - haveStreams=true; + if (useable.size()>1) { + if (MessageBox::No==MessageBox::warningYesNo(this, i18n("Are you sure you wish to remove the %1 selected streams?").arg(useable.size()))) { + return; } - - if (haveStreams && haveCategories) { - break; - } - } - - QModelIndex firstIndex=proxy.mapToSource(selected.first()); - QString firstName=StreamsModel::self()->data(firstIndex, Qt::DisplayRole).toString(); - QString message; - - if (selected.size()>1) { - if (haveStreams && haveCategories) { - message=i18n("Are you sure you wish to remove the selected categories & streams?"); - } else if (haveStreams) { - message=i18n("Are you sure you wish to remove the %1 selected streams?").arg(selected.size()); - } else { - message=i18n("Are you sure you wish to remove the %1 selected categories (and their streams)?").arg(selected.size()); - } - } else if (haveStreams) { - message=i18n("Are you sure you wish to remove %1?").arg(firstName); } else { - message=i18n("Are you sure you wish to remove the %1 category (and its streams)?").arg(firstName); - } - - if (MessageBox::No==MessageBox::warningYesNo(this, message, i18n("Remove"), StdGuiItem::remove(), StdGuiItem::cancel())) { - return; - } - - // Ensure that if we have a category selected, we dont also try to remove one of its children - QSet removeCategories; - QList removeStreams; - QModelIndexList remove; - //..obtain catagories to remove... - foreach(QModelIndex index, selected) { - QModelIndex idx=proxy.mapToSource(index); - StreamsModel::Item *item=static_cast(idx.internalPointer()); - - if (item->isCategory()) { - removeCategories.insert(static_cast(item)); - } - } - // Obtain streams in non-selected categories... - foreach(QModelIndex index, selected) { - QModelIndex idx=proxy.mapToSource(index); - StreamsModel::Item *item=static_cast(idx.internalPointer()); - - if (!item->isCategory()) { - removeStreams.append(static_cast(item)); + if (MessageBox::No==MessageBox::warningYesNo(this, i18n("Are you sure you wish to remove %1?") + .arg(StreamsModel::self()->data(useable.first(), Qt::DisplayRole).toString()))) { + return; } } - foreach (StreamsModel::CategoryItem *i, removeCategories) { - StreamsModel::self()->removeCategory(i); + foreach (const QModelIndex &i, useable) { + StreamsModel::self()->removeFromFavourites(i); } - foreach (StreamsModel::StreamItem *i, removeStreams) { - StreamsModel::self()->removeStream(i); - } - StreamsModel::self()->updateGenres(); - exportAction->setEnabled(StreamsModel::self()->rowCount()>0); + exportAction->setEnabled(StreamsModel::self()->haveFavourites()); } void StreamsPage::edit() { - if (!StreamsModel::self()->isWritable()) { + if (!StreamsModel::self()->isFavoritesWritable()) { return; } - QStringList streams; + QModelIndexList selected = view->selectedIndexes(); if (1!=selected.size()) { @@ -463,128 +323,78 @@ void StreamsPage::edit() QModelIndex index=proxy.mapToSource(selected.first()); StreamsModel::Item *item=static_cast(index.internalPointer()); - QString name=item->name; - QString icon=item->icon; - - if (item->isCategory()) { - StreamCategoryDialog dlg(getCategories(), this); - dlg.setEdit(name, icon); - if (QDialog::Accepted==dlg.exec()) { - StreamsModel::self()->editCategory(index, dlg.name(), dlg.icon()); - } + if (item->isCategory() || !item->parent || !item->parent->isFavourites) { return; } - StreamDialog dlg(getCategories(), getGenres(), this); - StreamsModel::StreamItem *stream=static_cast(item); - QString url=stream->url.toString(); - QString cat=stream->parent->name; - QString genre=stream->genreString(); + QString name=item->name; + QString url=item->url; - dlg.setEdit(cat, name, genre, icon, url); + StreamDialog dlg(this); + dlg.setEdit(name, url); if (QDialog::Accepted==dlg.exec()) { QString newName=dlg.name(); - QString newIcon=dlg.icon(); QString newUrl=dlg.url(); - QString newCat=dlg.category(); - QString newGenre=dlg.genre(); - QString existingNameForUrl=newUrl!=url ? StreamsModel::self()->name(newCat, newUrl) : QString(); + QString existingNameForUrl=newUrl!=url ? StreamsModel::self()->favouritesNameForUrl(newUrl) : QString(); if (!existingNameForUrl.isEmpty()) { - MessageBox::error(this, i18n("Stream already exists!
%1 (%2)").arg(existingNameForUrl).arg(newCat)); - } else if (newName!=name && StreamsModel::self()->entryExists(newCat, newName)) { - MessageBox::error(this, i18n("A stream named %1 (%2) already exists!").arg(newName).arg(newCat)); + MessageBox::error(this, i18n("Stream already exists!
%1").arg(existingNameForUrl)); + } else if (newName!=name && StreamsModel::self()->nameExistsInFavourites(newName)) { + MessageBox::error(this, i18n("A stream named %1 already exists!").arg(newName)); } else { - StreamsModel::self()->editStream(index, cat, newCat, newName, newGenre, newIcon, newUrl); + item->name=newName; + item->url=newUrl; + StreamsModel::self()->updateFavouriteStream(item); } } } +void StreamsPage::searchItems() +{ + QString text=view->searchText().trimmed(); + proxy.update(text, QString()); + if (proxy.enabled() && !text.isEmpty()) { + view->expandAll(); + } +} + void StreamsPage::controlActions() { QModelIndexList selected=view->selectedIndexes(); - editAction->setEnabled(1==selected.size() && StreamsModel::self()->isWritable()); - StdActions::self()->removeAction->setEnabled(selected.count() && StreamsModel::self()->isWritable()); - addAction->setEnabled(StreamsModel::self()->isWritable()); - exportAction->setEnabled(StreamsModel::self()->rowCount()); - importAction->setEnabled(StreamsModel::self()->isWritable()); + editAction->setEnabled(false); + addToFavouritesAction->setEnabled(false); + if (1==selected.size() && StreamsModel::self()->isFavoritesWritable()) { + const StreamsModel::Item *item=static_cast(proxy.mapToSource(selected.first()).internalPointer()); + if (!item->isCategory() && item->parent && item->parent->isFavourites) { + editAction->setEnabled(true); + } + } + StdActions::self()->removeAction->setEnabled(false); + if (!selected.isEmpty() && StreamsModel::self()->isFavoritesWritable()) { + bool enableRemove=true; + bool enableAddToFav=true; + foreach (const QModelIndex &idx, selected) { + const StreamsModel::Item *item=static_cast(proxy.mapToSource(idx).internalPointer()); + if (item->isCategory() || (item->parent && !item->parent->isFavourites)) { + enableRemove=false; + break; + } + if (item->isCategory() || (item->parent && item->parent->isFavourites)) { + enableAddToFav=false; + break; + } + if (!enableRemove && !enableAddToFav) { + break; + } + } + StdActions::self()->removeAction->setEnabled(enableRemove); + addToFavouritesAction->setEnabled(enableAddToFav); + } + addAction->setEnabled(StreamsModel::self()->isFavoritesWritable()); + exportAction->setEnabled(StreamsModel::self()->haveFavourites()); + importAction->setEnabled(StreamsModel::self()->isFavoritesWritable()); StdActions::self()->replacePlayQueueAction->setEnabled(selected.count()); StdActions::self()->addWithPriorityAction->setEnabled(selected.count()); menuButton->controlState(); } - -void StreamsPage::searchItems() -{ - QString text=view->searchText().trimmed(); - proxy.update(text, genreCombo->currentIndex()<=0 ? QString() : genreCombo->currentText()); - if (proxy.enabled() && !text.isEmpty()) { - view->expandAll(); - } -} - -QStringList StreamsPage::getCategories() -{ - QStringList categories; - for(int i=0; irowCount(); ++i) { - QModelIndex idx=StreamsModel::self()->index(i, 0, QModelIndex()); - if (idx.isValid()) { - categories.append(static_cast(idx.internalPointer())->name); - } - } - - if (categories.isEmpty()) { - categories.append(i18n("General")); - } - - qSort(categories); - return categories; -} - -QStringList StreamsPage::getGenres() -{ - QStringList g=genreCombo->entries().toList(); - qSort(g); - return g; -} - -void StreamsPage::importWebStreams() -{ - if (!StreamsModel::self()->isWritable()) { - return; - } - - QObject *obj=qobject_cast(sender()); - if (!obj) { - return; - } - - QUrl url=obj->property(constUrlProperty).toUrl(); - if (!url.isValid()) { - return; - } - - WebStream *ws=WebStream::get(url); - if (!ws) { - return; - } - - if (ws->isDownloading()) { - MessageBox::error(this, i18n("Download from %1 is already in progress!").arg(ws->getName())); - return; - } - - if (getCategories().contains(ws->getName())) { - if (MessageBox::No==MessageBox::warningYesNo(this, i18n("Update streams from %1?\n(This will replace any existing streams in this category)").arg(ws->getName()), - i18n("Update %1").arg(ws->getName()), GuiItem(i18n("Update")), StdGuiItem::cancel())) { - return; - } - } else { - if (MessageBox::No==MessageBox::questionYesNo(this, i18n("Download streams from %1?").arg(ws->getName()), i18n("Download %1").arg(ws->getName()), - GuiItem(i18n("Download")), StdGuiItem::cancel())) { - return; - } - } - ws->download(); - view->showSpinner(); -} diff --git a/streams/streamspage.h b/streams/streamspage.h index fe2c8ee52..376dac766 100644 --- a/streams/streamspage.h +++ b/streams/streamspage.h @@ -46,8 +46,6 @@ public: void setView(int v) { view->setMode((ItemView::Mode)v); } void focusSearch() { view->focusSearch(); } void goBack() { view->backActivated(); } - QStringList getCategories(); - QStringList getGenres(); Q_SIGNALS: void add(const QStringList &streams, bool replace, quint8 priorty); @@ -62,19 +60,16 @@ public Q_SLOTS: void controlActions(); private Q_SLOTS: - void importWebStreams(); void importXml(); void exportXml(); void add(); + void addToFavourites(); void edit(); void searchItems(); void itemDoubleClicked(const QModelIndex &index); - void downloading(bool dl); - void checkIfBusy(); private: void addItemsToPlayQueue(const QModelIndexList &indexes, bool replace, quint8 priorty=0); - void initWebStreams(); private: bool enabled; @@ -83,8 +78,7 @@ private: Action *exportAction; Action *addAction; Action *editAction; - QAction *importIceCastAction; - QAction *importSomaFmCastAction; + Action *addToFavouritesAction; StreamsProxyModel proxy; }; diff --git a/streams/streamspage.ui b/streams/streamspage.ui index f454bf877..6f106ce41 100644 --- a/streams/streamspage.ui +++ b/streams/streamspage.ui @@ -36,8 +36,18 @@ 0 - - + + + Qt::Horizontal + + + + 16 + 20 + + + + @@ -54,11 +64,6 @@ QTreeView

itemview.h
- - GenreCombo - QComboBox -
genrecombo.h
-
StatusLabel QLabel diff --git a/streams/webstreams.cpp b/streams/webstreams.cpp deleted file mode 100644 index d7f72df88..000000000 --- a/streams/webstreams.cpp +++ /dev/null @@ -1,585 +0,0 @@ -/* - * Cantata - * - * Copyright (c) 2011-2013 Craig Drummond - * - * ---- - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "webstreams.h" -#include "networkaccessmanager.h" -#include "streamsmodel.h" -#include "localize.h" -#include "song.h" -#include "qjson/parser.h" -#include -#include -#if QT_VERSION >= 0x050000 -#include -#endif - -static const char * constDiApiUsername="ephemeron"; -static const char * constDiApiPassword="dayeiph0ne@pp"; -//static const QString constDiAuthUrl=QLatin1String("http://api.audioaddict.com/v1/%1/members/authenticate"); -static const QString constDiChannelListUrl=QLatin1String("http://api.v2.audioaddict.com/v1/%1/mobile/batch_update?asset_group_key=mobile_icons&stream_set_key="); -static const QString constDiStdUrl=QLatin1String("http://%1/public3/%2.pls"); - -enum Type { - WS_IceCast, - WS_SomaFm, - WS_Radio, - WS_DigitallyImported, - - WS_Count -}; - -static QList providers; - -QList WebStream::getAll() -{ - if (providers.isEmpty()) { - QFile f(":streams.xml"); - if (f.open(QIODevice::ReadOnly)) { - QXmlStreamReader doc(&f); - while (!doc.atEnd()) { - doc.readNext(); - - if (doc.isStartElement() && QLatin1String("stream")==doc.name()) { - QString name=doc.attributes().value("name").toString(); - QString icon=doc.attributes().value("icon").toString(); - QString region=doc.attributes().value("region").toString(); - unsigned int type=doc.attributes().value("type").toString().toUInt(); - QUrl url=QUrl(doc.attributes().value("url").toString()); - switch (type) { - case WS_IceCast: providers.append(new IceCastWebStream(name, icon, region, url)); break; - case WS_SomaFm: providers.append(new SomaFmWebStream(name, icon, region, url)); break; - case WS_Radio: providers.append(new RadioWebStream(name, icon, region, url)); break; - case WS_DigitallyImported: providers.append(new DigitallyImportedWebStream(name, icon, region, url)); break; - default: break; - } - } - } - } - } - return providers; -} - -WebStream * WebStream::get(const QUrl &url) -{ - foreach (WebStream *p, providers) { - if (p->url==url) { - return p; - } - } - - return 0; -} - -void WebStream::download() -{ - if (job) { - return; - } - - QNetworkRequest req(channelListUrl()); - addHeaders(req); - job=NetworkAccessManager::self()->get(req); - connect(job, SIGNAL(finished()), this, SLOT(downloadFinished())); -} - -void WebStream::cancelDownload() -{ - if (job) { - disconnect(job, SIGNAL(finished()), this, SLOT(downloadFinished())); - job->deleteLater(); - job=0; - } -} - -void WebStream::downloadFinished() -{ - QNetworkReply *reply=qobject_cast(sender()); - if (!reply) { - return; - } - - if(QNetworkReply::NoError==reply->error()) { - QList streams=parse(reply); - - if (streams.isEmpty()) { - emit error(i18nc("message \n url", "No streams downloaded from %1\n(%2)").arg(name).arg(url.toString())); - } else { - StreamsModel::self()->add(name, icon, streams); - } - } else { - emit error(i18nc("message \n url", "Failed to download streams from %1\n(%2)").arg(name).arg(url.toString())); - } - job=0; - - reply->deleteLater(); - emit finished(); -} - -static QString fixSingleGenre(const QString &g) -{ - if (g.length()) { - QString genre=Song::capitalize(g); - genre[0]=genre[0].toUpper(); - genre=genre.trimmed(); - genre=genre.replace(QLatin1String("Afrocaribbean"), QLatin1String("Afro-Caribbean")); - genre=genre.replace(QLatin1String("Afro Caribbean"), QLatin1String("Afro-Caribbean")); - if (genre.length() < 3 || - QLatin1String("The")==genre || QLatin1String("All")==genre || - QLatin1String("Various")==genre || QLatin1String("Unknown")==genre || - QLatin1String("Misc")==genre || QLatin1String("Mix")==genre || QLatin1String("100%")==genre || - genre.contains("ÃÂ") || // Broken unicode. - genre.contains(QRegExp("^#x[0-9a-f][0-9a-f]"))) { // Broken XML entities. - return QString(); - } - - if (genre==QLatin1String("R&B") || genre==QLatin1String("R B") || genre==QLatin1String("Rnb") || genre==QLatin1String("RnB")) { - return QLatin1String("R&B"); - } - if (genre==QLatin1String("Classic") || genre==QLatin1String("Classical")) { - return QLatin1String("Classical"); - } - if (genre==QLatin1String("Christian") || genre.startsWith(QLatin1String("Christian "))) { - return QLatin1String("Christian"); - } - if (genre==QLatin1String("Rock") || genre.startsWith(QLatin1String("Rock "))) { - return QLatin1String("Rock"); - } - if (genre==QLatin1String("Easy") || genre==QLatin1String("Easy Listening")) { - return QLatin1String("Easy Listening"); - } - if (genre==QLatin1String("Hit") || genre==QLatin1String("Hits") || genre==QLatin1String("Easy listening")) { - return QLatin1String("Hits"); - } - if (genre==QLatin1String("Hip") || genre==QLatin1String("Hiphop") || genre==QLatin1String("Hip Hop") || genre==QLatin1String("Hop Hip")) { - return QLatin1String("Hip Hop"); - } - if (genre==QLatin1String("News") || genre==QLatin1String("News talk")) { - return QLatin1String("News"); - } - if (genre==QLatin1String("Top40") || genre==QLatin1String("Top 40") || genre==QLatin1String("40Top") || genre==QLatin1String("40 Top")) { - return QLatin1String("Top 40"); - } - - QStringList small=QStringList() << QLatin1String("Adult Contemporary") << QLatin1String("Alternative") - << QLatin1String("Community Radio") << QLatin1String("Local Service") - << QLatin1String("Multiultural") << QLatin1String("News") - << QLatin1String("Student") << QLatin1String("Urban"); - - foreach (const QString &s, small) { - if (genre==s || genre.startsWith(s+" ") || genre.endsWith(" "+s)) { - return s; - } - } - - // Convert XX's to XXs - if (genre.contains(QRegExp("^[0-9]0's$"))) { - genre=genre.remove('\''); - } - if (genre.length()>25 && (0==genre.indexOf(QRegExp("^[0-9]0s ")) || 0==genre.indexOf(QRegExp("^[0-9]0 ")))) { - int pos=genre.indexOf(' '); - if (pos>1) { - genre=genre.left(pos); - } - } - // Convert 80 -> 80s. - return genre.contains(QRegExp("^[0-9]0$")) ? genre + 's' : genre; - } - return g; -} - -static QString fixGenres(const QString &genre) -{ - QString g(genre); - int pos=g.indexOf("3) { - g=g.left(pos); - } - pos=g.indexOf("("); - if (pos>3) { - g=g.left(pos); - } - - g=Song::capitalize(g); - QStringList genres=g.split('|', QString::SkipEmptyParts); - QStringList allGenres; - - foreach (const QString &genre, genres) { - allGenres+=genre.split('/', QString::SkipEmptyParts); - } - - QStringList fixed; - foreach (const QString &genre, allGenres) { - fixed.append(fixSingleGenre(genre)); - } - return fixed.join(StreamsModel::constGenreSeparator); -} - -static void trimGenres(QMultiHash &genres) -{ - QSet genreSet = genres.keys().toSet(); - foreach (const QString &genre, genreSet) { - if (genres.count(genre) < 3) { - const QList &smallGnre = genres.values(genre); - foreach (StreamsModel::StreamItem* s, smallGnre) { - s->genres.remove(genre); - } - } - } -} - -QList IceCastWebStream::parse(QIODevice *dev) -{ - QList streams; - QString name; - QUrl url; - QString genre; - QSet names; - QMultiHash genres; - int level=0; - QXmlStreamReader doc(dev); - - while (!doc.atEnd()) { - doc.readNext(); - - if (doc.isStartElement()) { - ++level; - if (2==level && QLatin1String("entry")==doc.name()) { - name=QString(); - url=QUrl(); - genre=QString(); - } else if (3==level) { - if (QLatin1String("server_name")==doc.name()) { - name=doc.readElementText(); - --level; - } else if (QLatin1String("genre")==doc.name()) { - genre=fixGenres(doc.readElementText()); - --level; - } else if (QLatin1String("listen_url")==doc.name()) { - url=QUrl(doc.readElementText()); - --level; - } - } - } else if (doc.isEndElement()) { - if (2==level && QLatin1String("entry")==doc.name() && !name.isEmpty() && url.isValid() && !names.contains(name)) { - StreamsModel::StreamItem *item=new StreamsModel::StreamItem(name, genre, QString(), url); - streams.append(item); - foreach (const QString &genre, item->genres) { - genres.insert(genre, item); - } - names.insert(item->name); - } - --level; - } - } - trimGenres(genres); - return streams; -} - -QList SomaFmWebStream::parse(QIODevice *dev) -{ - QList streams; - QSet names; - QString streamFormat; - QMultiHash genres; - QString name; - QUrl url; - QString genre; - int level=0; - QXmlStreamReader doc(dev); - - while (!doc.atEnd()) { - doc.readNext(); - - if (doc.isStartElement()) { - ++level; - if (2==level && QLatin1String("channel")==doc.name()) { - name=QString(); - url=QUrl(); - genre=QString(); - streamFormat=QString(); - } else if (3==level) { - if (QLatin1String("title")==doc.name()) { - name=doc.readElementText(); - --level; - } else if (QLatin1String("genre")==doc.name()) { - genre=fixGenres(doc.readElementText()); - --level; - } else if (QLatin1String("fastpls")==doc.name()) { - if (streamFormat.isEmpty() || QLatin1String("mp3")!=streamFormat) { - streamFormat=doc.attributes().value("format").toString(); - url=QUrl(doc.readElementText()); - --level; - } - } - } - } else if (doc.isEndElement()) { - if (2==level && QLatin1String("channel")==doc.name() && !name.isEmpty() && url.isValid() && !names.contains(name)) { - StreamsModel::StreamItem *item=new StreamsModel::StreamItem(name, genre, QString(), url); - streams.append(item); - foreach (const QString &genre, item->genres) { - genres.insert(genre, item); - } - names.insert(item->name); - } - --level; - } - } - - trimGenres(genres); - return streams; -} - -struct Stream { - enum Format { - Unknown, - WMA, - OGG, - MP3, - AAC - }; - - Stream() : format(Unknown), bitrate(0) { } - bool operator<(const Stream &o) const { - return weight()>o.weight(); - } - - int weight() const { - return ((bitrate&0xff)<<8)+(format&0x0f); - } - - void setFormat(const QString &f) { - if (QLatin1String("mp3")==f.toLower()) { - format=MP3; - } else if (QLatin1String("aacplus")==f.toLower()) { - format=AAC; - } else if (QLatin1String("ogg vorbis")==f.toLower()) { - format=OGG; - } else if (QLatin1String("windows media")==f.toLower()) { - format=WMA; - } else { - format=Unknown; - } - } - - QUrl url; - Format format; - unsigned int bitrate; -}; - -struct StationEntry { - StationEntry() { clear(); } - void clear() { name=location=comment=QString(); streams.clear(); } - QString name; - QString location; - QString comment; - QList streams; -}; - -static QString getString(QString &str, const QString &start, const QString &end) -{ - QString rv; - int b=str.indexOf(start); - int e=-1==b ? -1 : str.indexOf(end, b+start.length()); - if (-1!=e) { - rv=str.mid(b+start.length(), e-(b+start.length())).trimmed(); - str=str.mid(e+end.length()); - } - return rv; -} - -QList RadioWebStream::parse(QIODevice *dev) -{ - QList streams; -// QMultiHash genres; - QSet names; - - if (dev) { - StationEntry entry; - - while (!dev->atEnd()) { - QString line=dev->readLine().trimmed().replace("> <", "><").replace("
", "").replace("
", "
") - .replace(" ,", ","); - if (""==line) { - entry.clear(); - } else if (line.startsWith("", ""); - QString extra=getString(line, "", ""); - if (!extra.isEmpty()) { - entry.name+=" "+extra; - } - } else { - // Station URLs... - QString url; - QString bitrate; - int idx=0; - do { - url=getString(line, "href=\"", "\""); - bitrate=getString(line, ">", " Kbps"); - bool sameFormatAsLast=line.startsWith(","); - if (!url.isEmpty() && !bitrate.isEmpty() && !url.startsWith(QLatin1String("javascript")) && idx")) { - if (entry.location.isEmpty()) { - entry.location=getString(line, "", ""); - } else { - entry.comment=getString(line, "", ""); - } - } else if (""==line) { - if (entry.streams.count()) { - qSort(entry.streams); - QString name; - QUrl url=entry.streams.at(0).url; - - if (QLatin1String("National")==entry.location || entry.name.endsWith("("+entry.location+")")) { - name=entry.name; - } else if (entry.name.endsWith(")")) { - name=entry.name.left(entry.name.length()-1)+", "+entry.location+")"; - } else { - name=entry.name+" ("+entry.location+")"; - } - - if (!names.contains(name) && !name.isEmpty() && url.isValid()) { - QString genre=fixGenres(entry.comment); - StreamsModel::StreamItem *item=new StreamsModel::StreamItem(name, genre, QString(), url); - streams.append(item); -// foreach (const QString &genre, item->genres) { -// genres.insert(genre, item); -// } - names.insert(item->name); - } - } - } - } - } - -// trimGenres(genres); - return streams; -} - -DigitallyImportedWebStream::DigitallyImportedWebStream(const QString &n, const QString &i, const QString &r, const QUrl &u) - : WebStream(n, i, r, u) -// , premiumStream(-1) -{ - QStringList parts=u.host().split("."); - if (3==parts.count()) { - serviceName=parts.at(1); - } - listenHost=QLatin1String("listen.")+u.host().remove("www."); -} - -QList DigitallyImportedWebStream::parse(QIODevice *dev) -{ - QList streams; - QJson::Parser parser; - QVariantMap data = parser.parse(dev).toMap(); - - if (data.contains("channel_filters")) { - QVariantList filters = data["channel_filters"].toList(); - - foreach (const QVariant &filter, filters) { - // Find the filter called "All" - QVariantMap filterMap = filter.toMap(); - if (filterMap.value("name", QString()).toString() != "All") { - continue; - } - - // Add all its stations to the result - QVariantList channels = filterMap.value("channels", QVariantList()).toList(); - foreach (const QVariant &channel, channels) { - QVariantMap channelMap = channel.toMap(); - QString u=constDiStdUrl.arg(listenHost).arg(channelMap.value("key").toString()); - - StreamsModel::StreamItem *item=new StreamsModel::StreamItem(channelMap.value("name").toString(), QString(), QString(), QUrl(u)); - streams.append(item); - } - - break; - } - } - - return streams; -} - -QUrl DigitallyImportedWebStream::channelListUrl() const -{ - return QUrl(constDiChannelListUrl.arg(serviceName)); -} - -void DigitallyImportedWebStream::addHeaders(QNetworkRequest &r) -{ - #if QT_VERSION < 0x050000 - r.setRawHeader("Authorization", "Basic "+QString("%1:%2").arg(constDiApiUsername, constDiApiPassword).toAscii().toBase64()); - #else - r.setRawHeader("Authorization", "Basic "+QString("%1:%2").arg(constDiApiUsername, constDiApiPassword).toLatin1().toBase64()); - #endif -} - -//QUrl DigitallyImportedWebStream::modifyUrl(const QUrl &u) const -//{ -// if (premiumHash.isEmpty()) { -// return u; -// } -// QUrl modified(u); -// #if QT_VERSION < 0x050000 -// QUrl &query=url; -// #else -// QUrlQuery query; -// #endif -// QString host=modified.host(); -// if (2==premiumStream || premiumStream<0 || premiumStream>2) { -// host=host.replace("public3", "premium"); -// } else if (1==premiumStream) { -// host=host.replace("public3", "premium_medium"); -// } else if (0==premiumStream) { -// host=host.replace("public3", "premium_high"); -// } -// modified.setHost(host); -// query.addQueryItem("hash", premiumHash); -// #if QT_VERSION >= 0x050000 -// modified.setQuery(query); -// #endif -// return modified; -//} diff --git a/streams/webstreams.h b/streams/webstreams.h deleted file mode 100644 index c37e19aac..000000000 --- a/streams/webstreams.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Cantata - * - * Copyright (c) 2011-2013 Craig Drummond - * - * ---- - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef WEBSTREAMS_H -#define WEBSTREAMS_H - -#include "streamsmodel.h" -#include -#include - -class QNetworkReply; -class QNetworkRequest; - -class WebStream : public QObject -{ - Q_OBJECT -public: - static QList getAll(); - static WebStream * get(const QUrl &url); - - WebStream(const QString &n, const QString &i, const QString &r, const QUrl &u) - : name(n),icon(i), region(r), url(u), job(0) { } - virtual ~WebStream() { } - - virtual QList parse(QIODevice *dev)=0; - - const QString & getName() const { return name; } - const QString & getIcon() const { return icon; } - const QString & getRegion() const { return region; } - const QUrl & getUrl() const { return url; } - bool isDownloading() const { return 0!=job; } - void download(); - void cancelDownload(); -// virtual QUrl modifyUrl(const QUrl &u) const { return u; } - -Q_SIGNALS: - void finished(); - void error(const QString &); - -private Q_SLOTS: - void downloadFinished(); - -private: - virtual QUrl channelListUrl() const { return url; } - virtual void addHeaders(QNetworkRequest &) { } - -protected: - QString name; - QString icon; - QString region; - QUrl url; - QNetworkReply *job; -}; - -class IceCastWebStream : public WebStream -{ -public: - IceCastWebStream(const QString &n, const QString &i, const QString &r, const QUrl &u) - : WebStream(n, i, r, u) { } - QList parse(QIODevice *dev); -}; - -class SomaFmWebStream : public WebStream -{ -public: - SomaFmWebStream(const QString &n, const QString &i, const QString &r, const QUrl &u) - : WebStream(n, i, r, u) { } - QList parse(QIODevice *dev); -}; - -class RadioWebStream : public WebStream -{ -public: - RadioWebStream(const QString &n, const QString &i, const QString &r, const QUrl &u) - : WebStream(n, i, r, u) { } - QList parse(QIODevice *dev); -}; - -class DigitallyImportedWebStream: public WebStream -{ -public: - DigitallyImportedWebStream(const QString &n, const QString &i, const QString &r, const QUrl &u); - QList parse(QIODevice *dev); - -private: - QUrl channelListUrl() const; - void addHeaders(QNetworkRequest &r); -// QUrl modifyUrl(const QUrl &u) const; - -private: - QString listenHost; - QString serviceName; -// QString premiumHash; -// int premiumStream; -}; - -#endif