From 29b2460910a50c9d66e1356e6b2ef729f41d605a Mon Sep 17 00:00:00 2001 From: yanczi Date: Fri, 14 Nov 2025 18:49:17 +0100 Subject: [PATCH] =?UTF-8?q?xxHash=20jest=20teraz=20osobn=C4=85=20bibliotek?= =?UTF-8?q?=C4=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ChunkManager.cpp | 2 +- ChunkManager.h | 2 +- ExtractCargo.cpp | 6 +++--- voidcmd.vcxproj | 12 ++++++------ xxhash.dll | Bin 0 -> 97280 bytes 5 files changed, 11 insertions(+), 11 deletions(-) create mode 100644 xxhash.dll diff --git a/ChunkManager.cpp b/ChunkManager.cpp index e6b28ab..e443766 100644 --- a/ChunkManager.cpp +++ b/ChunkManager.cpp @@ -65,7 +65,7 @@ std::vector ChunkManager::chunked(const std::vector& raw, const bool // Kompresja std::vector ChunkManager::compress_data(const std::vector& input) { - const int level = 3; + const int level = COMPRESSION_LEVEL; // Obs³uga pustego chunku: zwracamy pusty wynik (0 bajtów). if (input.empty()) return {}; diff --git a/ChunkManager.h b/ChunkManager.h index 03cafa5..3a2b83c 100644 --- a/ChunkManager.h +++ b/ChunkManager.h @@ -3,7 +3,6 @@ #include #include #include -#include #include #include #include @@ -17,6 +16,7 @@ #include "EncryptionManager.h" #define BLOCK_SIZE 131072 // 128KB +#define COMPRESSION_LEVEL 3 struct BlockSize { diff --git a/ExtractCargo.cpp b/ExtractCargo.cpp index 5237e44..13bde7f 100644 --- a/ExtractCargo.cpp +++ b/ExtractCargo.cpp @@ -139,12 +139,12 @@ bool ExtractCargo::HashValid(const std::vector& data, const uint64_t& crc) //----------------------------------------------------------------------------- void ExtractCargo::computingBytes(const std::vector& input, std::vector& output, const int16_t& flag) { - CompressingManager cm(eman); + ChunkManager cm(eman); switch (flag) { case 1: - output = cm.decompress(input, false); + output = cm.dechunked(input, false); break; case 2: @@ -152,7 +152,7 @@ void ExtractCargo::computingBytes(const std::vector& input, std::vector_DEBUG;_CONSOLE;%(PreprocessorDefinitions) true stdcpp17 - 3rd\ftxui\include;3rd\libsodium\include;3rd\json\include;3rd\zstd\include;3rd\lz4\include;3rd\xxhash\include + 3rd\ftxui\include;3rd\libsodium\include;3rd\json\include;3rd\zstd\include;3rd\xxhash\include;3rd\xxhash\include Console true - 3rd\zstd\lib\Debug;3rd\ftxui\Debug;3rd\lz4\lib;3rd\libsodium\lib\Debug - liblz4_static.lib;ftxui-component.lib;ftxui-dom.lib;ftxui-screen.lib;libsodium.lib;zstd_static.lib + 3rd\zstd\lib\Debug;3rd\ftxui\Debug;3rd\xxhash\lib\Debug;3rd\libsodium\lib\Debug + ftxui-component.lib;ftxui-dom.lib;ftxui-screen.lib;libsodium.lib;zstd_static.lib;xxhash.lib @@ -122,13 +122,13 @@ NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true stdcpp17 - 3rd\ftxui\include;3rd\libsodium\include;3rd\json\include;3rd\zstd\include;3rd\lz4\include; + 3rd\ftxui\include;3rd\libsodium\include;3rd\json\include;3rd\zstd\include;3rd\xxhash\include; Console true - 3rd\zstd\lib\Release;3rd\libsodium\lib\Release;3rd\ftxui\Release;3rd\lz4\lib - liblz4_static.lib;ftxui-component.lib;ftxui-dom.lib;ftxui-screen.lib;libsodium.lib;zstd_static.lib + 3rd\zstd\lib\Release;3rd\libsodium\lib\Release;3rd\xxhash\lib\Release;3rd\ftxui\Release + ftxui-component.lib;ftxui-dom.lib;ftxui-screen.lib;libsodium.lib;zstd_static.lib;xxhash.lib diff --git a/xxhash.dll b/xxhash.dll new file mode 100644 index 0000000000000000000000000000000000000000..4ee9ba00f85c6a1f2283ce7a91c3149bdf52c2ae GIT binary patch literal 97280 zcmeFa3w#vS**`v;WFcJQ1|%B1)Io#BqI4yw0mN=J*ue%}xoFy=B!obyT+(F2MXgO- zu%t^gTH0!BEmhlETPwC!6SQrj6oR70TWhOtjrQ_R3~!6oDqhoc+%P&2@-HO!gWPRr?@%V%e zU&Z4S=GQH6H0v8yFKeh?Y1UM)TD3Z2F0M5jnpT<1SDED(&NEl8UQ#-PHnrX3s=~Zv?08ULxTcI^5l( z(o-cpcX>@6aSz2wc$Q%-xi;4ryX?s24$MB|cymuyYsw35g zu^)0XOu(Fna5O^CUkK(iS%Dd+jX*&?${{Ob?jX3X$@L2GlsuF-qx>+0^9R9&CNEcT z+X)9=1a5H}xL~km=`zD;V$oLI*e=`m{DnwgLt{e?@%V!52^zMlwu=nDN;5#J?j_ZpJ>WlH=`7DVsC?bgF_o3!b|EvBsxkxV;0xO0US=G7`v0 zAVmV9OFB-#G-A;sI={TNyr|G>onMr1wN@16USdV}nk8KuyCNr9vGSsz746HmHg+|Q zpH;HE92p@iHovIUid7T^?J*}A#=uc!og7S4%l>tuVOY@}rrVA~Mo3!d45E&09z7T+ zL4|7M6u^{pr9~wuQ%EoCAZ8DdxAkDUF?97k$(*a|B~PoiSD>zzLRYThyT`r~-t_C5uzbMxy;LCQSQPj5iK>DK$K8NW)<(+Eu7nh<4|~P|G@m(^#*40WFMT z*cB?K$QT#8P_Y6rC5-6){D#w5l$1-_EFe?{?h^JcrW7vE#T2C3c=k}06Z{;d`5Dwi zE5!)|4Grol+P-zK46=<-bX|@SIZ~qFI+sd%6+BW014nmY+%~MsyRyh!C|2&v_20Yf z;v*adg<=Ns&1{%UB8%n$U@%%JUA)VRJw+({T-Z6t3Z{^i++XM^n%*htithJC@=&eR zzT&q+O=+1Trp@&h<57^NBc}HEy%_$z-8D^rO7Ty_9sfkz4bghEe|mXR!at>!{T5~3 zW*qmlNBgHrNYZY`lqD4?mEO&OIe5RsP*+Hq_)+M3VyD@LOIE+$O- zyOae|syEq_+CRJwCBUks_GB^( z8NsCpc?p-YvukkQarqV51nu{*-0}9|q;ad{w=sY1U5TEn2gv*lP@trcmdOB$|>m@IGqM!GFR*yl4&jmEdN--bg52@ z!k}crd)ROrP1VO$Xzq~wC5faOv{Qfj*MoKLHin3&J@6BRSL=XFGX{<>>+C{U(dIvY zxX*AL=mmqQNwyF0@}FcwJVCW@-%zDg7OX|o;_(yBZbImw22Vytkhw1nV5u-uEjCVYPqT?vR`IA94d;Ynd~R@(Xw|d+OpbUV&bwpsI%99V#PKWZDT>qUoyvMSS35G z)(u5BNzMjU5>--cI>L%MIS?eE+5t6ysgTZ%iAg#I%qD>LSQ@6KBOlhZ5BY1RlL^y` zZBebXu`e3rL*uK6H4|3G4-6(KopJ^?7dCoGi+1F&6GYB%>R5h5hEK&)MXZILCc)wj z3Sp1E{O_EN-|_nlyAl|! z*e(u^v=BvqVB($+7tv^Yve^Ut3_0Z_8pP(07Y}sqmLeR^Dos$vs^m5fR{Bvfz zz5IECLbQBPVI}o)m7{ujFQ8N}m)t}zX925AD2D6cO7!x;wO<1i*@1)JqFO><4%cv{6`^xaF`Xwe0vTWU4v=yz`S@VhWp(4d;qC;$uoc<>O5)wb|c?YHOg@#hZo^8t;7l6cSWw#jITW3Ow+T*}K(RmaDUK?Inp^Sx=U7 z38H89YM~Ic|9PKc40vdp+<#Hiek{O#hqCq*N0gvPMv*$Dd^{TQD!&;?D8IK{D_@qS zYA~^1z*7b_@Ih7-t+OtASQivqum%hQ4;3ji-kz;;U?&`jtK;Z0Pf&X72HZV@G;jGU z($O7tX+$YP9dbM>W#_D;@2cXEi!qwJGGF@((O<=7b%GAE6WvjowuvF|x9ly1tteq( z4(t^ccOW6G+wp)}&&QNMen{<2HjR`Cb^jd9M68yFib?@au{G-a)0rQAsK}x%HXV&w z#2?;84km0NB1TtXNf!zU#XQ47`Hldfn<0r!)9zBibs>QXM8(SzN8p6>>>lioQtZgzqG-nE#TW4KN%c2q#k*(FKR+Ii zbDpiJRa=#By(Si=XH7ztgR4!C7H85fkWjnJMYOLeZEU2qV1=AdF=1G;hwpf*pw4_p6yp6??x$e-g64cPeb)1ghP$`gdJ~2AZz6 zHdDq)$AhP%M|)0m=619#G%X}4L8OExXFU)AO|(3dQ*jOuoQks!yNdYEHj-HvX3kLl za^PZimaVL%dY@kK9Sm>S-Ztkzc+-2?bo|Q5mAtb5tX|pc#qe2!mdBq=tg2mw1nt8x z%avZZtC?#-SU~FPeaQBS&!X-^#D~626AZirQ;K?5(kbhOc)<%*FySN+N3{|Tg8v2J zQwL2?4HrJ7`b{oaaHmZe!}LBrNDR}96xkQujp;;rQIXSIUw9i`;(5@G&Ke#36vM@D zDh@Z(ad^m2Enk6hc$pHk;stXlPJaHt?HFIvVG8vPs5&rWV7Mp*`;(ql-0JeY&wbFj z9IkHdqXQc$`)oB03(5f{QO1KfQUIe20xEd#`ZI539GqiP;!%*`LT-My9YC%85``uo zmGX%imGV_FpN}LJ&-~fXA5IkKdy83PurDDO3H||7=r1lmp{O&5ed+SuutYq@ZOs`e zC2ZU&!E8&FBt0R@M`mH`I3K}JC4&xlwgaAqgz_QxCxHgD5*T&Lj=E_@?SOQ3v{xw* z_8I?)$DP&;PW{jgVxx2I%e?udA_R6=YGGEELnO@9NM8GQ0*TLqWV{E7aDE^pKlLEV z@*sKEn}0A$mU)1)JxH$i=BGzO=429Y1+IA!gllF~mpQHhyZt5T=+f9uw?nx?gg)Dk zlR1!+>4?|29ml<74IC++7})T#kS-J0J~0x^WHGzVX;_%h^N9E2@#S6YE#y(t1Fz|| zitS^7h{d)a^epe<0}DtYB&&H@1OZxp)Z;F1g@@k4h7dkID(cc$ONv)A>pb|hl|?!70~pr zg#$}qKI)J#ACV5T>mr_b`%pN3^oIxH_?kn)b#)qChiq=s1WB^FiG5uQTKYrTUa|do z|Dmw@(hm;A>bDLF*Vhk->$8W1>oaL^9kST61WB^k4jIX>?ik$FMfM}XQ2!42+=R(4 zd+ShSUn7`@>ZC^>60Rc;i0jEW4~4GBZXawDhb*>h1<8k$ec4BW|-e1J@#4tFYj%nr0Z^nr;|}BYiy5z202Zj3kz&XHIc9rmDCr!lhJx!)LLmlEoF~-KBOm zs4mB{>n4`HK7Z5rEIquWVcVz~H0KUYxiXMMrbD9^JQ??hfJFfqU8Nyx$Li;)Alqz=0S zX{)E6XRtah#7u;97m`zYy| z1f(GzJb3p*zyJkXTC&@&<+2NPvCfnmnzBlSlmoQY`Q3}=%-nSPxGStla`XdCr!Ie- z=j|xSx4P{Kq%}W*IX{{Ie20HDnone`bL`+cZ-Z;j$W%#!bGMEtJEq~{+7>k3THI5}WyB}K5LvoatIYbgth zDXU{W1a`r-J=JL%Q41^9c1cZ{AG_upqIiVR%7meSZS-bLWRIgRac&UjbeFk1HEMS- zXsKB%mZ^9Qm(zF-D61nam9~lHh@8mLD>dkIbdP<$6t zQ;l{S%^xrycjRFt@L_EcPcC7f*6X(fx&%2lc%UKIUN#FNfaihal7rxx?SaP8M-QIW z$t4HD9LJH|b_t_D4yWgIn`d?64W3*4Ynp&0S2ClgVoWO$h4#bm~hQmU2Yz5L+;Y`x|5fP1eZk z6O{ZFhXZihF&R}#yF`@ON7;^pwgv?ivY)@1RJa3`P~o~@b?VQhLM@^70(yy{!~)uL zN|3eFHtbzYt9GlT-6ZZIG~JZ5px&Zjw@}oBw-<)cU(4QRawks$3K8>6xzu*Ge+Tyc zEgmmio9SvWh?EYA* z!#z6*B!V^@y~8<1>EJ_e@$|SM+k;R|dyY73JuzzjD<(#lK1v&u30OTRV3T$u-Lj(@ zq$aF9F(Rg%7m@f5to-q9cf8&qiKCBN%oYqkT~>D= z7~_LmcM6YwNvf{H=>xPPY*#T0=OM~--{XR(Q5AuF@p$UpkzfB)nMjDR^9J4H zq`_$PIyu^H+IgBfOShM;*Q|PJ$bn#GsDeG5K8W0I#!knle=9$rp;6wHi z95kXks=Pg4d5xjuCDVH=cg-jG9I=wy@nF+^Q2b5woqloan4wuY4M(SiYKL}kR*WD< zBt1wQ2pc$uHiIcp7x?J0zqSvwDtS|i(e9AFmRX>~;}$Blcv0aG6xX1Rtes-Yc*IAu zB9pLve4-uIdM;ZZt#hF(XOV*3H~)bqV5zX8gqH@5aD80({GP?oh!lH>L@^dSJ@x}? za*?Jx;(R37N<(DI`rPuYY%#-xM9sjpAuO9D9tvFBE2fS7sx>leqBw<|5F{AX&+vQg z|B;mgC8^9v$yxC)RtVux%WV~7y4*?~2dD&i_GR=P7rgZV;4mVBJ8ks3mF6FylIgUO z?}AS}0Jtb6(MF$JX`fz+dYRXSTyl{zdruk|$2{|siQnfU{#M#bkh1+ zlJ{dOz4|VBnzktCXWn{^R)@0_Q=xBTfRAFQ#=DR=6*e(7xAEM|5zU7S2QyVl$Cpk9iNx&=Ub1v2ncvRei7S<51bh077xgRm>r?$lFI@n@#piCsYH zup}!tg)HC-;)K=I#?K%&HEQQx-sO^qcet_-KwX)pt~g<<#RESeb*f>VjsA5eDHyaA z77yUvpK)G2)-V2?-iGc2(G7m_=W(2AYzIO!oxe1FMatfv<4vaEtO& zih@f6s{s(W1d0Q@h%Y#1Ue(WQx^L9|1cCUp6GRwM1ur4}dzCHjG?pryv%PYEU{i5b)# zqJRiH)$o>Xik=~Uz=jEnC}5!;WZ65S3hj+*n8nkh6_&0cw8s8#28cjXlE;XlscO@cC)T7gwvuLrKi$hkDILNE*c z`FL8L_p}nQC>6VV5QggTq70@GLC-OPPPso*+@BfCDWZ*hxx}hLfO)!f8|^w&w}A!c zCzS@pS_ig!UB^)N36s*c9<@UyPpdsHbq-VdBFqxR3fc8myay*X--;k941nHJp?ApR zmGY7ocki`tt5dq>tV+h!b+TOummb&W;9{ILI}=yT8)4>0!2E&vBkV3@;Y@tL z4`5e={?)Tj=B!~;>?g5l2fQY0W6!fY*RGXg(0X`6{^&7@1wyg20g0|krdi3J>aBo0 zw*pFw^)xM?bH9{fB<<7;?1^of?#87XNxy@67Q0SyK1s2ZY8frIo_d+y36HKuKg#hq zo@Q1va1TLEd!8aL==L;c{+==(@u5u8qa7}od-Ox0QV4I9=mPTqE*Xwx7mj)cy7cz1 zJtOu$LY-Ved-ia;XiYKyvjuwZLydhM@<<9g3www`veNUw2FWU`!`%o(vd-$L!J{l5 zEu$UPcQ~V}iqUUu9x{^8&&CMBc<=ATz z`mrSwwz)r#bHe=MfES>bwFRJE)U#hbHGJk7?9GI*Q=(51ZzUM^$41>RV_%X}bc`Ee zdiml_6*#|oE)#@kyf4RzBjTVLJ%&B6lBOaZC}dwuN}_`fLmdQvz6XEA!SBAedgC4{ z(rw~(&S?iXk)HmRy?lhjy|G~G$!K*n+kfBTu6@WMYWHluyr&puZAV>}PM9ufZ#_oR zwy1OY&>?Z!b3x$11|CS*%JT!hT3iH>> zdOe(KFGs+6^z+$*oCOrg0Izjm@v3>gb?DXj#`wTw4XK&%`*)$@u1a|P44jv93>WdP})btSN zS^We#9@2$i@J4@o*xB@xRZ=i;KW37f_+SYj1L}q5P>LCF$dRucg-A-+h``VsIVWK= z^%i0=cLm|5xC(QLgAb#3zW!-7PI?*{O8+5_K&Fue-&}|rCt9ZNQH%kd79UNcm~8gg zd%ptcTv~;*t+`#f?QuRQ8@#gScK0C)9zi>0@|+B1?t>jqnLHvxS;D&~>g8yh30I#e z^Gn%w<@XcW!*mt*d55Q|;i`%n4wQ1xk*Mp|P4b!}^iXL;MnXRH8>t^ZqM%zh@pQdX z6w)x@O?{bZE2q1NwQkpV5Fm9q~{qQh^zP65S)T;(`*Xd=7ezKY9E=OHq&a-0( zv)A@mm9WPuW{R_brBW!;*CY?K?y5la3eF>twya%14Ac;Mm9ger*R`1RZNSaeN!jJ7 zmbPi(&)G|}tXAo5e9)ab^HB~ry?k5t_K^sTN8!#Q#60treJqIii}Kv@NTvrEkM^TP zeWm6}oP6XUqF~jF`q&9JWNgu|Ahqh3W*sOMb`oaNCiX+wrJts1t*vs<#hO{hAw`h4 zZSb)M=Nk(979oSZ)4D1_gsPQ7LTd|A;qx}8CfA{ljA&m8J;78pjY%&-OY{6D0H#pA zsGweg)*OrV>jG9M0Cf%pDqLk9A!cFGfpNFqzU4}J#fnoW2O`=*>hL+8ERkAz@t}zg z!J~?Y7LI~S2xk%+WJ@Z4vl5!Jao`jII9$6QO%UE%x^qSTThx$_r->oX1ae6v5~WNi zA>3#Z5P9gTG+lY{NGF>Eit*_Lhf%!OEWI9Ey&{W|vTdap+9lcsJc!krP_)roC~rTL zS_@o<8IFd*ifxi&!Mj$|dlD{FiVHn4!I%Rs^o!(3fD7kExmLvmoE-ZexRB+JdjFaU z%rCX{bQOG7Lb0P&J3~%CBxEY|i%--|v~+iY1J@wz_Vw~Q+YszJ3?NLEghR9Qaf&YL zflPr&WTZ1j?q! zXQ5Z(R5n5FBi1P~u~c=xP~aLedbORb#czDdgjO~%p z_Ky`7=4&jI5?D&%$K`Q*kljCo6b^0ZXR(${Z|vF6v5V+Mi)ByO$tv0c2GECee@nby z@ASa^O4qZ03l{(OL+V=Ao>T`t)V)6tbyJavvmYN=-zV_fJIbrD0f?;^fqhgYaRNZU zJ+2P{Xc=hT+R>fPQGmoK+yxBaQXL3btN@B2B9kihJlBUNT~*{$72m`{hdsKP2(*@= zi$eR$EYK=VJd!7+lrU5(H;!rUQH4^^juUEj5wHJ1)#v%euB^nSbNipq@I&ski#dn{=@L}MsnQqCYHT80fo`u zj_PEXW`UXqHH#Y`fqI_2gYrl+i*MhKtd#)$C>xfa zz)Fm%rEcJ!N3Cqm30-92fnrkIxrTe8`plzq$QJdyki;0am({cDkRZ2hYqsa@0B-EH z>2Ee%^1R}1U9$CipxJ`6ZLA!sLz>e`d0gl>loB`x9tC9IEjbznhK-V;z9Qtl=kd92 z81|drr)b2m#oXZUy0;=L!;$t1|beOXOmU9lOx(eOK&tz`@P*IG?@{W-Mre6TO6`2q;~<6{dqGpZtWjs5oM?z2 zKay3Qid5NibW_F5uac&w>!$RxP*ou|J2$B<*2iXv6~n%#^Pv{-7seVU`MWaP2n<3=^)CY#x2ute*vJQP_E+$!gU@13Go306rY7Xj2oLiZ*!T*|Ghz6JM$U zigkpNHM7#6^8fPT#D}dm=Sw>3F}dB#CkRB7>{b(0h0;;gOR8kpOHgH6ZQ2pEMKB2D zgE@ZtFdaRtnV_eSVrbKYSm1WqQ=~T7tbKw z&2ID|_m#R%ce@&0p3hXV*2AFP?P>+m67nZWL1I^2#&($?)U)r^*{w3!c6rt;gQm2MQOVJi+()c1ipb$@Fw#ycSJXuk1rF= z--^sY^!vE8z_mjxh5H~CWNcAi+roFY_t79}ND%ydYS;orv)kt9_p$GGp&)(VbqqsJ zVZhYYfS#~T)})=aBechH^c`fI{pUF|Hv5^xEE2mP_70s4k;ARPki?kEwtu!yEo*cEXBb z02rK-W?VS?;Cv#oi%zvqIMq($N^S)WQVeGcA@-jS*>gpJU{5$WXwQA}3D5!tbkFTV zGJVfgea1UKR5`lm4##T1&iNLQsh%qx3O)D9Zy>9MuMVZ@xd-gO(Y86I-+Yw z<7tSvQRH?oB8F(cWv`ls&>qhNevduYLsPKF+o3+`k{i_d70hfmp~Psap>A&?kVp=R zcAZEP-JkE&R13N-YNiUEn@HQg)9X~#me&t4XCOkmVrybocpAJF@%H!CF6>Zb#mYdk zPLOO?CvvI|*s5!3C*KDOhu!E}nz%-E_@~;%(kQsZyk!XaD*L)#>lBX0U-GQ7H6E_{ zmUA4054Y&s(x~^`_h(~6w!e;Rk*&a;zgBh-pbpWP$u_s?Hd#(FX-|nG9cS@X5qLxz zo#&&R)G~7V@g}5v^^_HxajpFVwc_9w+wDL$P2+$Kh3t9%JYYk=CKh~=aVtVtqOrE} zgEbVk@A}t)8X6G14$Z;R;2Yzn)p}OZwmoue^3m7tn$0(y&nlYTT9z}r^`g;pT66L2 zEjRt|JzK2{@l~JJ6-9*?^Mm>&FW{u073-gN)YTVTtvC%HdpB@g$XL2Ga2(&~;WNgI zbFG@u(_5}O`8_J4X$(FIG(86g`C85@W=2H54u%Jn^QY(94>sU%)FW1OSN@DoT(!fB z0ihLJ$RkZFaQp}l1c&$)Y9dPi7n;XU5aLK05R}9#K%zN2_PiB)wE{1qKpqRN)<}^R zdu!VCt1BuH4VTB>vSJHz&#xIh<(!tQrYWMwo?lZwg+!mza#krDQdF0oADcfV*Y=a@ zowK7m^Jg>}SK-Gdfrcl0tqL%JN1~4?@;AN^S&4`Kp`7?G3vcfJD{x%7VYJL3x~8LB zt{f+ku`O2?N@PUKmB%m=$(JXo&ZC`&H=l9YZSC;p_h@r9;4 zAh6;^Ur4V?Y{`2jHiJb8vbLNKNI zeEkOxr|k)7wSy=rsKHGO4Jq%B0u>&x<1PP~5$)U0Qvpm>@$ot^OMbVV747q(mz^vb zR!vAgz)+=+yrSiLoCbgE4_3`?>jXKcTB^R1B@fJFIX-<3MUK6N@?#-966Z1YY&;}K zGact_>lfr5GtR% zR}LW#S1*Sa@%V!odE+04ZQz$8y7QO5)g6yF`5v*lcjxy{TN#fJ#wzm1tKjfC{3IK! z0Zda4Mfl=Dkr63o;EUul$cjv7kR6#hFpFwNC*2u ze}D-LjJIzE>k#8Wz+MWwV9f6rM;f~vOsUFAoQD9d7R=mG$k5@30lR+&e``CEH4wD36*E%pc>LzdFZpqUw!B-f1lVH$+vPtAEo7ku5}^h0Jg~R( z^C%O5C8wlo;BtE*vM6nBGtp8ba;}(@J;xy|GKE$L06Am=JEAe6ioCER)%Y4w*OgkvcZ zS-%OEsF&!>JbY{_%TdX5$Zog4NYT%w=wH7)9^d8vZ+x+cf69iwOPG?UnF!gR0DyGJ zrd;ACls$t0kU&v-H#d|y;r**}{HUYH{%OaR=s(e!8~6=_uh6P;K|Wdvk_#65BEuPE zHJ!(oW~$H?;Iw$6@oYc)Gnr0|uQw4}$ zYhgoI03<16D$pin`~rB}Nu{BP&2Bm~r5S!7EI~=uz>z8CUjhb}4^YZMBzWi>XNY!u z9CqX=XplbeiMN@TU600_^l#063Wp6ZKnDAOj1HJ>p?{G0urv0E6EBVzOx_Q;wBz28 z?Fpg~5MjKb$9{na>7xf8zr6NChl$@<9cI@pheeVq53=ic26Jd+Ac_N^yr0v?VGpNA zg}WfUNEJ=c^yS0Y--0V^<_Bp4-{=Cm0}UqW@s+yxvVafdpF+6@Ik<=Ho8Le7J$ph6 zF21DfV*Hf!ewaQqa|>SVw|Fue->gGUZ0768m=)Wnrm<0U+zr`;-1v0UczkQ(*st?b z8#%PC-`fVl{=Xt#5j%gh)u!LmY`vvuA8O2w_7_=gpEoNo-D^`P5bb;5{H)k{fXzDv zh&Y7R1L;kSM{R(spZ{WhT}7M!dFHp}`4Mc#*8v0`GIrYGi)U?l12?Jy95~MV2jbJ zEk@Q9w zjW7xH6v?(PV@{j@_GCCqasf0j9IUTur`d7njQ!qu@m9=99P8l zl|ypHWt~_*#^=O#RUly*9MAfj`aEf`P zfzGjumC&(uja{f=wcRI$oOoJor~d_=q?69no{j-yLsw)1yuyFutae50iP*S1VWLpO zYAFhAtcJM_WNq`!+4yGD2x}vJ;swY-rNiO{uM0JSjb|Z;1XO`2IR0XM-U8{*zAJR_ z1+fqui{xPL0D~^w3CrC{8C_SSG*waHOy%C z`vM!VW-$79(+~j&@3x_+8N&b*z<`mJB#eajQj$p)M^~S&R-x&QJuelBr5-&fxvsR2 zFZL+mZ$Mp5bKXs$d1Dv%5a?1HkRs7!fLJO5<-6(mN!P{~$UvaH7jRbyr{HOJY-haS ztbM{zlMnnUEwf+KXxOjMt`9P*Gq?;ynCXgWeNgmhx9uCSUx!w!${x~`i{q9=sVqI*14)a1d-RT~uyXx8` zr~9wTP)Cx}?PpG#|Keo0XC&8gy6dSZD5Dh0EbD+Ram*jh#yp<)mPJh8f*;`kaLW!l z;1A_>VIbY$&=m{ifpz{0E_fqFh4jI}*|9(1MQJrdv0uHEj$=Ok?UNOl89~}Rt=My{ zXIe3AMu8{#$9+W-eSI}c@baPqjxaL^*BOP?Io|Y8j&bC5v$?kZ;Z(byY zm{rFMeu`+k;C|eoTUH)GphcxZ---8%j zEb=;a%=uO*5a!*>n!9p*Y&nr1%e(nOBCg0WolLx=k+;LiM8%G;fx^Eo#PT3j+bPEK zK9ckY^3hIv*B2DRWa(kz%3YmeEw0C35OL*#;b5#si@|@l*bLYD;dQQQ!@I7jyY^oMs3JLXTpXBzGT{#_v==)HISCj_rWVc z-1VVm%&~(v{^&9m(u|Qt`xFk5V2p;aj*NH=Ay+Y0&7jr)G&Ho!-+{Yg?B|G)F|6k- zV@w+`YtEwsk3xi3VoqV-`T38;c+$w+>0j&Ul$$|n zyrBPiiVzb5r0_XCEU6(b5RHvuHK72_R=nU*f+0UdNrjBaIsE8FDS$=h_ap8zz<#s%VZ6|{Ukr|>9QsaVaCD@<+Q9>qD8V+N!ET0Z0!SC`1jRA zXE4MOE5ybi!u=&(()VA#%WA_GbiCjR5(+t@8$+z|f}Ke7JAN>##HVeLe}CG1B7tlE zJ`1U=?mpCFB&9xEHwR^k|BuH>0Gm6ZM}I~NkOYsW{<5n_X$OePDA_UPwwF%5c@j`h z^UuJ0y^+J=kES4E;RWtie;r~2v+S4o1|<2mJn%?11+0z|2Z59eL9PCMzf{sP6`Bb| z7)|$(U*rz5jCrwyl126|AdiH01%Ye)4xvyR#LW?4&*T>8sJpe+!=kyL)cX zfT+uVfO7k=iGzyq```ZWqs;9!l%IXX0!K2!Id+nxJ#bi5Q>)J&qf22>VpS}aZ(+lV zuueR%KuC{0@?w1a0lz9%Bmzw0Eor|VTWa(V&_O<9`1O*|StKJr@wpOhEda?SNN(VP z&^UtR!svY1NWgBblRpff`3B7u&QDXbP__g7jqR6Stj)g|k z=UNT;F>RHKjV{6iAoLYxH{$!;z>qWW5M10r1mMwKx~RzK&nFBPj0SeihOPyB#yL~E z2I@&IhD?%;$4n0xGv|CBM$e)J%u!++U6hcT7H6v?wU*NGEM4OSBEu8_zY>UI5ndrt zj>3p9D6tL&k4Z{P$B53W1pyO-uxn?&h^H|2jq~Dhtb<8lg*}Sq#HVU#PMZ{B@Q-;W z1~dqi^MQR<;NCHWFv+)RM8=X#lhQA4%Gu_F>~~C|>@C-l(-S4~9V_iea_x=S(rO<# z-2REmAVInIU*{roC?;7SPmwkPMmqe5Zdb z8t~bB2x|Wz?A5|}`wHYLt&D<>I#GH6$twFGetiE2-wz4g@9*ePi-T>x{#RhKc)`6H zfe|UtF&`d5`H^AImF6Eq17Lf)1J^{Oy%IR=VpAcS($#-6;3*eok4a=-gY1E|obs4l z2PtcIdH~$445PGg#JG9PZ_vu1EuRs1t+NpI`AIAdA_^2>%gqa;nqOB#`F`w{>S{av zk3Rq@iZ#_GzBQ1(#~fO&!e`6JLP>!SZQx zOjB(8ZB;wy@p*8>5K$~tgfY!%=JQct%B3Sfh!N?44>>$6ZPM!<`#%>*hrwelK5-2K zW7fcE&RFwq<~aY=A)MYOJPLGhz=E0pi>i6VQA(;n(Gh$K8MLb|B-4zUXligzRzx}S zgBtxoHY}Dv>yNV+^I6`19m_U2PeA`=xj8UG3<;7jm}w52Hh`yI+`Gf`2~1k-TT`nP zt187#6|CJ3>N zTCaKkut#(_3QGWE7^b#Z_I7gj$^I1dX0>gQV=rnl-HYuePNp|YUcBJ%k5L2o!Yh}@ z;5?kNF!&wIk#A9ASQsR)dFojNAHwe{irAdCkdQS`%EF)>*x;@4(HjuYCuq_vDoI*4 zFYs+*AIgx|3=S00HzD@=UAt6PfnkIY-GDp*3h@rMcBJD4Uq>U@@onNkjgUI15yC@u zB=Bgy%*6~6t6bS2QOA`_{86@zktANQ7g1!FgYR;qX&e!h!H7pG$vy`)w`2Q`TKG`g zcdlOFZv^Y3mc3iaIm8}R0;)q&Es-z{e;1qFvGSr7>I~7Szyml`M19CpZWFux2D3~M zPb>!|UdGFNXTy-9Y3EShy*Tm!_)>~8hoWS=YW~wS979VB8ni&0nKb2FC0Wi?+4;aG zs-hd>=9%i1O9p1lg^Af6L;#>@2Myw|wREPRa5g8TdlyF^@?l2->lBu$iO&#SIjsuF zKRm&FNFZMDQqQ1i!65$i1OWbq-b5X0F_|!1N^2Td_BDM;647;qIZaDd{yNk2e|yb`2_wTcG(BxKj#DDhr{%^QO92wia;2aS+@GwRWg@3>Y z29tV1O8KR5N)QL0&ZO@y?*6XEcdCLP-dP3{#dhVOT7ut0S4w;TgKB6Gj|53w0I8G- zsRNHWSzZt;beo?@^mNR~NLJ-<{FtmcsB1X&HN9Uxl=kX=hW6H{v?s%?sm2SoOg&&G zzvMYZ`XB-vMd&a=Pn(~=Tw?i~K@!nn1?|83N)^v1R&)$5y(jhPjT%w8WCnHS3@jMe zj@XqW$F~NCBLZB8GKTlLV07rw_SBZwcsEGE?5j1sS;>A%(x!o|Yaj;qM9y+$6LPLO zXpe&9Iev`lwz?5Y(E|TX-W8B0LDa*Sos0)!;a2an`~L&2o9Z7?`+4K#Kdqzze`wCXw8SS zCN+MdtDcV2f%e(wa{iV#^Be>-y49Q#x-`^KjtB?(G;>O?1P6^z_|jbtn2Y(J{yqYA z<{*Te=9y331&o1>CYspk-+_eBz7BD?_rS(HM%waD#F;t!`Z1CjS?fHY-%=Fh{1H23 zt55{tU+R>=t5|KDrP#g=ji9UyD|k$?%(4z+1dv$@SzzN&(0IJyx80n*UD9;43zds} z`*;UxBT_8NTiC#dtOn*YwqF%Ct%w&~tE(?^2vDS9as6z*w0@pb;H4~AQTEB?Hh+d1 zR%~+-g~Mm-uarRzEjuVZJc0C<^mt0Vvi~^Z`uT1Ijt%Ds3gx8C0;}z(Me<{(Eqi&U z3CjJ~_eeAjlx(bm=0sw*trm$vp7t{sD7e7JgtlDD{*)+tAW;Ule0rDYBe0Q^a9JGW z{T#3*PuthKaFMUzVa`LywPH`k3!dR)N4y~cRWC#SeNO&^lE07n7kcw=M?Ma+F#k-> zX)SeHUky=h1-D53N7(ePZt&I|FPQeEsPar{ZUw4S8*Sv1YMK#JN1G@J9BsWI^&c$tDfx`38KG6?agNja19yhQz$5_?r!!M)P-PBaa>e1cq|V(fW2hVe^D zgWbJ&YPj)*z{YiO(_Aa~0vmDAHx6$edh=lLOyH}2Xw$N4R8;F^^$g z*eGYX;vC~NhV@g8Aj8OHmA|gSs4$kcmRDTG9vilA$#YcOWX21Q0_W_i1*+SG%Vged zuhl@YNBWn-)qfm);N!#@nkQe^uE#_A@03+i0R($=Ho$)epinx@>e8mA2!SMsO;41f-k2b%2N zs&Fm}&toB4K_T}!?@=XkyrRm&5japH=ZLDjl;C^^&6d>3jwxXz?=ibDfylJ(4DL$+9w2IiPOUqlQlywA! z#RdP3GmCR#FUJeMi5+!#hQNkp*w84C&H4&nty*iv=KRCX8AZwAU>ORS(ZNRuOQ)g7 zoyDA*va?WnT@dk>vwVD5P|-FTg~uVIEbzcZ<0ic}EAT+su-Vy9mBs#37W>mI_@Cpk zp5dvV(ao{)M~i0cYZw{(&!qh`B9EF4`SC}}W<1~UGH!tle}s18kCd05{{7pruAEdc z?eyyq32c0rTKf*af8FZ83OPdg-N@YOUxTD?U^q;wh6V78my_l$~f8oR8v1*+NRUT7~~@NJZD0LJyI`~e)g3T#**31Y~P7p&75N*su`1&gFj zG=2%^#<1mCtAY17Y!qpe1cwUa1!rsAoQ?z@n03jFN16_c%~?I;$+g3?=lo{I+YLv7 z2Sp7V3P?ju-;slVv001AC?-}$?D=@Xxt+9$oc}^nC3BUoZWC)Y{8-jL7@?QY{oNd@?zaH&f3{9 zEZ#li(T3M!3m$1Ji^s}$=78B{XkphxxN)PbHK%A!?6*n^R5m!*VsGvPCeSNQlm}+L z9xwPRcFA#Ui&6pEEl9a+19ChdiC8q&+$^>ID)0A-hx&NI8@mMPNtICkvk4%|lX8Y*jr?kaQ2 zTCLo&*6?UK>d&8Nj+N(x09xc^_?U6}XKGh9b&4Oqe0O%NVsxnGwdJd7XOHT3GP6|X zsz~jMQQa6BMq)TQhNdKQ{$mi4z06}a<)mOPYl_r4NHpf!RgvX`FxQmLDR(iOE@sog zY+{#mv^>Rszbxk9mj;X2vp6@$fx9=qfv{PkuOkZUhPfBzOx*YBcwlB1-b;vt6X~j9 zS@_BAM7o~oU?LqJmTg4LM7oOU{6xAQ>83!;KmJxsMtXd${(M9nnP+Jw2VA(aVr`g*!&ct9XNe!9E^2QCbXODw3Mw|Dh6e_6AgG=3@0G#n(vaVtXBVe zL>yo=mlN_`b(%EQNfjK}mK@}TB(vzM$sI+9K;pPv{!6#0z4BfDOArHX@DBbZh+5G; z9J%*@4pGpZKM~)?Cf$>E`9G-vWBy{qqCGjS{^M97=0Al&wC^9NHvv&y&&Z_#+zDPF zI$y8V{fcRg>cwe)b{DFX$c=mgg#pCf8SD=B4YQ*AhXppyMAk0<{dmPB8&EO-eTYSS za&Z<95rF1K`%KWaewY77WcUT9U0}>s|5p(KU0WDL`~D5OS`lR}G@0Eyleea`Rf`k* zP}iEtdlR@U2OuUrXz?7xqCKHj|1_e(d3*-Zz88RP2BN@L3~bGm4v*%X#NxpAeK>O9 zKU$R+qCA)7jf0!2Lj7?Q<3^6r>W_R!(2eW1^T9vPV?aRITHr13Wax=Ubz*rt@nVj1 z!pPr=1Rm8*M@>A~xOyxI_#w-qeZN8b-$4}B*}lp47OYl-x(l{Xc?#pWI)O`(QfXk^DR4{!O`WlKT~Mf8!p~cA4C(4?W zU~3>QI23VEl1l_mYnSY9DdqQ016#Ud{M2STrV{Y2b1cw+OXw+z%_^GdH;k^P5xZuo zbG^e6!Lc(VHp?6W+5c7}$?%ntKt=)?31lRYkw8WQ83|-0kdZ(}0vQQpB#@CnMgoH+ zz+HmOUq%8M31lRYkw8WQ83|-0kdZ(}0v|vE9sgM|?Swl%`|GQGEvLLS;qGJp^z6$1 zX#2NbXb9bL#{<7ucHCp@|8~KiuD`Ck=JUN@-V<+_(2;vyb`}lpIJFVw?SMUDAy2d51{`RNQsm}~N^4pfJ@plfd88|ZUzb<-U-ydf` zbHsuZPky%U)=5YFy7J4P`Tl#?@9%i(ir&+nnDyB7>%VbCPVqgzfA`S`KO4IG?e%Bg zdc(4dkC^z#wO^kwA_Zza5l=EB}-aXTPSdPy6-$QQ(ws{fETgtm~)JPkYV9)%zjw_Z@(K6ZnIt zemMDrbp85<)k~UcB8%#lFRKGuqanp69sAp=;T`_kKVbW8<52z_d)$^xuZx28P@kd6 zA5I=&T|d=c!o-bh>xaa@P1jHDPsH7Y%lOoXqd#BQPo=*es6)7_J|zBnU4KP&V`N^W zVR?Nmkm7IEVwGx~xB9$lIJF++<>Knq@KuP1aCLpa_EGha{v3Ph)9t1DSZ92x4}Lg# zH|zQbI<)_wP9Ku6J^-*I-;i$4q02$#_}AVKNRKl< z^y&I){*f3b>(CJSojOJF@3a@xX@`!FD|GqS?F~iWvnllT{(nqgpKdQzKgC*p^(7zD z{&oFSf8+Se-VcetPuEZNm&D(ND>(JT(I5JN_0e?ZFC&2uEP;Eme)C>KA<8dR_H9m6 z;kxN6+^WMq9Tv_|`HtUY=)LAes%tJcs~c7~ty*G6>T1n3)eXz5u>dholBQ2G*H$;0 zHLDvMn(8C9OC~$?%ufM5$z0xOF0Ng^YMI&8Si8hryF602x+$WwmakeKSzf(j`4t`v z4yFT#s+|>0wdU%j=B#;PA!pU3}5eQm>v^=4!B8njnk)3Ca+(X2L?Hm$0OEML9K ztf^kHVzOz@uLEKD-_+QIjP-zMsBLUo5g|T;kYZ1*CABpxsv9%|=IT|oE>O+tRcrW3 zTA(I#-b(eWm*b1K4Q6uXYIDi*rAuoYP$>1FFV|8Ci|?8&`sUHd`I3 zHY4lnYt1_9s#+9KZLXj|z$J?zh}lb_UkHNwB)P&$^@>x>^{boAMks5=5_4sBD-qi;Wcm8$p?AEJ58y zqaJzH#(JdZ8uNk0H0A)N5&x=*vf>wXohMEp*2xddQhLc}k^;wBtW(s~somXj9t~?6tOm9%}J=W#_JgLSJ;- z8{`X^aW)zlS&rU2-8>6P`5Rd#wjyq5RnyAF=>F`OPA77ZPd7EZ6O5dPp5nzWI>-bo4uXL^SJYLW0RM4Tqt93sZtx=KeJ(4_!Ge}lbyJ_*J zI1JZ(62N_5QhYWyB=gH3S>eyC@P}3Sb1M8P75trRvau z94bFteh%dXu`I{Dp!Rgads_(k91I_ESf6ZdK~=kGtAfY1$7wG zVOWP%I((n#4hS}O*^$c$z`cYo;5x?g8OKajf^f?4b2!F0T`O8QkBY}(r z{#Qz1?!5AO%L>0Wrr^6T%>LmQO>^;rWp(t5=T2X^0F&&-h3l(V)m*WBVYp%S7i%w% ztY5fpomJgfw{UUO@)b)K)~u|)yjI7{YZo^yLowFNb(8CtELP$=3IQ+vjaNbDo{_-& zlE9T?jSqC5;(Z~{0A(cbzf1yS4$t(L|79xuNZIja`HZZ3JgXR&WsIAWU+=>Ys|}ly zRqq>_WsICMtlk&MG6GXZ)%y<1G7g(EvR>dC0LSvVD0lK5_=Dkb@DXmV2al8Q;9+_$ z+I8T@XBp$?7AX4WrlHSUkMufp=x}^#wvp!>XAA?cIb#gtCP>j&kZly)Hl{wm3h|?| zjiYWmqP`$CelWae=NO0kjx|QtkE$Zx=ZRO-K3>WS+_HA34D^wn{D)af(ZlDdLc?N3 z!+0ylIM#Q9!4&c4VgfdPX0|cbcf2u5^S}p8K1VL3|6xr(^QJ&nPU!I9geG*?0Npuh zCv z#E<<^FTPPe;Z53U0R3#|Mzo{b9bcYh9P>}r4#17^p&X;oH^!g_*)}&=MXs+T*8;mCab{=m^CJ;Tm9z4t^)? z*tBDtpUF0kL7f8NAs<^wv$svqGG1VcT$p^X?j2YMKl!A79eQ=S!f}j?Lu^&kGX5O$ zVhS&$VIOEvHh8#egPRVRcdQH7>%xt9^R^*xuzjE8mKW2$#pWlvdE}9FId)CD!Uw{g zrvECOlU$tKcN^5#U(x+W>lID>U;pz3h8cnRxkg~>aQfdW5;Vb|W%wh*jIH?X$_H_6 zT>xg7k1I9LH$2-Ieol6MR!~5U38Qn2(Qo7!e&7s$&oC~*)#ubF-X$X>?@P$v=gt4i zNP~G-;TnB$qP=u^#F<1Ma1u5PWgC8A z8294JhtK2Rm5Bcy*Cd^0o>SKi$NG%1z~N(fjt-F?!Spo=I?8@%7^nXTyaE?P7uVdZ zuv2&ZaegCjYAeR5Yuz!*rZZ(Oc1Zplbv-24&7xT%O^d}jMT$`yQ# zr|!V#^IE<;wi(8YxVC{Wh61bR4`I>OZK%sS2*aLSa}7tontv(x!g=vsqw%5s2S}$N1}}+S_qep z#slS(MwV+G`$l9NBQQ_moREL6EK>1~&NfE-el7C@fpcUqGRGJ>b(qW@B|kMyxZ{D> zY1c^;|KgN6p&DRMm?p#pJ3oy-Io34G)d;7@E5X;zg_?Cmtfc@dW5&)`U|d|xSj_5 zeuSS#_yWog$CU^E#^E{@S1GQGa8==2itB1z*WucV>uy}X!u1@kmvQ|a*Soj^)js2R zTp?VwxLR<11J~WS_TYL2*WYpZ7Q^S@3gViNYc;NGaNUgS0bF}ku6J<-YJA2i zxTfGbAJ^w`t-!S&S1YdX=|2BXE*vlrb77iViaZID0+D z7;7AkXOjiS5yp{5A$HP_GLANmF^)ApVH{_e#suSdobxHd`JNMvlZ;~HWaE>@B;yo3 z|DSAp$_N^ISANNg6-H&H#pClTSX5KJYW1q+IDBr|5@%lYSI5-#)i@ktl^e!92jTZ|2AK|08iV^Qc_y(>Z;+VJ@lW~=xy1ZV6J4lnnF5x$74h%g8jO$A=W>k+$G))T4T*bbt@NE~S=I&~(~sSs6 zFQd(Pn~V6NZTJZMSSf83Z-+1FMLk%maCKRygrCxTKmG$~^E-$c-O{UtUX}#TUW9BOiVg zZm1!K_#nK9OuV?8^MW?xE%-OIP3DJ-?jeSFH?*YiaX4u`^}*ZVjBn95@kMYeI*E_M zb@y_u!Eb<{*MxXg=7H_#oXi8i>LFfu7u-=xJnA$D!@JoNIjcb8`6%{rf1w zb9Bicpgs8PaRE7I@bRC}4%t@nbLg}z2WG|tvY+8+KjW9r{}bp7lqvZ#a^fY2ksB|$ z+M;dXhu~%O4Bplu!~)cdcfoI?llUmy9wR3BVfZde;%z*)-;I{?ta=E(+sU~m-TkBx zuOmUa?Vu3Ly6D$<3tmFiGQFGU6{rgDh7Y55nFpRh8+cwk3Kt&YUW3nm1}>kEKhi_| z$uHT31bKpoxpee${G?|;W0udK9et#eN3s+p@fQ3t~v#E-&fpW-@8IpS&J zgr<@nfls2@_~1{4IEbd+&9-poGqeHHlkft1OO^w7Jj*hE2qvGSo#X9CC>G_h?J(Rq z$n`;%1GgOI+~MPr&(p{7Znz!I##`_RS}60wGsuY_g}1-Jxsdsxj>hmo_?2U{#c$%_ z79{Xd_^F@KR`G85G>Vcx2`{50-u81L=AZ=L1%qe=AA!5jDBgmTf5G(*Z-;Jl7QX?u zpkbLGoX!N8^50N*d=TzJ?RX2G zM`!V)@b=ThQ|5t3(Fi^Xr@zd(z!$;2D2X3}mrxXM|1HP+JL+{0`-0Km({AyuSGbS7 zO8db_;o7sb8S=aTC`8GhxnIci^YjH2!N=dCouGDn5}rX(yd1atHyV@I1jbC{SlmMT zj^q;L#LF?YJt%^g<4{RdLtl_%ET7@Mf_Bbh?q4nfxd@Dpz`h@)`^ByM(ww0zVPb!{OoVH(;tN6Cs&xqnV#iZhpVz1)Gz3J_@spSU6m5RlRGZm*OzM=L% zzLqzC>Gj>|<3FX?tN4Usi=tg|t>PlZg^IHj#h!F|H>)P+RQyjX9#f1fMisXz-lw=y zalWEW@uE8Z3yKNFgKB+TEyom}P~4_yD&D79tGH6psW@M8mf|tRn-#Yk?Z>w3>iL_- zG1dH#dsJ512yvM9*aR`S^J>0XvhPH%E@zjW>$lm__~3l5-=^DJuHUBH)Yk;xmU|iS z6wZ_jw((nCIytt;Xso7{Y2l#mHR=p6qc?tEYAVTFuA8p;1NtVf9yG-lSsylin*7RL zGyHV{&Byp=DA1-g8jN!?eyeHT=8&AqL`!cXzfhlXy;Me=m|SF&$!M;owRl6OcBgKp zXJwFcHpqz?*6~p9+I1DFLtQ84W!6*$JiaQUHslGVzUW?Cwrb7F>dF=6^A;8@oht{2 zx8=#fD*jr?lhdFCygaiKT5X%Dhg&^Ct+_GauNV8XQ<(IG;WF|3L@g9B8^sH0l9VU3 zvXHs7wtkf!41`RPKYn=~e{D@5Du&4%FHNHPs@HTeJD)gtgKb)vzqL}{V@lsZJ&33g zARbLk0l(G~X37-5S;xu~6Sc73pw$_T6sXC%JSSw>>Wq5krqKKzX7y;*JfZp)-djxX zEj@WoW|i)5F+u@<6Q_f(x5wpR#+prrshM&LAO4b|j(R<(ko~ANnHeI)Yl2g$dz(!? zvnsvO366!c#uy|8iQ}0i?fz!NyOB*u6rH4|-ST`H6vHn^v-eNZTIEM}L66xWV=%~a zILPEJD#4fE>J6({HM5Ue4>JX&&gHrB$iLk*y_NQ^ z`^^wN=#z5IS|eogiohCwtKs(v@pk?if4T$tt{ej`nCkLGB7e1R-f*>RB2B(5-Cg(= z(aSU&;t%=NnK)&V#1U$(76PGVj0^$@elH1S;{wP5NOc3%44(kp$U zJS(-jfk9p$iDLRBj%0Nk=f6o#f>IimT~InvI$^01mW?ExS@pCsdQw>Iom82bib7vq zMeC`cI39({vP=&_3RZH7SSLE=KGR)0(|yIGGOdcqGg4F2@XT=%8wXR9mWT&aep#y5 z{#E8vm6tiV#!OZxAXRZ8UYQ_sssj_}GWpfKB|JeWU$wHlYQg+e1Nz`@xVe)4rxBQH z8~9r&Uu~mTk;rxWL@y7 z3F14~|5IgrQ6KUp=i*IG%x0E;Z>PjDZ*GypuKSr#jd_kr9BZnV%_(-+!zRDZJp7{4 zOB`)_*s*xgM{jj{!eO16%G>M|;18ELnnV6O!rlg*`QYX>8FD(lK%F^5NnJ!3ruhl>w)A5I*e(p%8m(A(ad=pE@T=&R^!?;Gq(^cDBl^zZ2(>>ul&Hc&IL zX<%?*WMFK7f{IjmR=bt3My!I4ijJC&M8`-+L98NH6HCNKVq>v}1MLSA2SyGQbXIh> zcNTONbrpBHx+=QdUB&&b{)&D#rMm_yWO**;VghG7Mmxqj_Qb4McPt(oj1BgT^a+di cyIChJn`O6(ESI&xl8d>2xd`MU@ZUw?KcRsT0RR91 literal 0 HcmV?d00001