From 0619fc5c57ea8a9ee1426568e2f9f3de96b7a2ce Mon Sep 17 00:00:00 2001 From: Stephane Dallongeville Date: Thu, 21 Nov 2024 23:33:50 +0100 Subject: [PATCH] Added tile ordering option for TILESET, TILEMAP and MAP resources + TILESET export option --- bin/rescomp.jar | Bin 277619 -> 280851 bytes bin/rescomp.txt | 31 +++-- tools/rescomp/src/sgdk/rescomp/Launcher.java | 2 +- .../sgdk/rescomp/processor/MapProcessor.java | 20 ++- .../rescomp/processor/TilemapProcessor.java | 27 +++- .../rescomp/processor/TilesetProcessor.java | 20 ++- .../src/sgdk/rescomp/resource/Image.java | 7 +- .../src/sgdk/rescomp/resource/Map.java | 2 +- .../src/sgdk/rescomp/resource/Tilemap.java | 24 +++- .../src/sgdk/rescomp/resource/Tileset.java | 120 +++++++++++++++--- tools/rescomp/src/sgdk/rescomp/tool/Util.java | 13 ++ .../rescomp/src/sgdk/rescomp/type/Basics.java | 5 + tools/rescomp/src/sgdk/rescomp/type/TMX.java | 5 +- tools/rescomp/src/sgdk/rescomp/type/TSX.java | 9 +- 14 files changed, 224 insertions(+), 61 deletions(-) diff --git a/bin/rescomp.jar b/bin/rescomp.jar index 326c603508f61ba35aa4e3da08cab52fc16be8dc..b39618ab8be7cea9b3b3d5ca7d83b710c8483554 100644 GIT binary patch delta 84071 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 TfdBv-=sy^!|F<;IegOD?>pSVX delta 80864 zcmYhiQ;;rPtS#EMZQHhOueNPlU)wfT+qP}nUTxdH|K8_RojadKl99ZQB(sv7g#7r1 z1g|6u3Wf#*1qB6UQ*Dt5ABfygKdA}y|9b?#{$Dd$ zI265UA1o65f2}5a7&wgo=eMEh_`gYgtRU!3{PeH?$NZn9WE&djroTjJ|HsqROp*%; zYUeK3blX)1{68Q)n*$g(y_^mV5m4d_?W?x({^B#+;c+u<3X&WGOaTk$Gd`#w#38Lo znm`0iL^K!zM~0G=5h_0buhXJkwL+r?Th6{|9lIJv1+yt$vufX}ZP%jS^>$lXQ-hx9 zJLhwg!!BG-D0sT-GRHsFm3PYjI*h5n?-UbJS`HIkoL{|4-=Z_t#?HEqL@zGRK|KrCyq%{bbvh@ zXzyWFSnjE#T2&ydv5A41G1zUQ*=wTPSDaduEm~GpIiRCyZjLRpE?CGG%L{7UTF0ri zv@CPl3m<+xG{_#JZLF~F08)slYP@G2z;RD%sw-=CPfF>81@x5lm3xdv3RyV8!Ai!g zW!zSXgt4Xn;HK4S{wp;!-fI-6-A*Ab&#TSUZ7uZ<)JunyaN9xC)2O5k7fGT{eaRRq zWK>tDuhsppiuHtAb~SPZV<``#g!t()DZRFG=cv3%e*EyL`}MjdphjNTOZ*&W8ABp- zspS~`5mUF`us1tuV0$u(96hy)R^%(|83-5_SNvJqJ7l%;;Mw^s=iR2(sHq>B(7mZq&+hJcr8&*d3tug}ueMqj)`Z`#{)}W@ zOlA+=D57r!Ac;#&XQ`B8uf{GmxJBCXVk1oJ9Z4l{KJEOalit7eQ2H_2n%TppwWG2( z8fFy_t)3Vn#q%z8g(6)N+!OHy>iT^eLa#U&; zBx13MKv#vKTlCJeURgDgI5W>G7jF+QzppKv{OAJ-=xec1YERcLpCNe@me_vKsMWO2 z_T#mKB(67IhQiq$dz-zBP2{)<-3PmVQbrvRA3LS&<3*+ZSHwO2leFQ30~WIRv3e4A zR|`&0FOL+ZNo%=ye$LI`6;x~Zk=5ghe%*9tJ!a~$Idhq9>p)xgw7~wvoiNNSG~bS< zKg$#gfJ{8oCe)K$BkdK_*7n3-!e{z%p5K75Cf&EIU%>r`ULlv#vc|bAp}qYiE)04a ziaXXEsyRT+uWIQcyVRPH-YaBaywsDa(IYTiAEo2FA=$QQH*eV9!MzB@5rvw)3Hvg= zOIynND@SnPPPildi9EZRRakWu@Fjqu#pss`xM@675IYgTdR|z|P^rqS!oi{ENtv(h zb{?3OPdsV;D3y?^>L~#xX4l$O@*qRDucG?^%^aJF0cpf zsSTa9t+u_NWj_&p0i6g4Hga$8&YyHk8FCkN5M1a8cxT)UHJ*rZ@S??kxempsK2Ui8 zZezM&JashV*PYDkdZK!VFgDRSXDs(veKtOWWBx{~+ z%e|v2cqlBb_eB31fpPN39+x>JJFJj~(0$l1yEl8H+KyG9W+uUr8(nDnIdjguxlF$) zN0g#RC*_0pU<9K(=5b~Av}}d#u&M{zF5d9$Z%~4nT6*Q6e$rG%w1HcTA7}d zJ~p@;=)LHtPTkVx>VV3&vXVMsv*vL@{XasgFF5_4bi8E|(@lLW*mZA5j_e2lGsRkP z5P;hvL8iM$B7eHLWrqqI6W@DEgvDDCDj^FTs+IXXzbDKOTD}c)58Mo)`dJsgJ z7?y<#=||?dy>tHPALN$Lqcs8Vyq`!b8=XO3JOzr^gJML>3^?Jn2QtF9v%SBCTHUK0 zEyiRX@}K4w^ZMS3v9!jr(<3SXEW@)HI7SqMMpSCvL+uafXH8d{P9^8A#jumkyY5mu zA{2qcp=}UZ$v?2_0sj`4nvI!Zj#0yy0x7gf?HV}g-aYF)!yBsj22luP+fh$jIt z3EPC3n~M)o;3c$4_X$mwtc=(KiPQ-b9|N+BU=zkSCN}~?{WJv3KsqR(hXcIIvKFmG z2uALMhm}h&b66aUQEn;6GarI|{M$-<5SEtQURdc_I1BhCQToaLoqB&4xNU}&@}QuP zR;?T-+OxqwoSQQBnL!i)6cQroJ^Bw_h(J@9*!gVtD9I~hP=;;2=!#t*lW!`P22)4q z?_v#Dkl2m{HBGihg~wm!AW2fpak9xsf36nM@-k>-Y`J=kkx{@5dULP_f>()oJ=$z5 zsO=V(Wc@kX!f`iA|N6-Nn-c4lYaDisnO_|?CGm~y5J;qb0P{iy=whaF=jN`is^I{P zFHYFmO*B1hJavjI{W)po_(6j$j0vk(9kR>ol5M}$NDmlmPT@TAPi$;OR7RfRo+>Ze z*uu6pb%cbJ^J2}(v%X6?u(;9^xmoEO=x})5ROu<~Z_#C;e|qo)R=bKc)S}R#_6nm= z_4s!x*&0-;TZbzFmaBx>8Md*WF{T)Ruk-Ld2vwlu=r;0~f zSHp;ngc;qE5H?O6MiO~BP)uA&0bzPPJHr>1tW$}32hN@Q)1lr)qHtzfwnke0T{FHu z5O=v70T@klv!e|xM_01^+1G4a+op&Iiuj;)gM9p^?MkQ4-NM}YjL-u){bE|}E&i%rhbI)f3f!u1 z=O!l3#ry%YM9eU74vdQ@temF5y@QmsXd2Kmdk0YB4lwmxKH{Ar{GfH~lmZr!HuZNo zt%-`hxkGRO*7k0Hi{e1Nb=sHtJTUoN)UO+VZXvZe?W1V1Zo#2TcW&<*8;s=e)|R$B&;ck(E)0Wlc#{67oaz&ZHH@PqGKBUQs6O6NO%89btdC`jtW4FP)ZA9PR(X# zIJ1F!6D)Ua-8@zR^X#aKb=ow4Qr5&aOyw}8$%z9XIKb*;wK5kZl=JQlDB0f=B+P(p zanA2XYP6D%#2U|D%@0d2amU)**;oT2L$a=s?J#jpN-Ve@zN_jI@l2#~tRIS(;>m{l z{0`{vdE4HU=H)EfGp52sXXuWRf+1fvj&2+cdk#pzLRLFQB=2HL+TO4x_CJ*TZOBkS z*!DvHcveCIg@!x`W~Q`d15<}#%hl60Q)8Rsz?DMM*@Nw z3{5r)(O+JX!5|qS!^=0cXOy!KLJf$NT{w9;P(+ugt>vqr9X7SM7MEi<_%yNyNx(v-O`G63=V`%0CF$R0 z5QPzNlX$Y`lHswS6Y6=>sr`WYT6v)f+j0!t6nw(VqF!XqLF%`)EvU~Z2&|&04gA?F z>ru&%BPwnjWi|qZW@VeFTFJN>gn4UQ*fx9dgIvS!NLEHhy~%E^Mxb7Fz3w8SaKR>V zZ8|Nq(9zjJ`!ydkVs!{^^|-MIddguZZ0!wt&z#XuX#s962f{}V9suCYZK}ePr>@yr zpZVl<(&_%SC@yvg z_$&9PMN)Z%s~WI#fAV-4c&+WV)>(%K5$t2ywQV$U9SLn$ova8~cu$~A?Qv(;rU=(c z$oLo;>uy!2XlwXpJVuYp-|mJTOlGFwB=f{DhtUJfsN=zeFgy~xf;o}1o9Ht6sIx^E z#9F-8Hi`(}eE;+K+rO_(R`>vm=V~vt+Yk6PQ~89J0TWe)NJ^{mDb&S({XR$`~G`uRHzHaHZ}>1Z=Zl^P3ct+j>v8*a3E zKaP5 zFznjP$x*D1Cd>RDuxpn;9r2#kzDw;g8pF~2hc%(7#&<=cRkKktQOb|cp1KtUND#_j zh1v>V--2jME#2pnbv4W;(%)zYdGt5$JIlfqo7SlU4i(TYi^MY#SQgTgQS>D)OP`c2 z5CJUY74|BGZcB<=_Jy^{>;a&KF|ggonyitG$?q(ojH>S{gXvZkPjXi#1YHcd^LI@; zKgiBC{euLEO&qs34@6|m-9M-_g1}+F2!C_KrOMIi;s@h zgPQ6Un!?W#CBTaFx1Z9WLH754LgRW70PuUTa6b=G?6pl-_&8!bn%j9mJD4dmO~!E> zQ+nZ&Rc3>a${`C}@HRvAVyaXTcn76kN~xfeHOf(l=M-nnbEZYKb%Gr$X9dBGGLlgLqbA({JM!)5lNmWI<0ZFU)CH}eH8bPQTn0SF8r zGeH@Y5}7Q72u^%1cu}uz+fUftU$Tr_fCxu36;M#a9%D8AREwK5(<9jp-{QK*%gAdN z)V)~_z9yzIttePvXF0D?gjXFxj>aM7-BO9?86M{NueVz+Cqoa=BJhY&Jhl-)-lJs# z+pGl1+a?-ysu(YeLO)0>BVUA|15`E`F$o4r42MAYR1B(&@w4o}=(ADL6t1da4>U+v zVRM5l8ccpdb$fr<*4bj}tf!T}n?~ENjA3MDnQZjx!~>fgh-OKzvL~~b5hFns;r}&x zq%mQ$(ac@Pa?Yse8{Vpl!Ee@iH&sPF6s+@anEYW;&gGk^7HI76M!L6lQD*v2$Z+dzT7v}(g(@t>*+v<<92w-`Lw zL&FF6(fZxgp^+!+wrhLh#Pc>nv%tnBd?KTfc{#bAPm;(CtypmO^W%FUJ{SEcoFe|6 zz24ZH7d0@>qg%el*!Ljt2Ta}R#2KLbSKa9Z?}fhE_18i4LHWDA*^SgOFYRS!Ze()j zv$_~socx=ezM7rho}DJn$t;+i-p|P-Zw$0EloedNeyKonqccH#~Jt@K4S4C6WUQ7SX45^a$>!ky5c_=`L1K z$tqBo2TEu}foYNMfYUIycv9BxDdplVQ@}4^-{9T|yD!#oT?%E5DN<`HrLv@Q3bE!j zF+W*x(Nh%e6rSTBAqe%*Y~hl8yeY#NwY0o4-tlIWD*^5X0~nca5ixTm$*ScuiX;h$%af|g1R6qKpzNuA&gI?M!FNog!pHSN zgN63qHJDy)WQnIEM-xZzpk75(@-f7DSh7RnP9R>SCP%R`iJU6gfgx8a<2nZkuQpib z7a}|I4#n1n){7!`lJ-7)?n)VGtB z5$5+^VqvYo!>JTLY`W*^?StrR}^ZLkB|RD+;lzl~x_Z+WiV3QuCg=^=&XuI; z>oWQcu`FVw@EG)LV$BOu3ku-Iyy(&RY{FNC69+2e_J}#OFN+{f-1Hb4^C(W}fIks_ zt_AI39FcQN>Q3}_m}?6H_u!oh+ftkn*=Gn&tUKga=$@hUg&Ez5qep)8iEYvLnB1OK zNRamP3H|v4uCZZY6ii28HSm~3JDN4{vNoi_x@DI2;-}EeQV2=E;5bir4Wwg(1Wv{a zXsa^&E@)TRz*9Wqbh_%x;ChAgxBOzIMwm-ig)0B)!=6}yte)}1;vhTgvh> z2haTx%q+Sng*I12j7!1n0DFDZ!>Z(s!1nOdHPJKeV%TMwEVoSd&cCf5^NZX2xfAZ? zj`#+3!6GXIp?1o$n@e&FFoc3bkA>U?#OJc_d`O(gBV~ahV^80#(x|KNfEaQS^pB1? zJLDg&Q|eYNN~a7|?X;X7WI*gcjMywAi+utFL4wL2t_{sEeNEXmF3yEimW@uZ`A|>r zw0oNBgXfTSzHMd?O4|@7JuBPJ*jd*hrkwk_B$m z#-wpmDo+zU&Dk|DpX?;eqyJ!ga3L*R5WuyaO9aX9Ngy!-3D4m!;$4&LYPSl1Id^7N zJ7SOcq3OMlOF6qa3O9!Uxk3qV)WYQcUFlPUBP|~>M;9Cqag;2&fkb*Bvm8yf84*9I z<*xXZ5M6c+4;h^m0QcwMBL5K$a+6s2u)JIsl?k+VyPNdjYfQYQcm*mOmz%)ibd})7 zi*}cc*Kn1h+4nIVl zq7P3F7`qr`yKD+iJFYYONU1WFxD)R6^4RgC6E73V<`&ZikkfqOU+v>w-D99z?iVe4 zsjLE*B93HJ2z;0|M`(#OIM_T+{eGtK;|oe2h9A0lZS%LqQJ}*cX^gI5$CliRlhtJI z%6)?$%54IEF&XDb*d|-7#so)lJ}3B$E(~mwwo~lL>ca!6u?mLZT&tdd!wZQMM$E{N=N`E;5%EvONo#sTZp$Suir=QN0lROiYj{O+xP|(L zsoxRd>&$FhkB6cwf@%sb zpO~sfKBoxOjTyn~dT}Z`_lVy%?IGh2cI3&Ds!)j%@Jben6c--6@_isgQ#E*9z0HfF z#gEGYsAtN8q=vupWp8cXTOmi#Kocb8LCEj(>_7jV(fkcB{3aC8|7t!vL&>?%*Xh^j zfI!iNz1f#`2E8&T&7rj^S6fx-i0Q}WR86jytuMl7wz73IWr8L8$K3Ojt`ezA1L^yQ zaJ2ye49udi=s8~82M?~G(m)<3BoJ?s7&~7Gocd*rfoYz*_%R{qqzIb@cen|(XaR6-;=B(eBXIZDkEys`2y<*^~?n3)$oYc zPz_y^D(wa{s!nY*#RXeKD6lJY@5p|cl(ow1#@oM~1l!-C@xQiR-lp*{N>*p+2}~LW zd}a@4AGBfpddJN8h)Vd@UFgbQWo{zc9O@i+#4-BEq~Rf?pT6(7ak~i#y5R;+gO0YN zs4{|$R1W{AROK5M5l+DCanwAoS|o<=JK;V*AVk+5YlTw+=}_(M7pK5YI^8*who{tf z`mjH>W%=EKVUvt11>KQR%DEH{1s&x8LB-uPq}=rAF(6N=^j){XN9XEOcTatWpXwnO zo*7iYf)W>Oy^ArZ)>v||E;B2l5w8=WfSk{4Pq6ZDu1 z%UM)c#h$V^gv{?4^8L@fE`Un?Ua|HrUEsV%2`H(%+in>|M?U~P+UySalynZTz-4cb zI}0%60#?PH0vOQ&r!(Y6Y|ea+MYp6R7DpuS6qYTfRs1^64SmWXGt~_7hev(8M6a~V zB)DH2{VT-lGq{&CpZ87sI5eAg{lFMwug72^erNx0%AQOKx2)%jVFEB7PkrWxB7}TE z=7&0{WPV}LCn2hexvP-g&_4jST*-I+fbHy4cb@*dgYD4g6+#|6d5a0iD^A?n#Ojp` zzd2Rl#p17>N6we<)HL{Z>fv}+)r)OkSlZ&*rIoI(qiNIYX`7hU`^&Nrc_pwEOFE~R z?7)+Il>VZX*i=t`@Jh4N-OoZ#atY_6Vnwlg5&cPia-f7#b3xM7o~H-&Ohv)$AHDJK z(fgs}v*o@T+dUilrF?gqLAa)nLyAzgMiVN|#{~t9{W(~qhxEAUDHKk@-*Q^CO7MlA z{X%`1G*~2hhcTPdpw{S>fIY@-miyrV-qPSjo-dZ+21A%C$|)14Vx~bMp|1^Ho})e< zO!PFEbU(#Q;?L05VnGE6)G&96&;2bHVemdu>d#d(BD(^gGUDEG7Q5j2EF11I4ChHX z!m5!&Bs`GT3nQy*KflZ5YmigJOEp=;OAXbGGrdRVjw97i|J&ZoB&%?qMlNk5OBXV! zbzg49xwdA{9e)2Wc^8`jA5gp0qSZ(zJA0c1+jQim=X?(5G4BVMcH=aI+_6USuBMjO zQT=b5g?);Wyoire`QzEfUL>M-s#N$|{FUgXlgqdQo)QwK@fp#PMxn>FF& z^|qVj-*cDKb9s)2+C@Gl6XL5aVrS53(~)^rB~SXul=v8JR4%CpGsfyu;Xz$;S9!Z^ zEe%gCr}U37W%C(80Hrz>wckU1T9h$pQo0ur>J#{Q9I!<7PMF0g7$oc~xAK6h4QuD1 z7Su|c{6ZCNuVmk;<#nchT-2q;vs3o5FjOhXU&nHe-~63D=xa^n7xFpQ-ei0WWE)rr zM9jDX@ucHbuK}<7G=Q>#{Op!nYMcOFImIg+O85{iN<7$z$onKS+M!ajBfSCEM zS^bSA=Lsd6wFe|o=r})86M+y<-jRtR);I8$^w?WdHmMWVMKJn`g`O6?(Sf|89?_4? z90pc6NIwAbf_uKoY7u{xMU#3<@T8v!1=M$8N8z22E`R2L4!?GT*$_gf($V=z8E2^i)AdU zvLxuOd2C%IK%RC8L47!R3>`QC10W}fLR1{XO$7i4fCM$%J%!`|K7h`{-6zeMiGWSz zEyFfj^(kXp%lKbsvQ+ZSAT`egqjPre5y(qO_42o-e@_v zT0Q_{5v(OcMva@kzek0>09Hw(h=#3VhGRg;5q=Ykl_&kX zmu#y}VN#RyyVsAX-oXf~s0pE0P4{dfoeqF3`|X27ffP1={IcsP7JUSXBD%9yb82an zE17L{qIv({(YH5aj55sT)v{xP&t33nNR0Mf{iWkvG&HUm4ss=pj0P>WVof3P1qe>n z>bz-7T4|wfB|`|A#sZHSAX48J6*KwZBLi)XS4B=T%86A5hS-SVj!c$WjJ3s8ZXJ*n z3#vD(Vf(KiS(}C~hK*=|sQBK@tBN$%=tCAoSw4vk=s^X{`0#MT+i#KvD&rpph?6jb zcS$|@!)ZV!5i%_`EX=SJs$52PBlGMtAr5iJPMGaFe1P|mfcx7UxQlGG1 z5>Sebv2jIYWC;aDT56o;S2IYMX*8fj4t6{wbJ{uJL37O4HlHtMnqYi7Dl^_rxb^xC z&uNFE&p29Ez`U!3N&#&RF1mxk>GZm+F&{k@H=T$pzSgJ=PZQ~`9vK^P@P6B~s7Iym zWU4kc+-DaC>(feM&*W;KnZ?AUA7JwRdS^!Y@hf0>Q}(FxdD(XL^h-)#`weJj(hmg| zz?Fx__4EO@m$obOw}ymQ>awiwL^C>O$trwVlyl=AyhMkpOJA^dW7jLMEs%KT-mIuC znObpkE$PgC*?)I;Bi*U6FJyQo_ty5y%vEh$L|n0ZQswI_y2Y$|CO9oZAo+J2e2FZRZv$&lD$uQ)v6l@;Q z^(6L*hgX0Ud$pZ0u_sE{FzuH};9M@ZEIF3d(yrcASn?7VU58Mv#@RjTKD-h+NXf!E zkyw}6&q*%-qQXG$bGT6xk}FmZyVd`zo8YVZ{5`e`u?OLdl-jRa7*<*n)WES2TUV^5zWasgDNmcU!&;3Q9nS=F2SnOW^pt;>|o;ulSLfHG{mQIMtIe&Dzd!U&(-4#E#Vm-mwi9W@0CWOFslr&7vYaVzd-)4C$%d6 zKsfjhT~S(Q@xZ8h1CmZE$}AIkARfJGWl-@Y-zSCUwSSg4&bM9GQoPFk6Q!4tVrO*t_= zEGtJU`CSA7!+eFl;7nhNl{7vNgMB1$WpfqFTP5+nW(6)41*rWcK9jy>`MFEhOGzgu zoH5DB8>13b4E7~|h>F9%c{fo${ROIt%1y)60J;R=LPy(ipa%DojVQHTiLeyF#y`q+ zK9MPw$&Nk$t^SuEsAbUj+Ge+s8~!J2IT}b;a4_o*1!zqXxZPjDWtlO5)PRKK3q*RL z3JAAu3FFyD3=p?P`y&LFV^%%jo93iLUb*gC0|N;=UfyhWKZa_93;Qdik9(yt8a?$fxI zHcTWmWwulm`xg38fQwhw-+_@~Z}0N;wwEMZu(2V503av43Xoj~Ca9i?bb3ZKJ{(a1 zHT8(jU7r1w;e$uI{JO$M`f>3i{)(SVAdXKe!iQr3LA!WgfCQJd9v&lW+Vt~VOhQcADHakFo_&byPO0I-I#Yhu?2PVaSGk22(CXg9B-3u+TVM)Oy4JsO7xZN3&Ac@kcrc;R zxFVL&zDOrd(QN8xR2JGg<94Lj!xa#ZD&aVUoavfi{lOWs3T6(MZtF|R?~Bwj)Jk$H>y1z zA8*+z;jXtu)@qPkGUxg@YwU0#cYIa5NW?12paae9VNP_8m1gRkU>nL1IWE^Rl9T;c zy174EXokQ^K%@9?bZYx8Bim(QiqW|H3gF?HsqQ!(^T5){wASpkK+B?Pv)N7c$t`np z34L^-YCKApzzcaa3*J$p7V@BG;=eeNLzRhYY>M$LO|gC|sO1RPv_5e|D2?=9&_2E~ zS)J3WxiSh%DM_z--TfW~_NN^+3)`KQwjvdqeZi7;$=-~jC2GT}Id#gu#JHvq1hBb2 zr9DNQPmVOtqGSP$aYfs& zwPhE2p$BE@P7!}$g~GC(rqsx;hJ(;t&DFL+*&cr+8@eWjs;w5yp76q~2Qz3Zy8l|j z5w~*V*zJ*1uGl1{l9Olr4nAocnZ!-8K#eC`#P^@+ zC_%}W#L-$X<69@G6(jq&$NVDW$bG(ZENx>6uSMeK;bW%a&s5FX7sAcIH!^`aA-}M1EA1!K_aAcukc8MgH5$JGzpShE%6IqW>+7=6^X}-w=~%= zPJuwwH1gueF))slIY-lp9t)huoy(Xrhmy7uB@W9e_3VEE>MU>kqp6>ItmgdqhdxdR zGEN6HP6swl2RP0<3!5|T46A+7V{DxvcXv)JcE9#0@P$y9WUN#d3fqIG94X=m+k=oC zsX>g@QB;P6HeT#>k+vl1=@N}3DXwKhQKB8&(8730*~+-y{5UUjtelJP2UT!Fxy+48 z-YS!6W5Zf9(j^u^<)gD>R<8E(a#lj7*`ALpXtER?{C(xBF1W7W+-CjOZ?jd^P7~> z{-63g9?drZyrw5AUAH(UwnH90>^#WtufK|*PpR8rI3)37S9TvTBdxa_A3NlK3x%bD z%-LWx?o;6-O6bfV?79ENC_eXP7C#bsm`t4|4q?%Pd^!z?bE}yGe2{uP(R?&Mt9Z)B z5P*%d{E;tV6Wz9?or7!a+FeWIj(Zv>RD!ZV6I+@%0%s&|mlY+fTq1 z0F(dp>}N%iVE&(Q!zfnhA5pI?q);#Xv)4AAW6_us6rK~L;^|{`8Z5qj$$g^4w-zP3 z2FjTN#VDUSNbV!=DR52v6OmGGF+GWb3z1?CJ?lh#fq`o_~@Sh(9P-I*Q~>b2B5~^CrcJ zOiWk^fqzGr8dw6fu#rs2X)~~=FGeNQ2>mW;ase0(&mug8mXq=09Yp0)QgxU7^Z-EWVm54 zE+Vb~Xgn;eaT2)xLe}*tP*8_j4w*(CA(4LM6WPFO(7e<*v~#m4A&Rab^mP6I#-{j> zr-}E?GSJ*1%Ce)YvP9uq<&9ndMB;Ho*5qDfieLyNAR_+7y$S_E%eU}^rZdo9v~!wESR+%6Gb6~Jg?z^r$91{+%xXz~ zkA3M(yovC8`e`ZKoZ@?By6|-dD2E9WCOwnBaoV3`ZW@(znz*nZkA?z}IW+9*5|UvO zhcY$ITsVnGyP6?hi2ph@1AU;qyc6{5QMj`nmvfnjT&&)XqJ&8RrcgfnYRbcnXmYnV}Z}Xa8 z1}IVA6gPC!NO~yGbgj7hr7W=BE}j;UdCl-XVUmgaKVp0fZwIuBe#E3e^D2KxWk$#0 z0Gwqwc`b_RycYnTe{zb<^PfyAm&2#FpD5(fuaka_kLuVY?hSanMxYLzOMZ<-(6D${ zY`;sak`}6ssx;(E%>Cw>78I)s8$O040Zx4%9ZQEg z7hMYRWh;IP@p+4EWn;8#!#BjiY`e9|qE`8;8Z|5{cy0iOi;E*_c`Lv>2)vSuaF4-{ z`1C6OSEJ-QKZ{zzPle0^sp`&2^AwADB*=HesDoO>K&NDwvOIsMWNAa%Pr)S7J>4NX z%sByQ3@26j$^NyFUv3U!_NMb+L~iTM3h*PhaviJ^1h?;;cT5!uQ5NoK^Sr{)v~|*9 zwa;4_(^9~E`~>BSZl02$Y~}%KmT{y9UBd(E1t2Qyd9iYGXGC3m>a9NVMk^e z;hw#C8jc8C3gVB&-wJvqw@!gLZRaPQq|0#C~itIvMhC#_kLq^Ms9Xcc<(<6*!u z>53PYW5qsl1fn&z*AJnREF{!Bw7`QB8xRnQ9T3p}JFC)aDgS@>ROyl6AaKd*p@`|1 zG+^jWkii@vVE;pC5)P$-_+OMR$N-F!{+9*}zKK;Wo#FpP;~p^oFE6247xI67ZBEF* zlX(9NlM|Y8nj)hsAVJNmEs}*oag)IW&;V-3E&rW2ZMXy`FiDMz4Pqo^+6Kf@o-Q5ZS0pjuEsMXk`NcTsJQU@T*Z$<`qGI&H~sf0i&~U4@DmH_e|`_?b035aIkK8WL?3GGO}Xl z6x13Tn1U^aw3^l*cCH%Mk)~&vvK^aiXUrBk`7rHbboMf$T|?2^*N(R&Nsg!; zkP)UN`GpH(F2Z3Ep+vb;w$XyJMMtp0XNflvXMh({Z{sUW4xCt8SYjsM(g6(70y`j5 zp#!Z*RfY>qte~2mgK5U+Qqs@1I7EajIZxBZ#Z%?TS|OAZ=2{Rt5wn##u#JTUDCh%G zy{R@Q)W9@t4hwSjH4TjUYI%YgN@erY5T+T1h;_VN#EZf)7EmYyUH3Ih2jWbr?B`V~ zH3SOICNd?QfORzZR)^U5V*y68RFR<6aUyL4`4ZeWFgjIAqMMOUnHxol;PYO-O+i)Zjfnlj}!BW#iG6Cii*US*4t*+lQTPC%mAkK(bbd`hSu0}77K=F2--VeSy^dpnaZ~x z^m768@ktd`H{)fspHvArXdTMG6eH7MF=v4JAyAf8BQjkAdwT}+sOb8q05Oz^v1ACx zxx)Lwl$Ac?%3WxfCk&`*#xYkM{Vc?nOYf~p$eI%Bg6~u=o{$~YHsz{eFuZCMeg!Q0^>5RvCYDbiN6xIQ zU`AGJ1WtMBS-!$IaM9g{NN)~ulH8r|&+1L)UW!cga>Zeje$G5g>+O4zY^>s5LD65T zFdG+&4TLFa&=G8wN64cHuOPT!Xt?T>^WwGCmc#a%!{bM!3`miDy5S2pbr?5cedibV ziaM`2+iJ;%!vnk{2qx;6#z!{jls$WW>Bn#EHXh2E{N>91A!yFwM^OtPj$V|QE(-j; z7o`=6$m0o`R*&5A(9t$X5Pb=fE~WbCBMaB@IVXq+Csh=7e8~J z*p^}z*jdf$B1U|ICXTy!M0zG1;ZBZ@rK;(FjdANc&;f;M8Q4psqS}8NCPn8K)^eWM z+xyQN|1zCndkc(_Yk@<(d7{0eCu%ZR1{6sdN#Oq|< zr2BXUO@;i~msZ#1Qo6$X;oM>g)m?b^N+2V|>!CSMI+WiyrC7mkz{^bhxY~hRyH|y6 z{noNwhTjgsKO)KbEuQ6^BnzY{P78acURBY%5P)cR%x}>68t0{-wfwa+i+23$AXQni zzpgU&{n#DK%9yRlYclIFk~8&3^aiQy<$_}zct-N>)#IIq;_j0OU00TqiRQEY%3O-A z9mDBajTA_^c(NzaKk2#MEE#xzphFs(h=Ik*f@3!@-4q{PG2Hj*3hquKSEy zr~p(&ag|fpBfM6kFx-jt$@$uUQj^~>ik$75D)zbBmQB{kIwI!~IJc44a4ldZPt6`c zL7HfI@a>0DQb^AlY|EL-W=A&yx-m(cdj1=WFJ^zT+tk}V8Ol=!wIpPSx{lD=+d(_3 zG#1lmuM8QmW)5vkdFrf7q z+l}4YxHLwa5)7DkRpJ^~rrZDu{INAk?#m90TyEm6V5C zROmI5qZM34cXcbEJ;>?S;Ys*3bw$O2+Z|GiVPKQRC5Ch~QPQ+o@!tScT}fW+zB7Cx z{kIC57jB7GHh#oND8PrpCe0XgKQ%!Js_CvUYKGsA@L9*WjP?jor?SXl`Tg5svnE5`w*tHplCG&@Sso3viOQes6DAtj_q%}P+Gj~6R}b0TFPr88 zA|76o`I-I^_ABZoW|Y678=4R!c%fHRoVaHN?G;O?G6z{ysa}naTB(^T-;Sl=&(ZuY zvE^7*^m#_eT*?v<<@K3HoGfp2w?aUC9fP-=TEb-%KR|ls`*|k&b7jWl$+b$j zro8f~?`#{Mg%IoMdAL_*7NI>jA*(?n=m9$rqnE%wpoR`$S5-hh{Dy6LnCtSV<=3DV z!8_0*dSrE|6e?IT9zgD3^*%tnFzdWPpC6APKJVPtpVjpaV1NRCGHEZ89gxvBkQciE zKVHLI@GBkQ&)NSt>h|l1C+>C(_xLzJhg|EgLGxokmxt|Id16c*gl!i~Y{4&wr366v zpTM659?(80?<_`&SfM=!zJot_P<{mU1fW-A1MP(Md00LXO%$iq|MPclOQYP|ta{(ta4(r3>pn9s(BQ6GqiAW$_S$V>dd+n@fQ z|BtJGjLsz5qDJA^w$ow9wr$%T+xFA3ZQHifvHiq0J66YE&N<(G?;Y=-8nyPSs!^jx z)mpRWUTbb@!#_}~g5dd@pl^@gH+aO|Z!gf5^iCA~38Dpn_}kX^Z}#^GcHbwh;TPiX zPlQ##ENItJwqYCTYG(acuq!<`-97--ZuvJLet9tsLr_H54*)%;pMA|E#~KIhl=tsh z-R73MfIh1vS$B@Er9Z_fp8F939Z8t;B$YG0dDs%OK?aNUlPtYOq4?;9#gK#t+$wau z-!e+8%-3BgK;gSF&K38hpfDpn)rPF%owy)9QCp%XydKXTGUb6M8YkbAW~Fodm`grH zkL6cHZoSyAXh4jL3fIT*D+&dqx(?`|DzFmCBC-m&e_op78YC@s9}xG~4}X0Fv(F;l zzLIesDG{7K1dt$~tYh)K?iV*l`}w|*DBM{xv*%_QG-)F!;$BxYv$w+B6 zs%@#Go1vQ5P1}8`L&o=M%qa6@#jjD;s%wm61}Dl^5>UQk!+56FHThw|?}^{W`!n?LAbev$gm3O)M8bW_oLq;1j2Uy(;~Jq0Le zOBT%qjM`H8_D~s5f$3w}@&D7*S!n<)xTulv=F}`Ss^S)@E)bE-WKje7}y0i^wLzOj+H$TybwU0xj zu_i&o&&G?7-VZj|D`#~f>eoGgfKab0O=@H^mz3pVyb-S@jmHAp71)J6%}KqAOvQKr zQHz=?VuRe08qnNLQ4E9k41FsJqn+&FN)+UI@BRb#dGD3^d2fEvkEx>TsHIt)$|&Wj z3Gl(FWOeJG`B!tHT6nJY@#5oizQ9hcxx%@}3z>BBjbxi1A93SC#N&GDdmUx z+4YYN3@=s+5IA}eV*u*vUR#7WD?|rx4XcwD+txz}#`_x`*>qC87M-Itw0n@O5 zzkWrT|LMnY5ovjCz;zf*o(S7UoaGb95Wo`!%NquJmz6CIxm4Sd2<;E`44=15L{eBf zy`vnwmz3mUCITZ1$aNGIvYh8ewf$7c$l2sa%`Ri$YJP9Q!&L;aBp(2bE4K93wZyZt zPjx>Xe6trWY=zG3&iUtQd%{be{4Fbb)(!9N&^fN+;jRb4doJXk6X&}(2|PjmAi$3F zBF4dy&))d*n&R>9v)#=b!@r*Fq@A`|(jAY}F73m&=c1|;!s-5N_M12Ee?7TLJI~)P zWTj|Rj$X#fT90`Du!Uq~)IaCue_-z9;kHX}HT zvhJg}nHR-7yl3*cH;T?RERP@1YRaV&y%7#Z50;@4_KH9$8?*jAI27xz=>A^?*-Pp_ zb4xg}*B*EdPg>Ls-oV@{?|#S+Aiu=W;aSl(dR@|pe*Pgi9fpHS5JC#M}-PwMNJCw+_IO~+XoViC|FIS!#)T9zEW6c>|l9t@2On?&0TfHk=zGEyN z7LkAC!SSV7T8KaMIB#j3eqyj0gdx2nrm!Q&&HDxG#Tset$a$76aRR0s@m4I>ndmtD z4bmLmiLj_gYu2mPwa{F*iZgh3aZ07@ii$EAb4$rkEEet7k4y~s5`OxOtL?R>p(dPE9P`3sy7Z7VHGF-~g z47ilGGSkOSwQ3m!(*W8vdd#{|&WXn%l}4h;AyvsW05ha znT9N4L@kQIW;D8IFWcV{n>bKb@Gg*Js|czGmzuc{GfeRLDsnvc@1Z`w1XGNOaNBlH zkg*l1AQnsGd2(K{=?`Rt!pZo=Q(7X=v$4Tpu3K33x>HS;V3q1wlf2QTRnE9pSe42; zNmo*Ljgm zxlR%z0|5+io!CmILe6@nz+U#_J2mZ6XO|T1RhP$b`8mBTw-(?p6rBA`Igu}^d;c== zvFUr&QEXig2bOrcz88^Rn4sHmR~a%kZt-#k^&Jl_F6)o;clmY@GaLh3q$uX@MS^3K z_Em!QQCECQVokg}ov1iAGKIX$6>ELcd_f zs?Z-CLZ@VGE@AQ?f0>S|38QA-={SALLkY%FSDT*{(_mgxy* zM=MHBx@S}G2bM5!$s0W8gn7FR78~giYyqshQqaF5H4{dz(cAX1E*`USSFngqmgPr1 z0DSg?r&Vz5<0x?Bd%noKe(&c<@bc;n`Ia9F7I-aW3YC*cR<6IFP3GX2U%` zFR1xZyxeBj)#0IgRaH+Cnv36BQ9(gR48m;9oB?6b_06V zFg9((`&VM`XXMeM<8EtHg+7;pd=Di2D!g?)f}!38)XMHSYevN%p>GoYv`+V*FqClJ zYa8)@{2Pi`tP*|k!xi8>0NQ_S8}qm6%vRN$$S=FZJtnhyK*GHo3-_8Gpk{{c*&WY? z?HS-gb#n-Ni=7*?uU9qH9nRfg1_0i<@6abccgqDilmtRG6AK)Iz3U3m{8)V(a|CLB z$wNQdoYoT+k3QNx6cd#Q^GnR0_dKxkD=->gPrfR=CiK$Mm-dc$(6Hh>upr*(E0tpp zS7}?ymDSyZB{R+x489wEhGVMs9P)`$C~S}4G~uruWcb2)#iR>X>YZJEK@A^vx*|5DLPNqi&_-QQwi-xg+DycH-t+<(oseiu+Ou>X0! zCBWJ~+(4JX|L0lp0v-IH=f47DZB4$QMxg(5;rN3VV}pA`GNdV;f)S-%FhL-vX$^ob z{&&a`6%?z@I16-y68tBKMcRMNw51eKJOH{R&gV#73t<^(8Pq`4VAZO$Eijm;AC{U8 z8P5?dlEh9rK;dshPyM!=#|la@5%<$7JX)GeigN|cBS~asq$)*mWmvBFY0XOI2~mFF zXOlrvsT+mH(|g>@31H^y`t#pIR~SfaQ6WiRytDNZzLzc!X4U*un%HFZVo43j5TO3D zvz_`bl*#6$Wa*-DpGAz)P1U0eC-7{FMbvV=a)K)`oB~B6xS*~$%ei4mE9FVN!CETR zbi5MAM0>Tf(9e9V<^pMOMn&@goqP_ZbG)9cM`hi$@b7x3cGei3WJ3-~Dtk>QhPu`0 zd|Yy9TASx4mVzO)JK8V*RkTpnUjSBmT?P0sJ*ko|%U*(E5ZqY}GuBZ4)iR@NjgmG( zO%AlxI87=@jVP8x>#F&hcdv!LL`rHrbY%iVtSI_~1m zEk*bXr7>1jUK`6cZfS7@_}nuOo-a(#FtX&!Nlki!9A~VlI9GJAzbJ{Lf){CY?lr z1y_H^FNUu^IJ1CV%-*|hBDgYyJ88{T_A>)jp0Zl8TRhQF-~l1s=V1BPctqmi8Nqx8 zl?1MgOt)P=J!5vLqEBO~B_O`LNCSC^aNF55rB1uGuGhG^(ypiY)-AM2=DREKR6A_5klgB6QdaF(d|;CE5W}4P^q|~4EN@g;tes*mo~9t# zoq3yW9gZ(H{#e@l7|Nz^6rYKXfb^V8k9$!0uPqrrOCj-R?vVLIC*Z8XMSUmHs)MMA zhES6;q)L~vZMk*qw3aM}okcFjJ^g;|asNKkoo25buUrm&j9WR|6vq#Be0tGaI$|F& zv;mv9+#W&M8t>4?=7O76fzXpDfRkCCo_fX2x>d>BU~5-9RA?sR0O6RuTby+SpRCpl z_k|noCb0@1HhY*m6c9|dwdSUoiF6cT)GaIPYL)oaxUbch7&;7?om4>o=}6?Ddau6D zCVCq}r+>u}L?u_r95edKFc?QtY27YWqS@3k>91%3kd7(CDS0gPFe{JSNHH=rC6mGr zK6}WsfZ+_G$0HXBXhBH4r0*(pHW6m)iKr=D8{2AAp1w1rfq*iAgQbfA{}&rTp`AO90QSGZ;rb(BH>_iCKRoGSfU|H^(aVK zr1(^brKDuyc0#iDU2%u{LxCZ4P!bW_OQoVAH&953{35nOw04GutAkh^b7^op;(Tu~ z37~ej3c)3$fFNW+zo$pd)ttj;r+5XakTTexp2R_sc=oE}*~oD(jzeLiep)ws?Z{CA z*$;ad{d3^i);5%R`=a9+(CNBL3d3U+H#hrpjx@=Bzg0*QBjd}2(RO}g{m5Uyepq;h z47H3=W$~dBhyCtlPiu#0C6i_x)R)@((etvf8i86k0$~0v{kK$OJ&60SIP9Bagn{vO z;ycaK70O)n5T%q>$?`{$NQK%7)XWW03kQ1~y7PiA+-v~s;ic~e z$>@PSz`X2m!^gl@(J`Z*Nk5WBLrOMypF4z>yeuK-vR$SNRqy^vXCF7D&g!3#DBx{W z>gT7*FX#`yhEY+dLQ`zNh4m6&8DJ|ARy?l|KBw7pOF0D_$xjL z$^;G$0%no6qXkZsR(A>t*OrY1riAdH5Z!i73RVd7-(a1;4NBF9xCt5$_J7PYB{m3% zv_4ueG(d``jSIRuj=w^dIS>sZ5=K24981bhHXqEGb`G9iO;lG}rykQSD?5}vYpcGC znx1C=Bk(jjZ&C3)`e0=O+LR!Sc-I3EA}B2B=ib#rZfjw^@YiQ%?fJF)+H3ag`s@7_ zq)*wmqCjCcUzbi#o_At;qr|!M@2b~PXKT_7E}+yog|oFgpMAEXLjWcNr{aIN*$_HRXXMpf^MJ;m0@lUA)2g0a@TW1~+*hrl3-)cUa_`J+a%n*N z?gdk8*~$QBB1wn zvz(8bwl)zs@wi+mpD(+s7TnDz*Pk$-(0}wIZMCM3RFclnW9f;bl(3egI|0ifb}00B*K*`T-?m)QTd)sC&%61lv60lle+G03CJfN9BvS z&IGv=5!qiW+os-xelJCB|LOV^vD2JrHP%pgJcC;M=>9J9##PGt@g~+Mwz^w;uQoTsmdzwj z#Jcm1577+~ThBOtRL2Y-k_aRh#03kB~R=mBI0ZfDEsy$kAn zYhRBRA&_10Xj#Cj!yE8+^;8 z_U$(HVzOz$emPj4*wUqaf!B|Z<9XWn9mS9fm{2wK5jODelaeV}V1N;+A~rz`lRs9yduE=xr9-&CHfZezdL9@5FvNa5$cK*|fcD20*d-5NTv{@LX->?2zhk$GIj zg7XL+c$}V&VlSMw5xdY7BOXR_<{xp2Zp!IJyZuSQR{K8x`2+9?F5@x3(0xMm^!i{Z zwIQ-jv@jE2D(X#MJRAC;C6xz%c29B%dnT>Yuu62n1HdlZ!0)^=aV&276fo!vn?K&< zmm`SV8aDM1eFMMrv9*p%+Kagg?Mgq3y$<(_vb#h^`|KQXYvSGZB0h>GY;c$xN_ayz z&Y?%7H!U6r83z3DB~H~g&=1f@cyb!Jg%DniDf6`8?>iy++wUZmZCn`YiAdNFOc$cn zJ@uc89~6Nzb9E#p9*`&KC;a?#iy6CTBjXo_{ttCaOAPr+bSkV3iz^98unc zI%!Lq#jL4mYKlWz92J5woKpznRs*6zry)60LkB)Eu+X!n?a${OGT^-=j&I+`+#<=A z#S1}zZ>GtoH{&|{`qS^k_ap}J$CIef`(1nxEP%GV;6Yy+uyUs|BgK&6l9PPo6`S>! z$whw{8Id`FB5Z2VoW;aEEYSxFNt^nYsGgxX>;NxYja(fK>1 zYL|%>KmhxvEPT&=`idMk6FDnYuVl}+>-rxXi- zkP~hb+ib@mPF$pR-j!wVg^ff#UD+yC1&~&20lJUi7xC@I!vToEiErKPFR5g}Up*m9k`anon*h8Pc2-?D8o(=;95Zmq- z>9}9oTy}Lvnp2>bs2$H+FXx-U>v>$okbF|!F{Z&ePkN24wLal zCcfG(J6N!QMVZbT-#-in?^g!c!fn~Sd?-U|WH^8-9CL=c3bh8Q>AE)`$(j$t&>59? zd!yYws1NP#TStqldY5j^%+0x5w$GbD1~0-f;Vq9;Fw}qZwX_^Y-7MM*V%=E$!4^{Q z3qy?69v+)1G1|mm>6TeH6}Rh;_}mbdB@+Y|6*v^P4+_d}(V4rHYK9GHCl%4q)z1oz zgVp2ECFk63d3V9D8w&atd|oPuOSn>gr8rmyQ7PMw^;Tv&b_awK2%2T-bA?m3tHdoj zKzIA7!OZ^b4v@Sl|BZ9>N8YH{aMvkhUR~X7Ly|7!Ju%>CpxI#LNfK0VU>%m{6NbAT z<;WFP$;r{7@x(DT%bGpFM_}s{rMEWw7BOIh^xsok>urWK`!B1W%EMfi8+pFz#3Iz; zL>ofQwwTwiT!th~7{nd4c0L}k0vk5pEL21;@9vUve!8{PBYTUoF1a*b8r|^m$4qNzPO}n6V|k* z#^y%mg$Zu*dps8zLuL9|aUx=cT;6NEVYh)ks}{f0URAAM5f-=EG>h1X-@oJ(v#Jey zy(ldXV#6QZ0ckfZ)bO~pj;01nH-E}R-?AZx@Qr=vT3M`0pBKWTO8UTf39HBJUm3RiqEO>y%Wg@VpcOOD^R^#~>>Va`I`d zX9r#?o^wZWDclcN06_Wt@P~z?-s+ z6Nh;$9o>2;o4%sZFXtb>@mymu-(}F?2JWg9itfC6>3;VEn2CO*8KO!S)q`LgF_R#3 z>JgxEh7OsjtN%2QXULP#;gIf({s*bm|BUlTgND*9&JnY~v+1+@3B!Ot;=FPRU8~5@ z4(38ci+ErJg;La09;Oa)&y8dgX8>QMy#nNCy|&*LhH+bnqYsQn=*=-oYlx!<46jK0 z&)~Mu`YfevKzSUyNA}S6>)kQy>9s8%cvHh)gave*TD*+k_YhZgahz>K3IjIOb%J%o z!vo$ivZJ~am^20ee`&qF2M}z=jr?zooZ-S(id%D*PLCjWEaWG4jZuYz1Nv8OzQq-# z8pYi`>kkZpve41crGLW%7tS@^Iu7Lwj9GnYRR_f{fOXhN!Js0>gN#%yx4&+S*~3kK z7EaZ5=UrvD{0a)YZ|aPW>3zrw2UD`Bk*RhtOKj!l`KsLoPF~&JJnm3})eI;9iqM5u z)p_1AS6sT2t(>@lhL}NrGK+?ID9z9rUGNS+77<_@|ov5H#;SyP*_|a7Uf!6^!_2_ITbQ@Ne-r_7H7HAZ>^98VCVo z&uxzIpRpY8qWUiNy2g22Pb&_@MN&I$^j^QyCQ9;JZcBcnY z5kC{KB#k0WY%$_Yw7Nlbvy0qmmg1;vhO>++0ab0p2bh#E_=N~{#)804uutjBCm^GP z)1%@GR*{64HE*c%IqUD07c9;7T?V-meWzj8`+_9QPyn)s#suZ$euhuqT{}98L#pk9E)!r{`8XxwYHdG~uK&Y5d@~MLu>XN?Z7)Dj zV(|Y0x$ixyHoJRJ&i?_vZ+e2NEq?^GAN0T8|8NxlAtkT?Jz75BU=Q0%`mWt7{1e?rP?zPsQb@3LRE&)ruYZ&QDW1t1LB zKTC~r``|nPR9@;qChf33H8=!`i7-)4mCp3Zqt+j3+}vDYWWbOV)-O=j(VGNxcV6hpo3>XXgbk+ z8vCEFHc40M=lnQykD>CK`IP>_O5a#96oD}ngR210NhuK1vEnkds3eO657FGK)m_xo z5~es(o-pRArlz?i=;I!+K8f%>;|v=lL&GD1F0syfnOtR*&=+X6UBP(7gL!}_H; zP5GRy+6uxd2vEjj=^cPsuB!>~jE8k%D1QvdrYeV)GTEtdElS zU?`jFS@h3oRKKyYnM(VMzX`2mKAjAi%zEg65t)F=Be~*kjKa-$SFkkc*;L$E&5KmC zYh{P4`YX9vAibHz%Bme#Cq=|s$wLzaUP*Sx(>tdFo!z1|f5E#Qd4~+`cdv>O8ywr@ zn&t=1+K&w$?>8wO&L_7?c7bBh!AJ8*M3a`jb<+1cIu>^~54XeZm9gX;=<-a^LJK-T z+-epC2Ub!6Q}ff1iJdCTL$eu@)F*EzD`i!fEpNup#d%yu=ifw5Ry>gcib9N(oe71U z&99SD4*ESAh3L2|O_Iee9&Q41`WYDpbhYM69!qeUkn1H=kh)KI=zTXqV#An%>13r< zT&fF&_tnN%?LxczWE>}Q32qB>=!5=%XenSyMsf%3;EkE`MJ}-UwmmylvR*o4YOW7< zi?w*BO?XnSEMf+mXYkj>@l6NI`D=`;mXFOZN#<|1h1V=5WS(-@oc{Pks9?AhjVvp% zSs@3muRr?eBxnK*7bLNopw-0N#7$0a@&@ci6)n9`+9dgfM~Xu|YPl*A9mxa`B&6ss zd@CUl6xg`9Fp3bS-KqBEa}}%2ZnoT~X6Hrg@q1vsu$KFLau^J|kp?2NtZcTH*)Jyz z8dHLw+G$+RDgwSbi3QqACtNUbxG@aiJ)yeHD#0(Q=;^OU>86+#6wBYp63qZ=uG4RQ z^p}McT6;UtSdA{!=NJar3&RX>#6m24dtoUfo7b1xao7!e6tWe_oc52iV@U6+u9)fR z_$JobuBGbTV3!C}k-CF)XPlPGzpBsDNTBlKD?W*K(h0KFW_6@TurAE%Bqk{b#(h_& z)r#Pk15f2!=F$%}Ll9|1SpNrc&sIBj+aLE5l~H|tKi+=ucO(&=8kxfavNek*sg~6+ z=UpK~$(YoE&e^$g$9VK5as}-)VDMyri&obw8e)}arKo9}!srWKY?LuM+^wWeI88p= zUBL#MKnok+(@@iW!XB%0pYq{e2nfKej70 z6rX>@s$|b%H@NI*8nD|oSL}2aJfo(fqQs57Z&Zk~g>2S7%Xt)o3DPCso&Y@)0FoEce#|}8XAOz<{Ccw3wz#`tz{R0q06?IZ>1%@TnZ`fZ;O&{LHWUr zbx|(Vv10{rpD)<_{qfFNem1INx&3ZY_>bjpbPKVmwp&b;EuZn=4sb1Q{l48>brrWqMrC^F9PB$v%F84H>CY^ zh#*Xj8V>|%gIc6+S4mgxp7phu7wyY}Iet$k!9w-27?X%XS}+~-x%J=6(9IJYd=<$d~3FmJ>eO0!uh-wjZ&-b<~+CJI^@iK?7pQ%eqytrU4{UPn}Ml~}h zWimxVxJ2|u$tj6O?WT3qeBfk}_jgl+JY8j%Owj-F2*w`Zt1I4e#5ySMu8p1-t`8^y z{F>=>cp|Q^?nOmI<^}6RpNA33fH(q)!c7omceZ~B%1kIy3nC=nTYNWuW1fnza}+>r zI8j0=M`4`TXU%)DTNq5D{6V#7Al3=toe%eM;vgEbCg|h#3|7e<>hQ!m*^}fV{v!l$ zFc9L2TjPm&aqFQs^sh%N`Sx8uKtXvNfc`-08a2!Z$~ah3h}2UU@Ntc5QVdL8iTN>!> zKSt}lQwg%lpN!oPJeODtKfcQigL2+B;JZU1i@T#%P$kc%sLxH*pNc}E7n4`&Rf?jH z_dNUwU-&uFV$Ja_DywmK!W-F59&H{f-wWMV11L9S_Cax9n9}gDJRoRfAon3 z{1t=symaN0sOk=4_ZE0On0}p{BUY)9AgZ)-n zv%WsOyxdynH@mKBlhXawu`^{FHuq~M=>0g?=ZgFJd!zj)O+mozdr7r>UOese?%UMk zs!D)yzo%+*jsA$GWHt4--tk;*Ld^JSTQ^_Fl@%l4F2ua?PnC)v1<*<6U!9Mvq;rs*7MIUh#Im zPOG!m$6G_N=F}xOIR!UH_B`+N17KtwCwDT0w+=hJ$lS%Mkyd?qxT=Tx&>DELrj$v2 zG2FE!ETyAIsf~;r^I(9KthzoaR%G)c!pPz>l5bf;&%eqABm3V?PT=SOtLUnO^tTUnTP7ba-%Fku|BmMwOd z^ID`R(lBOo*p|`mn0{dDGNyn@;^iM5N`|)%HF?%5GF$7KPf_@Xp6(=)#2T=jsT6C=@FGpd@|us8 z9A8M|lR_o(_Tr)%W}GTywoufrCT#I6uszHGEvaMaVv0pN+MpSWZ>eT_?66>oq;$-1 z=(pg(&N=qFePf4d%5ac&Sr;5D52U$YY7p*q^atd4|?z6BhtRI{QovPc?ng zIaf?Q{b}~sUUggjP9++$@gYZ8(qV4K8 zmZh;Z#nT6JLLmV8Z_t&hcoj8c9#y+Dlnt1O{fp%@6v9*(v|m_AQW?Q*S`@U3XRc~= zMi}mDvb11(vH4NC1s3c)BWm6N1%CyY8nYX0Z4k4IIg8{P(G z*r&SY45(o0XUzI~ESohmhF>b=DGmo)KK!O$k`NdDt}TGQ;%g=|eUxwv+4C5-w;>$g zDhhCbrgcbK2HYETQ~+lGGpa3Z_Jb&uZH&yRd2#v8a8dX}P5z@@r1~eKNJ` zrmINe6M#wIo@fhi73ZNv+(dX0JRtmf)1`Fwjy-I-4*6SBDMMG|A6f%_uNX!}X9qYg zZ{b~H@i8D)>hwG|zfi@e4OoSCX&_po?`(bWuR@^?h!2A{=QpvQevDl8TEKxnVW_|Q zX2J8Jch`(rk}w4*05ZZ#FD(mBrnky_x7+jx44m}&x1K>>BZt_Nt- zg4cC%?3$ckzyA1M4r_*|aLZb2)&xQ?M;?4i7Xl6efpx{L3MzdDuTctL6iybdlDssH zhBVD16fC`Ez+Y#6V%S#LyPtm1_5(_siqFO+Eoeetl4XB@(Cye@7r#|lF%vYU$6k`& z-&M=vk_j61B}qM{e{5SXFU$ROI}f;|`ntGu3PmSf0!B#7hMQK+aI})aL5W|SPO}9M zE&<$1s(z5$@bIodvWGa{3X$T8>dC6d(c~^u-m>Fn_ZP7(EB7N9EO94E9*mRrPe%ki zTHG}AfUuUhX16GZD+bt`4hPF<`KBtosO=U)b5D*ZEecmasi#J{ z-Khi+XwyihBDx#~CJ>#OvI*w4fOi^jTSY3El=qFF{8+0c+yv>O8at73Pav4FbQuw$ z6Y|fokcs!8D2x!&l2Jfij)Obn;?~ByiZX7ntX^;P{ABsnkaW_A6p5<5uKWWk%MYMJ z{_pr-cJycA{7O3oiIb&l^I#iwCX#NyRC7_u(h8Q?y9(&U;Zq2j>gHqsgmfMXXFv9nhnt*f)_O*2WrP}rBbvHJzX5_9@xn{Gd? z=rk-F2(GoWG}GcjW_+Cf9hs6uBW{2zRm4_>HVC`AxpN{yq$l{;GBgQjWCI{1RqBxr zT|u=w$RAw9Mc0H5Bk`&XRU+#XYgkBoea;snm*#kHcmpq_(JAPiDtCy9ufh;^sV zLH_c<@Vg=`&4JBtAR1o6y=%sU=`L~O!9}%QdQh^$%&HL&dq6aN5wXCjr`>*lBLZ2`!As18wET88Srw) zPBR|cop|n(fAQCUjqydj)f&aQT|rGiVWuXbxl8dR?4Qv~AO<#+WsT`$y;tS65$^4> z5EsE#u`!e0J8Djs811qpw0i}kv}6+`jB4eU_IiTQbbPeUpho^6Lq6Jm-7P2ECr{_P zs(tOfiAwRR$$q_pKNx@=*7thA)i5dCRjACY*jTk~CahS-r8&4LCZIkm?nXH#4{wos z92@SjBtGxhqL>SYWA988c_yx`XFOaWr8e>J3ms`R@>gb7scqu?`1f*@m^gW17M&J%<&xxUC7;QoTvq2ZS_;UC26DHWb^KGLN4rvCb?-}>}byFg5NOz^^)qrb^);D7g#$J0Ys3zAX=IwAe4pn&B05$$bP^BQD{NzS~#rEQz0Zvm&gp z{Q)|9AAc`a8s=gj>0-cWQ5J=mwzmzu@3|Xn&R;)sBg&8ZV5oDSat!&nDjGsGGmw{p z8}+g?=-T5FOXDv+Gzi@3m_yyuP}sD?uulo`ksr|t?aEd}w<3`*ocygF)_~g%qk(4W zQCA|fE};%+#@Jj*Z^MlHsWRs*RGrV$9W5^W_`4bo&29sO{Mtfu4zn5TLSbE+_6*%~ z=ibQxyatRi0H_H}`CS{5%LthQ|MLWhCuILh-u`%~4YfTZVFQ|$cu7VBwA4ptD6zrl z`|eVZ$3sJy8#+&$pf}8siF)HRv$~_!J*4Jm6u|&QuU9wTi7xWY90bcCW+C8)^796- z%-ialHodwH=C;JPdQ0dZ5JM_mtewxYu>dEFZlR#9g7((M5jFmlMPcpB^GQi z={~)r72^%Ex=+m~ zv&PpdL$2*3w!2eq!o_Vf9^})qn?ym4TMht_oj?)pD;$kEK$=nl-AJbeE1VG`32uV`yr z=56++1=_Ps_P_~W^MEH|U_tb+ehDDR1HVdj!}XlKxt%d9(JO@CBf;sXbsKG7aZo%>IN@qS}Qlj?z=_FZ9(gHCYkV>C%I!YT@h|MP%Sccf5 z>5`fsYcchcv-Z1xS|u=Mkh3~ok)z8oQf8Q5O*4z1P8o|k-si@7lrh?JApj(8Xb~7D zn|pF3ar70~iz{!BiHtZ0y`D5qJYA6L%L+Po(*=oBVLWcJaJ*RGLpdkAQyWAck}VFe z&t7_Nj+id5ylVeaom6-*3Qj?Kz7R05?W|`Vxe@K(?gwUj#78acn=)Sp0gGKvGgho$ zMOsCu=Mhk+r6QjU-D)|XK>&GMN|*e{j3~$fmIh>iP(j9$+iuMBo@g-CX&i&*2{X$Mx)ryn%UCn%>ie!q?I=RhEGU^^rfExp|t)x_Y4H+Ku zgey7r#{t9fiLgaAGwdw^A-oeqs~LQa%mnK57hrgjhT4(g08Nq-AK(Z!cU|(q%HSso z^1Pkd7T;i=N%Xe7IFxTvB)3}n*a$z{=mn&IT$x#?c~U=u~-(T~QX zn@xcNM1uP#^?jH&6D?XU)PdzC$#ob;gu8+19-YoJ#EV?^79QO+P|J7 zd#B-_a9Hqu6ikDeEJ)S#at zFE^dqU9i1I0o)jRENaT0Yc4FC*yXniLw-P;ThhvsEEQU6RK~LJ_=R1ryfKzRw;4JWO-JR>3qF3k#{}V4; z?%CLg))*^6Qpb8j@(EAv(MznIZ-EIkqwD5K8jt%u>8QWKF;`z2ufg6?EGJX%@MEmU zKe*`u+Gd34jBc5%@v4%(W;P%}MZYIxUGl3+R*8(fM!RCZUNcpBKOGZj4VbB_tBU_R zCizhrKvY=8-x@CQ4p{MnT2Mc^Kz(2Adjh3p+?OIBfo9>(3sJ+Za?bUW+_A{A)BK?2 zH;Yy70k}cf(tQ0P4-&{pz_h}FguMv$MtC*+gqY0D z9NL1~q`blE$Iq5NRsWY3Xn1DUtvwSWpLTbkY}>Z&bZpzU zoiDa++ji2iZQHgxxxM$Py0^~#vrwz%?={Ap&pU?g&X`xuGo*fywwb1Vz1w4plk*zD zHYAb%*UIII{C(MYeN2J;z1n=JExDT5ua4FdjUM{yXSB0vV zkmis&3_Wj_lm~O5pj&$lI(YpK{d=H zygj-56Ld4n%~BFA;dR!V_w=LQ`4e7yR6(GGHZb_lwtnS?P`1HfDf9QKXr8*vdr%R; zB;^sm&{xpjp4fJc>9zk^90)lFEI7%}W~Kf$XsE3FZA_X%48D=@;1s_$LR=Cv*o_>Z z*$bJHu~~-9o{xiclK@_kU8k%c?1Y$02ClLEicO(OhIpb~zW`bx%QQ<7_2HIGWGnWL zv}0HB_hK_Td@tTV4DP6%H;L9)2LgZ|$mrq?V=HY(jvYTM>Q?dn%dSZgU~B9r-bm4A z_`MZB#erb5!wuFX){9M%k-(SY15@2JDiz`5Z_m@m)Ajz?dg9tNYL$iN_7J~T_`SB1 zG%5`~xalwxQ;ywQMBEP5ac!14z!RTfcV3hNP8H$*M_zKO+qyi;@o!($HdnEl+u|?D zlTjf${ioDq0r9oR#D~KnK-91iwMv!WAMj9i)ty>lw&H*3kl5u4F$17o5?X1W^;3BQijRyc&Xqj3 zVQ&={58UZ|kDyE+0LwboLUYPr%jwWh71pq~5M}#@$7bzfer{M1XW{v9hMscn4MQsO zywt*nX4J*dLPm2M0(pT1ec1T8_?W!k6@ciIN5|kB`$AdYfZjmlFH=9H;}7Yp{j_(T zZ~oOsgg2>gLwlQJHma&$Pk4TknoHQM2n5lRY-dp(j z=QH3-1eE^>oVG1pU(YQuys1BS`(TXd7ujyc-Cuj^c|jc7Gtvjse5dOC!2Ac$DUHea zCG_vu;+X{q{(loXY4<@O6m5Q0Ao%|?B9zzk@0H3G1nK{tSWu+taDYLz(J6pzLjRZ0 z>16?-NQ1HgfdjyJqpJUdvE7o^w_#b~Xl*wZ;KPrkT6M7L10aE+wM7a@;ewk7OxzoJ z7`vLTW`qMJs0s_w?zN&@je5|~Ea&5g3X>~aHZ}lz4CjX=z2;`_rqt;(@ zg!!x1j+D>TwQNVQ)G?*ZZY%SPvBj*czI`)1;6V`AHd5{v zY%Dcgk|H$4waZve%|fLzS{ucMSacx3qc1jy8e5EujW3A!g9kvwLms|BRp9We){=bU zlK@&CX>dnliOO?(?bVG=ujvnr7TSy$bh=LS&DtC-q{3|6*(@D2SYAtRN!eAUkNAv< zGFEQ|YwgpBsqx@CRn0VcsPd^Qm=+7KIrKFJ_HG5^^Auk)1`hbc*0xglU z<%L}oXg25?+~!naa{)Eb{1gf-+stU2bAa&+z5;DeuHNBC&aAi!62ALINO1I}k^^?(`wBsnpJT=OU*Mz2V^C#w!U4);i^Lfw>(ci;gdp3g6oD3oaUii&Wm2Nr^2 zuve16EA~om`oQ`k#wwwHf)fPsN0MkM$lnMq8J36ZK308WFK3|WmeyTY>2}W-n##2> zS$-6jCubA1xm{wz|4MM9rGZ(ZO#r^>6+?@qsH%8f7*cAJU&4CrQW>-XC-Mmj4@@My zB?nS%6!T+#D^>Xgg^Nv-m)tZbi-u###lcCjK8SZs`J3~`qc3Mz9CFYzN;5vVN)EA5 zxorf{a*TPjp`d14k`Ni=F(5*1tADFs3BNiQ{h>R#?WsC?S@4d67BXmyBfC=x8{Gvq}j4mLyW%S!j-XN@V zX6HoSHCyt9&ZOCe)-l+?=_Z5dz)hYFw6FTN1qZHH)25Gl6PSHwKT?|0QTnZS{)!ng z*U3hCx2&>q%CogtyYY^vM?hrcDpFdmZUVnv0^QvywO*3z;UPH9oN{=Ar8svO-r#Z* z$F0c&Jd^ENMMjB6_qI7-e9nvPmsY>3+Cuh#>eufN#f%hPT7T>8PR!&KZ(T8HOD=Ei zVYsi{f1_wG{&q-NQ~Q)7s9UHS%xF5u%RACmxG2@9?MNgdKU3(=`T&NL&14XdFpjQ~ zJdf(-MC15?Klpul|MQ+zEE>B07uKas$xv?1C zDw9I7d6$hbyS68tnZ2&(JRi{+wb0}1tTHhe715lt;)??-$y zkHARq!9n(0f7?w#tl6ntCnz^IKwMSZ27#;SFyWURAVY$j$^mwrA#Um_k6^6|8rN>} z3c4xD`;Q?a`xo3l)Oq%}JQVex@Ei7pRhG_Ae9V&eRT%8dKKe2^CKY9bM_Aq+y zXROkLr<7@{11!3_)5wJh`|;FC^+1lPgU&%<6K%=oc7}+Licx?@46mF+ZxBE^dkFEK zIr{b8JF=;%oi49JbPhav9729eXF!{CS~HwocQ}o+3NV6IdE@^>52ua_366L3lZM(o zHJldE#oE-l6>&F{MPu>kIrL5jecq%4y3E{K^d==s=ovE!%~7m+GcUL5yG%mU&TzN9 zF6vVg9d14m`Q{}l8eGI%RUAI#a^jnmP9r_F+eZU_GFhBj(%$jT7mn1-wi~cULbPx& zaFj)&0U)QdcI5Lw$6<;`r!J6 z@0Es8X=biLx8*$KR=+3sS5hzF$oGNYI~zpM4&QTu-BpTM-AAW$gEKm|xtNWYeq@t> zbY)#4Q9~^{p(%MU~qsQbx$AEWxSu>E2gaJ zU>js|6QaFBL3WO34K{^j!ql1s$_SxEYMI6)6Ne@ocM6aVrK%OZ7lnGdRyA8yo2nYh zV9H2!ZSP%oTkDpzp5@#XsXw>ZCMd$la{@B_Jdatgez)#^fIqK0>iV8{g#JllIiVl{ z@9W<~WU^Q^n^^#S+{D`_htgH6i~6LMe6Het8Ux&s#u-y2MD4ezM-D;-#yOh3^9E&* zN3AmSb)&LWD6mhuQ8ao7_h#27&y4kCR^`94*K#9r&kR{+Ejmdp*{1h5sqG&;*|Y2H zqHty_H`DZq)wUwBd=~n4+-}@0HeM^LxO*OIPRmpI87qJVx7$jWfd?RU;&8+X)?{cE zTq=)&^f6kSt!^!X z&r|o9+M;x-8u^C3g40aD6s)-A@^4gwbs#JXVh6 zvGCcJEy)34bZi6&g%H7J*U@vN$SzAoLW1rjxbkGxH6Z5VWiYo@jJ@Qw1(F6gob0P` zWt{dkI~&$;lIU>ui0Ld?U37zP%!Z~QoRax2DH)Y+#J+CSNRH)%3wT3H*@Yyb%HUs< z*U8t_2DY+_z-&2*&n|e=glAtTbMYxskSbykIhFtwdYHW!+99uwJJ^mpnSjs=(OJU$ zkoa~=qq5`Pb|E~&B0oZ5tY#mO{mY|n<+m^D(yDw3T}ufvJh zSXZ3c-u#vnp@@;L&dvkmSr9(vYnym;nS{ifmkh6UL%7IHX|3zz7B`Rj(FvDyzQ%^+ zmQwF&ld_D4<2D`*1B#<5qzR2^J2&uH9w|T>8N(+2b$++7_uN&R+$EOLBK;Y;QlOPV zPmaUdSJcud_T&vg{+7WC6H6sIL-t!kfKsc(w~hcTJmt$)7zN)@h*;0z3^XlQYraE< z^|2?lYkva+%XoD=fnCsEpTmmPZmMgw&@mZGE+d}u$I^_H^y_oQSorkUI4Zm{uI(FTAyyGNZDl*g^Dwy0{R77de8yp=kstLOmvHgIklMs}72Mt-*iR=% zi>S)GSS9FNu)ijrWO0oRX^I_9d^TQl+JxeO=LKqF_sBrd@2* zNCFW*TS;QQ>-dl#5Bm%I1vges=_q@2q#m3A@ z^JvtRHFr)iJfHP3io2H-!7%`sg@;gn#OY&_8^p=@`C%(Q$1`pmO#|r`_Kxu#&a6c_4~z@ zj)!~+$I3n#LmT_(ocj)Iz0~251jxLWt7itP5{Qp0bcyg0vws|~*og8RF! ze-+FU?z*ZD9^GNU(F35dA!&^?F6T;$l&+eRB8a1HMugLXWN$(g_a`153!dSpFyJi8>fre3HL^$6ewwU?YVU zizD`s(j+4s!R-s8j6BsEygbX#`5WnQmxrld7D#?W8e{7U>xjRlo!M>?@6rk>Rz@+y zKHguoG?8^A@WBRZjFA3K8ghsy! zOL0OP4k{ZpH{FFEZ$ej5vQ$+&p*BT^(?+E#rCLNbjfqH-^Jv*ziahoT22PmetG7_H zdT``DjYjNzwi#i6N;N{5Hs{!fPgpVa2F+E1K|n`v`Go@%lUdbweieDzae5G(Y)2Rs zZ9&>bhPVTYW+}J9Np!dZ$LLWfUx~T4)G%sce~BZ;gv2=X*Oc@4kHGz^cM(~S_;hSk zWC~oINR2ZHVG>uOk&H1|_Uk@Ra4^k5!tc*SYG$8h8<3K2pQ8Lzs)I?kKheW!pTs2H zyIBW2yB+oXFmDPiV+|`L{RxEJiK)Sojn+I!?bpuu;YKD;AV%nC0=S} zN8)k9aU^+jsO{m`z5#39!Ojdghes*VB0bhi(2jJ}r#FeEGq6xdXLpjZ0cClnESa5j z3n~KA2&oc;tm2LJ#7ZRIQB%l|)t3-=GYjd-&=gccRSF6lIpqq&l7kEnMrq_!I1hJd zu+bJG6^V%3VRO<$!pr;6V^iv7r0Y{uASs{_S{+-HcY22YK0_zZ{{hT93rw6JH+kSx ztZM|_8uCyDF?oU6Q>gY!#2iQ|Ia}OP+`|KOhAH)B>uOIlFgcDZwx4*!xuOr)rUrGo zlM3F^pMDB-!dZrC(kYHU5nZvdYnK%UN8aoTzFAc)uNdh6^7kwB!V-99G2NDTU*H*0 zQu{}W$Q(D&BUwql6A>34oJsfXp;aRH(yI^nOoAdRsA{VZ8zqID91b2PgkZdcwI~9* z^+8$$ftMM81KpqqAv9`mKoO}h1dDZm5}bfVFBWk9B}|=wh{*!>)sw+OOKCp|)%_&c zNCGZPVu%H08{b{nJ$j1P=C2Sw^F)t;+>R&SjA;)cQf=3#ja$4YN#KgwTQp&;y&b)2 z5nl*cLB=(RbYVYZ1S#WLq2D3B2YUgETWorv(xf``VzwBHx5HqYzhiZ$=3We_yfVTZl}C=BW4{|ippmflO2-m zHQAInFaw|i(+igFeUbk=lEp2O$SHoH0tvV28j!1wntn4~y zNBvTm@26w_x<1ZJ+`(Q^JAeScu4X%GRQxXFy`XQUD*f-=O4ZB$IN!Sug93JOkM`NE z8u1f!YxcFq2s3wH2q{SexjFd13FAtMYGo#*$ixt>e9H4QamCE2AXhumOb3wO-{;8M z`lB2=w{igr%#p<*-uKgrKHdOk*gEBlXWXnRy}huv1RA5Ptk4qIUsOkW-!HIRfkx}! zlYX=~J~^Xk{4e}xSi|zGx8tCNGFV=G-V1P7SUi>&F;eDYa&|k%B@>DTiN^uur0+27 zx7k>-wG{l+o)0&Y{9CO3zw~#)^baiE@1KuS4WpL%AR3}-d7&L^pGpC_f3zC}xy77j zYbewBm#SR8tuTCcy7<2Gj>c_azst(6-Lj|bDA>fE79Mkl?ySE;J6%QZwPVpJ^CA`Q znB|rT^^|(Q;QyQsIZvbrP_oFYFGDAL5RkvAaBhmsM$5WlEnSVg-iDDxE1KSE{4%xp2x?at}XB473ibL+8KyHm{YIxl(Fl#j=Au z91M+-MPbfIy({vyGvbzKC|h^EV>S1ZZUuFFJuX)eE6Fac?5FC#`TKc>d>RD74Z=8M zwe125(V?M&K^(i2>E!nIfq0!fIy`C7m(4>vxERnCd#m1R_dnsUP+KU!1pec{Rv(}3 z3I8R6Wa0dO{;Tbu!wOsc<`22re*G=-jP39CWC=Z=w*Y7y9-}Yut&6y2+ z9!W7VZj=5ALd+wnOd2Dpz&LfZ_>v@+SM$+@o)5yQjhJD`sfnzpNx_1U?Y26?xOD+* z#j>&@3rdNJ(+j@#Q}qx0b9MHblO;?mIoF|H0;eG;hWjzV>k_fN7JH zLwNh60W#{Nu^+u2rF`3qRkJPteeZ5RUt+A;Av_pAArs6=SNtf#J<6nfljoPU84X_n z{Y!NUX1OH7X8QS*NUp!WCRO-MJs!`Do-?_6?p>v1I_az1^zrBcb#w{HGTMBtUegh% z88FBhG#}nc5ijY3z9v!m5~@~`u0!slEY?OnfWU+7X|6u8sIa)`s+h^t=#tJ0Z6&#G znjLdg+GV`V*Xn4~&do(U$0o^3iG-pwxh;rJ$#$9>4}3&kl?)R5oW(Q=SGE`?W-S9} z+9ZqFDcu?1Saam_C9HOru9hCTLJCLeDa92!?aC3R-m;8~4kLH(ZuNB*^ipVYxQdh< z0Mc99qJp8!AS}${xJfbhxl3bj3B?N9pWNRKOejrf{JERabdx#@E7Fs4c!yUiHr7oc z>w#QcZgS*@x(!E-y|v%D9uwm?cKf{j$qCGvpD5$89{PxnkcF4ER`l{`rN?N7Q$isz zQYugn7!*oS=1}_rq426W$t@$l=`O~w0hiY?W!zw{#tpI94{r9*g?flpl(!P2EXNhi z$~(DoTn(bs$~!pHBX|^gJ4nt($0-?{s@CV{vaehX$wk@s4;tE?yZ1{sGOy1=*^v*T zm0RbrY2M$Nw^wcxJm=KQParrL2gE{il3m=8GZnZsn#!2RnWylx}n}GBTXE!^XG@>d09kkFrr{_^6p<7ICds{mu0RoT} zlqeJtTgrYZQ>?i zj8R&tY3&Sh%BwdJiDm2>kpz1~Y-Q#}q*-N^4;k%7)Q+v%6r+(#4%jDj0F{%!i6Wun z``}?VGlD~D>`5ZY=Dbjf{xkAf^aqOuDu?ZRkwbNp9TjqbIN&%>QH?gq1 ztv6doH*?5g{wDLe>COqRnHqDv+zma^(HI|lkQG}6Sv@G?5Dbo>zNdE< z^KDDFRMLnORG3B=q*lVA-=K+()?8gAf7;THq8ak~&uY9qIl#%dtiLJyq>gT4NxzJ) zx-plItO257F^2M(Fzr@ELhA|gn(i2j42btF4j6RJaAQayGQ%yF*bUUU3((p%^^HNoI}<9SBF;}>x-1(gQ77!LlE+DJ}T25Hn=S8 z@=MX!DaOsvT4i`X0FgG2P#kqT(}uN$!m9#y**H5JE>6os)ZC)u?h$Fmt_2!;)x&i; zas z-KP83w_nr?84|9rEoU&lDVaGJRoG_QCqBe+7%HkIWmq@<0A5Or#)%S$lqI%aXl>47 zBH+ukyBvKrvE*G`QKa^xQ7&27*ONa7qVYFMzG_njw?nsm?@LZDXGdg3N&}RrN7G1NkeX-VO>L0`!PS%own_zm*rTb9*v`|Q6gCLK=`wI(`6d1 zRq+5}6R;AEg#E2=|A(dUU)wI9^S>IYvHrtOF)9RlQ}a6Wop|m2uDaMo-frr_07;%|BX{Y05xO+zsi zEynn8DlP7nS7_#LG#y-{1Vc6!n#iE49UcZ*2Y?#Yq|bf08#TDlf-iu16xRj0xhkU!gu(wO+BURM{zvq9}kL90HAEv*)JQT!Ze+-n)H z2GFe1wd>}iTI1#p%6mpcd1o&T(d40AZNyJ|EGzQ;ruS`ho8;DBvBuHdN{}0Ne(=Hk zG!3G|S^ie*tRqQS7~mIY-z;CYZ!JZTmm=wvM9dT&5bChB7%grixjD5wpEJA0oxM^> zbHww0baZ#pw0OSb2Gx9Zv-bAg_0b(!1*ED_@3iq^O`05FNz=S7-3zDAO)&*hSW=EB zN7o*T4KkFa%eH+29X;}o;t=lA_8t?3Bim+4rdhd9n@8+CzR@o77^K!E-fnE+;F8TR1Z0Gry_6Y;==_*o37RIsE3M1cz{l5dGU%v9cK zJ|B&d*~bbf2l`p&pw8Li+9pnRl;!jwa886MMufB?km;if7uQ8=6oYcK;vog~1M1x0 z6)6@>D;uGzyfM29>PgTJak3gQ0Ji2mkndI_y6Xl=)elwJQ~I);IwG`z79EseAAc*D zRYgCt6~$KTu4k(<-V=&%kXw~BT>vajRbGGT^l1Gtq#daz%lH~nGh71RaxckQH5c$p ze9f==@*A+TlT$)#D}=+}EL)hI{t~QvvYavB7v(>cZWm*8fnmRPDj&la0n29N6yezh zuTA@Gy=2QB%x1?E;U5TxZu-~JiF=M$o0l+VB|TExH%$D;2cNNr@@H#}zjVu1@CQUj z??OmCnlqE)@Q2f4_af@B(#r?6pa}Mq@c%^2Xhom1>Vv1|r#4BSm(sb+vh%k+@`&Bhq-_CtU^mIU|fJJ7}{J>IA3 z+?I9I_Y6DRFdT3~{>48=3jC~_x>DA$#gQnFu1i!h*9-dsX6>^VqGi`ZU+4oO%DaV6 zpKa#R;T8mnHmJrl^3mGrw}e3FxJz=_L*w7Q@^p1wUnPhAbr{%K2l&i|!ww?Avc2Oq zzT+AquFuf6De1S*@3$}h%`v~nWYn5NdCU0QCC<0STvYY8y(-ry7kR0#tkRmidi&{b zxZ~8i4zdrs4)W8x&!|J7KW=QVntl)f((nD30{-;u00SZ%<<|wV9|qt%Uk>}L#|bDk zZnBB78Y{NH^PcgH91x=_V~`I3SreM2IFG?6k3qGX3-fwH3Ftb1)OO(GmooRw{*%{N zQ+#`J+S4BMy%AM+n8X>;<#gvx9rZ__)V-LDG$mUs=gd(Yap4Epvd#Z}KbYVf!o0^DaF{73fD!|)X#ITt4Rx!Bp z+4XeCXkY5GAt1>+D%d(G4vrU%$_I0i1pJff_)5@%wh&rGf|AdFeSU!!S*nmMGT1_~ zcr8TOQNbJz72wAV5BBe%mXRpmI%4!s)Y_-w#fWTka693W1n#K2{NMwD|85pnEJofS z-{Jm=Tk_+h-p9Eg_6M+8qkPknPbk@*(7_4O$D{LUr}J9c{N%kh=byBU zGyao&hWW*?bj{c~SB6Bd7>N(6bN#(^)V<*31I>)+Bmgs9nF)JtQpa1XPV{0UEW?meP-jLg~_EF-YhKQH77lUlyuK1p(#|nF<1y z$xzsm5GET+x-jt21t$vVc5x5OoQ(MfhX#!_+zKq>P%up*Nxp z@do{&MSy@wy}k@iGS*ev-P1I0#xxo>xPAbiU=ezkgE**f-*Jvq9!h182uqm_}S zvUQcPfD2I0eEhG!9N0ngdxqWPJ7q-GOPf+?ZvgBo(DvkgUm(?G>=y3lsPJipjnbn! z;t;9KwdFn9WC_FKy@mjSn-(%7@qswF>=inhFJ4Y!#Gu~LIR!#=3qo`gP$pcsEJ0W+ zp3(qJ=!>fi&;(0u&;)B)LM@R1Onlg(yD>r7IE-*Rl!l~je8?OiJz|~SS+H+V^1HP4 z-+-@hpf9GyYntGrs%ob?Cfz@g^7nt6vVVwuA637i1$|I<2erYjH;+7$^8O?f`iaSZ zYmx7BFr)oR$?!-6e#_Mf-yKJWJ=5Qky~87oKVP=FtC@h#oQBg+N7A#MYd$e2qWxuF zJ&!3%QQEX>T;ZYrMnMKV7#dG2Qk_g<&$uk*#v}7d7Pj1Y%G@t#S7lTJs><6 zGUF+W{;&+vE-?+z$3HqyO>RL~^kG-9cB*x0nYh|MyX1s;WehnVH%MkqHytbQ3I%tO z2*v7H^Ai6Vg_Z`{2#flL8n8CAe^_|JYY8)XNP;}VV>Ne0APE4hbS^@!;H6aj;u5%) zG_%GZ<9XQ&cs6puo-F#d+0^3bwk7+S5@9}t5>;Vm>7vjXHuGM?c!W2*Ug!%CUFuJK zha3lQo)t?chf$=DQXq=apiMK((21R1h;G*j&@Hx4k{wZ#o|1itt**JbvnfeVz30_a zNmLT5diU7YGOPxiocbD+t~$YQ%;vy2$z8WW2F(3RmjQ*Z@9yd;FFKxWDUaBxEa-~m zC{Yx}fFCjJ!4Lz^+>b~g@=%uh0)r4ys2n<_yCG`Z8Jw+oM>i3eshIz)MGw-VgH+1F zNiZcJber?bsV{+1HtkB#yOA2(IMJyn3JK}j*cqOSTB`tTb?TwRraE*ITG>_j73nqn zWL4YpZ~JUJb~u=vy_{qhb9yIAH=30{PVLb^#j*~}WS8__El4*>V`>acPMNZ>>4-u&k2uhs%9u$~&Vwn8=V26qvY?G%1+SV6I*QBtld;kTe{M8a4wMf`Y}-Y~Y}m zaHUhFN>#8X5PJE+8c7>6a^9}Irlo3SWknybt^IjvwW9Zk^u#5{P{!D?f&XL z^P26Q`gwAw{`0IufHaLRe@UADn}Qvzt~wGBhMdz-dsAsbi(a9X0W0pZkj|S0k_D=o zAm}2ZI@u{(Fhi<5^P$mA6JIUs!h}|9hmARx`L9?S=fp^q5mgdmg%tEMedywMX-1N^ zI$JB9R%2;RYi)&J&@Izry%iGMtV0SoP~U_u_C##o;fKl90dj=m((PH z-f#hZIFKmkp{cx)oo#Gz=n|H?&pJw|=nnb>(Sv1Nl3tUVS&|~iQdF4}+v?_A3nQ`( zd__!H23)pbM(`+6keBw-t;jleV^bC$+kSy_V)%PJW*-dQ3LBe&@dlbSa{$VKwWHaR z(ZPALx)dL_Cb5WAp=KX$Ua*lO7S0?nWnIPPx)8X~+Nx|eBeEIT!7UpA1mR_Mc;Cmq zeqB1w%AY1RUZ;$u?Dt}lG*JN(4-qIteyiZ(#&}*JQBH#@E9D@E1;pR)BM;V-tL%xL z6GL8XO>zOWyyhsOm%cT=Mi!OE5GiKlSgo(6uCBfUO|-JV3-KjV6dtDN&mIAQqYQWT zII@Q%(>CUt-#hT|aE3Itl9FE@Z4`O{5mRmLHJ!@2Eala*P@*%O+%mB-b$6%irHlvK zFOr&+(_NO0st_vka;Z8_!Pf9q!jkEXPX!uvDD17`>99pypqk)@?S$;3)o+%eUo}}^ zwt{#qsPY0qve;-QI)Uw(aIyikwD%UcnJR0;*W|P30PP&@-`OsRH78nL+zB#Upe3O= zX|XHcEZQwlYgx`&;lejhr`o1vHEXrj02`<2wac)B%V?2gaWlcnT3L-1%dL}#@Q6@A zIxhg3$0SHth!85_?9P$2)caYRm-9ds1F;48Sw)}c9V%qsKLkmZs^jmHxOU9|u8F;ho`aU0_l?pKNQ zCkhstI1?hnr;?KTkO_t8i%H58t1!bU7+SF=z=8)ZlCf#aZje9ENQ_kbZZ#(uLFmGS z&M=*MmBRdN_as+CxUm4vephoX=4WMKe}jIQo6~pTNzX7_{L*WJ`+(Ft#eSOq0V1T7 zJo#{EMyrc9o0`s6Qf8LTJegY&8lk?9(c#;+t>ma#N?eKBww(ku(?6*EnvIgxBjUwbJ!?& zgS#eXXhYpjoKO$G(v1L<%BSoV+`;t(%U88XRL|9ol~^~+lmhP#8U#Q1z0{&Z{SWv( zXY`%PKh1}Y!d3^+T2-dijLLY)wZ1UDLonIZ6|cDkUAH=rE-k>Jb?yx^+0Meaht$DK ze1iA>k-V))PTIOvP0}l^!+c^J!iiEBrb1tCU7n1s z%X;e6;S$*HEG_A%*v_{XR&GKJ5P@+8@02#e%A$1OT>u8Sj}A(9`~l0g{HL-TOX;A+ zh?7_>+e%(_F$X(0N;gi#o}--4WWA)zZu=zw<)$(p^uBo&7b5oG>`%q6?~%Wu7PFp6 zl6Dd<+tb+C>l!lQKA7Ybw2hOn?@*HbsDEKP30B^pD%tFEoTVvj*ld=x&IC4!E)?J4 zW<;1PTQ~zK2b$jmKvilA2U6T+Kj{84oL#{Wp%nba+K$0Dx*lm9!TsR-t5_z$DEs5^ znf`>@6Q=Ppm}owi7x3QrF&smaHa`7hwUBqt7xWF!rl;mz5rpdrWBMr|`_W}10QIJw zrKL9B>X#%}7=smd0h$myc8$6u=aGkhR%MvMhUEs3CH_De%zXvUQxb#6Ea^nH^f2b!r*7+@jF4^N;7Qn#aNfNik|Z+J$(tJGivQ~u z58@?&y^p+HB5ib1fT2h|9C_~GyF?YtKVZ#;?19lR(=@%=$C9xM@>vWNE5${$wS?NQ;9QNqE|mAB#YzTmF$={iXlW5{lWZW#W%D$`?j7lV{*z2Gwg!XOJX;TatdgHA3PoyI9N3{}a zE*;kO&Yk_7$eGocu%;MjWOh44NI7+YDelUJ8cp$*s3K;;_mH9q!u}*oA2!%x*&FWn z+y>VXSi(bpLQ_9nS*?xh$Qu1TNV4T^VRb?JKIZLRuv!ySO7W7|Ta6vNhni@>mPphP zNT1mhA_>pLQG!!-8qNEW=Ord}Olp+x(h<*_994UtnSv_okWtko_Yqn|>KgJ{YT23* z*zEAdlhuCevl2B^w@WSwl$I{Xk=xK0R8rl3oQ9Py$DaQ{LuIG!c>F?oYOV=KtQa#s zw9B;Zb^O09Yk}fNyV84eT$=~LU^MSQhnSZT)zxoHV{*Sf_&!|myDJ1z(bD-TZ&^Qo z0$hmwROgRAQ=A&p*Ktz~KzD$#ti`qsd~7oChJAa*+_0^j>3$ zGap9Rx=_s+x^sNVb)ux%!@o{pvywgn49`9-%sT{-0l4I8XDL%en-8G?6s(ABmuEFC zEx!>`bHc~L`-`~?J)*?Zd+?;sH?atRnV6DhoC$2l2j;|f(}JTB%+3d8+k$-8Ctkk! zep&9=yMy|r!>`)DmE(q74|B>)SR28#<~xVl97ZOliuJ+5XVCm}P7(MPTRPI6fqZUsmt_!0l}d>q5f1L zqrqyEZZLqN3UdXeb?rd zJ+lNpKD*P0yzF-dud){{KCCz>QpX#E%*4LF))dD?sD9QLj^AphhH`b66xtyK$)m-X z0WGE!AvrIdIhlD%b51N9VV+`$p*{ti_xuOuNlPd(WWR8KbrjxqXC1_7>@szGB0L8X zOM!<)lWps9WH>(HsEP?2*0u#cz!f*zwIH~Ydf}Zf2R28Zu#|w@NoM{>ebmIGOjN31 z_vrAeQM=yZOn48qDk9)U!b4Z}`XOqLhESW;U0!+;4EW?+j$6p~RfJuepEh1Hl#8Ffrrt4Et%taucm zgkwfe(~QulnQA1QI7L-Vc%cXm4W*9_$B1@_${SWOTIsk{kXKv=k*qU4{JDuRd5?rE zJnMkA6Q|hyW$2L6WlRm$kzE4D#Xd9k-0735G<{-i2TwsVMaBtM5xTGoZa?kS2TFu6 zhA`sTrQH=^h-nn+L|Y&S_M>3fmQH1MX{7c-0h(f6ekPMmQz>K*iE=cLd$6b_ZpPZm zi+>3=g*f3^_#5NYoUG8TjOwHkrHc$vj(rG~;8C_gkldzrZpDE(V-8&S6KcJ}f_G;z zh9o(ZKx%%SY*3E(c$I}QW>A?EjE=iw>p*zEJc9Vja@OyCx!!hzcQ!FS72dInZ(w@RoJqq zqZ589_#LZbV z{2<-^U>=SK0W}$)hmV@2?Aqy(cy-qFJEeT-{RU zY%Icw3bitNsD!swLycNrXI~tXO&=zbhFvtT;G;=E0siI?lHwZS&q zMRzSXo2Rv*oBOA&`7#&K+KiK%M0bs!cB=1j0TPD`htP%+r-OlC8X%r4&i@GD^Yn|n+LJxQ_!e6QkQa8FjD14APc}UpMO^g z$`Lmx>7cYszb^2k;ZLO%8Rtcu4Sw~GayEyW4YN_lkbOb5Zu&N5q=Yd;F zCw_K;F$q)4wOxM6EWYi~smNg(+bK2=Pi`m6c$-+FBp%#zE3O(x# zv_V@wZc{$ip#ncvMHmQpyxZmN(?f{I0seqqq6eO{J_G4YMPH~HF z!rVyT|3skvAe4eNUK(f(N7k(h#+z}qJeUYIg=*gH(OML<)fUW>A>_7wsRZwEflR=#D9S}al#VdZ zF)x9z^9p7+Mz67OVvez(ZMCkb0}%rAX3MC>6}U1hc?J3=V9bq76PZiW4D)ElV9q}* z=r%xDQ&xl!xC;PS1+eI;Wttk9{lfH?6l2!os7HS!7}k&e*d+l<=%$p1pF)7K@CC%Q z>ii4pO111IT6)?0);ajon`8-zgpJE#&^e*;;)LqD&WSsr3#CmQ+)Oi@p0Toz6E4AG zB%ywF`$qNJKECi|wPiKhPP@w)-orWE2Pu1e5^4Q>qV52`PYoa>+KRRQ3GsUdehs>| z!1^l3+&W;8)xg8czWe9BHwXtGl45TZ@bgsI8G9*bziWdQl~b4E4}|WYNIzQwCD5P} z`;OrQ-KPcn6KzP3>c!@)r-SXpr`>=8feMHs4R4v&FK{}5G9A}2_>YG$drw>`O69mN zuT!RZoDJY}wcqHzyhS+jUAUCRQ6J6{$rr468$PBRwDwVsbF#}|_a;=g>lgclo>riU z2h}!$F94Cd7p1dDo9O>=^^U>4M9UXwY&$uzZQHhO>x3uHFSc#lwr$(Cos;C`<=*@1 z)vN!9sp{HOJ$pXP?B2b5^;$~C^@-vKp1;C%Hzq(Z6e(rJm1m?fpk&wLPsiM%9IzzK z@T%5v=7D=jfwN7KFPp-_v%9MZPP#m1AIDxCH<0OhIVk~}?r8t6>fz#L59TA{h@C30 z_X9oPrplTXkcK9dP`|pbHiJ12^0w-_QYoGuiu~muAwd)d;%@@61d{9LMRO|H6N;^@ z)_KC5>rALp*LnDXB(vN#-abaG`kP@#Vk7rk_Ys?;NQH2`^#BgQf@aCr5Zd_urTc_0T8ol`ls}SmeG1a z^~sh~IC+1m=_Fy>`Mu1w+Swk3UDV6cqusS_Xz>78e`U2HFrXNSEWbcNav6kCd%@s& z5o{irpPrJV6wm1ON2XzdI@`d>)QgYfVib!bm7K~JJgCtUiqW@VfQqk95?2sKZWgQ( z|7KDwqn|gc-HuuZcH*jMTYRF{@P=->7e}92)6$3USQWa2i!P;$FL}Te)Bt`dO=bB& zh%x|%7gG#J&-=f)`+V^Bd_nhoQTKcy_k1xSzu>`dP$E-V+jtiDZe#;HS>SKvd!``V zN(0u*rBTdN1KvSk&G~*!(q<`~PXcvd3mW8r;Ak5G>j|(1Xk;PuH(U8xhYAlzv;lxN zcE!QIM6mh@%m|fo#S8eOMSXC>|FWVyTaf}T7A2P~2!Tx;G1|07E^V972awwP@kaw5 zdaUgPc#DRWD8l$fcMj4cj^=>IV}3}Rvsd4xCY~`LAciTgO1)zl^gH{Mt~V4+zK##O z>Fw+s)EPpvyKxh{H}$Su(QnVchyPHJ?BBUJ>&v4_ygU)S=%iI`)O__<@+|-gUHAdu z$37d+olE$e4e{0`!bmw10gvOu_;o6RX1p-!=B(2vOsug!O=+X^DD)-fU@ez-Jt$wR zPSAFcAFW0+*}UL5%*ptHM0kQ8hz2HwT@vf;>cuw6GRRMq2Bowak@yFf=o9EoS-%x2 z8H!PQkjY?=iJ9dCX!(I@EOYYWdH(`@n0HDGh*@`rI5s0#L2V}RbbWywC;hlmmGH44Qj#|8d?}4TGU4CeKOxq}i_?@=sp| zP=4xD95Ghf3ER)yZ_odSwrGN zF2FQ`LPoel7-m63S;RwA9Pe9G4o7IOFa;k2b_x5unJ5MLZYT%5q3bK4jF zdMEA(PF+Bt9F=f9!yj_=3eW(|v2d#UY>6A}sXcKUNdI=``HJ8&4rGPAvo);B=J!x0C2M}D6=pRtDBNT~H zp$AL!DIF)=yRk&-KM$%f%}VUteOj0P*8`J#(Ip7Z%ycj_x#$8|r` zAK-Rii03DWj&6V5D@TA={UCcFyrBck8)d`$z3D@;x%&cP2nz&;87L#(KKeZ!(4IO_ zU7+}W9Oj{W?sRKlH&1!OZGkiJoA*B~*|%CIE8Kk1)YN$2dM+~%B*cd=oRt#wQOLBwHwB4!A;UBbz z$IJ*fQLpzkJF$%!2?*@2`Gs4PFJ$i@?tXCU1I&G*-Z?(Sn|D+8s+4mIA%Uk0ms6Ita-!S}536h*s zjSZnU6N$G<$k9R8JdaiWiPUo=B7mM=Dqcb9>-WPRUK1=yZGg4+42117g zeS7!F6wWrqZBtHB>^R5UFv{knnv8tA!mfmlw;1HXciU;=SXw$o0iVPb znfJS5WJ`g>hkm%HJd6o=Ks5KA8A*lkQ#~NBjTPY2VY*;}UkWmpammu3;{Dug%duwT z?)>s(04!dr5$HQQg#-Gud_+n9@V7!v!u7_tV<7c(I$P`Tr5$}-?!k^p>C#!p<<#W* zGkw%5WH$Qvv2+sMzq3eMz5B2JLq)QIZ|1K7Z| zRBwLwXYUjCKRmpBfjQ?-3eWIw+0pxd7~j#pm*>aNb)rp^!x@# z4%H5i#_^+=5g_{1;`dJb$IAs_9AU;WVLwVANT`mg-y^LNRNkR!6R#0gpMI2wpalW3 z;nKcJs`oSpxc^GhhHoRB-}#iLzmc5ZiYQS#(n=B5G>-YIDP_6jl6*r8M=GAY(tz`& z0e;PY6!GYq5)V7wA;05yMb3qKFt)~IGH2rhzoYaq-)viD82S{p^1A*pocsQRRbK%h z&*+Z>#B}JRnn9mt{RPV9Qt3q%ZIf^EVu47ef;rl?u5J3R3`PMIRw;;c!`6Hprp`6m z3B_NT9Y2|neKNWHB;@{85^B?xKKG&SZ^$Is8>DydpArJ}mt-ZaG_<_iwQ zSt>rr%4C6#YZ%?wr7^_=lmNIb)O)IH>w_>VnTXgJBU7J$FUUTLMCj10DxtZ*K~9~| zHiqA(2xyWCVzlA&Q5I#cal~(Bq19?I-g>k`6+HzBdbH{;QvrS-W>u#ZmKxl_SE9z) z%&FJjVF2>Fd=bQac9%9oeipTORUzYI@p5s*&%Xu12JZqku?YVR@&VYa?g=2MT?BHt zOfk^k>Ud3Aip$jODxC}Z1-ciaR8y*AfTo26vT3&u(hEwEO1C6%T4wyUZ&T_%6BF(2$ou~oEJeIGS48dDLy~&%pkHKIJ@q1f~3P}H8Wf$Oxcj$GL&Fx zXT`LpFbM_8pi9Z0_6J<4V@?-|iN~{85Fse!^QzKu+vysY@BcDxuMYY4 zLpd=#(m}US9gJjIRW*tUvoj#w#?+F>tj6tA?cWr`E1 zgpFd(-FKa?a-10U&Zusmk)5udU-Ajj*j@ZKPr0B5Z*^%^J_ppGqS|e{s;zZ=z;w&+ zN?+EnHk00j-0a949~`2McqO{~86OCBh+P#)-1|yj6)=Q_o}<@?>SKB_eK`J&ai>0f zIiRawTG?++VsE70uD%IlS5mcV3^dm4mOsCvQ>|)Rhqk7*YoRA=jjzm28HcUoy<}Lz zjG(z#&vW{`P6Z&p3YOATqSF1K<(wA2)=Q0~1<+>M%2*Bs!;%kBJ_1Zg#^Mbmcbcl> zWy<|gzNpDO;af(vYE*v+>lC{(onVHGp^A>4kt6U@mWa+K4vRE4nsMY{eo+*6lb61i$esqmY#5#0EoT0IRiWdI~5B$EtnY<~g9R)8(EA&G>6ChK(o(kvIHb`3@+f)|{V^ zc0PufE>Ia39PiCM<-EaZ@IsZl*c~PXf0smWWVR@YNV!x5Qp*ULEv1;4mE+)47iA_{ zbLP{hSOeMw3yX19hF9E<=?1xq)>n&^>kxE4zmQhuu8Ax48aI;*K7Xln9pRsGi?ur` zPbAOFcnVA>V0Nuvr)y&dh|~cZh}bDfo@#t1KPrlSUJyAlXpBOta_#e2XXvT2x1h3{ zF8&o7qpHAf8N|w^BsOG_P8fT482+= zxJQ~t+^Q750ay2ZFyFI-4kqj>;zC zN~1Fnm%^Q3X$i_YXdiY%DZvAg{AoAWka-iTvxCeBno}?>X9!s6PyN#Dk4M zoKL%74D3E=v6f3Dn$~IhshFENSx z?ow|8rgw2SXBHC>b?6)11}c%MdM=;5XtP9gqddATmO9Womeu2zF*Le#-Hh4a;tKHM z1Apk1(4%G-guPL-Lpc-&<619tV9zZzI&Ab0{L+Pma^E~A%g9_}~s?iycP z>{f#`ekvIParc!}&)Dls{<0F##{ixg;#d=u=s&WBQZdTZZg1riN>Vboi~ehH7Y`DlKp6hRQ6@NC8={&7g|D&{=Vrv}`5#CdmW z`;Aho{u!6$RrA0>=Tq~5LoZdc0;pf{LUr)=6>46U+>eD%+`SB*s2%b_Qk@WY;gx>c z%jM8Xy{{)Vf_cPDwIC&SGt3UzYiE4<>3M5vjYrvK%PYTja<7IqY`JNA$Qa zgpzVHWdD&Y%lnFS7YKj79sUtkq3YTl`X~?X`3C(@t6c2UBHt(p&`;L$e_G}Kqcnq` z8p{iYlPb>(2GPn54~l{MUqq1#At=m$!APx!6rkwf{~dFu1>OChrOgbg_&?-PwIC?R ze?3xv7*6n8_liKl|J!ia>eUEZ{XfpPpC&x~R7MX_@K*T_P>TPNp!@)q{x_C-V+RV6 zYAgnZ)k;+cs{cRIxc|@Ne|P)De)!_L>Oi~x=lkD@ex4Wb-}j4;$4K3@0fkS^X#|C6 ztquY``Cr4|k2cQ#J8NbaC^s~y-5=TiaMS&744^8fN&0ii89C6K*cv%IS8Kx>qAf4; zTbTc`Xh@f1{}oafH2R>JAQ%=vi`Dm#LJ7voE25Til|XCz=kNvsL|as@U&BWSJXh74 zvY-G2nz+p8&DLj0J9l|SySb&g`sMaF`qcM!x{qn1+WQv(mdE0T&-tePH0Lqfncn9G zFewp(G*6XKl`zCgxr3#tgAP0Lt6-W=EgYV%ze4OWHF{|G{U1g$8u=>DH#b0Sjlil( zyUtp!j;Oz=3L!X9_QoTFBJ;f!9j#z zjvSl*he2)y-lV8woPXwh*^K|w7CorBX2QiNv=DR^f2au~WrKvF3)$h$7Nig^H2eh@CWphtN?of_9%WU>g&dKwyCRP2Tu>b^=;@eDohI!G z;3;H7LjW_uiSEbP;9-%&!KF0B_HuBg>?4Bz9_Ds^PVpLo~N4u}U*F{5AM7a3=x zuwezZIExlV-B}h^yJaMDDUeSDoT={nDMe?)#%v1=5&Q^4*! zyKrZpFr%|Vpjt>2hOh7EkwI?GzALpc#22#leaL zG3K82uVWc0FU*xOO(J?5YL*JJ^_WlHgHhV}9?mgNq4k2+ubI|!!vAh?o+$Fd|A zt<8IESa-xnT}-y{p{P)vBFMid*ebelss-Po`yX+^id>yc@KmKu*tDV13+j=UUSU%g zEz!HEab#GvgSSrmqjK9q5mC^>Tli|=TGfd@&- ze<5s$sj?*qYG>Gv*>L*(afLlq6lu%nxl8h!=fgN+0wck@jVGc2$?i5Xu(lB@)Ts9h zaw8&Y>{@RX;*?b~2pxguPdDTP2mwAIq{o>JIHCb8`*tA@04Va1EcaaUVy{U#3ah z=nNVyPEJ32X&pk?5*d+!IZkk#KZ$g#M+_ff6UUHS5Y#{|==v^`fXc-VfBu?cO;^}F zQ%`OI6=`58l5d^A*5pIW-QG%AGdzJDI?28(-YDZJPvpP==;8$xvV%-6^vR2+*BfLA!S!Ubx=ydj9qf-GY5Of)%$(WAHA++ptUNhLYQZ@)n+SX5?Z_Utr_ zyS}t9V};Y(J6{0!M=i*ES&aS|aWRpYPk>CG1~Z2i+2SKgeir5`^~>My?I`si(ICBT z=`}HH1l{S+A}n{eWrta!fPN(COkhm{~rzaSBieH%J4KZTE608-s-tr@(xggskehUD{e?&_<~Gn>zUgD zEFrXTUX_~nF%Q@`DNQNpwkKqaTFT>zM*4zb&~HMtqdgb=I7Ocg=$A z*qdM}0P%b_1=e(u^V!|>h!+RA4S?+Tp;3bBeEg)__QAxQrlC4ruV@@7{_RIKrICL` z!R;gcEsPS7K$&9kj{1+EOwRf~BLmmEMiAwLBkC4h-R3DhZX4`s`OFzgF4H4PT*A@2 z&-i-9W~sKx2p;{_D9!0Rb95(uJD1H7~;TXBB-g zXLWvHy+0gQz(?Hkr}pyHkYKq7y&Q6(H)F+k(OOjC;9;$qJtVqP^RWCQ)CLT+SoO#V zz(=Sq6t*$ZuVB#(OO)R03ix+2juUH&)9CVdy_v1KRKrV$BpnVnvcOMf8F+>39d!pC zrx10Y38!#XbjeUAq zr;f?I5|k}EtURMez}AyAYC1$zLmU|h03D>C{nko=>GF|FzmEe8g4;G89nU!tfVH7M8HWU%bsEloTMMOXzW%$%Xc_c=*&ra6x zV_u}Xx{858?19G6j#Ks}c6D$RAo0yyR0biOgjeF!`JJ~7g+C}z%%8`M4T(ChulA8T zUbsoIfl>l|2)IZ{9LU4d_&0etp;Q=_n8Gn}=?D>Skb`x6mEl0MJ6>|VCCh~HVnMZ| zk&ID+2CF^rUNJ3JEk@vLm}S`DIoCZp-5QFcKXL?^jZUTpxJhJ?L6}Vjz%o#vYlr|g z{Pid=!4hWwDfGx`=ILwJRFfIWt}p%QMk=4^Pm;Y}bQWW*I77YuXPzdN>oyl(NfJ{E_rXh}p3?7&4yJ&WbUMZwHRz+D;8sPqspO&*qab zCQmceLq+yls~dAFdg;=Ng3_&rEHVt6AFLf?;J~ziot5RN{r$}WxcH-%a=|1ovwt8p z+0Ic4|86xMbIUt6v+;XPj(U)B)W3>p8(cfXg)?NkLIVc1y-lnE6%VmW4yR6%$y?OV zD(@5r_P-%2)Os{d`Me2a$@110ic8jav9g*f#MauYdc23>{Ky3I9`#8TsG-8O`rDT- zKoK8BxCOHK*f6*A$_zYuXCSAj7A-KfB+zV8HCKusg?zyzcGGkn<2}rNps;C5f#2#= zeFFs=3cEoA8eUrf(Ss%7>1dg1NFW}Dr1|Zzbih)D?}%s4kaOe-``fjzB4}gxlL0V5P#m{Wdmj{<+7kv z!S0vmHJuS5MF&{%6dC_1oxZ*)fKXLWS=1kseJ!E9_|FhLgoq{*PP`@QKF{dJ`V2Lr&~nEm!d$_%s%w}u z9rh$Znfc;A@q}mmYddMonc$J~=5fonl>p?IVCa_3woRf-5?MpbPqd7uDiRNq6xHAqsxM6!z-dz zJ{|jDqfG@J>by-e;npvg;Jn&~vr3wmdGt-dnE&YVrdO4Z-OI+?-e3BTdhO>j$a9R6 z9P6FG@_8|@t_fei&WSo5Qfi!KE2)kL?rxK;d8mI}7m6W>18M9`(co6t^6fNKv$ zZzO_!Y5v^NjfjhTI|V_D&y<790t3RrA`0C#p@Ox2lRpE`IhT!a7=)kwZI8%QX(}!t zSO1|-(}|!v=$y{&W$tsen>{_@F^cSzBkUx*#OmgzVAU|7H5i((A{N?rS0;|VBy#8Z z_}BX;rBP3pLA4iaKg?eeM{Pi3+i=w4p?3s?g~E6DX%qd7BrX!%!|Vlb?4#7hspAXo z72$NE+mVt)b73I;c*>Ijwp6$3+iewqEhh--jET9s^xMxOD$I|eVY|GRTkAGP#0742 zSFf7DSbJw&xw(;8>e^!cFsXBm{2#t)XjGxIbYAgOCnr%V#tXV?+Q<5AO+TEcM4a-3N?WZl%cI@++E)xEGjTua8IA!6rWTu_C+?JeF-zb|k562Ps2||^`I0Mr77%4v8cSzpEz=X=Okd9p$6JJJ18Tn z`fa_^L?y`A)Zp)7-z|NMA6OX!>V|N$QsONuJlie$_;Zw|SP<{7>{!n;O;?J{a@Ge` zeyF>?8HinG{Q|oLQF8j}3l&q~2hSkCxi*ijS)|z+?l_~37rj!Xo;Ww@P~oZ>BccQ3 z|IwQ>8rMS!l}y5O_R;v@4>m?;z^C4AlfR|BsRZRF_xMMg+uHRguXB_E0?o&I`tevn zCOf13Lq;j(I){l1RoBmG>y=1L z+;B5@Z;YL z3EGyp!J~05PGt=3uI4RdJ{O!kDMC= ziD%3?VyTb99SO6=mF{?Y)0p#Y-duWgdwjd{=o`3;8aeED-BZc4l&k%dVYP0#2U z$=o^A22p{;(1qFK{ii10;GFo>Ip+uIzs256-Gl}b4C6d!91r%MV!mnm$+2_49v+`c zKH0nJ0D`@#-$H;}YS~*VnC@E6Gm&920vd=f6>QO5YLYX9iSQ=^Gg_Z~*}TFDQtlF2 zb9M8&qAByvhBP&@v5bWY1T&J$3G+YHsZRb4h_mwa$_R}*9$E0mR`_{cWB8dh^4`z^z~1ApjqD&ItPP*c}e9NVw;Yy1GKu|La%iCykJrx%ezotH><_5Iqx)os>R0XBkl)vj*Y>j#m4OE`^$6JoG;nxdhMau%ddN1NQTDU&~|zL z(SJ}rmVktv*6$3B_1%5HuUgzDz(n-Rw}T{K_-dK6M|B6%tf&3RJMxTm73H`)Uu(aC zV7eG_W)grBl`Nwy<_NwES?oyF70RFwbD-3|m0h=$x08JmAQSg$2Vq0`8R-A90R7wT@1@RjI(X)C!xW(hS8Og z2j(|WaD~c0LHWDoxe7t0qhfFPGGVdgoI@L-cC=ELxLQy(uy2RE=e(^uIIn~ZqGqyk zca_)K-7$W(mcW9R%w*J|T2($g=(m-33`H`X1C! zO<*`ig}__lGyDr$ z0zIcBYSoPucv$X*C=A3y_%P|t@D3}C^L9YVJs4=_K<7N8cXU)jh5Zw(wmgKi6;m#Z z69XtdJ0_0^t;>K$L%Fv?h$F^M$Ns88en%XYE%Wlh>z~EBTGL?CPosKwRCFJ{#0gln z8O(3OAfNTMGq9?$hm<8SB>uuHGM*%>O zTEh1}jePBTG`sy+>)#wH<#tezGacBtV4xL&Qs7+VKgOtT7NZnlacK_%r4RNQUR?xQ zGiqCO0iT?`g81le58XUk=VUv9|zBHs{1yhzFs_rp^++3bo2&taZ#gs}SK8*A!`QfHfUxrCm+p3Bgw@b$J( zaSm~zLl>gh0{cR=w^<_t!7v*PZsDB6^_efCh+WU;pXkkOTTaO9vmFb|0yh9WqOep^ z^QG+>)|UCvE%NsT1q{MQP#R$ju;&5Lr20aL| z8fY9TT)dBVTU!1@X+i?dZ4s%VA2N6sPraUq9g@mRaUe0W!-|N@3l0!@w?51V>RyKp z>~oqfn^Bg#6itWj4W1ZQ=Af%YJ}7GvkK@}%d?`W(cQ3>_}+ZV&Y0t7JMWq)ug8-2-0&N_p6{Bp(=*!h;~HEoq2r!{kjtl|$7Nmnh% z-)lM@_?N9WDjN2JLvn#R#XA_V$@7v7_4XmOLo=S@A+v}!50+rGYu#L4qgBrh z?3ikFo97hEr`NH`8!>uPZ+0l$&{|Jn_qPGbDgqp3&9i4sg$~d{9a%Sfxo6cdJKt|I z4I%T3#-1+XeOZn_sAaMlS?;3bm$&?&R*_N(5q)20<)~MF{%?s!I-HMH-WF>O$ZU0^ zvjQ@@fCe!t$w#!}J!wS@ZS0P`SMZ_8QHZ+oKiJ@#QYgMWL?x!Jat0`7Z_%}!*c0;4e~Mqr^{*nc)tsK;b%T-+`c_H9Pg-p zgOyhLeP;z`{G95|dax>Li;)xo$%&mdpegh&Ng|hr)5if;6g$yMs+C#31S1yU7v5bm z(Mq$G174&r&m67zx+(P}Yb7(!u zEYj=B7u0Lm@>L6I+Q^{;Rv(5)p>{?@-U-N|ZjMk`3S2iL!Tu`z8v^TRn38Vu(=X~x zOLidY2CYK6i=Yp`siXWGHj+7~JJjr_tn`d=ucZpG38=_SRZfPk7&Z^CG_hErmv+zx zVbLcm%#IlUTa_wnql+FX zHE2M&csljFMZacb68PacKzLj_rGt$6oC)Q7^z$pLx6hey=9CgZHP4FJ27;3K);eM! zg>wA$U)Fs-t@IryY#^X+rvHB_>p#Vv#7EFSkQ#56q&U&Dtw>Lxo4{an5N|}Ox6hy! z*i%VZr*0rXKuuu(*X{QUs5GF#OcF#(GAzJ0JWLQooRH9nsckQ=T?&Gn<&ZW(lSVtT z+1kp+4&8b?zQsPtSTd^mNvoc|dUCPUZrP&p+UxJeUwxmy8!!(uZnsmWnUt#24C!32 zA2VFL>phLS?iYoj0GK^iPsLzi2MO-3P3uAPBDyv7is+Z1sSVf489KmW@3KxyhTVJ^ z45ZPP`Yc(Fb}z-8k_`hY?lpg})R+!e+cFCL2MFGC5L|ERC>)1Z2bK{0hId+cG*0B- z&t@8*_%c!3dsi^tdCfFr8*$s*9;YTtx|j233r4%Y=RJN5o)G;yOxhu+2I0AwYv!J_ z52D-}9>P?LG#p4-(c1t!bIJ=?h&A#+f?@?=L^cuzSBFc_CJ2V_yPV+e|oK}Dq@{pOf3h`@gvW>+WAv?(#rX=Caf zo$DM|avCsVG#uq=vT3$?7g7NJm`oj>`=9dGq72@0@6hh4Grv1RC{4(1qL}1C-o4(U$qtn5$Qm z0@K0haGK_!!O;uTmw1??#?+LfdW-J-guhTQpO#_c}F_mAehw3jcguwP^pYt7P}r zVMxy{H(^RaYT%hV+c0F@IODM6w=GE$9rPHUzhs&BGo!}QDo5MoPLZ)Od%&K?)p>Z} znGZszp21HMuyu5;YN{*jPwu}qcQ24F+MV2(H@BcTQA=E0 zQDoKg_hs3QtY{(c7MFAqFJMQ#ci+&JY#!c3ychN${RZFMew4V2n}IrmA|5jD6us!} z(DNh-R-~0nt1}&=B3Xig_~g5J-+tVl&+~ezx>*M_ZsGUlZr|dOag3U09K*w>)Qgv(A3I4>(YgYbU!?+;i%Nu;-Ge=UifFSPtZZzlt^@5(7!|Z?vS9xA$45tY` zQ&%FF_GN1A$)VaOO{HMAav#}>DuxDLK#tuulMR<#v9(M7yWo)NGpq7Nv5^(bMCTK5 zGF~ziG64ZEk>(g1Vo-N_U3GS3{FW3`dJiWv6%!VXJ#`vYl3IOSwn8t*ZhcAnov&tc%_&4?s~RgAPP7Nb3qK_Ld#9dnniA zhF`l%d@{jgUPm@ybyZls@d+uP(h@GxAExl)yWstue<)DQwvbY-+wGo>db_7U{m(`- z)-W{Xs`nqQjhx5?*rWY|f5VF98-aY{OCzmdkKgLm%AI~!lTPfz)2pjDp#mmAZu;`* zao6QjkDmu8bG6p#VIY({<^b!_9ucw=C3^QD34V2aO)tk)_mq`nR=dITSvuPNZ-ENi z!F`1MzNz>*cey&%`IBe{*YENqA;uBhfUF`V@=);e1|nPT_@TMEzL^qRoKj`^0!RWr zr?Vs(58Ud_sT_>NMvI%e&q*1;bGoV@A9Z_3G3L%*lgObfHE|&P7Lk=ex$aPEk>a6R z#!yDqo5SF1K*^b^tbM0cZ0L0fYA3NtjBNR*HOZ<>V(Oh(zB0ZO^~gx&R-DjcnQrkp z$>m?=e|uw4m#RX^wud3Zlhst|>}HI&*xYJ?**QD(>!NM=3$oeP=V&niZ0sX-=YG0l zJSU45)+eh%&-ykowTw*W=yeqHIoyN&L*ybG)zMSC*SqJV<#3k{dDw7@n5Si#8GGG{ zZP(}VwV846*(9d+w7CbWuQ+NIsqWN^B|-_%{&eYLGhR2J1)3=451ox26IV!iYf=Bi z49j3?-t0DrKzFOTTMJbH*U@EDg1Xe8vpA7z%>3`+a+IvHjC%@phoEQmmdfN$% zRXhTDUC~PLU$9bjE{|l-q_ynYmBQ>#8SN4TOS^vK4%4YiTFZ6=lwOW??XFjh+HD85 zdRQw7PKgPFTV2C@Q6seFVC{ z!uff{YS?MZR&D-BYtrGc;MaUwZKb|IRE6KTZY^wEhz)zgzH2Yb7qp)i)x+ zOIR$;Fh{YHPaP`ys&8~)@r=BuE#EY978T-p#R}0UH5C$a8#Q-TMZWzgwRZi*;o_(* z>^)s?CM*e%H;;$gTp23c56jjOnb^!@cx?a9JtWTnt5ug`NV`SOQX%V+m1!X@#F@wn z4)PN{ahImTq<2rj9+)_i7B}yBDi*q_s8-;WkD@Heu3rl)6MrvDU~tGD|Ir8fOr;F@>`dAWQr2Zn{+X|!FCe0eM63F=|<#p?Z|&Uj107XUKgia!h zuQ4gYvC651PZhGCIU8Ip&f{2{bX^B+i_Zq!XLsO|(A<)HTydJ{3j9I6cz6ky6W15$ zk>HF9>Ch$NxUK2x_F2h>U8qVeOd5j+@<&t6CjPK?$PL_|Szu85k1179HY&U71q zW)eYH)+cIkNvKlbTSd&Tg3O{GZ&1=}!G(jUM zs_?BKnxbRddUvTHy9CiVujZWIa8Bm#`eKdLTF44yWyrV?S$2slxvj#fR#cmFuFd0%4zTpUZa#V06($VCiYHtqwE`Ok!*3_@PNCc zmNUw93{I_~UxYm&!z$sCevzbMS^e;fTj8B9eWLP7?AUdqyh~`6x))IBmE3w(_WG0v85%95$DHDjM^UfmPZ?;gpOh+T%xwrd1#*iy5LxN*+OG z+@MLdRiKs>R!51x8V;~BPNl@;h@`I9SPByuL{wSTxj#jHhX_mu5{?^87sc;2@Ukxl~c$nC(QR*RX-c8|$t?ioO(>^qfrz8dn~k`+SZ zu^&Z%xv$y02cj>DUaxco6tiH*L!^!U=ewgPkL@1=iWThPLyt%c8>* zQ7OyRN!w()=cGRBEl!9id1Ekpq;P=CRJ%}`cYvD=i)f^d&5t;vtWeeUMPuu7#BGcd z$XF^N{%0f`Qq>)bWzMk!gDXJ>BOfpk@Vi-*nlpx8_Me3%S@2#ik+SXZlEOGud&(y` z{}9Y&YdxUgjI%-@mSn*WWSS`&K=+n>=v~Yonz%Giac?o=81+4s#R#gxU%gdCmNqSN zUut1~{rDi0aJVt6%)2V!sO7Hz#xj`=_VM-66<50f_yuTG4cPVtaRiZJq0W>h5Ur(Y;! zya9MVSr7h5Xe}Ik4ID0iBzDN1Cc!yEv(AI+=|bgN(${BAE)cG7|((&UxZD>SzT^tIpZMafO`CYGxUu%X}|8;EJ^*(={H3xAgyU zC8nDpYqmQ+zoZDVG)$a)HmC>vXZ;JJGDDl@g3w0p?pw^Upw12WUgcA6@eE$dU zjQa$K(TNNM^g#Z9PkS7YfiY6cA3>2)3!%VJ0aCc@T(WRbjBg`xu*RWCqbY}SrsI+k zCKScyCUh?-S~R3wj%Q*z8^R2pt#g43ktxa!(o%3l`<5~j^G-=lK~88J!sk8wj0t2txOraMieYsBHB>B*SBYR!n?YVGzbR9@yntG)CsKSWAp3wggb3tlDE`q()b4i&&vejeILL z@v%ydTVps;7=jo(ZCrE6n`qF#ua_;E0EHeccQ%}Mu|~-aT_NI=dzIJRd;||Wl5HGF z;phHk;*r(bib# zT8>q;r1>v7e&Wq@GB}0gB(-rb;KWLNxC>>#EN+?SQDzj_bSNgg6xklZ=Cb?Yfbi4i ziC}fk0!ZQdmo!E0K#A;@DbtlPY3_KzG8QCg32qN^4Pgp9@uh#2f|AqeRyyqCVf*^2F?LN{BjfJ4 za+wU`In$9D$%8c+!%woYGF6QWfd3usVo2+k%<`h?IW{$Yxj-_%MxJwMKh-%WZP75u zyEtP>xP*MOB$COx5un7vWjfm5=RNXV*24tVNR;D9V{$E<*3K6J|75(!+mo8-Nza1U z|3VptEMgvlA`X#7iT>al-NIyi$OY$V3%QfI*^6s~TX{O@kLzrD>2uu=sK)96T5)?E z5S*7AukWnCxhrw_f6BV*xGI{jf8k!FyFoy@yGy!D8l*+K1(Cj@bce745=u)5A{`Qv z5()y+DJ`8+?*cy0PoH=1KlgL?yJyavn%UWj0`Y>cICx*pEtWpQx-O3#pT*lG;qMZ7={A;?kh;>-q4$@C*+OIY_ z>@g-5Zl0f{lh`nc#Kc_*yh8gNeTk6U`ngRv#UI0^M8zlH+x)nvGD+!#O4qCDQC2k; z+U2Np?ie51q->_Y>JX+~oLTu(Rt2u%%33w8GLz-NedpcGvQE0a$ma*X=swU}Broys zboA#L-a1nE*0dR8BovpppOLoRXP08tW(xZy$ZbYc8ImaP$%c8_$osRHRmkrARo_51 z>aS8|`02giAxz&@>tB>EO@_Qq51no!tE{c%wm;U#LO-?B%7uR48_PDWOLAUNNE1S2 zU0-x^b4GSznZg<&-d4+Qi|T@!POs*24pmatr3GXS9_5>GznX0TCnzHar&T^bq~x8l zc-Wg#^h0TzwoW70ms?B@(WZB<<$ND<>})D#4X2YF9EAI%)JG;$?-TVx)SWsxQ@u%hS^BO}-R9+; zQO_m~g~olSI)ro2h|7uyp`a1&PBacR4xRiNhIr&^0sr15>6I|1^kK2RV`(oKu z!tfF^FaD%}a8G`1?}e91%}7ewX4#gHNxE~=4;Di3j(k^;e8Q_g&14x8n5+9!jUJZ( z0SX_HIiqxX78w=YsfP_|o(u~_U!Y{3*&1KaJ=if)l1OE|t@yH}^|^%aDrW=PhvJ{T z`(JqX@i?UmBKyU7DM%KE=J0%W4G`0o$jRW`p`JhPzn(zlJf4}@c_naLFz#};>+SFg z|74uQIoaF_^U>bEb%)j&OmN{sB$`|P^O?}#SMgr2^L<#B$*%K;Pj7fw&k8{%Vqfso z=mBEs#uq7Sy)`SAp)V|pmQor^yI+My{Ze&-QFhg5i2)1vBvE`c+1P8`vwUOt z&Ien*kbw-sezxThG2c|yOetswk?Y0ftB*;(tC{f?M#!R)7nF{nQejp_!=38$JGGxJc&n-2I1m`QZ2sH!q7QvJ$IT+uN3Rp>Vh% zAi~Kq(cE>J_qHDab6HILsk(HgzN?Y3(&vI8hnvXE5R6|*#*{ar@uTq0_tcv;$VoE^Q53T8)rNJ9p4bPB)1)38$V@pXESxK^&oPAQfVoqns@Z@(rZLi$Qcra;0+p z7=--viQ+MPvrE$UoiggV^kz5IwB|NEN`xlcj)0BSISuL7?B=QdK=x!r zzW1yFWjLfGPw7|Br~TEQg9mjpny=Sa(q!j<8kKq{m3ET9Gc+FEK8tw?&*l;jG;H@O zwW~>Ten3zcW1s4hYvhWW|6Cld)->c7%CH)9?x9Z`km#|Dv^AF0#D7DnL!6l? zgDr3&XHqt)2R6)lT7bJ%^dgOZVB|~Ne%Q7n<}lg-i{`=P1kEqIyMCnyOc@ew?-C+n zUUw4|@x7k6lx)u>uj2EGq8w1z2?~3FJRMOJ9nzuXvrEas+$2>?y_E)ThNLw28Bc+8 zD{}O}st5XRF;KeqIg(r1gYlu(J8eHBIKAl+m%<&ERPGYn-<9S^UQG#nzTf(EOCNbf zj&8$hhH85>XeQv-5W=r@iaz{ShNJFIM%K^*o!aMOJ?UMeQ>`CwbuyhtUvQi`c%Cn~ zT;kLlpmno$rP7Ff3u{!4W`R?DB3C~*be^WK6Zo1O(qV1GXr%I1x%myP{?K?s+hs_b zF8$i{^RX@A=6j6zz{sT|IFI{lu`WJ3NtQJo~L zWk!gZaHj*x+JXB%aA#XN4{@UR$ixzjHG`A{ivL>1<3mfe&j}r?VE`OccX__h+zO?@ zyXVKPnX%z7g&BFgE_wZLmXriOR@S`zUOgr_FADpBvlYrP_6DuWOTws!_lcMHK^OlA z=boNN@pWydV>^Vs*bblDC%V0gh+O!cDW`O^eCqQnbqupj6;z6piHmgUBZmo3$Ltb| zFLt-BSQZl6Mk#&E-+DyA*-C`emArAh1H$ZIgcizq2h}Ahtcv~M7BTaFhS#G>rk(MI zJSl&b=!c<5ftUjJ>`BdT!}r**MCOtC%}!0v5L?}|pQ;Tz=Rz!=Qm^+`(5eu9+HGf) zsuD`1GhAA}{z5Z~-cb^XFKNNh-T3-|rBL_>KaZ3|Qu+azx2~r^kzf{0Rq`l|yl80hNFD#Cx)0s>94Fq~?}c<9TU zb&TK#VLITf9ZC$>X(zqZcyA$?#)!%)6=zNr5%&d7m*o9Yybpr9qh5j5VE#6ZjdHq{uG>AICZCwjVud3HUroBEqT)6{B?W%mU`;A)j+ z4n=nzKPf*ll5CM=^W0YdcXd3qSo){{?M;^$x%9xvV3l5jkF>KI)_5k$lEH}r2?Fh@ zO8M;(Ms~G}aF!{SZ~>BpmJdng4|@&SaY{1^?m46-ZMu9f7aPQ>#KT;lw|>@;YF~%+ zZ2cCkbx*jV(nPFspmwKSg(zQTdqk=ffn`+)=}X#s#wJ51Xo0n4XDD4`Vwkxow}gGu zZ&BUmf!5jWa{Wi^FiY1mJ_*Clf~d!ccCb+1{$e_PCfM z(eReY7ZZpqFb|3J_1e#g?Dq`s(FYm^`{@r+$WjoUYHFOnK#Q?zC(n7I_OKWng?&8VJq?N+8+IoHKxN? znmNbX&J^ll{1iT8mlEu|(IJ(|_QBK}YD<~oG|6*BI=yjbfmhnzm~=CN=Eiy1Jv--ni=7ev0_hU8pDsvJYM@*n&s0$T(I zjm%2@9G3K-t2q$F4QzIj@APPKM{gYpf1dqrJr*N=_HgvDaic*XxacY|@a= zd8+kosRYr%J!dh+ihcn+-{X07o#pCh0F%Qkk9`#xlC%)0=6(Kc>JUyyVA6d~W1`3PaDMm>6Nvv%R z6_r&|PkRIM@nIoi083@1lKn0>CLszJEj*oKH*&OkR#qFgr_LnOK&dl~-l-aM8`neJ zw9wUs|Lt0fR24)@ECN>|#5*#b#L&=f>X9!=wkp1zg@vGBV^aN%ObukK< z586&j*!#*5ipcNi4_VtEr`0&E6$p8fNL>wg44x8BK&`x=E<)*&R2ALGy!k@s=$oSn`6t00CyAzZ?FIct zksoiiM2}0+?^ljE)_yCl;gp7WjKE&MKVMm= zOy#c$89*b6G>}#`B8&$UlD7P$$8GIcvX~ap=Eb>@AhrQ{Ez{IVZl98<1@1?m-?Ej} z@tUt?WDMcI`koFe3r-BWRBUCale{xR#-p@8X|tD-e#D$y5|(WNK6(G zk=gD1OPS+-Za5!uC4;weg*%ES$Bk|E}UC&exB zglLn-yN5J}gw1A?N#&&}tZ>>VrC!*$Rq?sF2WQ;%UWJ(^{=1&W5t25d4j3^R zX@#rQ9wt=qT)Z^$eq^M_OLO0Wr@NHh`FoY!DN<$#dR~HbK#P`y@B2iLM=H+u^%j?_ zCyso5%(xL-+_*S7o~L~h;^*T=@ZRoT_EL1d*Mf%&+ffIaT)vwC6i!Vrr*pBp zGpgD<&(=>!)tOQm>UQ7BizI(k4>S91)dg3-*UNP|p~RVr0;nscMux@-E0ZPtNpY*8 zamnM=a)=GozA6qcIF2xagaH`oh_v7F z#zmg79zIyb?e$ROwvG6ve;;Xh2`8A$sMMucW9vrkBm*={9Dd!-R~9S z<%UrPUt=&Yb$4T_i{(*+n9AzM}pN8fRc^tews zB{<_ff*2(XS$I#g)!FaavN8b{>)gj#D?W7YkHv>VYwd21huXSQNL2IHz1hy-DUNBp zKtO>=SRC2OSoKfJ7sptHR6X}4)aJypKcxM@v)VJqq6{f+BL8ORMwai`Ax65qTShnB zb%-F?l)cS?gKSERU z)*E=_*Zq0)ksqlBD{IdVp`R{c>btph{7+MxgsJpesVL~y*%-40m_2)G z#6u4k3aO!@DDq`muO70ZbK^aCXN{b7Ci*r}FzU> zH&uH*()k0PlCg|+3LU5UweRr-}^jz3^JoWLA-Wl3Qy(fmO z0d4%FYF11lG3rFqKn?vO{Ee8A>VUQyi#=ye?sA~!nfk5GSm*Zd^hKSSQ?+kj!XGc6 z3fUO%QG3E;PE+4+S{}`X8@CO~QEnEso<+@Po=|&nF{Xbgb|TY{ac5vj?fz*MYZTpC z@BFh8K&nWHVY{xMPe+` zAJ!VY$FG+ZNoF{t8;oL!#tYTz(Yil~XvNOwXoYE|_H>#hoLN+ zmL$vC|Js(~J!(8M8K|H9%6i%4irWmX4U&nJv<4(hAxb_bI8s*W`bo78@uI6qCS1{j?QSy8N|+w$ymSA1;!v1Cw20?4zvGh;MPgM7 zC&W~T+`a}SxAgh=?)V*U3Iv4AByJ+Lz-C1nZhu=(M-j@Dh}D`9yv|M<`alH=T6cGIK z`-Q0G&Ph5-etwViCzCf6TPH;33OQ%PVUhChu(}V~fUnKt-m(+y zq@|~e5;)CLz2(oM9Y;QBBSQONOx;Iy$=ACr79CRY;;?V}Di#k!-X%~cF~ zOTIQ%XhevL&tklybl!5rJX+aH*m8wL&SHFFAMGVAO-#J+;6S4_PG#STo5O$GYLq|Y zR$L%ETp_7;V?@;SeLgiSj!&aj^1Vg6)Qw(p9~%9(UMXtufbf2XB7qOhe)#tUCeiiZ z`J=XkL+)m+d3ASn>U{X=98fEwUd7k{bOedkMgC>T;lp9FbvH}X?m%nnu=JO}uqO9n z`NP-YVYhb)kzvk0=XNaw?=sUCnfv-DX1X?TYv4cNlr#bS6ykoj%)YutSg`OJcPfQqtIOMjIYBfQ ziV)#4jZ^YFPPoa08cI`B3_NNIv88#at=;ur1|~=crNB7h4zn8@71JDb zYBbRk+|yFT5ADyp#s6x_>FZ*UGfq1$FwH?=T!GN}{#mrt7~RmoY$(DR$^apH-UCJd z?rz@&MuamRhT5seZ~EPM1$#KG%+jomJf73QxetE+P)cc#6iHCA-nBK1AEe!GCO`6# zi7%%_(nCDHo3XcWo5NOU0Kteon#QbLWMo@qsm-s=vzH>zvJyWsVt+{<^TAS&&Cun5({Ia16yR$>Gytp9Q$j z_&r2d)%f?V2aW7k9F$y2UcaMlED34K@F)ujz+WY|U!lmExi1r{IHM!;F?xT(VI@7s z*M7xx@SK02qjHIuGjnS;#t*&8-@mBl2fX+}ZS;U%Wo;7N|EXj=!joC`rU_SKPyE#S z+QZ$4IKD5wiROw}XlgO~Kf-KtFRFR+WxaN2^a&;HGm0Vd{Zb1*XUzE83wN(0mg%8* zgO&}nrN$z!OK%c(Ay+c)_q@5!$L%I5zV)}^dExe(JA5H`EFu26FTRG)>J`W0`O^R% zX!MObHyKIY#9MepJbUs5_0OF3=7AHx4C<0M_{1b#WFfA&Lp4FzyXPdPTGSd$AJpfm zH>FD`Iiw!pQMJ-y=$GD&ip2>NXp&IA%UKEjpVO4)kG|{oYW)6=kZ^Ub3r9Q5| zWm7s(5s|OAUCaB}yU{ptRPC7NNlUSKG$((7Z$yjN3FQjyhFJ`zvHU36EnPIxrVh4! zUQ~*iSxbHH_@d*bTm-xR?B2&rbNY6({PIVPdh?k{t4(jT{Lp9gj3$eNWlir9sB4ec}8)%gZ*R0^{cLN``4X_?1kg#M>?fBpD8O7?s*sfpgc=vH6wg` z&PMpiOwaWU>!ZGa(KelFOVQD-6HJn|9w{%SmJC9znq7NM$i=t7$|7225@;;-1;@EvYHI-h}Y* zIRCA>w1WqBN=77pdz>jXamOuGv#~rGzSXu-4-%I%+&9HJ2i$!>ULOC#Y^FTKSR`3n zb>04|=C#(jOziCG-ZGU8ph-+QwvXQ83pwH4>T#FhB!ky&o!U$eV60#mJsGK7;36mt zqm2-T)-!mZ2nOL&n}5NUrF$=PEBou~cVm`c#&@2kby-e73+9n&`no~ba<9_dT;8WD zc>YtpOUo-S6(Z%A7BAN$!l=wLj=UeO9mu2_t#&jKA2!H#dDRtK1uBw`)Lm*fYCy?M za>vQ7HjxwHs`D~UoTw$)_U6yWFa0^NooXHLd$B1I%0GxhdbAuK95VS8$`K-Ejpweg z_A2*Ok;MKowZlB)6A(TS8*x2&R>H`#w|8?z1HR{Hh$snB6e8k|U;HvTlJJ@b~VK!Zub>5!zJQOT{tev){)_ zA~SXS-uDKouOsvc5^_>1g*_({lYe6D<2tSkDKrUi%B6rw1j3hYE$tbV;EoJiQYX zhCcZvkSQ$aAv0ol+c)xxXP6!G)3Eq~H(_y1$B?^d+zvzcWC?h;`n;C<`j6L77x0^@ zJ=sVwjMgqTzp4eH&F9-Z5%VY7WY*`oSMQ$!dtDZ1X+X9^ycr@^_k=Tq7B`B0k@Rq> zy2FAgDT+1%3F=F~2k*+mux{;Mj7Q?LE>iewpIh<|k8Un_sxE`KMG+O&{rgPp(H0hutGde6=8wQYBq>cqaF z5=**W0`T6wD;tH?{H3NFGHPlGAB$3+1MxKf4F6B{@>IKyg2U1XE*i})#7TW>bR0r+ zQ#k@$?)y5p&s(`nc%4kQo=i+mjZP5RD8j$pmZ?syb3nUIN2vIcTH?ZHh!(xGZg`om zE4R}{qXjS7N-STUV~o=4?$%qcKt37OCno;pLX8MAhmYK&4{-(09vp<|=&~i=KDP6F zz%*6Hkg`LeY@iw6q7riOS=vhFs9|2MM;{y8>Gd07|Iyj{JcF*|k9K-;gq8Uz6h=qz zQx1P`-)KX!(FKOS*LqHA^?}Tr-3FE~>!bU)yn{dLW~Bow`lwF1pKuYFda_9f-Kc zG&q*0!S|AM38sn5ZXB4kh$F;K-}(9ij>N-K+%q;g&rE58L#y)?R|&I&hZ22j@eDO1 zW`+D)W)@?pfo)^r`{j~^?GKFXuja;jMjh-oJ_eI8+bED3_JqAter7cgcZ%c*PDZfj z>RHgmLHDBI>s|?Xeo*qw?8+;BEfNb%K#$D*YY`vVz8FFvz%C6U`SmW7*D0gA*$A3_ z^Pwkx1>EBDYWvBXToPvry$uJCGf7U04+d<_d{}Ato=LJW1#N>p701Sno_@0Z3ZJ;F z&;UsZ7LkfuhcsQyDO;~jn%vX2G6y&zHcV?@NU*F%H`AKpk_B(4v`i?ze9S?il1y1M zOnk_XT@%C9W*__Uk$dx0srSq(Dyw_|nP#_V1``#RemkD;*V`|{`WU+Q8$mNR&QF@p^GQQDQ%w-!bo2hWhWG6#Pv zZ@YK@AqPc0My90c_;jzq;{YmO zDM0PYBef*{qBOpbMmagLQqh_gDe!RwK|YV8IX+4}OPh2Knw>{gE1U3Qn;2P@W-~b7 z*8pjQ_5%INR8I~L>}a+5zmQ-Q|Xr$HqBpG~UO&7qYy#$vXEasYgmP#iFy zTy+dMevXt7v@p9MBBH%lvuZ+^XTWmp@_3f_{^1J1gHBNITt(g;5OOK2fFhf{Qz6mg zwP}*1bZ0E|uy$Zoc))wL_G1A29AOqAgLTFH<-X@MT(KrkpABFMw{LvFkc=_F;)CzP zHqq->Oj@N|!Wu`)u|aw&-zxAb9WL8Zm_)Kzc~FVbrc=ruO(%0_&&QHm;iXx(l^JfS z0C&x=(Xx6cBf?u%O3UX*=Oy>&p(c= zQ4k0*8p(cr(J0hzQZeIuGMH)lnB9gkCHhC(qG$p2Q*#tF#x^nnb!lU(7e!HUZj4ui z4Ygw!AM>a`(YC%)wMTJ(^9XM^i>6D%4U_mw-9m!5SvX6eeu~^0& zoi`@YRb2U@iHe#2<#@F;gv0jRgU6%0wgL6~8`@7!Lri$Pabi2hDPBc{dgYjByw1FCuV70UWNW5Ze*Jz z5`(uye-o^BiP+Sbu< zucv3eUCO?)8;RRU$}`Pq@hXG398~6#ajfs}$UKXJ(Y?{f=Hgg6$YMhkpNx~!WYo+ih7EPK%f_P5Z5jsZvb7BpSVho4X8U^MqaAHS^Zj58_#g zY&-|2DN9V)mqdB0cw0X`;uHC*$)ydlaUSglx4mpB=HywA+~>z(ZHSwfKx4ie3k-hY zUUK%o$R{B{+c5iVaeoTQj8>iKLN~hXm^YrL@ik( z-@H#PYfJyOK!;{NV4-;BnI-asRIbY~YmVtQM2uiwNXouov7m}?CSy!IC5HWa?<8c7#w=b&ek2CU<_USC(+_dd=cEvEEAOC9w|A=&;jbZqln3 zNej)g^hS|=fAR^gtUSB56g`6rPM5@P3zxTWLOrBm+-Y^-#DgE(N|Cu3U4Ykrrt*p1 zxPr*sD&YlM@LGZWhUAyK5gV1^22P614TO$Xzfw2GmWwhDogTG0W2yw3NIB)~<)nR& zInPbJ&`7>ev!HNf8dNym9p`3YseTt2K4sK!+}A>a7S(?zT&ZJzs3xrN;><&$KT9@1 zUXGGeSVEzRhPZ3=;aIn2xUn$P0;VDLXcuO`OM=n2iA5|!+8K%$RM+zx@}a{B1z?i2 z{(t@7t1XTJa4+Rs0FDd{vwG<%G!cr4fJgwjndjh8Yy+S(!en6OWjzLf79&jY=3fRQ zO!em9CL>Jt=AQr)>@L<7jy5x}A_7du4lv*u6O0DnWrmU5Ks1+^hH>+3GZXl17!xqb1Y^A3W0{!^Mh?_4!>|(3 z8Ylr*HWF{~^wNPhA?;x<@lHmDKi zKQN%w)`=RyM8G-=j2d=@1aMfvf~Rdk>TMvB9W3RF+J_#x;Libpbo)Rc;IQ)_7lsQE z#{#3jM%^pa-x&p~7Ydd_^aln4=}%95wMzn=UP*n$ZzKmLo(z1)1;BS)a1zQN*J@@m z8;s!^WZN;I5_}s15tM*H$p3&qAWHe*SpWzW|C0|bBFZ)pPiKG*0L3Ln0P2}x3^xpCuNc0%4V?YM zu;#c1J`0MTi1%LuMoS<7;FOHt4`zUNfqqZ`d9lLiVGUOf>cRmdL%;$eIADxaR|HPn z_N{NA{(C@6)BmL~9pDQGjPDwx$>>Oz4;rWz%zA(Opf5nn31hxteUB4lZ4Wqb!q{&J zuRsEn+YbRK@k5{mrWwI1Udyln(h-aN0TeD6&Gk#mM=lsSqIME6$pvGfzUo7AessT+ z3@#X0()_O(^^*|*<1_@&?YUqW)Qk`tLvN%H4`o2X@KOJZ6=*~N29gkNgPT?SFJ7;P zKv211}A;42S|6nI61NSMqE`reg1^t~2DYAE14 z80dQ}e`zUX@CJ@00HdP1f})4%3Yde+qy#(0?0-R7fiFBTv1@)MA7ey?Z-Gq+=6^v; zQ#btX@xfp~GbNPdJ77T=(BipdzKqUc}?x*1F6{CH&io>Kk)Z?z&i_vH+SNA zVAR(oXWn+;dJ1X^hw#5qU2=K@&Eoyd8k-kJjt~UI^MO0kcTFP@{VNFq$Qk+=8xeTD zf_Mef9vmr^B}%5Y2Usc-e#$ut4W51byIdY&AU~$qy5~mcTv%@1+H(@ps@? zu)nj}9p>L0i}+xas8=S;i%vn70%irkc>m4`#0$bm0Bk`R;dNWE4b9!IE-C?Sr3OlV=P%YT+;5;*c8F+f|A{NZ(Y*tgJD^LafvNZJ5@J2C z9^<}d?znhf@*HGN3^M;41p&S7O4}?VFw$$6iWC5S_*=*gwOIg0e9ged^*}@wtn?n^ ze;I^C0B*uyF%KK94Z}A3S3^K6HGpRN+fuaY0JSiT>zWtg3odMY(4JgiD*!fDe_SUe z0JZ4vcs&<;mem8QP7f^gZm#bC@=hf3gGLy^YypQeJLFacUh?hmFA$X((qsP;7q|JCeF3YfzR zz+?et;Xf`F$}5y8z#$H!yM|&OLM$GD#vBIyR_hNS1Y${h11%8;oBONKN>`=!-vY}O z1{EXl7gUb<3d#e}-G$*@>qPi2sFRn1SJXRz=RedbS&%xY3|L6R2mmZO7}+)3Fk4?{ zO|VMKV03f;#r9b31`3`?K?V58{f@F@D_X4!Fdsp{3jQ5B1v)o)@OTVtpc}+r%fc!L zmU^Ifb&KrkfDF28YWNiuFuS3G2V)RkQ{$vTYS@DtHZ9--*HktckjiR*L%lj41F)3& zZI8R*I2~7w*K;r~{|sq z!cc(<85qH}T6?b4YSH<}E%it!2|ywH+i+}G?xNW9_kB#jLl#DK{e1M*eZIbb?~`9k z@#l1jztw;^cLgN?PTQdbHx{|_>OVif{N3ve*to%GeTDvi-4HRcq@IE?QwDZ?!Fc%N zvfaOWjP1HLx*nMa;_rg3(YwnVZdV^}fHshVa#i}(05LFo7p&0%0t|4ohLQpJ5-^hM z`f*5r8KxTgo7^k`>JA()Cb~{9e-7cX{ZTj=^I+fOnh*E@)irj2%bvyyv`YtQ7nZ-U zX2}0wji9*K8Sq-Dt3f9~LJ|~;6YVzu9PPvTe_b(fl#Lwv6a6;?9DKqB#=$Il&Ex82 z8`!+!F@SXqpakfpU}V<*evV6Lbn151SbAKQCXz5oCK diff --git a/bin/rescomp.txt b/bin/rescomp.txt index 1b7cdb53..77a0bb17 100644 --- a/bin/rescomp.txt +++ b/bin/rescomp.txt @@ -1,4 +1,4 @@ -ResComp 3.87 (November 2024) +ResComp 3.90 (November 2024) Copyright Stephane Dallongeville https://github.com/Stephane-D/SGDK @@ -111,7 +111,7 @@ If you use a real 'tileset format' image as input (as a font) then you should se to avoid removing duplicated tiles (which may exist). Syntax: -TILESET name file [compression [opt]] +TILESET name file [compression [opt [ordering [export]]]] name name of the output TileSet structure file path of the input file (BMP, PNG image file or TSX Tiled file) @@ -125,6 +125,12 @@ TILESET name file [compression [opt]] 0 / NONE = no optimisation, each tile is unique 1 / ALL = ignore duplicated and flipped tile (default) 2 / DUPLICATE = ignore duplicated tile only + ordering define the tile process order, accepted values: + ROW = process per row (default) + COLUMN = process per column + export enable the tileset PNG export, accept values: + 0 / FALSE = no PNG export (default) + 1 / TRUE = optimized tileset is export to PNG format '-tileset-export.png' Tips: When using a 8bpp indexed image as input you can use the extra bits of palette to provide extra information for the TILEMAP data but you have to @@ -141,7 +147,7 @@ TileMap is used to draw in background plane, it requires a tileset which can be TILEMAP resource isn't meant to be used to store large background level (eat too much space), use MAP resource for that. Syntax (image file input): -TILEMAP name img_file tileset_id [compression [map_opt [map_base]]] +TILEMAP name img_file tileset_id [compression [map_opt [map_base [ordering]]]] name name of the output TileMap structure img_file path of the input image file (BMP or PNG image file) @@ -157,7 +163,10 @@ TILEMAP name img_file tileset_id [compression [map_opt [map_base]]] 1 / ALL = find duplicated and flipped tile (default) 2 / DUPLICATE = find duplicated tile only map_base define the base tilemap value, useful to set a default priority, palette and base tile index offset. - Using a base tile index offset (static tile allocation) allow to use the faster VDP_setTileMapxxx(..) functions. + using a base tile index offset (static tile allocation) allow to use the faster VDP_setTileMapxxx(..) functions. + ordering define the tilemap process order, accepted values: + ROW = process per row (default) + COLUMN = process per column Syntax (TMX tiled file input): TILEMAP name tmx_file layer_id [ts_compression [map_compression [map_base]]] @@ -172,7 +181,10 @@ TILEMAP name tmx_file layer_id [ts_compression [map_compression [map_base]]] 2 / FAST / LZ4W = custom lz4 compression (average compression ratio but fast) map_compression compression type for map (same accepted values than 'ts_compression') map_base define the base tilemap value, useful to set a default priority, palette and base tile index offset. - Using a base tile index offset (static tile allocation) allow to use the faster VDP_setTileMapxxx(..) functions. + using a base tile index offset (static tile allocation) allow to use the faster VDP_setTileMapxxx(..) functions. + ordering define the tilemap process order, accepted values: + ROW = process per row (default) + COLUMN = process per column Tips: When using a 8bpp indexed image as input you can use the extra bits of palette to provide extra information for the TILEMAP data but you have to @@ -207,9 +219,9 @@ MAP name img_file tileset_id [compression [map_base]] 1 / APLIB = aplib library (good compression ratio but slow) 2 / FAST / LZ4W = custom lz4 compression (average compression ratio but fast) map_base define the base tilemap value, useful to set a default priority, palette and base tile index offset. - Using a base tile index offset (static tile allocation) allow to use faster MAP decoding function internally. + using a base tile index offset (static tile allocation) allow to use faster MAP decoding function internally. -MAP name tmx_file layer_id [ts_compression [map_compression [map_base]]] +MAP name tmx_file layer_id [ts_compression [map_compression [map_base [ordering]]]] name name of the output Map structure tmx_file path of the input TMX file (TMX Tiled file with CSV encoded map data) @@ -221,7 +233,10 @@ MAP name tmx_file layer_id [ts_compression [map_compression [map_base]]] 2 / FAST / LZ4W = custom lz4 compression (average compression ratio but fast) map_compression compression type for map (same accepted values than 'ts_compression') map_base define the base tilemap value, useful to set a default priority, palette and base tile index offset. - Using a base tile index offset (static tile allocation) allow to use faster MAP decoding function internally. + using a base tile index offset (static tile allocation) allow to use faster MAP decoding function internally. + ordering define the map process order, accepted values: + ROW = process per row (default) + COLUMN = process per column Tips: When using a 8bpp indexed image as input you can use the extra bits of palette to provide extra information for the TILEMAP data but you have to diff --git a/tools/rescomp/src/sgdk/rescomp/Launcher.java b/tools/rescomp/src/sgdk/rescomp/Launcher.java index bc9e0979..a34881a4 100644 --- a/tools/rescomp/src/sgdk/rescomp/Launcher.java +++ b/tools/rescomp/src/sgdk/rescomp/Launcher.java @@ -30,7 +30,7 @@ else if (dep && depTarget == null) depTarget = param; } - System.out.println("ResComp 3.87 - SGDK Resource Compiler - Copyright 2024 (Stephane Dallongeville)"); + System.out.println("ResComp 3.90 - SGDK Resource Compiler - Copyright 2024 (Stephane Dallongeville)"); if (fileName == null) { diff --git a/tools/rescomp/src/sgdk/rescomp/processor/MapProcessor.java b/tools/rescomp/src/sgdk/rescomp/processor/MapProcessor.java index 1cfe80cf..bf476424 100644 --- a/tools/rescomp/src/sgdk/rescomp/processor/MapProcessor.java +++ b/tools/rescomp/src/sgdk/rescomp/processor/MapProcessor.java @@ -9,6 +9,7 @@ import sgdk.rescomp.resource.Tileset; import sgdk.rescomp.tool.Util; import sgdk.rescomp.type.Basics.Compression; +import sgdk.rescomp.type.Basics.TileOrdering; import sgdk.rescomp.type.TMX.TMXMap; import sgdk.tool.FileUtil; import sgdk.tool.StringUtil; @@ -37,10 +38,9 @@ public Resource execute(String[] fields) throws Exception System.out.println(" 1 / APLIB = aplib library (good compression ratio but slow)"); System.out.println(" 2 / FAST / LZ4W = custom lz4 compression (average compression ratio but fast)"); System.out.println(" map_base define the base tilemap value, useful to set a default priority, palette and base tile index offset"); - System.out.println( - " Using a base tile index offset (static tile allocation) allow to use faster MAP decoding function internally."); + System.out.println(" using a base tile index offset (static tile allocation) allow to use faster MAP decoding function internally."); System.out.println(); - System.out.println("MAP name \"tmx_file\" \"layer_id\" [ts_compression [map_compression [map_base]]]"); + System.out.println("MAP name \"tmx_file\" \"layer_id\" [ts_compression [map_compression [map_base [ordering]]]]"); System.out.println(" name Map variable name"); System.out.println(" tmx_file path of the input TMX file (TMX Tiled file)"); System.out.println(" layer_id layer name we want to extract map data from."); @@ -51,6 +51,10 @@ public Resource execute(String[] fields) throws Exception System.out.println(" 2 / FAST / LZ4W = custom lz4 compression (average compression ratio but fast)"); System.out.println(" map_compression compression type for map (same accepted values then 'ts_compression')"); System.out.println(" map_base define the base tilemap value, useful to set a default priority, palette and base tile index offset"); + System.out.println(" using a base tile index offset (static tile allocation) allow to use faster MAP decoding function internally."); + System.out.println(" ordering define the map process order, accepted values:"); + System.out.println(" ROW = process per row (default)"); + System.out.println(" COLUMN = process per column"); return null; } @@ -79,14 +83,18 @@ public Resource execute(String[] fields) throws Exception int mapBase = 0; if (fields.length >= 7) mapBase = StringUtil.parseInt(fields[6], 0); + // get tile ordering value + TileOrdering order = TileOrdering.ROW; + if (fields.length >= 8) + order = Util.getTileOrdering(fields[7]); // build TMX map final TMXMap tmxMap = new TMXMap(fileIn, layerName); // then build MAP from TMX Map - return new Map(id, tmxMap.getMapImage(), tmxMap.w * tmxMap.tileSize, tmxMap.h * tmxMap.tileSize, mapBase, 2, tmxMap.getTilesets(id, tileSetCompression, false), - mapCompression, true); + return new Map(id, tmxMap.getMapImage(), tmxMap.w * tmxMap.tileSize, tmxMap.h * tmxMap.tileSize, mapBase, 2, + tmxMap.getTilesets(id, tileSetCompression, false, order), mapCompression, true); } - else + // image file { // get tileset diff --git a/tools/rescomp/src/sgdk/rescomp/processor/TilemapProcessor.java b/tools/rescomp/src/sgdk/rescomp/processor/TilemapProcessor.java index 3b234392..50f0861f 100644 --- a/tools/rescomp/src/sgdk/rescomp/processor/TilemapProcessor.java +++ b/tools/rescomp/src/sgdk/rescomp/processor/TilemapProcessor.java @@ -11,6 +11,7 @@ import sgdk.rescomp.tool.Util; import sgdk.rescomp.type.Basics.Compression; import sgdk.rescomp.type.Basics.TileOptimization; +import sgdk.rescomp.type.Basics.TileOrdering; import sgdk.rescomp.type.TMX.TMXMap; import sgdk.tool.FileUtil; import sgdk.tool.StringUtil; @@ -29,7 +30,7 @@ public Resource execute(String[] fields) throws Exception if (fields.length < 3) { System.out.println("Wrong TILEMAP definition"); - System.out.println("TILEMAP name \"img_file\" tileset_id [compression [map_opt [map_base]]]"); + System.out.println("TILEMAP name \"img_file\" tileset_id [compression [map_opt [map_base [ordering]]]]"); System.out.println(" name Tilemap variable name"); System.out.println(" file path of the input image file (BMP or PNG image file)"); System.out.println(" tileset_id base tileset resource to use (allow to share tileset along several maps)"); @@ -43,8 +44,11 @@ public Resource execute(String[] fields) throws Exception System.out.println(" 1 / ALL = find duplicate and flipped tile (default)"); System.out.println(" 2 / DUPLICATE = find duplicate tile only"); System.out.println(" map_base define the base tilemap value, useful to set a default priority, palette and base tile index offset"); + System.out.println(" ordering define the tilemap process order, accepted values:"); + System.out.println(" ROW = process per row (default)"); + System.out.println(" COLUMN = process per column"); System.out.println(); - System.out.println("TILEMAP name \"tmx_file\" \"layer_id\" [ts_compression [map_compression [map_base]]]"); + System.out.println("TILEMAP name \"tmx_file\" \"layer_id\" [ts_compression [map_compression [map_base [ordering]]]]"); System.out.println(" name Tilemap variable name"); System.out.println(" tmx_file path of the input TMX file (TMX Tiled file)"); System.out.println(" layer_id layer name we want to extract map data from."); @@ -55,6 +59,9 @@ public Resource execute(String[] fields) throws Exception System.out.println(" 2 / FAST / LZ4W = custom lz4 compression (average compression ratio but fast)"); System.out.println(" map_compression compression type for map (same accepted values then 'ts_compression')"); System.out.println(" map_base define the base tilemap value, useful to set a default priority, palette and base tile index offset."); + System.out.println(" ordering define the tilemap process order, accepted values:"); + System.out.println(" ROW = process per row (default)"); + System.out.println(" COLUMN = process per column"); return null; } @@ -83,17 +90,21 @@ public Resource execute(String[] fields) throws Exception int mapBase = 0; if (fields.length >= 7) mapBase = StringUtil.parseInt(fields[6], 0); + // get tile ordering value + TileOrdering order = TileOrdering.ROW; + if (fields.length >= 8) + order = Util.getTileOrdering(fields[7]); // build TMX map final TMXMap tmxMap = new TMXMap(fileIn, layerName); // get tilesets for this TMX map - final List tilesets = tmxMap.getTilesets(id, tileSetCompression, false); + final List tilesets = tmxMap.getTilesets(id, tileSetCompression, false, order); // then build TileMap from TMX Map return Tilemap.getTilemap(id, new Tileset(tilesets), mapBase, tmxMap.getMapImage(), (tmxMap.w * tmxMap.tileSize) / 8, - (tmxMap.h * tmxMap.tileSize) / 8, TileOptimization.ALL, mapCompression); + (tmxMap.h * tmxMap.tileSize) / 8, TileOptimization.ALL, mapCompression, order); } - else + // image file { // get packed value @@ -108,6 +119,10 @@ public Resource execute(String[] fields) throws Exception int mapBase = 0; if (fields.length >= 7) mapBase = StringUtil.parseInt(fields[6], 0); + // get tile ordering value + TileOrdering order = TileOrdering.ROW; + if (fields.length >= 8) + order = Util.getTileOrdering(fields[7]); // get tileset final Tileset tileset = (Tileset) Compiler.getResourceById(fields[3]); @@ -115,7 +130,7 @@ public Resource execute(String[] fields) throws Exception if (tileset == null) throw new InvalidParameterException("TILEMAP resource definition error: Tileset '" + fields[3] + "' not found !"); - return Tilemap.getTilemap(id, tileset, mapBase, fileIn, tileOpt, compression); + return Tilemap.getTilemap(id, tileset, mapBase, fileIn, tileOpt, compression, order); } } } diff --git a/tools/rescomp/src/sgdk/rescomp/processor/TilesetProcessor.java b/tools/rescomp/src/sgdk/rescomp/processor/TilesetProcessor.java index b7f0b98c..2b2c8a2a 100644 --- a/tools/rescomp/src/sgdk/rescomp/processor/TilesetProcessor.java +++ b/tools/rescomp/src/sgdk/rescomp/processor/TilesetProcessor.java @@ -7,8 +7,10 @@ import sgdk.rescomp.tool.Util; import sgdk.rescomp.type.Basics.Compression; import sgdk.rescomp.type.Basics.TileOptimization; +import sgdk.rescomp.type.Basics.TileOrdering; import sgdk.rescomp.type.TSX; import sgdk.tool.FileUtil; +import sgdk.tool.StringUtil; public class TilesetProcessor implements Processor { @@ -24,7 +26,7 @@ public Resource execute(String[] fields) throws Exception if (fields.length < 3) { System.out.println("Wrong TILESET definition"); - System.out.println("TILESET name \"file\" [compression [opt]]"); + System.out.println("TILESET name \"file\" [compression [opt [ordering [export]]]]"); System.out.println(" name Tileset variable name"); System.out.println(" file path of the input file (BMP, PNG image file or TSX Tiled file)"); System.out.println(" compression compression type, accepted values:"); @@ -36,6 +38,12 @@ public Resource execute(String[] fields) throws Exception System.out.println(" 0 / NONE = no optimisation, each tile is unique (default for TSX file)"); System.out.println(" 1 / ALL = ignore duplicated and flipped tile (default for image file)"); System.out.println(" 2 / DUPLICATE = ignore duplicated tile only"); + System.out.println(" ordering define the tile process order, accepted values:"); + System.out.println(" ROW = process per row (default)"); + System.out.println(" COLUMN = process per column"); + System.out.println(" export enable the tileset PNG export, accept values:"); + System.out.println(" 0 / FALSE = no PNG export (default)"); + System.out.println(" 1 / TRUE = optimized tileset is export to PNG format '-tileset-export.png'"); return null; } @@ -57,10 +65,18 @@ public Resource execute(String[] fields) throws Exception // force ALL for TSX format if (!tsx && (fields.length >= 5)) opt = Util.getTileOpt(fields[4]); + // get tile ordering value + TileOrdering order = TileOrdering.ROW; + if (fields.length >= 6) + order = Util.getTileOrdering(fields[5]); + // PNG export + boolean export = false; + if (fields.length >= 7) + export = StringUtil.parseBoolean(fields[6], false); // add resource file (used for deps generation) Compiler.addResourceFile(fileIn); - return Tileset.getTileset(id, tsx ? TSX.getTSXTilesetPath(fileIn) : fileIn, compression, opt, tsx, false); + return Tileset.getTileset(id, tsx ? TSX.getTSXTilesetPath(fileIn) : fileIn, compression, opt, tsx, false, order, export); } } diff --git a/tools/rescomp/src/sgdk/rescomp/resource/Image.java b/tools/rescomp/src/sgdk/rescomp/resource/Image.java index d35abe27..09ccb32b 100644 --- a/tools/rescomp/src/sgdk/rescomp/resource/Image.java +++ b/tools/rescomp/src/sgdk/rescomp/resource/Image.java @@ -1,15 +1,14 @@ package sgdk.rescomp.resource; import java.io.ByteArrayOutputStream; -import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import sgdk.rescomp.Resource; import sgdk.rescomp.tool.Util; import sgdk.rescomp.type.Basics.Compression; import sgdk.rescomp.type.Basics.TileOptimization; +import sgdk.rescomp.type.Basics.TileOrdering; import sgdk.tool.ImageUtil; import sgdk.tool.ImageUtil.BasicImageInfo; @@ -54,9 +53,9 @@ public Image(String id, String imgFile, Compression compression, TileOptimizatio final int ht = h / 8; // build TILESET with wanted compression - tileset = (Tileset) addInternalResource(new Tileset(id + "_tileset", image, w, h, 0, 0, wt, ht, tileOpt, compression, false, false)); + tileset = (Tileset) addInternalResource(new Tileset(id + "_tileset", image, w, h, 0, 0, wt, ht, tileOpt, compression, false, false, TileOrdering.ROW)); // build TILEMAP with wanted compression - tilemap = (Tilemap) addInternalResource(Tilemap.getTilemap(id + "_tilemap", tileset, mapBase, image, wt, ht, tileOpt, compression)); + tilemap = (Tilemap) addInternalResource(Tilemap.getTilemap(id + "_tilemap", tileset, mapBase, image, wt, ht, tileOpt, compression, TileOrdering.ROW)); // build PALETTE palette = (Palette) addInternalResource(new Palette(id + "_palette", imgFile, 64, true)); diff --git a/tools/rescomp/src/sgdk/rescomp/resource/Map.java b/tools/rescomp/src/sgdk/rescomp/resource/Map.java index 76ec7db5..e2b6bf54 100644 --- a/tools/rescomp/src/sgdk/rescomp/resource/Map.java +++ b/tools/rescomp/src/sgdk/rescomp/resource/Map.java @@ -10,6 +10,7 @@ import sgdk.rescomp.type.Basics.Compression; import sgdk.rescomp.type.Basics.TileEquality; import sgdk.rescomp.type.Basics.TileOptimization; +import sgdk.rescomp.type.Basics.TileOrdering; import sgdk.rescomp.type.MapBlock; import sgdk.rescomp.type.Metatile; import sgdk.rescomp.type.Tile; @@ -116,7 +117,6 @@ public Map(String id, byte[] image8bpp, int imageWidth, int imageHeight, int map // set to -1 to mark that it's not yet set (we shouldn't never meet an offset of 65535 realistically) Arrays.fill(mapBlockRowOffsets, (short) -1); - // important to always use the same loop order when building Tileset and Tilemap object for (int j = 0; j < hb; j++) { int mbrii = 0; diff --git a/tools/rescomp/src/sgdk/rescomp/resource/Tilemap.java b/tools/rescomp/src/sgdk/rescomp/resource/Tilemap.java index a05bf24f..18bbcda3 100644 --- a/tools/rescomp/src/sgdk/rescomp/resource/Tilemap.java +++ b/tools/rescomp/src/sgdk/rescomp/resource/Tilemap.java @@ -10,6 +10,7 @@ import sgdk.rescomp.type.Basics.Compression; import sgdk.rescomp.type.Basics.TileEquality; import sgdk.rescomp.type.Basics.TileOptimization; +import sgdk.rescomp.type.Basics.TileOrdering; import sgdk.rescomp.type.Tile; import sgdk.tool.ArrayUtil; import sgdk.tool.ImageUtil; @@ -18,7 +19,7 @@ public class Tilemap extends Resource { public static Tilemap getTilemap(String id, Tileset tileset, int mapBase, byte[] image8bpp, int imageWidth, int imageHeight, int startTileX, int startTileY, - int widthTile, int heightTile, TileOptimization opt, Compression compression) + int widthTile, int heightTile, TileOptimization opt, Compression compression, TileOrdering order) { final int w = widthTile; final int h = heightTile; @@ -32,7 +33,6 @@ public static Tilemap getTilemap(String id, Tileset tileset, int mapBase, byte[] final short[] data = new short[w * h]; int offset = 0; - // important to always use the same loop order when building Tileset and Tilemap object for (int j = 0; j < h; j++) { for (int i = 0; i < w; i++) @@ -48,7 +48,17 @@ public static Tilemap getTilemap(String id, Tileset tileset, int mapBase, byte[] // if no optimization, just use current offset as index if (opt == TileOptimization.NONE) - index = offset + mapBaseTileInd; + { + // important to respect tile ordering when computing index + if (order == TileOrdering.ROW) + { + index = ((j * w) + i) + mapBaseTileInd; + } + else + { + index = ((i * h) + j) + mapBaseTileInd; + } + } else { // use system tiles for plain tiles if possible @@ -78,12 +88,12 @@ public static Tilemap getTilemap(String id, Tileset tileset, int mapBase, byte[] } public static Tilemap getTilemap(String id, Tileset tileset, int mapBase, byte[] image8bpp, int widthTile, int heightTile, TileOptimization opt, - Compression compression) + Compression compression, TileOrdering order) { - return getTilemap(id, tileset, mapBase, image8bpp, widthTile * 8, heightTile * 8, 0, 0, widthTile, heightTile, opt, compression); + return getTilemap(id, tileset, mapBase, image8bpp, widthTile * 8, heightTile * 8, 0, 0, widthTile, heightTile, opt, compression, order); } - public static Tilemap getTilemap(String id, Tileset tileset, int mapBase, String imgFile, TileOptimization tileOpt, Compression compression) + public static Tilemap getTilemap(String id, Tileset tileset, int mapBase, String imgFile, TileOptimization tileOpt, Compression compression, TileOrdering order) throws Exception { // get 8bpp pixels and also check image dimension is aligned to tile @@ -102,7 +112,7 @@ public static Tilemap getTilemap(String id, Tileset tileset, int mapBase, String // b0-b3 = pixel data; b4-b5 = palette index; b7 = priority bit // build TILEMAP with wanted compression - return Tilemap.getTilemap(id, tileset, mapBase, image, w / 8, h / 8, tileOpt, compression); + return Tilemap.getTilemap(id, tileset, mapBase, image, w / 8, h / 8, tileOpt, compression, order); } public final int w; diff --git a/tools/rescomp/src/sgdk/rescomp/resource/Tileset.java b/tools/rescomp/src/sgdk/rescomp/resource/Tileset.java index 62d24da2..ce70bde1 100644 --- a/tools/rescomp/src/sgdk/rescomp/resource/Tileset.java +++ b/tools/rescomp/src/sgdk/rescomp/resource/Tileset.java @@ -1,6 +1,9 @@ package sgdk.rescomp.resource; import java.awt.Rectangle; +import java.awt.image.BufferedImage; +import java.awt.image.DataBuffer; +import java.awt.image.IndexColorModel; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.ArrayList; @@ -13,14 +16,17 @@ import sgdk.rescomp.type.Basics.Compression; import sgdk.rescomp.type.Basics.TileEquality; import sgdk.rescomp.type.Basics.TileOptimization; +import sgdk.rescomp.type.Basics.TileOrdering; import sgdk.rescomp.type.Tile; +import sgdk.tool.ArrayUtil; +import sgdk.tool.FileUtil; import sgdk.tool.ImageUtil; import sgdk.tool.ImageUtil.BasicImageInfo; public class Tileset extends Resource { - public static Tileset getTileset(String id, String imgFile, Compression compression, TileOptimization tileOpt, boolean addBlank, boolean temp) - throws Exception + public static Tileset getTileset(String id, String imgFile, Compression compression, TileOptimization tileOpt, boolean addBlank, boolean temp, + TileOrdering order, boolean export) throws Exception { // get 8bpp pixels and also check image dimension is aligned to tile final byte[] image = ImageUtil.getImageAs8bpp(imgFile, true, true); @@ -36,7 +42,31 @@ public static Tileset getTileset(String id, String imgFile, Compression compress // we determine 'h' from data length and 'w' as we can crop image vertically to remove palette data final int h = image.length / w; - return new Tileset(id, image, w, h, 0, 0, w / 8, h / 8, tileOpt, compression, addBlank, temp); + final Tileset result = new Tileset(id, image, w, h, 0, 0, w / 8, h / 8, tileOpt, compression, addBlank, temp, order); + + // export tileset to PNG ? + if (export) + { + // get the tileset image (8bpp format) + final byte[] tilesetImage = result.getTilesetImage(); + + // get the palette + int[] palette = (imgInfo.bpp > 8) ? ImageUtil.getRGBA8888PaletteFromTiles(imgFile) : ImageUtil.getRGBA8888PaletteFromIndColImage(imgFile); + // need to convert back to ABGR format + palette = ImageUtil.ARGBtoABGR(palette); + // create the IndexColorModel + final IndexColorModel cm = new IndexColorModel(8, 16, palette, 0, false, 0, DataBuffer.TYPE_BYTE); + + // width is fixed to 16*8 (128) pixels, easy to get the height + final int imgH = tilesetImage.length / (16 * 8); + // create the BufferedImage + final BufferedImage exportImage = ImageUtil.createIndexedImage(16 * 8, imgH, cm, tilesetImage); + + // save it + ImageUtil.save(exportImage, "png", FileUtil.setExtension(imgFile, "-tileset-export.png")); + } + + return result; } // tiles @@ -76,7 +106,7 @@ public Tileset(List tilesets) offset += 8; } - // build BIN (tiles data) - no stored as this is a temporary tileset + // build BIN (tiles data) - not stored as this is a temporary tileset bin = new Bin(id + "_data", data, Compression.NONE); // compute hash code @@ -110,15 +140,15 @@ public Tileset(String id, boolean blankTile) isDuplicate = false; final int[] data; - + if (blankTile) { // just add a blank tile add(new Tile(new int[8], 8, 0, false, 0)); - + // build the binary bloc data = new int[tiles.size() * 8]; - + int offset = 0; for (Tile t : tiles) { @@ -126,7 +156,8 @@ public Tileset(String id, boolean blankTile) offset += 8; } } - else data = new int[0]; + else + data = new int[0]; // build BIN (tiles data) resource (temporary tileset so don't add as internal resource) bin = new Bin(id + "_data", data, Compression.NONE); @@ -136,7 +167,7 @@ public Tileset(String id, boolean blankTile) } public Tileset(String id, byte[] image8bpp, int imageWidth, int imageHeight, int startTileX, int startTileY, int widthTile, int heightTile, - TileOptimization opt, Compression compression, boolean addBlank, boolean temp) + TileOptimization opt, Compression compression, boolean addBlank, boolean temp, TileOrdering order) { super(id); @@ -146,22 +177,45 @@ public Tileset(String id, byte[] image8bpp, int imageWidth, int imageHeight, int tileIndexesMap = new HashMap<>(); tileByHashcodeMap = new HashMap<>(); - // important to always use the same loop order when building Tileset and Tilemap/Map object - for (int j = 0; j < heightTile; j++) + // important to always use the **same loop order** when building Tileset and Tilemap/Map object + if (order == TileOrdering.ROW) + { + for (int j = 0; j < heightTile; j++) + { + for (int i = 0; i < widthTile; i++) + { + // get tile + final Tile tile = Tile.getTile(image8bpp, imageWidth, imageHeight, (i + startTileX) * 8, (j + startTileY) * 8, 8); + // find if tile already exist + final int index = getTileIndex(tile, opt); + + // blank tile + hasBlank |= tile.isBlank(); + + // not found --> add it + if (index == -1) + add(tile); + } + } + } + else { for (int i = 0; i < widthTile; i++) { - // get tile - final Tile tile = Tile.getTile(image8bpp, imageWidth, imageHeight, (i + startTileX) * 8, (j + startTileY) * 8, 8); - // find if tile already exist - final int index = getTileIndex(tile, opt); + for (int j = 0; j < heightTile; j++) + { + // get tile + final Tile tile = Tile.getTile(image8bpp, imageWidth, imageHeight, (i + startTileX) * 8, (j + startTileY) * 8, 8); + // find if tile already exist + final int index = getTileIndex(tile, opt); - // blank tile - hasBlank |= tile.isBlank(); + // blank tile + hasBlank |= tile.isBlank(); - // not found --> add it - if (index == -1) - add(tile); + // not found --> add it + if (index == -1) + add(tile); + } } } @@ -344,6 +398,32 @@ public int getTileIndex(Tile tile, TileOptimization opt) return -1; } + public byte[] getTilesetImage() + { + final int w = 16; + final int h = (tiles.size() + 15) / w; + final int imgW = w * 8; + final int imgH = h * 8; + final byte[] tilesetImage = new byte[imgW * imgH]; + + int ind = 0; + for (int y = 0; y < imgH; y += 8) + { + for (int x = 0; x < imgW; x += 8) + { + final Tile tile = tiles.get(ind); + final byte[] imageTile = ImageUtil.convertTo8bpp(ArrayUtil.intToByte(tile.data), 4); + // then copy tile + Tile.copyTile(tilesetImage, imgW, imageTile, x, y, 8); + // next + if (++ind >= tiles.size()) + return tilesetImage; + } + } + + return tilesetImage; + } + @Override public int internalHashCode() { diff --git a/tools/rescomp/src/sgdk/rescomp/tool/Util.java b/tools/rescomp/src/sgdk/rescomp/tool/Util.java index cdf8606f..9f8f4bbb 100644 --- a/tools/rescomp/src/sgdk/rescomp/tool/Util.java +++ b/tools/rescomp/src/sgdk/rescomp/tool/Util.java @@ -14,6 +14,7 @@ import sgdk.rescomp.type.Basics.PackedData; import sgdk.rescomp.type.Basics.SoundDriver; import sgdk.rescomp.type.Basics.TileOptimization; +import sgdk.rescomp.type.Basics.TileOrdering; import sgdk.rescomp.type.SpriteCell.OptimizationLevel; import sgdk.rescomp.type.SpriteCell.OptimizationType; import sgdk.tool.FileUtil; @@ -153,6 +154,18 @@ public static OptimizationLevel getSpriteOptLevel(String text) throw new IllegalArgumentException("Unrecognized sprite optimization level: '" + text + "'"); } + + public static TileOrdering getTileOrdering(String text) + { + final String upText = text.toUpperCase(); + + if (StringUtil.equals(upText, "COLUMN")) + return TileOrdering.COLUMN; + if (StringUtil.equals(upText, "ROW")) + return TileOrdering.ROW; + + throw new IllegalArgumentException("Unrecognized tile ordering: '" + text + "'"); + } public static Color getColor(String string) { diff --git a/tools/rescomp/src/sgdk/rescomp/type/Basics.java b/tools/rescomp/src/sgdk/rescomp/type/Basics.java index bae00587..bfe1aa1d 100644 --- a/tools/rescomp/src/sgdk/rescomp/type/Basics.java +++ b/tools/rescomp/src/sgdk/rescomp/type/Basics.java @@ -19,6 +19,11 @@ public static enum TileOptimization NONE, ALL, DUPLICATE_ONLY } + public static enum TileOrdering + { + ROW, COLUMN + }; + public static enum TileEquality { NONE, EQUAL, VFLIP(false, true), HFLIP(true, false), HVFLIP(true, true); diff --git a/tools/rescomp/src/sgdk/rescomp/type/TMX.java b/tools/rescomp/src/sgdk/rescomp/type/TMX.java index a595da15..7a95072f 100644 --- a/tools/rescomp/src/sgdk/rescomp/type/TMX.java +++ b/tools/rescomp/src/sgdk/rescomp/type/TMX.java @@ -20,6 +20,7 @@ import sgdk.rescomp.resource.Tileset; import sgdk.rescomp.tool.Util; import sgdk.rescomp.type.Basics.Compression; +import sgdk.rescomp.type.Basics.TileOrdering; import sgdk.rescomp.type.SFieldDef.SGDKObjectType; import sgdk.rescomp.type.TFieldDef.TiledObjectType; import sgdk.rescomp.type.TSX.TSXTileset; @@ -441,9 +442,9 @@ private TSXTileset getTSXTilesetFor(int tileInd) return null; } - public List getTilesets(String baseId, Compression compression, boolean temp) throws Exception + public List getTilesets(String baseId, Compression compression, boolean temp, TileOrdering order) throws Exception { - return TSX.getTilesets(usedTilesets, baseId, compression, temp); + return TSX.getTilesets(usedTilesets, baseId, compression, temp, order); } // public Tilemap getTilemap(int mapBase) throws Exception diff --git a/tools/rescomp/src/sgdk/rescomp/type/TSX.java b/tools/rescomp/src/sgdk/rescomp/type/TSX.java index a3d9766c..4031f1fa 100644 --- a/tools/rescomp/src/sgdk/rescomp/type/TSX.java +++ b/tools/rescomp/src/sgdk/rescomp/type/TSX.java @@ -11,6 +11,7 @@ import sgdk.rescomp.tool.Util; import sgdk.rescomp.type.Basics.Compression; import sgdk.rescomp.type.Basics.TileOptimization; +import sgdk.rescomp.type.Basics.TileOrdering; import sgdk.tool.FileUtil; import sgdk.tool.ImageUtil; import sgdk.tool.StringUtil; @@ -123,10 +124,10 @@ public String getTilesetPath() } // return optimized tilset - public Tileset getTileset(String id, Compression compression, boolean temp) throws Exception + public Tileset getTileset(String id, Compression compression, boolean temp, TileOrdering order) throws Exception { // always add a blank tile if not present for TSX tileset (Tiled does not count it) - return Tileset.getTileset(id, getTilesetPath(), compression, TileOptimization.ALL, true, temp); + return Tileset.getTileset(id, getTilesetPath(), compression, TileOptimization.ALL, true, temp, order, false); } public byte[] getTilesetImage8bpp(boolean cropPalette) throws Exception @@ -174,7 +175,7 @@ public int compareTo(TSXTileset t) } } - public static List getTilesets(List tsxTilesets, String baseId, Compression compression, boolean temp) throws Exception + public static List getTilesets(List tsxTilesets, String baseId, Compression compression, boolean temp, TileOrdering order) throws Exception { final List tilesets = new ArrayList<>(); @@ -188,7 +189,7 @@ public static List getTilesets(List tsxTilesets, String bas else { for (TSXTileset tsxTileset : tsxTilesets) - tilesets.add(tsxTileset.getTileset(baseId + "_tileset" + ind++, compression, temp)); + tilesets.add(tsxTileset.getTileset(baseId + "_tileset" + ind++, compression, temp, order)); } return tilesets;