diff --git a/README.md b/README.md index 22514fa04b5d0deae00b74e326bc50982b3424b2..5000c26496126b1f37421f6218e885efeda34e80 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,18 @@ -# Web-Configurator — GPLv3 source release (archived) +# Web Configurator 2.3.3 — Unfolded.Tools modified build -This archive contains the source of the Unfolded Circle Web-Configurator 2.3.3, shipped -in firmware 2.9.11. It is the last version shipped while the device's licence listing carried -a GNU General Public License v3.0 entry for the Web-Configurator. +This directory is the complete corresponding source for the unofficial +`2.3.3-unfoldedtools.8` build used by the Unfolded.Tools Remote Simulator. It is based on +the complete Web Configurator 2.3.3 source snapshot published by Unfolded Circle ApS and +is licensed under `GPL-3.0-only`. See `MODIFICATIONS.md` for the dated change list. -That notice was our mistake: the Web-Configurator was written in-house and was not intended -for open-source release at that stage. Rather than leave it ambiguous, we are publishing the -source. This snapshot is released under the GNU General Public License, version 3 -(`GPL-3.0-only`), with our own artwork under CC BY 4.0 — see [Licensing](#licensing). +The untouched official archive and extracted source are published alongside this directory. +The modified build replaces the archive's Font Awesome Free compatibility layer with the +locally hosted Apache-2.0 Material Symbols Sharp variable font and adds the simulator-specific +source changes. It does not contain or depend on the compiled Web Configurator extracted from +a physical Remote. -Later releases of the Web-Configurator are proprietary and are not covered by this licence. +The following upstream status and provenance information is retained because it explains the +origin and scope of the official 2.3.3 snapshot. ## Status @@ -23,11 +26,10 @@ needed to build, modify and run the application is here. ## Provenance -This is the Web-Configurator 2.3.3 source tree with a small, deliberate set of later changes -applied on top and a handful of files replaced: the Font Awesome Pro stylesheets swapped for -the Free edition, the third-party licence information in Settings backported together with -the translations that go with it. Nothing else from our development branch is here, so apart -from the differences below this is the source of the build that shipped in firmware 2.9.11. +The official 2.3.3 snapshot contains a small, deliberate set of later upstream changes: the +Font Awesome Pro stylesheets were replaced with the Free edition, and the third-party licence +information in Settings was backported together with its translations. This modified tree then +applies the additional Unfolded.Tools changes documented in `MODIFICATIONS.md`. Internal tooling, CI configuration and internal documentation are not included; none of it is needed to build, run or modify the application. @@ -36,12 +38,11 @@ Archived on 2026-08-03. ## Differences from the shipped bundle -**Font Awesome.** The build shipped on the device used Font Awesome Pro under a commercial -licence we cannot sublicense. No Font Awesome Pro material is included in this archive; it -has been replaced with the Free edition, so `npm install && npm run build` produces a Font -Awesome Free build. Icons that exist only in Pro are mapped to their nearest Free equivalent -— in the stylesheets, and at runtime for icon names stored in a device configuration — so a -number of icons look different from the shipped build. Nothing else about them changed. +**Icons.** The build shipped on the device used Font Awesome Pro under a commercial licence. +The official GPL source snapshot replaced it with Font Awesome Free. The Unfolded.Tools modified +build removes Font Awesome entirely and maps the legacy icon identifiers to the locally hosted +Material Symbols Sharp variable font. Thin, Light and Regular usages map to weights 100, 300 +and 400; Solid maps to weight 400 with fill enabled. **The Licences page in Settings.** Settings → Licences, and the `public/licenses.md` attribution page behind it, are backported from a later development state; the shipped 2.3.3 @@ -121,28 +122,24 @@ or supported by Unfolded Circle. Requires Node 22 (see `.nvmrc`). ```shell -# Install dependencies -npm install +# Install the exact dependency graph +npm ci -# Provide the Font Awesome Free webfont — required once, before dev or build -mkdir -p public/configurator/fonts/fontawesome6 -cp node_modules/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 \ - node_modules/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf \ - public/configurator/fonts/fontawesome6/ - -# Start development server (http://localhost:3000) +# Start the development server npm run dev -# Production build +# Generic production build BASE_URL=/configurator/ npm run build ``` -The destination comes from `$fa-font-path` in `src/assets/vars/_variables.scss`. Vite applies -`base` to both the stylesheet reference and the contents of `public/`, so the two always -agree: this works unchanged whatever you set `BASE_URL` to, and `$fa-font-path` does not need -adjusting when you serve the app from a different base path. +The Material Symbols Sharp variable font is included at +`src/assets/fonts/material-symbols-sharp.woff2`; no external font download or CDN is required. +For the Unfolded.Tools project, use the canonical project-level build command instead of the +generic command above: -Skipping the copy leaves the app running but renders every icon as a missing-glyph box. +```shell +node remote-simulator/tools/build-web-configurator-2.3.3.mjs +``` ### Development without a Device @@ -166,3 +163,10 @@ VITE_API_PROXY=http://192.168.1.100 ``` Then run `npm run dev` — API and WebSocket requests will proxy to your device. + + +## Unfolded.Tools session base + +The canonical project build sets `BASE_URL=__UCVR_SESSION_BASE__/configurator/`. The +Unfolded.Tools server replaces that placeholder in text assets with the isolated simulator +session path before sending them to the browser. diff --git a/docker/visual/run.sh b/docker/visual/run.sh index 00a3426611c24bb678e66e302517740d5b8c2568..bca2786988b4545822dbf4b274336f5807bdcec9 100644 --- a/docker/visual/run.sh +++ b/docker/visual/run.sh @@ -1,4 +1,6 @@ #!/usr/bin/env bash +# Modified by Justin Jäger for the Unfolded.Tools Remote Simulator on 2026-08-03. +# GNU GPL v3.0 only; see MODIFICATIONS.md. # Runs inside the pinned Playwright Linux image (docker/visual/docker-compose.yml). # docs/specs/007-simulator-based-testing.md phase 3. set -euo pipefail @@ -6,25 +8,12 @@ set -euo pipefail # Linux-native install. Skip it when the cached node_modules volume already has # this lockfile's deps (incl. the free-icon font); a stale volume is cleared with # `docker compose -f docker/visual/docker-compose.yml down -v`. -if [ ! -x node_modules/.bin/vite ] || [ ! -d node_modules/@fortawesome/fontawesome-free ]; then +if [ ! -x node_modules/.bin/vite ]; then echo "visual: installing linux dependencies (npm ci)…" npm ci --no-audit --no-fund fi -# Provision icons from Font Awesome *Free* (a redistributable devDependency), not -# the licensed Pro webfonts which cannot ship to CI or to developer desktops. -# -# This is the app's supported free-tier recipe, unchanged: drop in only -# fa-solid-900, which fills the "Font Awesome 6 Free" @font-face (base/_fonts.scss) -# that the icon font stack falls back to (fontawesome/_core.scss). Because no Pro -# webfont (fa-light-300/fa-regular-400) is present, hasProIcon() is false and the -# runtime Pro→Free icon remapping (src/mixins/icon.ts) is exercised — so the suite -# baselines exactly what a free deployment renders, and covers that fallback path. -FREE="node_modules/@fortawesome/fontawesome-free/webfonts" -DST="public/configurator/fonts/fontawesome6" -mkdir -p "$DST" -cp "$FREE/fa-solid-900.woff2" "$FREE/fa-solid-900.ttf" "$DST/" -echo "visual: provisioned Font Awesome Free (fa-solid-900)" +# Material Symbols Sharp is committed under src/assets/fonts and needs no provisioning. # The dev server (started by Playwright's webServer) proxies /api here. export VITE_API_PROXY="http://sim:8080" diff --git a/index.html b/index.html index 4a47f3a16d876273edf508da8751aa0dc4657db1..2fdccb5eb6fea43fc0af0d99de0368d2023cbfdb 100644 --- a/index.html +++ b/index.html @@ -1,43 +1,3 @@ - -
- - - -HfC|Mv$Wur;tc%idVb$K)`YuOhB*&K0|74 ) T+v>ep}Zd-lvRpF9nmdXvhVRpPkXBD;t7{=ko!iXIxZKM^+3LF4_I5PoH zJe-hKAmmdPgm*@uL=@#Eu!It6hRX>$lvy%JLa-Z?x~jCd>6zPsATgcYp)E2bGlDRS zT#FS&6bICnMI0kgs{=$>D3}K@EmS |R-#4;43wW#3xqkGl2W4H zuJG$-=y&Vf8?6(OJG219B193Fyy1CO$JwwALu7lYcp{IgC5T8oYX}1hQ$P;VOfkZ} z20qFP|0?{6>KGG6f5T2l2)cG@PHV#QD38fwL6sp##6%GUXDQ8%Y>CIPl9OOPFmT^t zWW8p%T@>Zs(>P_SZ^zpT*r+$B4I*;q033 3kqA- zPqYE6^X%+GxFEit2NmZ};#w@?DH3 o~nBG%L{ z#BRrs9Dg@Qz5}HTu<7AhJ2pkFpzu|qkizmUXTTQ9W;WWNh4t#ytNZ I-OzkPfZ8Q8n$XJddwuO`hVexn!PTjER!Q-;WTx%QA;Tb;9XEhj8PFC!QM zh$e6&4+3YmZrUz}qK9DD&;7X)QHghz<&uH474q@%#Tjo5*RMR{d|%aRK8?E3p55;E zgKyp(uU&i8W}_o#iy`^KuJ@J?mi^^`5J%n}@c)yN>5;ez+KVl9U;qXhK?vxB5wmob zG5$0CnE-0w<$!>m++ U&YZ~z`p ez8#y=u3{TZ;X)b~>6B^=0LRc^stx0SwLv>tu`K z1Ig#_EEk?hNg1hCRSFwu%#zl3v*+=u!fH0xrdtm__~22nc03x*8igc;_mRuC#OCE8 z$4BSdc5A$q&2dxrj)e>EUVFDdiWC6}ojM7{MDQHIy $yL`N2!>6r@2+
SELng6gpr4Gtwb9LE7MT- zYMH&9^U45PEQnE*Fg$!hErbM)dcOvEk;FbOEr2cii**6|>J36ey^IXlU17BEE5Gud zv5(g-&cYCaG{V@R9m7JV6(cN4ab&Ie=FQXn)gro~#?ZhhSqJbEZ~Ji^2DA_yk3v9! z9BPEdzSNhl-51CU6p9qhL(q(`pC5aAadR3LgiuK^YAw$mWz>>Njif|6EVYk({^@mp z#BJsXIqrdM9rPtm_{uMGThKv(u8V7i=V^)@l+f&_FF!vOW4q&nRMg{ hBp5fzpML?Xo!DVFJOLPqB^cE-z{tZ`NM zsovkbJzZmkks_e8fA`<;+v351lnl|fbW#c|JF~hgHc2QYG(O!|Ic`d%%yL`6a3TpB zV$EUxd1JRGg$4eus)-(O8awDEAyL%q_qlk#4UK1KaZ}G8WCM(JJfYVIuec~d2wooI zO;CnY$#@VziuU^KPiG+o5Z*`ON)LhXvv gqa+MhZ`TornSI ?%iA7GeReUtI7AuH;<>s Q)V nO4t?<6X3ls_~B|yla5YS+6x3`RQ7uT9puPiQ?unHgojAj~=n<0{) zC4o{Tk}&}Zg^Yk%X|Lx@$wOg-^aJZX&- @!DrQgOZ7gY!kw1!adU ^=goQaxWIiuClR4U%$ R|Rn`A_Jg$a&{nI1YaQD_RGfMv^#+UfPU z04YoeA*A@NccW6Ek{V2QZ`Z5- #;P}f zn*=KHf;b>?t1ZNkYeN ZGERZUXgt*P01fm(2vKkXe_63T{V8K46EcDmAPS0r4Acj}H))-bsS^;9 z$bv%XA;4lz5Vjy|DR(3kkOmNp+t8H2lnWEGHq%z%+yUwkx&m~D6bwLs9rW-^(*#0B zq(Uvmi^e~TA2RwY6FUekfl7!26az;g-;YBCVHoQo6%bzI>j7ebKuk{QOXE@uCxTFg zYIX{-OCUvYXvGOjJ>|H&E&+mp=reB|*B3=Mg4U^DkDHnR@s9$AzC(6#4^5nW7=0mA zz)>WGe256KYeN}8(pWN|zwFILhx7OrCG~LumXkogK(od!!M5Y+Xxv|>feDi$o>QaJ zUlzcW|LK;V@t}-EDh)Usk`^EX5&_v-FF*eDVjo$%rt9U^K~3;^L*$f@03p$1l(qFm z^@GpQC4g}891C60t2D4LKfc}X4k90n_AcN=19Sij&YS(UXpgRJ?d{pQz5MjY6C>wX zz9yLyfUlr5AVRBf+;ntqZ`9;TV8TH#f%k@R@D39|?f&`K?~iAJMyXB;5U)M3_Yw+u z`nc)8DO|sDeOx!3+x6) SUFP$z z?-9{>U%u`T^njC3iQ;zoh&PW%oX_-hCVYIP?W>uVy2UdCT%Z8~8PJf=GV^(joHz%* z44@W$Qz#sW2-9AlUylb=z`K`dZy=DSS0+lm`s$m*_12@~QF8;_SD%o5O=mMDZN#T) z^H3BRfgdi@t+t_{@IvsOIKJ VcOX@Cei8!@6Gv~9EBCj1F qkT388 z6ti7%adT!RBM{CUwPkdT4U+5j$Cu-KK)V4cx+!(bBS1$&30>vus0#@}1NYPJuTanm z6!dM7+>n3t6MNe8W^GnvFdL<$sF|Bj++Pi(pb9kLEr%$;i3@uaqYXx+HzA|~8RTc% z=RQ6ffH>i!g9MVK1owWuxwRZe%2-LMfZT5R<;(r*N+?LCA|P*vtP}0xBb5M8DFLLt zzQ8O5CJo8(N!OU<&4o-+MIuK@uvdHU&7}AllN1Q 8*3R$Wf^;3b`E^ohoFp04a%| z?jR)*!R+>UZZ~4mVcto4ehZL?_V+TXIgd;auS=&4pa`%X7BMg9ri;K3V2J9l(N+36 z_1NN+3CxxNiN#}_DX-gkWzpF|VCD%k2tiC4_deJC@wx?uOt87=L5a`UI@g=0>+awX zBEcq>-ZqDR-H&mCqvBDimjVgcsIn5ZGe*Q32ox8P10~?XHSB5Ja)JNN&;16u*S{}V zC FB~7ShJd1#$FsK8NRg2!TC6d_0b*Aj&LM)GP80@#v=o7Wz|)*AdFJrb z&fnr+3Q)dKt{af_l9xP^dshS}9j_CXhsxvq?0aZ@Dgd4GkrVCx%N5;{=IU{-?@R1{ zq~IDV7$OJ=C~i2)4ErUX@8bRvKOk`cLJSIqAMYbyz9@-E_UZt&Kf0(rp?sC^1Un(! zC9dUA`~7sd&FD4w%`aSSMK|ie!A4*#*lSI=DD|pLk5{-ho2r1{v+&%Biv!sFa(Fzd zu+?+`IW)0@sOTmK#Z0;Fsab&&AfY0R#u++u!~_^$5 9sKlSRdu zZ?~>%zLi*k{BbK?ZC+jZWJf8{8n7uu5}=#U)LohM AbLU`1bEKFfDq*gaQ>7d_S| jQc{ z4lq7{CigMrmxESP_5lz!*9}0?2q{6OgiN$>(h^Wp#>>0;c|DXOfL??2I0iX}Qfm(| znZNi77Y&~UxXVy1z4y9+yD|qPq@gVIOqz0>+YXOB2Qt_Rg(^qV#BxqgJZ$i?1tQSY zrFByiAmC5~;xW9y;|IcK4U#f^IBi{mxeUb9-~K=Tu^kYHtbmIZEszch*b2`Al#2Yx zVty3+1yDeS8Wy=-KsG@m$q0c!fH&7!oJ;^^NC2H^7qTCf7i^QFkap5Y09}Jjj)nnZ zhO<1?q1M~e#7lsfO&+R)6n20UcA>-5&28KXFyMSGa~SOPrnh?n@Kh<01U2xRryyK_ z6^v(2VA<1k54eQ`tT3HZSm}71k4@x2168^Uxrm}r=G#v{-Ih#uV5t0E4B_MJdxvcC zHUCybkgU2A83|7W1_2!rv2cYZ07H@>W&|R!xZt5$C?Em&$zGqb2tf)H<&r>wmv7E1 zt^wE!$w`zFfSQKH1j))}S(HFQHZcGT(duP}-EEY@hP(#>8sZRwWZVc8B^1Eg9u(-I z6`1RAaR3DYgjWnonqWf6)5OS9qEi8q{}klJLRiQ9(;KkUgqjk28&D#ug#2ZO0y&Lk z1e{ygJ k=v^Pby&osx-I3ZkI_4lNg=(F<<)7g0h*l6&*Tke2&spP*)6iTZ*%M&P|@z?(R`b z2J`}~{>#JZ>>dozN@>DP810aLKr7eOJl$U1{W7+j9t=# 8y$kF;Tp*n!=Ct2&%7inAV?GiLOum7;Z?tu(JVA`D2s8Pu+3bb z-nt{?MgT2ENC3A)an*?Q3mqI9;jQ4d5BY41C>h%G>3-MgIGvokdSD4AfP5hMrOAev zy*6gkxSob12ryutp1R(=*>7(m>in3O0ICR_3Zje_!W$gjce;Q4=(E+*1qFx!=-_xm z$j-NKn|Wg=Amyup2&4mxb)KC^{TPkp=}jnsac`cUu9u%b-M_jwSGl_sFaZRF>G5f@ zOutiI3ab;(gMgY2Kyq$k{f$-!^7eA;$fObN5E;?n72pPv1K7`>*lTXp9H8r(QA7!p zkA;T0JQNt{moOovJf4nk@NeYbBc-ko3&m44N)HYBoTF06DsVUqMIlmwrKY&IH#1%1 zTsy#xrqc-RWe!xvz!VY!SbVAss~vgl+htP#gP!Vspum6-276n16Q@;dg8 Km!wq z&$L>v<&iKRX4Lf%NAwz_oLD=6wskY^hhW`k0dXk!(ZqBi2ff(au(;irtFbX=)M>5^ z>Mh=om&629>rao5T59sJy>cQB=v!hT5RgEdX7nj0d>9Ex%Yjg!CotPFI9SaA)L}tU z(*m7{Fd?yVD!_uYR*pmfu|@?#px?}40bkX2cEg_DzPdE 3iHBph8B&b*yBCz~9_@mUZeIt4o@U<`(v-e9PmOpN5K3=X3gNf3tjX2C25 z<5ok>7zv69s3_g`@o5a% _+_eJ8F$hRp+T;Ctb3X||8(*7!_<*?c1`rwU@g>r@ zO?1JKuOf&;zz{<9@#)PGtsNdZ76?U@si1^D5}tkH9^_ESk8Fe?fXfe-|9aCd6Wa zB-n^`fgXZ~79M9rr5KF>K{13T3<+gnfY;NV3*}ru>_Blhal{5O$hqbY@Y(_tjmAy3 z0z*@A0efz9ziy9I9s_ZnAb}EzAZBtHBI{FIfUi)KsbnZ*)>^4?bI)yFj`%=56+5Pv z3a*7@b5-Z%^-2(g)N(A;N|;#M>=k%H2JW}pS%R(uF%%$#I~9Wdnt)vZdl`)hqJjtr z@-Z4;)VN=B2St5v?tsS!sXYZrX&D3-h~8#7QW~RI6CwpAOX0@X5NLqb01kl^y+dF& zKJe_uzKKbw)<}iB>Vo2U3p9pC7|hUiGt)wuA~XUa36nr?$5-VQH6SwG!AetGnCBrC zEI@5s@s-aYw1XE|CSgE`reHyW%Rb(o%H; iVEq*G8&-Us9a5EizX8M&?Ev%QiClvvURn#baD3O(V3=P&+Q zySsOIjL&RtP9FQ>cVvn%6(s6JVh1TC8VhZSNb8nC0w|)=K(Wg-O{RfdfBLcy@nUd5 z?AA@ih>f^edO0bXI`>!So;rC*n9G*T>@J8jzOL*=Fe+(5+h))N8i>Fg!a^XsU8rHp zm?a|^appbB?((n{Uf4?2m$@n~$hGTxFaPqHrM#E;DFgu_OG3tknw(s&jp6ucSTcME zsBsML-awluQ} +YklzuGuXXPCF)TGT34wl$bU()!EbY zTreVvA|UUBXO_YuAcr6WAp?!av{oZ)6C~3?o9_JICB=7#95>>#;x4G?MQTbA;=o&K zswQMz+B{)(K>(+L;tpV-$N>l-=@J1rfdhkkLG!RNSgVa0E(JAvh(Us&hRE?^r0WEg zbcPM4fC|yDdh>91`F6Voff|q;P>H4-1c76my^e(938GArl`?V=gJF~z7l1ue#T>oj zRV4FUruGVgN!QuoL193#y>jsF<Mg?$ubYWK;`+?n1m`B_^eaFb^FdAf~V`(Q?(& z9DL{& A$iFPavtF49Bz~HZR{09Chk7WW*661RZ1udjW~` zZy=-%i0uwy3}?4pp614`>aY+%IuME<{r>k@1-6GQE8{cBqB4p`2SiJ|iypS<@d6|% zO0b0|Wjg^U=p@V?f~Sz~M|SW`5IR8t!GZ&2!EWGwFMvg7@)_tfMfOJra6tsu0+_Ra z7?_?G+%!4^basRs!ipjZ>>-)&tmvQ2Vy1kTZQrS{2ZBxYmUZ58?ZRpUh>;o!Xx2yS z)h2-ea))PjrUl+K#V&65_8Hb2xRA>E>$5 t*e&D=k?j*`?=`H`nMcF>X7AW{4 NP8{fI9;MQ;3Mt zRgFU+1Pv(hut+_}qsYnFVd#v22J|PPp)znA8&ni~zdKjNH1)I`JjR*u^71y*5Dph; zzxv4|)5bZBK#E{+DgszVaXos~5CiNm*PwTO6V@W4012Z=L`WgqD@s7jul$vDuPh47 z^SpiKTyss#4YqX$gxV`+0t)1K@7&| XA ;D{|)fP^_?_kd2vo`|VesEMD>5ckizr>$pZVu8tk! zOaX)7rKR})!x*3MAMe6MgBZIIm*|uUk`Z}Y1}rxCbA9b+=ZcLp!%&k*;7Q9x zQOjdKnlulLWglkW>o(x>?7SgZq&yrJXdjryE*G?W@8afaiKNWAZhD#wIu^=8HJOQR zcPXgJ!x6l3Z;v$SAWUH><}xe__eqe>v`&V|;H&@ KxkR=UB+T6hs$&XxI{EXVE4MM0CpW}&bb8>M4&Ss-u_t9c%al<%mNI< zq@lN8&yx{GaoKQ2JiQNOSA%Fkh`b;xT0_HaOMrA-$#marI&s=&i>(I88+fjZGIW&c z3=F17ZO{vlEUbquZMfhl4GWT>pe*ajS5Mk0Lv&$I9NE}KXvH8jTAA_;7aq!4ho)F; z!pI7~O5LnM1Fkcikv)@x*ItptP684w!m!r@EL*W|1XEIHqY;_ZU={|K+P%#xrCceb z;?lrH0xW<5kF4754%;XhxNF|c=f;JHtt)YvkI_qsumdnWfIwI#m^I3{w{n+p6GxGj zNz6;mZGnwJ#52>jr7#l0WFQE_2usdIhXs@CE7)^imfH?B$jpyc$cbcNFowW#W7!Ox z?oBF;o}|a<4s&3TO2yz7inc)NUV4cpb&9oyb^G4?*PB~!tj0J(38F!giqIRM9!PpC zK!6J{^>Plg&7C3T%Re*ZV>nmBZsqL0=_TB55W;beG0i<-(JY9?0kH6qoffTCrFgiU zm;hmWM#{B4Xx2+usLg~3&(wW@%<$j@RH8**y7lbsHpr|L2FWVh9tI511~S0u*b6JR z?wQt74vb*=KA;hdN5k%cvvc+a2;<%mB?uOq<*dn>U}GD5t=OqCC**e2899@L7)csr zbRr8icJu~=-U7nxY`uNFJdm_Ik(QW;$KW8gy@d5LMaH0z>+WRBupBDg7VAYEpvC2I zkT~f~8?#B0ivm7?t-Y$#JGXwPhaLxS9*tr?dxv;S_;hH+sN;hh!ZWL8c?`~N*yZwi zG%%dRa9VFHGQf%)PvS+(9C1kl><)vJurrG9#y?8wpu72R(}!N(J*x37W$*pt+^0vV zTMWEm0>mB!>^N4)1p>PRk?EzO5MF{toQox}OavHKuXdS)ltaRABBZxfDDHi7c^dOx z@hx4&AZOp_J3q^(g`X${?pR?81(Ig_EVto|dP!0TMtcS`cn}O^P)guP;y7vSB(2aP z^kzx0kcu*$-t%(r8i-1S%h&!;_#pVic>Hk#B1Ul<8Gt|%&lKZf>}a80h$C62v_K0; zLkW3iI OBHy^>4U8*Cvso)e0HUM;nMA&PfSdpUD0;Oq zuyh?~WwP;%Ezz9V%Ti1}LulN=hSmg1;h8`%>;psTpwwYh38M%w=yCz%LcWF{24dTY z(*q27SnkyVq~WzCz{hD|*D;`-EuCl*I}k!X3pr7S_?&~Wr4%v`dQhZ+;6b(Q?66^w z5TOPHsB^X6&T=h;K;Ctipyi>XH@DlpdxiLV(!LEGjYN0kj)BWt*FF=D8!)lco$Fpm z>=au3;^*Vrpr^^=B$aIK&?y$*K7M^>Fu-Wy@pu>=Q3}86rx%67?gV-!NT8_yrf^Tr z3|ldF`_S;w!>7VdF~YK4w#THKhaf&Zaes9aSTD8?V~k?!;0&DG)AESeY-a$3%-WpJ zgW;vV!Wb b;b zX~dQoXC2(1`t|>=v|~GG#`VS#EYrDIxw!w-U*u2p>dmpGo!nc5dfpobZLYmjd`U4b zv-NpCJkEWeAOAABfM7%dyK|iw3AEU1n*B{S?sv#QVoJ=-?o^=DX?8w&`Sj_hn^_2G z+0r0@5q Q-SAsH&F(m?AgUPE`r*O8X21jtOx!t CI?l ?aMpd~%2cqClYOe!?V{ zMbQMUe1n_KtN<`E(ni*i^Xfi>Y>Kt;^3AL*b%J)F``ZmD69I1BZbo9FNDOi n z{>T3f4g-y@ w_vWYZggR8U;wIDM}&l7t2$b?`a2)d2pYrF8?tq2Vg!&v4{Q%fa3LoC zzGq`52|!XY^rJu
$L*;AtvpvcNOqk)!-fLPa5=1qc<+d{|G+HJDErm0)z@8I zBCFlY3Hip}Gk6hT-HYPv6>!Dx6W~%(4}-(H{|+`>tgM(!8k5VY_t-!CYdCG%DS~CY z=4N|}@BiO4OZ$)d!!eT4b_SJMt(yr79;y@4^*3dlGI-4#E_MX!+ecit3oB5T>k{;D zxzBu7-567EkBde8PI0Jx*K55k!Fnz>E`Ns5xRXy@w&irTz{JWV2~d?VY`>GfSNURN zzH{)s^5S&Au7eW8g|~AI9!K(GFXZOqCCdd)=#{N|C5@ |BlI=g!wnahbuCEV^b!&`0ZV_!e{aoOH%^g=PI;7lAq2S7T8~XMi+-EYdMR zXBK^h9=+sDv;lfMc5z5yFW=jU= az?vuysGBafEZ`MFh2;99i6&%bR&;zJ- zX0dAxj%~)C0<$lMb@REzEPNstmRa^O#T}jH4T|WWqi2_TC&Q}^sd;FguSRy3@|h6p zaPmCK>4q;Css!S5y7$G^Mk#NuN9bhvH-{ww`V!hCkF*G$MTo3Jw!mq -3EvS5dE4!2P43e zCZaSV=W+jVNWk3_A|T&$A)jYr{@GcWe)uA^*DPY{n`goD4fE*gxG=SB4VGL9v+kAL zlNXtIUX;`tW&jvo>aX&*x(}WZX>$ax|I<;*TzJL;b9(S7!|c1~vMpJBUTh0<>hTzW z$vp~KM?eH5oo41Dp=7*!jHEzNP`>I>2H~H&xzB9mL%^y-ATDenLIecr5Kb+d%ea}) zo3b$R4XE6aCmjd?!~^~G3*8KNvxHRZ0;vnh;{pR*O9*c;{%^Gk=I4e*p#(X= PH*PTd-P9v0a~un)_s^XBonBl^7}vtDr; _Tc% zyw*{A*z>4Z6fv2s(jhIVxLkGwewe1=u@nN-0Vt1$lCbMYi2k3Cv8 I_a?2>lkoEJA*s zC`;HrG)o6aY;-6}rPMb9Jv9V0ZX>|2)h_Vm;>epz$B_d50GEQ{9n-KAD{2tk&Y2Lj z*}W|c5BFS_<@2=>dY7!oQS;OO?=AzY_uHjNAi+Ey?Y o&*fZq!8yC@6_}VFB z6k?ObicRyxxu1PWDDdWXpRxdo8{NQLKyk}#=_dcX*#Ad%WcO?@hm$T;aXTm3utoK& ze}nd`1_&!j!aaCrS4g`*3aH7;@GBf_O^g!`%4ka(g$~!tSC>S`2*3@d1SHZuk1yY_ zOoKlC-DkiVoNDAi>oaX*3bO?NazA@I>sii~4Rci@$*!wQqyhjDH<7^MeBwn5Gj6Y5 zRjvfp&aTsrbN~=8qE<5%I_vG#D@~4})=&&Ko39GdQ )_UtO6EHHJw Z^jl;rQd9fZ7d^V({Ag7h3Q4?`&shu97xf1mWJV zYh8!KDX_0X}? A{)In3AqzqU3x*^zYkf{k zvAZ(@;artC=q4u&8ndO1unWhN0x?ck*RTULH$oO2zGVPzfenOpjh7RIh&jxBK2I8f zLd>fKh*9gb?q#LiPC~$l#j}0$<7Hc#WneZvkYq-~q+*3_+IEJ;SZ}W7@a$9E%TW*p zS}Q`8fiVd70(S=7@OBcUduuc(J-9#v0mj5>fd=aW&$3QI>!g`6j0Ldt44^gZx{oqK z*A6hAy6S%W!)911I*|@20l~b+@Wk&AQv+=75UtfpJ&V?j|H%^}JYa)aXi$)Ru;c%P z+X|uCD2~p0feaF!U-zrSB#z!3ektaU81>iXk0|%?-^3qL>c{*M=i9%K;nB6P-Jh|w zTs=;# 1Y?y=3bc zY BQ*?8ejA5gd7D zASA<5X7I^ydpWgXa~i!k4W^D~*o$5bPfraR?2L!vFdJyt@JUw#wvsA>!_}NIoTd9L zD`_1W*DFuR+~hhWqT)#`MAu7OZs(Qc7M5==LAXx`R_ X$uQwADa>sWU`86 ()NSD2FzZH}imMCkDo$+D^+(7@l zUY_~9GEy`pSw!^PI#*c001@Ey^ybEj9?{?wKscmYojAa0h3oTioPd!uii|LPi6 b{km{M#ybB(z*zi9Y^i6_UR3D00Bw_KyFTd-&<0I z76M0m(=h@RM9`QRMK0({iL_U8h7CawK}zlkU+v2k4sbZGYou8@5dlDyDwk_e#qt;| zoZCyJr4axLMgT~(L}b%QqsKxD=03N*E1uc~2_g-INO$tM zH|QQ=?RqJ)h=5=YDhPYKn9++uEPOe55^~T)x&Y~LuhM-iEbHCNQesU-N}I8+=@F;o zieEL7%Y!S4yL67+L=;ENjzCOce7Y?s^F9~c(_P+euj{_y-lEKDWLx2#XAfRHSApKN z`KaJFInIe{#|XgYuY97+hbI#IP67<~>$-bj>8l)S{8bx!E !0q!>augj0VIl#n>J1h5r};H zZMDT+>`HODyG<0p&W+g@!k&f5rpNcdT+l<1z8y0f9T9d}@L}g|lw!+~N0*^{5X-5K zMtZnage#M ZH zQAAec)rHY#3)b#}_e6U!tEJDByJ>mGW8Y}zL6?BdgVVD}@gI~yIba#14Y-hH^`?Ai z$4#-yV~ovh)+pF~ _X@J9IEWTw=OM94B6d9OqnD)qc zd!${0c!sYH5jpLC$=-JonxzYN4F ^N@>g}kS$;zvz;@?p>Nm|Tv#s!=# zz;J{L#1Ec*&$CaRec}VACHmlM%EQUxo5jx3@LVI*GtWmdhyUkA>0|T%o>;pG@CBne z6hojg?Op>cZw)XPXrO^G-3>OML0z2PlKbb!&=n9|lycM%d1ed+1T=BMv=`BCLca&3 z_FA#c^JDa7h7;Q8k;k|>1F&uaUTHQK-MId;3-)z`;75TXM?@^KJ=FHnX3iLk8N`pv z_uIkyVfe8P7em5feW ZbD$s;vz@D>B z0O3$L2Rn2OFC)K4CLUpWXO_=m+YBBbcM?P*;NG9+)uy+(hry3FPSk_pxv`<2*q6y- zc-n70H_ivhL#RV_s6F0KjZzGTOUcdS0_#WV!S_P3yCKGRaW{{{n=prHecUGpusXCg zVbomXZ0^h}v;&E&-EgxRz8yVt_|;~xeGyL9Rz%8k_kfhbgX;ymzoCi}#=Z0sG(d=t zM4~Wf&v~5Y%GzFqAhgF|alon)NB0QPJ?|^_fo;cB#USr^&YMfjWlfgM+^u?#Ieipv z&$9wUd^$j+h4g*q)&p^IH!Rf@u%VWGe0t*nk0AhgttxVaP9&?RoH`J8nO87?e01u= z;CnV?0Fw3W`f^qP=hYb^o6(lUY{ia55ab$n_;O!go ?OGa>i`(SoZC*WEajm|H=DH!a1 z7(F-tH{buG`~vj-{5rTBTeVJ$Bs$4pzWw5N@aA$Pzwx8fxqg~o`^MLZ8D>hN>)JQg zEW^SjYK*5X+bki3u}!l4JcfvPE#oqCHflVlE?CUtBklSKL9K&&q*^u!9G%T@=_1^f zgQpR2oVB4DTodceo0o4V%>#L@UWlEoRr`{l74nIYfvLC4VQ0ONhvB{BYT_%Avu_`F z?sd2TnNGX5#AZlAYXo`CGonKyI?NfHBU;j~pT2rK?Ygxk7;Jl5y?kS2wv^(HjPX7Y z-M@W^wRjkZ< M*hNv&Q|^y;pK(1mjDcki8; zaa#-46KjoZn4Nb-v-dV|+{eN09yxg_F?XV;&u=`q1L{W5v$FBbYjtMxxTJvy%U~>~ z0 wB3WRmz`dVc&1(r6y w)4l?sNA=Sx{Nr!|o00WV|G@uh13gCvrT|lm wp^4xnTerAVMU|Gu(v|GDJ#*j0)~e z!NPHkxz84ofW++OKOLUs17Td`Fn&k)o#MBIztW9o3n8Bt2-MmGPr!0%Ewxa7x%hlR z_a)0L0fZ6~uu8D*=Q_7bApn7dkVpaf&ER){KkhHiInXrx4)MFdU+Itf^(UqyK@xuS z9!T)`lRx>XU(ca&!HW%q07*`k|G7{8E1x@#rV$t^bxI2x{p8>9_lF-}BtQ;J;2D&% zuYU9Rt>ZU~xtIjd+uPk3A)punNdOB5gS|oo82K@gM;Ej+r`xf1kV54Q;C%=d*c_5z zf0PV~62`H+*G(&F1q~TecoYo0w?~6Ci-jbZGwg+pua{y1$aNjTfD_?rC?w4TKpv(? zB_{0%n +AR(e~D<2b?DjJdlLwc(t_Ir2;{z-Gn6aa!ux31WbbWk_lLXq~0rC zVe&YGM1mErETwBr^Ksm|!R|1<7YblYnRY;cwhxm9Cn0TIX}Nd*Q+W)?=uiR$Mi@*= z9&I561~L~%*aOgsNPz$$DbNfk1ss6p9zZF`Gbm-0kr3v13AyO;?KozGq!D^I`SgHu z5YKQpOt@ Ycar5Iz&L=cDP&_q5N_t zAfKs2?w;-87K?@iYoh>ygo3gYKoTUxz)wn6aM%g~*0b1>m5}e?B~8s;LM#$sT2}O$ z9YWdV8gRRDoFT r?`@l}Nt!Cdg7A~n=4oJ~`0 z5C;~H@@#{G(SQXo;9h{h*5u`e1+HTdf@ps`oS^5z>yFC{odKAm2_(2tIkA~cuw#Ot zn4)b0bDg>LXhY2e5;aKTuLFuvt!yB%a8Fi=Fo0oz0>d{940E#jw>nJ(R*>Q0;TX5} z%8NbV @G9>fV=TEgg7%{$PgC{P5{A0k96inF>@4lWs?de*AStU075VkisLUD zO()a&s3#U|8s8^|Qzv4hMW}p)aISTfZ2eQ_H|W0n^$J-zB >iF6-2LFuPD7l(*XZX1zeKKrcKFauCpq1@P$&KvtoG zRsd_n8}PJljUvO4ZT_+}?7F+c?hG&)8^#b^fd;;N62?)eC_;Q5>n}`U)EoC8Lc~W1 zDG-{7@Oq-GfwBMz2nI_beKBr;#cI2VWN9rC|Eh5eG8Gz(8;IZ5-~jOqQg4VBrYEUT zxY{>wN{R+JbR#670A=U$*#H7TKqcou;5(-j93(5LvG-nl1=S{d-=#K^0t3zrDsWT2 zhU7@wV1M2x6G%bi0YplOcohvu`avGfL9k$!f?;`SBac^C;Y2awRRcUg!FXtru-7aJ zi4)n19Ym1ILs>$|n08`3;2B%J7G!JWnMa)I5Xu-|N5Um`lBkUW6hRL8#|4~{g@vLw zLW}nG1Qp2~A}QW6@UPIndY$#fj|*K{^!YB>p=(x%Q#> &W~7K1#E$eYj+ZLD1Mni9| L+ z#nFq*b{w)K!c)e}hBjvf1I^^lSmOXb1kfiv&^hLX< mC2b`MjM3)QFfY$&mF~73%%`YsB zu^=uNB0v{Zf}**}0Ol7%WAatT$|mvu&kO`dio>D20%# !mm3c)(HZ05Z; z-8TY<&_;W_CJf|cyU;7ZF{76?4ACZ`7GZ(_&Rv`tq=jJcj0@Eav&tS(>m_MBab%LT zz!Ady xWy2&m2hAw~Dp3j}lll5NG~ZH6(Ove|!f}?f%ZAOQCRpMC zQ@IfwfJs}E2M!^{GKD2lS=H{FFJ%@W*drV)0MV+l5-O0+@B=|JfeEXC8!`N H7FQ(!Di%=zjQzlezcVdd z#HFy%+lo)oHWF_;LPmR~l8{edUE-AD>|Wpeg+G`9Fi@}nA4z991WcZF100fGe*roH zI`My${}n<$%bkj5DaZ&FI8Urt&=G72?4ER^`0DK3M{#mz6b2$_GD$%>0Z0VvU>7xp zLV$v(k@Sr^Euw}HKy84Q>6sO}4yXrn((oSG8x9wU>X16P2x6S`Xy4{ql1~8~hh8I~ z9QL4MEet4YK_ozASPp$(Xkql)>#H3{mMxY*JXAXbCZctr1IyeVlv&Uun8LA;Ce3?e z2q>560`_+to;TxjwEgG*;J@ep{~U }kU?SPt&b7{N zuv_rLXk;0)itAXXhLURlMdFG(ckgLrN&o!+Jns!Z63gKGE;Jz&Ak#|AmMx`&^Qff& z5x}C(YV5U<3
Eo={+Z)poi*v)}mJ8um8n^$^zE67Z2ouKn#Nn2GZuI zj}2zL7J4Fq%LRKatcT !>tXYa z*Hy>eOeYMz?`U3gN( }-C_@>5yG-ib#fyWu3k069 _{XM_|6C0$DN{4=3 qNAvl16 zq-4@pcNAek#zGDd!VaZES~7Rj6(k|JLlVGT_bx#94qrV!6wtYhDUFk9C&NWpN){Q2 z&N7rR>Bz@O3|iXkelxJZx{o=Qz6`g+tc>_B5AWo&vW`u;feZ%N7%GZVX@B5^W*STo za2D6?TVLzZGGyQmz&aE6ohW=iaM%d!M7G#D(K-AcD8zzG^e%Ij0&tK)IA!NuyV7wd zfTDl5yUDbjHY&tjqyiF%#|ULfHD4ePS+3yJ21NbmXSDP|BG& LB0cAl0yqeaOR``F-7_y4AKx4B4$jEjn3FaHt7^L3F-Ok@oy3kOY?2}@RsiK zfI~?F3&55h{n2OtO%VR5!i2%dMG8yvvn&;VLHvEvc<3Z3B%?&EG-{xGCqi>aVmHR; zt_k`fUp1O&@ *4`93NEo(2MhsUiHw{D`R%2c{$9FZAL$umqAx(=-wOdS6NJzKT5A*cUIJ zmjS#`Vn}$5M#zCC~VZ34CuE-%l^ijeSn?TVRScBbC5VHIHOUrBuaNWt1 zqvNaUMwuxzv;>mO4r4ZO&@P~o#$oY!oW0N0LMfn7c<+)@X;m;paNOKT=DkJ!NB+Xw zzXyaw79 z|NOzn-Al>()8j}0jW!TTMhJ}_4fk>ij%N_0ikKiF4LV`VB2L)tR2s-cXkb(Bbw%u? zQ-QruN}OM=bMbR207_5=g~wrqsFyG~kT5>QFDGa-ZnY~M9u1feVMhia7bSE=r(@9Q zC8#t>5Ed{R3>A8FL3pnx4G#puDG1oO+t{(eUnl|e97;!lVduUJ2t#?j?RB3u1H8Z- z1Wbw{gyhnk6-r_*Y}6dgo_ih7IlY^mGzi=O9Sy0Ok0)P)t7PXwBxiBS3aP@~Y)AwG z+Z~dcO2=XVl7I+cKxBe6Kxu+*kS~C*h=J-ZWrpTI&9yVuJ;uR6 mWcda{@F#C=j?m#=wYs zL3ja?4|cu(|4C=yP9qKA%i9BxXmZ@(kOX&3nJwpuMWG@$ptVT=1J8W{247ABWb)nj z;5Y|tshs3yj-x^(kw$VHddY}V3<3>`h&32M;>8pNHQH^@-w@Uf90Fqss|?pR{;`E5$4WI6yqLpK2yw|y z%LJ%O;0E&;r|}9B*al0(K*+-1I%6aZa`img<+~8@9Dpp;=DjdlC|_5k$_~Z5cYIZX zN=E_-hggLaLI{RZ!BRp@BSlmROGZLdfP`QU99yRpDrv7IAOxt~WC{{Ulwi9dg4Sby z8G3rdo1n-?NNk}V39|g^nTl*f7!Y9KJWZNp0nG!vjoP k5DH=tOHV?Alm&I0fHWDB9fJ9Kf&%gS{SSK~ z2M#%hub=|#rEyLa)u%PVTfu0&FCdtx90EowQc$ru!NXXJ(-S(f3qj>m&_tj(@n+Dp z|J(mgc^85_c?tx9sGLBEifjtJZ!5=3z%gleu5@WE+`8A6QtHdQ19mDvym0(Y<+}s{ z0c`JXXm|e`?+^d@N+Nmy>ENxFfHZ83QII=spcjuhxI?!z#zlFJKqL`p7XmNJh9M1< z0F>p2uX4*b)paJJVd94d%>rLO)oWQu;9keGGXW;e9UdJSAP(4gyO)tbL`b% nA{k$exx8a6=`a@9nO6i*R4hTl4a zVh32romnXo)*TvHoG7THND7)lt?70dwo$6hfD_EZRD}KIlvAJ=NPys7vk!){jZJW9 zoGGL7uM81T-1IqMb~>np0Od9a_z&E)X5%qOBNa~oxlp!~nhGZIzJbXpmPtwE&J{4m z-oQ0T=mn+_`}+iWZnJ@+AX UD=W49F!KtV?lH!H^hVozkf<8j41qNaW9J zVra}QA-TBepdo3$+H3X-6oIM2-cqb7fNXFCkv;7K(@ Add>Uq$CB@WT(!b %s0TlcjpWQt^+Z9CRQasU* zIFPKw$~U>}L0QDy_P&5Bzz7pO7BZ*UxQhVpahyni536&W3(3*VrC4LFbZ8+NTo5Q+ z+hS-0)*rpGkal cHw6k_MUg|s4FV7f(I$we2WFV*i@Wo=|5B1h zqa@}M7ESbc{lENgz&_p=@-(r`mm@6#*lU;TP0iQGHwvJ8<#+{`;4w};3fei4zj7Vq5PcbS(Ll3P6z1L{ZEFKNLVd1#Sl@I9(7S zlsqo!H4I`2H}55kd=gwL j} 0EHl zlag4l!;mGdW)A2u3Tz7k8WDEPN84b)dK85hpvbua@4#-fv`9!aKot}Yw}-TB)>p-V z^#gNtc8q(M4Y^E!!zHKifbO$}HiLNwrreqcDU0)^g XB_M|> zqzzzMGC<8^p2jqEAfw&gk~l1bl*)<0Buz*$q=1(iz#E!GF96Ee)4eB%(O_iml+kkE zNukWeeTj+q$(^xNgH%MPrKWS3Ii<*X+P;k~aP*WEQR$N0@XU6ve8Isg6hr|wK)%@d zS`Hn!2|8yNkqOy_?V0EQ?k^rQEXwZMxq5*BcR31zAV62VPzDgiz A!vgo+*=7&`XSR!njiuMHI$5o0J>%_ zYd9qp1=NWa1B=8RS-<)2y&KxKi5tBqz@Y;a8KwGP{_9KP1g7_R4T+evk|>olOW&{+ z?DFNYbRkk30`kJh!2lw0nUMZ+wPzTkJWtjx9C@uF^9%Do{#Q~46;99)Ds@5Yr0GyO zFl1*Aq#^&P7z17g2^1rx^`3$1-Wi}k5V@nFh9p3I % zw1=T+Ot_rekxGUrkaz$FEomW)b%LBU-8WAWOi2m|Itx@m-hk=O2r2{BTv=IxO~NNx zBmrcAk&a6miXtbWe|g?1(px8)@-g|h-uWUKtpQwwoJ>IludkpeDEHDN`@(ClND9*4 z(1b~WK-)82Em35|l$F)QOyu^krV}|7LHuK>Ajp#=;9ZTN0(zb$4}1X=??V!AN#O~} z1K=79ZU$mF7Ao 9k-`#~WtMb9MP|B|5(D8zga#;hwd;HUP$%Ft2zI^t z2sxWi3SfXNmN1&I%VWGD2=8-}hlu9x +;Q{)9y72R??g89F z>@}PhKmfNx!4x5g0wa+CKanunL^g4q#0%4s-tuH>7tn-x0piBjUHVrZr+lv1U0g0V zXy>X{h;sw=Qo%%kfw))@h7%POG{g5EnGuVSKLArnOwC2_9l!PuA&3~9%+whmDP6Zq zE>r}=jI*y&iUbD*T`ghBR3iZ_TbCG1o)JYsQ1&1r<(a8;hrIg|8zKm}6ORyJCT!8& zW(tzeLEu6afeS&1iI@-sf(WAdd9foL0tEptv)nBb0g2Jt-C1cc{y+$z6J6IK(?if- z4`gu8(}b!;D{43xEJ+Md0|;Rf?-UCRKtsS!CNK-H|5M-l4}fNup&vUis+=$`g_ri? zFfKdXu0W3falo=_Anyjdj53;mg=HNch(f5uV2}%z<9soN2@5j}e!(C3$}++R9wHnF zDEV0?NM!Bu EWcuD0GJ&9jRf5Pd1pz^X>Q&I CswzT@!uJCIA1 z28 &iP$o=B zY6CXf94X-x2nf-$S=jUkFCK0eov$8e;ss(!cHe-A!Sw v~T|Z zF#$Hw&dK+2$pA6IfIaLkh;gDW*X#ZiUzsQ%MtV*}24;7q8iT=hPMf9DSZolCPc;d1 zf8bXe-nbgooYaVAaJO>NK6qy4a=l8@dhK4K*T3tJciV-OyRHVQnI5RY5{>~AXCmre z&X$4~jvL9pp)d9PF&AWE&p{d)JZ|nLJBV=DIA#-tBLP1_3z$)QCX!eNRF)VGp4R3u zx2z0xk^qu8k}?7iUg9sPDYVT7cl=~lZa5ez2(uspY3w6eL7bu-BQ%f!YPaibz-NAd zz>fe#;HrJoxbMti@1FRaSgIT@U4(cqwR{f-B!FC^d-X(vot(QyogD+jMVQ-BLR92* z#xYjFGvBkiA@jOg2#sK5zIZ<9yqvv%>E^vOB_!BbhEYIBWRb)G(gCe3EJI)2PJovs zdec!+aik8SZgNc^0YO**Um$!PoteJ}=!p(Mc6V84C@2&P%wg6`Aw>bXBta*Z;OW2I zpmQY9I}kEGVo-p9)*6-x;O>?-kSyA;u6K(nJJ_LK2zG+=Rl}5~1Q&}E^3Ng1o}-;- z^fsQ$fQq$5351qps6h&X*a F*`e_YV>fU?@=%mDbIAw=@%BEUx!I-X8z^W< zuH+KH-6J9>p&E$O0uAB}Tape}QF3mg_qTh` ShV16Pq zq>m#WN|YNwDHJgKQdHZ(_L!Sk*SN 00_uku8LOjOSW9heKIgJ$kv0@#;&O|xVI+R4)uQxYP?H$>*E z!T?0RzQ+K!Ye`RL;4-L%Ou^w|CXuN!ZhLcSclwMALTMtXX`! VVP;}fFLaN1PB3yP@OyLPz|VAZQTATJVyycJ%DludG%74!3$Uv1{#ce zQ%0$d?#^JvrvTw@Lad`{IRx)s5MO{Z&BN}+5$Ty-x{e|HbLLk=a=`)ZLP26N{M 9o&$s^ zXFlB+K(iD8B#WWa%u3G`7$EsM6emE9LJ1VigMb1IT!O(sJHt6jn>J!^LOY-f|6@|% zfy#X&R!6e556u~~APB;EpitYMv=CEvV!~kDsnUBbng}ETC~T82q61WM$@~=T9G6Xz z8Sc3I*2i@cVDJIgf#lj#NO+eYKVtzzGjNyDJ*dGLY}IBW9zx6rgaZ>lR|0Jv@6$&k z#Q>~HuXAv9E|d(z2@pG%SDvUJ+I2NZS6kdJKrTX89A`hS2qfUxI6IIaKFGw$)7A-A zpzkP7EG+>+WdK5Oa-g6`(#~AQvS$#?YYCzb=6(@i&@P~yIEyu`mtTFi8#|*O1b((B zNEh)ikBaP!PJklEkfEog=*BroQUKv54UoO}K_F5@nq`@P>6(|u!^=(&6lhpDAc*9Q z{oLO9@OUBjdqKy5BMN31U#&zGgd6RI*er#=%7RoM20{qv0729c&Vegfs5XHW8`p+~ zpbKUUhvTKi0&yO=bB`Wk-yim~b(?^v^%hAkaX{y(q=0PsDxZR&np}Sg#9WhkHy&XR z6GsqWsX|R=BhVmWQeX>6&Cr8q^l&v31BDj;dwGC!j{+Rz==Sw~0q}nqkzK(+JP{>A zltTT`hy} P6T{W8ka|fh5w5|fK%gL7AqyJk8c}X)g Db8xq{?pJON70Zi4vd!p@JX G)=%(8BQR< zqnQF`t3JE Fe7^B}#qSmGhFcdg!*375WQ-!@3d&eB zQFcHCsvx2Ykif+{kZ2%?)se9PWM{i}7NoFT6>!JlyGf1}MU2on#!O5qq+{{h0N{H= zj3q&4Y~czOLTBVPn4n5PZhRVFZy3O}%BOrl0}i#D^6(h2gftDcJY+T?0py@O#Q%CB z(FA~710cjYiv%J>!g1J3>+H146ej;rAcPtSeeAGK-##VZO^7xw C>|SG9ZPHiUBCcc)My#$#tafFw}`Ll-4y+6FgpZfl5 mxLG?;7^%u41rBjSbPG!SDwH7>Bm8Ui0`B40x?5r z0MB3d?la}%(J7C3@Ou2x@R})beyH~ZpUq**_!8lQ2haj%8UV%Zu^(6q8vFBO01@yx z F`(P92<9OdU5oGcY@=g5K4=5(XL M3%-}}J-`O|J?~vT z_gq(QcPJ0NZx{-wT;EB*E6!8fAfG~R2dJ?BPMvFYTE2589>exguiEjd ULB}mnsH~uM)8;B6(Qnzdj53$0% zAeTZ~*?{^{1Y$J~RUNlQXe+-9d9DDr0os3V4XlohPz010=ot|5NyE^4RPs>JMm%5~ zbnXlQ6M!s*+~`2m23fbi!GiRhx^u^^k6SnfSY+JM$($L2uriFW-@P#A3 Yb6AT&S+%%wX{Ap}Z9B9Ib@06+MZodt83tXmIO&M49az!+p%U{K~1LkN%o^hgvC z$RWha1<~o;;lW%_|9~A8;ZE~LMV=SARpLUx2iz_20zo){R<9Op3YZVM1{VET6z~X@ zqRS8!3o9OKmo~5S+p|l)!L!w>HH@J%e2nIyTnK@+fiE)t{j*;?IQYIisWV+z{eEWy z>a*$T$aDXPc(#1*C;iT6i=(He&-Nc^I^IBal~wtj-6!2h_w>1+?YXUU+*5QKW6A5> zMB$4*cl`y+Py4?QJJ0=WvHu_FRc`jWG`TtYOMI)IM!xb8bcNsje3;GefG%KNu=lEC Ge*^&OQBH6G literal 3038 zcmV<43nBDUNk&H23jhFDMM6+kP&il$0000G0001^007GZ06|PpNJjwx00EG4ZQHR~ z_gKlEWE;`Ro*!UO<9)qtjLzz;jb__B+4dgWxa%De6A(J^@R?+vK700bI_K=-ntWfb zuBrdk|LTABzxrSOul`s6tN+#i>VNgW`d|I8{#XC2|JDEMfAzomU;VHCSO2U3)&J^$ zW#Foa{)y<5h%QR#XUC#|Zl!;e&r-kpDfv84qSF838MGtsYts3gMr2a)TQ;l1c0^=9 zDw})Zv^DmzWPX*HY(oWa >tu>TV3(<;DunXa2)=aUj1Us(cyMNe2U!2JF!UX-4t1VgS!B+ zG)}(APmy)F76tkaKS?Cp=sU0r6Hg%S#UXt{+)_M=@+)&7?!_aobW$ rTf z@NW0hTU9yupK1$i*TVk<+KDqe`Sapbc5@5mQGocgD2@KX+mYkCZh!#LsaDrO?EX9H z764Dsoy868+DL9OF^#M|2d6pkeZVyo0maf7_b-T#rrLP$HrKnZ4R041%}#WykJfLq zx8p2*KAMmQMeOJBA1{eeB_#gM0@LSzKr4~Z_M5-EdQ$LRX)y(@ _ z5yU6{108uYd;aa~IO3EgT* @hG&86=B25akIj=G;_S)seeB~af!@yzUf&)^5!R&&)!2@^0ItX8LjNykK7kBY z`F`G1TwhRw6WdFP_V3|y$q8DL!jM;Dw?biU1C?|T#^7+=_oI)-ZvGL6IF>IBkn8 NcvL(Y^>7rZ=`bS+9^{dn%($d?clSUiMbF{ow&*X( zj^JQ2eZE$Lj}Z-ypNxki?3*0-Jz~5hYc@_8Vc7rx``avl*WCtlg+D>`3>@jMzn%@E zSz>^4nMKEU$? `nW`fQ! zE`Qk&Hg>%P08C2&00Y(O%Ux)3_8!2$6XnV%tkf@4Do55fOIFPA5-WC>*ziLz`>`n5 z#STu3zXZE1%%t~^|Nmy-^9yZ5@e)`?DR8%|qn7AIRKq{42+v#FY U`#qMw|LT;4@O5vFS$!A#yrWn^8z(i{?vqnS2HBm;(sqJa(K;hTT zLP3LbLi=@r3;{TtO&J-}$b4SGAU0Z->y#dWBLU?c&gE3OVH!usD7WRl1xPt!Dt0yq zu@VjgcS)9sRgTwth$-bs=LQ07z|s~yqxRL@q+~Ek??0jT ;16pt5sZk2TDBORapR)L7hvH{|^^%kU-_ 8ZKCm;rw%T9etY~W@()daq#gEu)h1u0?a*x+P%c@`msty`;!rqT}=;=g^G7^Uo4i#2ds?Aj6AJ zzl&iy`@T$0a}2^9U4sM%nrm^Dln}gmv@00+1`V&uNqz__9`IF)rx@L%!=(l$QZ@;7 zXm+Z6(nP9_kcOg<*Zh`9dw=u3-i *Nxrf&Dq8Vo1yu{3%p5fy)a9%O0c5UE|0uo 0Eo=~_|udVANo3>c?e z97+nLqTP!JfxH%+l=Ij0{(1AY;xFe>Mh43YZNE#;goUx)(P_Y8g-p2hB~A9k3d!Fo ztGMi*Dm 3tdpNGDse5)+qlPc zyDl0;2X0NHPcf7_ZsPQ47Tc?i%Oz#kn3oWgHU6;uy={hBhS5l!dc;CJ3vL-ak8zGI z<5>3_f9zTrTL1v;zT_rfGiF(q(XFsEt;7IL8M65?0v#_HV4S^iYz4_#)9k4Wx%P1l zA-sjBIO*8)Mmj(p?)63M&0;2t_8nZeOWRd9&(XQCN)`udccTGiUPa|6vbcsphzf=5 z_^zA(p1P@$UA8Cm9lGyN>SOR(#=Vqj2ltVfFk(9;_&?b3X&-~#I!qV!r=$*yfziL( z7$WNigiUm-(g^T-^4srNok&OPQ@tje6V{g&?z>!qm|{$*x!tN=0l|zv<1+%SGF6B$ za?r+>$jZf<){jn?zBWXuj+~nh!Q)A6{bG}=$vwf5Bl=1qCft|41APUx7b)Im>>Pxy z1G)5Qoa+$do+nosUb9&ciSVa)nZ0_!sbJAYIU13nHW9W3V>}#$=EELL+W}{{47)`- zOe$te{ 3{QAg7lA=(E9ZRpQ>gP$^#VSvsjQ)bOZP{!!>#e-# z%=5Kfe>1;zIkxgVN_Z~G4dk*Wv#%^m#GO&=fL4^NRPy!|7o8TzWzXX>Zg2Ur=^D zG9=eN7!hU`5$KVBSwkdf9Fua2^0MQ|Db}%+Dh+gQpfKUmYayE{JK3r8SEFC4YM0rr zL&zk<>QX?3_tv(`pCu8%kWF7$;O2Dj|8N1n-#<|~-=k%0n4LA4189lCiO81##}OtP z I1fONi%2x@A_>o#wVDPOwtnPFx!g(P+E_FL-R zv#4=NIGJLdHB!Y-=XQsZ0GBsT+A4I>5aVn$W%z3$Rgd 34 zz`YQUy344s{zCU0*7#(Wn6{QrIkzU#_>9Gbmi$>ZV `X6=`M-<}4ml;Zp`@6ScS9`mRGAMq{i#An@MO8GC`Gl@_AcB0}5{=2m% go93|>%5|WbcBCI$$k%C|zw`>QfB(!{Ob-440ATU{N&o-= diff --git a/public/images/remote-3-dark-front.webp b/public/images/remote-3-dark-front.webp index d31e0008c93db73a060be6e081d8b2c620a2f89f..ff529236bf98a61f76983e2b6f069f75c040eb97 100644 GIT binary patch literal 59644 zcmd3LW3VVOm+i4_+qlQJZQHi)(LJ_p+qP}nwr#yTpJwL$e^sxlySkH3?d-kwO0tqx zln@ntJOuzy6A_eGm1kFn0ssI&_ oH$Cu^r(NZPCtp$7f-GOb)%O00r*WINmOM^xg>ZBB%L5(82vF4rYUOAY z>NtHd{tY==PuW;&!*wX`<4SI1WV6xSg{?+vwbA_d?Fx6J8B;dXSq0ZziQGp~?Ctv{ zDipGo-=>3-W4WiIyrLYj39$i@yhV+(d4#EM%D|bU*@n8=rh=(1p;@Kc>A9`+c->6) zs^YVQiinKgkVK+>$&Ioy?rF0&(01v!im)^Qt@XyV_ CfOspl?I%Ratm$|lWG-MP#uU3t3Z96Zd zy{tcMTOD0$v}nk(J?J{gR-9FCURs#NWI3sFNL@*=S*?s$sg?8m=3Gi+GE3^H*!1X{ z*700Fnk>_@(c-8urOWAB-CAR{Vltba%3j0(CI))H8Bh`FfE`yU%l6cM` u =>`D=CX%AB_`MKl! z9{G92|2gpajQRhm@bmNaQ=@V>m4qIIhP?1`ljteVSN^tEL`y a5u3jM{B2|$M9+&Hv}kKn>JF_ty8B6h#)lj@FCBkEtX1jvGh zIkvZvn|`W{th$UB8}T!HZgCO*l;qq|v2As*u1G32Jr@QZV4rokT+usItr{O`qpAGz z+Nd$V!h%h~VOwYMfJU0(Q;j@<0N+NA>);p^&y5p^@tLb}udl_1$T2WjN~p!-|8fA} zC5ns6gVB%{&vdZ%3_g{5maXKwV3}C>-bcWH^;nTTd0cn(86wM#3dOVez*?HDl^AHL z%M9>dO|#gl^F1HNRED5^mdum8BRg*CApvZj+E!^)+DvE8=L{YZ& AL)kZjgzu&EhMU`0rD2>~`xRj`4wDIOz^-776&)3x6FWC;nmoMrt=#=0> zaMp<#oqdVB!MbA+ |Xcetx7lg{)NErQgRgI?LyddyZ?Z^4~U#i5s#vo=`h4f)pXGl9h`}+)iS~y zP+2vBsDO)+v|8 u4~6)F?v>aw4Jg9W4K(9)hF?lkDXt5xJFo# z&9yccYm=DRJQ&}WFUb}<`iCl*f~p@Iv+JT#MA5CJdYJ*MJum*VTwQSpnq^S6l6sQ5 zNnYwGTJnDUfHJd&k~UMVB2ou)z}B+&D@kH u7BM`1$E*NYX8J1 H7X9*&D1 zTuEzUzpQ$DWpO80I{)d#W(Fg3Yb%fCFV8 Y8P*=Ngpto#4zFg<$A4qFrE*0Z!AaT`Hmn=#cVy z_DPGy_5nOM5wp*z@OLk{Q7=wt =nRrvUk0qGyRBKI+1X$o^`;-4x&6gcyhC9FMxh2T}H& zJQkgviA3#1+YGg}Q;&nNC8;k_A&JAEqm?Mc+0yzHXYY<&@gxX)!;xrRd4!%rM9l1r zyC)&c@iglHI?!X^S7vX>bYU6D+kE(6+5T6-v#)H&FsU)<>9r=u`&2JkmL>D+P>t^A zsA%gKZQPHbq;#yrVARyStw_#OCAL2O%eu bIad@aga)w%@Wy9& zVC90jnLl-|&qOusDRmQ-yk~;wgiQIU6{`(_>?1=Wx|dMFTFz1mdV|C~1Z@r++=P`) z$($1II0Ii=f%y=}N3p+0% wy zpV@tq!t+{u-JAlBK06|yFFhrc9GYG(EeM$0gdAA)QBZO`SvX$}?uk 6(&i+fC{1m3l+pcmfJ}Hdxy;1M;em>5ieG9=a2DS1ua&s@irRyH@?JpDX zkYpwD7+As+d}ml1J!NyBKgxfz8Ha7m5nr9>hAeyH{upi~!4!@`m8@&)rX!%9UG55e zfop5+%n@Hwub=1Mp|6Egypy1bH_%C kgpNz63*wfH|Lj3{Ir+ zLwFU|fnLa=3nwz(z#L3yqVBFcE-Rw4BB4;bJSWD6Yb&-oI#q%RHtV9GP~C1-QLE)} z4g9omM+X>Z!F6wF0NjhCtF1PHcIRR~&?@EkP8eYw&!l&q$C{jYdwStmQB99c=i^M$ zJ)UUG@U+=Yi0(8?$)cvhwjH>tP>2a6<=6)eMqb7By1eN)piKB(2O+wD{<&(_^wPRJ zcqow(NoTOzbYrj-zp=&L*Lp?%s8R8&7Oz)F75oEM#5;v -6F~t8@vZ3UZm8sIQD%tn{u!~)sbTBVN~VlW_!TO=YhnVOXrd)7SJxupBSqGw zpVz*$_r^dXih#%|x%ooYwj7kmDMnxKw?jDC*W8mC&81bK^9HkYg`k_zC9Y3SlW;Qp z1#teJ2K2{v5)dNhese2cArxUETb0bMR^BUpU30L6dXCpaID!S7h=>%?0&f+mz$W3| zsg;Pb7XiksFJR58M# }a_A4;hA(_vtvIz6cBF!B% zCdjW_hkN;5(RAx&oIrB(sfsB7y)+s!?V5rQE9W40)Tk=#SGW4NHkW( 72z EwHgc3)p(Os8y)`Hp2F^&cGbc}v`X5d0>+_+ -#CNy3|d&te8d@^d*QJyK7m&_^zDTY_}(Tm(FXnI|lF2=4MaS36SlXNB2O zXHWWF|I$IpQC#iJODY`Gm4S(3O|q|+O40U}NLyp2CTp|qOTT%NI}RMu%tM8++qazW zB(jAIZrYw?8ax591@ol &4yyFUMWnCHN+P?z^sIU_VvAaW?Wi)s=G`u6U^oH zTBBufJT3x~on sh(~=HdMjpBdxhng4S4V%c*xAm;r~ zH= fU@z}ffgf_?k!!UI+Ht6^n_FvMJC*wXV3suLuD0WP!^4c(2Wxn z<2JX)`Q}^0$j^GjM@$Z{4{-;9-fMUk)B;~qVl6)hbiQzsmeRS(^wL<|E0ox@NMGfH z2wP`KIR>NxGkX4Wa`)XKL$XaMaT1gPLOSr`o_aVAJ2`LBjx}~zsD!M0a|yT#?C$8& zFND;2Qqr=8L|~1@g|ymSfif7+WR$la2Db!XMx6IJ`RrwSf+g*XCQ^+EJFiMj&VcwG zWe&|BL8A2|mIJ0F|1*RpHX-<73z18x$fP6L0{P1af$i1#q=tRpDw#h3 AVX tcuL&?#y215uCkQe;L7S9q>-_QbhDX0Ot7qOOQuc|uVBzVSnGy;p?28WYpxJ`8A%no0K{^h&x*z z971J1<3ofQnjJlAJ;Bkmgr{8&Yl~tf1J5fnE;YK;10C)f1K+-zmjX)m#s|*{*JA}0 z_0oX7^ODlX{mA0H@6lIsNtC5V-Hk5bmV-TNUJ;QTAnW3?z}#eJJxWxp7s_6UsG_Ky zN>~|=#Ub$g>|^<7ubr(!c|k`7JeQfDpO1g->+Obi?QTL(yAbgC&f32P5D>jS9|nGU zvSv|_=8N;0&*sf0lVT|BSb1#Dl@l9Go|gLbz^J+OrZqEv`PM0aPoxD_N=HZy^LW9r zNsxHo4szV}AWf~hXqakqiEE^{m`f~{sz#-zVpz`Ci%6YY3TAJZaq^fgYoS&r7V(!L zg`IoutzvN)k!tu8&zT!SDgT~VA-o1AMvA|ouSSWq;XTU< qAAy`>|1qf~HZxxLFD1|v79Pnd` z5+3wzLbYw14Yx@@yiBnd|CVihac6HVQ>rym@I8j#nq+!0O7Ol(3kD!^{Ib%Ppol$9 z5f)E6?5w0V94wIey*&rKOrfSgH%n^kOc^-?okpF&kBZjocO0UK>?EHIRF@{qN6K%f zQLt=|2lSjwAC{i;pul*d=Q~)Fg0g(#yO|*~9AKsiqX3UD0M|H>-D%utb`7I&654GI zEOaFE>D~(HjQxOtiLXknekA6*SCa&JZ01+Tl~Gv|LsAX$Lw=5TT`jr@<54jN=Mprk zgye++jC>eH@iL7tTg^Eg2~VkZ5o+Z>$G#uk|Mx)SavHC!n(h^+7R#r@lY}7Uvj~}- z^sjIc8^fL0K!Pa;ESZvfrC4rNYA2N75M6tr29@qwHRk+XsI7OHoFZ=AeZNoNE6XD5 zg$(X>7_GkjW#ii+ a|+9=20k3Yp*m E4BAZ+QbwL(OdZYgRt&rJ3vdv|Y`S@5m1?b^agKX% z@hd%F{W#c uKV!YtVz(_IK>(Va1hG1{?rGlv{7 zG{LU>HvnS6?-Qn!KYWR7cS{)b))Wb$jKx%G_B|$pwU}p-$Rd<)9;{<(nUpvVpUDuy z)msUq@j~Q}Gh^wue~8S{3K_yqhe1S;HJG9>n1}mXCB?f^WX4_0!hvD#g$_OcDA92s zf2ZJH@i>~cQRBSMm4JqYR>!EZroTzkr?N3sgT_}IC*0kp#rLW WV34Vs<5ef?i23_dN$Y~#T_!JZRW>&wz`yV>1 zg}#nQ@40h)kO^>ci`Cy`mFQV3XP=sAv9@8f02DhS4@ctCnbK-?eC+0l!%xN*&G$?{ zdMMk^fJ>30cl2*Vap_Etr`>glNs@&0zpXH()|c%zN$XpkBmFK8hR $) MqpgXr*FpEc9} za}k!0hl1d)U;5tj|Kh~)r$hWL5xY& yPc}iC*9aQ$S#t62tw3{=fWi7Xai%aSG{Ri%CW33%*B6RJz zH>4@=5>$|#o}uxS!UU%NzS-j{=J6y+pKDtXB#vX>2 ^hT-lV8|q{sk_&u~>@!lR7Ljh1jW}Qv~)2Z+6o?CJ23wr^`Q-T=C{D0}0;| zy-QOM{s`<*Q)e)Q20R2r0Msgq%lJfK+DR@bAv_jrMmOON-qd?h6dslJSx>Xq$C^uQ zIY?4eX6@vVXTGS1bwOn~_V!a}+#QPV0uv&MwCUZh(J8y2Aiq|z6gtCxxzEKBjg_7s z^*kTFr2REY`QBEFSh l%*fy{ohPrCV4&EE+%`5hXXK zfGv^9D@i _6gcmJe?3f3L`?y9IE39krEt;MtlOLi`LQUZIU6rbpx9U= 3DU{EWDG<-2f$Gg3qvj1}l@*%MYwQYzKpLLHxfF3@fBQfN*DXvg=CHV2S% zw_MIHSw~FJjxAOM6KO`Nw5fS}+J5+dGk~FvQZl3pVHI=J|8&WaPwRDMX_&jTZt{+G z!1ksVzpuw{HahY3)SI2XP9u8r;*8S$ZJptY`8qmiwyo>&YN@GetLw+s@u#X%v)lar zb_Rc^-FSajHm;kOdz5VsTUx-yNYnY6$9(k*o`(}iDjWs`3?K-|H*gie91$Q0f;ngy z30R9p31XIr2r8_!QHnNDkpjh^6)-#$!A3eF*Je!+$va#G00oerFrrX89B>uwbJ#8c zZLb6$ATrO!4+vOGnC3MIqL{XbhA~$paGtE+f>0d-Vy|bbVmst h$LVyttgg?aDg1;VFzgl-BWUar`Vkpmk6Z$P!~+2U5`cs#9zfzX ztdxW(fkY4!CLRQMZkYrFicbQF;BON^LV(y%alTIy{(d sxv^pL-5m(Oi9AynB6Ww-vYtPg#CkXO*tt^6_8XUZ%;*3yRP7Pr+laQ^Yp; zUfjb!&_DQEx1N3MUR*w6?rwhIjK5uf;PHHZ@v(Ue_#7Pa-SXYMj{TS&+>At&{hS;u zyy(609r3yR%zP^Nw0!kg_(VUrevyBv)q8s@V|+V&seQS=#@ysQ^o)B+`CR=(e3|Xr z&B$%}Z2#>3(A^?_M!bW+&)oDJ_B{Ip{`~xu+)%H{UHR13oZIaHpmgAG=y0o($wJBy zJ1#yOBxq;S(3#vuaa$jIE{mJ7 Io`s^>yiQ9czY_kyCORQ z+PUhoK_v}GfaR`t^s#@GYyO&v*=qh`G3saTE&Y!J?W+aK3AWzj&dH-81I9BQK>0sd zs*gxpSm!^10?z_c5#Y7O1%o=ZSYj35%vGnP?JP?_So|Q ~+ztCC?th&Li{~s{*Znbt- zRl2Kn8jD~kx~2YU_0OZNuYA^p#$38Dre&POf9FGapRy&Rf LP_dplqK@0$4% z;*mY#?RnbT`au*0lB-(^ga0HH5ke~+oZuPChlg~QNcHOU-`EW&HKb%>5+kAby+QRx z#X&y>{W}3aSlkTkWJHx_S0Q*9Fhr_<>HTT(U-Yo#Dvrbs%vr;2`cDRZhGRk9BrHHn zoc{+xLbg3aNxG2O1s;{>ZK#GJ7;UTn ;@ z;38G!xy_iF4m94d%99ei)7|gb%4!fV+C4(pQt)& >QIX|6Amc}@)W#6b zB!+B7JNiPnK8&_Br!Xgh_pe6J-&GHddeVkE4x1cM7{U uc}>arQp zC4afkS~Pn4(84)vtFI|-olv#XqA;}$3k~>OWy!>ruVd=0TRihi=+ Ve|8k uRs>5Skst}9`C)}MVYA^;D@|uMJ?q^Mj4vZP QyP5-)tQE9fn?o#IbGY-JW{jVH z+kyD0aqlHf(Q^41mLsIA2)Ep4kl@3CCZtFUA_(h~X`-fsW;%FY!AIqfh1h%>PM~x( zvchKzj++5V_E6l=7ULePBna^*be%ho%d_d80&!7&KNx;Mt+*E+1EhuW)5xk4rUYZm zxWpY*Orfqi)hvhoTH6$RN=DB-?k=)BumQzAxcc5{?);N^>1a1#2%p4H^&C7*9-yQ1 zEZRAMw)6)jW7kC|_zPk}p>`Kn--p0blRS(TNIX5vE0S`N83M>>C?!j-P26a%wa5JC zGN9lAxEl+-wD;=Vdj5d4D8DeW96i7{KH^aa`meBJ4KOjxU&N?EtWV>6>&bc$^f#Eq z>}_C0jO=0i p48tUZ@(K5Sf@_Yfd3`gbTXs! z5suXXL{_)P`*9r6)t@pMd^h2H3epm!UIKn@mk0w+aC;qx=9<%l7onBXh*w)LohRV8 zF=LSYvYlqBwaq!URMA}#B+*h4qz4qtGc71~S%rlPyp!SL36oFY3%Q7yb6na+NLi3| z-u!L^1nE+^T#iQEX04ptdzwc(bn6_;h JRDBdr>qcQ4KXLj2Fc>?sLr zg@mz!rnXcRZll9!C3v8!rnp=+?pAJN7^A^B?)n!U6)*8RCCGpZps^g>bHK0_-=X<& zb=dXkK7KZ1ZJfn#v)$zig&zH+@@j*QgD^l?vv#|x2TFqu%K>PcU$K8EkNm$(zg_54 zU_ACj8qn2gWT5jW*jOKTc*@|!Cs#}ROBM!2KXx4(BYP&Q7~xIb)zw qM9-US~5?USYjY+~g}o$#e~?!608k7}D4{j-Iw>e>>0=ItwM+y4}9@Bhb`% zm)ZMw>`ZI#hh0oW>7dd4XL*e@FfWWxw-=W Zv9#-*_9tX`ZY_G)_O58oo)qw|x zAdAhC8{im>4c|U@lj@@aCQze?4c)7s91DrS@ZzIRm{mBMT*kyrOXyU hTpJXN>WJ4f>`v8X5V;TCw(`mqeA%{(vp21)pi9+|=uDD~rZh*)vht z-c<@3VclLXJ&eM{{_`=A+*fz>is26G-FRB|XDe0X4pn-JcDV>A+VU(v8B_`1;l=Rt zAeL66%>+EM0(Y&gIrXSHTz~<**3&(`iWs!v4^++&*-D8;#pooByuEWGtw1R)F#hPE zYdd$gcnLv;Vr`ma2b^Ts57(nEOZL!qUU8IRb98N2V(yaAJh1&I4*zMsV$=X8hAo#v zzTv2HzO=G=#cXOq)N-S0?{Wi|Da0C$twurN%4M+j&jnOHSHx`cRV|k3r5|THxUF=J z$9N@4X<@~h!Po`|^0!Z4NJ@}VGgC=*n(8O=b(S@RkX!MjHC6s*=A^@^1rt&}voRT+ zU5JbkNkXl1Px%6S)Z4-$ngH;fDxq%e{bQB&c=VbH+q4et@w{;s8OGhV#PuKA`9jk` z>XP_JeAL=Zbu9G6Zxf%jt?%JdS`ySX7>t}&r8V9cBQ-oS?ba!Bby+qJ^gY(x?fFTY zl-nU$DkuEFY}h7;-rPmK#QAzQ@)S3SIpraW7AITwlnARo!&TR|;C=2&_8W@=f*&1G z#*QEros_K8Q>chnZs$=p{HZBC$q=iGDWnjb@XyBP4fJG}VD=s}+1+-y;4H U}Gbzhetg_6v#EQTLKQH^xx>v$I-@