From 20f73be4c156d820f6d1d54879cba5b2fd7bfe88 Mon Sep 17 00:00:00 2001 From: AmokDev Date: Fri, 21 Mar 2025 19:29:43 +0300 Subject: [PATCH] added tray | removed console at start --- .gitignore | 1 + app/Cargo.toml | 6 ++- app/data.json | 2 +- app/src/icons/32.ico | Bin 0 -> 188441 bytes app/src/main.rs | 6 +++ app/src/network/api.rs | 2 +- app/src/utils/mod.rs | 3 +- app/src/utils/tray.rs | 112 +++++++++++++++++++++++++++++++++++++++++ 8 files changed, 128 insertions(+), 4 deletions(-) create mode 100644 app/src/icons/32.ico create mode 100644 app/src/utils/tray.rs diff --git a/.gitignore b/.gitignore index a896b5c..4183e73 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ # custom .env +app/data.json # ---> Rust # Generated by Cargo diff --git a/app/Cargo.toml b/app/Cargo.toml index ec091d5..54f413a 100644 --- a/app/Cargo.toml +++ b/app/Cargo.toml @@ -1,11 +1,15 @@ [package] name = "DiscordRPC-HDRezcord-APP" -version = "0.1.0" +version = "0.1.2" edition = "2021" [dependencies] actix-web = "4" +image = "0.25.5" +open = "5.3.2" rust-discord-rpc = { git = "https://git.amok.dev/AmokDev/rust-discord-rpc", version = "0.3.3" } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" tokio = { version = "1", features = ["macros", "rt-multi-thread"] } +tray-icon = "0.20.0" +winit = "0.30.9" diff --git a/app/data.json b/app/data.json index e4c916b..40c9bc5 100644 --- a/app/data.json +++ b/app/data.json @@ -1 +1 @@ -{"episode":0,"season":0,"timestamps":[0, 0],"name":"name","image_url":"image_url"} \ No newline at end of file +{"episode":0,"season":0,"timestamps":[1,1],"name":"Полетта","image_url":"https://statichdrezka.ac/i/2014/1/25/ze3dffce6f572bx77h96o.jpg"} \ No newline at end of file diff --git a/app/src/icons/32.ico b/app/src/icons/32.ico new file mode 100644 index 0000000000000000000000000000000000000000..a188638fd1992f9285c7a899fa239c6219d66b82 GIT binary patch literal 188441 zcmeF42b^71)wd6#0uluU#aEH0QTP-)`W6w?S4CeHkRs9%LK7(h0wNHkH|f3iE?tq1 zAYFRzRVkTF?~~l`dDc1m=FFXYlSwjxB+UHs&$;*9Q}$ka?X}k4d+oKdY@Td^Y~h77 zj!R`*zBkK`%d+g_AJ4xZxImUo=G;0%f^o{uAhIN?2B8@llkZSZ`&@**53X- z*|L16NSw*fbI3BvvB-is;yeFM821Y?4_Fqg3&u?Y>+$>N!FxcucTGM&2HHW_G|<8C zPXeFgGd>L-p0L^4l?mg3$9fp|i~PLD96rNxtTthbU$!=Fvr#3m?Ix9pJ8fB+_}g)n zi92r2=PfEt+x@E2wDtONu4$|FD-*U_uhR7E4Lf+xdJ}%N=K2$Vw{?5h->$55UU5;S zACfWO7H#mR9cVNztVN}rIoI0{#@y~^Y4|uCm*e}9=>0t=Z;$|z5l$+ zvUN?^bj@)SHeGA|rtLRv@4WczifB9G@Ji>O&#SbbaeRFDe$RKDd19sY&_7mM58Ef6 zO}(YFZM8o2Xt%z-58hj8J@SC4Z|_6@3{M0%H-aj zO6Nsq2Q7PUzo|0eS8G(-j{g(SeY4WM#}3@T*3kQ3{}=b1RcYCO_u~EM#`}F|$GN9e z`W}6#();lJQNP;vL&Hk<_19Ed4%)NQ^qY<2bK5b8RN84r>D_bp?Uk;-Tvln`^S8D2 zUlkg*OxS##;1PJKQvJN;x|IoA2Cu*`8^n3uo9>s_?JrA#`$0NC^q6>i@HO@q`<#8~ zC%|X40G~TGc+JCL4Pd|ZeqlMR%lgy6YW!}Wi+htCn9-wh22qzG&O-jgbC7wpa>nz# zvy6}N-THrFIk*;4F}S8>yqTvOSgtH`;%iw%de$vu>pcS*%Q+ zxWi_Zi92tR%U@)1RW8$KmCX~j;9B~u=aI`5WMXB))*Hk*o@sl?Cu7kMw|PzX&DU1i zPdhH;tMX2{q>Smj?EH{-eUCj9a;NiRVEPea-iM#x|GVrfgDt%8p5^~RL`d@gq(({j-EA1y8S!p}=&`SUF$fI*kuCyV~ z`(Jv#(*NvJl<9Brz3-{V;y&+b*>^XeFYirx{;t2S^uPQ<=#;+4AFgy=c`?s>hO%8# zX*=q`%EVo^u5@2_HFEBsm9`TP&!7L|b8)?NRHqEQ_DZ}jXjOjxILZ%w)IaJXb%#2m z_nvt%u7oHi{H*HJXp+7p#JvEo#d+k_hJ!J1nCwj8;@(XkQb>3-}mV@^S85`wR&gQ&0 z`1zcBYm=Xc?wQ=z7y3wkup<(%} z&*%PV+ncTpTVir&M`co5YyN!b;a>;(PMQkaqcVANrR&-&)3ZG`E<&$l0ho@+q=YWaDdyx6?kZz?VO{T}<^UzN!<<+rTO<9EU)p)Wl1 zWa#~N><(<3RENgp=lSx8<@LOA@8(M1LHE7@4f~VjY z?W8VvyS1=)ltbDx+Hw%wLT!2fMWA5>|A&kDXw$0Q$?;`|NO-{fEH z$PyjHR)}-9XZqc1gtkPoYX{3}v8&2Jwjyw-cp1e<{mgLrn04Uyin6u+Z) zrVHx9h0=39`ZpfyXjc9CZ0)e6z{Drd=++FmouTJ4?De2KGBKl@XXx*&X{+_Jfj9o0q2Dt4ZC2^;&lrbg^qsi2 z@2ST#bXmq&E1TTenN9BP%@`+T*!CHEFJl~+F>c8idu7dg@0?AV@D_M8L$+p>zP=3E zo*^SM^kUY$>oys(HbdrSj0v*df8L$7?ESlJQqx-*wtm+4@ckL`B14a5?I#|d^*#Pb z)^poUS^qOnWQ-}Z{uiIiuqinIaK`v3Ydvs}Y~Ww7X1x#Go1wQe#+zC5ZrgC}mKo#2 z3?0e$-(=0d-!?;+L5r<9w+ZFmB5T@a!wfl2eR{IKCm!YZaT$6eo7C2lA=@)_PS$bW zY1!ny-V8mJ4gCAnY|_LD8FDN`&QbQevbG}+$dEG`dWt#@WQ-%T_EV1Lp1urQfO}rc zn)li%>wsS9w6k{-+xcWn3XnpIqSXe zuB`pEV>9$%hAx0EN6R)^$JF^-bm7b6f`vX@=f^m8SzK^wqo2o&S(sN`{K3Y*FM3IqUD){NF=H;uviFY} zGj8z}f3*C$R2J@*s1ueaU?8*Z@PMjLOk!H?Gc)uv-M*^G+E`#Ju6*)_(DS$@rB*BZ0-vi$vGonNjS zWJ$k&X6$FjjQQNMW0xEA|HkHjtF7(@b$|cApZxS^W5=#K`1c=t|NB2&CBOf_#*F#V zkH>xu3YP94`@QddZ*2AVG5zC!1xYZ@H2savvap%=4kzFV?vUNF!2Sp=W$ zJ6_~nJz2J-?_M^`=ZZGw=zMkjeWw0=QT}88|McjDcjDS|S<9arl;wS#{{;9NSQ-2P ztO9;Ki}0i39pB~n4X`Ab9}LmAQz^Uig$saBfp39L!J$A~`XcaW;9SrZvjCUz%!|P} zz%jwrz`86276k7B)w-lQl+W?mvPWw0KngP#KHFsL2)Zk;Uqm%veA0+=1jp6Fy9+JJSi z9pt5II~1Qk$?-toeEsZH_HrF;2YG2JP+NX^{$}7@aJpx9JK7HR2m5qcE-lRWpMz(> z>{jO5^4JDjfh9m{gJt==8+Z-WUO&5iS1u_V)eousEAaVnpqwnqTV4Mu&1Z3L^Ypt% zuPGz_Rz6pJ-mLg7=ElmO`90RnO6TI4={v{r@3|a5n{vuSsr>)L=M%tNAm*N%fB&1x z#NTa|uNAvC!Mru&^jNcK+F@MGb-F&;yw`8RjsfT7o0y+${=;_pdDal)_dWT2_wDla z4Au>tCuJ#tyMU`>l#PrCFgQ4>!W+^#Cx`_v>kIW@46!9TYabNCCqVDY3|wva}t#f=2Tk_ z+|%}Mp^Vx9KPr`fB|e{)mw&BF%O8KoI`rce*QPr!<$bKV_pmn6ee-pd=0EOIVV;OJ z-UlnLp}2n0ebZm#{jT9!M$a?P5bG~JcifWyE%s^e8`b$}tDd8p8nV0Is#W#v{6Kxjxpk zEvNJS%ztq1I_BG<&)FwcT3PpKWnJ1bI*0B(($lph*L>PfJ+{JpQ_SHzH{V0uT~~7L zia8w0djj`7S8;u#A3uVA)}|)0*6uox>*5pP3(6?{wY{cN{@vmkt{1pQrcZ*;aIH&! z1^oKi4 zb4RgG#{5{cE%RrUe%jNu{#gIW?XPK+pEU?+KpEv#{Ur2F(7&PM?33eM{|nF`e}SI6 zZmV?Rv*CJI%lMsRKHfg8Uq|0V_fhAEV?9KF0R0496LY2Jyw9~z*Zd|yd+TjEZC}s3p6ME^Yn9AjR+!(6H8kcs zD{VYG)?Zz39Txp_{$U<6c*M4le|qn|6aL;Sb-s$tKFZ0J0`NeujBmGU9sYe(7Ir^oz2I$&O^B=a)*H&^pp#9#M zf4D|D?)so>dfnHv_5;23H)%Waz~Jwe{r^y`iC&ri4)42e+;;3C(0g; zXBult%yT1i@U`Jt%qxeyZ#(X=pocy`x&P4ytci{fp0yrvKKYd7x^?R1_Zrra!mo+7 z^k(!%3o=tk2X$KfMt`$Uy56o{lZONFkn+1loyN7XriTo-O#ZHXVy-r1w0%O|XPwoB z_8Zr;n4hmqWNm+<>-MbAL+>)CUH);!x|nSNom}&lPkZlUZJKrB=x>{|uEx8xCzNZ_ zznA{1-;eA3@{#MuE$CkP#y$|TOnK(Bkn_FB1p9-&OR+}nx-;cY>#P%ehii1xUH;tW zcx$88L+>j$LuSB__G4ve((n2^*)GbJN$sr_*M0|HeHk5hJak+?`n3H~KdBtOmC60| z3D&e@UAw0TS=3bMx?5xY+4hKa#KGlG^%w^I^Y(gcFvqrQyD2JH>` zTX`!DbNZhYeXo}O^1FS5^(FfLR+W~$cdoELgWt+6!AI(5*33e#YLB|cKSTUan+@R~ zcvxPNX4;?ucuCzffUdUe(<;CIdHP+1Z%D3>Dow~c*50CD>*wHKKl&y7YI2!huEPxT zk3JW{zs(aXtUuKr0B$rGIM^ew`y#{>eSvj7=WLem*C3Z0K3&)_(HQQI|@8-|)&G{7?Dy zEy5=*w^uHJXZ{W2(}$pwHnU^2k(EEn|9eAzgzi=U!kgO7j++L{|N8Pr|6=uV_{d@V zI0jR9J0@f8J*PeG+x3^rW6Z6795MQLAwSh$M-SFtE!Z(pe&3H?)pk_AhyJ2{dhWVC z%H@CRF2`|s57)Dv^yM2V(*5{iBD#<@nG3wTQn+vK7KD>kM58+9sf91aV*?*75;fS^E%tKAcx|9=%Um4-Qw<@fuHTKMb+&#Zk%{@rz;v%q&int#*xYbWpu zs8{FN>6|n^4167=@{i&3Pk?)6W~Z{&E6aj|9eBz0IM)Ziqtdi(mgWYFI`%}=xH{evo5=gTzS`+k032q^!S084{qz^B1y-a+_&%d#ZU z_WCdwA`>}Rl{0m!9;eFJ)O^+^`VXMYT^0NaYz?*tI|6NNb-~*W-)$MT0pq}$Ks!NN z4AN7)k^4a!QM<~D71-k%kmGi-6;2Ll(xURtU9N#YZ&c6Z6;JTS(w-dph zU=yHCvK&|h$h(7dB;TuS;O81x_YZ*;fOWnA+y)*6&jW3Ue}mV-o9{5RX)McY;6?BR zxD(hudjoa)M}a&%sGf-cHRs>MclTR47LdQBv-Ru;l{o~HDCb0Ao9zXD02T+*U=SZj z1I{Jb?%GBF4GsZ!0BPF?=9Idpa@t-K!2RGjAPwXL`$DR3?NOfp3Q(rp4m!bPke)dw z9&I~muoqYfC=Y7uoxZEjb^uoa`_r6W_takUfqg-FpiE5lEg$U{{|U|jFM%GA?w`|- z_66mEGVyyr-B^|b_Ir8%XW#}fH`P70oib6qurXKyNQ2b=AK>$+!4|;2lJ1$?j*nBf zJ%D_!otWzX5k7w#>;s+zb6dSreO{n$CxA78_H3&E$N9WEI2Jq)()DxOQJJotI1Vfc zQvE;4=XJs9K-rhq+jRri5=HGA!WO09iffuYZYhkrQ$qai^~F8q-_mE+ORMi0#(VWG z2>8s}vPJnlUzB}H`L$)P0FD=y2C4p^;`2t}9PkQ=`n%o|KE(K9=w}@3FPzgqE6%e% z88J^-OVV#cpN*FNc4MszpDotAS`I9L->hqC`tq@_Iscutw(50W>-W9AZkvG5(vPcY zyG?U{WaFz)hTN}Cp^{$bIKeX#YX^n+7pC)`BC$e_sGkj+FWo)+g8?0enL;bXG zly|BA%0tI==L2o~psDvpTr2#3+E{A~-(udW|AVm@!jD;>H2lz9hwCIZOBd^u-M8SM zhyQH&?&81O$=ag+bix>2@w+~J#DS?^OI!$JyXf=c8nnJf#_Z5PP8v7kFQ(r@9`gjh zKI3W`pX4HZqgmJU8sm=W%c&o@Yo+aHofJNzuH{KP)|1|({?}4J?fP>4m*o3q;6gwj zVQmVY(x*h^ETEtuZi{K7JTrG>*5-GS_^eeRsUuE$HEU7 zA7R%)J*N+hKCpey5Yr34$+#~3rLV1Y61T({W%|YHlctZcenk2a`;PDrH69keXFaTE z_u>!Ujh|!q4iU$rnKggug(Kx4|vzrf5z_{9)#zuBYW#}-*5Z@^%Ias^b_~}`fOMS@6&%&KONVK zyYNl%n&30)9==$`j zfUku-rYhruw1j z%N2h9lwBVx`7dIuKm&ay`=5I%{BZi7eG)#tG+)1l*3w)4*DrO_8?T4Yg6(ZP`rJP5 zvwrN^r#~JL{N!4D&{KbG*WYa~K2Ij@ie-&>Z2Rnj?25e$^8fY2u0MS~>aTy8{Q5XP zn)u1+`#tcl*TU~pzSBp?_R)_!`FG3L#$2*4`s?R@ZCl2gz55d4T6}qIOXDQD&aUsR z{Z`(QKf>ojpRVvzemVS<<)M&i#E_9*?vaSHQTOmohxhaWG1iZLD14o)yE-7BtC;@! z7)CzWRa5U+xdkhro6kz+YN_YW+~ce-#;MKUALS)2B{U4(TVT&#b=H z$_M%1exxsY#JxebS?BO;)4x=oe7;L#V;RM|KJrOjpwFKEwZ_)#djy{ge6IDqkjIq2 z`kv?O=&YqrXZ_po|CjHQ?~H!kA%~24CBIQmeL#%06!j_koNW^FlD29;?$Amr{UhS? zsI$?Z_8I*!V?PBn>wENpkgF~D`L-R+z7=RD9rYcPPkfKDg?vZ&4{whj3A$aH>Te#h z2U%j=FJax4SNaaicX|Dh>C;{R1EP)eopUdRa#@|H@49WLFIVRU^l@T|Mg7?a;JcMk z)*<%S7-vks6MekpZ~W}rPeqpFFCBXp@GW*fhiz+lbH6M2pZ3-lH}(L*NA_#mRv)z% z{Jiz4*Plk(+Q;qt_W8*?&wj7pj(R$e^;q?zaIS9H{2%R4J>^69RV2M-9534?_XomX z^r!Py(8gI1Rv|@s1 zeLCTaqFQ@;JeOf+fJ09Ob9g+WPMQ&=0+tds~dZ#vZMx zbJzj<|p!7cCj|Tx=S4!_I3Gs$`#im)9gcDuZ}dnuKFVU>L{l?Bv0wz=$!0`YM#o{w{|5DkmzBTzrxK%zI!%mykFjqm^sGL7N!P5M z%TL-(`yuwoaG&vmaVTE-T~;P-4MR_ z&?|i4p_#hAMVp*`IP!sUmgSM^ANnxjCc2kFn}*+rO&0o6{T9CDUJQ+F1AV6*e}_zP z|FZplXy2D7M!5d1jEx_p{%415uhzfdfkE}RP4Q>8ywj?`b=Rhi{dve6`K#+P_x)Xq zp3KKPRT}Wzu#M5H+JfN&T;;)PyQlszLiNX&pTD$+(|xS+amY$_hCm)GyY+#N_OI4I zxAn^H-(mZ+w=Df>`>4YmC%C6k`=Vw4--nzGI|G?$ox`u+axgyC9(T+cdkd;OIE(AA zt>qY7dxW_Xb#ClkjQxv@bKF;~ym0S~{2%Q_$UZoW>hE5Tg6_6kFYTdS?$~IGKl!nY%`Of5F7`et%d9`Lu$KRa zv_Jj5gXg)YK5RJKGl71sUUhG@c5d32WO>}1ugxC&^M=-a)s!l0rpzRlPLf8~OFa7mD|7_T)vCkmvqOkePd@wTo z-~B){@;5#8SEsmd9KNs0b7eX-uus?r)T7!2>Cd?R@}Kc_8|={>`TDDy3)vR?grtr8 zb%cDP9#4NGQvWqW#>bosxfmujO-N4KDYl(`ZqBlj46O! z=G;qyW4nm!ochc3)c<01s{P+Fj{C{9L2ZBSaCD6}hwlsBQcxh`XJAW5pV1B;Dg#ES z{R{cWzGKJ6F>XEU#8@M63=?1+rd{JW*Zs-C2g<)nF+noeuj)p7yzpom}T}EhysR@ZH!mj-kR1R`&2WfDCj@YWx}JgR1&s zR@9$9mt@-H4%)x2{jc7^{%5@4JfwUQ_do;XfjML%CP=dX;dSRb)1NU3Tyu%|8_W&G zJevAcd&m8>(h`L3rS6d{=DbsbR|e^eSyg{+8UA9fjk)%izaBLH$@Om3U;7t2rLo=6 z`ZITit>gHn{1>ql;A{6*DnDY(sZLR!AV=KW>3qAfkepAjpF}K_ko!aIz9b80LjJ9p z$9!N7z;=i^PTIt_bPd3{-74P|vd1=#xoO+Zu^jiQ6C&n5GCan=^c&a5)EP0az?|;@ zV`QJNZl40z%w7*Z@fpqq8_PtVcWmJPz&i52_S}rszpy);t8uQwIz``PZOu6d=K~|A zg4ade^Y%CXN6cpzaj3k{x!bT&nD=Y^u5GOwntcJ9ErPuB@^uvX6Vt4Q}cAL#qA|MT^fVh?rHG zU0(my|6xOLHmLePScgF{my+|Fj_E8IgJbo+gNx!FOmY^b;$b{WgSZMsh`vT<#Mn!DEq%G#`m9sqrh{Z@pDss z%g5=x-g|5BDL-#GpKI?Q-gkXlE&!VX`+V|$&=>B%!Ja@LxuNBoJI*~%-Slx=4e0Zh z>aQ=PGGG&MADCO~{}^?1Kf~96dplD7_4)q*SOxqAbb`rXZlXg!^|=kK3-o=Q52X61 zqjb?%{wW|0=9c>RQJ2?&egE6weIV7jd|Z^S1&h_xsoa#JNO+dHC%9kgtHffHaT~=0thWO}W)~ zw*&X`d<*E~KQBo2t*yW3rGffT8psFsg*i&4ypd> zn9esiY9A~C+kS)EJAF^}tv#mS8yw%m`T2pe zLEF(WlQyF?kw@MM_-@N!SuB(LSQY?7`Z?#Sw5Y9jqwnQ==H$gV~07eK^-7xRne zOULo~cXP}5myUV-hWy;<|FaPV#usI&Ii_}-=f(W@`O2}<1+Dy*#xOPmTfVxC|DS%3mro>)G_?l zkWBtI4QQ_@*S`wB57cdIfpx%oV12N`YyivhORzThInYMZ?)Ws2PE)OCErA+bFOAi` z+M^!?>bft3AA>EyAHk8}1aK-i1DplUo(*s&WzaS|5g0e)0H8fCt)!Fs+wquvL7iQf zpAwz;y&gTi$NQH7(&RV5_xRo`z^&jOpk4eBcmx>7;<4EPmg8aY0B~$^JGchec87tT z!0Nzp$TaO(uBoMue3NW=ZDRT4Ht-yn0NOwY=mcE_x;f5HNaeDOmen#hftSF&;1pmV zTo%~pl!uf@_X73W5H-7#wa1QEd z@H!aIGv}sj)ct1x``9u-9iHgp=g)w(z~?z@=#e0`T3j0Z(d`6 z9L_W6rfakzwSo5stAIs8;-8Q3`8!|_a1&?;HFYohF7UbRt1#r+bg%c+L;Brgz2DRG z%h&Na#9fXY-P0a#XhzeNc53bKLq;$X(%mo`skbM z9>lHjNlLyw`u7O^ocs;MZ~m??QJf>!BKx-Lp?YmRxBfM8pRrHO2ci#>{zQC_{2+e! z{g$y@j`I6_cKNzeeWpCGD7)9?^TY74CmJ`NInKFa6+1KK@z0O$k#dAEK`?)7s2 zsC!|g*~5MzSyg3{1koV!jD*=VsenUPa^1t?^^6d<$0Db_O|-oh%rMP8p;wr z|=EwUG8IuKP~>7K^OP&;`bLZZis#0^_^D|pT@mu?oVfr zvwNFu>$f&qE%+_=`jeN=eJT+Hg#8-Q3ZCl5pWpGq8DKq7OP^IacR08k|EK$m^ncc`)cV?f#vU;KhI!XwPdc$XA`hE!Y1mumZyo2I9{Wi2 z$@H4ow?q5__jE-LHui2A$0D9hy^UXEY!3H8x))b}M&r#Gv%@+X`^UYz0e&|=O~e2( z1`9rn!LRIH@fd#Ww6*PJ`$a4vV^wUqF7#RBQR=RaUmrLZTIL_=a|9^pvsTCv_Z(O+ z{cMdRV4aN95HuhjL&RippBl8$M_zuCHnFE4ALhtafs{;kICa38Sk*-z{W z_wsZZ&j?>|V?#(gpAma~xz4N7;{DX%S-kVeSc%0KYp$9 ztM}?JZCnfe-D5AeaWL5T?LHE7|Jg?)<^y{86LphB@6L~7x`(?Zh zX(`_;kAgm%t~LGiftTGsmvUpqyNu63xdvV(1_^Y~FWEgE`di1|K78{d-V5}Ue#VBe zf7pKJ{#1S{+vQE^Asx-X6?--5EA6L{8x($QK^C`?gV(+s^dTRid4Hl^xF`Ch?}sP6 z#uy^%3-eRS>-v=keW1JLkf%}}&xnP=-kgxnzrk;I^L4tBxzkS{`3Je+K5pMsO(!E{A;BgO)f0o7l1QF}UeK_!E$ZUO%(XHmgl%M2d_YLbaZ?04Oy0KeqyU6>9 z{F-1s%&?te9%uULBmcP9$#$dO`mzTvP$&1mM!%qsL_90>lI05e7~jS|M!VVPL$@HC zjJIK%g$;x~GZC9X{bT$A%kIAGh@GSi<~MDHpbz_?V^5s>L)a^l=fiy?`hM)w_nBMh zdyUS8rk?YewvD_JxtnOy_>BB9ewH*1+PDubpXZt}`mjgNI0o`;2k&h|hP0n@Owc0s zk3zT5y~IF~7Vc+@*eJx3vaTKMaS6SLOxDJU{;n-Y&N%md8$(0+8F7W|v-C^lbF0^z z;}!bZhhl#Pdvc;*QD^&(@99MTwd~7Y3in)MNBT_Vx3+|P%PeEaIQCj8OO4BAj5+=H z!_IS$-i*@cxI?18%IDZq4c{2!EaGh-GwsjHB-=|F;NFOc9b>aAfZ|H1)i+rZW-B1QSPYg9=deAHOiyfcy46-QV@)?&1o{6|bv3HgITI?^iFNCh5 zJ&ebs{864MZ;aQbJr=P`9>Ol-xe?z)TVC59o#dWu`FY?C_HWU?(#Nf}CUU9gZsKIHA2Y@o*rD1g5wpq|P4d4n315_+*aN`d zcIPnXVm_$m+V{aV~aS3$e{QPz3q?okG7-O_d~yto*j%w zjEfZGKxB>ME5{f1QDZInyx7;|-dD!8jzJv9MR|-5g>9i7;(nRX4~#Eom_E{#``v@1 zyi=CBpDC~x<4W2_Jz*JRZ0i1-w5P}MALpfQLJQZ%xY04D_xT%r!Mf+Xw?qDpJ&c>h zd9I7tM%XiPFM2F&BJZaxmMO|rj9t@MGs+TjI-gUJPn0upJ@$m->X;Ll!Z(RVuG0)( zf2I53p_s2w-)x0$V61C=S8ZJTyW=0_vTbPj?f1raaULR$-Up4XQ!a~7jq$5vSnXZ& z+^fIb^JIR?X2waW z{7lScB$<z^W1q5fHp)C`8~jVTth0J7 z#%Ac`kO#;wV{BN*s1y3$zGG}b$NHfMm0#)u{Bhi79M{%EiK9mx zuGoJjO)N*MgU8hNgO4*vpF+N~r_21~(#N*5tg*ipy%07u<8yP|+h3wQ?t7O;+Fq2& z7)0uRZCCe6N6aY4LCA4!g^(NAi_N>UuM}R8{$A%k`TRZXrzNkq`)TvM<;0g{A9>h{ z#O6_^tLxQs+D^)<$b%`J&@&BaQa(T9^pVcg^{tIp51YTbFF0Z+8E>j7>|V#I_Oak& z>EnIS)pG&P4%CRg!HFv9b@mSFUjdcUpF3dP9OTD z^kE(;#+dNTWcTq?$A}+*ZEL>^on-$)cE`SCbaCuAFJ9uc+Aqd-N%lq98qAA$ULFg& zdA-lJOxOeRraCTcLHk;6>m-_#kF$2uo6@|*Q`UZ?xIt8yC?TPtFA6np69HS-!fF4a~Do5%Ql_V@ZU8X5W!BU}El zyy?%lb3q@+O!T9OBPb6mr;$C5v$Q+3?Tot<^ockG#Ghas8}mobZI}6nv7~WQ;*V>U z$1yj=SibcTVmTt`!uBz)1@h226zx^xgeAHr`iFhbTvFJC#XNMKJ~r#1;d2Jc#jj>}QPi z9m8s`h8%ha=wmzx^_lIYj*oSU{jvM#_sVPMV=Q0DTxc2X8}#WKCjay^Hh84cjvWxO zakTN0o>q4Q$6OJQmbtpnt;U}!{)`h6I$)O~M#!v`&qMkbaaxKzTit-#PK|rIEIwV{_;6gHH?k zD3_cwH@;Bl`uZ`1M!tU;$0b322%SyL561a1PfP7dYaM*4JaRjy|a%({q$Q#84R#`V=;3*ap~6 z_Va-^->8=`ZNRyl=#+VcsLgVs96HD$pk4<`A#UxiIFs`j}VkGiEgNE`7|6JIARG z(T=P1_0E|5!5(U794ZZ_$REcr#=XEsM_;NJoHJ8aX>+8%NvwOA8=!@Cu3Y}q9fOTL z{}crX9cp}C)(5nW+KtD8zI6`R^)q9$7y~|Hts@I!oG`um3wubr+V%H5w%ZzvcaY1{ zhw+u;(HOTe{}%DhiWpzU!W}>_I5v!V@1cB?Z0K1=AN9i&`)9wfGi*b zpwIB_!#>ssq`m7w${E*&oa>1-4&p&Ncj6qQ^RJF$L;f=^b37(LIR~OW7UQ1!G@5nv zN%pgIm#k0dTM=_F$OQF_JnbA$Za>q*4dS1A}7SJd=h-4EEMoiKVx6@RvTjyd9K=SQ*>79TOLP-e;mJK zgAKATw4Yhaao$B8s(z@B-=R}JK7~HoCDfy;!;BXPUpQwzW&BQDZFs}=JT6QkHt&z{ zgLYpYTZ}kkj@uch$2^FaLdRHJW$idyZ-&Pn`3Ka2Svd|O=Oi}@||SepOQw0c;^O{2Qj~@+$r_1u>D!f zRd&SuDssZ{xNBk&$KE)0%(v@5r~jFHZ_4~?zMiVw4Y+2Mz}#BQy=qfX2Ip#B-&Q8Y ze7LdRY0ns|)tAYMcZS=)ruawI(%9$QSD0&8mdHb{VGI3mv`y44>e-lIHO7|D@V+h9 zVV#|Nvo2@fbe#l0{dNys9@pW+l-`pc$x()$iqFh9>o4M5 zkZWYF{e&MIbC7AiKjsZ<>r(&wwECC+b^4Fz{&n@9VV%)Mu0=SXV=O%pzGKK8=SCx* zpnRO#%Ol@yNBuUWVXUiT7a8Bq+!k@4b64)HZ0q!%EXA*tV(LT2kxEwqWl<9LjeR`?mTfluezX6{Fi5|7b1^I0yuqU_%yauH0 z+)5*PN7`ufskgKNl{2+;N#EbcZ|=+ZHrNZe*Far1H_}MjIHq_MD06=b+*kR2kmwO1 z6iVNfL-T@F@`p%tsO6t@-fN_hd}LqS6DYIQYwCXOBm13pwqp?? z?Pe#Wa#=>p+5%n&Pk`&dLEuMVaqs~!h;R5FwDCVbH-LRjd9)JP2&nt*t7idisT;uG z!5!c(U|*aaU|B4aWxEkv4bBBe0o!_W@O`i(Fy2Vr`X>T4`knLg(ffeBw<9h;)Z1%<{{mxyV=HZ(_XGK6P@m#^&@0g=9n<-# z9DSDhZz=F~url}o_&=chmu|BIEQ@7w&+&J_H^67Whe18NZxH_^dek1dchGfpzDsAH zzW`VWd<4i>$|>7qc7kQHY?jfoDr4*mw((T!Sxc9xeV^8|=JemER(F3JC@xrub;?ce?z;BJxx&no9ZAsp=$cS@n}PjW(ZSDWR^N+mPyJJ*~4gMMFD| z-=;#@#y@%AFd+S53@)Ux37;0xf3;7bL*%yCXaDz|l59$2UU2R;jy0v`tp z19@zkwh`AfCV0&+UONof_P&1!U|ClNtAbyE^?~EMUxCfQIIua`Vh)1kwcMM6jll-M z`I4W5?}HVT^&#MVs66f%dM)s4um?C0I1W1+90yJW zCxMf}DRU4kujM`-90QI3hk!qV9e_OcL*Tf0Dc~5&zVJSvOqOP%+Aa+V&JX45>U{Qj zjzgTYkmf6cHGn+g+=b;j6+;4E+? z*b8g}ehGd6z5+f4z7~ zoc-{6@HqGvXaQZI8}t*42AN9)`M-UPPGKY%jJHdqlX1C&X1+h7>{ zZ{JxEEDcryn}S2ZwLl(k1p}b+F2`i*Z(G<`{tna^+kzj108R(?w`V{zke}b}v`_Vy58J^@Kv{et*aO%G%YY<{hC_d8zW~s#(yrVX zoCY2MZ-5RU?QQq;{&)LPTJ!^Du)O&sunp`7%AzHKI(c3&i2v(+SLQDUw5xsrv?p%{ zuLIxlZm0FM>Tg@v26qExQPRnu;&WYH!1;2UXx}df)&&Ov^}Fq9|C-jjM}N<0WIs?A z{T(Eo{1rYg0Lrwk_gQ=ATi_2s+CK)~0;BSN`244wkYClw+C|!?jt|tu^=Mw!3(EbU z0LOgF{0X23jLQ4r(_dPtleLSU180L@f+d0SMIBqFxt~2ZKUf;92hImC0d3w<+7F-h zWf?5p-T=yxZGdAa`CB<8y;EQCv+eQ`@FnnTa1Cez<>!rlo_>0?Lc?3Yoc9?;WN8 z%+WyI`3N`@Y!ChyED0RnCjR%c_UTGsE1=EvAQ+|p%+X%nmHtnGKZCu&>fp0LU7P5y z>{s@z0(JuDfJcFL>@fMi*k==aYWO_t`-c1cS#e#d%u_A5^_fPUYI8_TslWD%Hqc*y zcBppHa-f#}pXS_8!S3Kf@C2~!2Gi0#gjJM(E9#Q2-<;p7*Ol*?-p@1e9Ag)za>TKC zXYKjw-l>ANVJ$d>!fk61Wi@12zWBgIfB3 zj&o~*eZl46X;7uVu^!w58hd4lcM`E;jc01iFv=?YY<$#+fyzEvuQgtL6X)FnYQBhw zk4C(AV=x-SI`+vDPq;O3K*W`GFRuG+joW0LaAO!4qsTb2tw*p=SH!)3PWN*3Gy8vy z&E>rj`<1vPd91EH#=P-2^0tvrh_OnYyv{PaUpLCd-e33Kx00vC*!U4M)_9S|nV`=Y z!yu1iVBQeo%<@e43LC>K>Q23-gYC}V;a=`}8QcOrj|ZEAFM?Y7FUz^L!2aM$@C@il zdn+w-#K>olyzxYg$76k4h)WaoBo4ao_nh%q+~4g!{uXE*^rL?6O?JO{#9h7O!aUc5 zd%27K`{kuaitpNa6}dvZKK7CSIY0V6J;Nih+#*i|v1M#W_l8Hz zVPn8s9?B7Wkm)ZG1CIUs#y2yzL&PyQ#vn0aEMvriW$(Xn;B61%ra%+ojjk3kNBu0% zxo_P)*goGls2)?yVPbOhv0wESa4XlJ2sQ(bvFg$P7o0y3I9_`e6!c#^`l9>grA_3# zARd0yQ=TIZTh@4p zW5`?fwxbUw7BajFzt}I#2_l_+pK(}>Cu_V><1TdHOzs)p+jR}`)QJmhoVAF1fGh~P zWg8m9<|JbJ62sT$8(+YfLY|A*BU`QCNBjclzvkbe=Sg53m=^u7=90W;0d?+*ItDd_{xdDjd8MK6MQE%%`tV82~ z8GA(f86&CV!aS#dF(J&CGVt2Vd3*}vOhEt055sefG225Pm2P7*7|U2*AcjpIhw4e< zz}ylsI$Fq$VcZb+si7y&) zEsVo}43Um`4g~TQ6tVn`?;i0%io7-EFESQl4$43oCT28$dY<_0M8;27sx zd1qgXK4dN%+F$y~H|9L?USkRdztQjH3){9!ISBkL-7SZ4W$eq|AF(xvpKELu`icAx z{nxr3x}E~I0FCIs4!_l>|4y4n{wMpoajT4XV+Vzy@+0wjhcUm2mm;K1$Sva4tN)azk-vi2D&~tYzH78U^$j`2z4Eeh z+L-hKa)Q`y#(*@&zVUs0Z}*MF%cgHAE94c=_0c{($V2IE`xp2M+6UA z9%)MK8FL31JGlP^V%I!O{vqWLe6OsvugY)cYKZv4#+^}q7&j9+8+>mZbo6%QDL_se zAGLW8?#0%zFWCo-iyb);%u7_{aflc!$VOw9n0LoGF}9!Q^ZZROMjT`FKu9y&JkON? zzu1o`f8-;%@Qlzmq4Vi?#;=vPjEx*^Ze9v_&RDHcXWnmJBK8vTbL|KAUHhyyNn!u= z5ex2B=r|+%KZO43$DqG4G9zyZGMw^QE_oqnOYErr=bnMC*G23bZBF%^y1{sF#<>nT zZmt^WsZ2_;)7aPYpgA6ln;G_@?MHu>Z>62FiHtR6ehKqtsXtqfM$c%A6>EYVo;HjCiExeuq^h~=m+#y<9DSP_ws{% zM;#2%C*qj*d5xC%8<}s#h6BZvJc5$(!ks!@~(WWUD|dc?FG$@ zDP!!JmIL;P7+=2Acv8l?ia+CFQGR1H8Y^19QSL;3BI$Ah%_|6le`}>zOgsWd1c%p$Ci#GrHk}62Vu0MGLODv z-X_anK9R`xVEzpCJ@!fD^`UIa_-brJV~-J=&3N0BD5JXB@|))-kM$4FGM5wM9r~?$ zNqZ=4-$%*g#CrqEUHC2aedV$?gkw0zWHCO=^B1{pJ2Lb?Etmi5Uu_^|qr4Y6SJYYP zJL_VdQVy@kZHPW~JfrN8{-J-1zT9)?tuc<$R?)_`&ugPAvmzgg^BcyWVlE-q^gv>NokGi|iQ}$7Ri#%+`3PjH3G18f9NjU|~ zb%SjcWrzNjJ@^YA3f-*^Lng>Sj#JF774Zg*V`u!HeBFHH=#R}3^hd@hFC5<}TeQYlUEE4^gab^4_?`Z!p4oGdFtz?WkukXBoxd&s)G2V>%A9P~M zcjmY%-ox0apSGNg9IOyO+nA5$W9dT2I~I-nU-T*4*LRs$Bw~$XLpffupXPbMkblT? z=Rnk*Nrox!)B)yuGG?whql~+$9Xc8LYk#smm7me>@InbPWBZY()dPM9`*%%EsfP1t<1Y< zI|aWprto*^K7bsEykf*Q_b+l9pp%Wy=@>Z1a)(JN1Y>|JHFD^lGZ*e@>6Kv zGe;CQgLVvkCvwWtHS%tCXAq4$}~RK9jIPPfl$ds%1S<@ndJU&McA4mjrHoue+s zO(P@!u?Lt7cU%&DsQh#c!g#}&-!Xni7h1ot%?t-hQ4u>0aZ+Sqj; zbKlA1agFzQ-uVpT(K@Eqo{A&olzz>WBXZ$UF74ciODatr!&-OS!1-pcXHBVjH}0YR z?A!K}oc49sCuh$7PxQA>73D}aq3c2FDC-pKQ;gr`Q}biSS{1ren#4Q;bdUD1Ehul? zOM9kgMco|ZVgtrAjL{FTg+1y~(D$NWNkeE6`Z3n8@-;W*N!Y>2o#=k9r1I~3x`f)fk_i7*boWxtwA35y&j=I^og%~3ki<`NX zm@8$@#qpl9B^LgMr{;2VZ0j6H70k7z&(8Zf1}WxkB6kR7bv{RX zDaI_P9v${ZGqN`NE$<3mPx>{rL$wZX6a7;^a}Aojg3fi=cjc+b2Y{WOkI&5K#~Kax ziM$-~?&Vv@hTLo01?^*;NISyM_J4UX=7_W}8RMCQFXqY^_r!P_JIJ}6&?(LlAcLK2 z(B9I944c%L^5meIOF69sQiTXU&78rj!7L}fnN5MQvjEhrFyU00U z{)}39op~S~PdSEgJQ8CN;^;F+VgK#A`V#D_qeI6>ym?4Y5x$hCcrUrG4Q*2 z8luf?55||Qnc0W!SNd3}V`6^Cwhz6lUT}SCs(oSP^l$k+W%@H-bRJV4t^O7HEgUa8 z@2st^{Wp~VZHqO-9@p-P`5NT3JRfq^)K=t`nMg${0!q=`-gO{ z{+ai~aXRG+ec+svb8cK0aPE|IvA)GM=1YnkHt7N0PdV%lvCe?*acmRg1IN1d1L;5Y zHkkGFXTI2Rud=uLM~+J82&d3r{?F+jbK~{_%U#HS$3wyY$SUV+oZp&4fB3N;{nfuy zqko#Ca-NT|vu&Gf9qk=?+Wr>fYUh+(XJnpqP#Y+pkW03kGS>CcXanS4j18vDb2jP+ zZv*|2KZ*XzSO1V3Rr))Z!+clFjiawa_DK7Z9Mzszjya#2=pXrPl^@DyX~4R2@PCc` zvEN8f?U?F17e!E(IIkpqox^uNI>rTDAND_XrgPcaJHA(2L7OOY3Mu=FzmTP_9Y0AP zWv+9qo%0g5bXk^`<-?TE?=1bXBb|?Q9wzKY_&n(DSPuIo#xuxL?Re#@Ho9}yIsX^= zzGjsE$aCe3v{n8|^Ok)X50=Kptp_kCLVMUY>JZm7T)UQcLYB!-_5tP4>#X^!3()ng z`1QrOH`ZASTW$)?%YEUUqd#k`&iQJWSLdl5+hglTP7&8?otJP7&74H6ce6$y&sOFC z%iarnaWycYD8?bJy4ze8R2W@O~o7$E> zBj^9wkp9YEWd=5N%zu!H7|Nwgz|LBv|!B{o?tHr1HP?AKC`*4E@VF5>w%4Qr{azBWW`_MS- zo{&K{8h@dGXEFVi8Ok5$^H@{UPIGMRy0(61b>+YFDe4o~lV(TxFWsE;f~Mi;hdmv> zCCstw#~h%4S3l$b;apwhh>p1j^+4W+F)ud5{QqQ(jbk4OYl~sCEAyR$6@~1du(>`4 zo9656$ad#FwVkv#D`oo!dsIJx_S488>l&H!>GJ;UV*f}p{~WKt^Wg`_ys&$E^fSnP z4Dr#2$6PCqBcC0gI=888bq=_K?GpVb_Aslo&(j8{ z&$_bxtS(DW7Ra?URy^fW`#|ir=#yvAT{?+FSdWJup`jRnL$PC9^@UH83O^(AI z1G7e|T(`WTcgd?9vWGHw)bC2ab?59{bC|8izs3Ap>@7+2Kg_kb&f@%!GP64WgWaKT zgkx0K3iOR0nfaf-n9H;8xpzPxb^X+whlsH^z5&kTNXs_nC%neB;*dM6H&pryzE6GG zxjg*r-N)uQUZ04PpL3b#%b(v~{hQ=ZLI0S4PV=A4H^iQ8Wv+d;!ThIlEF(dG<+gdV zwO3q^kG+Zdm|l2R%yl>?rJdur+%{6*#=MVyb;`fuPx~|cy`6jGT74*|IeCV*rCq<*q@62A9Km9k6*Ds2g01 z4?WI$Y4l%dKReJLn?QP3|DapwU-w2R|6~27SpTiF{vPy~|CRsj4|A>}Xzv5Hfv`!X zS@-pS8BBl2OF{q3Vy-##Wwj7|fSj(u$J_^VQ85mIu5sj<(awzT!q!S{%^1tN*jDV)&GI|`;4HQ^Qg$=n9B_RhrPr02%kXw0NtC{dBw#;{U4ljqCBy_ zUc2_5*55q}_}@0MFIW%P4Zwo3AQ{QCduzQX=&cklh|B5yG*q^Eo7IG~1`sv%Q>=^>iTVCITo$UBees@ghK4Is? z^*hnOY&zH66YV_?m;T1z7`p$xQQwkpp`$cVuIpbS?@I63$H@56@6ywKSo$pJe>g>F zalg+l|qvN%h_f?P6maeCGpX(tJO8{Nt`bdEG zuuUQ^0rD}*RX+L~c8@l%W%a$bukjRI3sukRgFVrCe&>10GH2>Ce`e@EIQ~W>`pdVr zfpg}JU9_QHLp4@I2XQ=a=x`ir{h^QvwQ|8(|a`3(2v z#u5D??UU^h{m3zd@r1a~m=4CgP)By)ClY1Ap4XPA2jy}26Vq>9bB}$wuKPOn z-@Jj(jI{JQjE^1L*beawx{HvG2&A|9ezXG-K zmyEw>{IOMmaY8QvPlBn_Kef4Z*aCiZJR*$~{9f?suxy5Sj%(sPD?K9}%g^$<^1G*Y zU%G#4$Lh25J{3Gten)!Oj2)%_i{J)uG}s7y0hHs`QULdJo*QJ6n!-H z)$%d%&$P;)t}EYL`#D`xepWhHd+qdoPkPDcm7hOzpQZl`;BVk?us*1bzbE~d0^bKa zfHQ$HL%YE+%0hYT(IA~m$KgCHU7Pf~Gz_|UEZ$S^IqA3Zebb_U?Q_#JhOS`^g9Z)h zB>kTS##A!4&pKc^Fh9r&yr1JI!T$i`V=1TZ2cz*<>$Uatol}N936$x|c4fS>UY<|% ze=naG1;$1EIk27X1f5`J+J5xjT!uUh9Zv(sK>rR{0?6};{`2yA3|Jg|3+w`J0_|Xw zhBHS4Wysy&P_Q=m68I>1A4v3nPx1YO9FB(Xby%S0{hE9 zz-z!Z7^VO4X)moD_qGD<_)~ymTWuV9Jn?&(?&u_v<;@tgZ4eSTXBK3hfS^YjzeRfWLjlH-po_4qzo9-#gc!TuHR8_JKO|ul`ot zr_Qzw><397sFRajG^f&Sq{{95jY8-s6yrNJ05gzq^Qbe;zNZ8O`>exNK$ z`aru#d8Cf<-S#{CgZiNx$PZJ4Wu6@|wKDsgb+e8_9oqzy$Ae%!68r*u z7bs_z0`j|Zem?4*}tTP87 zmDQtVUlXhjehTdK>eVj;=`IgS^FefO^t}$L>z-!~5rd(Vpf9{!be#u6kZ<%t@@CK>mIB|Bvd0#(H6Pq|NYKc6e9LU>&tzMltg=m~Q)Qc&*y_su^r=?N;qqZCUMe z*9IKNE(DzGbX>Pc0moIsG4{I|i4GnUZKTt}z_FNP&;@|wgobkv{5Dk{Y24EFf0@?v z8vJfwx9u&nb@&gk6!PTjeC0j%P^ng`;v~A4_z;?&6V@Z0Ok9)z>mQ%!B*h+!1g^F zoCr<>XM%IUdEf$YA-D)!3@&*WzwP{r7n}vo0H=WCz+u3CV!zo0C_BFk)EDYg z<-wvr8({&E<_?F&6Se%n{lnp-)c&@;_Q?`JeYG-J4al$Zt!*xE9}BG4rQjNH9k>zP z0{#we2mb(ffIGom?;==V>uvpS1Gj>k!42SAa5=DloDBX1_69qGaX>xs1F!=43{WQ6 z7v+KXfN8en477i0`}gyFdCs=~CQx5(2lfNG4LdK8axA@1J8pO z3cSei-3IF}4Wz}hK)O5yo&XPne*$^rCU7-SUML?91?tibz{=pWpv(id)l_+42HIbJ zGe1}eD0{R^)&RQ!dGs1!Ssww`=QZ#Km;jnUGiU*=1=={4(a!gG8_M-hbdg5VY9f$! zZ-RdTdBy%CPuvL31^a@Hz=}W~_!t-ilmjE#{`2xY<%>MF3|IlI3U&nQbY<3Kz&5x1 zJzx^36qw9$6w^syN2doe5_a}gB!K2`H&x#y+ED6S<-nHU|G-y(Jdoso_CRXO z+BUAL0j{b2&3n98x&J}1G?2%}fdj$0K)qz!E1#6z{b01sXDtns1zkWn@C?w7yc`@2 zwg>WnazI_MAW#k{ziZn!z9$B#^Sk%FAIL|a0AB;^fdhc=QxClWEQf6`Us^Wh{3s91 zIvPk{`4#Hb?x1#FWJ|mySA40wLDbKYP$X zIot`f#hwLs0PXW#!4JUV;Ju)>og01EW?TaN80-ly1=@SIy?my;8EyO7iw4?+jteG& z=fI8NP_Q=84)_2_?Ojh6l+UUAKL=c={S&wuyZ~B&Z9m%gXRo%mFFGzz4yc!v1NPTb zz-B-j&auFJz;T`9`os(A=s98EUj#Uhuqikh_^b(Fbc{FqwR=4|+(BDC2`&WMZr=sV zfDeQDK|Nhi9`CC!z6G`g=L4UmeyR7a(Q~sOUF@eX0PXehV0B=B{v=okC~&0PBDQ zfb&YP0rksh`_DNvaNY19;3Tj;_!;;rP`2C8%l4i;pndpp@Oj{vVGD3HxD~t(M%#YQ zqJj3>ec(K>7uXQ22($w}1j_C2=P_UjVBcR8>bOUZd;l zo#z>w6{uU5Y5ZQUXZdp@`glHF*YKKBy`pTzJ&nqjx0Q1>Pk|f2DL`9(4e%x4_`bIN zl?loQWyIFt5O5iI2q;UY(*BgM5l^SOd91CU_ZW}9jB&=mFU7&Pj&a>Ej*aLsv-dZ8 zZoTv6`qtKYNPVeOy=P48oIFszW)S`2H`}TeJOge9XMjDy+TbgoUi)kNF9#g={RSKk zt^|*Oq3!QG%@INVfyfhKt_X8$n2#XkMktrdJSXXTuJhVK*Lx573gUV38_)BZ0dj$m zM`x<2eZSAMY(C51rggu+n{yebbH*VeaOm+I&I9Z_d#<2{LH z<@SxwJhSxNJSW8zIz~OEeg2Hp{?F2Ow}P|4-oP=PV}M0LZU49Zwf%nrb^u3#tHEQS z8BFQ_mP1->yK&@djhrIp{4fWpxjr}_bWC)Trsn@3|4QTo`5pO7ggH#iKjd%bDfc}IndBTY?@+V# zF<%OKn9}piOB>Hi`Azt4navdy?GZdDzZLZ*_hQtSd@YtQ>JmqDq>y*TJT56m%5SBc z&w{6HL)$#b5c z=kg(ckok~W_S-FTuLYfp95dz=ihMr@k1ulmkVBO`d~M`nG>=l?IF978YCB#W#%J;? z9YtOspGhuEbBYDXpJka^kJyjzKiJe%ivJeu?77b0((x#%r-?^E|I-(477TPv&*o1^RIxIh9i0+2%iN7de~Yp`!iQdY<-o4&Z#S zA6OrJ9n@=oZNlZjs=%?IHlw!V;P!_H%&}{3DBIrr!yV`4IknnPKQ8hznK!L@_wDms zLH4CR$o;hMZc%UZVVSehylUopHaD?!vQE`&$hXyQ&M$H!c9L_;yttiLUR3G4>SAz7 zpzG>O$ZK|Kp4-fGm!3<0vlFBJTFEJ8&MMp39BmyJlNa{#3wZ|j`< zH*MT+elYS6`n>j2j)Lb7ES|Mh$kw-hwMONw4OgqYwGl9{AM)1z-n{qkf}es6>}`Z@ShC!^ndJ2QYvk87&s+y>(0cg(^kH)$?-q43k6`Oj2Sxt5JTLE6l`irDpIO!XFOL@&TY%bSs^0ju7 z>#gl5@}DCg)P5yMPnG-@wrJM@Ok6<$ufHOJ2#|NA8atiJezm6m1yt724Ro=Fc;~uVppYuelV> zhaI`ol>z3>h6h^d10D2>uIsMinp^Vck~gyNv4iy{wE-> z~C}t9kBI^1${z`DpM` zwOxEB&x*X9v|FAx6M0SB2QS@lP4I~MnENSHHFq+$LT+d5Ur`5k{`tJfCmwQ#oSnV@ zysId;a*DPm2Ws>KbCV;}`s6utqZTryo!pjTE0`-0nb?MH<2n1hG9z+(nhTV=%SXy2 z>1>{R^EHx$V2O_tw ze5qWctf`*LRey_I;T-M%=Jb@O!=B-Jt;h>$XT9w6=B5?qyN&#@&?@Sy>_pcj{cpdF zoU+&q(!gh`57o8ySNpuVe?89B=P9?S2sUn=9JOXOqK?$nM_NB@8Jz5_1D_5c5AsT5^qXYa^KiclhChO9_g ziO4RbWs9;`R!*D+WYo_*i8@3j< zi|7E_;GXFvNuR_e7%PnhGRxOMHiGRNWE%Dg*A4wbc7^R7c#P8!Yr zuAvz6LwbqtmkeD8eE@$2^9Rs#<`epi@AIBO_h807#EF05Pk_%e$>tyyK&)Hl|78*F ziT*kW2~g_ z!0Rlpq&Gkd_#}8A_t<7xfX=!?_lqXK2y}<8$bxT5yal}lod{ZjFTqoIjyWoV&Le+^ z^&mYjBLAiM-D}oiIDawm0Mj4*M}98Gj&UP*Lb0es{-=(vOn*z_g>TXSOXz#B|6kVs zkblsh<{!QiuD!H??#E8|S%+?AIVawPt`z9VeEaq_^LqI`$4S-^+rwwZwPWsiPDmy| z_hNjX^emniJ||fszJLzQrF*wyKH2|;e?~Hub&%*sz7zWr$O(~tLfjA8g#Qg2jCtjI zmBR+Sr|X3Ll74`Xhx>EmS~!Qm{wUpZ7=AorxP6F8Nd93M345Pje30fG-1o9djbN$2{pp`W^e1r2kl-miaw=Z*#;@ zkS(IK#Fw<^Sd8OvilvYj%09A>WfZ*1#|8bNzh6bMZifEP@+!++Am0Q2A)S;CpPOP= z`181bI{P{_7SLZ@SSaBE*c0$5T`&7VxK`+9*g^6oVb3rws65yNihr_@kD>U7bD=aBoG(EbfBzw>S`FC!xTw#7;b79NjPr=t`IVGAit!TW(@89ryf=`9xLLL!cU=HC|A=kij zf&2;TK4hmPIWy7&q}y4ClgzMf!SUirN0Yr~8$kYc=H4yk`8?z|k;8>Q!LbD8dh&^1 zq2EhL|AO}XS5ho4rLmW0WwB2HUkGD^4uh`(zl8I|sCA$of?N(grcpi|d@0c@!F(O% z`X2NbWFIjT_<;BUHjwoU$wndNTi|!#+Tin{4#jywwwbyGWky<`6ssa{Bz__;6FouLWi+Ff5&nT8G+m* zeuI1>FTl1AITn&n>MA8*GRW!lm3H!M!kl8Afk23Yzqnf%VZ6* zjC=*YgKI%vk8=!9h|h>$IVVWZp-b2vp_WB*55R7tPJ#SN9^!TKXG+piN#=>}@BvBh zbLAy@yzjc_02i$qC1U z;C=WO;D5{mVkgplm7YTatg&QK4_?IphQM2Q4`-Nd7)zGD++Wee_Xs?a&e$CA(`hm9I{IC$-XY=h1ic|7y1JHR<4(*PKX+=q;@`;brnA2Sdi=waux9T*!B@0 z@x0R9vb>bVlduKgQ^-E%wk+Q(=?#GF|D*b!=uiF=$N!Ljx@OoZ#AnDy!{>rt#(c8; zP^=Bw7L)F08A1GlIuPRcLwh7Tg7Twd73x6R*HWKu#C20^|(W4SFM& zA}%VVc&>nRD}`jA5Lci+hg`IfUu64*TsQF~#)*6<`+4M_!-gRa=R54oea4F(71`Vr9h3tRJaXlMldL8iuY)(G;4WJQx0mST_V_6b9f8>T!H9RrWx3-({h{|Dbd7jXU% zd1&MaDMn;F4jzF24nSWcr%!SKeaNS_&DWm{^DdkY6c=T?J@P zIgTTnUqrqUd>PCOWF~7D$t?R?4wP%%EQyE9;spE-{3OY@QqC265XVC$SU%4(&##_)| z^c&`3%rQ@M}SHj@`*Gz_H-pqBhO+ zM?64rDtrNsPn;`xW=OE9IIEQ*>%kw@G*#|HD zee|auZs;5I^C9+RomFN}S?56?(|Dni8KeujuZHG=eFDf6%@6kpp=N>J8T8B1c+yuc zmBJ>wV<=1lm*V z&+-o)Ai>{Ae>w;H|HyW6{JM>Lb}&|&d&DFdGe0MJ;aaB;>U321qIrZr&Gex;{xI@wWY>_#L)?Hk555kL1K%)*dd>Lp7}Zem9s!S#bFSY|tS0o7f)<>+g>Q}A z0_6+JuZw;!IgW6=vPT>Xc?FthJ|21rkhh0@qCBvm<54T*d=qjG$Q4oi&2c8p3Hp4I z=Li3xCI@-XL_Y^TGVSRzj!{vkDeD`CJaK;)@e%Va@i32{_=V?yuAluH_>ZI~SnuPv zlt0b4o?9hPwq8;^Z6Y!jSvOo*I zHuQy7xIW<+c#rx;8Tg)XJnC;vr}@Tln4eHr1|Q&e!uimv ziO&Cx-2c7uFVG+Q2G9-sYL547Q z46+AgA7K-?-x;*5cx*h!ngA!7UmSOhL_Q(=%mXBor~~k4c#mktG7SD8nlNp!wg5n$ z7kmOf#&r^(g0^f!NEb=wpL(r{e*77|$NWe(ru>-nTkyxPYYZg(!ehmlao)1ALw93L zEW@z>$WuX%AyZgWftm&J26zEBLNXupIIm1rgzpQq`10f5qyH{SC+}fEXNh2fekFkLP>={hsqy$T1;*g*+30 zd=Op>@8dPa?R+ly2pAj10_FW97$@?Gbbas>(lJ)5({m00wR-43$TH>vdwnpcb!a|64}eh~SusENRr$qk@h zDDoHBcGEm!j=%@JoNH%!XBPT3Fn6FQ=Wpl{bOcY7jbG3YzhmnKonP_s@27wH zHPUsK@j>|*Xgttykne1weIEI-h=IAbjrtXGrWCJnosi}ju{Hc0=n3|3NcZtEF(){W zaC|Fzj@P7f*k4BOoN_PlmD!(%+T?%;2rk8Q5z)t z1HF&@3&)E@W3I>JIw}6-K0Z80?S&udIdWTo@O~71h8h6sbvQTjf2dg?7NVE}aUjPN z#1Gu3LV5|lBy0+=17ly1|AOx0 zelDUta(Bq%aStwXLllRX=h?smsArH4g?z#n=5ha8&ybu4@&SOq5Pu?P=1;kN#LJYg z;ob<;7LjiPkcXgL0q5c=cZVE4@(u7SxE2pvOMJ?DgmgFOc&P@594}uh@)^iEaSjrB zNCKY!9`HHmDrtN;H*#IbO%QLOF2enbr2n7~5D#HJ8tfN%9{vsc!|;Ql>%a@&M(fXM zAfd-UOaC%k1llKAj^OKoe-C?zwH%O>lH?@r4=T;0UJ2CBP&cJq4%f2L*GaMg8w+2V z>5p;zTF;i~NALpx`jhTt{-XR0_m)sj8N7wOd`VU&*Jn6SPxL5?qdp&s^AXQ;{7f>> zF&Eih@G1O5_zB4MfKHqjqIwqh_Mo=|Irwr=K9+LEJPv$@I`C(}_vv%`J^Dm2ZXAzu z;>-us503HDynuH()}%Tf){Q_9L9cQB5;mctY<=JJf0q8ZHsXQL=uh$qd4}FY-Vbw8 zN5uvr(I37Be0ca;u(e!ML@p2Kz}$l_ z0-qtDOMC_%L0$zhIs4ybek;u-X_q9(v~4ayJW+R^h-S}f`N;Qk-< z0O328f%oxU^u*HjFh7Fdq4&7fV_bJSwE4F!#eOYx|i9* z&)%z~gC(E+pU@xj%JL8WPd+t#Kh6(RKDCtSUEVWAbI84dG#{u37Em4!a}U27u^jix zU>vjtlI304H=<1cLq8(^Lp*`n8*~WQ3Iv%2t*90S9so~pKA-#z$T$3ZUawh}bATP; zUUBk4xmTQg2Ize5?~`=3Qym6=J^DGy=@0*p z>_|Gr^3XkeEb`xAH&~|2FPNSPG7UPSE-Tm=s?oEZ;WYu0bpfo0h{iZK+Y0oELibhF z7vK%LUiL50FHHQ27^A#j6nQMxADNgLjKX4fu0%EdnI+&Undmu02x3n z1$vNsCDAKYf&P+yCei_A{srp-=>Ky0C;G#`ApaXa8P9cDUoOuz^guTCq?0d*nlfz6 zZ|P65KlxzjL6p${3F!=?f8{^aHX*y{y+$1q^(T^DtS$Q0_b30K;soe4?%^RHmupL~ zOQ0mj8`ON;4{wKd#BL7q` zhy26$gZ?kG)$9X&RsRe0ucZGg)1PPrd(C`aBWl2bu-8ZLOfKK3xQ2cbDYO98+yT@bN@X3$^Ntc{|f!HGnt0m6N3I$ z)HIP}rg(zuMyNRh*mneL#)$WkPlC^ho@V5f(9Zy01ik}!v)soJ>;T0Gymlm<)+A8e zgq~RB2auyImj}c^e@uIP{vSmDmsEeJ{(I7)ypECV9>>63bk6 zUdS;Ua^7*`H6zOWNc~GqfH6-Q(vgN2z zBj?S!fN}uH2cV}9Hl^GrgbsimpnL)MMp9oP@=>T8AYLt}KXkx<3;ik1;@k}7T(}nMo=F^Er{}g3_K?YxqtLcqqhV87HqS`$NFCV|Bdt~ACCL|=zN^RrQ9Zb zRjwydK8bU8T(hG+fao>X7*SKC8VL6d5Fc=VJLQ6T4MasADDzo4zd$|$uT7*iAc#kK zPX~&nIX7G$5C1plfB3zWn?Zh-axQH1%6i(%=M}Z`vidC7;8F9X*N}b49_RpniF`~P1e|HuIfxf#j< za_mF?68dk@YlXGjyssS58GUBZ3tTVe{ZOdqhAE|S$QuGbn>tLw-S9_mbc=5N#X%qKYEsU-;YRI2SN1#^mwuz zkWiohN3Njw!+VY)&}#&K=RANA2mQzD|1us2ufyI6@igT`VZ*ssns}bqbCT`DK0@46 zMt%6Oh1`cry@A}vPrQO&J*Y8BbMNtFl=B2ANVUi zz`xV~6LcINv2GUn89V?xkVx?_`g$o|=ALQF*P|B0z;lM=HTq0ZXN8Vr9SVP%Xw7n8 z*2~ZOpXpy#XZWN1-?z&DZ|E=aQ+Q36K!0Hk4(Jbi4IUu+!$zRCiI|n^j9BM{yfxwh z^7}sfqxnH>jJ{Ov_eKnWniYIv@Br5ap>KY-9`Ns{Kl1>|Df9s7gqj+~#?a%umY)1M z_`(c4{|vMyfOv-EDCE^3_t5zj|6u?B7W!Av|L{|hqy1ujj%dR?KstfqR?r{&oM4YW z!~^hm(VKwW5M9-cG(Deq3Y;V-lQEdLehU$zG0i}WY?6zC86C)%N|lR;~pI4?l? z4&(&j10Y9T`44pg=sc`Jga3oxLXLrOF6e;&Ci+(%{9p0<|APJ%{Xfv>Gx}R{J|BK8 za!1H_VvQMmSLnUUf6#&0L!zAi$OFR%_(A{5Q}yN7|L63F{)azE_Mdb#dOA?g!Jfd} zXGVS`_nJ^|!f*6Hjfm+F`KOqe*9}nIiyrg;8vQTmZRm02><|N^j|P4K*+b|=j*XEo z{|(C4#UkFv?_eKryo!HJf5dYbc~rzt z;30tr@c4JqpJF)dX)Vc9!v8DV*8}<<5NLu&fb2DL_~>oo91!&(p$Cln7N|D;d2JNJ zU(91eT^#uW40DW=j5B#r*|Aj#keYl^F^g8k!h~v5LNpwXY z7}r&)ADnBcUbNpntuJIyeGoN5_)mzTc|R7c?L{t~^gQ-(;Mk!oevrg}e_{TQat^$w z6V>LqPFZG?Ss#;~PqG*x0b+jW0mvokYvhQqzJ>dhu*ZXt`}tD-m*xoh0LTM)9l1vC ziKo8ca-aXV@?Kd7{5$2pBK^@%L2`?A{M-XfYk0W_m~<=m#$(-Hk^&*R`xahxVEgdNo=16Wvj#MlAqqOo;Z_+c=%- z!jNU&?-6co;ch>0d-{57CFbrdgZ?)|4+1n?t|>3PloH= zl>6s>Y=yojVNE6G5P6oeIw1G#!n*5 z%OPLN^|-9~AC)L5w5#(q()gjG60cq*JjsH~L1<|H<@6k0Iy}nIim^^?~wtvw8omp{@=;KAN7{{il?_wgfo_qr21KAFe9^rjxu|5>G5NiNHb3q^e{q+Cx{{Me;UdSfJJ>~0v zXnhv!Gx~bC#zFM1_y-wa|Bv?IgZ)SUC-*x1rvIP(T_KOc{4ezX+mig#`ZDhSr1gd9 zuZBNW!KShe!2FWV#hP5$?aZwbe+o8)_Xei8Jbk@0+iCQ6uq`2a{pJsHifbkw;C(-l zvp}wj@=%O(&O-LnC_gLf`4CD)S9tU+Qs@tb3?L|Fyra|0(x(Fm8#o3mh+kL?~souCLa%%1b{c8lhE^kbtDwyBZtL%+tRt=?;$^oSQq&s zj&~4Se!bo&nV(yNd-uYD!E$+Q<_{9zAzKrNAoO?eIs)o%PC=|E z)RQXr6MQ=_{PXk|=!JSW=ubX8@?*%?qmP|qBJ8<{IiMU0=#ITkaSy+2+K(@b?j^}} zPV`h#en(>OCGuXb`vm_-sHc(Kq85WV9Q4K9BFBOlih=lya_I08z=yC$?nmfLS8}UFs<>>i-h2)z`?mJ8SSkm?Lz5Ga*{Q5|rS9lFu#^bw9*Fn0S z@9jywUg-Jc{Upi1Lrx#LA@DEneT94{_Hl-<$Ln6O_XqL2Fy3#cyX1GjAOBgLSRqA#T7vL%i1#_FM{}wRr&X1?bLlMtL~y zqd?CdY%BCDcz|>b=W408z{jHdh;iRBu9f^nu1C?j(HvZJWsu#@0m?q-@d@Xp@#5Yt zlKWJ6^7=sNH{=Fc)@i?6-V2cO#<&Kq6~NC&j`RENy+C*2v9kPs>-`@=|KGp=^VjGP zeFd6<{^VQnS`Dm&BA*trg?oJPKA=P|$SwAV;QK7NV~lY|5jCvMoImmA@4+_3LuH|cU`+c8Rq(9yNdF;2| z|FNNj~v&1D$dQ9#z^!RWS8r!WHXQ};We0iY#hG~ zkT=p3lDRM2ZxQ^3V+hBAA3*x#*JIH-GvQjl^-(w<9x+yojbcmqsmxnEKI-2SWFF@R zFAF>__=`=jJQAru_IMzc>bt#pl3z%E0HK z=Quz46r4vBXfIqVj)QZeUJqS>?|pWy!Zm;G@psN!aeU-&ux|U-F$&lC{f`3uV~B3o z2!{zP31$Q>!k6f;O7FKN3?$eP+zF=$j|tyT|L?!%zk=_7978hipnnG86(N*xh~PpP zOXx!Q68%-^{ni8{!VJPX!bw6nA%*aL@{j9a-B#ukvW=tIpe%>`navaYd_fm}EAI&3 zuV_EZk1w37!uf^oS3bV*J|4@DCH(%+JXScTaJ-889p|Zh4S(%xf&S5So?yZOf+Jxx zL6cC6P+9+j{w)axgvkWxi=%{xgk-{>q(5xj7v|%yn3pfo?RU;q@w;D|>x!QX*Y;OD zR;K&kPkZndXq8TgBH$k0o&?l%MiM#^Y7#2bzZ$*QjG#w=op2!hOt?o#B78snzckN3 z-ut^{U!XsHcKGh_;kOas(+?%U$A_<1nf}W3UL(R!gyDpF1n|vGLL%V@{r_`#7qo)S zjv$;QtS49#VB6aeR0$R7k2pY)P=|oeVFRWRHW5My9|=F`|DQvD=m6O4`vmB4=<@M| z9)zX@==#d^m#6ot6B-iWBa9%dARq_yj!;7QCv?}3bNn^)44r+QfIQwTf-wQMzdk{U zP?`R+^qv9%x}h1tkg%8l{SiwjB>bSwf5sd@R^JmY5fI0j5xNsVSNMLQGjx7MNYiVX zvd`+$V>be92J{DVK$!%=1_+No_~GBl5BWqZvx z7DT)N9{@Js8X=kh9>^sK{Pu$n{vCW!Ks3oBBoLkw0tu@LCIraxmu!Azx(lztBXtNm z1WUp?!coEv!Ye{5;fFu?@1Q&64>}*ThmD4>7DU)fm`gAqz~}#(%nP&^9#!Z!Z3z7d zGYD%5;DNh@cZ3|m4?p1F!2^)}Bm!uEfv|_Llwe8_biY8?Z+%2Qs2%}+V?V+a!g|6P z0(^lK0?zw`2mWt)0P_#ok0S&Vb`us7MiHRDn-G);-%5Akd+-(TJJ^BN1Ve%i0lWoY zAcg=QfF6J?_~8%yvwQ%Z5BU@Hei%JJLV(;4Cm@dx+9RJMPY~$(*`uiJ?+c&9ULYTU z-y&zwo&aBBIRWPZ4?qvV7Qi2XPbkEOKX~Eq;RVbq=#Kb4gOEswB|IRUBEV0ZNYExU zA|Q?j{Xoah=q|ke1Nsa306Z!X8W5mQ%n0BC=mFRQ_yey9KVrkbhvpUIE9iRAK8^5( z5J3nc945d&n@;FMXik9tR)qjL2ELd66~8Y_zsK>K5x@h`1F!|~2ZXpFnx2CPU=M!C z|KGz4(D$JIYXbB=Kxj*V&4$c^?vP)gB0bBW|AG9Mf2Zs?I39QadH}Y- zkT8V+z5@?jBfuUY2FWB862PzEg&+8Ha{$@L+zEM|Bzhi8fW8kPY$ePg3?XO{AfL4f z@Y^7>ze{)ejOqK0^v8F>OE@O@pe6x6VL!qQ!aBmwgmZ-31jHe@&Ub{51lTEDJN!ie z{sQ<|Ksr7DUxYAzJYr4&%ug}_x-^0Co)AxnB7_k_2qy^J2nz_q2%QO#%W4F9!tdI9 z`s_2he+T{fcl3Mk6wU!1(}B>RU`bd^SVP!B056;*oG0LVZxZek9ui=)A_?FT=nLR^ z88F8G1qkECBgX%ffH}e3JR(58AxBpUmk6f`J_O`++zE~ZYXWEwxo=2NCVZ33)At0j zmp|gY?*RA4MB%sL>NIZC*az^4=V_p2%ZFQ!ZCs$0pmGKfWA0SxInmA28{Q= z8NxU*W{e$kfVntB@FyH693ku{K)*w#mJw_TQwU=Sg9tqd9SMyHDugNoX~H+rv7GQ_ zPrmhc^gYNw&Lc-qB;ee22)K?G1YA=$f+1lf0oOdAu$-`p0H4u=u!XRlu#>Qhu$zFG z;(q}cE5?kmLtlc>)%d)=p|ey?14N%kpSMUMu4vXy#Qcb0Cd{_GK6^$ z<^^*E8;Ust-7$xtJ!A^=`dxaTzW=B6e`S48`L%G|Z+yfx|G@Xp!8gl#W%~TxufLJ* z-+cW)j`!#Ex-f5lmfqsfiocW*SAJbw@nexl|9fA5c6gCU=Ku4xsM7Dh`ug+B|MBX_ z4E&gZA2aY{27b)Ix6MFkrLX;ezW#3e_r3PE^7qA`y`fM0(N-LgzIeUKumRPoHmFMP zRx=*hZ=^^hMNg$f3RUP~;)0`Acr|yyFjJ{VKihkXL~|XD`}Hwh5}k5o>9Tjj{2DJa z_~7OHDcCmTU9YUYJNFeQIhUSSxiTs5g-%dJ|AvlD=15z5yO&xtg7flY>{o+M&}`G zL*^>FMt8JUbPdxu$63j$3OxqTt0E|2dAaIm1uo*h#0a7-!RWS>wbVj&dqS z>KdYFcH^vW?cBDBzEBV{xt;7pQSzxyvSuGd^A3vQ#Y?TV({z4uIC!;}wAb{k%Oc%o z_2T4QL+n#5z0#f-x`b^E%y7QrY1T2@-Yv`jW=fLz#W8s{AMB;lO&iCVc*-O<4Kk8h za#A%a!6sb8Bg8Ca?lJMhC_kwn)3r)2W(vw}8?PPpwui>#Ck@1%N4VF@A6U&R_s#Rm zdRog$^t8mDg=zB6;xV->r`A^!&I%s!-m)%Qd$fFBX6TEG-96M5T;o^7D;`m`zFF%3 zqIgBooKp7;=gyamYQ^W-IJq`ZxMA1(c&WxMXV)$z!$sot>0^x-_o^#x^VYdmp@Ni& zcV4dMFQwI|7K*oeILoBl?^ezCczpd)gFa!|8oKEX5qr zN<-^C@{Kffo7okHh>DfY9cX-f|MOH!H-P4;$dmWkdTu-c1&s*I1R1?!bKHGSfw zU+Nkz8YgXjy;y}gt-lDwhfS8bo{+s%DlFg-Q)$>_hx~qQN z(DyP!M(Kv0t#Z45dS0w@%j_ntU0xPF4D!2o*+-m4gHl;lC|0?V`Y6|Va88_Ex_gry zvPYJht^L`?KUlADminH#%N%;hJKvTY>NrPyaBpI-A)<46`(N)*6uZX;D4GlqeKNLu zI@8;|$^MD%A@9YnhFGb;(76$9|2kqp-O@9i<4?+p9ExIM#nq>NayA{Hp*&IR=zgc< z4EuJMBKljbUefoKMgGg`uJ-erSUO9o>h;!>jk{5MiM#0NX!kLvJ#cOa^v3IJV+v01U47L?+oi{oTRLy6 z>)Yp+$Pfo;Tq$ih=!tq-evaRxSEW)4E;qJqG+QiJ zZ`VAvm<}SdJD0RKt0=jMt4?)N6WJzN+>f{EKCD}_QxV>^Y;GGgYF37ULC^Py)5i4>l^ku{xKZmDPfFc`djy96;VPSw*Ia?77gO03`1WXkt=o+#qTR_5PSc$()3RG>yuq7(@fO!;%$59PSGz`^tU}5ad1%J_>?VOhgX^M z^q`}h*3R_<>?3TnMe?0bi7Y3EsQZ-`rN-TR_tM&1e}9xt=&;2q1y9E{%&W7pZ9uiO z{`X7WM7m8iOBV~vemBM*XELWryJ0E)B`F_z-j|LMDJIESTE1ewGS;pnr?t@Ro?%krT zjXTPky-#V>B7UPq-^A{hKD4@(l%;ksriEx+$qcD@v(UUx@k>H{v~7Lq0#4Sto|H7w zKB!15>->V5`w9khoP1X3|g3MXy2)8;;YG%I_tk zYPNFRHp7$4tmw=UB~LzWHTS8RHUHL`c>}d}lx|fFH*6E=x%gaRR)M9>nWQ4kBW8HhQ6~6?Wq7uUkxC2ecOfup)vYQMS1x$=X=mf`>b*|nd?H40 zk3C@4>ZWeZ^Hr41ZpPC|W`#aF-sueaJ699~KUF=KpS9{}tM~z0wc}1sJltw}qudGJ zn?7a6>=i{>d*^vyiZiHo%jWgGS8eQ{${y_;zE$(2((HD@4d-OffAUkrgyN;zGUwmR zsGcYic~~D8YtNpKYjVicjP=-=<-Ktbt6ybAX_u_KC?<5 z_X>J@CFt&j*bRr56pUIImffIPRP?^FB@3T>g~r@7$`2T>Bu-pybTPNh_<|Yc1t0T* z+Fe{HDyyGl>%rtHs~rxf6PxZ{N$c2|10E+{$N_oQOByLalDoc7f$hbo-iE$-`c z(dxj2Ju`FS%r^KbdHc7$&ZfTiaIg-0JtM8u-h7!+RDokj>lI!PAHVmu zD!sJn;|jkcGUta)8ocMY+S0kReu{JtxMT4+d+ny+_1dj3FV4_Od#|l0-Z4M%Nay9@ zhhq+xoKRe`so{qKL;9vD9aV|FF?MdzRz;UvMuj_+96trQZ8wY`y|SR6zDsDmb5_1% zH+`&=cV{7iH+Y6zA+nn80Ef){Vaes1IrMC3V ze5pGP=MMMZv#C%ot&5+%kNo@ur&lqZWL-}*GMGBcPG?_s-9G6V_MP54%#4k7Kdkm- zj-z_53-z1}GY03)n;dk$aKNXekVKkf+j-J{VfWR3(JnpVpfE9J_uL4PZG?31*-Lfb zYDR9jW2kVV+Q8#F#g~5>y>;+W)AzMfGos^koD6FEyq`Z-Cp4tn+7X*3)JZ&Il9uFf zRBmSQ&h&amYFAMoxa|G)%z~SH1B>Q_Jy&ZnvpDul!SmvUH}mFZNIltliat3Ox_g#g79LotyQs`YW(Sf{49qi&Nr=3I?OcclRwF- zPJ;4-#NNdVL)IFOdv&&J?@dns<6l?$n4@)#9xt z1r3nd{Cr~k*rW53j~IPY3P_SQm(O+#N*kz}Z=ZQFQ{~*{JofW8&zO=N>nl zDe76Oo1FK+I#F?=XZ(WO_P5Sw4ENpL#=y$*fLuV@rX3-Nr=^bcsylV?!6K~-T@RdJ zn(uC5TyNKk%gfeiJu+IFR%{kxai#ceL7iD`N;HC9TASM_pRqe+uOik~->79bWoJzF z1c$4B=bs1rcXeH6dTCnegLuz+)BE?R9U$86T3?#H?E4OOM)Ru-zIOk1OrAlU@v*S< zUc1hpcGB0<40E%sIYfHMD6`^)6H4;Dw~cI?v)?PpHMr)P)h@H#6Nfe_eeW>+mc5nz z>&A~vhUQDTRQ>R&;OV1zr(^S*s7Ka_eiNo0wtNRE$IwgLFMgW5eAne+dPlV$IjJPu zuZXE0m2-NX+NV!d10MJ;jToY(Ioxe#m0yg1%33lpW@?hgt3F8|#_vC|=VY2|%)?dB zJGqC1TlwwQ3ffyoPkdr`>#MrbeHXmm+n}RKGYywpw;rUeI2w2L*0YyI!D`uE&zG8; zUrs!(a;Dehp*;;3`{(q^(pvQ4pw-o`dqmq`bke;ZH}=7%9j7;|E(sVI`SNkACMU)I z-3uqo7v&has7%S9eSSr~b}1%Bjps!vR+q0Od)YjCXn?5gF6#~BKa8*W_T`lN4t;c_ zM`~_*@uYe5vmv%yM5Q}Tlgw3;^Ny${In)%Xnc7;py;%K1c}OkI@cb>eRo2za8f(|f zre&w?RbOA){qp^|*mp~_g0xcur!7~F3=pYptQEfAu%+xpgQf~v!&`N&>fHbMlC8I` zN(0A^FBtZVjiZ#w{^Y)PVzaPZqx*KV4yqlCpC|H=cL+(E+NRFqLr<@~IXmx{8=AqR zHg4-8Zu?qeRGkM6^lo3tGZ`}F>g;m?sd=HVo9edgbL#E>XM5(P6tC9Y;IQ62x^7Wd zr5+=+rh8RM&5*xy*;(y@b5x5*DU&-NIxbte>=DL^P>q@<~_AgObwBIVM&$blZRsmCYE?A;A^!g45)h>D= zX>;sj(&TQhj32mhr+xHc#V5m#dNwO|x)tH!H#mBOmXS}r7oC63IIw!;^P&rzZ%x0J zxa8Eu=~_4Cwz(U{cAeqXd+hxY4(kiDv{F*)-O69?*?ytx&%MkPWkYghMs5(B6&JJ~ z;WD99{)e--rfuz+;MjS*jBXRT;lp#6MM;$mt2#RH;)I8xU8~+Q?y@mdbMvzM58`BE zS{fhm=rcbdF}nJQ-JMgf4{RMeS-w$jXomI1b2FS>c3P|e57u0@?-FJ> zIpJ>Skzvz!x7^yu$$1ceYZ`1 z<9qcgh}zmYG_01X^0LXVUu8t8h15P2e4=#id1pJH6y=TErVM$Y@6ohR{6XWN@~%bf zbu?HM96G|f#?mF4zI%#otCftY75`WU-zVFE_Lx+4rQ?%V+jagP)(eofdRIT0TLvx3`{XXo|g5Zp!*bp6z;GXf2xP zeK$|**vu|7iVn_{zBOWg6O%Oq0;;J-53GK?wSUNq(nI3|KkN)sjBU5~_{VE+E_R)( zq2Z z_F>xE)O9za+$J}5)%WyjRHdk-=i#^kkzQ-MoLy&}eC68Nj`pgbdPT>*j0`j{?IeEX zui#>zC)M(z(vkb~8pYWA`gq3|ZHq6;duSKom?*EX_{Ec6af)lCqTa{E?Rn8stSf!F zk6XxTb+7ahuM}$E9kH>~JW+3_8C`Xz)_Xp0yy(W8-f0^TeSA^3@V@b>xMQx%UTw@c z-DbIS(^|Fsnk%(#Cp+rE%f1^ss0?_yF+#daMqH=yLo{j~?<#k8w@h^z597d(`CiT+N$PZ@8-+Mo{yMnBbp|Cs)dG) z=GGkJ#twZ(H3DQayqH#)XLk(Ul-EnF%Hf>v|zKUDc`1w6#d;;Dq8ks!Y zEwZ|9oxOc#CpBs{FKqo)Q;R)K#)@j&=FXFzcW2hFo(b}1N8^IK%QSl#-l)?;uLrhj z58mgy%)DBBZeeDpi_hX zdNZT2Nu|l5Ehn2=)_SG0#lS$`?bL-$*GfczRW#3c6$LfkmcHO&;caf-zuV~Un)xQ#SF9F3nqS-G?g*(322lki!ExEG^EQ0TvofPfo~5TPnEYykcuUmcqN+;sbhqc7ijz;j zwSR5FKC@XJrbY*P)qSCxtgSJ7d%F3{()&kci;Jy17hS2{w1bNL2a}{`KX>eTo}}%- z_Ve?8w$Z*gc*rW*XV$L~ zyt{vW%>^3APuyMlzWNDLztut;IjpI=a8>$=nes7GMX`p~-TU}N=C0U0c;y6-{T5jo zo3p~M>gY+w=l4psyC38-^JJPG_WJx^7;6_F)_8?2~s~++ORx@@U=aa9!n_y)yTWZlKgsQ`u>bc%Ex)pJF3hokTXtym~laUW5L`vHyz|c+f2|iY|HR7)p4}F{t`czS_(OB+mLr``T6#QN6{C5KlHcbK+@8D5&_AouuyKB8 zP4lan>8>#B+ivw?H!W=&InkxVlP~xjkiFbeo$hxwGrYUf0-v2jo-Iz8X8WOi9kW`s zM>R;;cWvuXjf|=DrR^hj)fPoBdo=&e-iI|3{EGKyTU~vpvo9iK;owQ3Cv^rkw2o99 z7dQK)TWpu&%%1Lf%aWFcdW;TJoiO-XyMTgOlT9`cJhY?U^-F2D!+IO}8z1jm-*>ue zopmN}O{Au(_mneh_d-!Mar3?PCO2H?)Tn0K%JRc)vrG9hkyoVSBj*lJj9D==GVS>E z1MTP99&&2Ec61G^pR+7l#4ep1tTtTt*sU=$LX7%HX7)B4aKLAf?yGM8^J|QrIVmmL zv2OUQ5$zP))Lb%g;HfN=<2B}I*52DR^>DR=n~dgU8{TZ*ty(X2@1(8;+S}dkor(-x z`Duu;VY7ZysttN*^5ABF>tX7P-ag8{+0|wDW6u#&b+!Z@?|jWpDQDC!<%O$9Eg3tq z+U#qe^otB;1@1dQmuqZEsgZb6F0{y6Vb_Y3ryd7J2kzMO$T>GIQE#YLuldV8s+@?r7xt)T zmfE?cE%xnJQ_?!9q_t}3-ZZtRhs^eQk16r*y?u>~RM;``w$6o5Bd1-C>(FsWRM9!r zb)l}y3d8&7+v^PKKj)_<9SoNlp1bU?v^w`(KwiMK0hU*bJzCv)yW_;^ zemxerDJ*JT-^kZ^xJ~?s649oUQe7LhKfifW;lv3CX9e#Ic@|`*7Cvr!yAC}Q-oMzO zIbr_5bBjC24zX$CS5o?HQ9w!B=yhGyKAbw-VfdvH?H`U%6xG%3ZPCQ@Nc(U-eLGLl zD9=NYj+E%sGaaF>Z+|9U@7+MR87q9NSkKee9Xri!cQo61aa-*h+rdBSPAP=|2O z0atSDJrv&Uitj&jpHHWDf#Yfo)$j^j5F9_tQ1i6bZOx;7<~};LYVYj2O+UUFzA&-g zyYBAOT7~6?=p`#3K3xClj8?Dj9LQ@ixqWztORHLHwAVPMGw}`P+Xfki)$q=lct<9!H1uFwQG;yX8IfnwEav}w*>JJSFr{^w)<$E7&4_<*G%9!h zSj*-gy=4X-*tkIE|A za>0J0g-h*J*(au(Z`7Jw`%&lI*f7^EEoASid)b&7s3{D{D|N{E`HGt65!qkfl8e~- zR@g`54Dq|RJI!8Z*<`PXX`;KtZT@T76wToaYuc_TS?_ks)YeC%YWnDPrkU4D)yDK~ zT;E4dOXfj*llsrzJQ;kW`AXyBOR{t3R8O@r*)p36kf z&2?dZhRLhzyKGnOFE^#i)vk)BC&%`;RFqv+jAxlRkXhu=SSpI=(NQ z?tiSeVPeZ?UF$CkyPb76`*u~A=yU${yY^jhT-7vA$}>IP_w?pLy1upb_N==;boz^1 zCkEx-eS3Umz1ng|V|ywuT{XSaa*<}Wc%zKs6H9ux(ukk^{@$xLn{Bc#`VKvxVyNS} zYoM--{dDuyZ%1S}CTO}Fm#pa@Y;^ua-LTPK%VSR_2U!l^Qtz-sY)FfsJHVbj@0hH zDDZgAQHMJOt{bb?IDhtI%dOq(#5Q`Rth={<`qovU-DgUDTvcm#e?#S(nr+XDQhkn^ z-Y^|yzHa-O<#jhk?mIAQt>4~=y!|%|?N`-mTXpEp^nF}d;fmf~vjNK#EwKOky zgZaHiqmR9)qAi_xrdy4gpIo0mY;TlN$2WNU5Z7G`^JO1?RH#8We#zKwhI@u1+x?8(^pTkR4C*D>FEBXQfPO>$=*ekjmCaAnH|8_~n!$+O;# zi&&|DU4NKJq@87BdCh)=@BQ}G+Ie{2bk*)6_B(H6;`L^tD87o6!D{UjwywLPcV64l z@^0tNxA#rjtGP!0=c5Nk8Lsf|xJyqeO!iLoKJp4fU6m}`KR7bTGRL#~uIv zgFYB+PxiZz3F^0RV-Cri7$?K8h;`(ZwZ<&uL| zcFkMra#L)&;HMG$>$<;7+tb>&rKzRzR?)6>xkYb|_1jdU>}(-*%J9RSO~vWvop;-h zFu1l*G5Mfg_Rn=^^ltlbfaUIv*WKSfJ)#q`Ca`@_`Uk&FwtD)(6Y6LAc-M)0m1e$U zVt=LJMkAE>W!0S+__3!;=;K#y> z{L}I#Wj(6ldTwy?*67qG4pz^4A6vArdap|s>)g&=s2eUnY4U+OjW_FT9&ki|xadOF z?t5#^9CLG6i-^7^zqqB^-#Yuz$7J+`_U+ReEZ(9dwZC(LRM2DFPE#%oc-nY(-4=>< z^)hBWdNcj;j=Y|2if{MWwKCu**X{C$?%P;9RX4u#;aTCh>M?C-Xy6U)?FlWy54I9LHoW)3va0naWw|<2ieo2C zYh3&KsFndk7WNf&?JDxhmb#!G`qI`Ro+?Ko3 z{!lwN>!DAZuHO3dtJk`VM}AP>SH~w{cimIZCo1;PGrugVx43=6nB@Ly@yQ)?vsS5k zwLDxs!Rok5)0`{4>y?ajvBUkNOKsO4OPF5Y*T-aP zu9@C~6oZsdyVGrt)RgXa>wWdi&1Wp#Pd5x1pb*&c(HPzEJKg-}_STzt>{EcYbjFZ= zL+4G)Qp#>}=DzRc=+xd8vHLF%vhJwa_==5a@}y-aU7i-!&R>2peSo6KXPC>yTG$IHp_qgi}4Q-~gN%_OaWitCxUp7BCSt_;m9{Y2bxFU~*#p|rHTLDX1=vp>eHb;JQ}nl+Yda`xiD3f2`d8?u#J-tu-Dv=S^}A$dli9 zwAw4{m~FW$wO45?{M4#2A!liwnkI%3o}G4Cw5esV@!||W`S__}`ssq&*S z40azhb8Ob}+^uS3GR`mGxq9IEk>1_9>M7Yw*j<`3>s7w%v+$25tu`-gf5t|7P_)6U z8ao}TJY4KH_snyD^MKdK?~G_QrS#hJTK$ZCd_vTQs-p*G;SEsBxz)oqBf4k_kC3x{%>o z_pH^zxyl7{cQ9Psm2;Ckp2$ zv=B8sbn2wq#^qt%{7=b;x)&MkxP2<2v+H8#Yd1#+ycYF#c@-IFICXx_LDO4&n%L`= z+{0a+=dC|$nJ(I*S=+9bv}llvigfX!IfF7E#@?7XQ0m%Nzaio)OD)5%-41$ow_Q;~ zm*Jx`{3Fy`h;(a?S~+0B(87zWwl7oH6PNs)b<|hULO*+1mriHyE(;s)^6Gl(?1X{%7%YxcIMW(b!QcQR~zrQw%7X~yE4lBNb9__4NnG_Xzo0D!e#oIM@Mcn9;Tc5q0a4< zb!57?)SBu)Wq8XzxBZq{hq%=}6&f7bNJCb7r?U6xj^-n();^XgZRR;9yN1D&DGvhG zR1M=FJDNtXedhVIcXi{19UFxA_G+5%Eo%^!lM!yFtS;9oXpLiGQIy~K^QT_g>=?82 zSm^KpSJS5%8trg19@O>BkX9)z)*n8-q=~sgf`)T=2XW9Fk@d343cJ+Z`*klGxnQ;B zbLCF0EHwPaA1yUIq#Ss!OZd-=CUzN9klnMX$a%L&G|+Kx-z)aNs6ULjo!V-&U(U`k zKHGH8gzsyXaHFZ}+9N9_E!1#1oU7kU@!?8K&pDfRHQ({Xx6b;u{f;CUY@ZviwB=Ri zTARDWpNgNQ?yTuHA*Z@mFsU!=;jOMLf4HILi8_zh5La%p@@sYXNZ6E(I*-ESAFH8aS6TlRmx_?T#Y zx34ryN-2 zvR8W2{j@4=;?L}yyvM>stM^{FoL)U^mduw9?dxcivdrJ&pxO9>hvKa69v=@YD))U6 zB;7&jd`BhQ9aHS|k|t_}NxOC_z3M3CUC`7{YoziQ)Pu9~9AC82)LQO)VNrZcNc)fvi|cioZ=E`==jb{f0o}YdG^m-A zDz?tmPuEj&d8+A>cH&4$w_&NtqkP+}ef1=>;Dzi;`#|$-xq;88Rcl(;<>#~q89I+v z3_D@)KBMiiJx1Fb%t-sGTEPZIslBTo$fL%p)<<$}JZfq*a#HbBOE0SG zqGWn|p10eOCnr?;sG83?5irNJie2XZ6P=VM*@z-%Z#@07oyW@acXrmc>iXKNV8h7W zH8%Tu=jaS}nqS;&M|i5k)TU|Y6YSeIzv-xCl5JAErb6ST1y{N!J1`yGpfUX3<4^AHxDQQ{x|_phmsh$ z!IIv610$E39*}qJ!US*u0EvZDYXH`44t*!7!m!W+a_0BlLl)}dD)T?sqLN~Fu6BOz z=tG@;qX&Tf|H5`AfD~6z>d4FQ<=dZ*R%-pncfpVET^0hz)P&`@uR1dIga`1srstR2 zniYxKtnfJ_YtXCVkuN1HL32h*t8Oc+Nj1b~O}>T?6W zn^>`kafei4m~6+Y>{uBgQ?$JRkLw9!hhI@ix7PxcGxfku1IH%-W)Wyt#`H7O_Z5QD z?f%>y7+C;(|JLEh4-*96zX`q_C20YuGyoIIbzcY7Wb=<48usw8X>VBzsF0#xiT)@7 zpshCxL7=6VcSafRp$8rUKnjocqC0SBZ>C-{NTe)DwX$%oEv5(ETG%%4I%nL}$TM|G zp0XL`%rCi_hDK|qtooOsy^`?{iTRJzYvKEo;QRMzzVh^h)FV)`voKd-?rP>ogZTp! za!&mX$J8srqe69|(yu_jtpKsbNaIHD#v?uK;HE8KO$(mJd zI%NSsh`z%v9Dc_1#`wph34*8e*^xfaJHMjb1rq!>d;Y(Qq&E8F1wg26l;yYL9Ml=qF93y?x2w;&*vY&wrS%$^ zvzg%s?f%68ft!4Qk0L7sRdZEi{9zAF$CwZ6lZd>7dQQYl5K9rsCAVFZaBu(NU{1ZK zBXXN{ck;Qa@67K}0v96EEvG9d_N0U`+x=l`|4H$jj+cZAJ)J=sz)Hi|&wds+&|?dL zR|?ZxAmwY9$|iUb($S__z-s%N8Q~XR*!ZfrwnP~8!fj=4=KWt;fwJ;?g*-&JOANl> z1IL5ys(@t19|lR$70D>OA_Q6>1u3O>7d;hS-Omm{Li{=GHzxv7uEpZnr)O#{#ZsI< zIr>g#V|oXJIW+uqGSgrfEmBl#FE>{)`DA)*0pN5=5D?CMy+Y*W?_ayFw%)r5;Gmtx zSMyrX@`G!Bz7{Gq^M6`cAz7;TaY_XIOa74H;H4 zL_z%jz(U|_2!I?%A zUE2ANBklaDV^8TAEg^s$PV`=iISjZDVGvnp#dxl#oSqEE3=Hw0N z+PR!zcRNG)d3=A@1BXMh`DekLT68%BM&S%87Cp@&`sC6 z9|!a5p9ZX`|7rJsb|;|w03tU;$p)wkemp4ue-Qz2#ZKo!jn^D(`Op44+xBQL@LEI2 zJ_ip02o|Qr;skeY=!_~WG>XcPpy{`EDDg(p^pE(3we0vRQ?LYCvM z9$%dj%-wjovvR9TZ);xXIjZ-J6DZu5z&ukic>P2sn0h&~QIoB&v4 zRPikGB1M~#=Yk zj|=O{*lIzs6eLRM#W=Y3!Cbq*1(C*FbHZye@`c8tS?EW7{z%l~l5g|u#XC5+Kc(~z zqye1C@%Ph0e*yYQF@J~tR_VVioai}CzYP`q&=;{cs2k%xtSUkk6Q@T4aZwRYS^kxJKsSRfR0OE)4|2)ly8=$w3B zXEGGUPpVvaannUJvuAW)nyh;ZWrRQ~8NbfZFW*NO0uLboZnc|Qwq7am!!DbrNGS!D3uXDfR2g{}ym@f4yqA_5$o6$P z7NPM2vvEt(0HpAVdYW=siPjlbbKXHqsI6)>S(t_&CB|iO`#HTTGy@Rl>io5~zi{F? zl(C+h6{oN7uC3J87KXP23m_AkWiJbl@@Nr5iz5{?f6nG-L-@W~u`+sSjK05OQ z4;+gR2`vU$x%caPX)-_9 zT=8p5QIoLiOr7X8w3+(;>xEy}rN7B3)v%%Kf+##!<7hM5duL5D0WK~4mJi@2x4^=- zFID_`T6*M~hd6YZ<=R3c@hZ5I#w8dA6HE%h)M*IUYbZF-&cFW0 z^&ORkK%=MQG%Kbt3V3*2|2*hI#dn53oul&e`5dXgY$_C+gx7$m{2yPP9!3BF6@Y@B zNR;s7-c{fEJ$b_(wjslicKfbJB>>WQs@Sh*eq|;qigi}DE$#Gf^A|nmnKZt`WvAK3 zjtn%#FbK}Q?e?m`14@00voeKZr@S>Tw;8GpG}RTR-+ag)G(B(yeG2hb4@>gpH=@w8?O-}k`Bgn8sD)6XU-{K^ry3VYi)O$F$}5tORrgV_T8<1=a!8nj^i=mO0SVQNlt(vI4mt4n+-ONm zo1NX{C{)<_#>s5zyt|4Ompq@XbyeS+2EZw$^*Z8v8YfF=ISm12J)Q0TrrCB)KS4~p z6pqw!5)32IpKVUNZiYx_;~fR3lULRWBp@^9Vt_4AKjM3S6WIqre=Ne2D7B0t0;ILi zf_ph=q3Jo0$3Lr?zi$7|V_nPjkot{2JkJ;O;R2v;rJWgP5f4I+C$oxe3}g@aGywez zAeb>tg45Y{|Gw9v=35;;nk%)D?|jb`zb?!GB(sX0uCrpE1XE}CZ=G^%@bf%l90lhy zu;06I)y3SlRNYqHg*=tK3fQUr~oKRO-Y%v zT~Bhoqi}gBfV2QHaLO>cb4rUHns-Sy1s3t-3KWz>KT|{|Isvo`zeK_O#SJ3ggRdm_ zYjh;Urev=|tw6@P*Jj;1J53#Dmr_7v-vVLXllt#p%#J&%yI(iOaCKi&xN`CmS$#vZ z!ny;nnXN}-t-tG-h#HfySPQfp7wR`fGG>iuHxW*tZ04E%hsIDacES8*g|wb)0lr>bb%E&iEz#R*U~@Ekfx8 zePcWer=YY(T}CoIJn1{EBn_ZTU39~_woLGebLmoOqKtM-$?g{kyIs3-pU(O9l^~cV zz%`R;N?m;EURzAePP4_~11}gg?0ClXqZR-wYpCUXEx_)q3x$7EN``yf{z#ksl0V!OnSsX|>y< zT4Y)*xEjk|OaEeAQZ0am7EleideX6=Lg=wp0xbO%Y`)}i6-_diJ`Vr^Ar_#^h{n3) zmcK5wu`n%4$Jk=$rjVK6D!24v%?-eUIkOG!_ldeaxRlxiF=erFRO4G?e$H`Nm~#0U zQAzSnmfeYgN&rOKGowi-0VF}FXByvUGrrTOXaIc|)m@`(bCh%nsV)(NU2&=~g_9^* zV)513)vMj1!2Tm1Y*~6L388;<>d(bm{6cpjR3V_X)FmE+B+W(GQ7|TxAo*|d0=A|Wl6%V?_U($Z(h>yaG=vR^`tNM6NQw@m*mVzdXS4Sq z0!eAOeTSk$j?WznflCn;;DWYNYfY6oEEB5cqA9_}Wx5Nk&!Tq|04=YrOZ43iIP8IMPu9Qv$M@92`IvUvDgkEU zprdnVPb(LJn9D>CXZl46sE!`asM$f&cc}^GAv(-{OG1h@mAfz39g~pS?Gl7q4FF~LrU2$5ERpCnAX?JN%4~I+2)e!PXG{4EW&cL`$&2}4WPB) zQm^>k&Y0=jH^JY22>$-J4uAV$lO2miQs_jB9iC5H#)-91`$x_VAF+_i&o3MTGj)4P zg*QwoDE{x2uR;hFLo()q{9zOma` zW6bYQg74ou{P-^T{>?O%tOZasrPiEU_I>@_O8Yrf^l`FzJb9DM6L1=Aw{-!K87K*; z+C*HC&kZw%GyMSX_}K)-a>PNr3RL@92W*81pIy#NO%exTTl55+1V(9nS2VU zLZWuv&``gBTW(PM%2f3Y$a4`+C&l4K(f2kXoMSQ13Y`TiT0})Yi#{$205So3TOh6h z{QYl&fBU;FWLw1H%;I>xtC%(AkQo)o;GI7jJ|wLCv!d@6B6GTiou!*>pw?|B7VwYn zCa9dr4tv3FpUjo6WKxlGYt23i0Nel+hy~~icbqI2{rN>xE`#lm4lf->d)@D?A?Ek* zCOH58!-UkgZ;2^-S!ht~HHqqaX##~)W22iCcIde5jl7*--k}jQnoX&baD_&j%``v6ihS~%22Qnn4 z*zbXTQeVG4#V+vUN0*yXhEp)Kfb1Qn`{&}G3y3NG*TswI> zO4b5gK-C&lFmsqV3vf&A%?7I7Ul7@Lk-Ws+dd_`lD2F}p?VBpAqQe|BOI3)Gc z7sB^%?h6QeG&=(;_-?U-RypMv87Sqr#}PRra2SBoUX!_D2}9<@atD|#e%}cXq$=-r zRX8yJC_`Ny=UxD)eC#uF8L%;BU+(&H*Ne)yl9<<+^XW){VFvLzTmbvryW`W%fPRM*4z+W4U4n+^mf%_lXcl;#m<8YwpXfV?9HIL5 zH&Iz(Rns=Q|Fg^|kw!=yN zCk-d&gWRr*$;nfkL({una>&<(YTg8nJ{}}3t26;zu=%q-4~kRvT?qC`nCFyZ_iaHi zCn2zA1-z#W_;?@?sONj~2kf2UlJwo}((O)?;`N#rW09L*%~%pD8q;XnY0qcD z%TaMW2~O$3xDK}8BjW$N@;yfY>QG=FM-h%hd+hX3vj&iM*?|gFj1d)#q^N## zItvcT=>;|DZh_nP#qOv!QhoV8TaNK7>ew|6I#)kQ9e_bGF||V5%Bq1lwqw`MtC7J_|5OrUr^g1UmxR z1Q1y1^kMXkL$kSZI0z2sm{aS8=pNVPm|SxRzM};ASOJiCHVHVZ11mg!ot=NN;D!{ZeJFGuE=*%w?&oT7xVA zGKhqH0NjzrRYy-}wSU*tao6nKuA3p~te8luhfo8Se7D~9rltatYA3Q#PG%SEhwp5| z=mj+*P1@_|8G{AF4lHyWPAg*1Iqi@h-aG6S#}v*qu#C-9C%``WU%q`yIFVz7Ib-K7 zqZ3{r#^w&G!V^+Tw1&B&asLkdVaDH6q{lyxZp2~wu?7H`sT4v_vamQD6vw^boYt9F zZgxL_YXXZf*9Xw2r2{iKsK8dMqs25czPDq}`T1V9iLe3i^QGSOu7>WC1IQC%cC+p1 z4(@QL(m1&%#{QnY{E6`k&<7H7kcy5n60r_H`fFg``9XU-GdE3Aa|&)onFPT&YO*)| ztFx()$(eRKdxXL(3Z>NI-gh~*oz0z!aP?Qw(H5hHKuQfWNg%zP6sM|5=9C0z$IdK% zHXtn|G0EPYnNQ}65lI4|G68(|KkU;cfynsFrOR@6pVZR(=Zv38kXnhf(vOt2mAv~0 z!}<=tC*jY&o}7zNMN%B5-1S-rm4gd`L8@Y{(FtnS_NHN4ym3y7K^g#D1PX2TNjz{zOdT6ZA!a>8)cQ6mGgNpV$Ry8Fj9py2maF>TA1A<)E z9OSAr!(bJNau!;e2-jd{7J8`{-E+Qg6ND}RIxYb|Av@E4J~K`sKr#$xJsxa)zPLIE z4v`PQL#SRO-`iq)m7&uKRlWR_%_tUUXPmuKtFw4c2@bwD?d#joGY;Ly5dMQeiXsbg zXP|MU8vfkCv(e3$t2>zhkgP>z6J?Jye=&zOvQnxwT$rP259vhEcjkNA?=(BSk3(rb zaal8~GnsY5g%EfzE8x>gf&~Mxx7;ezD5A2>OIm<`{haaqY*m29N(lJm_yaxgBBws` zodc25PH2u9x9egYyKL(dSV&^5^BjO4PAJ!pXds|}pya|)=^QZO7dwz-9 ziNjE8H9*poa>pgf$hUBMg(EWZL4f0v?Sy@2-|JE+mO()Ky^S+#S#zurXZGjkxoGVj zT8nEbWhk`R5HhwvaM%gz9EMuc(>a++iDx6b&>pCC1ba_{&KrvQ;i=Zs1WaA&)NV4& zJ4k?!6#ycInQgu>9Vz#cZRWD8Y$*Vh9D!v$d)FcY50LEgUa=c2 z#N<1TJ1ot4r8$S;cmT$uF=gR}ImyK}pe%e}T=**f^RLT#?bnfcyr=k#-&sc_{vJKLzXpM(Qz=ryHPYlJV8bF;YrwBrvus*N{zI5X_glRMK$ z_Ln`?k@ z|9R&>gb9#0fquCGc&8?Jp!&GnGy%*RZO=#ZCNv&m_xGwz!%oo;Q4D6mBk!pG1CP=e zM9W_mWq19Kuu58O~%Xr7gYG#V0Opbb_-hHKwTLY08qd@iZM#*#S`4TPw_$Ujd2E1E# z<#k$AGv9s(Onb>bmA*$Q%sJ#IuKgrTf+G8hh9QI&*ZtoA1#(H__hp39(M1)#tI{Wf916)M*YHLviaLj!!G zDGux!fMkc3R~O15#_YBA2N#nq)j+iMzCj+b;Bj_Im>9-EtKNt%EFPZf!?%&ck7Jx~n!@bz9hG0tY>FVAC&6r6 zMMswNCMgt{TBLcW;ST6W3QPJ}slI{czI+;*mq%H$(>3z&$K;by(t!NgbxHkqSh{B} z9+ME*y9QA2{u3}l(Wwx#DitIR^NxKChduduCg3m_`mshTE|}t-?SRh}0IkJB%+w`M z>aN#>(u$o^(%gZRn-9)H23u)s@D|XuWPm!T?7+H%g8PmGZJN z_Z>IzbnQlxC)l30XT^16?07s@R%gBB&g=}B<}e`Fw78Ffr1KP7OTdXv!sBR8w4Xm` z{Pk=Oz@N`^76QYdISko}Bk>gdOeoFvW39qxDF%)Zn$s>KEHzAdRzNuFLMg-!mKvtA zwVO9ZaUOCFJIDU}u>Bq3c{m~`8F>wZxTc{ZJ5A5Z!`492voLE%K#l}B3Ut=UPgzu2 zUa*I0weLxvDgbi$#L3m}ynvHko9we3Ywn_%Co@CWMG{HI>yrxU;1O5XbDE|j_NIu( zGIO%J&*p>xfZK?qT~q+&aC-Hi5?Ga4kh=ogH|N=V1D0jD7e!GhJjK`Xl-wehAp>fV zvFy(DzQE6e#nJ!znY{nW`TFxE!mxhrzLx|_63n}$prpqdb4HbsGiWPmDdTJcSm}QJ zUL7S@^aZS{6M6Ngc`EA+LScR8P->JJvU~sz$AEetJnG@VZs&@wq3RB1iReHH&jkm8y#MH z%vEwC&h02HE(OkQxlMALUEL}k>Ce8)yBN|A7Ad91w1KmCh8*@)7vfp+Vs)p`IaSGV zAWlDWC^F*2h3Sz|ezB_=20zsd_!bE{heP1#T_DEwBdqqNd@e(32AMV{a!qXR zFWdc5bR)(KvHk>s6a@NNv%vMm!Rg4gqqvBtSI5Hfn0|zi3@4;VNqo)ZM56=%0}^;^ zLJpzkwVN^hBmilH@E#9cc9L4g;$g2Tt1tnvDBPUy9kv$VQxAA3AP_GSPgdFQ)#BGj zW468r_M9EaUU4et^i-s6mb;0PGiIEkwX~;d0)icN2-dl@ZQY3&JG1@0>wvk7+WsC{ za9lyrhJ3EWL1w!$Qx2m8QM5pwaX78_oQj>>nq|4QZ{IA7%>{s0Tmk}o#BqNH(KrCe z(TL}>7Fw9V#y3~Y26~SETrC4qh#3IQ6_k=7NJ2N8I&SVv@$5<_*9D{VVqz`Ag|>lo zq;vpgSUAe6PhGa|0>bTfL=nQJ>yt(!UOG&yNNS`k1BX)zKT}>qc1HX7ulQ5mf*!yJ zpbOQ})%k4uCod`#7&>5A}G&GeKarQK z3ynzZSx9mmN>`?%GhUxdmxYET#j|zc6Ju!$9}$>SR8lC=HAAFo#tIw;E`%#73>{iP z7WB*Md~^DAA3!a+OSQI))f%$T(1LSo0dx^x&LN}*kSFi{sfD&P|CnI9?hT)lN@|^T zqnu>z&|+s$l)?5zZLb2C@FXDSh#Vj}52uNdh$)&t^#)WV_x9sh`7t}P1jnaHt^US! z?G7d|6c+Y#5BWHj$jgkk$Oy)0HSY71li9A={80_YU&`ey)!$odgkQ^blID~mLpcJ} zD|(IV`R3qJ8AnUH36S$c9CYN72jBg@AWg%>sCR#HR3(`k{(e?uWTt1AMsd^RBxZ*$ zYGL`d^blddnm9R#^UbYNj$js#!;_PZ1cz6QyGg&*TSs#(pw9FyW~`% z-mtSM{Vpqqr>(jdxroDiF1p)q^uV&p?>qh&apbH4sO`>S0;EKiiUIi70?|kD`W#_s z^r*`{3#cV^;X&rhxxFs}={09I9`?wL?_U1z-$UJJkAD=fuw`md5G6Cjk(bFSI5&JO z0&B?8fv^^3dUW}$q_=%eKB(3HBO#VG2necM<&HV^7m*RZ1dV4(HzEcc+ z6dQGuDT;hV-oHnh{CBR&IQgBVhmlc$s#z0d-;nS4hF>Ym#&s%~6Kvar7ZnRRSY%+# zU?_>~#YzYizq{%AN-1!!0C)#WL@s}%ag)U+oSD5UYn5%on5^72x9%73xP8joR{;G; zu-Ymtl@Wq8rW{$&a4vEl!#Ve(kBTq_5NL|R8xCFNUV&a*qfZ%QyPoRReUG|(KfZAh z%`PG#JMBfAFUa%X&uLGoh1&6ZFKrIMdQv!fF_l+obe^bQ`5agSK zRP)6RWc(gf5x}-x)F5ym(kT@T39ZXv-tpYtnjXgoP^=PG6>ULkcErS2auLp4np=t; zN0D~2Ic)sU0JJE-<(~_Hv6G~xGa}G?$fh9{9${x<&7noNrO$(v%yws5QQ%ZV^`EDR z#dGx<-qn!2%KN1HJG1|dOIN4RpF92>(Bk36NM5S)3@EPd&%@JMo%wyShy7ia=ju|Z zuW$g;*5uD))?j|e7@STvKl5zQb4Ou14&`!Vnek{vU)edykmn(VUKyI3yZkuje^K$r zG%YAn^A1zp&3P)Rr1(k%fJ&hiDdTF%px?f!rJVP(Nx0AwIk!=qi}4{~$Q!sHP2qL>}&SAl)9 zPa>VXjzsk3s;qY{9b2GNXJ=IXc6dUNrim1@_k69iB`^0iFt}hgd}rLaXv%|c+Crq z%Z9~V<~5FR4!*_=xK{wY8#IB{X`l?(IZ}<=RC}hM%(g&PVwV;KW6k7v8y611vNP>8 zMFrp7N@`X_WgB+%DMSU_HD@AW;=rB|1mOoLYZ@Zr%ymYYGrz0tGsMDS>RCVzn$)n_ zfY|*b?AKCzwQ#(-0AQw{i9s!C$W%dsVMl8g!ec_u@|rS^z)|) zgjo#$H6`R{_5<{#Z^t7c#y}DJ^UTj|rgXs2$Ftq_f<-rKs`u#l`{KEBI(F4gJ{*9a z(32dkjU597vL3wyzk#g3meij?6udpfO_%*1hP7IXzw zkq*ZZ=q%7=Z}wB#%_j34yG`xRqgEB$C|_Q7SZ05P-v?WnLd;^N#go0+x0%1VKa^oW z&^@aXm@0+*6rll}J%|5fMPE-RO^&kIv2!=xjD9TVH1hh(`VTo_Clom*ea?%;oJL$5zwbjzj$FS@%EiwQt#I0)jWgi!x@Mwtxhwby zvM+!Z0>^{szmX`Z;U8JMk!E?8}o)-ny$DOA1>~pglFTL)KPY&kgcSorS`G8e(>bo=jerFMkT-LoTOq%!6{9DOq zy7K;A1i;ObCod+A-EF4DG^Q3*BAUZQ`~bYs!34!VjrJ56M92PX4J?t5NaJ3 zrJlULJLlkYXB=xbqJ@BoP+jE7BiZepSZCU?_U`8&M!pM$`ku}qp0l6o{dba+gd*H# z|F0-_?!uHI3D9+F8pJF(kh;xYXeH)nTiyk=0h=5zL4r(|_Omr!Np%l104PGGZVpUS zc-;%3GS3)C?|w|0K^mSHh%v1$8qf3{F!owF3U?VQ9`o+ik^!&G99qfCi{`?v8OfRE zBWsbIhvFcuqu_iL90#-S`&4x~%GntkvqR89PL8qgW;FJkoA&B2xdVSi0KCHPFV*Tm z%~=7@A=SN~6;b1jAHvCj9cgi7yOp}(PzGU0`qFunG1}flB%#_k#K`I_cN;bVkerSQ zD3Wb?5&{8bPC{y`c2-*4ej#TL?`v-i?1CgpXS;xCB{><+KMGRtTq`YF_pI-C_K&`U z&K!pF8&MP*$~YnkR%7`QslS~+XRSI4k5TW>`{qTzgtC8vwFjq2NE(Y5(v0USsfBvl z$rBDi`*y=hA52lOpFVutM9l{dc=y z{_?t#LWjtSJ^^l#P~~|+C#D<{wAYhFyqay`yt!fziEDDbvk8(Pbh;iiEmVa6A<{~*tb5oX=6Yw)J|6hNZAb5U` z^~Yc?zy*Nj3RVO4qwrb+ZaR5HpjD?r+3dN_i>=?^+yu}IpIyC3W#SeZK<x1NF*hU#Sd||=r@#|)W>VqP0O!ftOpS@jcIQZu_QIkq0kAff0t>P7cXon~ zHNa_#f+3PX4IWu>%gdX7mf9T^9ifcCTx)QSW+m$AOm4HD5_F7b%p_UtuHR@$9bwv99prFGT@r6{4j9 z+^z`}>c8(?f|nP?KB?#9X!dpX0lZi>+UWLT0>B+ret8e&?UJhOady7uevIC7!x#-D ziUgg>tz${fD?xwOXansJaEPdb`ygzwYmOdV!)4bRfG^bO_lMLL3>c{u8jysac(+>3 zx$EPE4+}dpd2I`2!8;?JWXi*=IRuN$CB=?|`nGG0%e2IU%XC zDi*crUQS3Uqr4mX1JD%i32%F?dhL=UP!ZK{c?a^m0MkND?d~Yq!|Ms`2g#9!tp0bL z1fmOnK#Te9HU2601}s{kA(~qbl&sXnqR7cLgC)@PjnJnvLpg{NiMVQGdNK-y^@cIR zc6t7i006>_^W!|&{C5&jfR|I08h1Ycw?A{I7$ZH4?ocyQMP$Pxnl3#YY?rOxQ!Hd-_4COt7ISd19-Tx@YZ&v0lgo9j3alk$J3IG=sI9<_TD#uRcYYt9W-DUz>21B) z3}sHAMml+h0Su7x3;Pk0Uxe``Y97Vv8g$TKQfh(FM~u z3I+-j`&#s{b617<6dq*>4b`4~iOnd|MUo2x(&W>dOoCfAfVE?t1PhtO>e?_UUeZFH zW}EbW7gc9GcRy^za)-#1;UT!r9$?p(_4a)M_EdFuYAj;!+KZ%qPQ}7V=jr1-QTdm> zwgJo$XtAqGH8)btQ(geGmjtIqqa%f$kbEA4nIh*sus`!X(l~hTYXOiQdb-&C7xCtW zx*a(ABFQPK85!R`0H=(*j|j&!1;qALXkbg*x)8*Q6!q{j)Z0p?x*y87?uZ%#PxvQ)C1yCCzu_C2sW2a?epV1A$O zV7zx6w5SR^K(S*^iqR2mRN%zV>i{h`Niuwwo-G$<8Kk|W;Bts_S-r}WydoOmZQ*kD zDi;1UFN6Y8z=}m*;m;=B0|fG8#*G)Lfi98eYdbwulG+vObiNqvhPj4bg;6gYRszUm zPO)jSsy=XXc`y+FCZ?RB0Ld{h;ELW|Xot2s?#q}$SN;FHYD)fe&{yI?miCpQVZig=S{rp)^w#{=S)_CNVHgV1 z6cMT2`FTO0Nu$Vumebd(baTHRyillsMJU+>y3Xipw*EC*v(qa^gX&^Z^Y}7YD9$I1bH4@U z`SLMl=4p-3{UM<`^LZA}7Ugs2amRO;CAf;`yLSJJ8(GeE{Tg#`rbEl*ym)T4-U}iL zcr=&a6B?}h@bYcz<+bnsc17*KXrepa>H}y=n3lA;O8k(y$e}D|R2K`PrOq~Dqx6tM z7!=&mIMLz(`xVLCBg=odOf5&q+V>a#cUjR8?1&FB9GO7q7Hc6obR3ZzBOsuqk` z+-o)7wcWS%e4C7UK^U&hu@+KdeZyIqn&Nwf!xzi7<-)wamTROHA82*C7LV2#$@)8) zE`5=MK7i#<>3GHoC@uzsR845Eyr#{|&W-=I!aF z|0w@->GHM8&Jg9eVB`5V{TuB^dTD*VdOm7P$~U`eeEE-+-{Qj9S}Oh}&3u(^F#&1; zFyV~^!LjXFdw(@yX2*}Fkzc9Y5Uwq3Q`L*YN$1%LcsaKz|u6_)Fo+UHjB`siW z&~lricke{x@#yvcz2WSawDhaO;1(xfi}71R;4SAU(=R`O>H@8Vmb)2!ZDGAJ-FoVG zx^j{onRdDIzST64Tt2@T4hgN*}i_Y3h+Iee(ZqlxCQhr~bY(g;q zgtoM~n_e>yyoj0$?utqLOSGa|eipskI9_>T`Ni)SUzaOP`isxGxsHB)=*5W&A@nvU zUNh0xwDVQE0LC2wd*|o1=bk9K5h~O*GvFE*@(6P z;ER2#5O^56@gX-IQ*SkU@(Vu3+EMkIb377B!~Fk}H&PG_fNMN@Q3zbq0Osn1Lv@UJ zBR{}zL-&M>-f;}Sdj8+$VZOm!JP_5pe~bACtP6kzbt@NP)xuAD25?HRXS&d)0c^C< z$5L&YJAd*~3xOtob{8(tV*V3=7px0`jW*io{fLnQzWcj2&OBQ4=c*Y{3xHa^s0F}F zbrHV6rU7iU(fbqg=r#UiU)^0kfVpvj7XXL!>RP~N25hv^$I;pb&CJjI$wHv1pa zukq$Z4gC@hz=gm7696n}YDWWK$nA{{mb1}DZ%cLPuXg^`CID~Fcl!XGB%Nr7WvHPR z04xMPwDtH#8~x@~qyAj|X9pnf{%cWyg4P58sxP<@sN;UE2LGnE<{S-xUR@>yoh7aZL!+>IVw|#U=zc+UQoQnY51i zU*o-22=G+}L6{~OL)SupC66CRl&ZgFDq9+Cw9!UPbsY}pxiwp#)&8|aJ*Q^H!Fxh=b?TuH${F8} z14@;j$$>?i0N7}wB{9&a1;uAxdq#=;tD|vKKea;0 zW`JN50vm0_)GETmD8HXD9{W!izx{=_0H}BV`WgkjRsi_mUJ%UxgtqMu1oQXl*tCF+ zHd+#A`7ylLng2fk{Chh7l|K840rv(7`7-OEzYkUCwo`nDqV4njWzQY5-{ES|5^I(Pv10Z()9vf}+^{KA3T^I6Xo8P_u{|9Bb z&zYZj=W5ySYxLT(U7RZH%*u|8XGF~3nb`mC@Zq{>L5&>Tguq6>3$+k_Z0|d&&(-~Z zBD4S&0M7hec&9G(@$M!7-;`4eB3$DG7(7(p2m^;WVQ3Qq8+~=+2pQ+lIO8+C_dlxN z{rFD=-(0Ho_hC_h`uDn4`3b?qZu>B{*_ofihSwqhn-JLOD^XopyH4!k7=LZ=v(v8? z?z`Ic_f~qV%Dr{FqPmBfLmRnTi4UHczpKvaH|co?dex1h;4ft=~8LnskZz z*OwVnS`a}HMd*J}5-ey@vqu9?tpO7AHE>M)6G0e)j{_t(&2 zXJp>>`C#qfTlHBhyRan$S`mcT_ysolT6D>S-(vjM?%%TQZ+Ydq{mks{+@LOh3;P9H`EKbEm~;zcy~YVx7xP$a*2&D?viB!E7(Jo@0Aj+~kyz&l3^1m5E#TG&z-#UPjp@HG z-5Lqt_qRj>TCxB7Z*1>B96hQ40Ls#1K6z{Q*cuS%64P%$pg)h^LJ-u*zt%BT?|(UK z@4e`e1pp9}UjObB+`|OGC3_$E*rcJ29-FRV{?}gX(BOnN9GL(1@NMuOSpd}PKjQ~{ zlIvOmYdb!lZ`#_BoH44E43WG-#0Ck=}S0VPl-{Z+|{f;~TzR~YV zddJ^xH5JhK9e6+?@aBvDl{kT0$9M1VA9Bwd{dROuG~uf#gX#YV&X@!DR&sot00000NkvXXu0mjfipTlH literal 0 HcmV?d00001 diff --git a/app/src/main.rs b/app/src/main.rs index 1c1dbd6..dc1d315 100644 --- a/app/src/main.rs +++ b/app/src/main.rs @@ -1,12 +1,18 @@ +#![windows_subsystem = "windows"] + mod network; mod discord; mod utils; use network::api::start_api; use discord::rpc::start_presence; +use utils::tray::init_tray; #[actix_web::main] async fn main() -> std::io::Result<()> { + std::thread::spawn(|| { + init_tray(); + }); let _ = tokio::join!(start_api(), start_presence()); Ok(()) } diff --git a/app/src/network/api.rs b/app/src/network/api.rs index 4eed9c1..cfde47c 100644 --- a/app/src/network/api.rs +++ b/app/src/network/api.rs @@ -3,7 +3,7 @@ use crate::utils::json_database::{save_to_json, PostData}; #[post("/set_presence")] async fn set_presence(data: web::Json) -> HttpResponse { - // println!("{:?}", data); + println!("{:?}", data); let _ = save_to_json(&data); HttpResponse::Ok().finish() } diff --git a/app/src/utils/mod.rs b/app/src/utils/mod.rs index 00db1b7..c259277 100644 --- a/app/src/utils/mod.rs +++ b/app/src/utils/mod.rs @@ -1 +1,2 @@ -pub mod json_database; \ No newline at end of file +pub mod json_database; +pub mod tray; \ No newline at end of file diff --git a/app/src/utils/tray.rs b/app/src/utils/tray.rs new file mode 100644 index 0000000..5fcf634 --- /dev/null +++ b/app/src/utils/tray.rs @@ -0,0 +1,112 @@ +use tray_icon::{ + menu::{Menu, MenuEvent, MenuId, MenuItem}, + TrayIcon, TrayIconBuilder, TrayIconEvent, +}; +use winit::{ + application::ApplicationHandler, + event_loop::EventLoop, platform::windows::EventLoopBuilderExtWindows, +}; +use std::process; + +#[derive(Debug)] +enum UserEvent { + MenuEvent(tray_icon::menu::MenuEvent), +} + +struct Application { + tray_icon: Option, +} + +impl Application { + fn new() -> Application { + Application { tray_icon: None } + } + + fn new_tray_icon() -> TrayIcon { + let path = concat!(env!("CARGO_MANIFEST_DIR"), "/src/icons/32.ico"); + let icon = load_icon(std::path::Path::new(path)); + + TrayIconBuilder::new() + .with_menu(Box::new(Self::new_tray_menu())) + .with_tooltip("HDRezcord") + .with_icon(icon) + .build() + .unwrap() + } + + fn new_tray_menu() -> Menu { + let menu = Menu::new(); + let _ = menu.append(&MenuItem::new("GitHub", true, None)); + let _ = menu.append(&MenuItem::new("Exit", true, None)); + menu + } +} + +impl ApplicationHandler for Application { + fn resumed(&mut self, _event_loop: &winit::event_loop::ActiveEventLoop) {} + + fn window_event( + &mut self, + _event_loop: &winit::event_loop::ActiveEventLoop, + _window_id: winit::window::WindowId, + _event: winit::event::WindowEvent, + ) { + } + + fn new_events( + &mut self, + _event_loop: &winit::event_loop::ActiveEventLoop, + cause: winit::event::StartCause, + ) { + if winit::event::StartCause::Init == cause { + #[cfg(not(target_os = "linux"))] + { + self.tray_icon = Some(Self::new_tray_icon()); + } + } + } + + fn user_event(&mut self, _event_loop: &winit::event_loop::ActiveEventLoop, event: UserEvent) { + // println!("{event:?}"); + match event { + UserEvent::MenuEvent(menu_event) => { + // println!("{:?}", menu_event.id); + if menu_event.id == MenuId("1001".to_string()) { + let _ = open::that("https://git.amok.dev/AmokDev/HDRezcord"); + } else if menu_event.id == MenuId("1002".to_string()) { + process::exit(0); + } + } + } + } +} + +pub fn init_tray() { + let event_loop = EventLoop::::with_user_event().with_any_thread(true).build().unwrap(); + + let proxy = event_loop.create_proxy(); + MenuEvent::set_event_handler(Some(move |event| { + let _ = proxy.send_event(UserEvent::MenuEvent(event)); + })); + + let mut app = Application::new(); + + let _menu_channel = MenuEvent::receiver(); + let _tray_channel = TrayIconEvent::receiver(); + + if let Err(err) = event_loop.run_app(&mut app) { + println!("Error: {:?}", err); + } +} + +fn load_icon(path: &std::path::Path) -> tray_icon::Icon { + let (icon_rgba, icon_width, icon_height) = { + let image = image::open(path) + .expect("Failed to open icon path") + .into_rgba8(); + let (width, height) = image.dimensions(); + let rgba = image.into_raw(); + (rgba, width, height) + }; + tray_icon::Icon::from_rgba(icon_rgba, icon_width, icon_height).expect("Failed to open icon") +} \ No newline at end of file