From 75fd208299ddc5b5ab6a42aa3483917a61fcd7c3 Mon Sep 17 00:00:00 2001 From: Corentin Jabot Date: Wed, 16 Jun 2021 15:18:00 +0200 Subject: [PATCH] Basic Text rendering Using SDL2_ttf and fmt --- assets/joystix/joystix.ttf | Bin 0 -> 47604 bytes assets/joystix/read-this.html | 195 +++++++++++++++++++++ assets/joystix/typodermic-eula-02-2014.pdf | Bin 0 -> 71442 bytes lib/CMakeLists.txt | 7 +- lib/Canvas.cpp | 11 +- lib/Canvas.hpp | 1 + lib/SDLWindow.cpp | 35 +++- lib/SDLWindow.hpp | 26 ++- src/CMakeLists.txt | 1 + vcpkg.json | 2 + 10 files changed, 264 insertions(+), 14 deletions(-) create mode 100644 assets/joystix/joystix.ttf create mode 100644 assets/joystix/read-this.html create mode 100644 assets/joystix/typodermic-eula-02-2014.pdf diff --git a/assets/joystix/joystix.ttf b/assets/joystix/joystix.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5fd36a5435f787a86adba9b38736d0f7fdc86687 GIT binary patch literal 47604 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 literal 0 HcmV?d00001 diff --git a/assets/joystix/read-this.html b/assets/joystix/read-this.html new file mode 100644 index 0000000..f5b5020 --- /dev/null +++ b/assets/joystix/read-this.html @@ -0,0 +1,195 @@ + + +Typodermic Fonts Inc. Freeware Font instructions 2014 + + + + + + + + + + + + + + + + + + + + + + + +
+ +

+ +Deutsch + +Español + +Français + +العربية + +中国简体 + +簡體字 + +Čeština + +Ελληνικά + +עִבְרִית + +हिन्दी + +Magyar + +Íslenska + +Indonesia + +Italiano + +한국말 + +日本語 + +Norsk +Język Polski +Português +ਪੰਜਾਬੀ +Română +Русский +Svenska +தமிழ் +ภาษาไทย +Türkçe +Українська мова +Tiếng Việt +

+ + +

Thanks for downloading a free font from Typodermic Fonts Inc. This font is free for commercial use. Read the attached license agreement for details.

+ + +

Installation

+ +
    +
  • Windows 8/7/Vista: Get the font out of the ZIP. Right-click on the font and Install +
  • Windows XP: Get the font out of the ZIP. Put it into Start Menu/Control Panel/Appearance and Themes/Fonts +
  • Mac OS X: Get the font out of the ZIP. Put it into /Library/Fonts or /Users/Your_username/Library/Fonts +
  • Mac OS X 10.3 or above: Double-click the font file and Install font +
+ + +

Allowed

+ +
    +
  • art +
  • sign +
  • poster +
  • banner +
  • book +
  • business card +
  • album +
  • movie +
  • television +
  • logo +
  • trademarked logo +
  • clothing +
  • sticker +
  • stamp +
  • product label +
  • web page (not embedded) +
  • app (not embedded) +
  • PDF (not editable) +
+ +

Not allowed

+ +
    +
  • ebook +
  • app (embedded) +
  • web page (embedded) +
  • product creation platform +
  • alphabet stamps +
  • advertisment server +
  • web template +
  • PDF (editable) +
  • OEM +
  • device embedding +
+ +

It’s easy to get a different license agreement. Read the this page for details.

+ +

Other styles

+ +

Many of my free fonts have other styles available. Please visit Typodermic Fonts and search for the name of this font in the search bar.

+ + +

About me

+ +

My name is Ray Larabie and I’ve been creating fonts since 1996.

+ +

Please visit typodermicfonts.com to find out more.

+ +

Facebook

+

About.me

+

Twitter

+

Pinterest

