From 7733769a7131736b73d15c9458b550f8b8b86f15 Mon Sep 17 00:00:00 2001 From: Mohamed Ibrahim <mibrahim@mibrahim.net> Date: Fri, 28 Aug 2015 23:37:13 -0400 Subject: [PATCH] HowToAddUML and ProfilingKernelExecution.md --- doc/HowToAddUML.md | 39 +++++++++++++++++++++++ doc/ProfilingKernelExecution.md | 53 ++++++++++++++++++++++++++++++++ doc/README.md | 4 +-- doc/uml.png | Bin 0 -> 31633 bytes 4 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 doc/HowToAddUML.md create mode 100644 doc/ProfilingKernelExecution.md create mode 100644 doc/uml.png diff --git a/doc/HowToAddUML.md b/doc/HowToAddUML.md new file mode 100644 index 00000000..8c1c7f49 --- /dev/null +++ b/doc/HowToAddUML.md @@ -0,0 +1,39 @@ +#HowToAddUML +*How to add plantuml docs to wiki pages Updated Apr 20, 2013 by frost.g...@gmail.com* + +Go to http://www.plantuml.com/plantuml and type in the text for you diagram. + +Hit submit and check out the diagram. + +Once you are happy, so with something like + + start + :kernel.execute(range); + if (?) then (first call for this instance) + : Convert Kernel.run() to OpenCL; + note + We also convert all + methods reachable from + kernel.run() + end note + if (?) then (Conversion was successful) + : Compile OpenCL; + : Map compiled OpenCL to this Kernel; + else (Conversion unsuccessful) + endif + else (not first call) + endif + if (?) then (OpenCL mapped for this instance) + : Bind args (send to GPU); + : Execute kernel; + else (false) + : Execute using a Java Thread Pool; + endif + stop +Paste the resulting URL into the wiki page but append %20as.png at the end of the URL + +http://www.plantuml.com:80/plantuml/img/BLAHBLAH%20as.png + +To get this! + + \ No newline at end of file diff --git a/doc/ProfilingKernelExecution.md b/doc/ProfilingKernelExecution.md new file mode 100644 index 00000000..58cc5884 --- /dev/null +++ b/doc/ProfilingKernelExecution.md @@ -0,0 +1,53 @@ +#ProfilingKernelExecution +*Using Aparapi's built in profiling APIs Updated May 7, 2013 by frost.g...@gmail.com* + +If you want to extract OpenCL performance info from a kernel at runtime you need to set the property :- + + -Dcom.amd.aparapi.enableProfiling=true + +Your application can then call kernel.getProfileInfo() after a successful call to kernel.execute(range) to extract a List List<ProfileInfo>. + +Each ProfileInfo holds timing information for buffer writes, executs and buffer reads. + +The following code will print a simple table of profile information + + List<ProfileInfo> profileInfo = k.getProfileInfo(); + for (final ProfileInfo p : profileInfo) { + System.out.print(" " + p.getType() + " " + p.getLabel() + " " + (p.getStart() / 1000) + " .. " + + (p.getEnd() / 1000) + " " + ((p.getEnd() - p.getStart()) / 1000) + "us"); + System.out.println(); + } + +Here is an example implementation + + final float result[] = new float[2048*2048]; + Kernel k = new Kernel(){ + public void run(){ + final int gid=getGlobalId(); + result[gid] =0f; + } + }; + k.execute(result.length); + List<ProfileInfo> profileInfo = k.getProfileInfo(); + + for (final ProfileInfo p : profileInfo) { + System.out.print(" " + p.getType() + " " + p.getLabel() + " " + (p.getStart() / 1000) + " .. " + + (p.getEnd() / 1000) + " " + ((p.getEnd() - p.getStart()) / 1000) + "us"); + System.out.println(); + } + k.dispose(); + } + } +And here is the tabular output from + + java + -Djava.library.path=${APARAPI_HOME} + -Dcom.amd.aparapi.enableProfiling=true + -cp ${APARAPI_HOME}:. + MyClass + + W val$result 69500 .. 72694 3194us + X exec() 72694 .. 72835 141us + R val$result 75327 .. 78225 2898us + +The table shows that the transfer of the 'result' buffer to the device ('W') took 3194 us (micro seconds), the execute ('X') of the kernel 141 us and the read ('R') of resulting buffer 2898 us. \ No newline at end of file diff --git a/doc/README.md b/doc/README.md index 0354093d..abf3be06 100644 --- a/doc/README.md +++ b/doc/README.md @@ -12,8 +12,8 @@ APARAPI Documentation | [SettingUpLinuxHSAMachineForAparapiSidebar](SettingUpLinuxHSAMachineForAparapiSidebar.md) | Sidebar for SettingUpLinuxHSAMachineForAparapi | | HSASidebar | | | [AddingLambdasToAparapi](AddingLambdasToAparapi.md) | Adding Java 8 Lambda Support to Aparapi | -| ProfilingKernelExecution | Using Aparapi's built in profiling APIs | -| HowToAddUML | How to add plantuml docs to wiki pages | +| [ProfilingKernelExecution](ProfilingKernelExecution.md) | Using Aparapi's built in profiling APIs | +| [HowToAddUML](HowToAddUML.md) | How to add plantuml docs to wiki pages | | LIbraryAgentDuality | Aparapi libraries can now be loaded as JVMTI agents. | | FrequentlyAskedQuestions | Frequently Asked Questions| | HomePageSuggestions || diff --git a/doc/uml.png b/doc/uml.png new file mode 100644 index 0000000000000000000000000000000000000000..5dfc8690ae8500506d8337472ce5efae832de47c GIT binary patch literal 31633 zcmZr&1yq$yx3(!o6afV!rMnxH77!#4aY*Ur(5+GeQqnCgbq?Jj-5?^}-O^om4*Grn zfA6}irJQ)*dH3v@+4JmYKZE~US&0Ye_~<uo+<5R>QdHr_jazo$pEK$$@X5DGUUBe? z!%j@q?wysjv$=tx-3<u?O9Pm$oq;}yo->KDot-r=6O*;MuBDy5g*l_Gl|Ag8fuR-5 z$biw(z>e2Qnc&8ao24#Fs&@ZebK{0ng1y2UtFf0@wTOi)W{ESbJJho3w#NA03Z-9D zZ*>%^Z?NPQC6yj}EiF54aIk;tOd2|ysyQ-jeb_6#E|P}bKmAy~CY9nBxmy#flT3d4 zZNp;GZ}>l%o*k1vPA@I$6`?8h9aHsC!hBMACo+cO*6|Z&E<54%SqY_*4+?Ou?P9Sw zCZjO%)^{~K&aXnpo>BXC%3j^#TnWj9>BvV(R1Tw-a`fEwa9@5*9G2s_3pshmo^`*0 zc=fwak?8W;*Wy5}=z0^Jap>Y^Sfn}6yAYMz6C6V!qz-%q@_aQgjQwQ1HYIy9vdF#0 z`dQX@FA+Z<1_zmI9A4?%yvt8Z^u7cIC41el0WEo`+MM%yV8yJib+PToI4<ijZrhKF zb~n(b7hg9Xw$pvnv5?Wmxy@@eCd$7Jx#IFKjaqQbrAXkrVo&mr)#lzBwtjDe8Gfec zqOssuFy5=no3s!snLH$IO*!&7MWI)t^kI@2TmMPsxbnUDyXWW&%3cLu!;5_JUrf($ z_Z+`5bL*?Fu60%-;xry5PJ-yMRuKnz%I(Epyugzdo84pzU0EI^aQ?7(<A$@!YtdIq zPGcL1XinIJQ&+h-QZyvSVvM`6M_e_X2QIZt5$=i=Z`JOKiEa=-5_^gJ3M=eZr@8|c zo;N(=1%-DRmT}=r6Et>uu}%XtDJ*<rG(7rG2H|H{QT>&BhOz0d<0w~;_7bT2^jU3} z64<Dg!>7CTDOZHNv4l}~s9%}i5=JHUhEagG)R2E)qAp5-Pv63k7hS)^>Wl<0Q=n+1 z-q$ZDQc6nLDJUptX>(qOQ@(O+xHCmbNvT!q61gdYY=?$;b#*mF=+Y_lxsF<pc#{fQ z1Rbe2ch@)hw2uioBL%wUmXmt6kC3hMzf<`zRqIO318X*BkLy`lA4U`(Tt77`Ju3?( zGJIvlI8hd*B~B*u%a_NrQAn$HwWXw`4SI{m=2QHL6ta~@M@Lh&N53HZ5jy?)^=mYk z|08m7V|M(0#C<I^WDn}Gac~ynpyOp0@i8&fr;*Fre?BI^OfIeQ_Va6NZKb53$jHc8 zwc}0eZ})1tZmZfWn4r0>t*xbn=1IWk&-Y243|t>0jh^^I*QmncG`N018ScON8rfx= zi-K*DhXUR)IIuU8l5cYdfl=aVVgG#jF*Eo%A8ll3MMcH&u~Vc}WMrfP^V5-}Yu^uF z1+ba^qV9}Dc24hhv=!OSECu-WSK}4dXH96>l+;_omDi6p-<xvXiaau>o4Nbu`U;-Y zgZ1TfHJ{s!%yd@)*X|FSZx179GwO9)N%7O~Ee??IdIf{AT9Lg%8XDGQ%)Vw<b+A6{ zx!r(bF<$oI;lqa*=$F!O6I*8=lB+-GFpa<}KxfI-QJK07MOs9LGAApV4Elo~M9ISP zXinzbDVXe=kDmHxg^$+ks?2m&6LQxr-!^5Bl}Xjs{o&nFOgaqyn|skbbr)OpeMkcN z^#u5uo-Vp?rmh~RH+HL?!=y982@U-Gpq+!zfA`D4M!J>|1(B+4&pWvkgCHF~V8hFO z@omu5n1h`BHpVAIgAu7~Uw>6C9yMpj-_simT`$WpD|$hq4#wgKE$)o73h<M#<cY9q zQ|o5vx^9c1*Bx%0e%g}G_t)N4unce{d=F*X;QyXUg0u;A5ZTA%S-g3kXO&uf8r_uF zlQkklv2b;{Y{k42XD_7XMWO%ooLo%XKNmyA2`CLUyY!Q0>1n@ibPk<htrj&T?x(G2 z<!^Vks*Q(;Qr-fa>pS3YBVth^b8^ZBdHFE0`Kp6eCI%j3i;eG&a9<A}#A~=p^Y>}# zo6(>%FLiSZLF0k>i{BGfJyE1c^D5d?(7NvAqniwO5$`HcB0Kj<1IneXGBvKiY<8OF zJ~X`cp2r;b&lmco?h>Kv!NFUr_dFW!{b@jY)ZmSy*KmorfHMs?atSxH<sk+i!QQyP z_!7;ET!RWG5lQvNy*x@a^DlMMpC?W+RmWuyd%w@_9}G7dm8O9RfAX}p?D{=<AtYn= zOVh=NA>1nSpmc20X{T1P(4<`2s$d;VS1j%Hx5Xmk8<Evil+~;E>OAc(YxZKz0?X)b zk>g~xt@{PFnSKAYvd~H4EdP#6fXH7n6V0=b<dlFm3M|}Xtfvu<N6DX9Tr`@^C@to! zxQ?bPZ9_Y>e`a`P7v$~MeJT+TyP9&0xQInw?XBimdw#Rq#ki4*3$c-sd(KW8H90aP zrrhJ;9EdGLsrdSJ2bkicwZMAGMUv*cX}KhEp%d5BgNfemC<M(%a#+12D}In+ajZuM za7yIM6hl9(;-4}f!YrYklM^+`tR?x3_PGr@U$v1<P<*vG>@52<?8MF;`V&XQH^)%J zew;c{R-zu+b1Pfmo+6_}Q*4^_8`3CQGHpqd73UhKk-$`^`06X8%~mt7+q*LbMJ~Da zlhcEyr7pEo#_UlM5d}?($omTlUqL3nA7!V$mx-O6);ijj4k+z-_Uzfo$q9%s4Rj!e zWn04&8C33+a`So;2|Nj1Jv-Se^u&(JQ@Rc{_q;y*y{enXkNG&M4@$@O66Nk)=QsDJ zCZf)0cuyx^c~wC=Gf^-%eDnFB8+M(h8`H<nSUNg7)bnv0a!1V#%d>zZaHMyFZ$EVd zqeeZv8`WSw^@vETyn;Jd0o{bvKyO{>Dq(&*>9GMUk)4i(MLw;6#f~?;quEjpOiXGB zapZcc7<TLDXG;Ey%|r6{s21ZwLrDmqapDJU9D?cG?6=^uJyYfTfcSJRH@k71MsW%b zLC8u<9suLCE5Fb&)|ii`-+MrGAF~ePRBbv~(i%jdl<P3P*T=<YCrM*yW@R65P@u)l zS~MB_Jl9*!7B;m1ds3cKBmH%F>hJn`mCZ3->ZBeEG%K$c?RcfGN1W=L=&Nf#1Cj-* z4<aE|-oCzH=TsH$TW@l-AFMme%hwk8pB@m$2zll;<&#@Xp5BEyh{MssjX>1TRm#cB zqxWj~e%(1YG5FI?T@`t%{{F2-Bg4Jmc&?)d1VfJdD<9?>MSN@MBPk-@w^&Y3)$24I z<1!@KS5);V#t&f-^Augi8WD+<#rS4;9FuBNj++elHi^VM^lK<$g_R~*G4&M`yj`Hw z)Ks^LusHh7{p6vUZXi~co0m>(ojafIL9%D>hsYMzk@2dTcjqc!p~&S}--*+J+g)Wf z?TK(T{k1Zi>@h|rbF~|Y`6{J?S%yUOXjuCQec%ULBZptE2Hy9nMiIY5trFwL&Pc@> z*%JzRr!<@5^I2_ISZQ<?R*DoPS_K;S)~5gCA^sgwrjMGs_}F^SHY_wH=hh;SQ*TG8 zQt&`2{280LYWID#Y{nNdftiIy^kyG;imT2W2{`G^r_OC6dUPc188nO*Oqt}4f0Dr> z;XVbW?q~IWzP_juG0)57oCyNL=s*D4ajnF~GiuP4j*^LJwdG`ruvdV~!WrwW+k&rN zN?r^?6eT`CC8<yEX~#)@984QM>3<{zmsv1n>uYa!z+Hwi3`t3Axa=(n%FGX@h-QS* z2`l?OXt71^m(5#?0g(GUef)bP=O^!cVr`e)eiR$IHlUyqW-LER49jgA%%B^CK24b& zkQ1V%-)_W^1LLDbsWF>CmqQ}398kJ#d()%k9L&Z*jr$lF0-hf6=R;uy@csMW#NMnA z=7z_fWc;x7LOHUghD5A^3H5zP^7g%&g@Tk&@nARQQ(He6GMZdcK^n081dbMrl7pVK zT~NNkC%bHt$$)89F05JG2jb-8{hm1S<g$d)6M5mh<BlICdy{aCn@3Zte*A-U5lr@` zFF^!cs+F*SiWadzO4K%;#lX|OKAzcG`!|^~@pr}Fj+d;G3op^B$T(0BYkN-e*%@z{ z4*vFv+`$lcVI5o=O7Wy$UAO|11;qC`TbMynv|;yC`A3e%r?Y-`BT62zq#{~n+!(Tz z*MYkscAS{inToWm4n}b_eKj>&?I<DR`a*8@&<~9b?=2j;bX~VwFY3Zo@?xO%m$y?= zNWt1^u3xW+#cXTVxoTxle|6myqEVvvu65@MuTuY4vxzm1Kl6vyP1WV45PfZFYMZN# zjm_T=m&-OlJYzP&Hc10PlhQ3fAQ!rQcToz2655*<#gH<w8i&13B6J#^FKSsTcO<CE z@6km{bs~eR(k-93=cqQAZ;riX(LdWA`~oP(LB+ci!g!&c^0v9PbvMiw7@hujWYUxD z{1h=-Y(nWNSD(-!<w;*eZ+_v1);P4Vpx++(P#PKZBEN6`B+%fkWoSn53vSe}wsFw0 zKdk?D-y)5W4cky`1U+9E{x(k~x2La<E52uA^V%PTOvl5Sj7>Ac7LO3ICH^%YBlQZp z>TXLy_jHaj*!`90)oEflXlP!$$c*SPM}SbDiwyN!x~#ESqvlC<qI<?KT31TMC+%)e z3-NkRophIqjpKX>Lm!w6W>S9}LqyEX!CMLQ_ZT^T6B4~ybTF$Kal4gzK3uf8b@J{2 z*c?VGM_Psv+C~s$7p88r1oa#LT0c<FcbHrljXSi;Azu4P8sE{TD3ypwaCK?g`OWxM zu0nADig%$#q3yG>>y67Rrq!I2;QqZt+32V!-&d9NYicEACY=)t*?TwxxYTKQr|vFh zuu*NHG|IcenxRV!ki2u1*c#arlpnMX3D!wCt`7%BB1ck2@<%G~Yh3S?XE?K%;%naC z-XlVv_B<a`_SKz5#HiWa45%nBm@hahz&24qPD&9E0NFq<OiR^2c{8iFoeB99_kDn3 z3ne`#{;I>JYor^k+opS@OZ7AFdgnMd1%PjFueiAQ(FK6^_lIb&B%ak`!Ia-<e?xy; z5MNMS(DlFDXP}{BiIw@}$}GNa$9sQB?Xqu3Y+4wuftTO;|J@K6AhzPAi_a3;aK#fE zgI-A_BgJutdgRTB+K9m~T4WZXmFm=Xv;Cm4_qI9uHQ-u5*W;%mA2u@z92G^PxzJr3 zTF#3J+{8DPdY6SUFE}3|0av;kz*nd#!iBi73lmMs%x8a)JoFXz<zs$RslG>x>Lm<_ z4a1uMfJSSlPN`QJ5=L#hbIpw}l!F{%-s_G21&kH;2M`16+^w;?;yRVKqIgLqE3b&D zlD<TZ^1qkhoxtr!(@Y&5o-^>jHr$&>Z2yBCpKOg>c@hn%6i?dk8E|4;!$Ai2S<Sn} zri}oz{R<ict<@A`p~OyMe-NTD|4V=(kHlZX39f#5{rxOqZZ7HL+;bFt1pq@yhc#;{ z+nIdbMq;iVarH#hle|{HqsMz<Bpn%<#gu53FHR4<KGsaiw=j%Nlw?UQUbra3)%H?b zaV;S2>5cnN7X>>`k=pc3Ywxy>2f3<=fq6F3z7Gh9_#C=@KD748zxJ>TkLrA$GS)qD z@}>H1o7A(syT!PoeKoerU$Ycm?UOw`9n>m5HatS68#o+m%D-2ZWS1}(*Wx!<6%BEI z_R1%dEPr;)1QWh^bfdSpZIdI=%0UQ><s2MMlwLexu`8O(_y-9$_fxAu(*s300i4H= ze*$d5VK$_SpkC~bWy{wnZw<ix(v%<`gl{obGdjCs7{<eD-k&N~YC5<bU=mLek=;L0 zX=^qN52BFA2xL$nmNrB!>urlQEL5{u&&wm&Z1llM<Z~3yFZ8c<J#v}O6CS(t7~Pp= zu#ziYg}B-mj%Xjc{A1Rvq%`l`XF{H$k`g5+0$kj~i=$}_^2?R}v_*-GBmr01MBan) zX^-Md<EzVyr^H<Zl@41|?n~XVG2hKVl5HOKHdCC1g@sy1T-^5{(_*MA37WrWQ>R8x zYnd2npZ0)|`)yjk4jC60o@w@zVssj_W_?$WQZ+o+v#yXT<N#z-S58&gOD71K{Cpuw z+T`~Tpz^GydDtgrdS6a&j2~WDGM_$V?!j=_M8lXZioIDm9%H<#HHkkcqJpfu5po9B z251-=Od7|K-!sDPujJ~XP2ZY|*B?OaB0K8w>jGp+l42c$dW8d7a-J6l!${YNDo^$2 zdt97WJ8U-IS<<j-G^mWq6+bL9)?@;hB{s{gxE%uJwNQiu4&rca<xO$tv2q>b@AgvI z^`zPHg|-C|K$Mh}I5Y8{{DNz05VkOCR_Q0|>g%Vs*zn{Pd0u&Rze1h+2<@_u=}*<! zEiG1KT3%c$P+Op5Of0ixSJhwnk-}v;QDHqR44PSt8%)x+7;0I%EE?8uD?USJO;+tV zuSDisgL0K~5BCS;FsN=d?5_^^h(zN)!^OoF7ZsI6P`{Rx{C)!ujM~X^ay7{?NXbb= zW^X+cWyWk1HECEdGb+~V?Hbhm)0;_SJSHt~ZJ%5xCE7@dZdyWpfQ@@|ln40dAo2Ev zmGv73xYHXR$mOL(%Kx~SNC=Mh;K9!E2?WXAe7X%!6m--pY%HOHToTnx$+%9(&4#5l z%(vD)dN$g7G2gT*ApTrZhQoY9E2gsiCqY|8lGla(rp%*iMkK`3WL9w97OW+bv5d2C z{rt#c{BpB163Vr=)6>dAuh|Bd2D`EwUUOcfj=S#iP2$(i^5K&q(56P=z`){(I<`5P z2z|}7a?W0@y7@qFuh-dBiskWToB7SHJca2SZ9gh|DmSW-aomw+%I1a_hqy&D?I7{d znf)Z<)vH%TEM^MHVE`GR`;d{7lM4w=>$58V?tn~BXd}CO+@`Zxr#;D)n|c+~+}u1e zGLoL24j8CfEs%B~_mXL^Qp@xEj+a66b!v|az{Un{y7NmXF*!L|z$GVo9+Is#`>UdQ zyMP%P@ouuJUhjBR{11EiJW4rppO&S*sN41fSP9(s7H)Yn+<5>|X9c#Y>-WEJg**2k zJaqqg?=cVYWC6JNI_0_A&LxhGyheQyW_M3Hm`u(49emEvPL9LWuF;oprAnT*K-75~ z*v5dPQ=oJ|5Cre)WRiG=cIJ6@!VO6&WRf=ZPVJIrl(2}2lM@m)x(qXrFdubMz0d>X zinNjF9}I<sg=<_%P!_x<LbI6S|9N1`sWM{N$iRT~2S@{Hk6vQ7qg0a05qq-p{xNSD zeLuI~m>;%)Y8R83n7ByPe)EKcYhm@jp8&SW52$Y_u|FGIKU{e47D}+YZ&0j&#C*Vw ze+IydWA^fz74hOY!b7@Huz{)7meuQ^w7A8btTXaB2rA$#fkWvjEg`7UWA$mv`p-7l z(}4enJfVin$-!#v%^oY_$QXFkW*Ib;AWkTD9!d3SH_Lv|W4O1jSQyU?=oA=51YNji z`+?HA>gizC$lG$Z!$2AV3Bo)K4nF3>Iu#U7%tgQfQC@}8X@z)j-13+doU@(2O7>8m z@naf_&SuZM=pVI-;XXYvHL#|Wd1BG^ZXWPEFoRu!O0wrCyPC%w^R=;p9)6Xy!cqsE z1jLs{QmTGM^M^;`=HHIyGTTlkEA8VMM3D2UBY7cU|Ds5Ddp&A)V0BoEs=QBPgd_U_ zxldp(>(!$c=~%GtDp^l5pkbH{wd=zv$v+X1U6I&XEnSt74Ug8F#<aP#4U3VFw-5dJ z@ng={j%M{U*@Jw?i&>_r6m9npJt6gE?e=@vh!y143mgkZ?X(cubzb$+Bj3%tD=w6C z=!%NTAQk$Wr2Sy}ib$j0qlbV?@bPlZ<*9bFNw?Jxl8r_m7G)@$QK><D;dJ^KP@8l( z%B4dFMq0%F3mGyIbZDXNrJh%Yw94ALr(>mP4Gl-o+S8P6+`Y4X=PzMq-`kZ1SM90- zw%6_V7Q0TUn4hwAr04gb=;CdxaeR0~8h%;3^(|yV!wbyu=Uw&#nKzm0&nuW~ZQgmd z;~*L}y5*$L++B7TR1Ve#QPI%Eja^T6xz`KN_E(S24qR#3_v=7na<MEFpTx&C*2p;W zqqtAdoAB~{`K<n;%#RtH%=2h+xv4RSR9ASvN-U0>W$yA!#B>;5XSXW7OQ&Z$?KV(r zGtW!iI(>P#-QXo6KeoO7ws}R*GRDhEGv-~fR{I?S;a|Z+s9$D;^Dh?5@A8TRf)VB7 z)VATFA0_?d?#6n}`ipQQMfJ4kgC@gRTTFR)bJn8Ee5(Y=-)U)2Uot<qr51C4VEfJz zhQ#NrH)i9x!`P~sC3bT^Qu=}jPd*;3oJZGtFE8A0-BrEEbN|`TiAF}|iJ^Q18c!gP z+p(_n!u>u{QmIyr^@J>0i`!PZ>!^7?MICvcdR~RAKBe&YUp=qCI-}|)6gVZ`Te5%5 z*1TU~!=S(BBQxc;r<QHD$<v{me<2A6%r(&tonD}TS6bvzsZ@49WmeyI+TQX-`e~VQ z^~cwge_1rTcwx%K$%3WkBC)CuTL{G9@88o=Qy&+=B1?neh*F4pYgP-oto-=Fs2Qh& zZ}>Q9@SFUmVwO1S00qVTBhk)~U!f0DWiYBq;+j=@6Q0p%KJK4=D0H60Mv3)SefeHn zU>7&^Q9O2<>XX|yDJX-9iG%Y4*9A|FHANFx4}>Wj5kWAtpN2?_3kwUc`6Cs?FhNi& z;OFs9wfoEX-yBQ-FnzV(O%M&+n&4?~Uf8i)hg>|IrkA$*dHdq<`?sfC$=@<Th|5}V zIo=-sv_0c%*hAE;QKNS{YDE0eSWH9`4YRI|7yFL&=GcXt@rpZc*Cz)aCu{0PJ=Bd3 zD&mn6llO0qP#Nu(BC=|67?uL9T=$*KFHSuG>QVZoy|`|`gpFsqDFF)#3=9kjfn+PG zsi{c>6TaG3pX!Bt8%4{vbS~RkY+8MCLs2X%9&$+dRM`O|_|2x@b0H-i*4XX9AAFDn zd3Z#wB24Tf6oLqTlE<bmY3m*1dF6V0M^V&iZdBA2t;>93q`t(CEOUqUUG#Ilsh1Np z_rB_Fs7|#HE(ILcd<rTv89>E$Y6(F*ap7Tt_>~?ani^5He7u@awOEuQbC)%Hg;L<- zugCKst3H~9N3k_gvT$fBYVgPiFRka*O~fQiJXm#!k#y$ha;VV{5Srt3{QOEacBm$Y z8<@ytXia@^yfZr&D`t`dLHIgJ9RzVD6_#NPJtjo!)79OP$`Eu<IzOs!)2ibKV1i1& zw~|a_l?UQV*Xgu_@XWvJ;hL;=aQ~%SOV5gik*lK0-Dz0OlUGXIp`7yeB^+?`rlq`m zd<63mdy~H%R)h8_1qSW;F5Q&6W|OiXpX2}16IqZvr{3=s>ZFEr4ysjZRWN6&m%933 z2O0H#ZZ2t=)|gEZx;nX>nQ{I4&3@fQW4XX&;JpNKe&AhvE_kt<GsLV~Cm#&HXm6k3 zS*Vlh@!H@+iC{O<7cZWgG=HiWN#+bhacs24g<y<B<;CI5bhy4_&xg9m!hJBRb;RQ1 z>{QK!zT_%oM-V-0C0TSUKN~ihCh-HbGtUn;WvQ_vB(UC(LC~%c8${5}*80TOFbwmR zTbea$Pp~<$`#EJw@n7Yb{Cd-0ViaeXhIcLnSd0idMW3#NEPIWDDz&U7tUe|GRX?k! z6k<xb#H}Tqtq4G3#kvW@tF?$Cr_#>=QElsHlrwR){LQpXZJbmp<*mNH{=)Kdyi6uK zx)u@xzzlM%D?x&_9m5>Xl%6-$G(5N-fki+CjqnqMzC!Z0l`0>hlQrI1FvJbot)Wc@ zZMd7mhEtk++E}E9P4uG6ra8-y03d!P95SWkByd|JF5bEJqt7}}qiSg$S95|barj1< zSy$A9;-Y&eCJUy$Jk9IgnvyG|IAIoc`_*3e?D4Ld-*V*~<vvSQuc@cR0z!ZJ+p675 z&3G7v;0wsIRpradF&R?Q20<Iu3Y()+rn<!ar8|S&Eo!mj2@$!>olh(v+(NfZOX-qa ze|Ln2uDyvDEOI%pn=XvoC-)*Pb>3?$E{2?iL3@^-1Fi}{L+^4*MarqmbKBsovZSc8 zCl(6%WA09qB_?WO?14RXvu-B+54#q4O`^;^hcm(chyNCK;B(ceRnJ>!yzF|CTzfJ} zcfoa;QJrHL|10Zk>lvXtfEKVz|M3hiev09mnr1*Ij}^X)WIhcc68M3#7$7XT*ZmIV zA$$+fZr`7Z_OA8*m)-`A?)~<mqfHGBz+F{4w&}X`CEeK&?cOmz**pl^?c~tiH6Ol& zzo~ruunWiC@njd?_-^cSH+p+xgRAbMtSv2M2q$Tba*F=P((SRl<aWc0A6zGX&6?Gm zy6vG$?ZqA!aUigN@f1xID{Mh&>fp!gn^K%L7wqWOnl&I|z{4JRM$slNkFgrQrH|i} ziu?0k$+w8^@PmX219*mZ4>9gy%~jLdkz+ll@%r>BD9>1GG;5%Uw|p-J6%VDgvE5E2 zdHsUY!&2Z1P`klTSxD&VpP*qo(P8H0s=P6qsJMA6b2-_{VI_3;*rrEOjw1|y){Gq# zLZ}wv|A%D9oJ;!4u`d<;hhrZbJB%o{U&m|TUg>`@=jJy$MxWI*Xo35kOfFu$q&)xk z<T%N0IQ(OkPUe9MJ${4Myv9bw$jGxf4VibrF|!}<&ZlVoVxi56wzGG&FIV$$b@zf% zc+d|IYq?exSpNzlAZE}yCsQJIAI}*iZ`5ObXk6UhbDCns`p_TSN}swr8n~>*H~pb+ zF@)b$&Zqd~1)r-=v~x*9$@WjT1!)5&Sm_@}jT$6LaY+jaL(PuoE^4i6BTqs+)~XWA z`1!El0)<YK54A0*qoHQQnAIKveJ+>H{#FOSCwG>UZ9`8FH@(Z}z6aQhnorrB9eRA8 zVNmA}jD7T|2NVxbG4zcPts1j-<go8wxU7B?aONS{e?MbgFmTTGC)Tz0t9-=yx=)Wc zHs79S5mK&pBQ{lP(bQJsZJOBl90UGD3Veg3t|d5JT``Ug)}%hS7EUR~lULodJHAd3 zLAUd+G9Zmd+$gYo?zWLW(GSD0_ydt?eWJ(11-cBY49APa@<xTEt6sAS&WuU>+18xN zC_0F3){v-hTrD?}52_eOQU;_DlMMZ&yyb4j+^^mhhiw(qn`}%0eFz6F_~AV%Z!__E zLqOM~dNnV$usnaqqW4_J?O;$zRI*V<W`=<hpTp%iE4d7n&GSUe@#><qnUFb{&sp`U zD&eM`pvF3^6Jc3=gH<fDb8xB5+i950Ke=<`u4@oe{d{x6PME4hUho9r(4^tX<|aNs z`GwF#=k>AMV;hqO!?PlD=7OoR9wMB9%iG!3y-%h(Wb)`1y9Z9`7uI^i4`_eCu<UsF zPS)eXaB915d~9DbyWezRUcl~l8&TkE{zBE+u=YW{8>L(`=vFKWph!T{DDs%nJ49GG z2V>PzaheW6?HXp*<oocs5In5cj#MKXHBqg$#(6BkYO+jL9DayDebPQSRYwOIV1ZF6 zE5YFcU*EWyZIRj>l0o7_zJ-s5*3ON((k9fl4{A+r3aIz$F05^vxU<3-w!#lU=!nlC z)*Lyz46(6V^kgTQ_pw~7+AO=w?@MYRzTD1eOt5WFw1vB$ITSf-J(vw<KMfOybGD79 zh`1tDS)50UUhAO-a=)&5JLDXu>RDnr2{qT`f3%`rHm5-aDd)lF6xN}VnMd&!sT3D4 z1Imlsp7ue*`K|=pppYvWm)=3G1$B64@h}%P<nauw^yocjAXU+*#^jX9ocBo#&GovF z;n~FbUtxp_cWQ|TVw5yQMGnCOQz8zkJCGdWc_V&JVt;(Bs(MN8`2f*Y3Nhz_s?0|H z(eqm8lK>P1ZtDzP0!yUUBVH4Q2<s_K+||kIw0&TZ4K5G6)#b5mp8(CJhGB2QLzhEy z&%+Is*%0<rI|dl)-}1+7+XDhzVP@CE7u?DDwdI(QXt;4$2L=;AVE06iaRTt!zg3G= z>gfjNBEZIt!<KJm+K&oGN3YG_LeHkOz`9qNI~3Gb)TjRc{xY-Jt=JCcOk#X^jleBC z`NZq&GeVzKo7Fh#_9d~lv5Q|F(*T$8o;ZWK;7RZ7z^VSiT4VSDG@Opt_tdlM+Zd({ z5x*9P?T%x7nbQ6h^idRt#VP77lAVvr_cI$wMX6u$^Ha|==LNsGc#`HEPWd2=Z5Kkj zJld@bHit%esS{K*pF9BYw#%`MiXxrq>Z?9O9|;Iuxv}MqRM>b$(q(Z+&}}>=(t_0B zW1NcOm|yk{ral6zUTmzyWR$Is-|#{RvcTqfsXCi8quX>U1!1xp7~LSiT~+~joC{{4 z2Rp%h!`L2~J@@nTGxBCW_6N^)S*K37CNrUu*HGe?D7@x^G<>W5K%%7_6jm$W|4D+o zBDsDWp`&I0Ca35~=98<i5xUNN>pd4HTJIsN23hZ7Xay`*|5Iw&X~BqdJBj5v{MjA5 zd3Iz)Df4b_uaECXv{v}~?@R0feEa#PpRu%DlNAxUc~k2B^8&+FEXYQ?>^8@|L0YvV zmwT_N8r037Fy$HK7*{5Zr#7uoT9CClW=hF8V`oL$&)?NX=CcPf0YUC3rNc>4y{p4p z*~iC8N|}xe=p{X;R)J2NOOXPEbFs7(nk@R%W~C7E`zq8=K&s%jK$rp*2-Q)E%t6@o zR@v7w*mWtTz!-jQh+_Itx;4rtWh-E!W(iJ8$fpItR);}q5lTlKCF>>)KRddr_kCdI zeqz8CYm}kJkKHrHHm0xQc)ZOWTa7(FfxDzSF<oC^{lriq7Ib!!4G|vJQE%9{q}sR8 zqvWDHJT!!$`$+zTxbOcKb0X-n^(#$F5si6swW0b%%vA1_akWMzJST3vuFhlOxjh!6 zZm9RuWer>u;XvtNzIhJEs^2|k4j=xFUzp+%T@+*AE%Ud|^VGc}9Z7aa(m+JLna#AO zG%%BA40mMMUHgn}cTemNcT1=s@#Cpb_gC<ljqHJVZMTPN24!wN>2DSenq+XI8K28c zvgzNyrLyRy8DSfRW*AhBk;%r&id6>WPe2)^2v28SJY5KXD3d(Z8%tH;e0XB_o4-WX z?QB_S+R8@tsg<+p$Qev5LWdpSvDK}*&gKQHjC*>n<;<DHavxuECGMkp;WD%`fqZqw zuXJ7b<Antip_QUS=5D9&44%uVWu>KFJvDIqVyv?BzCa5h0m=JXfTWtbNQZ5g#hVa; zc=apWXqHLtf{8t`%q+JQbx(H}Z7>&4$IRq3Ca^p=$Fyp`c3d048DE$xn>8S#oo9UF zTcky`^I=U!hUj(Y56(^_E&0#KN<V1LX%mdZwp#4e)$yx{c}c7E?)u~dj!eDI7H&PO zefe0>N{i~mD5DY#MZDbm!uEwNPpca}O$h3r>xiqC6eu>f>*4C&i>m;|RaogZ-7VD5 z?r72~t#WY`=|FoFYo6KsYQ7NT%e^2Y#rCXYp1^q(g#Ve>h>)bD<Vz!w=)I3fg06G| zf+1q)d0}=D%QoJ{PuJ74JitRf?1kcYxoPzfqtEedE)b5nsIJai2v8na9X0-<8C}Y2 zkXo(eu&@-BT%VC!P1^j0B6DrF1sIQol6o?!@m7>p)K_#?3|GuoU|P&be9ucad_xke z(uwdXw%&Qqf_r6v2M2x-kaqxC)h8-;{0F{5IE7xUE~E}0OizV5#VTKB2@eaSh;WJg z$5Ql;$d0T9+T+sn^k#ilQsU1pyos1i+PH;HLt+MfQsY&|IPs~_uZk&VDPAe@Da9#W z&JEY3V<oF{95f?9jQPWdhw?rjMrL2?(K<9Vq$~aVoV_@ezln-l<zvhtB<lxACmIOm zkoQ^OTR32mP|O-H!~pTu8EIXxgd_v87p1sWv41ml4u(NvW6Y<OgJFw0Zz}3PnZa-x zR{U9>kkhm(Qjj{PKzWdt%|$`&c{SD5)nPCgA?f30jbwr#agW67CKLoKmzI~wdHapo zpUOD<DUiMIeb4wIn3NwQT$}3Jga|o!qx&GsXEK@D=TiPRcyCvEJ002n=XNQp(@wsK z$2SAVOLo_r8{(`z!*)9&9o;DEY_n7v8{*Ca?|cHZC1D=gHGhdl?ZJ{1{wxoX$Y6*q ze@z$vtM|ejit(hU^nW9IO)V=3A}Pun4_egk5BV|;y^9M2qlu*3>AtPoH9oZf)jO1R z;yQ(QdhYp{=7fJFd=TzpOM=#wh`7z*-r%O@l$}7FqmpJ(z>NH1FNHq^<~>~hn$ypi zVR%;5Ml~_OS}Nc7CgiBvcAZnh7a9IZo5c<>W3_N=e9N$t-b4%@KG*8}W6>P0K{UtY z-kIXn(C}(Wor>T3QkOaIp9hzZ0JiHRv|RAW*K&r+9B4I>+BU~WjAp`87m5%6ZQ_}N zX+)y!9|hQ-?sK=a2;6-dY@o1oC9YdAHE8znT(8|P==HS|c9TD@L^jH6hopa8u^LH7 z?pkO&kbeq#8y;Euf<++Q{TfN#M2}U9Awm#y5+Qa27sZ0ov@e9=M63KDC@zxo@SJ34 zC849CnT(aJ#&MX@7FTZ*SSJ51@FfmmcdKIw?DZykB}v`wPv)7292Ry)=AI?`y@jVw z?EJu%;}1(t4q3Hb?hPUmh_jeWo2HOxN<P1ZqpL#tJdXD^k5LWVqz-dTkKuaTSaFDQ z6?Agr`pJ}JWO~DJ&7r-%1fGFZu|U(ooLQWKIWFtp6P2ZA!<Ik3eo)V^b2%`rbvcld zlJb^g(yDQ~x;UEO^ufU6b^QI={!!k>WHkf|GQ&kx7G!m>unMb_-Q=g}eS>DJ3O0>$ z>g_U%@hZnH#wWK&wW{pU20n#*obO23*qc|$r-{dNS>Y~?(0e^O5mtXvVZT1qu5B3H zV^~;;wjTTH@kZn;L$^HcVyTO&#Z42=3w&mGnasuf;a$V!)rpzc@^GRpWH;dN5$jg< z7ls1Fsc}5El$6_J`5Ih11W&QCy%xb9u|3$5093C!s*eO)?o8?F&3ylWA9N49va<3x zDR4db|CA8Ze4loHnzp7YXIvc0*J#JamX2n8@Zdp9F1JMI<;7Wxy+zck05{T%0Rh*; z1YY}`5{mrg5p&%5cx#X9-p?U87DGbkypu`Vw=+XJN@@<&r#ASh*ws>@0^`o0pvO-S zIp4)u5|NL=tq1ZbVQcG+kwPHlx^lpiL0z^ls5zEaQ<YK0Q}aKOi(^N7)U-X@<oJ8S z<U-jIwvNkxG+|36m()zx7>%dp^eSrrt&sj@NdW0<)Vs}p?Xtifsk)hAn-|}*M42!R zZ`$eSGmJbkBRODkWw5G^;^LEA`oaOM8M(H`Q*~tO$GeMCU__c!h644I7_4EOkonPb zDU1X`_tSMmJ(vh=9+7-J+Z_w{d@-K~OrQ0{bG5N+v2=bW;F3N525OPQ9AWu(n(M6G z^y%CsuZv+Yw-QTSSA$R!LRW(VOKht+<yORpUu}eCHEvruUwijj_nxOOLj`^!Etn9_ zR~fGvX`Xt;w*KmcfI#i0rh=kki-_v>1km{~LMyOva18dwF*b2<a3ayZe*NmOIVMX~ z6i$5nB|JO~r%^>_o`atLK6%mhqou9sdg3&+&vbCJ;`^8wqa`K-3>sx5xs|rd0cv96 z;_8HL#Yyjq)yyr0>ufe68&cmuIdidy26G`sgE=NdJ4he-F)&S6(|+6A&@9%9$d%xI zm;&`jc^{tSacXj&)Kbn!O8P3sd8zx^9m2*%qGM8ep?!AC300SmYjZ7uPcgiuX+>+* z++26M@Xbg)&DFVM_mi(&{r&bd@OT_Ho~k_Zn9;6v!5N^EO~4Wqu4Vr5vOL-Iva$l+ z1AO<Q_2}LMd=k3V5hYdCPq(BIFAM+6+E-QY&sf%X=Hq_+z>;f0+#LAVodXwrJz|wr z(@1Zk7JiTjz86ApB(ASt9Z*r{??gD2;tw<iOqC9&6aFpe1DVhh*UeMmv9lreqaNOO zt)I#)t{fJn;AhL)1FoNWLt{)wDr%W+5msd}Gy*7mM`N*|hy_BW6VClQq8efZ-k11c z3LhUIpi`^#bPp#kjnQ4@{d)x{fgT6$bhRmJ{jxhEAO8B4<ftd-YDMw?t$!Yr;_`v| zXY>H5e_n^p*%^cAk1L4U^M{1%B~}Wf{j2GM<nwcLPtd{GiF<g|b?EOlgd=Y1fQ=Ru zAHAZ9j|Y3&m6`v)(q|Dmhzia1D2VRa0Xhl~oSuO9fNI1+7Svxp&;r=PM1<0H6roVu zm~G=YtE;Q>0d(<B`wS4C+wmqY1^H|3<(8_o6yQ+oj0)BKshWC47k}5E+RsgnyDr6% z64rFylv(1aKScnr1auOO4PAH_Yr~*G32IfJASW$OvWDAL4rMVO4{m^>A=04Sgn&0f z<zhy*+l}Y%SYBTe)GvtzF^s{jg%<DQZ*CbLD6&N+)jKT@S)9;<vSHM;9w^~z6V@~9 zTvYH5>TRDQH8K|zu+n8n2!#+=ZgS_r(4cmG^0|);4(1zGWL@VR7f7j&$+91~>U7gi z#4uoL0YNo$p<rI^^q|<<a1e_&;A)ePcM^_Y7l#4`k^_r7ubegQr;rdiS=mFr;>$Lx zknG>Tg-*7AA<R`~wUhHN;hTKtm!Jd3)Jq8>Pm3c4)i2ifIAXX9nO`f{KA`-n>X{e( z3!$E`lA%EQLq<~aljA?dQoiC-1Qe7f<u@!Ii7@1Z?i_Kk0Fp9sS{w9hn&P6bcI&jX z^f<s;#igoC?jmP+y|}0d%Q$DyH1eN<u8<)9q}*bFEHz;))2B=EyvCz&6;w8>=&70L zXy8#to<gU@Dp{(XC*+wSz0%w3_-IJ<2nre>Fo7Pbc;Yq>3Gsq2|3z=!)y}fC#Zir* z@=6pC0DKr0@bd6<wca4}um!{CrXjY}l@rRD3S|l6@zBm*AC{JqA`uSnxI>QrUu}3W z4Chky(f%&9iB#)gA+HBBm$WX}az+WLj*6NZkIK3?`NAGN);T^%7UdG+x#2VYc1!G4 z?s^k1&>4X~Uwu!orA8u~uv|kFq1p)lJ2_C#W5cwk1#@l0$YLhi4i%^1#Pg;o%5#b< z<oD^&eo{r#5}bvc?4wl58oKL?3L8Lm`O_1YsS~Bn&AmtW5Sju)`=uYz{Ez0ci(nTa z3q_P5bB+KDf8px<R51KY>H4A#>H`7iy{|bDzwE0Q_G68u`gF}T2N!5-^ZcV(0n&-E zsornx=dt;yI1q0)&E~Y<f3nwW1V3m`v=WFxADBOAYMmb(MyE^<r;A<?3wmR=FUOu% zHk#`bm$;#>ECDAu2x~9Wy!v(H_nXeh&?{)KP}o#DWb|t9UI^#<ulmUe?G(8^%wz9+ z>?YXdV)uo^!6b`ap2`V^KKz^zLc2jA80Z=f=&I+U5Wrr7S_+wL2A)9f$d*uSaEgQN zdWw-;;^Dwmk^+1&b*0+<TjPlk(VQqXL_v&ZEGk+dEx$|+LFapat$^(3ju=Mg`RSai zhs*Gb&e9xZu(+Ewfkb@ByS`*`v@QeBq5mUJH0B%s*7wzHOB$Xv(@Z_r2r?oB6c~ZG zE8VygFLPJso5t|&rJu{CGg3t(rSOYVw_=kqJl;+X=a9HiE-w4%|D=qX)R-CYxjcTs z9S7VUL1z;sf*nO>UTZ@Wy|gF0opUlEy?(h<rIHIIed1|_APG(kMP7%-Uecr0v%1Gv zx?Eaf)E;BcF-|i?Y4o=|LU|8?jES#b%DY^W`Mw90&VFYtX(|Zgt9YtbddPq4+5t`W z7C8F@=?v9ixn0t*Lchb^F@BGqc|gROuM#*jXwF$ocO8B{a0cjB92pSY1wZK^MZ^XR zMK+5qR%RpM`eDk^xhmCjmCH#$$UFr^w7C#DgmG3B1a4v?9na-iqh5NpU1c&*6hIx{ zgKJ%skP5|q{Mehk37qB83`6!Q`zNfYOWJ&7JLNf_O5{aha|Dme{>$V5=zq!!k(#_E zR5!(12>YViv@jy1|F57NE{TNIN+y+cyHe53&3*aHSEuV!kI3(N`}mOQ-m(%~?2h9= zXCq*D!eUuW;2}mGh>g__z@S%UCK4AVd5SYAU6oo|k}2a{tyRmb3j6W(Hw3;gMz3YQ zaes#)lSRTq<gln^_itg~<IJDJfI{6}Y6uuUFvK?U@KQ5B&H5xG0nfSSa+jmu$3R>x z3CPYy4S61*7y>-`C1Cx0{e~~Lo49;dmy=u-pf|b#>15-c7|6ka1YQsOUkUuM;g8RA zuk-y=^@7iRHw*$7XVtqUKIkq25qzZ8&CW<eWFjdHjmQ=7A$iJy&xJ7%^YT44BU6qf zZ;<udgp&a|jb@y%5P?cg)BS>q1*ZBHAmoo?Yq6~$bsg1n?jP9BWhZvT)K&zAIiy5l z&3wT$1vj3yh-cGUY*kcJ(w<b8m-~2X7m&i7`fM73i!J4!p(Y>_ffdmN+Z-<s?_mo@ zy^~>+!Va^ihAfj0&&|>MWqD^TL+9s(!jo)E@hZo<hmxS1r8gF(*g)Brj+C*JgNf;p zdS{2)JDdEC^w;u@&wA(}FxR8s)B?+EZ{ezs%t$+uZ4=p+y^;jR!RZ2=fqNpRN=i)e zEndS%8?OuM)JLX(H_YVVhwATP89*umA|u`+?PV7mur>1y@hf9$Er$C&s3;IXn<~2` z4W>Ys`-thFd3@%o+UqzOX0N>8#IZML%HPQNd8kRiWubo9%@(3|)i?NWyCf@D!q@f6 zMX4O>I_onL#N_)9iQoI8NGUdq;$|?@L`8j0hjN9D=Xp&AQho&1Q9(M_YH9VAYb13% zDB#^JBSoRgPiv(W8E?+l68U>$*9UnP8ji7vnj*ix+#OjUnpQX&zWG<Vjcfxtq4-{Y z1{~%2m4t^ppkr*&@<|TKAiRaY_<jQ495)H70xYBSiSvAnbz*R5x;_%lfPi3)Jf4C@ z`1Ih>B4l<L4Ml?bG(`R%cJSK18A8Hptal9{ynXwQE(O9^hTu=-6CFGQHwAErZK2aI z1MK}UiVq=WUDl_iAAbf(S5B9DiaZ+==P`QLsA7x*^U*6+w*XKI9BDa9yAEjBO@;F& z&wbI`{G2Zby;cKA-`VbY1k9i=#>6t4DJXo|k11%-p{AkH{pb4d4sUAHcl9h!pZvtP z=c|OFT_w+Ze0OmglTq#|3&6JkL?TW%z9XIth-F_J`Ztg=?0@cUmJ?5tM+|4Rxn;Oj zG5Ow8mRz5_m<EhngItakI9KCFi<8-sqT{o=Q>Vh5UQ95Qpjt*<-Dk~C5-0zRMYU2d z5=p-?$KgNd1>_sjY5G_~u|0-f4POUVfByVA)B}z9wR%NEya7F|m!ZT{@Pc=G)*+?y zCFt?!%W9+$nKbAAc4Jd^?j|5v1IaV`2~G-5UTA12R=Kg*`R5pbiU24&OpM?*=D&wX ze>Lx(qg0<2i}AzQCU+QB;{Cg;8$te*VogZpHHgnR2f11ZaQFfoY83u;m!<jaF;HqZ z%tRjVY&a#Oyz#py%9hH~pKh!gH~8`A9^TeO6@yhKKoHlH&|?dd)*l0ec!`NYlG17Y zFYnW83qR95Y=aK&`_TU1+chAb7aqHKtcJYox~qM6g^*k`g~!$~kd}ZUd5R(UW7Q5z zB#NofzQ6owO&Ozl<l^4f)gSMT#n~z2o;;8)Rxhr;T4++NFEYvWbT2!tF55bWfHe=+ z9!h{%%v}nSDc0l1D37~-zxQOO8Jzihv#GMLaF6W94<vx=jyMS^XGQ`zr0)R$mOQDj zT`#kaw12hFHP_ox!o26O`ruIR8Vm<U#Dkp>op$nU=zh(TSP#||(YX%k85M|Avom7Q z*|m=109W$7D;6lMyZsV*P?X#05njjIcG6r@ROgySp{=56M6F@jx#vbQ=&83Co=sx% zkb$~)zK0_X_8ApOb{3`F0)b*7ck62FITy>OV>D}_C-5wYZOd3pW(pJY(f{=cb#>lq z5-Ji?T>zK?TC8i2GSY7Aoji9E`p0A^UtqHC@^64eF2aF>t+&aNQUKT(sa!5!84&^i z02PI)F|q3skUxz((bmh?c?K}ekumq>pB`MNLg2oM%Dh{kt8Loga$4lcV7&h%1b{%h zzA@bmnGYPbc@i_+W9k;d4R5AQg{s{J?)$^7y+4>=QwnU5c9MNY4#r6tc`6egI#z(v zn%5XKIya+S!tf9qXz7Y=s3F%GOvOi@Wvo_ugHn~NQ@00{vh*?v%2r-z)KNhqf1cPZ z_Va4u46dyah(I+0v#}>C<<A4>$f$4;io>h>XL}`H>N=+@HFr2M7CWykAFi~l%R@II z@5C91X)^rh2HdI-ijfWZotPNY<E-UdqMWFIFLz{FCX~t^t=k}*jeG7ygZ=m8zJi_E z-%o4UXPI`8P#AQ^Y;bXGRIgd%xRb^C#p2-!s@E_)iMWV{KOUaMFU?j6a<~H%ETzQP z9b*T(s&`c9?sCh>2qyiq=UcwUui1HNw~(vQ-@-C_ikp{8#oE**{I~195W#=Xi~w34 z1d~(U`JK+pZF6vD<Taq;O2n^3hX*-bOWziUgB=)bo7jKQDqfwsb&gur<>t~QpCcwK z%Za>j76%fo)&yJDRA1?ztEOM;8dWHdGZ64`HO+GJIi=u!nM*hlrDDD|w-ne1wF{uU z20<_D`cjwpR10UYUl_+9ROz+P{OEr2boDs(u7QX9jzC(!F=u@3%=Ol=P!HwP$V2lq z=_+=YX4;th)cr(q^+$y9H$9{7@_Swl7=Q5RWmi%|KdJ^3vFx&H_Y<c!zfz|Ak|)WM znzC@DKnFml^Ii}esJG0Nu>`_zvnal#4CgG|fIm-W{IzO_v-#&)jv!YIC^%@%fCe|p ze88_Uz1;s<<yiv<x_+11eq(wXnv_5Nq#rXxEbTi-i!dwR$Py4~&C4B?E#&0+SBLy| z`}&y?NR(P93F;{G$6ZgpuY%2QW!aylYtYo*!J(`{=iAqr>u60g54%Kj3-eHL*SL!^ z0k|A=&AOb@5T<CL;k$M5zcK3oAl88(_%P5rB@3E10<_-gwnasChiM;F>2tCc;-bn* zfTSi@x%wd@o|7T>6RX+(Ro)nNZZ#4Ws<voh_Ab+F{?w5aI|GUaIJ6R+#|H;y5@n58 zV~ww&P#wiE5|Q<;j_eR$J{@!xg`XYf=WAbmn5>@fl-<~TZ9K9~3KTIsd%KUrHo@u2 zPDVElgJ2?o0@&i3u<y4<Q0sI6hc~4{{)34BOe_spBCoxw-rREIcy~8bTac>=;aG3d z<Y_0Jrm%<zR)_u8RAvRYG}Nr&<IXl#BjVdPt@_KVVZ$XLmYDSP%pWUlieiX=(cSQc zT>L&LJBu}XSCFwLaF{(Y<TTzU(QD(e6~xMvCpuvm`wY$cU#R!oV|E{$<5Ydb7S;hy z{8?a5e>4A!g4=W>Ei7fZU;L=Bxy?TL_W-G-u(<`5{o@y}>Yf>>6heq>ZZ;2~ipvLr z6M6wVCH83LmKSsWRQSXKRSmiag#(2sUS3;~qgCB&n2T}D&JJ#FHBuR!ot>;t@3VvY z2Q_5+%etJ9MZ-7R8nGv4%;^Cl1h<}e+mu^v)jQh~%b;a{GCSBDUq#ALm_LN%*(PyX zaJ!jvZoMCDzDp_Vmg~3`JQv_ZXNa2pP6QmIy#Ek!HtT1FJ^+pmrk~^HFXBJHVC4L; zncCgtdw?S%l1J9lu(TaCeN#a`Wg&)K`-W?L({91tr8KgFA}6OC&&bAiTTOA3$IQfm zG{Vrix#h=3qujG|@5g4kVYfYS`45z^?@Y|e#I8Mjwp*kW#aYf+%zGWU2J06ChHu{1 zQm^;8sTXZIsXj_D#!N5u<~9Y!01%kmp&shuGC#%=EQ;}`Xo-z^NkVN%O)J40^iskj za0q7cYem<lL))XD)DE|cyr;qNdA<=Z{rlP;T>##Vc})Zv2~kUre`&FGb}85KqtZPx zlWH+x!!P5OWmI&h9+(|6P|3Ou(5JOfARj~4-e1f@zjBw5np;d?Zh^Cgjo)br=ZcBW znhSrXFl^*gCtBH#%?AAR2LM+13r#UbSZ?jD2s2wEf2gLhr>j+qzldMNanRjbQqGn> zde<;Ik2Jz-6-i2IS9LKG4ZMYW&_L3cdWfUJ0nFQhB_$a^{L{p)mGLgMD=gPe%wz#z z{9Xz8T%~T{F860BLvLkkn<u5fvMEp`Rr0v<u8x;0I`>tA32DKZ#s|Z}_AnWpNNN1C zKGf5))Eo}z`?_$xz-u-Rp9EIQQw%b-Ip>N7FIPzkeaSg+wBp5yEnHRJrB|7M#~<h4 zyn?gbn86>+_m$D&i_u~YAJ5O9mi>L+VDRV+aMC43N2A(qjE3vDmlo9C8W~RzNYuf8 z3z6-OgK07l;^Mkoo^!57>T$-)8{+uE#5#P4MMCKgt7Q=2FK(oaNd31>?XW>p2)o6p zr1f?!@~CN{UXh(>5;z8J9kyJc>uy1``~+UzfMsP<%4|nQc#n{0S9#T0#Se5|EdJ3` z-wm)}Qb#_uM0PsQv1sL~0#RRk^VDFYBnVTkOR;TvSIe}D2J!LXg@M~b5c-fZF>7;o zcZB^YE<+p%A$O#ec&svECk}<@>8gZJz&Ia0eg3UDVQ&AoQ)_(1V1$qx{Urm$vvN`{ z<LaO+XR^N|8Z0;v`v-HKHV^%-%a7n)Y0gY3!I7W0($TKd+6BX@`pp=6%L!s3E1EwS zOaD!F2t8wOaf5o4vTvEcMy)S030_>I!2BHWI=g=fDOdOydy6AO2shhUkc5#j`0w|O zziGZZA_G10YgSF(m;fU9)1ALf=ei9$sH&$~axpH#NDR?yN{;diJ9(c+zV7&wXd(1^ zdAtz=ALNN`z}Mf`y}ihvT(nU?2^bks6@&!?aG49?;dXdbC*Ow0Fk{{QggJY^5gzoQ znwEGY^|PFmtgJ8eq`(e2SEt0s4Y)5lpD?esW=vRY-lH)sk?&RWEx=Ltfu^YDtHdWK zTXDw!$#|!}TW>g-o~1PI=q7m@?5^9jgch!j*8M-p&Y$hi<u(A;+WT>J@3se}+|$=P zBBhV72q``9tL_QK!gEG(S#sy*D?h5u|NgiN{sf90%nryy5PvqV+M6C-po$AB;Y53p zscOV-4N9c>w%X2HVDlHst^=H}&aNa-8;FGCX0{d6@W=F8s@m#}rarIrrOPcBA65p+ z5V$HuoH9Sj=ifoHTCa4kQ&hd%=TYF8?L9A0`T>8EB|pBBI(y)M8vE+7sM>d3zfVyq zMI=R9C5A@26eXkt=@yXgp=*$mPC;4(34vi~X@-;zrCVBBx&}D!41VAK?S1WYo%0{e zwbr}dwcdK-zVGKkS-8JyUCdWb4i<gSQT2RRchQ&qlj^7ne;-bj;XU1ZloV4GskOdM z7?-D|Sbv+FnqCF4W+pR;x48}H7<yz9gp)hY{`Gmrh(5}3lYaXAtw4|d{$CMiR~=tF z8abM<Ctyx-`}O}y@ZY@Rry{(4?H{MdidUl5XEQ`06cKtW%qFaN9qTgi9dY(ALv=e} zAF%48Ufp^5DNIkpS=0la(*M8Qr1k2RAwZmaP#e8h$Z4jDlMrqMG*!dj<Ct{*+!Ggx z9ElN$8<KpIrUz)mf_PO7l#xX2m{WMR0_o%Gdo|ejFj_1jRx2xSeUUYzCSxFD&0Rhp z6DyhhxhR5@5&yX!>-)^Vc6@wWH*;p*r9}pe{~d*HL3Gj;q+C_8&}tT#v_m|&rg^}` zP~qTLm0pc=yih#GSAgQb0cpyl?Ow+%)LQJnKiZYzten0y{W$<QjJVSOHd4`Z@Asui z2Rw=!!1hDU=Y?l2v%B}h5y$)0$2%*}S@o(MFwVf-q2EXqt6(f|mWdG2gt7^1ynY{i z;_G(0jRxVv+1|^v##=nSZ`TTbOR37A*<2*uwdM9?Db%DqA)bZm4R-IB3*sb;5-0aw z`XW(p@74BNPZz+|4hVK)?^&x3X_+39LGa(`a_5U6=~Sl1J)?jVmVnGPp8>Zf{BWqe z><Qfs6`#hn7D6mZPB9s&<!=x_?cfS+U*n<u>R&U7r5-<}*pgLON6Of?EGFtc=Y3b0 z^#3~cHdc!=vNvM)vzlPBhLZC&4+p@i1I|)y2*>$#4d@tL9H(fQgGE;gZN3r|LILmY zy8bmjG9-#|!^89g-IsO60xo{TU86Hz-d`V2q!;REOP#LfRFYS1QXOJLHAXCo1b5D2 zZ&ZH~pTMClS*=&g>vxt~ZaG$h7*rT88<JvzBL4h8f30h@im>txdT{Or(5{{eZEcEG znQ2c0a&W*)+zh1iSYh?Ha<R>S(Cv&4nT^%9ZmZH-4>}1lZCS<<F1=jVxq1bYfO7R~ zR<0+CaJF%WQ_o2YspHnnjfhagv_3doa0Ukl15_7at(cpe13i;BT)LdZX&SX`b@uER z)mjM{_ql}=dC^xcscrtn;yp-HbuFrYhu_pF0C6zZ8%AE^^wH-#Vwm&Tp8!2UJXs#C z03jYzlHR_)mtGDr?_qIC#0udxp>`T%$I^?;Z|%m4bOLtlaxj5`OdJDrDr@T9)4TUi zhQ{HBqapYI-uDr}%zfI$>ynP&3LpQ$Ym_zw-8z%GT&e!9KmPrl;fxuT7I&G?y15;u z9}qif>j(l(Js6{(U=E=_;^KD0Z-1QER{V>v8k)Nfo=s4Js`io)A1m+^OHBiD6>928 z^_G9zT!V>3C4@8zdQHoeYZbi8{S9(G|J*oo26B&-e*1{RVG~nRK;4@K488$Opaq*2 zp`1`f>bDP6i<+s)!X^LY;98~{$1B~`gZ&#gAbFCQ3Dnd$ZbbB)9eK(=ZCi;%=R{{; zZ*T(sZUctF;7@RCIF79J!<1Vd%}ME%UGNP6S&?5uJzF!t5d^WiJE%nXIM@a;k=dI! z)?|3|2Mfu!<Zi!3l3~K1{(er2$*R&b-hx-tY}`DOkf)c7!~1ZrCb-W67%{L**cCYk z0P4H9PI)m<MY^3d#Dmo1(-%$s(h9j`3BtrQ(k3#V<-W4`>flO$bGb*04f#>C!g~JM zRM7(&44z0_`Yqn@|Hqm}V~@l^T61`rcS}vpQkSG@*epM9Sg@u|!<=R<Npk~)xK@Xk z{D=V11|=_liYOdvjQ!Y*xh)9tgq95cl11tD;6bCKqfISWWt?lxLk%_E!qD?nftnkz zg%ZsynEcuf;_H-9-o1?$d9!4E>D;01U+ercR#A6DiH&dM^DUQPRE}mO$lzy>tE|*$ zk8NA=Wk-rHe_aGQ<gmdYf3|hupMK^uLZw7cjRP$J4KSH{t)lqp;h+@VA%0o`1%GQ# zyVGIi%c$mRHNT<gtsLQg3F2|Jo6)L=<*x$13JEgw@=;v#z&XYB2-gM4KYs#senBBM z`<Gq#`+D7;20<t1y)~yV*~UM(fDG#F07xe59^~7gRN%>jrf+m~QpD5S+uKL$WD<u? zpQ%byIHf9do@!<JAO8|S=WoS>*6x4Y$+ElYIAC-}AT?g4HA;-!JpMgUl5!gPLQXC$ zJX{_?U}R+n(As7zA-P8_b51Ma9>?oLP3V&WM0n1;5j^8E&s3A&+)C49Lxz}0G+3~z zZ`%sA3f;;SAzbmha6kvn{41M4{;th120*PGOlDCi)F2;&z{(#g?#;k}=tvdB-+<NB zrOJ5Q1qXzYXjN}wVw}8qNk99+@*r+jTOhb{yBnip<$9g$J2~<P9McI?pF5N%aVD6@ zVAeAF?w0p3;`2V4QuGEZE<CSJ`|yw=H6=yv@`uU&wG+0j2Ds%!Ep|GNR+c6@&P8i; z>~tF9U!r}(TTqOamR3}hsxV039HSu?gjvNnRoQ*oxoY{U%*1--TC6?jJ^iNrRN=eu z2_Si(U(nOr+uPaM1OlWvmn~wJFjNFSYISt=^LOdXhwJ2^g(HU0i}+d+X8)K&{4W}0 zPfub6Evt4q?9ne71$AKN)%E;Z6`;d;p&>_@9E9F?FflWK#dHnaDyrnPAahB~c}<`` zYUge0IvD$rzH=X(0CIpr;uDV1g0l}OrEq?d#guLhj;H39dKVL>P4nPj5U{bjkC_jl zUo2fzrblFm$2T{X?X_&&QE~qw(a=wvqdPGu{iHhNRp2kxyYUMp%5F@D8QxYPA<<gL z3Zx^bJk0_64TQ}u6~`pL?b_l%dr(rb7!VrfDK$6ad1$kE!vG@{GlG3lgyZ#ch{)&v zh?*&bl!9XI{9Czkl5OX)T^$ekD1E%+B2LUOT`&ddvEAR_mu3z+e<zO~1JnTp;hTA( zj90m<BZaoR^oQKHUzc9u45I#thA|__cI>|u-f~eMGWP~%Qzru(+h#Ds$1iFH<3QRW zE-LD0W6FB~urURQ(1C3E5xC|&>D82;IUbPR8!a~4G&SRPSf*$R$j*-)Ci(B+w7vZ1 zDNHui6}wyuzm$Y1Hg%v0!V)Av)j@7>4GNC0wmksJk&L9;Kti2zx`778+3Hd1<@URf z0t_g>#@D>bh5AUn=}wH%rI!J4VG|X$q%(&199p8yI%AoFgwouW5~;mWN(pYWO#!{B zLbwK-KrFHK;c{=PHV{VuP?{i{h@ha+a!Yl$8~gyWe6U_rR0I?O>GS)<E_4zU<mKbo z?%uyY36vKBqN$5$=y+#dnZ@s6jzX%1ZY>SAs|V1EAYs*_xlwDVrDFo{ZC^xj9+e_` z-Vs&=35b81$$W8_v%g}@k$1OPZ_04(AgNanGKf2MMK%O7Zp8;sPnbjE*cKcT<@%{` zxSX<(rW6n)m?H~gN1h!dACU~Cr>D<JKXzD>lWVYxj*f2X_PKfkn96bsOG}1$gz;g) z!Hv~G2!^b{KangmQy^Xzp<xe{8UddeP^qmX4z_04d&@Lcmb)TfwmzhkL`>DVkdk~u z%UiTyNk-h))Y4kzfR@`Z+W&<LJ32qz3Q*F++uP_E5~NPfpMXb53}~7Tm72ap^+s)q zCT}bmmkQ3S2gb#jLrhnt!O<y9qdxmtyTT@zySSE&I!Gz0@&SQqHH*4EE6`=aX>4G) zraFujMS}Tq_AdgV#6TI!NK5C6EhSY*nI^rx50Jp5y+<YLc?1S%v9u&HvS%nuJKk2% zT#clzNw3Cj2EGGx$}ZuuUMz}0$L%%8zgj~?Si*`W-8DwDQ^0n+a5lSSU~s$w1`c;D z!)mz1UJ^09co?Lki->kyS{cYeo}a9N*6BlH;`4ii3)JIb7KJPD(h?^1HRpUHAb(M= z6IX5nITj>Dy9b}t@{=E%)7__QhGYlO8*v4y2Hv6sgy(QvQnu$35*>K`O<AuN>ppd) zhXA5=9T39^OSmbT>6g757*No)72Vv#)pi{SW-NsL(b3pTt5N@up0pU3kAAg^5yxT8 z^r!IKxY`xT$tJ{xE$;iPa4nu5dRW}BM12YGgiJR2MKdQKJbc*bOXdP(QC1W~eR8$R zEx;rsWxrYNx=r_uW>$tEPUfL)%fiA!P8v**pTE+4AbT#&)AyWxF%GiRXhudt@`yOS zCqqyl<{4sKl<7$GRXq<aqQOYYW+uJ|i2Xn_gfxOrFc$K6E`S%(n?6oDy4&VfHLjyu z?c^bEnyPAGK)cEa-qfVV?SY91Oy};sdvno8s#>JSo#R#z52puUH=^2robMvBA}_q( z@%#OEWEse59MR2TONg;rNW@-@uQ)J}K;)94i(3KO#6PAhva4-}fht;=^=So24o`_) zBuyI)`n0G3?a6>dkNhPn&aCB64the$EybY#$J5vFbFuMs@%j_!Zgpl+Q9npS9~Roq zMG(9P@G=<4pNgaK(C{)RgJmD)k2@LJHPlttv9PLaho|O6pS~C__qLp0UlgjB=1+)q z=W?nspP0`3Dy6`}bh_wb<G_Z@0sAsc60P5d<cKO}I#+h?-M3`FxY{PT@-3b+RbiEz zi;Yd;KlrK4t~+t5=tR*x0CoAaJM{&oeW1kM5CbxwoV>ieOiWCytn!5;m%hb(y!U$n zPxq{r!VHYa#(D~P+<oNVA(uzH+kYU<oE5+s9HIZ0Z{ur_u%oyx|2qjBmCWx77+=Jl zHA95Zd9Aj>hQA)|W`ooA&(%J+(Ll2w@IUSTQct?<+vptd2okr~KpKTN8YBQpOB}$4 zd5tK?aG=ln`xpR@VUEZ4kNTHVLX~OG^}Hb_#><&H*w~C{_;x~oQnw+Bi$&QWsnMqv zh;f*you=*{Wt5Yo?&dfpVjfuE`z^5A;0ssQa?t$9N+xT9hJOB43aM}Z53LTl(vVCZ zcXHkBwxL|ZWtQ;|fx)r;U)RIIrx6VYc`8YW>i#g$af(ZoN4?3Ko4zUcn#gFr{Zuu7 zC{Km?S`wgGZ*ThCkGc(g_VIDP#Inld#7=)pN!!{-jfBj+@3-zQS8N)ngE!ee{#kx5 z29RVuQ$8$o56jMgRK+w}s)BwC9jS<m3wWYjpqBp+jLTe&X*@?yB9I978(Y`$*^w;f zC1DLnQT@+&5d<&)vN`Uutkr5EN8StnMlTidBoGi0H2<q7v3Em9%#-m6gmQMKKVS{0 z7i*#q-KWG$U7Z#ME!z;_rFR>Y^6yy!wcY1tT#2ur`~3m4G4xn`7f`nNO6rXQ&SYyZ z$Rf`1y>X$2;OXUhuclKRVN>`Y-EvdnR;Jh|I$1tY*eXWr(xR?A^wPFm1G%%?^)0fA zL4{7e__u2{zznV*#(=z9`bHHCtxz)7qkih41p4$F-tOrRd0Sg8;0ZBr=fLbhd9qF0 z)4Wx7j<hF3I`1bDj1E1ocHdzUit)~x6s1mg*hDRp@k(Uvxpl_55~3t8A!Ef!zez>h zgs2`-O9M!j!-*V6*0L)tp`n!F&Y>vKm+7;+gp4Kqj_;@cAE>dqH(tE|NSnS^zl#nP z0&UZQdvQ}qG80xnQj|f6P>A7Fcu|J=1CZAEksO=)vr*A(IM=(T3Mrlz*`uO~?J=Aw zKS{z#aO&=I(Lq2fM0gi-{Wa7l<&h0IV&cv$7BWQjO{IXallxfTG4Hd!kAfSy$ixzQ zPOMjHIXc1GK;%R=_q*Bz{E+zBb)=6fGo^mn6{DUd(wW_M{Fu?`gumf^%7~VNE`FX_ z-3sA}!o4Oo*mmA)LRi;U*zs_W_9?n8J#<@Z>*V)SUw!TY(g>(d)iEREL{@$68U9!C z@7E&q$3RPk=$0g4Y)4Ps^z(gx^&NTTcXnjTv(!ip<>2bVeo+V!DnB^@9~doMD|^R! zvNE=dU7PrVHtj@Oz4fC0KhkdoQig`;XNH<3*Ch>@UPGG8fsYqgJ`VXWh*&lht8iUf z?ys?BCiOWS5ISP^)w-W5mZs004G?;txF7r%POS0xXB=fPlOp=->CA#0++IPN%8WZw z8>pbFc8>f}K)s<?w=mG)Go@&MY#j0x(oc>K3@RuLTa+Ksf*7h7lAiO}!xYh9&~CaZ zhwdGOXp8@CeE^jjqL-O~@Kv4l1d>vqWV+l|I!n6!A9d8OE`5^`W{;yHX08%lGqa%n zL6FTU8^yXn);auTn<00|4*>?Y;+s2~3L_=j!tFbs*j_Peu+ar+vCSROlmxw{Gt(rg z!j2`8T?tTRBk5)8e}HctLx{tA?Qd;a#%tK(kfOKWdGZPVn$O!%%5AXkLx$ZdPJQv? zaUAdQ#mB7`?nKzG@lvu&{Y)))$F+-lyzAd1MVVtfNbMt<i*Hk$?~i0n<2@D-5CEV! zlF-&!JJjDk4}N5dY=^cwJgZgWX0j>JS@f;-Sy+9v#H7B{)uEbD2|KGRw_Fzc-C&!n z_%27WJ3KVmPF6Cc8n9Wr4{W9cZKtZ|R)>s!ts1p`4Z*G$)lwZ&TKMdBviF-&oydxx zcP80KvOo=2y<^?^l$}7@$15xI#j;z48Y1TD^b@Gl-Q8Hoan>R;(F0YUB_leBB~wd( zi81bd!o@|wZJI>kWAeeR!4<^d;8@I4?{n0&{rtN*9pWy)V|XIRsYFh<HF><b)MM)~ z5c|EdUcGQLftqC4cz4OTd_pSu3w?cTKGN*FET!ON@bPa=<HdA$8}*Ha^_s2eR8Aw$ ziLbPb2@PH2`GWRy?*ab)z=ZU*S8ep#be*lyuE?#&t5^^q!KGKo&c^n2%nDhg6P+6$ z`vw~XqqPkUGp5$>#2)W5R9KR_w^3T(p|aVdNu=&7U-|wx#$e#nHha~*a!8txI>DVg zOIpV+$TjDaJzm?SxQRC%*17h=ole=4r|tv9(5GxJ>+L;<l88;CkI;t|G!8xOuAgmZ zZdl%C<8MgmB~+1qnMSYHz|U{e{j(6sCei5srvGrA9ClPhh)bvY%<I07Ve<P&A`hv` z#Fbrxv+edm<ek<>VKepk2@M9Qam(WJi8i0WtJ<DSn$$TRWCO+L8iBdWZ9%(hrMf&O z_1oXlwn^sbTs1xJ@IQmLxLD&`CPZ;GcXbm}+`{I8RyAD<`fHCPyI8lW^+}aTiQ|eR z-dIAUe6yaNZOgsg#qm8!M2x|_F>2(NmhGHAl;;8DaBT#a;h{KIsT;SR`xt!kk*tku z_`DK=dvUr#Ay6)yCSJ&SVF^$eSEd}W2pWR#x|QD`-7dS+7U$YImenPa=2;?@@O8q) zqjt{USc3c$*Dc*`eSYI_FN$5AS$G4Ktx^<)?w>A<6TK{(8r&M+ADMH9?S^AbXk2XM zao$~vOq!$P_jW-_hr_$}zgEN_>R6_n^AT3bOgp4<J(NsONKUM}x#@_M>fbfwbAN0Y zehjsCABcT3>Kf)<^=bdnxyZ-Zpg6Q9t03Opa&}ld52T_aX5!Vn>s~gu?#xKnGfA%Y z#R$r(<5-A!Oyb&7PuI!e)&`7dmw%@Gr?5-^r$BLWE!?)aU*d;dA?#gUPV;SI5k^9E zblv+qg&KCQH71Cd{eXE*#%Z`8-^5~lMCNW$9uFI7SKa623TKf-Gr~kj=fOrkFs36! z3`;lQ15~+dHZfKM%N&;dNAWs}C0vv51lpOD{IS`S3kH0aj7?9R`A3-A7dL||tI&CY zN1lDECG~tc`TSUHEIJPRtDLjYD4k@)i!0;sso1eva;FEjD=%b5%0-78&+6EyzvdsD z)UeSdR(<;>8XZ?&rT}eCs)T(ZWUX-)e_y#ALP&XbllMN;NErG2)YhGjZesdMJ5_Ql z3;Xv~?x_As9c3^BIL}3{7bG9WTPY&AUR~_3k<wI<C~Mdz6-4SR3My}UdGWsyrV@hg zGO7P~z^#twJ9mRo_!iro2t#Z_f?3C>t^QesZJXhi;Fq1{!P&ruXMP-TUmV3QdDoz< z^-Ey3MMYZl_Pezyo{p1_jzY1sJsN}i&vzEwXGWGcEGBpt=337XYwVK_ge1|m%kDdw zR7Q$=(=vP9I5Afup}J+i9;S%gjE5ATkK%OSxe#(#au`KPvZ-5TA06)oQp27cWyDWX z-Px?7Q_<O~GGwxP<c_z?AV<bjFB`5)Gm>o?Z7IWLRU7Qxfu0}_DPr?=w5qXky|<>3 zZL4lGR$dFtBZ<(hwH{jfiWq2H#H43u+~YbA1YqR+nmByg;emis=cWld;eBYLWjMU^ zG&AmS#+#b!9oRnS*R>HnTlF5KIm?F1a}Q}!*|45*>lxZbcPrYjgN3YDtNlow+D}45 zgA{&Ul5sHi!kLN4Apl}BchbDwWc--FZ(nA=?_-biW7GC1F`S{OzK!wn;d$4;lIMu1 zh<}qdhbOo;LNr8d>zCav!Ml05tZT4_sL7Q-JPi8HNun{ZKhU(eSS{-1ev>vfu}XS9 z|6Wald@{lX|3PvL9!2CfJ89W85co}%-PVdu?o5cB^D5m3?{C^!SI8F_HYw9dc{!?Y z7RE<ArKpK#zZ}%V#GAsddx<O0vw)o`0RM0aTOOI9<5xAvW7Zmzno8q&C83o)0QwML zV!+FS^3{jV&Sw`VBY#zO<+0#%_FvPZ;Yt4_;X7Swdi4FX!1@cZHcvw!WQXd0*{A)| z94gg%vX3k1R1JBMxxdiSCoSsl(^?UjkpF7<2#ghlG@jPC+E>M3Gd<5?WLf%Mipt{n zu$ngWV}>egvbOa`6<3r-l12B-cEV`_IM^far^S7kF=-g;q!<3-Tf4q0YN4IB94nJ$ z3pJ)Ge%zYCC%ngS$O$Y!>f^a~ChO9AY7>*+(zr`Ii@~WkuWp1r6zz)hY57ss86Zwf zr*^ms;*O7ryhD@JM)!lakisqVtO<pYixrW>=1{K>kgLI2=5bz;VSPxCpf>dLxA<kd z?613c4hvJ+K0Qr*p&JUT-nQ2&;1v>@2uw>c0(~ghiDX^NA5ddA1TVEe*J6bwzL7$g zDy3T#2T7xzbepmBYD*W4dj!-wuZG_i`_TKu&|G{m`DJLn(YctU8~TXNWv{vZa=D1i zYVnl)HnG@2E!&&7Y;LRyvz#rjKQ-DJJ-*k~*_ooia5ebhZ$p?%3wMxP0o_0{=->;l z;#83eqn|{0p<6vEZ4)Mqip<uJ=Bd9~Bp(j6J~WI4Y+b}in-#CNgaj72y&Zjw?E~B5 zXG_6rx%=;0DRtj@CnPo&s$TouaoUj;d@}L5%=)?+DS}9nd=a0+8t5Qn2L<NkF<&Q? z{nY9?@wB>vt2Pptj)SBrC1V@T`9oT<Upd(gA4^Jlt(|8X>5Jw_Upz;y{16(y!bXY{ zH`<LWk=HQYy*p9iS)>M%?1BeY`#Az9@`D9^gi_?&b7Y2BqJL_S-&^o$`H5GHd8J0C z<bjp4F)NbLtfC?gcBOQ3l%ZZ=<B-1h8|=&<Zk0AIUDbOP;M=^pvngQksqyiF(1GY> zGo4Qiv5U|Hmv$CXDsU}Bs{jG}Z6cmz0gG{O40*yTaChnF%|W?@yA2Z>x`YG8d~wMY zH`SX<y#MwfKfUKsdv1ci^Tg2Zx?VT1p!;ATG4$wt$7_z84DLY^sy|~&ImqYLdz*;! zUjKbc<Uw*uin(i&-2{K>Kku5@Fg7+eDJ5rc0j6A#gxAlEP<>S|OS>^<FAg8C5RuTc z(7G_MaFI>+((BeVocveWfk8KCid0ik;lF<?WtjFFD+#V)F~8kd{;2=9Wg%TYe?o(3 z>&MpfR=sca->42hYx;3Vk)`;Mg2`jf*gDsJODRZMSo<ebIOn8zpW(5Pb>p=IrURA( z+h=Ax{8xh;$z9QFWKJkvHo^#Xf@-jL#xk%&$KWIM{TtDU*L(Ogqhb!+FfWgDt{QX@ z8~QNQ#xq5CZ;UE*;V9tPbl~wi9S9NwLQS>(;v6Yi>8H_q^YPXNR0G`rrh$(3dK$Ee zynH<hC5j7~9}(m6;3#I@<8;0SqW*w{#ts%zKJw#C-bEs@j9iL4x3Y(}n4HeIcWf#; z0uK6SxifCwf{(oQ1y+4%eYW%L`UVd5ZgV+sb})}6pgum;)^_YU4Mu(}UKYD(iA0yh z0396+WnNaV{t%s^vujHoB(RRIvH^POZa^iV&9T<&kyh4H-*F2By+KEE*?WILbwgJd z%71RQ9V?+Lb%1YhQB>DlwAx+X^&Z8DF21oSlf*Ie5g8VH=c<$u;}XM#@AleHZU>5v zlTWCvz-4j}jsnn>ZM>bPm%E|2MR{sI&2wyXKWBlq_QRxCepN+eyjmJS<4dXt=^FPT zGifi>NE|)yH$PVzZKuDhFZ4bMYCkh9yJbf4tV%JnL?P7=8UDsgQM9|8U(n6jU}V)) zn%pA{sc83B2@}1JO7>Jec&aqYO-A!mC8zbbxB3h~pxtGeCfbW@PAEm{v$${lF2%Kr zXtG0NNM+iQ(NOa7+ni;Qk{@L>PvE2PL*rF*imqm-TpXnV@~Wz;DjqBP+dYu3D!VX) zB{LdDCdecQN5D-5a-`d6YCJ|E&NWjjjz2D`KO8$7$6Z*Ifm?2N>v4UzUxmY%#LwMn ztl#&Td`8#ZsET>L(B5){;=NigsQH}fWc%cIz0^fn!33l13N5<420+IP){E{(BP14b zj}{+ic!xG8D4%iUKFnt!!9By|aIcXrI*ia*pPhF-8%&>hKazTgKXSf}43qo}v{fh2 zl-n>qOqUrs4qOqAdwA7Fw4L8ON}baE%CsHiA1P~UCN|H$-nnc{RGkgxGy7A{f>~me zV6nLy&(T(4To4n?x8|jIkI7{}_<fwWeiiRV+Alt=m>+=YJ}f=G_CrX^vCsnc%Ekuq z-R$|!s-qye6ME*nP{g}o_axQvmESj$PD#d*l#~=--@ij!=j`~&Fc)Aix<iJDIiMh9 z)D&k>Gu8VALuz1DFLdOx7;K1%VKJyKbCi{nE90oU^m)dro$|5oN~)<%qn_-bj^9s| z<JQebe6<|ujki*BWkP!^njZKsQ`*;lEPf29Ag$3Ph%3I8Dl{`ydu-j*1&3!%RXf>? zl}MzCigb24ZO)8PROOMv6?0YG>*^~jM@>pOS1~KAa|lxPQM9hWwD0%YNIv!6Z3eGB zrTtyTxq1C}#;LtA`RbAKse()8BZdK;vhfO_$kUZ2bydm$<Ei%Y1J5d6OZFO<tqG3& z@0HVMzF&mRe<&kL{DqY8Ct^N|<^W$vgiQgxj6mr0HZ-nwS<qM}Oq`RC+u_b6Q}+t+ z05C4Y`4R>0D^-Jgy`>W_H7;LMbQZ_q#VjQ+YrBe#v_;s0Iu*0mN@lzc5ghnPI`92T ze)N_Cmhtrt9i^|f`hXdI7!<^jY@MS4l+e_~8_VpbR1sM0i_9Y?;es0B{{H0CER2Ws z<?79+*6C;}6Hv&waUN~yxJTbk3j76Oqi?R96E&VymCo|OMy@7AFn?B2qk_J#lKHA> zgs*f120Xjwd0)NGp{`aYbt-xE`VE=^(w9X$J~v<xIWg4lt2r-io1a5>0Gd?f7wWh! zK~hl2ZHF6is58qv;(^e>Ve{AL^ltKxo~tRdrhsnG!M4K}#^H7E%yPiD2Tt-P>E0`Z z9{5~4W|*Wt%DK-8*oB*;#acwHlT3n4EO6YCAJcW-g#%eZ;kCf~Gmsy7i5nlkcCxqP zlLW@Qw_E3djBI)WL?_s3KmSc~dH79aM(@rd_Y}*oES)-?6zJl246*2lPMu^67lW^h zyGH-l@zFE%>Hz`IikLL2$u#jhypw*Xs!W!bILil>j5whJC>C!hA{_=*@b-v>?gF(6 z%*thp=#%NP<^E~0c&EC5%UJzTY2rjUM}_$hk*M+r*j-^af!Wm`aL%g#aWpt$s8<8c zcmhXAWBW`-HnFqU9I$J?2c6de830kOoDPg|GT1d*G_@k0&K|+t9%oRCF~BXqzvL5D z$R7fbi(Q6g^xOp-3$UlY1vrE_x)+}>b}rv=ndZ}(vHzlw)zQ-vpmS`rf?1tWC6>P( zPs-2#yZ!Xzl4leyX#_Thft5Fz7!{4D{u}F6lvi_JJG$B~2~T_P7pRQOeG>~C;@!## zmG##IRKztNgXA7HC8b7b%p&%^8QAPIm<Q~o>p_3)rLE;bCIgYG$4cN+eeJoj(G=&a z8OPU9*6~JsCL=IEFOSR|(=h^{%ubsM?SkQqvT(OMpE>1zX&<svp6&=poG_fo$4`If zeFsff4BiLlfW?C~2iWO{+r!MaTI8hk)7u=+9<2_W2AdGG-~6opy+RIMxS=ZM)72Mo z|GRZG{Kj5i@b*Z!t7iN;FPdd^h+!Eqd{6tOy2m<z!NfcmJqz)~%>yJMnO1kzf9xV{ zJ?NwE#-pr6jvP+7oYM<AsS8Fv+dGIWrWe;v@aqCaGcS4N(1Ak09(}__j(44w*pF2u z{B24=2N@Ddf>7j<>6iTl*(3WOmpj+g!QtIjy!2<xjErwt_rkB}qViUg8@tq2C?5WL zxJT@cclK`j8TBQJ3A<`#BqRg}eC-z8m?909A_;r?*M)|6zZKSnz~>~f-Lbs_sGcFy z5BmfEAch_gg-+srd_rhqdF_5*F6`bpc8`Mg=WBKT_2Q8{v<2eWcup7;%sgouJJOyR zMtQQUg1RVzkX@!l_+iIAaPf3~@_+w@n98HT*_tyKKTwEwnIO53M470ir|2XF2`r7M z?cDAC^Lxu}6R-x&$GKp9@r@W7PUul1T-?q3#oy;O%UM}_5WmZ;&9<NBiaIE>gifct zUY^*EzlbiM?`&m9nW@d7v=&jTX#$ccV>>Q>Fu?pU9yiemqo=kDGot<Tel)dwmZ_){ z^XYTSLt&pJpwV;dPeWH45xhA1Dy+ZuT4vs>#;h3W_N;y{l#Y*7P?#jS$6CAJHYPE7 z=TBFC;*gu7a7)cI<&9(Oj6K%V<g}EHr1ldNH31}@>ePg#?}2)x;W^^8%?j76TS=u; zx8Wy9XPA$_W^6m!fBKH(DtV|zFI;6MNh%}~pzQD|-)ZGMq>e~kF4fdM)8gMVo^LQe z;l0{g!Er#AMt#rABp@c0{ljfF%lyKqEzy?wSYS>D(}wA@I5CSRt1_-P2og^u2~(kS zVe(<NVs-wFxE+nlHzG=d7Dvk-SeLHKmRB#GIR{2geRo^vJ(Z+Pu5Ti&`SLMwZ5CM@ zOtM4Aa8I%>$$Lc6OFA}+ZcY37>a*(~U#OMrw)z%5x1)RRmIC&ls7HN?#AD<7BGtgY z^Sb?#tBeAAG=>#_Kz%kl?lg<cnY)-UMQSavd@D)%&K)O{rIyc=C>L1j*vjcWR6+H+ z(xC_;@dl<nje*KM_{m>o=4ZzPRX@^Lh~`QoIcP1EI<L;GUNoHta!Dnnr9AiK4Ghu& z)r9|kTtpW&yce>1fG5T(2X->)Puuf{Iup;Uvh!lrlk4FMXdwvy@~=9rg^N0D0(!19 zjIchmH5+wh7EF-7Z1ehJ?<M)gl9G~C_U^+Ug$R=X<v2b9Hr&sY>Qy*2x?c+hjJzt9 z(V#MHIxF7fR>Lt-1B4WEm^VM+YX+96T>@x~V27R~gAeuxMl=04z55>I5*)Lg^ACVV z?2OqHK<h9loujrw@eayUEgKuQ%gb^L^(*jGub0|T{{Gva+3e3{gI$GNaCLPtLDv^~ zKx-ja<tP;OPYatP^8!M&BN?%B03|fCwmo9@_zxUt=FDPZ`__WH-Mm`qn2wH47*Z|& zpSyYkytc#<4COV}Vg?lxf1o{E;KSUi8h4?F+xcAfZ%`ePM$O-g_>Y=^QIdXZg@Z#M zAl?EI=r?|4D%#6N=si*U4ghkjlHTb8UcUIvTnb<i{soG=@GQ9V^4z#|S#HwS7u8J> zxDG0*Fn8{Ehgivh$sdMsM{aHh>`usj`hkl2!VQT{;OAw1ahfm1X>Wd^gmGwSTcq$@ zp08=4r``0CYKoML6Lm%Y=_oZq*R&5!u@m=f5#+(v8mb5)f<X~)+Vd|x3))OQ6#?Xr z>4Pt?hka|PXGl)SmWs5|gGjsIG`NiQ6md$GXcg@Bo)S~(Gnc)oElJVYnY<O_>=1~f zp26BbSyWB)g-~DOdyWGAJ}*5%Z1qSRsAHbHDxs-41{7dEXJpW6JNfFI@*+>8rKl2x zTsEWWrA7tNxE|oa9juQ586v=BXVtH-1$7#BVs_<92))yX%F4=aP<z?|E&>3b7)k*b zi$J{A5R@$e6+b}f(0!o9w6F@-uDInC5)v}1i*Amf&tzk|uEuV*A}_CV#c_P&03`gi z3(%vy?)xgY_Hf!`26k$#@`OjlWDC=v1@vHDbKx@wL{3vlY1WSalWJ&d34j%Vj_mF2 z)z%81y(GiCzEDUh=-6-e_{+Oa4gV0#1Vx2`Uc>e3?%nm(obkRm1BE(4Z55u=;F`^9 z2rn-QLN!;#qWqqg*LEu@U~7bDs_j8)qAynhaLEk}41mJavje6CptXPAlL`16%OILr zYWqor831*XVq)k{;yTcdBJF|{3DB4FJci2grz)83fYKngk8ao2Ko>g)2UP;ZIYFVW z%v#{x`|7)0pw}%}YD!8<fNz&jG_e8H737n7Z5GCXjFsE&($jB1B(V^A?he2(QLUiv zh!zV8OK<39`BID50}yq@>%YesTE@EXewK=i0Qx6#a{h+e<rd`z&DRUmEV&Z>7vjz^ z1x%0mJelMGnc#559}7rweTa&>g2aL9R@kIUetx<W(n@*j#wnUEN&w|{U}a;2%?6Ny zWX5ErJwOR`ePGotdGo@|%nX#70U<0hJd@Hfn~G8lnUt1qt13zE(Sy%aiy>t|SNziw zT(gvpj!vyWE9+J6p1a7TRq5C$hW;9roJR6a2e7wYT`MU{r@=4?rrPu*@z~bws{vjY zP>CA&@dM*|h`09<AeWijiHBoP8|=XIqrZkg!^6T-fHD>)WN<V3iL3Z~8uhGKRd%yY zLR+<^?=%6rD)N|P4G3Nl<FrBwYq`w&K}FIBdL)m)Vc{=LBdqNT3}L$ma@a^V{d(a? zkFwPZ^=4;hK~gJ`%NS<~*JP^J&B4&n(9zLRM`yA#4sz^sS(5Yd>EYHzk1g!|hY#7` z&A^7OtgJjca&&YA%3#ID5@qID+PuY1AWqx_a!rbV4IQaoV((ahEIkO@0<aDtR9PA% z=*X!8^y68zuSeE9`Kjx<VF^IGL%h@f&fBIX#H<I+b!QJfy=hQr))8>Tg!c!P3+qo- zcPLmiOWq8_H31wO0IdA3<A;QX-lg&mdQ55#q4t(W?^Dqdu6D>VD@oB4P^=~}Fc3_b zYSnx-fX%vd=ME_AlP2I`0+{eeKVgk<PdhR6M14*&%dmV6DV|8M3?{_u{;;qxa7WhE zmAkINiAVAIn#b=QFugMOr<Nr}X=!MHQmw$o1siu24N61sJOBq(><HW?@u1}e)xG>y zLr{*3;|suq)Vz&P2=-3*HB-wjz_f5X#7QvKxrTDHOshcpWvFh0Y<CM%(dY0IQ|TmY zFstw&JL*dhR&9$MDij;DjxI|PgXlFFI|B4m{`qsY_u}ed3ZZ}2E`B?xv3=!*gu-)# I_-o()1Lp=Wn*aa+ literal 0 HcmV?d00001 -- GitLab