From 45435cd6812c1118b7751163b46618c6329a1ac1 Mon Sep 17 00:00:00 2001 From: Toshimichi Fukuda Date: Fri, 19 Apr 2019 17:04:13 +0900 Subject: [PATCH] Add getDataTypes property for SDC list type input Change-Id: Iba3b2a9c74914a81b3c70ad1fdc1701f1da303e1 Issue-ID: SDC-2046 Signed-off-by: Toshimichi Fukuda --- pom.xml | 2 +- .../onap/sdc/tosca/parser/api/ISdcCsarHelper.java | 8 ++ .../sdc/tosca/parser/impl/SdcCsarHelperImpl.java | 8 +- .../org/onap/sdc/impl/ToscaParserDataTypeTest.java | 98 +++++++++++++++++++++ .../resources/csars/dataTypes-test-service.csar | Bin 0 -> 46307 bytes version.properties | 4 +- 6 files changed, 116 insertions(+), 4 deletions(-) create mode 100644 src/test/java/org/onap/sdc/impl/ToscaParserDataTypeTest.java create mode 100644 src/test/resources/csars/dataTypes-test-service.csar diff --git a/pom.xml b/pom.xml index 469548b..b4f39d7 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ org.onap.sdc.jtosca jtosca - 1.5.1 + 1.6.0-SNAPSHOT diff --git a/src/main/java/org/onap/sdc/tosca/parser/api/ISdcCsarHelper.java b/src/main/java/org/onap/sdc/tosca/parser/api/ISdcCsarHelper.java index 12edd55..459cb53 100644 --- a/src/main/java/org/onap/sdc/tosca/parser/api/ISdcCsarHelper.java +++ b/src/main/java/org/onap/sdc/tosca/parser/api/ISdcCsarHelper.java @@ -20,6 +20,7 @@ package org.onap.sdc.tosca.parser.api; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.Map; @@ -29,6 +30,7 @@ import org.onap.sdc.tosca.parser.elements.queries.EntityQuery; import org.onap.sdc.tosca.parser.enums.SdcTypes; import org.onap.sdc.tosca.parser.enums.FilterType; import org.onap.sdc.toscaparser.api.*; +import org.onap.sdc.toscaparser.api.elements.DataType; import org.onap.sdc.toscaparser.api.elements.InterfacesDef; import org.onap.sdc.toscaparser.api.elements.Metadata; import org.onap.sdc.toscaparser.api.parameters.Input; @@ -670,4 +672,10 @@ public interface ISdcCsarHelper { * If either no entities found or the provided query is incorrect, an empty list is returned */ List getEntity(EntityQuery entityQuery, TopologyTemplateQuery topologyTemplateQuery, boolean isRecursive); + + /** + * Get the data_types + * @return list of data_type value + */ + HashSet getDataTypes(); } \ No newline at end of file diff --git a/src/main/java/org/onap/sdc/tosca/parser/impl/SdcCsarHelperImpl.java b/src/main/java/org/onap/sdc/tosca/parser/impl/SdcCsarHelperImpl.java index 01c72d4..8385df7 100644 --- a/src/main/java/org/onap/sdc/tosca/parser/impl/SdcCsarHelperImpl.java +++ b/src/main/java/org/onap/sdc/tosca/parser/impl/SdcCsarHelperImpl.java @@ -26,6 +26,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -58,6 +59,7 @@ import org.onap.sdc.toscaparser.api.RequirementAssignments; import org.onap.sdc.toscaparser.api.SubstitutionMappings; import org.onap.sdc.toscaparser.api.TopologyTemplate; import org.onap.sdc.toscaparser.api.ToscaTemplate; +import org.onap.sdc.toscaparser.api.elements.DataType; import org.onap.sdc.toscaparser.api.elements.InterfacesDef; import org.onap.sdc.toscaparser.api.elements.Metadata; import org.onap.sdc.toscaparser.api.elements.NodeType; @@ -1220,5 +1222,9 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper { return new QueryProcessor(toscaTemplate, entityQuery, topologyTemplateQuery, isRecursive).doQuery(); } + @Override + public HashSet getDataTypes() { + return toscaTemplate.getDataTypes(); + } -} + } diff --git a/src/test/java/org/onap/sdc/impl/ToscaParserDataTypeTest.java b/src/test/java/org/onap/sdc/impl/ToscaParserDataTypeTest.java new file mode 100644 index 0000000..aed9445 --- /dev/null +++ b/src/test/java/org/onap/sdc/impl/ToscaParserDataTypeTest.java @@ -0,0 +1,98 @@ +/*- + * ============LICENSE_START======================================================= + * ================================================================================ + * Copyright (C) 2019 Fujitsu Limited. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.sdc.impl; + +import org.junit.BeforeClass; +import org.junit.Test; +import org.onap.sdc.tosca.parser.api.ISdcCsarHelper; +import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException; +import org.onap.sdc.tosca.parser.impl.SdcToscaParserFactory; +import org.onap.sdc.toscaparser.api.elements.DataType; +import org.onap.sdc.toscaparser.api.elements.PropertyDef; +import org.onap.sdc.toscaparser.api.elements.constraints.Schema; + +import java.net.URL; +import java.util.HashSet; +import java.util.LinkedHashMap; + +import static org.junit.Assert.assertThat; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.core.IsNull.notNullValue; + +public class ToscaParserDataTypeTest { + + private static ISdcCsarHelper helper = null; + private static final String TEST_DATATYPE_FILENAME = "csars/dataTypes-test-service.csar"; + private static final String TEST_DATATYPE_TEST1 = "TestType1"; + private static final String TEST_DATATYPE_TEST2 = "TestType2"; + private static final String TEST_DATATYPE_PROPERTY_STR = "strdata"; + private static final String TEST_DATATYPE_PROPERTY_INT = "intdata"; + private static final String TEST_DATATYPE_PROPERTY_LIST = "listdata"; + private static final String TEST_DATATYPE_PROPERTY_TYPE = "type"; + private static final String TEST_DATATYPE_PROPERTY_ENTRY_SCHEMA = "entry_schema"; + + @BeforeClass + public static void setUpClass() { + try { + URL resource = GetEntityPortMirroringTest.class.getClassLoader() + .getResource(TEST_DATATYPE_FILENAME); + if (resource != null) { + helper = SdcToscaParserFactory.getInstance().getSdcCsarHelper(resource.getFile()); + } + + } catch (SdcToscaParserException e) { + e.printStackTrace(); + } + } + + @Test + public void getDataTypes() { + HashSet dataTypes = helper.getDataTypes(); + assertThat(dataTypes, notNullValue()); + assertThat(dataTypes.size(), is(2)); + + for(DataType dataType: dataTypes){ + LinkedHashMap properties; + PropertyDef property; + if(dataType.getType().equals(TEST_DATATYPE_TEST1)){ + properties = dataType.getAllProperties(); + property = properties.get(TEST_DATATYPE_PROPERTY_STR); + assertThat(property,notNullValue()); + assertThat(property.getName(),is(TEST_DATATYPE_PROPERTY_STR)); + assertThat( property.getSchema().get(TEST_DATATYPE_PROPERTY_TYPE),is(Schema.STRING)); + } + if(dataType.getType().equals(TEST_DATATYPE_TEST2)) { + properties = dataType.getAllProperties(); + property = properties.get(TEST_DATATYPE_PROPERTY_INT); + assertThat(property, notNullValue()); + assertThat(property.getName(), is(TEST_DATATYPE_PROPERTY_INT)); + assertThat(property.getSchema().get(TEST_DATATYPE_PROPERTY_TYPE), is(Schema.INTEGER)); + + property = properties.get(TEST_DATATYPE_PROPERTY_LIST); + assertThat(property, notNullValue()); + assertThat(property.getName(), is(TEST_DATATYPE_PROPERTY_LIST)); + assertThat(property.getSchema().get(TEST_DATATYPE_PROPERTY_TYPE), is(Schema.LIST)); + assertThat(property.getSchema().get(TEST_DATATYPE_PROPERTY_ENTRY_SCHEMA), is(TEST_DATATYPE_TEST1)); + } + } + } + + +} diff --git a/src/test/resources/csars/dataTypes-test-service.csar b/src/test/resources/csars/dataTypes-test-service.csar new file mode 100644 index 0000000000000000000000000000000000000000..b4de1770f999ebee1c6bd98928935630731cb0e5 GIT binary patch literal 46307 zcmbSzV~}Ob+Gg2Smu=g&ZQEv-ZQHhO+qP}Hs;jGN`rMfL=A4|eP%;33yc9UZ-=8Y~kNMQEUYLaad2GXK5K(+kTyMXdH)=ChW+Rcod+nh2o zO*`iO02EUl&?5z!) zO=#V1tpD*FJ(R)}-Yfz7i4#8jbp`mJ_t$DtiG{2PJs)cJnTgtd!GOE0or%hDjma6_ z+7twux+M6B1l*UO&lXdg{k7HDOr`lBm!X<^Zj-8NStJ+`>s3&7)J7@Ssxd^%{utv)pAW~c@LZuCHK$N;#Hdq5C;@)-k~#yd`B-iF z5aiQy6`&uu9pO5;@~L)^s0i`qSiwVbz)Haz! z$}7+Ema!xUys+dm)K|?MH(6%i?u56$y?Fa`b4150XFS7|lZS;QR));uZ^dUI%tmCr zxSe#8@H7aPagiBZ3Ijx6u*m7r`M8uS7EkdwQ-7}o1G&VBRstn?*Cq$wx}G+jxIaLF z%d^Dk0Yp~4P<27rST}1Sidj?%IswNJ87IC<)bXNmP-bpgOfUd556I4Hj4P%ey37(N zxr4LB0k*fuVX1C3)_&T<8=yobBe*{*!|LyeTJK5bL36BaGgM& zdyXpY<3iGX@Jz8A>@(gwHnZL;Y3^Dv0~5u?mkOE}VRK)>!<^``w2=#2I76Bm)36q@ z`X#XR)yxDiEYliA@H-dYpG+NU9@`qeB=Mv{Q<&vJAPCkrMq;>Epx^cITus#o{_K{5C|8~XF4gv_?nG{-OxFSrvNE?Oc0+7S(ETLkSRFwg0rAdQM4pS}hndWRv?FF$ z#|DxZ$hi9sVONhru|*1!;bA~0OxB<$Iwo{KXoIQ4!Y)fG8df*s$X_yk$cFIjhw{b_ z0eQ0hSnIUEAo)c*@O66YJE})5V^Un5X_!|-%^;bo#Z~r$e5;#ng)T9)vhnUg^9hIbbIKaLl1@b#>3Eg-4m=7neWKUmg$)XW5VX(eR#-B$|1$AC+l^J z&8Nz#{HtTq0>0Pl9k}+c&F~2GeOCIW{Fjl4 zduM96+oNYt?HAx*8uxc4``;S(m(9qYkfhcF0ssWU0RS-ne`_3#g{`xRqp5+>|E+fa z#*wyF1Z@8(e%B+EF97tCRt#!)Grr1!vPyjY56k_v^9{&}+e>2EFbfKmO3ApatL=La zQ!-61BMvE0>*5qyOq)fdxnClJ+KCN}lc+_glggZOx1>H+bL+;8BpVQS&wyU`(WykGM>R;Zc9gb{+ZOJXmv^0XG*B5HUxm=QV8d0GAUWu0(B+)z9BYM zLL)dfofuHer+lwb2vl&=TIYFG^o7qcw*Kuv`GJUvO0XphW#dx5a{yZNsfwVksf~WsNr>?b^u}O)uz~_U$(VgWO!oLKVwxC z?R@){fVt7PmB!-EuwD=zzw;^f^qdfO{XilBz81VbU#B4GgU8>uP#)hcdzP%6+_>yt z$=@J&wT`-694z1IKal7(SKmzTDZ63!^!@bI&TOC$5WUo{wF}yDsogf8=7Pcw_SEAo zC1Sjd>bZAU>s>N>u3mQS%<=wL8u&Xn{t26lQNX1EAOL_W2mk#h&A^uC-#X*J!Ah~Jl+q?WLeHt%nJQ->kLy_A8yE=Z6u&-xez&`^70%K|0@ZlP z?~j_?`pLq>rv&lN-J8Lc>Z*Irem{ohSx!YCqcG z%KfXAxni}&5$|nE%mKxsX98lAp_-{DWl+k5g60x$o=ehY|l!>%%+U$~A69l>@ z5&-4~Q|XALbCg9ri6SAC&k3!9gt<0na2 zvQacWk~gsoMr^p4L>{T=Vvy$mKN683-x7IZnirazUr{zMyS&}aAS6&a7rb!LkZ_3A zTs}oHJZ(~DP=$bKTWcB2KL5hd1V8$fGdBSmkI102JZxfByXQ87N`J+gEZ_tY<)Kpt zyGIK-R};h<1>+cF;V|AhX~amX_U0+*gOUl^u5q}V)J2PD7c;Zcsuw#R)x}F|7jxtA z`2OA|&g3Ku>bXC~4L>b!Armmt#c}!CsDjbQwS*Y$GU;t^&;W32qmTl(|M?M=tv>nA z6jxD)fv&nb%HI;Bk5BOuF$Zc3dLmMxR|#xrxaqs!w3{DI5LsUz+=Oiu{v2 z+Vghp@_)!P00sa+{_n^mZ1S&s`JZwpSw+Ta6Ca`bPpX`hs3_)aDKt9tAPwcrmd>s; z^&c(?C(plRLZKd|d-w*~Zi&Ql52^2h* z$f<&Q>gyM3Ar!vAtOB{7Jxvu7MKAWO-?c3qO|mP11;)H)J6CE#zD&AS0#q&{s3fv; zb&kBOl}O^{c`zqB;{^H=FLZ9*Bn(E$Ng$46K}kc5X*NdZ<=`|mIp2hhDeF!4fAaBy zvjW4V8`)ueux^S=oe&&^LsXmp5Qv;nPTA+Ow6zu$e%A6(^N#4s7qsuM)+Ngg;DZr! zsepsq7rmzBP9V%J#s+wDqvX)#LlU5iJ zfui@C)|nycAQ<138>3f3 ziTAam8ra>*5j!l^-n2v;JLV`*&!d|6;ysL*&f9ikhF)1EGHt(*6h@r*{Qh+P?8WKD z7q!M7ZTsmf#+@lwddDng`zQ;p`f9oxb)V?%3sdROil+|_qvY4A*8S^W71H1F`cEVW zw9CIm{6TWpA0+=jZNU1!VFTGJGIEFX2;Hx0Z(vmMWfmL7*U`mwf|Q^FkuPW*FGW9- z*EBXEpLUsM#4@QVA!wsdr?GnPqj;Jp=rJ9{gHTk-EeepD`iHaDCQO7=N)fKjQ$z(& zU>NI?l%!691%s%|(Udo)PfQue8YSp4V#JhU1+hI3=>hCgvO;&F;7hRwoYL+nM3;|< zabbl(c*4$yux8Pp&z!j*Ll}G#*o#j2s# z3ej35Z%>XC$Azt-WpHqKO2T5fSkP6>!Q}AU7t-|a)zp=`9=Z9UmhvB4pJR+(K~s{iAc|vqlJq(Vi)Ey7Dcl zC6>p{;$Pc%#DsP%Rh~3h7TTPWp!fxv3zk(#~ypsb#N*cE8 zq|QcZ|-3bl2ggm7`l} z<(nCkd-&C+p0iU}zdCnUi-5@vbq2)w&eH=inbVt`UoNrvEUMaAaSQ>H4W zdI&XYNOEqwak_0CGVIntQ91V&{UKiG&luNIUa~5TbA)OXyn>J640RKq*SJ&Vvu&dq zSvicmDVMMFSiApvvH+!bm~)w9I$4o>9;mq8f*qnPbqQYsx;J=wA`7?kuPpR;sQ;4$ zEKD_@?0-lg4hjH3^6%ta)&4)vLD@=^wtsR^*9XZCW&Jxn@Jx z#vHvylE@phIAN*wym=2AjiBBJ&2iza01y~GlE&`^0d#a}WOMx9pG>Rcpzr#iXEy0f zeQ;`OOxhVP{iTgz=tW-LG=fD7KYIWVlxpIu*fc!TAS~++IcUh0Fl$XIF%Gkr{B5b< z3n@uAAm_v3XHt|@BAuNLnh$P8U)0I+N7m+Ea4JRZiK?be1BEW(>S_7_THO&}siLUH zjp%mD!tYf#ZGo~X_>C9Vxj(P4O?cTSgtls$qWeQR2#W02`m$fc*6Yp3ab-WXEFD$G=vA>#sn6 zzUeF4n{b^mQUsZs=bh``$NJxyZd?6EK2ADsB$#wR$42+Dl@J$BQ0U(D@!qmw z+hqk-Rj3wT*^zg9JaX5EeCNU980!zJVdDiWL&3Yg=pBKdk;U`aHdF+&!O7HJ7Cjr^ zxKEjdFHM!fTLhy|8sN)V*ZZsD`#UKA3DSoBWE*qSc9ZpqN3Xxtn*aRVQp@Ku!xUl;v_HYc6Indov1vSkOu@Fhb~oR)#J0t_ zn4f`2oG{_k=Qv&@%VWr73%-CK#388zJg4Yx7A)M03fA=_u2ZZ5T4$TZ&Q%*h6l8r1 zA4M2E0fZQ-_xsDfRlsVt=?Qg}epwZ>#W`2M!`a$;j^$ChgB5!ku3VSMY6q77^!3FlC zUhH9e{baay4O%z6ZZptuwooD5fUf3!_ddpT3WKfr=zJi+(p$$`fpH1A_8j6!FBx?U zEw(oI+`rJ8k*Sp}evoOP%LM?N)#MI!%7CA>vZKA%dn4VtJ368Uy~ThSd@74bQ6}JT ztVBkmBiD8X3D(2Q2}BU%J?{s7CxSwn*)xt;923L6i}s%;QlspRo*UrpuSUt{eG^g) z$fY=j{AL%Jb@T1=6?QVH_ow{{)mo*%p9;S5P#O zL^cu*B#{QWaCNBs^WNElvJG;fjGa_b35^tC%E9gP0Yf|(`%}=^3zy8XfhJF0n|{$n zg)WBhCVUSeOo|p-40LEl3Fh6pLR3<{4j7=4)1AzS?YFr|J-G}t z&ga8D4&xlpZ`S$Thkn6a-M!f8o*f?FU;CevwR}B7QcutCH;eFcclJ5G_#0*iW=QpP zfXKB*xHENg=!qQXc?V)Z9@5L?n z#Fi@+A1S4yALTLuLqQ9x?9dnm*xo)}-x9+Mmj}z%`VHfbbrK0BqbRmw@E_$(Q0(IO zMCIY=wzc;!XR2=XhIN4LwM$M%oqN#yjR!@F9?=P&_qMmT?nB6aX3GvL4xqOV4Lba3 zA{>55!Lb~DGJJuKHsDV{Y^cVQI&ti4qBf=-HDTs3Zgfc50?-BT8b{?W)4#I>r%q2U)Vigrvo?;V9IbR__$tX~zAcdfa>?TVJZzf#+ zx7zU3?P+-lc2%(xU6z38Cb}Hgm5Z_zvlb1Dxy+Um;JaE!MvcJ>>1BiK2aA~Vv^a+6 zJ&hx{TI*|!)BzMsF4kvD+K!{9CEZm9&8x7LE zVD}BmL!EoOUQ=rE#yu96q^4jj_05Ewu4$$QQhJtXOyNc!RUx&Zv#q}bJF8PCDe5)? zT&lJhH%~v{$!fsJx`t1$5ZW4c=E&RZdT}8FOQV_u6oqnRNsmrq;BM41`T#$^-6ku@l;tj|3M%9s71NFPW4zQ7ev6VSGp z5S?e|A8AuTBQOhX;MqsaH>iwE&c)fX3LgXRsbB1(oI+A4;A~ea+@ZKx;ycR}Q5SKK z7`?%^)8$uv%Q&_HFK&84j9SVxr?7kWfMULNB5V+5iKGt4YBsTh`65jgeyf~fCB!vOrACRHDjg_y2HsxZ)Mg~hB4Zq+ zLoijcD*XDgGB_<(+~%1KY8x_=F%lg!Luu1s1jR^s^ciLW4ccmNt0`tMxSYD z)U4?!33G5Jxx1_sOQUBrMEujj62!KnBzhHYxgOs9JYrM+SZqgGi)l0`fAPBolT8;3 zro)+|q|;eK9JRbRm3qy`ia}`vXnQG&8Sb?$=;^vPcmV=JC1K;CamA@HJjvP^z&mTJRRjf{>h*140Z7XcVNI&(i;jM%P24$kFt(rTYE zgE~bXZ$BDX*g)3fOTXjT?|*em{+>$ynOCNF2KjLQ?83?Z007|m&-2QEqgAc0XSd0U z;CoxTX9Pa9v0&?Yr^QJo;y1-&%7#S`14NT!V~A27pQPmdfh!?VazMsfR=VS|}-&rx?Mue!#qvuPVBtmtwFKrciEx_J+1N^KM6sHdPWxe1R} zu?nci4@|+lBJC%tAt8ST234o_n{f0`!N-Y^C!4%vLd#$(+pxw$vz0r&X%_mUB^R+3 z$v*al)`I4`G`7a-BXcD>aqA33g3qJ!q72RwvTcTu zx?GlxtiUM5p@lDwfKa$YP(Fw)(m@WFIMYGwC{3*M7rM`nkh;QMhzmr5K=^AtdudN0 zNc_A?&~D5V&Br;#5mBSo>6Qg0AcK#!Y~hos8#J%7(+?I(M2nJ#x%2F?6PZ@2c5nwp z-IQbes^LK;$=i9WOSt-p8XfKT^807A+{M=&lX_}s7svu?uT%lsb6`t_nw~e0^J^Ad z8OnMNGgimlSK#9NQ;f`K#!n}i9{jcUcVmy}THn&QsPA^^jy8>b9={ClKj6)d)E;bj z+uivFhZkQQG?rhGldoc!IwhjxQb{LeyBe2OdY$%yLpKcRmtsQp$xeH94>Gq+_<*u_ zV9IfmA4zM<6gzk+)wxN2bMX)~cEb?{CJ18*24)3d6AM{5ye~a< ztgbC~Xb13?Hy8iFVSPRHlarmq|GfoVAVIkz0g*1iPN``IcVq^gP+p|pz6DYq=-|=b zxDb!e>QM3lwTpEc8Uq?IqEyM(I#r@p9tu(#o)%pJN+gBfx>$*4L<67l(=Ay_HvNax z!xHm|pu0}7At(p-y;wmz)yd6D@e}8uXrEFBWo4CJ*)?S*6Swb>&WpS!520+TISY+7 z+D&7tT5OZ{y0Y@3BVR9%!BX_V)-FRP_FY*hW=C<&y`_zF{0EndE%ovW-=RyRn&3i` zes447&F%^a+eP%3 z?V_Ask1SbgVopnOKqGgOn3ng^?bxX=;ihh}!S(**bNY&^TKMwP1+L2oW8W`>u#Ko( zGl^Sur!|$;2OKr?@2_mEscmnEi?tBFe9|4uN0A*j)7Kc^f%wPOOYv1VJ0cn`yB$H@ z9eKsCRg8DIziO+$E7Cu;3Od!WvGh+X!0=CfMfz{G>Q7nqAMc4|t4KLz{@D}xP&-SJ zG6;Z`n5vH6l!bTUl*q!xAfOS(AyANr+uwC_UzaCKRE&i;fBkqVUanb8nGX^oO|loH z%3RW?_8A&-p`?mX6kM1SBo#oag0fFi5<5gC5L{k@sMy-Sv-y!&Ndp^b?Rm)HgX6x> zS)@C`=HCjpFpX+W)DvD4w;X5zwa?iG$&IUH*L{~DiW|LB4sL)@MBM>7C=;SD0v#5P z3U}An&qyS>8q7APtwgwYK1t)lbb-HG5Lqnjft9~ZapT#w zv@E<0xMiGl6sCFHTPFahBys^y>TDI`k;XTF!mhTNZL~iO^JfBv&X66Vg=KdB)VsIL z2k*~rB?t;wP5M$vBp^`Kho6|8kTOuoc)?6YHyB`O^B6fnJnMG8U_NRC0AfYuqV@Ag z2jSgOstfxpn;ptKPRX=)-)kO2z9#;O(pV35AMXxwO$pOf493bE3=k6>DK-ubz%~Lc zHjV8OgGh3*XBJ1#HG4F2i&>I3IE#}y(OsZ59TH7-t~6!>`z61FA!R_I9WShNUyp%1 z68L)#hP?8p2gDz8M4a)a+$$NY?@+lEpkH+-377Ua-}8eVrKlL~?p1cY0HM;Ekf48ojvSFwY9UO&-$pSwuvQ)5KzF%WSbm@VU z&MmTwp9feS##m#E%}=&Dh|fwxFks2VVwpBBp9e!F;~Jo{CxMH_&9q=kEAkPWqK1~5 zD+tYj_C2Ep}0O>{BOAT>($mF z61@9GBHuKBxf|SjD-j=`pKYFxH}{WpcHOHH0uvIRR zbD>ljr<>6wO-SZOFmO3Trdeh+1O^v6yN6MJ!C+ubo|A{4Vms1_n7%JzGmsO(-Y}Lw zAAfpL}^`Y^0p) z{^53eGoBhbVy{$iQqxPQUAU_mhwA?8A^qr{ZSP0aUQW`_1f6!Wk>)RJ-)heSS)~Ml z=ie#Zs|?iu1!tmI^^!XFT3esBB{!|Ntu|*cvRYheM`i~_} zvpHsw!RU=+)3yXTy-;r#x|aaDj08RW0$}Nn)t7XadR}<%{%lkorW?gw#Hqpb0QL7l=yyWCK9|%ft%J^+qO_uXVH-7w^6rD*S5a16mHmI($DC#6B|u6czekXxGI;oWwp&(S~QHby}(n9Oz; zko}RoR-7_UhgladQuTCgTH@llfTJD+U{^X(Bf)YZT-gj%M<>t z{QvZXL1eI?i9ZLBX21aexc_5M_-|Bq%Hw}+s&t=Hoq$s_Ps@xBT$kJXft(kULu6oc z2)DV2Q_StA7N~Yu=-`8PoC$ZkXSp{rbl|fmu8~(3II`BkQ4|TmGGqoY>JnYH&tGM1 zYZvQ@F)XQZ)yW!i^8dmtuE+JSVB^FfiRFIjA%@vA{;~B~xIkepv3`J@EdN+_t?(Y8 zg--equC3J|YRu?an#>N(VT2s4b$M{+Ho4K4&Q3g;0)vxHc{*QUKcW`Y-%MP0k#V8R z>$K_4WmG5^Uc{MHMPPP;w|z2-5FV)>9sK!3p!b|q*0ciK_mqRoW_RlAC!hv9A<9ia zW9~>O{+_nUg-)SCu&cu!q^Bi9Ze`vEr!LyY5u2wHM%T&4LwrAxBRMm912`vop@9%< z{)TA`$K)|__v!>3SE0o+W+e5KmLA?g1!kE5)yaT^K$Eb^@ENQwkS+6ZaDV%H(BRvr zS086pvY}pL5u)!j`iu@sM{~VY55a_im&>Dqmz0z5A`+<9H?l9!P&2=`{^w#=8uO3D zTOHccp(aws;H%5karK4^x>Js--6>49`Dt*jX{y{3Z&e&yn|O&*5Z$SR)99~4 zjj6>)-zVeglilk{w!d)ocl7)dSF`1rV>?&?0Q>U*04VB|M{gTCfXLe|yaYxMx&5k&m#a#>#P%PUgcroW0JCZ&~IC|L0ZcO}8<}}(+ zeI^R10TAX(j_{k6=#Itz*60m2ZI^@i<3{eT`mJ%g;qCKs)y>Tfny^mi&iIitNw1`K zR;?6|wwA98C`u$#uOP0ZJaKN_%J=Fk*Ir+Mv~4H9tiZ9?ZrE;E6E)(c1mGswS6%kET{_l@4&EwlXu9@6++{ zcSl!;rtVG^uQpe1P1d4Zs##^`a;enY^Sp-c*Wml+#luyxkiY62Y1C=v1JCNM@FGS>wKEhA=%gS;=@zF?%LO-YIZW+_kzW<9!h;`PoTl zR4J~5H)dT}`0Q5qQRr)oS2CgOk~eAV39=v%H1CnOctiwT2Ahn4!W4lL! zLu}|THfK4eyb5)v zxO*lc7wODqa(kkNKwRzEkL{sYAiK9#=D_jy1JXPyPQIwarDuCcqje#<+rhQLxpLlM zlR=_7ObntlkfXRdHvDob`Sx+2hPNUN3C32GPb4lcFgrJystl6$6J^YIqfESla#K48 zifVIh;MFg9FtRSlpKyOKJ0(AsSf>b3yu+N{I_-`lU>r+8mmiJuZI(M$Z7bCB?vb11Xvl%DEzNe${VT_H3VUy z-bCzKH5W-LrLf;c+;UwVEto-7)*s?yEi`jlk_|w;#Yx312CO5m{hCho+}_=qR_!3j zp(Ga2W^l>(9`Kl6wfn%4qA8`f*_V1NmvU-scr!~_XtC$**sEnR;4*?4y92&I_#T-% z5B7p%av?zgbI|($R3U$!YenE{o`B%{%}PsFTBDoHJu_uQ^u&Se^+Umk$|(!qHqyk} zIP{ysHBo`t;JbCTYlRTJhBeu@XEUf^`PUWC^@ty95cZ+&S;xG_`Hc}4 z@_uTc%y?_8Hf843&|NC4xK}Jj<{VD=aJW?h8gOkm&&KR$NyXL;pj=%n(p`lgTse%U zr@_sk2ThQ)@DL1JNvhrVr7u|A7$LecrPhyRo7O}Y7f39->E~#Rp@ZsGx%>{JolD+j z8iX`en3q&bWg6f_GkKhQmAS9h9v<-Rz;>cW z)8jT8^y(UV44QNsU`7uy+>(v6#`?v496e54kIQ5IpQgkHHHc`7PlpW3r;m8KYQDXT zy`DrO)j-JD9ppx&2v=2p+o8|;9%Rw01C^ooYCJi#Hm)B#(PH!?ul!pNy) zw0^|D=NDI&%rO!B+NRe&)5KBR0VA(Rn&vf&H-AQZqL>AjbjcNGTR2SW~&OxU*{xF4FyE6)0t;ooNC0FQvbc}mR`NxaQ`aj-eeQ@FYK_BZIj|cf$0u?n1h$?m zdQm3Ll5SyCPIVS3wOlFhgnZLJYN8ld06XCxlh99*ekvorI_ij}E?U7_TlPi(IK)RU zMOfraHK-}P29hr#{Bmqo#N*l}V@^T?7qzof!VS266;zmyx&ab_^)P&eZNf5k*WXlt zPE+qp8f5|XN1Q}41yIGEGuM0X1|PVt$W0$ru6d``_Q0I-+yP#XFdHYd6=A9XkfVy@oPloP1KpySa@fak-1v4M zAB@q=t*Z%Ng0_bZSv$N$UYECV>CDs-DU`6@o(q~bfZVO1k6EIx-e7dJ=sE7EO5HTz z>KHmMenUPUZz-p-4<3cIZ&6EF>(Un2jWH{VBk=?Ku0H>hf)zdHNrG>EZ^FFf%fg*NIe2d)0&W4G9 zk59@FJw}_g?Z_p z-Mo1M+c@(|HMXBwH%2r1ttHbuQ4HB`Df=o$%*L4*C2KOpZ5U#0c{gxlQ&IQM6lH_a zu131ig%{4=XyX1XqGAl#iIAzFK zb2)`^%4+E|;dJw47%)@o^h9&TWOtf%ruZzLn|HrVh7BKO%3xkH(u6GTOCS;3RA1Y% zoL8^b*6*#3%EdIMmD{m;woRI1HK#kC*$&M~G7vAhC$$zi>Th zzQQ)^EqC}`4+FygldOYCE4XU(*(o_sHjY@O0Z;M(Z$=( z^kFSuT+tXazf^oOFp$)=u;&I)F?q`LVsv?X-8sGS{4?&y(DFbm3 zI4aoGI$;I^gS}q)@V?&PKk8S$n@I<|0lSLH@gq>$5*nkvZH!-Q(rpOnq_zXxGBjq1 zSDBP+X6X}^kBOlM;(!FEM3(m8O3HJX$`ZaSU^dG};ThR0$JH2fF_InpMX8WN-z^4f z`{yQ2gX-o1Ldgo)IkjO)FE z)t6tY%53o|G>hcS2MarB!ckd6OB8pgm%d^coKa_wE#go)l{aOM zz?^%~n$hgKLs0t8N+g8?nF)-Gm$A5VtjP;zGIqU?dC6aq2DQk++!HSoD_AF=qP>H} z+iP@vJFthgCKgGbj~JkkKvA*7;P-Ww{u%3#cedDoNpkePq-ePvSmud)<#mcQKX{@^ z1r8%tJJwh)1Q4*5Ffy!maDbtqyN9?BYoUJM)5kWA`goFZ)&LCk8#R1U8JHTFtWScC z9ia7d!*SeCqwc)t(6U0GGF71$*r{OQSad{+MBBmQe%Efm-`)qa+VzV{v=URC8p7dH zmvsiFSeO_LGEBh5|Kv(z3dx+w^^5Jx8R5Jw$nelC5WDTCj@`)KGI9!I2qDa>a^O_2 zQ3yZR)?3yCw~AdDbnO68!N&)ZRbHurL|M5t9qy>%wyF17jcq0;R%x(t^E1e!A;Y&! zmk=Q?a0VU~fo9e~v4`!H#oBYmmv|Z;nZv^O2mdu4C%CND>GuQ+iT%bCNRm(FZ=bb@ zLe(dxAi)wG3$AJ~qrxM(?4t0yl5+3I$D*A}U8SeAz=fc~Q&EX;* zX71P8(~}L+R;x;z#lRabZZ0!#wa?^ujox(4&~y@@Qq0&f-4CfO5O{4;^^GnB7!7xM ztz6C#Ne@djNn2V%wpQk&c~Tv5{$FuLRTLOVsMpD$+eq~B-Yo{{t{5wrRl3Y{BG0ef z2&Wsvj=wh>*~t2YzDfIg-67#+qrl1Nmd5%VYK9eKhS89ce-$SB9MsaOm6F8Yh4pZD zY%#(fe5i0KD8)HdRT@gD;8P~Z^Yghw^6ehXnjO4q$t<8>&RJ@QemLO#+HrguygrE~ z=*?sZQQk(t!vi~O^(_$w@2JN{)^hjB!-|l~l@rSO2qgoi^0_qt1v;hgIq<5zDM=Jl zU0UygMncpt{1JId@+`7$$aZ+cTQkg)6ZPU3Njq0{4j-$n)A*h?^xf6t?33^*o(MtI zJn5@ZGl4-rraJ?QTOWfBFPC7ncrwnK7LV zr)&Um)pzCE*CHYnx*`?wN=cMCk=XQ5#0aEn0>S`ffCG8_sR-n05MwMqW(9E%*Fift zj|ABu5iMS!87RA|SR|t3B5|ObO2R98=WE~OT%%zFR{(^oL-3`F)VS8wnwL5<2xd-+ z?O?*KYFlPx4lK%1)7>iH+Dv9B1ZB3fJ#Rhv0hKn*q6Mf5QOn)0-|Ioob5k3>(F*Jm z_1?N^-Dr{+f{2s9>G-N!1#*bf?Tr*=wN=_o8^-4Ahn5%<)Bcsdn!l7HaP|AmD%2k+ zyT!+=Z|@EM=hr(V&=C@%IacUz0c#l|AJZMleI*P9 zCmzbpJa@qA;?15g4vUC%qj$O3(6D%P#r5hD#b?u~s0^LUO2-JNO{hu2x*k+7hC;5Q z){J8Ob3qY;?L~PPRfk~Wa8Qy5Ww`vjA_h34G|fj?{SJn=+K$tDxf$B=D@W5SA&kD! zNYze8%&zC4dcaD&J2vP7!=zTh z9s{Z?MC`y864$2&3z3BomKXKOlJHG>tsZ{cre#i8DJy74>lhMt8j+U#bk2^5)5)f; z8N28tQKscxjp|KBS}_%J&FbajxI-#+*A@4Rn!GYDw;2m&yM>Zv>H-eil8+g_;I#GH z4)e^O7$)Fr$W<_HkGAvoBeDuE3!f;EW6Eg}T0P$qMtu`v{7HM<^TYC+rvNQ6rT^ zgMm;_m18PJPD#B+wRtNxP13RW`i&Cc7FUnyo=qRseou;;H4PvC$&k5&(HC<}H1*4b z1M=aKsx-fA?F~gktpnq(ILvdDerB0H6~0*%Utz|KpK`56K4xUAv7~sX_&6xNh ziT~+}xeqmf_N+>QZ^M3e+0~s+6)JGf>I2JLyBFLtjXlO#nf{vlB~6q|wxVXry1tmVD#RcmyhGF2Mygu7>*F*k%LHpK;rWdv7T`M-xF|ShAk4X+vsS3AQ%Y zLiGGybQV3H(SQg9fuVC(4``YXhOR!VuqdA#O-$=#;2gt3tjShlff15KbE>C(6m7q@ zrQ!i=V+1Cgm3W5W5|(e);9eqU751_p$n`V1`=<}$;T#G#i)|a-UgttDF|ym9XKiL8 z;f~@;_6?t+OZdl4{C6nA$7!H7Ug%X0`oQ`s^}+O}=FI)}$7_X+&M}prpt!-qoinF~ z4DEd4d+NR%x01?-{gy?T;f*5Ae5&_V;r0~{=IV51=#+|C{0J-<6&uy2th zi5{pZ9Q9K3!?9MEemHK4-@Je9vQo|%C|gSx@q`Gfk|Svir3PsRKfKAf$*HFw87OrR zULzH;!byuffBY#}j8GR`C8=3+X#1CIl8xY>|2kQaE_9LpaJMEgvK_Gi@%|R9zjr)Z zX9c$Ti5~3c%I>#F!x16!4FdWrULyt7_JNjR8~1-u_Dx-aby<*U+qP}nwr$(4v~Am2 zY1_7Ko0Y~?_pCMR>wfBaxxe6?h#e>Zmal^6Dc8`JXU(NPb!hu$eiOSdu(f;+aff`a`Hd+YmA z0Ns6>ri>$^spa5@zf-!>c&j3$wsZvBYaw0O$7A zUz9-3zgE*D&uTNDAgW-7{W!}rEwVmWBZ$oo9m6tu+xYD?J(!>eY29kQjoorP-&1F7 z`xROkR>b&CTok2$pLxsNV~Gll2<7Yx)$t3*9;Rb$SPpN%6v3dPE=+!$X(IhwRnK5y zPsqckxI`Sq1>HLB9KR9fv@x$18BgXVjv>-sBc6(~Z@{0$9c1jwrtT)b-G}efzZLUi z;|m1%o3zJ}`<)WsajjwA%xFF>Ps0tgW-!_@rkEntN)q2e73eZl_VArMj|*(;F6tto zS8y;q;ze}H2nZLDO>O`yr2)1)J}4lYAYGVZ0Q#!2C7laJzqx6Lrcza0E_xRjlr39Q zPjJLeGnDuW4oLIPAx@?7EW!IT2R;xsd(&JwA~SwW@zVIFTlJYSeK$vG0r{X4r*kA~ z@<#1&$`tF3SliCP=yq&yY=siFY`!FcYr$^`HIa^dZ71@%B+Gi;FZedp@^%^gM~| z5xy8}uw@5`ad6Obf|o2YL`3dDBJ6VqHQ04#7o79(loMPnB9$$wB>DWvgshy|L zE^~fO)!R*Xq7nKKo9@gDWk?dJR7J>tg-TF@X$mCySLqQ)xfjW8XRH}Xb!XMSZ^JIg(SE0w4fF&je&Yd6kLB1Ea;rPY& zWI@zYi-CjpE0%@VpT9RI&a%Xbl3eI5J+TNBvc=79=-S~C@NYK)&A~uZ8 zI?lZ3?N7|t)fHw}8m3hkrwW%iv|q#=wW!$7GWRKi=wZL0Y(8kc(a7kq1&BIq6KSm5VdN4=!TQMpZI9jjjLSk(rY$^KxtAO$Fy@bP^#QT%EhMU3B+ zfov7L8|`C-lHW1BZ!|VLKFA1MnjZ;QN65BLGRfJ-E#oL;)0|vlrm5*jtWKircr=Qy zN4Q_Yf$OUy=weA_FlF9XclEvfs8l#^38+fVT*{h(z?UUcsRE*7DVRz$P|-rMv|y$s zq&h2;Ih{1|PQ-Zcld6^Io5Q>qS7KK?8lc7Hyco`lO#vf zt0DJgarpLj>0MR>e;$!Jxw}cHzzz|X%bkm`a@n&wUa>a%# zkeF5AOL67s>BhhdH&543Q5Qx_iPM&D0f10r06# zISEoycPlv(FNS2qR~0YDVs7bIN4cDvH!aNY1Zx(BisC&aKl)Y`)LK}E{s7D}YLd*g zw>0@O&UuEF37lc?coue_cN2`O@- zxw@{9LZ+T@ECl{_Tey2D&U-hkOOzkMqD%Xdm}+%LI8t2X!i0v>tw^D5?fn=AVYWJ~%$PG4W#L4o#1Bm+JMJ4jvX6toxmly8-n>Wi}VHLED}el1`Qp=hN> zf$x;W<;8}YuW8~H*Q+PX=)LKI>i67E^v+-DW#$^pc9;{zHQwZeL1FwtSQ-s2b+yd8 zS<0y7(3>u{nqTi;%|Jv9t=In$bA+@VT`9U{bwpmWN9VF~fhqXT>SMi--!ii5cOg%o zq0Zr*$KeeHjCo#s&T~uN1ukg*C8rv-@2JMWKWBUV^oJRHMfb~1+=M@~=G=96xYe!A zI@RT^nCKu4Q^WaT0@JDo4DtMlGHJQoD(1*FCtxzXkb!DVfyB;El zBbdrX^|9lvSNiWyTTTUsw$Bi$Rc4#57xGYwn?n&8Ilwt&h?GFM!{(T_W~n=T>EO&6 z6vW4^(lU@aVm}@XxJJA7F)e{6?>+1nw(xedxa#*2QagOm8&2SiAL##Lk$-Z_BNKrmZtwRk1VV2I%9Fd_?_0y#iyBs+SI&^$>LiGou;?M zLl)=oF`B8{@Z4|IT!TLM@{dm&}zOvX{H_(tswfOQd-4fCUXgc?}HVX zi%R`kNrdweJuR8PbALd`X%zCNwaWVxMx#;|BBYul6F5(hk$`uuKyXMYge71tF0GS- z$|0gLZHus55kq3S_q83E3M8-dNnF-(FO*XT!W3W9at3 zS$Hs}!-xsLze9BIyT7tv=(zwyP&)-tUt;hFBu^2W$!uUag7e z3fZBZv4jAl=@Rnhm6Cg4YAQCw3kJ6}prf=~f*vX}PCL*wM_Vn5=D_Qgi{>)!Hz9>& z_GI-~&zCv&yK9%lM-U`dD$rVoUs+*MMUnV>nIox_z8_7b_e}y|zAs5)7k)t!W<-yi z^0q~P7z%v|Qh<^@G>{h&3y`A^g)k5IWJ!}M(J0va)Z4L{9^cFo@S@G*a*E_aWJ8tI zDp!=^*&Jphb+F~bYMu~J=TKIg3+hNcJH{y&oIUN}G}nIdK|eN^434sg>4>$?3i(9D z)+qFgUR)cPr&CqZ`7mOi%4Qt6+~2G5<3OqQ4rwfng*?L@kzFU|!YO4uIf^&5lYapE zRkS#@_bek8ic{;*5Hldx=V%O?>N^Xb77p;x1XD3?G{w$!5L{aI@zX-te210qfYy|9 z?b6&ZPJ3t4DH^Yzv6b{dI~VZSt?({)EVvu`_EpiMoN4)>&~RT>$8yF@_ zBz47=A~_^fsAcwXu^PdtvmCwlLY>Bn#kQ;KKed z&@!~Mvv)E4cMsE7F+?b;{4h&;>o?-73A>dF%nx zNB>l_2O;jm=EvB(GwkD!UF*(OV--#dciWmBU88Ty_SiYrN*4HQhAkbszyh_T@azhx zUw}$MoJvUPu?YF!Xq10fiPCaqa)-;JvG80vxs%oepmdEgpUfh(9w}Y*1q$(KR&Qh? z3naF_k)mRCQ)I(|c5IvEiC_cQP!;?Ymdzd(|xLraNZ9YAI(GRE9QtCDI)8l!t#tFM$v&yIOIcn$`tq>b|SDsr#r>HYx6H;&Rg2m_T< z0NN{raY9t0e>?%|^KVIJ{s5j`-*4IO;`NR0xt0O6Vg$b7L4lJ9eQrRA3iK_*`0|%d z&2p$IT_WpJ{7?sy<&d22yIl-V^x~TdKC<~}H{1w5$GIC|`KfOo1$%q9?T``Y$VTWs zsI)r1%jW-FdpLPZh7ab_YZW*f+~)~tO}O>|Cm`pmOhJ|+X)~Y=Ef7_E4*IvMc~zvL z?@bNZhloBTN}g6{qx;2GL*bEbv;B)t7xzKLl9WC8v!lt-j}A92-tTWFQF>r+Z^I7H z&)k6AUmSeddoX3i-HqR$07DON?_Ml?oB<{NDxc2`?Gbqb(#LSjBsRe<;5r7x_({eT z=nN%2FU@e$fd!j6D=BcNChPN87To^Hv8Y7r^APx59*M|-Y>z`F#z_alW*D54}p>P0$Ic)@Z6j^@(p& zw@xJJ2*xDWtZ7@=hn}zm!f9F=9{}bPA>uzAfCJP}$NN)>*PJr9WUIn$_MQQhqW)yG z8>BoCC4C?>+-`G(MJd=uo0+ai3=sNw9Z~60Q_LBvdB6HONeYkoK~rQxHx?BY+ZtAA zp-6v99uhX*9CR%NKY@TF?DrXoVjXn)gvC3k1FVf#n?n4Vk|be+`CHELFEM*eV}b#3FO zWdS0BZ^1^WQAy36wT^t}LqQn67Qb+0E^;jhCZMLEct)GpmM1r4pu0u%oU;O?krsB3 zxK=f8DSY<_&ZK2h{L;TqPAt6RMZ0i3X*&!-7HJL+;#04s+jffqP4+qSGPiw9=u^iTu0K6)e3O^)AuBk#xn(Rm@^bWrRkDx1SxiLygHVfKj&iq=x6(k9uTfv_vv-!1hs z(>E~sCDF;7o2di5;dF6srMt*-?^6mZT9<5z-2$NyKztTuI<|;BYW4h)@!?ZTk?%M9 zCllos0GU4Dub$4lot?kE)52l*%jHHfVR1*EVV<9J=p#*)E)}HqKrOMzQBm9QzI+Yy zvZMj?nQyu5Sig7%chFLXRJFLMBh8Ht#5sP(N0VI_1~iFW?8EQ&8TQr8HUXc&Bs)|* zZs-s2nO{-)%g`Zvmt+lHq0pbvcNx^j}FznnC} ze0rV)HP?HuotZvm17J14?#$l`nr@I9hRNQjs_BEdq$c%B={^ME&uxr7m$vS;Jmg~l zZ8A_*C#SycJ(6B8c;DdvB^CckWdBKVncnxExql}v8<_uFvi{G;aYH8;%fF4gF8{Mu z>{jcy!)8b5zN7}5C_po)&BEJGIv^>Z6QQFS7L)^O=3YQrCuJv5pLo9f2;FKf7O~7B z3ODRaH4F85Jeh{ci^-kG&S|{YQLu(`Ly;=AEOPohr%ik6o3XY&YrRtMKnQcR$CCFO zh0L+7P{YNov+*B4*lm6;FBTHaQ(dw#fY3fwk4QJX_%1<(gi2qJ}#YN#k{mTB@ z#Q98&DmJ@^{c8dtGwbs5%P+4YoUPH$TbES+*O!^whgFYL!|4%~(f{rINr8uchg$s8X?x7{G5HZTu~?-f8#a>2ce zVB>JQo(y{9FzJj3zxKD|i=E_c*~`n~o71zEp!G8N)ozmT?8!2E4EL4FuFYOOUVH=Mmw~;Qx{3vX6CE8` zl;}@l$A+jKp@xMhS+Khwf8X*5c9Bu9oXfHhYBeI$@2KZY5l{25o z=a9%30m+C|2vk)~h{MLcs|A)MAu31YZUyohUERRer0u9Smu-aDs`^g=lma7DM7BSr zr`VaWbR=K>=}LO;LIbeEr=P$mE0}O&nzwjLeJdW7&itEfiujsgUOtO9q-^KuD&?K+ zpua_#unp#hdyd9}j8!Az-8MqhRFShS`z7sUB>-?Hw=H5Sh0;{+=(${i;a`C|LaiVy zY7y$@H`O}Mh0L>c7cl4o*lk&JVe}HEugX~yZDehr-Yu^1juq`D33sAW&D~?)Ga#h* z#C^@^lj-vYzAe{Y)CFz|j`DshO7SY?O<`EDCO&n;{?VB1I`pydL%iZH;(sYi(NUFG zRDZsE9)-H1U=Dan>6jycmxOvk3qmQ$j|yu=j*N_Q^`S`sS)!5%6rbSoADE^IQXu+5 z0OJGK^)Dq8V3e%*u_Md)S<^2{@q6^lj)CZgb{ zgnB@j9iBplVUO6S9}<4TiL^CVrsnT#e(BuxtA^q4UtRtSde~pU{{q5)!rgxYp+G>` zwcFoBAUFvC0M38S`o@M1hDMe)e-|5wC@+xvk_`r8BwQ8OSOYazH0BDF8u5$b8VtR9T4 zFHLa@6Ok{3bdg?7mTpK8an}jasT8t?tc`DE_hi{s;At6K$NHzs0(ZCPSFg_BqN#Z< zrI1_C7ADW1x!WChvKRL7wHr^QY%)lScl8OBT-O#LBw~WRDFiZd>3ArKa*7#CO8|P* zMVVk+i6b5Qh(Zcdg9tU7)C*W^)VsU6Wl#%xqP>kAfnQFr?l;B!=lRjKU*~E2izq!E zhxOd)&$r|ZIKu86XMf7R_5prOzerrPpu_@jaVQ{u>(w* zf>A_N%$`h*I!7>&5{4+yl_PoJgjYmr7}+rkdH_o8(->u1a5p$ps5qCH9w5`_JCmjB zp3pM=Y74QUVoWb@B|?1R^TMyaQ?GDw@^%FVoFCE@{hS!p&Sac5Oha^x#x?PVp9kWgzD%IBttutw9Z(M@3}!2NY&e%~ip(Bl$$*J83M32{<4?{kGDk zCOQ?_E?s;N!sGe@w%F!-^iiJuBq5z=mS}B?xfmkwzbG@w7`Z>T;Hk4q?S~ zTbdWmz=fZoq+}?@vD=D(X~h_DF`S6n-^h1ChLnV81GW}CPa6^)9lgW#erbHD2ZCyP z+Bb?w>pSjlCxNYVOmM=V=oGW?)wUJ^zP4iuw_NndyPBcEugcBGn3SkY&|1+n(sxq{IUqD63c@1lDB>C%V$UpJ+Fl81sNfe(#y_)7Tnl3 z*sH9C$RG;pXA?2%wP1Jbupq^1|>LPn(8 zXT6(gVB3l;aw=1VGHDbC60i>$qxL%@8gHbiB264jrM`=oD@Tz_IMKChY6DBnl^=t5 zn{a%x>_i7im#k4nGlcI`myr}1uz`;SdjY4Ab~S=lVk`!HJW7UBNo10`SQA@g!T&eQ z2n6fzraAC0MLKXuqIi-7zQ#-G*sLHoIY`$jW0oeJ2`XjIpTaa2ME^#XZt@H!ld#oT38r05;dtVcKk~8Wu+B2yTX_*h@z$q3bIy z8QvLon2w^)F=LmQosR*+BuhAzV@U4lIk9yi=Sh+i$p7#vZze9{O6RI0G4H@-0;!xr|fbuN*J(I^+Lw$Tpjyeb!@UCf1v;86S z$^uNWP#SdW{J_`Eh-40n8JdU_CBjOW;&}cTT6Bzb%d`hxL9U|5St^DOCLUnPk5^ee zmr*<=mCajl&V<>DsO zqFRpng?GDa!&!G3%Q4A?h>f(l-P4NyR^CGD%plCBGu1hm{o`t9fAxc10Ap$N4%#cS zfwBqCvYOSSC`H4wQAkJe3$8DqwUoH7$QtHkeB;2&J(B&l_pkGCkZ{zspK<=(p$@<4g1vm@EKmqtL-%BJU1(}@{$$gp{*HqgsD;HDtu*rY`UGgrEpkRd zS`J}nfHog3^tcbHB0x$3m{6y8mO zG6sDfYybTF)yB7x*PLHMtdqFMblo#&DDsGyyn7WO8=k@d^#}QYe08=R$22zP+I5X?{{XtZ2V-+lWdx)uyu73p4>Nm zOmbgAE}~&pKU+KTkAI7ue=_-hay%-~B@Zs}-{SDUVh8KLIR5|b7x|ynPEM+z^9BP# z$n9q&u9KyCxTTkjd~$q58RgUvNk%r0kX}%!m=met!LQwBn?3`HYX`u_55DeJq!IOQ zY7Z2gl70v_CLvh25C$pCverr_fAl3W3dr4V`@0g0Gxd`1ReX`LWv~?*@Cq6m7$hN# zaM3{jTO4I*At3cj7DO4R;OaW+RvFNHh{N}>)iu&NehCKe9!Z)6B zcE#rAiY>PDLmE7T9IijjTVBOyo2?Ao^J!hn~6^Dc~?UJm?)t*50ztR`FofU zsFe^V5uw-bB}>z>+eFlh;KZ327}c9%5|ph*k~u2wkK`H&zZYMJ-GMFy*V9=ED2U+`X~4(u^}AO}rv~dtMr=jOtbID~lcP?^8tM$@U=Odma>Jj{9REzZ zU~L?;qHJgKJ9=lOG>q8h4>aQok#ZolMyaXS#FOH(e*#wN)@;&qTz8{ygKKiHdc%G} zlj4rT2^LtUyA?mz=z7bp&Ae1hR5J9#bjp3j`{%mjLHA`)aJ!AlcyDv6geAMmJz5Hi zYIv(aoZ+(?br?Cvr1?pAimh2!-CW=(C#f?fM-Mv{Z5q1;DlZ(L=M=P^kO`Jt15)uW zi>DiWcqVVVj`06$*#75r`_GFwoZ$<1!wmp%r3VCn`d=5(&fesIpR%ugFB1 zp+@Z1n4JrynRPpN@DCk0mRvIufNo{aS#cacDd2i1 zd;InLGuq+-Zu848)KLEvb&4Pg5GB0EXGoCv{Y>A+P#bmnU2%zBaNC)XV6Uc!ro#T* z>+fK~+o2@&vCEP3W9{xk_a5?p-F*DOu=0Rc)HmnC@=HXsxD`MlVN)NphklrJ8X6(& z)&<#~Ax^gH9wv}rZ@|==0I7avs3X!KL+`ZgeIfKzAHBd(zn#3?(S6w@l6;akF zIBatdck#;7`E&ey*nMy5<<8#So~KI_y~%xe^?c&v#^2c;V4pVfbTT`_KWjI$i%E9} zmFbu_0C5gZ1o<%U8gB``stTb28lBJKV%tE(_B5$qwz9#x(mxa9a~6x(F`qibk;xc; zDnN_3o;W0RmZVgcpJAU!&_cWDs6Isg#OgeHv`-%Ng+eS_^JZhq``G>Vjs1!xBKf(< zP9ADZx^m=s*`KGD9G_xJ&iG?D*hU)xuG(>cc#q5;=-vRHaLG8qMq)Di+2=TY#OYGt z71Ye%Z+?G7bEoLGWx-@h90ht$I_NK#kaL+{MX~l>jM4!e7~C^JYJB-FIR%x2kwqZ4 zw);AM=8L9E!8?{Y3uOS!ubPzJP3*4FRps`MPB7qV_oZatN*Jzr`mG6xKBe(Q5zM4^ zkePazZ*z<*dh>0PPw-)VZ`T15>*lrWo-|7EuH$8C9kPyW;PhlO!eHI1_MPjIG#{5J zJnA`MoxN4}WByHrV8Y0V-BG})lGUt4ilJwqor_5>2$EFQ7%Yv2EvrZxRBuDOWTGI+UW}V)RMz^>u$Tcs-i+81-n6@*t@vlmo=HsTKUo+;fQW zkRZm!vL`b17>}N#r%(jkZw7bOeEZZpD7BKwEPCJh+e-E&iS0N+Pf@=>pkT7!9DAIcsP{U)|O@u9o@^X9c`uAWkBa?gqAifhwMSLZCyqAPQ$_|?juZu7C%OZBWvEAh`y1W>?(c1r zO{jov&$UMDFP((pKfU_w6Mcbl;EhEyD)#M5=SmvhDMGH@2v8-V0~_scG6^Zzm5Vx# zv(akTBa%E%8kgaYF+{Fuo*~J8JHjtF_UPuyhhTclHw9)IBs|3Vol#flm2KwyqdI@% zK4@Bop5PJJ-_0}yS0!%4Fsa$4?3HU>Kwktg9Wt<2YP2KVb`TPv8XsGj2aWG{%4+S6 zB^j*iq2H&;{;zE8YE5ZFKBp>Oy%GW{)ekhLAQIfw5)VVf)T@3iyzWF3zCn74e?Slb zRwVrYX80!wfbs>RyzEG`cwLf*B3JANvSCHB9CuV@Oom~JU6O}K-#(vj^ps#P*uIi6 z8H;L~Q33By#T<_|hC)n}0D*qJIyhT~>$-vlIvJ_%1;mmC;3j8#%Yv0q2gO&)zG4HBKYElTad5{BUQUy8rZ8wbZ~I>>}5A(8J@&rzh!{;B9x`5aN--s_M;jY z9mfZ_-4DP!{bx<4%#pQjO9>(nY+V^kh%_8HweR=#2r|w*IdqV%ACp^tF#++L^lfww z{PDqAFi7VMl=36ou-n|ku$1wZ#oD@Wn@SHI-3^|ZIr_xkq=6m3Ol^nLs5e`-S@!s8vOW9Sf()$0A5~gLKeTnBNPP5cAq;6?Aeouxtbwe zta|!xdqK9Vz?Fl4`&z!)*ca6;$vk3ZW`P`S2Kb1&W*yjGPkX*$n;x`2*&l<(`FguW znD)*ss5SCwN{i5O?@!Jp|I#hK1DA9uJf_0Qv{CD40eT&-Ye&6Le0UbcePlDJlra*7 zm?{_-dUuk%tXzgaR)>AI!}qNVwQf@_%uFdS8A5lSqe5Du|4-b&aw* z_PSVNpd-?r1e0)?o>E~Xb|;mr8YrZ$!%#3k4T06;XpJHZ2~d)O@zoY0*Ar8OQB4U~ z_MWZ)y}`irhB@M<-Hu-UGqieEncbU_x|mZ%)bcpV*r>-b5vXz|Q*9x^q;aKj=#p9r zQR_W$Ig*hZLoCEx>vzjY?Y{W{5N3$=U;)A0B%v}IVCHzpirGaLwBmvgDx(SQY_kVI z6F?q_+dM!(g1y7q;10i_X~1@Ce_Jy`r!irWlXXcUF-V83mds!gLC>MD$j_355(n-= zkkxK4co6`)w4q;Mg=$six=P4P=e@1+hlwf1~qU=C}=uBdgj2wYm#T5d_Faoc>sA*qOD zl96`b6|HT`(D2^)$@O;Om?n20GvC39eLyX$HA@NY0^X{cIQF`h zDZe9jr`hRQSIQ|_H5jG#fgZBf_J^WLX+hA60EWkqUE^=m_md`&cMrotV$rtc&uH-x zi(&F1Mvd)i5VHb*cXWKdnVK1G%3H*q*($bEcl5KjHU|2WUL76%ElEAx=Z#M*Er;)N z72EBhft04P%H9#B->Fm@^N9e}^NshrXszs;pkquh-iV_+5?!^gQK;J}EqH)rh7@3* z^H|0;@jk$J{S}7cBXX!vv$5r?0)5SnRPOkPcDnr#EJ-&T@N{{e+q_50DY1gbjWiyO zdG>a4FLJzp&;pwayw!u`Hr0Sy+K^~xg{f5Jm8 z7=|8Ty&zQP?rq|r>PJT7`s#FI_QXK6o73n*Rqyk`SI=ehtVWVu@I?o24VLHnOT-J! zPp4xgL=V14e{fc!{omS&tQQ5p6s!{r!qPlEgHqACd%U55%Ci{3mhunu@+J6iv=IPb zAv2;+pAU81KLF)p4>ezb905G;d@I1Xn(Dswzil;EqLSXo@PYj$`D-F!trEZV5oR9k z0@hQ!Fb<46IS5{*OC3$tfgK9NN8SKRa|WhK&8F;YYh)^=w=>Ms*uyj+FES~SnH`M~gb2E%`Gvq$^d0{^DE`2;Y}@;i{m0V71AP8CP$- z_V}^6Sv5?^(bd-7^~2KL$uMhYPiM|w6?OBJ^w1rN5jK=JTmE^*0DCx6*k_yxfp_Y! z#qc2#PKkDhYOsDdqFPG*IYs93>+_~R?|k$_`?&wl(}}Se^BG;i6oI<#!A2AUKva?! zfi1RDeYJXATm~u-^ef~w^<#Xb4YmxpP;BFxaqwKsWr)n*B^1Lhum&`pbu^o9haPOZ zUyAB68(Mx=p5e~b;>8V0UVH3x5g}vAjI*lwk47a zJTWg#C_6p~T4qaSwbzq>oDuY`Q=4p|b5>?2Nw=tK*VfQYZ6IiBaY4>sc>cZmZT@)9 zTIYAnbXwz>i%)=qC+6Df0|HH?p+v@fwx83P2!Y~j{vFEKed-5Z@iU{o`E$`@ez@a3 zrf)R=8>fml^xV`Uc9ArG+xPy6nble9;Xz+4JNW9=4(fs?COkl#l}g4Ey#`m-GvOIE zkg=fQ`yJ7IX(TaW}Ro3F8!FYAbmEPISoHjWR|>Jc|rG^++f zsjZJFUO(%;--0bEj=LnWz*z)_ns^G9Pfi0SOB^;5nB0;z6OPcU=YqH}(Z)U@b|vZL zs1|VZdqZ|7njC4VU+aIsQ;{R~WJ>+)tt6?`?;M0hI;9GggKveLo1NudG%s^P*v&h&K{2;KPZ`L_@nFfu2PCA&N-~01;#1lHXWVS_-sEQK;{g+J@uS zgubvys2XworzqNh!3touLogin_?G8~XRwK2rJS8H4q_=q$EFcgTvr zUXn{|D$_EtBcVVAZd+wbk=k}WDHVGmyfX(dBi=Ua5j z;CQ*R4sRpzw~lefi6|-DC~a9V$g4OVxLeUSykf=iulA1I3@`1X*TW*0VFgCD5zc__ z`hfW;o&&n^LlD)XL}1#eiyix*`hW;!0GGBhD^g9*2$q{C6FG|hE#7h*cIafWCH_Z} zH?5q!>QjSGt+BPP;q;HtAdWQTFUQ^eDyipt2lsKNM^`s?)JLtoj3o^&34uS}xo($> zPa|#Ugxm)h&5Ut@X&RnIdO?W9h4z9v#)a>EB)(j&8W`4jm4k=XWPrs?|8}^x z#;>v9D_?EdW^lzBSTxatP4rF_Q*2KVTZAlJ_vYV?o*?u)qH5FJ$Iq0*ULNC!1+r>1ve1znVi_eRpq^z%g$RE0a z{iQOPt>>Hh?OE_i!ulo}Gz^~bgX-yYpNj~)(JxkfKiue<9k-PxV&5Vfi6TQ+&)ulN zAkSq|P25rEW(tiiahW-y0S@evoKsP(2{PT}!YN(U!Gg-qOmTu&X%5KY#OIi=w%pQb z1$ta1mdRCw8)QB-yJ;%$xEU#P_R-Kpv`sv{Q&Mpek*v=OumiM|8FPQ7MKXJ>J_T1I zEncH_@r9e1Mdj{IBRC!AJ+}T^oz;9t{ z6PY zZS>HU-0b!t=<={Kx!Y0JNbi0I+ussiQe}Ot)go>^&h`1dhno>=wQFE}{W@5&2_qCh zZYvHmN0lJfU@@2Ry{iQF5l?X#@B^zjE81qhl%!T_45ED)VZXvt^e>yI3munp4ty9u z`jc;$_JHR0X|gePO=FL296q8aktp-kRJH@akbEnWNq$GJng%(-t&0lM~p z49;3ZzV0s`=6*payWk4X^_HZjuX=9U60bS#E@CvkeXv;|imWQBf(6!PY0C889OS4R zGueguJ&f~gG=nqoY3 z)HQ;b9tL=_;Dgb;hh_Np6Z>V2Qb8=TQHYkke_ak5XRwKGBkXAw&Ed_F?F&p%HMW2V zWD`R5ftK&8VutPA3EpG&&2EJlQ)!d%w7&&Xs~=SzUqT$brX_!K`GOgZb=8mP2C_O2 zUNv8DMaU(jGL5>*9$Z$mv9Y#E=u=m;p(XiV-txS?>qTpIiM?@wwY(x+SzUD4Ec1Tm zu}wX839;WS^a~fambm982~2gXg2L4NEIYms#@rV!i#*Z95cu{L5;CHYhO(Sv)?ZjK zF~aelg%J&ZreUJ0eRKaxB7%yh5nfd}YuaBF$f(Z8uAokNVGW8(wB47YJ7dSV5${dc2&MfREEUyFt`Diu? zF!*X@kFObjI~_`X+NwbE<&q#g9=N2aqc*0pA#Cael3V4}W?Ftj%41t&R;*N9P{wJ9 z0nchj?hR}n8()-lV?FD_pViFoVjr*Xm^_l74SRJA8?)|Dm<=*ZONGnCs8kYbYu*Ig z4%V~n2yLWMjv*FJ`qU3NGi28&U;U}#IldeF^WT20*4RUmFXPGlVTRGjiNyotyOMyk zDq1yFV#r^a_U@ynLu`x%dDvMH&{ztBlUToLR=2WulAC0eRof}=ldW^KsOD*$S5>$8 z=DWo+xw6}ibh5Kod-TLfY*0|I-06vBh5X+Vhx!kZTwIO_H6>quKX$-$m8G;Yu;Blx zEi)taa*o`&E#TE+_M(>fKdqewP+ZHl_i^_?a1z{t1$TnG1O|6^cXyYd!QCB#yIXK~ z2s(oY*W{br@4b6Y&U?4&%A2ZPTWY3%t9$kI-n-?$CNNxP6Ilahu5*kXFNtn#+a=QL za8!OGaD2L)zGOIm;2fQjx8uld@!Zj}Ob}qI&7^!+Pzxst`+5)lv`#tQof0c)e^v_j z@kiy1w3TlED3xygK&Ze-T)n6xV{64uL3kzSpc&+96(!@)OLeBU@fB}%i`BHBxH0kzd7)|aSTMThQZK>dQY1>)KAiT=?@r=rB;d!Z%CY|m^q z&#DEjd64Z{lV+1rR|OTM#D z<;x_c=)m)KwP+Fzsn8R}Ild`vT8lT1_Cd0gR+iF; z1R!>9-xm{XQiT>H_Dd(Ya)|R6Rz1S3*t?1W*Bo}W-UDV>e#l=uNp>2Szu0i zrS&w6N3IT){$t6onF8;@h2zyOm85$rD?lKaBit`i$0vR-S&tcKpVL|JOE{Uj`-Y9= zmR8YbqhVxbgyYeV19PDZ$YWGKrsAX~U-~lbWGqtc zOwF<`nU!rvKZ%@M?^*OGS73P9E#r`06ntKK&bnDKY_U7Z{dVt#f}DIb&X@|T%5@SM z=?2$6d6Od~=g2&BawS;D(qBq$O*6UkV4n$Uw4F`pJ>FvxQXCW=6P;KTc}p|I9E2hM zCTuv+(x?yWbrr(VT3ZBG4oY9GxD;uU-Rn-=m>Ec$pChfeyS%$Eyt~&~ENQZv_&@Fv zcTT@HMm@wa>{d8DRhC8$6qj}laoE2C75xl6LL}~C9;h&bwHYEf@`IT%6(_;Xpt%77 z;3>a!o23+gYievOoL-!BevY6Ypl| z4TagCiwE@TBU`yRLxoE?Nzj7f0$!I5S!q z!k+kk@BO&DmNuQ1c@_N%KXp=#OdQ!`!ae}^2V)4jm@PYoro69je(~*XIMYMnrLtg5 zv#|CD(tT9~f=-x?2u=!Y%6&7-nR|il!X(B*prjB;Gx7{ZUrAgj>wQN(wbGG+)y;=Z zWRgy=Fs8FSpbAL?2un(hN54QF z5~L-XPx4HfGIj)^s3VDkR)Iekd%k`R(^n;x#v73_`$|-e5Z7-pYs&&~w5-;ZqAU=q z6TnBs!>kq}dq#1hMad5nwLRG4Hv%u~drwgj@wqDC6Xz?IYk&k%?2N3@#g1Zcl%AUC zTn6$jx5~+Qzl)V0dP9y#j^Bm@4d3nFx3)HrxgRnnX?w%s%rK6luWxjGZV(ZySX{?WyZQTRINyuN9zkU)TqNyBSSp(vD3aTXW`|q-OhVo zu2MIEl=XJlpGyxmZ%1q?*k&;K(F3xJ^k)vf^YWl9oNX;ZXW}YQ$lI6K_7kVS;5l5y z>>ey`(2avt*tq69d>eVF6Vu5>zlQb5tbpR$L5&Rx<99+5&qUvq(FMzH!~*SQ3p_9o ziXg{pIF%i!_$3gE$e37ed#8{35z_TI%`M$^AIXY$^I2W7T2olReW)i7B!T%56)~7T ze8q*?Ae|nIp>#DtcM_4ek!Uoq!1+1szINL(jCLFjFBMZ39kTdG#eyhnFSqbIUxptW zR(+9#3lYk7^Y>EJO2iKYgm?(FXqqm^%Pf7s*2QUJ&cLo{xj0Evqi_&HAw0ya+A%)B z_z+)sBs)A(ylwZ_wDqfRE)t$;q; z=%E*cLQkPby!ZiP(gx8-guJY`Dp)xMa0;t&nEZM;o?X!fal<9gm;2o0?r4zNYih@D zlT8j0;+0pbmQIIQ@(<0s-z@sRsWD|r5YV02T#EK%Q2WyD8|5py@Ii?^CSU+lRDxBv zz^HYbh}4jbzHh<_W#?dq@Cn7iD5o@y%CEN)B|^+QI@AyZ$r&JyvKC%xhp%zU%sv{H$|VtAA^d7kk>&*IA?ARL5R>(Zh|{nu+A4|A)B_x|OITt- zrNC%G*g4o<6B8CT(73jG284qZ&!iq1mEa5rqK+fL^dvMZ*u?7SiVma~>yEzAr0`kqo{h`%1eEgRTl@gO`e$vx8VLc? zu32)WziM2x?UYmK^@f+O9JXNIY-_2Kd&k1xx_H8oIR)F75iR&FY;%d9bKbftWGUa+ z#4K~0#;(fzR2c*zIIt@a--JFF*r6HfF;4pNnP@UV8=?3MRK|wMNxWlly^+%grEWCX z-b)Yzpk;>}ipev5Z|oo6FZyA_jJiwd#$SI==!g}fD?CK_pt2qp=7U!=L>TYn*Y1nr zPnRG7Cv?McKFmc^MH0RIND%#;MVwM|N`mQ(0J8zIwtIsg{IQN(xN`i|-FKAt>|l78 z(v#TJeVyhppWw*-^JX6N4a0g7HR22=nKekdlO^H$CJ*%0W+!f?D6%ka?T&}$kt$I( z<`b{*nGkMzEXg7nXczHEHL>;Ua&nmca_urZ^4I#JtNl3;czI2dj|h!Ayvt;O8VIYc z=`?>#Yk1f-794#_P{EtLSEXG|ME*uQ-Iylmu8R67W91Y+C}XqSR2SuebwkH0y02op zrV#_a2ZHEkB|-qNMB*?6hBJyJuJ>|CfUPdg)4eRFxuTEy(;hFDb;>DO1#pw?AodAa z!21g|rP?9|$2bV7y=AqbK((0Gf_l%~s&@nYgo<{-8%jnCK=ot!C0m<3HmzzkMH+}oJxF=XoSfbYh;nxnyPa6c3hX)dU* z-tGYRS};+9jq;bu5jywBMETXTUo!>iAqb|`A^SiWv+HbWdiG>P4KM}uI92h@OW@ba zOlguk*VYU6*l+)AFceXFhm9$(sH(K#K3|uS7E48|r2eTK3PRD#$#qf`N$4H+Gf<>| zD{vVFIxgva(1MICNEyROe6*&wPygoaT_pwNMl^8)Jkp&Bb{o^15AyGZA?qLl8L*O7 zZQ~@7W827h(R#auOggf&UzjrpJII1mDas`rMd*iIxR7RVLTNLen3o_}r1Q;Kn>f!F z6TTNnuh_pUh0De*o=BSEf&b_ME2Dz{e4_yF;3-Dx+W>d)IKom2$r<4n`ZJ}e%vrSA zO`Sr_-;R*^=D$UR;CGNkx{Dlh3|xI?tP|c(gSJ_XxEw*xucE9LD7i^>0IpIxEK37u zQCi%g>h*KUqsk#!F8wRa-G88ID5~fkdFBM1bU&|c*5^j!ON4IExRGb|cGfkmjE(IN z`%5c&t!t%v_-O9gW4%v>GPr{Bi{U$$lh_N*Hfh(=H$&e`XN`t>*o2AWx@KnTax z>f<<_qP76)8>3gxBstb$yL=7<4l*Zt1)l=t~66u-S5vZr= zT^|ywDikkZs`%!PgoEKhFP_@pD_?|{W=JxYC1dzu#7FAdbPVkybL+s_c)bd`zq29j z9Hx$XdwmFUp$lrca#P>gg3{L&tgQh(9ahxF`J%G>v=4Owin6LxQ1<2%FeXIow(>%d zxouN)Vih$Zw1Y|3hez|_In6Snu*EYdq`bL5M2*v=dvy?jiT-My<(vErD#+UmLRBkx z%Rg#?`13xJsxT-bLlL(jg*uJ%r<@IML5aEg?|nWN+Llk#9Gizj?%y;V50L4z`cu^k ziv_K&yaq~0dEk`Vu?G#-Rs;aXRMk{=!R#{BTLi_9eAQ4*atQUGoVps(T73E#SpqMW5!5umN?)bWk@B@-vP`NxXAy zMOS?L+fpZFgeQl6jdr0XA{>uqp*L52wVW+>sM7dg-nwCC!6MqSoDS4{h=`iOmU|1I z6|>-D8D{44C^xXZmvu5!=CQCJ&mw$OAQrE*mBPW~;EKYVYO9JR!hI`x9k8K}Ag5w{ zu^SRoc~RJ72de`QIo>9w2Vll7f5X+dl&QHL8(%jpv^Y0Afv2tD&CVa#ZMd?uO~-`g z$8EZZEU_>dI-90B^U1h&xlTM;C!Mn646()wOU6(j&1~VE-*n%$xuuP5K+e4pTW{$D z9+^ieS})e9b~z3l>B>cQe5co^NvJO#eqL^X#;JB$^@X=T1Fw>KmJ`{odGa`29;TbS z@kULQt#3HLK=vttI-iqyo6{EQi}CMFalB?Ry8tqx>>obNjDSu6g6BMzh#dvgCa_#v z&Wp-H4h!dX{Qbbo(#zL&k~9R#Ib~Htcdc5rK|?>gba7TaULn2h+UM7H0Vvo}ToqGb z&prKgw+rWqIVWLM;B!0l+%ns75PP1Y3{;2yy!f8XwSq$nphBy{J5RsrZ}F8W!~3pX z6^1~Vm=590DiYv=B(|3>ib+|Wlb|;U%W=D!1t$Q56S?V@wcNlxC=(^L^#4;-a$Bb0NOAhj%7HHr`;f`T{o^ zSxZh%KtEnvNy4^KvS+>NAuDa)z$M7)A0fc0b_f|AQrBQe;vU>&1reoYoH^m~a&0Xc z6O*!n7O-@{SA|%wh+r%)iZUYu#q5=I5u)tY!SV4pYvx=W1A&WHdw;@$vXT##1dh(%TCwBv0ATs78P+M$wXS$=%K^E;Hw z(VzP@XNV)$W%PwW#>``fs}_;J>k2#^x+%GC1KgK5R1##I%5Gapt>`pdfsVPAr`ybj zR7GRQAfkVI^-vfC3q5%tJU6VdAzGVHcD3)upm!Y9KSUN=0+J zY+Ws6S0;Eiw?c$-fTU(g9Kd;PlXv&=&=n6xcb7_t@|kr435VW>@-;H8w6&WYb`+8v z8~IMZ;+V5w%stFdKvm;`S`W@M8v$&tub}n<-78@mA)7!Zedm{>?egvb@F0csnTH1M z^qpYEnevL+7}w;+yPy_%Lc?XY=cv{%X70^9n7p*&almi<`NooNz!{HZ-2t5kc4yN! zZrAZ``CH+`wU!1X`d_u3n$x~+Ih=oSTc7IUo14Z%3MqM}Zy=(kz=V9kS?wR=P%E>m zIFzB=GZa}QR6a3PBRaB+M4?TwX)Hey^=@Vd;ouhA&M!9N%#rhH7#IytqGOdzU|8mc z*tGhg4s0{OFF;N*mWU#tvDC*W$o`sTHWt{OZ#47%HM zT{3(l=D;xm#CVJ>hN=1B<>gq@qVkrnhJx3PmA^cj^*#25qpwq|M8~J@qtLty-HKuC zO$+{fO!$hunMiG?Lva?(O)vMD`pDxYF7@f@r}3o*OD1P4kO%6yeQJcwPUr`X9)d~W z{dg2I^EX7Vghk`p^m{3s>9<8RiXSysyGIa-^N4Hp&tWME@3<{bl!zf1%o9AE9hH}O ztC%mjEJD1Q3Jtyu@0F*t5-57bL+kZ*l-KjN)m_L)Dm>(>bwDciIAM4~i^||r@XZ51 z)lPj6S@D)!Jftc=gKSxUH|X{xpQ8)E?yZQCEGOoD(n^2x0cN%FG5Bn6hMG8f&K2!~ zEXK#W|0h8XuqSF1h+|NN zl1GlJBKIqqKbA#S7O@Wv0^-$XwSr(x@T`547@R6VJ71#+)Kz5bpaME+U**AhT}r6T zWuPI&Q%Q!tN&ILp^ok{igE7V@Q9+r^xiC9O9!8g3a-r}i(Bs2)YT3^fbP}KYoMqKY zG4iUO79QB`X2H3+9Pp$;2^&Y&y8On)2W8W-D?`VI6>=$#AnBCNh=n7khQwtx@;2iE zd*oFwQTlXm;Y(4`BR$uRP6=VUyNsEL{XX8t~kCQh4npqaKl}~Q6?R}Af8_#t9ApZv6!?b|R z`&z4MF^^Qnu3Xsfp$_e*l}BNRtx3MMOGIPx(dk{q$TU+uV+x%S>Cqn8d;qaMskL-( zL!h*5om_SfauJ_v(E#_!NmeekQ)V-fQlA;AONa$`cBJTxrQ)Lco<@A88(dn;tKH}U zSN-Sjf-m>G%DCmO)#ospX#?c9!@G8gE ztIJ#=8r=5M2#WcTQv4W9Gh<+Uc6zaH>P_n+M(tvP*HXYsEmBMT0&6(bnw&l=DebQG zopG1&WFduTR)PB(T>+>763Ds=)&9@rIygzRV%c=TXl!kxb`iWDTt8dF8f+MHX5oT% z(@|!|iC1nxyo3#Cd9({5Z>k11xjsx(Cpu%R96eFLb0Ps2)y(E1+F@MFS~ZdhgbMqE zWb2tqzd9G)ARVV&CN$4rA7O5ttpf77P&E?VN(&9Os@ImoN9SpM>|JnjHq2gyw&*=w zzZW+(s)8c!GRVVEvM9^BM=+#XG{~>oGXJ?$mOX*+QDQ%u!v}53O09zZV38xJ#j~?K z0HX5A?45f?1?K8gIkk4U3~(+Uf~qa+B}p#0wn!o)!GOR`TM>bX=5oE&V1K*HH4z{K zsRRAlr6rH8Yr6(1a}sMURfFIzmVUI+TMdbi*&{YQc2EgnQXO%8Jkh`Un|Pvyv7IE8 zVUBnR5Hn^wz&kB*2R`z6U880A@<3zCHdskn3PRJ2oXT8$T7^zmt{j(tI##RUk^{-B z1GTf|g2sM!u8$n+?1#GVbxB_Vv#T;S^Bbx8d;^yeuly?QlzDM=JXMBL`V0&oRZ5l? z?8iI2Z*vG}h<=Yb^!)@!xRPb=EPdtWoB)bT$r6G`n1b>oiO7?uHTu%8 zcLZD=waf+?8gnat6?%KpRN390BZ-QcLE~rpPzKy@T}vfY9dbXuE)u@0Qd)nS zEQh(l`PxJewfR(F8ndunClYS)&?4e?TpekIzDZfp908DfoiVH&2COpq*cWd~OF(JP zg$VBCl;jLL>CO1^*=5j>hPYDAdGDKX{f1xdw%Ls$DvEbrxLO_10FStKHGCDOUSlc0 z!>rs=HTT3%kbeEuQZ_yi_ie9>tpkJIa(sH9W_FL4TlGoNyqt%dgR2)mr>IV7Y32Lf zEXqwR=YfZqOouRI_X}eQb8XWT@oSP|Hk+7t!1VIiG+n&bQF_i=#}4;M%DR3ndhqy{ z5B)8<45b8<2C1tmtRRP`jNo@SRZ-^UZ@K)V=^haR77umKUc&r$BC~>uhGM=_$awwL z!_`qH4=^hm^~>Qc;n@Q?4S~5vd|IyP@tgQ=zT%43Fy`45Oi89Q#SeLf2KP=1Ruj$Y zL2xiQf%69_7Ry4kh8b|~*>kG9;@8(yv>2}gHoB18&4vJYfjB}Q&~*CDQu`sBp?FI@ zIdDRybZ9ctWt=QH6Co3+*(SW!(~TImMWe-L#GOwaHHM=h_gx!~Dk59=i@^S8ag~|b zPi!Hbg8po24yg$CGJ(t&fsLw2_-Rl|0y(~IT`7Pg4{9yWO&SFeSvqs7fL7Qx#23{U zuLtT5+*PN;qQeYl{IFiL=F7ZR@)Sh9lk}Y4k)Kv&L!gIN4_`N4&Y!bBFp(Q_+FrZo zoG==wFYtNWts>~^Cy#I@0+P{}b7zQGWpKQawzBz2TN}nAe(Z)4#LDCSt654|QY=#I zcdMl6hRA+m`CNG}4RVt1`wecaEbkz@=E{h-j%l?Jm+d#QJch(Sj9W8 z3QHr1RN}&*c+!#N6&+EAXB<~<+?}H&_#D zUNF~F)N5=id}Ul04u{j0_c+)%xSH^$Xt1YmXeA^*SR@gUwptWH!JkO-_d1 z2FbiA;Ei<YI*ZXOSR* zd!2cb@BC)Pny>e*h>_b!_4*vnX;XfaW}A1jlv9uJZT;;J7vHzy9e!U{0dbx`=!zhU zum5{iJX8@~3N%4*R9Y$17Yu)0WN0|pREzoIPYaWjP2bi9VY<3yh(*fOS3_|(LrXQU zzV=R5L8@D(vVNuOIwIQ3jsD3gmm#zMlwR1y6srx|5|uC%bsBfZYbBkRKmUX^n#u~# zWCgwHoI2<8k=)tS75J|Gom^&do7t)MJ(^9Z{9Y50pq}fl^pc%tg<}%IGA)&w-g_fz zM>R%Ra&IBG$}EQOh_Udc<~AL`*yE#Cwc$Li$doX*GbR0>d6_(7IH8LMd3G+#%d<`U z)j#YVeL0lhWYNWqtx*_eWHEEokFd)^sg}7zK=+ng11lXh-_5vcSM*KYQrGrgCK<8D zP5`v_deSFYpOEb+QJR2sxx-1{g$#>wlMsBRELbM5=t`pyMMF$sO8RnOcBI=6ZGC8M zS2}Rx5jfMYzKiqh(l)V}Bfv3xf%4t*TRzVSph`y1Zh4+` zU+<}p2lYvIldWvHOEm#s+S~nVL~14Z9ZQVKjQ}j(A|%Q_Ic_C{EN6521GVM1q^5_j z7=9k~`*o*p;(b|!8EkNbfV@lG_rUc{cFS9vY2cyFpEe_%Y>C6OJQRQoV~*$KMYPS+ zudy^~f8X08eJwESLtBc)8h0;7B#Ok#5+6&eAk2ItePm~J;1Zz~#|KMVARQhlS(+In z+|`}NMC|*iftqSu{gJ`vN7X!{j$hZ9Y#01XzSStmN>fI@d#7>ldSo$SuEv6a`z0NG zAW}_PGTf4q>1zW1ibD8hip0w?@kAdRAI&Q>N_TjKkFBkS#@VN&7x!v*x>2 zdn@tmAKkRjU$Z5w7p@OAcy4&h2F2_3;?4M}JDh#Xc~5;9_0(kCayO)kz9^%1pM8ru zZ~xM|#1Rv4to$*C5Za6YN*?nI7C+jo_Hb4gKl=J3efw3hKIuy0B&0m`seK@;3}O(I z>#BkAxt{7$#fbqFk{ZeM8~5oRjwre{P%8`hwipv6LKxgltuez#m$LF>8&bJe$?k1~ z^+=FNBrc4J!X)yFj9JkA$wx@O?7b%KAL?dH<~^~~_`JHa8X{LiXm_KjpV2j@ zFo%`D=~U~U4%fD2>bYZN@^BW;8?#xM?l+lBWEA`i=-S*Np;k?52s>EZ*Qxb(RYMiB z56N4ydA8ZPKE5V68J9S2Wx5eQ^9-}ClrMlqu%9Fe)*l zP@mCqVI*3bwkvaVkEnd{b;v4`(NG60pq^s3Yd9y?rfx zt|L@T~U00Hs#&b39U10gz6U$bGhwTHa!Iu&JPDe}68*}{o zmlHR^l?y>f{z z1qM1JKV%!ttx3XRc}9sZ$t|~uU}CoC6sdtWy@mmgW=+r)`?y{2PS%#~#T2*&!ex zM8O*(cv zNq+)gQBhD9`M@9tPWxA&cc#Cc{#z)lfCzcSH&zMeFc1*zVD)ag-%vr2;JlfbTG)b> zh``FDOim__t`$e#eq)<~bx{8~HpAbg6#j=5|72kw4MWcNfu(>e5x`mvzgdwDzVc@)98H|; zTpYngplso6;$~pW@DB^%pG0fV*tIHx(S6|T()@;AL;eS7QIo$p;Xfq@wkqC7g2^3V z^6!~00z2a$X4?AyAk*xu)h}FNv?Mt42<2~?E(h1a{}ruj|DTt29a=^^J=md$?;s#p zf5U2E{{yVDG1$pYU|;{;@&9SDPi*!J5`+J3^0*KX{J$B2Nc=Aw@t;?H^B zfg7JmunZgDZ#Dqw{#6_Pb5Hy^NDuaJ)(A2DZq2VY|KDxu{v5>NSHPcNpZ|Z$3YPkv z@~?&e`D?@eXWjK*AtC;Sqh5cFB^p`^S zA22Mn-(mljUiV*df0hsY{VCu^=Xcz{teyH-)Sp$1e(4eZk+UC$zoY&gb;7^W{w&q< zOBv}8+K%P#w7=in|7o41zq0=P1oun)