|
|
-1. [こちら](https://shimo-1999.github.io/rectangle-fitting/) からデプロイ済みのアプリケーションにアクセスできます。
-2. アプリケーションに画像をアップロードし、分割する長方形の数を指定します。
-3. 実行ボタンを押します。
- - 画像をアプロードしなかった場合、処理はテスト画像で実行されます。
-4. 処理が完了すると、生成された画像及び gif が確認できます。また、これらはダウンロードできます。
+* デモ(GitHub Pages):**[https://shimo-1999.github.io/rectangle-fitting/](https://shimo-1999.github.io/rectangle-fitting/)**
-## テスト画像
-- 使用しているテスト画像は Kodak image dataset の 23 番の画像です。出典は[こちら](https://r0k.us/graphics/kodak/)
+## 使い方
-## アルゴリズムの詳細
+1. 上のデモページにアクセスします。
+2. 左パネルで **画像** を選択し、**長方形の数** を入力します。
+3. **実行** を押します(画像未選択時は `parrots.png` で実行)。
+4. 右パネルで **再生**/**PNG保存**/**GIF保存**/**PNG全保存(ZIP)** が利用できます。
-- 貪欲法
-
- 存在する長方形の分割線を全探索し、最も二乗差が小さくなる分割線を選び分割します。
- (長方形を生成するタイミングで分割線をあらかじめ調べ、保持しておくことで更なる高速化が期待できます。これは実装予定です。)
+> **注意**
+> 細かい長方形が多い場合、GIF はチラつくことがあります。高品質な動画を共有したい場合は **PNG全保存 → ffmpeg で MP4 化**がおすすめです。
-- 焼きなまし法
+## アルゴリズム開発
- 実装予定です。
+アルゴリズムは **Rust(Wasm)** で実装しています。
+
+### 実装インターフェース
+以下のような関数を実装すれば、それを可視化できます。
+
+* **引数**:`width: usize`, `height: usize`, `rgb_data: &[u8]`(サイズは `width * height * 3`)
+* **戻り値**:`Vec6s2@AI2J=EFW|HLEx`kH$9}FCt7$ zp@5?XT>6%F;g-+j2wMW!KA}Yj(n87{Y;lombR)0*BGSsG)f(^A>g(L#Z(0*bXk|KR z{Yuvs=3F0Mnarnu!PDwdeoFK>XRm_nE-8FtZ0Xz_!irX2(d30c{(7C=)elB zGrBt-{ThrWpc=al+DGXz*aftlCT7|hGHY5s55Y7IVxI0}Rzx6c`DGhg*m@@{Pds)n z5H=y#PCCFU(RaKM={ThgK3FV0m)KDT?qC`0pkx4F z!@${|B#aJe?Ywgoq>yIXRZQO{5Z;x2&?&Ik#d)&(SbpdAfG*ac?u&WdchKEr3*8J9 zJ*U`vsO5V|#ywYpdUkSqDA7G@^F8M&dKcMxPs#UA8~1(->>bVR-9z=_=X*EF`+C^= zR^<9H#(fKceXY5D)2P0N`Mxo79E1%=ki%6P<8Xnv;#^z@3YR;NLz4HWv-LO2^@EK2 z>jV2^a{D2u{;>J}D)NCqwt-T)0dM1h{J;UX+<`3AfaCl?3OW8W8$Lk}4=~0@2jUHL z@nI 1AOIpGBx;j AZ0 `9iJ>!$^wYW~wF5 zOT(~3V)C~`1Wj-<9c9av;pS_@oHw{ox42sFFmm3bY-Dz6VWs3`cR_JtTDTQB9xA{X zxRRMb2tiDeuujWk##UZ24t@;k8K70%g DS7J14x zMG)JoLZ~Wbl6o*&Q>RTknC%@1`k@e{OKQ<8Y%_qd8V#e(No|&etkzsm69rI}nNFkA zQX){H)uyoBZkWY^3!@C^awj#o1}6r9T0L}-UKkdiLPTgGGMvO5>4J$SA!C=Ao zT!|sU4QZH!jHT8@1ym9va|#BN2SOE4G8b_n{KU{Xlnq&cgc`B7k|k6b*Zm4cEW8k1 z&v?I40RpB>fCkqi3**tjZA~O}i`cz30Ja;1>E*hI3x*6VVFtzS4#BV^V%RaRyAy?A ztU`PzWBtNX9C5g9Di|yJ_rUdK^7G>Cx3xqc{ECtP-r?VZmw)-l55MAnf}H 2JNz)bh+tPA#`DY5K<@!T8TLM*nTmL#6Kl;LN+4#} c5ZKJp$Jie*&%p|74NGqdzW^i23s_=&k=0aLxE< zizGJHeh;okes)3sZvod=8h>^{|LlVP59@-i_zA9mg6p5)`X{*l&jZ)gKf(2XCb*{l z39f&F>!0BI2XHMx`6u976KwMpTnh#tVQSbuxDE_f)cf8k9bgS^jfb>@A*cXw{a?U! z%@NSfi*6>-37~%g*WlW&eds7VWJCj+ -S+RV81oZ@8G&J0Dgi1-UGwGW9>6_WRSWd;W|nY=!8jKTtA##tNz$Q9i>*?WmCVa zruB>>aB7h{T1b6}1JrK4o`t;ORv`S2TtirYJu7|V0JwpJzMf0V?*T`nPy&R<8P4h4 z7!uPcEP^N>Y$WbCJ|*}*mqW-A>R!^rq!JLa1cXX{ts;37Ujky*u)$2ZNoNtEx(HLx zZ+eDm(p_&dT!en$Xy%k{<~D6s4{tVtG@BmO0RDo|tpb}r(?eg8BS^}SmPdq^j{O#X z`qnQA4W0)O@5Kh+gjOa<>#lIK-4VMstq&uI1j#iVv1{^#HaNJAj?f0muS;G8r*hP% zYqfuKYCk2{27t8ZYrzXq;2hJsQV}GZ7V;vY*-oq3A@Eggej_9wTm^yGh@fUQQBczs zcs{~nk*A%$5v6sug&f`{f+lF9adNPMd^8@3E|zN^A;+NEF|Y$vA`Mzx7sD8c!5pBb z7BTG?um-u9bvbOS305`$yBPR*@1PAuK=;ODj}swHavcbhj #6Xb*H zZrk<_#rJmB^d2>T>p;=3hp;N>-fM6Bww(GdCidwvn42 zKx9xq!%$ZM!-G^PHWA&E#DFV~!dLD0Ytjy|^A8jgJMs#83x;r3z(I+G!4J^Eu%SU1 zC%6=vU0z^asZDsF(CtUjnq|g~BAF5DptuI@L4@c~p%VcdM=-4-;0v15(Or@BL-Uu1 z(b`BMidy@`E&?!rnE3gu&+wr3&{yD4d*aXrv3pB&aOZGnPkv-sw0JehW*s^*P9$V# z5633Tp977~9};{_hlkfj-x5Yz4@cH0hG#`bZ)uKxv>T;b8hdhK+?IL#oWi)a$+(-( z_ X8c6(*igaP8O+!i#Y80gM1 #mexg6pgo6-D|&wNqgye?)Q zxHO+ivG9;}VMlTS3|KG^Uhpeih(B5rH@9%&++qvYqLad6Bw#TjXi+6+k-T-Wduh>! zl9<9p43Z~m8WFGi5=RP&;TU4p649Gt$%u97rqt2`U@0khsjP6x6}=QVx5RdCd7Epw zL}3{YShfyYj>}o*X iHF(aNR_og1 {ItTl^tgO9flJ*e&tpty@8x`#GDQt(&@3Q-+*Vatd$XP;Nit-d0rHrZw9> z?!WDCW$BLHHYaWu0(FCmMkg7NSBE*nnZ_;vc9mV^Vwc+&pfyD8?Jpx6p72d?#ZF(> zWPdDkp!rzdlazwx`$bR2Gm ^w1-LB=~&+DQrzot9q7Xj7E$bvVE4up_a{aU zrj`e0;7|YF{**IkPbu@WSw7>jc*X w;xykTNC_W6~e!^VCC1I z``@lv`PVnCy!-u*m816ef1U4t2EKK1`S_;=bouy09ldt+ dPSU+YJK@q^C*>bL@b>kR%GVeo(7 aA7{h2xVUCX=F+;e|=>C*IHTHa$zgOSk>blVf8%QAm42M*ye*rcZ(WDGLp zf6e{=Wd(KQUW`mdZtpL-Wfco={eD?Nz1R@)eFe2iXvW~t3hL5H>8ipZu>JDOA!Jq2 z_Z8G Pq9yR(&DZBVrp zCVk<$$Z6l2N@6?cDEC{ws{AOo%;T)8JY;7Mca&S^BLJ?kZm&v{ebNT5-CVHoJjyMD zf>kDta=%Tqk8;0vXJ(ld-(kfVwzgMzostycViv1A>-!I|aMy*6W2L>rZdFZ3E2xDA zvPQp %4AZ{cpSF+j7ugbc74TH&)Wlb7wBcQ6{`)!UwnBWdF(FF1)RPfcFB$3SOX?d9 zg=yKc#)ZERzA+VZ<+b2cq+wY4R2 l>tYUNj1%@P-Es}Y@^{9MK;B|2(eEt3P_n30u# zpL#xzbQJ59l~c~;J@1vPF)&}qS3hqOUFxmAP<(Be?0w;jwcLC;IA8py;`f)?In|oa z_%41$>Mw+q5rWSZgm-)ID^;}U?59=^*yaH|M)+8lzy_fKpqiP~yv5obJgzW!Wy|R+ zWW6gs1-d *G7Fn@U`%`5uPaD}ko4&YV zR-PuU%Fx@j%X_%gJuksI)T5%w$)~I~kyTNxB|E)|d%rKZH7Fg)IXp0y$uNNLtRV7{ z2+mjT+1Y ^> pFvDzU% jIl#7&1^~lNZ=^EOo4sgC U_#R&NNQR1kvscrV CQHz<2Sw?Uq5r!U9Pz0>w9x~+ ;@rO7f6>~B&4zIte{-i&=p{ru8LKToMgx3Eev%4o^D?s>yYRu6fd=!{o0M0Q z5@MltiDBuhkLKDK(vAAXtu ~2JA1^nml|1~I5vYInHf?wI%i-dOp8yat`i#%bg5K%Dy*0XY>uQmrndkgFR`1*- zvb1_!D*fu6e)0ApOPEAuPUsn@yKio@wu!NIh1Jx5y3bp~q#$D$7BP8+Mfgs;b7*Nq zCM2ABrdkGDe)(NdV1}!bbel%$TGV`d2G?#QQgQFKSlwdO10QwJ$F8-QR=Lcws5aD; zz?Gnmz)T)j3AFM3nK*6KbXw&={?Q6*-qDCufz{_2tFX0%zJz;xIHPD=tM$Yc(m|$3 zqcm1=;L6)+)J)D+4#s6`I;n^(`zcMh!X4U; >WDo RYAR1*A}Y$w7@7 zC|@OC98uqd9WprHr BL!21`BcRTo}!MCeUyve#MSmuKa>-KM(D7E+6yhF)CM9 zL>@y)yNv0_jt4P$Y)jMunj+L!yQ8WddAWjobSH+!V@iaESIu=qda1=to1ZUT2#qxU z CpITqTFD9TG}> z6o1@$Iy!S#!vthaAOyY>c&v(XeETSgVsU2fgiyyT7jEYf4MQR$ZKqOBne=jCzKA&9 z+yh{dHnTq~%P-Nzkny>YgE-g3>ezYiQbn$m_I#3CTx#y{)jUo4Kviy@zJNHJJTp!u ztz~Ik# l!lSco_UA{CSd6V>;`w8vSSIgqfA`F}! $9z8wQr@3u6HI~dCs_H-f`o6=EkY-7U$t6 zc~=#pdX;=ufKrNq%<$tCYJqFB5x@OdX7&BRp3TcCaQTja^F1kZ=4xYp>JNhbJi= rK1vRip1s^zy!-?9GsE36Oex zqean@#nPIZ$9TuYR87ZWmd8oW6xgcmTFvWTZA!9}vhecd^I SY@=Dd#Gs#sPX5qSa2J96-N2<-UuMW z`C~Tyzjy>( ihEP+0RI7Yjn1qp{k|Dxxn()fG(?` zH`IX@YC&gPf-cSmLC*#c-w!sD2%ci`cpP(j_T1ZfmcVIW<7N9dtJy&zSAzJn0$RL6 zveH6CeS+T3hQy!zD$^1Im-t$y`&Ehg>x1mC@W!t?{6TK~Apvhg6l_AUtu~jXZ7FHo zFRHUqtE 9>~mTo)Z2g*cGWw~ayzuQD)ggdc=_4zK<03|% yi @R)0jbAjI>cqu zL?_ogcX4oai;XL$i7%~*%@e#IBdA;!8(&)!@2(!t-xGHz83z$eK&U4e&c!QP#k1)p zpav3Z{1P bPU_iePf0N|MKB(z(54 zR8F#9R}xjs+l!7VIM$S`7b(|gld1Po%5qY`h!pyrxSNit5Z2UEL^5b9g=H@ll#_~h zk$T%u{efdz32WNSvox-1Re`;
t&S&GIvu)bH=av;d%RF;0Crl>i z+wq+H{yCnxImPukV)Hp(WVy^upiJJ}^!cnzJarUaF>fy?SjZ){J*xztRY0a}t)Um{ znD-zqukv-?_4zzIp}aZf{Pz<1O>voGm3dlydF^DWbsDc)9p7|1W_BB2FOpHj8D|d6 zzv`V=86wLZ(cs9g)kzd8RMaSRpUSs9Q!wwJyqK#trlGRxn6YmBc4^OG#j)sETv5;K zqS(12DYD|{_lm2fizSVV?Y)YTImJ)gi)AZ{y!(nS?t?B1b5Ux7ZUm&!$iBI{V0eA7 z 81~ Zw~$76G%K1ND)M `z;-coKmTW*+_^lH#e|AM@^Q?l{CnYELg4PCOGiOo$<8~@rW3uL}>RK;v%#TU9% zOIde^1zEp edXGw)@8JQR!c9Nd=}8ce`z*1nJgPwdA`AuGA(D(ChSM%cZ^ zWF?k06BgLP#5vezeA;Tf*LuK EFlXB180$^tYGo#~ezahmb^5f43 zKD}UCcf}N(wy!@OU`L)%Z?9f|U|pX}){w*6up-`2Y23g}fPbQ{e}HHx_G_3-YiML^ z%mLQ}`|4e`>je(7gyalG $sD5YWYaiVb3Y9tuCM9qc9T9K+t3tXZ0cZ2Xr{i|TrS?cCDRf)*I-25 zlEB|WGBa(-_Gmeo*AmLwnjqeK-lX-bU+dSjRw`ucJhH{yu!;I^TaaAa=T=ydUwsUH zLtMU(3x}hdX>+iMz*kgB5 HBFCQ6T#NzW42J}VFG4}94#Y(J!*EJa>ky3qIUDK4m6l!i5+AV zsFOn-Em|FC5;K-LxGrdSUQa|GEk7ATVJ?|Pp96N@gm%y-c3vFn{Jh(FE0NSi66vDU z?z&HbP;s_k6YXY4cbz15aRU)o7`S+bx>rrR`O%$%1#!ZnoMOP93G$v3LEYk &WW=R7^LiGhWi3VTQl_8B=*08_Tvfts)t8= zrhCE?(Gf#EQNRJw#DP=t{a)xkU2S%dc3*M *)tLShe*b6AdiWEF@W1(MAcV7GuH%AzA6 z2=0(L(w#7}KZH4{Fse;4dQSxJ%+NiYIeOh}bcu5`L!SMz0)ZUXKuH?afHa*59lH%3 z<0p(6$By2{Ag?NnybK&?)xq9{A?~}3-vF?2a}7OYY AEDOa$DYT3ei?2TZ*>`mduiuA?v+ojNsLFmz39 z(&zBCJ^=H9YvQd=%O?P<8D`iJGyddY>LqEKB*Zx5NSbignQ{@E@p(NnNk8jAKVt=( zzOOgC2Ap}m)b9yk3FgB1>a==bW*Oeh?Z{90f#%dG-z5Oh(XiHJ(%4P0`EL|+ieeM4 zE)yAyZCN16n~dYRI-{WAIo-m!t2PVOn0al=sc--@j0;^-*j~2uvI2Cv2{u~CHQj(& zxX`;up16<+TSy7k=?O+-DUVjh&1*u4Fy}?qyxAhs_#~-xT5Qqg_L6}av6MtC*I8I9 z9A61uTq|7M&{=*kOay|Kb;}nIhL@#4(_vi16TB ;&J#gnK^O}R<;nlvU_#4 zN@Vq!=IQ`Ro0@x-yl9CsMB>CZ(y9e<`3vRBU8+^4qE$)c>gaIreb=?qAu|HbORP(4 zDi_w*LGzD`*5i=tdrRy0sW$4^H>eahIGNV2K3S7fS(CtS&@FE~J+&ztvX)f1rifjm zHs8PnY_Jz?Xmf9JD{k_9+SCo%tYsuJaBDq&GG**aG-X e{wsTDBfpA0w^1Fm1SDpM5D>@uR8@FkfAn+~H-K zi$w3}p4e+joWwZq(7<*J26vsFXk;!AX2aWaxySO0z=ew2Z*J^YiS8$9?UT9eH^=XX zaj!>w+u32<6@Rk(D&&BIRJ8d9yXo<6SJHL&V#MxA?gNzU0n+>c&9qkl7_U %!z7Ta!m$#?(WhTdQ!u`WQ5t*h zO~Jq?a_!al3;%1JItYOh%*$W~QI}IRuP3F#?#Y8*NMCN0iQ?3TdD19P%f<1U4I^Te zXB0r9=6lCzRc4h^C4v|w;#63V#!nK(ylCIdtK_~Z&}oW$v+%Z1iOJ zg6`pzMy1&h%w|D(Nvqa|INTIqH>U#w9&!)F z&Ja|*`no G=m0DcVmWp(o6a3RpY*bOE0|>x7JMY6*$M{M9uA`p)}yPGl?2I z7UPZDOp+LZt+l|)#3w#FKHHz?dkemu0%`Aejt@ayN8+>&c8XAF)j*KW;p75w2#$kl zlbo4Gi6bqFI^RehGlzNF+)t0oe<^x;k}4uV?6iAh(X+Eb6Wk4lq;>PB7q~ahJ)_{C zT*)~7 oZ;| ze;Mwnoc}=g4yjB5*@1YhxY(!FE&qfe@NtLFv?p3Ye5~v7D+%rKaO@MN3PmO98@G8% z#kuuNUddlED_4|y!U=f&YCmt|p`4 +a>J02}_*9OP Izshd<>Q`Hs5^A6l}YPzguAbZtT FS+&P)SCsl zqu+V&zK ftVze>P=>fr0?^2hS?a`E$W{bTuiyZ)f(e!2cp$^GeT zM-K~&qyB+;s^93yU%li%c6jgZ_>1QI!S4Ow{=VzKzYQ!My?Lbk?EXago%-#tkfc)G z@08!#*FPw~s6SVJx&N8U&*$$bKSt``DZjj*%I~N0`>FhXD!-q~?|+~2!;wsy>ZbX? zyJ(BxvV lj6J3dw2hh(+o!=AxERG1RZKsj+w1UEC{MkCo|QO@PxpBFHib@p zPDXRDD+acaCQLi0B`?&SOj(gFNii?4T;83#$CIOqo_`CD!({5P -Ny7i^+}2M_9o;b&Pbh$+;;ZD#vUGM(HF;^6BS_dl(~1-FWPc8JQ5r zG(Uh;niKi_Ypf$AR_9aJ!i@zDDyO6zm}FiN`Qk@KFl^+)NR^{#ouMk2Fe7Ix5XWF( znFJm_i?O*6XQ+1=*&kleX$F^_o&BOH5`Vr(qEVJ&&OgLCfoAzdi{jbUFr4s|m!U)D zGqLsL5eS8FQdOOY&O)l{tvQPA-EK*-O-3!K*@I=rl17~`rQfs`Ot^Oj=^kw7Jr-RK zUvfG;{>>K5L?Q$%!zPaGUpr24y=lgo@bt;vqa@g7E(s2u)E(IZQmv0LIUg=(Y3;X9 zxM&%glakX$?B<^&Z4Yv9ZX>x!-`JlVJ_fjUkGZ<9SGgi?xES)eT+ehpk!^99b(B4O z_jrt3m!#VleK!Vgw~N#k7iI-0?4Mn?ci)Y2cQ13l)8o!)Z+=sX|91c7yJ}ySZNC_V ze>t**9Mm>k*}M;=7}y0orr&zVTYKnixCv!jik#ySQ@gx)!}C19=VN8h&o9)ZW?e3y zGrB7EQE 2qP-+jYao&CrbGWM~Q$(D%0YExhl`lcuwN$}_nC zi{FlEK(>C6nqS@-zh~ioo|S$H0>+?Oo@5rIQ~`f+JHLKge^8WvZj4bzHE&^zaWQp3 zZL_VJ&qdE8CFvDF-ReL8HlW-#piauD%$E=0Yuaod7#J03Qx@3S7l_F=>|hb-$~Nm! z3)0LA02^L}wt5k$O>r!oW7R uKofrAVK`hM!g@BG;cSGeL70rX5v!n>f`hFRO{8*5#68tWd%H-rIYW&BD=i0m z;oV4Oho^Vdm2`F^{cNLbzeGH0jXFaUCCVQa!W>~G9r{`Qv#o=Jo?j$j_n8r^vPo?8 ze0B62Tr|ih+FRP#z2>>Ux}(=XjPq8E?ulq4iC9PVh?jn`?=xa$TVfy1#j2i;qh*a7 zk&08$iwpLP(Yq0w-x8A_8{n%KF?ue(Y&-guQ7pe_d@XZ)8Ea&rksXZ2Ih-b;m@mOg zHKFxvLhEi|`+z-a*STdkLDVk}oE;}Y(o3AZo*2oW*r%FEXtV1du*J72PZ$|N&fl96 zRGwo^nA&|eIsnA%f_!L_uJR= )z ze33TgvQWxZjTEZ+B+)Jqn_db%K80~F N}82C zX8h*FUMinsnm}Bd0BxF2deWMtnh aml_ia_+fb0{60`_Oe4A z8N+EkjBIj1^Et72xp;q%$i19QnXD9lmb5(&OUK;8+N>N}MgMvAjJ@2-y^NAvdS(At zRroyPxV$}{yrwsKFpYc(viz9R+?O$_&G`H`{`s@%`SR7O7>xpXvVy{rJSx2cf>3(@ z9#dDX7Ybi6>6kV`MmI+0gU~2koKKl?e9f$(zJM>>kV#p_Q{#=5HfxJ+ITk&*moLay zbRblGVZNv`tk8?4_!PMKjB)WbuVNUBD!FjU#rb0W(4xZ^CA7%o>kF?g?rYG|m7c?w zG+i#rlqk3zUwTre)crK6_-SS_n`{wBo*I*I;X`oAW0SXBntBhM%BJGVdR~`_E|d+C zl|R2%ULaFWZc=XVRnC%Eeg#=BTT!OPSFW^>|5}(!fxSc(T<)6ds5zLU4K7xfeWS8q z@>aMKrcp`ZUb2y1c?wy%dad&P>8g|LRq1-A3z6lv$U^%CTLWQ$(O^~KURAzCm8wMb zrg1gIw^|{i`q6$x$xOAx=^A2tb>p>a5?^(cQ%;Oie4LYY!eC7dTTQiOjfh0; K1vsTjv!E r{HDNSPu*x`C%KqmxB+O_Y zR<9Y>$PSN^ffoj(t_Hy0=fZDp)bcIBLBg=XESR}$T@qQ{)w^|vd3A5w>&{KqZC|MO zWUD_AuU9mw5B9HLNvqdF)-#ya&H2<}*&FTzCei6P-~$?h=IbX@P2{ajd6P}n^WVi^h-|ZoadWvxb7WpKoUECar8)Uji)DTj{}$}scAYIM)ih9u z1W2d_(r3D&1l>)+9tUtM`Y)eNrTy|-?H6?&$?cpES`TYmS^8T8KDDW7w0^a2g&^Co z{%zdZZEknlFUhs@8MfPawx`jzDf6|tskRlGrhr5Qk`o{msPrmR{u(VP*f~F!;E|vI zvL1zOl=EylkZ9pR73b@f%DI#iP}ky7vehV+7wBPQw7M@^DjoeCk2G3Gj$Xjnw4(vD zXpv7CAvTPbIA$7&nfAxnP@~TZpx4NAHbi{q$;Ed?uvnDImX`a@0hR)c4ON31tJj~Q zNL@PMS%JVPh%M(1{Z7hzofhq+T Cydw7DqI=ZRSdik(W~ut$lZ z_qAxRigxc?V6R$YuSR0;Ku536Vefl}zK^1PpALJAHG7!wJ(|!y)1f}VVV|0IpOq-? zGqKkosE;AH&jN~b9>TeBQrR%{e=+Mj8Hl@t zK9|G(IPJbr&H*2pf#oj)siJrj=s+ezUm|hfl7D~tk?A|^$zmAPPQ>S$rAunRElM0L z;v6iIAFLQk&Mz2jK=(s{c-Z0K=?nPrM+B7FK$981C5W&`avs#`CG;isW1$0`oI_`6 z3An={)5M`T=nz3WdH86&hXFTE?4Q&gX3ryxg$=Jkdl%5dUc}+ LeMxXX}Cx94G& V& zz$bVXP%!HvHp;HR5zIyS$~Ch{n2prI1B2(L^XK9Vd!sQO(qeOsm*?d`(*c0~ )bdd8gf z+&A1+?$+x?%M6jL&V?%_nCTm?B$k^aIJ%Hl2JU5H;My0!^2K*6jEb+g;5b&M_D9&Y zO7(R=%JpkW>z?H!r|Q?uf$O#88xD6jPCnZRSz4zL*#M+(9H2MGh#PEFo4R*5g`aM| z;a;m_BwijNzNA8_g-B>%HxrgNJ3zz_?})nZFnZV*1|eIifK36WC9{!5b0(}M)eCFI z?fHVOQOwpoa~3yjudVBb{kt7os~val>AYZ^!@ET%?oObhxa;zciuNuOaF-=wH;%hE z;awL9`z)DhPf2u-U3>51=e_LZo?O>%cBYNj-}aOl_FstZOTXK%9O?H{+zNQIexY|C z#=Y~6@j%Et0+F-_r`m2MDelX_4~mBloWC7_nGU;_$C?#a`j|E$+=tb0#13e=jVXMf z= ztBJoUzq^vxzAL}j*HeE{ex^0zzf*od(ka^VOp(7Tzq!|$-<97U&*0ybpUE2^ZRmI9 z$I%$7cclE{-xBc^4~Ae~bT=}U{-XTi?F>|olppCdht0x~^2-XANH|h{MWzf-yy?}~ zKGj5Wz6;J#{jU6$&ydbAXl%@;ddnwGx2tU$_kCoBdoyTOnxZPqRJRf|w*f=xN6N48 z>ZV0wK@gLqj>VSMG&(UH!k{fAJKS6F?kug={#GXfYA(;HBQh~Fg-!|))jo8*);|RI z!5%3;*a-0*L(;o%svC!g-?#%rkDGfODL %y+cpOVFetv Ed&2G}N=DKSF`^#HC z>3%QoRFrkX=%cR|NirvSl1s7X+$n9R4ncHP-G%FxA}5khJ(erWynE#yJ9guNEU)-r zmoWE;mb{$cj3=oO^{5lkUB|n9kS9MrdP?P?(Aj&RZwnJqk6&%?eBxny;&XxLHI6JJ z0wcbx!lOJ)J5`<|`6`^Jr RZV_g-FalRsubSJZAsHbrsi$J;~|8^SaAw2l=VKGd{! z#aH$MpoiBrEJq|l2-mS0c153swe5;+hrFuZ%}nZ*=(wBL-WYMNz^kgc-q^Y{N`BVc zKJ$y9DD{}9o}PeiKfQ~ E&G32F?QErqz-l#zIi-u^ k!L^3;ZJLh#(bbOKv*5gH`-(Ra+}s_NoMF)M=cvHO6Ms`DKSV)^ejxwq@~ikMdbd zn?Cu^P(VL_g!UV}iO>GlJ?ktdJEY_Gq1|b-8)DDLJNX#-Cwbqv?2g8_9PSpRMVmOz z=VgUBEN*tYI4zB>i7Br%!d;wakal~{8{LYZ4`~PO-bwDnM}6bmTc~2PLqx+@7DHSQ zFLZq)bzFUVd_2T$;^F&_?{g9we(r-bqbK24pT)_q+`FbVdfFrW8AYYH2gAmD{ika8 zE(LeE-+O^MZxHqTTA_s$=PAnbAF^p_K!M&WrDGJ9*%>#MIy^;t`l(bezqm~i>Z|+s z l(I)U I;I0i3(bW{}ZtR8ktb>YxWyV3qah2-B#9 zOr=^m&Sh(_Sw+F}uRZW^Nc?d5ad0#Jg+~DyD808?u}XgTczo{3YrHCp1J`7}2j!q& zSe3;G9^AKWn2RtC3%@xnVsNv&4Q2BvBXKF>x`^}?+QBvxw8e2>EHVu%vs#t}-pjH$ z!Pen^u{?QJghk-We6H7{jf<2SJ@-zYICg9I)G_j7$BuCv{Tw@X^4JNVqrd(-mH5X= z#~+>?U5~~e|M>9vBZcRWe( g5{lAv3w#=W_d!3iR zO4onl@Hf+|Ybo(Vz|arZe|+ZB2B>Ba)N};u{Gv>M`{xhV^oP;O-(Iy{o&S7{^4HPH z@2>J6-5dG-i<{Heu$=6oqsq yW^V<5XqR=}m3<#QAnYhuc z0CzE4+F9SG#KNC^TRY|*HSBguV`A9-T h{PnJyTH(nf8(PIG*Y@5ddnSh46Mt7#Ob>;4Fu_XCF&Fmll3T`r- z45jSMPPgRei^T;iP0vn5be%Su@_3=IPIEM8DcBkIUT1PL##zGX{uh 1PLp8Rxyvnx0S2g?#Ka&MZE& zkeDyq)jnI$x|gv~`gC*N^bPzY+hTdcCE2tRhx>V)eyB(Li&g9|WmzgF_4SDr{b4o4 zT0WZv&gzx<+e_6`eaOC=$C-It;Dfcj_7Jh4aGtaB}blcinMU;g$F^ zss|Sv=-3uNHIhF`FhN{aOvq@u+vxSsjh4U763&=JwpMmKL~9LoCNa>eov#pOj?9ED znxbBGacn&0i}ta`2o)jM)5W&QHol5eY4bQpy2g}u$$lH)DN?MWuINw>QLXS%HIJ|8 z)6By22E6O0x3$#0p;lRGupe8AH&O22BB9K$+~9Y&X4b5Vv(t>L8g>dNY+JZeQ45rM zWU1R{_$bCyj|X`4**k`e& EP{t;dnTh8Uk&!Q#-J1xs!C@htwQ6u*Hfq9cpzezY|Tu z=_ZMO9W=oKp(7qlV!;#3>MkBLXJf_87orDYTFZ@0@Yr=-rNa)pCqt7VTKfUA-=x;z zk55}XJE`*OIE8(k(Y@lA7YMQ^kMGp&yik(5QZ9Fz)4o3VladFW=j*egJN4(hlsx|r zdv_faXQFP6KAzw)+#(QyyIX?0yCwvJOVEbK-CY_QcbCRJ1b250u8ms*&21)oW{+g= zbI$(iyZ6+ssd_5)@`n7GDyUztwO*qtAxQ$hk!4s2Q+i6HXrA$Pwa9qG8D~V$Oac7l zE5%}*EpixShx{t{WqtYU#Glw$3y{1i;Stx>dB%P$5F{Y$FHazgnPw$;p)1RvzN~{y zf6&U{MKAElQwp~PAXJ+EMc!EV6Taes(34hr7OQk=!W}?6|B9>x&_tB@*-<<5{R0jU zD)E C?DazIZG1}H4u2KR~>RBuCcPm3IwW#8>A91@sMC*cf$luU}*eB^48O2%~Wiomp z^&X21(~ab3GS|BIngm;dXSP45H;Cp~Xc@&XQ)PuY`$>gm53_H>O|m!%@Ad<_o(Uc0 zXJtdH;~i=Al6JS(c%NnTIy{YJf1rrWM?5TDNcB7!O>m7L1y5E%(pnL-em&sM=0H$k zW*X7ex(>xAMVOXvIv%rOj*QXsC 8i@aA*b)Mx+tkFet z1Uqf3zs`GEm|70utfu h0MN;i+Qt-S?DlM8Fn(ZSI_82Yqln?y)VF8a&|m!H@r0i*V=B3 zM5B{9+ERn#RlPjnPI1T9(A>j1YeMz2ctCdf^g+Z}6ONLvH+IKIA4SmD3A8Wak0qv` z0@+GmDDA%&nrVF6xYlw|UmU34qcdNF(|$3!AKWM~7jAjh8XUAA>Noaj84mc$F0~*2 zgm39|5~tHc@gOpfpn>vkbrWBrB~BF=H!VMVha46oJdBcjz)cFL8!&nh-l@UGI6wBy zP>C@jfMEEw%X#z1Im?LZi)GF ;Oj?QH|D z*BpZiiDjOYXk+5S9K)$|bUArOn_OgS!#PW38Qk1bGCpzr!pDcPP1{D?%??%&8s>rm zLt~<)n!Fko>quTr6ZgxSFHN71iz6ntnTa92gGxquv6?&dS#d3SV<%;HlRMm{)pg(D z8x_WyX6D2frJc~Dlu1pf{x$XVCXpTG^bXVt|Gd}5dq2m{WVdSa?EWL^s&CkRd)}Ov z-yermwU9~e`>S6r;`CRwkp~;PyVSOk&Q*25g{2O{!I#T#h3(t*H1 ov z?8xgoE(AI)NxJL}%VQlEfv>g=T;5NhaoGk%aqn1!)DDf$%~w!v?^yQN&K1lVGf!)3 z1LkWN9!gu*44>|9Aai}k?gs>G6RxT59*p5jpLdDR>}?5hRXjI8?_(u8TpX<{VcR_) zLLoYu#N;jzF^7${6CU>~I%TWu!luB4C#_N3*#_npbIOFLwWCf2Z+0&h(+JN>FySS> z=9jB>gy&g`&K02D%S~}YSbP*uA^>iF1??ud2pferux(!*kP%*bV_tvDHiw_|6I=lm zuiGYe;jp~Ref|)~*bVb*cnAU9g4Bhg*#)lbiu2G_kJOd*o6~~{S2Q12wG3AgerI$Q zw}-wiQdurGLata7ZYU4kq)FYBn%#(0++T<&yb@tSperH3ojuCkvecbQ#f@fNj_wf~ z1DgjL;(xl0M{tA(hl(o~K$fS2{T+_y6{{zTqUU;(tB8t=*qOA1FX!_!PevTC117IF zc`qdccbvDjcvXhN6JD!6UMuNd9p625*PTB5N*cW7(WvrfI`cBY_AX)Zwlr`ut&%V| zz%v5*^i}%QkNChDKe`&Y!QIcqJUiY20KRQ8zA0tCU4y>C>%dSp(QseBFDiZ~c79%w zeh&LS@dm&|fN-*ifH#{zT-o2y+8^-JKX<|*ze=$1kq{UsV1+e6QX#-B(!Xlmx#o<& zuIg#=SwI4IAU#u{qkta*U9DB@Y#*8QOaw;x1inrW1T6=QOgN3Hyr0M>tE>tNIScf` z4jNzyTC4)h0^ZFVh Ho{Sl!X=|QNX{^vLj7X}t6>|y$Ap-p$gP9nqb&TR nJ5^tHd776%%FpESfnd zI!QTt&@S36CfefM*)rD2+TIQkxTJ57)?SLfy&9u?9_4;wmfITTY42!{>kLE!I8}ql z9)e_FgU(1}wK`2lKgaHR#R7$6 7B@GEZoGuC+0=GaxQ_&`HYxHo7h1JqX?IpAkB zg!Ewqu9_gX5qDc9zPU1C#xH6v)^(xUagjZdCo3Klk$@DPxLF;&g6p=%?zD%S Sd4F1aisdCM*dHO>;9g6lDd3qoHbkdog5 zQtpCM@YF0Z)#xtSHD5Y76TsYwYFzJiCBNR}hED1rl9#VeQ@2Y~pH(F@#U&k$nUcn7 zaEc|4Z+xNO{KSZtj?I>?qMR;en=WGXg(a7ljl*3EmL8my9@?Jnsf5s1dvYTW`CNC6 zsf@?i8IPW4(z9jiZd!a6qvnOF8~ewo#JQ+-85rSZ5uasn`)0BMvH(WO4q~2;Fb}vh zEXxQxTbwOhNG024Dw9MZE3z#cu$lesAhZ1VHYhG9t|ljbDkl+^lZ=;}%8{F{mYeC2 zn;n;%E0!CHED*|JL{O0n;m9jf%d2q6tMbn)*c9-e@+6JU`-+$UjU&HBEx#5<5nZF! zT9e;1mEX6S-<~T}lxtK1%O7(nn20M#!z%!c oI-4_#%lpq^Z;1gk5}BlRBU*b_voVd zF@8RBx5PfO Y@t$&KvxQI4uLUT3O=U)wid#G z0-*+y5M3xUf=lt#OAmD+&g;b-_+^i}OHma|)a*+5z-6amWjK0e;XY+z_~qMOWv^FC zy|O>Zfy;Nq%5g1Atux9$h!<+)$xGF`$lzBPpcIgRy_C9r^}!Vu;`yI0 (Q9e$OsaUKvw(JR1T1zZ&>o)>UI9CYFDgI^5-=0?;i z>eag0fvc0Za=`e?QN{r-_%+#-H6B~u8PfqF;F{v;oHS#l0`b5Y{Mstc+Ge@h?z8GD zl$si#N*y?;=%Ti|w#JdIZUIo!7EsgFt=zR0+%sMGHK5J|j#GcUUONJ=>Yr9kp!7y; z47p9$j~>+9;WR9QE0+V*Rw;uJRgGV28z5fwch4L4z!e91xLRPPQ~a89W16G9(39!L z4~UH+%&$*W>+bc`kLCG3x(vHp_f^jLYu)kJH} =o5(ik=XvnQ!bD- q@5`gJ$Ck=i^KIOiTt)&4)Dl#PR#)*!nKJ`kny$ znD6!zQ}#a=?;nd6o_Nr5Hq+;d8r0kq(|Xz8o!j5{xu4B=V1!^`g>4{IbpVw+|B +r!# >_b7E&d%8Dtx+u8@e=lNYwBE! zgg(FOJ|K0zQ|~a{*07t?fDv_s$(4+cQ-McsKMvYNP(hwwLPUV1OhiI)lw?$llXPrB zg>8K}APDSmHF;JusWv&esXNsJn=l^f&*+^ZUYOFnHyutrohLRetvl@ WSWtuZJ zyFC3IZN`m!W BkY2A^<>7tTJ_h&zp7+4n8edZ@FJ)U!gOvu%d6nL)FR z>9b#YW@mSXl7&VCgXSu8hu0s^A8^kfX(B$GHh-2d538TQoSnbaM7~9|aEE6BVXY6G z7w%|%gI-O~)vLp=79JCQf6DXyI%ok4fve~X$PEkO-820B-w{E?S3HXc3EvT^N+f7M zfm!aJ sBqb2ZZ!$E`XzDg1 Q0u#Q@S< LRB{8$Y9qODJ{En0qHiN&ZlMHoGgoURO=~H`Y%?KvGpl^F zOlz?Ky195Y8KAWl?YvdxJnh%8RoA!P5d0lXv+<2*+e2#`+j+YQx`COto!hsK1>JT@ z+#VuY8zEXQGTWR;+%ag_d1$s{3*T9Qt}L1@EYGd3Iztr_q4yi0pXQ)Ynw7o2<=MUs zM9$LCd6ztKE4F_3a&8F@-~H;mGhjw{w{iP^(f9M 9qD$ z;CuZvTk#qDQ(F56h42+z+5?ilebU`!vXFyUg$G0-doPGpX (RDAxrcnj-vt_Hg)r6`%~eEsSHxZBBzKQC6AWa{cS(p3d9ROvQODX1 z$80VWA{ZyZT6>hd%X;P~sWc}%{m^&Xv?kJfX4*$WjVD$v^YSk3isr{mnkM#*OTg<+ zr~VuO@!1jgS%$`$Khf!m`x(CWsYL%-iSx0;gLB%#vpk9OEVFYX?{iC ka?(L+|7ngk4CDf9h=)a8pH_^)c;GNk;)^_K>YD3=y2i7H-D3;POD~>F zu=Zsl?dJ}7<62h;tS96m`Q(y|_^O=us%6Y CF6 oY^?HLubW@$*<54LT;B>4{sX!a(p*0N3A!$K1Y=126J0$w z7 !E z1iGGVPsW d*;1Ahx#Pd-l48P7w2Ix>&H9$CJJ-NgzFp z=jlEtz3_q3a*6P=USFTptohCSJ%4wC%!Lmw}x)$&&%{A}b%!0--0s&^;e{uSk?u zJ%B-izCRVx6Im#5$WJ}~Jg9rO!84+Sek~o&$idhv!PtLya`_n@Yd`>_3}lm}OvWEt zCoe5Hzf~%m11FJ^5p7~9ljD2RY9%WPv?`O&dLe0w$XS+_DbUkXTgfZh9F{3&yc0B4 zP{m{@S9&X(VX3IeZdI;4{DIj_>0>vfd;;@Jf~B(F`=fH@4<3XpYM-)NA5XrBX{{*y zoZwXP3%btSD!9*}Zsj&Lc7v|ADqrR$Lo~4aGh&LYxiw>cLD%`UWm5#Yez`%{%3shG z{^SE1B4?TD&iM~?UHS*Q+Lq}Q{DQ6-%YYknt(FceePurqp>OsZx;FekR}O0M^bNXB z{sUbN!@WQMK-Y~Q=*sKvaD%Q6zoP4Ew(%wcT}`Oly?;Sh{MY4KH|SdGS^K A^$+vFVnBIZ4Z8ju6D=qzoKjZ4Z33dimvRDPQRe5Eg=G3PjArm z6oIZpf{XnuJgm#C|3ufM8+0xD6 L7=NP0$q7m zwrQQOo*~e6=#S{C<>xkoK-Z9G?~^4TzqvtIF9f=}`*|=PE{MPLee)~2%7VU86cme4 zqax6C0_O%@najS1T09~kgjZGfiTsK5fBAFJTg7(y &vJzlGlurDUvV*x?Uo`ZMEr?HG)JsBhb|_ zL(B+)t`8hYsieup ?Kd35h6yãtp$6VqFbal>5l*G;A zJg%0uKVf`-?KsN4Paf)~=AZOn1(WX?M}=1=B*oj|t-$H4K|i&ERKL3Q4CLIwK8v#V z$eIQsC{eQE?rrJ9NN?E{DTdxvj3m)sVG8n2b;kz#Ww4B5Nd-KWH$91z;=P|M x;xm#PELTY7JIvuB%u(2dC|E0uf|R)xmCErHQXHaUKA_1fv>O#cSQL{D>Z4S~ za|v^66f-TH!qwK|(w`N^DMkZ&^E6I3BO0d4vt4(>v>u8_)@)j5wF^*%Jg-&pV;)Nj z@iNg>WK!+&PALv zijIAl# zW}yzOTH~!yi54K;LG*APm5%PaTR+$7KgEE5gXN!s^KXCqdwKrp^Pm3tPgwgutNImS zkd|kZQDKtRWd40-_)pLOMJo7LbN=VIA>RBN7)Ct&)VF`U{K4kGB#QrG>Hm%Ae`b$= z%M6#Q%D5oXy#LYto~aSfdM>vAg;f7W)<1jDbO!2K8=4ra{QgXhm4ALF%3mB6{(1)dYHT|#9X JFW z=Tm#$Y<0=VDJ|cyYUudjbb%?T9)ityt9!m80^iZ?Cz>}dAN#&f?|JN}(h@|n@2@iQ z{b|NX3kCNRaoPBu=N}aXDL?NA8qA~y*Q~eFj*$iG5WLRn%6`H$^(4S(`4#@BC83M2 zvJ95-uL Njy6hKQm`5;9K1Z0SDoNUWC`ROAL-_fi<5a?8*uPnWuAnjo)AQQzD%_RCa%^CqTd zCPT%6JWE?n05qWcf*wP+=hG`InJ!cm#` hprPRx~w{fh^W(gvaZ&@A2fqAl~U>^f^MTo4JvnMN+Al z)5T-%4ySjF&@&a}NYZ)^$IpGqqTSh$b*`a^LqE %+qQ!edeR?;k|B-+Qr zsfR`tsqb%TH_9tF5rr3f(3{9S2CGEUU~vW6P@%uXSM7v*Lc(OX_1q# #-DZI-kpX?a3KU1HK4zJ)U*)jcsf;kSYP@_Die(Hv=@%<@l zWi&U9<;R?v6^0n~3MaFwRLa@jql%icIx{Ixal##*)~Z=% idhHb*tP(X2V<2 zyAW1)s8f;EQULgT=u~T~o)+nFI&S+wSqpwuq_$1@;o;LN&5IRU2Tat3WtIs~j6x(w z46cvJv}|9o$8@}}^gbYwO*Ajw{^GmOsS|55(J~{r??YX;h+Hwz`Xt!gM=xFnZ(OB? z)mb{YxAqeenP@Ao*@w`N2RejF6CH03zl8f#>-wOn)(U!CM&@wpy_m1+6mW(_Kl!$R zsXW<5YHJA(Y@Z2b@Hy+@ld=Mh_pDO;K)SWe=s_h^s~pc-da=C^6O+Jtye^_$faulO zhmtdV_;CgzP)Kr-#5xZz-T+!+S^T-gn(#Q)ko;Jg5k}yG6cE;*ECtEt7B> NwjdjmCJb4y z_Q8tHvVPSa4=(lUNu|w-(#aiZ1b|OIvXgEv=&>Y@>t46rOC_IOSGzc$Zct>En5-AK zOM}h$jj@WJ_lmjj<1GNN&IFO>L_IEGQ_M z`}!AOu>Bmkkf{iG^`+O_G5$5ir_LudhLIt0%_oIc-GmnhMr~aFj6QaCn3^k`I6rhc zrtc_|^J+sT tDMrXAu!QKl8@zjJqK*K7JeKiT_2`QJ37`3KdHI~_Tkb3G@kLC ze#PLKvNJ!QyL)l^O}gQrfCfl3JeOUe-EfpOf3(_tcFrEeb6g2;blOV8xu6>5Ic+a; z+y&xXzQE)?A5Q`v%Hv!;Q{=r^+jTgl#DPDE;=MYZx4*c?zCKTPxny+>UvoLS@48Lm zdaugWN8feB%XL286_w2`QrIzB-?78n@p+Y-*P83>eYb^lHv%?yhc&mM`|dj=?j%+2 z=KAjKUhc4TcPcgy-8J{x`yNdsZcJ4kiuxW!ULFrgJ-FCBxeeTMecT4#cnVZ`%B*>$ z-S>o~dq}W(W$SyE`gks6dMZ?T39os^-1nj`*VSP2_Sg67^YJ>*^wMSX(yCJVz$PYF z<;_3g?Q-lL^&Ali_ONDCwiOXYM1mQseDp_sI5NClJ3Qd-Rf?W$iik)s6UbM(+*f$i zH@L$+luaT0Ofgc$j|AYy66I%D<`>`LmI#td1_-&Z`9D|jC$#Z5CiTx{bIX4uTgav& zh#jE77I0TF!0vuPm56JNfpi^6Am=RLE>7SEQ{b3QK%0nXN0nsPnF>OueGR &lSYEGyn^=-j(z4d@yHUP z)5ByTp#mY%OhIrF|8s!z#k%E{O6ZDR=x$6X7a|f&?syAV rRt6)DGVFKPcyI#&O6bks#<)cJ7K z)1%-I_6|DLJi47avi8x}B2gFyQTaYmW_|#}Np53NJyX>fv}((&=ok!L#3Waw#krfM zD$tr8 LUioTKZ98(Xs$Q)CMou!{w;+eNT*Mu}SMoW%}d$7L|a zp^$(wV*%Or?76XKiIZ{EDj>3s*hyA!nZ0dMEL%xuT ?*ZGAOs<3@ZxlI`Fm%P>;xC|nd2*J;CqZ8TDyplp|*9g&bho>(NDDEle#y?0`9 zR-#;U{62Ofl-*_ziRB>H w@Gj?o>C dZ%2qCrhiOyv$A@ssX)#dA*8rCs9kqR7tkAOP;Vzp~_7G z-A#K!mPRU;mKl*sUzJLw=1#Wh%@yatwwb~q#>tQ8$pcHX#!j~ZrOT?M<2a;$yPNTG zB2fYlDAnbogzO`Sm!hCXM=+(Mnwvp`2Vilq6j#eM!_J(G$keLLG~sa6?*dwM*&?#R zovK-_c3FU!EC=KSbq-&+rh|`mZn9YykJqM;4@a_JE^mOEuPa{m7<;xqPEH_OPNct0 zi2pkfhaZBed-QX{&T`^#a#O`@62z!K!J=~FVp~=%3gSK%A?NkH$;-s^&sNKm6v+jF z^0FtgFRODIm$N)7^XfLOTPP6Q6(2gM(j6V#+BSiTZ*Kq4>8Y9m#A??ZtYG06onBTe zTy-d1rzq?e6C8GM9E~g7!z()AD7w*UwW2LCp|3FiU56q#tmqbg@g4l)a~MUh*oV8| zV&vLl)b8T@lp;HEZdX&q&(%w?fF<*=;;^!!iYi^4iyNIr$ty{2DXC{GxzXub$f_6| z;$vBS-U?yhEM>|opt%rxBOa))RLV77N)9aTjV$e6FX2%y6Phl5*Dc9M86*HKle#E_ z$CWjdl`T}2$^gq%P>SU8q!fU`Z^7js@GE9(%1@t{h@O?}fGZ5eE1ry&Lk-G}@GFhC z@{-moj(saE!Ie_o75DTi?@pFE;8y{~D>K(CageIq!ByPdl@z4b{A6H2UR8J=BoO5_ z-Ii7axSCPDn%1& &8vZ2TdV4O|MYvNl?|_n8c#Sf6K1@mOlC|9aonwzJVeCB~xA8OULFxaPzQ@eu#QA z>uNLROw&MBb7;Ufp}^XAJ?dhp`jS0OTR?AQf-qXHR{x8ZIm}k>{MPF3*0`p|p8IVS zfh}|Et*Rz%4wP-1Hmz@}+f1k`%>r?CQ8lax>TE8t>?G9fx4*&-G=hzKT3o2Afg0K# zCe2<1wLVm@E$SjH>pDJ6cVMno@sqWN$Ja#GVL1h=#pZXq^#uEAv?LMKfVn VECr9V_1b }R2V@o7iX{ONe_m1Z%=;r?atmuTfL^JeOTmu^x}Q?dA+DFdptAx zwoLj6{rW&C{a?EKY~P6TOSF`j^cw~Aw+ZzpZS`BJw~njyTG{vBqlVntF}X9_h(cI_ zW@`E<2!u>HNX$7ncQT+CIH;O8xa!?=`?QtFwCu%|8DAZ|ze{7t!*~FuGMHdLNF`Z9 zc4hu5!GeT)c#^80vU3oSKTKWF2w&|3+#h-Gly|W;>})dfrgxYjXC$#_L{NSBq1`Yu z*{~dSvBH%FT>==94Zc-7iv4i35_ODoXXw%7XxsVd=Ym=(v`Ag<9#hFu9mx?B=5gz* zF=5>C-N11M^>Ihd5$9frYr$A==a>g!k(cS{g5QK+LSaC{5P#iJNW!4QPNbXDcvSB| zOm9>yni9Bo(%>r8n>#6(aB3NE5?0qQp5KujRFcarl0Q3@emRAWKW)u49cem^K0W#A zd{Uuxx^idQ2x&%ybOtM6S}%Q?J!s~h_zb{sh7-Or!-O^)L_SL+I4fd28|gRuDr2^u zdx}JL3T8jGfcABUI&Mx=cCDbeOH;7NbZ*DAU{_OMU$Wz{U}7U7ZYxOUykPVK4SZEE zeSI~vm=Li{n2ZqYV@dwgovHiKv4>hwNbqEoxj8f%J`AntCuT*siSO{|`U#=mZ$rU% zp;E7DzVq#v*`iI62N#hxupZGZF=;KaI4`j!E^#1qdTxmazQhxZjNoVit!0ExizMDe zf@y;bb GAIy nSxb?)yQQJavy zwY-LPgien;Y?d}`>1b`aA%L3Zc1_<_3(ZOc`uf-4t!Az59lxFSZpEir$j2S17>I_@gmXW~DuH9O{?|1RHu zTn|6eCjS1B_CyhStU|k^#>;3Ry|3GNGBtNXdU%puc!KRbr*D2L8+>{ev=8h*eFr^# z9K0VdWr|LAmO^xDk1^*~bjB@pMqqX}13L?CTneXMjMP52mS%{dJq)})Wtl(6Iz0DH zJg=`i_vttFGlw|`!v^wUnNl#!C0G$L%!~Ho0)1;%@8Vs^k)HNK^zOwR`lTf;w9K5Y z#pS4q_q+x!J>RKK*G;@uJm1@21WkaN4euWH79oD>->;+9oW5Qi|KfN#y2Ze6eK5MQkEUUqB4H!k64(w8vp{#!5K|52xTJb#G EWfk>2N9NfA#_@#1`!EvBe45Lr|04K2-M1cv;aGe-srSu zZ6bj>%Q7MoJYR8jqtjf%*AL=vT7ccP5jw3=-8|WwAm2u)39|+vbovxk12}xs0!& zaS1pmNJ8ke2STTJN*aC4?Jh3U5iP*9nh2eSYY$&16>#5v*mI-PBYr&h@7}Zkmv16; znvChuI~3B_bo^*5e8v3tuod +Q*5JAtf#7vv^p^ zOU!K|BYKzGT0(#}$V^t!#mJgTgqP4nPPQpuK|(^hz*Jt*Zc~9tMtjysK^08JET&*y zZlb99-k6z9#iiUx>7!LXrkF;^iiNT!@EB7?KMjvX4LRWWiK_9eoUQ8TD~F2dtn~Yp zyhgyfiWv|@(?;E_-ibxSt{dM@&}yv!Wma-@Ct%igenq(&pqS3O5V>8Ct(|#fQ=#o; ze>u+QMoi=PK@yDz=ess`8>rly(EIG8A9e ZYMG1`Ui2x1cZ^XtL&$qnH@26L zT`%hH=W4x}F!%G(SQj`}-s+KA8~YlQ-D>rkwA<&JS1E(9 6W-rJNTch4OAZh?l9o+cK?I zAFw=aUVT^J(c&8l?}^2$XUcVwZTNOvEFED{8bV!^^9KiC84;0S4bG5#tAU8;gcd_& zj91npoC;1h`07~~HmIM3ZEUCJD>OxC*2cIQ=76VHU#C3UzW_=DvUUIx5z0h>RdYKn z 9{knyr%I8xL1JPXnzpPa_xA8p-9}YH(j}VmANEs> %ALiGOS K7@LHqfhCPc|?f$z|X4=F`afBvpKw1MvVFS5Sm>CKVh7=5BJea;hW_& zXK!D@z>z2P(E_A2C1R32eUDPu2*{ f^F(L2&X~q^ 5HM8_G4b)*lEyo?y zGw}LYM@00qS2z?x@`f=-w9Wz&k$X;3#YZm26?Q7J2Fq