From 5c37d46bcc28bd51a07d4acb83c74d38bb4c1fc1 Mon Sep 17 00:00:00 2001 From: Jackz Date: Thu, 15 Feb 2024 09:02:36 -0600 Subject: [PATCH] Hats --- plugins/l4d2_hats.smx | Bin 86718 -> 93535 bytes scripting/include/hats/editor.sp | 173 ++++++++++++------ scripting/include/hats/hats.sp | 35 +--- scripting/include/hats/props/base.sp | 70 +++++-- scripting/include/hats/props/cmd.sp | 19 +- scripting/include/hats/props/db.sp | 125 +++++++++++++ scripting/include/hats/props/menu_handlers.sp | 92 +++++++--- scripting/include/hats/props/menu_methods.sp | 132 +++++++------ scripting/include/hats/props/methods.sp | 56 ++++-- scripting/l4d2_hats.sp | 77 +++++--- 10 files changed, 547 insertions(+), 232 deletions(-) create mode 100644 scripting/include/hats/props/db.sp diff --git a/plugins/l4d2_hats.smx b/plugins/l4d2_hats.smx index fc5d48aefa7074fe148660d2a8b0d219eb3631b8..2d24ad693d02f601efe093ba7db63d3c5211792c 100644 GIT binary patch literal 93535 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