+ + \ No newline at end of file diff --git a/assets/joystix/typodermic-eula-02-2014.pdf b/assets/joystix/typodermic-eula-02-2014.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e5de28ef2884c5d4d429f626ba609c55189d1e2e GIT binary patch literal 71442 zcma&sQ;aZN&>-lx-Tk(0+qP}nwr$(CZQHhO+uZM;Og5X$Zn76AsZ(`bNj<3|krx)F zVW4G(A{iK}XJR7$;W!0!jDUZa z*oW7Ms_KwH?gj=wXCrl}_@$<@oDTo>x`+4Y!DL733$68TZ+B(Px7xP%_j@$w=l;dE z8};||JBRm{$5)+mj$nbkfYsyIQlTml~ z;1n>&qO(2?>$_dIG~zv&M1P*p%eyqD)@ujr9il})xp~!9<|TVOAo=Dz^?5bObiX)z zKLc57y_Qm1B!=5~DQy+@Vi=UOlr*(+ip8{G5EJbK-)yH%RO{AIwR275vvIiA_0t@8 zrRVp1G4^y8xA#e%(;5ea z43c!a7w#3yZnyO6;|YUtorInCe$K@E?UEw_kZ{HOfVKXGo8}KqD(vftFd^+0B*863 zB)?Cf2yfK(>>%}>_oVNAZ_C3Q&9v`H3YBn2W_V48fOeV@BfDuaTyYIAUw5cy!0irkZ#e3_JIV3$-Ub9yH{$;ps9 z5|NJl=v_H+pX_ywBDG;t-hRWlfDy)_sqG%GIjFq{bPW?AEMVA#RMVYub zn0ye>5hX$pZplJ!d|s9zSy{AbO(2yJ{?Jv;X+pW-p}lJH*C$l1DG_?mV!)-lm`ek` z@s=1%?wL#9yaEkw4bEC^0^zWcSMg}TYsXr?Qyi-Q^telOQWr)zPBaZht$csOl5+87 z5F~xOpguZop^uTB9y7}jhH{T1Fr9}NR1~2sh<&K>ouoETP|_6R+;46zDeZOB&84Tg z_4bJuXgKkG83OTovVg&|%5Br56|Rfanz-Gg2~TQGiBQm^(9f4uX$+e87s)2Vm#jl< zEHh3^P+-(7M~swxp*^P8v@{&KbL~){<@oCs0}ZWY;(2fU^3kaf$00F(O@OXqKh!6j zoy5>bt<-!9BM|ZQQHU#3ZRlJ*9~*$0-x#7@wW+i2J%SvDMZ18>Zt;bMm-|dbpvRb< zf=zqbKlW{WfL$;A*j*k3yK}gl7XvW9Rue+GAXB*}^b5ine2}te&irW%1}XqYMj8)W zG^DHL6gMQASTpoU?n_$Ic_7X#c`CGH1VC<%cPm(gpdV?W6maylZbX9N^B=oWd~$U(L_Orm02ifixaulW=1Evesi8vMj05mCjy zuHRuV7V@`KM^kd%lhJs4<=|cF!m9gn!aoJJo^}IhnPdRr^k9Dg5LUg3o0TW}&IID_?IS`z!H8yp7q zJeEkBwHY{JucWrIE*%qH`~$d>#$lJFOba~@7isAb2A3k;;$s*n4Yt-FUE6)4B{wNx z*iJ?zcDW3~iw!@%B0e0ISO!vYujG=>X-nERIKU^=##F zOl68zr7EWvYz4|if$oLk2eMVSt1R<6!RUjQ75G-Yc!g+8Wb*!Pw&1f&WA?Ec;Do{P zg#RVLEO{1ZYPDim*5G-HXA)4E8PQ{F*1C4j#^hZB$FX^YPNz{tbxmoNcp4U*l$PO+ zGdtzi@7dNstt6?-6AjDmWOn6c&y7JyWfnPP)g?hCd1{f?Y5Ai-C5iTFtPOzi-_gWL zyEI?z{e)$iYG)5R+Yi!aa`CA@bXl9E7L}#Jj65K>ZF=KXW{6>1xs>ZgHm5R)Y)af( zjWBMth~^spY#86ADmfNo$S}sELML^8oI5+h@^zN9ZecKGP5-w)D=P;AKI!_xl5C&) z+;jjtI3$ZmgjxnDWzo@jW71cIsW8Jo#8OF$Wc=XGy>X;BsBG_Z9QBne2kcmg+rDGDA`g7Hi!fwQuuy&~vCSt8#ESG(2aNWdQB@w?g$OZYpROS!m zVZ16PHkBE8fFBXXwpkr?D>)d;hbt6}k~epp_yXoj(ngt-F>c#qD8q}y@7qPo;{;Z7 z7%ebUT(c7FYr#=D(ig=`;E;x!D6v~WU0^FF5Z-dU1|@2=MQ3+vYG=MBS3M7lbU4CR zL*A=LOxk?v(jv(9IJ58@8-L~ToVb%h<-OL>fVjA=*{@l8mYom;l_h!&C;Ac4wp@#C zGi*#8WW?gSeyTT=Q@uJD5AD~^HKZtI|1ldYuahk0x%VLnac5<^&Jv!^ME@){Gv3m1 zzc~Dph_S2^x3BH1HkVKdn?JFF6FpSThjYAz`xop*?s6u1%TyaAcE3kd<^N*;Y^kPu z8OW4BJkt`ZnGo+v6yG8hnP0M8)YY^ScjLk(*0hxfPZx81(-*E1Mf%UK4jE?U zb6=c*^DY%wuJ>4K07+N2gJ$a%Tm^nP4WUd1L2`t_NA2vcmwC_92$#rXrz|7FLU*%$ zvQvDT>|WQV;--;A*d5CaupH=*)bb|i&=|@7Qn}r6ZfQlB77-ELPEz!zE$>XcNP7jW zn?cK%D6nPQ+O@SJ6vYE*EnjZ!B~Fk@t4zu&lkK8c?Z1I0U6u~m72nxMOMHR5O(KgI z0xW|z#?TsS);KvPRr0pHA;?{aPD4PtH{}%3jLMpqJAmAspazZ(8~aZ-IAs|2TWeq) zjGH`YU%_{dFx|DFWHLyzPu}0AS*6!KkKQY^B_KRc$IqQAr8D?v4crI^USKw$RMlB| zNT7T8hpD0D*~}W5i(JVl?|`+=-lyWpDj^9FUg$E%{jq<~)%?x(?lT@wZnFR`%>~OX zjhkt@N59vlbUvcT$@l8$TbtRJhop&g^`;moc$FkwmPZ?NXqI-xx&*7Yb>r2muk8@5%;;t04j! zC$CeyIm9(isvLC!r)6{9c!5~#ba<)}(O7>&_y#~CPR{-Vn&zE?C9r};P6;k|1cKfu z2;GmILsDs|2K?TuBq>m6-9mrr0-gJ(%|cuUF(fmovGc`I-rsZtbL=&Gu4N zxYZaA#$00~ekUw`USD{ORlDj?Cbq`^n|J?3|06=E|AFBD1WYW<^#4=-UrCn#!;7r{ zKfKtYB@sn6f!O<2H@`7|qiqRFKwhx|wm0g#KeV63MvohG#^|@#U?O^~sPf}!jr&ZM z;uyix8!p|!=J#=O!iVPOaL-(Oq}5Ix>lIf-7n|HH+b~)3N;5D z7x3aiOgA(nIRC~>+evnfWrv$=5;o8m}sNRI+=*2d@e<)emIJ;LChE9GG01sCwo^r0vI5&f3UQ^LBx-YpY5mpL*uP{y3Esz{uxa@sU`!>cv- z%%(H(`>dLQ(8AQnYFVs_zfkBf-6R{umKdt4Ryy5r$m{WJI;&b9>QoqS->qR0TnbYI zW5t%y#MqFhu+;HM%;sA#$86GE6&<#s5C-Xr)HTct)XaM5T1|XSd{oXb)8a-%ya;EJ zGRon^(6^c3fC=a~x;>Xn)4z{lthHa$ez)suW=<_!>B#X#jtyDmY33-*O@AK>nobQ| zlv8hqXZrRQysglIZ%A-&30yxhPyhXjFb>;*##X|t|h&7S06L7OOh*D zd&Sd|Tv;QFz5IyHjewQp1K|V<^^_|CL$Nj*YyzEgWk+)>7Gsa3yd?|~%1?#;+)Zh% z9wt2)^Q55LZ4tG~D_vi=#CCtHzS=r4a*>S%ghH2+d^4$;!6qxG_jI4aCcX+vfK-}E z5s_-Czlxy~B1ap=zs=f9GX@*hCt_c4lDv3716Qcz z&sJg-<%H`tI}#L{^bW;Cd8kK`x~^anlI3?>6Yl}ZPv+wZvb9TAjPYoDE|YUXBHYgC z2L5D}Ajru9DF#x+qsWnEGz7W^%pVk1W!5v??!8|pC&Hp(1gN0m=<(3xmg?w{P`xZ# ztA4*a1fvGc352P8C4yAUKt*)G6>(-ALrW%?e1Z*wvU~}p!~1DLSlL0BlrV@l`y=0Y zur_R%==X_L(E2~=TPjN}YOCy8&Xq?+HQ26mBxzo9gNs<|$ARZRZWm820C zQ?W|yNphPsWluH#Vjvu7FZoN3NUtIff-Ij$!@#G$Q>4?+Iw?&9+0Zj}AK^A~T6Y$U53^5#dP+2tFEC^O$&;zCzqM^B zlp6veOPOi!KeiL`#Tp1~EH-)sxI=sN)Mxsi;(ByiXF~d>O-zfrmv1vYa6_ej>+7A` zv^G=86gWtKWrUYCSnL`*rfV;#n1-GI6O8!oe@1xAonF1g;}xe3vL_cMF$JrO-#6wQ zcMT@-Mmp_M(8HApG*BY4^PEgfqKzPZY=>nxg{WlDoc)fUw8DwE@l~`xnpch*%SGC_ zW!ka8Lo6(R64I6|Kg5{mWI_`^PtBQYxKCinV;KojWy;DPt(?%5@?=Uo4!1T3e9@#; z6{)(D2b0y%^N0g_5PIT4L0y-LQwEo)A6`Qm3tpc(j_$?z|- ztE6w;$$wlqPqKcm?t-;lxge+u<2mLwD+{uoT(%{X8mN=#V>o5C+G4BJ979A1qWSX_ z(ORi*k&zd*`6#Y6-&=Kgo;{E)D`z5!?}d%6n(4d|&G<FByoxU_V6AaRRdO*%bYeob;%j+d0uQ#lsjM&v$tNmgzqpc2l>K@ z!B#lU9e&h+Yhg>&jZ{jr&ZK==Xc=96l;m+IzpA~(Sa?z^ zWz!@@zP&v1+PqLYVw>@XPx=i_rwT6##Ln;oG=XesF^?k~gd+e9R>nv<4_Xssr*EV| zz(*8Hf8?+WT?v?rp5l3xH^gnieOXP59j+tmc`{N}1`ovwaOC7xJjwgfgZ2{neS8(EH7M%!^M8hlKsq$P)XzUE9( z2HTwAiGnlc>ynNKJk^I6K;T40yTPRFI&b#EBE*9{mn>zc{(2?T)XE&1)3!tBKvus? z?h;YrW}+r{|2wCeJBngjQ9x+fS|SnlVv|$BPh5W%3`r16ee|X_wi(}w@_JjANwawj z&^ph_V0F2RXdkQSv<|C&G~v46T$#FQhfxb)d=>0;KFg~I^}*gBd5~>zp|;drpGx#R zS6xAyaY$jyo#*KaHHaA^fjq_R>`7P6GpGcvY`+mue;lEq(e!e>8{|LRKU~9}vHL)1 z@33!nE39U93br#6vod>U4aEVcrIp2lYVyOaPGgED5^*wz>`nV5-E%l#u5JO>Z@Il4 zK<=nw{siJ&@>i2a>ty#VYlY9}$j9k1B9Io^5r0S)(I(rGpy>?i%fFpc%qY`+9>Vy?QqK?vuJBCRBR52#6vFb|6r+O8@tRgTHXyP)wM}M z$eER&Qu;=|k&cnc(|(K3;v*mkX53GAgaEndQI4Ov1|W>LhVRr;2X`fJDtL2eJvgB<69s-Zq}Rn9SbIQ^hh+&jM2%>G~G; zCl*J?>D@F;UgK(0dDV0rw(-KqFt`IM$=&7wCFTjS`sdk;ijfV;d$2@B^t2JaP|fAkjXpo!g3<_1$D}57Pbn0zjE; zjH~06`+Ti1?b;tcA`kN4Hp^Yy?LIi>t184r+V;dRaY$69@gPCi2@02IANvGVTgHp- zuJ)9h;l$cBLx@XBIHb<`x}y7nUh>Ij0Qsic8%lrrs7RNM6{jBtVNRbgrys#}km?Dz zdfu$!{Mg4dK)82f*}O~RT7qLWSuZ_zteQvHIDBY5^GN(P_=lma)S(<7yZY2(aI(c0 zI1QvI#0Y89zQ|Q>1cZ~fD6Q2|c+e4eH#!&^93vuXsScp`JHD2w;VXU){C?95QvDZP zK34zz*={N^^z!e3uEE80i`S3+2VH4Bp7Q^Ty8ee#|4Uu}vFra<7svmhE(ZGl4|e_U zH68;#3p*Pl^Z#>cx7_XFt*x>{?>pP!W_o+=_Udyw%bTQ;G)6aSY;<7U#LP=$egkFmYtEj zdiKiNi=&-bO)UuV13_S|+jiku@z@oP zcQ}Tqh|}kNA8FP1Uc)FL&Jz&-SV>j8;q8(4Q9Fi+v;?ukSAWpha)ovFJrq9Ab{oK| z$;v<4dND&Oju+}|Jk+wb$85;;V<+ARZWFm?t=-0Ysp$(-Fvc7B=vAxZwX~n~jh6z! z&SwMwLt{P_uCP3|3^$s8!9{HFV+V)y?b24;4C?U{0MYUb>iJO}n?gtWDn9 z+?uj!<}#hDlzNuC#sUBH_bKN6zWc zfAUwk2O+W$WR4b@pVW@n6HPjA_{^Re<+<=<4(N$>top8qi( z@Xwsg6H6yLbm4BnA(?;YoNXQE#<@ViSghpo>;78QO$AXRo{`K>Sn!3!-z9@|DhkKfe!->1PpRh-RU6rKRSpgl1G zX8+q$=sn8)$S5r|Js1I-dG&>LeJ_?@Mj#{qN)6nxq`0zv9EcM z3CEns9dSVhW~`jJRl$q0g{}2KERGJ$x?Hs#$PT&uz62DH5G4UVMRP>WAl|rMsHO)} z&Vb*5miF+zz`VdKviG^jwtTytb1-M7{Z%#n*Ia(NBB6FfHY9L|erpbSq#FN5oO6cv zU#4^N+tD9)puSEcv|W2ei*f-bX02LOAb0Xot0DKi@Brr4?ER z!B-1u3kuK3=VNyIyMF<^gRu5Lsots96}6ST8b3VGBK&~Mp|t!}3!=@CJK?=xRiBKU z(Z7*=q?Y9$oPRtcGm%LvU;4I2=iKLB@XNYjHhZvD&G0cpFQn0n!6fJ+SiE?8;dT97 z_d)L1eKC8al1Rit$8p=}ZGw%~r64rk8~7kn~)+B>nz04C7-xVHRzfg117twMN- z@08v+zkKsg3XOS8_JnAsk=xp~9BXqsBRg|H{$C7y(|jX;iVflost?JQH_v6Ieu_7> zij#o}NT2`2ER^|c0Qk~?nRQ@)u!617eZY1iTZ_B^b#H~b7L@33(H5%C&(3k40jmK9 z1w5=XW+<~>V?je4$dtvut`Qq^O*M{g@$L`r41ln^)<_2DzykYvH z{=)x60m31{=dno~5{XFAEyy(ZJ;y`rbp%)kS;RvpNYx9-#+i;0Jd&F16=;WQPD0yr zw*8#wob2rX4k7bSoxH*O68i%CV*GOcApcPR8VK{x6|LpDE8R6N6i}0?lGP~iRBsh} z%eZS4D?L@xDtU`Mg;f3(^4IjjAMx75O-xbfjjd5sf6E-B?}sE|DO-5nEGbGX5} z(Y+~+oV*j09q1k2Y^Q9mtkgL@O^9uab|-d+3u*H&%<9D63aEUee9&-+{Pu6%J3jKt z-s|+dJ`UY%H(6|SB$92VY)qDb3s&PlgQQ(sB2_X4ptIsp^ zU)CHGxL=GNOFFV$9zjROEu_%j?I~}AJn@8WhhVj{y^Af}bdT6qAwh&>idYbmVHEC-IH69mSpnzMlS;DUt&O+m<`zU+VPF{Dxs8AoGMc|EajJQ;Mu{ zmvUh1-%#sd?nF3I2W+^xW0J{_Pc%=W7b^)ma@9aZ4Clfe&r%WEw z%uj_o-$LC-b43EuYzOQ8M4bP_16sKo^%G??grv6uB5~Jrgx>>Awg5Q4+p(_^`zP*$ zu~WvK|Bi7v02l0T@u}eds8=NAfA)>{-izhJ|EF41_h@n60+Q?jvHSk`EJ!@$LgopJ z>JJP@L4FOv~X4xE>SJhL8z`p$0Jm?BpC1AAxR^=MN$q%ci zbP2#FQ{Z>x7=Y{DDIJ-|xgFAm1DqqB>h+=Tz)uQZ@|;$KHtk%-4ntMX^6I7{H8UH_ zsndou=SsZvu+f4zJ4!N;Z{FIGD+i8i)rd7x3|NnBl>#(nN#GfT=tb@QH=qSIEB)x$ zAT*k(IcGO2<7#dS13jt0>bKKXv;=T;Np6M zhk*rlU2i`8VO}2EZQ3ZQhBrl2Tw^=#;Q)R&z6%H2bkgX(|1t}!-%{v}4)9ZcM~|kA zS^E>C3~9`(Wi!Hxp!GB&?sgQ86MYndnA(?aAPA4Mqm%RqFOiOfSkP_iYbjal9usY$6u4sN z%fX8k-7VJ9>g$qSy5jwghf!>n96O(c;L+)9Z;e@+XZwxLEEP%ScCSwrbL&@NZ9JJlK z?+O5QwAUAUr@fPX-WCmBC9c>lt;N@4uf2WsHRM}e&e@KY$QIr9ceGTh_F1a&qL+x0 zjpiF>^h>y`pX+fWlL_@`<&yeah}r4CCEO4+K=x>fE8=qrJ@nCKQM|O4f}5+&e9Z3` zBX=unp6am_qs!TV8$+(+sOKLB5oH*ut-k>MpP?kY?5w8N+@k2nKYnJ(f@7F`fe&eK z>J&^X^L&89%iw<@yt4)uhNL|f+0h~3B9K7oyvxu|U9EjQ;7NEeizhu^+M;QKhStY{ zy_%YWX`ZhH9BG$$M8M6)hNZ);fvM5c$=M!0_%Qa}c^8ze3D;`HI~}6cbLo@97CIdir;x4iA{*c*`mNVuo?4JRN?GAO1ZnJwRk;-EX!s+R)B+H|89x?#K=|Z(fg776yW8O@-W?uuey|tI z&5r>@X$30W5ho!J?U5=TR^E}0r6cfMrCqY=axc|6R{|yx(By`S81R@uWfa`?>EdLi zwudb=0(ik7ErGyzz}Z_l?6agT{2-;^$kE61jr#BACvtku==ptlzFv}t}YROa4pf(ED zFkxOO)rFaj8^9NTAFV)c@bB^aF7%D|ZOwh<5kVT)`QlrNBvjXTS(tD&|3)|W3W}vm z=2SYr;t2j;4)fY1u-402Q5P%zR3ICUDO09g=ASfTPHYlxGl|>{de37>l+?dhzFQjM zs>y?D4K}z_qrzoX!+AM1(WqP70`b~Gg(*vxP+A}KSw>sX1W={+okzSJm+DT|MX&eu zk}9ZIM@B@FEYZ=$HMjYCU#9X4F>A($dgKf^&WyOjtpp6#r|Jc0+zhhak~lBq>EJIV zTh0Oz}QxXdK-HRuH4kJw9+wel~e$pq0#(Rr*V2o70{Ndq6Rc*YdJUU`5w6;pWM}ZnTLOaV~u)Xp=NUka} zItbL!O5E#`8v!HD*Lhh;%c8zLu{-zpNl?!~06rTcHzu*O!faRyg4_Z|9SrQkNkREo ze03|-GschJsf#JexXd4e3w?#PWKl~;$7zxWrw?D$5(Z|)Z>k!3t*DK0$~7Zj{HUlk zu_heG2Z$u4B2Rl*xy;Rxd#`tMNzKTN$2-d`OD)SS3vP*E9esXigzK;8&CBN%Y*uv8 z??Au4Eq$L%yHb}*-->;ggVm+P?}X_>wcRS(vxr_(-9FW+eXOzj1RZGNg!B{kJmr-4 zZpzyk@W=l3;Ps*4&tT}uX3D3^;pFjTGMzv0@Det;r)DZwT32eO+uIo{F&=%-n0y{uBAH(%Ytv?j%V-usQ^}l8N4qJ zayO{aH#X*3r-{#lRE%z%ol*bM8{b(G2k2T_H7xxXXOK!6Q?WBF7;mX*0Aq9+f+8tq zhy7qBshrUU9;H5Z_`y0m+?3($b72HFlfgvunDg{-#^}VV8L-@!QXyuQMM!@wwJ*b0 znl;Om$qA?k#}_9tdvZ$S$F*?koG;d#7zsBX3Nrx2gK|kCCZ;YYhqt98RKAgAd$N>F z;iIufqfj<;1`dfdo)+vz@&W2YJ#qwIcINQmafJkGmA(VSVa&(ujH48BT_dsKW^*S7 zNlb$&c0<2VN?0*zk(H>X4(C5KtjvamcJAnhT*fA64UmA2xUIjkS1bm#ZB_`&xn~ym@x7@ z2tXxzmM;k>Wbz<@`2_W9b#n__AbDF$i<8{QOe#6O?t|Lp?6*EAw>Q0Bo+^a*+N~2M zk)qpP;I-|?kk!}sXSUw<<99!urjD5dI7<{Yxw6*VUgIfHr_3(9j_=Jcy8p(Zmcr|~ zgS_pxkbo^UHl5s8zqe1X)V;T+LaKP+Mt^=J#c04|uYe0qD{m3jBmca2pYf|VLVxbQ zH1$5<eQRpwMHCjue=!0N1?)!d^XF1heU@4hu-$_J>+Y)S|l~~uWvPsIs~?Nwg{qc)gjj- zRfj5%tiRfRqEWHooKmsxu;{R1wC%9(It)MZ-~KnDzq)9<2tUSNvfi`5v=p;20 z} zSTfk`1IUZZ8)esu_HCsUi88Hh6sn}W`+B7mIETuh!w{f*L#vT^m(o^BTaIiX6hM%S z_q@59Lz*xyWt@BXYuj?hp)W=EbVgqMdetsqb2}+3DJt91S4|*&)>@Knwz6Me2lLgE zB`Vc+|KuLzQM(k%snXrP{N(rLF1&rU-RlT&M}S6Av)`!i5j;NcHPA@&1+tVIHeFrlM&-Hwg=UK7xcbvb`A zhk^K>6{Ad?MR^QHYEa^2F-C}Pzxzz#Ls(>4ez_y7adr;svuij~X3q5HBYnnrqGDC6 zbeLj;4$RS3<~Xo5RrH?%YV!(pWFWZ($lTx!9tDaNOUD8FanSXFoRK7SvB(t>;CSFn zP0e@kpf$g5+o#F$87#d`Y1%&16ynQFTdlW~Iop1=%2Kf+o5h#y6|G`t=18pLnX)`x z)Ow93w*G47{_5*64U174M-5utgPw&i@!zc3vZuMTIJA(IT7i>%%cy!0o>@e!*R-$nwjpRh8;-=Z( z(r~3q6#4RTAKZ5yJ-h-x&G_Vbv{kL;5Q-6%xc|UydZ^wSTUkx=WXpguu)95DzAPZ` zKhwjWsIO??P~Ffv2$43TqpWTJYcNA{Oao+GgA7F0g9I_?G5CX;a?;o`OT{+zk9tOr zN=L)XA>|T5NZyb;cz{}hbW;G`q$PiFfPxQzh(7>{Zq&sQK!ff;83Fb5RZ}GyO7M&7 zR#N7=Ududctngdq;(ocK(5oX*6J|^LbUJN@pVD-5ueVOv4-O|}Ht%mT(#8&=si*E4 z^fneY5?ZDBinqayt1{%P?t|gy?G=ZxY{apjm-68Q7v(g|&32>5`daR*N=E4l}9M zoh`<7NBBRz?*~-fv7L$>^8-|Hw5veSpD{Wfg|+?mY4H1|i#Mu^=Pw~rr8F85jCIQoh?h$R4C)3>8qz!Ieo`yVC zrnsayuljPf+Cr$grM<)vXEB$DmZ(P^1b003siA|;H}BLOQw_yBD!YwI+By#51^GkY1i zo1D-4dt#k;8CdCF1PfiWZyI%6y*8htcsJS}AHCqZTHPK-StExB{u{J=J_E2~zgKj0 za&p`VQHNc$bl^q}g3p^5El!(qefM)_y$?H7Y8*+d2&D9yFjRKIDRKIQd1bFkfb?T0 zK=7DupMAF9ogeuR8cnMAMqR*rgFc(CNk329u3u{H;5%|ob552xX8RF#1Z#5?j)CTp z^)9^qs~M8^;3aevNV;%wNk-t(6%2?`N88)LT+dz4!hEwQ$Ji;$2;*Kdhf7}4?D~{h z;S)4L)1|lZ+3V*ZFM|{HOC98$zB)FL2B2hf;Mmx>nw%b%5b<`F=gKF`T_+P6D@B}i z)w#w`{@~quC5^M*kTA|j!0=|#Lx0giwoSR#CwIYs8Bm3|YhO(b9&1d#pZB&v~VLS-m%FbiYsgWvx42 zH%xTDR$FEIx~#H&3_qLCVBU1M{W*M_UFKIwOMAJyf73ecfO8{gd@gA7MVEI~ejuLB zAR`Y_j&H6^tatqYc|0RHAXz>jV-ll_rX3TH^cOc}%sbd!W+v1)O5Y#II} z(Q0xxX4pW4;225n%o1ig)MzKfsfq4xkM4=YG^(4yH0aY|_refimaWjD{({LU7U?QO zDe7M>7`r+ch1*!R_(Bwu8k7irX_j9nnU#DT9WA6p1Wu4?+0Kh9hTtZ+L-_k-%cf}@ z5mV*Hw*pZ!R`ZrmqRuHFrcXrgS??a+{ok0sY^;AF`jT#+3-VC#0q=eg371K8?=vQX zBFbI8Fd)x8LHSkVyGSv&Rp7X&*v={ZL!}FC#zh^*tyxmS%>y@-8u)g3tspblHK2Gn z^{L_3hLj^4{y-PL$_Ih((IARNjt1X&rsSjh-0tyNH!-iL_gc%}C>%c=a@AyfIpZ~v z>t-{#Cs`%xj+!GFrqS|vc1LG9z6PWtHy4sx%l<0MxGjMAWC2jY<6nfboiGZc%B`XG zAF=CigL_l)F?=$$(As1+P&+6)v2Bv@X1RlM zB6%@BTuL$P$%{Adx#KqvbRxJzd-!o;ug1F5-6?-krI`y^2{>I590#*qSX)guA5%nX zr_8YbUDY?lXd(!aXWruz>@$E2xmxN#O%db72n&J)?Z*(wAxD&BCdM%Yj0kildE~yLjy|9n8z~K*Jt4(!F^C3cP@wy;fEHDig$H^C7L&Dei3frYqf!H# z@oo;bpn#CxLs;X2h$@D}?~LNFj569t?>F#hYI{L+&65e5>KqrmmMceQ5;pX5g>B!dqx=@x&{ z)DG(Lg}D@@4;Ltj8TkX=zr0^JZVQ^MD)a=lZCp#%0ZqCI?q_j5(UDiYy+)5t1W1FWV35G;b#50 z;QDet_WeFSYrSrim$-snL3Std#IR71d?nPVI5BS7)>WQ5ImBeyE!hQr{({?4VN*&# z4hLqUVm>XBaV^bKqQNf8=4Q*v;d(Q9ojx_5lo7;FDobafiLv7hZUlhSv!*+3WMi*; z)4uzWHl+XZS8Lh$us-e>uH)`|{ADb39vQJFRErIK_tB5xFF&}NOo@G=04Oz$Iy zMT3Fmfu&mL-&?pdC*h2-@gi$O!_d0?YT#>@m86uQh#Ik=$E+AMPggURXoK=M8`oZl zqW}>}gsox73@5@_x<3pO-CCNDD!_}2x=^}a)tE0l&NQBbuOj7+gnchk>w5wQX9R~S zN;{%sf*sTf)-?RF(HH5P*8yXMFn+_@Sz81ErmYACT-Aa5aeh|eF~iN#=$>!g&kt^; zvAreA$?e(Gs=M5EeLNI}f@037iGAW;wgL#xgr2Zb-iok(hh&x=>r3G&^7!A5Y#DX99eXS&_ajBeugwg^j3{NBGnwYS zdFu3F;2_sUHbE6}ZdVNfcM9y3+qT^n%NA^z?Y+5}9_PPnG%ciY{W5r9{uP-fj|rs% z!Q%Oz2Wmsd zEmrR-_6*b-jUk|VbZA??(T5y>Qz~Z~L?Qr&hJi7FY3+`tXJJMN7VdN?7s3|+VSX@FE_I`ImL^q;ze3w1KosWqC zX5hTFOjqHn&s~A!UcI;{%l_iDawM+7LrZ6?Fh>Tx%oA{8-0`W%DBY^j+Tp6%Tksod zs?DB{yX2ks9e}--v#1_YL>a9treYi(>U>+yPG726X?svZZr8R@tI5x+Wwd3uWx{28 zWWzc)=RU1;Fs*r5!EaVDp!F!|6fyfSf-9{i{6aL4d!HQb+P%;_(mOP}A*WG8v~0mh z8Q)zm#7=5oh!0JVWFXB>OCDl}Va>fMdJri!b=n=U`OR*O0Gk-VWzi3|iOe!xQn0kQ zp@WPc8Y-}Z3nbFT2truL4#^0@k|qtO6fX&zr60lh^=i``kSvK9vAGf!Dm87gu^P&c zcXhp0Cyd_*|DvQ_1(`A=jU+#?)_jmCJDdD$53LL%nXKHxF99q^b5fDAqLisAsU%gQ zA<0@U#fm_vomf$vmX02!#MDUrb#-^wMvmhWg8;z+7=p0uq{WP0r7`6fu~xU&`57zS z|2hV%PE}vU#j!K#8V8 z)?u@ayBuul6m|Jdlahf}O|A54{Z!tlAW-$+^B7A$|Qn= zRkA))ZR;d4BB&DDpd$fWXPlLgCs+Ceno}Jr>e4tTmPg7|^kz5it0_@-)W+VBbi%0t zTZaBp#kt5m82~3?ArOOF7JFO@@FHnf919@Au6P81jC?1LdOwPIiTN~+)v|jtGu&Mb znpMJYQT$!}nIFnjHr0|2ErH)JSWO;`)f@G4m{7-X{Hm&UgBu0Rw zV4iThMx$6q`P%lzT94T)gs%_?Tl zFu$`{%3O*?a90<_rH7Mn$cTSTf_lC9$OT6>5>vvaVyt7dV`1VXTPu6`W5YlEBK!%* z5j?;E-c*#4SSi>8>+E!jR5vSUe1DoBh2_enQxK5!m)S^rX6}ee9;8_Ly|5s-FyLJL z{{lTg!oPGh%FEG{Q8E(6QIS@PK2JJ0wvoxzC!kUa-~LUDy5cE+mtv(jaSqb$z*T1KCA!>IyH5oB2EqgZUM5TOeMygQn?y! z-pA=c7wo4(5M3@N{VXWX@`e?b*0z>5qErhSfhdC^DMXY-Z3(n`pT&#J7Gpr~#i8&l zMahfWgo1>N1+CdDda)q{k9K8;7cu>S3hT@rl}a@DO)-VDKdMyKWaZYDme!g`ue3R4Iw35!2CwO zP{;dtGsF01nPNM^PKwf)sjt}RaSL%B&5s9-)I34Uj1=9QXt}XbCB%(E-keh4%?f;t z0xP09jB$g?b)z4z^J9Nha^nFI!HL@p{2VysWTldW5Q2)?Q7Th@4(NO2jU(b45M!8I zXX{NtV_e`H?0$1rK^huWwPsxAZUw$t@o5E7L>pA|{CK_pdOz_;&00)*_&3>2nY7W^ z+~gJvG%Cc+G>FHWn`+EDb+{HDraZesZ}ITqN?AP2U=%tcBP5goRzhuG_1bU z+OJz3dqliHqR^-S6p{nYgUut&N@MdlmgKF#!(Y?CW;h%<9Q{T3&B)v7clme2??&EF zYt7|!CH<+)E$JP22id`m*hbtVo)Pc1%#N&{det?YTBr1C(mx2j8Wy~q-D>vQeXgV@ zy;HqY^N94t@E0Rmb4s5`FHZL~uW7z1c~kmM!;|4X&F^vVdUZ*m(T`prejLC#<~mF5 zLoa}$;+9PfPQU8~kKY||W6>?a%+W&E3wBx#mc1M zMbs&YR0)L_*A%Z?DG6b|?2lC+iXWOjPVhiLhM6O~Pj>CXyT~qXm-b8gQQN3{)HCYc z8G0zZE2FFQgAz7`hN-DS*5<;w$ld8jB9EjMm44~~Hzg!jNu6+&u&gN&xIHytz)g9C zOH;~1R+`?=Knj1VN7Pv~0nn)F{1v+Xfvy{?KORX()tu3P&K4FGWm`iEN zOy4;v8;wxSSmH!Id`C|kI4PU;@EtwWf!k?f_kR+!bN_IS!coUP6FivX-eIph?t##S zP0ce(W+Z;L)1Hh5V>ezrf29;ybKh$(+_3zbpv|EV2EC77+O=x!^lvhmM?T%MwAmz@ zb=;omAAIqu#hJE5GP_{i*KXPA*SPV5d+xoU)OE>ddui3s!w#dt2{cR(D$27!!xH$w zjBe7vXqYnKFvXd^8FvP-iRqsvmNqf{(-fF7twQ8OrglQ)&$5ZqwSbk%HUR@|C_uN4 zX<0=qa!$MJdC)?gpxFOTHuS_d#<#?|ctYjWaVk_k0;*_bQk<=kbD$qN9hx;tEGw}x8)(1{$P@_#0ummPMkN9WBaKND(osnv z4J02wBO@@gvN(JK_-@VYF+5o@G0ZKMkobv?Iy}UH$VQz^HPZy;k*b<=n5wJP0dtN*3N*%&VU7a$c!5j zvt&qwmPk@An`Cv^;FK$r%3QY2`|7|maRl@k+8Iz(L1P6*OsyK!x(bTuf(3;fr6uR3 zvW0=%XZX)3w(}#oJ-LaTO3sbs2+G+TY^fEB6~gk=gDTZR6_#?XngyDbnuqx(8g}PY z6S?$Vc1hn-9a6p0pp6NZxNff5Z<%NF#qD#w ze&4(Ryr$*THa2U4G)|`joHl^8L7hZJRF=+Q>w9_ZE%8qrpzOIYLuDR%n`LjR%-uLi=rQiI@LTZiq_?@pV@S4Iy zuj04n4VHQ~{NRVb0Eq4YuvP&?Yf*?Snz6n`V9}WM&8%mXPakB^8Dz3t(BkCOK;;Uf7=D@#>Ec(%NdhlhR09%Q<73bJFUx7DV1WKx;WA3gV8Q;Ktw<5DG#Y zfhrFG#gG{q(UoB2IHa@yg?bb8wj&ksok|_*Yx>#|N*z;T>M%8@%|O0hVivm~d(w9H zcX!t#bLZ9~va7XKxdO-&Qtnm~`cXiYU`S=5!~0P7(l^y=5Nw!NNDVOx7G%;alfILbmf>v9*INxx-rNT2kZ7l(s!*IdaToTqc?ETb@#5<(%J%3{`x zQj*M3&fZz%7-ugRxvOac%pmWr@+j-KdaPAAAWhP{D z6rjRnjWC0nMt6sNLXd0By)sl`R>QNb{g!hri18VUoNSmitD&J|)@NOfbEi8yvmUj| z@Af7P*s8df7IZW;%$g2PNh?cUW>v&%A4p3sN{BJCR{u&m_?M6ePt~b#)F+z(P<)IQ zYjsXaX>~RWR#;fn!kDpz?wX~5WucHs0n$Qc7)GouS|M$;TlsP9*+&n}myb*xJ(8O| zT&J(^Oo*@K&ebbi4jrSM>}fkI4sz6c3_9F15f|MN&gko)7Hf?jY`fBm7g;g;oD3o) zd|T_m3I=HkfdZ6*L7KusF^yTBDag?Ri2R#Dn#JPte!|03%yw9wI$Ehrh=3B6nKc2r z1N2xA9hj>tt-)&uDf@PscDi1)y=WhIz2{Qx^5Jc6+@tH!uhFg1|HG+JI&IFlle62L zE;oni!|K_MIa|KoTP{xsR_cnh)ArYG$83MGakk5>o*yCYIQ~FROCSJbbG|WPGzep! zS46D67Cd6X$Rb+CEEATamg5$sWx)H?wmNuG(;2-gr$GLhq`T};dFljZ|KcPRoxnhB z5!_}FO{i6EXt)9*G8H15ZDEs@iHFUMhQ^AfaIuB$rd#~xo6U*f98)|zGB4ZL@P*dv zGL9tw()7>fPyKiQoMhtCb zgea^!|JP{g9h$-u+O0ETwwBPQrUfbwJs%xg3#TfpE@}Tm7>W=|l5u@f~DRu+5iNBNE%0JFMC8!ptaJw+$U~oEgi1*l$ z7{q6K(il*TD#(ChM6pM~DgLChBjk+eKp*JU59&wt{0Kb8^c>QQdP$#$=!E{LUZtm0 zy`!ifh`wC6vYwIqs6sbf+vhP%8SE#FHQ|ytttuvQehIrZPA_sfwK}f=sQ@38uuJRl zBA?R3*eo;UuW&+%4_2?Tm5rxOuvTt~(|y1UV4)@AALs zCw@~T>cFX95sUeTq}iktR2tEPJ>&SoXLe+8W}JMu4>zR7u_)^kNo+Qn#QTg!9HGYh zX9fleENpMDh2?TBj5M-PwtItxQ3IwX|22j|!-V0eL1}QMpW~FEe%1FIF`Bs)xZNp6 zk~$!Gw{oJ!^g24GhC9krrcxzW_rRK?ajQKRwZ)?LgcrrF5ikA^uRn94o$;ws78ouz z16yQjZH-CNy(1x|(q?P6;m5tvIm@QrNhZ#7?c3LPVCc%e_JZHhyf_euWo7RN+>)us zM?&dHBr)$&vU*|1w(s09FVp5P2CubP8n1ZsyoFRt>7sNDv|1zb5nUY$y;hyFMwA$l zVrF%nNDXp2H&3}CEu<0ILNj?*jdw%^tr$f$TE&2@E^>WBq13dT)^pRBJrs7_yp_S0 zRVOkZsK`hY&#eA5%JY7muIBtQ0Z55dQWB4(&zRGq7zDK>y__jwCkeiA;b9(Ix;8$#~x``aXi-eipn0dP3DYLfR!(*ApN9nVd zAK(Z1QGSe9@*n7AD3o=(bVPT?-$O0b)Ps}i9!o6i9_zhe^R=)%=~FHoC2 z;^7WdCqRPl@9g_Fa&t|HM^>)seer$ISxLak{!jL+wP2q)YKW1jH>QayVgy(nQ12M?RpAt9Fn9(8-k%pbE!1Aqca!<~Jy=>~Fx@@CD=hMUbd*>7;( z;1w$UmD)K8wO2HiJaF4!()Vg>MbD!=h3ZuK7D%RvAh54v;VqrZu!yA{9yVwyT5zto&jnF)&afy zC%{@W`B@#(97UPZu{@Ki8fzOM1fxAnDO{GO!oEmSV05p3qKR2l1bc+ORzF3^bY%OC zjm19WAhJ^%ON>^xBOiO&#~SjnCVWXI>m`}2m#hg+EOL^ylAN*BK;+-DhQ5(RUJ}Vu z{;Y14smk5hq^CzR=yAOe+)-K*F-DqH?sSb~=W?|(d5mxWhn1!tr(!=f*34LJK9LwN z$=N9}%`+*nk;PdD8f)zvBLc%4fl*_DQDDK&RB=1YvNOrhZZ8&)kJa?C3?D1>v4Jve zeMUQh$lso&HIm6<;Ve;c;+&lbxw=?D?LHLRJaT(cZYT=H0YI*Nv9~x-94w9&6&XMw z79WAsSW!7vJX$1UMLYl*6GhG^*pq(aIA@eip=8n@SsW6Qe#7FhFX<1Da|SsZZj3j~ z&HEeYc~Q8jnTz+D;dzGk*cNwcRsvb!?95LrP0hIbtM_$ZBiRkw#`C6U zS>$F7KX>Vko3w_;?&(?9`HjYa+Z#7xYl=+1+`Y2nGt-+_1ze!w#AC)DeB&)cpPTko z>^@HGh$**OoEf%X<7>QzYlp>|s zN>)TEi?!;?G?cYKRCh)9L|=?@(Q*9ffxgrT2#iow*3-J?UBNxU7pe8X_6`f-l_1oW zouiBKVi|H5Q_{RRO_6zVFK9{QSdc9n1-wOohzXhziprgxxO1Fqly$Dfnw$&wx<*{Y z^#b`RQi8y=6m>w6MyYaLfG^T`G%vPqmtxK2@Dz(oriM?5sUfzVcPKSXcQ~Ym#1rh$0aeRt8y}|LrQ0CN z;v_v&TB$%l>qF&AXWxG6+#!|z)bOcEden*LM2|%wXP6=*RXr%3ftwk0XFRz#cdu&i ziWI#*hZBQx)7049SZL&wb7MWRY_uV^GP>N0y|esY)LmREq4RKALbDZRFY3)K^`Z+? z%OyO|Ip2#{#8-Lo%2mF04^;QeLQ5JKOSpS+u|+1G59_d&W_pNGbaXO>tsn-P>1K~@^)=f7*y6U{) zn|G}~@AR$BebIbm&X$D*yPa3oJSg1XL1%6uJL>%3*T(q2s4;06Z`L>&V|Tji2EdPI z41mXLh8HJe*UlJ~4+1nJ7AzFw864y(hYqqff*HoyGt{9$b2BrnJTrr15cxnhGDVBE zm%$QmoT~vIZm#ihlz=;q3c%5gMW%}vTTtBOOY@Yk=jblLNyggGiWC0trZ7Zc93NUS#~fp!@)Cj znnK{dLV8hb2P(e23l*ZyYm0ex~*=n zLQqCMF|Weq#VWzA^35=Bb_#}VV;y3=+tl*Ea&LA%_>5h$^_;DZOE-RQ?)ifri$Rl@ zr{~z@CJh&umv6jkv8^I4pM%Nej)aqrZnH+QYPSpL@Zw^vC{#>2()@w^8w z$rXC0y_aMIk%&dpwvwA&v%ph%IfxKXe}yuG8}=r0gqG!~TFL77VA-35}rR6@=h0z?LI}!ZDN(6C^=TBu3*P_S+poJe7DFB{53o zlQNaGlA}sxK!tl$_(c^~(Sx*EWMCVd>xPNie$9~I$57bEGJOogeUE0>uKSPO_sp?J z4SiE5YF@oRSI!(VtnKKb>>yP?WjHkx)@*&Sn%Kk)eC()q_<#Q)2n#L8U;pQd9(^>5 z<6ZOqsnL+XJfu@tiQ^)0t4?obl7T45Gk zf?J)kx?}2yIpU6`+Hi}x=viRipx&Ul(sj9eoo7S(CSkK?v+G9p^`4v3+ceu;52J_G z54j&qJ&%qSeyBlI?&3zvMxg2Ul3SgP}>Z0=Hv&=@BezRTO|q|LPu@8G_^1S$+6J$ zL6mP>ER1clbCF7=N~yxiv-WOLU~a`R3bt__e#(}~1dkmtsf17pH$)RowQKtBmOU5D zTGE;imJ%BOg2>$IXN^IZ=xFBdkH&rRuIVQH?_|QP)&iXK&Y+=u`crq@H80)JY&Xv7 z-$kAYWWzd92hdBZC%7qq-YCh}q1PT~+*zm_9<@?}`J~V6Qjq+0zw`;&!aUM$R?%(t z(t73@_HC|hEntyT%#mk~JXiZI1KHq=Dz%cqsr01{S{2=&dVs3df(GT@Nl}|204<1* z^`Eq<{h|%?U!TQTSE*_ncR4|$m9$PnBnLS*mw*YtwyU2GN-fwjbUuWgLoHy9rKtmQM1bp0#vVM)Ivt!F=pYY8%3%+Qk0f~ z*vnha-8}(pl=`Yg#z-e?AkNN@l+L*8fRl**@$8H(y7YiCn#N4Eht`E=&veJJfw#G`gY2? z3*gUJMBQ4QL2GuK5_19#?VVTm&*Co2%`V1@0i#i+?#MKGV?)a~t))LUHXpEPG3eew z{EvMCk7sr{6L)=^hpx8egKht?M~!OLKyWZfg6vcRu*{%uy!r+^l>m_+9;A5WYowbv z=%Iv4`EcE^N`Jj$uQ^PK;B^g|0t!>xrbE9Qd#O2^Uf73x;J0Izhe@U96DI0w9&oWtJj=6fxprcvkP_#0$T_!;~X{=Vw_uJ?r# z-aksGuv1AEn^&3d4%{t`ginT5CJBGLdK^h`2dc;SAs?dK_VQv74+KYo1O>&Q#C}w0 zFgP0A9UKeN-xfL^JQ>snFZUfYV&nJiQMJlPk5yVrG?3fOB^abO_@jUh_vm)$h%P6x zQxyYf5RIZSG=YvIHO(OCTi3a7bCX^--sQ&bajcWgC#h3jR7%RcQdTOIouSS{BW8fk?5p*-cBC0loX;!59Lkl6Y2iliM?W}ZhQqq7{c`(^Jr$TQM_idukXhI1&&)B zee1R_zlZVut^eJap5-@b!{IsWXJ7EuZI_pwY{q9iU7FA}$z_&d{hR=PZ^JAG05D$`Zz z>x9jw&FR~P$5ihN|5EGov-+C*3)d8Qc^1wITq0? z;P|ZAf@x2PiuTFnG&D5^G^14H7}4wjk>gJiu}}i-k)&RV+#^9uk)nnOir_#yb!FCE z*)LQE7jOKf2P*_nOZbQ4$@ll=PsDb>dj?-fVs>AFn0;tdbwogy(Ket zf+aHzETOi47p=QQLz`KWVy~yz>#0`eqoNtD?1wj6>4_5d>xQjN{%K`K3R<<5uyXeM zZLR0*45h~a>atY6j+rml+K?LRveqwUEv+h%8O)Wn44Lh&TvOLViki}b%L;DAO67t^XEd!|7es5Rh!M(YO~Yu?`LMIaMYLQ^1miK9Bb@iGSax_CcTk_i+VEGFTZE5LVGoK2hIw8TR zf+`?d=a+#PJH?%XNq$-nYoF&}ihdh4f=Yo(pL_c$7oa+aqelF}GN`aZdA$1%Hg*c= znr=e0#r1e^H|AA<5*)M4$4~mJW1dp52wHzj%(HYk<#C;54NnH*F;9Ay)jt`?#ym^F zA}kE7jI?IEJS!VivFcVK6N{>lGPHEnYSJ*FgifPXDr9oy(j}#7hh5VRBn)Q?`qDfe z<)>kZGK(t(V|6SU57wls@o4pQHB(LeY^|%a!Il-sg_v&`CqWJxoN`*+d1!*dkh8M1G3QZ(u$T8J_$*3>xasek; zId1PamuxOyb)9w7EzM0^eKx(O>atv&Wr5GGk+~zQDz9o`7;Ej4Txm;2EB7VZswz86 zoa8vAzRX3r#>DfK_xg?D;{J7CXl`CvdtGkZD&FP|2JMuG_omULP`OMS&o$FsnPAY= z0e+=IQKC9$U0dZ22Hgu*;w$b<_#_Uq;oM{RF7y**N1Z~Xo9VVcZ)4T=_0Ho?R*jKT zCNrwc=#W{^X=SxWtJgYZWvxJ;3RQWs$}}W8{H|G8V~1nD+F9_FCgT zk>?_R2`lOhqMS;v*X{KAi>aJSi`VV&1z;303}!-6y}CFyd+v|<6V?oI8Xp%bK~ZgpNRYwO4Y7DJ zJt#zkgO^Z==VfKml~RN*mFA1kq;d$Qfx!M8pD1sSTR(T|r~mO*ns00^XO>rV1)W7L zdp7U-m)62at2`14E%t6b`^%sH=3DoCx%*FydB=)Ss4_Tq_CVWD$Cgh#^*R&U$tR#6 zbmf*a*U4`|7E~()?l3)MVy@TSXks*XsZHoEY{3X=)DIi{?Fy`zD(Jd`k|?L7r6J`_ zpmLq8P-3Q%L)BIV5gcUqFwAv#4(z=Tmwj;U{VRN~^aZ%IoD<#ghFC0(yh-vP8OZVrBpL!r|J_FDx_|xCQajWn(J`zlYA9%R>RPRJPoA z5Y&0JbgGm=m?>ssu(s|YoH>hg&$FErtEAA^gv;)8-YbG08pEXhCc`ef z%;78q>R4vd+|>^#J__Iw&Xl7EW-_&~iztJm0Uw&J?h>P1)W#(k?>H5#4XW;X#K zs~U!O<(@Cj^jrpDQmN|V>1AW92frUIE*V%5Fz8jPh4J)~NdP6mWl8A6t7sq22*H@F zShY;fLgzI>C$=Dr)f(u);zE#BOj*}__miENtn^_zGFv&MgaVtP#7QQ3*TA0paR z$7Em+4e~pykhwk;#-Ci<((0SW^z)Y`1 z7uHwWB0R^NLJ>Z>E;*duTHQE}xK{>@unQji<5WOKbmAr?$ zjYJL|*PcD(#E8#in+7hjNvpBX*;9 z4|jv(M(2%z8$vgPr;_&F>g(;h!>nH2jj!geHpyV}fK_!Uq`^wYgE_m&!|?&1hexr5 z2N^X6kJ0P&c)YXcu0N=XMu6DdAqb98kXI>HYGp7MEr`XUfX70Sv`Sr|QmGwQhtnF= zgbFm8P#_pgJDdd$hcgz2Da}qE{m?)=9L4V;9(nM42ff&6A}$UY@Oy&BXyiDrm*){f zJTXc@6pR#(qxeb`LMr^AV2lb-*kCZKQx5DSnUYpdW+wL9^CC;mt0 zE6!g#S?4!`DInY2PxHnQ=AhA~Gy2d`%%L!{!pc%7Xj1FKSO`xM`G5GmC)GP5Db*3| zhV0yehDT966+KPPZO$Eg3O{#r0Oc`5WGRIqeiqMHp z*Qv87&z$Pn>Nw*%<)kdPF7SY0$4M99QKIrdCc3!X{!Nm#vF3_IXADF;36eGa+JF zsq26>Gk0{~O}FC};%+?MYA1W~%DLTn$&CXn4q)hcdOTI>Gd=%8g(G6C!%r^r6sV5> zpdgaLzSXhZ&th-p{uIjnvZ$txy)7j36nYb9|A@c0yUuQ4Lm?Ju%mVA#_wh$nyv4(W zLi)jv-({N4KFu;s<$8kSEC|UTq4e5oPs$NCQ_APz`br^vh2simds>#TUu)kU-X8gy z{lZK`4EqT%4j4Q4JFg*C0Iy*4zE$J^{k1ur^glJ z%JJxU@o0JqPbt2t{AzTncq+ZG_&fMJ%>MNAMXwc|Nb|cCyOq16EDSL>79R)jhIzLa zMU!qMJ`><^6uCXYu)}WmN5Tb>NLZ;-5#r7tiGnNY2-{OpWm*+gM#2ucmjepJ>-CUl z1?)Dm6?HM&9xUl8Kc8PvsTt{d(3z*{g`vlJdf;Q$SCSjPLZqEu_uU&&MrN724yK40 zUg)SjaTm~TbuPzwq2+l_lDR2tw@m7gGU$E=QDT?W|Kjs{n`oEr^VWuIBMj>47CYZo zL|MLYoJ!`9pF1HKZ2Ec}HEZh;(H!E{ex+zYx!*pZ%Se(kiI^@-4}PFGT_ipU(~ZK) z{IL+mqUa>{IDW(B>hGw_9WD%aB+ecq;^J~&UzA#25M~-YskY0o8*A!{s;cBIq2#LG zvuAUU=jFuVEK}287SM!3iA3;Xm70JScle|SiBxt<_z08B+sD{}gq}QUgo*U5( zo*T>Wc6~GQxa;xAJFeeHewWhKplc%A%kL?>yZnLRqvfx=UXQ#U)yQgRncp2WZmOy! z*s0K8K}_MdR(nOc;7fq!^i-4yfhcJ1qKbxKL+D1=8~7K&UzWcaQp$ojq%Y%GtHSLn z@YsU3s5PA|YYZ;0SdG^>*GBGOOdR5BSK_t7^|hn5Q?>hRVFBPOYey`nbOk+8XG*4E zSdZP)R(?b9p5PnhO1@U8ZLjTP`q=gI^@{b%_33Sjao4ze)H4wrk6aV|s^WV0^`1TD zQ?>t;`eo|f;9rBzZk3TpPV{s11iU%Caw5b{-lRW2|GpEtU!rNPHB~& zO;rS<4i8qk+)g*6P=tdaCR84VAzhAB%F=Qi@Py0R3S3&wM%=M-oR%lcQK-mYjyz>- zWjV$OmOgdyc^t{b;wAU3cx;S_hMi+qMg*1HBv#{#C5ch)Cq;(vk2J{oa<=L>D$=#t6l4&}L%>?xr2 zc;*KZt*2Hamsvq2v712gpqTt&{i*lft52CPIHfOjXw+_%TJ872ciIBV#9Lrdn2PB> znOVV59|kLUYT-#bFUQaSi;I=izrW1Uo3eu1+^JdPxEyE%DwML)PdZSqwX(oj;0mby z8lQnO1^^K!B-Ab^?{GTPYE6M!t#P|tltDmzj!j1S2}HI4ms1O*Q;}d^ zr@@>isM)7Eqv)SyMiTYZGv+uo zHxHIZ6D{gVs1E?1WEgc$jZgFt0ofraGu4*D_DcSTY*I zCa1AvRJ;`#CiJW66^+q+kjFu;fM)8Q5cC?U;Bk!rS(_fctt^=Fn2VTJ8X-3 zO=UpIg!w=^r(pCoMFzD|8w$xxo+TguUshg~;?yb_Eij`f-iH|_jb9SpHaf5Ysq6-) zK5C2^i)Cr0`7(T2s@pMwH#@eZwma^`_oV*W@k__s_+5uy@4y9U{NUveBP`<49-$MLdL_TM{x?>tfV0s5=`&*{)I++<&pT8q2wt5R3mzu~uH?xw9~xDo8u* z>69adQ&4uh%jvW;YLyD1bUG4Mr7wr&yfc;b^ZdN?P=)V)p$wN{Dv?*u8F{0L;Pz7b z2n!J1R^SJBippxya#d!RYTcO=<@<9=uE`o$ZytCT7^(6^p=M^MQCI! zYFx(QFl8K^IfGOVLJc2(%AT>O3uu=?qUt6@w(k-$9!bx^c;1UI^Jy4%$=NgRPdAszTy6_GGv~uL zl{WK;4O8i{4)O7d@=EdXibRT0kM_tpt50&yqoR7PnksneV zR>~ihKcsj>`Ka|FoBUqoUgKW#J+{3*`JlDmJ|Ww#nexfk+E&}!eFKU?rTlVbx9W1u z6^3rBT=2D{E_SuNQz7Sl6|x%Z64YdnhZHeoR28*GZF1z}eQDo%ax^H-8imN<<25#y zt=PuelzLJ{w}Bjds=Nk*f(V&9JUc1K)tKZ#% z$);4ms#ocUc@*YSxk5pDTcynoF1y!gG#C)0RH#3)WBc#YHo>;ncG@Phy`8oS)^_W( z^|V#aTi07hty5N+b(VSe5bwLgM~LnCnVuf!nVyq9$dN~Fb1S{Sh1Ep8o9-i>|A`1r z#BPFG<1lB8f|*M5JH%yFDhr{dUq1v0E-DK5J7An!x^)wRdJd0~v-V19At%z$WGN^A z{<2VIEEfsoWD(BUw2&#jq9%#Ev5=~5l4ENZzftah9++W0d0GJ1#KHxHg^vipVIoYSI_;Ke&5Tw>m}`lAi~9LH zKY~-O&?|K+jasSEq!k&Z+2F8bbdoHcgDQ1}n^2Qr7J@0f4VEf(Woo&)Tee31kXjK| z#8nAxR2Q{GT`_lYG*Vin$ha!fOBD^uX6-U}mtu`_jjCI-Mz_YbCf!v!sOVP?X*atz zyRRzWCflairrf6ag7#Y7wXQF?cNBhspG@tNeO+}^;SH%9(l?fVLwUFMR?Dr9yIps= zZ;RfZx-I>%>QVKh+DCync%<;rqK8rkl?PQ%Yi3CL4# zs%16qAOz^;Btq70Rw=butI9;oq}xNkucIBGbbV<>=LXWCun;ILO<|$C z$m3BV1q=j>tH5oEref}>SqG^^JYjbvQ(EKB%$^%P=+fX8L0YBcby}?-)*x=T ztFX|c)@Z0`b9W(l6sC$)DnG&O=~SsgsU#tV=~8f(TFjAXG?OtSMyt`NR7&-N`xOrW zfj>1PRF;a%14{0POVSnT(y7wDrEFX2y3+NfqttPt^mM7J^ljDe)E!#)Q!echhDR>^ zS3yg}^&Qu-x`%2P%raLV6bIS|J*Q4Oxswj=>=`PQI)3)8IXTqQY(PfdZo>|7s;ca+)=s6QxMNxAI<%9?&V-^ONp+aaRL6oQCX9~+TTQZt4nWj zIxR7V3)WPWU>Rl-MYix|FoMGsfvG_jMUSzZR2Pr9OrpeS@wiK;CqkrbL=O`Q67&fW!c`C# zuSZlxl3pxbjG&wcKFWFEOVXPUNgLrZNai^olKI`3Wd1^Ak~|qlh5IKtZ1T#&8oMhL zr5TaSN<=_a7*zraG*{7k5>?eG?38W{6OLxJPER*-V3DMeIGUyF6KCVcjvYJCJtW;w zc#(VlMbceM)1qWBdNJX!G2_iJW(9}g|5o+wn!Vb+x_gcHnC>;-9IJ^`0*tQHVcoTA ztkx);5uFaQmhN>>k-xqqIVvUYWL}O(GB3v?natG8lf^}>WU_g=N0P@y4~+q2D>)-( zOlFIPb9!AKXENrAMEn{??a`1s8j(O%B$ci7R5hR!(poq!$a@QT%TEUGG zs+Y*e?b$l-O-Q=a>?Bnt*TJCUaCLQb7uk@fe~ASVK5U7HYTj1fZW8vqQc3XI*w|LW z+&3m6I0Q5@-OJ;M;1xh--Y6`*K@|zm@uEiZ=)m<#Ld=j$s0^(A!+)`4_t=%dGtp!pGX)S*}z0!uXbsE!lV9-QZ6LoeOh|!|rJA zcg|#MF1aLN)fx@F%UW#0ocxxLx4zn7*69k07@lX63*N~6+qJ%wK@$vOtHoZ9H|36Z z*En!6Xwuq!pJNy8Tk19i2+zW4gjj`qGqRyOg#y8`-m%|t!XZNr!NF`p*CWP|wctUV zMQXesR(344tH2%rH1!u`#DmBNJ_x@r7%-p*HG}19m5yQ25&UO}-Xxd}2BToAOdEF^ z_Zs&bWk#p{2ouC7CD{q&p#9WIPTZxXr?PXrCiJ9vYmY?~YDHkQkeOovIgOY5EOnpH zG3#q=8fC~8S|t1Nw?5iERzvpEnWEBbm|xvi%zL~9o5I?IS;N>7i|PfQkxv!%SM8Kz zOz=L-B8J25cs<^W_v7POfoE~WQ)o&?4nnyP&i0TK!xWKYL=iizo_(E+{Om`J{Z5kd zhI4PT+kqPNVUMu*yE1I<_6&M<%6BSu7JXfIbCI%=sr0R6SMsZUR~2rPZ!g@<+~m5c z@H_0o>ivNe0V4`vBL}0?YO|{f^bE_+;zGg1`wDng#`|3ELRRUJ$-#HuL0B_dj^GcG zgS7~NR`Gu#=0ANtBm+1vL~gwFsVVwk#w`Ampb-LC2&@k<0oyG8@DRuB_hBDNL{Rer zx1VD;r~e4P9lt}H;A9UOY&~RH^=u_n29k!@DI!e#6tqYFmV;azRrX9?To&2O8RNf< zzs!7@SBU%KTP0xv+N)$E=6=tpe6&bTgy3SOPbm|3_vW1nOLr9sC4kxOD{`B=vHIR! ztH1iW@$J`)Bm=HUs=0OY!2Ms_@(h;ATOK_Wx&MaQs}4;?syoXHLItTCB)m~d*crq9xmD+SMcDNinAQ}9FMaua)6nQ zc%ltXQYFPoi%VVXbn`Kt(nc<{=sARRO32x`&w?r2X#!FaQ$tL4=y9=gcQ7Rd| z_CRV1deH0LOD@9T_56PRG|%!pouOvW{YlVM#=M#0_|JVrrWf5`mbk}6b{WD|(RwC+ zYK%M8LoYjs9b;PYvinIYPwdoKH^J57rgFv{mxi`@m7vgLFcyUhjow1+F}TUCTAY`G z0w{EA&&2}4=3R!dm0u(mEE=z?ix=0`P5os56pbg(@%xHw*y<3HZ` z?#V@gK$%{-I<)#9n6KX%&+~7Ly#tVC!LvTtwrzXbwmEIvwr$&X_q1)>wrx$@?%tmF z-tYf*BQ`en#;sdl<@qx6)VY-v7gc%M0MWl~lBYAZodJ&-BQ4#_2{ zaTJ9hu$1;0!o}XpP_|6+GAMm{Bv-9%7Jv2)@r3XcZ|!ZN_RN0ue@%?iO)L!?sUgpU zIrBT2?NBMAEt5rCRv3+WxbvvmmP4+HF`=HVlUZZ0m}u;qL$wHJ{t8-Go>tC(T9-JI zxsLjxzDh^*$Y{IH`De|yZ_O#BqgAii%V`k@>R#7A!MvvmG% z5>OtF#pFxCyg1GdD_!8MMG+ND0PX`zmu_F~2HZ6sI*=hyUX-v4LL$mX66lw03rtvo z`5#B-&ciZ?F9Dy{cVEfL)L@Ij#U5R|$ESOT0(J^S*Yd9n*Ic_}L_%h`=gB(e^09k!a-@00YrF^f^{8 zfsnS{A~WdnTTZaj-G|yMo7XxW#UyG^Ft$A*@o%r}tjj4Rc+#B0)$lxh9_4mKbq(t~WA8JFdKZ(SD`z)h6{#8n2t8NhN%OR00WmQ-lg`jww;_+S$5)^?EAktSt)Wx%M|c4nS2ae7y|ucjr4+3YS>*cF8MyZCoE z_LeS@WXF8>+kS={HhC+EuI6q13zlI=#m2&wre-HCZ@;yj^-VO2?ufPX<%8AZWz@C9 z7EaHMTj)9O3~qNv#C0s6mFMiE+TQbisP&8>qz|Sq-Isi48XYElwAi!SRpX|*U8V4v zd7n=*;jz4E;fl*9T*1f$m==RnIVuDyN7C=$zDrS^8vn@!%0tloMD^H`8|1X)E6Q$c z+M~)#m1BuZ+`xM#l_iw z?cZHP`SQ6hZ#VU|dr{*^(5WF-YJ@#CQ#oC3ZxUH?Y;mlyzq8(K4%ph%PU)zkYtyCj zNLJ*KIu0O$uV~!gs>bG)QYyM>kDsY|Xn*YX+d6p=g$3g|h+4N2S5{jw89w|}+RkEy zHsR0<{LX{N%E$zokJRF)ya(jQB3NX{zR~_GVQ>VB{$!@BvU&YI==}Im5wf3|_!{^q z)lCDXjaQHijT*!=+^@W93|cjMs2#k8c2e$MV-xRqn^Sd!j^}&N*pRG9<%I~q?e3E> z%0;J(+BgRuRlpui_uhBFH!A&=n_aOzY}}Tct;2;^{uJFHbclG6=`izUc{OFKyCoNv zs>kKBA3_9ltLYF6Sj`U5=m78tX`_1zUM#Ilhn4%x#M!lBaJ1Mi1c$r!OqFJ=3ZWCb zJ6j*{GHH^WS;6ww*-eRm{vN)8NfO%(NCGiJA;vJK?l2Ye8+IIkGwZ5P2QeNwNB?FOFm(Rsf;pM2Y_=yFDDp)S{( zTl2h$=riFe8Jga_4zQ|Yl56Hhe|uTt57-g*xN}hR=cCz)Vn-1cGx1RVpjMe2JyJ0^ zeXLfuLYcHchl17@g{XnQhR=nV=qKB^RtpuKm1zXO6mvL)!R^D#BPe=DKdjoS!k_fz zX$A!c7VwRer}r!PNnNLOO6%acS=o<7Rx=KyePM*cn{Ez#N2P^r=MQMbin|(+w&S-& zH9MK*4D4XRpIN{fQAS1kl~B~LC7sGz3>2a>TX8(d^{t#x3gv)q`?^BDT-|fs?rHn7 z0?YR?pK^lDq*+16J?2D@Twz_RrP8}{DngFSAzYC0vH^GGT0~ zoVu~XS*;+QMmG6u-ecan@zDBYKOlLRdckMksqZ^rAMh>rl)q&$B*Iv-Y3;n8<&t)= z=u#!5skEo{_b1a>s48a`jG-%svrKS~GowRr;I>HP=tF}XOjCyV4G}!xWc?9;_Jp=) zmRs&UB>4e%e+n_$ju!$G=L~hX`YiE~Z?pQcx+pal4Wrr#6)1F@&81*xuk0;<1dSlO{kdMq(k{R{TVwX(_OfeDVcsuh$K$;^9BCF2-~8Cict^1Y+SRp&DPStr2oNy5np7s~vPW4&AnAe_vTT-RMhGCi*v62&je4fr6;lNt8{EX7zfAiaDYvHsUAj5iK} z^;J#*&1IQhf4EGcl;VI}`*D8hW5jW!Y10LHnQLiJ;{(*GN!I2mK_s*fqKIzPPMwg} zXpLGR-m}v`!uk}t*z%*`*7En&?GCOR0^calzUSb#_-h~!6)oTyM7mX1BN@Wq7lK;e_7PHsK8BT8-=ynu3tvA8Ebl<8S-vc33b?uRk_GC1xIaPkGiHzgh`qUOmH=Uv``^ICVpL%`eE_=MO&#{9xABgYdW8 z-KO$UVqO)Y*K%y$0%r1R_;?dEa+Bvq+=l@murUx6K zuAX(D3yU1?hfXJ@)c{=30J!U4P0<~R06J8wOlxVbDj#;k(+wUX8XmtN{gq?|3}=6A6zg|8~47D((#sd`viJ+;7i?n8Z~D8!j`VLv<`O+ z--aq%ofs;pRspAe;j*Cc@w#cIpSa{E$1b2kyX!fr(~P$I@-N7lyDCS(o`oO2~@wKlEM6M zO}T*zBk&}OV?k|dn_aYrsXo}gWttkY9x(pykR{9+ypoVaOTD6T~R*4 zF$b#Yy0zDTT=Rc@OE_vgcW>+eYEf27D*Dxavvtb)iEG@Vdbmd5MOm<;cw%l6_aznWze+Mgd0ycG|MXuhZr{cv67G*~>n+!h=q2oJm{L~Hn_nB-eU>zUpmLmNnF zL6Xn|q%%IyocCwB3xN2L?G##XElDH{X0F;vM1WJ?(9R0)cc1`0DCr;ALgai3JXVY{n z0rJz0$H^o-*#T~*2`>r~1=03h#`&h?c-qz|pPEqGR_?_GA#|;rcWkWOKIf#RwQyPw z;Pg#ZLS)u#DZjg_lRHoQ&DWj=B)rjwLI4#IT=5QvdlI&zwQsuJ@7Ni8s=j_0Yf|{R z3dJMRwZ%UPLrzwTeKE>L!j>;U_L5N(5Ly0VVD6s7aRNpF*mnVfv)lrNNEL%BR746` zp8NI?Urz4ENn0}dEXvBn_KFcNm>7am4+l&uKE97@mX;GV$!$S810xG#4Ku$DCXvpV z8z|C$yWxT+vNz9aYaI_=lc!kQ)bR{uO=H$vsssrlh7xP}>yEML5^PLf6S#1ZKb&~b z2&Hv!|E&WLlM8(#1r7E8QcJ=1UwT&_jp#qEM6evROlmPy(eJJ3YeuvkSUKoAgjZS>)@R&u|W}eJkLwLJ~gL=5a zT>$4~DAa&Pw&(~2PQD%iiXMtiMGpvinKtRD4G4`DP)SX%B2bgVd9PeW7MLa^T$(_l zk?%3(%YN$vo=a?2qkfwB1M>Coo0}08KL*yMaG8628hpcwEw}TDbQ`*3&qiy@dB)ZY z*@a)3wd&Q@CQGPjx6j0l;!M=FPR^^?!9yUY4zHbE9_vQr7N6hR4R#w%TPok=7Qy>x zYENS3G!KvCLG;eB^Y`QKqD#Ohf5&ZRv2V0rjIDA{nvHT_hA4V?B1iT1%tQPDtsFP8{#0P^jIUIU zSs8r1&t$8>2q*Xi)wyGN6RVl>(4}O}5RXDw9+-l#ySm`z{2|lcAU@W+D-gfI|1!#X zyeyNqVM2TZdi8+p`;?9nAQ$q$xSRL&K!2d0ptdIN)_@!PGrsI;Ce}l|_F1cJM{UOK zFy8_@W9_>HwE2%^odYKZ)fH+r=3qKO7or0{JIF!Galc^e$EbrT>-udQs2#JWOPD0o zB<0F=7JA7)qBcn+F8av7mtGNmUJh#)(`m|}d0AoC;yZSp&v$G2dMU?HufmP$fN;!(e9ugkA%Jzb+BC+}3hSx?O{HiJ$=do7(C$8qGbU@h#8JrkQzJocR~$ADORfM4Qpf9v^~Qfi3q@HbS)v2485aEhm_i z8|R1|7Q=sFpj*qQG}ni=hh+uzh%-_xIA41w>CnMXdASjAd8E%1LtfK z{^fu+`-yI;w!nur zm4zyjuPR_uMJbQ?r3H|XYOoPF23mF81;9W*;TRk}b*E@OFbwp!$iG)vNf$r;_}@P; zGJ=$=x7MuZ9~n3G0zhbn%3>wXVYsHig@#h|1I%JY{=1`ei~n+`$mI^NjgVLR60J7# zU`D|cFq*j7w&?65V%>UCHz+pI=U4xT^iQs(MIGUN6060lA{V|UaETA$g!Ra>u9)>P zPE^tq;sv+w3oJRdZ`D_}Rc{HlSn z*wWq@cT*<|KxMX}jpT&5c=Nda%;56)tM9$MQ2K_BuQ!fGvJ3N}Ct6Ds0u!^)lu?3O zcz2hNaRU@+{DW=51ps{HFp1?r}J33I|(B~Az zOhijbC2dlIX82Wf_SQj-H6gYmr86Xhe@o&H`uKM6q~*wfvIX9@=z}kT-aY}M8T^|0 zb3o=ll}?I~jt=e?eQ~@XK15G6ZoGKJUqF%!5V~=|DV+SRp+7^!eigPm@o&-V?lBllz1*zal9QCaR42xA-%;b1TpjiC@4uoRtdRK0!;G@|^K?fn6h*V-MWo9)y8vIvEcp4en=+o~ z1P{}%1y>8>EFa;G-#!#m_zSNtcm-W90V$of)g@Z(PX<@H)GGn*^aL!3=ZpgP6VH7N z5#Y^=r_lf(p_EtWpNkn0aaUacRJi%s6IZBcbc`0{UB1*WZiKK1ou#FdRkCtb~4RK{x6~gpioysmg0{@^6%& ze~4?d2}F6R{r>H^C6dM^Dmf3m6EnXlEJd=+qnq(Pw)x^ZE#kE&V%~VTup4>&c9gtJ zF37#}1?&WepKx4z|M_4$RrC7wc;;x;{kVQI-1ow*Mf*foHv%L6YW;`DQ4Na*QsbJz z{0rHhu@9lE5q7Y7`gvUc?X#3wH;f~SzkJ_|jeAAYW6qtEIQRH_WM(}Or6G3Vi!%9kVIy@K99<4;cE8S@o~VjC#qK76;nuZ8tnPu} zlNSGdzLm-zv3h*qYriJ+6oXSVO(!tYAHe{&}*evS(TOWv!l=9ZVRww9lj3{3j969L4~wjQ=(;Xe@t-~3)a&n*Rh+Eg{`TS98F_|o zVJUt=Gr0xdEnRwFS}ic8d4D)dWszTQ{iL}Fj8I##dRqX!h!6@Cp<-vz zG^I}pjS*}~v#$r4Ir((~uWTaDQwVa}!z(cNYy28VTcXWirwR}i&I=j1%+{-RH-JnE zP-4C6FuYU(GFMX-tSF9KfVz=XnWX1GC{h}sKVI9gbkxepG7P(os&@bSJ)}zHtBZGp z7mJO{-suWn{yH9S6Q(jx=?^QEn%AP9%g0@GB~80Ts7XA|EpkSa>Pp!z6<3wZ?C`E|I@N z(HFJY9Na#=^4qFxsF4+<90Uwj&la@F3C;yq34LOofvyQ!za=9iH7j% zq*e6L;*!WlL=ahF^F`icEBne)BRT85n)=Vmm^QrnpeLQWhu3Y&<2lwE5(A$?>yuQ{ zor>2U2GK#KyS-mUDPJU75Q_~cWQAJUjvT%k<6~kk^-ks-J5BC>wz!yh>8re)y>xh( z*tnSI*%&yOGIwkFgx!XA3&-L1-G+KzdR80!z6mSmsjyZU*sU41*ti&1L_3WSHu&jT zyP=}2uur$%#0488qioy~yxP;D;quwLTpppKZ1)o$q3@z^)j&H(#F?S5#)+Q?Bqh~T zfd?P6A5N?>QMZv`Y%s7-k8rmNF$kt0j7KA4WFv22y{qi@&ey8|d>os6^uw}o9?Z_S zG=bj00|&s+FSq`HK6(=&{$F4IK0e|PNAKXn@55kX5}@XIpTNjnfkFpk)qOO;2Om(Q zMTSO_*LEYl#bf!~b=+DObWq1dcD(DHt8A=-zmYm9#>@Td>=PuE>x&b>1R!9|uB|TH z**Qwp>G&9yH~4CcTra46j1Ed##!EmaU*}lOG0wX@?A(xdn(c{|vgr1>$UQ@Jl@QTUw=sD&vqHe=Z6Y-ixK>qB_|inFL{EuBJK@l&jb$< zr7MruDOibXUT0@yW)|EK{2Ku2BXrGU2LiXl6~tLZ8*?aZ}zm=l|8W zeK@*WjACCzaLifeID+JLeR?`e;6yZ8h}>~dn0%#0IPh$KIr2S z7ir;b4THv?FFNVS?j_&mag?HBx?ozmeT(UwFxe@NV;okEmLAXFl6t ztg+I=zXLN883v|=MHSE8dy7C}?QB9nuG8D~A^apwSYlA{v+vbJ4xAOI|2>5G*}_i{ z({3E?WxA12y|fl1+Fh1tdu^t3&N37Z#G&LB>KRiLefwXL}YNKY|pq^1fhbCudSUBIL4`TP?krrlx3QR~rYW(} z4!~HonMPe9u!Fgkwbop6kXB!;trjR;x1)M)1~%ybkl7n5LaHm0|W$-`RuoT;hk|DVQ=vx!rm&!oF2T{ayp>Qg54 zetf#umrQgkQioH9P*O(vNs7BsQN78U!kTfODeb5}#{6fal8Rqbb<4>O0t@IlKi_{lmK-)TBz3$M6xYW;{3rZ#M<1$Q0la39#;A?!DMy(;h)C>JOEV>7shzK*qZby8`dOgV+eQp_qYX&{rWP!nJApRo7r zyBu_GA0ETU#f0As4QBC1W#x!8;E|H!KG{pP-~L|!5&GYOpDeTT4;6uPMr&u4c--{w zB1VH4?sGm*J9EqwV2~Gd@L&VR?>UCPP!vd?vY~CZ*eiPn490 zWr1LdnBy@GY{XG9{ysR1ka8sgW3v$N22HMKq|H0+ zY>C)EhhY+xQ0KZ{>Noi|fo(lbN{khMHv-|p7fg^}yH%ee6w zn3YcqjnE|(i1z$sN*-qz!hLncz|#3r!Cy+2i86O*4Vu!8r8`6y@{UmBE~|(t(~VW< z$}FvN#pRSlOMOYyrX$a$_ojt)!}SA=*T(&{{nq`U{YF7rUXYb)wHgd%Dat3Rr(cVn zsGiA_9+#yqzb70tbTXHr)?KPLD+b>iI#yv1ry)*pO6BD|1;zk|&wF!CYXF+yGz@Y5 z_MvXX@`&y1^I`%&LDC%TFbQ)I_c8lcAi70wMDh~jT;$FLqJQT{w8ed}k$jmW0Z{?v zgWZs}aLV}kWUTVjfT!YVdDxv1F54d)QV@c3!k6QsNPf!r1?T{K@KVzR*MJx0?Uk5k zd8P4p8}p)h5RVwRafUpP+-zf@{r%fu9DvWeg(KDu1CU*gzL_~jAjPi zB(i}Qw*>xI=yC21+^CG7Dk-8EFU}o!JC5zIH-B@jM2j(f)Mke)ZCq1E!`U>opbrwsZbV;32{FSfQ5#=4La`fH&Dd zpMbX(iQ8vIU%Jy*TeUY>0Y^*HE$AQXoN@(uho`76EK-OS5^s5)0?`2;KuJ;B(7qLG zOOwyL*Y?Nutc0hMRXRouebh#*Wv$dBr+MV3w*yK&k$>3~x^n&s^wny8_c?qvOgyg8 zt%&vZ3+pGW9BhwfoG1)>0@$cxTX#)^`DtqH0~RnTBHFzxRBcV)cbHQzEZhndJ&Q$ zXZ`4tx+!F{95S^_jB5RsWc&`xoHf+T0dqu7ga5;c1N4*f*;$w9wg-4;2l&dCxF=%p z8_l9*=W;-L@jG+g^?8bfmB0FVnxt8%`Z*6|>Tx=KP~xV`narLTV<$}l#=p*#Oc=`T zNJ_ho&9XmJE{@RtT`r7})I8on3yc!pzfI|*)t*eC+kyada({@)UxA*eFllBNz@lW$ z-4v)XL4<-okwO?y!;B3|e!(xg@y6q@q}YP&hE!bS*66hGdB#~xVrVY6*8bS%+BVn! ztqSPGcfUA&q?3~ga9SOLsvWedAnERdW+C*#;qsGEd&MF+8?VXVE1ZJ&{lHGaGNw= z9i~qZ7qPYab{TBA6Z57zeMlM{|2_rGR6>3}ZrCuib12S`oja@Kg>d>J!U^6&hFG7MA&L`*2bEG;f-IlDo*(JAC|(zV70DPg<-yrUC@mCB#5suCNahth<9iW)0|Qu&u?NRlDA6 zbmC70ws`SbZy#}DYorAzL9{p(E(QXu0|9{ymAKnDvswJX!Ki!W1wyOBa7^bgG8J(m zT!>(T-$cTHa7y6>f`Icaus&8_clpJsW!RwRyaZb_j{|RC+2tAF9)Kv}3IfEH_xWic45;KK#FQ;{kj!U~6_}Thi0IfERk8 zV3?(z!LeR|yS!5&u88}({6m0CYw9eg{CV~B^ovzbtzjNmo$$TvPWF$X@7nEYYlgV! z;#Xx7Rt*wX0;f_TY{>fH6FM^_bf!pZz=Offb*6A5?Hu1TfT}yL-f|?hdWA~{Y4f$aS3dB<@o;PW0LJV*t5_x(lhfNq$>c# z+jATz*D~`B&c_A01u5HGQ|Euo0ZI0Od@@KvImI3TGb|9kHbj09xnlHL3LmBe1L6T$ z?+4{a1-=CNJH`j(tta4(rt}+#R7e-_Q$=nE&^hj?pK7ydyqY&w*&jgh01gR#E#KV)lQ0R_cCPe4!b4>7T_F|z!xnBjlK+}w0Z z?smp>qP8|p!p4q<4(4`FwhsT*l+m{~rV|qQ_xPn`Zf)!+W9+J6Ypri1rzouiMJH;d zZ|X?E`U8Gc1qE&0G-+5^*$HTv=vfIE>6uvw80eYlwdo|B^sUSd1#C>Mj0xzW=mZ=M zjcuF=*f|)W=>GZp*Pvl!_%S1-ZzpbSZffTAqsYVoMW^UwY^_4T{-g8HfvCBaF(U!T z&si%#@$&v}KN$bFA5z9PrcP!AER6JYKWr!CpI%t$I~fZb8`>Hf|LFYBm2u0`PMV0x zARR$VF!A=<%x z9_h}!vo$x9u~$f~wpHwek6jdYj#;UmX_U8Kk(x;UU~BQ1yyJL!=#;&6xu6>`Nj%y) z@qDJ_S(<3ZoxW8}@s+lg()LxR<8vu_eS5$d(Y-}`mq1llE@Ra>=FUC8mGq8m6Yj#> zcy(dp(LIUt#pca1R1&RbQO?MZey+1ID1Wz{WEGJwo7$5zuCx8_H~|)#PCYiwKCbfE z)<7w$Fk$Vt0c}2HS+$P^P3}g1; z#BYshZ%244EjqiFmt5Ex5L@8OODXo{my!03^IcV7gtMLk;qXV*Ku4=rxAF1M-N z4=pz>56?&w_wc7fcOS6RoAZ3)IY*y;_w^4gKb8dUW_R{sXg+D)93EQ2oFn-x+KxWO z@Wj3qCJ<;A0_^)czcCe;xD_(Qlz5>SGtU;h7N_g}63-(mj0QxE~ezbQ%qicZN^ z*~a`|2oo^;3-ip&%pAJ^#3vg(ET@ofqvBeFNzyTrwwlR*uI=tRJ zMy|W)_7ajvi<*5L4nd#Lww@cv2%hf0=f`FY$<-Fu>VUo;#KqF;)ICvknP1|K<_3Ip zA5|RBpk9?}N6uD~6ZoD*w5dKe**94PwY!gkt4?dz$#obk7sSO9CG}L>E@d>)<()zZ zx^fF%KUe9jw$!^0>5uk=#W^!1>A%eKVc?^g=h$@;lrR3Q{kNshAZZw~XyD4CZ5h$r zzXuP$agT*mzNeUNKM4h508))LeK?v9A%4&P0__b#BnKWeUz8G(`#leJq} zt0sS>`4O2vMG?Wv&ozs<7^p*xV= zsTq()c(u@TLFgR(oP-xN?>IDZS1Hz%P(>Y-rah(Wz$kL5jGJbI@8MAVfq1|h{LjKW zQp#?_Lqn1RcsK5PjMl!0^4$g`Z*W}xYXkJ^V~u#kqdj$=Q>@0!U%?D6e>C-NLT|x3 zGnrzzff~w0?&n0EfOLan6XI@~Z_Y-SMuF}p2E<$bh|R{%L7&piYJ%tVRZ%oXNr8GO z7ob>#l3R2CW-Sn#BYeO_s|7o+g9W!otqxAN?iIWB926rm zLSu{FpxNZD_c??^0n#`VfX+Wsa3XGp#1$Ty#h=xkMR?+$z-hGV(|&>LgzXWJu}61I zb>MPK-|6F<;+x4uo9w?2&PA8$Enn~%pF??h$P+oWP&*fR>GbmnpLf#8|y zi@afRG$hqte}C;VdjNG)$0 z=11LYtd#>o*$L3_Z%^^(-i&H4@SJPWn|jXA&DRCo`pof` z`6CMmu4{l;ItEJ&bpRo=%RG5yzzwY%-m>3uOZ;N|fyWyzi!A&=0+Y+AAViiRIR<-J zbI4qBM6{`PMRmn{g}#aY;gOHTD+~P|EIX7~p7!>*z!mDN${$P`j2oOyyu=?#B$tEg zMjJZ}I3*22O~?OvqaMAS|4To*It2BbOm5ny5u7Jf2lUJvhW9$pb4n(UmFZK=Wi;5SYm&?BGL8!jBZ;Y@1&S1}o?_h3U7Q$Fu zoe}qBX{45*$1YRoB>76>#whPgr+|<2HlZ(p?$0XIV<4>n%M;oYo4sZS;7#7E)Xka~ zcD|JB!_?cF8@|wVS19Blj()E_);;~bj{f_8+2F+fFt?T$Tzk0>{vze2(sm^#rIzv> zC7u!wRhB<806fzEbL2CKj;;riFF0#4Vxt6;?_x$Y&sc5XeBL=En^44Re#dbFSD}ZR zD^@38y*xrT{9(3+EhBy?p17X?U9_EJ8^Q3izXk(&!Q9>8*-}5kxcRkOLo5$%_jSR` z8t{f+weLLt5Ow4a>jGdq&Wfx?e`V%|^ZGyXky!<^ToUvQ$R?(a3FjTQ%n=`QJOHc* zqwQ;8Yymamd;53$!`lmZ0sQ=q#~Je#A(MqmlZ%ZfrXh^3PRY zGr*Sb+Dhm5WV&C*9*QUA3sU(Fbz<*Fccb&*80Y2Fh+O(KV@7wgEBi`eH*0!|kSf;j zitKm4c_RyD-LG*a`oVz-ed@$G#uNS9Fs|=8u=0o062GG?+8*a$~Qz0Z1xdI zFJAndnh+nd{78Uv%UMGLT-!mVqgC^p;I6!7I!n623N7R2&*=;Xl?-{pJk#ir#s z>HihSRqy{q;Nr)|@-H{>Gr8uA{09y_4TAZ%fdHMg)Tt*NM*R#jF>I;l^0DyLS@2pjnm zZ%2V~^ZvUNuVvz_cB2xl!H5y-fwM}q3JEla7^7%|7`Lm>-|ZRzKi0{`#Eh2_9qKqo zah3}q=ugc3ISh!WdeiPJi*ae&=`R-JqGGRNvXlVnQp!ZQX0ZTZKFdfD@Y{>C27vAY znt5Ct41*gKFk91Fz+E{AERYTD$c+HtR<>2%**crs<)>}d(<}AtW|sMOxlD-y(4sV(%FPQzjDt`(`$7$+&fZK&%_#^>y&gcvj8;K-y(q*FOH02lY$qZMjmeM7-Xr zd*XXAIipQK%AxW+m8UeoI%obNJY+3F(?A<&-b~*1$0q^EsdMQwbYZl~E~lS7JS~~L z16ctl&9Lk>yl0%5!P7KV4b54eD-+h%t~8MI7t2+e0l*!_Gn~&hVLBZh`S50v2Dn|C zT)T5E14J_I^boSdY|b-Sy=;BNflg#jD&rq$qU+`o*Ymr6WQ?@+Zs+ql{L!Z80PT9- zX0ap0_*fkN+?Rb-OeP|Nz%<+9&zsE&rq*WXpy$u+M|tlbTWZHHn#tgXfMnDLI{B}MFqKv#rTgQ`8okZ2(8&gr)EVo}`vmCxG1(*Gptga|2BSCfZReTq;5#22FR@@c z1J!JMNmG4Uhw(Wh$=bF`U}o6kI>nt`?mALePF@%NUzr`ODcoG^IYZ9 z{h5;=$a-rX5z@u#a*NZ|&S;@iTrR?j2ZUAHz*5)qnnDy@3~uKb_q4SOo2(9l4WJ2$ z`DzWK+xV@4vHPfhtpUzo5vS95xRM7Xae3Q*YesZ$yHZFX$Vlb486{0&I>D5mBWO@} zXsNpQH6doc^abq=DWP-?%8kNB zTAF2*0o?Fy4wx7`!HeQMu_Dp)DD{(hV8i+=7^MMHJ;Edi2rCs-td`habm1j}l9Vd( zUESR{m7yNLcug88I)p25H|lvmqTFyT%Cr08z2dU@vSP{s=~7U=GiEKSaiQZl4ls1B z{(=R8t5b7ze%(I=zDXW$$b0G@H2^}++h=kwd;kDW?{u^G;MaX zOGoQh`&t5&eu4hgy~Djv0Ql@t6LFDVzP4sZ)SPdMJfG4?UZI{DGLN&EvmAQnr#0eO zGDQ*mA{k8ku&P2R@S31 zY(`iGc!@UKRa59(2mOcrY^>E#>fIk^_PmIZYti~EMB8)p-rzbSs)JgmyCJP3@^CXd zwu~S!!hGxwf?wTB+mnIctccRgP9E(%4P6cOl01@Kkqs>#;9WHy(M8J&*chfcaEtn_ zTAf7NeLC90jGSpu!y+h_#Z7zPrEyQ)aNM;}_xcX5(oS&TgBm zu_IM%7+PRrk$a3m)}wmD7@-b$Y^xCB#iC{Zm*tDBZDHel(g zGzpez$X9CE%Ph^5z&y$=!pT20!w4XnCS~lxKPx4*RHp{sHcni}6zzAr5v910BD4Rb z)JZ2#>@6a#0}<>EqI`1we5`6X94_5t|Vriw|RrSW1W} zOV3z34SXG{?AFrIY4}1n<)i6>(_Qq(qJMHCH_LhKIYq|2sxq6ShAg2bb^>~2nv#1y z-4zfwD64Ce>)!HpHDp@vDumCv`<@QFKS!*(I`?+v`^u&>QlWP+K5 z6I4nUI6cJZmF`sBjk_-ui!lWKIe$53cW>p~{F%nNCh4ZJ+Ofu|BCv<22iL&EVVLBkItl0P zeHf-@SBgq)AqKpW;0oV5gS{o&F88|uLuKSFQEgM!16d5KTa4OcXM8K~qvPw{d32uu z#e7VOgipk;%UN64tj1l)wd1nY+upnGcG>PR=MjWRbG|4KgS5iKE zFh;DVb1uMdNyJ2|Jfft`=e_H&q$)a&QW@*z^QHD)f*j(G>~kUe%%4@@;xuL9SdGbt zMAeMk5x&SdA!7g(+_Ex#zSW}#%*ob%ZPlB%IA;@=kGLGwZG%v+7hr8oc3lZ`74=8yjh*Fe3$Q0ZD?RqF)QcPNJNDtJDKC9 z5auwTH4h+_O#CD#aenUxQ96fM{$BupK!CpimyBz3fG2BTxUXy=cQhyV88=$iIX6c7 zk{dENJGW-;H{9pgnSRXiboy}GxXE;@nJ`Z6X0j!x$d+7Dw&aSkh4$W!da#+I)oB;1 z6}AN_&cwJG7&jiNwo>k;xL3qF_X|;-sViJDepScb#WNP~U);L5QKK&(w`Jn8m@Agc zXPl+8rV5k4e0_y26y!rw?wQ%V>xLiR_sP}yvDmZB;VUT{zWGjD;F}LW`&8VzRiOf| z2l&{Ig1B0qC0ZugdTgs~i|q?t>usu-_Hptu`HA`GtiQyQWM%;=pQ+CPm30sOHo?LePP5hhq?z?(@d2Dq#@&_v&>T z2gR-qu z`+3UwnJ6sgHC`(@3k(fP_4>jV?4llp3^vvs$*{qjy`%`eaFhzYKkxMh@+q3H$kTMwo;v5Q#(sNvgAb z5pAVO_BXYd_~#CVR{C%x2!}4Jx*?&Em)(4dcErMqw#T!oMk-dJ)s$z|rsrYWmcvo}nS>Br~q4 zyiTR43RW?uraX;OSg8wt6gPIpKA;4_B2q9wao|*#4D=;cmkDY~;h*%}KDMrPY_@u; zN^9_WlJ+20>2q}j)tHo88!zV`|K&I4w70ZQY~w{oxMl7YZ`IXHUN;ww3iVeLq03R? z5n_O&$q0#80FFAyR5>u7V2dRnYyGuqlNB|gj(`=&t3$*!weD!ZHb~yu7tTZjr2xpb z@YraeDH1kC1J+1HPT+7fkQgLyAB@P2xHcMS1XwPMjEe?3A`w+MQxj5Q-rrQYi1#nj zY5@TqVpC&j!e-TW%D@VpbUiQfhx4d&SLZs(Im$ViOEy ziP_224hG!y(0^)RNyak*JDRKT`g8_CERUDOD}<~ciz=Va`J){B9A8GWZfD;4Nr1lnzUv6lo;zmt`)g*E7G1=ETS;fn3@k`@8%k;P3VC@(=j=oWI4t4S=Km6MoS*^(Y7- z!275iVgxLm8tO?Ya%hN=DWy=H!lTj#G`IC@s~;ab`x056J^S@+YeB`#Z(%trkmXAX zjl*6rvSBI1&iN!v?QM`JQ$Zuo0eKQZf0I{yCgP|DcWWN=zeHY&yp2D?e;_KY8mCE_ z?c%^9&En1z|5(h7u-%F{W65!J0YFnZ-@G&CUbqgxxS~rzMuKV(od*|OI7LW z{utAtVDQ$SE5wV6R55{SI5{xxrB%;z*EmHZI-P;?aDK*w+DR3&{^q)7 zJ@&kO!1o}%J4+B6r|P1FgZAZp_z z&c*q-Hm-~7r*R$HX}U$)b=sS?#;cRtv-|n|+L!s4weR!qYd;r0*J_PHpDi5m1%38# zI6gg{9wepm(u6N=Qe*XWz5X?gPmN$@rW5j-=u`QFzGyh2R;l7dKg~d<;rNjlj(G;M zIE%2sWDFRIvDs%r0l-zW-|us0Z1!|%l$7F9y}=N*8GZG%Acjg~QDRqTvOmBCh0qwR zLM|#(Tbe+WN=>JlK$7N~hFAu(5SKL6BLVd`H8E5`{(b3vR;d^$`mESfb1HnP^8`&O7L<6ZvBoqvqOh&DH5jAeS;MVLtP6Ko!`{kLgYP=pC z0#O^#U`?6bZj(b}TWp{;O*R~~9kUUe+&(^UlUu88a(x2;)irP_uYe0^RhyhBg$o#L zHrXG5i)7AAHf$Tj&&j4hW*|dynLbdsa&vWt`N0i&mO>{ig??C?&MGPN#!~2ut%(V2 z@l1(AI%SDOocUZZz)#~i7e5+54n$3>*EZx?nyX-`tno$jad&#E;!jaGxgRt)B^7B@ z5B2mbrt@eHo`@ZKf)N@E}lyLG~cfktXo*l$_OJfSl6^7qy-(ORlm>pv)50PRWw;%$%60 zE+mSIZT-~o3n$for*O~mYE?9`8w$E5b*l3e7|>yS^BlD26g2+S;y&CYZe-Hgd4<0*(c}@=sjM{^T;Fw1R|7K z9rpD$n^o4^TC8*>B(SJ*)}z+rR?h17P`g)gRR9U6*gC_)PL)2NG6Y%FGJLX!MtPaH z(uA4NR9MumaAqa=A52u^pTU~m%wwC>*#mefWnzAjrdn5NopVWOfGN{`Z(FuCNpibKL<8_ntqO6nk#8MeRJ4pazihC^U zEG-YQh<4Y`|!I2aDG&b=f3dmZGja-C6Qiz0@Td6bUm0Z|J^9`V@0-)eLraaE&r{(A5 zSLHY6cjv{tMIEG_&?~vfqz-VUN_C%1(O4(YqFm~NMJ_SJMe@SM=!A>Gp;YV!-Af;)oZDb%3p9;nVLvU-P*0AkMqbp=0E6#P(2u#Hxc{z?rYP!^|#kn~qN0ojz3wdR(b ztTDj_=0dB{N=hyIQ>4dr+a9GbqL0A zj&Tf%eeS&W_PKL$o+a(=^NK6Se*r63fv3tt4&JRH!K(7AzN+n2PdMMQz2$u0`46XN zy>_krn(VFIT{huX?fu;S+Pm#fa8GE(psn35S9Mjb=L9XM)siYoefRL+)I7p}U-Otv z&|{>c#+cft3I=_ya5y!+qT;=@FC|XL_%*>NhJwCiID$o_R~e99vJ<-_WwSdtr^@Nr zYstDQN|QLN*SnI$r505t)if1pfy*}4Zq+f>?^U8nwMs=)l~ub_M^Yr0YDrB?%}K3F zZA@)TJ(NB-j_nT4;gPFw6;iyF=1|aGIc7f-A`EHFGMjR;ryuMxz+?`v*a8+B zHR6VbnnoSu9{5r}xwyYKy5Cn!IZ0@00@mokss0}LE1GZAddrfc@kX=UIV8bM>vK%F ztoQo0QarAovS_X~-!T10f2xd)`Et2JA%fN$AD7`*#eGY9>mCF{?(OeD#3rlp2MI-6(~Fp?IVsG&`(%KJ;0HJZ3y# zBvon^Wvp<3p|&iT^`UUo9P~NE5tq}6p-=tNs75lE1~&%qoWMwc1gYjcdDfSD9CXbN*(ls)2e>>L)A2!~2FCT%<(Gsbi=bq*y;4G}4a z!y!#VpF^fFT+Rteq^`dn0bXe&!Adz$Eb?DvjbgUM6~x*llSSA7EAF5exNK$k9()=5`Jwn#Teo-!PiR67iN z4FpFc1ckvX&>D3)1tW^F5h0On4rMq8RZ zlzNB3%`Qp~XMGPykNPdfY)U=40}VjWiz()b|4%#6Qd5(vC{{qQ;E;;xS|yNLi>t6h z$&BtaCK4RS%_xNGOS0ajg)tK@YsY`G;txAA;pX8!@3f#pBqd9KdK}-dd0eXAE2(2K z-Ta+=!DyUNx2ta|+o^dx^LVRH?u?EL z8ImpuaSf`dtvPAP>6`Nw3%RJ7g*W|{mS)*f-z>)y`DW^;HOqEazPuUJ+j}jpeDfg3 z%XXWMZhhE%wfE`uz8v9XaHqIIu0#e+ld8Bcr)rP;Oe{hOgvCO#S{QS%6L)sH8o>Nv zTUv$&+)(LSts;1JK!tNOe!_`zGChu3iEsfcY8*C=3ydSK;lJ-9x4L z5Nd{b$6)=ak?ITN!CZru#ZwS0rC)PBqo;mqzyXs}$4(J?)R1#j)mE|scBFxt4YkTe zG2&E8ok~V+oDvl(=HldAxN&cV)wSx#L~(UyOl|Y`ele|o@kQ4^aozFR?U&uKbj{6I zofznu*w8htrl~6vykb$Pe%*I(d&uNn!F_XOMQKgrg1avi8k5m1$;vlfbX%yR;^Ok` z1h>4p{f6?2T}y8LN%Iwh_pVy`(B84-U;fP;sIIzjVyoNicYs{Ips7An_cq+!JND#w!NIm?r5|xxDtEJ?2VkRBC*s+Bb-`dn`f%lD(qA z;vD3(atz7Qcpk~AEL^H;;LQpxRh9(^KhvEmyppn4@dNgdC27eD1`w!yRTpTyB=(-er!`2NijT0*be~bcdNAZq$zCK#0ukP|ylE=IM@n#s$8W;;2q-GI?=YT)wYJN-PC`mqqQtD^&bh^BH;3W3H#d zVl+V96AD!$3wU&}x{2bRh)pHp5Q|ZAU8nzmSAFY-%O1QaR`c%m%b)6DZP(! zQ>Ygcst%F$!-vRtyy_TjwFOpxKCHeI-S`7!#NWf!NR1yo5S~N50X){gN>un?D1sdL zQDnmZKz1l`5F#5*Y9y#tdZYw2200J`Mq`(0m1(z$lT6s;b{T&}5K@zukqdD5dv;#& zBsEKmb}4o7EcNVk1Klr!;hhtjtvM4KOT@@dN5_=Fa82~$i5^Quuxf$@|6N%8<DkqTJ zsK|+vY`1sHsU|kF7O)jRryB&604()evMC-c7L&=Okbo6ev4B^|9I6eOtH|c7ueqi$ zRIty*Tk#0DV3deEzG2#Rqxj`m(GnssW9IoNF2)CF9P5ch>faWpsq=pBnYz3*z zA(f;G7NxOy8kNR2Fw69ML%H<=@MUQzj((_cK1V8BX~?m*#w-!w_i6`~%I?J#tqDaa z<7tIw3yZStV`tw!fE#cr9?yhw!BF@?;l~9lUGGar{?7dlY?}(yL@t%>q9oPxL8-n{ zZfeWlR(-c>XEn#{lDU(r57gu9RF7qzX*!sBIrDbtt<2li?`JgCs&>^x>qO^->RHZ3 z>U+`7>PPVbd_b+QQsGU_5AY9WzFEPe=C0=Xj^5_g&K>sM_|b+V_(Zc-?dWP=+sJjQ ziQQr+jV!G0tpB7DS5~PtYE>#-no7q~>10#Y(^bz^aeUR7swq|1R^3tcP}TRUepvNJ z)o-hYs&swe&o+V#d0oCwqahdB)FJgk^%ZKKs2kOj)mN);RX?PDO#Q0*ztkF?+NbQ z%DV`-X*yFnkj|xB(tNrt*=mXfVkGtvLK+u+d`{D%*{C_9;e(J6Wq**y*Cn}mQ!|m9 zdz(q~6LxI((%F`Fm9~s{u{VWkrCL&3DNsXcmGG%R$^}{I5_$z*aE}2~X%JW3bmp*8 z|Ed1ek9#B<6Yp8g0^y&Z>|u_2Dn|_|x<3dG`|zog(hztyG$O;i`64lc7*k74#-=9J zlftWuc9h=ba}m_j%~V-sT|-GkD{;Ij=8K17x_Euu=r{Y3KB)2IaHN5&^&_do;K$l9 zT0#ErGvQIDVL5d^OVFVG`3u{`t_AJ?Q|NoHiO6OuUyvFHCwyBF%fcSD!1OZ zWZJT)@4RejZPI6P*#oK4iuTD>oi}#$k1M;caIYMaVy=m;lkUa!}&|TtQ3m&jwlYm4d1q2CrL)1kBBHJs*(SX4AiuKWeM31I8BG6J4v_*MZ zrq|J(V4boP%udQ=^6YpZ-4Uj#9I-m{13J77)TB<*5#5G>WtU~Z!sRS2mTi`!mJ=4i zQan*Z(*v1o-pn?H=@!U&JHn&EHntHA<@jsc5qr;W`%eCH-I>i^?$vp8vlnI`8u=r) z736LT9g_nplhd>~wLW!|{U*mw>%ERAEsr@4TXmU|mJ(u9<3S7tBZBFIdI;&pYH%-7 zqY!x=#mO7UgVZo)gE`Oiy2TDDdE>vL|;P!o8aEuJCjJDikG zf|t+(Zh|7KF+G-Wj<%*YJyqE#6h0G?EyieZZuKmA{p{Q4#X8^HddIPNBf5OR!c+N;s#O9quxET#rXmFd<2KJW@2w^3W#(m; z_2%`KTg{J)PZ%C`zT$k%s}&t6-s%`zvdM9i^Jeenl7swner+zkIB=!7&alpVv-Pk^ zRcka`qCPa6_~;IYO$IRZq}gH=mijp3Qo9Dv$(ga)(-+5aOKjyKT*;OctYeKy8_*K% z6u0}-ln;BndlhJ?yBHE=DhDLUUr!Ac1MXl9O}cRXvz2OkHpWpR8uW2zOs!FAi0F+Q z9NHKXOW>k&8DmJ}5n_1s93w~vx~tpM&um%tT7VLAvRPPU+)kN4N)MYxM}y_U#fkK% z_iy}VMa!ixesj~W)~)`>qyJUdeegBh{rt9vE_DZUDq&fnZ1Baq*4=mLK;c&p^xb;J zmCL@5I|iS}mmY17=BiL}H@A-Mxc{E+=6BrO`k-62V?*id>6$ zRX7wf8Vy=C+po1*>2|G^ZqZuhG1XSN6~6TikSVW#OQIAmsSI4gQMiETZ>2l5$E?_7 z#X;*aE0L_&N|lM_Xch;u16h*G_E9IXxjI|iugw(XQy_`ruJFaCQHW@;+1ZTCFL!hoHkh-3vsqpD@-2#$`db86>an#Xnc0=ZFZj>%*VP9$DR`-lgW$o~ZQmZDHlOY}g%9EZ$S# z8J`4EIs^{JDazqJfEwl^$u^Ge;Bj=RIlA&3^{CiF7nD~Tc)%9a;ES#kUv#Bd3RP*k zN7;XaHbd+^2-zQ|orY?)k{)(Dde zg)N4MZhYa|Pp)rH*QLe<+sY*URWkI$DzhdWF)I!+h3J99G{fFeIV5r}Vzy!n(?vKYMBm@SrcAsPjzpEd_@9jmNq-&7; zWWUK1@DLAGZ#pG-=Pn&Z1U)oPx7a_YyH&+4my^u%pe7r$%Cg>=)*6kMczs?XT4Kg{ zOdFnu{btWR6f^-8(Z%OsuQf0ag$!^(qrn1tMEH7Y>-F?tyOF4BMvpX66N^b%OhvD< zh!Tw%aL@05XJaJo8$0g)*H->?&9%S0@*RA4;V0_qY$%iMY)wrl6&9Cdzj5pVzsC04 zBR8M8`c|yoc@p3H;qc0>^43BjA6xbawk>HZa>Fs;1})kl>yXAR5K#?|oOTd@TQ(`~ zn-(KZqrz$x_4@UeAUQ$^A`&44$ozmtqvnxb93-#FT8&4)U4>Pj>pnY#zd^mx_j~A? zQOBQJ!3yCLN@Il57@;&q&Jga&;ww;F7;zz%@pK1@w$a^ZfuUbJwdG9vOKa*sFYl-_w*P!cF_lNEeld5_bR;8UN zhHB8X$~l!?Rm+gtR4G-_UBSMpO;y{gc2x~jX`aW&D*uT7jz%hlHJUZKOVMOnG8Lgte^0)un&UYAZA930soFG;FZL671bt24<` zTQXUyS8PyS#^toRTuzNvqt=$X+yJ{pm8vvZ29?U3dYzV+NT6%zB7ssW#*z<~1vQ3zuoMFeb+cFCdiwjBUqjz` z6ID2Z;s2aB;;=Q5C3M$FRE@qNr@SJk`Z%7qiS>nx6NQ1oow35Wwi=mC9-phg+F#XW zE628wZ?yaEuFOAv8wSJAMX%jF_Q4bHw>>NWc#{l;aCi7 zRUx}`-SBm!efGGLWRAq>8>knIyeCcv%aiU_OvDZHh6luZy*t_-ZGEI|U)zh7s#5(E zC1iiw^KCD+bL*`)w2?Y-p=q6oYr!p~f#-6$TzO&wSE|ota#=2iayUo0RI);>5XEMj z&t|jvDv~LY*Ejl_C)oH@P=uR&oyIny*~dpZ$n&`Tc??up_e2B?Fmig2Q>Psy!?MP# zE1!c_0oe|6ArSgx4qgR*QdI=T;_coR;B;aE-aEjPLu zz%h%KITp2X{!YBBqifUJMRF!Ju_<{$&-hEG-m&o7cdz`>iC@3&@w~VDjz^z7*#Dcm z8|n(HmvlBJ>T|8ZeO;m4iU+5}=hXd;OC_`|@85Z8)IHbna9dUDr86eIaodjHO&@zr z!>(W5aasSvt*^ZQ=(@5-aekt^rEf~r#FmP_!kgiEUHfH+7llIqpmCnm$VuJ{@(c7D zo-Ug#9cp&`7`xo&Xuzqw4;kOgsr+%B&bZoSl5|e+@Tke4@>r6}n-fVEqG=qH?@As| zlJcaS>`L|}cO?gsN0X|g(TGg$fSb6>%ocg{U8$qeaY>NerRTj5DJd@^NyQhDq_4aW zS)XHXQ?aT^rE0QRHF@s)kjm?jP0~qd^mx9 zdbb}Li~%jc5iy>?9)sVHLTZ2Fya+~F@eRqywL+h!FSs$fL;bk$nED{EzCnGHhHT_F zYBvTp#&!tzMMZXExEn0av#&hH6RODQyB%ibUAa-pz`NJo-uqPV)vw<;d0qX^uu7Y% z!kb0y3R?Fbr>GyNKYs zh}3rxsqZ3E-$kTui%1<9k@_wo^Ib%25^+#GCK4n{A`z+gqK#5FC<XmyvQ<;dvfS(7Zrs><^M%tklqH(+wbrCJ>MO0ICqsv$)X%uKYr@@Uwmp_^E2e1?{I9;x= zP@Uoo)nScdsx)K2r&>A1DCMgyrS5$75AcO3gjV7ch`qZrrFGT;<);W}DB@WS3qzzn zZ<7whe)3T%w)EB`SkuqDcpg7)wMGAdzGGh$e=NA!!^A z227Gz203lQ5JRS*VH{E?S(Ji_0ftz`a%R6?K#@yB6;Y7xWHeH7=75OEj)zdMgq~lj zmQbh|Q>qniinSI_J#_z1XI%QTJ1Q=(akN)N$la3~CCv?mKi~J`kr!$^@b_`Y!s+Rk zEG6YOVOb&k;_FWr-gx+h!f&?PZP?S5i^pO@AZndhc)y`>$Oj+r8- zGO7dMQDLXo6>usXiiLpakn91+;K;4=QWGi(dP_<=Op*;$0;u)NOh$l=B}VW+MJWiz zwM5U1QejUduhZm}Ohzn}!0c6E{*)k{_aD;wa+7T8GI6FJ<42g<*T)=vjZBy&j%rWcSSC-&ItSz@QjKlkWN zEqF8zAz-=@3nZZgxX=H21pJr6OZ7o#2LCN*cBLQOP@SpAmFc>=!mB0ZS2spHnpn*2 z@W&Pv9>%#FY61xoi-|Rxhr{eQE=EoYdjQXAa`8S3GUGILNFN772`oNd=g>JNByke2 z%Gq*`oU_H&;%ISBvrThMbIuZGS!ViI2#d4}bc-#^9Lt;w{EGtXq^m90I<9f9@vjeF zmDrZOKlQfw0eau~QTm_gGwo-(&y8QEVzye5R?-Eu zF26hA;uAQLDh(u*-40$I&^WC@7@5@(aDwIy#O1+}b$iVm0q0|lyd;3q!Bjfk5eV7> zfuI#>kQgB7vVb45exB2Cn7d3lzXUo5kq)y3V2i|agx93~RtrX=Sr^2A34RGyU@8$v z1p|KilUzL3rW0|OQ>ziv96`D)rTMfH8mp~SLSVs=5(0C%J^8FmU+#rDk=%Ih+A^MKk*Lw`QYeM8lP9WKEZb)3`I)K{At3;;8omN`(3^J?AaHz!JQmIU*`W+mvC3%x67l!TQ_U{nH>Io zo!__lDo?x?+p{&P!WSjv`@_+V8n#BKl@TX&4U2{xLpQ+ty_Pc=J`D1m**Bkr_f|lkIDd^O6YG9{t;#2eg}C9 z#W^3E4&Nk{&xSsd!Yim8(m13N^fLwOT)_H6^vwlS3F#L2RsrmW^it?I1!)NCPp5qX z+z#K#G=&*jMB080)LDaC#Cmiglv|;$8HQ1Vj^H1VA9CO39~Sz=ajG}eOEqrz{6&}3 zJ!)t-95(#H_zTnhl3V)3(q_5KdaW&FYqC9RH`;p~e{jxqX}M=ya;nBY3VD%JhE9HD8d5LTfSF>MdYv?D#9w%XgOAd)yQSl7GVu) zwT6qZLA=|#5PHTu2hTFP|5=22l=X-VrmLm(Q&lF)8Pv$U#?NDyZd{BgWl+P&7a?twO@*)iNvkH#fw0?GZ5r+C%$dgke0{j~Pr~d(-A@MHuSm{0xp#oaQ=x@bl2*vA2AE#wLirL_BMW!NqUG=jq6?tx za%jI6tzo%^kS=7u*t-xdU^NZ!>4e-oC|!uIgpz5j_m%M6(dSHt-q%ClS3o~O=yw(L zxdhDzcs{^=aBuaQ=LFA;zMPFdekNCo(rgTKp@%-G8-(Z1h3C*d=A&iBx)UL{7)t5g zE7&igj?Rg$!xA=+<^OR!i`ZHO(KyJ@gFCczE?bH7=cx3vsyNdid&(7XcRrgh%`Jky zuY|U%S;-YpYXMuiAe4{dV*-qcuFewHZY5jWM%I2ItFaKRfM?Q`Ucj!w;)q7;23h$U zD52}ucLsxJ=RxnUg;6YlmTO=YW&pH;wF#oB#kpJnbyu*J90$;HX!BJ{Y4|_13!Z5i zM5WMr2^-O>GwYE2U$>vh)@aR{dDOs|>rnMM?UmMN+jgM~LF=6z`HcVLvlQITWtgCJ zzksbX#ndu}(?$QUc;^4M#nA^Gc|>5-5{$)FSvSDN+};V=rV_T?unu2(6T- zu4Xf%y;44z$?C5y(!pdlzXgnPD9u-(df=`~)XnHN$mYME(WydLYtQh?BG%(twqi8j z$1p^H6?rXu6snxZ+K$q7JGuy-H})JV9KF-WsA2&;Wj^b13B$*g>{;^}NB_I$D)}Xh z)0Z=zR-Q`dMk$=$?G^^Ag-0L7lmegA1( zE5FwF|9+LuH%Wr8z`6f%rpijsJ#SSNS+=TpRc58YRI2tBWh))+x-*ok^h0Y>3I0Fh$iU8wYR~Z1 zBF5p%*?33S>wIaLW@|i`!3&BQ{kpXMsst@%T8ECf0qo@*yOU+lSjJ@PLWZBYP)6r^ zIn)@vmn-%;=PMFC$wo34+V-)hDUwK;`{-!?Z*=7UQYQsVzS76!(LRE{GjzEW%9Ir! z#s5O4%a<2**;zXMpY-e~ef?)$JBq!oGkmb-9I39*mqIZMi_g29QRd1bx1`y;R~Pl5 zB9p0vn9FdW;ChrQSF-kfMa`i+VHNbM=)IL^sAVoXYj2G9`Trq4&aBd0Hg~#qOPKsu zR(Sy{xq@k`m29l%YVRdXvaezESsdek#xK(c=UE(p@#HycM6s-laLIW*@xShmN$Dl5 z-DvH9FRRjDkyWE>|JByZnT}ram3fbj>#Q|+mUFH+!{ehkO#eUaU4L|2)qTJ3UB#B| z$d;XuxR~VKSjH%le*~G3;4HSDEjd7&k zp&Lm{x6-l}`KbpCA>ebmb?tUI$)VdJv|W<5^mH&rvTmiPKeNxhPyPi4L;J`6vFz{t z-h02lzxT(x(mPKQyLU=hiOsj8i)IMlh4c~1LR-`P)k61rMEIg}X6HGV?kD;fwiZV` zD^^Nk-iNuhy>u>p_^d8in2U1pbz|wAUdY68k;fyy<2cUk?fkTwEM{iu^)yBF6YN4> z4uNBI(Ulxoguxo)+&bOQo`6 zztG2Pq!|11SJCkMjA~{+1KHwvD<{@)LU_RGi?7kY>nvD&t?R|atAz0-9BQ2Njw5_??_VWQ1jec<;& z7ngODL1DuUZ9%~q5W2nS?FV)j`M5+kdiJ8t>wCm*sN3^FN`F`5DPA9SPebTu^ARrf z$|Ee!dFDkc0R6p1stVm6p^y8|?e~bfZ{E+IqNl3J5!cLhb{Ef~0nxh`cmRAsVP6$7 z>)!fA3_araLU=50;Q_bYQjAsS(j_7ditM?IIpfjxi`GI^`bc$)Xn0n64qT{v0ej|i7Z9cHOJI?oju?&bf-feZin2Bz|rHY7y^E0GJ%wFC5x!I}P@GtU2 zx5vkJu`hG8nti|;(Y4Ic_ZCO`y?NnTS4B>^U%`3H@29!tE6lO&);1Ozi!yI2naZ6= zM_G3&lTKyAxp*qs!qh~91>y(Ca#F4G@Aks8mj zMCxFCl#Qm+Co)`yarN8USR+R}nphy5NRP4JaB?&?dKkSQPmLv6?|3B3ErrJ7S(aF= zCzi^vuJ}kIJ{nH2qDAneV3cK3m*dkfr zcycr`&PO4aVv%?@jge;IWCT)iFpPo==35w>GoDH&PB3eHt3G^-btUJxmvu=WZ60$b zn$2Yp9g?!hJjCa9?GheX9Fo9W*Op5!4%5zTpF`A z5K31_*B9RhfQJjWNY$Tk8L#gEaw4Ixv*0EeJ-QL<7O|~45 zAC9M^k$AWzl{whTTdm+cP@Ldfn^-uVPQ)>ZV4bU3enl>~l3pot^mC5y@?0KD!Eqjc z^jI{3RVH$}bj|X7Em^fZya7H2Suxd-FC-=kxr3Q75)f%(u?*HAX7cD*ICBtD^He5J z@PUH@mKwp@OY*dY#lFEgKUy5zrEoTz8jXkfG>D`|$B!WKVSRbW6UdE~Yg`g93l=wy z?`{r&hR&np=$cZ?nqi&n)%II4sER6FJ=MgrsBdJI{ z#&J|6Bt4FRvSUqrSwQv3cn+Oe-dUU{h_DrbXQSAQp@ENfF-yz3Dg?MmeQgvoEu1($ zmOAnQG4k0yo=L));yO)XgB89UijL;yrr5$v#vG5t#rkTWo95w>)UoKID*!elzBYtM zd^M#P=1P&29Sb9_k?4{o8eSA?hC7hOzLkq(kg!Vi75zae&{tirn+5$nq5W#W%{)Oi z5b*EwxZEywiyB1xmL|5}6YBNv4KZ*8R9|R_`Foh^8)AJPpR0+v2L}S~V37F(%;O#C z_qfsL@pbp_b$NVySQq4ceq3riSdUN|@-uF*sLJCGa%En3pt~1Mwae4*2@N%|9#6=} zb@o81$_CUx$kUBIG{6S-1_t~=H_W@B*5~o{1YpJOb^Agsu!=tB-iHPY_Nx8;!j!rf z-Uoz#-Tr~0fM-u{i1qsWU2b%Cx#5}G)$i6#A*k+t)#GhqF4e20%=(e3wz0%$fN%0OsdbiXI)ZenV{6XXf$3HYI&rxOx>p#*Y1x2}b! znk^X-u<-WYpnJg=ms{b4tfi^+*axK*eRrD5I zZe6NN@9rovx3?*31KJGW1f&5^1Fiu|;C(e|1xx|10}P_Y`6d950L}oea9*L!*jA<1 z8O)%VMeJr|$_yDZVjmVy73D=)WiTQuM&bvY=1(UX$~BTuo`Vuva0^dq!QLXUX5H!# z1ntI~9On#FK81sof(}XBP$wuv>*^|2Zr`a_3btm)WwqQu$W?%BAO;C<+=NuY+TytO z650~|Evb?u-b;U7Ft3L-`kO-4I)_s=(_fGQfK2jqn#=-ZlA=E&695_PPixJ$azpg# zLV2ab4F0Qx0VV;IoIxpxwiCeluNKyA;Oc*(RaFbQ%i6Zv^h&{8>ljei(;vW}@6cC> zg(&ogz?*^p5f~GXev5t^$5HO*mkL#8$0Y1M0rn^83B0RR=-<%$hy(aZ`T(gDY_DmR zx}DcFtIeU7(=XHe1xuD5CAR@5=wZ#Fu(R|_d_K~*3S|}Czqd5=4UTj44SJZY2iNQ1 z+Ne~Wqe;>V;E~J}%1n+abuFDim@`O=0v{!ET9i)uiUvin_Z2!xHh^}Xo+LK_f0aI{ z-Jr~#r9T&J?{F=!_eIPYjtZtq$E;dLzsP3@{V6j3Q(^6Y3ynJ+L~W#hMz#TDB=twA z{fIx_Mc+p4Z4A@f7@D^+G;hO;w=ro6{V!1X*MYavOC(LdPo@B;Q8z&42@M&1PE;DK zj_2r~(EE`I^I7ChLhl2GvP$mR{aVdB!FE4i;GO5_tHckG;rvCuB2#DSXGADdh1xnU z@Gn}~TBPoe^|659eS8eg(MkHC$izvJf&7bTV*b-V6~fmGYpWd-82u2MDU^=@Eq z3}6c(h7dVG`QuzpI#8&ra#WqAcL`ySR@tVUqrC{dS7fVKyP;nAyr)<(RB3ga9WU|< zX_lp(cT`i^*1$m&r8*Ww5Hu=H8AwkEpbR7g=|~ZgGC~LtN`j$dK|w@81Odf{Ql&_d zB8XD;DM)Wpr3s;kAcG)7^_?3ljPHAEy)SFsdvo{M_w0T4+2`E+k+pvtPHf*VAbIQo zbJ(miXl@|+pj>>}tP*yFF2arZeNX zASd_bY_9i$m$L&bHXSgT_B?-5sZeh&z>XHx#?kILl99M&azmeFnGpERroOfJ z3`K&pd&|^5`==OHsYD(hf4%KetvWZP(?aXU@p!_WAn(R!e6qpf w1ujVw0YpLlv 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 O0A7JtQc_)?%=>TOQ=_>6 literal 0 HcmV?d00001 diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 8e7547b..3b92e8e 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -1,6 +1,11 @@ find_package(sdl2-image CONFIG REQUIRED) +find_package(sdl2-ttf CONFIG REQUIRED) +find_package(fmt CONFIG REQUIRED) + + file(GLOB_RECURSE sources CONFIGURE_DEPENDS "*.cpp") + add_library(libpacman ${sources}) target_include_directories(libpacman PUBLIC .) -target_link_libraries(libpacman PUBLIC SDL2::SDL2-static SDL2::SDL2_image) +target_link_libraries(libpacman PUBLIC SDL2::SDL2-static SDL2::SDL2_image SDL2::SDL2_ttf fmt::fmt) diff --git a/lib/Canvas.cpp b/lib/Canvas.cpp index 2890e1c..2c494b4 100644 --- a/lib/Canvas.cpp +++ b/lib/Canvas.cpp @@ -1,7 +1,6 @@ #include "Canvas.hpp" - #include - +#include #include "PacMan.hpp" #include "Pellets.hpp" #include "SuperPellets.hpp" @@ -16,6 +15,7 @@ void Canvas::update(const PacMan & pacMan, const Pellets & pellets, const SuperP renderPellets(pellets); renderSuperPellets(superPellets); renderPacMan(pacMan); + renderScore(0); window.render(); } @@ -48,6 +48,13 @@ void Canvas::renderPacMan(const PacMan & pac_man) const { renderSprite(pacmanSprite, SDL_Point{ int(pos.x), int(pos.y) }); } +void Canvas::renderScore(int score) { + const int x = LEFT_MARGIN + MAZE_WIDTH + LEFT_MARGIN; + const int y = TOP_MARGIN * 2; + window.drawText("SCORE", {x, y}); + window.drawText(fmt::format("{}", score), {x, y + 20}); +} + SDL_Rect Canvas::windowDimensions() const { return { 0, 0, LEFT_MARGIN + MAZE_WIDTH + SCORE_WIDTH, TOP_MARGIN + MAZE_HEIGHT + BOTTOM_MARGIN }; } diff --git a/lib/Canvas.hpp b/lib/Canvas.hpp index 3cdac44..fee3d9f 100644 --- a/lib/Canvas.hpp +++ b/lib/Canvas.hpp @@ -27,6 +27,7 @@ private: void renderPellets(const Pellets & pellets) const; void renderSuperPellets(const SuperPellets & superPellets) const; void renderSprite(Sprite sprite, SDL_Point point) const; + void renderScore(int score); SDL_Rect windowDimensions() const; Sprite getSprite(SDL_Point rect) const; diff --git a/lib/SDLWindow.cpp b/lib/SDLWindow.cpp index 9d81b1c..c3cbf15 100644 --- a/lib/SDLWindow.cpp +++ b/lib/SDLWindow.cpp @@ -6,6 +6,7 @@ SDLWindow::SDLWindow(SDL_Rect windowGeometry) { initSDL(); initSDLImage(); + initSDLTTF(); createWindow(windowGeometry.w, windowGeometry.h); createRenderer(); @@ -24,11 +25,7 @@ void SDLWindow::render() { } Sprite SDLWindow::getBackground() const { - int w, h; - if (SDL_QueryTexture(maze_texture.get(), nullptr, nullptr, &w, &h) != 0) { - exitFailure("Failed to get texture geometry"); - } - + auto [w, h] = textureSize(maze_texture.get()); SDL_Rect maze_rect = { 0, 0, w, h }; return { maze_texture.get(), maze_rect }; } @@ -42,6 +39,15 @@ void SDLWindow::renderSprite(Sprite sprite, SDL_Rect target) const { exitFailure("Failed to copy texture to renderer"); } +void SDLWindow::drawText(const std::string & text, SDL_Point position, SDL_Color textColor) const +{ + SDLSurfacePtr surface(TTF_RenderUTF8_Solid(font.get(), text.data(), textColor), SDL_Surface_Deleter{}); + SDLTexturePtr textTexture(SDL_CreateTextureFromSurface(renderer.get(), surface.get()), SDL_Texture_Deleter{}); + auto [w, h] = textureSize(textTexture.get()); + SDL_Rect textLocation = { position.x, position.y, w, h }; + SDL_RenderCopy(renderer.get(), textTexture.get(), NULL, &textLocation); +} + void SDLWindow::initSDL() { if (SDL_Init(SDL_INIT_EVERYTHING) < 0) exitFailure("Failed to initialize the SDL2 library"); @@ -53,6 +59,16 @@ void SDLWindow::initSDLImage() { exitImgFailure("Failed to init SDL_Image with png"); } +void SDLWindow::initSDLTTF() { + if(TTF_Init() != 0) { + exitFailure("Unable to setup font library"); + } + font.reset(TTF_OpenFont("joystix.ttf", 20)); + if(!font) { + exitFailure("Failed to copy texture to renderer"); + } +} + void SDLWindow::createWindow(int width, int height) { window = std::unique_ptr(SDL_CreateWindow( "Pacman", @@ -100,6 +116,15 @@ SDLWindow::loadTexture(const std::string & path) { return texture; } +std::tuple SDLWindow::textureSize(SDL_Texture* texture) const +{ + int w, h; + if (SDL_QueryTexture(texture, nullptr, nullptr, &w, &h) != 0) { + exitFailure("Failed to get texture geometry"); + } + return {w, h}; +} + void SDLWindow::exitFailure(const std::string & message) { std::cerr << message << "\n"; std::cerr << "SDL2 Error: " << SDL_GetError() << "\n"; diff --git a/lib/SDLWindow.hpp b/lib/SDLWindow.hpp index d0c15e5..8bbcad4 100644 --- a/lib/SDLWindow.hpp +++ b/lib/SDLWindow.hpp @@ -2,6 +2,7 @@ #include "Sprite.hpp" #include +#include #include #include @@ -29,11 +30,16 @@ struct SDL_Texture_Deleter { } }; -struct TextureSize { - int width; - int height; +struct SDL_Font_Deleter { + void operator()(TTF_Font* font) { + TTF_CloseFont(font); + } }; +using SDLTexturePtr = std::unique_ptr; +using SDLSurfacePtr = std::unique_ptr; + + class PacMan; class Pellets; class SuperPellets; @@ -42,6 +48,8 @@ class SDLWindow { public: explicit SDLWindow(SDL_Rect windowGeometry); + static constexpr auto White = SDL_Color{0xFF, 0xFF, 0xFF}; + void clear(); void render(); @@ -49,15 +57,17 @@ public: Sprite getBackground() const; Sprite getSprite(SDL_Rect rect) const; void renderSprite(Sprite sprite, SDL_Rect target) const; + void drawText(const std::string &text, SDL_Point position, SDL_Color textColor = White) const; private: static constexpr int16_t SCALE_FACTOR = 1; std::unique_ptr window; std::unique_ptr renderer; - std::unique_ptr window_surface; - std::unique_ptr maze_texture; - std::unique_ptr sprite_texture; + SDLSurfacePtr window_surface; + SDLTexturePtr maze_texture; + SDLTexturePtr sprite_texture; + std::unique_ptr font; void createWindow(int width, int height); @@ -69,6 +79,8 @@ private: static void initSDLImage(); + void initSDLTTF(); + void setDrawColor(); static void exitFailure(const std::string & message); @@ -79,4 +91,6 @@ private: loadTexture(const std::string & path); SDL_Rect windowDimensions() const; + + std::tuple textureSize(SDL_Texture* texture) const; }; diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 15c6b9b..abdf99c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -16,6 +16,7 @@ add_custom_command(TARGET pacman POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/assets/maze.png ${PROJECT_SOURCE_DIR}/assets/sprites32.png + ${PROJECT_SOURCE_DIR}/assets/joystix/joystix.ttf $) #target_compile_options(pacman PRIVATE -fsanitize=address) # /MD will be used implicitly diff --git a/vcpkg.json b/vcpkg.json index 822f05d..0e4cae9 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -4,6 +4,8 @@ "version": "0.1", "dependencies": [ "sdl2-image", + "sdl2-ttf", + "fmt", "gtest" ] } \ No newline at end of file