From 3eecc5269adbb6b58a8083c3b4f8759312c37d00 Mon Sep 17 00:00:00 2001 From: Elex Date: Sun, 22 Aug 2021 17:11:36 +0900 Subject: [PATCH] 2021-08-22 --- gradle/wrapper/gradle-wrapper.properties | 2 +- {swing => imaging}/build.gradle.kts | 2 + .../kr/pe/elex/examples/CommonsSample.java | 43 +++++++++++++ .../main/java/kr/pe/elex/examples/Sample.java | 57 ++++++++++++++++++ imaging/src/main/resources/java.png | Bin 0 -> 70133 bytes java-fx/build.gradle.kts | 25 -------- java-fx/logback.xml | 20 ------ .../kr/pe/elex/examples/FxmlApplication.java | 33 ---------- java-fx/src/main/java/module-info.java | 6 -- java-fx/src/main/resources/fxml/root.fxml | 41 ------------- settings.gradle.kts | 5 +- swing/logback.xml | 20 ------ .../main/java/kr/pe/elex/examples/HttpD.java | 53 ---------------- 13 files changed, 106 insertions(+), 201 deletions(-) rename {swing => imaging}/build.gradle.kts (53%) create mode 100644 imaging/src/main/java/kr/pe/elex/examples/CommonsSample.java create mode 100644 imaging/src/main/java/kr/pe/elex/examples/Sample.java create mode 100644 imaging/src/main/resources/java.png delete mode 100644 java-fx/build.gradle.kts delete mode 100644 java-fx/logback.xml delete mode 100644 java-fx/src/main/java/kr/pe/elex/examples/FxmlApplication.java delete mode 100644 java-fx/src/main/java/module-info.java delete mode 100644 java-fx/src/main/resources/fxml/root.fxml delete mode 100644 swing/logback.xml delete mode 100644 swing/src/main/java/kr/pe/elex/examples/HttpD.java diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b0484eb..4cf9d64 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -7,6 +7,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists \ No newline at end of file diff --git a/swing/build.gradle.kts b/imaging/build.gradle.kts similarity index 53% rename from swing/build.gradle.kts rename to imaging/build.gradle.kts index d2aab59..a28a847 100644 --- a/swing/build.gradle.kts +++ b/imaging/build.gradle.kts @@ -10,5 +10,7 @@ plugins { } dependencies { + // https://mvnrepository.com/artifact/org.apache.commons/commons-imaging + implementation("org.apache.commons:commons-imaging:1.0-alpha2") } diff --git a/imaging/src/main/java/kr/pe/elex/examples/CommonsSample.java b/imaging/src/main/java/kr/pe/elex/examples/CommonsSample.java new file mode 100644 index 0000000..2fb3b9c --- /dev/null +++ b/imaging/src/main/java/kr/pe/elex/examples/CommonsSample.java @@ -0,0 +1,43 @@ +/* + * Examples for Java + * + * Copyright (c) 2021. Elex. All Rights Reserved. + * https://www.elex-project.com/ + */ + +package kr.pe.elex.examples; + +import org.apache.commons.imaging.*; +import org.apache.commons.imaging.formats.png.PngConstants; +import org.apache.commons.imaging.formats.tiff.constants.TiffConstants; + +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +public class CommonsSample { + public static void main(String... args) throws ImageWriteException, IOException, ImageReadException { + readPNG(); + } + + public static void readPNG() throws IOException, ImageReadException, ImageWriteException { + BufferedImage imageSource = Imaging.getBufferedImage(Objects + .requireNonNull(Sample.class.getResourceAsStream("/java.png"))); + Image scaledImage = imageSource.getScaledInstance(16, 16, Image.SCALE_SMOOTH); + + BufferedImage newImage = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB); + Graphics2D g = newImage.createGraphics(); + g.drawImage(scaledImage, 0, 0, null); + + final Map params = new HashMap<>(); + params.put(ImagingConstants.PARAM_KEY_COMPRESSION, + TiffConstants.TIFF_COMPRESSION_UNCOMPRESSED); + + Imaging.writeImage(newImage, new File("out/test-out.ico"), ImageFormats.TIFF, params); + //PngConstants. + } +} diff --git a/imaging/src/main/java/kr/pe/elex/examples/Sample.java b/imaging/src/main/java/kr/pe/elex/examples/Sample.java new file mode 100644 index 0000000..d94c1bf --- /dev/null +++ b/imaging/src/main/java/kr/pe/elex/examples/Sample.java @@ -0,0 +1,57 @@ +/* + * Examples for Java + * + * Copyright (c) 2021. Elex. All Rights Reserved. + * https://www.elex-project.com/ + */ + +package kr.pe.elex.examples; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; +import java.util.Objects; + +public class Sample { + public static void main(String... args) throws IOException { + formats(); + //readPNG(); + } + + public static void readPNG() throws IOException { + BufferedImage imageSource = ImageIO.read(Objects + .requireNonNull(Sample.class.getResourceAsStream("/java.png"))); + Image scaledImage = imageSource.getScaledInstance(100, 100, Image.SCALE_SMOOTH); + + BufferedImage newImage = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB); + Graphics2D g = newImage.createGraphics(); + boolean r = g.drawImage(scaledImage, 0, 0, null); + + System.out.println("? " + r); + ImageIO.write(newImage, "JPG", new File("out/test-out.jpg")); + //ImageIO.write(imageSource, "JPG", new File("test-src-out.jpg")); + } + + public static BufferedImage convert(final Image image, final int imageTYpe) { + final BufferedImage newImage = new BufferedImage(image.getWidth(null), image.getHeight(null), + imageTYpe); + + final Graphics2D g = newImage.createGraphics(); + g.drawImage(image, 0, 0, null); + g.dispose(); + return newImage; + } + + public static void formats(){ + System.out.println("Writer"); + for (String item : ImageIO.getWriterFormatNames()) { + System.out.println(item); + } + System.out.println("Reader"); + for (String item : ImageIO.getReaderFormatNames()) { + System.out.println(item); + } + } +} diff --git a/imaging/src/main/resources/java.png b/imaging/src/main/resources/java.png new file mode 100644 index 0000000000000000000000000000000000000000..dac1b165b52852111b46694afa62e328f626489f GIT binary patch literal 70133 zcmdqIRaDzg)HaG!tQ3lCafcRniaQi{cXuf6?(Xgcf@=!J-JM{?io5#<{l6FIoU3=O zbN5{&S&+&6X4|u$y=Nx;hnzSHA|4_H1O$qtgoq*p1eE&w>jT`|e>zOlR^C2f%mifx zAt0&;Ibb99-~PsR7FBmvvNLsdGjKG45Hz+kH2ETFV_;^YXkuXO?l5G+3jv81Dk&nU z{1be%il9#*p3eT#T+!zFG1_)1Wrxfaod>%$3kiz+6Z#kWnhkAs&=Ng8N6^leruw*D zYsyXszk15f;wzMNOE>Y2*7$cng1ET2WrvRgOqY)0fiV z6fwmKXXy-g?duz@fOLenB|>1u^wPY4e(!|(|GY!M(7%82|9t;n4f^i~|Er<@t3m%) z&-b4O{$EP||0VDLb@TZJGIY}TQAmEsg61@SjWW62a{XK9I+d7N)RnE`InsUfh}VA) z`zAJLRKp*PPLjA!=}lp@yKZbWiN3n5oEN^5DXt`cpugxt(#vsWL2<%dkZ(^VkSTFT z20hdd&7Tc~43*H;ei4=*pbin5?DIZK2)m9|@^h|Tz}aFxb1DFVX%PYo3JU@X zt8-(=`h5V*H*75)&S4#Lo8g4z%;=0dj;#yQH#_=?N^ZO@W77C@%BYQDN-WhF#|=F| z0SXo93YCf)n=q}N~MAPJNi1=9~C zZNww9yiy$8BWa2X5|Vb0dj8EYxZ=e<4oSePLg{X(JX!3ukem2v1O=(YPxxgu?h~1c zjKY7?QeoMD{PSlpRK#vg$m6F?(r-?2-}2SyQ6X~02r7NsPY{qu`rm$kD3FCFppV!N z6(1ruxD@3^mW!h6hml%z7ES1v_#u-<0`sO@^`eu$w^jG2-Gr4fc<@`%#(e@)(c;(b zQR3H$IRrp_s)2yW^U0T091yXNId+dSpUBNsj@F9!QS@35w#s!%P1MWz^gaqJ|AR`u z{iogxnkE_m->n&GeqoRm>%lJcac=mJ9a*6pRczZ3dz5j`cU2hd{3^8nsBa*NpBXaJ zEBu*I2o{^Fmd*~_qRo+E_1LU3VFY6U6VdjlCpqZdbdi%2M4eoI!3zZF0!FLpZHD95 zTgpJbKw_XFM-pZf!pDLx$p~$_N|;ilH`yT|ZmI`t0hj)tHo1W1)b(HKy;?ENjMN1g z(G+IpX>OO62C*RMRm&P-AkqZR6*DvYV~46aigFmH(*?&9l5&Y<(gM76gZ3sNYFPDQ zkWxxMJ0R+lY+;6jn&{+)8RSc$u5rdPf_^l9HPMa-S%oH}l3Lz!yrqmc8#`mmLDExS zW>PUt?0fyBska;YW4G;nA1NWFLh;c_o`eD=o@wJ*N09n43Q8qN#${NoGHajq z=8gz<9@wZUC2t?MgYoG9LB~&JC6S@pDsrC4>O2t`A^U`6oiP~to7EZ^K!K?Tx&h4p z2rN8#Q4lXHi;YB(8Vn)i1GTZ2(pk0t@a&Ip59OYj&P}iOs<_lzY z`3tRptTz^-bz~Ewji%~>yD|Db8PJtrTwyd@VVf= zHuw9>p|cqmaFSqM8XKF021wx+vb<#Otn+SOwS*XzL?7}kBq2J9c^LImvgs)H7pzkJ zLC%v4ni`EX-RZXK(;P0jv?w#Z3-VtcWSAU+xc^7e4`|g^2I*U=xQe?tuGv-7B?P15brY3LlxjP)W+Q}EGAuD_0~8@Zyp^kzMR?bEVD?k-^drA3TQge z*T{T)vpfWZF==Kp`?h+e^;%Jom(nI!3t_`@v0k!UT+;Z4j8w6R{dSeXhuDZv=$~E7 zzQGO+(TpJG(|0IYX_^=%8@SozeTu~adL0skYwI4Q+=pC=@ta}KDS@-anqKhwe^I<;mM|kL7cDn zrW&4%r!Lhe|l5qNoD* z127(2F}`LJU2V`Jlb@^a+y=yu3|H3>XOUOlApdiTs}?vVAbbF2s}N@Nd~0)JKGi@- z!2ad;Z$)ziOSG4>+s){usX8?-&Sp9+@+`siv^v+2#P~{^XhZKzO4u5SauzX_X zoW5?9%4`yNNG+WSJOV}a7c~P2cQW_p5gwy>{Ow`?Jx&A{A1D$7Fc|2kM&wWXin$6K z$jE(f1&7MYmv&5nA%#oy*r>_FEDJhfFbX1ddwZB)-yv2O)X%hD+W~sA2x|yhN+3eu zD7@gAE`Az2UT&p!x703NAEZ>7$UH$LrYykWoCR#SP7_yzj>q=y0`!J@Jv4ryxXsHW z9O#W$l9j4D1Ur{%WnX?87)Hsf_E*#1nJ=J>BdWQw1jv2~nl5?h-2498Na*&6YT)q? zhaKqNa#v4_sv0R}EzknjY4%>Za2pi;*O`2{u|7k?;%ur%<@i9*f+a$LwohVERmw$83C4PO3o2R_{}9LUOC-pU+0o_n2vYlTPi4nxJhVT zA%NMuoPByz9|=Dou(b^TZc}?s4dK~kp$4zkB8hEz<9z-C4c4hqncOlSERzLHN3iy6 z2g%rN-)YEczL5<07IEvph>#XCCsPJ&N-cv^zN9{q*Ykq^k}X_FJP|0*7s^LZbC+xcO zVt=hE6?XozZ`HRr%Qj{PUUp2n@%=}Y{rYSHV3Z6gk%`M5b zP3X8Eg#cfZl#-7>>#><~mza7A!y5g!)X1gq?Go5<%5ZSoWfol%U$T0K_-A+^AE?^m zc1em=IUy%TH{NRO%a+J1f8JfildY6i51H;i45hcU**?gJ3FTs}(rvHR5y=hvY}*Vu zbZ3ivt@D+$FeSUr1zrPT{u`CvS24B0My%}br*!{>>>H2!+DdRZo?ImakSC9jo4ldi zNOho`GN%gG5IqC4VX@V=GJ>0Smlaq~QV_qwUoXvxwlv5<6q_*#zHDYP0<2!pd&-k{+ts1=K&~vp#ai=VCdN{cxhTlozjo zkuiqdkYy~qf8N;rxNXgzSJ|$tJa0OdLR_h(n)0?jUlGI&dYal0oedDK) zgGBn?)(o#VYG*ik3!5#xCW+70Vn8u3ScGw!@x){z<|_)2BzWwEa%*>-80T~437;;P zL)QG~H3W*g%VTrY$Ad4f2F7i{PzqkTAGVQ<7#ga@-3Uc#bl7X+rvRGGH_qcRtCrlu z9WK>4v9IYqT3nnHMed;1c)Eq(bp6dZ??md)4=tN!(+efbS*fBexy_iJ>O}fi{`vkY zFS7D3Rpk0H8JZFs+^7Vh>DjyAVf)!2iDmCY*k6v53?JLSNxLK_0Zq!z7~nXkC9u9v{=w_UrSA zRue;yyM{XQhnawXS<3gqj3qylTRjrUl3XNDDZ`Kj{FVk>rT>ei)^Y=nq-skZwUd`d z^iZmW&=q*YFC`&`_czs5o_i#xp@%-Zi1daiw&3f2Z(3?fglUUom z*wLRdqcWQ=MU{j`8&8JCX~#WuTW>yge3E{OC<);gZ|<9IH1m(y!H~)GP*=L{bj&ElZ4(heBlusu(WKjO2|DZ|ZUS#^VL}*V8^5uu)5sl8 zdFwoCPtR2lyS+sJO4`n1|(>t zLsj}p*1t(vpHh08(XRceM^pm-;sKx5U#5lglgUlcUo04jo+Q2+ySY#BZpL|jw^_wargS&q+f;ZOe}-a(mOI|xC8m&@4J{5(vy-6YqieCIU+9Z ziZXv@EflVaSn!1F+`;_=AOc;ODs9uU;vKKdV*boHb7r4t!Ev#gX}M#kWrwDm7~)q_ znpOOg2f6dZ@@0#(>FN7c?)K0<5l~`g$vGj6I^rwhTj#@%j8>a4)98dTi?sNu0Lw64 zmX|Uc^{O^3IPLLEqO|-prhTovnh5uO0M5}fbCvvbe5qJ!r9*xY0jcv-qV(0XcHTG#0Vu3>jmm}I%9#8oSKi^H^P^T_0tEvCME6 z)FKoZVo!-!QL!a!WkRXkkxRF!TOFHSM#ZXJqN*iT?O4Cg`eRfu^F61Gkv(%b%f@SW zxP4SZxmi5^30jrIX@F8M_$vAVB9s_gstz`*mDF5?qN%m?4ASrgz&RuZt{;Kj#RpC| z!ae8qUxN(!o;MgkO}=w$u^&VNH-_i53G1WwMosp&I4*zs{Z}XCO>dKBSZ{9Vvq_@0 zD@i=J1!+VcZCzRw%W3pfYOZ2Bd^x@}7+wEtx!?(qazaO^s_-Xldr_4iN8@vCL{Wny zQ-hEuDER>S=WOe-hVI}fn_4tmu^-!w+j}@{NJ4G%En- z1ex}I^_Up&=%t9Xbr~7uw<6{PagmM8Dm2QGed{V?omTbgaOj;#du#fhKgvz|lMnt; ze~}(pZO>Xqa+J5L*(1N$w54r#_=zcAGn+ zs@E=_>!zb9lHz7Gr!W;TwB<2fO+H^Q=(LJvOcXUNlI9Dm*d>q0WE{n}om@bNlvge9 z{e{}MkaW}_hMnS^Y7%~Efq3`Ck4gdKho)1yywzpB*yw@`9j9hkz`FBN_g>iM3_0-0 zYP4Q3S05|;)4aa*CeQ3V&4F$&SDlu5GnEpzWihH@n1YY=;k`Gi^3Y59BavjdE~Til z1tzI^Dsyv;N`oSKMS8)CorU8Q7V(qN(~oz+?3|vng%(j7q(q)5DtM@q{K~pcQ83MD}MTE)#Wr*6+ADkff5|OH>hWox*2Ij0f_z1~= z#ge+0HiwfM1iwMOgb?ej(CoftRz|&j0vSj24(Lbv&T;I-=@eP)MA3J>wL?tCj9PRF|=P_(t9t;hFusbsGx@X_U@v`gtol2B0$1rfnqAj?UZ z01Ei0?Co*?=3kZ7+Skyk!oVF5lUJURE+*dlknirBf`gCDN$gNC?+Pn; zCYni*gJH$o9jjhT+*1HXXLmwYm(AFCPt%hX*qE!@VP@{bDG9+_2rz1@v_Tn>E}FrzduFLftG7-VIm=!ngp zV0C5UYi7bOONUgOrFxLqhEenz%m-qg@)_U7>aWf2)ZE|Vs_g}#+9UF;i zF!;;VMOS2F045w8Pe4Dp$)dC&&s(m`@+LW?@fl&ENjYM9EXN-k_SyS($&A+_Z=Xeg zcsB=kbuQMaRkKEw?XOt2^Y^wE&6)Cw=!ye($QhFgNgL*3Z6|d6;o(U$x7;6%&iiH( z^`x(w{dM^x5|Zp%;Wi$1PjGC%o;~lwt!;>8kltxQC;B$2(5DN$R_;%NC(k!2zh_t^ zgZ?_z{*kG7lie^#I@y{9-*i1dWITpfP=<3$)}Zxc7An27eeSOdK!iw3e2p zJJUHxXG$<4t1j`hCn0UxQAB=Td8q)KQsO5Kauip4=cl!9%1<6?StSN`^p#-@zt~j> zFr5;5+5lI6r)#@owKcpqVLPW$)GCFfxK-noH$bf69E;}qB4DF0gboGnjB7GJnqzvI zR6`O&7nCflcN~sp>#Nr?NGZql1~vX(zQB-$O@}FlQ5LJm;-2>DZMB>{A%}A0UcF`U z#`$9=_R9JVuD-^v>Cs>l9yFFNT849MjRAKCod!n`wVHtN=k{0SyW^`5+4`|G-DUqc z8@&pLZEZkFlMEaW)09X_@J=^4HdU( zc>w@mS2^IfC0{b9-7%ftX&yOWJB=7}YwW%a0^9DTsLwi{tZvGGDHm@8k9MXHp3m(XT&ce=ASg}@zcxvevsl20PyweD!SGkY z%?`52O(nCX-545n;S)u0&0QC>2TfLUTv63#JR5$){{Z4=zc z^pwN;(`$o)_%V3I1<6@VrCPeX)O_W{Z<$P?fu8G36@i}SRVZo*-@4y@yAy3gixc*8 z({ad%eaVk4zCW~!q^`A}KfmQHp}rXz+&j7Iv)&#avprj2^hgVA1c3-Mp?$1@_}j?xuI6E_feyO1k|=>#xZtCA zb&AKK%XR&NPO%>uP@c&n{VY`&`XKY=`#QWdX37Th*G*fKA{ zhGb;x-P>6uz_9H%nRxm+v)MPpZIQsk<3=3~_^(OGNfOVB$#tU9D2Q;s)0?)Xof!a5 zc6K`MjjN*LOl&In5y4sNYj}e1Y2ssjtLn%ndh1r4_o%2w(6nZom=vRXygMG{J$WqH zd+z9|w+hHHkGfA&JQ(e5F@e%CQWmgOvEtV|^)KG|YJ+#M{xQg^Mrt9we2PP~b#>tp zSAM*N1FZ@I3pQK{0^+hjvZ0CX+x1mtf}(eySgEkl%yq2HYi$qWI2&pYq z>-U2x|BF(1;Gws|i5t5%h1VY>tniNPS6&j=fFB?`FJIs zYvgmQ0@XfNYdN2gLtZ>ULygN6SAni;8tw-};{Js4fEXj%R?h;G5jh&-5+oLW)LS-L zX+5~E8I-l5TQzsJO)i27U%3fgdde z>2eq^GJD?g~sp$ac;NOz7E@xxmpQ)FL440 z$usYIB2i_sbTd(?I8oyN4y&VkN@y(pd0<2L4PZ+TYKdD6rTeQl;2EO#nH;(~(o%@D zSLI)uCvp@+PO!(aJzJ(}-$yighb~Z?`c*^Py_}srb}(JYwjcx!NS*yr=J)t-LTVbQ z&w6~d%}*EIji8fK7H69#hgT(wlde_U<__q!@>Q))6-~*F%l=&2fSifL3f)tz{3cx4 zjLLkP&kC!B_Kn59by0ha?#RWNs;qkXtIO*x_ijqUR9RBY65{JW#{pW0Nc!mo-nV&UoorbJeQeodR=Fp@0Zj5jK@KrmY#UcjMns`M&ERbSY9pRph0*99(UO zp*@9|Q+Q*@5K!+m(Dw{H=j1ZYCK3{BHc69v3faChJ;SP=1}yLOL*~!+MSA)G?${b#u}MPnlHAbkD0Z|v84#tAr2mQ z)KP>WabA+~Lh0e{Rc1C*arn7F*nnko!ACS8`upZJ#81wBupy;QmNIA}k;HpE1c1fD zg4nl&q1WyoZB`eRDet^N`(s7?{EE);H`poJoDRwNdfmTGXo*QqsKBY3%#xU^)4MGm zK>cT15@6GUxL%CW&a(a#0&>24Z>AdvaBOtyr z5QPajg{w6%E`JyE;wL%y+hF9MyE)RW;_dRM;gptVqjW~wh#IWA)^>TJXmN$Nk(yU- zL_4;c`8*0FYN{%Ou{x;cUcbG!_)TYl8Werc z)M|5TC2HYp-&M*E`DgG!oJI~3f`D2&$rEw(K877P?9~V+`wt%S-4fsHz$k18JhG}! zQmA(z%`F8u1RW&Zp>=xnJaPw~vNG@Grz+}2RB3IGKOOHwavmfb;A+<*iviZ_RCg0%c zq7ZI)g^)iR3?zu02^Z|TZe~i8)Zef30s>m;)C!ilPM$|L2luXzEo^?3^Q5hqHFt6I zp9((u`6_R>OkOoJD-*L?geMnSci|6XSpu5}l3$^6>AaiJ^S_j{dMlr-d5eB!XFuMB z#pyeOkS2U@48^um7K|LLqBYpYahluu#D+Vj4mg10{HFmg(_Bp+0g~LXYSJu6ZC_!e zR=S?sQzNDq3140gkX28V?CO?t9ELlNVp~-la_o5(%+{V+n8gL127;9piNimSF95aP zHWyaDr`~I*AvvfIko^d7m06Bc!g8Mb&lULVLUdQ{5C2aMg&!Df|KGoelETtgA730coc zH@s9j0FH{UPs->@rB?Z!KDb>Crj_yhxgEcgKWPBy{!S*xQ~a$rw7y-w>TS7+T+=T% zecveXd)^5zDo)-~T>eZ-!;izVJ7cT1f50Jgt!I}vn0zZwU7L_(80;q_L~TqaLLJuY5p9QH9K!t+&B8^5QJ#<9}{g} zb14$D!`FfoFQ~=0zv4^!jRZBuZ|N;AjgdmzY?mM%s(67K=Js2TJzBMl_^t2%zDxMHbpW&u2wzskGVZuTqnWd) zHArML{?yo{20yC&D1=Z-rrV)wp(&#Z{KRq8o?!^e%;y#ws`R8qE_JzupC(R-lDA=N zO&QS64c z<`^9XPfcxsg<86AO0#mzgG24kI;V%d$^(H7x`+|1ASutPI-ajf*)3+Otd{@we$J-y zij8|z&e3V^s>06!lhguU$(TPE0_z1tA7I63D2$6QeBowqhg^6%G4M8tnlA{zO)*RF@Nbue`fb%R6KsVY}-$Vs^3Dw z8^f;#MVVTxzX}b-^m2)F@pN6u!p)B$$RypsHUZO9xzQSv6}#g))Sv~ias*2jzRj_I zq7RRzx%Bv&WbrqIOr`h3Ogl!eYf_1YcBval-=eSD9COQ`3Omi;k9k4R)0_nRwv*OZ zZtYNRy!A9Vs70!>%GT^R@r>`+)H|e=xy^e`4+y6MpPOfhC9t-*E6PpXOqqUolYO^X zi6;-5kD$L0q0`abX~5`x?R_`bLfck_Wi3yfVH=uIeuWOQd-`(j#W$E_^_d9 z?~hX4`=FnFD3#szZW~*+>l~3u_j%g2%b(t3EC8KQw*7G|aPTB`Yl^eQ&&NE}Ecb{l zieKhPe6q?Mog?#|IPJE8eZw5iAed~LCD!25jI{N5b}ejrye!p``M=VU$wv$Dj3?xO zBOSeVIfATSh&a?MPPl`0l?HZO+ldavz)AUvi^IWtzQwoXB84*nsAE9T*fxyD&?&c$EnQ7Dt!{&=aW(OlJ{ZSIf& zx=?r!%X@_S%w|t-(O^hsE#Z8v##|&H=}J_%KK7fUhhsJHp{Ej`eQE3(63Jpn*Wr%O zqhc&wpp;nqN$f#;`CMeCFzI(&u+TT5@X_KCF-v@4lq<`G#el}E&x2bYpeQ=BCj41o z=&#Xxh5kpr>t!n!(V|eEtUFb*E46p@W=@hC{gJU1K$SH*OLq@RMwwiHfAkWMD$Qaq zuqtoCr_$bbG%t27pB;R2a+|QRS`iJt?*nsWxJiFy8FRm)wTe0rKfkyb_~m|PsUW+T zCz5yU>O`jbe6@!}$Ef&QvoRcK=?UfiGM=h9?M{Qq!5g{Pb!ctR>@${sRT_uT&iD?u zF$81eo3ieI`Ht}e|4uKXALG-(h(zCV%Tr;lJ_Pmp%!b~T*4b?e>D%iS}~yC(`=qi5cP?QQ>U z{=lGyKh|-?-R@kop}aX#t^EPP(Q;*lHql%qku}oWn zVdFA^Sv(6!#W(O%g@;JMZ^yLcBrkt>!Xn+)BFL0edy!%cA}hd<*Fx(_krn~Jdf3F7&yzpvD7c1r+uRiE=>@vliN z8`j;qH@DzxoWBG!OI}D*l=@EEw>Y}S(+!sA4u{{3ZnZjs2e&eexOrT?Nuo}**{Y+A zey?4(EAnPPX;wvg?t6G{9f$tRIY>D=9auabC3_q=X1UVzAoHH>xJChC+T>a0EAmRl z%blUayg7Q!&lUw*LQE&YFM9bXjUd>lAtqdEJfQXki-v{+Pks3H>@3w>ghc_{4Kxql zV!YMYwt$0NLPrNGR%@^!qKUn~=?SZ;>6N8ikDA6hzy~RtIqbu_4b_EDqFCw=lGNQ@h!6SYk3At!wjYKKf(E0)vI&@83Mm>EksbL zE!ql)e+5#R6<;KGqx2wTi$##)iys`FZ~vuSXqlYsoC{$L&{MgfN^JVHmn`W+K6I4t>UlX22NnJ}y0gTh0R63>VdF^{ z3zkr9m)gQer+dGG^YVjQ-OZ;JjKX--ANj%NfrH%YL?L$u>ru5DcA&lzo#jvy_{*1L z!X5Fw=jGRUAM2M0yQq~Lz@YfMX=%cIC9O^EZD__R=fm(u}$Y8Km>FQ+-kuC+Z*z&9GXtY&0C4Fw~nyz_s>(>qoy<V?t7k=KZvQW++V8Ty=V6D4T7I5wkl*eZ6r+viE&yR}_t{UgH#s z7Has@ZGWM;Y_Y(lTqlu}54i9XP*4EVb8TCXxlytu`%#;GHcZ7_7 zYDVn|uDg}Tn|2Z`5xl|^=P)dJMzCJe5~kBc zyI%YReijy8?YBb9s7nPQm>^8t9oYOuQ`v<{2;&&4kE`9d zdv7Q%_T-8#BC8rkT%>p(ZL+ z_l3vWBp_omqzGnIjlV?6Vb^FiDQ~vaXZFRG1bZ|k z_n5JQ3U>8q`OhkNdsBZ-m@$l@Fll!Jb22ZrPO($MVs$1EoHr-YS%)AI zLf(^y6@g{_EwiCH^^6XJMsU)jZ)k=i)NZUs-mglG{8OMLjwx17t?D(D%Fs zmm6Gh<0Ib`Ude__QAl}&)=(#_Y3Pr*>P?tJ*PQ?iui!6fYjRe#UtPT2Nugz$GaG3R z^UbeHzWzD>UI3T%SV-@w+o*G%r=e%IxYXy!gxIjt-rJ(=f0-v>R(w}f384V-1L zEhV(YO%6$j0wvT>|LjoujbBuO4&C(t+=%O|Sd>>|94)_KDbpzSENGRWb@Q1kK5ZwlCTQFJYX|X{DhgxZS`}Fb|TI^aCc_KNTO|<#cB%3 z(^J@M;aqrFH+NP)@$Bjp&5Q3&9wM@S<3EK70EYw)uF^0qj`%W^I(RTZh%$4&0*!hP z3LR&cXQiY801%2A^bRA~{k5WaZXV{1$LkZtXc!J;#wj09lV?<8MdS!+pkYl|JV_a! zM?~o}Dl0p%RgWr(nAnzmS~)f*EAHEh=KHv$X)~o*wwiULs-GK%Rc0Wp8oDzPGv-+8 zmXtC6;gQnQB0085+Kirx^x-OnZVz>5=FAK74TpY|?o(jbm=DZ;ZA@Re%`}F$_`p8^V9q`$jTQ7vaW zCKkgd11~jBg6B%Bv3M)l?*Q3~xrlYuZzZRfwN%wH7-?*&^r4MhFuwCWH9s2&?0e#ln{G2HG^o zkrdS5u8vwt@A8F`nAaB0RRNWa-m7_{# zwGbIr2k&sB)mLlhFQRIa@DqhqSAuv>3&sh$R|51mo}A26Vp$(})!wm$^#-bLwk3nc zvQhGHKc5;vK;VWuWmCHeAwY+z98NeTSFB!7JVa8>y>WO)o)qu*oct0Sy1>!yjmu&b z=InZ!w8bXF479UYH5ijHd)+#A3nNEu>V=G0?-;&Mw#bp1DcRt>{_4*x4%_r8(mOip z$2)bIK_fWOMcWJd=9JF1+D;KH*maE>Kv3IQe5cnyvOV-5-4(0Gpi=!j%+{2+mcmH8 z8yNEU-tpVecdUWpug#YEa^*TpoTspUri5Bp4N2@p!k7dThiZI!M@!cfV6N6Z=y^`I zncY2=yKKn!W@1~5?KYiZ!Qq1s`MB;qUB!iah&K(US?V|&#t-tuc*Qo0`b&vv$2LD# z1z%{M+FZAbNsMzQd;-OWSdHWo+J}`B{Pb-TW&B{RydVmqhY&5dw~p`~`dh2)kX=97 zB0kpeddY4lcHiR8`~7+5aoXJjs|K%au0?v-1->e!Rh+3M33*K^>jWhT$)={bmk1Z( ze5KQ~O**Wj3Ch_>e_BZ0b4WAt#1KRo7p#nR8fjoiGya@ z4T2G}b@xwxy4nw2B_F75&FV`EyxWi-5|DCMD{fH}e=FlXVqN)50TDEm?X+A;D)XhvEi2Z&a$gdSFHPPq`ws$d1MbRilTS^`7@@LrxBE^uhxRXs) z3kdFDcchMY?6Nq&*!hU(dvBzSHc}Wq;q{4MT*X<1C)?HUe~FSjSvg13ZGRD>=uOWU zYC(cNY$uJaXUIlr(8C_Yo}Rj|o}O%If|R~vgum{na9gxto70Qj=^)HEj0nh#3O{8p z8b6bj=Hyc$0oyK$oi8TK#tgWoi+KroIwGYcO(^jR z!n3L7RPm9CYO0IP)Zi(SU#DPXUw?m-(biIt48!lHJvzpw zetQlX&rR+;K+#YE%`N}!LLu(M%vkhU*FD&~7nSyW#GO+IX)-s)6`!!|cIlK4T1!Z2 z=zC=QJPZSNym?CYoBFP`9EhG*nl0Y%viJq#S4@Vl((dmVv46+qFh;}NYgLG8n|S$h z3|1lcxY@rNe|>@Hwz8&@#Rl&;gs(O@=wHUW|2mP+#G*cVE?;bY_}tajt+mygj6bIp zuCkm;_oHrKSP8yy_a(qq^>@C)Scg5I#h>$rxenCpbqAc~>cJTmc8K=H{yaGnET1P6 z)j{+S*@B`LiM>Bdzt~=7h9CdzV6hRE z+!A?{C=5)IbGPkV_@)&ofqlRG3f!3-;NtOL#GDd6wzZ9R6aa}|sMDvnie$z)G-p>; zX&GQ{DK3PlLb?kza|~jvo`3!F-IK#>B4&4qF=(A|bV@B}6-Cyab!Hc_h1WUn_ALhdBZvM-{ffzU(x+)#qq|1< zx9H;BejRpOI7$s4E}Z4I*~62Ng{9Cm;UNzXTi{s^WvBzOcmcIrHK({qxejDKQ#+&Y`7GV9{G*7p<)5hL;fBzp23 z^0wWl|6RL9Z?Rr%6U-F_#n=|YUp7wzzxw3WBzVU>dbx&DXI}c2GpRo}{_$<%+dEvrbEsb( zFL7oC&{z%yeiR#IW_OpO)R@z3aBFzd(K@_Jp5q9KW}hdb_j7*)z^4(<1ja&ZWEZ*UNpVJxZ{9`6%9>N4On#Ts)V;2F^mf1M zf@>x3(21>+=5zg;SYyT)@zu5q5t_a5ex|+w#SdUR;~~VYU^~?VJiZz)%qN6Q_ad|bMyI{soSovl*+Fc7AC_1$nCC| z&8Ue3mam8SLoPSpl<5L@`zh-D&aUPd{dcG(dn3)`dWZ-dO^QIswRKT3#5O10)=~&irXtlF_ zp!yjGOvFHmzFOx^z_#NpX?UVjDa?GzQm+blQVX-!7r6mr8(aI2@FPix7+kUiCx)73H9)~v5DQww%<%4 zuCfI2eJ3}`okuAmJZJcbZ;)=^YsMfcJ13b@V<5e>aIl`LioQ?ta9HXUNQAR0Cx6tI z;PXKID#}{_bAn{^L~i-hhULtFc!zA?v>3(ZX>{Z7oXH6YM4v17=1QUwJqv6pO{HV& z4k6&Nhtec(=hc@vy)71lW&zf-mim}#!{=FO?evG&qG9hra{-rq@!DQNbN&N-zg9O^ zJ&9s-=+!T_`CBb7^BAGfnE)RikB{xZTcx|~e^>UECFuZjQb$-bNux?a5k9U*iTe!l zJefJ?p#MYDH3n9;HOrZaZQHhOO>9i;oY=NKv29Fj+qQLLXJWtHd%ySV{5*U2+N-;| zR&_0gx#HROvOyVw^iW6j7xk3&m}+F_NAED|3J&nNmW@TWRb#T~Qo7jNk+-`vIL%t7 zLR1~*Sj5)3MtGl9OQuDu@Qi6xDy8&Tkb2dT4sEQ4V2#n&S=2yW^S4>G_gi zMsxWSqqA?rsgxipw-$;nqJ6t3-%OS8M0op$zmz??IzCgw(+LYfoi^bws>oTi%my7f z9EhjoZni`_Z)F#Hy{x$4&Ni9#R6Cwg9h#w+Te>3o#%fxhu6Vnh(5*1@yk$z6Sb@y~ zs6iHrSO%}k3yei-pNM}%=R1rhL4}6e#fPIrFOS3BK~){KlG~*|5g*z7GShiic;%tJ z^v0um$A}1F>fy=RS1W}M&X$<&;)IhlVws))H_`ZkKp=&dL`H4M}=xt5xL$N3%MZJ=ZUd})uA<%$!C zF~4)kCn=#=D&(uT&5zx|fd8j047X=kG?4|O&avHbwq@x`+Pd{t9H(@9!Qn0XUiEg` zs)rsV`=ya9DU&>&pnEhHE^Zs-eNDT;b)hYgpmN-FUGE+VtcGofc)PBB;sg0wQH`~bQb`dyiP@s*XK3#OnAj3Hh}$V`fd$XH z<_xQmHvQAJLe^()st7$pcG-Q3AM?`prW6=VJm$5s1bxwj;S}Q!$92OOs5yndizXw7 z5KQob6jB|58b(^YCrxf7Yz$**j2l3jF%0{IQd$(M_ghhPJ3Mp94 zrg@f{JL=O<=& zled*!ot>UvVx-k^v0LjT>F%{4Qdw@_wDxjSTL=wP8-b|ZGZJ)0g!$AwYZjse>-}So z^39F3oyywGu3&SC;H~|ZM3p$Lin1PfKXJw_MwpY=n1+yfp46iKa&BLn~7%n`!3PH5ZQ4S^^BUY;) z)U`hM9IB4j8d;d?@uUR0@drSO^j6WeIX`?H^n#R89tVQLChB=v8I>z$p9)Gk?uzCl zGXkj9D$S_GZsE<@qK9NQdQfPs)TM&PU2Xw10Ky-x#0uvMnLz!6Ywe8dUw1!VINurG z=Kg6o1^FJ}?mx1A3Q0o4aG;2=#cPmpi7dx_j zQmL6q-Y;2pluhms0?B{EuR)97u+DPvfWi$)qRCUox(g^Kr=;PpBeJx6VwZDZh~uN% zZfbrwZjeZ>{-~l;N#Iz3_aeCmASR9<2z zMPEl79tq?*6|l!EOVPV0`Ui7fg_E89j9&=@ zhFSI>tX@TJL|?fMC^oeYFKGM)%^2q>lqy7Mtx_Y{k9mos$+Q$HB4we&C7T5Qv-cvf zCM4&2g6g4Iv?R|d_DH`J&Jq1t-zh~)OWRvlQ^Sc1J6i{3zxSH{d^M#&p6j|CJ6n5> z7nAW^r$QY);$PJGGk&XNRa|Fx)7VJrC@|`oqd!Ht6kj;nI1X3eBL+1j+vSq3-^0%F z)bdZ{?J}k{eVW@&OhiF=t%qhGt5=pdI10rEN;2j7d#|`m4BHCMKwlp+EeuR#{~#yb zbkV_ZL#7MtixIQ2q1*Jb39t@5PR?5kfHr*}Ik@Go`K%#+L8PGd662=!x=Qm2`P>@| zteS20^n%4$my0a>i#!poU8+xXUG0kScK9xR+YOI3Wj6Pe6%*gqZV~cv^g~#l2_um6 zNoLq6s{Go1vWMe5+Q7g7DmgfKFs`pqwlg)EV8-Fa%XKJEvlV>G#aFE)rNJ)w0|skR z$dvr8#7yEg9+eVl=BN6ewSn|Q=-WbHpqE5+9qv z<+GI1%50ikDUh=izN{90&r-GrDk)IRY{%BM8{y!ip_A(W7*@u&a6-D8`iXJQKu10!AY_0KWn zQJ5#14I9Dk7$nh-t5_*h8jr6gjuL^uS6kR{lM_;489u~>L>8xOpa4U2(T9RT;4zr@fJGljkj-ITq zsiA>u9X02`PS-qF=hG#X9Nre(h`l{~KU{8P5@`NVot&5cpuaf2NSLp#P)B{cH}N2_ z5c#)T)re2Ih&=dhfT#wa3xeBdjXG$@sGa6-JQ+u1<*O3a{hfpaIQqCEq)c9z(!LIl zQ2C6EyF0JOy1wnV|GnfPjH$~mT54z}ZBDY5u*1X^l_7=&d{aC3C`H@0zqI@w>@>0yovq)@L{!_>voa z=V#A56oin!N|=-j1dvyS+X=Ue>Z)xS&KB@;UX=y(GP%M%f}F~Vu`uL64@7_uDlvQC z?r@L=9yIO&HQk^2Eog+8ILGqdl^y-5>kkJ~sjfTD2u6XT*|^ zt|35+3TW>UO<5PT-v@s<11x~eIzu^l<)wx26-S0?GkNjYeP~xR)*l>o=3w?TN#{REjGMC&@rTaUb4cl-MYfr!l*^4 z^RyiZV40OjgN?F@CYsAJCcp*v>w+Xbd#E4nS6TCj6qj@AgH8`1$$n40J!~OZ;e*mG zyDPuPThB_=uu>s~rBI( z;75F98Z%8CDKvWQqG$8(0nfijUND%7U?q5r59sjgX{m7S@J>Bbe}fUL!+OT#Jf2EF zfpp+~GEg^||9^V57saw~xh9|Rl~YquGW$uAaOqj9HdGy>t5ojV$FKV5k|JQxCv%_KN*5EH_9Fo#$?2j0q=_~< z(6kNtqpu~2K{@=I@_xuJ+c=7@6Dc7`V^_|95Js)Vor+!9$ zNR;E)H+IuLs#3`4AdV>zrD;%N@sQAUNbBUh(^zJR$R!Y|;zjqYsR~}`!;X{6srDMr zK(KZ*4zEh ze69xWwVqp?S)-#rH`ki$z4AV(TMY-h3wL$si#5(cEpNK39 z*U#F9Nj#jndNMpNuTW80HM_ir1YYE)1x7d)%;lOeYCb1_9=C`Cd1q+m4G=#&>~9a; z#?kcpRvzejNV8(&)L0&wb;-jS;n&WV|Cb(6ki}hk5{T4f9(FijvQ=-v!wEloldsTG~J>RwVta=Z=xLpzVp{|Uce969WEZ%d_2z>o6y5BfY2zG_ZvvL^-X8QD}h1T z0+m*cDrZ3g9Avf=jtl?+JASm_$8>kj4+LHtSS4Y@VW<-$z!d!Vk8IZQ#`B>qhsp&sd$=S0atsEoIGz0=s z2G9lTD1FZqRf`p=v;qx4R=EGBNOno)3=qPh7U^Z$@x=B~h(27!nx0`>_QH9dc6htm z7tUlM0Q&hkuD;_X)^*P{9xmT}cjkcZ#GX`u*hgh$#mqhEZPoO0SHoF3O@?WWGDpsl z4r9!3;*L-Spx~>}ze3@sb_hX2*`soavK;^ekKXC{n?Fc%I}*ao?nMvfSaGS9fXnui zgnNg$BhTp!I5SuVa#8Xi{4vPYLZMos@I8!O`R9|i{{b{!LSt@9n58;hb`P!BRi@1< zu)iqM&nf_OA!&$TTUE_;1`H?Wrl-YGhZezOJCd^8kFMGuCla2vnj__&K5kapSk7!9 zdrr#KJr!;^TduqJluo_~2UXTjgv6h-vktC|x|9zfgYsg*g_HBA+FAtoeyM5G9!E1C z=}o%Ha~)*$X)N~cgarZf0eJf}vKk8$*ioR{a46`84Qg3W4FrkM3s;KvRNmih#RDX5=J-hYD41wL>`Rb-phWr(4KGx_T2_ zs#{k0aT+lEd+x7XG%;#M76f@qD+(DXI&8}8LGMeITVNjx4~Hj*p%t~5d7+ot^Z z6Yd&Ee+v~1xx*EC*NS*$xW~NszEd|oEwGV!BBGwNZ1X1Qw|DS#k>{(8sW2W>>x<%T z>r)0C!@#?1H#SNVPn@0`*ivFBQ|}X$>+VwK5A71t6c^+yt@^=9umku%zmiWYmoF(7 zNh=16m!QWzP9m8FMY5%n@{ydBdDYKkOo|4}J zWA)0(=9>Q|dnS%$gvelsI$wC+z&Y=Qu^%wk)*k7v;%Cw&2?3Ep_>?+Of$&1veM*tao)u2uMdOa52 zY4UvV5(cQ^nap{$oLr?dTKgZjJCr$lb5EW3Dwdj8pq22hB=g5B3yl5!!PRgefQY90Fyq0a8Ekf>K;WjZJ!!X-g2c1SwCuQjkANmSCwGqi_7D=)wD^>UtJOW(= zLv&wZ_GX+n2;%*t^*p{Ga(}e=8;VVY&Kz+;Vb1U@^8awNmSeCMM$IxD znA7`hMKVEfdnnFC(YtL9u%)NMFEL$eUvVB6_r41as_V(;@O|tMySDJU0JRo^jMi#I z$Nz0yVT?9Mnu7GxX33KTim+DWr?@*BG-+-Or`~BApyi{H{YP`lYq0Ayw8HDni*EYQ z$K6q&GBe%)V(g*np`Gm%5=&PDGxWKZ8U!zNve7rV=_zz#L(1kqj}(#*3U&?^6q(;z zQU(ucy8UAKnt{;>n*nShu6abb0&PGm@o{qj)$ILu?yyjq=3~yHG1xx-6*OWOH0L~7 zMvMvjFzEJEv%j@@XUdN;@c8hp*ab`s!?qfsvY?2vR1;~kkqg~Rk3^Lt>$4va;!3+|KJn{FuAU$A8iLSiDjpaoa# z)XeTlUMde(IrkLti};ozNJVDe9wQM#yBbcuz)`~4NSKd}yGgk7Mu;3+3V;!ecOX8F z<`^hnRbQ(Y2n=MZ@*#lNcYAZXUG%P&jLfL_N<<|TP37OANUUpoQgXl`W@6bIYEY)| zS6^Mdjt@yx7~M>?ijb%i@EsgHZ4SvkjfSZ2CT>DY4-o`sLJUtp?m0Eg`@17KhEc{> z)|GW#W^Gw8ysmdG^c)Q|#W{E3@;4eC#KU0SX8-x&%x!&8cTA07eD_DvOooE_DSa|x zj9auiECx&VeMZK1gi}UOTA(_S_w7(=>Fq@2HEo@IiNP#b3#s_7zyz7wuE@!4a^(qyxDR#?Z`ycgthI>-FC)+ugY7rnbq9<)%!hrCYz#@gO_-Xa~q5 zR>LaZu6?dOcaZx>=&TJC+K>Ky0_H`^7Pm<8r?=$dMuO3UCErGl4ga$ErdG{=`3K&t z-cwj&C9`;P5RE_d)jZ)xix~}0J~@HTn6e!M3}1Curkx`XgmBpU2PrjqaNSuWb!Zy1QJ*b9epULVN_h8Nc)=H*e- zMQAncq2Nv--I~>acODM?>Eg{>Aol!Ei$U3m2p7sXI0lIAL%Hc#^J{2bS)(eiLE}v4 zT~h6~Ju*n$TGXV?0YB%sA$??tZP^yvs96UFy8FyZ_ps_g)?rrK;~y0bgr(MTR(tOt zf#dRcEAtNP)~lP|zRe52Jc@v00(U`^Jiy1gOt@U8dAQ# zgD5W>a<#|Pu3Uq&0dw+fMXLX?M~BB%hSd6{jgP1BW^E=A6xpJP?H9WHM_6ddUX}v{%8IsDHY;AVpSZIfSO{HBKvd zh6vo$>DoKK86%t*jP@jEefROku)FLZkPFjLRqKW19ik)9TQ?3vr|6nfpvk4Ehh*q{ zNjN6Z^|K71Ybkv-$h`1^*Xi#`f-z89yI!4wu|GSlw=eLdiz^{|*^(5Eo7m@ss8lL^xQ6R`?zS{v+n;4eETpVCbk$qgcvSg(dfjI&Ekkfr!k-K7>RjQE)f;O zFY(txd;Zwh#uW@4*`+b-2Ibfn2>8R%InTJBI)ZNotdM+f?z@=%_=)fDA&086TyH#OI=vtD*M@S?n9U#oY4*u<(Prnpo>>MXnj@X-FQ z-4^z@viQ@mlm_xzEA?|2Z_t^b^luItqAcse>kT2{p{~FSSdBA zXBDilR6`<#V%1MC=S`fO&h?O*rdLNye7)#Tw`T~2mKF$ssYa3J>b}2S_$}!LP1O+C zaG&|3x*Ho#>^A(*#BY*0F)-o;1H%MwhyId&P&wFFDy+dQ5d(iUK@DQ$a$I$uA6v{U zk-E9hioPuCdSnMt0EuVeS2(eBqv>J|`RXuR0-WyM*hA77&Q0ENRF8{VAyOCDX)wOk zFdl1XIPUhrNQ=1$?BPzQ0?9}Af6_DCs&lwpLjD&Vu9{SiRv7G+)5eQ2^+A_r`(7Nh zzUEnFUn(aw=D8dh8E4YYTm&juPV4aa%*5k%+F1ld-6HaFf=woskM;CrM88prb&0Hv zNut@9uR$g77rqstaddr65HRH(d<7Yp-3&Eh^cp=%H4bXBS=%t5^M@IiAeWa4EU$a>i=1 z*)<|OE^m@*-XjfEOsp$KWBdbCcT<_ba-f;PaLgA!V^7cz zW%-)~!2yMzFN$2e+=!?OipV5sWNwp<3?k+4iW?D*HD{7uOhMTj!fy>g+!{yUkWa_I z1V#---`Pfih8q-|u%m4Ztr~;1mm4LHY2_B25pa>aqe5&C5_gw%c-o}+rSJ1yFGU2C z#nHBMMO;(AWxR@w8Uc1J<9p;mQT@OZ3R-mZVa%mK6N6fUViEvWwt+Q3v2kC<`XeFI zjrtY8_a3I;sGYTqUr{4`_?hS)m!=pYRQp8JC&^rn*pU-qQ3OTz;}4$*kFSYC^=|Wc zr&X+!f;`HNh9Ifv8|>2-!$?nc^O22SrR11-Pz7zM^mUFKy4oJ!-KZGzl%4=#9<)(A zUkq;7whMoHAT+<@kn_`Eex%=PyAc;HRtk$pc`m(p+xJ^?@wV7yckCPqt+Lz1+26U+ zTL&QHuIE_*xMtpv9V*@}lGHC_ z;$^!$qU;!meTSZ_3x*7(V8pykShOsYS|V7%>zi4KMhbb+DIF zUV1_$)!X>6@WH&jp%7)e(copm#&hDH%?NCppko~v{teh>1K4#QY{t32w4gQ=b-}MQ zn6SdA_1DIbblES%dKe^G%bAr<*ZI5_mim|9k4W*WyUCi|9?QZ_p^s zV6|t~WVLd~lQW}HtqRd+#Q&{@`MOU+yHspI3@`}IYD0p*N~;eV-h7-b+UJ(+GcZA=#a zs`YWQ^5P)JE>I~!?zDtR@mH9nf(qV#sp@PbSyj|fQop+i={<1f{zIWT6f6o1HkQMZ z1%+{tw^E}XzYSFoR@$y0XfiPx9G@HvZJm+WQTH)?GANg6G;Jl5RJTzL!tPDA6FlzPI20vX% z@v3Ox!fg{zQq(@|TK$?(3*pOLrRJSvbbk-s-G!}jd!>==^7|)SzQ%EAQ{|Xp_E%*` zAf6iKW|mh&x3m3miA#Lx0n>ziwdixZB>U%yjztrKB@9w;1eCd&dxiM9E6q(2|qpA zHY&-Na}spUw^9@kqkUdy1a%}otAEw#*ju^mUZuk#2$g$aYt1DlRuqVFo1JAQvGbTv z#312&hg{RAML2v%Y&r8iD&dONh>R{$#MR-AHk)0YEb!J%{ije{LB(?Q{kkMK%1;vDp1d6bW7n~RdP{T z)?2AW(+D*SP42k){(MPT0&_w?X0CZRG*9o*T0Ww2iO92^)M15vF88e9OtK! zQ+s;iriscD zf88@pQ?eL(0t(8f-y8{;vgheMF}JwP*0;o>fzvE_@a2UL^9%xEc}xZvG&4_(B-vwq z)$Q2~wJa(4-;P8%(8p!qoZq1r83jFQ4~!48sC_!!KU6iHF)my zK~;<~UwkV9`TD^!M<)klAYK&uuj4p0=B3!w=MJrWPHwYmT|a(NcF9-&j6~E+?DD?+ zmpo*;dIIV>xUAzZ##?*TUU@R87sc1+5;MowZ$%$%whNJS!&Z!NuO>HNtI@a2Jl-N>&aO3F@2hz&K&u>+(Xt7Ag+9Cu+Vyfz+m4u>kAp}kY?nYJ>4tx3&-5J^z> z6WB!vDY#>+e)NDbyIMHZ^8g?@)zYsyH|OR-ds0ZDHzu(7fkOTu#=y9XyE@~Alv|2 z@LbQ&-d1T{iCjLq_SZ|KwfL57I>F;@F0?>+)20zq7CReN z<1Oh^45OHe;TW+w{a3D{0W{WHQ=k9?taOndJhk(&951>&x}sCCo!u^%y1UQIdeV_^ zRoDcVlybLOjwkvss*L3sU!xni?vw4u_p=c*X9!0D^q=?Ni+?2a^)gjZ-oA-Ygx}il zL_THN-`>smya_|}Zi=a{Dkk{&{#wGTUMwfubrU40bETcqD(P%NWr->_>IdD;K6~Q1D zr%?s&2y|kaK9uyQEM%<^8%(#$OTDbqMt<9h9O+hF1G|xFw?Dc&Eb`06%w6bMbQH%XVx90{3s)w>#kzj=H|XWTHA8b>O#;y=%;RBG}uz9J>dwqSnd0sf3SX zt2cPdgEi95pCannIc-Lws|w~S^C|8wMmG6A%i}8?gzm*wmetqb)51g=`E^W-6W}et ztuBC^p#33Joz<0bDwh2M8R}BejVIh8@yF5iiK$bTVdEXe{s(Z?Sb0e#Raa={>r{XG zs8@H8H4B)%xn?qx!U3QIQc=k*#%oC%NIw}R9Fb-b_L%8IZRegX@&ueo5R!rc)`RmLW{>Zdi(N8K)h!PpaEbedLq1C6dN`q(uT1 z%75xe^$(g7$4HX)Kf!vkS^aVk zT$u0~f%iY;E4SfqZt!%uXxs`N*?Ch=AScIrECq$Qp#@eU{Fb}>oNUb(VqRz#f-neV z+!eP*Jx0St@rYJA$ntC2pkkiFi_|%qM_J!T7l~n#$Dpg_L2U^YbNbt7jHknT^P3Ad zIL}_?^UT-3mbeYZq#(}oI4kv=wFUB@ik-$vo%3U@3r1bLcq08nve5;${b(l)?TPHi z2na+>8$e&Z^o8T}Km2&4`>>#xDglmhdk5II&SEdU9M|Q#szxMAvW9j(-9uPS0r_Z6 zEQagEL#o)On3yfl{YbQsv$hzl0Rd(&h)_h*c>l!CP`!_~Z*Sp9SysMpE6fCvgv6WI)FM(bU zqvP6OuERjh(Qif~m;dPUZ4&?WM5XYgqjWWJ6ka%arOR9X_Ml=zUBYTf!sE)B1;Wa$ zKxW9y15bKr64Z8bKhino>`z7SGyK$Q4cX7!oa*KuyN186_>Sq}1sy4{PN7hzyy$*w z`8i0#9pv%v(eo0i|D72gHE-kN4p}I}$#7~+=6(~As`3zP*tFl3^sWWke$3S!big#-!+RdyU)SH(+Sm~6m$d#80qaGAV-?@xZ%m8rs zAk|AK>U;(!4&y`Nz|=v>yG&T0ELnrKqCRA@Jc_28ZkN>!%HY8-c1M%Gu2ANiG$gg? zm>6b+eHoyeI!5O0KD)ew#9Xte=53;YP}|v0{kn?BZ*)^McOz|+MRBv#SXsyC5t0)Z z@7N*Kg5k`Ea&SdYtgd|~G;7q>O~8>iFUd>)tU83g7o-}OYj01J^6{{3 zhUH1LxvRW*EV#NKXq1QV*Tg+pU6Mj~t30$dB^q)>Lqno2px^NzD#V7A_L8vYd}rB3 z__(uYcd~sh)(vM#X4xNOYUN%7r9pxo9AVF81a*s+-wGkf(sU>Hrq6N(H8V6}9aNTz zCP5Sr-@<@>Hu6v$wuoGBzrwncl3{YI@qg^_J)e zI8vH6YHQM6mYEBO@&t443?vQGa3vPo{jviH&PIrI!NcI!ms<209Z4V_wL0v78Vjp$ zy1(O973YokK;d;!A9TR&OCd_Qv>}^Or7jH(bhx)Ey6*(~-1M&DrHqG6y((16**(ee zirIEeg_k8*Z3+4O1_?nI+dY29=E-9C&QRIpAYaXf@&mPyKYpZR^q~NQBms~rU!+39 zZNt{93OGMt*EaeOE7!!&o);()Iy>jPt*`v;U9bCNMxNkUHTte-v8+$ zQ&Ch{lcHJF#$=A~N{=rua?T&7bUwF%gKK;6YP>m)?pVv`trPa#xDqYQrR1&5+-WFH z0x1DxI`UY=jVU!}y0ie(NKq8xWZjv}Nw1z3#3(2M2Md5E3zg7aY^s9NgXNzlCi-Rv z`X=czS7(G6=Vmrza=xcv>qq+1vULu@90vw1=^wqN2$$}#RcViik%@*Mb$=e3pq0^b zy)bH~vbLofMX`C<-L-f)bGXL_nA};ycO`i>xRd#JOGnBpcbe=86PG+q{#_ENo$|1= zcY0fJZU>nqg+oZ!W0mQc&?ddVS9F^PO@r!AI!b9H+VRLQyu0pMGNIANjP5#WgixT9 z9;NF~Yd3rq9(pB$R|&66CT}Pf&z$4DtAc}LcbV-`ETL|(3o>=kH$m}x<@vco6-jm+ zZtf+(r%tVBJ|V6ZCho73sN*I)5-TImR9(8ofH?8Z_X-%lsS9%+PuR9Y5?XS=Q;7DL z3m?8f(?HK%YesT)12WZfhWlmI&|Pq>aI>wvJMq023yNAnGARW9?3cvHZla?%&XAG& zi>dzh=#{OeXMF|oFOMw;DT=*ymsu?Fp;ZE*Ebhm0w`gv&ZYP5CI@R<3e8rlxXSTYK z4L4!YUK%H#dBVBJS~n~mo^)VnP{OGyPJ@Oq7pX!~VuFR-Zr%Cob&oHUgM5A-A0@?* z^Z*+MPv*=42}wLtW~!u!@~%NmZ9kkDNxvZ5SoAQBUTT;@@FZYqk*bX}BrydW6Ydq_ zUeHm1xekJB^AGElm{3%VoE1$|qPWR;`n&?3R){qM?~l8AWN6Y;U0z~aW<$l(pxqr) zFXjfTjBj!*b?;t2uP{2vHdPi9TovY+^kHGMy_RRVZ*LjlARCGBGwsaTEK3_pLp7(B zM)GQOU;61UmeJm>bR~N9JsNNUTF_ww^{DcU1T{_slABumN@&;3r9WZz-233#S1WMo9`EM1HsKl|Ze?C%!~N}-4%v^vOLozms?r-OLnc~kWA+IRZ?v#I zxu^Tu8?Vnk;)lKAuehbF{?%N%MF^5l&`>!QFs4~AODAp=d8S-?oae2{Z;X4?X9XXU z1&__77kkaOYMsa$H%yVD)cl4in4gTQrKm%6Z~iUmP?rXEY9)}J73l7LmmuJ=2WZlp zp03kYqIkUXQQP(M$#b- zWN6N2P@^w8?MwNead%r1PH7jw>N$YLWyIvv{mUCREBMQY3UeiiN;0-_}&K8@^ZXyOJ>f z-oK%cp)?KDx*AL~beG90L>V-OoS!S5cfQTXa&B0X{FeGM&Mo7V7o?I&MM>BAtd}+y znNC|oPpvL9R-Ue4py33X;Ws{vSguH{8t88tm|4%HSr%1G$X1NoJU8#7)OzaG+*E2O z*OIFNOQXwmN4|Ei#s|s%gf!xbq5u3MP(nUNSw_`k%@TiC%h`ss)Bz;kA$>WqHJS(9 z#F<$MEQV-On* z2ro9Lw(?|{#QSIBd=lE^^G<^ykykRwFL@~rdD?@@wc<>xY>_9?9wlu@Jr=Z4kyH-v zEOT3?sRTeDZ=QhsgUQ8Y(gV3+{pVbLsY+&jVF?WRvh?ME;X^H=(7riKHt8ke_D+;^ z9$U54XiEg(h!I_hhseH=F=9N}U?jLo2?dSJM9eIVanz|%V_(_B%IW9$2UQ_@?3s!w zs)ZRX2vZ(SFcrX8>B*-|L&>D*XYlDl)8342dW4Wquy(rzB=_(vV^VLGs(aLy`uDZR zZ^7;UpB`*lQ`#ZdU_Z1#72(cAD`gPFRTWQi?J{X?=PQYJSwNVw5X8>=MaMHs+(#qF zFn<&IB*;zr>P5U*JSJ`L73-*Xi;wq2pRo@%mcbt-M^Yq<`WujIfhTR)g8i%e&l z^RHar57E7Kb96<)F@WnjV=H#5N_#%3tOBzjrYY+|1uSh~Qtm=7=gEO05e}0H7mKh| zFhQ4Nt&6czE}2JIWwIv)j}}8o%#w>s2;NBQNmU@SNqNfbOGw`pZqV5?{6b3z2CTx3p(KAHk@q~z6`D+o^bFYgS1e8CY%Q{e z7QsvFKaUDBn5$MBk8!D=&1?{bQcdQTxUOn%$uO$Hci^~euYLCGGvUpP<|;Ootp3|N znMH(JCZn;aZJA7X$}Eo&%mpS~LGRG7ZX&u|z~5@R*+2tbGliFcHlV?dyE-bME|(#? z=|tSDBPrmKc*@^WS$5BR@y%)r+;&W|vZ!~6*GKZmBIi=W?CkkOYKZ5|!qg2U!*fa1 z8HD+EcE2QD7JVDN|fAdzx226+)-4Fj};0E!k z#Dft-T9o-N)F@cY>~~bMD=U|~G{nfM%~GTnc3lZ!!x0b4Cpcc>w_`F|Aeq{>FxoM; zB8`4g05zOen#B4gt4$lIC{ZE29O%RrgFg0xkC`-v0jquGXyZz|W57Mu#jZ{Upk5M@l9A zyL^kL-|r0j;e7W_m2V+MSxfJWD7F<98!*_OcRDOT$F!<(HHKBk5 z7vHovTqVE9z4yWUmtpy;#_^@6jl!B0GM*DKKoo9rzE z?v{Gm)_)5`pW#}GUuT#&YipH3hz}&YwQf9Y*}fkByNYw3coBk(I&nS<1>2csc``SV z)_oIjIEY9h9AuQ#J%bnfVgj-GG)O!hDD`S%zt@||oUrnd<@&?b8~+;TuzOkyYUN3Z zT+SoVCD1X2%iy|dL{htEQrMA1OEi#-OwBuI;V#aO|IM_Tc64 zyLcb2`>U#7d(9V(p}jG;egEhQy36;w(G9LUf=-sPV8hp*O4Ij_x%;qdaXq)sykCF+ zP4h(sA)I}Uw{emu0*bS<>_EwBkl!OO!IF<^q#uPCEWy<(Ap($p?-{eJFkdLF!^WdL zcT7!Tdn$ordGDC8{K_ADV)Mow5Lp$I+;>ts}jmN=`m&f>~NV@mkB-;0~4N;fNhoNE&q%sd`&0Z z$b35@9@CtY=`*JafGB;_hiP(Q4l-i^MW;lK01AdgooNz$8^ZA?+m={*kM= zfX);Nl}1sHKHDI{;;WqILYkG?WYSa5xI~46Fxs$qI52mb9R=+6MFSTQy6So_3L=~ktrXw~2je4|}0R9{Y^YKRgMd-dY zN-vH96*52NapHMO62qNBPTUlmGXUFGs3fe)Ab8sgE43#jo}GnoB^xI-n2o9EX(1{c zM-Zz)rm|QrR}`;kOvL@~?Z$BGDAK6E=HZ(DlvvJhW0s3_IaOas|u@&}SZx-*|8jvWZ=Q z_6>StvuisfnZ}SqrQ2rnY<0Wh#3~iL9$=N{xP3-O_;#nycb(8Gt744lKd@hsq>@{m zV%{0)XK?YK97L01jMl6DU_NR2hm4#F&M6Blda<1{S?`&PuOZ^J1ZrvUmJ>4z&ZyIa z#!Qp64Et_X-0jXuzHWNd>uKYSTM%blCT%pk01p3KMM@6f#0r06{wcA8JwEHL%JLj( z39elZpQg90M_7*dKbo#FyppY1Pm+mk+qRwTSSPlViEU48+ctJ=+s4EbTNC@{ocZql z-Oqk{_3EmwRrMkzdvZ7SoRKG$aVUj9wlQiM zLj_3#PbeGqQl84-ep0-e`M2d5l&foFh3GIdd~u&*nrl4eykY+e@c@{xclP^k_?ncs1<6+@;L1>yb?>~wNxLk%?D$jcZk5%tv@;!*HXP8)tcSJp>cnaON37Fv1Z0H*;CzkI%VtJh<%Nf+v*ASnnZHzQr4Nb9qD17{j$gpekZnTQC$M$6br*xEyN31HKpMogmlzdVP(dYDv4X|*f zz8&U|-srajq16nk8#`pGM^iG(Qtj2e+QNI1^^c%2rJ-Y4z?eLbgz6fFg6z*IHkOrP z!xc+A)0k_eJK`NNMDAQrOG`S; zK)X}wnc3p&Y%L5N=G?}z;WZ!>`CC`;Bgs70K4CbH&R@J?Fr^J0Lt!)T`DhyS`*Kgx z^FD`bPKKsQqb!lLwdwIZ{4vK&fbtL5l1d#h2@@E{)MJZkUoT>jdal?{CQWQQZ@#nzIX&)ek2NnHri8zdNfYwd|_S2ipYoUkYjO0A}A?7 z849Fjt-T1!jH6+zhlk~;I4f+ru)<)vsLG@2kvjAq-G4M5L%Cpq^YgXyp8wd}wyBGc z2-5H)d3CTk@m&|(j(vnc3bH*+z>-hD;0!QcL<#=|HqM7BrNf2a$YBAcA9RIRe4#h~ zpuX^i!GDys6-I>;B^P}=0mCVxQq`qQp9=}XQb;v6K~=tQ3xsp9Y!cYDFd1eZ;4VUP z_&zW7r-98+WFf)R$zn%5o}Yq5QY1(m-S<>c%Z&ru=4H!BYfX+|)#$~GME)hm_4I@* zEsn=A&k>Y<+yTwuiZ-<2%tI5SCQHYMNYE zgl4-euY(;v6Y(f@)QKaY}r1Ql0p7oo)a&%tyVSQ-; zzu8#w-{@5oR82xUZxx`R6h)&5mt_CI!&-~U`E)T$9%5a`mp&c>@R4c%N}HocPsZ>z zBz3}4u5KUHdQxffE;&u;DYD6M?v;*2qfVT44=G>_i6 z;9B|Ch+injjf*Da$Fw%?>o5Sx-WgL+T;{piS-78XF5}1b3oe-3H}Jf={#F=C#cBZa zASoV31fv3pe78JI;qthBEsq9HzQGo667}v-(^7il=u;dGH)As4fW zmn(r$hxca1yNkPw4e87~#d}r?zcg5z`mm{KO;Tfrf}c<-6jN(Buk!fO^BscW z=lMBf{*ylVG)N%S$~ty>3YBxEis&S$rDwxG3I&c{e7*+-46W9dge?ss=u>o2TwVx93|VbxC28bzCnO zSt_2$fc5#|cXAlHz24_Oks3~zZSsBK)CdkT)x<#R1{c4$DU%a>$Gv!`{O0kZChO+Y z`SHj<@v`7zy6KC={O?Gs6e3~O@E#5Q<>*ES+OZznGu`9amhTk!GNDHQprY9o#~V{R zV2PEiC|`0uay!SJI5fxhK6m0UHYgL6p3hODeAei zcF4#jZyyX}b@*eKxy=YNi>1u$5K8=td;I$mI3Z3-aSM87;I^DaEU^hrD3JlMI1>iN9r3BP|$^b>vc9__}>sr}*6 zbs$8vHAZwyfOY;4AH?cG{?M*)hVF{EDCEbt{>@MS2y5MdSUR~zvj~Ey_mr9k|_$i$>xw zPyQ#HNGFm(xF?@VE9j#YVRgN+LJa5fjsPi=`FzA98L5)0AiGsT)bqlg>uGbqav$Ey zmBAMY7hWoGioWr`j_PbpJO9iE?@#M-_woQ&N;l5OENBXq!URClFJI7vd+M{XnZcH# z!m2v+HFS0=FwAqp%pqAAvg+Vky`ec(OrQ{=s(x<^#n8th6&*t?z29Bm|pjBFiQNK8X zkQo&xxW1xGKB#NDMp#`B)Cu|UDya6Uo?+Z?k|7IsuV5|0r<>o)@UU2((MyB zN<6F{jk8hcgtDqXGkIl;uqDfva;AWpia=OIVG>GIUb3}Ve( z53-iJ$fXNa$WNz}5lHBg%wB`h3xi!G9|Ng(am9Ak#Wu?#2L&nc$V*zURBIazD}+yO z#M+$c*{oZO`89le^Tctl`Ud|2%f?(w9{nt2+S}(ACK4%(nc!KbpM%%@WDht~7&L0U zk2Byef0y#orPQe-Q%e9jZWW+aKS-6h#Pyk(eW+G;7jAGEU#rdgFW-a)kNr;fIxiWQ zu|d;*eW6Ts%Xyhv25&nGZNkZ=_Tg<|A#oydvw z7t~KuP)FW~8(*dmkoeSEd`hbvYh)fHlms84nrX8IPd3uxy~tC{qb+1{C8s24BrMYX zBa*%?dXh)d1nt`{>mNK=#lll4H#u{Tb2Q3<<%evnmsDXay^oX+_dTA}$TA*N!JeAi z=g=HvhYCNn-jyE;V}vQ#`1>HB{;F;xBuv(uL_1F7-9%0J&*S75I63nNt2Kz!jUj4E z6a}TZ8OKSqZ*((JbGbX(JXuZo_^P!f$;coP7hwrLeo^4Yo=Lz3Y{2qJN)z2Bbni=^ ziQIg7gosI2;_|TVB*;()O^^{yXL{UJMWW}Cp zs|t*#E$1BI-mk{`KIqi_P#@2e@f)jnoia))lZVQyX&`6OmOrdqV{++K8!0rxa>txr z*I3-;j(fzp2U-es;eCbF9LG!UBujuT_@sa)ypp=^fTm)iAiXO#z$Yh34%<@N=<3-zsiZUKV?O50P^Q#%xHs>sg=!J!iS)CYl#n7<)~`N zFp<2G;9}g)+#1klZ8_+(_C1laIhMm&N%&@rTnWXPSJ_xmuy3hOUHkm!M*P(I{-@a$ ze=j}vG|Ns)1y7c@?X;U?99yBuSb`}w_k{3py)~oW6Euew%WGz?0h}I7$fg-4oG(UH zSF8<2E&L(K-cM8r%|1o$X~_(GGu!Et!ONP8&&o@I$1UvWen7PNy)^&P25S44`u)t~ z1LhVm*)*3ck;9uV8A8xjb%vwq9L`%FXot(QdDS|{hHr@)Y)bP^u_C1`IgPzNNyG`8 zzg6+Ov!zSrLs?hwEx$1M;U8SPb?Vz#^^ytd-Fmye9c=zin*vf8iH|6;4~Ao=3zqWv zcflMTa@AUT8`m^`3P-V`msh8lmmw*=4(<9d@;b|js{f{{Tt1UJmPbS!RPWZ7AM39y z12Tf@yTLO;;|Rlx8A5yMFc>*GD`#jceK{7jMv*sH(h1cvj}vO%{?9QtusQ7!ys4GPmlci#2ZC{XFXH6U zRpD*ezcg4p=oCu$CB*>R^t^3hNgs>(ygBartb4L$oGv-P?#=!uGjc*)=(1l&dYcTi zqkj@qooppkhp~~0L@pXXSA)140!bNWSpg923a}yoX7Boi*yRo`Wa5+fbI95pGlgCu zk58@^wr?pp$rhr^?S7^$%-#=M!Gl&pIn zM~?(c2Fgal;D&tc=84wY5HYo~Xvubd2kDd-VJOVOia>>k>-w1&*t`iYMmO}9T5^$F zl;P@uby6#=tU=1h03(soHYZsY?B=i;JBFZteHuvLG$PHCB^B>_k$2eUtzS5X)K)83^0#xFpmh{&n5Io}c5eZtCr+_GTOPiZ;-+j$3mwpKxh@eJX@ z&z572yQs)}kw&O|&lk9a> zcwVokAcZ(TZm|Z+<_E;Icq5}`yZmMadAf@g3YSmxml-?*ecEwNLr^=VGye{WDBc%q zd-LkYP5J~pWul=rEfD9CBWT_~1sAJWmcM4Brk1LYXgHTeg6~(>;t(&8^kvw60Y3lv zGm!jNpytRbAE|Tk!Jc=)W6&9qs2z{oevMTxmc8ksN~}HkUXT=B6(27-+Ewm&;3=9b zyg9ypw2>@5J|kQEbv*OAY(X^q-SYFnmsG)!U;V$9Rh9yTw2UxkH{XL!dJtJlBTUkm z!8MY$-i;g{P8ag@mZHh!xoEXs(D>5NgFmqDsUCF4i}tGbwP7E5evLO%MrJp$___K( zqai7a0vR6L@hmdT7Mdoy6P~M9)k;NIk_FRWD&wNRpESvFmu@Uox6im zYC0f?B!I(?%?Pp&-(b@*kCUlqvov-|_0xMAE$#>sw>`gEG4&o`hhgx*+ zs!2ol_jq5V)AXw9A2{e~Liv}Dk4_uClU5D$-qD@2*%TZg<$y!NjW*dKh1n~jb7CnR zAd)K8vYcj#@dCb?bqD7gIuP<}a=6V0(f^fOj2eSeG28_ugkBvi z1OvUa1S5_X=-JA~*NCvPchewlJ!okc9{!q+qyXwCrB!X~jpr|*!^Uk1<2`!lwkX84 z8gVBB`Xg>qK1ZJz***=rTjSACI`=oO=2HfAN!=BC^{5!db44~E$296#)Eh8-+*|($ zCF>y8qq!l2`;J@M2}C$EPXfVqAlnK3L*F{K@DI%6x z;eP6?=4-TZpU@XoQn&DB|NJ<^3Ry-hw;=3-(I;bC$nMXUhTB-b&gT1)z#U7;eTH3- zl;cjD2HEYe&pt0W24;dVTTD=yp>3-Z)q{LNn)Wc@^ZW1QxdVngpXrf4JDUI&ZtWLv zVpda03@h2KK=C8f*xRc;&R4yTvjzW(ty8EE(yTUJ8W^oE*JyQres&V$gGPD(HXuKR znd-(W<;l~+sn-BDX1AI2K^V@G=+veM`H~{wRIl8gQGL$1n8Ve?n_2@;TerOOp9~Eg z%L#CIPehyF@*%Ryb2u}3rKOO4`-p~@GO_6)+oi7P*e6ve5+C$76H#IfF-PgEOwkSD z>no(iOQP|Meu53LpT=HxGoy~LhQZ>byN=Z#rVu`k-D%llJm+_D(G$tKA-PIImZ zM5+8z6Y@1^b7B+YwKpQ_PzRgz0G--<8qAaI%N}r#ix!pmgZL;OZd1web;&Tqg$7ekssCzIAc}xgyo@E zp~U{98lxDwOyw1w3-eQ8uOaFB58Chlje*_c*BEt718h1RCn8UCZozcDO?H+C1OK0=+jA; zx1ZZBy?D3R#fugC2|hT*T%D)YK54Na=jHR z3u5j@Fm0XAbc&xg3b;92PZbU>XUn!9=tyTkPeW$S{&kniJkZEJpgjA43+Y8G) zq!#$2>7K$A9pZzJr^E6BhY@Gq3&J(Y5&0-X~l?N{uaiJ?jpnb7=_dLU?Z+%-w9?o5QS4p{x}(WPwdV$*uhR-!cosj zRw`K2(@#8XQluZWVk}69Dsisg7B2QiE)cvEdzFT39F@=)j>s<2lvAK`ur8cJ7`g2<1)Rgx{Y6HJ|PfH=+ zMw=K_otTh~lGgnKf}6RXm0R#O*zg1!x<>&A0xCl!cvh4^Nc{HhntSW6^N+4A@?e5} zPpGN`Zx%5ZX>vxW?n`dj#DQHu54;;TK5DvV=JP-gQK-)|8Ntc3OyaIrI6k}3^NA-^!%|B424>5lg& zH1n0%8ChUs_r%}}zPiv|o((MOuKy&;Y<%SIfvDb@C)c$GGr>__H^k#hz||dIt-XkYJ3u?=-=(9~RUbx6|Z z7-k~OScl@&kLUK=3M!T>Ucq|Q&^Mfwb8prur@j5>VLiuE=GWf8NEhuXo`jhjNDk5( zC@qGga+qhyp;=%dE#Wy?@@d#mU96y6sew{1s32PvU~}C45ivfUo6{0~?E?-z?RHVj z*{^wNM}^e5zI7Vhy(>5gf>twx%?YQi18g0=D}Pc%<3^nkqdMHW&bi0qJzW6LZ8BNt z6cI^GqYL6}vju;ciLYi(D?HYgOl9d~toLddZFQ{FY`a=SuVc6*9lxKdh>@#P%w;~D#{621pXRk&fVrW^$KPR4(#G@!uB^nMT{uz4OOX`4 zfe#ML;&-Wr!DTyKn6Y=A{INUfL`p}@QDjoAsXtaRh(jvdA7QkoMrJJ^7yS1OgozYY z4P-9s9qL_D5Gju}-szP&86s>aq9U8lwi;=V`??DT4UI8f*hpnl$cO=zrso5TmoweQ zw~lPIe;@c?@Oh?5x_yczcYwaag!;_JxSYmh7?*TmhY4D*X@b1zpS~y!nid42|G%8U zyIpL8*W&q2O2=Qk|0l+XR1ut(da;#bl1LscWRly$9=#A#khu&9vOZ`xE0hX(kQ7Gj z0SX{N;9$Wsi#2cG=1bkw&_Sz~`%B)}3{6#Q3*Pw+BfcOtgQ8dAQ&Bm1B?~-e*6hiU zDC(!4XO}SGA|Hln4GgX`9!d>z){VB7C&v5;be0v)`@#{hg2oghI;!u+2th;3g%g7H z%F)H>3d$Q0bX5+3S=^6jMXrVoc7&WnMzZ~GySVwh+PyMw^?b^lQ*Mm7E~$|Ve*W}T zn_fS|XFKOu;b>HZqQe?9U!{2|7h(`9T(5N(gU#dg-{fanp!EE{$r{Oyf%D@42jiQ1 zKN>j+!)IkUD{uTOMh;qMV0y`s*O4f>aLVepC@DyHs{upP+zy_zI4p-MoKZZ%x*e~w zKZcIgXTJ=WxWb3f}iR@=X9uXvzm!SwF2`_M|0`l(g&x{kMxcs4{(KO?YOyJsE#8ZUu-Oajv=Q_vRo` z50U-dc7gOxg2)`&1&4LA$~iZ{pB(8i=+gJdig3NuhlH60vt5YILo4Q0`@NYzDdy!8 zw{vWri{ZHYgZSFAV22R;%0WkWi9brLj!oICH`Yl3G$!C zF3oGEp(Q@1G%L0b9u@G(#Yp#&$G_x#(tNqMzm?u5A9wAnr)6gV4mwi7n*58#9bJ$` zO(AK4e%}y37VHeJ5dDx;f#Jn=QNPFHMX&W+z__an&Kr!eu;7>qFn0JI`R(5aZkU&m zFN$2hJcnqRHwQ&e4zDMJ6GK$Y%+XWg{)*K)7#1>@3ASYp8XJO$-W% zEO9Vt2E7>kXaBqX?}2{Qu ze;(5N#d>>ut4#e=I)AUkLvuGM{%%be{K0l{{mX8)*=N#-bFCk2@G56;dI^cv2$KSs z{+&P%aQm5ZGdeS~kQFl9@#>FV;G`-=7X84e@xA$cBn4leyk<2>r^u%oyK8aXqD#N% z9bpHB7^RrUGMTzHKs3!*YM-lWX~!J|--aZWmbg2Jk!iPPTJo)c}22lq! z&bloFU&;<~ap=LUrl8n)IYfr!Yl{egrF7LRD;&wTLM;NholWJ{_|_GWPv@z5hzq-z zan{*DyJ0pmHe=5GDfXM$rjT&l5HkVHj^4ON1e5AbsUwp;d4dk@YM0?$HC)iJ>ROVK zmnThv%w96ErT>~NT+|j!PKtR+BAx|epFco;@(xh3#RQ!h4HBuiQBqcc` zmX5JP;PhV#|N6^mWDye8Yy$fUr0d|i!3LM^@AP;$>&}!f5Uf~h0-*=ZqQ5?&kSP`u zMZ)7oK)cu6%T?grS1D0OR7t03&jh|jy?wg|1J;kM?soo5r_|_lpF^=WGC-Db9A^(@ zD-J&~9!vsP3SLR~OC%Z2?~`m=8*RejPO6`BpHfknl$@?s_3G{zW-+PrapFreO% zLg$H(vO9AM(?T|t4s3f1gr6IVzCdGaFU=^*_-=gCV&U{+69&0{-$!&fM*nLCs2Yf0 zf)(Hc$#G$7+uEPF8IfRXs<9w?@Kv*j%x$s0$SG`Bbcy(A zzs0mvsVx=;qK=4mEh?g7T*`Kv9M_^`u538R(fBM51}Ocb3i6YTyGtzIJz0XbJm~x1 zpzyjuQ>7N~Uw4{Y2F9?ff$%T#C75wL-aIt~vJaH2dODC;XX0e&{&!{8BGV1|!cOa{ z2~{((#d>*1{_8x>^347pQ=3?X0^c^er1xjG_O$;~QoZRE1)f0+R_xNCgDZ>$56s<` zT(no)i9yuBZj}lBfpC?|rKV$cSZaBiyByt-2by=BZdS3l=H|w~@}=B*4@Y!&IQFgx zc*oB?@fabXY8`jp@LBW~JGuZG$F1Wu66M*yC;f=vmCi?1!r4Y&h$u&w+m3cliVgz_ zmSz*_LJ4lSbDA~Jweqy&xNCz6_Eb;8zKnRvk01#sMmABMF?}_axFP3ptX$hcG|tB{ z-#n10s)Lfq5D`TbPL1uh#MhOVnCuGR+>BhUaR3yqE7c4w%+;k>dR8p;&btCiY!&V7 zOLqDhnytvY-CldAM5W}_++(Ct6xO@ng=;r;&DZAwZ^UK3&X502F1`XE6`(7mGlCu? zPT&9gj6gy$22^w~aN|QM@vO>esL#52=EO;t8;W>br$85aGd)p06R zXOh00&e4-ZiJE#41#83=WyT^h!azB!nZ+r4b^J?vC@ihkm}ir$yGR8`deD~~`8D2r zilQKGR0CUFoGyC!d>)lP`N*_Lvsj#h?j)V!@Gzr_3dgGz;SRC8;fu3s#!}`PqYYxE zmVC&5cuS+ALYkwpR{~ZT7{X|}WGWwAwjJ?HP5-9bL&Een$GR+{c$D6Cf}-DE2xGuM z17;C{AjA;EbBE-K6D)c>)nR|mHte_OS}ajM_6C60f-~GX+z3pV)U;lFeCxbwhZI>x zag8T$%e?km1+ltbZ&#$XMCXI8I1c;w_+TxYtFQlKbxU1}gH+kuQ|e*Q^m77?JpI}yn;o@mvk&*lLhz0QHt;{wCNn zd6;B_mYxW$o$#ZJi4TI4p4ETt3EaDpAAf_WWqLu@ESo2mEyhbwjz$KhahLz7ahLAG4nvV&(ZNhggiRrnHZz(@ z3%GYvbbz?}CL&N75v58xq!x6f5>|ywtc+ec;yxCH4C}&}|l&aH8#pHiHPEO|ogvKUz-L4z-D0NW6FP=e;!m`k>NW33n zCebvjZ;x|bvH?ZZ3y7JIHS)NlD%t|ko-z2BEgL+9{fE1lBQksVam+pSw9<27{(Z%P zUZAScjooa16q5XTlTJ!2RLZ+xqzOQZfeP>2xnyEMNr1?k!;l>gmA2LD+1w5PewV5H zdFNnPTMEauHx!?#O(RQBjF$pptNai2|43_)*^N0!8QI8p*Ic?Z8Q zAW?IiUc@4%UyZ_BIp0Fdmc3NAnl({t-iQVlRZ*3-yMgca_NR5Fj!VsBpRfed%L~m3 z-@S2Zngg;p_46*If!H>qP@YNb=wm|%l@uRTfHUQ;iLctF2IBJdc?my*V* z1-Y-D-s|u7b15_NpPrgH_bb!k9t9A)%f32RZM(U?c?=FzHYJ6#QaPxSJFulBgdOdw zwj){4@jk4EORb8}H!qXM|B8`ztkk-y8(g9wEl+@sre%q|tNLY$TXuqEf|oi96pb2- zJP!UxJUS$-US{3zpP5$hmBwyg9h$D0+vl)_4m0OA6#DzT#q-t=C3Z&#^vN9yKRXQG zUwOHqMPvNGXHLb=-{3m1`DGokxMAiIp3wfFU}<}^_Ih-r zN-y=9i7YIUwTl|dA;nT!IuPF2fIPxAHphVu6&JEY%iTF7PUjqAx0Dn1%7wgaB?w&M z55GBvR$kBGIy<+p{QI7zj|BF*T!BJ7fKDwXezseDGIt>Ic>W6Rl>E6Q_k9BGj$D!X z$J7e;j>b&*$*D0_T6{Sdg(feC4-o{OnAAfW!ro6(NFAu|Y=>rDsb?*DKFi8nJ83AM z+H?Q@pP&4|F6S8`uZJ&7_i!c^VK=+$Y0v(Y)#Q0Shljk~HjejMu+IqYE!0vQmOI+Q2RaCeAs zR(`R~n~yfN8cvwXHdDJE!u_fkxN|2S8j4>A=D25OSj>`PWZCyAUaVlVth$3PYpx3U zCTrWXByt;~NF_ko2z=1oPY|3X!-o?Q7Hj2SK((^fzkrdwgJtNoUFN22ibmO&Fl>Fe8SZ*;ZAMVOmH-S&*Im*veG&({^*)vx|9?$%c&c8 z>pGawi#lt=o2dVkUmC)LeSUsgi-c(Nnk+}4sRzr>5_z!0ZG944V9 zMX&efwAH@sT>jmT=bw4d-fzI4+IHZc?fzO9ZHaUgP306>}t@Xl_OIaNmpiTnK}`;(+}VIRuCKaxIOL^?E(lm1Tl% z11bz9%#_I&s&-_?=$93uZ-WwqCXG0hZP_56HE#AIZR{y#(b=ud~e)Im5 z*z2_g=Is2<(A|+NGHlVLwpM>)V+zb>6;b+Pt3nlx^C_|emvw5H4R5!ebE@if=S_?@ zlwqn=*%_+M;H{=y{QmY{bl|7=?JB8j-F1bCLUUBcIe;C`I-&h)CcATRTkw3-JhBOBS?4=4jKA;8;*( z1{W!&$e%4=JG%R83i5A1)V*(jtle)HwfCGZZX#QxIE|Y4JE7G&ukWu|Uyq7(A5q;T zLEAq&#@k``vOr@~%LR=|;O@f=Jz+%lr&DZ7Ra-nWt7+i)-NeqMMX#N&rPej4LKIJn z=-}PyBmoimP6yo3DUtm;t^bk{9aP1Ig~8u<@z#!DkIYfHYIq3-q0#7fT~Rz(vDli* z)4oA}Fa@R651i|FWtQw=3v>=#Z;{kXUagb&@_4Y9XeC}hfcTq3;=(`>XcL@i^SW;kQs6mvcI5b-<=$R-)E>PVbF7@T^#dY={WTAhv*_iqUnAE9+3Xm)u^#9&|C}=-1ReZ++_*RPbl>$ArAi2|L`DW z%V@pC`-7rseY)t9LHgi^-KQ{73vTS?i88@HpQ~7AE(w{Yex<5={BD=-k}wnK`;+q) z2rKf|nlz`*_65qFX{QL(8d2Le7c2_ln}exEE?}J)UbtL$s9I*@jHu*q%XH|?mXzMu zvRCtcn=|;7+iUnRtK19pw{5MH9KdeJ{?v_6sNP639^iqGI)hqpMLQat?lBR%vM~arex_Inr zzFb~;f=OH9k-1ZvGJS_Se}2-i4zD9Y91~+>1zmRrucivZ4OXqE3tL>@O4~*@cD4~A zNm^$FPPU9}^WAxb#Fzy#9c=A*1KZUKwo7i=R(9a2Ts#I>9!j;kah1| z9hcRn@hRR`r*f$s_8Ux@u!Ty<9K(iBou>yP~szF`eRO_A=TCSN&Tx? z2qXgQ(q`)74zdPAhR9({iBV6yY>?Fpli5xX_bAWu-ncu!&Svri1M}|Ym!DyYNnn!=6ohBcczDJ0S9(g6OKZoyGyb4=e~zNOO-^)VDjf@|_G-Yoku*mH6@NXzW~ zkMhD6`%B#|eP<3CYEA3UT^`S36*6rtr4YM81lq1;d4>nQpHRyij@1teOCM8r*&HDr zzJF}eq80Tm6;R?hW53N|chZs8Uv@3@lE;D?2bTE4O~fjcPc|Kl1v|Lad%mjb&%E`v zyfsIj^0ObpKd5DOjfQ1Mlt)^qc$r%V-l6A0kK_kGshPYS4ox#8a-l_Llpru}W}N-X zb?Tg@9=Nr7URBPa^kybVGP2rR&?r>XavH{G(4iE#q=AbL{AaGb4vHaX5e5<2Y>l(4 z{ZH+6_P|p5#{TYw`m)zJK>>d((WwR~u<0i3&|;|-ZRYrLb}dEXB+VDs{Qw98c^NY# z`oFZz)e#f1n1YL&KIYU#9mi6&49h}kOZ9w7FI~5?pdBbX&rTHhs~XA5rG^shR%6#7 z&`=&gqA8;z{YO@fjxgip_(@cvJA5;hiEfrgO`%Sj*4|$U;+JQLlq8=L2pg-0LXoSH ztI7ORCc1%f=PY z+E~_k4u&rS-Vh^WBB<6}%2khIXV~P!ndCjm(yAaC$z(KLKA~?W&(Dh9iEc-#+RSQh zTH`1Cs=G{Lva1->52#2Fv7sczjBoWZCfTk>l6i~7OfE@QzIl3@p4KJr^?^$V<)$@+ z6{qtxOp`i6AJ>M9DKfLS7lRGzQ?6L`a?ucVIjmyUyLSxelpF94{^fnCBs@>-o|_y7 z&3~uC)=sqG6fAHXiac<)NH*ARUQJf4S;scm+pmT!rKt;)Tr2QI2~y~KBxp-0{u_Be zr(@VRq)au=Ck^`14S&65rk@;M?T&f*gIz6@CRdoW#&+YmKO>^9R^-y+v>S4s;xR_lTKph2WUw9GhT|TAWo|oCgVp7sLSSrotW8<;3o?>xi%E0<;Zc0vxmu$wj*QZFJK1o_Z zE4zz@kLDj%mUGCL{?^(jJMNfVFo!f29QFF-FCkqXH=0GPfLuWJQ(X%KT!s9waw)J$ zn*LnFpo0e^@|Kl$atEE^*-`m8S+yAB?9toCgWNq@WF5~Q+=f(iWM_+F_7Q)d6O+gc zNQN`Lu{c(~oUnoFNjYP=&q}UF#R%3$^Q%k!=e^n<>r_PW|1v+vJJZH5gJjx@9IN4f zE)4=fDm!(VKC|^SyWpffrHFmV;LVsoh*`Aw!olmv&K*Gs8kSiZ;O)rUcY7M{VEXnIuhUnu2N@cFL6`43Z1UD^Wb1eW^{V8kSAS3LpgVC?ob|mmr)_ zrKzQv*zC+0NdIF+WDm~Y};Cr zMGWmNjkx4r(J!gXdJ<~JBly00v}LY^?C0l z2@i#0ZHruI#Q$_aZ@sclZ&9u6Wo~1XrOqCX07ObQIaV%bBT-%-)RNioKIjh_DVlUQ z(CP3nJ$V(j;6D*6ssh|iLu|r~vO#OU>G|P@y!k%ys~dHTdq+RU315H_craeG0{Qi6 z`*Th!_F$Ukb_Vy1BF>%rwfFLJEH?I*se40hK+mW)Ikfe^XjFyZ^DSm znI3*uqnyypQo!Ign=CIg8R}|D-+j;^*Km`er-6G`%ND7C14ND~s~Zp|uL?cL0?3>D z9l{#*n$yg4$OB-?M-rNLW2-fNX#!cMd55NV+Oh?(kUwJRF81h{n7^sq3N`!g=nS8& zYz_;^|E%`^%PD%!SDOTY;)*ByRaaRvbLCu=-5SPA)WTe--H~%=w zUFVQRX`JJbMp-ikEtXryjy@^oc}*6*n8+1Lk9wRJqc3qyP}f0zc4Xx7{T<8vGG&@) zg|@m&9!5heghT=8Ps2~VRXj-L^jmGFQtqgEU^?MW|Wjt z(kaC*on+-24lIhj&#YT^D&#EQ^PGNKnZN_xlVg>j(z83W_kwmJ8Als;_2lu}b;u^P z4*Zx&8#UL#Z*6Fdi0>l~Qgtz$hgU{cq(81v#}m?~h{YkCHc=6KT%JqgfLs_B_*der z_RIg5YB&9ZJlO`}II=RhiUzO(JH4%I@`5o8K%h~&>!2H(hN&`D$wxoq)nomA!kI{> zU40-6yTg3Y?nYO|@ab2m(T=E>(}#FJw$zzy(dM7>-iuDyo1&{*7UX=w4dCd9a9-rA zODxlZY=^~4o63XH>cqqGL_T6uxqpjmz+4EI3vGZ|yo7*g|A`O^k(|^|;IO*pE~E)mA^HaV4ixLAv&@)nsI19ly9&*zHD& z!xWD$yZaYMn8OKJnCizuI;d@|>4I&651vq$^6dvsgABi-MOEzA>?>B4Z0?U1_Jnv< zG%ICU#Bbms0p5EyxdNRbRn37qWuo_1)6rBKPzS4#{D zXcIQ4BHbfPYt>hGt+)F4!@hX3|Hsl-utnK@Un_!wNOyO4H%K=~HwZ&_*APlK(hMmB zLw7gQIdpe-41rL%&Hmst8q6I0)&g45)_} z%_FRDZ=CvFb%^5Dry?(X3r5gOHh=CJ9KeRNZV(H&M#~OrO87%;`N9_;-dVbSh)`TY@03rhByhkHZ~fHCZh^?FxZ?@A+Z~0fLK_Ms5U!;)2b^oEBk`)V`O7e0 zQe9erH8%PqFcAJzWB3q%@ZtH%PiI?a;2`^fhe>+J2aj_0LD!*UXy~2ia<5ncFeEqZ zb9TXb!JKd8m2N)oB)tQMKU2S|IE#qm1l|8cL%V34PR_jEGhQAIC2eiIb-CLs;I}j$ z>8jKOmF2g7kMGPhav2<+$Ege$x|4P*mT(D^Z{E(9w+F{20eiy6FfwNOoB%>+I;|;D z#P*#ovwz%?%a1X+-SZ&*^q^8wg-5I$mZG6;(+KvUqRhp4X-N{+E%AGFR7#4-5#MStzR{n-!j4#reqVO{K(HGWb5EyLbI{-5L3ev+`PflZ;iW4JP-zV!Pv zDLxYvoWq-1z{y!s;wXXp#xA!1z%tDJe0gT<|GYvo;gqiA8Ny9IY94!p!WV~p@76Dx zC5-ZS(1Vg|0_Gl_yuoVyDr^Y+IMoV?_03=N3H*1h8}B+>>6mDZUKvPYl)3gTu@EJ9 zTdk(PiF~vE)VTKP)bCTeP14M9vRmA>o5w0~d{Nvx-#qyb&8?r(*Wmqlq`1r3Nil|n z+Hr<7tJ5#OR<}gb-#N~@2^icSgrTS={N$HIfAUdE7-N|9{{i9{?+nj(c6Y#9?bqlgcIeM;NOO2 zSvMXliey0-@Yxvm>oR<-7exY#c@3O8I143rhTDFY!^)_9(_IhFTbnwvyEskL#5jlg zrAx4>|NS4ZfWp;!_GoFHe`oLTZlHm}ZCw_F2}TViz&ya$Ct8zaWn{nJ!G;+bb!IZn zO0=Dm?AaD-@VPtdmX&p26o9M2&%c3ezZCsEj`IaoB(hhQm4bAyz!i@6OS*{IzDCAt zFgHD&2PVE*vqFI>NBD3@@1NMR;+L8dnbkz+?iaEFiG&<)zG*V8+C**+Q~hpBYlqW^ z>3YJKAW`V%fTu7L!%6Ho7IkbQ3X<)~2gf&}&DUIb&qD>jJA_r>HqXOw5on|93zZEa`OUBJGv_Ch94gc#@ zu$_FA+s&=L!);I8*klg_(*pvXzB4L3>m${eMV4A;Soe=-^>Z@HX8_3oh1HRrCMhOV08M6OzHW@juQ7NqBt9{ zf3EdrRZS+A+&7RZzCW`Dip{{Fh6H#?KWKG%YQ5NUfcI4A1a?w;P4qDl96kW-M|76u zqpel`QsFEW%6uK?a*S|k43p%?2P#@Wz{uX?;{Mpbm~knB{eq%9u>vg0;g)9ptpBvD zIfPOa>tHb6Znvl`kS47!xkow|xoe^}If3mW5dSvFx^`x^@B;NVluJuCP7wn?85vh< z%dE}S<8m(43XpB%ZrWIj%}Y#OwHgLGI-0$av7mMOB9I92+rmEUXFuat^!^u&8I9Mm z!1$s@yttGv2yAr(Z%oH?$fDBQ5V8;6x16|cS{>+U*s&hQ>GRk^H{)?pV`uwrgrkYR zzBwb_;~58!YmsTdq`z0A92&x-mMt1U;6iVSE|KA7ILXrydZ5K1+eVe;iz&fsiKmVX zNpiyw=}(Z%JB$bCYJVRLX-Z00Q^W^}AHge)fV%_IA1)y%mW^g&(23P?#UD;<${S)| zsrPI*E6CvEI?>W8z(o;8pkFISU9!~YAAa0p{ua;eI5PRcH>t0^@j=*=F760mzKde( zvq_QhqZ4EBkf-o)#0Y@ z3{L;@AlFT_r~;sXGb(aXCUxNGLdhX)ytBfdi$vvq@A=cYQ_j*8JU$$biT< zT!ltEi<=^)V3WcH#f@?GkJY?luRYJ_Y`ofY6oEQKBRZ%3$wTiAI*Eu(i>4o^WWb~W zdHEIvW66pIrPpRgPE4GJy}R^NtC~2^a+H*or%5%t14B5$>EYhXk+50H1^L+D58&u# zj{3hJJ7hvUToC_m1WHk#Bj4P=DZsBQ3nxw`mE$Gx_su;Kp>|!lf~8@mlAGj)4X0OIA<^XnY@ zOs}0|l(j$>%i*E@NGfLy9Va4BVHSb;@;TIhalNEyjid!aqA_?)t!mz$HLQ(|0mK`- z)_@3S2Vy&-AX|rQJ>}}6Y(vY$bFFEcq)PtW;)J0meI(ffYu0`X($>mAe1{&U9yh)g z$9j;!Bjof&@m_&X8->?#)WrfZUz+#=RI=701&w9ftdQFN2wvV2hm3BWijlR-#_(J*ZzfJyM1;r&j3~g?74K;{cr>9Dl zI@u=Mx;4LZbK%N$&*rH_TbkP67sD3ViubU)65%8IZN&AGDT#(HWh4Y(UZ zBcx>3*EtNbgsNwy^9_&_qtIqLkfI=YvjvKpZaDpA>#=dJDmI<)+%3!|ul!6vHQq@h znhhjA0#(h!GQ}tdkV8;ig<)O5`7W|_<2QB)Sh0$`#hl+o&Sf zw2sMVV>8yjv;RGAhaO_pkeq9nRq`@7>v~sB%+(SrlMlJOAuiFPPp}ETyZ+Pl#&C8n zd-m{uQi^^g)mB?l$(H3fde_giSD_Wr+gUR!PqWnh9?I%`hfW8KELmyZ%#RM0`9kE; zUcPM?k9Xe&gfxxM^|g9OV_WFD;Pgs<-0p5#V8a!CBuM*9htyspjuCnBr)RqWQL`Kb zNm{*_hmZp}AtXnG?V`95v9N7w&VJG4$|q@T#(3*aCRt&~Ie5So%>Bz|Hw$y7o0fc8 zhHkgoz|p=)(LOu^>=09jxg(K|O}|j|ggis?^<(`jeW!;tjbe>%l<3(JL0th#ugJN+ zgNL-P7ogwl%NR!I@Cs3W>@%z<=nao#eT(k5>o3!B?iSzuKRNO|E*RI`E@b${kF!r1%^q67_*~bGcfLyq@TNlyaB?0JE5xlLely zA}*GJXMjz&Q$mw3y!&m-dY0)AG5MOdGi$od9Ch=|@2c}$J8dz%O2OQ5 zB}c(c4?+kKx)P1U)4AxfebQ||j{H>$!+P|4wH+c!cp>`I=>PTw9&8F_cz;nup6Xc3 zT4NzF{ugLj+Zk%3 zcZ3nq(jJ$|E>>1~z_wFzBq<47G)gQL0WHRM-um{-%>SC`6-bS5Z+@`|N6+Nq*bw&B zB3GVLlYs@xAoBW?dF>N~Lh%R_Xrjq{@khxfCuBuu`T^QjzhD$X1xGT>C`|Gb&&WMe zE5a@S1@ePSO)~%+0g|^@oMbb{GGgTK4b2HBBcs7GM z`+rmKiLmctW%l>9mUy;-lNuv$4%kPv4>U9%O#2WGqR!;b3nw}OC-B=4m$ptRE{#&{ zUI{=}vSrY)^{sgl#9Rk1@~_cHNfLFQ+A+>UBSE$L0N|N zj(-XfHNF0lx{C$b;FS(0un|dMUa?{RjmuPomSXJ}Bc12?NVPckIV<6O8XB8QfKdY) zv27#Te16NyQM9`;U4N(o#3P5U84jR_W`6`ny7XbS1MhEl@10-6|Jl$Ax|Q*zzMl$F znV9!FTpYFfZL&=!za%8v5!9Z*a8GO9QQQCn|I-e%0$wl{h8lm+Hpt;c1$3rhUz$ zz1B5DS}<1Vnf`d((xXUQvLjSyw@s)t{!UPu zl-|*p%CPiRveADc5W^ol5CkdQ(^Ty4SZNByRq#DexitK~#K&M_4Ys6F-xj4IdRw=y z4rHP1dXv+s)7G<|6efb!_>Hc3Y+rhxtQG)~!z)42D^DD}%|ZRZrzF4->m{$`|BUI% zO&D;oQ_H&tyXq_5a1+mtya!$H)zYIuKP4!sNJjanQ$qtbZaMZgCa`wk?0D1+=sx-e zXG)gJaS#wZ$m|HvPp3zdx;Gg+*q z)V+i(1o-b-wh&rM1v9KoGQptsT`{aBVqupVFZ|83C?(Ddfb==H$rZ zpit;DjZdhI>i?>>e1PU+c1LJO8MOItBSY(>wIS5};|WG=(}(gL3RL;NY3KNc2c9_e z{9x)o3XE5~_>me(1Lk+J2silsLI zyvph7tU|ZTZ9kCwxQ`!a`u;zA;KB@gp;M8p+f!ynkrW>*-u!#~yE zhlRlyl9w8}OL<0OSESl7!^i4K^V?_OuO-jF<=G#ybv2hWU5GiVAo>MOI!9$p+-z<= zJ9TSSkFovh;NmdDSpqa7b)FNUzu%4K^9e_1?R?{Bl55dNeq+!lqzJ^**1p0^In#i1 zaW@|>0G<|@=Lv5rA-fdB-iI3rY*31m^SRQ_ciPO8IrvNN8m2P!`8mHTDd`k?qXakQ zCyQ9!hGuCZOn?7+BwxV}PS2u}kTTDgI-#h|*NNai)BQOzTf^P*V|(1-Tk}=dZ~6g@ zOPggGgv!>O0ga-GQ>yE^pFd)1s8BrAE00QgLQbk*!(`dKiC+lLtR*R4BG`OA3Pmy$ zCoXL7*`^Zs{P(&nSKD(vKuLH~u1AZ>*6uWd=sx58F2=c}*~BEp#16u;1r_|iODzV< zd?-8gDvYMUF;{9h6}CFks{N0qMLyq0hQu+7=JPbg@x9_yX%teQIQcL>*%4e8P*E$JuCFjIUT0}`cYHxlNT@IB!tSHyI z{ofnT{G&W&zeD&7)7G}tfx?tdUw5V5r$^Yu4S!&;}RzM^FclJ4_dPgbnG4fzAT*J#6_ikYouj?p3lwhI=n;epHG=p~zozW3wdN*y=9pz3Xh+LG z_T6UquNW^en_x)$Ohjw$S@*51;OxK>907&+$|YJT@_@x|$Y;H9)Kw`o<`{)?rLx1X zU;&2VR7b7}G}3KmMXDiB#A3Zef{lI;ED7EW%BRJC$3i2kRp((q;bbgByv+iD+0`TL zX$%|BTAo?~SU>WG0LYhs`yG|5l7&*6n?Y1L)ylFDo!0TM%{2L7lK#_+zrPgjbTS23 zxFE{cOlmu*^00wlR=T!bYz&~OL;=AGYpSlG;wxr`(zXYN5U=+zx0Rj4of#o*Vm)0) zfMvCZ*Q|#81JXETrqf}PU)<|7d9ZE~!TS13WOY=7@sa{>tec?fYTgJHe#_HddW$8ZZfmA@ z+YyCa_*j!z(Er|j5<1*qTP#8th}Hngr+wAY^(u2=w-LCKpuB#0S?U+6`FIwyBRIY) zy7Tc@A%=bVOmBh8DPf>xu!ksmWl?9=Uq0s;Jb*}*%wT{}Hb4H&M@cAVBxQ*OK3+JI z89c(Hy{U)|vym*L9K)9it~p(oQ2`qTs$uTw4Yd$quRl@y01^5|Gy+1fCcd?|&%f<+ z#3=&^4M;*6Ie}qC%|rk&p*;XMJ^03H2Fyy!9u{P-y!1}?kaNp?>5o>nQYeMufQ2>& z0m%Zji@_y#Q>?ukp@TyG^z>>zPiN~-slJOEl#sBY@6EU+wpS3ISURpiOQK=In}J9x zqJxZz!OeLPnowsj8t`NMJ`DK!@^+f-^UHkLXd@8xFy7kwm~)f^^o$d+WUE+A!F4C6 z7{*-0H2wD74L<#kC;HFHIOlYdcK`P7jH8XvnaZS}1b(Ouh^a8%Xt(&@NAo;w*=eYsBSGU*&rJ(!sjyfEnN z_)5Qzq~Oad@RFENS|wK^wgGKVGVAaWRH(a!spcHtZ{TA!Fv|Skm5*E-I~HI$UBDjC zFquDnq#Nqk3QaQ!xjQw=qV~O^uIWgNP|&h9T$Obvlk~;;@%{ZJ3Nm2Ne{XElYJIA( z%u&MB?N_$l-Q&URYowSSzjX91VMl7vDT-+R0vG8iZ{Qy$&vS*9y{$&TptEhL16ntL zirqi+SL(rM#^~aTr1G*u{HMy3h`MXKAa=J}k zg*ijsCWOc_I-f#u*}tNKPR0k+OZAa1`&Ki5B|nktzVm~fQ99Lc%_lvm8^0V%9t7tK zc)gBTKE)rTy31d*xV}-Bb%lAm$D=QijPW_u%&cc=MzzVhZOPcyDlS7UZ>%l0Jy=4z z91Kq&YvLF9!Qtz}p0pD2B96~M-vhKN24WW|il@Vn`7_L!Gxlup?lN?d^|3=EB>XXd zslnDy*<~~{>(k5h_*v7$9D8R5n4cwU#a@(7!?S{dueLXYQ@bIRqXFz|V6}pm<3DY{ zf2kxi+?iDo%>~8Um=Swjv^u)(UQpu`wfS<$sFUGl0L^axW|{P;O&4mwr_-w2YJI2k z*}8ffvg@?2cy<3~RT}7!SZPR#9$2R=?T$kd6`yw5x_i-V$e5oQQ7>ZH=92aExE(qaIH0ieiO10G_vubV@Hc{5Ldgp5{td0?@R28wF!gK$X z7~3JqZ0qgHmZ;9PiRl&4W;m3+rZ~AA9o7O(n<&b5?<|Fe*&C8ZWgELohZ>Vl-=5*V z2M9^+_LH?d;`-47nh2gyTkET0`>seZ!Dq)3cx0|vTdT^UZT4)AGgE8WRoQ=cjH?qE zItp$#eOP)mDhk{(1}kRvDz00iPljtB%~{IY?Le%Gu!GlpJbFW}%=8AVL0?_wEd&#H z(-o3dd4TkZOZZ2>R9m!He3mp`YgK7m6X~!htD_7(1HU`(u6@K7HJ*|#9h<_#* zx!>ocN^Px7?Iv-qE#U{Jz!2S|pa-0Q5MSH4(j`X{!mH~EBXIo;@1Rb%iSoN{xJ`=~ zxg~4EZPEps@C>Urbp$W}i&Dqw;|#v1(7W)Q-^VpVj8BF64=C&U5eg70(P2r;bV0|D z5FzNdS`)V@=vNkd)+naHbd+o7$TGC8jDs%+efC*DoY0PYeb`zZLC;>Oa&bO;Rfa}m ze&S`hMK%ndtXmke-*gM_ApArz7 zE6Na4r2bS-kj;_EB@Q&XpRhT5{uCwso^-8Uc9REET~1YMnyh|w1pOcg1G+ZuXz=+) zjcf=F|5FVfoqT5_y15%JZ7Qz28>BaHv6pmOL zB!Yl~=Rl8JEmWNcWJTuAnFJfCNHB53Q`cYu9r4bvwZ+ttuoki2<7|7Oe!K9P)j##$ z=&#yFUzVVO?7VyxgNc7+4P?Zl++Sk(`R0w3a`lVKdqvpEr17?s0Zn&l)yH6Frdurb5Ti|aXU6XW^PFxw% z4J~#>BWa$=AJ2Wms1SWl(qtgv^2(sUt{i(w9Dt5GqNG`1*Kk-GPE~~dQeIBWntAmr zeKDS!ISl}4ndQbLt@OTcJNxsqe+4ucNAO|ADWC!{?rpw~94Z(g0!+7PlA)ldeQXi< zvO%ArjvRjB7YMYtSGCA+*z$!(XMSfqj4}S&eRea(l28QHl|FX*wyfBk8YQ1-q|kmo z7yq2u03~~kpCHZ_eg3JGOS^>H;ePzL;MmhrnnmEx$7g!T5(lew4RfEc3r|%?@wN-8 z9R*-X`RuVCY{bU&JQ_we>uixv8b-4?j$m0`aUoYn=s8XSl|k{$VrwCvl`}R3p{$^Q zI7n6HL9`+OdZWru%6n*)?gnNc^^5kXS&ikQne{(y^>?9jJnN_RULAm(@x#$%s6G0v z1BP~+-jnek{4gih4)PJK^RTtlM40wvJ^S2|X42-g^p}{|rENA2 z6Bezm3s_RG4*Q)L2zg6}MHZyjlvY>}2RaMSGbCs;cYGQ)$%dkvlc1wy_nh-~Q<3Cd zM^k8LVEDIf@#%FWl2K_l?4+?%<{O$BM}!bN#Ee``hfHkFm5vz?w#k)fVVJRY&%I& z&+T^3;OnSE-}*le>HfyL=>|0SoLCnaG{FAxSW+W0q0UUN5`t7qe4PBDs=W5c;@I)# zc6x_sLvs*vv9B;^TKK6=1#hfo1?W?S+mZ>%-y`*>f9TRc=<;}!vDD;@w`a7XYK*n2 z>Lb#ecEmZy!X+u}>eT~0$PFb4%zxM}Ah)~Rivtgb6}kaS(!FLEte#iIjzp1o$SX&E zOlO?GnmL3OTXl+>wvQ8U*zRgLz0~^aNc8xJgujgSCenXpd`8BYZ`d?* zztM|~C$L6xpOLSmXNsS$!C9?hw#4Y-RFs7F@n-Iu+G7H2R`V@p(P08pY^B^=V{PfB zJ7+0Yye#KqPYi=u6@eWd)SD|masml@kS=!snNH%J-&CMpL=Pjm2^lIQYu4thEza7E z;@uDJTq^#FL}p+=XspRzUi|ruq|A87qRT1cCZM7&PN&aoC-rwD*U7aYn3*k}A)Wo$ z-k4s*kE7g~UduZ5WsD0jb0YCLnlXwqyqIy&pViY%?Q(^J6kYC^Kk^#X9 z_+G>3T`zN7az8oyn$JzoGPw+6Xb|%VDqf~*y=ROpN^ zt+W`GJ;33fnL7HG4EKf&od@Nnwq+2ot@dPc#P6qU_-OjSp3#?!9tP699ZRnW16dA~{eeeDEl}ITV?tuZF zBMFJK9S3R(jCdz3^Pl$%NBS=p+`>sugt>*8BMM>L&Li5l2Zlzgx&+V9{VgwKny-v% z%fW{4|6QI9cf*~pt`I@5f01;2CnzvFzc3VFHwUgY;d8yCQ5Ie6T06{S#TtmUc85Wd z3yt~3;{U8;bGv!3=6=IckA4Ssoo6+w6xDGQ_N@0k{O({jxt;}6v`>(42nW7`2~0gf zKP|@(lL%av3YMf(9)4b|m)n6x(?~qcGi1A?#``L*&0oi}Wz?{Z#&qL8c5kijdL8Qa z4p5~$z{a9|zaTK?Cd>d37N84eZPft@g#AWOM5YGKi;M`ND})<7i4+za!mT#E^OJh> z?7=Mr9S^nB$5A6UDV>Fo^gdfQp^f(HXos_@dv}F1D5(Xd&)sgjg5{%TTbV2+sBqx7 zY&|JDNiMlyn_P`MvW|~vMG=n!*+HY6(Td0Z#}4y?mM@ILh1U1jB2z|1yGe9VufW08 z`?cBFyXmjO;z@hFkh(JWTc-Prt~*PZ(bH<8+4AH*C(S~(Vynv_QDt+1Yh9@&AsTua z$SR@y+iZL(#uf0U=J5o~?UTK9Gj+TkYGg@PqdZ0?jbP-mpyZHd4tRcSLVj$e*ShMj zwhqtc(;Vm>17bVoLaB&|j@XO@PsH+%W7di>iQoMzEuC}K2|;S7a(IxEgQmCVHcJua z3B($la)Y#+-wV7ZPv!eX8uA2d157d#5xTVDm{M$jaF|T1x$qyh#F1^pMkv2Jdq&EyvUTSNsSJK zr<6>UP3{Rq+F#`IcjofVU!E25YVlKZr}Hftdg+&-CbdV zVnmI#>{i~)s~RD^BL-@if5n~KxG^q`VA#9mQoFb;RVeg~4(ZB3ei-m~?@Q1ooHy=%@=ikC`^=ig#s@zCe0)0@bj zoiB=juCjOkVKSAk8`kyUD;19kQVzg*lpT_!!fuC0iZ-(X=G{`;Q$K$oe*gez!%R^w%aaln0g4du&X`|%_=sqCIs-ej0v9tK3s7p8YPL%(I zNn{WqSItm!2nGkh|0y@~4amqTsbxOUFe#Tl@hm#iF2%^zi?eY4>-rrmGcB)k@ZnUT3cOCxix9 zJTN%BUnTp?v@JAa^l=<F6mmax+;V;B}N@^#M%!>A+J@*=|e;+nd|`>R!as$9S;5;$_uW_vww z%=(uzSMy5JK-Oqs$@%R`{mnx-&l=2>N~)iDyShcixJ={VNYbalk8|Au_-1~)Gkcai zl!=c0w67NJa6D@u71`2Tn~xg+9po=W?vDK#>SxNPsK7Vs{`;0OYWtT|8&9`zVB>@x^85Sq{js*- zv}GBdeNvfw>_&6= zR^NyLSuc@X;)cv%7*&SM8oVNx+GpiWcR2B)Wn5W#aG|!oDDctuXF?QGjMTNjjM7(ayF~AMut}w==FC&@QBHtiS#MeycN$vx#iQLi={7(`6TTMkVEi zkF@MPU_X)-4nYFHSk`&K60G&@dF4kxvxGz2OPt$e-LK{AM#ZQEP2mRv(;OZX$v!Vg z*Vdn%nNeGb%+`}S%2I%=;%184IiksVOXXOj(?X|;>A<8adO0+$&s~wPqXyP{9%Kc| zPTj=8s@zEgH78iN0QGE^Wjx}dxd*QL+W;880Ytt5$|})hN5nJo(bCGlYAAY|?KjQC z;}@?~k1GMT;oovJ8R1ym9?v|2y1rpxSLM%YdE(7dkQWmRVB9)}Rc84(gORx?$@jMB zm5=_N6YUvKW5})Hp{D-EpSaZT6uIp`S4O8ppv)5=OLbQVqf`9(9BRiM^~vo{LDo(1 zHHTP7IU(+B7)_&`*>%}`UXLHSFn1YZ6&(=7*3m?*BbqX0v_11ZDYP}Jm*7U; zkNuv&G&5EDm-A_RV$2!usq_%zKfM#)2+&ntD<|+evfux7#u_ zoH6FMto>n|>=CVCb`y92lx&t(bSGg$PypYkY(jQj)$ z^{V!WF8IlxctX?xq$SiXz@U)}{=5U+F*{tTN-`73Ou>ropZ<7ZYR-V!i4iWhxr#jz z?EZn`2eaGsRSnU@v*G1Oa^yZ@q$+bMT3$9~;*kB;gz32~*A5?gHt1$0Zc}TD!=TR-|Py{D*0%cQBg}ha)x=B` z{a@jJw}Fksgda7;zU4!2;GdX%&K~j&QJ>>GqYgAuc!R3MyK@q1Y4v1LD@~rwZs7o9 zaIOnTtceP;u!41J*Ebe$2-mi4p_($uGUT)fZR zc`Wexm4IF2Xbv&Ya+!`$99|v#OyL$j4aL88FqJ3bQE+(f9i@^)Yfn0i%Pl%s{5a*F z{wZ&NA=`RtyW9tr2b}xhU*}YpP!|pbq(-Q`0u!%ImQHEitf(q0lG}Zh_eR9)$`obh zG5IL)mSNv>+Zs*lqxW})*mu*Tf7>1QU88Bkcb(dO2l$E`0I~L;5%z@_vAq~%Ezl@! z#=Us*UoB;3ssek4);{_e&<$ZBVdde~1TdNFBXlT*@2$=GVn4LSnkuXP8uu=6h?_MQ z#X8k0ZIvx^pKiCOfsMc`d5^KFax#LfQg2|bMZTJZDkb1pRnea;RUQXKmz;YFu&Y|5 zUiZMXioJFyn!X{eiM>ZZ8GOYpnrnrAsePu-eLCjeRn*OYKg3~({EYSOGDXH6L zRsG~*0;$>Kj|GjX3`|G{Q9;QI z8Xu^1-+Js1`KMk#PH_dw-y~l&zSJ9a2ppnk=S)nzClCN0%8tE^!A1pzWC4vvN@K&n zV#8t!A8+nLur$ikKh}$Rc1Vc_Yg&g^~OOX1`ex@1o|zQ-~-!9c!WxrNV2@e}Ho z9*IaVdo>-;$0hl!CwJP&ruL%zZ#2y3K+U@otU^`r+h9Z(gUsfy#nt89$VgQBW~nB! zA4hKkUvFp*AGmGQPs!#?RaqxUzA(R4pt7|v2l1JG!l~)DC8oLtJeHPe%e65nzhFze z=QhUrYiNM8>2F2H-kxl!XTa#k(quDMed(YYKY5x1L!^BXI)b;80N{(i;kbW*8wjl) z<8S}**S{oyHn(1O=GD*t9iPdk7BjuC8Yv8|&Awr?R`=?As4^ZcX{=5!LX1WwGfJST zk$qPE*Ac7Yz|A_TjX*v%h>`@bo()6|a-4>Qi^@ZjWPX7^NQwExSo_aJ$i$*9#ClH& zix`(qFZ)K$YqMgWad6(A3V`!vyj9**sl+ETKKT4PeDwn5g3hYeEDejL8uE>n8?^G) z{gfj4$k#5;>0gg{G&1Nv)!TLkLdY=2Y(2SJ#ua+ay3~`tXb(+Yv2H0*`o%-ZiPHLq3X(!SYmlh>uT4fk#~LE zM@9tzs#0~{;Uo}7F_I4X4Bs|y6;mHsvz(pR8zq#uJ%0P3(|#NloJ^BFSq1yt)L5$M zL51TXvbT_IT#*{7g~mFb##4j@z^_wMpi(spLV$3>{sCcGX?eBGTn&%uj&F*A$qy-M zF(Xm>My(NF_oVa8m;VJYA*ZHs;>#2mVkSAb(uZx=<*&~cyS^}C39hwhJJ%C_i!BXg zpP0Az&`1#eb<$4eXWKCMGMRc9!2EYPH@o8O?Y->{ZaRi)O}k!78&jlI65Kz6{+%BQ zJ{BSsn%M+R#xZFDT`jVd>cnJT%df&9pVrkEil_xq8Q=$*_zGo>``M_3C{>IH*|D8M zLu#tJBksl<@$Dr`N1x;p2V|Acbc7|l=b|cthMMK+yf-45&&s{Yw^N#ESAHoO^xG7| zRd%Ars&+yld#?63)taR%sR^R4(rsKBqK`AXDI1laAjy6%Xp!sryPrJg4~<8TWvI0^ z7Vf0$suG+&oj)MdRs39vk!93!yrP^_U%98pLuVqZA(?X69g^!Wed%PKcUiVkZNrIo zx31fR`YfJIwRHXM>QjAgHOV|1q__ynE6q$QV_YpuhS2w>pa%N)g?Xw zrrANHR1gkwE3RfU&D;65TuL*n@G{oYv%Pu8@j-Ni1TBa-GvfY?meeT^VjlhG4m50* zPyOaTvlBUbDX|sU?p5L0;ZXaq>0(WpghiE5(d(LVzl8;yw&9++G&Z&c*} z^y)SUD*Uzc%@yi?5bSaE6#D$}poMzkcp;F+Xxc+qJ}dUck(IC~WLXXi0q$1wyXflE zEw0AYFqAIv%E8{`w9Oj=Y(dr3y6jNSmFb$QmO;$QMOw7>^dojN%XZumKOGJlctt-F z`VH?arw~SNS=(FYYF9vx{1_HV#>L?NtoGQ1y&PM;N4H!upbcIvO>=Ki@*+|ff|dRO z6+ij|*B{yaSB?^D^Q@=474tju@x*GTL;Dfoqx6L_mTdPdwq?CuVcS%pFs8@S@RVLd z1h}$>dGST|-^t;bwQ3>CXvl@A(qSldn^i}^zD|t1Y$Dpa_*DM=_w2k%dR}ftGR4i8 zW{I3c^lJtr=G!3V858V;$5UItrPjnkS;a?1p)xJ-P-S|3i>(>IYP8nRe>1>$-h2N{ z@TLZn8Rg#y#S~|~Cs`b+<|cHK83H8fMw3c;yr`<(-OT$6CdIva_{Gh2UhIf!IP|4m z_NP++eo^i?OS7pYNkF7z+4}+!r;VwE_qwr!GqwvmuB1xXH2xE#hgb?!yy`;Lubbn~ zC{C7CO@-bmSoYG?!8jM%Z4D`TKUwdFJlt`}j7xBBhsjjK(b~sT?1M}f(PGQlvwdE3 zTD`W{#O#1vgjQ;n3!TM_&t7Y=VqO4~amLd<$SNldI&13t2MXKtoy4syZkf+w0=VVC z)EtBDJyQSyf`5zWt=6~3$u4YU1;ym0=a9~&=(E^v+)@WX$FE4T78_uWJ< zfV_33PC1LVg?n24yCvFQCuNkVx#!HvB8}4qomm+tpmS~_TX$>IO6CGjLdHQjJ4BuT zxYEs&kmTfBvsQIB4FLOA;rQw?C*GHwJ?)Lf~U1F%TOD3=7VwB66C`Q zuJb_6LnsH*-wTU_*ao@)gpF3Sy%LW*$aG7w<;gPlBzO6Qk*CM=Eh1lM}KClq0csp9ss zHIB1ZuFLcvWBG@P2k|r4-DNNe*j0jCtEd1=4YO9F(($@jGwQpkI#i6mXxk=U-53JW z5g}F5yc@eqdOdGhdwDq~6Rxjn;jTeP(*K?@k)h_WjQj2~sM>yD_WC@0gQzrsE1A zY*Dfuw>h^3Z)fb;=VBp@F4X; z`Y|;4>*)a8?MP2&C*E+iuJ9W3=ak$oaK~8j+83tE6yauG!wxIF3k24ajs6F7Gb7vI z1?MigRZI|8^Ab_JPA?UX0C9EChwISOp1eoHI#2^J?a(!I!d~I7b7AW1zuJ6lgqJJc z9PQ5JZifd$K%+yo83nb0J=sjsn*U73 z71=%HFI`k^n>>IG ztiZ8ZKnEG9NXAGmr_h`5l0^ogfad=ZwflgNUE{cFE%LJ$N#{jurZJYQ(VRzISCZJW zT_w|`qfF#9ASJ`snD49e!iyj&?#4|!`;aaz_`|k}!(Rb=QWuZrY(-zC$-1_bj@ju` ziV|8_#a8!X<4L>!-f5PXP5=HZzfV14+QYddpR&PawysvXfHP*G6VSLUprfz)p+zR8 zLMvrJ2dwW2N*o^{FLN@VN;#i{REYb#ia{6rqgs=0o>NqRy=4eqiJ=q+`ULxg!!!9Z zw?zGRKTQTl(_Pz$F)pLE5Wk>{BD{k~{^3O92d+St()j@HRwVvipiZ@scrDsqGQEt_1D*Y0}TGnOLw+Fl;2VVD!h1do$FO_og>l1UNEhRoSR# z?o$|83S|m1In~cS>hDZJEu7x6p(U5@2C1V^@@RuJ)-2o0f4NfH>k=qk;_l|d5q{bG zc!IkX#s!L2ic)ClCytf&l|tHb&Hkc4RYo#1Z0{KUJ__2kPDN?G`@c^dwvMcz`R-=w zeK$>7n(o*iq#saSdwaC<$`tql63Z~2@=`vV-Y84yl;!g5`7-bcwAS3fNEA{1p%q%D zu2=I_2?s~YhJU3`1_dr0Bi%uxS)BPKC5P0nWvYhQ@tXu%4<`R4b(x}yxI~?5v4n`YHYC-$mNclKBW@>goFCS*x=zIT|i0ep1v{k68zb1_|%(P-a8f51?< zu}Dt|O5LmnkmP%jP71;-dd8Ym!bV6dg%6wRFPGdq}Q za_;eiGXAl{*v`b>*QN4}7Y)xip=@$DHC?US}TTU7Z^c>i3$I^z-R9eWHSP zj-~XG6FVS8e8SfeM0xzzi_J#WcAzIoQ3Kx@3nTf8aylr z+BtO`e=ezDJT=wBM-&jSxo7lNC!}*afMHpgg&-$!&XLA`m|@(_YJQpJzAuJ1?|eE@ z)jya_tD5ZI)w}iEUgz}g)_>vV)kIK$_MUzBh4xmdbVh&2B=clxeIoc(oz$QyeKv@9 zG}OMS3^!<46%a%|Y*6p~?uQB;%@&YjTA;!3u$2+$(q8N?qGw-uniK0Uu6+>IZwu^j z9kxGh@p@42mvzKt293^6smi34l)yc0Cj8tzA)Sa;Dk@c6rpDmSwnlDu2w4npn`B_e zI{=b`TeSx~{N2xf2({1uuuBb2OvSr2afXZqk_iezM-^VwzwEFe#n;Pu-XIiY#H*>r zD;RhbV1%1tp~ARzRyt>_W~pgD+{&I8(7nr(tkJnDGG!Gaco)dKDvY$|B9kj6p~MUS zq$d86f?uttVM29N{(fvG&*}XSif_@q=?#_ix3Ki>D#~~4$_v+PmlBD1HT+8ZOauT%H;8p~)@)3iHR{ z2hTD0?-X+Va$0IjwLjdzVzz<()zBAjhw1Oss`BEXYD%X$2j~wVw*)Z0%)gPQi&U3) z0lzm+o}hN0-a~i>@UaZ3(RT=I6tOx7vSM0)Pt*eBOL1h2wT)x5`@4Ei@&WCQWhN6Qu3ZYV2xKm=y7ZQkgE;J$)BK=+ACR<_+}$RduB35U0L3 z;N4F1b4;7 zC)e}!2;-hS-5?caWnOM){>e}b978xbq0{N=cXpr5`E*1Ul{in*h) z5YzZe!%8EQ(Le7R_t1mL7qebY*mn4?R%-#E37u&uV-*$7Qr&Cp(9{kU1^#WU4qz%T z)>bYRjbfjT5{e1+8Wg3v0?HIuK)E`mgsR3`qbL=X_^-+T?oiY+N^CUQ=ycs=qtkU0 z${_&Up01?m6kN^Mx literal 0 HcmV?d00001 diff --git a/java-fx/build.gradle.kts b/java-fx/build.gradle.kts deleted file mode 100644 index 7dda4a1..0000000 --- a/java-fx/build.gradle.kts +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Examples for Java - * - * Copyright (c) 2021. Elex. All Rights Reserved. - * https://www.elex-project.com/ - */ - -plugins { - id("elex-java") - id("application") - id("org.openjfx.javafxplugin") version "0.0.10" - id("org.beryx.jlink") version "2.23.1" -} -application { - mainClass.set("kr.pe.elex.examples.FxmlApplication") - mainModule.set("kr.pe.elex.examples") -} -javafx { - version = "11.0.2" - modules = listOf("javafx.controls", "javafx.fxml") -} -dependencies { - //implementation("org.openjfx:javafx-controls:11.0.2") - //implementation("org.openjfx:javafx-fxml:11.0.2") -} diff --git a/java-fx/logback.xml b/java-fx/logback.xml deleted file mode 100644 index 74ff8a3..0000000 --- a/java-fx/logback.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - - - diff --git a/java-fx/src/main/java/kr/pe/elex/examples/FxmlApplication.java b/java-fx/src/main/java/kr/pe/elex/examples/FxmlApplication.java deleted file mode 100644 index d77e2ad..0000000 --- a/java-fx/src/main/java/kr/pe/elex/examples/FxmlApplication.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Examples for Java - * - * Copyright (c) 2021. Elex. All Rights Reserved. - * https://www.elex-project.com/ - */ - -package kr.pe.elex.examples; - -import javafx.application.Application; -import javafx.fxml.FXMLLoader; -import javafx.scene.Parent; -import javafx.scene.Scene; -import javafx.scene.layout.GridPane; -import javafx.stage.Stage; - -public class FxmlApplication extends Application { - public static void main(String... args) { - launch(args); - } - - @Override - public void start(Stage primaryStage) throws Exception { - primaryStage.setTitle("Hello!"); - primaryStage.setWidth(800); - primaryStage.setHeight(600); - //GridPane root = new GridPane(); - Parent root = FXMLLoader.load(getClass().getResource ("/fxml/root.fxml")); - Scene scene = new Scene(root); - primaryStage.setScene(scene); - primaryStage.show(); - } -} diff --git a/java-fx/src/main/java/module-info.java b/java-fx/src/main/java/module-info.java deleted file mode 100644 index 69ca3b8..0000000 --- a/java-fx/src/main/java/module-info.java +++ /dev/null @@ -1,6 +0,0 @@ -module kr.pe.elex.examples { - requires javafx.graphics; - requires javafx.fxml; - - exports kr.pe.elex.examples; -} diff --git a/java-fx/src/main/resources/fxml/root.fxml b/java-fx/src/main/resources/fxml/root.fxml deleted file mode 100644 index e9f9789..0000000 --- a/java-fx/src/main/resources/fxml/root.fxml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/settings.gradle.kts b/settings.gradle.kts index 71dbf93..3f83a15 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -13,6 +13,7 @@ include( "web-socket-servlet", "web-socket-client", "thread", "hibernate", "jdbc-sqlite", "xml", "jackson", "jsoup", "markdown", "network", "httpd", - "swing", "java-fx", "properties", - "mustache", "thymeleaf", "locale", "quartz", "sysinfo" + "properties", + "mustache", "thymeleaf", "locale", "quartz", "sysinfo", + "imaging" ) diff --git a/swing/logback.xml b/swing/logback.xml deleted file mode 100644 index 74ff8a3..0000000 --- a/swing/logback.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - - - diff --git a/swing/src/main/java/kr/pe/elex/examples/HttpD.java b/swing/src/main/java/kr/pe/elex/examples/HttpD.java deleted file mode 100644 index 4a5cb7a..0000000 --- a/swing/src/main/java/kr/pe/elex/examples/HttpD.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Examples for Java - * - * Copyright (c) 2021. Elex. All Rights Reserved. - * https://www.elex-project.com/ - */ - -package kr.pe.elex.examples; - -import com.sun.net.httpserver.HttpExchange; -import com.sun.net.httpserver.HttpHandler; -import com.sun.net.httpserver.HttpServer; -import lombok.extern.slf4j.Slf4j; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.net.InetSocketAddress; -import java.time.LocalDateTime; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -@Slf4j -public class HttpD { - public static void main(String... args) throws IOException { - final ExecutorService threadPool = Executors.newCachedThreadPool(); - HttpServer httpServer = HttpServer.create(new InetSocketAddress(18080), 0); - httpServer.setExecutor(threadPool); - - httpServer.createContext("/", new HttpHandler() { - @Override - public void handle(final HttpExchange httpExchange) { - try { - httpExchange.getResponseHeaders().add("X-Datetime", LocalDateTime.now().toString()); - String message = "

Hello, world!

"; - //message += httpExchange.getRequestMethod(); - //BufferedReader reader = new BufferedReader(new InputStreamReader(httpExchange.getRequestBody())); - //message += reader.readLine(); - httpExchange.sendResponseHeaders(200, message.getBytes().length); - OutputStream os = httpExchange.getResponseBody(); - os.write(message.getBytes()); - os.flush(); - os.close(); - } catch (IOException e) { - } - - } - }); - httpServer.start(); - } - -}