From 9ac6c97e3931fb8c789f0bd2ddc55b1d1ba619de Mon Sep 17 00:00:00 2001
From: kwwall
+ * See the ESAPI properties "ESAPI.enableLegCannonModeAndGetMyAssFired.methodNames" and + * "ESAPI,enableLegCannonModeAndGetMyAssFired,justification" in the + * ESAPI.properties file for additional details. + *
+ */ +public class NotConfiguredByDefaultException extends ConfigurationException { + + protected static final long serialVersionUID = 1L; + + public NotConfiguredByDefaultException(Exception e) { + super(e); + } + + public NotConfiguredByDefaultException(String s) { + super(s); + } + + public NotConfiguredByDefaultException(String s, Throwable cause) { + super(s, cause); + } + + public NotConfiguredByDefaultException(Throwable cause) { + super(cause); + } +} From 1da613b79246814906647799e9694037fe2332c8 Mon Sep 17 00:00:00 2001 From: kwwall* Using canonicalize is simple. The default is just... @@ -395,25 +413,69 @@ public interface Encoder { /** * Encode input for use in a SQL query, according to the selected codec - * (appropriate codecs include the MySQLCodec and OracleCodec). - * - * This method is not recommended. The use of the {@code PreparedStatement} - * interface is the preferred approach. However, if for some reason - * this is impossible, then this method is provided as a weaker - * alternative. - * - * The best approach is to make sure any single-quotes are double-quoted. - * Another possible approach is to use the {escape} syntax described in the - * JDBC specification in section 1.5.6. - * + * (appropriate codecs include the {@link org.owasp.esapi.codecs.MySQLCodec} + * and {@link org.owasp.esapi.codecs.OracleCodec}), but see + * "SECURITY WARNING" below before using. + *
+ * The this method attempts to ensure make sure any single-quotes are double-quoted + * (i.e., as '', not double-quotes, as in "). Another possible approach + * is to use the {escape} syntax described in the JDBC specification in section 1.5.6. * However, this syntax does not work with all drivers, and requires * modification of all queries. - * + *
+ * SECURITY WARNING: This method is NOT recommended. The use of the {@code PreparedStatement} + * interface is the preferred approach. However, if for some reason + * this is impossible, then this method is provided as significantly weaker + * alternative. In particular, it should be noted that if all you do to + * address potential SQL Injection attacks is to use this method to escape + * parameters, you will fail miserably. According to the + * + * OWASP SQL Injection Prevention Cheat Sheet, these are the primary + * defenses against SQL Injection (as of June 2025): + *
+ * According to "Option 4" (which is what this method implements), that OWASP Cheat Sheet + * states: + *
+ * In this approach, the developer will escape all user input + * before putting it in a query. It is very database specific + * in its implementation. This methodology is frail compared + * to other defenses, and we CANNOT guarantee that this option + * will prevent all SQL injections in all situations. + *+ * (Emphasis ours.) + *
+ * Note you could give yourself a slightly better chance at success if prior to + * escaping by this method, you first canonicalize the input and run it through + * some strong allow-list validation. We will not provide anymore details than + * that, lest we encourage its misuse; however, it should be noted that resorting + * to use this method--especially by itself--should rarely, if ever, used. It + * is intended as a last ditch, emergency, Hail Mary effort. (To be honest, you'd + * likely have more success setting up a WAF such as + * OWASP ModSecurity and + * OWASP CRS + * if you need a temporary emergency SQLi defense shield, but using {@code PreparedStatement} + * is still your best option if you have the time and resources. + *
+ * Note to AppSec / Security Auditor teams: If see this method being used in + * application code, the risk of an exploitable SQLi vulnerability is still high. We + * stress the importance of the first two Options discussed in the + * + * OWASP SQL Injection Prevention Cheat Sheet. If you allow this, we recommend only + * doing so for a limited time duration and in the meantime creating some sort of security + * exception ticket to track it. + *
* @see JDBC Specification * @see java.sql.PreparedStatement * * @param codec - * a Codec that declares which database 'input' is being encoded for (ie. MySQL, Oracle, etc.) + * a {@link org.owasp.esapi.codecs.Codec} that declares which database 'input' is being encoded for (ie. MySQL, Oracle, etc.) * @param input * the text to encode for SQL * @@ -526,7 +588,7 @@ public interface Encoder { * For more information, refer to this * article which specifies the following list of characters as the most - * dangerous: ^&"*';<>(). ( ) . This * paper suggests disallowing ' and " in queries. * diff --git a/src/main/java/org/owasp/esapi/codecs/Codec.java b/src/main/java/org/owasp/esapi/codecs/Codec.java index 52c49c1e2..80eb914ca 100644 --- a/src/main/java/org/owasp/esapi/codecs/Codec.java +++ b/src/main/java/org/owasp/esapi/codecs/Codec.java @@ -22,6 +22,17 @@ * and canonicalization. The design of these codecs allows for character-by-character decoding, which is * necessary to detect double-encoding and the use of multiple encoding schemes, both of which are techniques * used by attackers to bypass validation and bury encoded attacks in data. + *+ * Other than the interfaces, very few of these concrete classes are intended to be used directly. + * Rather, most of them are used through implementations of the {@link org.owasp.esapi.Encoder} + * interface. While the OWASP team over the years have made every effort to be extra cautious, the + * various {@code Codec} implemtations can offer NO GUARANTEE of safety if the client is + * using these {@code Codec} classes directly. Therefore, if the client is using + * these classes directly, it is highly advised to practice security-in-depth + * and also perform canonicalization, followed by strict input valiation, both + * prior to encoding and after decoding, to protect your application from input-based + * attacks. + *
* * @author Jeff Williams (jeff.williams .at. aspectsecurity.com) Aspect Security @@ -30,6 +41,7 @@ * @author Matt Seil (mseil .at. owasp.org) * @since June 1, 2017 * @see org.owasp.esapi.Encoder + * @see org.owasp.esapi.Validator */ public interface Codec+ * This implementation accepts 2 {@code org.owasp.esapi.codes.MySQLCodec.Mode}s as identified + * by the OWASP recommended escaping strategies: *
- * NUL (0x00) --> \0 [This is a zero, not the letter O] - * BS (0x08) --> \b - * TAB (0x09) --> \t - * LF (0x0a) --> \n - * CR (0x0d) --> \r - * SUB (0x1a) --> \Z - * " (0x22) --> \" - * % (0x25) --> \% - * ' (0x27) --> \' - * \ (0x5c) --> \\ - * _ (0x5f) --> \_ + * NUL (0x00) --> \0 [This is a zero, not the letter O] + * BS (0x08) --> \b + * TAB (0x09) --> \t + * LF (0x0a) --> \n + * CR (0x0d) --> \r + * SUB (0x1a) --> \Z + * " (0x22) --> \" + * % (0x25) --> \% + * ' (0x27) --> \' + * \ (0x5c) --> \\ + * _ (0x5f) --> \_ ** diff --git a/src/main/java/org/owasp/esapi/codecs/OracleCodec.java b/src/main/java/org/owasp/esapi/codecs/OracleCodec.java index eb91a07ce..d12f6f650 100644 --- a/src/main/java/org/owasp/esapi/codecs/OracleCodec.java +++ b/src/main/java/org/owasp/esapi/codecs/OracleCodec.java @@ -18,10 +18,14 @@ /** - * Implementation of the Codec interface for Oracle strings. This function will only protect you from SQLi in the case of user data - * bring placed within an Oracle quoted string such as: - * - * select * from table where user_name=' USERDATA '; + * Implementation of the {@link org.owasp.esapi.codecs.Codec} interface for Oracle DB strings. + * This function will only protect you from SQLi in limited situations. + * To improve your changces of success, you made also need to do some + * additional canonicalization and input validation first. Before using this class, + * pleaes be sure to read the "SECURITY WARNING" in + * {@link org.owasp.esapi.Encoder#encodeForSQL} + * before using this particular {@link org.owasp.esapi.codecs.Codec} and raising your hope of find + * a silver bullet to kill all the SQLi werewolves. * * @see how-to-escape-single-quotes-in-strings * @@ -87,4 +91,4 @@ public Character decodeCharacter( PushbackSequence
- * all other non-alphanumeric characters with ASCII values less than 256 --> \c + * all other non-alphanumeric characters with ASCII values less than 256 --> \c * where 'c' is the original non-alphanumeric character. *
* This implementation accepts 2 {@code org.owasp.esapi.codes.MySQLCodec.Mode}s as identified
diff --git a/src/main/java/org/owasp/esapi/codecs/OracleCodec.java b/src/main/java/org/owasp/esapi/codecs/OracleCodec.java
index d12f6f650..4cd946286 100644
--- a/src/main/java/org/owasp/esapi/codecs/OracleCodec.java
+++ b/src/main/java/org/owasp/esapi/codecs/OracleCodec.java
@@ -20,11 +20,11 @@
/**
* Implementation of the {@link org.owasp.esapi.codecs.Codec} interface for Oracle DB strings.
* This function will only protect you from SQLi in limited situations.
- * To improve your changces of success, you made also need to do some
+ * To improve your chances of success, you made also need to do some
* additional canonicalization and input validation first. Before using this class,
- * pleaes be sure to read the "SECURITY WARNING" in
+ * please be sure to read the "SECURITY WARNING" in
* {@link org.owasp.esapi.Encoder#encodeForSQL}
- * before using this particular {@link org.owasp.esapi.codecs.Codec} and raising your hope of find
+ * before using this particular {@link org.owasp.esapi.codecs.Codec} and raising your hope of finding
* a silver bullet to kill all the SQLi werewolves.
*
* @see how-to-escape-single-quotes-in-strings
From 02f4a91928003cc71cffb0b20aaa7d113bb21f8a Mon Sep 17 00:00:00 2001
From: kwwall
* SECURITY WARNING: This method is NOT recommended. The use of the {@code PreparedStatement}
* interface is the preferred approach. However, if for some reason
- * this is impossible, then this method is provided as significantly weaker
+ * this is impossible, then this method is provided as a significantly weaker
* alternative. In particular, it should be noted that if all you do to
* address potential SQL Injection attacks is to use this method to escape
* parameters, you will fail miserably. According to the
From 61de71f70081f204b915e95d186c702509cbf857 Mon Sep 17 00:00:00 2001
From: kwwall
- * See the ESAPI properties "ESAPI.enableLegCannonModeAndGetMyAssFired.methodNames" and - * "ESAPI,enableLegCannonModeAndGetMyAssFired,justification" in the + + * See the ESAPI properties "ESAPI.dangerouslyAllowUnsafeMethods.methodNames" + * and "ESAPI.dangerouslyAllowUnsafeMethods.justification" in the * ESAPI.properties file for additional details. *
*/ From 06d0ff2e540ef37077822273e1957b50beaa8ff7 Mon Sep 17 00:00:00 2001 From: kwwall+ * IMPORTANT NOTE: If you really do insist enabling leg cannon mode and use + * this method, then you MUST follow these instructions. Failure to do so will + * result in a {@link org.owasp.esapi.errors.NotConfiguredByDefaultException} being + * thrown when you try to call it. Thus to make it work, you need to add the implementation + * method corresponding to this interace (defined in the property "ESAPI.Encoder" + * (wihch defaults to "org.owasp.esapi.reference.DefaultEncoder") in your "ESAPI.properties" file, + * to the ESAPI property "ESAPI.dangerouslyAllowUnsafeMethods.methodNames". See + * the Security Bulletin #13 document referenced below for additional details. *
* @see JDBC Specification * @see java.sql.PreparedStatement + * @see ESAPI Security Bulletin #13 * * @param codec * a {@link org.owasp.esapi.codecs.Codec} that declares which database 'input' is being encoded for (ie. MySQL, Oracle, etc.) From f75ac2c2647a81d2cfbdc9c899f8719c240ed512 Mon Sep 17 00:00:00 2001 From: Matt SeilPa7jDnBw>&ojyodA$Oh(6E6*Tv9ijKA>L1ZReD3Z(r}9X9i~3P|pRjFS z;qN7fJ)MOSQf)9&{%)Vf<_i0qy3~?0F(3yo%U{2udFS=x^?uYXP8rSV(L0D&RlOLb z6G<-1YSvrY%d+|n_zJ!)0+wr5o33
Z;#6M45{aGYb(~ZG zyeFf-(+w7Nv`F-KYwORiHW!Sk_6Hom6Z#vORL=Mjc$dj*Rd3GTkt5Ok{K@kZJ`Byn zU&(D6JvO&!A4*i7JH<-im+o>96&3 a5bE_7DTZBIKL@2sFJ8RyVjHT 4c#8f!AT%NlD#d?T6DqJAjUEWD=> ~* z2Xyob931Wl`;ST-oY+Y+7v!N)g%X|?n~-TUUz=!qToT+~TqVenYdwT{HZ}S&kk4PL zK_(&8E}ATv*RVVC%-ptCPfcwmeF61frLh8Xgt~7B9Z`MU(8iEz Nk4?(E$mrH;bX67!UoUzS%(0F5WV+KBG))~<|i|czQ^Z0_K>z}Kcdgq zI4k&Mtm;y^RAc1Bv8be?{3{A;!?cQ)y$h=Kc5mqLK`8JXn-M#v^V=B`v}8 z3@#{@UY>$M6NEW;INYbY1&g(l`<=5gxr+b_z1H(Zo&Iq#x)+6laVDFH3jJ_?)MJ_V zD|-WilbV!0bc`awKc&vFa)`@h81hO39sn>s)Z2G^E9h;ROmRI_ju>ACpaPA^8J`7J zp#$$9- >jVSf^sFRHIv1V=RZ?C!s z@$mwhUyz>`P&yGL?XPxXF>${Ph$L`)67`_!SM_sM1UDy|d*cUe9pSnc@ZV1Xvl74O zKJBw`eyzf#`v>`sIohCB3$a5)X_KdGJ~7dXHG?;MEYx=)P}AXh7^>K?4Vn@3wvz2x zZ#P^bM2KCWzQu;T8^?ZIk7*Bsx|(e-2RuEgT;j;L#Nx{9J{Qj^h+-LYtgVsy6`(+c zT$nrW`>(zD4?2FRPAewu#qM!qi^l+qTBD_S2^)Q*jf&|10C2eWwqia1|32#8G!z*I z9*^m);KNlhTS!yCy%)dGL7h(1ABTHpccfgLban6dWT$n7CzT9A+WYU1ujRso(c|9$ zYXkN)=R~AB(&XIbzbA`0o{bQHGLS;IOLwT{*1Wk;f2GdE$evHo1;s-G3wR#w4=)Ig z_9Fq!_V)&=JcL$cOr_=*m--?>1)>~sr$%q%Eoz8z3CVzP?ub7L4+x}oe2imdB$eNz z0v)?ZeQzeR02kA`Ycn}7Kfb@R9#8pp<_tZz#53I&!t=QcUtW2=4~UcVeVEBVNyACV zAAfPl_k}jE@w}EcI5oJL9w(ynti4NpM!vPS HOXClHT>S^LP~UC7Ju=X ztuRD>5bPrY0&$07lq9}gOO?OEDhAynXmAlRxlO0n?h9{NN>6fK?PE?+F2+0>{6qRE z7G^DivjdyTwc)ux^eFQRoOv+IeW_1kZZ~x%XB=;G`*ryH-BG^}Qgl}0rTuOuS>xRp z{^g5TE7dmT&-Z0B$E`&Jd3kkT?u^I3sB~ZpVQl^>LW@iFlvu^}_ZY(Z9`B|IRm4 zyb{_YxwY7i)PH3f+XdDk>kJK>b9GIuuh{)()iTHpuY$LJ1I80OsoXu5JzRTWMB+r0 z%5V|MKftUI8ETIBj_37 HH({< eB zTj3xiZUHx!Z))x1JN&nAH~j5iF0cEmfp6Cwy|yn~_8U^?*KQx@=J|jBes1``ulQ5B zcA;#^jIF+%>jU5P`#*s<>L)9Fqk;NdJ|D>TpRYvQlu Rpcqo$ zV^}FL^kUcaBn4>~oCvrf$d2G(K=2wq0}`nY0!~ZFtofyI_^8jt{~2p?E$Ab$TW1Tc zU)hR=fWsuxYj^S)-U?M_0)k^(4V*;*W6mitsCp^AaRND5$!1;#z7g@gYIP?YbbZ <*At^MldvKQg&s+G^}V k1@n+HlMmJXr``yo;>mLfzy09MN#+^);BASUfkh? zo;2z7b8LbkRdA3uTFnl7eQNoxo=`0oJA`Z|P0p>*@}*SHU5$PmF)l)!da8LtxmYBs zJFByM^ZQ*Cp;kV1AtsvB)Hi$t@XszagUvb ?J#u=YNZ2k46Pzg>Yb=HnvcARh+oE5yyZhFL6|>
&W1dM1px)7$-#** zGD!Ga=T!SR$n$mW1D_}%nRh`$H1Tgh6%3kTF3+Rg$~ia)CGG3~^na5m^vxd1iXsiv zhXe^#g9F;Ovw*VTgF1|gS`|~-uw9seZzfqO40EezZbS4k<7%a2QKK`!ONGHsm^0N4 zLPVudVtyIs+mus7Vxd4txkIJqeltYZBBtraB-e&1o0FZKrKIN_6|st>fG`KXw ~vd>e )sB)j7~pg@R+APe3S4JsaQDOCCn7kh`EH-PFb|TI71}%E7vr!QFsD=zakfv z!cW}(WgDxm*3N_Jy$@EV4ITh$8-owFYY!De<^@lMtEpcO=~m-9zpO8B9a yiTI_M&uMS9_#w9*o2WGfe;PWMV34;XvgAk5WJm1 z5G*|oo3bs#M^9~SS9MWN9m6ulhG$e3BRa-BU%z3~x=MefW9fJ?s5fX-j9n$+L0bl& z34o}VeSp?$!k4|x88QmU9|Akh fJGC#dqm9%(Jh6zMj>iPaDdM- zEIS2H$w=B(F;r$tG~(XaC4R^45bOq(q$0z@-r$wngo13rlTBl6BJ_gP4h4kVTB6$G zAl?TR?WO_@njMiNV-0}02lA{v(#&x7A9`#tlPhk$muS_aS=PNYd#|??xEJ?0oCv=B z{ VuId8oBNvbMHXy{DRGfHF=-j+0!&O`DXzLx{FWl;<0K zyU;tt#u0=Ax$^*q!Q>32meJmeYINjpViV>N?cuVCAf@R!u-zL2F 92N`o8-l*mWLLNqZ5*g~>p}5E3jH=sHQ0pPbp#V3RWl8AyuIje%!%oMcFK zqhat>P=`*OMbU}~<9i`cG*}>uHt)>cO}MsD< K9?oXOIi$sv!(5$FLJ~4jL f%kU=t$|LEw(F49EJHo_U__a>OKZ#usnVLegS2xSp`ICunL_AIL*P z03|PYZ|JfP9CS;ts*G8{D^8nb4Y#RuSSOs2k5K5*v{H}?W2n<<9vzNU=&T95)o1J+|Ll8&F@qLeaF zXp(({Ce5qGl$BG_-C=VE=tfXUi)#t_R}3j8LLrGn5#sHcL!^CRMaoIs%y4E7wqWM! z7O(UuD>lvKqJGObqS#Kxa RbuRY#rlbTI8_;6>YF*fk^NuQ1%td`m*IXQ7!#(z15)kky zc1F7$qKEdDY*>{4Ko^qYu?sD57+*6nYo00?oI*vRNIEFmw!tdC4E*4PpB}?=e2Oc< zt^}1DvMN!j!0L{aZ^LWP$Fu8T$2MWEm)2&>?k>i|xO3nwwkafQj|^6_-!tliriNnw zmJ$2SxS)AF%_c7rbR*gli4wjUGZS)nHSx>OM|zkS-s-JPIm1S%);4b(uUaTgSyrgT zMZM|rCwjXT*itjG**2Eu#BcTT N8kfIbgB2YJBKD&43yKI_y_rQ_Q5s0LY9>Yl zsOyr^@>+GDA$?rVoCWJ25ym`A*s3HIZQDg57$PifP)RnWon}%s*%rgOvWC*e5>1!B zD4~&NCGB6$eFo@h#FqI>N!CB=3*^wy6Ze C{k}$C5~5AeZzyzSrLjpD z=<) !eomE-XTU$FQS sGZ>1Qnp+J&OxoP;uqz1Tg^8Pv-ehw#`)VCNdLqjaYAgxZgJ=}F8)t+A&f zQe4?{b*z8M*NRdjz63_*TTVpSEQpmO`=)?dAveX;vJ6CrDZdGg?pbh=7P;kup+iG0 z#|I=Lcu@29DJEvfVN+eVY^ugIsW8Ja^ZFDa{6>OgVdfrB8(+#njU=n{I?1Mn4EatK zIuZKEJaJz&@*7|m4*DhIV8LQc2Mm%jLyonXO4upscBB1NWE4p#iPQ{?7MIea3CvD8 zfKp?6?Q~=%Ezq}Y&MM`P6Csweg&XggVSZ~`Ro|Gym7?VFLEg;1&El-vp0F)9x}>jw z1>~vgEP|X+WVLcP(pf@>g98rk>8fpAs;CSUcas67@;6o4_NGmvF#k=Lg1GY%dgZ3m z(>=y=c}Z^%oTc$g37Q8NcfwlgBL z&z=pEtJfZZtIJKJ&!(k{#*yRj9X@9jZf!OL-tWa`vS-fomV@bet_*3rkm3tu;Ohrs z7~%>lw)5J}$I(yQRpt!9trh1W;);3=B5;W9=DfgkhiI&g$6z&q@jzd?@KI4Y|7Jeo zDCi|nk=qBJOWd1+nZEETpg&5p;8Lb)RyMi8k<(0(wYU|;kyVp>hGo2jo)dh2*$G^J z1`mN9ZUny#R!OmG(jx?}D| *S;qM-J-B4(ACJVcLFF^DCES-9k74N*v@ZELrw4o|`G^AYsjJ|D-L>*hk&v zvp~MsaX;dD&4QdBnLkO5dg%IiB-un0&4p&HMJ#YJg`D04B$t}vr{EC83=1wdmuiQQ zdAbqAkf}_AA8R-LqC$O15g3G`dE`@&nD01(Hkclb6g!R$ta5%IEeaMn&To}yux#JA zXs1HrR4cU>h!@%UHOkVHJUobYk1188dgn*54HsS~DrtDarkWp%RMX4~EJa0NK4Ck~ zzX*z*vG5 cQ)yO7QyL~1cr`#8&I?jA4+1 >d%_-E&ah{=9IUq|(plN+6CooX{ z2ttLR5;o7W(V?o-lx-=}i5jwDKv@-b9 zM=L}`*9L?OTS%6!#hD(vDGqG!n#Vua>1;?rBf)`@M2dMTiD*Ahjj`C81%coo_ baR!*Hq{9%8`n3o5m9YrwGO*Oe%oRO!BO%bdhnyPMi?}kw%JsoQ_~l}L z7kz9GJ+R^69dYQtrNrrAY&5w5JTpk5(p$KXotw~&d7(c4q?b0X=h~Ah;etcfp=ygh zH!MOtSh61va*3Gdib>ylgCwJ+KVl1jBt33Cx$VF2H)*69zP0cv%&Dmd*-EPk3!zKl zHieiE*MV=(`5As8Z!g2@sDb7}3GXhr9hYDg6sQ_!Gp|s;ipDLlY$8hc?a)qAK{#p* z#3!5$!3eg!e^C1u%00{c5YFOn=oR0pC?$c$p*p*;F{`5cdC?hj(Up84o1Orik~n=` zfl6ZXx~|z@6kSvXMYa}BFqzA*2lS9ouu!b&F^i}EMLih~O*n`!@?aKWCY06E(jZ=K zW=LJJOUSV>Xu07r 5q8X@7Jo-NvKQJt*e+Z5Ku@+oI1b^>|H9h4CEoN!qw5xISziJ zGG#JgW*_V}$;tT2f|ddK
Ivt;JWM&bCwY#G(H t1%z^(>$f2dQ2+YC1EY#T4(yRc{OpG8C6@WklsMEU4iJBqhLQd`Gd#(pbbrrx((2 zm@*@smCb5w0FxgE{$A6XMZ`E)8mXQ=xNxFTB|q`vKd& 9GH*KYjBGk=L5&Lb2QLV2ueg19>~3p~!F;Dj{nq{PEBK0TX-8 -(!R6=uu2+#u!ypW1Xt zaf;N8xPA2jYq-BVa4K0ddAMXd-t^L}(VR+}R{Iee#U*+0kAAjb==%KTE7nay(Ry(C z2L0xyoS|k{1b^y?%5R4(dWxeg?fv(*KAZzj7|M8jL8Ib vQed(DcGq!T&^Z+Ul;;|XjcDoA+W%tkE*vK{vFA))I0|bkkC+nbRsiPyBYg@A zsa>VdC;Hr<>U>30UFwI?oH%ZFSA)+SQH~ `aS|EsBNX7=DYn^>yiTOo zjaWGGKZkVq%1MOn^MAeZcA&s&gpiCh %$AdM;vPUt>ibx8& zP&5G)v}tc}@K>UXPnOdAhw|k^`*!G4RHa}lrmVEh^Zz=cCg`ix>X{h%fzd{MVUqzk z%7?CP5|-JZtKZ(zN$bNCv}u3`Mff `0rRArA8a$*Z}d+ZYsiHngoCYZ|7 zmgkxQ_!^&7NR ~(mJ3@1eH2koKq-zTRxeg! zahdGv$c3w4fTWjNLzgGgu!D9Ju7rQxV*MEITE_kpUy=L?-DBZfUQ+RA5(FfHCC u7%LHlqup?rotAippN{x%yRRHZzd%MST_4F=vdB=p6Fg<)O3coS{~ z%w;aRIJnM%F4j?yj@=QTdi)&WX!NSgB&l#znR#Ekznbl=`aCR4_K|qgg(*Xu9v3y- zm@gWtmM6xqzMN4^uljOTezeo(4c;5J)6^O`V)DbbtoL` dR)26xFmQ>BBRJ`c;@KW??V3%Z2{p&Klx-PA&bj7^ zLw5w1p71r_YDD5WKlWI?S`4G*v^b;t&y8B`+kz 52NjD#V!+P {OWi>&WVHEjsaniyMWY{t5dugP@30d-9i|s+Q4~q=+^D2ZFPNi)d zad1aD<#{!Wq>8aDa$t%P_3>m9??mqKUw n)Vd(VCFSi z6uddIDH&XBM(u)a^_h)1`s5-y1u6Lg>x_h|BbAe3(#Wt=UTtMNfJqcFrhGcO%dIq` z&IrUC`d7pJ6rNCXGc5DiOIX6mjwQIAq3B&u(JVv~+wj<){f38X8-&{@ zGB?4tl439`U;sJ>Ucd}l5hr687(Z_#!);9N;31$t`C=|#eEz{qRt{O6p0uGnj0+8J z-u}hiLk`|5U4Qy88a7E;m{bE-C*_JoAT4WFsf27^RtY*iB~4Qc&U|7d$$ll=*pgC8 z8WpUh0Wu3am%2b7%7&$r3P+CAsx^FBMz4GdELb2;0#(+K4IqSaFsvZd6`9Lb$)y#$ zRuI4gd2DmpPSeVP%SM!`QcAOK)--|(pYF#@Zjh_6oFzwW``$sI%sA6bmJ4xaF)-zN zietg%=qGf 0!u20WQc`hsLc%$}|ipbjYg>x6O_Kfr^FY`h= zqw(Ju2!*aqhz1fJWvSXsGj~pW#C$pA10pMGKQCOE8dp=NOpbVUNv 4r#tNxQQgm0c+8~*w#4%*FX4Gs_zjsE3 zt|Ki|!j5`9RLlb#fk?g30ihUgrpUa!_wD}!j6ie0mRO^~Vqqa{$tEsS+}>7i6;fVk zqfbV2;`YL%$zu5-nzesCX;aDO0+Uf_vI)&Xt4(K V{9ZyIFhdJBC_TdJ8#p4kE=1lo_S zXWg0c =vwA%|l(gI$|6OjuZE1~CT-+3Ye}ZlX+I6U8 zB;=N(6SH}W71sblJJzFrr!C1OOe_#2+aBQd&`nBBNwf+KxP%WSE5T};Vubk94f-k4 zlth#aV~qCULPK-Gg91t=*G(Cg47%4$e48JkEm^0dd%sF`LKEE{R3Cfq1C-Q2-$X#| zfV3}z6O?wOTBYM@%mC(P(HSjB_Rv7X?V@Upd* X&PzU|6hHTLL=NLhV@#1lEFNTY}MYzo`Hh`N3(VXvQRy#fVD@6HEokR%F>g z45#a?Qw>1=@QQ&Fd233lc?$MnR{a#aeu~91Jr&N{{=oSepupzFW@=J~R`cO*Gjuhd zGzLa0&cC7KFf q(nds4y_=ztQErsymQ$pB&!wfrVbPcVRl!Dx|?kZ8BvkEz&& zlM|-UZVF38m(e1>PNapv+0I |?M{*P-< zXOz?b@ju2F&!9ZiKJ+p2__{x0DO{A?@RiH2USo>G2mdu%F-O1q`ODI|IKqF8TQ79n zk7HCvO*`jFIOZNvBk!`{wqaxVa9;G1y=xDba?T9}$+*#pZkX0xdj~gy0OG)LYr(kT z-8*4$F3?#Ds7oaBE(@h__-(|s`Y=daV~=99#|R%cbqfHN(`7`sED&x$OHL}a_s|`& zE%6IzB?RV%%#x#gbZ2fe&BSUS;*+>#rwtcb(DN2r7(4v}-e-#~*Z~|YlW{QzmeP`x zYZ Mqe`+N$n&zT`i z#hH6yt}!9mU=t(@s8S0IGYOIq0&Nihm$X xX}Kj%7O5*=%ob-!MhhM1S5QDV=>!H{ZcIgnmK%#MjK|f-*CSKONHCO7 zLAw?}0zAc-0HR`=o`~C z_Sh;pKq1*~lUmASTqBwD9a+ciu&Ix)1h8<;9%qEsQKw@eCm9qB1P)|G zA784S%7I~{uN+C{wwL96%#Ga3A0VbMwxMk*M>p-#q4)R=ONKEa3D}2TU`xtHYG_9O z0<6)Vl4=#?!Y>d|ARh@vN-=TorSe28P#Ta4;}p0EL?0sAayN`i$tb|}c|ss>Mzp6< z?_+#(NeX?_j*fHDF-wK9SF+Bq>vPe}ucO|_a0^8v1>c)tF>=n!bk8uW1#NxkPEKpR zoH|smvzn!lf?2Ac0jc5^o)k)HE}hdbQ~z~6CY@{N%E3891HY3}QKgb0gj4z%7QqZS z)<2kQUndZ7ixQx}%C+kS@BxqsOjapeps$fiNfttWiBNO_KvJHVJKbbS`oH5=o4Rd2 znJ~8Ft6YuOw-<}WrsveL=Y@hXX{lMaF3EJQDV7_?qc+8kZj#%u;eTC=0dT`5PL&(3 z>M8pB-#`ESAAbM8He8ow@jrk6pF;-54WoN>!tw8a|DR)-^)_6-6!E{<;qaZc^xcVp z9iP6o`j{u?$Tu9|aRId&T>72{i-2AfScW4CjaQ{yLoXpkCoOKhm_<5d9W;-&e^oqZ zG$od&URw>L$6|{0;*N~V&!V$JestwHH`T?CAD&^inq!2?VnI(R6RwXJnCQec7C0r@ z1iFX?m&(~~T&>d892SdBYE4NtgZdbY2)s&QFj dFmxn38Ht(8qR>F&UFM=&WW;1Bw9L4UIr%G!qs~G2sF;ju_G+b8GSK+-1u1tej`C zIZ0=+O)+taa2oU!9Wa~(U_7a|1Swq_2pY2$qKq5KFi)|X6YVL9(j-vdrAagFQYjQx zkO*3(pa2^VJx)mkrle1{Ov$C*ILNoG0)u&qNq~N4$tj6+BO-y+J{|d%KCxgrWpf46 zM5{R|RcJ~A+J!bfwCf~Vje_|0k#^8dp~}k9I!KccrT|Tt0jlV9d>LjzVu4{@QnF#4 zz&<%yIK`4OCD#h2ND>M-@)o;idanI`EQ6j}7NyhadLJZ&v}B-6(fp{11ZVB1fW|w6 zTd#A!HASd5j2p?YBw!s;n;P9U(_WAwNW^bjQnHZNS3xRuwM;VTlWmDYO3KTVg((KO zF#(yEEs3)jAxp4Rz9kSy6RA?1l9FJe`?a9&GiGGPQx+;2w#l@?79_7rw4-ELx$U9K z6U_<2l*yJ9^xwt&aSJ7VvVAfdobbkiWZXSw3RfhW0NqOl%P?Jsc3COM$U(KDXHAoZ z!uw4_;1?w86X94&msg R zL<`p~B|vuuXD3?{479hjrwA-KQI+tZ4lWpMHu@Y^tEE8j^|%=`us5=&%m6r$9i;*; zQW%$^b(xa|$=o|}l9BzT7}w3P#ZIA{IrI(CznK%0?THrTR$N5jTR^Fj1v3zgasluw zXsaCMDiA=zdibz#VAu*MT}y#`je %pGCMgRWCf84U9?c>v<@S6v6=Z9}yGK?v?`ebSB^ Jlw>sZNk;0Xl)kvl*bE2q$yf7R= knCMQ`QFxeA$$+#JozA3mSGKDgzBqOjcV0gLu zL~DwWlML&FoRt9i7kXNz%&?g(a9)Vpcv>xJS+hN8Fi$aB^}J+!<1qs`lL_C>01OHk zniR-ifzFmP1H?l>2k-)Jdu_8&V6aR_A3oq%w&WCPG9`KIQqZ0WRLz9MkC%*FYtJyJ zT)S1yn3Bwc!AXXrwYBw3>zV8Llbkto*lNRn_`1uc0H{_iW_Z;VALzBkzL$r_Wqp z5ys(P=FN}{$(C2(-xm7+nm%877(ZWy|1Z$5SGUB!hK^pPvE!#kM!EF=t2CAC%72`G zW_)X72015^EW7l4)n`|{t!WSaS|iCDjGZ~2m)Afd6`6ZUur7A$SZ3zwkvARZF7)SR zZi}5cTz65bhjz5=KC~nDBfde_If %hT@veE8cdHtFoC}wuED6R?S Wb= 5dw*YFkC!M$w;FNw$#-^B}RO&n@MW-VD{ceoxhsKesk-tT~>3
oq6A>K|cg)|mom2t(hko~7T~m$Z #Tz6!*R>Vw3iYj~*8_Pew2tHR~&OG}W-_ z>}T^~EamY(`WKHv8^3skM)AJ;!A3k%2%pyV2=C=rGtz3*?v^;YmCJvi_ zN5N lmK9{<>oogmdBfS?0?CL#&vESI*qPvNuAAO{Maftm3Q;gN*M!2G z>-y7 R>;8uazIZ5H)kegh9bDYBJQQtN`OflaM+hRl`-LbhZc7VQ zt?Zu{8VIKigy4ScrViCKtq`}J6T!*( oMe7@I3PwuIR_axBjQm-dq8yiE<{ 2%lDyL} zIL`SEv{6as3w3k=hf__TlH-}RTOqZ*{d+M@7{K#hC$HsgB`uko_K>E$yzue7 7;Ra#Wm#v>ajLsMtzg!Vx)C0bOP- zX=xxE9k|(eGqlH#+Q{K~gmq-XiI*h_on)g#vIhq6tu*^%d64}_@T8diEs~6L>6t$0 zU*|j01}ihg%OfK4T*KiNA4w`!M3&v)P<0)F<$B8F*L`E_<)=12^NowspV2UM{BGOr zXW(Bgl}MVG!YI0NTRLf34x+oU;qb~wGV{_&=+=XAGs8gmo41Y7w>vj=Zs{S>g{A#4 z2JA^A?<^0A$QqCgF*b{92jivX$Mc3b!q9Ck4P#{7eDsAd`3{AfCmG9O+*nR3C7Geu zL~Cl`K-_k?rawbcJCHd>wgUtBKSa)iW54=mwTkzW&>8yc+&oYV@lyZGsJDdh@C*Vp z0RKYt(u;dm@nGB>p3(29SPA;;Y4N7?F#T0?Z0eTTE02jBOUdeGj*q5oi)1)5h}bb3 z!PrC(kuIgPKWP((B@XeYoA-!$Fm4Xdh*adw3WC->E%T8EoUO>43j@un&ef8Nhx$PW z2mSV)S$T5~EG91^7%yceeI|C`M8lfbGHcSmnp% DUwn7R&XxVcnhbz zR5k<=jMbl4?tuX?9l%&j-h;01>vU2DV0=A~Jl00e%mzs~IQ8fwzX{Goz2_})IK+c- zGbH19MxKZTwYO3v3FAyvo`htQib3ED%g76&Ojhh56%xtdMv)k&2gRB5Kdq1;aKULr z+(2HCNZJlIRD?IS@nGBp$>75+k&L_}*Bc~9_%KSX+ziRcd}aG}hK%jsG`zC?yBBT- z7z3NICr_8u4$szaY@lz28|z&roIplIqba7%@sq)fIzrwJlM!ib7D?)Yd1&jw8Sae| z$?1=%A|^S&%_gCa45JDD3RR9YF-b;Ofj4%<4z`mZ4o5A!uh54?4v P~@dOYiPp9 zJ4odyIc!F@+ANVA*!VdKIe>FvF}{#Uj*?JCW=E((vW>vW*KcY!b((t{S?H0ry-=*f z&unQ0Fy1AhSGR^l#|E)JM+f7j`MXJfE!w}Do9ja4SnbE8`N;O!%b*fNuWloib3Y~| zsirmUHHdP&7PZ<{Z6UILH%>l^Gs5ue*t{13n1R#%4^hhApHAl=LuruX#=7GoXbpQ` z?KoC@nutm01$go;kkWSe*<8z^aAfe ku5BgnHg64))-9E9 zL2>4WLPs{&k*1Z0mxj^lyng^nTeaix6821J_Tb@>lZ7_}j4u$3?q7W}yA>y-TBaRI z8+@)o92Rdo5)r*q2m0z5V2IC%i1 }|36PIfdtO}pB4<^YJ7iZv)5mJiuvUFa9tJQH_BK6p zEIkaRIk35|^~lD$7D;RCq2 N^wLLe@@#l~P!B_#D zVIzP6&6E|fqJwo~fN^2!rl}pTiqLAa`ZJOSQaih0bthSkme(}G&ZEXrV09U!sqUp& z6%uI7s~QGEWZ>1Aq)OzNOIBsphEXy|B!labP$I~|nh{`xM4&n6Ny6gL)QZfluSE zha{4Q^`eT*Pz;O?+E~OSxCDMR)g8;oghXBt*N~Zcc{Qs(Lu2aKi_sXH@zqj@w7!9s z?yIL`V66H)3F2*j3!;g`{m)>}oHw;Y9KP_hZ#hBJ)^qgn#Yg6m!%GGR&PleC{`5|O zhD{@(Rdmwr;Q{f=o7hd^n9+?U=(Lcyp=EAJ+*$RuIGlER03LMxwD1^URMj1MvE~em zmdVw1{poCa=+OqKakTpp@zJJd=->k|WsrC34vRuxaNShs_`tx-@SIOR0WtcF$^i*I z(hw&79rV48{T=7#K{wSJ-dsbwDG_OU25uFH=bRoG5O=)vbZFq5=-~3u8QR}ewypV; zf{_uXX0E2Xf$(!6YyIIzI>iSRfe~C1B4R3nQ#v-+d?gAcg>gP+{?X6? zn*YKX;jaLU3riwNod`y7Ug%Nirut`f3>+X$Npk5G;@!})297^; zb0vem+ZCm)DRWa>ur_ZSdH3`Sq`$%u+Co|uk2QdA3KO>Wg* kde;ZelmuMT_=%~RLr`Cp>+g=S1R4n^AQn7anWJQzOxU6 z3+dlRnwD+)6rZ4C*`EoU2hBwy$%N6aMIvz!;>bgGn>lbiFR$(9ju}^A;9tx?dJXhu zO~-8~SnTN=xanBh;2k|361tXb@01Cq(5)@#O;c@Yk8t%+J7U(hcGCgEzOp48+O!G! zhIdijg#KsPXwKF_U%*d?+yLn#=Mr{6%Q*u-L)ZhfhR_BSVh7MDGytc+fLiYF7Y%27 zc*zmqN;NMpAxDnP41cub2##b&&dqBjUv!``i3FGSKXjT0<3_rv^#??taaKG-9?2B% zVdp#2I?yMfW!k26^0H{t(MpG;;iV-Nzamwi# ecUnbrn!P$V|l0y$| z+q}#%cv$3E`qk2wX$N>PZeZ4yeW>-3&Z-7Boy-rPTYmUyvT 6)GaWrP|4hiE-n*xeGk}WrrfumQ+mc4A!ZTsaBThEL(MTDfD>b%E020piNlejS8!>fs_pVi z&tA6LGm_?TEWiBjL(kyiEIfK~&tne9!yP24c0NwUZxlH)k55A8Nml;~ua8lLswJDY zwxn-@qz~WMM%FJ~^YkG&4nFf;k&Jh+(w-A7KPM5t9?6i*3?E+kh-mK`Ney|eWAtqC z`GICM1ZPP^z!@b=0gR2JjPRPw`FmJ#=FCn=j~Z2*(lgptXQnlfO3C~^^w!zr+>*mJ zWKDSUTdO`plgY!OgFxhivv8IrZ3%$Eis-cbBccN@OETJm67ddpwnXHZe}LfBW99Bp zXyZy0hBdD&C+i#7hdzSao2F8?IkHi*gsjO-b4Zrnsgkh~>kVl1W6K=VHY1xpyaM=m z+V&7R9v)jV<_`u%!FgnT+x&31h-9#H$-$b{ZNVi?HRRDwwCoW{I+;T*ED?7AIiH8< zV6Rm9*7^o&_uRY(zzEJI4`$BUO{civ GGJWxst7+%8Vsw7tRQ;Pfy#5U;z0)^pImtL#tzU+p4y6OUUhZtG;QHfn5h0eZ_5| z@Wwp|#!C1#@M`*)*`j334}U$6TA$NMKY#(%-Bcs#r0WwO>qHk1=#NMm3C _{!IlLV1-h^Ph_Y8T6L}tY# 68FR^_A~8+^R~^NrbD kU9k8& 0~X{j1u(qTUv4IHpw5MDUZV zw^(u^E=?{DJx7y(gD_qF$A%*zdV4JOSY$TD Ig6#Hsy_C$#`wq zR-R|@Ug-R+Ef2 we7HQ^j4h7%xha0k;KAU>j5|XzaGqh)f#%w4&lc`D z5^BDjS+S!!=zM|7?~x-%NQh45Vs=N4gz5AM+dAeP?Xl4uGW(B?c4oxcq50$H@I{l+ zBsM!7qBFkn#9L#8 -N^w=0Pi_~LTkJjv+4w}CXRjHC}G zf4Jr 8EQ(*$MB+X!pz?z)h%XYX{~y9Bm|c-yZVSv`sSya0 EThgw16U1 zjy7+5sAjY?{T-LjAFt``A34ui WFRi0LLxKy%GBRF2J{f1Ze>D(dA40r0 zZWWQQMC7rySu{bqPGj|_Yant}8xg_%xUmfsp;82uFkiB5vnZpZvV&bhR!L^JHO&>{ zB=aVT2q$2+k&Pmpf&ZwkDILx?XW$lK8Kh|kJVjFHJ3Cfqrr|Vl65Rmc9mH{dZH%Jg zFLo|2On@gkHaTzhQOVKD2CM;i6kIEFxTZ>y!L3k p!D*hm19CP0Pa} zBIzXkFQn5c^wn+YP(7p-Jq}lY76*gdOYXgA4o?-&`Q2BGp|eKGh%H^}Pl|zoZjJ0b zS_BG>ILzX{OKaMKqLvi|@~Xp0KsG(Jeh;pefvE5N4#8-`dB{1mS~JMOIw*y>^WYBL z4(=TgFOZDTe45dt=z51(;4e7jw#Y*;-o7w%8LfeHPt&>K!z-%VI55OqM@lz4By+-4 zB+|l%mfs4=Skngb`pyo>xFsX6CYX`AHJDacm6zUmXsl&qbjEZIH)d2$!#xlr;nkh2 zq+;pUOWFC7C3O8*vjkUz9#0e35EOynWQn9TLz0Hm-fY@e*!^PNJ@Sy`0Fi{m9oQIK zX64Nyk4Q51LUbs?QE22)^Hq|xPd`epn8%9ql44+x`FS(nTJsqcd5z?eIw~1;km+mb zd8aer)SMlmjJzo^FjzPQFdltKvKOMXq-P*(knJ8;LaIdRVQ&2sNXGor6??D-uwUcA zXrRq#{ZvUEZcZxhz=7x`QCbI)kQd?W+=`no8S!b-_|z#kcRJ$iWnhfF7N7174SkLL z!`a)|K`1oh?9fN->`($BsOxZSCOI676OLW!AAl|`UeZ|3! V3*e!MUc>B8%=?VLg7v*0+7`~!1;*@zto_5Q}yu+>JYE((wF78ZeBYZej zL$xZ8j*MT;FfNGA$i1XQOV4PytbD2wkvzoNIN~NnSNzDwj8TqYVXsF$W+}Usq(tex z1Rw@ZL}Wczua$~#&z|9t$s>v)7pqliS*R7wSp=h69VKo!fz_|l5_e;uIO^1D8i`X$ zJZg0ysOn}IwZB;HAtmZ!7pYbePq7wTceR@M)G9CBrs;z^D>@tLB?@)K$wW)aI552K zGL4q_)dX%25RXdhW8_+Z7BY(X)LM0fIAhfeNixxZM(rgUr^-X lZjI_JTvZ_k-70u0I0$M~PU6u*b^(nR!C+-tHOQ1k<%twWtGym*0v;`i zXI@6Cz2w#}%D<9iFdCIg;fZ=YjLV}8Fwn5wj8|FaD{?CvQE)tp#t5Tuky53v$m>={ z3O&{G?xJX^syE=NE{c|@d_`xS%Am|yjE%h%1i@3y^g?3TPm~rZJrR(*?!q1=Cm9M? zwcI1?^2j5MRwMVzJl=?+tXHG D%8%Ru&hig zCyFw6VXs@+UFa$)^Duq|f(Pe{dSzuAC4Ht|MI$^N#gNs%AVgZz;e-C8H4{ltPia z6dtCm)Cqt=TrbTWIs}F5+tsE#jI&V7Kt~}fbagYd9-vejmAkO85FV2IDlP0GrDaf7 zx4gTs51zj$3L-$1MMZtk;AI}C$_MeV9!gw 0I7-9?3}2voyYg*`FJ05DW6 zbJimd78VvUZtT@coJ3RRmb29=u0DJm7y- cmLYQ9U{R0kEbU@_OjJR$*Ax|cF*~oq#d4C-1+uMhMWFH<6{-@fd&Vp4^)OMV z+^xKMV4U7^gOU;TLm_;OnsJiqLX=ZCqk^Yr)M_YN0KYtPc;r&KlIg_)D-~tkMWkBp z)F{-2eI@c@rq8Kl6)H8>Hgqwi%HpCvjYbaD5n+lMHSrXwWR0YRQK>mF)CdLx@t{v) zRK*0MYVZi8Nluhb?CNMWK~C~$wOp$tGNn>ZxFft%BUb?!N{~;Dx*P7pbTx9NGAipD z0>ecgL@fg_puU}qij#~0Jb{xbmPg!$9wl}I#8+4b;!(`F{6$LUrb)()4d4+}F#HkH z9q{+XI*5or0GdkFPgM^VzWf2=i FfRJf#|CgX z?PYs?JzP>a7zaHtCj0%qvnVTlkhnhrl?EwC;iCs4^}spS-%Em!S07RI;2&n)3wLzG z8O8%q;V1%kVuAfZUo_IidI{X;@hRx&-wo&Cte<-(Kh-1r5q~t$L+E{e>^6PTUMNri zGxkOUT#1<;niZVxg{;O6>Fd5!1-VEua$QrJkx^CK!1+tGp%Ty7N%W3XojH}QYwXy? zvBBsD16$h2Plxc+A=i?vr;Cn=7l#rUHI&2cd{{^>i^@7-q&R;WGr3ghk2m#d^>=eR zX-IBs8@ZM9CX!g7<4@}A^7blK99#kSWp-63`W GW$DSCDBe z1}@@c%Bb8F7ineQ2-Bzp2H-p|Qz=!XM5U1j7_CAM3bT`n6A*!FMqAXQQEG~C7?qVZ zf;tp%Ihj7t^1Fr#fd}7D$)I2aOBi)`p;C#o4YhtXTiD|+QX=c?R)E6C7NO2q!YGv< zY}24!`Y|@@_$V1AjlLpOkKqn=ps0^U4Kq^M)m;Qs4funKQGssbQz(n#N`FMwMN@%p z4%nWuu*)fzdxJ_jR|q^{zn78$ty|`zt(Gan=>eitoiEiwefk*}bRz(kOXebg4d~}` zkF!^)boqgngA}--w~0vx2S!BZ^tghMnyd#QR#VAPDtp~787Pj`ayKwA aBJM`$uANR)(qX9ZcnNg+ey0oS zkac_9U8FkN4VB|@x>(lb?1ld%;B@xD36GbK89^t3Sa1&Xer>Na0 3K zGn@dW52$``#OZbR(wu;8d*D}fpU>%v&_V>A&Mqj(Sxk=Crue|~44!B3VDOT`O9l@H zFB!aK@L=$g!Gpm|1}_;r7`H+)SU+K}Hc9I4^>|t5@NYk7rgQdQOD3KXj$^Ff?~h(F z##kljiRJ9~M@FQEer(j98awOkyX?+xr~l583?ELcUcr2Teq_!-skXatxEB2!c(Sux zU5@SZ*3I;B9vAV%ij>OB=bTC!uUgVrBEdrWuw^*ND3vZ!&7d0r=ZiwBIWR_g;VH^` z?;OeS74 evZYJtv6t0L;p@jIQg^agE$*71=PMw>4MIZ$lxk4TdDj7AaVdQ56 z3OVB>rE+<|gWg$$EmqJ&rWXoRhAxR7Kh`%}ELZdf3q9UQw}MecOO-NDkvB>rg&rs- zOWisMD?5+5v5ZXKTP>HL^+7U)jK?i!w8Ra0#Y!=LCBwr+X+w%IXPF+23ff?48C%5l z3JSF+idF~4TUtiJ2o^cz&Z4MO<&itj6Pe2$bF)HE9?lPky0>}yoJ=DEg*Pe6K=?|O zTAVdU$>^ HunHzm=pfGH(sK>*=0ps$>;5 x#|T3+PpF6<$mqG(KVWL+id?xH>@k*`o&qVyH^uy7^d))e*1JcNyvVmwPm zlrvLn6iR|%G?te63pvRMda#}-7@TAfM(&nF-76!$>Y|XWi`s{vn{vz9QqHge*hV}h zYNx{MgU9}=2)n5O)2C2-(ZkROzX{qjywxB$5Vu-Yt%92LFkYV*k@ZC2(2Ivk1S1+O z>~S+{6;!F4IqUPnPqatD9i>|Id@fb7G8e0nlelDbl{5w^7~Mr4ugAwgTkt}2a54b~ z#3)vZaV;563PyL4iv+Qo^2n4i|KL(N;|(%Q6u{7S7tu3JM1~%>J~?(%emY!qGx9(Q z*G)NPN@(qJxhtqt$YDfb6--YFN(*#r*lqb_g@v3GTQAp5G2Q?J-4u3M=)nfH30cTJ zXjW{DcT>>y(QXRPQ!u*aj4D#vNCJu?80>uVLU{nXO6+P;GF$)#lqd?FVIz)rFq%{| zDrj*G(-kYl9l$d@OqAS_A;{cZJJdMf8SHhdfIQE*C6X~341t(Nc!f17R|?&IKmhzB z?)9^Qp j=Fd?B>mT=E+^FA_3RIR+RPnfXTFH&MFjadZGPQHq!!07~9rjn# zcmt}q`-kshWphl@;%*%J4l2K^l2KZu^cHGWe&SQ9{6S?D9@eAOsz6aG)zZ-!w4P$s z`JfUP7X_8tVo$M)bQh~&T+|l#;A#{&T?}7%iTH~lCD5j#8c#K-v1O2!8peC|c~;g_ zt#Y~m2MR`Mq4KOorKMm*AUjOdsV&yBsFfD00zuHS@LWKn@{&?WIlwR~NZbYbgbGRt zMG6FzPF3K$B^jC`t*?+NR1*a}W;b1T0aS@WzE;@BwN%h|RNZv7MmL-+WPnsa6jD-H zsA05}3(DP~V=|!hmMDwmtW2)#D`|8WsuijT9&125jQ|*Gx03VgRJf{()b1iTsx}^Z zK!%AjL{q3J?1KCll|mheXCyCWhzydBDCAm?wzMdykT-T0MrE`}OriF>B^glv!NR_3 zRiLofS43Alz!9#2;HaNRN$Bzzj%GkLP#-CoH&ED9(g=00bwZ>_wNg%GXS)k~WooU9 zs$~inUC-iUB7|ks#Y*g^fW)YP$VHGFGEvs4Vkj7pJ>`@dHC>GpkZGOHKw%W IGfU>gtg_7cChT8_(5{MhJ9J%pSO#55T8JPAaiUEF$$KwoUi z6b`#skPP^M3-}R$Xb_jC3ik#g=RsrZ4Nxwlagp;8f~#1%5nndIcGJwDW&;uKmh&uT z)XT=!wfIQ{j?P0GQ9pjumBqA3fdDIye1{}sG{r@w8CI{@Yovl~@zrNXgT*j>k2&T# zZ={X0z2BuV aRs}dbUU4L5^*<1 zh{prx3F`#Vs=dwt=j!Z+1cFXaQIz#)1EfUd??DG=mUVjF3auZF4?d?16gQkUjIH-} z_OZ?=q#ubmqdv3}p@Ve9Nt`_}x}!}CN}>fG;&b{TlDiNJ0cwE9MW{=)y9a%#-PFie z%4k_1b+e|02|A 0^{GALB=#>v1O;SS^eb$QyHBp*r8~aTfK- z&Vo);TIMTs_A2B`S9g(GQ3m>{tFKz_F7nE>pvNlJ)wo^*!N5aSrYcnurOMq^Eq5|q z3YDg)uUhG5dP^8(V^G#u0z5 !M&pWSsbvHbP5fw8glVxEd#4OI#%? z(C=iRMFl8ovPKQ)&Pta;>+bawqPf>eSLe7qvMyYG+*g9-0a;^kZvi@=t|-G2s+fqc zuo2WmlnjmB<&DU^3YFI*hkM4-!@gC?h_W&lBUh?=sjjLjJkNM3&j`wT2uj9R$ONg? z71!k#7oxpMrc^4U)LhESlqyhMyWF7MLX%W962>L#f@%dEl|3bDe}I~==&l`pZ4p!( zfZ(BEunaf)`sAff&~N=kv9 3gh`0rfqUbCw1Z`O^T-t_Bo))V_&Gh;T%RsPEGC*p* z(84rIB$1vX^{pN=&Mp0-qd9!+Gzpz)9wcn@Q8>Rn^rGm`V`dw0Iz3TbHt9t#jfmUt zj0D_X=uy4I=j?UERp`C_@s*Fz@pij>*jqc#;=0&?i$p!Rw51o9$9SADkU$?EaeJMF z^*VjT6I)0bCD5aFyIr8y`rQm&6XWc4mXT_zGGN~X=|`a(_j>3ka=sfzD0d)$nWLyg z0v^Z%*WN_2Sae;eyO(u);iTV*OL| b5&eNp1UcJEf) z%Ehf?Y?Gu=-EwW}+>(tAArYx;Ygs`m8=57n7gxPS$f1?rAY0zJbfc2-)#9oKmVz;l zton3S=SPbV*3eykL!m2W3mW64#^KVlLv|ieR;!iQVA`z47VnPRFj!@8+?)i5S2Y^> zVBqy$V%*?1xhNSc>(Xl%D8K5`%x(kE2-Y;U5eIpx<8Zp9hBQkYwWLzAjg{0Mdwr~I z(MJzdr=mVMf{vc}Be*RKkPRm~R8Wa_`HO&7z%~5ypC{Z7DukOk>c*X1=%y^nMmPeM zG~%aPlJh*Uj2M&X)yTbUz>D)p0o)aa<{I}1B# =%{ekm1RR-f8SI!6>#hiF0a=Um&%gSrz z85#`})u=(WEK$mV4g?q%HS#gu(jqliT!qtJsOm*V417SLLPsdh5a?kv^1c$e5_BXj zP-ME>QMIZY&iYY_^e}Q~%*=PbgwcYcg~PQ*%`%`IX&WPq8mrUCbQk&+UNmHQsGYAG z)axFPTmyWC(bAH5m|~_!BQGiJ^%ND$T%evYXWgLIq9kgxxHD2UEsmD*bT|4-F+Cn_ z2~r`IhEW#v!oUHlHWpFI&D+CIh5UB$40hmJr$bcA!Y+`ELO&Wbh*GOmDZH^Nh>vxR zq>u`WN`vlG9^eD9#rSfi%v*v| __|z&b=&nj7kU=e>`vAbRpo3kYsEgzN+|TH^v-GKa00v0Lc^N3;q*~@u zaPDdzAJfIE`)D^sO&d_BOm7flbr*W%W%S;Fr>_JFTZ!6J*jJ+T6?NfuYUgpYDL_D@ z>J6$X)dnyE0Y7EQz|4!fy5ZQzob@B@C5%@l$LS&kCmAJbcVSPpGT`m4R`t+kQLXed z9^4DB2kt6zd6@Hlzeedpl8I7P7Vx`^=#8F2T3*H@Q)4pJ(~xfd1 ~dc7~GR{JzmG6HICaWCZMA)aD2jwv1$ zs{vl4B^qu3?^bJNy(~yrBv6cym!4;}D(K|Z+QQz52Dk8YtJHyrT8s8{7K_qd%t;0m z0_(TBj4cM1q=H}7z@C80`n%Pn+8b1{J~g!y!%xlGfa*@LXN(m*H^2vc*MEzrSUFlX zxivryx>d#UZ{lm`)F{gC5PQbeY(uxg7h{y^?m%Gl)4iN7_Kng$-%D->7&j^zEQ!XA zH}sQbN7! sS2OU@47w<5s2UWj3bhMdl{o^+*ctUU&%{fdHP2 zj0?%|6&4kNa>K}R&JenX>OzL;sgCs%KI)iWs=U^|1|63#Im29jZ}l}K7oWsX6v~E) zV095wMgj`lMOrg-wz!9*a8Bp7kU#Zh9t>`$M}E=CZ_^9CC=$g<=UyD2K{Lcv0dyBI z&eDL|7Ct sR>u@b-N&ey(Tr3?D^V$gNU=+@9m)mfbDR&!^9xRGO^SPi<6i|)A% zRaWf+9;YUy9;aHRCXr&?EE*9 qfmgdYSnobQuLs4(F;dvNEu3j&T_Z_r7NPuiC?E* z#VUK9Xid4 >nrSyZ5~Vadv@ZM zu`U|H? QC2g!L`02};TbQMK9)oXRGOzy$tZF2 z;Ik+my^%N=+>XC2qr$zNBZXbDZIv}jXJMZcx9oM&No$1~ou`0j5GT}#*DY_9c@>S= zO)2Qc+_WB8mj+F2+#X=m^@;>#TBj=@1L{s!UobA9?!dqq!l<22+7PJ82q{{Gbryl# zLIdidV9+-b#EOG+0?;m;-fC5(s0V1i?5w{iAnWQbJTL1Zr4(2f$M)!M;&e@5HRx>` z_4tttPoYBT)yNf0v{ZdQ{*-Y9G>x>|q9v_{s;ZVNK(e`s1av9u1u%k)8u|mmDwIk& z%XB$G|74(pp}Q@+85O#%(S4-9LShc8DXtJhA5yQMW9mdBF9yzuxM~>Hc_*V(MwK{g z;g%OG>H4rB{PH3gj8d+G`jo@Sp(#?vdU~vMEVGl*1{syo<5VHt1hmnquA0Fq9somL zLcyRdf|PRHTOs!sHWH8w#dsMr*ueSoQP5hW^vxFMqjU*CB*4ArqFYXSdr5#gn{j 0hLg8|h`-m;W3HCw60G^CS`q%)=dOX}BRqE$PU!j4? zQw18+8Y&dcfepkJTQ&flN+57Pz*5T5&Bk=@?p_)Z%g#n{qr{%r9VkG7XaJvs#ZNZo z4
?;c1qnUcjL7Ip^dUvT3L75oLq@3 zq9tfUxk|XWV5K8|X|A-Q+u6g7d81Md`ht!t_)CAAV+I3y-sMl`=3WYNjk{xGwO*+y zUN&0|>KhY{ul>J5D7_er#<5_!B*36DX4A)J7P-}6+@NGcJbqARt|l6iQ8Og+DIsD8uCmT6dpDUJZJd+#~bi zuTmA`jWEt)wXeuU_d1}yYZ^3eF)lZ~;x7b-*expy;F5HBm})3q7j>6H=N_e&fh4^# zT^84;gVqOXga&<$2>r@(Xaea}hxX~>y!Tp|@p=Rrm)3w}aR0=~(nK#zf(L&Hi z9hkl@?87zKv5lV#RRAP)RfJ#BA)hvt>O4xEvRGBdnRbG*KI$@CEmxx6>E{+fQ83V8 zh${{0ZVjc3s@RE^ic%Ra-BGFVjXWC8Q%zOe*IigfU2h@Z;xg*8hLTa@qV8 Gm6sMq=`%)U+5iQE<5XJo?g##%g?g@L0t!_zZcO1;(+w}w)kR)hE>q+T6!p^H z5F`iR%j0LL4Nfa_1*w~-LZ$7cOLp9Hx7H88BBf D+)h6XGac}5fA#0d3?a(aM+EwL1}lNcSrFp1HHuO>UBpv=YuZ%5p;WcX%tA% z * z`}-$1CpY(;Q>j#{_S(C$Yb8~+wVvNW@}uq67IxlN>&V5K-kv|Yj!w`qqD$aQW;ez0 zH79moR310*{ VWg^ z#TBVJWSl4+3z2HC8&kS1!YTHrcs-Z38y+BOnwI7M0>@}~k4f91KOLKbR-GtCt7qiu zyk%FooHJC3yBmo=vqkYWtoy{>z6e`uvy>Pf>NN?sLYOfrMqQ@w_a4N7S0lsjpI` Ukk@pB6nLCjtvbzJPdN!LwcZN!}!Y zeXw1?2#4Du_bn|xi{zaXrgqcuanF9x2kTLSL_T>Uj=-DLXn_A_TVa38W^ ;wo25k)U)qtM#mD^wUW!$_FFFTt{Okzyu z8OFZPxi#ZI$m@{KL)WOSZ5a)^_5oWeZ-iQLl7p<5H-a|pU6=RV&}J?OH;c$!a)o+S z9q2S2P(n+|li>lCsFd*gg>=xD^6CcquMQ^>FGfLp2P|SUpxX`VB#F=q^G(g^Z>u$5 zp0fW{@dI0v1T$3uyns55=o6*JZRyd=IO-zO9u7)3LV3=d`I`P!5)BrGHXXMP$k5NE zY;a14SBAHOV+=2Nq(^Qd+9Lr5ux7M;`H{1QeFan0B2EeQB{==B&mcawP>^%qX`fjo z>D7cpiU@a@E ;oQ9@wp|=pLhVW~ z^4LzY)r %U>?VIE0^?Y&mt35XwiLfPHzQ6J|!T rrt*UEd6Q-F#EIgb}P zD~2po!lk@>;cmq&oCNO&)hz|#As1xQstfXGELKqfd#m5P=8p0H0Z|Od4xUhQ%rLUzHp)$h#e#WN+&<+oA&wm#@5GOAU<(US#oE_Kq( z)f{(xKKqUyhtf_Y6b|JbH|uVr%~)bV>u35E9ZV*ltIta46=oJ8Fu;y#3lD?8F8x7D z^)wYcxUew7nSo;(G^*@=1J+*dG8jXFqXw&%^TUJyiw~}uzpd&L94&0U$hgQW&Y(>* z)3rI0T?!PoT<42X3aY;zD7aQKvm0K{Y4r!74{UAWkXu$TGk07^0_}eEn&+r6?W-xl zstd?gdzUT+cO Al1h>J0lRHX7gs6XL~ z FJX@Y2HENBh)r?RlVc9j$)t)vt0z+4y)dDI{$~~sSsz_tRROem%?YT$9 zq1N{)_MKm-jt2^=N_KEJ+tstlW&?i|j`B1c&z~G<6mCZ8+l~78Q;z0-J}Xj=3q?Jb z`&W_rveS>ucvF4MRqN%mduq45Q!WJ-wf$bqwl+wUIQNY0LJXfCy3*|2b+Gm0r0I+T z{P2S?)Rsw`B5D*Lxw1S&*=VP9+lmWbIsLvr*3)}?X$49lqF;NtvJzDRQ1JZq#om+E zg7aT3KAP#A7z!*<;cBROPr4@o9bgRYaRh$P4<1L=fh5jWLvmSHmi}Q0x$r{>$vK!= zJM5rm5EWPgz^#YJHOd&&pCs9>CHtb0DU=D109jV+O$kwAmAWMf<|~J*hq0ttlQAU< z%-P>{j^Noc;xswd!FuizTKvUyvP3Q-O!h`OI(hQ0#6`c1QWT{8@1U{+1(oN(Ma`Km zoxl?%PUn>DjbadfKT+jPD7X?ziLAk_GZjRN5NJKH8s`6^LuALdMx;@3-}=)&0ZtRC zKp69e;)pjuv%;rf4}R2T9i$E)51d7K^+kPsF&xEw)v2~Y)#<+H9AfQu-IDV9vWtn= zA7Z1yNR%Q`$6Gxt8q6MiJzpH|GIVW7ELcaJLgqGP^-7r%YRhV$gVTmVgc>(d=FfYx zl?1z4uH(dj!;nIPftyOG*S0uwS|LDchi>ov&s${r;Wr%U0C->6l9-t%Fk7DF`3Tuw zCORAn0aDx;CbQfhj0cpIi33!g@nQU;s2!~_KC4hWa8z}tCiykNS@G^h>U=-KPB8j# z#43R$bj9+#cwM&Z2-9Hg)`16#R1thWc?fljKv%=A-@5 jHV(4Y2;c;${n z82p&DAkgE7jOOfj5D~MBFzb$l(;gFZ29VYi5f6F;XV9_oRy8G9F9B#MEJ>`06qeL- zZAaPnJ8)y6{?_=^ml30x5~#|QV! |(xhv8((Q!#9NS^CtkExMlXX_8kJyqT z#TY= w3oi?mI(-RFW+d Z`YBpoGJ*t((6j`n>P@H3Vl6$Nz_{R#RR>!2VewO2|L1veDfYdatX#jA_S z7>^dRJ&&QqC!_`_)>hSZDOw3Im!y0dwha{lOZ)ty*ZNVvSbGjt2&=HZAzO?*MR5b$ zM{bVkh`TE1 ZlWXk_wq~0$k}kOdwbc2S%QggGv)dIb#DozOm||Nb zW#fn=E@G7!SbeR7_dFDBZ}svqI)ey}JddtFAlRbFy5FXn$@ek6+C%XPmonhWjDtyx zta%~zH=>@&nwoi( }O214-76mC?(2fEUCGec|>rJ 0B_Dh}4!k@QKm)M?V%T-Y|c)QDYeE193C+{`VVfbO`j6*Jz>8XD90 z3jb@N3}k-hkv&a{b2u@QL%uDwGLD)U$-XjL@h5&Rp8n@vv5_@s_(<&Qe^S`{F%LKG ziJT1`k&sYiq~aYLJEtp}Ththny-D1I6pio*Fb{9;92V|=*2%Wq%SRnDK?nUr+142H zv7)ZE#y>=CF!o>5^bq8$Y-e>{?zPVagWyGK{K3?rv560jwoVM~r!zUMBEc3$@*I%a z);rCIU%J(ebjj`u(ICQ%Hl@IV*OD29xz$TlZ^P6zw6xbe=}BAh8hPH+S)V#BuFml@ z>Hns4=@<1#ZA8%a1b~^@lt4b(LgC-a@+#{CvId^Jxy>Wp?}kqf7ss+xs26sjC-c1U zQ^-Dl<+M`ZUm;~~eT#hZFun|9$KFDc6Rxm2Hz$0empqA_Jh~`Mba$P_D!c{+7y_pG zU$9{f9vw gxj?9t*bpMpB1jgJlw1W56kgfcDP+|iANMR< zA3ud()z~fe6rWPq4+Gxl3+2AQrWMp)*AAzIUpvmlxtkB)GCfNv;y>L`^5K?GOhQ}$ zBo;f~4LlzBW79g=(_<&_KXmK8pw~4{nIoUHq#V>Q+qw111d 7!Uy7lELq z9;saK^XIB5UO#wT_5ht@K|q|a>^GDEO3%OxL+Fld+^qin-u0(@JSZT+Q}z3(0SMy5 z^Y8a(mhB(Na;$V}5_^5#?K>2q@iR}KlN9#7x26bbc>Q*Ad;4tCwZ|+UHL#`4FKYix z(BA`UCHA>u9nRjVp#8vA`oE9Ct2|Ytm%9-z_AsiA6DmKNILCDC>j_0p-fg+5sB*Z1 z?h=FvE;6Sx6G+}QKn@}zI?5z>+L-8*4G%#vI(EmN^%nd&c#;CL+*uybWg+EaBk7Z% ze*OCJ4By2cKI-+Qr7Xdvt@?y@Z)UxJ7PNn~A;Peb0ctJuw&HO+i0Z?@Sj#zqZ9d_X z;wLrg0X7Zkne?CLy@;ypqZ{zyr+4m(YBSCnA4$F)4)L}5qD&P3HB8xScM|f7zbI(N zTUmk{gL|w1fN5wzn U1xJ{+A#c77-^-q!T6jmzY )BloNBIy3X7EHkTsw9aDiWD1tNdrED? zZOUv OAjE)oB};&fO>o2vF0tE0g^#9(j!RCU#z;4^)H;;;W41-7?bWC#cyXy6 pb5B!mdV5UHFCP3j396e{T zhwvGoA$brEZJe}%W1dwcz+-jdb 1Z%4yUXGUg$UnIadQaU!5*JM?Ap IJ6{a%`DI>G^@j# zwQSwa^woo^H0SVHkP)6PD7yca>D8UqjDIXOLU$1kHZYI9nVR%M$HqOlv*81g@25hc zg4q*7knuGode07?#ZY~SEmh_j+!&c6cx0EGyPEd4uR)}T{-;Grheb*Bq0D )8K*VejQZ<`We_Zg@y-nFQ*KfJwU{5o} zC$?n&-jnJlMydgc_^4+W!u3M&WU@9?o0)G9;G#sL8aivU**}-KS`?M$2WM@`J$5MF z-wDwhSH_94(XXz#Id~6DJLBjer6oMi_O=Zj;wHk{6}!@=1!d*4B{(a@@F!QYIY@)D zvq=&Kds7Jf_4>T&tRXik1{j+>@@BG9d78R?3o@UUy>Zt)^qr1=A!3 b%bsZrr^IeFH5oC}%3g`$85c6`aGsbv6-YeBen}gE7ky~ZK@Ch9FyoS`! zk|()%)dw=|bcGC(9&8p?K{5H-U2W6Y(Tja|oyK+9A@vKx%cP4U^^=@UZYntdE7{*v z$3Tw`8Td%ek3I`ARxg;)5V3pRhE0?mvcjiui=9S;9!$EJV5)7q=wV`NWx4{s1>FWN za11KQ*YcL)iP8Co5oo&^8Lv=NsH0mGj2ZVYhuYwTapJsPUlswcFe;uITPXO$GeFZJ z8Z5r}35Hirz4VfA7yf7QlYJG&9?~Rh;aFGURKlA{2|niJZVvcskFV7@=AImJT?jHO z38vogtbf-%ozgcO{WH$OgFtUVoy{g@&7OeF)*Q~Fut@`6?7}MeP_szcU(ihbiOyTO z)!BGns>DUUD`ihd)0>OUvNA5FX^aF_l!Z#s-|l8FqX9L}me)4b09PwI!kQ)LSirUQ zcj^Ov)JR1QxlVII95l^8ax+xeZXE>ty(XLMb ~N@j5@!dOa?DGq9WF3(Dv?dJ}#EfW)=Y$Q*zU+5E6#P25M?S1^@ w0GP={XYCS{t11$T2ii<2=&@T7|8Cx?e$R_v@bP&(NwbAzw11DG!mN~W7Uk>i}| z+)dX+lU!;o4dbzq5iPhpm;A&>4j;&+L|ocROJg9qC8x8_u}I~!M?myUg535BgV8Np zdA>E3i5|P)WjjB_O`jy=p S9z>3I5TvRx{puJ!54>7xxySZ<-V&D z8$RCILunF2n*2w6k_-#0Ik34{xxT!sfA<*gaxMnpW+y7tX=x7C*fAdLcnQsjYe#?X zvUKfEoKwlofbm6d!n@874Sl`-Y|K3h8;tJ4^^7J?o@5o0l29I84w3tGlB~=U` L|KkoJ1nS__Qaz8C4aK7s=G z$XAniUCTcQMr5+xKS DzApVRFFSyoc=Xp!C x z`O)w&TQhT}G7~Tfj!G+`B#&XcJ0C4yHv&D}tnZ8#3o^J_x`A=a;Luo?wekb*O!k!D zJM{$4F@=G)8sCJ6tO jPg2=&s7w;7SlTeS`&&fIM8W0lY-PPorn6ev0_ z!r(M4>}Q7n28P=^>b|y$9;CHt*-&rPrsv;YD0UWh^SvFXN} #;|R$Z@MmJk2yOl z>ZA1t@5oSBw}(7O3)ZOLEl=*sQj6Q8@)531k#d1^ycQNVAQ+ylS$>cK|AR^9!ubD! zl3o87yqxDJcI1EYl>he`A@N}GVE^wKUwQ-j0{Z@c8CwWGzPDgkv%juo6M=p (*p%LF6txphAc!3{aW1KsaxxAp!7kbJIxel_uVNt`^% zi>U$GN2kI$u} 53%hbA+5Eyl`Njn)+>XAXhxu5?VPy05|r@MaQ^DKnTJ0a4R zuT!&Pa`C&s>s>2nxsAPh>OG!A>MpsP{1b(oWQx>jmukOIj93Ki#S2G| *%Yt*`Uflu}*>xHAgF$!fF|1= Gw+I_-Sz!vKF<&Y4Lzx8&*D+t32NoR0ezQr~#PZTX4oGik09~?No8U zFRBjonFq{FwkbrNI8$A6*c!3_h=NN}({O81P^TvlK}h@R @pQ9QRq)q|KVON ztb=aFh`Xw+g6rhZnHPH##sZ6*Ld(05!?%StJlqa+{fx8x9fw;?87Xv;r%!LVL=RSj zfI{1y*IMdHG#J-N$IMBkAh4-)9L(@SBVOIO%yEx8o&q=Ry5<9ybje$zlSG?V-JT9r zRJB`|6D)4RbhwCmsCrCQ(adH)yPi!9mQRyjux(=h6CR?9dons=?fXgbeyMN;RKB|B zv!JK-+$|;uhTA_+0IjU&sFHjkWfs-Z%MglBz)4DlqCyc*|I9zl3biip0dUa;00ucb zChR-gS?~3b?`1M;Y#jscXGL?^FvI_{f)3wHWp(q(u}KO_))-9zga1ig6 zAY98~!qT?YjWhkoTp=OTf*6K!J0qX|^~Ech zyHTB)nrFQ)5JnQxqwkx72%Cl832r%+S#!Jo8vRE|zE0mZnAZEoNTT0Y=7=;rAM jIF7Co~v`H4-M4fku;!sp!W)} zztfBKc5KZ|+{|1dujVWuSPVN5?|EU|=?t2{S}2wmx^~!N)}Rl|aYng5Pl%RqMKyZe z^Lg>S^L5bqebjU9^Sbk{ qoZ1=Pyk zrY@*LD{kKm9v&w7jV4u3`fGGOXwLt5YvW>jck-ULi@tezXX(NLszD2Cp;odFeP7E( zeE!Bnz$Ghl9lJ$tXSVGXO??%_`Km?4;zB8u)Bmh;!1L@**E2f*-+eJyQK)z~k&CkM znU> Dc^%g~6l!}o`@f%YeQQ}{5>jC1fWxUa zn&W-#lfW`tPStBuoK)3(F+wUSL=_kd(*mG&(m6>3D)Q^^l$t1**(=Ifbsi*em3#AG z^eKv-)vM5jdO9VO*^H@TvGah?xKpBn^7v7z1(-jgMY2)qa?m>k!^sds`a1bTGP?NG zYp?@>AQ_Ap*)kI0&F|yC8fbXIG?t~{sGu>PQua}Q88olOim+AwCKYaG5^p7P`a`dc zPnrg?-_edVgKY+ct+zGlYHuYXf6l&0ucrr09O28}^!m=|tWeLADj2pma7{10nMrNi zU1-LAUXX!t0Xq~8$3@F$Hfs@xRI-jwX@5NayE`vIc|ArJ!oK9H^|z-oRDLl=FgyhV zRNHrGJ?5B0`nA8XI};ppMYP!rc=#k~EITpo3{pr0>1q&bE<9WjPHVpHZ-rj|GRFO! zaB74T7uqEhC}%i{MGs=iUiD0IV$Bd=qO>WJ4ZC|1S&JU=#CKmk)=p%D^7zI`b$J%6 zDI+iTAO!eoeUNbL_d|)bX1n$9e7F4=m>t&KO%)9Ab?w66hq-*XvF*;jk!2U>U^aQX zBYV3en9x`7aLFdyudjvB43H@W;wqzt7LYLR`e+Zircqb*Qb0xgQZx&C0@Hg)xMZ+V zlJ8Y{k=!}UU~C;HOHYtO%WD)l7Lv72L>!30vvMv^A{8TnYDjsUQzbZEZ#;M&msu0K z?hKn&7mR^QT@5HY{EdwfuFfMBq4t-dh~)b9Sw*iPb(X8QmvDnA`80DnL?2zVIa h5O5 zP!{u~3GzM-E4&aoCZJdLo@zbQ>(_bKATiij|0(>g4RhW>4QU&`0_6(=hC+-ae~>=W zei{^9&2BURnXzX!zDGilr4Oo`zK@TgmSS&G)5J`mUTprC5H?5`H+IxDLNe@LcDhAv z+?5ezbiH5}&xsjEko;lF)$?G?PkwVp3)Jnu09LctHu-W}09V8nd&IZn&EpAspy2gF zFmzm}^iSM{X=l0qJ1Gl})WMu7WHr+n4BzjU$*}XFZ_sBZCq=HlG*11(>v(hs-e7Ce zI88&+PI2mXl<=+r@DfDSDj !^rPbv+(m-xu0sbKImV;?&B*!? zg2rs*4ZO*@bi=u^-f1D#s0+hwfoF;X92^&yOmBB{c|jI{O`cDIRV;rs453j(Kxrwz z {S~iR*Nyy9vnZK>|j~Av%a?7DB!8- znNLjynNMTRiO$vNB?Yef%5HTHDng@7vBz!iAk_ 3oEJ+<6y2G(UeRjxx6BM@4i&zo%m=9s@t;2E&jV7}kt^7IVayUXj;eNR zVe}+#jW^s$*5OEo@2ACKNqKe-@gU)bc@2|gLOpt4pX2-GKwt|k-(3aoh*UHIPjLri zIFbwcT>P&(P9x`Eechd;>mJ^{Fhy0TO zQul|23g>Ux5>@Ti`EF6AnC8`rEB7>GamflXHt7t0CmL-^v|m z#*@4cZGPx=;Y&*}oH)AlF$Pmsp+W%I=YR+@Du>U*>ftmTu3}efRz#usagk+h)&?2l zn9ST+j-zu!G^?A$OZ;t$Qhgx;)9T~M8BW5f?r|6I$WcyFbIImVNky~ayL0jD9?}}z zv1hyZ#lnoF3rk&%8ib%_m%5&;Tr-g#%;tEa_So38*gQLg k=q!=qb uCA^l!qkFiTGt9tCO_A99 z%*u9y(Gn=ygL;qP581c&=eiPOi3`IzBs}8dt#oo7_as|4^dVqLVcl0H+$Dq=riGL| z%PlODd>dspayg-8Hd_;y4{MKT gMf9iI7gJ_S~b-H6Ftm+EM^#s2Wo0T)dOR_ zsGJ}pD2sXO%CUx8SiLM(n2QfJ)! o z?NWwSs25Gtevp->7Z5Pf&iBwUGa?VV4e^3A3-^}}(L`Ml_NP@xR;JDfhMrF2r3Nz{ zpYso?eRd4AqUQu7Dq;Z;e@dIm=mM~MeA)U9aD)XX?D#=<9Jb P9fk>}-FJvt~pHbSJx2ykmub8pA3WH0+ZK~tEvCOHR>C`wtp ze4r>c0M`F<-K{TR)$>AwTUF!~l$!{~?}}5HPAr+U<}8U;T*bz{?1j`sBs~Ko!EaMi zJ;j+I$7)m1g+1Sjl42l9AG;Bvvoa-0vl z$*}v81IdYQ#{np@Z&LZqAAkbBM}XxD4&M5+^WVvV jrNJ zx`u8MNRW{eJjc3;Ybi_&V^(6?hk1jk#;h3eHjF$Mg%21u4XqPyDG#&o2Eb2QFmrxV zy&3)PiDPerw1&~ikwJMuFm=|AJlz=W06&R~v @+b@}H4i z<>uQ6-*y++D5$ACYNIemql{Ah(CWJq8LHkMSMyy|8~vpH@P?2Yf!W4e9Rn@U=A` zM8ii=)RvBMsyt;gK^;t;hoe3monQ62Qi1s?@`{W7LRuK_l-djmnTb0G6C;LY|N4Gk ziN&SJkeBDb9e~jE4AG=h&m(flam`VjszNk<6;z-edmW_g4COq)Sf^T?cGTyyj7wY{ zI@SMSDAfCNX#$USPJAngnp`LUSnx}`U{?4#cVv^)460waUr0Q?gksWSMg)t1CMT*< zzr}fK+cWV_e*l3;Ly?fT;TiHl2Rn$qd# @L~;7F-$zJR?Syt99AX)ePSfjrc8r^N!F%nm}$$D{tf6@^znlv5DgJ z47et)xHR3EE$&xh0R}8BlSV?%HC#VXf&m=HoT 9}3h7f>&?&5)f{?DC%)Su43l&~T{jkvT3ot2)o znX!?B r}dpz;yvw0aioZF*-+(oR_RWt8?cN#ic`tdInr!sFFb> zO7g>ylpy8gX|f ~t#CETtWA%==4tf`C{%QUcJ~QW35zNn z)ibaT{ptSzScf+KS 2!9L;a?eJ&n_Yzdm8c^MdS`i^({Sy0Zi8Vp-!NQBf4rZ+>-^{M zM9B~s8ekwGQn3G VXk`6AUIuh+L~p3p6TEqM`*Xr<)jk&{5;@J7cW`=@ zSwA;xZA+^xF}1T|p|lkmrV%ZXB$++x`u1nbr1ok0Zuj=NrG@~*PY 9tZM+d}G}>BkGLX4A6VpJ13ANOhiQ35`ny$ zaYu@vD;Lc5#P;Nrxn#0glbzkWxVSuaka557eS&+dNDh`93h;7=Yp&3_V~JR6|4?5! z>nvKbTi+#mZqLXt(Yy7Y-ald9lzBN|3vNruO%^CxGi%-%Ye$H>QF6$L?rdk8eK3P> z1ZW&Xm=T)sgAyiQfl|OYnO!ccR4d$WZFV}lovjB~gBkV*;g1o+$i}c BvC&^5y|)oqRT~A|j017r25u$L!vCpm5~WB|ZX$PU zL