From 5257ffdad8c8defdc41cca24a28b401578207e37 Mon Sep 17 00:00:00 2001 From: Pauljd Date: Mon, 2 Nov 2026 11:19:07 +0000 Subject: [PATCH] Bring back the now marker without crossing titles, new icons and app icon (0.65.0) Co-Authored-By: Claude Opus 5.5 (1M context) --- VERIFICATION-0.65.md | 12 ++++++ android/app/build.gradle.kts | 4 +- android/app/src/main/AndroidManifest.xml | 2 +- .../main/java/tv/orbit/classic/EmbyClient.kt | 2 +- .../main/java/tv/orbit/classic/GuideGrid.kt | 19 +++++++-- .../main/java/tv/orbit/classic/HomeScreen.kt | 2 +- .../tv/orbit/classic/SecureMediaDataSource.kt | 2 +- .../res/drawable-nodpi/orbit_app_icon.webp | Bin 0 -> 10822 bytes .../main/res/drawable-nodpi/orbit_banner.png | Bin 31233 -> 21751 bytes .../res/drawable-nodpi/orbit_icon_all.webp | Bin 2052 -> 2512 bytes .../drawable-nodpi/orbit_icon_cartoons.webp | Bin 0 -> 2128 bytes .../orbit_icon_documentaries.webp | Bin 4632 -> 2178 bytes .../app/src/main/res/drawable/orbit_icon.xml | 1 - .../java/tv/orbit/classic/GuideGridTest.kt | 8 ++++ design/interface/build-new-icons.py | 39 ++++++++++++++++++ design/interface/icons/orbit_app_icon.svg | 1 + design/interface/icons/orbit_banner.svg | 1 + design/interface/icons/orbit_icon_all_v2.svg | 1 + .../icons/orbit_icon_cartoons_v2.svg | 1 + .../icons/orbit_icon_documentaries_v2.svg | 1 + 20 files changed, 85 insertions(+), 11 deletions(-) create mode 100644 VERIFICATION-0.65.md create mode 100644 android/app/src/main/res/drawable-nodpi/orbit_app_icon.webp create mode 100644 android/app/src/main/res/drawable-nodpi/orbit_icon_cartoons.webp delete mode 100644 android/app/src/main/res/drawable/orbit_icon.xml create mode 100644 design/interface/build-new-icons.py create mode 100644 design/interface/icons/orbit_app_icon.svg create mode 100644 design/interface/icons/orbit_banner.svg create mode 100644 design/interface/icons/orbit_icon_all_v2.svg create mode 100644 design/interface/icons/orbit_icon_cartoons_v2.svg create mode 100644 design/interface/icons/orbit_icon_documentaries_v2.svg diff --git a/VERIFICATION-0.65.md b/VERIFICATION-0.65.md new file mode 100644 index 0000000..018218c --- /dev/null +++ b/VERIFICATION-0.65.md @@ -0,0 +1,12 @@ +# Orbit TV 0.65.0: now marker and new icons + +- Guide: a thin bar along the foot of what's on now, ending at the current time on every row, and a small tick in the time header. It doesn't cross any title. Both go away when the guide moves to later times. +- Icons: Cartoons has its own (comic burst), Documentaries is a film camera on a tripod, All Channels has the Orbit crescent and ring inside the TV. +- App icon and TV banner now use the real Orbit mark. The old placeholder vector is removed. +- Sources: `design/interface/build-new-icons.py`; the first icon set is left as it was. + +Checked: build, lint and 252 unit tests pass (new test for the now position). Icons, app icon and banner checked by eye on a contact sheet at full and small size. + +Not checked on the TV: the marker on screen, and how the launcher shows the new icon and banner. The launcher may cache the old art until it refreshes. + +Catalogue and schedule code unchanged. diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 3a25ab0..2db47cd 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -9,8 +9,8 @@ android { applicationId = "tv.orbit.classic" minSdk = 26 targetSdk = 36 - versionCode = 65 - versionName = "0.64.0-film-clash-fix" + versionCode = 66 + versionName = "0.65.0-now-marker-new-icons" } buildFeatures { compose = true } compileOptions { sourceCompatibility = JavaVersion.VERSION_17; targetCompatibility = JavaVersion.VERSION_17 } diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 581f284..7cb1a2b 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -2,7 +2,7 @@ - + diff --git a/android/app/src/main/java/tv/orbit/classic/EmbyClient.kt b/android/app/src/main/java/tv/orbit/classic/EmbyClient.kt index 7378d8e..7b84b1f 100644 --- a/android/app/src/main/java/tv/orbit/classic/EmbyClient.kt +++ b/android/app/src/main/java/tv/orbit/classic/EmbyClient.kt @@ -66,7 +66,7 @@ internal class HttpsEmbyTransport(internal val deviceId: String = UUID.randomUUI connection.connectTimeout = 10_000 connection.readTimeout = request.readTimeoutMs ?: if (request.path == "/Sessions/Logout") 5_000 else 15_000 connection.setRequestProperty("Accept", "application/json") - connection.setRequestProperty("X-Emby-Authorization", "Emby Client=\"Orbit TV\", Device=\"Orbit TV\", DeviceId=\"$deviceId\", Version=\"0.64.0\"") + connection.setRequestProperty("X-Emby-Authorization", "Emby Client=\"Orbit TV\", Device=\"Orbit TV\", DeviceId=\"$deviceId\", Version=\"0.65.0\"") request.token?.let { connection.setRequestProperty("X-Emby-Token", it) } if (request.method == "POST") { val bytes = request.body.orEmpty().toByteArray(Charsets.UTF_8) diff --git a/android/app/src/main/java/tv/orbit/classic/GuideGrid.kt b/android/app/src/main/java/tv/orbit/classic/GuideGrid.kt index 54f134f..56a110e 100644 --- a/android/app/src/main/java/tv/orbit/classic/GuideGrid.kt +++ b/android/app/src/main/java/tv/orbit/classic/GuideGrid.kt @@ -71,6 +71,10 @@ internal fun guideWatchableCells(cells: List, nowMs: Long): List= windowEnd) null else (nowMs - windowStart).toFloat() / (windowEnd - windowStart) + /** Below this a title can't fit, so the block shows it's cut short rather than sitting empty. */ private val GuideTitleMinWidth = 34.dp @@ -108,6 +112,7 @@ internal fun GuideGrid(channels: List, selectedNumber: Int, modif BackHandler(onBack = onBack) val windowStart = guideWindowStart(now, slotsAhead) val windowEnd = windowStart + GUIDE_SLOTS * GUIDE_SLOT_MS + val nowFraction = guideNowFraction(now, windowStart, windowEnd) val channel = channels[row.coerceIn(channels.indices)] val focused = channel.at(maxOf(cursor, now)) fun keepCursorInWindow(time: Long) { @@ -136,8 +141,11 @@ internal fun GuideGrid(channels: List, selectedNumber: Int, modif } Row(Modifier.fillMaxWidth().height(20.dp).background(Panel), verticalAlignment = Alignment.CenterVertically) { Text(guideDayPrefix(windowStart, now).trim().ifEmpty { "$title, today" }, Modifier.width(136.dp).padding(start = 8.dp), color = Color.White, fontSize = 12.sp, fontWeight = FontWeight.SemiBold) - Row(Modifier.weight(1f)) { - repeat(GUIDE_SLOTS) { Text(clock(windowStart + it * GUIDE_SLOT_MS), Modifier.weight(1f).padding(start = 4.dp), color = Color.White, fontSize = 12.sp, fontWeight = FontWeight.SemiBold) } + BoxWithConstraints(Modifier.weight(1f).fillMaxHeight()) { + Row(Modifier.fillMaxSize(), verticalAlignment = Alignment.CenterVertically) { + repeat(GUIDE_SLOTS) { Text(clock(windowStart + it * GUIDE_SLOT_MS), Modifier.weight(1f).padding(start = 4.dp), color = Color.White, fontSize = 12.sp, fontWeight = FontWeight.SemiBold) } + } + if (nowFraction != null) Box(Modifier.align(Alignment.BottomStart).offset(x = maxWidth * nowFraction - 1.dp).size(2.dp, 5.dp).background(Color.White)) } } BoxWithConstraints(Modifier.fillMaxWidth().weight(1f)) { @@ -180,11 +188,14 @@ internal fun GuideGrid(channels: List, selectedNumber: Int, modif val isFocus = gridFocused && index == row && cell.show.startMs == focused.startMs val onNow = cell.show.startMs <= now val cellWidth = maxWidth * cell.widthFraction - 3.dp + // Runs along the foot of what's on now, so the time reads down the rows without crossing a title. + val elapsed = if (onNow && nowFraction != null) (maxWidth * (nowFraction - cell.startFraction)).coerceIn(0.dp, cellWidth.coerceAtLeast(0.dp)) else 0.dp Box(Modifier.offset(x = maxWidth * cell.startFraction).width(cellWidth.coerceAtLeast(1.dp)).fillMaxHeight() - .background(if (isFocus) Yellow else if (onNow) Blue else Panel).padding(horizontal = 6.dp), contentAlignment = Alignment.CenterStart) { + .background(if (isFocus) Yellow else if (onNow) Blue else Panel), contentAlignment = Alignment.CenterStart) { val runsOn = cell.show.endMs > windowEnd val ink = if (isFocus) Navy else Color.White - Row(verticalAlignment = Alignment.CenterVertically) { + if (elapsed > 0.dp) Box(Modifier.align(Alignment.BottomStart).width(elapsed).height(3.dp).background(ink)) + Row(Modifier.padding(horizontal = 6.dp), verticalAlignment = Alignment.CenterVertically) { Text(if (cellWidth >= GuideTitleMinWidth) guideTitleParts(cell.show.media.item.title).first else "…", Modifier.weight(1f, fill = false), color = ink, fontSize = 13.sp, fontWeight = if (isFocus || onNow) FontWeight.SemiBold else FontWeight.Normal, maxLines = 1, overflow = TextOverflow.Ellipsis) if (runsOn && cellWidth >= GuideTitleMinWidth) Text(" ►", color = ink, fontSize = 9.sp) diff --git a/android/app/src/main/java/tv/orbit/classic/HomeScreen.kt b/android/app/src/main/java/tv/orbit/classic/HomeScreen.kt index f599b8b..1c13846 100644 --- a/android/app/src/main/java/tv/orbit/classic/HomeScreen.kt +++ b/android/app/src/main/java/tv/orbit/classic/HomeScreen.kt @@ -27,7 +27,7 @@ internal enum class ChannelCategory(val label: String, val icon: Int) { Entertainment("Entertainment", R.drawable.orbit_icon_entertainment), Movies("Movies", R.drawable.orbit_icon_movies), Comedy("Comedy", R.drawable.orbit_icon_comedy), - Cartoons("Cartoons", R.drawable.orbit_icon_kids), + Cartoons("Cartoons", R.drawable.orbit_icon_cartoons), Kids("Kids", R.drawable.orbit_icon_kids), Documentaries("Documentaries", R.drawable.orbit_icon_documentaries), Sport("Sport", R.drawable.orbit_icon_sport) diff --git a/android/app/src/main/java/tv/orbit/classic/SecureMediaDataSource.kt b/android/app/src/main/java/tv/orbit/classic/SecureMediaDataSource.kt index 62f2bad..30d83dc 100644 --- a/android/app/src/main/java/tv/orbit/classic/SecureMediaDataSource.kt +++ b/android/app/src/main/java/tv/orbit/classic/SecureMediaDataSource.kt @@ -33,7 +33,7 @@ internal class SecureMediaDataSource(private val session: EmbySampleSession) : B next.instanceFollowRedirects = false next.connectTimeout = 10_000 next.readTimeout = 20_000 - next.setRequestProperty("User-Agent", "OrbitTV/0.64.0") + next.setRequestProperty("User-Agent", "OrbitTV/0.65.0") next.setRequestProperty("Accept-Encoding", "identity") session.mediaHeaders(address).forEach { (key, value) -> next.setRequestProperty(key, value) } if (dataSpec.position != 0L || dataSpec.length != C.LENGTH_UNSET.toLong()) { diff --git a/android/app/src/main/res/drawable-nodpi/orbit_app_icon.webp b/android/app/src/main/res/drawable-nodpi/orbit_app_icon.webp new file mode 100644 index 0000000000000000000000000000000000000000..ed7eac02c67088677e1e10c65f533b6147f8847e GIT binary patch literal 10822 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