+@;H(4FY%qp>;Mq$%BRdREOHScV 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%0Dg`v=x6X6e=N82{qHCr2G~BWzU~s=fMFh zJzV;!tQTCceJ8x+AN*6ZS{5F#^B47zP{TlHK#wWB(nM?GyFDsxVXz73aKpz2s$_qP zuY_Ie_~!UFT-ut^8b(=j>hkvasoXyadMh^S*=)pATAN%A|)u@AxL+Zh?KM_-Q6KwyM%yrcm3$@&IOf@Rd(rG+NEI;SXkJP?~i$&nYreKa_cvVT)@TkKuLqgpgTbSU4*A^|l`h%W zhN-!tvJ&(UZTDd+fN`Uf|MRtaKNVtD^okHdL;h4{Xlae9VzMFDIDCB_tM6I5dmXuM z{O2l*8L7igMT;us$wZ?9a#6XNnXi8v$NAoxE&az`Y;fwMd(-;D1Txw2+9&&Y^ZT zbH(T96UVVqs0TE3s9rd^j>fh$_=T!pT_SIHY&QkluVyXG^nO}^i^B7(aY^yM+Bop@ z#U|R%j^n$1v;Oh9WSFL7pmF!uIq~olarB20S?vlEj@Iwf%K`oS#Z#1i9|;bp_$SB8 zxj>y0>sUd>@h+07D3H5Oo4eaMZvSNUv-ryn-}x_zM_j)un|GC;wc^2xUHyra}X_; z-ZLh8#=B|{$Q6#@*#NKKB1m@3rrWzV9^AeHg&j1iOuR^U3Ix>o8!P;uxP8(*Z|@?W z-^D;&Bm-g)-5Yy2^P4r}gvEq5+x8bO=;pVfI$p^7M}G8L+gdwduZJP;;!cUkrT@}5 zF;m1BoFn+kAPTEHT2oj3Ppk&@LW_IuhK9eUOj)C84y1@XyC;W5iQ?kL@3n@Dt57bw z1UFRdMy$CTJ!1(q)saKdZsBg4(dn5_qY?rT;g6ZMmQif5XlP+-@;R84Rm%F)6^3Qo zG2AbXZjc;O%#gp$-sb(@poIa4M=!eTfW|eBbSQTBn9e_*V&SuBF9Bhu)^XfNZjRX$ z?F+3fGQeR*Q}8WtpKt*rxk1M>Q>3suLz7VdTO*26s4y|eT`4M0fwJ|b@vmP(@jxB+ zWf49JQ56@yvTWLdNgH;1L{5{)0vKdTKYFr-b9F`~u+XeDm;$DIK?4lXI0&obA)&Ot zx~%=UR(xzUY`Q2e=wOxDzw|V|2(@`fiiD3rHjcb%&)pye%x{&dWWKO>fj%xmyD>ah0MwmDs9d(;s~i(M!sTvWC!dzQ*=M#9*0m}=EZ+9SG2Mu54#BpInQ9Ne+^X1|=rA>P%}ayi7$ zbQ5c`*!J0Fk5xqchL*JUGo!2nG=5lPXCI0Fi8%jN&J4hjuY?W0hRgX)W)RTVzIV}! zS}lxyzx#nl1o~CbuZ7b!?WaDjS<1nq?W}E1VS!4&p}6JMHsnsdI1IsbIfZxog^-WW zM_yW*Kz5eemz-|HshuHx2v_*ecn{xCeI0C{t3US4Z@Eo~rrPIk>#A zZ*&$E=AbGMoxz=Dw(bx{G+HRtxJFBU%T9?Rb*avSV}%@pZ%iY3*I#G%t+-uUlR09t zbk(F{F6K%?mRY7;8G6p1I7G|^JX5cH9O}l-h$BrcuK%5f*+u`YOJKL$=o?{gd(XN0 zj>bG?UY1vZ?u7qUc6E!%Xf55ZbWm}7Ht8UDW6b_}O=wKhIjo$mcv|vSCeDucX8YFt zP+uaQ=h$CV+{qkhocwq$Nbx-6TT{Ae`J zCsjhPU+%RonEv9!Zj;Bavj*=>AJLu4nLe0QnzGf_;g{L|~^H-x1LyukR+RBjtp(I>-= zFo-vIDFsqxPs}AKiC}K%vnHa$$Y_@HhxC3NU+cGeBgd>`krOs+z1%i|&KDlrgIur? zHX(-@TMV8Ln)M!6gnL8|l2g_9NII$1f0^dsu*?@+I`ZBY$SAaH!}=ZFzFEf3*N343fWbn+xM)KUHnG5rZS=P>b&oTtHqx2bqAqK zlbh)m6K{9&B1e%4y0RQauzB`(b@Sbb>$1TyGZQnbM5%?Db0P1@uZkmulSM8IrLBAR z;P01XeBKuS7W6t6Gxs(=dL+h>jTdHCFom^!7D|0%JCml8!p)LZQT--DtoebeXR%L=`hW>q^Y zO)N>@x6|fPW&A8Qc*ccUXAK(Hy=1EnEqDpBiwOjqJ__Ab=$_{#JU9MQk>B?b;JK7o z=rW^EUx&tK%YdMcPE@Yx7cAWVgl6-OPU{w&xxSa4)2)9dW)^i)5T29l)rvntS4 z)YN9^td@8m;U;mtUO`e!Ewx4uzWd+VHIWKhd0l% zS^N$$-dQbkm6<84@gR1zy%^$@X#8PpxQJPOYwUjoNhb$Jc^mZXic9(M0UJh0FV}f}>(xl}IA}Kd{z<EQYctLc863 zmo|YsJ^7zVLtpo)AY4i(9Zn9bdrSHxi?yHkwrsB;Y4W=t7yA8x*z}xkRHt4qbw&-a5Ul-LH;>6kNR^tcf!&f%y zJNn=x(N>B1XsX#E(zajs^S@#2=Oum8i@CLe5jD@7j9bZKdObVV<+TPUj||4l<8T>$ zs%wm5-Bd(U5<2vA=fPZB?V)jhHttaDlZ{^Vc^Ly0rb^E>3)W3uizW)fL!vK~nx3OG z8m#G>^_OkMArE^fem~7|E~*x!bX#y`!r5ul3Uz}Y1FMNW+fZ+&-!n^wG94$G7of6V zn$U9c`Nlt1^#WOSzmfIz4W6Tt%ZvSg_r|?gJYJN&i$2FAvnO}jn z`PMpaucZuc3&(Qw2q=*#kFTELCNx~IaS>`IFJ&SNx#adA3;t2T1oTq_mcmU-0~ICu zEj|jOM_vI}TeDEvN1uS=FXk2orboRX9hd&|wY|h638_C(-8;&BQKFlf@0RLmd%J&U zN5$(~boWZNH@N(gJO=xChmB*u<7a4VJz{sB3`j5Lc7joxDA^Qzrwi5rYHuXYgD z>n8Zu;yyP}!5i~fT8rChMsVwg>CrIocJlm{2JLY==2pi?uGhZqtN_9?-<#6Wyr*jV z$KnTh=D8ua|OLH(tAyO>#=MxuV`}Op=(3=)r|4zJps=;_LArCH%Wy{xc@c zlU0_l-HUBkyx=FW>z!PGE&rM*nEj98g@~yM`SQ2Dy-SMEV@W3KE`moiG=jPNEO^}B z1aV)kQyZ3?jiebNvrA3J_1(b}Go$E|r@F&Go7i5fm^?o$6ZZlSimD#NSWZ$q$U5C_ zbp*A`3ZtZ{iUyPy95rFWf&8pTtVcdiQSJEs??^YMxwzm6_Y~E9^VNazKl)!Y3$?s} zmu2|*rGM(flrXu?BH{Wyd?QkxeNtI5`9giCI^2q*lm;bmi98P4ig{m`Q|v_IG6t-x z!h@_Pp9T*$8X;%F&nxzCTRJ&KP=q6oeO@sxQ7-SX0(|&I>nORgDO~pT4f^beQtdq|v%_Oc9PRCfB9+~{VcYn)XoL63Sr(7d1`s_&YGaLZ@YzxpU-)!xf zyG&OvV0y2na8m2*6EBkC=rfuHDz|cjU(LZG>fZL?alV>bqb~!E*1q_OthuTJu%SVV zE#>cMw2Jj#i_l1Eebt*deyGWF^+*HrKZdp9vsYGepK5T$78<2M!vvxJl^F^=T5-u9=MZOJ+584onpv>S^K6)vFn4W;P)sjjmwMGL-|SeTVunAlbv z^`?BtKO{b#L)R5I){dU9K3wI^acP?OBNjyUFN9@N&!^Cv#h%esWFpTqPk+x^wR_eC zi-Wd+0RsNPw2vxw4OrhkQ+|o(D#V!@h|`;Y`9kBZo1wv2I1c@VZ$*g7I8pTv4??f7 zzZ*ft90rd)9W6DVLZ!Iu=S{T^T?$%w`5Xdo$9^20WQYKgRwdHfxb_KuaOy`#tIpvx zp}=vIKh90n=ADY7{Th6H(^tpkoZIZR5%wQqn)!t06IV}w0f^mo6yy412UX$c9$0*I zT8Cp=d$nSNuZMp|ug9@x^~-^Va}ZK8xRGYRMZ0GErchrwD*HVB)0?!uao1|SIj16~ z7T3pIL^ki!-k_;1I)gQuBHwPjHr@EWY)Y2CkaO?o>!g%*vH-weT)3~78tu($%=hX& zmQ2i{;m$5`liXB{BEUa$+imIxd~);YP8)TGZc%zuB$5+Mt&M|u#dC&+Hr~vWrEf)y z^w(GJL|Fk|QvQqfg!7Tn?XsUWc#v4Zt*XM6EC`L@o)rPsHg(3Pi=lkNK zhoPFd{0mYSJtpz7=?8qX4utL{Z0lDmBh4H6%-+9Sy-6))j?S&(v! zn8!hdhwyJwKF59)p>~f9!D!+u;d_Ql7P3^%yqrxo6o0KR$S5J{fa= z)qR1o1A2);1lFQ)KMFnRvo3%IY-nqfVmq7S4|bNq1rFAZ;;R^Tk}{5Ev;4yLZ# zb2mmCzV2lRRAg!fu0Ofr#h1I>n*t?#)*4gm@hQ8l)pg-pSy~Q6h&LP@Osg@UF&6`n z>0}`jTrbvMke7O3`YWve+pF3ssywLDhJ`-IKE~B__#v+Fg>s$)e;%MfcIf=+cd~_w zRqJ29)-|{D18ohy^ZByVyAXo3Zr?{i)RY;&CApf_i!Rp}T%R7dkgs%k({=tLUj?qz z7phesTNtH$PA1#i#6NXFCa`S*_86yXcf7~EzhLCwUnVOMYYC;2s4<}>=tA>?eJV>R zpsQ%IHLu&X?Q$%xioc~-WzP^K+xVBvL?1T4E#(ViWW#HzYFA41BYeA)P&$FgfZThg ziQ;*PDWhDXWrVb5_K@=z1q0|?8UCUC$l@QGAB$c}74X9t)sJ+j(ew>(xI_Uk{d702TdRFif-attXBZLU93qEyBiI+co6!jX&aJ8wzn&@Ato> zNHBTc4VsAUq-GRq*X+&=k4F7^&4|9!qv;;a{>vAosmLS=9a=(TrOwTQ-=2Tcq2}my zj^iSiBIif3R?l%(%a323fKM(tPS5JgHR^{P1_VCX@K zOAxKPxOPTa4K6-a(WQgO0fU%G--MP2PqJG&ku6pRAdLX(<+o(5KmPG>Ln|-JZ@5*T z)`Pss!4{Ny;jc`WwLF!k+p_}5wxlC}XimK^9#Ij6QJ8|#Mi|)JsrpLgQpnBB+R{qN zN+t_Mo%p$17#Udw)Ch}R7RtNH9ly_a{-T$Cxl9=k5L+9pKNoJ?@g6oKls4-;bgjB< zBVg~IJ8!vohvS=RPVzZ)XuaS=;|E?4Q;IyqIc)PF$d01k1+Ts<*AwG3)`ikAlVtDY zEBQor{r)dAT<#%^>b8kBmJpSYH5*38Vr2bq0cPgS{1_aOMIvMoK%byD(2y8Ajn2@? zl*meRYKzSH@4L98w4QIH0^x~Sg))=Y6w+LB9vD|DuP!-E;)ih|eC!x1MRcVe5$Ywc z58L%|1euL$cJVt~z#hn9d_N;qE!f$A2i~HAY4_Cago7xy@_=PEnN&7|(GsFhp0ba& z!C4%COAVJSzH-E@ej{2J%1Qgau6G4H2Gjb5fn$_+pS3d~dw5g*RZpto9KDm9=6`_U|P7FGM(oI;);+> z0?6GUP>mRKrLxQ6IEsqWj>D+Mq3J`O`;rV7a9F$C$q!- zoj;*j2im&=98-0Q_hI{OL&^H&9B{o&hIv&y2k~Yt4Ig0WFzXG$J|5(TfPqTG^6Pu1 zZb7?Yxrw5Kihw(1v;qK5s~h~i7BjQb`$Hn@At`F^DyiDHon$WkRYmZJ8P-a$M#dv) zNAg=z?-DqZE*5-B)xsr675ZL^4t}6P8JnlN_DBy=DHWU3RV`EWnu4lY-`$2?rB!GC zIsw`AszEiZ@9ZJkrS@c?19UC?tu8kl+x*}IoKsglwzovGvhIWCo5>|U!O%C(oO>(} zW)P#&Q8FM}0b)`bO%|mCDqvfGIkPNHN@jqwDJS{AIce(o>KGmAisUetC@Yp=L~X+UU!sN+g+GIGD|C=1FG`w zcb}kHK`-HPnh5*{Q^*{GnXVdM$DpIa=hRwE;kW(E%>!FDI1?(Qtj;x^JtS9(P}$ zF9VCg2N-iLrP1?Mst$}yvfR!_$n&sbyIy^0>&FjwPf3BL(d6I*{z`A9MDBf%bC3bF z*BV()|8||**-S9B7jB{3$3?x09`b3f4j(xJL9Uvsqec+4f@VC$k8 zpKgBqza0h0S*ago7x1S~fA!YL)v(hXqBNQkg5$K3O=JG1-=gwN$&H@@%>Y4`R#HO1 zIUAH6g8>6)d8d>et@>8zCVH+1erKT9Jr@L{43`Q*Ux}y8D^Q7c?X`qr?_8LRg$g)F z3J#oE&EX%lTuuKhr&MkbFh5(aq*a~~s02COSwV^GMv-gwQr6Iyeb3+rn%W7**3&mY zqh4$1>wCVrF`&_%by=3&l+S4O{Lf9$^wns!=;(Fdl+ReT`WsV3WEQqiEv6q*Vz*JVvS@Q;C4=yE5*vo*vM^PDuaWj@|HLA7k=Ww+kKt92CW13x$d~OADgELY&H!X;!HudvzfvQsv^ggR~v% z?(gr2Ac1A0wD;Lq$@4;@>*q^BN@E{y67xI)2nRfJA89)_Pv6~PLc+OQed6K6x&){0 zXj7fQ(i^~^19{DH5J_VQ67tv#L(x(!8y27XC-*Mrc6P5?{og0VDsuBPKC3w;hVaMq!s<-JYt59V`4=qNyR|ukDY63YU4`w zjnB@8xpEsh6;m1<$uxnGl)>?<%j(SR*eCwX?}E&AzmJ`x<*@VS=gwtVW{YS{t<1SqyH>wF^kzz^9hTi7ryzX5+{ z5WNkMvzUSkiQaaHmccJ|<2^9uy7J^0MUh%6cW0Fl6<#^#uu#jOQ0SpFEnHDM&7D#7 zelYTivvO0VVQ^m6!deOdJ+}!(X2OxWZD%3Q$+?Y;q7U5RAqkJTq* zS7ea;GQZ6z)y2G1Mp1MQFba;=y-!~3TlRTYgAu@aiM9_4gJRm=SyU3JY7SA9he9ey zR5jn70--(+6df3=DQHayLAm{=cFJQa9QPCVxq~Xm`Ys&$!WR8CBpIoF2T<}T9r;}J8R3O~DqF?V% zDow`as;)6$#f zLCQ+B%mz-SzpAF9JFo}N@Kxg%>PQova!;4^Af8XmB1(e1_s?TsSrlBi>HSWpNSAn0 z6F=@&6E%)%%GF{?p1Ar1QQytkK3aN=smvc2{P})`OG7@@yNEv@zyeMWeGLKU6|soE zro6AH8XwFKMdwO8yh{f z{$}fMezyn;b=9j`9_tbJy_dUE?@Qi$|1gNYtJo43)Rh9*7^aC)2NYQ59^7YBQni@d-85& zpqg}Gl0 zm2cYYAB#N&bZMga**;dK{EIb?YI^grDdk$qnF5gUcKruFh7%=#lj-5dPs}+14HDI{ z6fjclC@|{V)--b<+sr z?-)*RHe_^zVnI1?XFi+)OHx;2p*B^3ZL?PuB>~_M5Z!{eydyE}AGKS6r6S~b>>mv- zieFVU-0pvXa}Ubv(!?`rXUuMYV{_uY?62t>my6Gfmtj2Q>kZ1Py8d<-uckI+*6-Yp3PcNCWKLu{lYIaj1>8yiqewT4YxPUsSR=Nj(aw^(OgqsI9hesNE%ns?7zU zOwxQ97}e7jc68FN7|?}mGh}tZTUTHq8i`r>^yLRd2 zjDhoPPO6XAX+CUcMQprkE50=xJ#J|tZ@RS88h3}-oYV&;)b7$ew9-a*|FXd~077cU z>5mh0`7!~mA{&29d71tiS?+e5woV3LW&d%b1&wI3q}kQS zE_){CT6Ym@vQuX16;5iaY`(n9?w?lEPNe?vE}wqdxonu2>k091ZReBE;Tf3vvcLfW zdc8PM1n}>Jt8jCx1%9+M zXJ!$rc{5tUn53>PEhhHxw|(iVWo)bxq4m9Qqua;K^zM7QHRJ%>22ugBfyl?JZ_;NE zN{OF_JhcGGdwR3~tCD+r?j9g3_ORD|MehawsU0hAZrTf@^#UuJ-c9zjz)7BtlmDs& z(PuwyL@Zr_cjnTyk~KG5CB*1yfCxd^=%AtOvVkEFQ%}}ImH=pjc{wj@+FLJlqUfKWL$VrsB&h5{aIl?E9lDvMHjn7|3$2y5h~_gEi}!+CWmcNQQDbh@JlHec=B-EsHa^Xk-un=c#G>+U3+~!Pl1QhGZDh zMsk2^$GtOIt>jZI9fZrFKP}XKl=GQ5E*F|aPfd`7q2sF~#$8EIANItmHUT6*-gj+N}Mt&&N7I3G{ z`f}Ht1Uv=wUYC_lh7aC$n94UzOY@z|IB3oZ1_BB!q9+j;piV2Jft>o_7GS_;_JAS? z)>R~JK80$qGGXT7-aWv5^0Aja;vqoJDQbwBF3}WYAw9MYRHp^xyVzOhsS+*nYpf zyzqK*p|j=p_J8zMfezKlr8QsL6 zHgnp^vOFcvomS`pQi`LTFfEseM=8aLOW34tW6zqg0WYGJS|Mg_s*is*dD7^QsgGD6 z9rw^2N#TE0>^5hD&uT(~FOo0FZrTznEaE#uv~L{nih1ugWS6hfb-GEy^%O=WcEf@H zc1a#-m$2ogdoixP6O=(xtB&WSDS&pBW%CkiH-`Z{^wtFW7u9!i*p8)51fY*7B%*~A zmVT@~RCQYrfmK8^T(!Iz0X|>GD#nQ)R!I8u?oP~P_&|2qi&{PW@N8gQkn=l>|Mgt9 zAqbTqIcyryiL;;pvZk#aHjr8Vy+r1Qi=Gj}w7`jZckO1={wKVqedGyo9=|tm2Pdd% zK4jVn-%_|G!dCn7VA4gdZwp8g*(cp|BJdLVq6p7rN2`A?3=cBHObIrW&#{s;he(`Q zamI!)&TTx!Z}IPiWa@VM(XT{-T+h%`_auPPdwE?F0N%J^vbzAr8iv+0m3JU*H*p*3 z%GP9D#87NPhw7(wM@)`C=D1q8eM6x`Cu(sQOE{M*)dzHsiLhtND$ z;n8}ca(+MVoJlDh25jO;ynB%)HLR+zn1~*jRr^tR0)EYt)d1UqQJg6k`1TQ4=0C34l-y=K=!o{0q75Y%G-0_66>VknC zN)MJqt0bdb7lH3${)}DXFkW#g!ZT1zyg7Q;;nwrFd&6257nJcI zRXNts3!6eOteh9uVR(PK2pFctNM$lsZ4yGLLT6#w!wZqSZD%-tu7X2hq^_*PtjiP( z<(=(hk^Nh+BmgG1MMFFWERW2$B8gzg|v zKK6YJ&?>(^*uA4 zy(W^0JYfr9Kf)R}99KT4>)eT{9dMHVe4+s^adyBZ`Es8&OvTjM$7Cahc&9Z*Kn#)a z;T-oeA-H8W>K*nEkRM*}FOK1iW{nk;t*3(P+#(Gd<*cR5A9~&VYK?JCNa>%IW!$0SI;29zJ?L+y9(JMNhh0K*^A>v*bs#QP1K@m4<6{jG>N_~J_pUi(Nxe42IO&;Pl+<=iRHHFFB21XiONWhYp7%bCnY&sn* zX^R!ljTsIc6V*By8m^sRqwwzwZJ_QQ5%jKd>O%(Wi7psnJZ7B`jpx+Nz!;YS5y0(0tuMzJF-EroGQ@|uIwUY?})p$S0BHhHXU&){>`yNe<1zx>$pIKdz; zpgH3$_1FiC`ClUB2o}bj-eGLdSAX%UtliU}yJKNliZX1odD=veO3qNzY#xv6NXw>_ zTnEyH#6Iw_J4pwI!lvpeIcnD#8(rNHliL&?2%AmX9B&NoCcC2^dFU%VVmv zz7GDW%)e;;QVZ80EM8~u4UEiliV$hk6@eEnJ)}5UUi0Vf$F{p)VB8*Z|C#@Rz1?3!){!++QDQJnbe>EbuZRfYY<%5@fg z1H_Ou!lG&1*DP)kpJDXcrSn+M#D3~pOvXg;$fnIMhPs%Sb{d*KQo%9x_}iz|m9~(h z&r{k1?_tyxG`P>8+eA{n9DrRO8kX)mTY_S$^NIGtQO#F4pj$5To6(ieNW_;t!K1e@ z0Pe~wJ?PThiWD#EiOAJp7uyAg#XkP)w$K~8#zvA%$eiOg)1&auq;K`Eg)Q+Uu8EMv zW1y0tyu7L)hb=f9X}L2Q~_hW?R$cvc6f4x$w4h( z&f*4J;<+4tQUn%iAY`PvAt&ZYJw@I%MbH$-y7`@;OZ%7{7{R3@dxjko@PHV(Le}1R z@7HY@OdGhG&~~STS20r`tAJhwScB6DTnj5;-#hOSuQLBy>&>|#1EWTmi;Trx_H93v z6DtgnnJ_#>E3^4t*1;|+Xf`@QdblefMl0a`<@=g*t5HSom4RW7<=e?*#i^b^bkZ^=hXsq=?yhLc9(dX6x) zVS&8*3G^o*4$Ty1(dSyCT3A()Zk80Q6%`VA0z@b=2^^k1WSAXHxw+tgq;c18^Q!-g zrKsWXk#J{tg61lA;}$YZ+*^K>2;rYq@_>gJGU?eA8j0|YkjE2`1U30J%pGl0 zoN@(#G2VQAZr=p1&-*c`;LGqVH&4=+n7BuQ$8UFBQ z(~nc|1Tr|h**y92I7)HOG>FEn^aAd@40sE6sc_YzuKUFlAd!q!896da4*Mg+XoD9( z*o`BTbznn>k&HDqyfggcMay#;E1{ENN9~?sFYW-cB?5ad`LZq=MOguyX{-L27ODaq z{V@7m?i7fY>dc^=*Vkoub&UG^J&=Uv>Cmk@p4Yw z=M5EY<#rQJqVkVy@|H8??o-Nd8Cx>pmL3ggIHqFtb-YE0bN2Omjempt&Oc;LbYw<{0>naV!e9D7k?ZFVToW=_P~3w=aQjI(hM1 z3VhE#)&!&RqO1 zL$hei0QzExyN5A={Dkw!OT+yMUe~$tvS(v5oAG1cC zvmMt!TV#m{>BM~gKLH>#8L~oUm?w!=teZ1K9Is&FVTf)8Ek5oc(WxN!^Z0Di!tmB? zezo+hc0-?vdwA3H5p!c=6YH#Wo%nd$YiRRpkynib4vHSQ_=N4Eoh?!b^PY;TPHi4Eu8(9AE6{*rm)n(2nKe4n&15UJPyf8Iy zL$UJC(13kugY!fiX+@JnT|&h7ULX}O6L1X1-HigHMxD$I98DL3qfiVF296<}>k`fy z=^a;r$JL~wNCg#2qgVD*J@e#=A5Wy}>y=P@Of(U~qATIyw@8;@d~ z=e-0TyQZR9|9wQtPc~+tZH_W8g9)kdnljKoftfiznJA_ag9-E>SJ$48fVl9w-72d7 zkB`Y)b-QO&!bui(faJQpv$vSu%NwS=!AoIY=gvs+=%y?)*J%kr$FWURLu)*F$0Xmv z99Q2`K;5yW9*|Aikgq#$@5NId{zmdH`mLZCt;x{G70#xMenfzLQ!0Jyv;I5)b#vxk zNaAr4{bF@7yieJ0ti;9Ezu?j)AqLquD#^5&SpCey{+@Va@~fC%xctt)h{AqGx1!)| zVItIDxDrzraK^&75KkP0!l1e+ZqZLvzU-OFG@g16ux-D|hH0~9a=kpz z6~aDa6D;P$Al<2kSXwg?Np|a1LM#@Uhydxaz;=%fd1GSXnbUZ6IV446sABkfJ$rK= z5@x&~DLQ?2)o;A-KS{ZPWj+*=a%Q<_{c?UNq&XD{liEj{p1JN>d-{?hfWsc#OpK=B zkaO#Oo8P|ph+(2>JkZqB1y3gkT+8l9(&mx?ijgq8=`p60ultcR(|Apma<^FfoBM(C zwsPbCgF!>wxg_QzsMU*pL9`$8Hh73pkg-1+`Bw%wjp7YTuE6WhLc)BfRUCq35yO7_ zk>Uc3yV5p2e{F%2Az1-7}zmZ*njD>e6(;)R00$Es7F3Dpw(%;5(GQ^V`F)W=+vM~}uhiB-5rHEf#t@gplRbPHt%`{xu(2DgPIzH-w}E{+r}CwyMXboI6|K203asS(C;D z?=k*6RqPvicn9FN-w6%rdSwSFMwKg$7T!!))_o0Vr@!h=Kr?m;;0g?Wq@XMouKg=39^sEg?+{y_AVa{i z!uh8pJ%%g`zhB+=R!9f#`@Q6b(`?4hk);>r6Wt|%M4%t7%Kct(!($)PX80(;;<3@| zCEf!adRMmeLUWll4`?96B7cm#GpZuO=n?qgaZ&4>FYAc)668mXm#COL&PW^bc^Vfu zcJzd?lf?DpN$vbzv&UuE^Cr6NaNrIy;-O!A6mWi4?*L=%*GB&q7vMsd76v*hZ`xtvZ znVX?ve(Ab<`%^DtHpu(0*D?W0+LnL(*{0>dTFGq;yXUvPZbh$`1JbtgR6?g~%+e8P z{AE(1q7?cPs*vQHJ^T?BSHSxV($(S=S*t7j2Yw5(0i~27mH; z^;3JYF$I-z{9;*qqEY8EBSJsFSm+)z=bik7UL5n99UaCiC;1^Zfp_v05~+`Q7$Y|A zVd>rIux%k++}GKHa{qNFh-lE;zTH)^!(EfVmp0;6@|=eB_?24F~c? z2p+>v#IveP)bP$7(=^+em^jS6nqx=FJ7>y5Exq+(2yW!h765g%gcT;=C#EF15B zeQbxebHzNfxj!%6mi42;Gyl9cb{ik(ppL9sDTV@TAE=49OFb6uOp z7N0;H4{3M*3i)d+v^Q!1vi?=ue|!CFEx@o0DSfFx#1 zC%6S}4slBWo&kptXz@deDeC^To1cb6<|CVd_NqdOA zZK6JNz5Xq&opYBsX}VC&i|Bm63Hf=Pjp@skH^Em=e!k@jJqt>Rd3LDOneTEH_psLE z<58eRS_Jhc-<$HvRSlx9(^3(<}nUfe2hN!lio;K zcfTcChWiaLOPd|$w?g&?IHk=-@>{`Q208Cd`&xE1M|^KUHQlFzJGc21j1nw;W}YAX z`dUes;atkLRW6LFp^Y{lu6rIymk&CV$K}LNc$asiHa`82q%RMIvilylgk*b5_H9Zf zd$z0@-aercMUg!WvN!gLnXy#fGMFeNON&TZLbfcEYQ|Vc62>wkgOP1wFve`Zr|<8N zGjr~__nv#seeONax#!;Jc{+*Xt&qaiyO$H%*IKcitul#joR;}!uk7a}x0wXq^rH#M z?$>SKDid||)>W|KtzAH3Y&Kv&3ae4D?v@h31CUc3`^|^0Ty=2NKJw^93vqHsjTxWF zvq#Lz(E97AH|yA+yvR>g8diOXQcYxOIw@bJVd^HMY<|vy)Wq;0yLK2wK}OC_mxsO% zLte6z>Ge4qws{4>KiMtXlg_={?d5f|`!3Snb3#oLI_neOGT=mwL`?ne?G=$N%lbW= zg#K|UNR=|jhO$zv)?e?F~?gDs&=Rnz7SL@R=4_4+m?BdgNgEAwG&%$+*7b}T_h zRrA5$qdfQ!r3{IR*~S9^h(Nr_XsCFFiqVjUlVB)e=HO@}%QJ zcA6EYZE*~Vv<TQ95>8p z7loKn4rlQ&XH`7Y=~;uoLT8nX4uzSa4ddB%*LO`X_nvr6e<^^bzYIq25+gzD4ct`1 zP;QLvRN(W^bXXY(GutX%^NZ=Y-445^iicg(z$fkUqc_(SitfcAK91ewk0~3I@LeW( z{ej6r*NP<2_MG$*`;+VHr!q>MWztcxwFi)M zB-20b%Fas6Is=hLfSL5x;ug%oUEZ1)` zAkO6jLXB7GupOo+DB9Z&Gg@A3zU0Mgbmblau^D zgWHnen6+)szk+^^=$*|ZYu&VQ0X)GP{! zdOyNjLBGhqL~vBiM>M8;QfO4_+yMZh9M6qW+25~#IN!Z`kei4!{f<3YIo+}_t;9Zx z&pda{G)lz0Tv^0CSH~`J7`9-CrsJak;78N3wg5l@04XL9%Zb?xON-eKOBbe>r~%T* zMG2YfD;sPGo9maPJEhaVnB(588Jm#>%)x5_C<|)bK^%xdm`Ri#qGsO59YNE-0arKE z(qe3Tq6t=KEPP)JiNd@qf&a9nkj_)7bs{503gR#rxENry_r#6y`Rq zz<&CHoiq!-fOUzl$jL?G-Qr#lJ*3K{8(o#k^LC^0@lu(^_HI`xmm=V$}p zo;ES|S&F+s(Oj#cQjZ}?>O%=eux_bS#j21FM?)nkc9IraFkX+=xZfWuU%TJstHv zN?5`DoVXzuY|=}Ok4;8z{-~WRXLj7uuTLx}k|6aah<29u@-xdmpZ$>A+XKp@i5*Q% z@p~~l$#4B_{c~iBsx2ZpPC2CrYTSgi`a`pF4(w=`oSHD@{0trkzBk zv4cZbCsH;z_s))Bkr^nSs^PvtQIPVU@gL2WauB7bH5DbI#;+iy`t26OqreDn_Q#*1 zhu)mKU-jPw5ao-P4K5?vBq0qYrY4{uH*9P4Tf{GBlWr|1=gZF>zz(szy^}=nZGYB5 zl+XEez|wBcDF9qEaF+s20PuYq*04KB?YJ68goyN^2#(4Nj&>iLqW^F8*c4qM!P z=N?cQ^w&w8;UBnlG|maVIo}1MU|Fa@92C7taXlk?i=8C2Jl|`J%dNWQ@|l5kvBf>6 z$}D?5145Keit-wghGi)tMSQ3HkMu-0$^u`D20F^AqI_Ud?36*7a>+N&ncqd?l^Lw` z3v&n*Sy-W}TNF~VkA`X_@lixS3o2+J-W7$H2v!T{YG@sJ6p~`6ddd$)xGkVi-oOu} zvS3n^3?M79&Kp-)o(k`<~NB;ufo0DHqna6PBj;*b(MOZ*-x3cV?R z4!ge;sfJHN%^LxC3W{N|4K66cFd-d9m=rd&&dB${g;Zpq2JnIkh1d8D^#a8Joe=0v zIY4y3iqex#{0fTi0a3Js zZROng4eJ8>i2)Y)y+{8BzHa!@rUIF{&~I)nmv{}BX8@xa?1=gP_{LH+)4TJ66fo`o z)&|CwM@2v$!7R(0q71Zv1yOV?Y;YbCLJEH0Z@h}$l1xX{|3OYu=d}%iiFqBEn3Li_ zO9vp{7jTIwdUdZxZXPh~ekBR9!pfpIk8*IpIM=eX#oahsu1uW{&pI__fS*DS`K{e`pf78g=yQ!>#5sFV|Rzke?$HbNZ@Y8MOVLv z>qXs?#3!X$p=s{!87R5iKDxCEimq-Wq_9C@1@MQlo8pE!FGSh0>-8XtXp2%}D!KBR zG+VNY7@o2*eH?}p_)xODY%uwCq3{1 zaa1&a2514ve=5j(`#1X6JxR%j~Zpj%r^xe3i#WDT1JCH1-L@0 z0(_!Q%o)zoMZ`j=~3h|CrTV@~6wx-Jc7W^%u!2et1qE99@3nMZrHOdb_;F{2H zDFuFo){?lF1UREoz5-bx5l8MY*iGHeT@&~%*Vm1wvX5z_P6CW;L6m1Awm98frO=}l zeia877?Eeww{wj%ayxP>m?eIYVgtd7tPc5#@(P&>B%}i>;sEYD?ZCr7$%1d3<5&Qv zu>l#?doHI8gYzPF3|fFT;(X>~xsUmQtTBmz!^@;-!QWD$>^cJT{9T*<^T5WT?f!X1 z{hf9ie_YzOX;+PeY+wE;-hXPOH&6cgvi2v3>oPRE3fUX#MZo9Ak z0Dy#yZTkbjC~jL0Mk5~n&3_HzND&KJCA^mhDtIr6lLDhs-vL+4AYw*n3*PcE7<$M7 z^Gz8j40w!(y*_{SDQO`v)mLox)f8e#%QP=?60TypA#h*&He8hfPGQh zFHsB7aNwQ4lto~wx!CS2!~oE5gR_qo{vEw6$b=UGCz&$Ww1E*aBCyqQW){Se=s>9h zzwPeK63j~>NN3#s&n?R*KDx;BSq(d3Ooaq*UEaTTz*|PH)Nbj=wf191erWN&Tz$_L z9Rfbj>%V5drL^EfiG{jkOyH4c)_b?qAgKc|(k+8kA$(i4Y~X6{Q2n1krgQ@PCimXV zS*T=^Bu#oxcS<2UBXY~=Oxu5hZEoBL^WlpjlX10dam|T`)f0VWw3s33-IfJYda6Dj z{Bn9Swv>IS!v^Q`##_JAS08--&t0a>N?oDf%YjLF7h9~Oz7Tn=U4Q}0= zNbGlR_;Pbp6MUhm;f*Wz(f@fPr?}+<$j7W$ruGyHdE~8^0r(B=@i%&c-NK`M2VV;Qh(ohg`3_m zy`WKaw}X8^DXOsi1tWneY8PEt4hqUD`gDPtKBK!OeKhiM`HQKWB8GJ}$Sk&Spx1)_ z>HTK55EfH_x%IVvQGfYws)vjRf7mwNk}^(1sfTm2*#eOu3a;^*#~!C@#&SXJw2@mX zN-o?0=vk%JPv;RC*8-1eDNwMNTKc1}w%p*R57%zVt&y~lwxrT6xhD$R8&AkDI8IEl zPa99lZ)HN~0F<5B=Z6OFDmqDpY$4z>;oi~m%3pBwm_jbJ0`Ln?6kTvemxa7rNWf;w zD7nY=NnItL1b=>@N8|xpbUm<-Qt9+ihN0oxd~TWyE|1*rJi_y03gNQjBuBv?ekX28 z#c`duY33M4JL8{1t}h}r;6o9E!q^h|n87~vD;2uO*b;MGE%19Wa&uf4W77n6HH}Za zO8B&>w!B(^yj2LT@Is`gCx83*&PfKw9swL2#e+v+xom;+47@&iS7h7tBO|T3Mg#Zn zhn&UW2qFC!rOGu__}*)_a3pRQ+>b<$sq<_*8eZEY?$v_Gm^DL5MGi6#{Bpy2$$2lI zEuzHL;o0_qf9f0!k{r4?a2Dqy1*pw_QN(z`7LdX9ivazExXMlQr__loYRD&FO<IbUKm&d+ARk_o@|il{&>vO|R|;MMtj{cEMdSYwMP*ppbgD<-Sxw zMuP}jiq6xsOeU%aVAUI2Tdj|G?C;t`+{uy3@c->@H`)g|legclEtlr@=a9O6)+Y6m z?~)UUKN2GgRl4TX8q3|e=XdFPBhDYQ5jK z_DjYR!Xq`G-=(c+00`&a8p*ZXn8nC%OsqdsV5QlSNY8IfjyBo_YqA(-cv|O2@FG2@ zVs=%N*dtP&r(y-O*`*B$HX@}Y@W7P#Sae9Wm!9mIK($DZUL7-~I zvC!lzN_oL?!g$*MWPoLGieHM+a<|;hD*{~q9p3_LejP-XQxj&EzMTWZH!QDRwnfOj zlV3c6M=LlJZup6o}15vvp?odh#E#&N@d`Gc&B_= zdm^JhU`^a?T+5sGE%3?9a71WTeYweewDv^F?{R6&fOezvZufD^g+JPj;0?rugkH_B zjh2;C0~>8eb%K}@10=IEI>~`JOi;+oUNljm12xMl=z{)ZRhaM!IWTOta|1f{zR}37 zQ_C`N0zf2FQSVh#ZtUVV-GibXVOJ8c*D1<@r0_B-9(#Te5+QlAn@R4ilvk z6*Fyd?y)X5`#o3m5R=sTcXSfaY6g_z)o2=pxSW8CjPC1hn>O1oSVM(I4-CtvOs}DE zyRAXdYcQ`}oC=6iZx1YQs=C!HyVN@ZTMQT~M706ZV@`t##5TK zK-BRxO+etPu3z9r*Md%M%OHA3qjOHTHVcAFZgei_(qKUVV-%B{&Mjq5AdA zL$2@QEdnWT*YZ?eH(pN2U=M%!2fw#|)bW)(rb__APUvGby0&!cvmiipZheChR0S9? z)}iX6ID;}vmLO4k041Y_k0NfRtrhsF6?JV15;a9oeQJ+1L6lEf)=xN%tLKTjiHOsd zLH$JpY&_t*MuuddrhUV_`L|e&Cj%SZHxz-71MR32wUx53sP*|0r3`bD+3G~yD!5KZ z5U}pqxP*qzcmegIMP?IQfrY4se@x%r8U(#bynqWp9~)P)MdZea1LN_ZeCKWrmos(T z*LS=*cBRnOw*6dwG+9Mi%^hqglYe8y^upKp4|Jk*#EPA>Iw}XjlZRe*dv9fEu#>c9i$XA&WT~%F2t`?)P}w?CL+a-PKnIu?jCaE-_U{gwY(F9h&?83W$~K z8>ogyKn}zqv>mxbq@&<$vLT3LcM=iW7|l;CW2CRnGRV^29i2*$4l50Vp5}qewk;Se zh-0b?nkMU^*J)9dF`M-8Ol{QDxt|-B8v*+Gge3V2KaIqIbo%PY)QCh8+x^&;ydw*} z{J$}w0BkxtjU;PQJ+E;D6nRS=5IBQbv;4Y=5wW8`HBNM;#!oN`bY1GZ6 z*A=fSlw?lIXq{42x%U111G`IDlc<1zfWk+I@((?YxZ&t{y{2~L1OB|J&L!iG>_a;Y zEBaukC5szXE_JS|ipU^z(o31cDHyu=$aYh*P$jZduo3JdU^vq)zF;7QO%_?Q$`=ML z4o&GM@M(I0+ggXustIl>KZ1gSJ}fcDpKU7H#6EB~{BJX<<`9Tb{`SBqvZm>#)J$+( zzu;?23%&}TnLqT10}nbpZ-quISfKC5KZM6UxP20hfEb}UHn~`95G(Bh05Sj+!v%jx zeY_bV)Tkye+^BY%EGrLgly+dz1V_27w2!=NS%EgYg0VJJ97S}3pNpb=NBx1(=!g%K z2O;2*s0P8?Y&#GK7YbtChrRfIQlL@IfhH&K^U4my%6QBflhRqMLfrZ~zl2y3QQUP0 zpECnf+X0si(77ZVswyvAis=@47>a*6M!*O!zl`_0I~->{E@+?2~LwwX&&fLlIaisJcg{)mBY;?Pi$!XIvyC5sovW!>7F*I zQEle5do!egYeo#}g*FcOf~fJ*y?uZ@`969cI<-d&ZuC1TX$O`2$aZK4RlT+uX31&? z)tmGVSU=A#^x0L_PgXwXyK5@EU=@W6*i9l*`ZpWD4pA2MBUJP)9m_$3C7|Rr0YfC@ zD4zZJd19CZ^!MuYRARhu|wF6 z&!^ZSaBcv$b2051&4kaK5Pkrt3D0Bas%E*$RypT^fk!mik3Z!vW*Q5cOGTJ_ARKbB zfEM?qZH5Ki(@J=er8?mIJ%YmwtpvPZ_0%!s8+a!BDbVwl3$2c8Xk?>5G&Ym{WK_#v z0gy#8Yv;z6>!)`MRgO3MoQXAgelCfR*m)$^g~CArbDCE}+ucX(Cxg{#<`8<^&~y zm@-qz1$LAGo;j<9rgwZ>y^pmSrfa2@P=5-TV^;ZM5T>FK)&3)B*lFxfK!=|mH6k(P zQ6gx1Hy~v)-Da54?<6*uQm=4(chyr_*bp3qn^#8DKaZLo2v(gu1nKVQ`(yArL$!!G z_X#TjDE5DikrvC(v|Ee3lZR{d1ChkyXL5 zETE9sWhbe@ln=6a_ERSi-F-i`L~U0v@j1QtJ_Xns3enZ$Gk2Z=bh*i?w4t8|c8t!; zW~P;B3VRiD@O_;Gi`b3ZmvV*$gX9q?VW# zlqnR!0u}MFKov9{cNfH9ws@|ID0cA!Se;-y!8F$G)>f3FPK)7b99tYjzk^F%nmGmh zx1^2{tLvo4`JUze5Ug>d^8&ddZAQvl1fuGs zfrgo>+r(N+qnW03S?TD*1%IpaRrvmrM>EZ`Y?gkF{S=v!5;tb0rVVyH<2NLq5?er! zZ-D5LTEmiq2r|%egJn&8-9;H3!+2s>g)Y~z5Teuy}}vm_KmkIADR zIHj*4v4EHZZWS!x*;gS*nUfS6X5j&%$DK_b{6Rcm=v>7n-_r!q z-il8RCex+`^IKgHK}b$AXqaWK>~v}{Pan-fW~L2N`UIZ!e!X&IkQ^#t7+s};=U`N9 zmR7d~pH&$}0h(Bq-pC3E2-iE+&oC{rWuF7ApB;$t`*Re{N^6G=tceN7_}$S(v(l%5 zyWBHEzL24Fh=K#WLIy;S1>_=Vf=$mb%_D(+7v~3b6ogn0YmF?QFcCT>RW%s!8VmGX zjBwiEz%xNZwGcr(=krtAAxB>)FmOfkfgaQ0dlsE9Xh;qg!&^NsP82yss8j(kD2N{3 zk~;X>|7tPJSjJ}Q`uO2hqb~Y?gjTc+LnImRELrO!6Clas&tCIpHLkj2BldD(2J*TMX5ZAE(Ow(vhoG~$DF z4;iDGXMt{*t{9e1_)9wgDH}S2hMm=xHBB9C?fZD(6uGi5zz7X9J!i8t3uqb*TusC; z;L1h00V75ehB+g;!2P8KVn~_t4Os&shFhf0s96O;74h&d9-tlXU|lzE#~DH3`)>eW zb0gU%n+*+L;F^XE&0C;Z4=-E)Q^fhE03w(u9dL;blfZMnI-Z*2{!)BFG!?Jtz7AZ@ z`>fQlLQg&yzc5h;cy&-#klN7#!S?z#Q9S3{c|fUQ4{sqC_| zi0=o{unR^uOAoEAo|nw z{F$0QDC2dpoIdkzFyQsr`eA>=AGD%rJk}^1Sp`GclwvRe z>AmU}uGYGGT^9IoWKGlLp6E~&%laiO4uh@15}j}RgfB`LyUQgWyli2NiCP}{j^^$$I_63$WbiX*d)%z_o zAs0&$GoksmU0n@m7c=42VI1fyq%7n5Vb78-2l{GImbP5z?E5xX`g(!WP?MLX31Nda zW|ds&3VgY>v^d1wPp78+=Bi($TsY}mO2g7@pj_&hKY52iL|vdH!%3nx0M!BavEN>AT!gPy6SS)l3%KiOBf^z?2g)`S;?N z#(^M4Y2moPM9?P%8dzU<-&MIGi%qjFf)=}T~@2+p`{k68;Lqup6c3d0M`_&zv zQ>EkNcP!br>)(Wq`1@=57u`gZN)!E=Pa6r9|KGc)e^M&x100|FP}Jd)@F^ZR)&P6D z*0`@l4E%Zn@bKP4kSekrb$Og@-;=C??S8J}-5{h-mnTp0_s{)_i2Cuacl8A-XT2iY zJrgD)8>nGK%Gl4wuQLGDz7NXm3;#&EaW{Ldel%c7k?7AdY5a=F5}d%RYSe$Xm|O#r z?ctEj0a^FD$L9)Yqo3lku~R;c1G_#6@VkX;9})}K?o7_(^=dO06Z%w5b)q)%d@A=L zg*))ZfjaBj{42YCs?>c*uC}Z@3sP83IQXOd`@Y9&$VbFkmI9GF6#~h9IuXXHp?DG( zCz~64e}^~wo{g`X%kHwOIq6C7hbIoag(Yi88XseJ}DcXWaOOnJ+JO{6{d5XbFJE13B382@B65YIDvw2Uh!9!b_RiIZklXsY3uf z-taR)39^3n|8HT@#MEVAN{k` zO~ZU5SL|wEN6x-&^JBg^V*(UY%xcc?v|m*n+b8~cF-~aA@B|M?gv~}kudW6w$+ikN zBiuHHYM)<0+O7s`+r&y@t_EK*4ehF7o~q5yo~ej$Pyo?SxkZicPcB{Yl$sWZ0lO0m?^o-G!)tyG zc*=S0H;!W;Wj3q2nbhoj04(l_@ieRQRwlUF8tBCxaI@3+9~pp?U^^!Km$s+=0Q|x# z?)-1{mXW$A zuV0`#wy^EOs$Xc9OzUlxnqRWD$Y#>3ow^pUkEEaB4LsS}|JCIKCUhJP`3e~pu>C3lYLG;W=Zi!vOoWi`= z3@?@wM_l3de3^*o+y}NN7F)xu(Vu+iX<=Cst>L~S2^~v98M2vCg?Xe1=5s(;i0Squ;V0upd+c2#o_E52Gi|o?!vkiHzo5-MYe*cq$u?(d4~ceZEDZ zc58xP?RjmfYjvOG`7e2GNw)w{o%vYogfb^Yer$H^TPrU;RS2j6nB;OuQDE^2&4x^t6z6BqSS0P=5N z1^eEEi_CSw{4J^RQ;TYljVH*fiB;_Meapr2R?mnIS47Wb>6TcdYzXZM@&lrZy_Idb zC^d$3rtsz%#@u=UK`?#3jQJ??RyXp%q@+R|udL%JLAC2Lg*W4)$S~a)Z7VNs+%(S8 zmG!DxkU}~3N!>EEri7M~C-%Thcs6g9Jkdtp6U=6u2VZ4JutgMmHGl_ztQdmXOty`k3!~;U-ois@zypqr z_#u%9Y7pa{&%~@Yrj72){Cb}84(?3SMkX!#Hq#pwn&}S!AOTRVz{IQ?g;C?dE|zNC z$5YIy+_B+snyaPSC+GE)U)IgkDYf_KoVhpGVVk{Sgm{l;>cg6$)iyswbThV?WuhP1 zIGKW(f>AkP1PbH*xq7lbxOJYtdHS8mSd^C<+RqYjR`{DKfJDlBw*KoGVG}-5{g~2} ztLusV^T5(v_Ip?6(T!|%Grtxwb>J0K!h=fhghNmbA8T2~}k zMnad4G3#TcsyTY+PVnNG$Cz*W%1;kJXFg>A0EQs=8p{b>vpWlEVEQ-HMYHmy-gi-T z^sH+VFgqWn;K5GZu%9LDpL!rVf<;}(l^pET3tocAU5;(cs;key@3i%FD+m+&eSS2Z zP574oh*036gLHvTebQJ=Y_ZbBH0@kumd-l&m#@KGxC=$t`x=YxOFB^=70Ys*!7;)@ zh@^)y_t|`dHrUnb>}IV0CSfttjqA+~p%NC6OFDW0O2q+a!P31Tb7uJs03ywma+@d1 z0l|x#HYfe?v>HJd=XS2#qt+JQ7o3M~4*OpObw+<7(T(kbpnle0jMn40aF+@$L_K(g z@z~U6KIdTaFzo>H44bv3eOY$V*-fuMH{#|KH6q~u_n@$Auh@M*FEI0EoHe^W8BgZl z16Hogr6iuBiM^KZtc~zIRFPvVgSHU9;;daZ#rQa1-6TsbbMuY|T<*mcKM}i$TjTRH z^)k`xJ}#Z{kc*q+YkBjv+Ls@-R+e8&X{IP(-9^f-S;eyzu+G%f89%Vp0(bvs$WhER zFh>GV^vnE0vu>?jvAbmLGSg7#Av}C53*(-W`+U94x%)7lvpK-4P4e59 zdPM!nvEA%=2|kTz-4eml`rTw&-+SNa)N6W|4G}V?uieT zZN9)V!UW5R34cV1<`?kxSau ze?*r7>(_|5Xtd1+^wJ;kB*681qyy;v&-n!HvO*yjkv53WW(VLctv;fd2v$p<>8?v6 zm0)3@cz!Lve}YrT#G;V4&~C2W(cb4tw$RRI0MUkBD@wVx*|{VqLs*4f+w1@qF#1|K z?z`^T%_%O>Qy6R-Mk}f{7|N-CM7|Mm8ZmLOLhthvZ0L*chlO3_UhE?UnrN7>0UBr) zM?=?%znz9zK?;_t3oamd7lF7<759{*V7B!cARAcSGU{iJ2B*$2$U+s?f5iWfwjxl- zJ$L5Q=PsKKo}X|G54i{yXd)v==Kle*LsDmGm_rr5cb3Z2h-9*VgEXG*FRUXe&`v{s znFp4%T&k{Hw7>N*yiJyxHpYJwSoyi!+UB#+)dRZqLr?=}@$<4M!)r#sMdJnM>F4DG z+d#)$J(8v5C{QhTH553%6lEiZw)lDuhzE=*mGQZRw7qedJXArtqXtktK=DF(wlmA( z?t;}yGhq!9Ny7CZ4N?v&X~#gWm6bY9f~z;{ZB|5|U@3Os7efJ-=(}GtY*r)+Pu&Z$ zSvhpwqej@p?}dZ|Jne6|c165~zZ&e_U_Y}g>kCvne>hNK-4l1wswImiSV4kruFl)h+P(xxp{bX0Zvv4AnpuRttPM@`r8`o+FR3)%?DU&iK6c%!hTlc*B@lU9@CC&m z26VlkM*>G}AHI}2X8%^eMeQZ90r6P3MX);8N}?hPI6i(?G)uNHb?nMp3s6*?bg|A^ zL5zK=$ea(G6a;b&p@5OhI7Be7Jvt@|h z?_bRPmM!`9E!F@OFW+dha^|R-Vqs1r_R<_78v&nLJ`Kc1_+lQ73bCJlZ^%`GKPdis zuNi2B!Czfv1%%}QGk*gVuQXcS_C0hNumUhy2cHK)pdC54)G?zCqN?d#oS@B$E=r)< z%SyN+>fax~puhhStS%psNFgqd_hvhN`H1y+Bz{$7?x4R6dS4Xatzj%sU4G^^^nioP zecZ`1PiW`r5$|kn}c>T-F55u8B6foqi+1wm#q#~aQ_{iKaRE# zR|2$nq9&8O?%X8+ikGuU9rIcSB31r;4)FW7SwCb$0K#o^PhdW6e33`rKnuCJC&>bN zS3o;5VcPR{elO*C7kqvJ7D`s@5BP1<$n6GEhb};d9obK*W74WZF3w4Z97^wp0tE_m z>-ef$uO`-fP<5ES511*N75$@>Q)4p2eAOB=;uU3o_|R0VT!CseKzqa=9rUN3RhyNw z*XMt|okllIMl=XHsQj`8?I;6_Dq6d^eh5Q;64g)GL{zq{U3ILiG-D_5PyG z3co2otZvH;P1UOR^cLJoS(E@;zkEx4jB!N(<{P7cw!p;Otgv^zl=)m}iK6(}`~hd_ z%G5F5x_}F3c&QX{^r&T zz$CX6(Ns|G*ta1jPTHm{x?!o5MfBoK4mLV4aG5)AdSv z^42*)UZ&NbXtrwfk#Rm#58h`?6SBGO09yoOWRZ>BVy1f4XvC@Ne|OSp;rClg6zTrL zy;tfWK+(PJzicgXr_SSKU2_-LQPk$cgYVxW?Dvl^UbfKCdzK_4)!`a9jAOmT{CnVm^`6Y z*zmt4xWV|Bq{uFKK`Su?)&ZBrS;*H1p)xi-amMoXod1Yf^+v}O>N!R5rK~k0quvM5 z>C0n8q9nmOfpg9o-r8UHVGl|7PpJnv0>tS9YgUz?B z3d3hiEbM-MYbsLeF_WFBQ|O&9HlZ~0B3FyTdr{$Cw^ygudLI53KZlEMe=x8oI}xQo zo-cmSl)Ye)`6Rps6%CbmN`4Uj8byh5?lZR-$9`*nJKG;^mpyK$q7*RiJ;UlTlVhZm zybsiNWEUixk={_G96Pg;kIB=*OhUe32a7c+K4Zs&l;(<;U^_&Le+Ft;*Zg6~CGhcPBS)arwBIO+_yAUU zWctj6gS7L2K znH*?=)hV2b!kO^l2Fw_|^p?J&Bn9dost`JCU9lbA-MRE8f|$%DA6qz5Z6&v5L4K zW|@BxS=<|QcYh%3=+tTIDY8pj?*e=?LJl`!CgPt`94m>dGN+!oE15Q|zo?wiGGs1H z87m2N3}sG#n=tFWm69DR{+Hz~fPwf@^0lwoZ~>|!>ixC%*)ZR=&Sz9?J0B&YMC=3M zvoY!0&t-~Hon3hu)MS5qkoHQSz{%VGMQoMNHr_3@!A&o}HzL_Z8vjL_Xumu_sMhc9 zrqogag~ZqT!=3v3b8Gp_8Acm+wMIaZSfDJq7_RS3OGh(*AsqH~P`$d};z^qD!yB3GNN>1-h(GSPZ{bM$K=R2r?(dd+!{>CbEYJLC zytlt5C~d*mp1UW!y9H3s>AZ|}{$Yco<~Y8M2Fn8PcAx-{soW5FCY4}?X5NavxLh*U zB&{gOmB8=Kwu_eL?gIfp45@I$yjsn1Ic1D4t;jP^Xu|m5=2RoT{%6o~9vR};uYOSL z_<{gJwo?`2{02X56MP0IVmg@@D}T`SjcvpsLHHeQyeR5~dCqZ5&p`Tz2Xp4=AGDu- zYc=DOha8W$DO0X9MYcm!A1;KP%j4pY^c~K1l#s#7Ud*w-RQF{jeWi7=Z!)9y{FM{D z=2XWG(wusi_N6Zt8J0G|gbBa*eOx}68eaG^E~hBFHjmxRY1cM?Dg=|To2o56D)BS6 z&N}$wkwxdMnhbMc-Yh5}?d%c1hd=XDdeoVA((;gu41=)Nk22W13Nq%$+dH0!41(iw zE)9(gSiLeH7jxH7QihPP70f)&t~GSRB7&4lpK5yyfaC?sD2)Fc{p0FSFdAJ#l^$*cLr{-@y(eV16XW-Z$WnFrwo>)*8DE<^4yzch+l3{_9A?0xmGs-U9 z!?ott`Hf2(Wz7HLdo`k(7CcyM8&!m_-G${Dki)_`vQd(yTlmS1g^l36;O3#cl%cy( zRf~@e{QK0WaADPHNWWtW(-oh&-6Ruok5WV8qQlwvh?|YkgKL9P}mgP3vm*7}GZ>CWS5b}eIrUHtQeIYCPMz>S+1w(epIZaq-Q3%P*r zFL}J8bwb+#q4jU&Ma1cUD;-F_cNj@EB?|%fbePX}7Pp>SDQTZlU|eeaUi^K(F6m`g zbc_Qp`JQ+3m;KV5!Okk*px1!mv>`4!nd>F2ln)FK>ssmHc#4T^+>AzSw-FGRs0xI#N zYHC8A>A(TENMh8P8y>@U)sBPwj}{cjl+Z?yf+Y3o(xtO8sslwKWjfh6@+wmGMXVDU zk0+)S{x@L2EKkf!(fhaVP7dOex#>h6H5?IimcGS{J87cx- z&tCcnStGPlAkXF0it{)b@a0Q|rp@2=-uO(}GqCuenD zW2(OW2PM2n9wQ8?s|Ynts1K~K%3X@*2h#Bj}F;x=T{E~-^z?!Sg9 zPWG}^Ar78^B|UYLsf}5@VHjTai9I%{(eAXR-F9s@aYU4Kax{f;4Xq>%8?|D$+UCG2 z+LyYL9bS_kFPW=-fSkiu_}qL%-^hu`h7m6I?IU=_ysYy2^rGTNPn5Utf3n{?g16z1 zt$eiK-hB$8<{Lj#FW8}nK!ufAsAWr~$ee{?_lqW^$4lY9LNWh4Lk_nhi3uHmheeSbU_qLDuQn{wVt+GyF8&CC}uo~NE!@kJ^+jLx@ zo-bG+xGtI4ws;tZPRLV`TMl;>apJs<$1fFxvG*&g2?4o|KZ*Ml$M#O1U!DA%TvgCn z&&&zvLns~j**1S^H|;Gi`%o#pz_j#$ zZ%DkzrGm7Iu!Qhx_#RKEAf@%#tj5`0$yfUxG->+A(a9*pczAp`&?Kw^a~JYXEOIU= znK6IEiW>VVnKH0zuK8~ly97a+bI>|xTK~}aWG=!)Q68^{uD0IRIAK&@;AVWWJK5oE z?Tgk1$VO23lv2lq(T}DM-Kr>byb z!SJ)Lw^dGRTqw>~|N1WQy|(4UOvm1>8@+kf=0i#+ebpa^^lLT^5jvb5IrH;Z&auB} zw-of-xJA4xaP)IWmDh7}9q1cTI;tN|h&=hzLFFDdWN%FSs;5P`#`IfTt-lo^6lGa= zI-e?4(94jw@CcSKh&yq4w>tnlqZnn#mV&oE$|4eI$IOHBgfgs~3)}xFdT!?Wx;i|_ zs8$yf{sHu3-r9LP=OyAy1N#n+8VBi#Jxi(jt$QwH@`uZV_F(OR=VLd^kfM+&YwG(; zC;ndmP93r0kX-$8QQouK-y=DF3xDoN{yco71l-QX9kIe2QB=9?6_qsCoGOuG@(jr; zuVhH3y|FkIO-r=GGQ{hxhT)&5|8Qv%)T}gg83N7~(2ZbLlB-?BYxp6N^BPUl2R5H%)734=5l9WNtMM-KXJJR%Z&*DZUd!s&+fmyDJvE=XflG-uJ z*k2D@&baSRDPZP`^5<0~tM|q?+9!w=gG`m8@fwrC&odxfw|Ov)bc6M<;I5 zZm(J9Mj2`$_gK=@5+BKt$sK=CExl>)Jef)q*#_p7Y}*l`O=E`(&oa@fF-d_3Az8K@J}0G(HxG(Dry~oVGc4&pXGr?bxm6y-1`mlm=j_2~$%jOqbJ&sv&)E@@ z-g8pgICn_oIUQN>oMB1-IYSc9ImJ(0gYxT#2C>qV8tpX6GeOQ;l8!}~zCx{_5z zGOka6Y;q)}@A&XtNl6>)=M~HKFM<3L$fYBLSmn`r_lB430Nr(Xo@^w^o_1n8n)lJ_ z1h!tXkCe2e@mP5GuYw#+iA*(lcTc7AB~69g?vdeW_-&s=)tQ$3caRI{5v!|XX3vyry0Z;lQ+Y%*x7mo4z zPqrnJE5`(d9*a-TzGQDi#odzQMb5osZ$w$%VN1@tnxAweYQEbwhCWNi&MM2-{MxZ1 z3u>NH!loo@ew`&B!`)X-3}OQrjd5n+``JDc(RHM$w=#lzpu^(|e?sQ8MMou2_EL+IW-5aOC2|A!kWW9KuFh<4C{J=1zA%uUKw- z$yNwOTgTq4ySKk&@18pgE#%F*`@~E3?&Fr^-78%!^@QXhd6U^VQ)I#22hMaQE0$N> zcOQEL%;sP8HH~k>uUTQqa9Yi;xpi8eEOjk}o3tblCRn6YMw%}Q}x!4 zTw@q@WSw=5SRq}G?6Sti3aPiG`5bN@S7Ax>IY@q|L<+ZtZ1O(w;2>TTX9zIz)g z#F5OmA(`DK;aNxal6)9sr6cR?2>aMJN!dEm*wN2DvY@vKNx!!VfA04-J~`tmWB^3s z96h}GImdSj*_NNcciPdXIFAC0iT4Yw~M4GFWLTfC@D<*N#&Dj! zyQ_JMy$+n`83N~q6^?AOZJsqx`B+2N*-EA-unA(K#d~-5b;BMRx*Sw#ZGFF2l0Wy! z4R=lIthRn2(rhTk+Sck_lgm?7Z0)e*nrn5<9|ZZKAiuoNYnFRtxOhte)u|78H{vyO z9vMzX`l2O&xF0I{!+6a$ujB(D=RTAtLp!2^>TH`gi=^*e|B)az^ilcVruR1Uqc)N3 zy-S_FlN|r3=aAFheKNd}BYC3{w`N5h&%^~meu;)bC5m@0UZ5%4Fv)%P$G5%^*SpC3 zdD;HTTXW>7t50f*mRWMl)hC5VJ1v=YZ$uT&)lS`L+C35_GJ7xa`Z~6dk&E%1UEa@A z`%9dYWWmp=Y?-|*^7Cnws{2&r=gpSn&s*JqLLthDPisIKCwU}F*5l!4cS_k|!UX<6 zmRpj>HSLB->aaR;)?AY%EtzzIl{bJ~{#c$g%aUh;9P`Kp_ndW>jKzPat=I6Kb6N6a(|4P1zYWX5f$Y5)K$y#n)q53o-1NtG3 z}IR{AWGILd+oB{Vp-1b*@RpgNz zS@1}HN%Kfe9$D~6A?ZI-NV-SjLTfjOG&dL?;YBSes#$zZP#9hH$?!&wELdm_Nw?5S z_jL=OqP^DpMt2-gNQMnA{FAuf(r3Vh85z-f(i*qzd}N?&HEe_;OyEJxw|6^ z?(UZi@9xNgyN9HI_mIThr(ADCc}+@ZhJgSsK1_k6ZYBrl8MhwNV9C%6V$D<4)09lu zM{35?cAoureGygcys-xNG1DZSjmnosN|4L*lG1nJbd*qZgg{ykKA$KE3qU8 zzHayM%U`zSS;y((JK=#23au{@fE4+IAzHW_wJNl-1;v&X>uJP^%+;jy(tE}-;Fzh*ygxC z@rJ9AIY**G!iT3kBuPH}yt@%K6bHT)K5T6BD*1 zns=vLp4#|69_a^>Nhoy(9cd;_{Q2fxL2Q(})OVFH*SM+Byd}e_(9}W9;StHZFT3ZY z=HT)V^_*eYk>th?z12c~_mFf;bKiNbBnX?P<>Z@2%WL|ixu#kAuw+34b7a9aDPOoA zy{1ow*K}mTH63XZFP)R$bvI`E_h{OZUkgI1v3r8T90`iS^*wk+UlJ}EEV4EhTo*PalWbkl)nK(0TYC(Qu80y5{3#&v%IWZgWbElU*bl;3JTM8D6rOoeXT4f7E94+opN%~H!f!-|56>*G z0gnt@2zAJ+SG<9b`JWWu>V7V=NJ53Kh3C9$(lu%Ux$>Oa{JP7;qt?~fT3|Bq!u1de zVzvC)yXL|nXrGo0*VY)A?(oRaiJFJ6H1jqukL92OGV^el2S{bC?!S1?dCZ}b#TtCx ztND`;m8RC%^InCpJ{=jZQJZ88+$7cD&5JKQw2%xJ$9&RQ+;>oNrGW=(#qy>-eJD@# z%9Ey+X8D{RX*$)%K~{pC0a@#26Tk4tuoGDF$bw~aM}`&hn#1s%AhzD_z0tmwOg2V- z?ntw4!yQJap=3FT@ptI%gCtLnkmj0ad1TgKnsa19h>#K@!`tJ9_34vgNs5Vd9v&&_ zlcB{?=A-ebc-}EvI80>QQStmljPtmVbQ7`PcqLO~MR`M@gva#J@xq>=(<9A|wx_rp zjo#Mo!!kEI&Lgw_!#mPMaK2d-3m8M8c0RWl#AuY9 z08xCN*L$CM1S}Usvc*f_tntW#jMnrAaChz`o$@}hBg2xz`1vx3nvZ%bX538S$O1RU zCqpl&2}J$*-Zl9(>pfD7Iq*`3K8Dx)xL0ytkUf@6epnI^@q<8ift^F$(F2kAI_0k_l=H? zl+3sf=a;N>AI>K$+=uhYwEJ-WHB;`x`DD5Ka6Vb)KAcag_x8x}8}V!UWcZDI(sXP8 zawMAcW$3wfdYcbU|+cxq4}y46TFY=1$K#QXZMLQY@xE{gTzLKK+tau0DM- z62+!pFWv#_34x4u09>fS_-YhCre#@`lPA(JtNmNHNUS%vMI9F z7JU-+xp_I>gbF3`ezUw~*1_g|(pVfyCN5`KOL7M0Mpt@dLB!UPX8z7ar*EO;{FV6j zlslVq+)Kj(I^5|m8tlFPB> z*1?vpu;hxDW7cEIFb4euuGs)Gy~`U=uJp))H}XqPxK3c@T3E&BMNX1D;V5)LATuCS z8#b)NEbg==89y>BJXI*U`5BRP_ROGv8pwH%+;p?utR=&a<&7vg<&ow&{|)5$>rnc2 zo)h(cUK2!OFR$c>J+h!=5=4Epq$9Kbth@zxPT$}?(oIM4P%#+Q4PJdRt-TJ!zzyCt zS;>xMg@mnc7(~Nhq}7pZ9gMU(M;3e|N4ENJ)PyG(h`x~{!x+keN5cofPZx}UgZJ}c zlv;@X+>r%Uw*;be??_2U7L-hZXpWY2Wa#M9OK$@)Wy#Rp%F=;OdhXUGNBgAhX}cq& zDS0!OU&??g(PG48$yX`13A{?E7VRxLg0ldk4}6(P-YazL5G z+jKv!0mYCUPzFGxpU{A!Tw?sZ8YOF)8ne)MtAbS7c^#8R}RBU@eCFl%WQ#NeMJ zZ$xtJ&$grs5iX%JxO*lHez7f0g4|%0?>T1fR3tl62w1 z{c&S^6~zWg#>B>S~8TO zFnzKs>38XiAZp4Z6;cnPVtY|x$iR`|bMi($nco=he(qm$>F}c1^ike5`SYsnA`7yk zeKNeJBf}w*L(eRTvSW(O&||K-n#q%4tK;1rS@4ZQ(yx#-h{ZV&Ic1iE2R*VtI>3ZF6NvjNry+8=j8fQtw%1o8#SC>6q|XI*C!j@nA)P)O0D;t zy!$4IkuyBPdUxyo|@$M5%-dIfInq?R}6)~ z7RlFiWI^J@28h9yNQKOR9J6GPOE8}QcZ`OuGQ%0SO?CbKMX|;Y7nyCUS(51;Fq0OM zENNy^6cL&X$%^Ha^D0TUeOUTnY7UIZ!By>lfEcotzNz<`VcBK%U|9)h&?CB#Ue%e{e^h4E+$kyCeDT`6Vw)7MS58TJcCaVusU}EHK0IG|#TF zhVU9|hGR#Fq#5$_7&CNaffeWTD*=veSBA*$09;M_=Z=RfS8H25t z7sXn3d80Pdb*elv7jA|7v?VdMTy)0O4`TQ;Dw%a=INM(otN)zHd3VjaYtd*w=UFj- zUgnW2F4?l|Qdq~0p12vEli993x#o6$Ewzi}yPM~H60e!~0!n?+Q{?;Q4krKSNmKK` zruxxWieghYOOVQx`~%30M~2E*6Sow_7H*XieI>f|9kC4D-@ULAJH!uW5pwZ>i!TP#8as@q(V`cqEetOwjXO zj|_vJ?~nZ41U=g$B~8%t;s|Mio}Y@4rUUGWT+>+bwGq--@fRYbvErK}WIlh%y^#xo znEWM=3`eekr*MO(z10}bJL-=wiX~3)43<&L?1@FOT&5_WFf)g{SEE$`9T{dzlI)!e3bQ3c($AK3B(o*MO6I|0JPfSh?pc(YcqDT7 z0gnvtPBQyQx{{nZUW?8Uv49t@vk<_m|lHwyX!SOc2laA!ZW#f0BuKtZ|QczJZxNBOuma6))VB zl=H~&=R5#((~_pqK8oiY=Mi-K#q-v|zOMPzD7l|^&0nHqgC&!G2gpMLvxj;&`YoGc zaon8p7j}TpQL2r{1gE^JGi$$=4AV9?PRWz8BU;si{lg=}9_*C}X?n0%pIS(o9xNFl zO%GNUA@eSrySvMy=BVwHrhy$6`MGIeM@PuK3+IuWu9A6C$p8Q$n@KIc6m8PYQE{-INKlwwcXOZB|K zBf|htSEQt3QV}wg_VvkpRy<`#3-T5y98D9UDRO+^Gn>Afn7h;&g9ktV%{Dm?)~klqBOHz`U7=_M5DkkDHo zp@$x70x9J3efR&Ld-I&hygNHPnVmD6C)ty{dZlMTPDa-8mJINijvByvmka>7PY(F+ z<3IWV9R+~;YU|Yv3V`A_GQf>1{+dV$IHv&sSgzPVof05=<;Qcye=;cnSrh<(z<>O6 zDFKf(007}D25wOTzS98!vR8~frUVce0RXitJ|U+9yu6C@_KIcbr~rXi$C_So9X%C5 z@k%>g3Hpj9ue9Hl@G)HZT< z|CIo5Qvvc40f31sW-O)x+`Q6@SHgS6Q&%}`U-3x=6`dPX&m2ca^^t(Aowd zY;Eaf2@rPk{_N~v<@sOuV(D=Ou9jX7Uu^yhE?3IK%gf>a`u>+(Y`pA&*8gMvU)TTc zv2pcw`5(KNpPP-fjqU%pOz;jr0G8`)>p<4{xjg_5FVa^Z)S^ zw*G7@~!2fIf-yHwzVdo6|Z0Y>J?m(;mu3+aL#=nyq-M2{;nxv|aIEeo?DXWNttrKVd zA@z9ZBa2OTRIRewd|rX`OMU4|!A!#+qmPElRjh4psTnsEJkixR{3R&#{>S@ALw9c5 zJdLXTqGnuDP;R0>QzFRu?nkWPP#=rUWK`|Xf+t*WM_LP>nCPdL2nxOZk@9HB@wScj ze-4Iq~$NR_sDHRQiO?y~P99j%WkLY#1%9-Z5-B0xXwqfYnFSLigdL{hlOxIZ8y#ID648}K6M18fLZH#4mvc_6q0 zqdW8oBgS6Dz_QQq+t+5LrFFh1lfvD5ki>>Woxh2~4tz`MoGd&}jBEX}Mz3+%A@<2n za!wx{4)n3BH3=%44uaqvr=+Jme-~iq6RQ{3E0nfw%jnvP5W##s6vJ(Yw!!t3cyMA7 zZ`K`>i&Aor;XGk=^**nz^ESLdJ+Wvqd#4Y!yJv#)+0G59Xqm06$)s!tTCOQjx)~of zJ9k__{PIS+_4_+uA8}Z6O_<92srt)8*Xey?t+a%69di}iZ4GRFx7Ices-v#UAmU4H)U{=pNG$o@wzZ^^2{Kc* zRYkY-qWCH*Li5d%CD065_(bOQPS)4c?VDn(yI3mBD1Kx`m#UUBwc@kY(7lD2TI4d? zdoOeNcdgdF5|8xHB5(<8U9)5-=-;d>>Z3rGBe3xBuwH(HLRWYVKfPz}1hSjxz4!+> zX}wdi|NZ6c&~p#gp649_d^G}k0Zsf7G_!IxzC8Kp;t=oFsFlAs-wNx!Q0M=Qy5L4W zd!!)w8pn?qlouv*8rcW&K%1!LA$RA|ft658V!c}y?ZO=km%*I@P{b}b#!n@gQQ&4v zLa&OS@oFPz2L1UZn(S1;JG?7UE|dR!0w()zE&9#+{KqewVR$Q^9psm4j5u=LOk#MH zmmBD@!;&ELR*jE)VbGUif&s$__5NlpeBXi|THI=s$*D}%=_{y@X0Q_cRJ`clOh<;?NCTN$((*06*H|^gs=iD;CXP>-teTG&x zR>yX2)CMK}diQ-^yzeJ*Tu#>vh1%@rS4PotObxGiy`GZo%LwzCmeht2Kd8E^2pkM zS!42FvW+ZkN?cjnoC7tv1%KJvEOd4uX;pMC{GmB8@Xjz9_OXzI^5}={(UKWoo4|}3 zaX)1jDz7J|SBA1{@F+G?$G1UWkx%-$gz{*aNdfTg>ge$xnyZQ}*JS^1NVBid&+CE3 zir02Fs@=KoVj^ADlzgRkXwDGfJ2qead!qb}^AJr1JfE&lM)}L-ncbKQQ25hGhImww zG&}sw>9xKH@6_Knn@-%>ztd?~cvW27>+Dc*qmoT7uP0FXvJYTyXx9hK4L~dSX#U`YVC!XDxRq0) z;d3d|SooaqCm@!-(@@E;0U_6LF5-L{WgrS(@ytT)kA`UnFQ6`hwg_^^3VNR!9Scoz zhIbfTexaF4TR5TK!`{YA+n(8yiATxMi;|Jhh<2#5yvsZ8Q0bkt8v1EdZ)%BBR*8W1 zvnU1B4cnkzZx@wZt7nCAw;RU4xxHuiSls0>i}neC&LC&~$q$@Z!a5wLNltE!c`dWw z$%vqXK$NL~ca_+ej!8q8{dR;7R=I%|hL@P(@TbU%kq5cY)XHmpoDs%Xp1`2-YThv`vu5796x zi?$zVT8zlV+1cO&LZo%j0Cqg$E=WE74oID=Z?`;S_#n!t4*Zn6(yQX|eF)a8`arVG z+$_eZ>eg%UDt+9^Pm=`SFS{ujo6?&su1=mAIgLV;NPoD$u5YKO3m<@P}cl|_ciG^5yI&` z+Y{gtC~B>*DC)=PSU8=m3M~q^ak@5tK(G;l#tKDPV_yX>b6%5`=3Xq+7^7bRF$e~J zU=$40WxT1Z8!pyHJN!c?ul-T6v3Y&}QG*?AyCX}T(eJ=8xeDP|IIU~vW?7Gp9L&@P z-hBrHmPwq3Y4}b9(4PF-spgvT!@}Q~ceVG_#fwJ;`iCpdet>^xA~Z{;wAp!Z0WUrb zed)pnw7iU1JF~rgHZjiQDQ{B6oM}&bYn-e5G6>on^EG?=P8F4Atj{aYwz@~$=<*rg zLbcn@mn`yY^%gb(pvQet4kbJyOLmHg!;J?(``Fp9^zsOf(Icp1e509Do9DVO@5~+a z;zrknv09qNTF?ilHr6)I23@DNY8S}y8=p4u1xs#lM#8pukW#_-o@-wPl&E~evJVkL zrRO;mj}?AB)M}yD5G##)Ec@aIaKJ$Ib~=>6Q=GwL9}b~CiSt`_8nXs;}MKZ_CT}to@)O?>-(8` z(`bB@y*X5F46T`1kwXG;{M=pq+$@3ueeq!xU-Z$C+d44tJ`kVz4MU{yncofU+vt#- z@m;8LkGEs4?ipHLP!+_8)#|w9wv%TQlN_8vZB5L+JbOJ^;Jw*!)X7}>G;J^WMaBp zSV;$LVQkyx@ilPBos1Oe{qk2#wW=ShDUo+sTF{}T^U)tJ+62p-{-<8AvRO#HX%D{k z7kFkv-_r}`{0xcxip;B&t{jK`4)*#=WEU%55>da%l`9%YylZ#xxn|E=d#L8q_ z0ebLAKdL|w^<)W zBjI*SH;z9Q1Q`8kce+NXz0}*7E%2B}(0U&~-HKs^Y4clvjQDa3cJ=17$X%&_n8qI{ zSJdt=LtDHuGi~+1Mm%cAnGVcQ_j?qPSKjXG{f;*;L(rEZvL1B2_!eOJ75{48=Rm51 zE)u)~&iu=3Lb-wK{QG{eq=KmeV)~|>=zYq-ft!b%h^N?l&EHc3&QwB)PVV3w`KjB=>*IfiH$cESy=aP zcc>rqd)*S6-ELL88COSCazvJXG0nOa;)zl6KniDRS{t%~8#>K#jfis~nRopm8!aK? z8bO9ao_C^m{)t=Pf8w!1`LD&*5m=?TRfC}$ja#dX{D;_pWnGGMJn#rn<#l4|cTvsw zZrm=3-5sKDax1s)Ew$A?WA^)S?m@d&*zX z!6%X{EgVrT_<3Wobps>aZwKWRD(dUkoPvODgyAsVA6n=>c|Ey_L_2<)+MmLucG$b^ zGf>M@GoMV(&Xyeiszp2AV+W&jliZk_o@X{U@zB|R)YyE@d|^e6N!DNFjUBcSwCbTL zpyQ;=hvythh2-q?VK|4T{?i-|JhEvo)rM11r?TRIONK4BCdQBKh4=;= z#Do5_BrZ=C<>xjOXf$l7y@;x6$XD(@TkSPB&LGmuGX_G;zB$Khce;LfySB$xUKfAi zq~H9o?iRP#@?9m{H!p)acx6I}O=}GDm2ad{N3t*bSA7=sKR-#0|K|AQz0`3{7{3(< zI5z>WeOH}oHjUG#Z{ycDh)YQw&)-ouF8;ji&xb+fnA=*YzT2aN{)R|s=JA*2>}$LI zECZVb8IZ;7gNy3{ho9{#0xoqZPmIn%VkAS(A~Xpi_X#SO<(Es6`uX06Fp+bj@$+c# zNR;t04m%_7nISFY)xI&7O=9w1PoDp9=gao)z#OB^IULuKVs*#68Mv|Dct$X(y#^8H zntU|rDLO*A(wM{_2`<7VX`D-b&JH`qhq+DixG^&|(K0s4b;lbN0hd9m$^l)^A>*{# zvV!P6AJ>kcJy_vm+ylPW(xXv`&RVAOtF_^C=&nRZqz$`y<;qC9K%MD=Sg^LEId+@6 zKKHqG)d%%4pTC>5c03&k`5nMIPs`VCQkrh_7o8~M%hQXdCkKJ#*DNO=H8Oi!?X)z- zm)s5DY6I>ElApuFpSzy=S(?D(4$M}X(`P-q`nMK$s(GLxWGl-Yvcw*!T=6P0KHu^h|O#TWM}DAa@a>|1X(ET=76_qv3onsKU_#%eYcrWj4Nnl*_ot&KK zv-!00dWEgG8m4FaT;0K&KJ51!85&U9C6SkBfB>`I7f>l$8~Q0B8??z*$NtoH`?pr# zWvrZA4}-oIw?_p!ws$gC#aBPFK*&WdVCNx4OuV0cA9AW=&zisrWWa8m9)eM2eI}$Y z^4z#eW)Knad1155#A-~MfyiQM;_FPLTjJOu-`4$Fca$udjiU{U?Pei6)X#15oqx03 zb7EM{wxPUL9)aZh=R-fqD7y=M5i~lrb@jy;Ez{uJ2qFJ#K3U+ZB4mMAT8uxv=VSIe zlJzSx_t(YShp=T(#z|ggBR)iDi_Ls3)Rousd-CpGE)0>{muBaA?2*bA4_Jq3tqL@- zWNv~y74!LBV9uDZPpHhNS(K8LX+`>t1iT%qWj$|B@t>P&M-Zm`kaa$gOU|Ei;iN|K z{2Q+F{2jB_wa9nMz?z6Ge3)yXa6RyICY?>hJtXnk$*t-?p9oB+^ps<}W1CwV92e0P=! zsZF-b#`YZ43plij#zrkJkSz;=FMbY`a05C@?e(*qzQ&NuENE^3RE~DaR+o|ihc65Y zNTJFrDst4lm}{?dQ|GcuWM8SIWhMmCy|cjkJ}puX)t1rRPTbLrqFfb&XS zb0LyCSj7tEsfwhXxSWWTvCO>=AWaywcN?++E*B8~HE|T3X$Yb7#s>fb z@G}47TpoF+?!TA#X|iRRO_0u9D0wH_D}k^*lB-88gdadq@ANUbc^)4uQ%c@hv2`yBq-=@&=x>+yhf|f}NMGR4=K6Ndx@7s;rd3;MrCv%dv#U`4Hd` zrp(vjMA6ABCLcz)I)}*8WylQRFnXD%o)18PW-ELXPJ9sPlW^IXd(R6AIE+w##e}3F zTSgwIR$Wt)1rYX}o`LBnF4YnDF~@*I^PuHB`4H-S$UU42=QW;1b;=}g0r5}|K(tfc z;^iP)20GrfLtUj7UGp;mLbe>s)_d+r(P;<1?7t7Q1)Sfi21O->i7)`b+p9&YX;=E7 zK(;lFCYW^0OBZ&@1ps}~pL2Dj=)~^dK0&erF291)nUp=QCR~W|I#CWlAoj85tI!nW zvV)BP=M8C8#8!$<2>J+9}^6Jxe%KK|Yvy3ph{njK4-y01zyz!P-;~;7{d{ zX29X-=;zCrlF%$(fp1sKC!|HE?l0*afXjhf&q-|$R<2*w(nCK>C5oa`<-%KxWJ9*B zGRMDMM&1eD7MfQDQ3r$f(}}7i235#R>$fKwOdS#cf^I|@@s9w2@E{?VLYJn7M22?( zoS!h}ikx26Qv?=uCUfNFf!lqTaKt%!AH;W!#M5Cq0J$o4KBN~ylfWwzq&Wwq=!~BQ zt1d>+1VeVqzNwOK07&o*M%vsCz+tXG{rMqPFt4BCoQUI9+xRYE!!B6?9iaV>?w42R zuu#y1m%AzzYWV=A2RN@HJ4amA->8x9;;Msca-%R26rD0X0spRM?;@(2SL>=jE~X1r zK~z_LVvx&vECe8!kS>Y;F~}%0?v)^~1HeVWx>u1^+hs|wu1ey7YwSip1`xVbcyFVy zfI|pze{J>h${?`Q|LyYXinu`1;{G#H4|0B%1)=C91)?^(S+A~zDWP8CpatN3 zX;hWOMGG+Zw%6I?C0lL`vMwCk2pxzw>LrW@iZtWV9{}f`u6s-vxFzW@G&FRTzyr9P zT_&*61His`eAv}ABN0!w8t-YG699)*WO!|Tzr0LwK6ZqIwz>+-DYrwft2zvQL!UfH~F10Z! zLWTc8L~6PHIN=SFl8_-E(KR=_)kcxccj?J)4bJYHmbnkJylLz1V9A;$Eq{NpL*#{+ zbDJyfYfEJ=7j+?@g)W&G?TT7E7q#V03bK_+wspB1tV$MnRo*L&*)?^R_roD5&aVgC zcV_~fUvhK0UIgpjs&3;>VLTt3Jd#V7nFbMkLH!gX=|ffK(spJbVxJ6^D;>>g4KJxU z?^YK2=vJdSL~XJQ_=ku$F&M-A``!p9KarAdyyN%Iu%@{HQQ$yIRlwNO zl{Yq9`fx2jqRs}2t=cb0x-1gP_|PWB5xk7gNF)F53dl{o z3S=XO_t+s|As2P3kz`zttp=^8Hq{8fU4a6*TU+? zawB{^L8>tjtFVnSQe42kEf=+WLj1Zh?*;@A zVQ2H;bi%iza6a8;c$m1%<~>h|?;o7Y1ODaQ^uq<@6xc+SXGecfrZmmKZ?{6TIxkf@ z@^`9O>|UK2m6#99QFj;$e?F3|lF_z7Kd4txL(~6hu>4fEQKr$ZYh7OlSP;wcC)$tU zrj7>rFs8$nDB}?!>A4{r6iVsFn_1``4@kej@b;gRh5;^L6YHMIgT{x4nJ0-QOB;3^ zr}(dpfS(jezOGsV^O<~}%cF_%7#Y$M)JA%}_$j!g0A3iB)p!H7Dj&a1Ib{;381ZC; zs-bgJaw!ifo47$&rnHwWRDM)#Rw+8nP%*@kDpd{&&`S}zk;4IJm_+}3&*9(PE&t%K z_LHTok#Pwn4~lM=8uvV&k{WfmLm^7c5Df*`zGk+i?2Pg6?EGXI%H#Rn^P4`J%5Q@% zdAg^$-$E(-ljWbbYkKCz2)a-7=S{b>+Z*zwY?x5D%tQ)|MgACzOcv(UtM^>K7u(Qws%(XF21B)VeR+N>5^$4|v)7$wh9}C?DvU+c>k!nV{>>R@$CA4n zPBTJdy`-gKVRn$$LNI!+Df|V;K zB^|iwUhgK8DZz7Ds@ImYYT<4jYV9;zm?9XD%3o9AmU?BOQ-;e{S6&;hh>L8y+%uU? zy1}*u46)~cYif>K?=VXy=N)XrW9XL1QbO(g5VYZB**W0wyFKuL=AbocII)7W(g8%1 zM7@{E8Rv^lX{j3qZ_Xj-=Nr&H?i`<#HjAxhum1yz^zFvSjAP9_mq(IFG4kf=-ZZx3 zPmbGUDpeUjDVoo;>9znt+1tuTZ7NsLm1&r%WG_Xce|RG4mg2iS==+`8?q?d^%H`cDO>x0|GY$@-n4F;d6gWlrQ8E(zNfP0pH+pNn>^~y175N z;F9tezBBGBG+tS*NU;%`aHc)eANr5$?V0>7^Pf>IOQi=%uROn%yH+u_1!V+rPnFB$ z>BFKMYn(@LwENd1HdaPNvM_4+{nXqhyzc-_P>bG@#IB}p89{G0Ryhqsu0OAn zLe_&zFZ%iXP-OJ04`vbRZ4H>H%3OamMWp8@YzqCx=FS0E{MDx$;a=oiB{=*!MB6&H z5&TYg%|mjdK1MyN6MfkJY#0DUVTl~RYdvFV^~7}_M_st)xzYPEuePvD;pQnu?)|1h zzOFuUB)d@gX-zcTcxmu&rNkuAhdKgW#^n~O>r>G^R0q*#S z!iq^0EAeTj@jXJCrNm%YWUYxB#37PPEc#Hw9X1l-*}-_qh@ZBO9o(R4gJVAOxuH>3 z6N!mcv+{ccmUf2Uo`AE~=``_g2iJFv_cyddeXxB~;_%gP9(oYah)Ew!cHx@4E1j7> zOgq=w6(@-*W*i+I5c(SKa>rAGW(P}TOwZH}@~D_uj3JizyUHi(Bpj-r*OMgLxF_?) zc&Q|IKo+^b9b!B5uyD2(Dv^_<-8LG7{NoTk+Z*!=@+QY<_qw6E zCm0o5vU0I8sSww%^wi35^kl4(8eWf>gZBn{%4r)i1t9N5SJ4wsoxhvrp@}tJ# z_YhuRfmRJ9Hf~Reyskn|NE+PycYWeT02uR8p;*rfa=1gY_@Y%2cNhL5mMv*F!clhw z^c;5SrdZJ%3f8OY4OO1`e5Zz$k;%!uCkxWbV1kt^=xb-pid<220j->wl$bSy)fzdd z*bWJ&5c_4dj>=Y{b*Jx3T!!LfEl1Shlf@1_Hz1FFk&fWg_hM*2vOTAgng&KdYl!eu z;KQwXO#ia9a?0qf{_N#Be&J9F(mDy021DN21nTs%PPN^&xWJ#(vJ3dekDm&l6soq9 zj%KWa)~V!?|7f~05|`BHE*BT)a{PyX`qaQzjA^Ngo9Tjfmc%%ofPfDJO9Nh(16 zOm1%d>WgJMa&9Z9T~yL)+x%qCdD|ml^`wAp324>bpzPd)d~b9VqyY#l)6*iKx;LbB z*q(mD`ulL&cUiW_tpnzg5-(&Kir3?5tgIfb^@lZ^&GJ7BwviUkL>+phDU! z()V4ooq?G_`g;!Z7QoQsJdVBh+IjJHA}vT6%*4eES$gQz9kVT6Ec@M4f1QZX;yfo` zu5|=EcJtyEfRn6x+#MVUzkgJi(mQM$Tju%Z(9=qL;2q9Kn~UXm5R-CNn%lUQYA0v0 zNVSK5>Gee`1rc(j+D?)7yuI+j=(`+q>kh&GZXhLw6Ce2u$-0wWZoBHE0utl`pUEFG zj8U1l$Lz2n?V=h=gD5T9(t^yHqz8X~PT{rGgIFVM$2qfVnTG10Kb)oZ)9P$WaJqGO z)-dFQx|w-IN0ttiUDK@CKZ*^hsSWCD#@T*fJr$dubcn|%biKHeG(L6XPVg(CBS4rc-E}OY{9i^D$J5B1(c;O@N_rjq`?gEGKO%0kF#X zzEU$qr`%CN>#ylO2a)({=8Nr!GrPWVh&QlBz)$El6-i<2x1LL2sfT7zpAQIeK#09xCcINZY`-g>+5#G+$<)M7?>{`!mb#SHAD#))h5 zE9!QgYj6N`!BQ>j<9#$#6RL21C(vcw(YJp4tIJq$y=QBMbp6JxUW>*;-*QIFtQ(5( zTRzgPPFrN$so{R7DP^krzDV<|A45x7sNKO!ozmoOiT(VvDZ7>MWbI=fJs(p8zc9j3 zslEm;^=&Uq(wbF<6PUc5$f5m{JveC)SD##Gm=1>|_}p5M)3V$8-l7r(H(Sv}1omc(v|I>>*h z(X!kcL7nRrDSj#ZJtK#3=iVtvOB-<#paT5*v!Gxuzmh8_*)<%X4T~#?&C@PQgfb&%+!T84d@msG<=eb_jR8;?`b|bIsIL$ z&Gy6Jtw$G+2gRACf3w$V^#0U#Tz)W_(|fZ;JzOp-A3er3p#Q1C@Kk|&?)~RysB|k_ zOyq&}0gWdaY=f2Xq}sAe5zKf~eoL=-yQ#{gXPG#b90kv^^82V7mOK7ru27D#i>pY{ zToBfiQ8T5^Zk04VRB<#~?Z^K4Bq4k=WH#S-OEvH0$p2m3qGvFW9V-*+(d_}$kknzg0R}<(7J9_7>x(ifcxCm%$+Q=NCfPxc;74nTiMsGe~G3 zdWs(pL~X!q{3%n`5R5uQW~4fR*AtHoLw3ZkmL4?Z?O&P4i7T=P_fD+a{T-st^#$Pz zP*IAD({&*nnN8*IPVJ4qjyE&SlSU3y!V&2jDCdQ;mC zK0n%Bo!XY^q?WQ^5CF^V3+fJF2~VdKy+;+(6W+5))1a{cM(j0^Bpo^zu(Ck0!9W8u zu~z1!cIv*pRpK37D3vkX%F~sXPg5mBezIaVhC)d)GzHA@5>~P`qN* z7vVY*>Yn0Hbz5N{_*>DSzWI!hfKR-#C$6tRpM)zlC z8Q72)5x~1`!n}vFUI8WIRf|k6E=gG)IQlM0f}<)YEg@A1-a zv|L<^kKe(T$AgB~pRM0klB>Sp$}`Vhb%CYS8~vF#GvJ{&2SxFyux7Oe5@hT2N8_h* zN@`Dx$o=CUt;$$qZ>%u|Q2ZSpn(5n<+o{(Nic*f3S}y{*Ol|(24LAST7)|*FVk#)G={>O#uU#EuRL3dR)p)x_cBad^0Wv3r_>p&;<7)~kV#u(S1 zAue3yM6aFdmhQSLzlYBL%oRE@;A5r^))E|+G41FX9IIlDDKWp#{O;6#>K6?`25!~v zll`X=VZ~N#wy9%YD&me&>4PD&a;WX6;f}Va3 zl)tg*F8BwL=6xO@{YSv*4V{72b^BJ?dQ^~eYerB>CvUWWZhEG$j_aor%X^F~gtdT} z(UJ?eKzWCYuvUAZ$delnkw&-d3f>JwTLtCD&f23K`~!wY9Dc(MCXl6#n+qahLEGuf z&tT3SFBj=|pfbvAEJ6qKV%&VdAH(-wr}0dsT{V#Rc<8s{AK{#cQXhu=gTF$zQ8d12 z(}xaxe}cEK0VG%fw$cEtqwPz}kK~=F)WIC|faK(D`WM-1zhy?NLDfu$u}^$_uE*ic zKB|bT=$DPegCpOYpLK|um5FsDT(%2((?Zz`wa`)&@Iu69pOx>;ibkpg=C8+Rxkf+A zwnFjuPwckzVs7;pY~jvMKRDb#IdHC9yj7T%^PRmdb z1V(IlDAA7IEBUa*5!<53Yp7Lta1EASpIUhxEu+4S=$Lu8`6Ov6QMEan`)2>`&P2|e zG*j=dlP`DHSSgB3c(m0}I56TF974`so!jaNe_;HRbvXw$^>~?mBKYN7dQ$zkSG~qe zJ|g9$m3O<1(XqPT;xOyB^HcUcEla%%A=X9jl&j}|O+2ar8=LjrGZsI|`|h4j5nmgo z+(XoZT2b__TzKOH<_IMpvUShHc^dmN`}?@D+L;GQo$AP#~ijA4Zd+d~&9~ zSn{A9Trr2HVcqf+L%}h-*)@f-BDP1YlTt`+=MI_&Cr^jTCMfL{t5X{usqxFH9CEn( zRw#r=$n!zXg|=wmywiF5>|x?=gz|!vm?97g*NjoR_enztJlK~0GD~}&E2nq zxn$KMZIKnxbgUG>lzBNTt+UJN$h{4v-LROC(U@PN_k0X%WVM`W`hkynd~XN~$v}p^ z<{?KH=V(1G!;*hsj)l=bN~gEaK~BR`P$CW7(;7E8XV^s#AWv9FT_P76P}7i24>m7geqlE#LMBSeYn)nQpM55Ke)oHQ=berKc7=LzX;ls z8!w3u#y{CY8Tl4!U=q`?$h-DPa4d-H7Iqw#yeCuErPwWD&xs$cO6@y`Erj& zr@;C~{qY$t9MG1Uwtjw`#AVKN$Gl|oyqcGDT_TE68E|eP58(Zg2f~<^*^CDoyK(+rX){XmRuZMJ1USRzU`X=nf7gBCkpzM|9a z?1V0%vCu`~P(LB2jH5TR`_o3ciPnVrhE@2$Z>i^7A!jKE1U_Svwjgt1fj!x^XH}>G zllvl9Ys7U+pWg(<3d-BP%cyK)Jg;oFh$b*34AE1de!m;%Rn+Cb6ZCtb0JAF_97tX+ z7Yz0xH?yB#ZK$XxBSLmzlU1;OU?VWWcMo5Cs!ZeIEbM6SM!|^x7gAMgJ{PPeU`J+Aktf0+1S@xw7Y>^ z^ZGg71Gfsl&qfCaF<{-P&sk%fPTgM}v&P0C4VL;h9ZC4N5AQksCfOo+8CMO*$Lep{iT^v#%liix zD9T0lqz#-v=p8n%mQb3s||3}{(U;Sbbf*IS0P@#GDz-h#)Qgs?GqDr`_6GY zHt2xx>-nsQ_^$V>V`-{&=7C-IO=fCew%<^#Hy}}!JncUUBbC<;p6ZG#ZqWYfJ(5%h zxfOFlvH8v1w$(E?VuWb6r-0-wpQ-YY{(sTb4m5pBmDEQ?GiVi$osVgjDhY9uOTgsw z^kkN#Pmj5ky^UB1{*h=a5q6a27#a>FS>2L?TKCUpuAd9~x>9VMn13wrvHLaYGkp=> z*#10UMZbkVCV8(zGl#eAW4=I)-@n(r%6FpR&(Y%bmJcB}8wY0>ZTt^JHqIXUVJ;(r zQ5u5DzUJ;cf7ZN3>Vo{e%;Io#(o$><+lw^9rSYr>~?JO6lap>j;QN_Sh?}m+%u+c)RIX@i97iK-G}wKW>PzU1VOb4cd_eH7=t8J7u3?jlA3twFCQ?YZIpU1x}s z$e<`|YzxPz2V!$WR-F#WlZyz3}5!?D%x^M0UdY4G~id_2~Z< zD;a%J-hqIi>)&902ma$cI6?8bPU~(NJ~}{o3~XiLpC9zxKAlBmg4UPR19Z@7lc{i1 zAi$gXqB70$5=Px-d=dPp-6^h3vqC1j%lcUDMtn^FbybHW>yfc4{&8$?^$$fW@ z0Wl2>YH}!gGgJsq4<~O-`}m5Gd0RU1rtIgpeUd`n5=C;Q6=g1J9a13cV3t7_Owq(O z(orJ-M!80~Ex%S`z8@6+RqncMkl~$!K-1JJq;uJJ#%xNsJX*U1CPy1E@RmISPaTZr zrAH}DRxU~xd6{kKj4_^L?yKl(rA`1vh7MY-y?zR_;B4jHrRQJ=<~{#7zztImh>6Rx zm$ciFARMb^0kDt$64&r%RU+6@IrbFX1f2vX^z;4F*i^w&H*+hEmH=5sdd7Ose_c|y zw{eYnRb;qv| z-(7i3wr^Rewpw2oO#J%!{W96g%U%f0G*@T40OoFwt3Baw64cUz~2$OC_T z69ruhy7(kTXonYnU_6)Z+uVE?$*t8Wd>~++D|*=!7j)9RO)A|UGJSCY7-e>v6GG7k z`taYd@=`t+VWjmuI`*MZaQ)?Zv`SF>gfYh3BV#{TWZ3go=nV`yhk~$z1|Dfxj$i68 zY1`{IC*9j678yPdlc}iDcgDOpaJP;c0`8T@{hPzH` zWeUB0mD2{Do6IB{`;ekHG;wjB4q-QN+_1Ka;xcnlwjsT#3YZ7iVfoUx)fcnON4)Gj z_}tHmdg|d9w>Oo^0u>tn%*qCm0x9GTx@08f4l)?LW6WsBdCVr=wCAw`-`VyR6->69 zps@Q8vY*368sw8PULw9`>38=Y$dSQb5L`=X#*(Yf;;!z&dw<~Zs@UD+rB!i$1H&HP zaM@@3#&~tk_m<7Arzu*>1+MI~fG194dNK|E$_Na;uz;NjXh&rA$~kQY{d)-g+U{<~l-a~} zl*4VZgh4mkL}7oe*0%)x&80&wz3Y>6M75l&`&35zCG38VTN->0E*+--2ntuwcHxcd zs5otA!nqv=4V%s8N?$E|?!*j}?tMm-HqjlR#iuzIkyQO2F^?CD5eC!QC6{3FcoQ)6 z`WT@thnOiqaBUjZ^fuGqNLmHm1)AbWaSyOsfhv}PeO?>gI@8LZ?imYcmueeBeIGXl zK^~Srfwji*e5sDc&}Zv*5kFg{J=!mM(Ig?H+7@b)~nX!iJhS{}#>228ITDzy&(f;EW`y%LJnmL6(Dvj0V^ zlIF9M#oiWUl`UZ??G3o0Tj0Ent9jO4CzF&i*|e=jsuSg4-khoy6%kycXDY1{pdKT`ehLoZ0gq1)ren<#4JlPcrz247Bif~n)r@63HiwCuJq!5n-D ziGJ*BdYk)<+jKm;3EO{Xt(iRchq5c0sWUq)T258J+f9WEFyqr{a@^?^zg*6Xl=|JN z+W#$%ZghKm<3d5USsE({S}RAV zRtJ-Q6un>EC#M8j-b7bQYY!TD^lt`a)z@+m031#M{4Lf+_Ep{`7Mt0&!4=0x+9Yj*JgIFn{K4FsM48E;d= z*J4+lBO>Rb8MKFf{S0oDzcOO^YF=ak=#eX66~<_xXQG<;ikIQ3C$F^AX}-uaUN=|# z9so7$I3`n;ogD0Jv=Nqprp;ldTZ;v>*~I&;#oDjNhDgjFTHzWpyE3&r7@GF`Fh1vO zlb-R{LzUuYs{qQ5Zln03{JktWn!YSj)9*l16xwCHUz-g!LM0phYRp&?*QBu!@#unX zcxO&VB{P)}ed0WX?()?lTP)Fp*!UmMov#%~$LEPGpRfJp;%yy#;CB;$k7`~sdGP2b z^H{@=KW)>sS+CELd46T)Re{r>zFzcnP1V+B)lZGx4_pE>74MEKH_D1hbEK-`hd%Nm ztwc;(^gBP_J#3-@V)F&U1=GAXZQBIy8%3ZzwqQTK>->>@m_zISYxre>86~zw_fkyx z{m#~Qa~bYHZdIEW0@cY;x94tn<}^r|z_oNJW$*~r+VLLHyxSnKoZ-ls9e#@fb5snx)* zP9_oPaNJTGJ!D^&n-S6Ax0;D?vX&o|nm8MsDo;F=CQ6ZCm^PZu86u=7y&Lit-KL_8-8n@Ar&lh@pexJcp?HFfj%q4*V#C$ z?w`>!?D72ScDZ@`WyUWv!M{%r6>_Q{B6aAgv9lp-!A8skA6P+F6;kL_a5$ShWr0GRio6ZqGn2~+FG@0 zN0ri6ttzT!i_+R#5W8q=)~da#)LykEcFcs@Gt>xz*g@9UIluEcpK<&Hzw63%CC`05 z_w$~w_xsL0-cMhO?2=oBe@g`xKScc<3W`4M#NAFTxW()DGle9GcYMjh9u@m@XRXo# zFi|gTimg7avC7W!+P_thZS0)kI`zhbp~JWOC{XUBGk`f;T&JtU+wbtnM0go27x>uE z$+>YDjqCpag)?&O$h^Dv=Bi!WEY6|P4~Sxw8}cR2C&DdmE#VY?w#B+9FIC^M6hfSt zyQJwnv)fswJhB38+fUa#z!RNTN0<5$a0* zz0mT-tx`bz7z`*m-KOkyX--8uNTIhF@Llvfh1v`Aa1GMUA&KjRgzk*~cRV&{@21~+ z4yJ4=y}cpx%57>EYqr+BRgnK{(Zj=G3mJx#h6QLOu|D=X-~P5qTg9$KyHB+%ZC5ER z3uUqh{msfBP(^ckY4TD__`Q=qA>Gac7?>POTuZPE&Unk36MGcUp)if+raG-2X-#^7&V=6AKyq*+9{ZC)X4AV#|W733yC$@Ra@=v@57-{ zO8}~a!7N%AVG zcCD)Sbi$@|ikC*}8;cm*I&R6>XGVwAQD3TagfT*_?|-<2{W>J}`JrGvE^t&%M?$%} zrPC0JU*XBRL`c_p2WD(n zTU}Mr{hMOmtu`v)C5Oct<;j6t@`8PorK(2Sn)i|QPP{$s7V@6oRtE(?qPKzyJ=}%% zC2b{_Nx{$027mcw*;DzEV`8@yZD(TwufVyJ?#PMW^~_HyQa(5e?5#JK=k3YVi92wmeIOTxXv&#qZCy2rgUPuJnA*x1pz zKYQs%(#M@8Q=iP~D#tvW(GF+?gyLM7WPQ5D8~;K7jm%Sp(=QE=UW=6)i<#A!hre%) zeBXLkPi)j>jsDfN>0;`nJ>H+-yUH84r?H}}bq!0anpeUUY^}XQy!TJ>1%eVd7GLnxmUf zYIgrhrfnhzjkNmf3 zEPOM8z{om7b zemcipea3s*)1%y}S7>&c5aysQtYn+K;ZXC!R;c_d+Tm@7*yFnLe)ReYd_4TXQ4KH3 z8 Nv?Nu{k1$%bmosTHY?g%#`!CW0r}pbFEdFEU>Wo1uGOLvh;w~XO4eu+zi=o$ zQEbC4v{v#VT+&+hpkTQw@cOpUu36GQRtz^+Nvnz_=;5MmMxx!T)+niu%2ZMx&ssCo z-(HEPTEmYNz32Eab}v_tGcP{-=trK>B;duQU(J1v9`M@LJDq8pD?oQiM6e9?rX5Mn zD*iazk7CK>J#@efbzC6XHbotm4S)i|<^K$q+;xt91{D}b_)|A+t~bkULg*H*@S38I zzXm^?04<^x8^q#H%>2`b62K(9hO3zKc!W2ItNnGevC=Fs*3yRyoD+>9n-#B!#RYHk z8cvf34Ft^gjV))ZUL&^ScvlKkfuJjEHyz)g1HM`n!Eb{$$f^qAx6HqEWwcyZZ%N!0 zSL*j?WnEqcb^5*gyD*nIj2xj?7%23{CHvNk4neeacr3Oo>ZmMneRkSzUe4b< z_L8zz8@mpfMNNDD%{5|Cf-;hJ-3X5iQ5JlsePh9VL$7}OuDjvz+xR{`bM{SMAsS@# z2I-+0(4=JQ#MS>>H&Q@j*;&CBqTU%Tw0JU?%fgd& zwY0b|cRyA&jS_8ZPC>Q*el?qt{*U(+MULjf8TjP~#=H;Ml+=k1oaXLam)vJhQ9du! z;pHdkauHKVu1C#{Y2YCZ_aM(3Ckhj!n+vVIVvNb{4JG{`IpsDvyR6vQ58p9M2S4-0 zP6q2Q^;N#Btt)b0qorM$&R_A-q!56R-@0NQDLXJ+`SmeND*^PZ|W1D{D)U#@^!os89e{Mp(gY*qu z_vGsxkOdV1_5gA|8z!c{GEq;UU?0bBG%hl{OfH0YwQo}tscI6vm;7Eh1}YC~9$gk& zy|M3KNvZy{X|msrZuW+h8l=yQQq({=lOdo&CgHA`a9~Q7Xf{;nyQnj&gzvB-|4!LJ zJ?9};Q)L#<*R2tNQ#L3xg7$C#L_onKL&1y;2FDxA1x&P^f^J-aY!_{0L zng(*oZI=5zWLAv?Q4T~eVo zifB41?)sW~yx}@S^kV7w<>SD+7!t#&e@E3sm9uCKgUFD~aeYKXR+so|P8{tV*S>(C zD#Z*J!za}kiPS-dBFQAo(l~!h!cts5Fj*gc8};>#3#4toz?jb>4cveIM(9T}SKlSv9eEZ2n?q2&;T&Nna_*Mzovcp>w5OB6X zp(}l0rUUa5#Y|X0IOt?(=kqFd+gKAnJ7sma_c#hV3Wl4mUbmRMe=>vMUXry>joKn> zGO+UPbq`RuEw}8#eWb!4gI&B95SbqXcIS}tf7koAxkUVMC#*Oq#wkul8wHzI|YeJ9{Sj^6c*2#)9f4PunnV97Ub}4_jGJ z+SKR@N1MBERa333f?AMpkI&{;Fjkob-t0V*vyjEH!keVJ8lsWryUUZHE}C~~DrZ>S z7{-!gyq-18;sNs3?i(kIoJovPFur67zF5WYejCN{dUj&15lRvNA~^j7^Rfi zZUZ7mB7;)PS4j44PrE~2_koYTglM0Q;c)$kHGgEgb#GJ%MuBbIKfSQMo?9cS!{Rb- z`^jgBjpj}e2z-ABeT4}t?eVhLXi&Kj8O6WgK()IpeDd?`{qG}Q4|qt!8kzr~py=!O zvmyc##a8jjdI1|BpbAX%ax=-(m6H6AiC&r9c}SlUb^`sRpa#r?EPIJ1g~vYloz<iv#mzxHZ9hH5t-Na9d2!o^l*lojBEGZJM_=c9H!0UfoZ$`jR1!_ zraBB^tm;l{1RyRC0u0yaZ1;4q_xRYMo!?2;vpL7IH)Nt#`B+Pwj%w~cAC+bqBRxf?fdbRWLe@euc!>Z5T|TXAfmFt*f+k z1)omgH$P;y6)Obo+qE^>-$qS;=XX}&?NyNQ^zCKE&c2wMmF4z?j0~AnQmxLnIa)R? zwNNS=X)rg%=DU==^Y}K6Um)ARz7niR3A(A%-Y)ZVVWALh)b7YLk=Eta!JGicJ}c9A zn&m=Vjc@tvC=^X=VqWr&zW%2VJ@$50xZh;>4||rimX75itL33pTiXW<{hufR)&9+fb!KhwoJymQNYl}iCOcGc#vB?JQ#MKt9{p5$E3 zetR;cwO}b9GD_!Z4};Esi~rDb(0;kS>`(x7&8aYcQPhjdz4kRiGNh zu-s;_nQirgN4Jsf`#&y}Y7AetNY{byD8G7e)qHulJ4MU3QA1NdQtW}^| z&Xp<(M>WRng}JgTA$-ouLwf8zwnmIOmW&jN!f`3>c=HMk;6^mvjzp16U79aYwUUI6 z{La&0Ym1WioaYRM^RSK_if<~yvSanSI?rdWNKG)Ng2&!r_zKBbfZ$+ zes)vnQO#yY+~JncsyNyY?{WviyEyE&Wh}0{t>gqr zT%A}tqmH#0^odxUHSY7}Y>6x%4caL~Nm=JdO@gv-W}OeVCm$bt+L2^XZq_}0)X0P7 zHgsCWZrx?|HKgfM--86uPDeW^$Hn2!Ym@M(M@n8s722sh-HiQ+LbPg%rMMKlZ&exc z4Sk zIFup?IGCZ(`L__&n1ZzI`?rt>Grms%fB+we_h7DpMn3?<#) zd2FIIgLw&+ss4?<^Ht6(IkxAb?;kec3{JoSwL#+&|G!a$acwW2dEz zsx#hme=(Ajr>sTql#N)Ua`h%W+x63=Ah01v)fEvb+py`IZq=`myHQDWGme5Y+jdN# zV=ff{k+~=I`PnW;9j~OyO60vlL044@SMVS^Yd?e`E&o<1<8Nv=uXaJWz*&GMs)4wfCv#-HzhV#@8;~bNX zj^hN{z>I(uu58uy!@1arGm_&~1mhGw>&YB+vyH^mu5ZsBOB#Iy6=SGGBqugur*A9| zoPW%FQgW>-5kEsuV^8O7_l)J#Gm_petjW1BY#}vaA@8y^K2`|Nu%jxjR$_)yim|Pb zmq(CE{o)0L$o%sOhPh=+P_-ZTTBcoUx;It4*82|Cp9SB%ztAXr2JkpCt=qZ8exAR< ze?Y0TC7tAG;uv)kS*G$=yV>t^f`b{VC$5ASK7D@TK7eK0IXLqj+o8-pIS3q}W10A= zH{)$+ShmeX_Fs%gjB^3*&E+*K$e%=r+;!;;Ic4!I|0mGgSlv{_o+oGw<@|l$Q_=jV zIc(cz({t_(n`vOdOt?K)a-pxIj)4z`P8D#HT`%SWiam%uoZA{}UOJ05zu~qev>W}I zSqlirNV2qdf3%hy`rJF;O-)a#`#ILB@B0KulS8!HN> zDW1+o0|&+1A3^32r3S^qnect?L6xFOwJX8y~DpyPS zFb`s7ax*GDR-Cj`-Mrd3)1l^YcAqK~Cp1w1p#Bjo9@d6gy$ocq?@OnaIuIEQR=nKg zCZrl4n>(_sB&NLGCZoQ0vc%&vw#<-$EMcpNL1*y<3VG=8%$z#L4#dxqm~d8Cy8s(? z#`og)hI-jlwh;xG$bqA`4-B6|H_xX9?RXVvv4wTb^Kypy-@faa1f)F&}7=@oth{J+ELE5846Rhhmzpf8f{?tC!udlo~?F0?OvX{2|`IY`Enf7;4d zkPRPv_kiQc>Bb{dYNd&i?oi1b=kq=Mxd3IP_2E6VXfX61Y_)C6@uS=@IQ^T_iS(611;0m>;q=bl}K)jQ4x^iOssCOuLvA5ss9^aN?5WUPMdhH?}x+V`gV-4uFpQ#xZKS}v*!Cc%fs6qL>9b>YckZIwcDFU?$v63 zMIxd_*!ziQK535iS3ej30NMeq4n(O7Nb(-UaZp4Pt$S!*2QC9AcP{sbaM*MERg2%{;zX6yS}XMJ{uIlY&2}Xxr3RQ%t$vo#($SoS$8oA{o9wLrIuB`+Pqq4Z~YD2S!}+g(%SYlwCgJ?r5Gl(>!LQ+H)?C&JT{*b&3yJbw!OaZ zHrn-en=iNKJEfl(w+fhe?9s{E?aAf4um9N>3Gy%3$naLP)mpnhv64a$3gBxohptzd z3rSB31>o`m0GZ8~XCBY$nK{sP6ZNYP0y}|?VwaDh_aOtP5SEpYHVC8S-kY{~+a`KGVkOKw)2rD_^#!KO2FK z>Ny1)3|7n)dyAB~^Ve+adSyO*rhRLg(|I>Cu;8S*tleTkG3!7gZ=aD;mT|`&@~qox zb@n*i6f*wHR3l*RUZ*aqaFG94NBJZ_93M?LEgx~1F)g$%*MdND@SHF8u>{c`&Xq~b+Yn{$X2~WJrRN)5@M$`2hE?jRI}tdH`xzYtoY(%Y5sP| zP5%tO%JXnNV_-Je+#uNHrK7a4&w#%1PTdkCezkuz>h|gfLWnYG#_8vsY@r2eOQ!)f z;Q?yZ;JtSlg@P(3KEuB{!P2C9x#I9R;(K}D9R6U9y6JDtQe7)9NHw>Vx=V4g|8 zc8vWQXDiyY#~9pDz$kz8EMeW2c}bH3w=7u5UCY%$oWbsVgIrz}8l-E$yb6pRUl7S> z^z`m`w;pG*pUyK7SbpoEvF4rXpZO3hyK+~7`Fwj6zD*HNGZ>lzNLrPY_v|v0x&6z; zLeP$l5NGFpeMm{Mgw%D}`33p+=HYqyuv599dw;^@E?M?_zHRd^yE9mmlllJ2)gLyv zh^{QWRFD#lWp>ikmu9jpzFkKV7g}4!wo~pZgjEKZ$@Y9&@5bVm4l^7^2G6x=ll#V> zkxh04lXB4}Q^W-ALB5^-J})jU)`|Z1rX)r|dsy3-#RpyatkylOPv5>w8%RAX`2}BB zPhP7>1sM?7jt)K!u>PX3F7AR+RG;g9b@wb3)Jk=jzuNh?`KZ$)yC-|pnT|Md#RVIJ z0X|b;A)nDHoYa&0wYmjK(l#5lsNYzZ{{_iC?Zlf~fD4Ofyx>%El^j1m4H=Irku$RC)>{>D-2 z9GEi8pGfW$Y|Dvp?07FO$$7SR0EDUV?fil4ZhNn;?j{;&uj+nk`9p{~xlz{iJq01r zWzzYe?t5`MotxzARey+I;EDs_AbT*o-5PfVMq(aj|7zq+29|pi6?>pIR5+y8YOwC~ zDNmzx)+0(KTn1CK=W9j%h#2MfA@%bz|BG0ll;SlkdIencV7(|yasVsh zmN>!{BJN;jpF~o7y1u`EK3ZZDJYK4o@LIh+Qjz1Rikuw8uh{9UOrh>$3NV@m`(PPr=vo4AD*biZWs9^L&Q&8ZX(AI8_b< zJ6ZQ1TAG_?kvpN1WF)+{8}Azf>o7Ma^QjbqgVu7*X26}vh5$+Y=eR?2ka7)Qhxk=y z%oy=|QB8E;UAt@rMG3bnHrYDV;^N26wb?ZBwb3{DVY?fV#Mw5mc*Q`V{y%Dg;$ToJBxTi$_5bA-k6>+7wY%Y&9vsvo z=f2Z?|E`IN4jVd`$g(3dXGj64Y>k4j=NwZ<0-rD`KRPjWfiY}PemdVs9r0L84vA5P zGd|nwhyT)lq+<_Oi*o(aPrdiSHY@918w-YPzj8A^uEd}IKFn`9@v%jPZ`ef2&+9nv zDHkYX?w9V=%kp#UowZvT-_}iCG9Pg~@U2kDa=f-U^61@{=o+ia$o~d)W@+faLq;iOSbr))^5ao0YgndBWJ;+LQ$0 z%8Ufs!XPbc+9|a!3Ue3-mrRjSUDN}EvV2fSiWI@}Y3k&IPSpwra3PMHW}~1-RC zlmWZxwd8JPCN6(w%rpB4tn9b(XL9;^O11-y1Mm+WD)qEj15mpsTkpqlT(!xJv5BUe zp2;-_=k>z6;Mb2*N~{C0(!yd>wvU|N(%y=e@{^9p1mphtJ6&wBZUM>d7{J1l&= zS5VCc8-laftEuNP5zr9kPN(?0Tm8%(q;xXPbWhV}zv#y_66DC4F{!SsfuSG01~gTf zDs6;J;~L}awSENGL~adIpnJE{q%6AqM!bOoKy$_F!@~k+=^fiWlSF{d_uar6 zaJc_sXyqSVi%j!}sxPOSi|&Hi=YIe%S1Bzovd>|t`*(hnHWk-o1J1D54nx4Znj}8J z$pgYYWi9Q%3LLEJdhhn0P4aBC#i3xmU_#t%Su9n`toZGEdtN2r$}ygFsc|0n1awt> zSQ@BW+IM=}y3{or2yE#=2}l@fcy*kZLw<%suJbRaE#jtAEd!cfH}BH3J=YQ0(!-gn zAVZ^ge^*e~bualnZJ788;pRsaR7=-#&QGiDB;ewHaQHeC-h-zJUZ0<wj|4~3qh1BKPje##!BU~|VoWjT&^M%|wGNKv7& zePH(ojy4z#6OYvOy#U)Dq4JwBTcsBf+2nrLquSGrTC&NI5~4nH3V}jBs3ex{152k; z^=m})*k<>}zrWpLmi$@X9I?6dL3>xFlf3PDTPm1tt>3D7dwoGLR@10e$&}n*-xjzI z*Kgl8b8mGe^*v)kci=ljM;l31i@)S*H;LSfiASNnGBL27%zME}tr}W;17gD&Z`|35 zw3)LDw~zJgMzaR;wDVNYD!dQ6osX={)J z$(GCC`X*u$>0e_qclKTQea*g}zFd8B`AZ^wQ?^8NWjFN5g7Mku=f4&u5GO8`6Kn|C zazkAEdQ?8`7*;Z7HDlDEHzK;$(*w5pzAuP$^vNo2;Eb?*S77Jx1)Es+``{y8j)TXAd)$W@ss z-fw88eN0WOb42**tQ_%jFANQ03tCkper=^qU#u1RcuZL#c{X*92jZyG*|h|hu(P}hY+;73x_eIoPK=$vlNbRmkP)IX7F)1ryRTX+m??-Z@_Tm zTW0F`^89WYii#6NjeuXM;|^|E8Q$=sfFg-i44IaEI+PiC;<<*~ls4N}63;SH@@U$5 z-8&22_ggr<9s&;)COuwdR^8;fv|aMV~!YSHv7&2C~Un)ZAyZ{YNW$;tYi z3$=Q zv-t9$7y0IgOZex9LQ=Z|HSCrk>Vq(!RqJIBo)gM}XT;~dtP1PY0Kn)Nf)Y61@`I!s z;8op!4VSTIo~FKTgpQAGh5M8uapbWJwi}}QL~QWUH_4K5Z1YH3^2l8;wc+*m@05S{ zv$*X6_0haPKB@uK-;aJPE9hgchbLdvaW&2&3MJR?Mf%Pg@R(;EGioW!qNI#Ftsf*t z_%k?Luhx8%JydUlRukkgsjD11BZ1W?`5`*ehC={(+YjpF~&C zj4SiPWP*Aoz14t$E(=XrbineA+b52I*VKWYQ7GO&R0ySv1IR7X!3T=dJH|YftDr#N zpiB&SFq>C5cbI%Jird#GBXRd6VPzONhp>Yf_Iv1#7L8FOE3k0tG zVZ3%6jmkvbE5X}pk`~Agsrx6jermq9!iT~dZ(Y;Y%qS2()1n@BZWJ?(I%3>x_U9Fz zZzKs4KOk>c1*1Cvv<*c3F#@f9MDY~$JwROUjjlZPm}*&LhO+j?yw9KgV>2(Y-9W3S zO2}oLvl%g);QG<7W)6MRxOLBGso;>zeM~%_vq``mD4%@rV9|>AC78hpZ{|<>y^BN~ zYoTXj98UxJ(vceHnc41vEN?Y-EIH+I9Z?tZ3Q;_@_qf;m#?oG#Dy9<56p)tT_y8@a zZDP-))Q<4~9RfnoJV2IRMqd8JC`g`NY5UY6g)wyMe(JWEw;RYu6i@wLChH}VRT|HK z-G_+(vwc%Ow1C<60VDun9nfvdyeC>=tGsk7jh4+b)0Nw568!FgCP)B7Y%79)EvLkK zalpNc*miByYngvHDdQ@Cy4d0BfUkhZ3xa7SGH4t!XnX5x1I)w}pWv7+JH#X>Y~%g7$D`L1 zP{%oMM%`%3ou0qky+#u_eEdZJ%n-LrI5gRocg|o$>Y)77^jpkw2gIiDX0-ux<8qi~fO@H2OfQcVF(Kc?3caOx(-D@#4@&}TFR2!A+!UJ8Flb09F>zg=G(l!!?A z#J}$y1PK!f4Kx z(NAX!O9LkrG33IUF$$+)XqGBg5hKQf06!l3tPP1hM*5*}MWj|gkQMQ|B2dRq!T#GLCjM+FuVe3slO+zO5gK)wDPIpyr4{8 z^(3br>@SR{R~Xe(<&5;s`1)Q9hPl15KR*Ys%hpnE6eFw+z8dj40L(S^oY#WAymFu# z^wVWN2FOKj=V~t@9Lvp9&qnrq86uFQF3sHoi=G~%hGewxymHLsm`ijdO zUAnEau-|&D^YPSNsJ)%woLfPeM9tJG&AF5DxEi#6n(xP3>Pdd;nsLNf!O>E;$Te)n z7*wweaDlbI5)H3KSd3iHAf;J-G|R5RuxJ_F<&tvs$3qkp#9x8Tv?{6`;yeAH4Y z*5oYzo8;YV0POBR&{h1j(>U^R(nsXSkL6FL@cVIA0{Az*lc!@J1xbj7?bn`_SzHF| zsY>MVSwpT2Ll?L@Ko^QIcA+8=+i!m#)vMHAY|gUbwUy&Alf}poriXC%P1?4yKPi5> zCJ*)|&&;Nu*g#7pVfS-c@QF=>E$0CSo{)LKH3XJt2}X*J13E7_jU` zHE8r>sx`3uxN_*g`;BDmA53nMwdX*KNyN9+{eDMrGjKSD{=jp*buq?7_*;|=^i$m} zRSxRy-Z=QrFt{1rf`@2JkCv@!0(^*$xS{Bt2!Hk~Pb*$$W^s>=<={zlp-((q<>PY? z&P^>xqUbx&SG?AC58IgoC2}lFaAAzsG(@-cmlFBO?_b?G5n7HRmw@Oi{B_?(OS9Km zOl7`yaXB{tFxGM!!o+pcs{(Ejz19*(JI0z{v3~Kw+3-94lY)B;e(|oXM}{|7ep_&E zW+bJM;HFbNA0^f?j6hRJ@+{ZAqXLZFv7m;;vS4WC+zDI=50_hOrA<^^<^FjS9EA$)(K(dM10 z%}%~g()JapPKgkH66C(mivZ-`RRY~#Wvba8w}!{nf+)pxIILin*E1```5EPg!m7yt z?kYIK({1ze=iDy;Yf=-M#}D_bB6)-~{CC}GXV_1Z&K`nRjY9lDF=|AV$e!83+tD7- zLeBww_Iv$ap0|0N^Gc@o4hV$G%JwFH(^bHPd_@Q~$RgNK&X)U$&|g8M=691jJQL9R zsz4E-F!`zx#;)Nbtc>2z8#6Uid5GXe*K>K#{q{!f@N8iPIA0lARH5Mt&SfQ{(~X61 zHRfaH4Ko$I!IlwdTdUFSSuc#kRMm&c@|i9yB%BA2`;unjeSj&GZuT-M&&6XLo4t$< zFlg*T>ItEE#;m@>*M!RpQ`)SG2iur+!o$ITF$3tGqIvR7i>iUg!bAuN=D3&Lg`C99 zfKg??sXD4)L|hL~z2R)<5^}<2s$PlvmCHO7+9Wyxk0Oq+dN*xbwd##1j7x#xJjCM>Wf0)-a=zCbxU9CJgvBeu^k z{Le4cGf)1mxZr!9{ym8vDz6F5;9ZnCuP=u2ubcP5KHzkE@j@Q20Ec~sa)=2Msqh&m zj_Kd)qp!Rt3#3?J^SK--7(k(zbwa<}xSp_h)a4w6Tyl;>Wy(?_onKVKdlbB;2*Tis zBb>A+{b$Sx(_f@(_?JLBVhjn~T|Q&hJnh|r-oq4>OKr`FY<81?fi*|iYovvS{D5Z+ z+eMI%sF)dn^K-&|doZV`h!+j3Qe*1a5yfLk}LS&g>rs8wx zE3O1ublf9KJ@>|ZoH|-)t#`gYx^lLi=YPlr;KE18G821Xw1LZ3;n2ORPNXdT9JKpG zdthOqX=2SUjX)DsH+&B}8$O!8Z;uQ0@`Q`)+p-K~YSB5veI7ckdJQUR_&87jC;WPF zFTDg2vdRr@JQIFB{ErLmSZM9=JTmuI|!^EBwmcA4Mt*t{=_ zLG?gcvtrr@cCC$pDE9nElQPtwN0&qk#a5h_J;bRG}W+2kM`r!B+ zPP1NyGGmp<l0(u+x;X$%dIZ3NWueFpt*LBc5MH{is*(Ja z@v2~CuuIrYpsZzE&`sb2%STu^#*B=@H-elZypV$8&K@)QdFwYU!N3!Z94zHA_rZX7 zMvq2}pv9ZTo114A^9J*IvGWgIu)UG9w!_MFh<3VN{+6q6yOqT#mfay1%*J`rETHxh z_S-T%qds!4~knuaeTz}#e)ShdZc~oO#YX&HZ_3iX`y}|A%TJ~W3W-Q&HF@9z{*F?c< z-R*dx%!U*K`Qi#TI4sQEbi0nsJq!HV@@p`*Z<@P~h6R(3TE%p%)Z#Y}+5{D13dB~)t@0)vc|7;~= z?4(}2;=|drd(HIp^tofiAS&HY_sQ!}jT}my4vi(s_0GEb2Z3Qcal!dDN(W-9F) zvm&71m09jB?{->@0H0MqU3!T%ikN&F*XW)&#VixN+!tK!{49* zD>^N>l6`wnvS6E|Rv%K?0_xOA}-x&0scdgKXfh3Ci-mN4{gqj>p z3U(`1pJlbJk*VlebLC>i7>r=ZwiUlC;Jt2>NyoCv3hnXwuJdP$bD$S4HNL#_LK67a zHf>iN`cn?zZRAQTrBz=3{JHJ-Lo*fQSRsn=Ka?*^qY~M~Uf)Ak+2nRzDF7U4P18I_ z=Ni#y3`BpqrVM-0ck0tq^%&I+H;ZXLag7xs3a=J0s9?2!q1peNJ%1lk8FRNv9Puooz*FOlR^U6dI zCc~D)#f?&J!`3E5y~~R%;i9tcCfQ<6Tg3}o{@14r_q;^i{eLh+OBF`P(u&L;X7+F` zO=^nG-?b1`#0Jdt@<$)q{JrD!qS=w#aY=o~?L&WkR6;}U>9`i|ruLt25sf&*Vw88P z`a+#;ei)|`oAe2H3a(I^JGwExxl-lRMBrp4dt|2Cs>GM@9p=avb1bH7O@ay$@r!j$ zkhcKW(?f2wjJaSSe8d)&eB)^*^u_m1hWA!88!>AV0R_v`!pc-U)LNJ{r5A9Kzj9j< z9+G##2%CX{2PdwmloCLB4PO3yZO_sqxjmj?`)Cu$GdHn!z62)94rqdoygT49u<`x{ zv>4Mb(*w(wmi{vOp+vkUiIjhRT*PcxwY`CM2oV%v*n)ausD~@~do( z-eUDZjD__1F$%b`MmYAP8Wd_?2u-^08}h{{LSIue_k79s@0R>;mAe%cktu_>4d)d+ z{|vO$`+uVwm}sFDcp2fpFc|%tz)`{nX-AU8^XMB!4{;+>x3;V`z^ zTne-G^MZ1df7nAQA6nm}1JUG=YuTxA$q#?xJ%mmuPGwWkIrKha+h=-2kv1Ii&?ARV zX&vdnJEe2M{m2iz5C7fn6wh;V67eqzB(?)xUrymlJ__Sr)m_hh0~Wk0-OO;X=wS}Y zb1isB>b0dRRdrkh8Rx&5QnuoKs{J2C76PW9Y@$zuco!T6Fp7qC! zXZzxRLQkmwlU;xmA3!g-FG%~QEzl3{uFdzQE zp9CFJ^v}A$5(A-VmWw3Fe!#eMp^An{*Uu^Zhw2IwiIwvgu%v8n&LDn~WYLm^dlyKS zlJX?2IDaz|Q@AVj z0!1J{u*JUk4{zZ;#7KO7^78_LF%P-6E^4pl*mS~Q^c=%8iqE4L2yoi)xAoitTYffT z4~cw?>sv|}s#*=!{SQ9Xvm{l`cWhPu8|MRBputn8_X8cV!7%6@+8QdMYr;Q!J*&yxSIh-)*`@?TOw`LQ*7 zjQ@_sMuT)77a_Xjz2yD{iXw$fCn{b5TnovsFE4t`{)1Kii<~2e_d*{&f0x_ZOs8DFD7qLs5JfI>#Zdn) z{|o4f0UiZjz9`Jwhb>`)Kl0`4IWoQ@ZzKgP`qLpAkL=7p^LD*xLW z|08*0Qc{MNF37FtYajn**#DVYNumc5n2UI9p~3rI*n#)p&%%Wr&fn{K5vr+=02eod zFOn)S`!s0u0vuWZiHC%XI)t7vU8IJb0J010M*utkq^Dhw_UZ>UTQ9B9EQUIl6U`yrjr!S^0|yXca1dxxhCe4m||% zi(-ZfLG~iWDLXyX_|M@Y@1c#=s?Pr%%bi{US#T0_88-zlwy^$%0whlRC|oE&vvTwW z0sxCH90>u&G%j?{$Z6dR)iYE?x^jX3!Me&{FD80XnkAtQHD$*xbWacb!9~)Bo>Bfw z`KK1TpP#?VyOva>CU9Tx{|7%m<~PX~jLF=WrjPY@I_O``&oXiU`00;4b+>R#7LKwY zD}p_TTC78JSK@Gq)rZxb;^^!1Otp-V(GK#0lV21!;QXKKgC!ATMg=o*KewayW14H@HWS~WucY?d|1o<-~2*bDhPMzHPAh;JU%4JQ--y!F2`M&S(|p9Z;-;Mgez>^zQvWsPE_D#9Zze6v5*MU@i?{(HU#I?=8V z)5!$7S9q2-tr)a6*(ZUOE8*k#11IUSgPY-BMH=)97ZV$wR+X@=yo>k55LvO0KQpax z!wEv#!a~|ZCGRvX)?Zb5PAKwlp#DDB;?8z&wGnCE4Y;DXBNI3NxKBiW^^1i_aTU>S z{9r&-PFqpzDb(Gmz|b7Jh?CW)EL@+s1xx(;rgg16tb85(a(;waP2Y>o6Uz1l(s3oq zl<&&K(O#OzSN;;s^NBhWN%AjphyB--MkWnIno1DH2lx4cuTSuNj=3-Y`@q%ziSkG2 zR?1hW-#`B!Yi||RRu{F6)+nVwY4M_MaW53t0tJdY!KJusaCwUscMs440fM^(E$;3R zG+3ZPg9HMH@7$dKJ9lS{bFnY>m}`u^#$I#HwdOPB*)APZr?tC4mKa|_@+C~%#{CjI zqzf0jBt@62f>`0t-iMJL!3r6!1?Z9Y+zH6!+|pr72T=HgGySfbCRJ_dxtP=Y zq3Fb#(Zvke5nz)Nw;F>rnDvzXM%$}>-}tQ;LuVz|LIL?40=mdd@q7X@@3Hh2!}IP` z2b1-JYR_^>4`}C^k~MC#M|Z^m!C|5c}N zHm5Bp(QwVh)1sc=SWg6qyj%&E!#9!dmQ zn`9v!sT3k?()^>z(H|$b!ggUc#OGc*$-$*Wysr(>b4{djT#;RAnBwOs z&+_HYTA`C6ZkOK>ZiwPE%*!^!Jv20hRS5zS*EYhHTHCoY7rDq4ol>^V*T(OK_U{b9 z4r+zktDeTpExsR!ybAThNrcV8TUqvnktVx`W-|apb zlDD!rxpy7`nWkKneoIoIz4fef?c`)4IR6r!*2n_m$0 z&`pNQZ9YGdw83P(CsT=y(KE07ZzAbb%c6s@GT64|{gXWWg|5A>z3x3n9tovgs=St# zMl>FHr&v6M^^N;^i$N_&rdR zqEqyBm7^O0YTIB{GuB5F?mRIm&$xTKZncU-ea-B#=~A&fQg{{GiO@H3%(*<=%^iKe zEAfdy0XtN*`+MEdt*?_Sdj7G7qN@oO(7Zo~S#D=JbZJ1&EmR~C>6fX@nJcKRnsHN? zDaPx#lw!$dIB|>Z?uD9oIM-HY;AqZYI>f4sEPJ9)PBm`{z~xZqDKqXj4XlDt*E_>+ zWk*9}=AwDRnaha9Moqc6LfQDt!#YlH)U;*KVmC}@^PkDNl$4OK_ro7^Cg+C6&fESJ z4TIJZ8WF#fk_JpAB^S~Bf#yKG!OFV(cG0P@Ch*x|LN4!?=Za^3gRSm1vND6Ei1AFx zx(>+b0^8ahu%t2i_{q;7k5Xj%OBHX2GT5Ff|Hjs3Dhq3+OcncY7~{XcCQ9?^5Ze>0m}ws^5x zmQx{L+XcQwvW5x;*$%Nax58!L_6Y#YivDTCJixkftAzLE9eG+;Ah#0xu{Kcx_S>*? zt3?#FRMZ4C!p(^5{skTQ9R}fO1%BZvgX_S$aoi^R9Tufu_S0 zDSl7kb`DKHA6`(59@-A69>xF7{GDjg0vc;fN48h#yL%6}@!z{Vs_`WgBAp^0U=BEJ(<|2e*k&zaqZJ?CZ?wh--9(40+k?pn;{+@ zH|eRqD-UW22Jfw^@6oEveCq&&wl}&e)8H;vBjR2M!e*k5(6hN$-DM0ao&^R~&Eih_ zYD2apm>V#(slM-*AHJcd%((8qVE8@6A+rp^X9c4wmGWRMGMXF(Nb6dP#)7jVghtd; zMj=(44eZ$_1V*30Q&}23wH09OWi;X<;M|`PRq~MSyyQ`r{~vC$sQy{KAfFb|T7iRL zO-_T#C2nYdtTPK0?D)zlsL#!=Qd<`?=b~*)>p%}IO>C+M_9hz@h0q<|D{x%C#jX%= zL3FZtMv9c}17ImT3;Fnv-9>))QC-IlYb$yuCK&E~4k6|Xuvo_{+V*kZljnUiS!f}t zGMu$uvSJVa=)8Jc+GOgqc&zJA9X!AHeyPRB2do;MVh?(yIsm}7yKJ>PH?WR6jnv3) zA)8U2=U)Qqc^*=3WmMe!Txw&x25tX-qZa$0CVnAYtyJsL;enk?U!jt;|D@TVNgmm0jy_=n)moa} z3vFtYN=q=aiclxR{QPHySG{xcgi$&ky`V=*Og3b<_sBOI>S?)XqPZXWOV~8=P<%j)VXDv2O#i9A@#a6tngal)-Dy{f&<#l97$OSfKg{*OOKa2D?L3%Kn7O9d;VnwIRiq;m4b0r8 zhV_p-mbu`Z@%VHCi#=P~xRTXAVN;K**ha(;v86jDd2z<30?>Y)6llu@{Vm=t?JasP zC-+hrpNFIlR{QiwT**v&&mO@F0>Ao-Pyug-Whi zmM=xg?v{P1D{ax?o5&db8nwy^Lnc?2S+U_`PoMNsfJYCdGKkR^`z~ufQ%$k*vdu_@ zqzRg_px}f;pd*yD|awy z(i4#}UAqiw!d7O15`i-c!<^W03z!6@Q5XxvY=g9oA^tL_R3CN9cx=qukecg|jHc?d ziqO{kXg<+$hafX-vRmqvU;F%d)8(@c=3=E%`LZHDj*fq+$Jhfg&iO@f>eyJ&<9hIZ zB|dKq=7U~b>S;N;uag^q9cAIngn=!AhxbGgeeDk8@mx#7<*-%atINPHnYGVEYt_<- z7t}Ii^-}~Tr&pY-WLaJx4S^wRn4liz{+TWZz2zUhIaOS*BfKUG_tHFddmj9}23^nl zV=Lkn^EwZv%oag}xb`PrJ>Q$NX=cn2B`P$@0@Y$SmMjh40SaRHnOv$6>y3Rt;cQ(3 zX86&_B5O4eSc5^@3hl4Jlo|-jS8G`sRb9&~8VEj{(a9!%pn@3QLYo*k%jMr?3i^p* zkhwy`hNDTcMto14SD_Z=u2f;)jCR>xF-c5Q1Q!rh?eZl}>(e?vvZy6kkHp z^~^T55C0$Be?$-oYLw&gq;R-}rub4)1wY212Oi_h?;0%y-$eX=mA=94{n9wp@mA>n ze8c`hR7%4luQ6$lUE2b#c7~Cvm6I=R4-3NNwJXUD<`Ws$; zCJks0tAUq8bvEW%jmfjx@srJn+ttKn^|Z37lD~3T&z%l$eaquCgjD#J1u7qlQRP9#tInF>m(IDLp+21|Iqtf{_a%Rd|AxiJH0&x>?p+a+iP}0@H@d^PI)d^rL z?Mh$KB}#t|aOQ{=x9B|eZag9$byd)*Z)Fy9yZha#!HH;ko&)eWuyjCXO!10TA;CYd-5>{Y0Fqu5AzuYOyNVyzD)!$&vIWqjL+{7L4! zT7!`kV6mvDP!+&x5^bzIfn*(XD(a#F<;)&EPWndG>h%Rd5MjL1AlX^(;0B8NR6qSz?KapVl+ z!}&D*)x=H8F3DaysV!I;G&LauQp^$QDS%V0FF(JNe_@ilg)jF{dg<2v;4wp1@AjHL zQyLK$uVVC*D4Rbrq*|{>w6TH3UmJPT_?{46Y-%^3@ouv=(|C4`xx9+&(QC$zQVSRE z4Up^Ox&;PlW92UGL6uTnqB#Gx0bK14qY@{4mgH%I=!KAN?v~Cip<>`(4m2CIrRYCH z7rVYc*{singa(HDqAkDx=zx_J{^FCc96Sr?y9&#w8;DXS2&+$_g8-T4mKavYv5Zq_{D(SjH$E@+^Pu=gyTDmooO ziDe(9i-kUXr4SvG6ywZ4Ll8xP{?nklZQB`pvSKSyo>|{sZ+^m*Hoja4rYH=!6FW^c zZIQj1fJC0lmXZl?RAvkUq1#aDqA*(0aQyRMHl%;D*-pW7 zTZFj7oP3FziXkSJUpKT@InJFu?s>>5_hqYPC2HwgA07AhL-ap0(W4n#!;fULP)bDu z1tf*nmZco88hLzEB}h7Gv0N@0m+xI3u5r5>MLe0=cf;Ovn(r~xxJ+>e%vdx;llcvV zc;_AZ)hbr`q0ju~BWnEv&wHhah8LR^~b zv`a#lp48?hcY(D&WqYX5HRzt3d24)OB-W^3Dm3>@ZumY*fG3ys-#_PH)nBX+5u80wAFhxy<VbRtKk!Z#VX+h$EMkm(XJdYb<=3YkRb?DxZ;Y&hF+^qYUTGu6ysjqOO!NWW|J zN!%?jk?-YOBb3$l1jFIgT6mF(63IQJN zH+rc}9G@?A+GQ|;T_f@`Z^7#c8tK2ESN;7F=PFdcX}Oqd-S&pV`)Q>+`G7Q0ZW!AH zcSpoaQT(cI|Bv8j-p`DKn@BWS31~z2HuVL-wU4QdT5E~*-zeV@bZefxUK|;Hx8dsj zuAI;v`}&C}_6&{tYj5)0r$AbFeBBVHKLjG<#acKtAvA_2Dv;I<_5E%>5;T6ZmVEBt z|3QKNU%?Vo6~y@AW~{dzo_GsLZ{-prLT0caC!JBN=qkZ$$6pI^${AYdz!D#1!Mcjc z3W;!8Wg899TlL}$S+A+>M|bcRMoE&_2cps*7L80xzhh+}h_J5|H6~4080y))7O&fv zI~FnFToYC~KxeJKp!BOc98|WUIvh~j3N+WXlF97#IU}i7*c;(!BDbv!;KfI#?J)OX z|65*90(iO>mnzR=47?3whn$n_svt4ar=23iP+^lCIi`jUI?#4y2l)a}9?J z3kd7OKP={ETHb5lGa3?WdC@u85@=pY8`7S_itI*$;YFn>-^rw|bz4Ho>_}+_p7_uL zlLhKdRS93Zy112auicU5%O3q1C?c|Q>5*sMJXBRy0 z8;}_I+R@0h2+lEA;iXH&*+BG$wtQijGG4ZLYRRq7jD56qvf>{@ry+0IKUVPv0m5$A z^b;mgy)+Gv?uuv{?@4tR!LE9~fUL;z)sA~@ zRIJ0SCm?rrPtw%L37%}5&5{DFqjXf)gaf1R8GAD3IORQ$a(+xfm)LQlD~L}^7Vg{z zeJ)x%clai2@t7LZue01$0`0qFk&f~G`$Y@NA=mA9RmJpZB1@ZXzmvJ5H?$-uL>h!<=i=Gd{(wR+@SzzfXFx8$-_{KQSLSX25uxDzH zZrx$y|KWP8f+n0YtA%J<82nPz z&r28JAXq&lV5Q_wPc~5SMa>}K_FLBNiHX~4{kfH;wQxsT&-|si##&8>x?IE7?D*l) zn*uo<0@=|}z=Tq$eWj!c@ZuLBX+mMhEu`iS!@C@9BUUWBg!c@S!6oKR!vvNRu#y95 zo1l#qZgK`{1xgth?AJXA%5LYrsIM@e&XwuMXBUraoW^M%;Dhg9khBYW6w**dk&%-E zJerJ4gv^G{x?RG)z&vb5E0D#wzNpknry{qvOM*0XPIZsn(D=A`Y!qsSJU$*xD@qj0W((g{ z8tQcUT$^Ok*tp=NL3&NoVMfRtvXLA!}rNRi)PPb<5#-R;H0_Vpm4eTLUT_NGJ{=dwJKooRf zYBasZ*9Hz53z_udu{&*;ORv*xUGL%b-5((gFAXL@W%I5tiUwM?R9~Th@_oBjZ@*9r z;Hm&AeraArq56j^6V|eyrkbq2PXVNjxiO#y`%>)wVm~@5?OA0yw5>czVifo}YG*cIK9~`1)jO{P=Z* z?V0E^IUtix`|teoj^(No3zBYZFC#`AiQAyOdWDa9fzTB^O1)q;hne6BkdMAu9li(c zdpmirmJ7`)2F(Cgjzxj+!8i7oIk#hWco2X{d5agas&e3lB!VQuR6Ohl$*MjqQ5)sK z%2r=&YcCPf;+|`)Gh$H=pRddXGk#NK-x;pT?eSkubq=592#`9=U?(dYYxT{Q-W{=- zt!2;?rQxC?^pT{H#&9se1_@`N#uXe5@~eZg*imb9(VYbBH5Fj`w*9nlm5 zK%b#GuMFF}mrFC1KiYlD`(*z*zU=(FcezGDs(KnWQWqoB64Q`3v}+|Cyg%Dm^U3ibg$N zvDg^&uA(wd$9{;+JpZ#CS%sl&Eb?O+Togu{z8CGji?F!=`Y~!5qAq40pQUud)jIF) z(bTnjC?A(#BL$uRm- zbZU4?`&1LEteG7k`0rN}X+?7dK@+VSk!w&guxo*h*Rsu&v~yVDR-l>m48M7aRmHj2 zx&C_gNUm+Q1BY*L-5>xnCh$eFJFg>*l(C7?1dw^zuTMLLT@bJiXDluWs@poY8sEnX zK@0FBDIToyTjY}0bUUxIfj^S%w>nt$Px=>CgUS`04YgbujDZ*FqZd>`Jm?*DP{PJkNTejHsQ(=m7EmkMJ z<2ga+XFsyWnmqzc!zhQP|5AIo=glsnTwBLh=P-z~C_g(3P$<22%fh${r0}rKHfY@iQ7VmFX2?}R>2AK?E z6caBAie{_m@+{#J7(E3e)$Y~sBaDlJSd{>g2HmvK}32n^TqpL zWTv2v;afq<5DCfMAU^Q@o10}7uoF}RLOoG5iy7Py&_J+Q zLbs=&jo^wIoo9BHJ-dQD=fx~2>cPW%QSiM0+KbL}j zghLjTAbE1)?*CHIxEA*D8YVnrH&xjhKJcl-Vy)+owTLQ^yl>)n+L{QWK}Y9ojXcav z=$9{GPr5w++Z4CN_`tCgw3WpkwI(7WA^un!v5=^G4AOXrS#?r{c(sMOSQpQ>CRBZ- zl`?L%R=|8XJCy+k;$*@^z~XWKmaYm$7%Y$%tChm!AyJ;g^X53ZkiA!AIW#BvxN=_Ls6pvlzB z(;)buxGwy-U^j>+WynMDQG1X=PIKJZjhH5aGVyN^eS3mEEl49MwBA4yF=mplMcabw zvk)<)3NMi02X{!1Mx^+@Tf#)Lpo+M_#&@$R%h95Kx)A4Y;$e5cGU7GjI%BSBdI-*1 zIzbxik^UFvnvc4&%io>2U8MrCuPR=>?@57T+0rtN58B_mDqyhTe}b|!I)A2M?1JLk zkPR%r?R3pGaXzrh$2@?u#(JE8=C(w%A;>p*`JSY3rBMJPk}xpAj8gs~UN%ecfh=+2 z@rT9Jt$4AZc1$2zH!ub2ui|pg(HnqadQHf&jFoMss(y+&}Du&DjBVD%uvFO2C3zPoTwk&CXDMFTUcQm+JUuw(M&W4LxT*n|lm1MI=s`1-=nd zrat(%mq;sJ`Ekwwhs=jhLtSnySTwYa=H|1T$eA9T%1s2geVC{>?E4=(hG{$mRLuVH z=By!46A{(q>XRXxywk^Uk#_X7$>-^5{> z2!lkfd#~aAjE7Kkl>hsiPi_NwtSHsNmuDO+@(Z0C!jEk?zKMOa5|^b6@lWBw&8@d42G@YtZoe(1fXYRFOPC83?VkevtL@1=)S3#~)=b^`a)af2vcJ zpH?!~qy1S@HE1O}qHcWP_K%ozoz2RGai)ezjQ>lah`T42_nz>n33*6FLY3+L+q31S z!rACSbOQ@tL&$l+$NPi0a=uN!;o#!sWVBH(cr!zs+C0XL%)=^AB z@p`6)bE0*EVV>4DSpt1L;vq|ecL&j6QjC!iN3$P%IA^lJdNhd-72k)i=mzaS2Qi&- z!?6=%CDag12{Uq<2zmI}BO(ouArz08r8tv;iw&v{w)4Qtcot+kGE1m2mc!g@)Sa2|5$Fl(VE2JdiU9sR4`gzxkmcG#C+N;QUmL>v1+^gl`5q^;R`Gvj=6m z9|Gan2ixz1OP<`M46bV-I-|tSyb@=cAHLA{Nd`Q-@c=-A63&UljhYY`fvrgYH}YhV zT)F8v2wCE>Y{!3v(dtikZdVdln7!6xM;`+P5~1t>O$1XS*EW(&MuR{i%0KG-?&(=> zP__owN9TUb`X`gt2-g?e4W#!SFIsd|A^$#cuLqaY#nU~9waO z8>*XCo60c};o~N*d7&mhIqz65KK79#&bxwPF0YXPxvPaopB!)AUS^%nJAWm(rx3?k_*?`f?ZETw z64~T$ChEZHAPRgHNE%3T|5p6z!>c@1ON?9frj;O;*Iz=z;Kv#FICq_&?42}y?(;r8 z-(WLkve-~z{>$1%AdW}-^8wH3`uTN6%*=*DzqQE=fo^fZC&$mobT-;2LutbwYdo7a z7_OPFr?YLXKRz%1g9p4Oy?)|P9{4g4E08*nR{Rabixt)Pm_6k!kn-p0`s?_=Ts_Bs z2R4&W(hSHodyJd$JDws=#J%wXaUP3Q;(H{z3_4UGO+7S%ubBS4A?Ue!9Piwn*DcY# zH~k@iZ}mmQ=3{Qq>pMzsiMuDFPdl+_Lk_Q!U%Jc$>M`{;{D*rSavVOeNw&GLd3B|@ zE-UgR&+kcR^~2E;20K1i(ErSV(+{yYRA)UKi1{^fG^2&>B;k2CxjEAkQXH2jTyYVE zTpW^)IM%>+kI3v@h!2wsco20*gtRz}rCTSsnGaQk(UDq%P<2TC0H z01oW-{OmQa_t@FRa_QH6j^{D$wLlZkY@%i{0hNfy{>jkl-|gE8kWkA*@8%b}G$s{l z;Ze1V`R!ulD79eVtyw`U>SD8pDfaSWQ~J5G)5Gb}6sF&MZ^|66LN%uMReLWl^b_}- zC}0T3%}oc`ttV1)yc~vr{~L(k8wZI69KkDOg9bK3tmW&H#}W5ghoOks1M?;tkxUWy zBe96N%oWvj*P}Pn)4gKp+h=ZAoxAlxy;|B0PcXxhbOXS?UIm2x4}-qI*QcE_g8Tx>*Tt*HM58^hEkV1p|HF5}ogE zE3`+Qz9LtYVOE+2mb7{9ekD(X&OV}S`oiV?>-h6Qas2W=w)H4Q`1PNUjk_#PN3vBV zl;opdV2j^(K?$Q9wWx-aEjCeR+9o9c=w?sl5)@)~Ca64V9Q0;VS$xd&x%u*U0ch#F}foSZpqZ^3DPjAiPzj%Oct}jqdS3@iWehUP;vQ`v)ZYTKc3o3(m&YEPDG(fu<$pn* z^NmY#(zzb@kPocM;M*+a-AcB%H&ZW9T+ySxL?y6kwU(QsczBzIPMlF=8t`0+4lxgr z9wt7BGPy{bA0vF;fC!`cC|k6TrO0<4#fD@1*Vqs~42QE4{t#)k<_sufYbpEmCy(pU z{5-_GHaoB+*&Nr8Y#KWUq2~^khP9+JSmt)wT1PiJat3w!D7ZW5mNZsZ4*GqE4}quO z%YE>}k@W8ghPLR_Vew05EBt;B?rHg%>LxUhEvv9O&A+kl5avruX>F; zT>#4GsPyshpntH1bd(l7phR8^4(0Y?RZ2?W3p|9#atB)er#Do#Zdq-j!?v$tf4wME z#Y6u)Osth`+ATWBC^P8jQsIVPI!>-~u4D~lX&U2o?`|0~2_*O1A^{wQK z<)!IVq>21PEL4J~*tTY^Jk=`%{(Ze$%%}g$K0eM-WND_msvd)wn6)qbA{J7Ju2g(!H{Gt*apbx8YE#Pqk!zX>QrFjW zd~LOrCb5Krz$PAkBUy*!^%`84U>C{OpUz??)Tv?-)ZvW}j+b{A5@`C|sfQQWD|6#E zaMB@i8K~cR=vG_nP))++XARboRi`{4>gVvt<6)!O-8+!UU%-vSHxZ~Ky7Jp))Nfvq z7GSkWucOVPPiW^=FW#OxarVdSXYJur@bJ5!8;GzvSl{LjeV_X)7LPcb@t_d4rG6la z4MY6?dm>dQJ7$=Xr0wN2RgU>&<+od60{`WN|AWP~r1HgWIs#qlaZ$ew$rZG+~U)!RN$x7h<(BlC+!wa$anXY52fRa7K&Sv3u-*I1l z0xzP%uKO3;uvnkW1eu4HY&}&@HdwQzT|bUaI6t+(k6bJF)ZTR|UGgrJyOLz;l@M=; zbsckRptZ`qm3HLIuLnCmRu{b1q4ij;EaT?~AfeOmU6hWmeZMvOT~S#A@AjctywM_A zn(vb~Z}LqlM0Ol5`ZZWQramPvh!}IV7|tiPo$!j6TAb=IV_L+A?wpd>_ zjeG)5SgbLzR_=Kn8~qag3b~PnnZ|;NW6D_+Tgg0=1(HZk31`&X6K8X>XhyOW*F>6{ zQ49pxKSyZNO+6>F1BJzxN^-ZOiCJN7;!VUu(N9~yTLPp4^4#fk;f9V-X z?p{d9^vBTB|A)2g_`315ARKye)Fw92e4Ieb@r1@EpMy`K3Oa`*Wwz+$s-%L>PodL~8$Xb;TOKg`nDaSWL<6ns9Z}v9IUTgB<&_gP z9i0Ym48Qy+eaTEul*uh!7+=JE-nwV|O0H6qA`GXXS^sxoW}KLCKG_@R`gcuuvojH8 zGIgYCT#_`8)-upcGRveU2{kHBJ#d*3Blu5vCo#^}Cf|oOJ5H}Pw}2@*SNp2$d2HZH z9+k1F>05$$C2a};ZiTF5i5yD}v3;Y0g%<=s^iJoNscT^G-;=OxyDuVo#_q$TVW2-1 zFKU@%y;BBSypQVsZaH{(eN3AA%)pZ)Tx@b=hiE?@MFu|nr12j0| z=hhc%Mw(#N1f+$r~=e`0)Q!~hLo z_&nq7+)G?nAqngF{+yR8&Qwdi3Wi+YG%?KUvM8$D)ZxMcYNpG@1||I{f~bS3FJ2&& z>bmb&d|r}94n%cCl->mmYMfs?h))$f{cFSmZJG`E22-=_O9Jg?z7_#xY~Eo;azOwC-Ac1YFy zp4_EI^(8v_mYCncuxlrnx;15XZmt?y$v9?QNJijZSLbd{({C6Zja4a-#ddg0<3{8RHjojZr zaVMflLth`h;J^|pJ8orXM;2&PWe*%0*i$+N3y}=|=V-PrZqScT`Fq_=Apo|%8iv&i zlEC@P1E1a%>h;Iy6}#lJY8Qn`hfFLjN%}j@*?Xcsb>ovZgX+lsC1zAX-6(<6?8w4u zgf(r;zU;gLW;SVcK_k6}BoBJUyWrUyO+!^8{{^{wr9rQ%%}|!#p}0mIa>i-rEj+y)zWb4=>HwXp1q}+qGj4w4#7J>z zes(X@A9udIroe0h#S%*o<7?wv zeL2vbTrXGj8^RsJX8me=X7HDga6&H3`nUjJTszeaZ$S;eg^JItmqf;o2H=%JIYsw| z$U`;IVNZRu&t3+I#SalkL%hJZ%4E$%8#m?qp#~w9bzQ;GXMI9OHzSb^1 zF*;Ycgm*V5(?D}$+WVnk@A;`Y_v2jVy6;36hC-e7a>a(IL%F5viN1Ml=Qh5td3(&W zCerQC&-#W=|3)dEElji3yePlGKG!bRxGMvn?^5jS%IT(6G0YgH6Y-J5y>QZ|ISKU*+E*e-YJP1es?{)3h!m|<;4 zP|jmd(L=j$BY(y4Vw7A*WRl-M?qNAxy14xQAJZ{)Sf!E{71OmqS!~~?MIC^wl1pV(#I~29 ze81IEJZ2*=Um0Gqi_UtSGvmY8V?JVtf57;@Q0P&%WI^Docd@j4mxJ!0-wcNI4R2zjoxpJM@uVevO0LnK}l_Y}HWtuy7IN>y(E_tU5^evM9zH z6LR*;z1zm=VvNPd%()L=S`N8+Y^B4)MKh7m$nAm+}{zkgK|+uN`Xxa*9k+a z3ZTa5X!)Ehr7JWea6p7uLLwonH9KZDGN>Fe2b|qLq-kQ7VX2NNUvAMnRXjE}oeb0Q z7^U-q7zvLGVJ4nP+t+8%$m)qq zkKknCo;6Ce!G^*Zqs24NGnAbyF)kp%)${=#Hn09%taM@hZ}(WR=p;Fp!FJKf*5Br% zP_hC_)MnozYsGO!f?UM0i5Xmck{FaA`9qsxO&c;=_$-JJ(q4B)Y|2B&zdPDC`erBg z*cBO%zy)VDFVbyyPnFYhVW0b1ntDu%LZWiz%En@s8&=6Fxf<=dzYma#U1p{0)n8-~ zR+wv_yQn%=cjb6YW4p^)*wNWi+P2wDQas*v9WtlgQ=Z7iQ|T@=O*D$W?G4ElyL`4? z5>mkS`{lC6oxkNoIWdmyTLhbA{Z|ELa)J?oRAvUNe{p5X*Q;YC7bp5^MKp5h{7$7a zzf)5IDF~xWT%jqFeZUZboKxn=FW<4|*yV?xLV*q++p%CTlxHb&rgLxf4i5WY@0L8p z=1CP4)JtF-naaHhNP5ciFH$EOzu`d4Z});H{EP1w5p;mv=zq`O?_?G`@tlZ!nDAcB z3bgr9=9$0pFCXSilX4g#UKHDX$R343$1j=!A!c;3t`f+q_G3;8{54 zpRO7tOg0wTn4KUg^6vKJ$4d2RdO*A2^Ct0NqpqSFI3yy5=P8EV8dZlmbnn(x|g z#<5)!r|ZLm&Z7WEIdb<3g*5g>zukh#3B1~%?hNA$7{^VKBM?G9<(9DD*9U7mlJBRa zbaZJEQ0aLdf}KFrf6=`PD*r~fQX*3M`R8oYCxM!t7ULI%ReF8h=`w^sf!8ig7kAUF zK4$V0zhqHo<1fXwaNY+avdd1>WoK|lw@z%H#qQQ@7hMF$JipNG_299_{PnhUUwLg# z>i;j7^2O-akS!BUB3UX|BlDlVJ$cF;Gg=(7T2tUYRc@vj!KBt89^=?&f-=!Uwv2IB zb2HuD`4(YHLZfXVg~q?`4tpsPg7gzg`9v~9Uz`-U2FI439|F%@WXSLVIyz3(T`=(| zAY9LxUfVqUqFemDD~y$MTc%}+K^13~QK$BE1ZS>kj+BwF-}yKbi;&;JfDJk8nVBjH z&Q06zmf7}3JpWOoDM{qT+LB%XffT1+Cu!`NgwrQy4@mND@IX`y$1wWM>6#ElM1jip zi;FM0?<(#xgP~qc9XB*$29aqf6>_fqxe~f#hKrHD5^#@`z|SMTc#GJb6NZ3n-9%Q# zysP0wr;V>2IuN@0DXZVEwt*$wqp4%Q!8^fDrmVHQvsGkwh$J~76OhrYA}6ENl8q+B zejr+y)GMoy5;4u&zH3&Zi+2o-$#AKCi|_VHl}_L7wqA711eEN?;HBk}NNqD6-3rF% z_UdXF`;``QYk_Pi8j+)yO;qVD+yfp->7t3OZxZmRJE z)b_$-0#)l3bG>qVE?ycn0ZVSFo&9x{>3LDoWZGC6?z|hS4XCo7i>?HXsa%g|(YVz3 z&-4nezNR?*79;nKlB3u8hH;4GJ&|WH5!au8qHDqI#$D>V27q_YE+a_g7Y$Heq})s7 zaoX5kOD&r{%&z`|aXqoYY%FcgU|e${)VXU;uYQQ%BQwo;`dF_9IMW@A_0C|vN)lP! z|N0zuP2#4QfATKg#a>yK_}r1;(?z zJLTJvN!$rzVGVWj8+PxucSfbG`h!n@f^7468^Q^~W)O^*_YuQEcL)w^E`zb6(2U~r@u z^6BeSKK>`BHS0`zRY2d{sJP&Iat3|A`5ZI_p~F z1CYD&+d{5>z$XH4i}M7H^~Q5b_?S%e06aAMlr_~h?lt%TRiW_IBBvP+{GEB6dV!cL zt$qQ$G^q6p%1T1+kCvh>coVSe##U9QltH7V9qY4Fb`Ela#2Pg4Q=Bi-;v1^h+VD8g zP;LH8bGwH9X|h4*uI)x8yDS^!sq?A#W6TcG`Bp9dWYz zV?K`U#(FD-G^c4C-Au&Ap{wa2wsC4$@6w%4V&XZC;GooTrkIH1Ihu=Kc-8m%4L{tW ze`m{(?JA+1CHFE+bI$*2XImIB{#q=KO($L=deP12r5_JJu|@vOPYy3G+@e^V{cx^j z-W{}qp#TG$(yFN9N`P@M(+h3G@m(1^bTf1XQCdMc&!d}`il4{T*g|)~f8{wByX}X< zB4Y8N=1YrwCa>p!R&47O{m|*Yh2<3!37Gw;?o#d7VZ;d%OpZ+H@Zk}<7rUe?`&-+q zXW(bz|+Yj}j-+ivpvnH;4qNutzN?~nhc!7&G>=1B=~))T-KmzZ^bWFldk8F|;B zS$wEg)UBtIRr-9hBD%qsveIZshnVGoW5=!EJ0ek;ZTALp@RqKtsN?gg_9fwSEmRWf z%^tM#$W}SX(vT*5b~Wcn46xO7TjnOq)%uQdWtaJSp3n1%=|^*F$cEA=^@f2~p{1j7 zRnKCdE+l$9!rJ^N(ceOI86{Y*=s4UVl%*<`Hk*ipOu4Zk1GMUPwT_eXdTdJo%Hf4m zEW0EJ|2;I(*v`O&;L&j)0{+|`DhK6iVSxcsdo4QL`nG1qWv5cG+>soUT<^a{bw_tp zRioG7TQON}jb&r%YL2~?T$IxA>b#naSdZg0zAmB34;W2`hI!3CF|z+ ztQeB2Nz4b8<}z*tc!(t%P@FK-t0e)awvOV$r1FqbD+KQAUv6eH&S4~(kF1PAN7vmc zdWM`{ckPv0*5*N#_BX2hw|wylnPS$@iwmK|xlUx72*Odxm~t1Kar*6C76HB=ZKYp^ zmSq0wwjWq2*n!aAOMf`6-ts#)j47I1ycEXeH}KlhW*|W||9)W-J`asPF_8d5e+BG4 zQ?bG2n9yrDxsEx|Zcw>ok$-(1WU3ZC)#pbgvT*3Uy?d6YK%U^sZxQ3 zNGbf`K-Pddq-7TB7gCHEP0)Swv4gK3T$TJpi*qG^X)j%b#|5s{f3n{*8U11s?$G#$t(EU-?mTwe5^FgG}o z{1^l=+TqY#-=e|xlhxZ*70iZZh$;?bqx1+Ryjvp0B3EdIth&=pu_9ds*L){zqNU zt7EC&ulOKi84^2Jtv8+*xTBM2x{oC7kwpT%;j6E|Zzl*$>gT5MKPt#?2}8<7NxS?h zdzI{HZ}s2SzKCBm()juJPcxTp=V62!WWnlRZOi=cx7B^9==)j@c<~_pVs2$ZEPiPv zVf7jOxmDWVj1+-s9r(wO39PKMdU?-}&C5dXQaXR{{T|p`tJGXzwR`yO=hUHx3*-Sg z(t_YR=PQcH=v`|GE;~?Gt6my7Ib79gaI(=_yX0qg%WtYJ^mDS_TE+V|?!4*CJ~wT$ zj2U0Z^NCOzuPszvI)cHj+%5CD_PSRY#jOsQ{Ba{u>Z!o{FXQjUhkG2ZGH0X>dt>F3 z1s!ExTw=bNpPsmVvXb97e^dC!4H4;)7;oG1i_KRBx6bb%Y&h?cL7@kkADJ4gq#c9q zD5o{I?BL|7w8JUk#L+K7j_uGXwp#;IBlFMeqD>4;?;cWDpt1aq|Lr{%Xf^tNA+~hR zSN`QbZO>^Z^RFZo%cJOPSgh^%_l=Nx-V3AslSiaat6yI{%@*nAu3i-pn0b_)z5XNa zJoBZCva45;yegkO_i>#!;hYU$`hB~k;P^}aNnOIs_WMb*MZ$1;__UceJmI2>(Z1_A z>wOAVJ|i}yMefp58guN_r{L0^hmFTSNVNCc7`$ClFQ{jwW}^2jUfmpzq!llq!QK}A zZ0f#_`Arvk-l{DXJ<|8Dq&)Gx_TTY~vJUGL*r`@{RiZ%M$Jx#XqiNG~=D516p>>uy zwjxi*Z?dNROuQp=^LcH+*krI5hFC469tfl%Z28pvxV3=V?LXc6)djXFmb;{eTPO31woMnotqoSQ z&5CWS=2uO9m+J}*20NL)x+n%;Agm_*DOOMBh0HN2Tu;4Wu>BdL^MbS6_{)tF`}l&4 zukw!PYb(CJVKlKLx_I}yd)TT}QQh#@?CeWU>$Lq|UVowlz0$y;&YQMk=yghK`(0oo zQ(&$5ga4RJDSDgQyK8U=aqi^6+tZ zeix7Pn)@b8pCKk!p!SD4A>}#_G#xZ-=9=Fa$iY#BJ^tttnfg6;{gg`EY}(>Gt0w#Z zEzr|yk^3hSvh*?d)Zchb2?k-PUf^PrGE`}Ye4gQ-EdB3pSdgQ?xe>V83tZHE4+`N4 zV9|>a`S4|JW?^mr7Vkf!PI$POz8U8g^4_)sc9kIjx5^L_d%W%#BE0|dyg+W#)v%85 zcREH9PH`TbD!(;{_{Sm?>Rc(SotHtp^{nNH?s(^S4Tj`5?ziLIoB45iVph0J?Q6VP z#vCu2?AlA%Uwz6I*k5s?*%_1hUnh6+XqN-=HASqj#?jhy!|k^FoHOm ziq&q3wUecX0V!*RtuSNBYGdXgbm2VSo}eBpD4Ol?yh8{)Y4DQH!DaYdZt;-Uf!EPH*v8{P5O zxnmXFW3D(*ED}o=5m8XxqMh|`ifG-Ck`&4bh#M^LQ^(6(=+ge920z=s37zCea>3QZ zUgJFsRbC&wX}XPf9L2Bj4GZW{@QsgbhTLDMXulWKT1+An&KVzEzy5s=!`}=m3H#GQ1Pmv8#4%4K=ZyTW*5U`Lm97)+xu(T)wHm8Lr!%SrR`z0VO>Int-vCgms7B^*FN97tphx^=uqeS*dY*?&-iUymr$w zE)6}qzGfF4Z##f`fe#u*a0ksCnF7-pY)@Bi7sA6=AF#Xc2rkQKz0)zsP}uQMWZp`k z2>;fW-gz63%HIB!4uZ8|h;fpaotfQ2z_NyppShQGUXiJc?CwHYM%fc+wLD`{|s_kxHi{!`F;~~A41K)-HSh#<=Kvtx_S7V z?1lL)SERdjOYBn9rTE2eKLP*bL8%L3)}^hjPt-ADyg*cU?7J%c(K21Hvrb4mu8wcu z;57XSD=(maQ~;1$9`v{3l>g@Cv!9_w7scc_{&f0M?uS>t;U0FXcY)p(#L6Ysb2+N= zekeY5q+1qrPSlQ{Uyvywt(3n*GK7hMB?$M@AMLcnxhwbib`cmv2G-j3H57EpM2bAakt5@WeYd=Ky_<3=)Ck@^3bOpQqM|r zd`3O-RwY=K32q_Zi0GiNIew!McyIWqsfK5pQd|%^2R!N|#Q|_7F1ZaD7$xW2i+`P^ z$&S=KX)ExN7FGT01pPiTq~$r;MS(QsydJH9@5080wCVQ4>>S8wC;U_i%9|7F<Y8 zTk5`HV8pwO0M97ABX7SS8wi0 zwK;@u-JG}}l&lyzw5$v)+V8WAa6;y!jz;~KE%`i*c*99OIBUwjc8>eL4Yb{5?TV`O zspfHYO2++j+z&2GM7HN-j8?o^KlqT7Ia>2u0P>4dMWG0MZi0PFil1L7d+($-FXtT6 z^zQ}#gq++_TvYG(nW2ZCQT`kbC*!7Oo}P7V1nP0d+&QG#3FUV-;T)1{1ar2MdwLFO zK4L%us2CJ64wT*l5}AD_{`+&iBx&ekESoIakYuJ}T%^Qtu%6_eW@yAxhE}Y4S?`^y% z#Hs9ts%t10A$%x57IPzlw&^}@=||Wd`Vx!bHOEtpMa3sB3xWJ;0QY4>{N=T3@1dWu zaTl->)QX&z(Y`-dORxzuYTWjEcw$})C({1-qeOI0+bGUWejKFzXhAjXS>j=fJISzH zKqvEpdG;xNI<`53y^>Z`jq2|?dk_EiP%8V$J(PQyqUxJxNr$EGJVr)>Vl;P^gd!y_ zvF~r=hi=5h$$Lmq<8m;gig9H2VIAq7aa3*s7q_dLgs6tif=}iex#gh|pp1Ac5Fj-8 z%7AoUC8zRRP+iV&(6g}UoRLxgxRsFH9PB70j!3gqDJt3@QrkjL40(F$cdw{Bm8q(J zyk-=JX4x*5;3k&m-RDMn+7t?8KjTKegtWiT_TuLDZj_2l$(b3gS>q5}F@5Fv=s>Qd zm}g8+Xl}GZa{Ii`#Asaa%BwXs)kXs)J_~PYb=7;ns9S3F!a~ENILV+2Q$J5g_kr%j zke_EncTi~#Zj>P&h3+2m_k45E+7RFT&?p~0u83FknGjreC{a*P7ZLic6LomgJ=3UI zWC!-sG|)5qKx4c*FO&xv==p6wC+F{|emN)MS;BnTyOE@O!2Ajyp^dhf>&%sZoo49Ol*R1p)}is)bQF4Ix{ zeab@+9?Fl$=tRIi=NyiHkl~9=Xd3zwe^*!5Q1V#Ua6xq=;jUKqP`KwTzft#jmHi?x zFOfDf6yb?8g1;*tnvB1zr?cGazGK9UqP|&=Q6sfd6Aqn zM2U|B4Vlm6o;#0(CI6%=EarL}2Lc(8tW;P(N}T65`NVd*< zcAh&XQz|kehiy#o?NPUhyVz~~hxFPNSV^Ooc#zh(he)N55cAi&tv^g-J!ONW$D49m z&Ld+XXDNC8=egsup)*5qo~n=E5RHd22v=oq<~U5nO7i$Z=vfl9ggBo4S9(i9EnV`s9}2vdE~%Fku_mTZ;#9f0dJDJi_55dR zUhpA)7FLrZI9BoYh-#^#;w*{{D$Eh8MUJc=yi!qj&f9$!aW>-~aN9`gtOJxicVXeD zf)j0J`0(vrW1VF=cj#@nR0nL-G<6p9>&!yMXw`$hCG(2AZFNORe4iYm9(bi=jr83; z?WdXnXc<fQJn~(`C zXpdB$mGG)NU`8QcXP3>5oaq5}QjLWL=ApT}BEQoac{jsy_b8(>QiZOlAxQE;f2v23 zd6`a9r1IJ?ve!s=xFNjIO)uxL22o~#?bpjW%HK$T!HW{jJ^pgg-|UfRzNVXX>WVv% zLzzZY5&Qe%Lu1|bj`RSe#Xsqlyo1f!Uw0n_qQWDTPksd#^_%CJ-vybUxE>!M%;P{2 z)A8UDO=FK! z(rQN~ER+Rug|EVke#_=?i3(pWmN=8o<=&6*()gzFpv)+u0AqxHn|3-{Ckr_L^=;a@ zv3?6>Nv)d?+;4yW=z8y)+Jmy&u@=hG^MY3cC85b|cWggS@-AJzS}b|C43*+el21(Y z8Y{I>mY)~9dhqd+EI@GS{8j$qR#^aGiSMe4)S8Tt5LM|x+1(K1{@K4pvN^)KfUEH0 ztdFh%hwkqY$!s58U;p$-jWaf~P}U_~e}FNzfaU;|XcG)x)@akzY;*up)o8v~!RSgO zw^!oD^(>|FT4)Y^TRSM8K#Z5Z-?ps!;Q2<@Gd`5Mko11*u3x0Hkjx*FTVYV#3fFsz zvc>Ar$9LnJ(41>ub0v&QRXqA0C(Ph2q=qvR-TR!p2Dx%>6sQ~BHOU%Eof}UEDBFF? zm6#}<2Piv`s9ZS;RJS;;>>ZQ@e_6ao-&;aIK-p#WbRsn&81OI$qNnP`WaBE*{^h?6}{qC|EkG^k}usB4XUcSVE^hThnKgl=FH2))$a=`p8ag}l) zi|gN@NBU)EZNAu9u-A^Nf;e2Jk?Q&H_Jp;N?oE!qEiW(qICD8BN1c!w9%{XXJgtWB)Ql$#L#Al}cuhfkzvAIm#Ki>Q)%b z-jVk$kJn5ArUi;t(pD`hZmPl4ra2EYhTs2sd}NwqW)HH$SOu%N=^e%AD1VUjGCb~ANt|ir9lNDD_u3Kwa3_z_XbZ^OmiM1N8VdZ5mnrtUQ#iMdouaY z^La4t2Eh92P+I8JyLwlrp7nU?r(X50t_@C^Ltiq7(uyuM=;l7JZ7Z(5H0Y9RTiaIB z^k>w)EEsQMD=QZc zc|hEGpPa3!3;1poHuG#^A|6{<2-VimjXaj0n7E`}x)AapWJgJNsojb+Trh6jYibVS z*Vb)+jUo`TUO#XQ#vL9awM$`WE3JPY2n1oivhrOG*D$T48Umq5yA-Gy5k{IVArL+m zjMo~Qnak|FhwfGo2u44tE9>lf$usXS*Fd5_< z7AEc!MtXxXGe^JE)1^|)2;c5ZOz^s!nWr>4o(kH(+12{x{QJUt5XvrI`C`Pcu*ruS zYsKonfG0n8_YkX^9SzWb^%kl^cVdlPMm)wq(48?-IA!HwA&f#>4Q|Xh*v>VNL%DZ}Ld`ofF{NUmfBcf$F#rj3*}(3H3XgD|Z&6udR0y+x#mUiP-^q zZ3>acS}D6tn?Mg@(gM4wrpM(|n%3i$!Ia3C3zVCV^RFd$hhNOQztbZtE)k{n{1WWd z*ZOC>gLZCA^Va%Y{>51%3c?jFu5LVXzykNlvp}K!X74jMjB8;|!@Y$e-g8MoB5U#d zm-k!mv{Dq$+9|u)75zlu+cr_hk3{TX{!n*i<2EWy#>1?|w@n1pRGx#y)eZHBzw=&* z=%~`PK}UvY!#YMb(eugJ>*49`Fu!C?53^3 zS#L+Ff8FQeVIu2)Y=RgB4!~=`8o0|Kj$gIm*z;BE#fUVl`Yb@A9VI<$kDHk6sJK?s zW^i}IIh0#(P)jgE-ViT=4IG;Kyj#WQh!fN~aei~SnPsy+5v64qJ3IJAq02fO*k!HB zW(@a8z8PH|{p6kUud-i(K-AnlWULh^Jl*BTLR5YxW_@`Z6#y$^HhCokT7V|N(j*pr$b!}YeYTPU;cmSVaD z0ek$*>gb@{D|;%r@8D8x!?^Y1Auytyhr;*jXz+0xU5#KE_X+o=q)v*6w>b;?50xE_ zr=p6o^XmX%qjOEi{#=(2W0st*JnS(53jTL*!o*2*u(mU5Xz+k(K)6)Acgwr;nUjjf zLb0CPc@dTn#>lPj(fhb6F^meXDQuFsziUzE}rRgC$$svOxb#uftP{Y1@Y(7Ighxr6mWicstfM*L(ev}-LsMO zA_G?>Hf0bWz3n79%PwYiQ$XiOadrkUrr#i^*(2ImS&iYhAcXZqsz%JTtY1q5TinYtjnsz-6j-mwYoW3=NoTW~ zq~%FXlATaCTV^ystf%6}+HRgy{VC60R-2#fPje4F2J8KZ&Lc`Bj?H1+{uaib`?3lx zY6h;0LsCR#-;VqVWK_;9zo>)4@tc9+_m&96F^29 zIdNq-%ly;sjX0j14HRnTUE$r~JdOe3vQ-6piA6CFNsA`m=Kz%uU`F~K@y`Us6V6N`xnkIk*?s>27XTHr>;K2C^X|_T2;TuS zM0t~W?{OxcT%qI4T=?e^UAsWMGV#f&Ra5o6#Syvn#izGxkyGw3=d67uU#Bkpve+}q z`>$1o+!CBv6?^Mc^ablR!X3uAh z>zZ>q=c3s8OXE)x4%!EIQf(F%{Eqr(gn8-=do(MUnq*?rNXt&eote zRxs2j=*FFDQiBg{s=A&08H&`_Kk~*fezFeaebk;C616e)iTQDgn%D&Vu!5;dB@Z zICsONg~j0q8S=r|gVZ%>BUaSaUN9rvmVd<245yoEy^PiFq5i4PFSR;f>c!(4bm-42 z*Z&m#^6wKvTlCRL*Yze$=krX?zuBsLn(Vu-9Spn9dd#%{+@l`e0Cs|E&zNaHc1<4H zR`65g28C;4do@|MRWeaHs*d>{{-`6(v`NrhWIOw7HlO$@__itA*gQ%y<1u)5YUl9OexBIclL;WeN~cU?m*d|0W%jIEJ?5+fYW$`iQKahl0p-GVYyRX%p}E0t1}6SVJuYM$`$bqk zVConS6O4$*?(#mVQiH2YI5tJ8*Nd>gdIPxIV*kjTgzJIsC-&T9r*#HgZi8b5X8%i$ z3W@2EnrbvRE!oRpK=?8qanJwVO*h)fhSidlR8 zx_c34L;+TbBTp}L0*5|n$B}hld(4?+9R1Q4@P4(KQIYDvE@O)OVo=?DGZJUvDWw(- zN*)*d7w8$D9K9rxk{7=YFjaJqR*0T+;_W4`;ZND}*1hxnxhU*{8V`Kt9`A7{%SHRe zwBT%=uoj8EV$AFsdU+r9Y$Fm$-p{THRj+ES6-E@oZupdvdN-PGQEVa`F~HBLWgn4x z@X(v$Qnah+SDVec;!?Q(VhYtedBsAdf|{V3CB64-EeR!?>CF{Ui1m4S`{$Ep-(eAy zi{p=3W{2UhBf&$>XFFoWg5obzx4a)mA35EE$jw3!|0ed72FyELGEhvoZ6`|Yfc3TB z>yA&NLiV9>m}`gT)6#r@I4Bs zP@3JTnza3Chgc`@c793&${R-rQa;(u;w?do%#U2n= zC3%_9GQfadgU{0btLR%Rh_+F>orB?X(QTIL-R)}ce4%*R)Zt_H zM;(918utX!CpZr3ByPp!e!WpPfyC;P*$I~_eWw^F%d3MxvGaF5brFVWWY=7z^3+^5 zWy=IP1Gy8Q4FaH;b^Lod3{osU*IEQ}x>XCAD;ySZKFE;uXMQksu zhP^EsW#qDbSCN&%oy~EU`R7Td^XtUA$sJCQN|aqj>9M0pCaFL2*@g_SMkTA~v?BGph&ryNqz{lUqdLHjbOXOD6NEjO!@I@4rI9f9I&l$z~K?W)c^ z)0BF$eTSY`L0`@U99h-ZO_>j4pMn~$*it9ny*e^CF?&S&#Q<0CnC92B3 zb(@;XqsN^oEZ6DLd3{f_M#A{OK`8K|$Ee#D8z|XXN3&36S_M~*fN5AD*g(vIUDz(2 zJP}aGt|6thn3b5=@(04#R5IaWHEf5`H!)8YIkp&?orb)e zZ)otFvcR2+YX4h|?PV?QdhNpAESwUUiy3q|c(o|9$ZyKzavJI)xEQ~lA+ue!G|RZt zi;vpR_izmzR!ahkN0Qbbv0J5J4MmF~(y6xeFN6jkAO9a4CsWE@X3$tgj<( z;Vhh(A*vcq^f{3!Ii@!T@cF0do`#|T1pxAR#R41IGW6rBsuX=*M#;`o{kJEJv#x&b^_Vf8s z`Z(vL`M|YQv2mt(dg;%D^=v?KKLfbO&uPT)p0va7!5 zZ~YVvt7%K6AtaAz!kvDVG{NskU0lc)YqgK)5t0Xgp;aSi7pg9j$-UN|Sqyv3)r{D_ zqL{Z`G@R@5h@*;qu=8LxS>?5GZ|A|B1Gn*QJAJCems!$-J?BQ5t^j&mlUW5#_L(?p zPT)l&M_z}KW4dzIqUyyM=q)@;Q-!^~&6n4~KDF}`IagnrXTfLc+HF39Yv%co(YG=^ zhrCBM9)AQ^|NSbo@Ia}|H^VHw>4{5q1}>seSU>Jskl&Qet3x#%)a0f?obY3xiRM@9 zYU;sqAN}(F`OwtgsT0A{mfsSsw2t)(Lo=wl?nP@ZsXA$10~E;@9)#R zuBV?(I7r)<7n`=4p=!~lq!G^?j9iSs%Ls{i!N4L6fKOpk!zfpYYKT;SY+rF~cNF^) zdt_Guj%!YuEF4sIw=a2ZUs}5%*|3|dFy3sKQcIL1gu4h-7G#2J=iTN6yeZ1K|eH(E{c|21G*2TN9X9m>FOW;v9q48x!=Vh<@F zIgnECpL#BS7_hM~+J|>=AcYU%l{fqvP1LWeUiO*M&?mem7(c;mY>&SqHJX4nR^+L& zI{^gasVozPm+f|876Q%5GnaJI@y1!+`A)Nf-;EH=oRx!ckA3J)s>958qrhLz*TFn( zBN^lCY1f}%e?NYJ;|5z6y^hdjVx-h+?W~8j!O|R#I_zig^Q>W)=4B+|2SHM?)5IhGJ^7UKC3oKwLTy{ zRD*C4;k^MMhzL2_8c%{h!?L-CAZk=#1^2+0&ia)71!yVcss4x+p)C~MB z@=o6W9MKwo<_~IqPwsN`2c4Mgpf8h~fjWicF1JP4*R@O*7&34jy2rA^ZcPuBMy{Ti z^_~vifIW?t0n>sv;@P|>d51q)fWCdYOC7BeIx>RKe5U0Dx06s$aDYWvJE^Ekc#kWP z#-01wlC|m=)c+>2IQ{1@+6{kE;z~vHioCxraYhmi1~o^MyXxsV=aI)MS4A>!_)8Jt zdCkDZAu4(*JK!>ehX}W&mw7Q0_Yi_<0WJofLA{K?|@giacf` zhllPN?yxJYLie0^jHRmb$z3MRz&3gf2b+P&?;JbqO@XwVxh@l|JGis3_mPXd4qa4S z2HohPHog3!!`YTg?(%L1QZ5mT-`NaP#n(3;N2AxyR!o5ZElWp=Z>kZPpETVE{%w6o z(m#(Jc)sJ8YW8SKyx_xU11*E|$YHG=c0YO(g)H(e|DZPEL;pbcp6;OS1EX3y7n*52 z-y-R0GZW!WfglJwQT;lbIA>crx$8UKRf#uVhZLFFA=T~2s+^)!m9&7LdNZjyd4-S4%Cdk1D-Qb%_TJhBhp(h zG^e(X=_Wq&QdV2RUuk<=7_JJXud3gTl_2}XmlQ?Lk~fdTsxcS5JNZvE{aF{T5j6={ zB*}V6nKv@A(9IsB^wrb5={72l~#`VtO$?r(yS0U66 z8#dvQqL~tQBAX#|FJgBlS1^O{Gs#&_~-DaqLs_ zFZRwaTn+Vknewf%Qa9}|byavAIDYa7VW3p=fjNI`ic{2=8ZIzJs^(!nG-~4idbJeXomZ$8A`B z-M{x}aK(j+cJZBcyjB7%4jeN>#1@P(XRn3P5f}fcFI-ERKPjzUwLrQg>wW^8sF5@s z03HbTYFzV@%S+m0K{?=rhO{=TNYf#`$3}+QZGXt^ojN1XiM)5cQ#7$iJAB5NsIzH2 z2@e((DmP`M4Qfd_e9WKPu2ph0(c{*aM5=AJtB`{$4@uVc(>?Agu= z)|1RkWOmb)cq0-|w{~;CudwNLZ~hDEL6quN?icK(3$1uTEb-dyPU=`-L7_lsyVk7` zP`edaG!{45CSQ=a>$&^BV|3wKgXM&1o$g0FYDe;1_0t<033#Ei=mIF9VcFKK-*k>d)vHmh>{ zY(hX^q4$2_lN$~>wIYa*PzI7_GV2HqGF+c%`_^b3EDfUNuL^LWtSE*@fr*ZuOzZyK zjQG*OM31*nhkdR}tX!c4EwrcQaZLDLAXcuUXg#z?9idx&5@!=+=5ng(^1NwPBoXn; zw+B5LBzIQ&)plQjc_|TguH(Z=)_Z}AH2NF3tBwJk@K7-)CM-|~fp^1X3S1PJ;1nC# z2Pr1ZFzTdf4J0}LNP5mJdC7F`H2MHy=dT9?LN2ComhC}sDWUlSEo^L61QSo%fle15 z66u(>!|ykw>K+X$=3y>7pg35z&yvzMy3ev61CyhZ=2mtrBC~yl2o~)&qs3vhi#B7$ zq}tEMM=t7pw@RHIpHj0A>qx|Y1v#h`(XGetecKl>H8bm0)r!|v*t30+NCmkYS@hj)6Zr-_Hr8`dT4s%_4H*k%U;$d`IRhr;ZgYSWI@i3X|Ou_f)Fn%^?H{Q8`j zQUQGecI2-9MDdDv^2hu|b(OJ2^(s;eQP7^KEwnuqd>_Jnbg_EHyH(z;n$U{qC_6Sf z0Zv09_Tc+o)t^NzPFh#fUpiQ8f20OCNU?R)P1*5e(U=K@?=#7yZL(X zt;QISy|b9l74>b=VaV+`^~Ipgw=6YL>&#VnYPivXO8UxeSp1CeV&^8cY+jCjN>%^g zNH^Ke%x#+V1w@)`XOux3tmnIKwwY01mUA6{j^raZ3bOmU=!M#Dzb|aMG^2jfxOy75 z{8YzrOWRqb?^b&qVh(p_$Q;)*iS7)b@1_S&sJK5As6Tt~mk>K^9cPxd#9p$@#+@^V zJ)w;_@fivSd}?R~S3OrqDqlUv%PC2L|tnEGs5n*e|obCHQj;&uYqQwxYx`gE7 z-TQuAXC@@)Lv)GUQ{m0CtC6+5zjL39n3j%Y>&Qkbg*+lT4}Vx~6Yh$KII@?jOSdbO zbto*=9!BBAgk%8lp5G8fKg^}PcAaje-_DH$K7g5$9+6y@ z;}eNh%1>dkx^+iJgm-Y@gA@_cqcGRQ)Wg0>iJtH*uKQVEMCu^lBzi*GL3}PC%eIht z<3uY?SP5h|F6Cm=EcxB)bPRAo$P;KQLhKdF5+m8*$M4gon}dF#Z^_#q`}H(s&}_A2 zIgOMxZiuQz&aN&Zj=B>=Hi1uD0K|lW;os(u9m*m;1}OJtlM@C8H_R`hmwdNQZsT!q zR0Rb=og6TCSt}O;^1?p-`*voPQO=Ee;IU1boPJJutmTbUITDURRiYoceW99CI(se1VptXUUp}@J{Zvp6Gy@66u5ZL2LaU&? zv+LuIaK{STyS-RUFF!ilpsGIr%N`YExUWaSEYx7?n`YH2TJ&LJrCG(BxV8hhE&W53Kak8KNhlzB94PUht$ zgY{DPEBY}(so=^xPOQBEeN5>wd~0Q2LdvDXzVCs-+Ds|A34&_vQ`;j=_`MbffdOWgYPHbk^ zl$Ex+_6%Z2s}pmj)v>qb^%@s-L*`WX#Ew%Ctm5PXH}Qp(DIC>TFShpx6mQT7#6P-M z+n&u@7n#ki?Atgo%Uaj2!BN+qt!iw_Hs?FUsOcvTbcHqW(ZNc`%q)A|iV*Tg3UyjA zl{(Eu2j3p+T8PWdzB6y(le9dAUtsD}AjiXFTdOYXP<#F4^cnb8?{U;tFWaMvfP9_) zY_5Pd9sb{tP_aJnzXz%K-#+5_m+S_|;VvP>W~i@7AJkWij$3qq=n&!XISvdoI1Uu1 z!?-KuS#s~&F>&(uN}P=EGQ9UF(8S=_Z&3f(I~>t2PHtkX^5`LZo3hWLeHiAdx0&c* zpYs!CkOKHMXZ0T0@*@(&$z(CP-YNVDAeZX7q$vS@>mVglsgrd6PrAEs_MN?C?}NS+yN+g_b7YwV`LOZ+ z+Fi63VbOGyV$6^rmm|f=<$8}3L9Vp(uApz1DHq5Y({D&PuIREe6mh(GOvP^iEtRdcnO!k{hF>RVC24?m@yx+R400X+ zsA~cuqL|Xk0?|r=-~9n-GZ&w6c%{+^x04M1&u;h()EqYh>gv9hd4UyUxMx~eUOTMu zpR$3JpA-=uqgaBLX2D3ATtk4is+L!Wm_IvD#)RZI0X2t>vw+{d|Z2smYju|s%L zm;;7;1XZ0APrnFOQ3xP_QQ^-nwJ4jz;ch#ttIqwZTDmCLH)Nk&!J7k2dj$N~8ii2l zX99TesbxkXHmlg|b=3PH>Df{}HmP74fH>alIwAvCecA@l?%ISDbO|jhxKQkr7~2Ya z8C#@XFF~YWz!Tv!c~vIZAcZ+V&rqVTLEr=F_uaPul0-Lhg1wOSy@pC1wR&m<1(Xi$D+C;7rjj844N>Bv24E^44SAS zCW`Q&QBCZOFmg6L8=E}-9PWmToGd_aJISGW+feiynf6r%&sYK+Zqvmr5!w3-;_LSn z=_iNie1&%mdIP)cz`#vpsGSZ)_Jn13X3Y80NeKPiHfzRBy$GK^fX1=1Ph9UdtTOGt9Zy ztU$SZdea1?Xc?kKqUqfe8TPgO5ny&Hv{@KSem@(h~=RWtN;;^Nhul zqY$73qw=(UnHQ=1GQ*h5sbEq@|3=;?2VJF$Hw> z6WaHU*WZI>9@2Za^Vog2w)<-IE+3G(FHPsZ=}QAl&Nnzh<%LHkSQ<=sP}axfyr=ib zN|s9U)9A@a+pIy`BHof^ZFg6X>{dVNdrM7RB|Emvmg_!@l?T#=IIxyql@dLG?aLd? zmE>tSJ&M6byA;MEwbf5VYiTlaLVu$p79;7;9W0fqc#qo5 zQQ~XI834Tt>)3#3yLxLl+m{71K4SnsvBh?b0q3>|0`XbP2d^C=0i;VVE z#~>Vilp13uGuRC_`mcHGnt?`ctwm41`>emw+b$lwswBmJstMENEOD^ou~evHa0Dkw zgyzfVdzvy;@~%fs#?u3K+hcrFwf6t(J2F@uIcz@Nevx{xpshdRXYQ~IK3K3qgkm0~ z9u(&pH0|8{JI#9SV!i%GU!-{O?=)_)a$r-;WC|HU6+gnK)$8~!eg%~1EihSTAvG89 zL307A2l>uPI%cSwikD+1-4+ZsYV5^>XSa}I0_@`qmMNkPmAyQ0c`?`Y-eJd23;=-z zR!fv9W94Akt78p&HQo|=+ZSJ00K5xat*53KgVZpeS2hUdC5kkilE2s9c)_*pK1oxo ze1X1G`*u}4c>eC_*Xr6k2-cR4yREhVl{nb?y<(`Gp%0vt;Ty*qOO3!1Ut#-IaH|hj z-^na}YvrRyPld6>VS&f8T9m1BrtH;`MtdV)i5a~PC{b0O=vS*Hz6byBI>Lq+T z6+fDL;Bu+2dCr$!2+PV|LPIG%@+iz_DR$huSb@()A44sRL3CehyGMG(-JF1)nB`F3ao>|9G>!=*DG8XMA9mPi z`J6Ztz75kQ)TJ{#aJwW~8~G)*xok^$YU2-^a}J&REH#Kzk+xJco=@qNkI<$mJ|iK^ z2tZGGY@u(5Rqt97+RtS@*!`;bGzPKj)%uv^H&Z$uc_7b!ppbrM3(h%QVN2b|QWOcy z0QLeK344ut!&ZN~SfVWs^*PmSkuks?E`j%t4Z>${k0Y(~X4NiH;oV9t)M+*f z3ot7U`fcg*tn~2r$OA%ucgA=MzADu>Ka!qJom`19F&bf&*ltMz6X-s+RqvrXkkUhZ z^XC#_567!Z&41E;IV*az^55aA0L zoi;MhqFh+fJ4==$ROz|0VJ@+LD*Z0~)FfoMk{*v$xk?uDHE4$7UHU!KQEsW>f~$_j zLc_S@LUqR3yoX5hQ#bt!t9_MGHBLnox|WT*`cu9Qbh!Q(G%k@U^(Tap3h0y66R zqnXMJE(RF>OECx;j+uMtuV3H!EmzQjHbD?Xg76D}QWT#~g{dmA4MHVSPR_ZUR{ zp=X(EfZ+|EdQdH@%ro<#2}wf+EtsZ)Z$Cr7gXXb|4WFI(mEhHAcS*05#SE*8rn!{O zJWra&T_$|fc!bq57q5smGTHTQvdgc93NQGjiEVyP=MnZs(0^^6Z+uM`(`JxgC;MK; z>yMatw?8Aj5^j!Z1&W>VhdM%K3e>m)zBZMu+|TkkD+roN$@Ja1> zJ|-R++-yL4d5h!W2-cefKb)#t==rx$T0gxguiL=?JEA>$q11(ESzc6SjYsL2hmhli zxlxme{UbWAPH(o5d+S^6Mq29?bcN4^{C(uOriyTBU}lt^Lh&aHl3Q@`;b7NYLY9m8 zjQxuuGf@?q86k@`*!GiIt3tits9g)v+U(Tr0R) z3C-30yLR*72JhY}+x^JZA6u=igS8%85Evf+{cF0~N&QEjA>YKT(CZ~63hP`UygRP@ zQRIFqlvSNZ?dBJ&FdW5`3~v3omvpt$3$rgJfo*N=)Xd1wrAQ_ED!jHDg$GF(ehBhQ zL{KSZ#tKJX?TzVvBo|Vd#JN-5xm~^8oMf*w(YpZAyP~@vX;Tfu5tpf1-so6|&mAju znu%GU(J-745+%wp+_rqhV{F(17Kt*FBSfQpooe_}Y-H;3-$1(VSP9p>L~W}jc^D>8 z*w_;6IjL7&kog5qi>1HCu!l|huWOmEV;G_jReNvt!=5C)e~1q?Mw!9k zum==^2H_v0)n+VS*sTE?J8dThc6*KznPm z1NZPve*)l?6lp9k3}*{~P=p(wR{vwGPBL<-3Q#t!>SEZX9FpRC9cfI$jkgsHH@51k z!`!-q1H*a}JpUP7mODNl$5YA^w70_)Wt<=U_ztwb9vzr1hBfTJ_B{ElbCCfa&^Jh$ z?9nA?a{kE$)5Q3+;RR)nAy#_;H&nUDIZzj6bJ_sovdaHzYT(EjG~un1d{*HCecy8w zsusAt=LKU4fvOaI2sLfD9=U)q6Xs`f8=yN8!@awuie-K(Nmct9#ETY3M;R|fXSgI& zdr4-Pv=SV6l#)0@WCN{-2w_ZkvV*0>5yrc3Q1AA?;`0DDJONu8FVnOai}ub~qL4D6 zxBc!tvXEJ#V%z!3r2a4Se(E^S`%K!P_kq@dNr>T!7yF3`k}x_lv#ZwY8E|H)FhxZA zObA$qN5#!Kz#z~HItrr+N|=Itu7fCrjfK2xx4Phf(E*Cgf26-oyVajc7+s}VdZtTX zC5(o~EPZX^tipTn8GNr22C@nqSTNmBaOi^3cm(V#{mWnq=f}M_WK+uCARibcX z`j_}ysHY&v`%GtEq3+iq^@oD{so0SBVMKTGD68*p_UU1a{0RmR$uA7fN%m6`0A$hS z2nR$m%0M~M0mTGS8r`%bMt0^)^>mT%Aw)eJ9%r>p47;m%YiXh1?#mFPK>gJDFw9F6 zcQQ-zUuPi3wpvPzY@@(Y{~NnwT>@3aYK{r|Ba4ecbg;}(k|lk=AP~irZuhey*Nx% zd@ZG0^gPjf{8N}RbnLnuF*+8e4B_OZh`{C!U4m~~4&AfS@q5UK*_PHh0#Ev3k;Oef zNmq24K=N6A>8bKMXOJGs_O_$UE)pF7q?5&jpLi>9@QeX&agh)WSf-qQ@tDvy4h{6# zhJ(Y#(V4Tt51Nu%j?RzTPCh2R3Dme$KPWsXxRafgPLHYx%f{0=MG#l4opte$oa!ex zXL_7g-oFnqyHxAFt?*M`*OSz`>OT0UYqfk^;fA}e7ea=Pn6p#Ame~&3#A848l3mge z2q(P0A<@oniO4N~gNPWpoFUo1$-68XIdo3GAYhl$4p_CIMQgy-e#%=eC6Ao3TU{m( z<}Jl)*Z2|rG^VFbRrFs{WFM-O(iB}ori`4WCh3Igg;sfX5Nvfu{;D0>Zna1sI_slm z8KIrK)|jmwv07(gk8P0pc$4G8DVP!R{oMbWEP*CkS|`BRvWkBWF#U?|@TWrs3w|2c z2m)K!q`unuAABB6YFE&9MJ5f$yJJ`*nXcQ0s?7>6+9XCUWKl0>!i{w+78fu*9gZv} zs~I1nhpOGoEID!ZGd}|RZ5-4m3B_`<<*6QN?OH!HT9dF?9sle#(Da=-;LhL`nVZe z7)fa9mG;rRqk1WIL$_`yNmzC8+P|jrfYbSrUHL(aCE2AeqR>j;nXHt}=LL{YrwC)4;PNZ& z9Y06)Z5qOEt)Pkt{fE3Iov!ttCW5wGC8APE-_{Rr2*V&(IyXp1v)Nz(IR+4)Fo?%S z(dlfr@;h$vsp|4mAE*=A@NPY5>tccMJOGUJU%kk}I}dPvr0#dP6=Whlx=W7Dux#|+ zG(fjJDp)OEMykAtp=!_Ws5$Bp)f7GI0pc28suJr^aHNN^B!@diwdxNod zL94Cq%)=fV#FI^;Ap~Sa z)GT(&4RLZ4jB<8M2zPcHfd1!4u{S5pryD^l?TRZJ3d|8!L<037PGQ>-&SA3vTvFcx ztg#Y&l}$dbGX?-R`69Jlwt3Xj_oCg`;L98GtyWLau&-fW-HYJ0YVlK_Z*+#Y%cwoXXlyeJ~ zXBf)E4*K$jVcBh;Vc7++aJ#qw&^0JESv}pAIp4HwDbqZ!3Bb8*^Lz#Hu1LrO=E%n_ zdtF_w!R=42#a$m;-*P=Y^nt_vFzgC%M><2vBb|qIBAt75BAk0>!*iiC&PO*~P15_^!cUZr2cB2n`PprfAqt+^yCC@nMe(#$@pB2$`0Rhdda*lQb0w&^uKn4E&(1WH;qWI6Lqm8niSZ=V zu?bcHOU#2otNsC{b;SQm{6_T*?+Y8l5Y$U{!m9#HwC5*aM)h3jTwK8Nyz3lYAoRRj z@k^dhD4+yvG%Y93htCkc$?!cUhM_5Jyr5N)Kq-I?QoyB@VOO$=dRZp1(l4A=ogP;- z|Ao@Ob`Jyt;QuQ5BF{4+fMNa(1WUBW^ogfQh16t1CHjQ} zk9uz@0g#WZ01a@6K>K)*7|4A}@jppU14gT2;RsqDH#||bHB8Uk;Ky4c0Y}CV z8u}#u9V#!`#LW3{TAou(Q8g)GU#F;P{y!$5!lAgLYNkNw&RMDtS0m6zTi1Sk!)K>_ zz^8h43S_B&p|QkQ}pgz;>0ZVT9?$+cv!#QPX7zmg`SCjuv{N8M;K7au;{ew)7(Ka{x= zz6BP}fR!g|*yo|TN-Q|=*9$tM@?N=VUG4W#fu zR=WnWEwJds>uX&=(TN|gJhFoo01kPixI@Z`+s?~XXy?0jGr%4d$!B%*ahmx3f2U9a3cX4e@Es21cd; zwqo%4)xQm+G|W^nqtfS=WX$41GjJH8WK-Vca?ury=;v`s7U6iGZ7;&e2kT2Y-WL4z z3A7l)hmofy{A5wmV-=BY|NU4gkJmSv3Qv<|%!DzoXhpwHPE3B6V4ui@ql6z^liZ!$ zsQJN^Esrs*)H^0M9R{M-Q?}bPVaqFW101qw_X+<~9^jIqgDbTA#IvF>P_|bIKVnD8 zj%p;On>Uw9lF|P=mDhLgXard)hj)}Q#QNy%KA{Io+!@0>$9wVjD7oub`-Fh`c%lQm z%JSZh3Rjdk&AlEGbN97WIE{uwE#m~($S!4o>Rb2&qoYcbUuC4P@;gJoKua=-w~f2X zc2wi(-B10#P=$T*j+xOa;omBF`Cmaiz93@SwMux1!fAKU^4M`@5-(m+k*TMjB$IgN zmfvab6DO1_``L@@pyb5;d*VAN@zm1So`z&2Vo=j1!rpnWyDSg_`$P@_Fp%MS34edy zi4R;7u%t|@`iaQ5%TIw|bdD3rYZ^f@-Z2yWB^B#F zYs_WBXqABYbS?;c#y+Q{Xm89!R}_@s{i#S0_9S&qS$G)e{hP2ZnX%sUGIFs-FY8^-K%C zSTT3G4CFgKG z@0^_D4;mURXU%*DDtd6g=(r_NsL<1M=%UHBUJhpbxF2Evh}N;^WdA6stMf9iv;FPm zyiD8yq@=o{r=q!H%~7z~MF&0GqjNbwsXJ>_x2$be>Y^2*Q>%*dzZ9A^a#_}PYobw1 zuv*qmD$TD9tU58S98%VCvq`U5t6)!mA*Ee`V!x4?)dTIm$Ae0!Uuxym-Al}BMeY8~ zSC%rn{J3^g5xWG{lN7L~{g2$lf%P_k7b$;)vUkc{YMtU#6ri|)!y{Ni?LH?uJhPcU zrKq{TuF-`Qt6+0Z&Kg%WV1xG7o^_!8+ybha-;uTn+?n z8ue(+Ig~T0%(SHJZ1aNcQd9 z@0DrmeR@A7b$!yC`oNL^mZ4F)TiB?4BaL=+N;0VqUJq_M4_TibIknQ`D43o}ypfp7 zx_D^v!F5m90nS6)dC^X}ON^V-k(1F0XwyPptxc+&rhd2lc%H8h9uLZNO-oz(zSTYX zgO%;)4=TKLaE-S8j~@a>nu+g(gHuyHXb_qylysgNL*K>N*x{Y)Zs>W#+a6?Bh}5*( z&f$_>b=TFB6Qt?>@WD*CqdL*R5Z28NuRnprui7mf4A0vH3!!~LN!7t7 zM>6T??>cC{7fuJ1x9Vm+3t@m|ELgWoYtTkj+{SpW4M60@ZSI=v%E3Kzej}}wXSg80 zrga8*O$3egieOL_xJB3PX^`46_f)$H-@W5Hvv1yu%B~J;TA^;0K_mW-{!so702%G* zmuje288rBYIdy;uvYXX+X<8BjlIaE(dp)!S1w)F#J=CsgXL=p8i8MB}LjC|v;Rev- zs=lakEUd#B1r%+YQzXoeOZ^>?Bj2@xa{jyJKr zx2+r9s-__R5>n==am0@uWm#ZA^ZfS1s&K#5v}4mTjb#DoI%dJ{eEsR|hYK#tr2W=+ zN8EWWpSx`SQPj13SbKSuk#5w#rg^VAMZgOGBN(c6#ErfFykk@(Ej0d6x9w-{Zh!zu z99@}{(h<+9yk!{Z1?lbRO!9(}ZfyTr>TQPoc1!1CB4|J2UVB-0}ZisJ_dx))p z;-^?+zsmYzH1J~Dy>h_{RU`qm+R&{Vty%?~H!bS=w24RCLuYHNc7=&Y14Aokg;>$Y zF-3@$9Qq8O`@7nz3yAE#y56OW!RaZgxeA$NkO#bO>92tY#Be-Rv2jb>63@PF2}M_j zhX_$T!X#TyxqLwQ*`UMzcGTbZ{4+5)<)Kcwy#Mmd;1m+eN4)ej&0~@nJd6sv5;Ayz zbg0gu{Z?KdqQ^B*&;$dzSXh$ll~5ga+6uRCc=Ixl%s*d)dHN`rnd=>Zn01-VU2^nL zQcJf{ROYRJ^|^n>ir!MFo-oLZg}K#OYd3mpA7M5XTawt*kO%$B|5%4Nv(9+>fzd?{@zT2BHQ1o$*TT-UEuZMgZQBJYR{14X;#$(NfHnwcQ$|( zUR7;W%8zr5b*w91h{(xlH#)++@EdJ^_`O=c))U%Nh0I)KI=mA^4vU3V&vI9;B8S@_ zUZtG{=vBRFRXoBFM1G+wyfm%D2CsAYhKm9P+&Lu|mlqBZPNt{q__fr! zfaAGNDJ~N`8+RHnX})&w8wq%=aUDJ^uGXKJ)f>&BISRqpYxYg}Bdv~k9e^-xTdE!) z`jWMP*I^jL(m!m2hf{P!)kBgTNYRC2M8xqOSy5cEu7x0;jl`K6E4<=~?Ea}D3%Mh; za!(ICEBY?55OGM;B!(;KF>^vWF0+5ChgVu)CY}}=dZ9~Mh(K}#G6;l*s%pT8?3(D6 zrMpEdFEj@6-ExT%%*@DUa^)3vK`6+bMkB?@_1_Q;)D4&H{<_`+(-ba{Hf|x}!st_W ztD^?$Qb&r4I;`7*6@9Z8EFab#$cnxktX7lRZ)tg4x^B85Uli9ehhbyfBvpyl7}TO^ z5F;+#51TunO*@+*)^|a9*l$+&7)oLQyiKXUT`odg9JaI*1Js{1d!DrW&|+PcP-&)mKPa>h8U7LrMjW=K0*im4)&-=`NLl+1fT+kIcvK;b0H?31)UvY~BR z@wUIi%mK=J*t~>Yy1rgJ`;1lfBbmmaTTV+mMyZ)OYGbnB$*FefacP)2W!ilNQO#T6 z2W~CZGmfCN`^YC6D8go=<8YXpJLZUp>p;?{*NH|H$`8GPtnk(*1D9A>nET@qf7hTY zHQ9Z|*2ksv7ULi6Ct959mI!QeTYzRuzEgx?;=FIOrw9Zs=gb1tLTFTUx^Ypz1k}X_ z&}qa3u%ZcWUyvWi!XWO02b^i4(Um|niu;!W9_wF<5IoM2fCpY$=qE{yL7&4|Sb;n3 zNULk5E>Kr~9697%v9R@8kaAd`YbB5!9k(oKJwdkehXX6TQ&4_CX#uNr-2#Xm3kN(W z48|oXvaemA=qeT=gsZO8?TLX>(P_Z_?0s;7BsynP+9t2*CX9}6kdxQ+S8@ptMY9`b zv4al)XZ>q{Q;jTW$b}AwM1BEO0w4pK08{g%SwU7Pd_szQ3EL*O8Nc$Y#-LM9ET7b} zSXwApNBz^FTOGA>*Z>79njHAXw2oq6>K+)%(gU)r=;s^{Oaf;MG1WCPpiHi=r`cXT zghdD|+KB9HXN^IdoER9S?oznu%;_isz$iy9dN@L9s2>I`DghyhQlPm7&X)Kz@`a@_ zOV{DFX`x9M8Ysy*?k~hLpz>-IvM6qP?osIj9AG5r8_T=+BJlJakqzY1uHb-D?j`JqQ1tfB9_~i z79|3POl-hw^n^t9uE`Jx{zPtH?>&nWN-M*VD+&gw#~u-J&eIsQ$O-2oUM5Wo&0vPc z3_|K@Mns%~3K0dyzaFO4J)ez;IM6|(U#l6Cq=lwLY2ZI94 zW=u1=cEmQpjrG!BGUP$@)p#S<_WZhbMToD)5ioVW+w#flce*l3Nf?F8Cz$kk z_^b{q`c?cH?;eZ66Cg*Rc`)M@A>wJHfFF^G06gs!B9e?_Vbb*kBq{ePv${rA&2sxZ zqK`^@w#3rTrbhnN0{r2Qc%i6^!0~gBY>XSZS>fNG$bm>)h7UStaaiHS>G!IQM9L4N z+^o=jpe;Sr?+r}$zvqbMQ!^Ay^MFwog1^pT+2l3?y=Td#EQqC=9*}IGMm|*7(&v92 z)HEMY9EChcv6|X(^M@=*+GXY75fG80P$HHmL1Dt{x?Ur{M-OZJCWuZ~yhtJzLNjuK z94wS@bE6&cy4op{uydmW5Nb2xanb(|;s&7y929`V#%@F-7iWBsPdgHwmaNdeWh)X=VdbHtu^whOUBD-T=5Ft*!#zG~zf2@`Gy z_yhoM9J1xZ7Y7wZ5(PE5BNzL+Q=;c9qP|}w{A#G$3yz7~e|s7nf07#AwFe|mjS!U* z_AY}qNEPzb(nsH?ToR$lM8y`RF9P(BWACFc!~A9c>0JfsdQD0c@FUzf=@IYd$i%iY zuk-cuKGmGH6?=t#LvtX=ugWLoJL$dWetMfbr={m$JxDK!IN*hd%Gs`ew11cs8X0vs zERjslgyoM&$~Bh5>^@)3z>iMT7M#?Qt^TTpHkP~A1x(Go4`N52yVHYQzBN|DV%~Qg z7zja>bM%_VM;D%Bi$;CEO}5A0kb1Qw)tUruCO%ONgm6v!8oge6-Acb7wp`z|P(Rfy z({Y^M3~pqcbX8fVK5lMgo;1DnFuEc(@?Dy-FE2d~_g!*2?wZt<3F30GZk&e!h)YtJ zV$JciX~*;$$NWDB$hM*6aiekkt`uKQ-L&bbAP~c?!AF(`CK{1DE7!p_-|5g2!kTZMI%z6j-REhp*(dvh zRx~ayMemavA&tM5qT`(Ef^m(by51&&c&}J$iahB_=hbeUTNRYWpU+D;#BRRuS}JO_ z%k^a)R4b#}zB|3;a`ud>P0ki3riRTX% zd}GGGkwz?PsQ{&%ks=)i`Rl!3cxF|;nN77!g`9x(#5q|yI~gBZ8o{$EmZ_1ou+V`f z_ND5vY;6X+xw>Ny9`<8B@R_F!OfQqAHmcEFU+xK)8#NDZm0Jp{{mJeDQBELg2dsNQU$oKfjS%s= zAk6uW9G ze*L1;^7UhuS9EW5FV(FB-HuFiv8PT3+K7)$bC+vR|K`T{@=REO!?aj;yZEmN(b*!x zMd8w1u#D7K_t@j7p{2Az=3d{DEx`pRFiS z{AXh(C-R%$IvV58s!Xm*C7d$vRcMQA)wiiWUGV{Trw4(cgEsV|b$G|tv_X?yFKWcU>Z4VtD{=cI zbsuRk`vK2a>0X@iUW{yOf0DocU+*mRmesGBaBfylneNgfiNaS^t~=h2$O<6;RS+^! z-BkrJsQRlC*;MR2C)sJAv{~DYp%wY1zN- z_*Pk5WN1N}m;0PtzP$#ky5 zvH3~Ye&N>w8MP3-i54~vV4)zF$hw{?C6}*VRlslQ;&D4FN*}pib2D2r#=Lg_U#+o5hLHk{ zdN_1jU8hAfi?4ldme0DVipP;;XQPVkixI0XxvwRU4Az`_+E3aV;PZpep!l$;!cQ`esZ}!q=KlP~o`qJeq zQoVtBbwN@gzR7QR({%g^?Ltu=Y4iISwRZM`>zS+auK}}VxAqu`!x<_Zfn1iAjBu|{ z^Mjr|k8SZ!Rb}!|9kFy2ARFGiqINxL#Pw{67yQWW$ZJCJ5x2j_Sj5kyibDC3Ynz4W zH{wh2<_5gK)PW5cNBS#H`od1T9K^VGJ<|HSir1-B!6C_EGZSwm-kww@E&YtVA5T#{ zrhRKR!5=eTIM$oDUTpCy`B|QF8ze=Z$kogoqICUSQ|PHK>u^i)$&jz+Uxs+?ch_7v z0jI}9e@rJ1e1Ti{P-bSpO%YVFC(sd*{jzb!*`y$fY9r zSj}jMIGEU#U|d?gn!mT9T)P@(#^!0zw9b<8{2O zq0&ns=EJhTBaNT@@@m;cyST6IvFbgZ-^E9k4)FbA6)}{*3yA@ zTz`4usHR+DB(5+dV{3YyYK3!%Vt+Pfo@{9gnZmOXjF-vAxsJ&y{c0NY@Ivc0JnlDqbwVgW@ zpCM_2t6j$I2S0xiKE?k??U^ZwzAd9PXy-f>CuID=KI##%3rGifuks7`m(VX5pV7rb zx2)XPEBDY)-;-x%ukg_PfgVwh$i^?um392_tk@QR3aq9m?VC5mOQzJ^*TQ#GJ){3c^f_Ep?j3$bniiW6N+weKv_Xga8jq{=FNoSjE(vE1T;!8X zFo*Zz#s`}Jl|NUeQpCRODsTDTu$JBGhlieiWt}#FGOH;6A9m#rshUW$Wl@ z=7;Fq;7|Qo0&I%T(Y3Qp-?_`3Lr}_dym0E{Bi;6S7EQ-24;LxC+Te`FfC89oS*`%r zmJ&YwutrF5lC4RDg>z?Wh-Z#htaFGihVJQClmOc9S>^zjK+{(DDbcK*W|sDo)vQKF|V@)lJQm`%Eo&?EV*2?F{&W0@$EJf zH~~cU8*&Z0}ER# zC7ccK0=|bBf??^KtR{;@HrLj#y%muHR5IzrYrm6!L>^VxV zS>sCeIxF(0&IoL;evXEWC@fE(3xQCsVh~_Y>)^PNk{s@;mwP1S>OofFrl&OWNJaDF z>nE;oeu{HRK1q2>^LUju=b#t}mXPSM4xg>}^hZ(?b#5NB3h~GO^yU|02N#9Mhr~tjt3?31R>7^p+WF6-IrW{J!vlx^nW9H+`2wqSarm*~i*qXvB|3dc8Gx^;} zTQ5F#l#gAhlC5(CNE)_j9_vydtzf5P!x-PV6Z6J^@MiHcq4}1I(5HC(1stdORM~ zXnUgcSm%^7x-Gbfb-aLmQ2?#$^BD)=^{K@rZNUy#s6uhfWKxplr{bM{Ou4X;l8X2S z9EAUV$6R>hrFmvl`pQ?VYj1_fTv7YAO>!Kou7ue3mOnqh!EVJHFZ3AWF%pbQ{_S`Y z$ALDhT;d%ss+gbH2%QDu^XdA289{#_tW^7$*{~?G#{xbL>Pi6lI#SW+^497jf5xSO zN#{^IZecSQ$ z{1vE#-*O*58ECdDfp_XOzYh9$;F8<2;y{n^p?;<19GW+nUlNn=A5$F^+tzSs8%N& zVbo_2O6U2bQO0c)WSFFdeuW~DKw_;rerKtic z*}>)3{xv#;<1g{oMFtxyHa8TqEC1Wbl}oIMq6AnH1s~zje=O% zy+Sw7e^Z0yC)AB69_xJS4E{4N47ze!l$$=7SflM-pmWIbFk1-K9&E2E9TgfX3P=jX zB!u?)pLH^13mn5HePlD)7M%Um$Y~ciElR%dq^^u>lJ+PPdw#K4+oU98Q$0B(fIZr` zOL>t|`U?4EfPkWW>se2=ex!<^F)cM&5)UbpR+DiqYid;8%l))6rKW*rVDdlmCa*|L zQbeL&Jo-^2KSI%zJ(}KqfB|lVV+c8u``@M3V?p<&>NV^xJ1Fx3F zqJ$(lb<@Xqb`R`vwqX}^YQGTDW6}*T^$zFUhSg>=qy$5Sy$+w;Ry)bPpP#woX8a+Qrxz?+{Az1=S zTt^~kG?q{Ma?X-08d*myHgcnBCH&ew6Gi-cH7B>nt@T8*Oumd+hd&vQ^K_*8_JCzi$xQRzqRHvW_ea)EgMJks%h@(`2IUW zG2?1Ex;8}F2}il&9oc_X%=K&1K4ftGv;NFV^x1i$t%(AWzxH(i~E{Q ze^+w!u|?zX7=FO?OhG?`F?)Lb#b?*gR|3(K{mCCS8V0yWunvNc}xL z=oqUVBfq0xJPA6_LL*ewa;>*jhB&*IpPw3|YA130P&uPwHMw|F(~yA@`(@p9Se!fFjce>QkTR4wD4}1U+LLJd z5dB==q7g1B{FxkG)z8St>GI(nbhVE-{Tb6I-Y<%r#SSGERBF}&-wUBXmVfIjyzu>T z^=Fa+FNW+`OFpbEs&j>BiGNdZ+@&I;wO#PZg1^!Cf3p;*-_xv63?^a)G|R8y;{*QQ zRW>4>x?nv^$3OlQvsMSfqL$y<$kvPNc(cLow7+lM`=UpbkZn|BlJy5w4`9ZWHerFe zFdLmArN5@>w+2IhuAJn0KFDf4lh^HM2>a^sDq~1TR602KQHuUUcg2l5Ez2`jz7Cz} zS}8h2Wwf!{Vnn36@sEt>C!*ZM==1KForGH^O<&Vbma{lhm0h^{kis@3;w-o5?PPGg zFqWFh@Q*f$fPv8Xq>qz+Sj+^26ufi@@^j*n70k)7xc1@)n~h=SxKTQRLFyBZZd|q@ z%!+lkw)v-_uQA8nOw0eKnNGU%+Hx0RyF7T|d&R{_F`GCT6{wfYOwMQ$Oy`POYg!Eb@X(glfPuYchn}Y4$zMNNwD({E@`mR_@|vF-o@l(s=8HE1T~RgkD3B`Ue5N@ zO-0rFOP=LWqt<681x|(Y!rk5wbZbK9cGW*ls=Ke{hVKZAcEKiT_V+m7D-LIEC+26V z#yUUzG34_F5sH%Y@f;0(n_^7FA{hHM7S?9SiDMd%`!1MwIJx! z?V9V;%P!>S$Zq6`_9T)Bp~8g)z9b?Z^b@KVNr)p+&M3=#RfS3AsEyuDVX>rs%-HV8M{Gzfbx%Q!MUUH8YV9?$+0dahl>vU%z292~LOHM4pVR_Ba^`3BqwC4|3KaLUEWYzDyoN!z6lgLM7?Fxsd zkB_ya>}WP8B@&KPBUU*cD-wIZ# zOszfYdxlVNz$x6fiYqs8V=S<33d(K@KNhk{4{|3~YqRUeE7#gtiJE5P03Nj~k|Iw= z0i?&^;6-i>^GUBmmJf-V`~`T290C2Tt|k8f77*wfr%{uWCYoF<8vMc>UQCd^wqyN^ z8wb5CyD(q0mZ(RbTVFF+Cgn52u2&#tQ(CG1#H&V1u*&`NXIR6^YzZRb_&$AKmWX;d~U5}U8&l2_zG8T=X=bXhOBhThPTsIjN6_iwEd+Q z4|;e1R27!V!3Gg@0{r&eslm_Ka>PM6qP*Dr4K+%Y+jlHyF~(MU4fuF!mPFRU2GY^g z2k-GaFJIyEDj0NN;Awh_w#1XbVJX}o%$g3LoGW!hk<>3j->o^f60x*={5FL%H3t81 zU&=1lm>(s2kGyevc{C{9&FY@}@AKCw989&a6f=<1Oa5N>pd4|}2p zH85)trN9+gV_|GlRJ357yeO$+i{}n$G0DX<|1RI)3SRS}G}^g|f274L=`?;!2*q!} zXiIR+&Bd$2-COv<7YJMjKH?hw$66V%IFw_~ePyEqmvZ*^|J>Po`=8SxW?<@nPDglI z@5{U=^&TtETwvIMB0}}Euz!SgQB#E4$Hz3Q17}cdSoqD!WL&?Fe8yJ7yUB4t0*2gQ zcITLEc8nX?t(_a85xsuu#>yAZ9%#(JMRs#F!M{Ny3zuL#&2M?fjSRXc8N~mb50tX<%W+-_Xfl5DwJr{dyRLB z9xHHsoc@s<8+APq%Z@X?omuev`{OOVffDP}F8IU7m2C-9D7njz?bj9bd@hg) zsZ}D#CPA1zM})G1Yrkt{lXwGNJ{=vz-1b7Mt(c3tz1iCkt86vX$&=?7Jnrhf{+0jt zTOZyzDLU(vJGUK-zyhVa*Bg^$aqECam_v*r87XyBxHXn}cW0{F-)gbkyYm8P6r-Zx zd6rLclUVp4=Gmxkf*d&fC-2;or8@70>70FOZd&1i)aF+|`}2c;mzKXOH8T>&;JxvF zSsL5^ZyJL`y>fItF$jvC2G22Q&;6n)wx{Je`-8O5sh~m~sCCNxi}52q!wdcjuDrN9 z8y?M4WF>*c1|67ut?z|T0Is<|vqxK0-KgYDW)h~hbY|;H@51(rgV95bc9K`ze!RYI zu{F`PaxwpGpWEp~A8{p_|6E>d{b8QKKOt56H?0OLWeqzkf15)4pIRQGxQekIre=I% ze&k8A+HH2#c*&~PSC+F z-i4)Xny*IL_);P_fgdogfzPz z@4383ts-b91CyPYSu=3Ybb&){C=1g^)VHcJnY#tl`Xq0K4}L{yoq6Y`OGiKiMgy|| zVV0!rKcf}1pn}&WhAJ%F$Xdk^VGyQs_)gyV`1#+3PC9V)jgx)oMbk9Xu#|NY$K962 z&%z>J^5aFgrGItwnriwx<&Ly=qh(B9ovbf<=U6hwA4lHA_J}%JRN;9|KI{nmZsBgq#g3UTMlAqXM~Cmhx2G0Ylz zmSpmmPLu>F%&k)a?=~K`J!#a@or*@TuPd;@+%5ECoB!or*jMC+%{kt+Ldx|fou8yY?zuh<%sY04LS`j2hjFzj6={`{AE&dVwwL)x8 z(<)Bp;cr$)RH;po=Sc&v5HS8Sk|Vm<$d5@j8cV+mkU!7=P*A2JMqz5|SY%eb!@(c4 z8HVkL@jTOjg~u=8WIQV&v;2FW|B=gU^@KtPA?HS|R&VvT*1ZW4yEROlQtT~U5**5| z-6MxReKqxWUEj}^C9(S=33SwUObK|aH@N&2bd*Gmir7E(7&Mc!wY(1X+8)!^2+fH6 zut+kQs$#AEWFbSvS|Dmv+%wM5F@VrBEWUyn{+&=Gq&f0~D3*rV&x%BlAcm0RFqpvO zCUNAg==5$$WT_YFHmza>IbrPMSdV~1BQ4pmbpJrqU(#6u?)DJbkg!Yw+X_<9Hgv!x zznrg~uxAl#!N>IFHlK`*&vzws`0Q+4+66{}n-*Jw(Npu&I614IL?NEZKGnragc*B( z4~_@j@>S{b?j#(Va~3O)h0Q6GfyjX=%7KYOE}LNfE6{8km=-~2-Vr^XORQUw-`kso z7wD(TZXeQdF1!WTmous9G`Td7CK#MQ)E;>$+&+x`As_M`RIB3FijnsVhdsO3inBbj zyCHk9G=R{~1j=g^ulD!l{v!%w=PwpGnI_@U#5j7ZQW;`6=+GPtcht+vxGn9^?i=5= z1!`2-_R8f3CJo3aVGhloW{W~IE91td8}J3S7S5yCkw* zz2a0ntl^4`iZo0!WIZ52x0ku4gXi{MI~lFbzVv38amd^2kzTITm}RldS_j)MJlIAm zLA&6iRm^%lv){YPnY%Eonh;Ds@2-ALUbX@|Wt?4O$ig*qr-xa}ueXG*icZ~n=0D@< z&qN)``18~@+PuOeeIFRA_Fgc%`*EGk87(dhw|#WVek5>$y%R#Gz<2X!7#yD zo(!E8Yi{b^qY*B!57wgA-e-HWJ|-6y4dd6zc^GcX-dMzgVwk^YwaD_qW4g&Efk_gz zLPzRzfwD24O`&;ATQ#k+F)5t3{|o*C0sSSwm@;or(3>)c5|IfEHWgGH zn~FB!&=$FJTq;;UJ{4`kIh>I@kgB#sMeH$eM^>Q!pwJa=;f<-F>4a3YS)D0)0vS&i zi|riaaTA$8shwlzxUM@B8)CZv`|nI_h|S+F zFt#CfTtV+}ojEKF<_-&^_%>Y(XL5cR)LbY&O{Pda7B*fedvv1(VU%%lRo&(!Qg-rO zsIpK^>J!jk?qF;e&E)k+_2q=GWsicsJ_*adoTyI^b$vR>`i#bPC^(PDh~?gbR1IHA zf9Y*P5&L_nOD`1D9;*Bua*E7XA<7HQwsXa zdDPYNOc)PUH}H!vD1Sm-o!;=C#+_R`+}Gk!lhvn|V7vi`;%RaeEN7 PZcl~+Q}F)-#XS{q7M<(C diff --git a/scripting/include/hats/editor.sp b/scripting/include/hats/editor.sp index 1fdc7f0..695cca0 100644 --- a/scripting/include/hats/editor.sp +++ b/scripting/include/hats/editor.sp @@ -7,8 +7,8 @@ int GLOW_GREEN[4] = { 3, 252, 53 }; float ORIGIN_SIZE[3] = { 2.0, 2.0, 2.0 }; char ON_OFF_STRING[2][] = { - "\x05ON\x01", - "\x05OFF\x01" + "\x05OFF\x01", + "\x05ON\x01" } char COLOR_INDEX[4] = "RGBA"; @@ -48,13 +48,33 @@ enum CompleteType { Complete_EditSuccess } +enum StackerDirection { + Stack_Off, + Stack_Left, + Stack_Right, + Stack_Forward, + Stack_Backward, + Stack_Up, + Stack_Down +} + +char STACK_DIRECTION_NAME[7][] = { + "\x05OFF", + "\x04Left", + "\x04Right", + "\x04Forward", + "\x04Backward", + "\x04Up", + "\x04Down", +} ArrayList createdWalls; enum struct EditorData { int client; - char classname[32]; + char classname[64]; char data[32]; + char name[32]; float origin[3]; float angles[3]; @@ -73,6 +93,7 @@ enum struct EditorData { int entity; bool hasCollision; /// possibly merge into .flags bool hasCollisionRotate; //^ + StackerDirection stackerDirection; editMode mode; buildType buildType; @@ -83,15 +104,16 @@ enum struct EditorData { if(this.entity != INVALID_ENT_REFERENCE && this.flags & Edit_Preview && IsValidEntity(this.entity)) { RemoveEntity(this.entity); } + this.stackerDirection = Stack_Off; this.entity = INVALID_ENT_REFERENCE; this.data[0] = '\0'; + this.name[0] = '\0'; this.size[0] = this.size[1] = this.size[2] = 5.0; this.angles[0] = this.angles[1] = this.angles[2] = 0.0; this.colorIndex = 0; this.axis = 1; this.moveDistance = 200.0; this.flags = Edit_None; - this.buildType = Build_Solid; this.classname[0] = '\0'; this.CalculateMins(); this.SetMode(INACTIVE); @@ -102,6 +124,7 @@ enum struct EditorData { this.snapAngle = 30; this.hasCollision = true; this.hasCollisionRotate = false; + this.buildType = Build_Solid; } } @@ -152,6 +175,9 @@ enum struct EditorData { void SetData(const char[] data) { strcopy(this.data, sizeof(this.data), data); } + void SetName(const char[] name) { + strcopy(this.name, sizeof(this.name), name); + } void CycleMode() { // Remove frozen state when cycling @@ -184,6 +210,16 @@ enum struct EditorData { PrintToChat(this.client, "\x04[Editor]\x01 Mode: \x05%s\x01 (Press \x04RELOAD\x01 to change)", MODE_NAME[this.mode]); } + void CycleStacker(float tick) { + if(tick - cmdThrottle[this.client] <= 0.20) return; + int newDirection = view_as(this.stackerDirection) + 1; + if(newDirection == view_as(Stack_Down)) newDirection = 0; + this.stackerDirection = view_as(newDirection); + + PrintToChat(this.client, "\x04[Editor]\x01 Stacker: %s\x01", STACK_DIRECTION_NAME[this.stackerDirection]); + cmdThrottle[this.client] = tick; + } + void ToggleCollision(float tick) { if(tick - cmdThrottle[this.client] <= 0.25) return; this.hasCollision = !this.hasCollision @@ -192,14 +228,14 @@ enum struct EditorData { } void ToggleCollisionRotate(float tick) { - if(tick - cmdThrottle[this.client] <= 0.25) return; + if(tick - cmdThrottle[this.client] <= 0.20) return; this.hasCollisionRotate = !this.hasCollisionRotate PrintToChat(this.client, "\x04[Editor]\x01 Rotate with Collision: %s", ON_OFF_STRING[view_as(this.hasCollisionRotate)]); cmdThrottle[this.client] = tick; } void CycleAxis(float tick) { - if(tick - cmdThrottle[this.client] <= 0.15) return; + if(tick - cmdThrottle[this.client] <= 0.1) return; if(this.axis == 0) { this.axis = 1; PrintToChat(this.client, "\x04[Editor]\x01 Rotate Axis: \x05HEADING (Y)\x01"); @@ -214,7 +250,7 @@ enum struct EditorData { } void CycleSnapAngle(float tick) { - if(tick - cmdThrottle[this.client] <= 0.15) return; + if(tick - cmdThrottle[this.client] <= 0.1) return; switch(this.snapAngle) { case 1: this.snapAngle = 15; case 15: this.snapAngle = 30; @@ -352,15 +388,62 @@ enum struct EditorData { return true; } + bool _FinishPreview(int& entity) { + if(StrContains(this.classname, "weapon") > -1) { + entity = this._CreateWeapon(); + } else { + entity = this._CreateProp(); + } + + DispatchKeyValue(entity, "targetname", "propspawner_prop"); + TeleportEntity(entity, this.origin, this.angles, NULL_VECTOR); + if(!DispatchSpawn(entity)) { + return false; + } + SetEntityRenderColor(entity, this.color[0], this.color[1], this.color[2], this.color[3]); + SetEntityRenderColor(this.entity, 255, 128, 255, 200); // reset ghost color + GlowEntity(entity, 1.1); + + // Confusing when we resume into freelook, so reset + if(this.mode == FREELOOK) + this.SetMode(MOVE_ORIGIN); + + // Add to spawn list and add to recent list + AddSpawnedItem(entity, this.client); + char model[128]; + GetEntPropString(entity, Prop_Data, "m_ModelName", model, sizeof(model)); + AddRecent(model, this.name); + + // Get the new position for preview with regards to this.stackerDirection + if(this.stackerDirection != Stack_Off) { + float size[3]; + GetEntityDimensions(this.entity, size); + float sign = 1.0; + if(this.stackerDirection == Stack_Left || this.stackerDirection == Stack_Right) { + if(this.stackerDirection == Stack_Left) sign = -1.0; + GetSidePositionFromOrigin(this.origin, this.angles, sign * size[1] * 0.90, this.origin); + } else if(this.stackerDirection == Stack_Forward || this.stackerDirection == Stack_Backward) { + if(this.stackerDirection == Stack_Backward) sign = -1.0; + GetHorizontalPositionFromOrigin(this.origin, this.angles, sign * size[0] * 0.90, this.origin); + } else { + if(this.stackerDirection == Stack_Down) sign = -1.0; + this.origin[2] += (size[2] * sign); + } + } + + // Don't kill preview until cancel + return true; + } + int _CreateWeapon() { int entity = -1; - if(StrEqual(this.classname, "weapon_melee")) { - entity = CreateEntityByName("weapon_melee_spawn"); + entity = CreateEntityByName(this.classname); + if(entity == -1) return -1; + if(StrEqual(this.classname, "weapon_melee_spawn")) { DispatchKeyValue(entity, "melee_weapon", this.data); - } else { - entity = CreateEntityByName(this.classname); - DispatchKeyValue(entity, "spawnflags", "8"); } + DispatchKeyValue(entity, "count", "1"); + DispatchKeyValue(entity, "spawnflags", "10"); return entity; } @@ -384,34 +467,6 @@ enum struct EditorData { return entity; } - bool _FinishPreview(int& entity) { - if(StrContains(this.classname, "weapon") > -1) { - entity = this._CreateWeapon(); - } else { - entity = this._CreateProp(); - } - - DispatchKeyValue(entity, "targetname", "propspawner_prop"); - TeleportEntity(entity, this.origin, this.angles, NULL_VECTOR); - if(!DispatchSpawn(entity)) { - return false; - } - SetEntityRenderColor(entity, this.color[0], this.color[1], this.color[2], this.color[3]); - SetEntityRenderColor(this.entity, 255, 128, 255, 200); // reset ghost color - GlowEntity(entity, 1.4); - - if(this.mode == FREELOOK) - this.SetMode(MOVE_ORIGIN); - - AddSpawnedItem(entity, this.client); - char model[128]; - GetEntPropString(entity, Prop_Data, "m_ModelName", model, sizeof(model)); - AddRecent(model, this.data); - - // Don't kill preview until cancel - return true; - } - // Turns current entity into a copy (not for walls) int Copy() { if(this.entity == INVALID_ENT_REFERENCE) return -1; @@ -430,6 +485,9 @@ enum struct EditorData { DispatchKeyValue(entity, "solid", "6"); DispatchSpawn(entity); + if(StrEqual(this.classname, "prop_wall_breakable")) { + DispatchKeyValue(entity, "classname", "prop_door_rotating"); + } TeleportEntity(entity, this.origin, this.angles, NULL_VECTOR); this.entity = entity; this.flags |= Edit_Copy; @@ -442,26 +500,26 @@ enum struct EditorData { this.flags |= Edit_WallCreator; } - bool PreviewWeapon(const char[] classname) { + bool PreviewWeapon(const char[] classname, const char[] data) { int entity; // Melee weapons don't have weapon_ prefix this.Reset(); - // TODO: prevent use of preview _spawn - if(StrContains(classname, "weapon_") == -1) { + // Rotate on it's side: + this.angles[2] = 90.0; + if(StrEqual(classname, "weapon_melee_spawn")) { // no weapon_ prefix, its a melee - PrintToServer("Spawning weapon_melee: %s", classname); - entity = CreateEntityByName("weapon_melee"); - if(entity == -1) return false; - DispatchKeyValue(entity, "melee_weapon", classname); - strcopy(this.classname, sizeof(this.classname), "weapon_melee"); - this.SetData(classname); - } else { - PrintToServer("Spawning normal weapon: %s", classname); entity = CreateEntityByName(classname); if(entity == -1) return false; - DispatchKeyValue(entity, "spawnflags", "8"); - Format(this.classname, sizeof(this.classname), "%s_spawn", classname); + DispatchKeyValue(entity, "melee_weapon", data); + this.SetData(data); + strcopy(this.classname, sizeof(this.classname), classname); + } else { + entity = CreateEntityByName(data); + if(entity == -1) return false; + strcopy(this.classname, sizeof(this.classname), data); } + DispatchKeyValue(entity, "count", "1"); + DispatchKeyValue(entity, "spawnflags", "10"); DispatchKeyValue(entity, "targetname", "prop_preview"); DispatchKeyValue(entity, "rendercolor", "255 128 255"); DispatchKeyValue(entity, "renderamt", "200"); @@ -481,9 +539,11 @@ enum struct EditorData { bool PreviewModel(const char[] model, const char[] classname = "") { // Check for an invalid model // this.origin is not cleared by this.Reset(); + this.Reset(); GetClientAbsOrigin(this.client, this.origin); - if(StrEqual(classname, "_weapon") || StrEqual(classname, "_melee")) { - return this.PreviewWeapon(model); + if(StrEqual(classname, "_weapon") || StrEqual(classname, "weapon_melee_spawn")) { + // Pass in melee ID as data: + return this.PreviewWeapon(classname, model); } if(PrecacheModel(model) == 0) { PrintToServer("Invalid model: %s", model); @@ -549,7 +609,6 @@ enum struct EditorData { CPrintToChat(this.client, "\x04[Editor]\x01 Cancelled."); } } - EditorData Editor[MAXPLAYERS+1]; Action OnWallClicked(int entity, int activator, int caller, UseType type, float value) { @@ -751,7 +810,7 @@ Action Command_Editor(int client, int args) { int index = GetLookingEntity(client, Filter_ValidHats); //GetClientAimTarget(client, false); if(index > 0) { Editor[client].Import(index, false, MOVE_ORIGIN); - char classname[32]; + char classname[64]; char targetname[32]; GetEntityClassname(index, classname, sizeof(classname)); GetEntPropString(index, Prop_Data, "m_target", targetname, sizeof(targetname)); diff --git a/scripting/include/hats/hats.sp b/scripting/include/hats/hats.sp index 796aa85..a550a9d 100644 --- a/scripting/include/hats/hats.sp +++ b/scripting/include/hats/hats.sp @@ -27,15 +27,6 @@ enum struct HatInstance { bool rainbowReverse; char attachPoint[32]; } -enum struct PlayerHatData { - char activePresetName[32]; - int lastRequestTime; - - void Reset() { - this.activePresetName[0] = '\0'; - this.lastRequestTime = 0; - } -} enum hatFeatures { HatConfig_None = 0, HatConfig_PlayerHats = 1, @@ -48,8 +39,7 @@ enum hatFeatures { HatConfig_DeleteThrownHats = 128 } char ActivePreset[MAXPLAYERS+1][32]; -int lastHatrequestTime[MAXPLAYERS+1]; -PlayerHatData g_hatData[MAXPLAYERS+1]; +int lastHatRequestTime[MAXPLAYERS+1]; HatInstance hatData[MAXPLAYERS+1]; StringMap g_HatPresets; @@ -84,25 +74,13 @@ static char REVERSE_CLASSNAMES[MAX_REVERSE_CLASSNAMES][] = { "func_movelinear" }; -Action Command_Hat(int client, int args) { - static char cmdName[8]; - GetCmdArg(0, cmdName, sizeof(cmdName)); - AdminId adminId = GetUserAdmin(client); - bool isForced = adminId != INVALID_ADMIN_ID && StrEqual(cmdName, "sm_hatf"); - +Action Command_DoAHat(int client, int args) { int hatter = GetHatter(client); if(hatter > 0) { ClearHat(hatter, HasFlag(hatter, HAT_REVERSED)); PrintToChat(hatter, "[Hats] %N has unhatted themselves", client); return Plugin_Handled; } - // if(g_Hat[client].Ha) -} - -Action Command_DoAHat(int client, int args) { - if(UnhatSelf(client)) { - return Plugin_Handled; - } static char cmdName[8]; GetCmdArg(0, cmdName, sizeof(cmdName)); @@ -391,7 +369,7 @@ Action Command_DoAHat(int client, int args) { PrintToConsole(client, "[Hats] Selected a child entity, selecting parent (child %d -> parent %d)", entity, parent); entity = parent; } else if(entity <= MaxClients) { // Checks for hatting a player entity - if(IsFakeClient(entity) && L4D_GetIdlePlayerOfBot(entity) != -1) { + if(IsFakeClient(entity) && L4D_GetIdlePlayerOfBot(entity) > 0) { PrintToChat(client, "[Hats] Cannot hat idle bots"); return Plugin_Handled; } else if(GetClientTeam(entity) != 2 && ~cvar_sm_hats_flags.IntValue & view_as(HatConfig_InfectedHats)) { @@ -407,7 +385,7 @@ Action Command_DoAHat(int client, int args) { } else if(!IsPlayerAlive(entity) || GetEntProp(entity, Prop_Send, "m_isHangingFromLedge") || L4D_IsPlayerCapped(entity)) { PrintToChat(client, "[Hats] Player is either dead, hanging, or in the process of dying."); return Plugin_Handled; - } else if(EntRefToEntIndex(hatData[entity].entity) == client) { + } else if(EntRefToEntIndex(hatData[entity].entity) == entity || EntRefToEntIndex(hatData[entity].entity) == client) { PrintToChat(client, "[Hats] Woah you can't be making a black hole, jesus be careful."); return Plugin_Handled; } else if(~cvar_sm_hats_flags.IntValue & view_as(HatConfig_PlayerHats)) { @@ -539,7 +517,10 @@ int HatConsentHandler(Menu menu, MenuAction action, int target, int param2) { ReplyToCommand(target, "Player has disconnected"); return 0; } else if(hatAction == 1) { - EquipHat(activator, target, "player", 0); + if(EntRefToEntIndex(hatData[target].entity) == activator ) + PrintToChat(activator, "[Hats] Woah you can't be making a black hole, jesus be careful."); + else + EquipHat(activator, target, "player", 0); } else { ClientCommand(activator, "play player/orch_hit_csharp_short.wav"); PrintHintText(activator, "%N refused your request", target); diff --git a/scripting/include/hats/props/base.sp b/scripting/include/hats/props/base.sp index 01a23de..df769dd 100644 --- a/scripting/include/hats/props/base.sp +++ b/scripting/include/hats/props/base.sp @@ -15,40 +15,84 @@ enum ChatPrompt { Prompt_Save } enum struct PlayerPropData { - ArrayList listBuffer; + ArrayList categoryStack; + ArrayList itemBuffer; bool clearListBuffer; int lastCategoryIndex; int lastItemIndex; // When did the user last interact with prop spawner? (Shows hints after long inactivity) int lastActiveTime; - char classnameOverride[32]; + char classnameOverride[64]; ChatPrompt chatPrompt; ArrayList markedProps; // Called on PlayerDisconnect void Reset() { - if(this.listBuffer != null) delete this.listBuffer; if(this.markedProps != null) delete this.markedProps; this.chatPrompt = Prompt_None; this.clearListBuffer = false; this.lastCategoryIndex = 0; this.lastItemIndex = 0; - this.lastShowedHint = 0; + this.lastActiveTime = 0; this.classnameOverride[0] = '\0'; + this.CleanupBuffers(); } // Sets the list buffer - void SetList(ArrayList list, bool cleanupAfterUse = false) { - this.listBuffer = list; + void SetItemBuffer(ArrayList list, bool cleanupAfterUse = false) { + // Cleanup previous buffer if exist + this.itemBuffer = list; this.clearListBuffer = cleanupAfterUse; } + void ClearItemBuffer() { + if(this.itemBuffer != null && this.clearListBuffer) { + PrintToServer("ClearItemBuffer(): arraylist deleted."); + delete this.itemBuffer; + } + this.clearListBuffer = false; + } + + void PushCategory(CategoryData category) { + if(this.categoryStack == null) this.categoryStack = new ArrayList(sizeof(CategoryData)); + this.categoryStack.PushArray(category); + } + + bool PopCategory(CategoryData data) { + if(this.categoryStack == null || this.categoryStack.Length == 0) return false; + int index = this.categoryStack.Length - 1; + this.categoryStack.GetArray(index, data); + this.categoryStack.Erase(index); + return true; + } + bool PeekCategory(CategoryData data) { + if(this.categoryStack == null || this.categoryStack.Length == 0) return false; + int index = this.categoryStack.Length - 1; + this.categoryStack.GetArray(index, data); + return true; + } + + void GetCategoryTitle(char[] title, int maxlen) { + CategoryData cat; + for(int i = 0; i < this.categoryStack.Length; i++) { + this.categoryStack.GetArray(i, cat); + if(i == 0) + Format(title, maxlen, "%s", cat.name); + else + Format(title, maxlen, "%s>[%s]", title, cat.name); + } + } + + bool HasCategories() { + return this.categoryStack != null && this.categoryStack.Length > 0; + } // Is currently only called on item/category handler cancel (to clear search/recents buffer) - void CleanupBuffer() { - if(this.listBuffer != null && this.clearListBuffer) { - delete this.listBuffer; - this.clearListBuffer = false; + void CleanupBuffers() { + this.ClearItemBuffer(); + if(this.categoryStack != null) { + delete this.categoryStack; } + this.clearListBuffer = false; } } PlayerPropData g_PropData[MAXPLAYERS+1]; @@ -57,7 +101,7 @@ enum struct CategoryData { // The display name of category char name[64]; // If set, overwrites the classname it is spawned as - char classnameOverride[32]; + char classnameOverride[64]; bool hasItems; // true: items is ArrayList, false: items is ArrayList ArrayList items; } @@ -137,12 +181,12 @@ enum struct RecentEntry { char name[64]; int count; } - -ArrayList g_categories; // ArrayList +CategoryData ROOT_CATEGORY; ArrayList g_spawnedItems; // ArrayList(block=2) ArrayList g_savedItems; // ArrayList StringMap g_recentItems; // Key: model[128], value: RecentEntry +#include #include #include #include diff --git a/scripting/include/hats/props/cmd.sp b/scripting/include/hats/props/cmd.sp index d75bf58..76ae1d5 100644 --- a/scripting/include/hats/props/cmd.sp +++ b/scripting/include/hats/props/cmd.sp @@ -9,7 +9,9 @@ Action Command_Props(int client, int args) { PrintToConsole(client, "edit "); PrintToConsole(client, "del "); PrintToConsole(client, "add "); + PrintToConsole(client, "favorite - favorites active editor entity"); PrintToConsole(client, "controls - list all the controls"); + PrintToConsole(client, "reload - reload prop list"); } else if(StrEqual(arg, "list")) { char arg2[16]; GetCmdArg(2, arg2, sizeof(arg2)); @@ -20,7 +22,6 @@ Action Command_Props(int client, int args) { PrintToChat(client, "\x04[Editor]\x01 Please specify: \x05classname, index, owner. "); return Plugin_Handled; } - int userid = GetClientUserId(client); float pos[3], propPos[3], dist; GetAbsOrigin(client, pos); for(int i = 0; i < g_spawnedItems.Length; i++) { @@ -94,8 +95,22 @@ Action Command_Props(int client, int args) { } else { PrintToChat(client, "\x04[Editor]\x01 Invalid index, out of bounds. Enter a value between [0, %d]", g_spawnedItems.Length - 1); } - } else if(StrEqual("controls")) { + } else if(StrEqual(arg, "controls")) { PrintToChat(client, "View controls at https://admin.jackz.me/docs/props"); + } else if(StrEqual(arg, "favorite")) { + if(g_db == null) { + PrintToChat(client, "\x04[Editor]\x01 Cannot connect to database."); + } else if(Editor[client].IsActive()) { + char model[128]; + GetEntPropString(Editor[client].entity, Prop_Data, "m_ModelName", model, sizeof(model)); + ToggleFavorite(client, model, Editor[client].data); + } else { + PrintToChat(client, "\x04[Editor]\x01 Edit a prop to use this command."); + } + } else if(StrEqual(arg, "reload")) { + PrintHintText(client, "Reloading categories..."); + UnloadCategories(); + LoadCategories(); } else { PrintToChat(client, "\x05Not implemented"); } diff --git a/scripting/include/hats/props/db.sp b/scripting/include/hats/props/db.sp new file mode 100644 index 0000000..37af63e --- /dev/null +++ b/scripting/include/hats/props/db.sp @@ -0,0 +1,125 @@ +#define DATABASE_CONFIG_NAME "hats_editor" +Database g_db; + +bool ConnectDB() { + char error[255]; + Database db = SQL_Connect(DATABASE_CONFIG_NAME, true, error, sizeof(error)); + if (db == null) { + LogError("Database error %s", error); + return false; + } else { + PrintToServer("l4d2_hats: Connected to database %s", DATABASE_CONFIG_NAME); + db.SetCharset("utf8mb4"); + g_db = db; + return true; + } +} + +void DB_GetFavoritesCallback(Database db, DBResultSet results, const char[] error, int userid) { + if(results == null) { + PrintToServer("l4d2_hats: DB_GetFavoritesCallback returned error: \"%s\"", error); + } + int client = GetClientOfUserId(userid); + if(client > 0) { + if(results == null) { + PrintToChat(client, "\x04[Editor]\x01 Error occurred fetching favorites"); + return; + } + ArrayList list = new ArrayList(sizeof(ItemData)); + ItemData item; + while(results.FetchRow()) { + results.FetchString(0, item.model, sizeof(item.model)); + DBResult result; + results.FetchString(1, item.name, sizeof(item.name), result); + if(result == DBVal_Null) { + // No name set - use the end part of the model + int index = FindCharInString(item.model, '/', true); + strcopy(item.name, sizeof(item.name), item.model[index + 1]); + } + } + ShowTempItemMenu(client, list, "Favorites"); + } +} + +void DB_ToggleFavoriteCallback(Database db, DBResultSet results, const char[] error, DataPack pack) { + if(results == null) { + PrintToServer("l4d2_hats: DB_GetFavoriteCallback returned error: \"%s\"", error); + } + pack.Reset(); + int userid = pack.ReadCell(); + int client = GetClientOfUserId(userid); + if(client > 0) { + if(results == null) { + PrintToChat(client, "\x04[Editor]\x01 Error occurred fetching favorite data"); + delete pack; + return; + } + char query[256]; + char model[128]; + char steamid[32]; + GetClientAuthId(client, AuthId_Steam2, steamid, sizeof(steamid)); + pack.ReadString(model, sizeof(model)); + if(results.FetchRow()) { + // Model was favorited, erase it + g_db.Format(query, sizeof(query), "DELETE FROM editor_favorites WHERE steamid = '%s' AND model = '%s'", steamid, model); + g_db.Query(DB_DeleteFavoriteCallback, query, userid); + } else { + // Model is not favorited, save it. + char name[64]; + pack.ReadString(name, sizeof(name)); + // TODO: calculate next position automatically + int position = 0; + g_db.Format(query, sizeof(query), + "INSERT INTO editor_favorites (steamid, model, name, position) VALUES ('%s', '%s', '%s', %d)", + steamid, model, name, position + ); + g_db.Query(DB_InsertFavoriteCallback, query, pack); + } + } else { + // Only delete if we lost client - otherwise we will reuse it + delete pack; + } +} + +void DB_DeleteFavoriteCallback(Database db, DBResultSet results, const char[] error, DataPack pack) { + if(results == null) { + PrintToServer("l4d2_hats: DB_DeleteFavoriteCallback returned error: \"%s\"", error); + } + pack.Reset(); + char model[128]; + char name[64]; + int client = GetClientOfUserId(pack.ReadCell()); + if(client > 0) { + if(results == null) { + PrintToChat(client, "\x04[Editor]\x01 Could not delete favorite"); + delete pack; + return; + } + pack.ReadString(model, sizeof(model)); + pack.ReadString(name, sizeof(name)); + int index = FindCharInString(model, '/', true); + PrintToChat(client, "\x04[Editor]\x01 Removed favorite: \"%s\" \x05(%s)", model[index], name); + } + delete pack; +} +void DB_InsertFavoriteCallback(Database db, DBResultSet results, const char[] error, DataPack pack) { + if(results == null) { + PrintToServer("l4d2_hats: DB_InsertFavoriteCallback returned error: \"%s\"", error); + } + pack.Reset(); + char model[128]; + char name[64]; + int client = GetClientOfUserId(pack.ReadCell()); + if(client > 0) { + if(results == null) { + PrintToChat(client, "\x04[Editor]\x01 Could not add favorite"); + delete pack; + return; + } + pack.ReadString(model, sizeof(model)); + pack.ReadString(name, sizeof(name)); + int index = FindCharInString(model, '/', true); + PrintToChat(client, "\x04[Editor]\x01 Added favorite: \"%s\" \x05(%s)", model[index], name); + } + delete pack; +} \ No newline at end of file diff --git a/scripting/include/hats/props/menu_handlers.sp b/scripting/include/hats/props/menu_handlers.sp index 97cda91..032ab31 100644 --- a/scripting/include/hats/props/menu_handlers.sp +++ b/scripting/include/hats/props/menu_handlers.sp @@ -45,7 +45,7 @@ int Spawn_RootHandler(Menu menu, MenuAction action, int client, int param2) { case 'f': Spawn_ShowFavorites(client); case 'r': Spawn_ShowRecents(client); case 's': Spawn_ShowSearch(client); - case 'n': ShowCategoryList(client); + case 'n': ShowCategoryList(client, ROOT_CATEGORY); } // TODO: handle back (to top menu) } else if (action == MenuAction_Cancel) { @@ -94,22 +94,6 @@ void AdminMenu_SaveLoad(TopMenu topmenu, TopMenuAction action, TopMenuObject obj } } -int SpawnCategoryHandler(Menu menu, MenuAction action, int client, int param2) { - if (action == MenuAction_Select) { - char info[8]; - menu.GetItem(param2, info, sizeof(info)); - int index = StringToInt(info); - // Use g_categories, but if this is nested, then when a nested is selected, we need to use that list - ShowItemMenu(client, index); - } else if (action == MenuAction_Cancel) { - if(param2 == MenuCancel_ExitBack) { - ShowSpawnRoot(client); - } - } else if (action == MenuAction_End) - delete menu; - return 0; -} - int SaveLoadHandler(Menu menu, MenuAction action, int client, int param2) { if (action == MenuAction_Select) { char saveName[64]; @@ -124,9 +108,13 @@ int SaveLoadHandler(Menu menu, MenuAction action, int client, int param2) { } } else if(LoadSave(saveName, true)) { strcopy(g_pendingSaveName, sizeof(g_pendingSaveName), saveName); - g_pendingSaveClient = client; - PrintToChat(client, "\x04[Editor]\x01 Previewing save \x05%s", saveName); - PrintToChat(client, "\x04[Editor]\x01 Press \x05Shift + Middle Mouse\x01 to spawn, \x05Middle Mouse\x01 to cancel"); + if(g_pendingSaveClient != 0 && g_pendingSaveClient != client) { + PrintToChat(client, "\x04[Editor]\x01 Another user is currently loading a save."); + } else { + g_pendingSaveClient = client; + PrintToChat(client, "\x04[Editor]\x01 Previewing save \x05%s", saveName); + PrintToChat(client, "\x04[Editor]\x01 Press \x05Shift + Middle Mouse\x01 to spawn, \x05Middle Mouse\x01 to cancel"); + } } else { PrintToChat(client, "\x04[Editor]\x01 Could not load save file."); } @@ -158,7 +146,7 @@ int DeleteHandler(Menu menu, MenuAction action, int client, int param2) { EndDeleteTool(client, false); } else { g_PropData[client].markedProps = new ArrayList(); - PrintToChat(client, "\x04[Editor]\x01 Delete tool active. Press \x05E (Interact)\x01 to mark props."); + PrintToChat(client, "\x04[Editor]\x01 Delete tool active. Press \x05Left Mouse\x01 to mark props, \x05Right Mouse\x01 to undo. SHIFT+USE to spawn, CTRL+USE to cancel"); } ShowDeleteList(client); } else { @@ -182,6 +170,47 @@ int DeleteHandler(Menu menu, MenuAction action, int client, int param2) { return 0; } +int SpawnCategoryHandler(Menu menu, MenuAction action, int client, int param2) { + if (action == MenuAction_Select) { + char info[8]; + menu.GetItem(param2, info, sizeof(info)); + int index = StringToInt(info); + // Reset item index when selecting new category + if(g_PropData[client].lastCategoryIndex != index) { + g_PropData[client].lastCategoryIndex = index; + g_PropData[client].lastItemIndex = 0; + } + CategoryData category; + g_PropData[client].PeekCategory(category); // Just need to get the category.items[index], don't want to pop + category.items.GetArray(index, category); + if(category.items == null) { + LogError("Category %s has null items array (index=%d)", category.name, index); + } else if(category.hasItems) { + ShowCategoryItemMenu(client, category); + } else { + // Reset the category index for nested + g_PropData[client].lastCategoryIndex = 0; + // Make the list now be the selected category's list. + ShowCategoryList(client, category); + } + } else if (action == MenuAction_Cancel) { + if(param2 == MenuCancel_ExitBack) { + CategoryData category; + // Double pop + if(g_PropData[client].PopCategory(category) && g_PropData[client].PopCategory(category)) { + // Use the last category (go back one) + ShowCategoryList(client, category); + } else { + ShowSpawnRoot(client); + } + } else { + g_PropData[client].CleanupBuffers(); + } + } else if (action == MenuAction_End) + delete menu; + return 0; +} + int SpawnItemHandler(Menu menu, MenuAction action, int client, int param2) { if (action == MenuAction_Select) { char info[132]; @@ -192,21 +221,28 @@ int SpawnItemHandler(Menu menu, MenuAction action, int client, int param2) { nameIndex += SplitString(info[nameIndex], "|", model, sizeof(model)); g_PropData[client].lastItemIndex = StringToInt(index); if(Editor[client].PreviewModel(model, g_PropData[client].classnameOverride)) { - Editor[client].SetData(info[nameIndex]); + Editor[client].SetName(info[nameIndex]); PrintHintText(client, "%s\n%s", info[nameIndex], model); ShowHint(client); } else { PrintToChat(client, "\x04[Editor]\x01 Error spawning preview \x01(%s)", model); } - - ShowItemMenuAny(client, null); // Use last menu - // ShowItemMenu(client, g_PropData[client].lastCategoryIndex); + // Use same item menu again: + ShowItemMenu(client); } else if(action == MenuAction_Cancel) { + g_PropData[client].ClearItemBuffer(); if(param2 == MenuCancel_ExitBack) { - ShowCategoryList(client, g_PropData[client].listBuffer); + CategoryData category; + if(g_PropData[client].PopCategory(category)) { + // Use the last category (go back one) + ShowCategoryList(client, category); + } else { + // If there is no categories, it means we are in a temp menu (search / recents / favorites) + ShowSpawnRoot(client); + } + } else { + g_PropData[client].CleanupBuffers(); } - g_PropData[client].CleanupBuffer(); - } else if (action == MenuAction_End) { delete menu; } diff --git a/scripting/include/hats/props/menu_methods.sp b/scripting/include/hats/props/menu_methods.sp index c1e41ad..cdef072 100644 --- a/scripting/include/hats/props/menu_methods.sp +++ b/scripting/include/hats/props/menu_methods.sp @@ -12,33 +12,14 @@ void ShowSpawnRoot(int client) { menu.ExitButton = true; menu.Display(client, MENU_TIME_FOREVER); } - -void Spawn_ShowFavorites(int client) { - PrintToChat(client, "In development"); - return; - // Menu menu = new Menu(SpawnItemHandler); - // char model[128]; - // for(int i = 0; i <= g_spawnedItems.Length; i++) { - // int ref = g_spawnedItems.Get(i); - // if(IsValidEntity(ref)) { - // GetEntPropString(ref, Prop_Data, "m_ModelName", model, sizeof(model)); - // menu.AddItem(model, model); - // } - // } - // menu.ExitBackButton = true; - // menu.ExitButton = true; - // menu.Display(client, MENU_TIME_FOREVER); -} void Spawn_ShowRecents(int client) { - CReplyToCommand(client, "\x04[Editor] \x01Disabled due to crash issues :D"); - return; if(g_recentItems == null) LoadRecents(); ArrayList items = GetRecentsItemList(); if(items.Length == 0) { CReplyToCommand(client, "\x04[Editor] \x01No recent props spawned."); return; } - ShowItemMenuAny(client, items, "Recents", true); + ShowTempItemMenu(client, items, "Recents"); } void Spawn_ShowSearch(int client) { g_PropData[client].chatPrompt = Prompt_Search; @@ -91,23 +72,25 @@ void ShowEditList(int client, int index = 0) { // Add +2 to the index for the two "Delete ..." buttons menu.DisplayAt(client, index, MENU_TIME_FOREVER); } -void ShowCategoryList(int client, ArrayList categoryList = null) { +void ShowCategoryList(int client, CategoryData category) { LoadCategories(); - Menu menu = new Menu(SpawnCategoryHandler); - menu.SetTitle("Choose a category"); - CategoryData cat; char info[4]; // No category list provided, use the global one. - PrintToServer("ShowCategoryList (root = %b)", categoryList == null); - if(categoryList == null) { - categoryList = g_categories; - } - g_PropData[client].SetList(categoryList, false); - for(int i = 0; i < categoryList.Length; i++) { - categoryList.GetArray(i, cat); + g_PropData[client].PushCategory(category); + Menu menu = new Menu(SpawnCategoryHandler); + char title[32]; + g_PropData[client].GetCategoryTitle(title, sizeof(title)); + menu.SetTitle(title); + CategoryData cat; + for(int i = 0; i < category.items.Length; i++) { + category.items.GetArray(i, cat); Format(info, sizeof(info), "%d", i); - // TODO: maybe add > folder indicator - menu.AddItem(info, cat.name); + if(cat.hasItems) + menu.AddItem(info, cat.name); + else { + Format(title, sizeof(title), "[%s]", cat.name); + menu.AddItem(info, title); + } } menu.ExitBackButton = true; menu.ExitButton = true; @@ -115,14 +98,17 @@ void ShowCategoryList(int client, ArrayList categoryList = null) { int index = g_PropData[client].lastCategoryIndex / 7 * 7; menu.DisplayAt(client, index, MENU_TIME_FOREVER); } -void ShowItemMenuAny(int client, ArrayList items, const char[] title = "", bool clearArray = false, const char[] classnameOverride = "") { +void _showItemMenu(int client, ArrayList items, const char[] title = "", bool clearArray = false, const char[] classnameOverride = "") { if(items == null) { - items = g_PropData[client].listBuffer; + // Use previous list buffer + items = g_PropData[client].itemBuffer; if(items == null) { - LogError("Items is null and listBuffer is null as well"); + LogError("Previous list does not exist and no new list was provided ShowItemMenu(%N)", client); } } else { - g_PropData[client].SetList(items, clearArray); + // Populate the buffer with this list + g_PropData[client].SetItemBuffer(items, clearArray); + // Reset the index, so we start on the first item g_PropData[client].lastItemIndex = 0; strcopy(g_PropData[client].classnameOverride, 32, classnameOverride); } @@ -134,10 +120,10 @@ void ShowItemMenuAny(int client, ArrayList items, const char[] title = "", bool if(title[0] != '\0') itemMenu.SetTitle(title); ItemData item; - char info[128+64+8]; + char info[8+128+64]; //i[8] + item.model[128] + item.name[64] for(int i = 0; i < items.Length; i++) { items.GetArray(i, item); - // Sadly need to duplicate item.name. + // Sadly need to duplicate item.name, for recents to work Format(info, sizeof(info), "%d|%s|%s", i, item.model, item.name); itemMenu.AddItem(info, item.name); } @@ -147,28 +133,52 @@ void ShowItemMenuAny(int client, ArrayList items, const char[] title = "", bool int index = (g_PropData[client].lastItemIndex / 7) * 7; itemMenu.DisplayAt(client, index, MENU_TIME_FOREVER); } +/** + * Show a list of a category's items to spawn to the client + * + * @param client client to show menu to + * @param category the category to show items of + */ +void ShowCategoryItemMenu(int client, CategoryData category) { + char title[32]; + g_PropData[client].GetCategoryTitle(title, sizeof(title)); + Format(title, sizeof(title), "%s>%s", title, category.name); + _showItemMenu(client, category.items, title, false, category.classnameOverride); +} +/** + * Show a list of items to spawn to the client + * + * @param client client to show menu to + * @param items A list of ItemData. Optional, null to reuse last list + * @param title An optional title to show + * @param clearArray Should the items array be destroyed when menu is closed? + * @param classnameOverride Override the classname to spawn as + */ +void ShowItemMenu(int client, ArrayList items = null, const char[] title = "", const char[] classnameOverride = "") { + _showItemMenu(client, items, title, false, classnameOverride); +} +/** + * Show a list of items, deleting the arraylist on completion + * @param client client to show menu to + * @param items A list of ItemData + * @param title An optional title to show + * @param classnameOverride Override the classname to spawn as + */ +void ShowTempItemMenu(int client, ArrayList items, const char[] title = "", const char[] classnameOverride = "") { + if(items == null) { + LogError("ShowTempItemMenu: Given null item list"); + } + _showItemMenu(client, items, title, true, classnameOverride); +} -// Calls ShowItemMenuAny with the correct category automatically -bool ShowItemMenu(int client, int index) { - if(g_PropData[client].lastCategoryIndex != index) { - g_PropData[client].lastCategoryIndex = index; - g_PropData[client].lastItemIndex = 0; //Reset +void Spawn_ShowFavorites(int client) { + if(g_db == null) { + PrintToChat(client, "\x04[Editor]\x01 Cannot connect to database."); + return; } - CategoryData category; - // Use the list in the buffer - g_PropData[client].listBuffer.GetArray(index, category); - if(category.items == null) { - LogError("Category %s has null items array (index=%d)", category.name, index); - } else if(category.hasItems) { - PrintToServer("Selected category has item entries, showing item menu"); - ShowItemMenuAny(client, category.items, category.name, false, category.classnameOverride); - } else { - PrintToServer("Selected category has nested categories, showing"); - // Has nested categories - // Reset the category index for nested - g_PropData[client].lastCategoryIndex = 0; - g_PropData[client].SetList(category.items); - ShowCategoryList(client, g_PropData[client].listBuffer); - } - return true; + PrintCenterText(client, "Loading favorites...\nPlease wait"); + char query[256]; + GetClientAuthId(client, AuthId_Steam2, query, sizeof(query)); + g_db.Format(query, sizeof(query), "SELECT model, name FROM editor_favorites WHERE steamid = '%s' ORDER BY position DESC", query); + g_db.Query(DB_GetFavoritesCallback, query, GetClientUserId(client)); } \ No newline at end of file diff --git a/scripting/include/hats/props/methods.sp b/scripting/include/hats/props/methods.sp index b4e0ebf..333c161 100644 --- a/scripting/include/hats/props/methods.sp +++ b/scripting/include/hats/props/methods.sp @@ -37,8 +37,11 @@ bool LoadSave(const char[] save, bool asPreview = false) { if(data.type == Build_Physics) entity = CreateEntityByName("prop_physics"); else - entity = CreateEntityByName("prop_dynamic"); - if(entity == -1) continue; + entity = CreateEntityByName("prop_dynamic_override"); + if(entity == -1) { + PrintToServer("[Editor] LoadSave(\"%s\", %b): failed to create %s", save, asPreview, buffer); + continue; + } PrecacheModel(data.model); DispatchKeyValue(entity, "model", data.model); DispatchKeyValue(entity, "targetname", "saved_prop"); @@ -49,19 +52,19 @@ bool LoadSave(const char[] save, bool asPreview = false) { DispatchKeyValue(entity, "solid", data.type == Build_NonSolid ? "0" : "6"); } TeleportEntity(entity, data.origin, data.angles, NULL_VECTOR); - if(!DispatchSpawn(entity)) continue; + if(!DispatchSpawn(entity)) { + PrintToServer("[Editor] LoadSave(\"%s\", %b): failed to spawn %s", save, asPreview, buffer); + continue; + } int alpha = asPreview ? 200 : data.color[3]; SetEntityRenderColor(entity, data.color[0], data.color[1], data.color[2], alpha); if(asPreview) - g_savedItems.Push(EntIndexToEntRef(entity)); + g_previewItems.Push(EntIndexToEntRef(entity)); else AddSpawnedItem(entity); } delete file; - if(asPreview) { - delete g_previewItems; - } return true; } @@ -118,12 +121,12 @@ void UnloadSave() { } public void LoadCategories() { - if(g_categories != null) return; - g_categories = new ArrayList(sizeof(CategoryData)); + if(ROOT_CATEGORY.items != null) return; + ROOT_CATEGORY.items = new ArrayList(sizeof(CategoryData)); char path[PLATFORM_MAX_PATH]; BuildPath(Path_SM, path, sizeof(path), "data/prop_spawner/models"); - LoadFolder(g_categories, path); - g_categories.SortCustom(SortCategories); + LoadFolder(ROOT_CATEGORY.items, path); + ROOT_CATEGORY.items.SortCustom(SortCategories); } int SortCategories(int index1, int index2, ArrayList array, Handle hndl) { CategoryData cat1; @@ -133,9 +136,9 @@ int SortCategories(int index1, int index2, ArrayList array, Handle hndl) { return strcmp(cat1.name, cat2.name); } public void UnloadCategories() { - if(g_categories == null) return; - _UnloadCategories(g_categories); - delete g_categories; + if(ROOT_CATEGORY.items == null) return; + _UnloadCategories(ROOT_CATEGORY.items); + delete ROOT_CATEGORY.items; } void _UnloadCategories(ArrayList list) { CategoryData cat; @@ -164,7 +167,7 @@ void LoadFolder(ArrayList parent, const char[] rootPath) { // TODO: support subcategory if(buffer[0] == '.') continue; CategoryData data; - Format(data.name, sizeof(data.name), "%s>>", buffer); + Format(data.name, sizeof(data.name), "%s", buffer); data.items = new ArrayList(sizeof(CategoryData)); Format(buffer, sizeof(buffer), "%s/%s", rootPath, buffer); @@ -194,7 +197,7 @@ void LoadProps(ArrayList parent, const char[] filePath) { } ReplaceString(buffer, sizeof(buffer), "\n", ""); ReplaceString(buffer, sizeof(buffer), "\r", ""); - Format(category.name, sizeof(category.name), "%s>", buffer); + Format(category.name, sizeof(category.name), "%s", buffer); while(file.ReadLine(buffer, sizeof(buffer))) { if(buffer[0] == '#') continue; ReplaceString(buffer, sizeof(buffer), "\n", ""); @@ -246,7 +249,6 @@ bool SaveRecents() { return true; } bool LoadRecents() { - return false; if(g_recentItems != null) delete g_recentItems; char path[PLATFORM_MAX_PATH]; BuildPath(Path_SM, path, sizeof(path), "data/prop_spawner/recents_cache.csv"); @@ -335,7 +337,9 @@ void DoSearch(int client, const char[] query) { if(results.Length == 0) { CPrintToChat(client, "\x04[Editor]\x01 No results found. :("); } else { - ShowItemMenuAny(client, results, "", true); + char title[64]; + Format(title, sizeof(title), "Results for \"%s\"", query); + ShowTempItemMenu(client, results, title); } } // Gets the index of the spawned item, starting at index. negative to go from back @@ -363,7 +367,7 @@ ArrayList SearchItems(const char[] query) { // We have to put it into SearchData enum struct, then convert it back to ItemResult LoadCategories(); ArrayList results = new ArrayList(sizeof(SearchData)); - _searchCategory(results, g_categories, query); + _searchCategory(results, ROOT_CATEGORY.items, query); results.SortCustom(SortSearch); ArrayList items = new ArrayList(sizeof(ItemData)); ItemData item; @@ -404,6 +408,7 @@ void _searchCategory(ArrayList results, ArrayList categories, const char[] query bool _searchItems(ArrayList results, ArrayList items, const char[] query) { ItemData item; SearchData search; + if(items == null) return false; for(int i = 0; i < items.Length; i++) { items.GetArray(i, item); int searchIndex = StrContains(item.name, query, false); @@ -470,6 +475,7 @@ int DeleteAll(int onlyPlayer = 0) { if(IsValidEntity(ref)) { RemoveEntity(ref); } + // TODO: erasing while removing g_spawnedItems.Erase(i); count++; } @@ -485,5 +491,17 @@ void ShowHint(int client) { PrintToChat(client, "\x05R: \x01Change Mode"); PrintToChat(client, "\x05Middle Click: \x01Cancel Placement \x05Shift + Middle Click: \x01Place \x05Ctrl + Middle Click: \x01Change Type"); PrintToChat(client, "\x05E: \x01Rotate (hold, use mouse) \x05Left Click: \x01Change Axis \x05Right Click: \x01Snap Angle"); + PrintToChat(client, "Type \x05/prop favorite\x01 to (un)favorite."); PrintToChat(client, "More information & cheatsheat: \x05%s", "https://admin.jackz.me/docs/props"); } + +void ToggleFavorite(int client, const char[] model, const char[] name = "") { + char query[256]; + GetClientAuthId(client, AuthId_Steam2, query, sizeof(query)); + DataPack pack; + pack.WriteCell(GetClientUserId(client)); + pack.WriteString(model); + pack.WriteString(name); + g_db.Format(query, sizeof(query), "SELECT name FROM editor_favorites WHERE steamid = '%s' AND model = '%s'", query, model); + g_db.Query(DB_ToggleFavoriteCallback, query, pack); +} \ No newline at end of file diff --git a/scripting/l4d2_hats.sp b/scripting/l4d2_hats.sp index d859487..3330cfd 100644 --- a/scripting/l4d2_hats.sp +++ b/scripting/l4d2_hats.sp @@ -48,7 +48,7 @@ char g_currentMap[64]; #include public Plugin myinfo = { - name = "L4D2 Hats", + name = "L4D2 Hats & Editor", author = "jackzmc", description = "", version = PLUGIN_VERSION, @@ -66,6 +66,7 @@ public void OnPluginStart() { createdWalls = new ArrayList(); g_spawnedItems = new ArrayList(2); + ROOT_CATEGORY.name = "Categories"; LoadTranslations("common.phrases"); HookEvent("player_entered_checkpoint", OnEnterSaferoom); @@ -89,6 +90,13 @@ public void OnPluginStart() { cvar_sm_hats_rainbow_speed = CreateConVar("sm_hats_rainbow_speed", "1", "Speed of rainbow", FCVAR_NONE, true, 0.0); cvar_sm_hats_max_distance = CreateConVar("sm_hats_distance", "240", "The max distance away you can hat something. 0 = disable", FCVAR_NONE, true, 0.0); + if(SQL_CheckConfig(DATABASE_CONFIG_NAME)) { + if(!ConnectDB()) { + LogError("Failed to connect to database."); + } + } + + noHatVictimCookie = new Cookie("hats_no_target", "Disables other players from making you their hat", CookieAccess_Public); noHatVictimCookie.SetPrefabMenu(CookieMenu_OnOff_Int, "Disable player hats for self", OnLocalPlayerHatCookieSelect); @@ -158,7 +166,7 @@ Action Timer_PlaceHat(Handle h, int userid) { if(client > 0 && HasHat(client)) { GetClientAbsOrigin(client, hatData[client].orgPos); GetClientEyeAngles(client, hatData[client].orgAng); - GetHorizontalPositionFromOrigin(hatData[client].orgPos, hatData[client].orgAng, 40.0, hatData[client].orgPos); + // GetHorizontalPositionFromOrigin(hatData[client].orgPos, hatData[client].orgAng, 40.0, hatData[client].orgPos); hatData[client].orgAng[0] = 0.0; PrintToChat(client, "[Hats] Hat has been placed down"); ClearHat(client, true); @@ -467,6 +475,7 @@ public Action OnPlayerRunCmd(int client, int& buttons, int& impulse, float vel[3 ////////////////////////////// // OnPlayerRunCmd :: HATS ///////////////////////////// + int oldButtons = GetEntProp(client, Prop_Data, "m_nOldButtons"); if(IsHatsEnabled(client)) { int entity = GetHat(client); int visibleEntity = EntRefToEntIndex(hatData[client].visibleEntity); @@ -569,6 +578,7 @@ public Action OnPlayerRunCmd(int client, int& buttons, int& impulse, float vel[3 if(buttons & IN_ZOOM) { ClearSavePreview(); if(buttons & IN_SPEED) { + PrintToChat(client, "\x04[Editor]\x01 Loaded save \x05%s", g_pendingSaveName); LoadSave(g_pendingSaveName, false); } } @@ -612,7 +622,6 @@ public Action OnPlayerRunCmd(int client, int& buttons, int& impulse, float vel[3 bool allowMove = true; switch(Editor[client].mode) { case MOVE_ORIGIN: { - SetWeaponDelay(client, 0.5); bool isRotate; @@ -621,22 +630,27 @@ public Action OnPlayerRunCmd(int client, int& buttons, int& impulse, float vel[3 if(!g_inRotate[client]) { g_inRotate[client] = true; } - if(buttons & IN_SPEED) { + if(buttons & IN_JUMP) { + buttons = buttons & ~IN_JUMP; + Editor[client].CycleStacker(tick); + } if(buttons & IN_SPEED) { Editor[client].ToggleCollision(tick); + return Plugin_Handled; } else if(buttons & IN_DUCK) { Editor[client].ToggleCollisionRotate(tick); + return Plugin_Handled; } else { - // PrintCenterText(client, "%.1f %.1f %.1f", Editor[client].angles[0], Editor[client].angles[1], Editor[client].angles[2]); + PrintCenterText(client, "%.1f %.1f %.1f", Editor[client].angles[0], Editor[client].angles[1], Editor[client].angles[2]); isRotate = true; SetEntityFlags(client, flags |= FL_FROZEN); if(buttons & IN_ATTACK) Editor[client].CycleAxis(tick); else if(buttons & IN_ATTACK2) Editor[client].CycleSnapAngle(tick); // Rotation control: - if(tick - cmdThrottle[client] > 0.20) { - // Turn off rotate when player wants rotate - Editor[client].hasCollisionRotate = false; - if(Editor[client].axis == 3) { + // Turn off rotate when player wants rotate + Editor[client].hasCollisionRotate = false; + if(tick - cmdThrottle[client] > 0.1) { + if(Editor[client].axis == 2) { if(mouse[1] > 10) Editor[client].angles[2] += Editor[client].snapAngle; else if(mouse[1] < -10) Editor[client].angles[2] -= Editor[client].snapAngle; } else { @@ -652,8 +666,9 @@ public Action OnPlayerRunCmd(int client, int& buttons, int& impulse, float vel[3 g_inRotate[client] = false; } // Move position - if(buttons & IN_ATTACK) Editor[client].moveDistance++; - else if(buttons & IN_ATTACK2) Editor[client].moveDistance--; + float moveAmount = (buttons & IN_SPEED) ? 2.0 : 1.0; + if(buttons & IN_ATTACK) Editor[client].moveDistance += moveAmount; + else if(buttons & IN_ATTACK2) Editor[client].moveDistance -= moveAmount; } // Clear IN_FROZEN when no longer rotate @@ -661,12 +676,12 @@ public Action OnPlayerRunCmd(int client, int& buttons, int& impulse, float vel[3 flags = flags & ~FL_FROZEN; SetEntityFlags(client, flags); } - CalculateEditorPosition(client, Filter_IgnorePlayerAndWall); + if(Editor[client].stackerDirection == Stack_Off) + CalculateEditorPosition(client, Filter_IgnorePlayerAndWall); } case SCALE: { SetWeaponDelay(client, 0.5); allowMove = false; - bool sizeChanged = false; if(buttons & IN_USE) { Editor[client].CycleSpeed(tick); } else { @@ -702,10 +717,9 @@ public Action OnPlayerRunCmd(int client, int& buttons, int& impulse, float vel[3 } } } - - if(tick - cmdThrottle[client] >= 0.25) { + if(tick - cmdThrottle[client] > 0.13) { if(buttons & IN_RELOAD) - Editor[client].CycleMode(); // R: Cycle forward + Editor[client].CycleMode(); // R: Cycle forward else if(buttons & IN_ZOOM) { buttons &= ~IN_ZOOM; @@ -722,7 +736,6 @@ public Action OnPlayerRunCmd(int client, int& buttons, int& impulse, float vel[3 } Editor[client].Draw(BUILDER_COLOR, 0.1, 0.1); - return allowMove ? Plugin_Continue : Plugin_Handled; } @@ -765,22 +778,37 @@ public Action OnTakeDamageAlive(int victim, int& attacker, int& inflictor, float return Plugin_Continue; } -public void Event_PlayerSpawn(Event event, const char[] name, bool dontBroadcast) { +void Event_PlayerSpawn(Event event, const char[] name, bool dontBroadcast) { int client = GetClientOfUserId(event.GetInt("userid")); - if(client > 0 && !HasHat(client) && !IsFakeClient(client)) { - hatPresetCookie.Get(client, ActivePreset[client], 32); - if(ActivePreset[client][0] != '\0') { - RestoreActivePreset(client); - ReplyToCommand(client, "[Hats] Applied your hat preset! Clear it with /hatp"); + if(client > 0) { + if(!HasHat(client) && !IsFakeClient(client)) { + hatPresetCookie.Get(client, ActivePreset[client], 32); + if(ActivePreset[client][0] != '\0') { + RestoreActivePreset(client); + ReplyToCommand(client, "[Hats] Applied your hat preset! Clear it with /hatp"); + } + } + SDKHook(client, SDKHook_WeaponCanUse, OnWeaponUse); + } +} + +Action OnWeaponUse(int client, int weapon) { + int ref = EntIndexToEntRef(weapon); + // Prevent picking up weapons that are previews + for(int i = 1; i <= MaxClients; i++) { + if(Editor[i].entity == ref && Editor[i].flags & Edit_Preview) { + return Plugin_Handled; } } + return Plugin_Continue; } public void OnClientDisconnect(int client) { tempGod[client] = false; Editor[client].Reset(); g_PropData[client].Reset(); - hatData[client].yeetGroundTimer = null; + if(hatData[client].yeetGroundTimer != null) + delete hatData[client].yeetGroundTimer; if(g_pendingSaveClient == client) { g_pendingSaveClient = 0; ClearSavePreview(); @@ -820,7 +848,6 @@ public void OnMapEnd() { if(hatData[i].yeetGroundTimer != null) { delete hatData[i].yeetGroundTimer; } - hatData[i].yeetGroundTimer = null; DeleteWall(i); } createdWalls.Clear();