From 8271e8a1ed8722d9b7b92ff3ad2f46cf9148cd68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=97=B4=E7=AA=97=28Vinto=29?= <112384233+DohhhDo@users.noreply.github.com> Date: Sat, 5 Sep 2026 10:48:24 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat(ui):=20v1.6.0=20=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E5=85=A8=E9=9D=A2=E9=87=8D=E6=9E=84=E2=80=94=E2=80=94=E9=BB=91?= =?UTF-8?q?=E7=99=BD=E7=81=B0=E8=AE=BE=E8=AE=A1=E7=B3=BB=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 全新样式系统:中性灰基底 + 白色强调,橙/红语义色独立;去除渐变/光晕/毛玻璃 - 进度条重做:百分比胶囊 + 轨道组合为等高圆角矩形,内部斜纹纹理,右列时间右对齐 - 顶栏:左上角机器人图标 + 运行状态,右侧"已登录 N 个账号";去除页面内品牌位 - 账号行:套餐徽章归位名字右侧,"已选"与"切换"同形按钮,信息行仅留有效期与身份 - 设置窗分组卡片化,标签中英文各自纯净(不再"英文 · 中文"拼接) - 新品牌图标(黑色 Z),make_icon.py 重写为纯标准库圆角裁切并输出 UI 用 logo - 新增浏览器预览环境(preview.html + IPC mock),启动画面改内联 SVG/轻量资源 --- README.en.md | 1 + README.md | 1 + captcha.html | 3 +- docs/screenshot.png | Bin 88849 -> 86801 bytes icon-src-1024.png | Bin 32177 -> 306711 bytes index.html | 16 +- logo-src.png | Bin 0 -> 344480 bytes make_icon.py | 283 ++-- package-lock.json | 4 +- package.json | 2 +- preview-settings.html | 14 + preview.html | 14 + public/logo.png | Bin 0 -> 11419 bytes settings.html | 16 +- src-tauri/Cargo.lock | 2 +- src-tauri/Cargo.toml | 2 +- src-tauri/icons/128x128.png | Bin 9195 -> 13426 bytes src-tauri/icons/128x128@2x.png | Bin 19201 -> 37338 bytes src-tauri/icons/32x32.png | Bin 2041 -> 1929 bytes src-tauri/icons/64x64.png | Bin 4407 -> 5026 bytes src-tauri/icons/Square107x107Logo.png | Bin 7494 -> 10356 bytes src-tauri/icons/Square142x142Logo.png | Bin 10154 -> 15414 bytes src-tauri/icons/Square150x150Logo.png | Bin 10895 -> 16624 bytes src-tauri/icons/Square284x284Logo.png | Bin 20950 -> 43921 bytes src-tauri/icons/Square30x30Logo.png | Bin 1942 -> 1732 bytes src-tauri/icons/Square310x310Logo.png | Bin 22809 -> 50392 bytes src-tauri/icons/Square44x44Logo.png | Bin 2990 -> 2964 bytes src-tauri/icons/Square71x71Logo.png | Bin 4884 -> 5852 bytes src-tauri/icons/Square89x89Logo.png | Bin 6035 -> 7974 bytes src-tauri/icons/StoreLogo.png | Bin 3352 -> 3581 bytes .../icons/android/mipmap-hdpi/ic_launcher.png | Bin 3134 -> 3042 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 11774 -> 18737 bytes .../android/mipmap-hdpi/ic_launcher_round.png | Bin 2948 -> 2734 bytes .../icons/android/mipmap-mdpi/ic_launcher.png | Bin 2984 -> 2916 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 7596 -> 10428 bytes .../android/mipmap-mdpi/ic_launcher_round.png | Bin 2867 -> 2614 bytes .../android/mipmap-xhdpi/ic_launcher.png | Bin 6843 -> 7670 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 15842 -> 28667 bytes .../mipmap-xhdpi/ic_launcher_round.png | Bin 5830 -> 6806 bytes .../android/mipmap-xxhdpi/ic_launcher.png | Bin 10791 -> 13549 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 24010 -> 54087 bytes .../mipmap-xxhdpi/ic_launcher_round.png | Bin 8898 -> 12071 bytes .../android/mipmap-xxxhdpi/ic_launcher.png | Bin 14874 -> 20686 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 33224 -> 86691 bytes .../mipmap-xxxhdpi/ic_launcher_round.png | Bin 11659 -> 18396 bytes src-tauri/icons/icon.icns | Bin 165199 -> 655204 bytes src-tauri/icons/icon.ico | Bin 32828 -> 55153 bytes src-tauri/icons/icon.png | Bin 38732 -> 115811 bytes src-tauri/icons/ios/AppIcon-20x20@1x.png | Bin 1103 -> 885 bytes src-tauri/icons/ios/AppIcon-20x20@2x-1.png | Bin 2615 -> 2251 bytes src-tauri/icons/ios/AppIcon-20x20@2x.png | Bin 2615 -> 2251 bytes src-tauri/icons/ios/AppIcon-20x20@3x.png | Bin 4050 -> 3980 bytes src-tauri/icons/ios/AppIcon-29x29@1x.png | Bin 1807 -> 1462 bytes src-tauri/icons/ios/AppIcon-29x29@2x-1.png | Bin 3903 -> 3728 bytes src-tauri/icons/ios/AppIcon-29x29@2x.png | Bin 3903 -> 3728 bytes src-tauri/icons/ios/AppIcon-29x29@3x.png | Bin 5784 -> 6639 bytes src-tauri/icons/ios/AppIcon-40x40@1x.png | Bin 2615 -> 2251 bytes src-tauri/icons/ios/AppIcon-40x40@2x-1.png | Bin 5381 -> 6011 bytes src-tauri/icons/ios/AppIcon-40x40@2x.png | Bin 5381 -> 6011 bytes src-tauri/icons/ios/AppIcon-40x40@3x.png | Bin 8396 -> 10660 bytes src-tauri/icons/ios/AppIcon-512@2x.png | Bin 28875 -> 308811 bytes src-tauri/icons/ios/AppIcon-60x60@2x.png | Bin 8396 -> 10660 bytes src-tauri/icons/ios/AppIcon-60x60@3x.png | Bin 12776 -> 19346 bytes src-tauri/icons/ios/AppIcon-76x76@1x.png | Bin 5238 -> 5512 bytes src-tauri/icons/ios/AppIcon-76x76@2x.png | Bin 10705 -> 15037 bytes src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png | Bin 12041 -> 17086 bytes src-tauri/tauri.conf.json | 4 +- src/icons.js | 46 +- src/locales/en.js | 11 +- src/locales/zh.js | 11 +- src/main.js | 99 +- src/preview-mock.js | 133 ++ src/settings.js | 55 +- src/styles.css | 1396 ++++++++--------- src/ui.js | 2 +- 75 files changed, 1098 insertions(+), 1017 deletions(-) create mode 100644 logo-src.png create mode 100644 preview-settings.html create mode 100644 preview.html create mode 100644 public/logo.png create mode 100644 src/preview-mock.js diff --git a/README.en.md b/README.en.md index 02d82a1..96487ec 100644 --- a/README.en.md +++ b/README.en.md @@ -49,6 +49,7 @@ CLI password (export / import): prefer the `ZSW_PASSWORD` environment variable ( ```bash npm install npm run tauri dev # development (HMR) +`npm run dev # frontend-only preview (open preview.html / preview-settings.html in a browser, mocked data, no Tauri needed)` npm run tauri build # NSIS installer cd src-tauri && cargo test # unit tests (incl. node↔Rust cross-language crypto vectors) ``` diff --git a/README.md b/README.md index 59a45eb..659f16f 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,7 @@ CLI 密码(export / import):优先环境变量 `ZSW_PASSWORD`(不出现 ```bash npm install npm run tauri dev # 开发(HMR) +`npm run dev # 仅前端预览(浏览器打开 preview.html / preview-settings.html,内置 mock 数据,无需 Tauri)` npm run tauri build # NSIS 安装包 cd src-tauri && cargo test # 单元测试(含 node↔Rust 跨语言加密向量) ``` diff --git a/captcha.html b/captcha.html index 9f3c622..ebdbeb2 100644 --- a/captcha.html +++ b/captcha.html @@ -5,12 +5,13 @@
JNNB2Lm7yW`qo*2}V@w2{ zMowc{2+et($4nh1gC>%TOP|@?U >{{oho62-JUt!- zk)vAy&%65tYHGJ!lu+qordY)XtBPM5*7X4QiKvLE-{l->?87jZ$=?yzQ5O@dy|5fd z*vj(!yuIarBNN91`@a#bj;sVF|2K-z(;@tPe}^(YAK2#KCo}0Rw-zS<4xtZ|eO0-C zhf~Cla098oW1C2VuruWE7 f@&XmynTw- $*oY$sY6I8L-J4ez6$>?3PSwiu^K0|-O-x)&oQ!Dk&@ !JtfAtMJ8b%0 oxcJy|Beqca`BZa?;kDniYcO;Q-Fezlkxk#<8tibos z@v4L&lvg9W&OR~H`B_=3VpX^w&G_{qBd;Wjqobwi)YynklhRF2Pd8P+-!LA!S_6Tf zS9cuIQ39lTd#@qwt?tDMi?iK^T*NjG_AwV}EOz$x5neKRGc(^4!)0_omHhOw_kK6F zs98anIKR+kovX_A-}IsmN x(?^E5<(ju6`nkoEleq|PVzu(A{c1_h!5S~?eb{0v( z>HU6fZthjK@f+I4R%ml$ql2TRhmFh3>1|zozhv&@8N2+Oqc6-&+~9j*k{%_cI^?5( zFIWkI1GnmStQsFO-JFG1q-#xU$?O#}TE9wmek@90XSd@>p&o8?1b-6A3b9v{fG}o^ z^>k>6nH}QP<;BPIj*LVqZ{6Md*wx%tR@$FMA93-%?|&UP^BHUY{OAn)h g6&> JXP2u%l__xdDKp?B&^&sNrALTn+*ri48V((Sr;8 z|5jlpWlSg}?K%k`V_Om<+xM}BH*NItGGUsaXOoL9k^n)=sJ;{SoYE!+gF=18a*mIV z0&=O}dsR0zL1w*W=+)4rxxrL^H2dZjhSF4Muas0&$cXcHMI^CtaH6BKa~YC?RxB(m z%I$rmL$q~um&dbT2iDRo88S;hDfA~8h@fs9rY# P<;48rjdNfu6ICa-{02|DtW8D i6X1R**4(1drP)VxE%fF4m04Rk zfz$KzPy^c3;1_=^P(^} 7hnFCfd?H(kQR;zc-wgxhfkdjqIT7)0npX>6JjthcOmCT%@2tgIv2P&}%>35yOH ztFEA33A8uB148fg!6~o#W5{Vu(VRtO@M~tWH&j6_$R%Z|FF$u!yF{pgL<#rWC5oo59Y?;rlI*2fnOthAt1~131Wd}i3R-tB9brmtQgxZ0AD$kco%J`#T6<2= zy(tNw-fzmIlw9%jwVP|pP$l>2Fyu1)ToyOMM6f&|p!^eF&cM^##eK0K(R58(%%*#) zvgH`1`xfwmOyua-@UC ^-16+yh?jDigQ20_EAsjaeBP zV;k$^dmGLE-QB$T77YyzT&7iDy@Qc#%6j_QzrGM=GemdvwvdG+FB@xB=?}h&nNtu) zd=4y7-10AeczDdc&9eJl=$9odAP^Ern ^lV;>sx)OV;W9&tVQ#5{Y{O|C-}ifY-)rr?4l1n3l+$@F%g>Tgf+>Q)WMub zy PNWzkadBbU-Tq|duHz0QC5()0;Qweu^c~X7#1Nf~puXDX zX<}q# `Luufqu!6Eo@B%XhgIwOtkG^JlF@-u3NE z)fz|UL^%edFV_h^94aby4t7T6`57hs?wG?9xs=bAAE2#mzci|=IoXNV!-^6x_=Fo# z(xYifz++=$hBH@JhL(*zd~Bs5lQdAESCBxw4UV%|RnAdv;>Fdc8q2RZTf|0TaSN>l zub=;I{vdjMz$g(;aN0^i;3D>0sfnhUg7$-6x4xl~a+Muj86Vyodmd3yc|)MHb;7}~ zw$A}nhE%---$K`#Vz}iQv>#wDqR!UV0eA=+-GmGC3klQf)g29}Mpx2p)0>5kZ1c(= z|9p^1bax<)tx})!0iqz~;Z(m93+WqIF4J@P{p4iU*x2a)?VChg5R{gEw@Xku2uasd zN~ZjSwA2eB8cChNoUR`S+#xGM)eQ~Cl$fMv3JMD9-?zuBxbi)Tq0tM7bC}%shQP=i zlW*U?83C2aj)`I#>LNab-HW0`>A%Qw|K{d!Zp+TW_Gcb2ty=vqT03DA^(gjJQpEv> zkicy**UhHENG00l)n;z9?fmxb <`1DUCX 6;B*T3KHHP zWS%$U0<`>*kFR!prBNQ{7CIcy&$22jsm|V}q%>B*M^)AK2l2NhZ+z3zel@eTMJ^+M z2rar&Z3A1YQB^u;1KVt7lddQqr0= s0ZUOFyI9n{kq)b>!grBCYjJy;YhJW+5ncnTvdN)4L_|*1At$Qbm|IwI=(hwN zb*&En DEIL*G7u`8I3lV^MdwFBg0uev*6(m;Ap Rev9FysMy6dwx(9!AJ1)f3gONKuF_GT_N2Zf(uJ4+m`mc?22Zs? zOgdN}YZ7RI9eMndX^^-?F9Z%WS5ERyhGZntPuO&Hew$f?HOivdE%glz9N|ismhzs* zpQTo)_`WLCnMtZvX-mZ=kI+X2`soY_DRi-Cp+P=K=2jzaddDf94xrza}2sS zfUPqV1|`!1v!50Ku*H;)>)ptd$_t@ldnbu >d`pg$Rc38u&~McV9eR zT>LH=(Ne`RH!lRi?qKa|x#CSs1mQv{TV;JdedInpJsbuajP^>0I1=}m%=o`>*t=E# zG|2y`XJ^#9Fx!0=jMc8o8O!_0#xbtmJwDE{S yKr!aCQ#3z?7E( z!8R_Zk&<%Ja(y-v Uw%L&+nVstyIi9Tq$Bd5;#!_vSc^p@`7qfJJ`*N`W zcpS=?#l?5Dv_z@uKV5Dt9xbbC7ZdSnXl%R#z&1g2$ws=K9IL4N&0*=rl-PI|2M1|| zdts*{pCQ-R4E7<~<-U%Vq=Fp^OTUMk&y%SF5)?0rB$=4e@YwkQE_-_FE;Fm|8r58z zVnD%RsF*sxei=^%Eq!trlRF6FnVg8pY6TC;el9&bJsk}H)zA Pn_T5+oOAB z>S_wEOQ zs0=m5vP;7 )%z$$wU4ZcYN{xmOK7`BBO2gjm!T?Eu7ZAzCilNW&g6-9~wMu!IIto^VW<1 z^(8Gop8kI%$tSz7djCfYz{dW+5N0?r SU?aX=xA*hkcLuLVuGtsl_4xz0lZCQO3K<+Xh-W4(xnfKLL`HX1ab@2C zwMz>M%q%Ud+uM8huR0*S=QaKqZ&OC9Dk{fEM{RBG#rXN1Y4FfPGgj Z`JUPio zB@O`hJ_1SdyUvS60>OjZH}^hmTAZ@^VAP@b?;jpLtv{}bnOaB+uOgdwvKQt~d3dxd zssj1tqv^$!qbenHQ%81jtV!mYbai!GowR8_xw|jiU+upW5#hSS#zy0M(9+VP7W1iV zYf}uJV ;1&|xVXftdW~#sZ1_jGeAT0bBY9*`##2xae%E2><7u;h zADU$gY#&kh;G$Vqkb)v#DNe)8+#aLX1_Ofp9HwxUpM-Ti#3qS+`F>OVodQF-P|8wI ze++pY#zC$c7ZnIn0X6>?Ge>1_=#Hn4mX?KqL6!MayFd5z^78WB+=s|HHowpu?ix6c zc#EhMugHkSJsNOB9CPuBtW_)_1ug9Rm^t?0L^0Vrb!Ff)NFZZMlxeIaz{}lqLrO)K zeBwpwg(hAE*i( 9s*&6Y=M+X@{OxkfvR*ai4z;X_FE%?*}4 zG6&vL-*G>*Vl(Aa$63I&D+T9k)qSwbY(Dqy()fO@ms$n}f3JLFDI+j?A1P|!`^Coa z$10lD=g^|_UKqhJZg4=zz_YmSoJNA_ou}hc8zt@0cJOqf74^QBH9vLq?XL$pM?Cp% zo9R?iJ{|SC03-3h4fHA0&Veh052J&Y$GZLl6G8w?FtykKNIH7EPND+ftPgmwo=71r zHB&CSa*I{VU6R73fbWT338sswfBW$NUU$lM>dP52ou8j?Z4t5Im~Nm;8BtQ1aCNPd z&7XR|)oT561up!!yEm?^n!=KqF74Qe)gKSwA8*oSAOPR{lq!nlOqjbQX@27{zJQY9 zgwDFXy_#yK>_5>Rngb47G!5rgRmI+><>ag{Eja_d!CU=VSy=@I1@Awl*EKYR^lrid zyEL6q+w70QyXM~3{QU0;6ck`zj#OOKz<5i(G(|=?x2S#6I&q h8eW8w7e{pTRpsvQSjae5?A8m>Y9kT(&ouaY(q^+i4`pA@0U{& z$Fkb)9Xq7V@!B017uO}YDm^{Dgn%W0c0px)Y;3K=cTmT|HF$4tZ@~bR^+1Y^Mm|K+ zaS`0O4s300MJs{rs60PzZROpcPEM-Ab(Gfg4uu*fmF$aGppMI7*7kN^4a&R+64;gj z8z<-0>H7UU7+M9m{rpK-X?RseMh5!qH@Lm0f(ab~-E+da0T8sR_FHmHlu{Kw@-GGk zo!^e FsVsFb-9!rAo) 3`J#3oihB<5fruAikdu*p$g8Lr^V+%V=L9yFwJw`Akpix+ zTxMp}v%aqS_(_v#Rkd9%MQ7xgPFu-$z$K=K2UOCCJ%`mxnh@B7ENsz|%@S5vSXc#n zXartvQ&(10@GNm=c3L(?y=w$CCQH2Zxm&%1U2?)QF~Z!$DQ`6C(mXC9Q*eM%akmq~ z5jn5RLR`D(Tq -UC zzvFIS>2wbb&mtqRcV5aI3_!&PAhEHtKl Or>01lLtRLrzXI=?;x+f>xWWtHbK> zaA7<)3 y+q z=ethW0EGi|XAqE zK_s5zM-Du{1I8W~n>loN5`T++<{=Lr8VcvN7?+`EFSB8#23;ezY&5& d1^jxHnXV%ejn!?v%%h2hBLvE@uE9dCM;P!EQ`%|!_+Rw pl&$)nadeGkiIdL_=UkSeRHZmzEjKYdK>+> 0 zJ~|utmN@=%+4xj0e(2|+M2P>wac} Vq5QqdpPzd)*6d4IRDrt(|Pp%f6F=x02eS1qP;y+Al z_Cg;|ghU15)bn(S9}{{J3J9VEJvPE{+i*G|{hY;fDV@+a9>HD$h1hQzU#Zz2%yf6> zCNslqtj-S(j?ZO@HTSk-0k#h38_Ts8 G^teTwTI|sP*5}t z4~%Dp-l!!Igufo3iX{}8e`;Okp$YEoJ-z*1JaRU|Dk{}Yql3O%<1t$O8iycfVFYiQ zf`nh6k!w~fIb|wgjP-qcJ2JAAhoi2JPC 0|J5b?4B|X$2>!f)5%8v`%tcU*JQcsX#?6gD`m9EbTMr8FqIL z_`UDKvZm5oUnea^8^50!31vuO6^AN ZFfeVWp?tRab<`NFFBGw6?&({pEg~H3xj>yadQ;ttSXV&8e`DWvJ`yEvqWHXdn z#_XD;|9Bq&Yi{W@mhC8bJI^pFYRTuynbE9*yCv`=i-efC370Z9LfjNB1ajL53LMx+ zPRE>+nh+n_z!?}q#+Q+qnC!GED~nTSAn4x&00hxqNhrXJkeU^tm7soY$FsjJV{Lu& zM@s~KQ#}qgjxFw<8#^lBNMGFE7lE|(0zGd+nMDP;!6<_DL!Tf6o}W27m!(TwkKhZ8 zi~OZN*;3}B^b4GI;NxoAVM*vTu7oV!lpsU@Cry1q{hYH(Drs^ms`&2u+X9_U8Pm-4 zOw}At{kEWOQ=mPuyRwDWzBr7=V71j |{8iIy~3Xb3T_2t@u2uJD< z0((`*1Np1p`_46PdB|H?#+e(IxeJh7kM8r;4;VAoRbXeo+>W|B^omriRII6SFuvqB zI4W7(mc@O8_Dbb!vV@QcsILWi#S?ey&*kB$?&9m?LutkRZi5{XjzO0NXBneCGCi!3 ztY3ouC@2m?V9gjBwA)W_UXd8?B?09)_3_1+rK~+YKU5-zU9zUnF-bN{5WTRfa?iJ8 z{uJ8iL8(p~#T w#S1h6Ldx4qjj%i_Mo110-nUQn3^G0RX@^)vS2?GN9k zn4hD+>x8dkT~~Z;ZLyfxVWpwdI2VGWq2IgWUNYd5og+2&n>NnH4HU^jgrfs_oQ~(& zcO{EbN`_*A*YrB6MR?cY(& &$SD)8=Jr;Viw!kIfpXNW zL?PUeO7Y`$F1PHEkv{#82dvJX8958=Ke}0XShlgE;Oes4ci+c0jxIcI)9K*$U}%Vp z 4x#+BcxpN0f$yzNwD7z$d^OCCQNeCEUTNYHA9 jN@zU_1^c64CRH%2W7{_Zyh^JksJ68-nMp@l@abDoEn*$ zl7 3fBgFV-%C2;GQw4f`MJ~{<=I>W(huutyw5&jdb{PC6S42~)_yLYI zJRpFlYjxn|Toq7ryw<7*&3P b`a(rUXfAC)Nk9TbqOMF)+e7C&JKam<25ag7`bx~NvNM;^#9sI*4pCiMJ6nFR+ zZPeD)gQ`k+vuX|;xCfeB6t`U-*}!gMpC|6`g=ZRf+?u)X)D9fhn!0!VmacE$4vPWo zglQPp!qT!$@8IBIr@~aM>( ZuLQhkr*XLYfzfv5 zRGei(l>3b+3i;tXi?k`4;f8KDPhj;_$W7&={`yx?kskUeV?ws?c!U${VN7-a{_>KJ z(g>>a7CszgbiX%5f9lGRV>l!*ce_UQEW| *Uh}g)Rh}qyvDg^{179xBHT29I3LlS;9VRu zqHu@=Pm&k(0I?3u_mcYB?dgFPU4e2H%6^xVoo!9(|2Fr)>1KcOA`IOpDk?8U&RxOE z+hQ=&rdab+`d*aJiE||(I?aaW`8XW@lD=|3U*V>YZ}a1OdHze}%M^2t;?cHoQ_0(m z5#wEo%U9cb>=hOIHA{lUd4P~843@7E@9?~6W_v)uP6sC|HCwU7RtGHXXcFq-Wy~t> z>UH4$YO*D(3l8TCZk`$CuBKp26**kXz8zNO-1s%~wf*?`1^e|5 _Jw1p2<=p#31$@>%HkJ 9q%hzzHTJ{|^-q;Re`IU%bc zpb|^ry+8+WUE3aM*1_PcAVr$6<8k$zj)w!$R5nz#G^4_c@AYZnEL&-W_08?FL+A6u zaVPAtQ^h?);a-(fna^hz1^Ik*(S-sml*^xJgXIvrOi!m&Q~NsWYoo)ujzKK1oT@rz zza&pQo{h+AW%`-#taOyl5}J7s5jXf%G&|eqc6`UpqSBRC9dZtB^-B_t5?1}1P^O1a z&;@n0jK3J&br;Czb0meT>ypW9MGjo56~U}%>nX8UGE71)Zc*HE TekdQ^G!y+u;~OfdN_{X+6vHqgBc*96NmP(QT7*e49kQ%>mgFNJ3)EzbMt9M zMex0_4r#QHndcY#HMorf=JBJAb~*0pSD>p>blHg(Tz{D31jV@DZxtvw&rD{LACTei zWe+NIDI-MJws<(C(NP0{NRd9LHk~1XuX~Y@;=G6Zsk}<|1V`qqD-515Q)X3w(Cr*7 ztZS(nMe=Ei^MG+qgN~gxfRC*`x1j0#Ysg1NhQ;`dH*J4R6UIko(Bx6UFZRd_xkP?c zRcTc)1duN;8Cx&<(-w`J@)T&GX%I3KKGT=`5g=^y1gq7A6o7Ljp5fq4)%ST%u=8Ur z^gajHtZDrs{W=g=tji|gWcG82sOTvHAJ1v5r3ViBTx?9t^Az jig z`iq&h$rOF}QmRgHNnJRUA`sYYikp3WaAFD-_ufLev&G4{>BR*!IX-W}Eq5vW7es|d zf9lW&6J*ODY^{@zOd|E>IaUyGsn l=`J$LszwDM2kgGgVthkMi}K5TL!YaVAOMicc){as5K)1z48axZ9w^ zImw8=OoyJi8++aJ&X?~ ^+E36!yQ?X zQIQ`G0n=&Ajq%O1($j5Yq&+0K_BZG?u_)*{Uk43f{BY` }Rco4W>PJ#r^Q`k688alM4GQqEvHd zr-Q5OPVI!fFBCjTA0#yqCBUdxVQV=fH7;f3gu?e!C-<|bOz}q?M+=c2$D&u@Ivo;U zRRdIQ4-Ei8boYyx%|k4-HMJO>x(tHB#yal>6Ysr2=jXWxla~jW=+76MQcE!C{Z;3k zcjw?LaNixcp98xB+3z}B=Sp^TX*p}Ut^XCWs&7HCbr=qe%y?vF5O%iyr29b5ibv>Z zb@8*-}4 zj^}51HRTd=N|4RNC#@6wBO92XU^3X~?kcXF<8wLncn$)4uRro;DCf_spzrIeyU;&T z%A}14@ hj1G)v^4rr)!V> z`>V96evbsCXK@hh$MjFDhzSSZ+bLP<4P--Y;Nx;<_yi3lj??#6cLzd&KT9jpHBDZp z4{*aQMrC*Hsa5?up~gAq^VS4#dwIRt Fb1!bk;rJsyy$gsFKIwKgcSGTS466OW>{h)A{q+`Ex$#I(FlmX2Kpp zN6AZ)fkCDY*weYm8+Y{55 `1%0JFZ~*3i3{5^fPrkp;_aUnCxDj=pr@JS b90)n*rpq(l)LU4!j6$b3KDrt|Dz@B+RMPb{{+KMTb@ zn~1!a5C3^o+dT&lsZwH&hA&ip-Ccho3Nf6OX)@&c(d21om-S@`s{WLL|NI9<9Tn4G z?rWl=8Ujx3!}MGOaG!pb$JrcDNQ^$O%F4{V v>OA5!S`p-*%9u=8>>Nht(3n4R z$(l$^*_Jl7{G1_tPt1=*k?1gYp;}rhf-e3>S(Un6MeCT#R6abjrJ@G+x67NnYx27W z-+pyfiMXedX8JL8CTlURXzVv)E#-%|T2&d=n6Iuxf&$8%k;t)8<_h~gKHhvmCZC|3 z9$Na9GgT}ak3yi3Bz#n&n$fVMye;L0M_~$9SIfNr9K#TI{!{V8vh|vpgs%k|e~K`5 zE@f$HbxZ6+#e-pc)17aoDj *wgz?dNkG(!9RDv{Za_|0!!A` zH9zmTxQBm`vLF43;s&ns`>IrA3X-GSXj(}nVJUaF*;i`Tb$FX2rym8UiL_?l9<~*W zazrypO1aHYMW{{jOigZ^-;{Gu7E#s0WGUcIu?n(7#5aJB$t2B|`=z_md>!#}(Hpx* z_0Lmy}4M#S^sw!uukCldr&7)<=yGb1`G@F|{%F(z*ujqJ1jCl==EF>*x7NkNe4k z_F3{G%5=HEMs+qjjtZ1Vy3)kzG5ET4enYh0uWPdS1uv>YrkI8#GXJ1rv)|v8AarYI zZ8CrD{zA=KvY U?V$dq_Zri#?#*@#0C?zc_&Eq?X8zwF)y&uf({ zShwfqs`=~ux>8ggo}YA- 7HkP>(RK2@#)N>{xkUA- ERL1lf3m3 HAH!EZ=f9wTZf=YvClTfr zm%gXWz0(v7j0a#ize5Y?rkP_Q{=ok43UC9LUV>7H3h#tmzG!CAc2BzrMjB?IIkJD% zeK&X(|6jmDsG@6&lNj@&oCy!Tt07Gh^>|5$JVqWmi>yn%-eK(fKd}sL+M$k}8!xQh zoH27Sj6${x9^ae4`>2ZXUy=kKf(|mS`Q52sRi(}FQ(qKwza^R;VXKHB=;nUnf1(`R za%Y?+udWC19X+<(oAsz-(ayB2!~XrEkb!U{Sc`6#OJcMOJk&*1=|=j$$5P0dus$}u z`F*#D*XdPl?)%^5gdi?ekgkRHZEmBme9YPVKVI!$0z~wK`c8dBg#Vi=8G0v;KwawT z{Qr_Y|EE7;bC>DaM40Wj=$jHFl{!%!&iwzZZh^MZKF$UaOv=Eh%L`i7KkwAGxW%TV zCAJQR(*Enrh_XdU44C?+r^1(W ze049C>nP@6dG@b^Lr5f>8*I?xdZ@epFb`M5FZV&u`{NE%7{EJsP-AQBvYW53@6+E{ zI4<0B^J>%_zx5GI8TuJJqM1Ep+C)gH_Z_lJ__bN@nKY+Zl_giE3CZ72F}i&9Ulx^I zwuiS7LT_hRW5}g_r5k0-7YO%$MS)P#HBAyUG_;AVcMEfK^@Dbr0sh <}Jyx}BD`AngJ?E;jx`0_@GQ2~JMVyX$Moxx&|!(K0p9?(l>Fa$Z#xY z3g`m&vnd{>>M4*i>1IjEt>UWSl_?* zt!cPTP_wqO8!@j1Lt6eVvMJ``?+#HGh`S#+h+ksA16NK}0-IKLY_+Q^DzJ-udD7r# z!1~(S7F`|M-PPR9@xtZ^-1MDA>NVbiM+G&F>K_e!Z|2g{$TATh`NEu7y1D}crBatp zYi dS-??S6AL_|eO*#nN3V}z$uIwvL?b#*iTt0qHI*?h gVh0*-qFUO#ew(R5S`1LEk_-6}HO>f_wVZ6u*Xy ~S3i6s1}R@m8>LV&h;t3BD5YTdL`420Y)MovpzEJ)r2Ogdh+> z5V^dwx!H&k(Gs^t8;k!1p!4EXR=4 NGES?8F*tgQiN0(#1ecOqn B;2tqYW5&|iiS7Qc#TdAADBC<_&dW@lxU#k=Ga(L$ z>#?Jxi~H|JRpm@5s9fJm%?qLk6B~(tp>{|9Oe$Kd`6P4?H$y7m4n5#$2H?A!q{U&- z5q11*0eDP{*v+Sg4#FVR_ZO?@KzB<^^f!jq*27Ttd4Tfsa-#zUnski@6ta!$*kI7X zmP{1XyLpyP)j0AR3w4TJcs`k+67xYH!^Oh#xhXRU9xo~?s;EPwmddG;FJ{eEMF;(cGdY9T z0T2nEc&?1Pg8HPU$7mHXYis)sM=+1pBtoSD$j;e0kK+2;FtBLm?RGVuq5(^Y X1Bd0@qTY_j;M7Y! z?o8*GB%M4mUM75!R@T7~76q&G1_@j0dkyzK{9U84TZgB4CP6X(8}Jpt>-u0IngT8~ zgYM2@Pn|I8=U$M< ldB})*%#-ooHl9^NqK!B0ek; zi|kL-*Uw3VwjvFnm^hw_KEtke*F8^gEB~eBbIq-r&t+}x%s{;A(&D1d7yaQq=X`n# zbPh!&vF?3NdXcq~l5n}7!3c!u{(lY)STL);4+g?u2hXT~r=324Y>1WS^XuIgI60KT zx-SBApP&7ko5>2FNNiG^&A?xyt5`5rBdt4IXeoyAa@P ZXQvpPZD_e&2Y83<5$ x&*=NZsL)$?4ZB(5reo8slL>Gfvj zpdemk|L4!2qmZ}eD^$iNI^lZdY$&x4%=^ -P(=hjr*;&eJ;NV(haYImX4d4(xRO`4p}~!AQPClzg6!4PbC7QrBdE;9x03 z&;fY6Xrbb}0&K%aJH^=DFTP8<@^_gw`T^v5|K3X5N6gaSrIxo%K`$P;A6j#J1#i(j zc?s`ZB*m?$u$yFQm>H1q@wNMAZayr8W9YBf;Zt8wZ)feCX;lg`MEBCwPUU_7>k+Nt z`S)*TL=7?7yeXRngZ8I;i_jTbEc^>>T-;dmUuj^b*wIMskifuRQe_2&mvw DEo z&DW*P!aaoFhZxwukC~!xXA8gE1A7s?dv|(zic 1(j&y$nrzh;Qwy`Ya;N;~>uoTfF6 z89_WsN=m9-Uf B#Oq&aT(scJ>1ERY>VY=kgGcTw_C%=_+-VCEgGI^Ba|9d zKvI=W5a1WY#f>&BTyOR*bNoXn22b#zp@sI*6{WppJcaidrU4BbT}3>@4in$v^TZ4; zq|x3B??HwK6`E~t@v@PxLKGAtC%Z3xGk@n)4qNN+PqrKxKDr#foc?$cap|!_dgllo z9{zRHVt63$&84o6`Y^nE$ug2jvP_-Sy{#EqKK*)PD5k=qx)gLiUb*kRZ>-$&hk6os zGGemR(rr5x;qk2dfThl@T!rYArZJs}B6H}=-&zV!YH||8zW 6th(Gi9Q_1n;Q#8b0Nj!;DD>nE}GfdN#K zw~I5&p}QX~kuPNdBa{5$CT =p4#Hp^bI(a%w400BIfT+KZZWl7ZZb+Z64$3O zj5!Ze9}uW0SE1pbU)ywRPDvrDT~u^10MXUBsFtN0+JIn&3XvCS@B^@?q?&}f(4r7t zCsgd0mnCwWavXu~Dx4znq8$zO?Vcw^d0K#))bXEIiKS&6B$bh`)9^X6l;PmCq0xQg zPuEq>P+_Y`Yk0!O?fTl1BxlWDj&FlUTKKw9+HTgwG9mnilqq_Y#$0M=(ndK-2qUBV zm%^EQ7n%~o3*n-2%L>}aSOiIKCkR2S+sh~VQ92(gEEo07*;%i$U#vR%jF7e4=g&jL zm8}4NI%f7oZ-1$oJc5C&g&<%MgohPuT!T~7#_ 7tzf z7f$Cc3XVjCo;M{L&NeQ*3t0-oUv=vGT@reK > zPF!)Q_I|wO%lWU335b$1o&oT4Je7-xAQVA!4 F~!W{P( K_?&46LJ@5@e%5gXNvQiyuET-6rV=TF38yO zJ+E4pVR0o25~7Iy*|Iz9Zt{TU$ivFFE!_glzu+#K1n=0UY<~ARC@v+L1cRyU$y-nB ztr<>V$!MC;CM^pT?N60L Mr-f>+!+qJn|IPK1F9)l`Sbz z|3>sjE`|?QGft1FZ8jdd*qgMWVo@JjTk`mKSDjPwywZWrbi%Hctwl^p@@m?ijX#a& z80TFX2;d+99`d3~shfz^jeN}a ?y7I8z*j3!fPni66cTLXo5#Cm^Jt60sVhATZB8*2y>MkzoE~fBD zGW>6py=71xVYjUtT!Op16J+7;65QPv?(RW?J3)iHyE_CYxVyW1&=9!&?S1yG`{UNB zbNJa+tE+3(;_W%d9OIdp<25y3T3d!UY82e-NSJ~u^C~;x(p7GKe0-D%gYuQjwTsAg zb# %Sn&BVe4B3g`lvudJV zn~Nf;Lyu<{IaPs0h_{MvZa276;7Eu?hR&B)cDPc< $GS!88U!rOSu$q^D@#P(vw+ZMtPFcaaNvR-er zn{z _CGrGt1u4p~UBu;DGOTpAwi`#im@Wbje4k#Ui!$BFyth6Q>mEMAD+Ql9L1 zGr7sFYNy^jWoghasfMN=Dd&xGOyW>1C?9vQl7%WcKyKz%Kl^jR?HeVv2@!XiO1xn4 zscQu8@8}EOKLlU%X=T>UKju=gDe(A`POq-aQxAkKhO1^+Q&Q9W 25;m`pD9IVL)(aIX+1UAd!F{F#3icVp_XAbDNo_x9NE=l zu;+jUzsw3y7FDFdD0w#t6#vkaoGmm$8qcR(>eLAU6Dd>7tglO-&uX?1uI!0E*f`** z;o?66mE;EIP_*M*I>+uX;JBTNW6nS+WrRxW6DP!2GqWpeY=5>fHm+-I%)A;n6t8`F zK)s7?zhA-H_|{PgyWzWFl=Yk?%kY5fhkLp7=&*EJ)!i|zBO< `ceOXU^gZl*~jFs4(L4-U(w`te{7Bpc-Ql#oBrAUdI{;j{gCj<@8tl zds_&?rN}hTf$1f2Na3L2s9Oc^oB%5;wB>!unx)KVa4n$gC@3iA@i`ICU7lPVyw1%9 zEhbRwGluRxKkpAtaY?=LU;h!6#2P>f{bgxsk#{^brAXs5cC&bJzyrahE3kw^N%I{J z?B}N;gf5gPt3sn+dU1J~tuCJJIGc0Y3oD7n9uh`t>?#-Gs28)Jm}4T}>dqTEvbOe5 z=$9-U^7a?zFLWBG7c1V&`Aac3jL$Om5}=TtT=i3WG}1Gh=%E=!r|&oLyI9uOc?vV` z##VbCtUA)t;RkhAMBLFaiz<3= hE XmQ2>O6f`9i=zRD(+dwzvNaeZ{u;e=i+ zSq;97NL4J>(!@zA56@&uSaGnnpFF B0eIc;V&^Z53nri2KW(m#T|T|Y1zAkwK0Rr zu#UX!Jg%=B8*XZC>8RQ|Y1Jlw_KY*kGIU33eo;jN~M3N44N5H0-`(z6*%!$@9V|Lzky7ty6g?K-h*m>bf} zd_pFD N?b zj+W-OQgl1k>x9r=0Z%ft*>LdN)8uPmduwfOq7Ax>rxGeN4uQ0x-AL#@?g*!(HE9qJ zfTCdPbrPq|L(icpS7ugoQ>B<)UY0g#f>X!2qU@$GPEE!6q793{oRp}dYoI4O yYh)aX8~n`>nXgLXhaM~Amn$F-oHU-rp?doyFja7PKZ71N3B|dD`&-k z 8+dRl}@ye~-%ydisxbJyf|^o+}e4$~}bSKRPqeB{0(s|1^2GtXl3c yL+4~b6 zq7LqKlA+xh>m~BKgI9SmVw0zhnF(Bc&CSzo!It0N67 4Mnh3y5PT?A9|&*5OK3s#A*TL=8WBwa`oRUp0Q#`^+g^I(afq74VVe|Pd^mn? zB6wEBqtGz(9t%DbU6o}xEIZsmv?y3HEjJgl(1^#P0YC#GG4jB2hD!G$3Z2^Zj#Hr0 zW65D!$y8Yuk#|jE_ckWWF#P=4zDS>?SQcaOgQ99+^O>{ tmKrUKt;rmi=fcOv@ zA)+$!GvQQDP6eMMmQ6v+QdiL%&fM`)-O<_EnTPo#v_%a^l{1-p!IzpZwX98pY^tl( zWx;88>i8@}Yio#ipaU`kA~`EsB@*F0A^vrKh6qL43T&CS!xPX1IYak6+>)kX>!omffm%Z40qH_whBG6h4tD=$>ysqdsI+<;MpIA`U=xv=^b@4 zb MNU81HAQFD@MPHAfuR&M0FxT2Nor)-4=D( zs)M+eyl`jnEGmJYQ$=iah&uVMzKR?yQDMW4L0QLgUD;ic(@yF6ZdX2w6fLmYZ?Rib z;p+GI>^v&zBk7FTgrH>!y)pXO!KH{;_k7Zr>~N%mIX_W%FZ26I0nAF(=$X%|VAyq& z4vf;JSEu6Fx^~KbYDR%eu(cr-!^>!>`_dAD+PCTHTiNkdZ>?XhqZ;7?=)OPOm0-*z zFGkejE+A{tLV;A`EQ}LUn%uUDpT%(OB(m#CnE~u4UuAe^%BL|=isb|!`I`Qj!FnW! zacX0S;y-xcgn;(2WKw+I=rHp5JhTeb5NVSFJaueLG|a3t=IUKLC;Z;Ki``^&|2V79 zS;&2KNpbyb 5)*Pi2^8&x~3DDLq;< zU5uHS#~y8)yjd_k7U=W&+kWrOPCWXF1PH^nZ0*5;R$ewTrUkDNpKVlK+D@UTo15nH zo8sFKBQ0f^8jG43b=xXCwaV#T8m&}ri^rhF4)0xt!U*gZ1}Ems)j1?N-4qsoz>S(D zafdsLd4w| 9`*X}Yf^+X5Zii@It$lAuh zV wj_TI#dKc_vMV8n2&890W z@YTEBtJEw0prss^CDMJAdyUEdUl0@j3_|`a=)Eb#P5&?J&RF#B=3bdEr%Huu7He3& zNRieC>LS303)aafp|2e>7D~xYJd9K#iVA#zvBWu)mxZc;i)`1+g3*ysQ4ZHyLpe)n z@pm$I!m9?mo3~Gxt$v|~>|eni+1rD{B{3fD(=O2d80=4XU2K|)=p&5Lkic6>R+o4^ zRG*lT@l?gn6`;``)(p1UFW?x`-5{yu(PlTQAxzEHbCz2DNha`y^tqUpK9Y4v8L>D? zBxJF?v{Z2p5|Jv&mkIm3ruA8swkf(a6Jw_m!{H)a25wHTLcRdnA-vCMM^p-`i>Zkr z&oMe8iK;iBtyo=~atkDQ&{uG !t8Rfq^>;3H@tSpy_OeY(O~LHf z`QIVoK&3e$fMzaZ#{Qd;x!s}A*2V^M5qYy-xu^QM=S$q%hZ_;ITM#6WqvgQbA5>?{ zQsi3q5VifT`Z7#Cah@>Ce&eX=r85|XIgIdtG;Y`nBQ|tX&(4R$U(um#A0 }_G(nHO_y8r?P3l3POqP-r{SBIuw5-F}qTce4dJV zrfLAqtN$C$i+~T*lvDF*bYRWIkc#1&eMSnROSL|LMS#COovLxb*AIW^YUSe2)36bf zLvxe1tZ2Q~L@DV= kGcDk!5gkXNBFKyW3YH;k`EP43d@5madxqO8ugR z5;d8jAvt0b*@A&mTa{m}qIXtT*M?>r4HCG6Nyy!Gk_%wpyZAw+5GzNIVZD3$hl~Wn zjo(Mp%9pLAMhxM^#^FgVm0*_i4 =SI65yZ9;r;5u9 zyGo+{rca)~BZ#TjS!VpHkYo2leIko2wx2`&i%V+`gbg`-oO2<61#w2oMhzxSNI;-3 zPefgM1EV)TX*f?q?X;0k{d|3MiTu}Ec@xTQ2q`hSI}1j71~OEbZOA*OZ4e{Eq3MG2 z;5Y>?=?pzxJ#kg*AN9v*Gzk&nuGB=sUYwqP5KvM5Ve+ZXqFmJAvL+80y9V#{au`oN z2B )Acpkq!Vy 7ll^c5D-|U}SuhN*`>cqFo%m=PH}ST9SW@QTQjuDNmNf&)KMu{V65) z%mr{o*2>7?5)9u^WT3ROk@mT2lh;*^eJ%8G1-XK*Zy td^F;>Ng8NCy zFiMs2u)(Hk7g$z7FU3%+2<@*vlq!rAS0Q{Sdu@vOLR+2XznupXo7x@|env6p#X}c% zN<712h;^TzlQv-o>$VK7ZVhE{Z%hZr!6^Bm^`tMQa={adc2Oj$5(-6L2Ita)%MNoX zg4N_Dyb-+%4|L;eE4r!Fp|oT<2(ZUb%mm;K>W)g3E&ri%e6kr^uUlFIASO6Og09<* z lx5oSuM`&zqElRsNKQmJniJSJnc%U38QMg~U{>Q7-82bO>TK p*XX@`#EOP_XeTovg0{jSnKle^ z()+c2ed~iyz>BZ}1@J7cQE$F9p*5P3q2-xz$t6^|kpJF>-5~MgN~%w2QW8_|QJ)yy z##6%H-ba8963XSyR=m%vsks8&9y#ta Jw&cob6C^CIv@OYSfK BaoWE``ZP09+P*$mX^x^s^UMejrnvp0TS+O zLU`!u96?XO?EaI*==7R&rw`!ADghu~z4a~cr*6;fzp4}oJp3M4=SF{r_xAdimX1XC zvHbo)Irh9f-u#At+HDV85CdEjuf;3@p-T~tgZFC*fIZ}Pj+_X^6KKTU+{B3N?Jw)3 z D!9sTSwuA&k){c(hswu1Z(ar3kcPv=hvc-7~OD!uiGpt&9V5Cxj zsj#!-q@+Z8AMj 7Umm7qf_ous;0F_3E->;q`1Y}j!xg1PieXKuKZX4q=b)^ zbzy6EmyND&AiD#=afFBQ^LHp4&7DrDor=5&c%9@!ZA|;~Z{Per8H)ayE8w3jOKs$L z`4BJkYHV)4%0rWfmL(jp%l&cutM9nES%dFru9)%ZYU>4vWA%xcoUFhnf)=*7l`f3^ zP5dn_GZ_Imo>q;a^v`d12a!54&Nr8i0hYixk_a1M{`lqlCkGPde)|KM6dwF-BukwK zIz1ik|E#W_2K(@c&|!hi@}*eoj*cvlW!@Zn9=NWdGN9K|{`0SXJNF%*C0!nr#O^EX zeTT+8^1iyVvQlp9DGEVJX?eZf8LZ=VwIPXa&J_cUV)%?7 1LAo*wbke*bf6No$kYGvH(9`B~h~ngi9pxuXM|#hMfC_txZF)h(DATUAp-&`>#* z-FY*{Sc@GM8ZZ26Y+*rAT~XQSYhr?;_07oWBbz@L7~fqU1K<<|$L@b9Hah_y`yT+Y zRO0F1+Oof2UH}^MxUzxuxyr19*vFaGwZ4wwaMcJQX}%geekDJId2xX84G@ {Cu`(d*bHC&_f0bw}Iq}iUedj z@^^Q)w*19D&04wH`ko(65|)YPE8k44)>mrP&J#RS?L2343zg81G1$wzjo<; ~?X9iZ6& zxk^AKgTP@oo88 ~?d`iwfxD)7#FeUVOXtq*2D{2>I_MtK z)&T85VR8}}^~943Duax2o%%b|-d=FQ{UuLrf|a)fEmj;DGSo@wZW&Gxjc#;AhDLfr z29uL7jZ8~IpxZ$mQp5;tI~qCspf0bxmqu-d-)WNc0nn81B3{f9xhS7uApw9ikY5SY ze~E`W2C_ioS2 5weqoHNRjvM9#jzf z$@0tl^bT8{3(R%h^Ca{k <*NQk_cij To^ zxJXhm)&6>iwSh*)j+BU0b2=|B9s)Qtz^O%n?SEd~N=q~HlBWYOy7yrq-(B}E_4EkA z<(lOY^KRD8D$I^|rcRb2p_(vWShNtSo{mPsQUZsYCb*iIvQQslh `uM-;D!*@T*bhI%5Fy#JuC|OX90jm(JaDz)Ryrbo_n&P_@TX7Cg`X -@CGp&3~KoGK~1x-J`IVeH&I*NndJt zj8ojjj%=ABay!1*kT(htwtE_-CA~}nz87y)PdO^grUxL>hw!J6 W`~# l$l)RqLhrpK{m`dEciMC5ITSq7n<{q4_gY^)y(2%FyG<*D_*Eq!PWM! z|HPnr9tgKzUTXt_cOx0WzMbfl^8Yc8wS8&?Q Tnz1#N>`?v2mtH=3k5o49X&lZ|2e-Fxa;oj5dU--f8~pj z$N+4rq#M6JL(DTXTdx%$=8^UR;QYT`ObSRKS2)SX8zOEqr=4zE39|*Gr00WCN`GG< zw5VcI;s{Vo+;@$om@_R`^0o2UxMl&C8B)+X261nLk&ccONstOs#8HVwQ}|`| K2>)^Y={x`G$CC|NPCew(8B*-p}6I1fsR?KfyD(oyW`R z!x@%aHZ&6gLjLXf_3=E6j?nek@y{bdx|Y7a;T@Kf?iK&3lcw1hD4c6IQbR$=wrqd# zr7rQaS5b}F@*(6|VysU-!SSO6)VDKc9tt@@f3&nTdAND7FPbK2hA3d=`Z_p9<7Y-| z>)g77Tuao-6E{YOP}$Sn>I2)aHErPHKf^+4yXj?S%KG-kceeM%FTM0Cq{S36Ri`CS zJgz5xE)&48zqV70aI9yDO&YmRsQhJyMx!E7^r$#fJ~-PA77qnnJWyosfLHZ~TG1;b zhRf&GKn{?Hq2Tt@h50>D!UeW`g^cs|jh$tB=e?FSO!%b!p#@!>To4cu70}QHzUXh^ zRdukh5ee{lTnT(p+ ;FGm!0{0tT*B8PnM6TxjN`ebM;cGE1M!8x z?{kK7&h#32IQV&~cS((=roaSnNX>1xe<*`K4mgK!e&R%YF+Ks_PfX0rY((vG7VH9S zLBfd0KedGxS&KZx_-}G%$N(1oGrJXRwj{vl+#iBepVVhEC^i(xkUv7JD2gYTK!uBs z$-&NSVz(~Hb%I0jtpAc%nfXFG6((y80a-G!vMNuwYoHEoVf>uNNZ$@KL6@1}U0FYP zu)R4i{reMU?wt)g!P-} oqOBqHPJ}UVRSj{C+XQQj_?f-IX;FCVL zZu?$GJ9a;yNGJw~-vcg=mHj$0ly9#)(MGR`)cL)7xqcOYkQmtE%pV^e9PKeh`ZXLn znQ(6_G5Njjt378f0EJwZ^>%k5^7fWdtJd#@(a2oA;MLFPeiop2Wb=K&`P38X8i@uQ zWjVTHi%M09Y{K8!kvt6bMA#gW>mib$Z>W25O`7L-@aX4kP)#$mB(06D=@co*RA0GV zbAN*B|1e(b_m8kvKfvAA)zr_=;QAS`>3gXJrm!4~*JH)-rta_!%X?$2WBA@D- Z zi+FK|J{juMA}SRbo4QgGA(}oh_J?Vb5#T4XROFTgIJfn`K3IIsY5qP(cIhrqZi9^f z&_}Y5{%|&}R`&sdj|Pi=x-jYuKyrqD^H;}zLv{(?j@)0x3|LKI{sHp5+3uj`S#fLE zUgpnh!2b)Y|9sQuHw?G%d467ee}CW8VVi<3E|pv8ooWLMfR*8^In6>OOB;yrimZ#k ze4pB#rQMI`F4im2pOt@|&*Xkac#>cuD^r5@a{)t=bh{qA+K@y_(E$d>Tp=%~09V)j zt<6p(G72fLaJ 4{L- zr%;l^ME`U4t_Hox4h6_bfl?+)zsMNbD4NR`0XXWG=oNvn$r}Iu5c#%EO&Us*3mr@v z*XH@@ZyfQ_BTsA2VWQVfr^}jJ1OnKdYio~$Y^@LzBF)2BMUOtb?d8-U5djC~pKBpSRIl_ywYr+s?}^8B%CY`XznF zxloh^K;_<4oAHh!%}{K6myuGG)Sxb|#ePL*H3$caBv_mfI2nsrk@Eu`1_QFm{#Jp7 z 4qVm`%su6WqPR2slxBqP1=u%eBIlXwF8(NYmj3l*4>BO5KY1TszkJmRl zwwEs%2+J=lJWtUwx;#G*Z#mtZ7V3Q2c^4#3{7 -6Qq=}*aRt;WqoMlB3yg_-B%Ca z?&5#BQiH=^ yfQxF!fGP>j7C-n$ei0F&=VCvl*w1-lDz((HEBo z0fah>;v20~DB|u&A~s<;w;6si2^FDJ2{~QV8Bcel*73I-EYwVi)c%)|#7K$iKY~CA z&3o{7t>4F=+crlUsdwojr1XHRlnD{{BBe0`q#2$@le{GHBiF6D&&jC>fs#k#iC_KT z?O+Z>XTuoK;GYF^D)Rds+4t-sUA`N$TB(I0h6c&HR-d6Eh1szi13mp=!x6F7obh3V zJWLNKs(BuONJN1ST7q1)TNKSQtmUb#%!zqp?D32Mh?A3${sG9K_DG#TM4q9d=1EBR z!HM!w{p=0%%n}9AA~BsQ=KO4?;h8liCJn3JU3vHDv^C>->zn@8;KgL%<&4d0CVry` zow}a<;^sGMCAmtblKNj;Zc)}2|5O)6r1%yn#AI;jE@v|%(q(mg8^h9+&L{P`G8<#G zOVfDA)Xl1#=hoD=6>J>|!u)0^N+uADDxMt1aM?|nL>z&*Lcse=b#``#%uc**e9CZi zkfrz=!(p8F#qDh0dEa?c?&e!pl)T7;lEc<#He$zEorm;58;Qc%oE)K)+vQj6>vnpw zBuE%LcZ(>Fq=z{-tU9*u8RFG1kpsIl=fqg&mEx6HPQn*CT1+%E0>Z6SKb=%G&JX$z zzCt7+EPx_gbTDezNb{2k!_)XJu8uRn4)*pLP#5K37gs{e3vqcb3j4|Y?_4e6X>XcY zaP|;xX^NH;8*0dCn41xhn)G(yF$;L@hs@w8dZne7Xlp@c1A1;vkU7_M%**={mRgpr zD*X;tQZ1eF`-?irod24frid9)Jvv>>GBRCNf?`&1uqg2ebm=}=)ETS^Y8T$`<9I?P zr&(;wxhwE-b#^wn){(QZ%lNBA)H3)!jW!+lj9&uaEVqH?cWaed7e381kyr6_{BX>> z8%r}*gAU8Q|7C3f7y#6@x05SD&~5)f-=3T6&tv&5o;nff=;UN&U_8mgV>Y&X9Q1%~ za|b;cv1$5Ff4RdD{T*^?R8m(_gI!K@O6dq2apg$5r*$r0cE_q3DkCN3p}ep O{)ytYw ldAM_} z@`|xe)1=w4S5^6s9B@bWrULe(v7hy%p3Zh>Yuek=QD#E;q*k#@ G^-FB~Z@CwQO5o z09}ScJ8I4`EEU+Lpm|-jm%p2EdO9k>X7UK)8cAojH2J5@`V0+6U_c$d`tljq+fA3u zJ>pvc++6hOtaeqlPF(nCa6lB^w}h{auQ(q1IyxnvpeUG8_88~LVsg6ULmD8ve{=o4 zai!N9tqOc-K33R&*iUKP=(EklO?K6r5)xD0(i`p=m|*%fFt%@VA5j6Va8`W8$Jz99 zQw*ua9QaE;W9?BUl~4OiX=#MD>%do#t4mqi1pi7_2lmhMe5%7^#mylGn(Jx>d6K?y zLwaSU39zKRrvhjaQfl@59Lx1dJvswChhmc*ZnEO{oCw>14H{y}0yFeCMxD+WRDlUN zhd4SrbJE5 #X2c)IC}- zVaKNXEiVOBq<#App2n%Ojf6nIfbROVnf#qri5P^uy7`{exR0J+UfwQ~^NOqk hrcQ>reQH@gU(VX!%!40PNKxB%?AO<0Kc6n`W z_{V F?JE z=`kyPp7) e|dt7OGK33Z07?k{b~KU@FX7To1b7 zF&p4aWXhtx3j3_f@UujG1-Vg-0op;_Wk#?q;QC^vUE8 Ua3kg2I-VUdybBM*?fc+@q3P{czfqodj#x+bg ze;^&EPTb_1y3mh#*1plgh~?*Tiu`soSCtf>{L&?-K39Q{1%r4*td6VAm{(BbCR2>E z2T!dBQ9P$9mS%`gw+UlJ9vU@C*q~&eWsjNUXy5VKNTt_~h~DBiO^FV~OaC^fUW&_~E0}q%4 anY z+tl>5hx^k_;?TaWV7DItU#nv|gXA0B3(9^*5CFM44DR #nc$?<$XikzI^3P@h-_g2_cEadD5lVP0Qf0n14qf=_qElD;bgS2FwJ zKBtk=Zby=3E3CK)-WVe>Ir!`EtuM4q?wtgUfmJ}z=;j1W#}9B3Ix5a8l=cr(b- zW!Ji>-KK$b$xPAR+@Jb#7>;w`hygbCkUP7FmV`*FU;)WFV;r@2P%>ikQp}U9tt%#q zLvOwiAgJ4e-$pk!E)K`FX1HYKip>}v4o3IW(@z2TwC%E?NtY_-FzJcawK05w+|~V& zi{p1c>qIu(i6OO?(a_dj{kwr*ihM AE-oI2 z-%4B{juR~m5nP><+{$3>T+8ORCySlVsB3ZNbw4ek>hWr{3ns(p=u}vgiepDtFZ3N6 z`+;Eey0=kkWxiW*AZKK(i=-VY%%$|j1-d8TrkEM0aaPS|!pMCm0P}TpwxmgU_b#BR zojO%~va>7{M_d_ndn}pTo!Dx^&P#lLnIO2UuI7HJc7HIR+)`(0XclQcQ&!I*zejIr z^DXA~)JozRYC_gMhE!s(zEmhpYXLr|4A%Y3v#sDNledbi2x63jRB;gC0>u+Az|}~u z_g>j!SVl&2^5MOfyRrSsaI}q$EF5m-D#xMm^!1gd`@$gKy!!xvTr-Z#T~u1aoWg$B z6$RM(VlrzR>c$N50sH5cL4Qn;|KR=7@3#Giz>WSm_sUn&2roMZupM(X0AQtS_pm^` zupg-X$M{iyLrT#IGb<}A2S5AhG~;rD8ruJ80a1CCML5wJ*@g^2
e7}5h* z@masx8+e%n37Jb_%QMF}FpjM`!3-!>)gwdyh+AiK5in%I8WG=&>vI*eqPwN!TAP<9 z^}iAJJLVSdei^+1z_auM?1BnV0JRtzN>nO1WfT8jHgPs3Wg${+ >O(@X_cfj2ig;2uw+iUG%)vbn_*3kzRJpLnKuRwxL|-YU@|iL zH4h6L2FcAYGBh1BTO5Yp74$aBhSi3WIh0rQ ;PYM7O^ *Ujc*%&%o? z(ra97uVpGG6=$H>u5if6nN?fV4IrtujmiCkYQet1;n$ oV?q P%N0Eezj3kcesF%}EVaaV*- z fSoZ;qeOz2t{<_oD4VR*}!`7#~dHpu8$hP5|o12LVB-u*czE8KF z9`5fa;jJN(53814r~oPv$N*zT7U?s%?06 ^7 zFcFQ>f<1obTSye*#;arWZ=(Tu^xW9*A}3_QPCaB!F B*&ivT=hQ6LW@RRDZAj?Rq@{uJ5wNCK&QgAK(>~6Qe{Gtbg zC#gEIdDYUl*G|9PM?({9Y|yu};b0sEW`1ybENSk{cB89)v6rzffW`#Ms#sY|P?lXL zQi_Y| tN(#+OBgGb(|=B3!O~YmY cvzwx$rhq=?ty~Vj96%6$QNKF70xUQ899Ih^RJ^<&ryrd~T9g|;9$EFGGn8C=? z3O|$)K(V=Y#_(a%x7S=P^TrTCnaXhd`7T&FMLikH9^rvn3*k1f &$3Ft$K~O@ zyOS&903{nOKxw-FO&~ZjAu*LvQTXL~!13R(r>0h_67$L7U}^4_#K0vfUf>S?6Mne` z#g{^lq^MD0ZZ0lh;A^n84xE@K+B?14y1HyAD3$tCybE {80XPLlS8@o->H=hRA(wCvU#>RQ%P4Pg@u|RNCQ-wcBJ(% zm>iQ v=TCO6}fvSyoebsEr4yR>3%U^ih>r2wY ziYe;`9&s=!>X}X||5%Kc&2M6Z&Zl@e8irie3ez@rT04V8A4;l=n(@ygyx)>?w8xfL zXXoa)xcQTkQw3$+$s$CvsB#!Lo`(vY?12rD`GXgWwetT&;*f74J}U7mi!njp2DVta z$tjf4q=K|VI_vA>&K)w*0*NrvhBSZL^Ck7;i%7GsAUH)*FJ4~$LAXXwak^wTWBvy{ zrl(v%mr+>QZ n^HgRp>(1r9^5u{uoK)s&5L zVb`>NjNLB@!}x`Wc=z55LFdV10zXQasD5Hvquu%~(CA~BTlnRm@S&L#yOvFm%Vk^g zQ}@NsU(dGdW8dnr=+b*RC0qvraGCWl&Mx%z(@NU|9>#N*)yEW3x*q8$j#>26vePBe zHE~tsW)o>?L#K0F&ArU1dPsmBl77!OLJpB4&8tnnN=2|cA;i9@6B08B=i`4=4!v5l z7unYgx8nTJI~%{6QT0x(WazyJ8*_NKZv05TEe*;`S)dcm 0H%H3(6j=Z4Ojx z2WfpTKVX=MS3H!u9H^J*u?Lsf8H$FdA+(c>WZ7J@Fmyz7;xLx?r}h^MJd{JO{Nw@^ z`{}F|a!;BQJ@~Sl9%=T|>~F4$Ph@NwI8R(~i8sS{MpDS8bV+G~QX1{Ax02s4yM5-} zXfH~+L5KF|Dt2H#+&}nnTW$nnKq1o%1ui%M#G8_lf(~x`N<)uj(uE6!M$WT`l0|Pd zHTmKSf)Ql9jj1VzWJP%opCDdM=4GdBe$RwmR({6cE@pr1EG=<4?X2xXD}LhO!Y>;J z9CA) zuiRcs3KvfJh z`bXgu;L;Eu?fs^~u-V&7CTb?NCiQLe1*;xXCd9o<_JhV{_txi)Ie- tl`#U%|XxW>g zz5OW_-kRhqc+42r%*x858ViM!t+EN5JID~K>+1TF;;BU$`~L24a#dSh%kbB5je4>R zZ(MGCt_&G4lKK0e<7CjkqvkIE94E0W6g6+YaiCi`r3I>t3awuGBQ@t)-z<;#i{{O4 z*OubV7DyZ3oa%&XY~?CPJua(QZN{8B9A%(hK`N|CdqC87#i2iLQJ7Howm-eHxYY&Y zDCCC7KC4xVv_neN0_TG^#S+kEe`Zy;llzyF7DoN{%hQqX^UC00rHL)vi84ON*>nb2 zH~1;)p|Z1+f$L*o3yZ&}VkkM?Y0g5p-=leO;%attVrVXk6?2=Q`GnPIGgD)!OJy^2 z${nu-a%!t;P}Z*dv>~dz1V+nzF<-4+MNR+T)<$XC2&$F;+o )oO`;S^RlTgJ>xkHR(Ic_ zf94W!N$HtDRvy%ezKqjkkgUAL%EyKgci?SVg!DJR{4Ghy%R!4i6^Ip52gzY(n+YGy z(JNvvaEqI8b~LH9@JZ6NAB1{d*evMf =q1oY{!<6%CRR^Pac%~{0N3`N z;4d^mh$*c8eOf?ck>*C;2S$>oJ36P41=RreHfWE2PbPFAyi*oV-nqG xiRvriQ&w9oDOO0Z-t{nT1k)mjqiZ%C7~8j`36XY>0;U)zu@1ju$pEG=w<#!My_ zY{Y5*`%yhCL1hXbtfW_&%8^NKuQ!E;zqVa}gq1j+V~~o7bwG(IWggsMKc1@VZY3)U zTHm92*vha|SCem7_GAH7U)GhT?KMvDV7W!4vtEBXU-wYa8{|kXYH<&>S?=L*9>cZ2 z%+ub!aG)9Si?Cic$YCgv7glCgF6G9=4!8H#DG;A18lqAgZ?Uhc^=b6*)QTRpqF?oq z4Qr}o+vOQb{>$W
SvPEqS0tkSAPqn>}qv*qJF-0 zH+Ygx1JmWaExSTPdH7ZTygx#g`CzkqiBqo^k>)-$)TK)vDJk(qyxp@~d1Yhmi-tl> zfijnGL*@i_j_8q4^NhHk)K{^!uJkSoLPF=vV_Is~>9^uXEuJf?*RNFGzb%05Hh_O% z9A_SUP-jb5;s3 lL>*1!u$9n)pgn*7aTus`A;=|sYG!?Z1 zK3s@ sb_1_^J?uoYoXfG^?<3`uDDN!{N;iIsTy<)MpU;>z4b|K=U!s`L#o0`i z7jr- AJ- z%NJr0mr))$$f=H=g)}fwC!{m>YlJse`poO}UR?2kOC~4X+3r>I;?fF2#+uZOsI#`yR=4mbjHmqd2F@$ zg6o|9J0hD-3oc=t`Qng1vr#tLX3sdh^A`ub`hUwEvtJz^wm9kQw9POMD?p};T6ARh ze|0&73ns*DaL``#s|huzyc7&BoY&EfO>Q97=ug#6D{B)< gqq|m0K9 5X*M5ibas!M|6kN346;te)8VGq>(pe zP~aUlI{`x_XOO*K{v&xwW3O}6DOR5s$xzkoCQDEnb!MLv8#uM9v;Pt2zWh4-mIL&{ zm9Vk|U27tS`SD#vz$@${sTasJfBY8`2{|@c1h_oA;|K9T_Qc3#V&7(CzRIYp7~s4( zCT+o_%x)#jv-dw*086Gh$RL)@X28}R!q V>oarBiTCpd4~9pHM)ZivB6`( zoR{>|b|#9MX>3vHm3HMW>nK~C9`X9VQE5lmBc~qJ_d9gd >np1y4pCu>~Z0MtwsLnV#@9nVLrQ5rlbS;LPNr@~K zC=286>m$omk2^e+q{=bWj#Qg-s`u*6-%H<9C%zsA%i2bjcN8qq2S~P$)P5 ne>UWRh393{eI>oX{+0Qlxa8+*&ri>h9z1PM9?- zm348vF-}J_&_3Qp>^mQpsCo}EaaXUU>Q)Y%oH6BV`Pxj#7;YrZ{#H0s`s?x(+5S?g zu9!wS{j2 aIbRU~Y8l2(04 zq926Z`bQ*~?ovijE0-{o?*NwUD^*8BgWaUhibxw#Wb0#)J5!BrrM#tUXux8Hfq0I? zXrMAqCSUy-S-0UpIiok&bMwbWWcT 1jNdehjJRHa16QY z*piuF;a*!yf{#p5jl3Rv5>LFMOmX7kaX# T>vN6VQscLSQ92J$^(t^Gpa#}Q zS~Kl _0z$rbl9E-~(0D3rRG%6zi>Eswf;rnV)wbfLr+ zE8nOfZ^|9-(p~jVz`_N*r q*8v-_)CYpQT2?EQsIOl24Rd-{o8(j@NaH*kX~ z*~F6d`T%jn45ilFA!jZpGb2;wytP&0NFoQr-ulo75{9dO|1Bl0FeCFtgO54~lJT!O zTfjyZ(mRv4Sl%VAZ0DgtULv6TGlcpBemh-G7A#>EB^4I2haOrZU+Iy#JxC^+Mx3z4 zA|}+6bq~#|#>PsS15IbZRTt%gOE-ZXUz;ye*bg`b(LvspuB%xi=es$2nS=lzsig^; z_PZ43FWYHxtBF2Ky*67zYx`&*Q9a+uVBlTew=QS^cOPxg=H%? ~HOTU+h-x~dS?ujkl3@b%xH`Anw|po%VO;q=_yDod9zIQ&+95!qTA!=wR| zEN3!Ok2dzso>a+`G%|XzSF)sG8vkQV+TQ>0f Bt2 z=2@2VsjZ?jz2y9lh0H0oZxnqNMaBas7G9JDq4+NAeqm?l@zkXrQuVl2&7{22!vk_n zbxl=uwa3$+kRWoy$FEJ)SZlia`gs7Z+Oe0ktlaW9Ivz2xAV08!iI0zqle4}Z9WYuM zmfSElN$9~dF|n|$`7aVh0?RNQ2AAPr!!=VSU$tmfQd5^Ms}(F3R&`8G2YTT7aBQX1 z$wFY82k7V3FlTrt*o3)#flb43s8?*L_eV{wp322u-wg1r>x4)&lY^<# QLErVbbMPC=%u%s!D3ds9M1WZqC} IOu0l~9o>9CmaFWN$u3WPg@-`flAXb}|ccHnz2qui;EnUqY;OeZ+s~i66r; zDWxV3GUDAEpf lfb9LM`;AK-Mrsqd@HirmS_D>r*ChGeSmb3SJ<-JbyT ziIL6pk}s!WnjL|Bql4=DGQBh<`$u{On>b$K9zR0<4M>Om;o`MnXsqk{clZ202GM4+ zR0Al(#cdT8ET%3Fch-CpWpf)FNRO>aSgCQIo-ek(9~QDs`jm-q