&ja=`;kuslU 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-nodpi/orbit_banner.png b/android/app/src/main/res/drawable-nodpi/orbit_banner.png index 7fd1f0f8000113454407bc8d2f1ba26fff95b8aa..e28bebde85cd9a19297d4eeda3e969bed7bc47b2 100644 GIT binary patch literal 21751 zcmaHT2{@GR_r4`twj{}35h9I!NwO0WlAS?9h_PfFyBHNx*|+SJZIGQAA{1flvdcF1 zZS33snLgj;_uc;2r7M@2dEe(f&pG$G&;6V;ueBelQlDo&Pe4FGt#)7O5di^FAOQj4 zGjbyEm;2h|qyz+y(P~QakG)b>Q9db`T58VB8xQF{jKpPYl%LXRm|m@eW?m%}qnL^$ zf5lBiD#Pq1S3f22d-KyLFKK2fJ~bsFp^Fg9P91q2(e@8l=IrZBlN-6u*S;eB<`!qI z>Uv?}NOhe?q;Fhrr(bv6Oz-3_q)X_FUYeGSh_3FscdbvpG^;4?5jTs`oQmZa->2b) zjjbcXmPQc_3MRJ(;z)n;mWe)LWqcBvFx_}bNW^re;QbhtYWDQ9{ckerA&D|ki^w0@ zK`R39vVK1Pb^~6xnhwd3c>DmX=X7beh-nvB(fN@KyLG>H>JiLou#Pui)X z_^B0;xB1@*!w_MF2^f>7^8|hrs9yaLXgXAj`IcWOB*P${;eL2(2^`xIOz`|1JW&dF z1E&(L5;3Dt_*)UF^}dqn?fsXSf?~0AC<~Y(wtyN1y+k-nes~dHVMGU4UVE4EX+!fK zwF0Dl`~vvnC?}bP0t~HN+rwhbE%cVM^g50?4e=RE(yj~LzX+$y3c;9QW5$}ElH(WB z83KJ=EoZKP{3!YkKC>Vx~b8(G>)c4>h;3 z1S%$$iqpZf)HqvRuIc}FNy)Coz+KUAe2#y4 zi3eh4Y_{Svzpri(6e4LL-$4uBqbA~YD;r!ujN0NdO*&)z>zg8Xi$%#%wS{u+S7e{@ z5+nyh=SlyE&v{_tEeW2V2e0;I)6IYt?_-vAvmFtfy;pJh4%G6H;n53+#xJ3e$H2n} zY?QGKHHwJLCW!-Z171%>;Omjrrg0=h37CS;^DifOMP9p@zGBE2+85POhG>7>Y64!< zQ7!fPR$$-T2?8+&bZsyudHpHrUwgWwM*J%|ui_%=Q^t1A6N0{0<`AeK@cLc^)P@SI zX*2u%9o*rpey_m-6(fPQZ%+=?B;W>(JC`NeOSqrSo79urmY%^dMpmX2C;a3X(_#DakP59p7S@*bTsa&GfJ4 zd^Mnny(FGgDkvlYo-DTVI*w=u-fOYQ5B49J(|9GM;vL#mq@D{o9#rw;8$%GLVC)kE z>Ynn5jpTI@=Cy+taKR|*4CEK=PG$%loB}n{%24;81`B0^K9ZX(7tlbYOSEg?!Acn` zc8^-OhcYIwe&YtNRk(PI3MP9lwJG!mKB9AyDNvuBgMgRH*j@G6F4xaw6ce>U#7~8b z?UbyJzQKfpg1G$Ft&x6wkZI~S74e!GCWyXlQvj>b>m#t4 zCV;ynCI~mrr~^RiIG_Cj+kTBEQ0#V}6R;`2qcWCcX(#(@ufd;q4=Nv~aJc4|l{jrl zApX=*cx{J>C9zDfCJdU^q>jH}#ZA>e4hBG}iPqwXky`;->C*D=cxJ^Ufnb7OU&#=S zb3if4gmYkKI7NWevC`k z#zn@#KXI#@L>b=hf_jBc6bm*fZbNu#|siR^DZ_ocUm_(c?hQMQOr;Het z6oxR&DFR!yRMynxoRVBG?v8iPXolmC8$^w_>!JTU5%jk3hjAU{6Aj}Rms3QJl0$tI zH9Q0^icb@lr7Z=rkxU}2G!_d`hyv0zOCNW5Nxv67Z@#7!{Obe)7&?53lCZ=LX|UA8 z@0!&Fg6;nVBe88YYhbDms!=7k-fa!PjV=EYi>+PGbb)4fWj-DP8~)c&)ciPYN>I1q z7z#EtRvag6g^zNc$o`BWo~jS%+ua)%2&DJmbnsY~P?7R4usMH>YOpD7><23pMDC+-%-VwI^^d#U2d zN?s!wGYo2a+qTH2)8KEgw?tvBx;Wul{ra1jPFf+8e3?&&wB|!;<*0D1cv!(eE!5ag~rYvD*H3 zxM#Gjp1K*EZ~zaA)bL&y!-L}+yM#B;^t*Gwf)a5qeS*!zkug=7q9DBfZZ_m=O8VmW zm;zM|7Kil0YU8)>F9zb_G1M@J8ujxE2!$CnPIv6ikD_cy=Z1EXGwapAz5cq*-2H~N!7 zNP3^}6o%s5{SXC_^fVTDfV!r?nK6|2hbrnhw)ar(isRkG%#U6L$tX|2jk9MlSfOEh zbAEER?8J6 z>L>MKQnlbTGX)C%t-O@9{Y}9@FchL5d=A`J9xEU$^78-U*aMNfj|=Ef&=`wXKU{cl zd=lq<{_OE>eojX27g@w0;OxtUT@endNX9#Bh^PN6WBv(Ll3JGvx}JE;b;PV&6}Zj+ z$A~O!aFpB_^=k}2?7!v#v$ScQtRYG5fb6Opwsg@c#hz|NG(VJ)FO9n0AHuD;Pb_!>g(*UW9k3qbt6icWxG&teRY%n z>UEC6*qzg6Lct7!5%s%o-GHH%fT1iEB<|n|GB-b`t(PlS;2jy!u)_a8T4(I(A--nbF#k8NO9mEEKbFBGh;h%d?tcdB+pHmn zTf>xhb^tZgnRf66R3@hG8lDFT7l(_m?#FyMO)|-peEY8e$Ah~5T@2*LSE+Ik?T4W- zXiQ+(b)32cJzQs+$WPNW!8sC;jVB|9#MUhX#(-_AUkGQ-FwkpX|9I)&Xoh*xbcS&_ zW;qnF-`sjfM7jZ{8K2$VjhJc#Gg#R0h#4LGUgWM6?#=9&3SD3{d{p$mQnY_K+#mzG zW{PMy#`7&E{K}h!*?%J)*^y#``ldxF?9TObjo_9c&~Msz^LS}%8dDzW?=#n2zW}#% zx_W~F-IHx84M$DfBS_w={6DNirI>s(;~xp)BAoc#jZj)0|2HG#|0SO?+DdNR{3Snm zf_mT^ptGqvRBH~%4MU$G14^#uJwH)~M5buUA0tAV@S(ZBoYVcrt2l(G*7^U2dClM*Q{Wu{*@OR{Exw0Rj6eH2a;^^#kj;L; zgvPdB6xR(dB}CwHV{&Vcc$g4(9{w-ThOfK+;cKtEoWJSEAOLkr z_GP}EZZP(zI^KCjf#Q`Y7T*blVW}V#YlIyk|8%k|wSU!Rj#z5#I`L)-lrPVee#~E> zr{w*eWIm>>Y3MuP{giIRH$QJgas$#I5sgz}UCa7=MkspEui*R7Tp9u`y!x1Bjf-&V z|L0u$Hr3>fYxw;07g=+feItjBwvX)qj^#E2OEauJDBc?poY$mI14wK!cE%z}OlBjEzznelF zBDMxfd>x7S@dfVmIk?`r3}ZhL)@p_u7`FcVp)e{t{Kq*-+2O|+nAaI+eU{`$)2+O^ zdD)YmHtD7|hP#N6Yn0LV|Jb24V)-`}*}WUmScl($N8N`hQ@kJpD4O+f2B)KlmazX$ zp-AS__U`@WVQmA{b>=09Vr22<7$Uq#6U~IRF3fa@?^C5dnD}I+#UZ9N zbO9J+KTXzeWyd{W&Rt#JDDYW!s9IEl_@JDT3y4z3hnb9*DZr=SC(_|$o>(+2E_~cY z=_uB_)f)Q(qk772;EvnkH}BM-0cT({Oz;K8%>yj;KrTD#o_7q+nw)^s9I}9QAb|6? zKWLEH8U`1rJew`fUD%s-Lz)Hb!Q2e)k%cT%(%1F`RlLR&{AmBq^pO>=?0RG?*``L_ z_;`O_nki^vQTJi8|C-&0c%hEA!$=Njx9ogMe-qcgJBWFJJsLLcIr(|F=v76fG&jp5@THfcqUh)M0mh9}cz}EYG9o(up3#Y9&(Q z%)`!iNGcgmhwLnW*9OHr-dBkR#cVSDlj83L!x#QkOMs#;M96NAEZSC_ci?x{6X;PS~8DoPpAt0;Vk02T~0>8HAjdz+~H zmP0r}C~lww+B)I24U6xD^OkS8J6m4-@qcOEQ!+ozlxb}o{A`XO0Tfj+ci~J{Ll0%Q z!2%XtJEG>}erheqo=nk0NFDIH9!`vj zNXaC`DOG=F^zNev{jlSWUL)E87*$P%!ufV0B~Ag2zq3F<SX*0PV{HKRej)J$$zaKOy+A&7$)7M5FhZVjZ)KUl!s6aQm^TJ3I(8%~TE#b8!< ztA3AfJpy*gr8%XI{rugP74WHlM~73UViLeBUs3nz?)xJWO`AU(1*<#Eqrdjvc>)nSQmp zpYUHi!nIh=rkb|#Z*={zFG0d*WOkFs{)<2a%er^{el`;Lc(G8sLG$YhigYd@x+3VY zdUPT7k$}DFkOL-3ubGuuk30R<*BWtGKj4oa*$m1=LEvi@^)BJta>FcTg0E-sH93&E zZg)9P>6U?f*0u2o$f(l5iPiFSbfAYnn}<|!4<>;dBwca8^}4 zlJ?IVpn~fi!E-%w)Q{}1zBn^yKh1#*xavlx|4i7z*(^GDj5PWtFXe^Ea=}G9pp^Xu z`JFeVaPW+3hMZWebt|SykU9!IKujA+fGz|dv(>E2S`D@x0+}LO;jPz%L zLOv0Fi?y+#wMenZBUmDQ#51bL z6f4p?g7vZ8F3#jQYTdUVmInlxT_}Tbu5}<6z2SZV2y*Jj0l(eJYWZLH1w&hh{i-xl zCD*?3dU!cKJKiY#?0Hx@BKQ;}AE0!PU|7;U91%dBlVSok_-3M$ON+YoQG+{D+NHPp zzW@5@)Bu_U=k5qNRd3Tb_kZMGah_Sz*AeK528J8HhGbY4UFHG3leIeQ{L0d;CROvH z%OFR_AQAKq^m1xgkga(z1=q<3?ilRPU&rxbfs(wL(^FKBTO=7$b)Kq;MAwaAmm8b7 zKKy}zTQhf}pg3*OX2q7=jG=J6dI*qyF|2rfu;TGd33SE&$1#>?Z`J;XQpa6G^C3!b zOu(JcO9B+*$NQkRv@-(*771W6nF_a~f5|33G8@oZsE!b7^{9B-mE>XDH>j0*3v6g< zu8v4az)mA!tRFn`%A?hjoHDKMvCF)gCRGxSi@UYmliak*!U7r%pPrEpd)LL(3-(i`cO@zTQCOS}k zk$s1eINfT^lgSB~)2~%Vkn(?hmG+(c9uU3CVw3uZ*~dP#+An>1dX#b2FYe?6p3yg8 zB$YZ6oqR+Tj48O+`|8?2bZZo=Po!bEIYlc0`*RZ(3+tg|4yoY({8yEa?xx_6e>><}aNbEu9sU zADpjvevrQnX<)FRHtjvzYKQUDQrHCC?HMaO+L-AQMxY4_E*g3^__R}+-)A0gf3S}7 z&fn$ijwns`-<1qTuVqM}fzxn!cj8`ejdixzaYjiy&bka~q&+?wd*j1iNZsV@+m;eq zfi#Y|@~9b6qGlUm?_}qqN|Bp6Lg0=D4gqn}J>d~fbJkT|_0Ha_-F)p2*c4&@vw}ZA z58y7N$&1uA?#yJ*otCA;AA;&vSLf}Dw(pY#Al>L5r#ACzA zQ&iO7Yi@Sc-ED{MA=7dw?*^GXuK*soH`o`o3go@s&|AKfsYsZ zEE+g!iO9Z5bA7sQ7Xv`lV>Cb`89d^t=m$lJ#EL3J@}kVV={pti4zdzh?91Vo^yl3b zG9`i_gvwbDQ+?G(*Wcn!Ml1N;1_Wr=`6ixUjA6`0E@Q2~M($0*e`RlS>Zx8*vQC2n z%U34xaikDfe!Xa<1Ks_}>A8k{nJNeK$3Nt;0~!=}BGaKQh-;uqX0{~oNXMV~MOgFG zuK5r2i&QklTQk+U?h<_uH9(}t-xP$@3$=?r$wM-Zw|DrvO}f{=EYHX|Mc)TMR$f#d zw5XZ{kBJaE#i*xEDbAfsgepjRWRZFTu-h?!3cg%A{gh7N)lU010S&l{_%j^iLEg2q zh%8gO>UGLOp|aRJ^)5fZ&&c7%2YPF_I!V_#rk2cG`Hpahoqj_<_Ea+@l3P}bGT4C; zf7Ww(YU;;KE?s=1y3qOC49dPbWNOy>2sIk;(%~sk>>y3+h;yfJvTssJ4Ru%~hA`MR zN3n?>C&!oAv+kvRvpSlkA;p&V{5;8c>k6dOrt^OIc&$Lnp`nU0KPlDS@3 z0irMb@|nEOXR4TI05f#-W6{Rp&2gZgw zhesmz@%#CsO`lf!>TEEU7wr<<&Vft;fNG4#1ZQaMh!a}K{4PyK+wD<$Fvoe{JN%sfxytuz#llwycs7w zMq*0Q#5I@GB^Wyeifqli{7y*OU-Gwiv_>52bJ;1qoJjF;>saf6CGbDpcy&!xCa-~zl@7xmCxGF&blhXN*WDZhYAn;VEK2uy)y#AHHD9N(|>fFM1e6N>a zaDVP1Jqhevq^Ha`*|2ea!Uu+yy^SOp27a@F8drOI6mY_+9FUd83GIVld1;@bQAS-~ zZNDEWU`ZbC3vouxq@7St{xGT+92W_oJ0n``Q(+q_Hi*c^B>S|3R6TUtsB4k8G(NAD z>FsMGhjn?k2mEKpE)7$iHz`mb(85HK>k>4m4GpfU%%^HX5Z=gh=yP%uLLk^C@7ScP z96KF6Z9_7mZgo*^vGy0q87pEs8aW)+Wd}}WlD9JLmUl-M^vP9zzxC<%h0@)%nH8L4 z^FW^*nJe4iYzT$od2=OZVS-hkWqQo@dcl2>JN;ez|H zKF(1vyOY&*j#Jzq_@{5l-FppN;O3|xs-l1SDv&)v(qsMlfPawGA*apJ$K%Ewyb z=<1b#m@wUd`K%m$uyCIOFEPVD*tY4%su z#}j798Y$DiU7D=sYWJwprY!_6qbNim5PIv+m7?mt0X>II9<%EFhQ4PwdQtSNsQyz+ zfQLy&^i#~y;LzISs)4WrVqAxl_jUHYXBWX~Z<41_iD$&fH>TTCZ)YbA+wB6G-NO(} z#qukxaFi&Z!o5#Fs^ElM{hbdf#%tsF$ce3n)_(dmz)AJ#uOwQIP` z1rwv75G83{W{Kvxw&_#MtAX&Shm^vEV)l`rFqFp;wXgA-aDYN`-X#-0?x{Y%cf#r%eMjobdSQ!>Xhe@Zdie$ ze4B_^Jw1_Dby_6Na@>JWGg@Q$W3J}eNSU{}N^!`Wy?!Q%TiM8qfTxJPq?v*3kCnXl zc{lhN*o?2e<8oJWi&QQ8`GNZD!wDDMlTK~RXVb})Yy=(|8v|biQ;%0+`A3%!)yM8c zsMOjRHp5>Hh53h#=o9HZHfOoLkHQC~9uIv=Z9C@2*9#rJJv%?&#)tssa|!Cq5CW)t(ExY!A}x zp%n_k)UO4nv<=03th&exlH|i=;Ahmw9Z3CR6ONL2S5quQ80-`H^8nSI=Of}09i{{rb(hjt-9A>%E&U3|B?%X&E8$c-)0=ZsrJ?isFDcp0FA64IW$F}K zt)~D_{b-mPXObmFd$;u2CjYg_kcn4K045GJrU=B(p?=;v6fWWkO!ME|5lHjpV`dyI zEFOUWOcaW*Ix5TNj~ob0bWnT6R? zcAwUQpwA>NVI+%W9{v2_*I;Py(Ztd9{EC~cn7hRu_q=H{~ZFtdT*&fQxBAf<>NG3%gxH&~CFMh3tdR@2$Aq1L@y zYqb-$XS{{(>s_lpo@>Kjtoz~iOD zN_m3ge!p(ScnT^z$FB6Dx>>&2k}ubAVg#sLQu9n7R4mOYKn;1LP&BSVt6~3+C$BuW z>wCHB7I&FT| z``;UvYxodR&%Hf0i{0*LUqMNJHukE3olHJ;vPfrj;b7i*OTX{$`IH<^ITtda)Jv{F z!Ps~k-y6j0$7I!vmeTf%sUNP8-fnk*)x4Q76-64CR^{L68^&y{jRZ0?KB<719P6h{)4|lWT6P3*`!zH*@{CKD`V3*ysi@ngBg$O@4?Mf8={3JgT)iUmLaWi7y z*pO2^vU@4c$$MiB{CByJ(Z&=b-Dh~#GnQ;TAz-sgIPT-!mMLZ2PjBB>z!$mi4%0}f zT?pb)4G18OM}zj8T>-r}Z??)tk#*0e>y!D~>qz(Hemd`bzn)5@ulQ<&>X6%=L-DqH zFhPVFov6$Y!?kh#=^K?xgB7@U$X!g}0}B)UL4iFD zv&`U;rAuz<>6hA^Gy(IGg=3~rzkK2fH364FN1oTOM{aaL8m6I6jHyUO@KC$^@*FHt zTV$gIz=ex=qy4ftwq&%p4!gzTpBodGfepPM`58{HrU=)sBu>DDmw;R6#Klj=$}Z<1 zXRy{0dQ=>V-6OsEOK+w*Wm9}~b*dhkwbNiHzDzkwWEk98lJFHgT;Z480+$y!JE<4+ z2IW%v&#M`E?*gpGeZW>r-giC5aPnwM+HHkIOZfpGsPS(mqx3(z^$j$H-E)0vSMmzm zab@`xe|H7@N@+AYq7=j%CoVyFcCvtE4q3_RTHX4z_uZnIv7YYZ#j?uI5}T*YEXM%` z%myY`X(Vm8Pi32~9t+8OFqjXT+(J%n$gh5Qcap-y0*Z!rX><5Nhu^zwntS=ux zjt^~rXuJ^P-o8QbOS(+E`zr&ky*0B1>1xcQb){&NC9sj#7miK+3oh-$A3W>huuv*XHki?{HAPZg_D`ndUxAnsF;`AWy{vm!_7)53R%;-(>C z-06D$9q&F3E0nLTHZx&+Hl_pDdf z)LobiRmp%pEe3-Aqy3~;PzZYD%h80N`Smlx4s(`2>^hX{UXqWl8RQt@*m-9orYu=a%NC|QPv6sA&*vP`^EkD(| zWVh0>GEuv+ARRXdXMAccKIkK>$hX8@%S0?rJ&W|I`!Oyfai7nNRWBq;1mN7lxWBdG z^3MnU3K|CX&GbGdqP3P2+K0~VX~5G)8t#Kg7l4SburJ0O5R|zDui1E9D95?u3JTK z+F*VyU$K?^1Y7-WkW`6)zUSf#zNYmfuu0-KFDr%E?b%lfrTwT?uEc9N>su!0EQ+E# z-ZvRsMY8+upZRUxn4dfotva=$#~<=KJ5FSE#S(*b#kVy6vrhj(3MogUm5P5jWPzsh ziWLYPG2-y`smJdE&(4o}*;c=ptehWd$!Ji0k^#0gM35F0>(^fliDpr=l8?CpXL3>- zN=9sjkUdj28y%6pe5$5ft-arF-!L3Menhe~*}5nDNCPwySrc~Oguu1xOFr!ZqG{U^ zuWl6jt-X<`T!uSU=cmtWUN4e|EG>#&ZVw#3N(6G*R4Yve&jSK7zoI$KAFL?{yDZh* z7Qvn&>NIST5heImkjL$(@^UtrtQP}%fy&)SWtCeub7js{{ zktl@i(p$eNtq6^=ZNOx{<`u!Z_Q4Bh9;pK^iK z?M@!-@flV=iTsSUW-TCz+V+nU-KiG=3SUmd3($ua_r3%AbpPg~lJ}X%cfNKu zQQ_c;-_l6eUUDxnkG=gxd1qmzzm>VnZ?w*HV&c{o`%HrbkoQ#ejzg$# z>e+hQrDHBNnaJ2>FVzenV!&~y%gv*TZK*F>v33h@7bGRB%5R&XYd2snozA5U-97i1 zpIo?Bo&6`6WwGl7DV0`TmVPdCkmW`X-`YMRobabov~lF}i;V-3I|i4{mFppWhd-Lq zs=^sWemEBPl)L+^Ui?}aZ>2)*Gyh&%g{m_(godrEObh8h?oH0>TA_B!E zFhxr0&FyfDDajvMRa@^SL?AMI5ag|tU6}28X^8Q$`gh=zfkBE$hft&#b|?4?9a$Tz z(M~?V>dA{y*k#MdQsM#C%HGdXkwu{()9=(+r~nr8=Cm3tt7pvUNVvZ9^*ObDoBhJH z)1`8q=KZ`wdr}&&-62n)?)mq8m;)fbmnOw7vSh-E=-0SoRsK!N%A+N6Pr_}_;9_Vc z6OD&M6sQq4S72-B9a4d!8MvH7GGl>$71BB@^6;KN?>b-pF;JUK{B@UeqpAe8_1pS5Q_N0JNh(I?;DC5>HUge%ZAzNnR`_ioFR7K*oEU=4oA22V6Lx}Y*SujdY)zC!(?Yv0k9(Vij` z6*aPd{`pfnb{mivflNBLq5<@3ahppE7oV5_r!^_xkKNrG`q53=HB$I*$GP%o}FV-CfF6R&N za>7UFi*4sWs(ipXI{orHjrbLBE*pkP=Bc1XX^b)GwywZvh@5LB1_Q;bD*fL|onv#R zk$lmQ%ZwKq1ZdY#0NXzM{Yt1Z&#q6^4ThT}l@z7eVc8RgEJ|$$NC5u2KdRKB3gWA< zj^o~T({hmN$E-8gn+~0vN`HdxvK!7@**Qk!?(b(#zhoBTqo}18C*uSH6oqf<3`ap* zZ=phU`aw&TuYtU@Yffx2`bmK%htt<%D!abvq_3iy$z7tDo z+8$$9I4OMAAcqT$H2c(bf&@U^Rlfm;N${VpMo5Ax^>AaRTfpo2>k4eFu<^$5?{|uw z5fzMIuQkMz`|@n6kC{(hUO4mkHV11>xPQ&y`lDs*kgF-H0%=vN-zvJ$CvpW7-ck1UwXQQ&0 z`by3NRrk}UgKHU#iLKie+Zi8BO=W%74iT;Ig8HEQ!mS`lZ>0Ck5GBtpvXH=uvuvgU zm*m5CmirvOVK|Tb>ilPN0e}p^#=iZ!uKs|zR1byCc!mgj6V!b*!?o|7=m!O4wHd~g z=*~E08N%z@WM#+@w-O<%IG=#V3SR$!`kGCtnYRvC=J~JI_33C|bOG@LHe^Y{=}AN> z*_-0tG9Lt)J!nQwAxGVlRx+nNKWX}XEySA7FVZk!>1@R7n?!zpxwUo9;k~xCTN-n! zw9@;>OhG)Lls4f=&0y;KqV6}Hd>iyj zfH5kAM|E~?^vhSPd7c@*c((0g;n-UuxJfJBaXj`4!=l6dBg25J${s=Xh642pU70x) zZb48N2zBvvO!O_Oq3~oXcjbO4pg|VNK4i6$UDDju^q?4w3;gMTgJcW^iaK+M5-)Zf z6VSN2!W?^3T79S^+Z&V~-Kf%~>;q*tK6TjXX&RE9s!e|T=Q+JpAk^lDU#AlOgd1pZ zn$MJn(SEk;&~XNh2J!T?R?+9C3HzbzfN@s+JcD$pne+K_;%7!WDNO1T@y!DE%qhGS zLRq0|#>v(ZrF+ccAA5a5g58J8Zo_-uJ!`|w+i~*yqUu;eQ$a85pEe16W5%BeHod+J z%9WsN&lLvqMP_Wq=6}@Pyv}+f^YCSHtPLKk3(7V7-vyVK9cpi1{IA=oRQE z(bM9*iF-3D)^PQPaul6@ecOF$rO5>S5YJ_a{8ZA@L(3*bOtFAQD*w^m$9=1Z(*VT! z;ttL#fP5FoW%{Sh6W_oEn(aiMr^D(&uKsq$6T&jm{ykJJ*JX4!mE*bn;Ygr5_Wqo8 z4s#!7AURK2(w$ELzp7!FFKYkAVkTQR9*b!@ zhjC?@bR6E_X>KI2iD1(c*%&{JtnHQCz5JcdW=@sEbK@XBjLpp^V%2U0_oK->XvjoL zXFo}@SvLxrHuh(%WHee4$yjEhvo$_ul5mN6(rj}7Sm(@=0qm69bK^uKLk>yL!djNW2(q*fpt38Ml}JA-)m~U@j|bJ?%<5?KJoBQ=*_~?w&B-vs?_6KQ(Aj#V|2yOkD8YYCfSL} zHol^KLMn}F1WSRk;qx}xSI%={e9>gW=*#M7b6tFgwGBz{5aX>EZ;??_ho}pt+@JNeX;lBxvwrkpCo(pNjykn>vAcMyf$3n@@GS7%~}f zE!kgZC-b}fj`r>y5v>P!t~?rCUoxRt88v^lbGTH+;CiS2nWFlzZvP(oY6@PKS#KF) zJB%Kc!tK13I-5DPQ^s}Ld?7!){=vf;L3a0syreG$FNY;zi5nC- zLHp^iYt_p+ldffK-GH2Hyu--7XqtU^y^lQph?(}@S?^o3-L!_4;hg7<)Nbuj%`P_s&K5wZqm!>w2(fXn6c8kURT^8$Eq| zP7ndUm>1Pv0R_SP^K>t##e!Tv`RYV7@N_zH=vC=S~&I^yZi;9p|mJ11qan>ya9)6Y|p0A8mHFz#b$nN@004i>N z4oYKoslj}!o!a2cP+Y$Cij|)E@=!(L3r`1?Or*ZkX9E-p6mMKgc+m2^+weVrNB+(@ z0NBr}NUb#@&^pz-x|==}4yH36ANN;)rfAfN*2#Pu4`o1&ZHG-_kh$;94*%^tdG-7& zj|#2cvf@VatCUb5Ae3A^4r5vorfJi7sLpFL&}EjpiJvrjjREtkhH6hJqpN*{ajTE? zfDC4aYwKQuKJ)f0I^NI{@Sbba?RvM~edTEPl~pytLx0O9Q>m%+9xH3ik*s@nK;`j4 z<|z3^eBZa@5+y)YLc6JZ&*Cr!EN~Pr-EL!b!LFu_@&>cdAw9Ic=aUYoJ9 zXGb;kav!YTGXLy+Ab`82k)tOD6oKDo)!)M#rT4)o(cjw3eh}h>`4^KPf+n*Wr~6<6 z$38OkXm>BZK^p3%KHm>R|Kb_F=eHRTZuTFJf=uixOrlSo#pJ8j6f8}2O zLbcklfLQ%As9x2~fijq10nM5W_X}uI79#jbJv~juOYebZGB*A$!ZblJlA*c5q~CJA zi>Ef=R84UL}{OvRH@4;{k6|QM0Mf-Q>CBbs?P%Y4ZBo6)Lg~2@7%yW zA;}o|+Z2xy-8DE$8^!YBCg|R!arha>;cnWK=23sud!uG}CE76!z0tm$m*$(9k|NZK z7WqBwvmpC^rD--5y9)0YR6wH9clw-zK|}V=`^fu$a)x6jM3@sdx}R^P zg8$z2DUe}cJ1l2j1^VqTHR3y;TTcQcOUeRtOma(ue0B{4A9bv0tbT!L$*gNYtC}Pi z3UzI}jjm40UZtK|KF{aP`DcWY8^jz^oJSW!$zHFW1RB(p!59p!#h(W8O^$Zoc=OP+ z4FiwtNtx{}Dce-z3B8}<5VX&6>6eB3yVUJUhdCs%^%122yYT)5>JERLun(B4{;meAZuAixA-vovpMl-z?8Z4@RKK6Oi|8#DM z>yWQ2VJj;vmcuXQ>5q;p9ioHyE5~^bp5p=Mj@*&682%5St^Fo-dJKMyQ;7>d$L&i% zTm**7uSOmx3-RV{9(M$=doI0hL!ADsl59x@A1s{gS;+}#R2{$g z+RL-f@WMXonkwzu_P|Gzvl_*_AHFT0pSx}K931;}7Az5I;VP*g{57eAw=fx|g4BMJI{$(mRZ8AvP54Rk2Iz0 z$0Ud6*HB6`uzNUpd#=Wjt?PgPHd(hjEluWsqWxoHQhK4i{<@(@tJi`jI7OIUHsh{s zv_C7sPr5r3q4f1hh@tfzO!d(LmP2 zE7z@r&U*3|WDh5$@>pMFs3y3T=GjGizKQqLuao&F$#{Am{`DoJx-R}33q}=b8Uf6Y zfL`9b+tw$=XtDLfh2Za^;>YXx3}d4r#)qz}cN2+w*3Y^Z7RHaY7upGP^ajXY ztmlxLk6-ANMiLD5Q ze6<`Q>~h%Y{Hf9090}D#eV*0wy-IJbHZ~vW=M#My*ZOqsoJ|44RMmeW{br_uZ2>eA zpI9W^9Y0iE$6Y_H1@qO(UqwJXg}pi+e(!;UvKb(jFwit41)@kdM z72@7TKg_KRy!ZrWuMw#88Vhbj`{za( z@uN^7-&y&rHtz6gzr?`+$6qma&!3GOrr8z3&b}N{D*QD$gYWds#ZS|NhO2sNID}Fo@?h`Ko z+6Y8igZ+zGu8#GUFLrc`M3kN#y{Pj%co82^ak?8XL4B`Ymgl8`xryhZyPKREe`5tJV|>W~%v%#9R@IMUU{) zZOui`4wTSC-_U2E}6)&LmNuWs6W`0GR^r_(R!`qM3{#6)N zK}XY>!;b+Ql)a@TVPLM(mwx|ZASfx+rB_GB;cGcxhR{1hG!Z1H1-y_tpTV3mwF_`! zI4@bYWVkqWxNSA&4Tgmlo>Yl4yy=x zc_-1Wb_oAX3M@UzkbSS9yYMo_BO?RfCNYgXCu`I zVT_aY1vwVPw`zO&GJ)ZgcI^WrBa^2sc-%0__kq!v?TaFu5pG4lO&WC+tbM4JDaSiz+I2FL5uuhs8muSoY&;Dl!xAG-4wUsmq*>EzcoaFoK25b?{7bOeolf)OpTiwdaE;=)LATsVT=JyAP8t<@kw^AWWq{xt zrZ)Q!?VovQ@1sS5>dJ_p=B}R*jp4Z~$G`L@(GG;S9eFol_=J)ir)#4Ab0tvR>evWw zR=q7c{Us2;BU5dWS7ato#M!C|xx-ZGX<95=ws&dJz=XNlY|2{ zX=3WCcmqRZ_xdezy_guzkFAfP0{C->$G@p)2yei9%&JIov|^p_Fy6JAsW7uOg%vx&Ha``#^snd z5(E=ymcCgCW_*%F%l&IYq!M-adxdOsM3vsV;>rlV>~7G=;|-pLzBRp?0KURN4ZG9! zZ8OWJ`?%Co>99R{US`LX&DHd0yh{dH5k83j_#&8Xs?3ylFM5GPwBMKs?*T1Ufmw*R z7wqrl(TtOx5yVhd^}GXLh!RSXd#;!q^k3#aWb*99{fH>#hb0*tjkyj4kwghWU;Txp zc)kkBgn>?{Drq@$Y0wKO34}86{VM9;-e~{IThO|F&$f48$Dk`%#E=IZ5b*iB8wHhz zKvOM=K@k?HW2MfCpH2l+Q#U-6pG6z&F1mx};`+x`Hox8s$k}17LPcNTHKS+*C6c3=)A0P;Hit3FuLi+CXpalcYuVptw9OIj%ct_vsk%hti7JMuPOeX=bU%unftz<`@Y`icRe$SvoN10-vx9|+6sYd zJ&vGUANLt0J3*-E?r3wD-K-TGop2%}mR68;{2EW&ps?{n!7x07!KNd6*27KX<+}Ml z8Vc1LDM*OR0`gh}m#O=bYBrS742}N|tHPuXmYbh%BxXHl_!846otzEJCRfq+V^oR+ zX(>8H*eKq~0M4W{+#m3x$mrxvklDoKNM6vgcbbB}7n$Q|=Gkz$Iu7_9AZ===@f2az z^NID%T&2)o?~x}X-K1~?IRd6FW@59{JlVawstv7(nTGgW8au{o4e?aCcYKMf?Y15_ z{_n6Sv0b;^-DOinzg~h}bzsvfs}j--58`CAaeP^|@j8>4;C|h!%&(ak#$77xl4Y(U z+zr+6w=4orD*>a?{MSZ>b_raLGA0SP!o1=mr3k3K<@_x@FGYnf9Igsjw@;?A{Zzd48B7dela7HtD zqc*L$wr4TT_=1B`FRWF}e9Q35l5nHgaFl@SOI$G? zPp;L@Y)NSlmvBQ_12z#vk_P@=LwI~Mmg5QxaTg8pnUT`F%)Gph2ago^rX1c|u4Q2m zemTIkrKgU+1PS8*sgR4&VzdYC2JHy$tuA+pa|Z6YZK3j`1A2TL9S?k+Kj*AYIrR@> z4Egl#Ei(|9hy>eO>`$S2A-*7^CRx(FG#%7o@nj1Wz7IOWo*X%hSQUq<=$sSe=M$OP zk?ZZQRvwAt!N}>pq`_;V-1PE$D)_riggYV}Y9LCj+jPZP53N?3C38zKWLZ3`r*yh&>je4Sd|k8GW78C{x@}sl z*!_iABia%UMjqJ6;`zG59kG%!P-T$N@p;ECi#W#_2TLgnns}mTK2@Dt=((&{u8OXX ztcN*xQrlV8G;K~w_HM+aX2on&Ivg&$Qxo-1J3STOrZ?}Q3kYA|I~My5kO9rk%Kp~P zN1+AV@K4k4N??hU8r>204QUUl)2@h^o^W}wbx|`#Y1`x@6V!lAJG5__&kL>?m^%m< zAdu6{na2yWt&+&DlBRqp+PDc~Up49xs<9SceodnZmDe~+D_Fpvyl8vH$_%=e2WrNf zrek7#gd6xt)Bfs#anoG+)Hm(u!$13eYgp|MK`g`+MRe$m4o(o%nc7T?x2}wA+w^-W z4L-^oacmiegW*>;o*Cm{KE}VaXYKL(`;1P!;lHQFiYQflPzC8G_Ecr|ez#ke_XjRg zyodImck;lqRY?`DC?59w8HArdRJ=Eo)5%e8)see68WSLXH7gn`XZR(K$7SoXiKvs( zb}7u9iitT6mxmO0!9mi>SU@}nDDDtA{TK2YxLj2ctD_r$rZ1fC`lD}ZQuQgpbo{Eq zyhJ;P7!GAXGg9g*@;qyzyiw!TzVw~r^zX7-{mbwzj`BtWbu^%mk= zsS_NEJc8fWcYj|LLeS8BU8d04?m^qZ#rJow-ACCGWY&i-W?jn$T-=zx5oC#2_Q z{q3smlm72XbC2L7He?kj|IzP-8YLG*^#!)fxAm#FrE?V>Xh_0V`(N=#9_APK+AMLo z%up65;O~9rtIn2l^JQ=B7A63={|vx=4p=#vSHz8bmGFQZ6b6{6iv>1JJ7|tHbWsDo z4j*mg*M)_jUG&!~AAO9B*~S7FMHLPDRn8dwYB;gk>&3=NYh}mCRe6ebA9xueGh)D} zBb-G#BI$?g)09G8ZLEl)&fiaLVT86Yb^B!XyA#IfKdKvOd7d00009a7bBm00000 z000010EBrLa{vGU0drDELIK&yEPnt103c&XQcVB=dL{q>fP?@5`Tzg`fam}Kbua(` z>RI+y?e7jT@qQ9J+u00d`2O+f$vv5yP|F(bT-DY7#%J9n zt67O`++85JdvR!~KxqpU?_Y|v6su5Zp-`lS7I#7tLOc-Sx|{4~-Q9O*$7lX?&dl4) zE=kyg$R@lm3_J7WzWeTb_q*S@a*oCnKgkOfDpaWW9zuV-GoV6+3Kho-Dgmlcq2hZB zl>k+!Q1QKmN`NXox^q;`!a=GEQ+o3TSU@{r$`X2dk9< zr_*Zi=xy=%<&{zB?(v|u$%XI`4HBY(RhzqT&oixP>IgboH{iGKYO$epRMgePn#8nups>S%8B^rA1=cg7sO-f z1{)e%tcVN`!B-o$GKtqJs zKMyKYsQCWkkO#w>5b7oFLV{<3Y`so(jad|tE zf;w>dt+^OEZX_PQ|L1t&)pz@(WhX+*&PvCm@i}B7>yW#<5PA8e>166&kEqCSN%w|Zev3C=eFvvrdof;m=3)Hxx!164)du|b?w`r=bBUb4`uue) zUHLW6zVv2Mfkq-mC#g>+FivC0kRhT-J3BiN6da7M&Q5r_|B%RyNm0o^lO2EO^Gs$l zLPA2&-qt3+mHjGI94kn_H#OcY9F%u2@LfI7IovO=IY6I~SZ0(4*Awn{*HJopz0P+o zUCYhe$nsLQ`Rb6jPhUT$!Fl>Fa1fVx{R6B#xaxG!56ZLA=o@I2u?Uw}OjCnNOZ&Z? z8R!gbIS#D9Yrr|=3ymDAL$Jw%=;Q@>^Ir?F`l}82>1_|Ay`_y5m@!9o6;a$@9&Og#G(nWXgZ!mECX*7i<({Km7S6mP}n%fCWn zQ>&0uQeqrdf4LbC5iu5%S$oCBXGt32VWBwpil1ZJiTm-#-~9^je)PFK1V#`M z(~314@P|LWh~M3FGv#wL9w1_61;`IAG&B@5XV1pcB}?QbxcJgb<$*FWmz9=aXhsH> zELw#4#6%*ucGzrIgolRI@WoQ0;z+{n z_8==G1tW%KVEe8D)YLWz8O20L%Kp~24tn49y@P>Fh;Ek)Ib;#l)i$>sfwjSJlOFZhDUHI3B?XcUuNK4Y= z=F6gCvwQH&n=QENtO!gTVaBs>wW6xQIUo`oI7QnXh>wj&boQ+nl3az`?t2vVHT5tM z>6t=;rEr))^u+qt-}D1an|~gbEPe;?ys;Rjh>+f7ywoy`A2Wg&T~EZc1q(l0!K_H? zY#pw>;yfwv4?bNcW^pqS>#y#646Sud(#L0@{fu{r>^3Z4Cnoc~x8H>H)Fk=1=;1Q> zK|7mU#H?m8p{`r84jOt${D9Nahmz9kl)lC6ks}cq6^)ml`-hAkCnqN(Gdr8MMPbU+ zsiN?{`tnPhapqarySG5dbI!bZD9F!8O;r`5=-lxWCSdHi@hBzo+`4)5fQwXxithp@ zma8s1N661Yjr%Ecr&8l@5<*HzPQ-@IJ5fcFJ&qwv-Ti*fcD zb5K-VA%xY~+=|HXFznh>D8zZ@f>}~;A|t|(m=KGi!ZL(Mh2!!I&%ozYmo7Nx6f9r8 z0b_EqrAunowDDr;as6fDJMWCSM3f^)h-@U1PNRAgjLNE7j3@G3v~(?ro(@r#2ZDjf zYx5o(g3TJ-a(OgzGK|Ct8k{mEL`ZOWx(WY$w*~oScHDJc40i18!Ifu5VExW++;x34 ze)U*A^g&060C|LU*r-h0b?4paY}|l9J^ep4wrYgmL4l66XCJt)6v;27FY!lQ7RE+LTn6Dk`ho>UV~HTO~a>)SBX`| zWY|M>n(G($r;i$uC8lK<)ps{3$-Ir*F?;$1TzbLjLVDcK9u^uT!X|%jDQ3@@NUF?% z?YRZGhD3{*>T6|n9nwfWvTAIi^uJ97y4j>Ae!O5_IR5ZbBhH@}hU!KahQv~xrz-#T z&K}svq@FFnL+ zoOa3#-!-^pA!*)51j?8-Z32Gt@SXU2({^m$wnxZ|%~rlnd081|&6$hSFStMyWNQnV z-wp?cj~GF%ss$dmuRo=vs0cG=%|dHyD+&t=Fl+W4SglqfYzJzpt1<7CQ>c|Bv!J+m zz=f|u#diS{U~*Etkd-vrR2Q3?+k|A;RBdQ%!Gd|y>2EWUS{wF~iaY=8`7%eARU%id zX4+m=NEJRpUPNDDFnWbxng1Fb`ZZ*-e`?7V9=_M<$u+tR`(X2j!z>K-1COL>)JtAAzKJ9VU+o#yd+p z@P9v!Lvy6bE7Bwf!Of=}G){F^x z&AKhP|JOGmb7-oxEWf(a@4-i9Zhei=J=mk60L z*|GZLzwf;H21e%Oh`Ot+s6cH^we;_?Dg5F4@1di;9YZrRv2yte)YsKw7^%W#Uo55L zYD5)wbacr1ih5N00970d@N35A@9u&UYM47@-mAy!5u(`9W(sxw_Jx8Uj2)h zoQ(*^!nbXB?bQvq`?vo?U3oJ!!3Ip46p5$rPQZwvCd|F5T&zyre(u#ol6cvQuQBD+ zE0IMcrX{skPOU~;TL(;J?s7{qaqbmT=saS@(^iaBfG@oA4*vW0LNblpMOJ5|r%1m7 zw|b_i2z;`5B~nM7E-j*wh>0g*U;X2IrDf!Y$J=|TRol5^NAE*mQ=3)Xwk=zHt5)cK zS=sUTo!hsI>f{$=*UlaORV_N~pzX@{b|ObkBQG~swz1iuLdCHFzi-@4W3}3)Uh-lA z23t?ub;SGG1Xdbk-p3o8~_wMpwq3?Jdk(<5uTFN`$L8R%kvb5+V zQqyYoO)KN;aoQgGZ6PA$zJ9L9`vzPF4j$#@E;izE-zcz4nQ7tc(cW}fQwbkf1S#SRJ?~xD}O*d~vcUL>^zAh9$zakn7UQ0lIa~vWQj%>_IQzEu%@_YR7>#{?GXh(x1AX7$u_{y?EBJ_M-}k`n z{kI+H7$z^Jo*n3zKxhNDY5QGgf7d-+i>Uu;fxngSf#WELbD06j6>b@LDOpKbwQmwJ z$>c{~=)^0ZS`WAu_+aFxfXT>c-2X_BGRLU@@%wI=TO(ti{XPYz`^L7whpR$`3Ka?l zY_Iv$(>@~61!-hB`t2nheZ0XK4XQU76)IGm82C;dRy@&gpfj#js8FF|uwlRi=;bvj z-jh6nrp9kydp!p~?nKA;=swjEc@+o4zzC3t&u9*X!5p%0S<6WVt|$&$w|wV&Rqyk} z2H&UCW|5EDC!^v(7!Uz^JT63}FKUTQ|WeSb?Ve475m4)y}|HWUzdj}%*kms>EICypC@;j1MYoPpd-gpU) z%fCdzq{jb-#x{{OaJ$$&o#K*wTG6za_+IL z6NhaZFdqrI~SIax_KW%@|eG_+y)*Lz^KI(iA8XTb9}CJZLOQQ1kD zH)RBB8{4sX%}!i)_EfZWSdb7Cj?(HTY|SedlHpnUPQRZvUVr>;gmYx?6H@*cESP|Z zuwX1%y9>>&-AGD^#DW<)GWngixjo)}Cun#QtZy)dea4L*mQ3e#p^-jjY7p7s1@9N% ziGYx*isJ_nDnY*R5WHH69f0ua55;Go;ulj{$)tEzl6kar42uAsPs^)1c=@N=haf2Mo4I=Y%>Q3!P4E`n?~R@c+r3ot4Hyz$$ujvBILSuUeV$wS+D_Z zoOA@44cNY?LI{KjVBNMNs`Of1eEMX(^v-IWHFpfIxnKq+j~} zjK%i+N_h!5t(^sx*qmE-%t%AliPE(>4_BQ#9a(AdsH|vqfEbLNjj zXSWsQHO-hgAxrLK<%WEW$V?T~o zD>+Vw$<$1w92FfcE5X=B9dEC!tQ4P{OtPFWb~qdtA1}TPdwP1rNl8*t5{in7B>&%q z1P_}4nVGi~)S;uBS`v>hP*Pi`4IB5=qKSxc!|ob{E!u^9uALz_|2(NUy^fd5g%hcD zqoTeOPyKQMKKrT&o`_A928Rw{)ii|mpF3|Hz9h2TN#yhA`>)0>BEK<2tbDCw308MK z)IiCyC~9C>@qSLKZ_ealxZ&d2=(N}n8f=vNkBJOLX;qWl^Cf3Y5`t^%v|!%U5oqn` z!CRlM$HRAAitZkp5MM)chcpVN{Y3Ipacsa!ufDDhW5$j}I4LbAo19UjWM35#4muT#)WMY{ z$cXiM)uN1c6*r)=p@USD0jsuF;DR~B@#`z6QVZZkVO1;6oiz+eaiLhbrJR&T5O$X} zBPTN+Gsh&OysjO^HSJ;wZ!M^o{=;L$eL~!!!6w}Iv-3oig@*=_0U2uEfOK@l|udQ|})7qF>X zT~!4mDK;h>CLn(HOknKht**9KJP@$TV%29dnTfb;qU_o4Wm#z{5)ud^RuCwKJ9r(qcK9?aAu0)sr<^$>5G8=vNdV7}*H$Sl$8Of1oYU@F3rxhjD?LO}j zr1A`OBWxi5|O)$j5!mI!T#?c);V2|6C|}VHL_sX2XsWQ9w)< ztmg7dYJCnTi4>R|Sv~Q?ViWcaQbTM~HW3-NclDsEuC2FUOsB1ZmC`J(XcQIo&Z3RT zNQp&DyQQ~J@mN6S%u&9}tDD7it*LL5hKtFa^RXq5RBKC@kQ(1pQ(KpRP)Co4{{FGt z18=uGoKzNdWa^mcoN}Zk#mIee|Iw!_w$r`0NcpKaKHxqxCNX~h*wl6UBQmmbW5VM1 zz(gh~lVl(~?jkZpgG7}vF*4aG@pL#Y4x6}IzcXQ0W9)5-uff;ienQ@+cwLff&^cwK z=-8yT`#sn&Smp7H^~pyc%K7zVVzZw?t3Mc;m58|@e~;vYN!3p2p`Rm%LoSoUK9kVU zX7NQulfdJ?3d`nj8q!*;4<+Y#wJB_CIeC}vtHL4t=5Fzgi-2PoKa028JKMgUhX5T!( z{SmLG-}e0;!~VMhtRUTfI{W)?IqIXLa&JDzt6pgQZdeu4{-%eS!0ZG%iSQrM=UbqU z!2Lb6!1Rx%KS8hj)AYV%{qIx1zx&khdrGZeX7gg4va%} zSJmt0s$Ua!uyYUOlIw7;d$8}{1p};YWX?J)FgaVG^RxNM2CY|5tzr-9eHVgFT6j)U z$EMPnTYM@sIQ-np=cPn#Rr%wZ76YL zzYq8MO?9q9#XcNT^Y1xH7tZg4e=@Vj{Vm6x==gr!rwSDZ!Xer}->gQ=Jb0WQorKVM5u`UAl&qLg;-htF>2OONR3;R& zNeheBgYXco#80(3eDP6TZZBdZ_4M0=Zi~l9ZvHqfy#CkdkD)4r2S`vW4sqJh;)cnn zkq<}w6gnquV!#!o(I6$tyv;5|lbDSc@LYi{E1yq9b%@?eL|? z>33Q@P*=mL7z{Xsm>}L>pMYv#;L(GW??Ga9Fu9#SFANbO8aRo6zTDP>lmtD-WCvmG zR$h^!K~9EIh-&%9ZcNGv!ua7PnK-&?vxSIDhuS8W5MyGD9)*<-A+FP>he$}%un-;Q zPY#lZf1yEIAY5Lr$dX~xH^yD%c%gsaaE7xH5wONup+ zYSa)Jb)m4rF2u;ntf|#4ah}aaudLqKU1CShPy;sa@uHy2j>$x*qq9s{vC)D#6GPBG z)=bLNOL^!)YN7#^^)3`wIV4(OScs2|m(j83%?YD@P9a=Qzp>Q@qiPGQIL=TB@C1Ua zl_q6Z)9At#7et71D=2peG38_gi)qXIS*;m~1VQF46WBSkLPc%uCdF1+=fIFyy(qov zMz<)vjAWyj({>`jSyO_EtU~aQcUpcMZ!iL-)I$nzeGP}EbJd}nLr%VYELThSs zi<-Rsni!PT*u~5pNougV!A0r2P+sfAf~g_MFS8*cOo!oVMl4+0)oX^UP;oq=65t62 zcF6DvDY`ULTeVF-2Lwz&?=9;Pl56AsI@-p4fvg5M?Y4^Q;M~Y}T?V%Y^#;du^l!y+TyMlm_?pnGC+g=^w7_l>R(EuCdkS>w~0S|NV@vuk$&* z`1dDd{@Oicu0!(3YP7z^C26thWYSdo096bIs04U|K^dtnt#SB0<9KBoD>!9@mA^H& zyM>t86lKMzi~@T+`}%KL!SQ|`@L(`GG9fbIDPDIhR=1?dZo#@NJ})3TNz>``=Hnkk zsUw2(#W?}08k|Ce$~EO!PTR^P43+#;3>v5ecmje+Mc>ba>_4CoIEs8AcWFu*f#>#5 zTh}KY&3?bj?|?M==S?|Qbz-k&f+h=^m`-U7kNyX)E&4j@c#Er`c~c%O~8b5Z*PA4rxOw!BxKBufU-^E z!)W$@{{F71VsPQ4AwYRysfE@NA+TF-j%P(dQj-7x5CBO;K~%uOu~{RzCDfh`4k8Je z$gS0$kYvaTBq%f(&p!DZWTqzzku)^5ppwYzjdwr8(~sYW6{|O(qq7?>w^Lm6vx-wx zQs8%1YD{DsSG;HCe(k2~*r6gU6y z3Zy0{V&P{iprPw4M8sgC>akk=o{yc-8}u;Jd%;0;I6qvD?4_8U&vMvPo82xAi7!N> z&-tz|jHDSBi&fs4@bEBv@$pM|@!#*_l~>+{j?(dkhzycrn1sbuJRR$$yadxd@Uz_bUKj?!GH9+y7OKQ&Uv>+oPacDn3tz?U_dSje7B0v6XU!LN z^7zAdVAA*;{Q2+y!K+kJfB2&-@RJ)Z1((CW{_`GQe|w=2Bf}S$)r+*0AvpKUd6+zL zlvHAIiLdbmrgu@AdaCUI`rAVoJ8Br3Tiemv-XUc1_dorgkPR!ey833^aLaEb4@@o& zGLvt=^?KY)*I&0`2U3#aar^yGh@y-L3&BTkJVVo^B8Wv77O41C*oqGanmn; zC-?H~llN2OXGBeH1AcPbLpXKrG~9p3k6|_&rJVl!^egzogSR7dXbKV&;!svmjj+%V z{P5NXs7%M=-aBr>eGfg22k*ND32`w}PWL|eS4q#l`iVAjd??p_Q7pZX` z`NW2MKy?Nd8?d=hkAi9)j$usp1A_0lhfLgVi!VL`6Cye-qDF#Av25J3O9zxG$W@aj840;dq^3@1W+`my`) zz@yKiv#VQ3I5Hw!lwwq5xLoHSfBG$cdgEny@1v!->z6m;<^O(&Psuda6G6KuT~3R! zh!iNV|65M#mcgXMftHwjpCm&2=U;z^hbjN-H|@kJbEe`~_dbSdB0wg#*I#^0wy$27 zk3aqXF0A=#3r6Q;^p9~j>_g2 zMBb0feSETHHU3HW`S?S3UjqVR}j{(7BbiRA$AV&Xt=QC0}CQO|)RumSKVQfsK5CW4<|F|DK!0{28k>{K- z2b;I;##SP{bI+VBZHL3|ltGKM)Fe?gi#}OK$|;ph+-cIdu;N;}VjUI|DOkxIj)({o zLgnv~L~?AA^8Rj1k6eqN87rg0k_voED(?1Mt`ia~DX)@!8#eDm+3q5kW24~Ky3yFw zD(A8CT($6XF|Qe{?$|sptE|CSOTWOD?U#~z9gW+F_*k`FPb3{39YI9+IKqk0xUZA@ z3tuNv;yiO%EnBr7AH4YqSlaXbvvM0sgnP@ce=li0{n)*v-aa6u*?}-ptW{)!b6M=p zFGkhwT*=F>yh3bUy&OAo3y@7_JgaBE|7Tx(6E#I;`0I18@xuvAfNZ{{kdo`^?j|Ky>m$B{gvTS{0lQO+upkX4X4!G-xO|Mx3WCKIhP7Kd z@xo#QDw{YAr$!d>`=Xfv99E*J#({IDy0K^@vEN`IK`bm_D^P;P7BlETmS6_afoG)DmB!NSTpuSl7 zHJ%{F^YMo-kXf4U?`!jo4)dt2*<_ObG9HQMzO?YLP~`6|#X3@(Z@u~_6ctzW=9~M$ zn4rlHm+P>(+ScBM`oD}4cjU~&!!qBuNF_~jyqR`OTOnEiI zPUH^y%ZaG@!gEfgGK-KdfUwYDA#@&f=DyP3-u+YQ`+SAe>a$PW zkN>{&ADnagT>Sd~p6tCpz9%h}!6s7Uo44gk_rxXF-L5X7AA~p|36R}$C8nfHNWLZ_ zzXQbuWh>b3^hG`!k?bZCb6|XiTa?|}JUw1qOsp6ZOZ#KdQdbG?8sjyvz30Q%FL=Rp z7gp`kW3aeGWRhbu_WGNDL&UZh8d5o|Law^$9;uu>Ld)dW+SZA4ulPAGzvxUdJHtfj z@Bj&`MdmsFZj9Bwv1*=LSj{kj#&xyqJL=q1^_7B;{ z1ar=1w}`5%t8bFNSzicLEq+O=Zqd>;m@qB}?|!_LOyt#)&zD~N0PlVL1>$3)@zsXy zqGD+HM<)>y7d9M|723bd~e);`NUsekp@6VdEjeo-j;_ee{?r$ z>DnCjfl2d9x}O*#!JF^+y)X1D9e3?d?vv4H&La~s56n!PJO)?%@J=zA(}`%W{_(wN zC9+jQi?XVoMrwTJ+D$NUpNfh>g%geddDJl^EF9*bAXJdqyFc<{(y}=;)WCaj#zY6s zpY9Y>_DdqY-~BfTRZTikct$RSt{_#mFpq#K9fQ z=kv}!Z4ME}ROwf{@8PGhm&`)$yW6odU-GexlqD}SVMUlr=HafLd!RKMCDyVp&azg> z=hH>2@ae+klBR*K!N-5SX{XOGm^c~q%6(T<)#9(u{JYP+3hDmmJ@^xpe6RX)lawQu z8-x2L-zAeAeihB+D8K#ZFwFk+UwQRCDFZ%t$ro#}WbrEBZ@N}>O+DT&t(3etNmbu) z&BgfPH5cI?Y6v>pJ5}>{5aPrmK>9?-B}iYMGUrMG*9R*RUv!uUKbY&l=@Xo2XxHHF zHAWf8aJa~-&0hZD(-*Pc8I~{(&=}uGFr(zAY{>R@G@{TQ%Oh4$$vf%jy(U$+d@K2 z06bD}3Mj~Z>3hYLhJSQAa0(|sUsF)u3-j^HNOmA(1iRn8_Pb|I)7* zpm2F(VgqjCFv!3rthME10$0oMc7b?-(e~?nWE$iTHg1&LLPj5kKg3vk!6?L)h8c;BjB6|z8`+t;o;%Z$7t>8>Fpj7 zcVX0649&!EJvzFam@(3YTh4Q!hLqm@{|QEEy$(S{d?ANGd@N9U z$aEf^?#5l0HNlQh-1=N7nmTlcl+LjPS2nKbr=5AGbl%t1)e0F}x-HnUd6VqV%F0Gc zS}Jz#*n#x)bRoOo;9z8AWMa+gRmjZBLVaBwQc_c;!t!d5;Uh+%wzdW})zz3bV+Kk~ zN`*MGhYypqxqD!D?k@Su=kLkeP3NZ&@fopU{nwZ}Z92w`9f#_wD$JZc8+p08NJ~qH z)8!<^Zb4*ZBoY!6u{S?o2q-o-4vh`<2o4F6?G{qtd=6vWgb6~}+qP_h)oK;;Vlrj2 zH3z9&EpkSULPLGMC}qw^kF`gZyv><6A8wBu zrPO$Exd_Qpeljz&&_MYqp!|h~hGNo`DRMsVx7w^!#*<{}Ug6%o$jZ(p%RndP&DUYn z*VQ8<4$%?i&uNxc99Je zGF^CMZ8&x`q@%67SVoTrE4V_BC&DW)EyIYBBW3;_uknqEjX_j&G@6^55JD9=DJhvM zuR*4S)Kf)fA}J~=L~L9f91e$&SpJ?pLR#Fglu>%TjVm`3(daQ_peI#VURH+DqsIuD zPM$gq@d*iNYHTEen2d;sNUT`4OcYZ$5m@2g0*oi};$x>xpDs#}NtE-&^ZF_)DluWw zWLayQkT^utSao$3Qd83?FT3Ubm^^}rtVgA*B;)`95CBO;K~&K-+h~6-ksy z2E(m2)64Fb0h7V%v`z+r%#_dM6e6iz7&d$a;^GrXjpdSx87gzy#G}io93dnof!%p| zm^FJ2%F0Sb1v2Tda$=;WrHMJmmASsYP86Nf;S^=alYs5^ZXwjx))x6BrzDdp*dc0- z34zJ7y}eD$OeYZ$o1XkVJ$q zrI7mMsZ)ihIFGFOx{1t;2H$8cpWoEfDCFJR(t^YUQj$crS6_P_o_qEgbdh;FY4Q{l zQ<_ZB7E3p&xG*BcJ#vqHZd7y>l}Q(ws*ysnjg1YY9@7vN6)mL7YsXpnvVvnGEiEaL z-+ce=ZLM@%l&ILQu1+C#R@#ZAT!Vu{GakLsN~+I=-@liR z-K93@G%Yab2iBpl5TA)m*ZinHtHySHzH$9qE-g;bbXD#|7+=z z#biDgS6V$+_H5$Jf#6^kjn8!9aw#WBYc= zANOB!J~nPxFV|obnayHOYvqdNVzMTuq>w4wK#fE)Y;^4AO`F6#&ZBGbxkHkYguJ*< zk`*uC4>t-P+P-wLZ|)yYjbdUiT3Se|&Mx`l{!MOt_U0E*IzFOjGnxsP(`X@L<_5^1 zdVD#dFsKQTRbNJeTc)I}%h%(f*F%V?Y>0~qL7k=fThCXNV`z{Um(I51qM1(AwP^9^ z+h*if`b=k5kRG>J`l6T|2CMp0z?F^3$3&IUMk=d^2#bk^$xk6jCITiI?&D%&WH3op zl$ZAz(PVX~^jGmVW$>c^c6KGE@hdq7o5;$3B|Rn~#pxZZQ^jF|k_MAcBloEhL2&+g zo09iEyLa~)1mS!#_&0B7g{NFY`P#A>0D@8wIEfeHn846yG*(HYzlsTT@Y#PP zxAz#|&OYb++--S!Nu+Xc;&l(Klji-?ZEGW0tMy`Znj06+a3F{NZZFZ}ca#Q?689%QIgb=oOhTNb$!YiZ5jYsZq{2#2 zseC+TLs1}s;B78(d9M?OQqB=VgYVwCUrSMbGG!!iE}z$T4o?(e^DoHXhv*eY3R>wu zV^fi#Oi57)f=8D5n%sBBW~$TgdSAhJC5vM{(%PStRh%3cbWfFuj3+k#_9`15eannp z<@!FPrO{~7(pZnw%xtQR?PNwdIW8KKqCJ>5)`3&TIz?!#*kQmw7n#xAsqHm&`$Lvs znaqfYjzLvvv7|lN!Q{uJ!hL&eDl!oaA2Aa3b+s~ppm-qWyXC1aS;K})KO6UDaeoz$ zlCn8^_POUtAJ(uDBPg9Rl#yxZlK#6a=^x}{SOsyP8BhPG9yj+VBcxlm$VjX7wXp|jqftmvRZJ?5HwGO6+MK{mXF9NE zmmV7m329< z3sfe`CZ!J*CCQ!aCqn-X=bPuf@dzao5l_kBkxHIwa>}U-ke8P$6LR@DCLtctUA=N8 z=AU}1Okd&7f8G}n86l2Gc^U}M!((z}V&W+@qehR$hwr~H>CYjO|Lf2-3$nz9=uAq?!nn!<^EnO-k97E*H^92p+ zv=J490E3PId3oFG%MG~aavM&Y;FJl=OlUk6h7};2w0o;`_}Aw_D6XM>p+>~U=fE6R z3%93TOh2#pn`=G;BgJuikhsJoi4D@$+;~EfAA=_?$0x*-X}MMArOli*OGZL@ZXFXC z&lBVo7(7rgA}0sMMa5zs^E4GEPA!oSlMv65<7p|p^lWcI0d`ooV#8%wylM0+WZ@!qsJb9UwGtZslKE9Nc6j6$-B)Q*^M`U@*4WG{wjd?{0PjlhE zLpFhxf9R`p)j=kCggn7CN%*tVUNqg6G3RSXIY%D0dsurYU4HfcrmNhReq z`$TyCy}M{MI@qmNRF{y-2@NB47lm+A7!0p}nubRD_Pi1nlYReL$!zp3sz0&FPr5pTdnT!T)V5Q zBvcGG3|ay_9EeG%xKwgF;eyk*-M5oeHRH#sKbZ}A;U>`6U9`8J;P@!T_v79RUBh|wzz%M_ zn*DpZQK3S`k;T9iphgROPY2vyOCJ|VDvkoUaWQCB6{teRF~Go0V6RUBibV07!oJlA zy}SE;*94sE?VXCE{Pz9S^!eWRa(&PF-oWcG;)6h0Le}3mpHhYgQs{y1s*WX;C~JXH z*BF7}Gy6ND=pV*&pm{%7Xv~AH_Fq@39JDkw#wEh=V zBW|AfTKxA&o8f#3c44PIggC&;DwX|Z#UqQ7dwql+0``^hey{0|`evl^;q|!e_MSb$ zunT-Xk3F^U+FOM@l)p?ssi~=GYHAjb$GojSStvxLgv-?WLth4_)hDNZho`;g_@65u z$7_QX&&%uzYuNDN;;NoklCU=$4lmi!;ag_Mu|C+NO<+Fwe%J>gFSq0E?D&DB)+u2= z_m>|=1f|W<-`E{KuQ=i3`{z-~H-pn)_hLPCJiGc*j^WrLylzZOPPk3wetm`Qw2beIMfo0mx5 z_dD>|DB8!49h%y_he3h|%c~b-$B*wNK6YpzE~v7y#1|iz3A@H(uQ2TSg&iU=gmj1y z*rhwi0^ztGb+vUwKC$BHfLCd7#54{q$xaYBs1Oql6AwpAOG_V0MBo;pVt4#uVc`<% zg9(lE(9zyO*9b>pK>@008wX7viyJ z-^6v7osQdoatTIer(t_;5vGhEjwgTn6H2EJ@v)IOZSEv&+MbWP##a3N#tU%U1JB|9 zUtNVee|9NG4ogF8dpGtJR^Z&zreWi@0zC4U*XbocGE1vCcv*b37D=%hBt&bFldeH< zkOpm?5I=)VaMg_-+ONfqA~$;Mz|1jv)HJ#f8mvcTD7)<n zF$m#QR7ki=B`TZ({>omZiwgJ3dF-E%JyLTlUp6^ADNVj7cFV=Vo;YkLUys9BGEs3z zN{$7>q|L-AWKRU;BP5Na(@G?+1T1F~lvu%(R%Lm)kRO*HhuLH&4?3q#ywz}-v3oEM z)yc7nxvW^Va(bN|ozh^i;|Nx&#s2ssDozd@76CH3#l=J*Yv>S69Gi`jidxJkrB_f~ zg%MdP$V?wXe^aq*cL{dvE*4^pjtoO_d5x&TRbTJGxY1cK(2E)q6)uWy_udLJL+lcc zF*m;qKfLk*X*rh0Od;Clwk~YlRU{;tnU*NWv~_e?VAe_i01yC4L_t)^n$#l+R&dOx zJ*4QeQ*`L)_P`y&UTEBKxOEtlp+UC|LV~-?*a0gkJiX5>*J?aSj?-dSi5C-wX^|37 z=Do{{sz&z_%_D;={m$(>#1%cetzsp{W*>WK@k+F_3aRw#zFaE`iOZN(40~?wB$Ja( zQ+8p+=Y|(!%c^X*g0y0q7YDtWH%0v$&DmOppz~UQnF1% zR;+HB$e5g1i81-|d$F@)JKak(kyVSoA5KyZ2t_+7 z$EW}GfgHo+$7wBEzELVH_X9rq%o}1xbGn^f7KDZb2^li+<&YYbbBukRG$-PPuFAddj1XUtz`3; z)QrW8t{!&IdgMFOo11(-3|R#=1@xUU_&fKT1r8YSZ)G2sH4_m>cvJcSnYh@@W!1BC z*)ky?-p7Q(=3-zZx&497ZQjrR1{Du7fqiAHQrUN*k`AZDM6+$nR#CGOPuPDvyV7D( zmHtGHwl}{@{<$BKw+D8UvgyuX66Ah6CBhqn!vgf?zr!nJ+JBIwqr>lYoYb%~FsJnS z@%e#esrCV$TsSNOZa`l{*HEEXIo=SoBTG&V2TSXzuYE$F}$s-yT{kZM%P-uC129g4|Jqr0N}d7 z10Z>&9_g>+-^JCwen4ME^U8m1U7p?nlD(C_V=Y!MUR~sb-QjcBWw9}t`uhE}nxiv_ ztptKn2;v+2`)%w0TM41r-_;eXLnhQf0vpK4>$j0Y|0rv+jXrG7%E)j(Rduk)Yu|SL zz>)F&v)Wst2lNzgq0wEH&Xs78se(T+_wTTSeXRA>`VaWz~lTbs?4SXzgXIS z=LCWSW*-f3K8*pjV}BNQU|mp-<>KH0#XfcPyVMz0Cr4Rj97xUWFYM#dgi0{X#cg^D8yjubi2`DX(n zK=uM-2v3B0$XNQJlAsC|Dh4Tt{A_i(aCX*1Gk~zS15|)sXicFo#Sa7Au6}z0u6+pk zJW*zO1m?5GfK9;cN~U3_4!`cX>h8x3CYm{A}zBP4NW@zbiE_FB8%g-w-q15;9 zoA52%8aS^U)*uL{&wl#Oo|z>NqrJ-xm)nEwh4nBS^|G(M+lC>r;pm{h{P4m;OsHw< zLR@4pEH)>mzxTMuF)%<_UW zQ4ULsMss@)ELMlVxf+}V$nze1>@KX^RW0{7Ix`OI^J*|QD;_;W;3Y(ev&N=ie0Dr) zo4XMi7DV?MgeJOQt?Eg*Px+lYD;pK{9q6WK&Wa`>CRE;o4SCf#fA%nJ&ab6+Cs-}N z0359RhQx-c@81!^VG*E?3b?tW2UA0nFlT%U!b#ongBqS1g`D(QF%M%&>G6x55+9DP z9tR4_TQG%GAG^aUuj`P9HJHIIa1fdIw_Y|Gi@z?W7tAa#TN9DDmCOz%cZ;rm{QBZx<;U-x`u-gm z9JV(YZfU;QSW2x?DDq01V5J99-PnoHU?YM}1|djRebtR!BH>x0S2lFYgR|52J>|_l zhna&Gz87iHx?&%JSF|8IC0bhEV6#CQfxWbCcUd#i62j$P*|gWGt*;;Z%CFO6mu`_2 zTgs&mRXhZ3t3Wzc=zMw)(uc6$L6=&7eQ@CNW8Z`!^bV@;-*?9$c!SZfA0}}@DJRnR zhBhl|TYCI4I)EOB2kjQ8ba3mmTEB(s+1EKsUrK5_eMyN=Hr=4@wB>9$TwZK1YVvzY z(O_3ev#48pmjf-Gc2qQUi~Fv!x-L0Eb(Ovk-zYz-n49-DN<~&4d2U$?3_3kZ{qKZY ze*5rk<=0B@p!)vp2ik$p0b~r=8;sXwhpVgc8}k5_Fd5!&+17ukez0jjuXkT`uy5?6 zk23kk)o-6O;Jf1}5d4nNVb#~OEW7mh@C2xZme$S;Elh3Q^ARU+)yx=HN92v@`dQAQf=pPDH z#i2tf!+}hKW(-UL@TLEE)4c%gyDZ9`{6F(T8(!{v0TWq8QYKuZmAW6{O~T66s|;FTa6t$_$I zqBmfx$z_}m5?Qg|7 zf|RmYQ-LmEzmi7aIsF&OX#8m_!-2qeA4)$43vqbPnlFs%f!_yZT{$$$8gjq2!GX69 zaX^6M2P@Z7)}-$@PaKg@Szqh#FA5xi9W3UjbTxT=_jEXU;<5}Zdns$|zg!rB&#V8r zCnFAv0NKoq4hLfB(`D6QXd+PC>_ucK$HZmRSOb^)#4&@v0m^rKrw1;V*B_44_lb(3 z;&SjpXpN6NoW9E9aB!e-FM>jJ=&`uvrDaQRt@((zKd8oHjt>Ootl8wrU9bhNo8JZDI_&UY-Q!DQ(6 ze|H5CFN1$;{cI=13m+i|lC{QvoKCZk%st+|qx=omx-E9Ua}T#K;Jv@RhA9Mn#zozkjJ2_ud$bsBkTMY)lFUy!%BbesN_C z3X83@U5~OF7hd_e1rOgGPcNnx5B#G6chfneN19Mm?DG#Yjz#kxF%1)DK6B^E>CBk8$r5rQ~gB*;WGV?vgE_&L7*(K^J(h7&nE zgxor*EF;5%g(TxB|6CRsDRGkD;>rdLOHYvU_<-)i;dJ7%v!`KCQ8k8%_-*(u>K*hWVH1(bsZ)YUF&J^*-@0(`-x_em8IgEnaT^htR|xT(^TLJH zsBy*}f2tR9VzMc$bl}Ag+EG|xLwlD8xg}2g@3R(!h3awXsbQ!f68*C2T^!)Ne5PMwPF~NbUKmY)_f~+GK^HId+2%&oIfud?=SB}Q=1F(Cx>8ni5*|8 zx8TE-T@v$n-o#+M`bj&kK089LpOaytM$L;~{U{c&9-6()<-qEJpDRE2v*(V5k<>># znGTKgzA$;EB}L=H(;dQ>hY;%1#nRHZ(bw%F>FamQD;I zGPT=%Q-5;{tK~c+DH>Kjp*j;{iS%OWT4tj`M);$t;;y7hKWX$({OP4dm^MBO=bt)} z&e5W%tX?YinRCX7lMY^H79JYZ+dv;Lu(C7y6&ru1j?2KbahXK$PBaiVxq%PRojfumT#8U>-^KE z;wM+1De1lR=29$Qx07DlFd@Ol=5~5vL&-ETk*U~rd?YvJ!{zc#@v+%Gm@+zuh(t?- z<`7eK!pLB%biN8=B?4S9HCU8YS&f4#tA|V$HyX??M1|>4t#iWCc+OcB89$a$zWT~*LHx&?> zC8N5&m53-^8aS?SYy$ht1daUR=gpPRYz#$yNv-VX2G&SqmXj5Q-9&h7)-l1da!jI1 zU)#_ws-(HCOUN{d6r4_{r)TGo3eF0K|F*VwlcLH-HmM_Sl&wT~oX^_Uu8>f85JO8I7{#Z$xW#O|V6{{(Cex_WG=A!W$r=OVSuN_q6KWN9F{ z(b_}LqlL=wWSOjeSOmx~)s+{{lNa^!TOP-n_n*SGm(=6>%TC9~OTQL#;-)Llz_k~j zf~9M=VOT~I=1m_hFCUX)b883gx#coE^0znWo!8>dpIw3pqcSjQY__!EPyX|L-0|a! zh+Kp5{OgPG>9UQ|A{|rMz4-AZ5r~h{)5}7H6B;2z5fiDyIkSUB!A;Hy0>~6TYgQ;u zBcd8frt+ShJw!wrOc`Y+Q`CeN8@n-Yaxg}a89Hmck;qFcFCi;PGkyOvkqi^>DzNbtJ5p`5Vs`AfwCWwj3CTw(s7NasrrRluLOg18$Oy3oo zETaBGiLA|(51!Ka-2I6dnq+{1(q@8;2-RWgD6`zx*lZI*gEVw4FR8*{-mE~Wu}Y_Ifa7Oa_^2d&H#PxT{nuVHFW5o2p!SS(S_?Qmt!bHQh|VBc*~eL9ps!v-nIh z179Qakt_ZCpKr$O$-_`cW;K&5D?{$@ii?Rr3z26nrNa$;W@ekZv*BCoJUNHdQ}mX$LTU=|VOXDfHe_tYWL(yuz`x~&cq zhed$=La>R;ChSmZb#!8W=%pZ^BJw(G{$zZ(cpYxN@qFYAOO=A#m0wORQVl7Ac4>{- zq)ADPm9)CZ1RjzQjfKlM;oJpNaQ6I3BgnUSyN0DCdys8#Tf#W_%VmkS;H-xFFJ}Zg^g%HlQy}uR&|0 zlT7L`3{N*9bEu!-{Zqh_lYPf}onCQ3F^5QS&dgA`W)zWdI$u-L_2LJ74IZeV&t>OD z_y#YODP=^obEk*+N3gxPBqhRk9;JIeU7Ht>rYqN`ZPSSa;q(ZJK6zULrGI!s&8#|V zNWGVn>gVs$anEKkRUY3!NVgD{6h%NchtlOyT+txMFIv4r)E^76MlyZ9{$qFmgSW96 zmtUfxM#mtE@Y9vsrE>bZWISS_y#C48*h^+EAHy!B7OmbXdEf@Ty1q@Wvt;cq=%_K) z>NL_X*w9ie1av$rI+t5>Yd1cj288p$`Q^S%Cb4WHr8hrYFWXs_^7Dv84`;}@3{g0dgF6!+`gAg)*$gnv69T$|8MVFfTOz3^S`@#zu)LBB!L8o zr+67KHpbZak;HbLacZY|OdY4`Ggc*ck3Y19(o*87v!|cF{eze3t4xq6kiUEJ722?RDK)irQCa1A zI#hN>3L}am-|5=M85QJKL5kPh^fUJdO-&C}wHR+tjnCfAMZ1YW%)@B-m;@%WhjvD5 zWO}H$Mt>D5E{M=`8vQ(BAv0(HgjfTkf6M!s z(9HofxA)0k=^vb7#%a5F+aAQ_4dZ-rq-Ex{jB_!4dbR|HRc;*odkf5lLX!lIS+)F*e!|nWm*`7>^JDFNyw8P8ZPFY*dh(nU zdezxRIj0PDSOA@^*95r8ejC!;*}xH?_vIrN(vS@^Zp+KT1qi>H1tbL`laqKw>(J2a z&!t8B{ZVg_jDijFIPStowG|W;0uMeApf>o@y};(lS~MX$O%x%-t?L~wtY^IG2yw{^ z62-5PKb`(XlY9I-f>XR|vV> ziU559$gjFFl%^)fDcCYe)=*V(eT4+zDLdP6LTqSJHuM>W4c*4P%2{A`1c>>WlXh}A zJLhnFfeR}e>|&Fhc0Rk8zoF^9&`AE~0*(jro8$mF+Ie0jE`9)So}H5pa*PktNQbha zKY$IVoDL?y*^gY9r68({Y@yK<5|ifB$>#$wWp8qPfP!sqipg3{6BBlQ-l@W@fngJz zwTv+NMQ0bY4JVWZeFghrq{TtQ9mi! zB7?Hw9AF_^xJ?q6*|y<)5=1rrVxoOo0#QMhg{tb^RFG+*ozcl{w!tT=Qu!U0b=kd(e6zaQG;HbW}yR>E_(cKD>b&e zseeRQU{X*}PzX@?Cx*by-|R&Gx5z?eH7;6`q3Qo^D6~-juv^G+zK_$yn*P1D^ z(Bbz$Xw>tDHaE5PK+%J!mz%&TaT)<)cFlYiM1`|qO3>XK3TR+(jC%TqMSE>PpT}ww z;mIja#WpJ7%7RRpdIiVaR=iZ^O?LGSiH;pArlCk;K%28_l>z1VY%CNKzhUGQ+2g8C)(sSm0bPw`+!^-9mt0HAj?5 zT8XL~uyo%Pb@c~{u3BS<)`#Jmn$&gREaG&Y2yc=hhhZ_D&ZY}38o;zV>~Czt@mOZj zYP0H!A=+;@vyTz?wR`(2%FRfk-|epy9W@mCj?K$xf*q};qmR}s%i>DYBa`XxT9YrL zpAfFRz@!IJ%1=MEQPer0-!{ONEn`tU9jm%XYnNxs{liH+dj_cdbc3jEZ02+9E3Fo_ z4XBeO#NnD&5vlC$AE9jCURrU1ubVCNH!&%`ctwsVqLfuN1e`jDVM9nb{dQjkeddu( z)ZRU)sgy8b!4?}=<%+rs6iLeXdqqtX-FMe=u_*!$q^%YuY8rH~(ecxbB5ts2>vAT$ zUOH2EnKtn`M#k*4WnDg{rNoNL%wj$V$PLG@V;h}s><}BSU%6NmRX+dtHhSgvWt5qk zAop3cG@Z6HQ9~F21?rIXPAwE26+sUcFJs3XqN=kEQm}|f%kncRAwHTac^e3C$>KE1&q?D< zY=jGEn4%)WWFGO&EC3Kx`Kbn}oKO&koO^LmEIU(&sOdsd9ipCaI6O;sdZG{(G8{ZV z1S=sTiHMENWL04nRn|1q6YO}95*rztpb4(vsGN`_(ju-#VENgLsI}_~t>$AOU*5o3 z4agSfdwf^1NFRYjcA}DV5ZSqE1)aOtE<&M!M1p1;KDd3QD78TP3OaKTI0cDAu=FSs zIrRRJSv>dD4k7u%+*DCImI}%Qhaib(-VMQ0yF+Z5z!g@;AF|I?@ONm~?by76gHpGM zt|Du~wc6O0uyaF8mnco6a^pTA)s>zSPrv+KDf?WSoPXQ;0wK#l0fH__AEL3N>@&!s zmo8o;WZ15&IU~3t5QE&R&S^e|1fssVQ-Uh&06&4gCZxmivy(+t2hXX^>>`oALis$l zYn`-OwzD0e(^#}LQ%Dx)NB0a=rV+FdL>3DCB0!MX`c?V#&)<1gRA8QadN)1)-T$B^ zIq4#T@YOGVf)18d)4oHMqUZuitgk=&DRIVs_{r-`jKlQP?|p?MPbj@#dWs3~BJIAn zSai=&pgEZ-bh!MiD6o9vOOH`rb}GI8PARo;`VTc3D9qeU0t6w&$3#ezH!V3%6o{MK zdnIGQnhA9c?bOuPD~^Wd7qVIWgH9VdWstQFLlK+p)WDGxQt-$!AOs3>goM)wXL+&F z5mLF44I+~RX&`cM;Y>0zJdC4!C;#iF41VU7OEV+~hfJRU01yC4L_t*ZEaHG-=WK9{ zi6E8l4ccwi0PJuz+Yrqx1d-)=>6{72$-TpNO4Z_jiGG z!$O0E9MME?Y42k~Ob95UPxuD>44Q=?A&?aO49^O6=x)x;&|=ETNTktmyVwOj2LD4A z4WZW!oDCwo&do}a{$+HtpiCeLdy#F7!~=GQUC;zZH;&zbR?Zc!+E@KLTU}J$O$s)tqmpuYK)@RC?egdh+3|^w~e!N#FUw%i`RK@c;0)U!XlD z6_PrK>B0%x3RhN+{O9Pg2RCztNT5e{Zlo_i^AP?0k6xvMybR7Nv*=HrypQa5Eh_{u zprF!u-@^P1tuG_=hT35UkV&EM4i1Q>Er<>MPft8hOnuyxdjDvRJR{bbz`hWGMRN;4 zg&g2Yy}wM;Vw-e2>Fxbh(u9E6rXl?gfaYZGd0_azv*0PRVKMN9`p#)$iX z4RIVu6&W|gMsY8D4p)nv-zljIIF%LDqksLyUajxfqGi^wlV~HlwHG1CmhtR(KEucG z+~^vCnlyw>4;?=*3em8qESAK_AUj9KjqDfXiZZ#-)FtJD&oBPZUa`w`x0RcIf1qmK z_U&H_ei5Lg=A8Mx@b#zZufO?u8Sc{D*3He_PI~?ABb)(#Qfm&Arn3gZI#+*LGCmj- z4v2L`j-ITg&pvUVs6J0gpWvkYhDzSc1&o41^!e4BCG=mf?4_?g``A^wZ8rmO0AyC^ z53=fSFH!jK9jTW7IXI)db5DU3|b*bZ-Y>I?3`S;$=vM`qZI{d*i-i_2~PYQk{K*K zh3&F-56VbiiwCx~%)A+LPTamlqHYHKB0$JpLE8_h_PU}x`it-Uj5DJl>g*Y$=;%oL zJ~wl-)063YKY5MXx#D8|5UjtjeNz!fqcED_=z?Z29P#<@zC>jeb+Yyc`u|Fq6w$|r zenrF3=wA$FQYq5mFe*@`#3ZD{cj^-O!2hoqRF$$Myw1O?e?rfq|4*S5914K>-@ z*w3@YGV@*nwPIVne8$_~Z2IrsJ|;@qG`(qt^0s9<0GZEcE{kgp;R;Y2`3t{af*=co zWIfcMu~-cZcc@$wJjM1Yy`rKJTH3WYO26hz4nsbW)|YbzdE`WmR1h5V&i)gg1#yr; z;bjLZe0k-0ktxS<4NV>LTj))G3;aS)dah9IhW_=|T|XAoS7F4=7?rfvT1hU0cDKC&R7>^65O8_pfR+t5!z)P+-67L)j- zEhvQlO(`iNpJCxFT~^s)`vof-`UPdfxx?b~h=^J00b0p5IZhM(3upX~85p?j#w>%u zX0oX)(0AYk!pHv?|X+9er9>7#?b&{gs*`%)EngI6q;8Kn4Gy zY&dt^B0*G;-|Bq+mxs~!ZtCtQN>8-VDUe~VHfuuV?+OYEfeyb25Q!3I+w=~Ss6nSC z5)F?L#YPfkr9dB0TOVXTCsdf4hr!$!n2m|z7`$z0^8vZ38cz$}Prem>FVBkj8}`@p=P*0*AG zvAFeVaoQ{oZ7mwNOi#pkQ=G>v5GuVk?rWFJe1N9I=ax5{#vI=nw$b6e&8hn?FsbVR zYO_A3`=^Y3@xRrpTtqw3W}BBb^96qE0oJt;HMDDDl?l;q8k@i@4&rRkEq#Eld7RCo z@K+UNQej>i?JGS?U;fNidg;{zGFTh)Tj3yKVZk&u?hq%#cSwG%D#)Oc@;Y%^sf@ai zXLxvs%(=v8?Dy2e8%1|*Z)vrzP~sHA#Q<`U0j?j($6#*i6rT&9aV?w^s=b=Hs?9X7 zIPiey*jl`Vwys+uN-LPpdg9C_nVgSG6|UP7Y!9`V2e+-1xu?G`IVCj`I(_&JbH6op zZL6FEGlC}gZ_$!;QIf&=u+I|@tdSrE6&YOMXhppo1EC7YiItR}6I*_qT67=*egJ8( zop-GeRhahGmqq9dg8g1DCFr-=^Q+7&re-_#{h6r!gP zm0Y_#N3xvi3$1kD=4G@fDOO~jdizJkIq_RTZkkNrd+F5@5%k1AROHM>@syXHLW!|a zA_cXzc&W^%HUwAUd=REAUXe{T?2M2wf;eSPdZGwl8Y(A&2;3J$Pa%GK@I)OwwyT() z{={8WarTl3dm^}iq>fe9(6QrJ?>I@q}(+>by9zWA4VxUmJS(F$f z;s&q(;W$08btU`a1ii8MLt0aqB`PqmHzc%jxk+-*h60fkLofqj2CB`x0Y8L>-;`@g z2)~~z7ksd>rAM|U#zo5<`aFI{sJp`@{~au4|(8tCv!HXCGxVp}h9?5$fu` zLZAEe{gOfa@7sq&JV9&f+}c7wMh1y>M8~uBt)eEpue639-LXap8j@I#?pVzgYKSXq zH&^I%s;X@fxh1IhBKl^g#)~H22OM1=+P+#c64(yW7}*Q5!I;P}TAYz6*$s5tAac2h z2>{oEP8&!SQ5*Vza8g_svRnn68Js%Ta!YOEE8q{4^3Nr~^5F40+QLC)DHHj*h7QSW z5%>@&9lRfGu$qY<``x>-P?~X2zJ?Yeni`Z(6G z=6#^Sh|Cd0iEF`z1$n6=Hap)cbZk_F$b+q6zk>YNgLfB6ruL(k_lZ*WpFO>k{^h^- za3Cn6T7Fj4mopqtwP&?SriW!6CfS~s+j~WHch|Ne`uT5;h|Qn>+%C~jgf=3i$UuY; zMuqD1e6y9W@QVPEB0u%XyXoo2?xpYl_%-^+Z+($moayY|v4IWTLp!&w5=}oyW}R=A<7nNfW*^W)iq@qFy0@`U-j-;rl2mpUL zbVhzhyFe!_tI-P8}*cGUK-oREat? z$ar9QRI*}_$$XF`M{~2OwO5D`Yi>YF3>6I(OUqQQh`si(y`a3kMwGLgM4lct7_(1` zbQVNqL1rL-WI_lsI2W>HWO;{Aa)x<-F@52QZFG_CT3xRxPa~TINn*d8j3g-+v`pp; z;D_*u*Y})|><-H!z%~f9u<28eY!Zq4AOG@w(ON8FUxV%>S|b}*1Eyzuxcuw;nf9}48or)k@h)25h)mrzLL)_HO znP8h|B`y%5wgiCI;oiW_lCo2pj6aC)S8pAYj071V91c#1b07=umVPh`y}7SKTd>AB z4?jDI0$B^1DjzVIBJ+;C5dTvJ!v6R4;z6Dt<=PMW^mRq_3BQ-w}9Vf1G3Qk!tx1?L&yq z!k1u6kR#wUtzZ^x(-uQA)<#*#?iVq{4Z z7qa$`-oJ@jA*0RTv(l4fO^~}c710~-mU6RkK>BQ;1^D1S>$pH%)Y;uHT7SqY;m9A9 zo}!MPetL$#FV0G#(vvm*-mYKJDvIV5R@0CkbLM6KY~IKC3}=LRC;Fz~bVdei=(bs{ zwyVyAW6(T)ZO?IWa=a`sx*QC`Ggg?J4>0a?TEoyncv_d~4W{{73>%p%p2uGLcemH` zi#RIV(ycd#&6pon`e>N7Ck=}jwlUt=np;LLecQGC)N0aWG}D@SU-vb(EoAuj7MP8L zey=Zl<3-9yP2^@rhZNM=3oX)T_xuYlN!EvmgSSwSv;yJ1cd%04T%u3nyDz>%V`FxD z^{vAc7aJx0h=WX=Cph~)wErMn>)THMlyagv`f6SfXfC>t?6LS(o#Y$D@ zF6wDHXVJ*~(A*gw8Kc4BQO|fRZ6!FOw$47!0@OqNyNu^@Y1to=CLG(*r7d=Y<{&z3 z%{qVz3JMB05xOv3i~|SWFA8s z#-nUF7bqLf9TwB-gC7qcUxF;;lpKarFI(mcWy85c+3?n3{tSy(P*6~~!B7OKprCNa zLJ^>Xg2EjOMSuzl3U@3N0V*gc+_CV90Nt`;m6L*kgJ+IZH%qybyib+Eh}Z`+MYM&A z$@AU#Y+m)sIL3_Iy(*Slmm=4s@2Bt0W((r&n(7FCw|XSsEuQ^nNWbGZeIMg@1LkuZ z+l_O&-P1Po$d{XJYCg}5{q$SKkO~CQI*KyFad&z-&6)t6ocZN3iDfTdOod&` zxMJrq;W@>SFzOVPe@P=gg|e#8np4exYr=g_Rg~NZQFhi6|G!JZ@m5*jj|I4 zvmI6x6$w!%B_#_9f-D^q4(jdgk^67H)FgzMlCp@(j+Rms6U4?%o8@;rcSvZ6*e@8j)%|0fh0hXw+kR$MB61xm(pS;Lfn7-g$tCH zo-WRZ%D?^Id+BU-HRa^wNLClkq|iEWnV;7sSrMGAv!k8=j&mj!CC=8;+$5PHqB}BO z2z4eUC2@4Nu|pmchesyoWJeBXJ4`qxgjjGK{$f86W?yeFB`->$u8vNLQ0|JMNv!?HB5A<*l;8?ML;5Nz4==q zx${i+AO;ZRAUhcduA{w8w&D4-WgDGhN01F#l%bscffSMXBJ)F&#jq_1)`F~yuQAEC zMYB}IKKY&yII1cu>Hb~2#F?wB&&d6rJaJqI41|d$4pf2Lxe^%H#qmu{j>rhF$UV5_ z7z8Jj8}0)YEs@C>go+A=GC>p9IKHi|mEvOKqyj~9ripXgIfKPLBMU)=ZRdTAenkcU z0sli+#~HROND%c6Wz*f&%_J8u-5me->Z?L_VVn`d{-`f#d4L$PG9l_E0w#PCzu`QZ z(l$x5VVOtj*f$Ha&VTXpW7y#k5v$DlYz9m-Cc68a45j&Kt?1MNp^k)qq7?Op}FWehnHQ9bAUKOu($@E z)z}x;1Cf9{&z?CW`}tG}z;+yONTY*L$Gu)O0Zn>Y85PWU9y|m7 zf;6vn-`YKo34!A`Wd3qrgtBb#$e5X5bScaYC|i`PQU0h?uyb4MsArqe4-B8P=t0!* zC!_3*AZ9KXRZbdwVi?0HjeqIPS`*x9P_h!->dQ4M{U0z47?T>_dec$*~Z4c*SmM`O5{1GHE6~@3O5edDz9t# zr1cuUJt2oNtlY{4OP zeOW9wS#7~&Me2Sd%Z;-k3_!Nn<^yNDMbgM3OEFrcpHD%-C&-IIeX#x1e9__Ldv-c+ z{QY7{ROh6A-s^ME)TF~F)p{Rig1E@(u+L)8+3cgBprCMjF(1+?1qB6#n*v3E3JMB$ wEEEAMC@9>qPz0!;pm4`R5uk#C!X1nM2f@&UGRsRrE&u=k07*qoM6N<$f(J;79RL6T diff --git a/android/app/src/main/res/drawable-nodpi/orbit_icon_all.webp b/android/app/src/main/res/drawable-nodpi/orbit_icon_all.webp index 70390627d16e589c9a88012800783b987661a698..9584bf152f38c926b38d8b62a156ad5bf12ac587 100644 GIT binary patch literal 2512 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 axL9;`0PY(MaNk_?e+{kf&@U|ZvpE1bx$l$! literal 2052 zcmV+f2>bU^Nk&He2LJ$9MM6+kP&iER2LJ#sU%(d--cZoC4b$+a-R=^I2!(CiAZ^ER zh~5Z8bB2}O(KF2mb@~6(SlPLA?&rM1uYxP!om-Qx;tN5$Z4%smJJVgPGdsZ@I%kUq zJA%8r6?ccs6 z$dR^9k(*QcJUWLX%$77i%#4`M;0swSZ6Dyvy2=?wF42^_N;FZ|hUVGY$SlZK%+QY5 z0pvE497$HL3;RDUdO9Mzdh~g6R`wsxZQG_E+qP}nMrW(Foz6*>A7HCv=Tx?B^ZVkw z`|f7sHj*L_&xselfSGieYGtb9l9swo4FFo=I-3Hm===T!Gj_HzwmSpOKLXA3{Nvi5 zHW-d&7HG@?S8S8m6|M)fVw&4Y>ttsfrxj>k^vb?YPh{IFGq{%Q+Mwe!MY z&$UNa{{IWB`7xB$E=@wfKV_6MQmi&qn1(A0f-=ME zi_2UOf_^>^Y5nWnwMJ{$vX*0`7*Nt2)e9v;87TR$IKNuub7jy`d1KGCS7A8zAyaLd z7>-7DLV(mWc9@)>--B5bh=LQL<<+iw`tpa4ygrI&vCXOWz{TqAzJ`G3U=JltnBWDr z`769`=wr)&dFt}lc{c|x*SvIrBNIplR7@?o$Fq`)|ac_Mw7Ol zLwZN;&DOP(dnpO{Wh~TY;O$ULBInm#)(s^<)0dPvLIAJ5Ox4%MjdFvzA<$G{$mj5V9~yiY$f{St4YXFc&9Vt;+iiWj4Z9p)Xg3PwL9Ho?P)^)x;tvc|WNh zi2&ojOVB5ON))WSlAElZjO>JM;^F^=@zllceOo=G!-RlB(w6iZeD^|K%8<{hT|6ZyQs+88`OE zEs}MUPm~zS7y@KPO`t2%z452_&t5Urn`j^XY6!Fc?31!-&M!s}!d79M2=rRxZEDr0 zXZKA~_Ou;Ty7%mpRg}@uy-?OFq0+_RDWXUa+SQRL`Gr3^IBU3J%Z;32eo=#@jRJtGMOGTDX?ExK?AU zIH)zfRtDDUW7lf6xPi6agcFGgnTH%8i6;{JA{2%nRKWSk=O7&(0KCCG%8R*J^7|*e zu{?dBL5ZucK50L*X!vC9H?hbHYQgSwD z;GhI!v{gjZ_U&LuU|4e-a~HM6RP(6=EG4M~Y5hw3l2vr};r;^*d7^_AKWjQQ1uskU zNjs!u6-;dR3YM_20|$s|B#;shR!j4o6x}7*bW-N5q{N(-l6-ZJ7;h0IaG0JAO7v)- zksLaEP2T~A3CH~>qCPm9jO0KjeHO`+BAt+&cdL|pBRO<-|An|%f@T_$7U33zTMvGi z$f4Fex+W(cC|KBm6HzZihXOE>L#=zKb=RcM20M6ydJjtf{1+y2pyrnpcQjFFUP>lQ zN_5EQVIDsRCON5(r0_$8ZK>;}FKKufXKbG()!i#T7QwbOTU9l%0n*{WpwhI(k^UVL zk_CI9Sug#nk0#l;aDa^PWL&ox5;BHa7AIJR(F@HRF1M)Zie1fZf`mfC9%x#3FbBEF z9dQ3mT$3MN#{^}mZT4)?F%+qWFF+j`G@p%hi|lrN*zT5C zfw#0NlWA83r~g2cV2dXVX%C)A>XZ}vXdJ7krzX{kQ{>^ujRxnJnPe)(Fj))}rH;D) z#G?<%NHv{qVoF3KGs|#$Rx~~`%q~G0CbZaJO;hPz1ztlW6OVAZK5P$NV1BZ8?}ot> z@c{YDa5x<1o_(c!h4aA^uRa#X1TE~xRvg0i$znaOS2SHid&3u2ifq&VY@eMag)A|0)-ZXlijW9>UH}(QU>}IjMTkICFHfwjUSdIhD%43?k zqnE)0bq9lPmBb3oiiGLgv3%Y<8x7m%jW=mQ^3Bdms#UMi?U?hxBm{rZ7b$B_rly&g z-eBJe&NhcbT(EO5*eW$br*;m&dB70J9mc{#g`!I`QR;zGN2M20Ot^&?fH{B*@4ig- z=e3$&0GL&r)|IAZGL4{hrTpt+`PcRG=MwVgD$?gd^5EA)kVl9R|hb60SPo4g8#1})JuuRY&HQ_nf>4Z diff --git a/android/app/src/main/res/drawable-nodpi/orbit_icon_cartoons.webp b/android/app/src/main/res/drawable-nodpi/orbit_icon_cartoons.webp new file mode 100644 index 0000000000000000000000000000000000000000..303ff23d56cb8e7e67fa0d9f013466f04aca1883 GIT binary patch literal 2128 zcmV-W2(R~2Nk&FU2mk#+{)--aYfk|HOvcE!w0 zZ_rhyr|72F>J`k)>Y1uk2p|9g&~QK$MFD~!3`n!I6beN_p(vnK6k1j)ZmET$peRt< zqUE211EZuUu=wAA+XA&f!4wn{V~{GU0t~}2ih@8uEnpafOj@w&2qNiQL6xc^@gGS{ zU_?3bkEEmG1;#g?#b_%uL$RAg;jZmDOXZ0%{YFQASp-Q&$b^N4{)Pt_ZZm4!PcaTM zf=CF_nrwY*-bea3jf?4`jplavP1j7xn)N?wGtLiqqz%?S)J#n3sjY|qc>m?|J$dIf z&+F~|_dML~UObsZ5+%fcDiPoR&Cj|Q>oAj}`O1DT28nfYR_(iFbTV^-RY+taNkp5b zZ#z<5P|BDlQOlF$b22j*VX`tL<)gFy{r}m#Q6|bHGKr6VR`Qk0*ZqCuae){^>Oi|K0y`W$gGwLfW-$hU8>Z-D}%6vJ+R*)xB11+qR93 zZQHh;jcwb>`!A-es(UJ(e2(b9MA>%Zws``x^^M8}cmPR%0sLnk^Kij*8Le>?B?m&?IN=5k23Ui&&_r33$kTN6-^TfNo-mH$eP|MR~mJaU`$SqswDqq zkEZ%3nScbHgH?>x;LhecCDNmv;N14HtKf!-p0BT!rC_XN)mm@DZosOs+s}cMpr6k+ z_wYS1A7o_6o)}PoF~$V}6Aj5ohWQ74J(`~t^WzT~;GS0!dvpT84MTPe(LrJi$u|Hd z9E~l>a~}XdMBo|>@~eqScF?vJ@ZFeQm5{2&Ey6mZBgEbrl8qZAX2u^Q3^TtNt&p^uk_aoxx|3N8-XHxpz; zvFY`o{wJD@WSF@xs2D4CBI{zTdG!HjQ5b%@207hvb3iu1T7n)Rvd*UciPr;J4~GN| zlk9-a9Z!=Qr-zGz1T(7HNK88ze>_2B0_59bcDC3VT>Om*2QA_FcxV?xY}ICfBue&{ zHB2X2IqP7aeb%V}*#JY>)n+|l2yC#21GRGVU|miYNpH9ekSItUqH5Gm9W60lqlFzA z+5Hslt*i&1>OS&Fn8tXXG&;3*ji?TiFk$@$Jp(k&cM?=EUSE_JZDaJ5qp!B;v?3;Q zDqxbYrUmqbZy*THY(FJBYBj77CLeI~15vO>N4~_)gR{8&J12#jXTIvtYRAiOT;-zI zF=Y;&uSF>n<0m}TBuT7V>*OTDDlhAY990sgOthc#R6p0FFUXww!XuZ-9Bdppq)N#7 z$8}kf5JCpZM8zp5Yx#Jzxrn|3diM^&S9GzBhYywcI67dUN(doIlCS@uDgneDp+pby z8tUy;vnEexZota^q7DgQH`5FMFeF^k5|ZNC3g=o&AQ-Uby&51-CyV zLg|?>sv4Z&?aP;M!HKCn3}!iW1a~wQR~9dvJ-pw})qvn?OLw2pWTmWrjv%s4B?FOR7(EIcFctu%TOeb#33cewmUS>f_$>D!>?z zJdG%}tn`G)kN{6_eTWU3v`}qk^3)f2@$vTUk1ybhnLKDyTQq5)560UwAS5y&Jk5m?22^J2qRJMPJ>b-JR+Vi4wl1}5+5rH#@%i%&0D&etF9UpKcmngX!*zv;_VD@h zhjtTLSBR~PzQUu|@87?E1Yd>LMI!6EukhgBn_IWu+(Vdq`2EehcW=Ib z3|~anr4HBCrXjGdc6?u8`WJ!w0>}3?W+_7VH6r(A+!u-5mxX{wUfA;Y+E%)kxBTY{tpB-)|MTZMIF5;||GAp~ G%L4%WaxA?7 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-nodpi/orbit_icon_documentaries.webp b/android/app/src/main/res/drawable-nodpi/orbit_icon_documentaries.webp index 04d3b5dfae7ca40279f7f19e1bada2ad37f8f63c..d00784303d0aa77a1ff5de7ce70e8349e1b72f50 100644 GIT binary patch literal 2178 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 Oq=#2>6jwc>LIMD68x{Hh diff --git a/android/app/src/main/res/drawable/orbit_icon.xml b/android/app/src/main/res/drawable/orbit_icon.xml deleted file mode 100644 index d060114..0000000 --- a/android/app/src/main/res/drawable/orbit_icon.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/android/app/src/test/java/tv/orbit/classic/GuideGridTest.kt b/android/app/src/test/java/tv/orbit/classic/GuideGridTest.kt index d2b51fe..0cbf854 100644 --- a/android/app/src/test/java/tv/orbit/classic/GuideGridTest.kt +++ b/android/app/src/test/java/tv/orbit/classic/GuideGridTest.kt @@ -96,4 +96,12 @@ class GuideGridTest { assertEquals(1, guideFirstRow(5, 0, 6, 11)) assertEquals(5, guideFirstRow(10, 0, 6, 11)) } + + @Test + fun nowOnlyShowsWhileItIsInTheWindow() { + assertEquals(0.25f, guideNowFraction(1_250, 1_000, 2_000)!!, 0.001f) + assertEquals(0f, guideNowFraction(1_000, 1_000, 2_000)!!, 0.001f) + assertNull(guideNowFraction(999, 1_000, 2_000)) + assertNull(guideNowFraction(2_000, 1_000, 2_000)) + } } diff --git a/design/interface/build-new-icons.py b/design/interface/build-new-icons.py new file mode 100644 index 0000000..57924e5 --- /dev/null +++ b/design/interface/build-new-icons.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +"""New category icons and the app's launcher art. The first icon set in icons/ stays as it was.""" +import os, subprocess +from pathlib import Path +from PIL import Image +HERE = Path(__file__).parent +ICONS = HERE / 'icons' +RES = HERE.parents[1] / 'android/app/src/main/res/drawable-nodpi' +C, A = '#E8EDF5', '#7FB2FF' +S = f'fill="none" stroke="{C}" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"' +T = f'fill="none" stroke="{A}" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"' +CRESCENT = 'M335 132C141 114 66 384 257 475C143 363 185 207 335 132Z' +ICON = { + # The TV now carries the Orbit crescent and ring. + 'all': f'' + f'', + # A camera on a tripod: someone out filming the real world. + 'documentaries': f'', + # A comic burst, so Cartoons can't be confused with the Kids rocket. + 'cartoons': f'', +} +def render(svg, out): + path = ICONS / out + path.write_text(svg) + png = path.with_suffix('.png') + subprocess.run(['vectorcraft-cli', 'convert', str(path), str(png)], check=True, stdout=subprocess.DEVNULL) + return png +for name, body in ICON.items(): + png = render(f'{body}', f'orbit_icon_{name}_v2.svg') + Image.open(png).convert('RGBA').resize((96, 96), Image.LANCZOS).save(RES / f'orbit_icon_{name}.webp', lossless=True) +SILVER = '' +BG = '' +MARK = f'' +png = render(f'{SILVER}{BG}{MARK}', 'orbit_app_icon.svg') +Image.open(png).convert('RGB').resize((512, 512), Image.LANCZOS).save(RES / 'orbit_app_icon.webp', quality=92) +png = render(f'{SILVER}{BG}{MARK}ORBIT', 'orbit_banner.svg') +Image.open(png).convert('RGB').resize((640, 360), Image.LANCZOS).save(RES / 'orbit_banner.png') +for f in ICONS.glob('*_v2.png'): f.unlink() +for n in ('orbit_app_icon', 'orbit_banner'): (ICONS / f'{n}.png').unlink(missing_ok=True) diff --git a/design/interface/icons/orbit_app_icon.svg b/design/interface/icons/orbit_app_icon.svg new file mode 100644 index 0000000..8d7773a --- /dev/null +++ b/design/interface/icons/orbit_app_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/design/interface/icons/orbit_banner.svg b/design/interface/icons/orbit_banner.svg new file mode 100644 index 0000000..27762a7 --- /dev/null +++ b/design/interface/icons/orbit_banner.svg @@ -0,0 +1 @@ +ORBIT \ No newline at end of file diff --git a/design/interface/icons/orbit_icon_all_v2.svg b/design/interface/icons/orbit_icon_all_v2.svg new file mode 100644 index 0000000..aed020c --- /dev/null +++ b/design/interface/icons/orbit_icon_all_v2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/design/interface/icons/orbit_icon_cartoons_v2.svg b/design/interface/icons/orbit_icon_cartoons_v2.svg new file mode 100644 index 0000000..68ce1b1 --- /dev/null +++ b/design/interface/icons/orbit_icon_cartoons_v2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/design/interface/icons/orbit_icon_documentaries_v2.svg b/design/interface/icons/orbit_icon_documentaries_v2.svg new file mode 100644 index 0000000..7f9bcf2 --- /dev/null +++ b/design/interface/icons/orbit_icon_documentaries_v2.svg @@ -0,0 +1 @@ + \ No newline at end of file