From 3f1ca7ecc1811f39e9b7527af0151dbd3750e52d Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Wed, 6 Nov 2024 17:56:11 +0100 Subject: [PATCH 01/40] Labs pdf --- cpplabs.pdf | Bin 0 -> 320050 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 cpplabs.pdf diff --git a/cpplabs.pdf b/cpplabs.pdf new file mode 100644 index 0000000000000000000000000000000000000000..178567be224c055699e9b5f313d93b048132596c GIT binary patch literal 320050 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

^IYd@_uO7uwrfvjkPw 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≻K5NmE7 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 z zaptsj^~Um24IFA0=fe%jqhjl;!c9&;uxOqZE0C4+3SF#Lkk92`7@#bR*oBFbx9$EW zn6=OE8QIzt?Q6SVGjG|b7}y57Mp6SBzQUSJxV3!As-f}J);BI+L6t3aC@$f8q-Qkr zS^Sv@y)Y2Fa45$1*U;FO!vgSE9~kSXKqPJ-RhLelce!ijG^$ReJ}$91VfUPYb;bEc`iXR$$YMRyS`D|92?CJs zf6f7^;cNYjFp}4>x+xD+U^TybqN4Okr->Q#ZMS`ym;!U*K2XJbIU*wD2Ktv9XNN3*pkE@zbz`+Y` zrpWKM^?GW@Ys(h{w3tMpXVrN_=8|8a107@$W82?uZ~76f?PXtxL0EU@q{?bs)%VXi=Ad z>J@`7pm?LD1*T1aN+F*a8>~*Hrg_Y!1 z;pAH?nR%ua-T(M+N4qt8bul%tNxUz_kcH8gnP}Dy;j1CmJ>*a71!T68o9$or9FSnwdJgT7Tm9HT zWsdF|Xy-u@`S_qOBT1YEtLj*o0MbER(5q|?i5e7dL46&QQov~&($I(%vP8V)y&8nl z8QIrybNr9aqqWBrtk68=&TgR5vg2^W3r2*X#4j#oYX%+pR2(Manw@gd0fPI#tx5^}V z;q>xS2Pw<4S?&b6CVClZBcXrB3%G$umHz@p~W;2GkKR3pA|N}cCM6WLwGwq z5*<&Wu6R9@BmFaU*T%2kDVpvRL_vAcPw9Q^T{wx*>Reu;f(()vmG^zm-+_L{(S8( zD?Cp2|K)ltUXrE6Kdi{*mtyfIDZuVA=^RXfX3;+`ohKv*^3q?_dO!U>CB~n50(H50 z%Yyv+tl-z1UMjX!9#UssDOu-z8fL`R3vS)ccmH9wZ{LVqcz{3E>3vN~a4OyW9q?J7Ink4<6 z)2f~oKA}qdvG=5`V%19wf%y>ceKST>PdK2fmQ(@doF311p)Er*-b&{FUx3x<(LFwd zGDKA#c!TZ)Ov9vL`!aX{C6yDPY0un-LA5pw*s~GX&Bwx+>DT99jFW`~<66R9n_Q!? z%%l}6Mp$*Ds@lsawDEyWx8)zn}v^DU6pIJ#XXb zA!?Hln@{bO%N=6vYtOUEo2nVf}o87lM zts=xOp4n3AEVE=bcI|u0Z0>{Ryq55PZh&99Nf@B^2=YhdGi9IN7kZaRHy$rPqFd3y z%=1eM@bb7gMZzKi5dy`DPBqkv`3}OohMSI0;61y7eo_wfMnb!OyFcAdUQp!@F+V>} z8zoQ~g3!MAhg6@kvgrOQDn9h*Ez9*@*Js6eY?4i-I9~m5ARD%hX(^Pyen_unWsjnU z8=fvkBllw|wjFrQj;5M{$ZeVa#+CgG0(U@2T6<#Y_$0COC)=6`KWih9n*F5dcZ59n zzrJFV2tZo53_;bDG4+kADiD9&Ac>?vm-^3Ywi4C;yaZ2sjBBiJnS4=Pmq z4G+8z``~$g)G)~Ph@3qgvT6??rx7f7p`tXw9=(*M#GV-a;ptlm#>GPAzza&O>`9C4 z=d}E@Xy4Q0q&;}*6cfc5I{X}aZPi8~8RzfnT1{auhjl+R#w8cA4Xvi0JXSPO5{_&KWw(>qsk{#d8(rUwvwJr87!C z$~QH)B*GBA27i;|HhE#}aGFCgZqmS?tShKu17W6GX%Jlcs356Se72LlDfmG0m-@>j zgcU~7mdpJZy&(w@NRvTqqaiytDy?1p2WlPi%}xME%qB_aT+L|C)-D3d4D#Fh!!;jy zb1lgm!VRrsbA;6#!dhp$zfE<2MWA_bXibiornp%%Pm?r4M8ukr;>8HeKLs>~FpYr9 zDHyx4!Vj<{(I;6T=E;M1Y>d`wD0#;3`usX;YQZN%Um{3Q`wZRrmfNXZ^$Bh)35Cx_ zKd3sY!8?d2(`~(SYH9<|LNSa26Ai-VG;*rwL5gx4rzg!n@MElUf~Bjv$n(**sW*m9 zUyRsYGmozywd6c z#=9`_?4li=Tf5E`;7lU|&PA-MwKZb;U?iF5pjBFp$6@MG8(cD)0qG5@PLw_0Gip=g>&f4hd19 z!aC@epbGKL5O@(>)nK_`6P`s&XR=-`#Agi(Gf1VQrNkS(q+vgcnnqm7J`+q}^Nw`7 zB~&pSMuv5V$mW~%^^g(;l|oe^iNb29FYGtAWUZ$;Z}E6cSp(7Y45}U9FcqFAUWS?F zKp&PB&AD+0XWpXDe9RCO!`)sSPfIC6Z-fYniEc-LbAa{}wcBULr0)Tu%{%!-+}RHA z0Pcsr?iH-WxM21fsmx3IOWW70I$Lm`2~;!H*l<%^uD#Kh3o2YNk}OX?;+>245nh2R zswh6uTk{Ie@*mQ0_(ZWMU-B~_O6&_anqW#!(hF1LPrVK{^EAiUMh+1UU;rh|zVi6& z`T@W!Oo@Tc*S?x9D1vK;y&GjaCg||u5-JTy#7=8io0}sOKQDQ>Q)=pvJrNWq>$4UT zSYXe}rJ_aIDM5ta!tJZ0#PT^wME6aRfL||4Dpk*fawg)_D17{~89_ly&qB6a7P(4hr^Asj-+1)i(M)}*mWIBDtcHUSZUnN! zUq0MEWbZ7*9(7n!M~_d07f%ZhV}hrn90}}zkB2NWLL-5c+=y;9cFu_d;UG8z!gt&# zW#GH%_sGM>USqi`+{-3pzzv_1q<<9FI~KadAB=gM%PD9hSS`FY%lyL`(8v9x=Uc^( zzRZ6Q*TD44^8Jqff!v01Wdzo6{5C$bB+%=*xI3NomaK@Q8{+;n(|4Y}C=kl!6Se!1 z41*4b$6^fZr3!^=IVl1H#m>;G)L?Tt%T=R&3?Qw=p-aHzH zJ-1PuHfRG}xU@iW#xG$%*&5`|XT?vm4!L4q9#-`N?MpggL#?)o4-!XomU5U7yQvGu z`yg#Q&s-EGV+tgpVy%f{U3B9_wm6D+8-o22X-$rm39{vKwtp=Yf4-PyJ{#roHglF1 zcr7k*eW!K2HvTw3mQlN-(d2ft&dwdqmpx(Zm8nJ-a=1Zr+17A2iqYV2BYeb;nn5i?Mox>D7+<<?(tvN+l}KA zqH_+**nyOp837YDKQ9Q1j7Ze47fDqz;ILeRv2XxkZ=4a3EfY+61YpY ztx%_qihCx^GFIelcS{U0&hlYV%rncz44>7n7ROjeGFYe`ZX}B_qa1@c9j{zXtF7{-rE9GM;BCVR{Go+*{Ssh1WtvuB($@1T))$xbGZN9ee zSm2l!gGfZ{WM(ndz?DO@5XMjj`%W4_CnfuVHGcW8L~(d(*z%*xp{644L5RnFVO15F z=pZx?tgZu&HYP(tT6@G{)tkcRWnu!gf5H}LR(k``Drv%|gBcVp`nOZ<`Y9xjP|gQ@ z%Cgq>{^N!c4Y>Gy`jA~pja}Fz9S_$U&n!FD@IN3&?!MFB>1269+Ks_zi>EC+6SK0J zo-Y&eX!u3MoYpZzeBQGR`_;fLdIeI-n9Xs}{8563^E$82oQs;u8CbGsjX?g95;l+k z@|@rNs65s3Fy&{!m41Qcaq(j>C4ZIAIK~Qm*2!zvA^Zo%Q2WQO!@#^MX=ca{gr{n} z7{Cl`YjStpOQN*#f%d-wbpeY02yIVBW!p7ig1(8h&rL~0MzD(3 za=73feZ2PgH`c-Y!BczdXeh+r(%Z?n@GBYn>S+V%J}9mAIoP}b{|G}DKyDJgI#x>d-v~t`10k$owTVAN#kCtA7B868l^(p z?9-^B-fNi2(@!;HT{cPn_Mp=)>>H0?ew2|Q?LSX&FWSbynMrp@7BF89_$z^4-v%-W zU*H5HMkSPmBkkh&RU<2?5Wmu-Kmp9|*mz`fQ50mt0$T-LQc2rCwdneJIG zs~51%sDbkxWL6@bU&oh(u}Ba|R?;1?6ic=j$++Zs52`4QN`&5xO1|pBUfb>D)uI~- z;ONp9R9+;VMlUy5lwP`>0PNyyRfn!1Jh-ouw8#Kb$MAvO#KV4|eP}NoAcn}zX(v4?5av(28Y+-a|L}g=dWMv9IJ_>Vma%Ev{3V7OV zyJK)}-O?@`+jj2QwpMI=#kOtRwryv{PF8H&wvF@bz0ZD6y16(&YTMgSu{3k(^Vu%n5AvxS|lh=H>SH$dIQ7@%xo z4`5;jFf%eT!H@xj?d&}qEzHcF0hC5m|26{DtPPAUY%ClBYIfFkt`Wi z7kWpRU-bVhQZ_LGIGdXQOf9TU0K)PL8j^D207`K=Re-pOt%;+7H9*0|(AvTXAY)-< zV(Vl=1u(U91X%w^0T|iY8e9AelN0^F0ob~lI6D6W%+%4&1|Tb{A}A&=rveZaW>66Z z7}y#EWF-DsZtLvC{ZF)sk+bu^s-p!s|BqyC@IR8_|49Gib#(uaL=VHn1TeNRat0Wh zm|57uF#L-*Nn2Ap0Q-N;#xC~%b^Qa#=^uOm%6~Yd0vMZ^{uAwDZ7pYDV*;QQwzIK! zaW-)T$l4j3INAdK#l4%O#Xpw+h8oydSbO~c2LIm(NoRw9$PlzO`-eWp|ClVC#4OxR zj1?@L|KZ!&(Z%FHW_6SQ?2W96v4xAxf0mp4!^uCpYHVj~?eTvz{!_}o^D&4B|CSQe zr1_sF__tfs*2vD-!qyC+?EDX(29C!6WB9jQ!NB4_9rRx;|LrIM)Bn?D4V)b<+yPpQ z^#5uR#(zEkm301Jl#q~}yB8fZBPW24g`E+=#KOS};AG+S`Co92TpS%uY@Pp2`aiY& zSO0f2nV7hn7{RP9+Zpi$Tc)*yR``k*%~pcb%ueg8(kwFpuT1saXdzn+nH%dJUg6xU z;N-i(;m-sZ^6g&kNZ$V;Hi$EUJD!+~CJNVC#(6CvsWkJg-FjCncxwpPy#`amwlR_e zyNS4S&RAayRG^+@&B{Hmm2xQKLl$R>)-Uhq2S?hDUtM^#6{pgnK*`knhBMixsX>}G z4=KDhXN|B(>lP$7TF3V-*&D1 ziXGYv6uiG;*@H;mbQ4@Y)PBlm7@miSECj#dmEYX<=a8t2*= zTUAG)#;>qAo=wo(#2~JUYKu&ozjiz;e0Rd;v)&;SQc8z#-Y}NCU@ru<1=}#r3$Q(b zlMy}*g&sX^Ym-WZt6+HtdL(2R95oBnWrVejGv`l0Shz8ncH568;OhM2#I~P8AwDW> z!IIe=JLo0I#xIz(!oGj5V%i8s#&F?7w~8!rArDVeks9HCR(UvF{g@2Ecg;{s+bH?% zflXf4pILU^0kw9l(vTnZiElRT&nIdKYqEU0V#&K1*feD~e`GARhn57xIl zd!cA-#b}uwJbY)QbgWc?Tv-IdJqyN#ai)W9_j2QAS(m|V=2^#Wx51O!TD2I~DuSZ5 zfWe;60x46F@dkGfZjL-${M;uyOpYs{m(B2(ukKk6*zg4}d9oinE6^G1Oq@SabSB=i zpcuSU640wv_n1P4h4*kVO+}wvT@dz4us7OZ5K6;>OLy}X@7Qfcp_3+-Ot zLtZgB1)1gjtk=^kmq=wq0PI(3t`+Yzg5 zE8)0ho>}@sufb(VKF*?-T)sU*VW&*ff&B3MwZq^K8Ku2tJ-_>)-OOR1w*S;$LWWbM zzc!Khu~{0+*v!)tm5qN!Nlj~>PL<;ua1t*}2V2jyWzewTywgdN|9o-c?sGzIcIGh& z9CiVgQRp7v^B3)H$2JZs7iD!m+V|Le&hOWevfDJ)EEqUX36Fe>wu+l3>(R1Leh03U z76)A$d4_Okm?2$^Pt_opEna+FWxKerxfqUZ7Zk&>JATmuvyfhL0u>AU^Q{5-C|&)< zxR40eUAq)&Q*lJc)ox9uajI#^KCPtC>bgt7>|&jAivsuUrW)MBr4_(&D@4+;tub@z zXDkchcCYXp29#P?2@qLz41c+Q!@>=zqJVo0i%migU-V|DwPOF0$*}N^YfIT$?YHT) z<5;vihIW-9*bgr%&N12q$z|A^=WZZ%E%*q|QXqpo+QM;f$Fxevk~pc@q=e<=ulY4j zyKadLs!i)50#GV!ZxSTVfuN|b!=ewfLR_@e$f$DjDc%J<{iux3CQWx7D6$O)iuFSF znwcyN-0kd6fDEem*cjHLmnL2eXID+FB48xaHNmFaX_2!7O6RdDvZs^Prh+33m5csn z9k%m}8cH)Bs^KE-+`|-vL6a7ipW>kp={dyhM7v6P3a8pG&>U6s-gKP3J+MveSvYkG zITfJW5cXZ2gM*?08GGM}y$*cM&X5s|HDX;g1RXl)Nvr<0CJ>nQ{B&OpcVX13Zn$kp zzKHf^BMWh?_tLc~A->)v70W>I?)f8G{;5BK=lT%7(vDoRcu%4J zqqE#@W|;uwv8*ULhgPw<=6LLO*@VfUq!}^5^=BLU7rG4II<3G>0#oLkYp}#Gy-o?t z+dd3xBOkY>sS3ebW!!g&AMVNE+rt#~8Y1HLNaDXmnR#UnD7ZJVYJ?aIP42H-jT_p3zsdu zJ0Igm{-6N>xG_(7XaqfuKb>`OvcO);TEAAPxEKk)I%=oy)|b@9bM21Kw$OY^WLs@2 zHdz5ljsvfr&8;@Rp!NKVH&^La)|&SCy@ZzWtpZ9dLiLMPiTyj-Au1W~Ilp)^Wv8m& zqFjB`rY`@WrTj4u6ElEF>P~q%l@c0%l91D>6M$i8mj} zmkkR~!mRc@5=~QZb9mTbatSQGzY+kqJYqIi@mJiZp5)6xQpebn%rSdUeqvfe+E2AW zY_*$#2xm%1qLAvPuGN%mN;x-q#i7X&lp2Pa$^+J&sqmTzmKCEYHq{>CQ_PSpP7Myv6v=7H2%8E0gt%Rg zneI>TcB;19@&?NmN>HlJ$yqKeK%xbTTD(>C=j(a%{lE}CScmx%f>?+JgTAD##(DVGFgOX$y>LytUs+X1|Y{7m@--6gf z@a$_;e6H*>(7Lk1NR#082<2^y0C9$(y&B{McwETi%_G?~(2F_N`V{t^R*OX^(4&U$ zfmfNk5h6y4*eNVsN~RG!FQq~9G>|$haO&-54z#-VFQ)_^13$fW^H=hFQ_m+^afyeT z_@Nfh{@6O=S#ipTZ)!z9uIre?@3Ju%^?fzi{=b-C-T{1*ORG|*!^*+H)IuyJ6Y~S* z)LxgRtJge#m1^I;0%vh~*C=US4D8h!*NA9-}&%4hFT>X@FW0PB=y!n=St ziTlLV{ji%Z#lwzBxP44N)tqFmi!bkZ@7$>e;xFI>rJ zV|hn`IRv9~uYCZH;)>BI&Z9WjWcJ$D63I11^qJF3m^(*PTd6)QhtfmZe&SXP87yto z?pB7pcWJ|5>L38srlZoVoPm8OCseVj80tAW^KTqt7JeL%)GCIdTyasl04{xWG?@DG zP|Q-&2z1;{gd#Ei<`(*sH*zrtVHZb@InEfzwtEj|R@=w=k`1+l zs%$2em(%JM>$J!Y>S*G+liV=nR+tT!pHVFT?vwAg=wnxXGu2{Er^%U(9POiTZz{Es zUp_j}NYx+lGy$zfOq`7kQD%~7?9R#C^nF>T5-~e6qK-k2Jz^C%0onzq%<`#0>+m=} zB8ez`t%j0zhqC76CPBWra6|H==88-odR09V`^EKPxHsvm_h*3xtLp`fFCBj8y;*Yz z)t)!90J3GQ?#b=}L8wneekXhy7%>D&Gpvc$toF^VfYr8+>3%(w;@7nvfo4#)d5TN{ zb0|ma1HxD^7XBPu?aDM-7#2)oEFHB~v&urPJOE5%^cMb+;ZAsg-+lmt9DR7ltp@Lp2 zOb_n(ud^MqpRss~U}D_M->2k;(&+`+Ozlr7;psk8;=t8kcg*)EK~m!`$cg!2c`69TIl~G?S~l4-yN4F8c!xb6pMGObTlOs!G#O){bJ1o%Y_%Md zqw!Z*%GhF02QdNDCcP!2?k(+>+=#qPK`fl~g?p7WT33nfTBhOduj|c7Xxxot9Y1f^O0SFf~y!Uc?MB ze}Teew@RrJhQZ8(^UXW?%8wL98FgpcxcBQ!XSyFSr|5X8DA7BJ1|A?ApPTxpe?CE+ zs{imFy`32h%m7ut%uxYFrv$7X#j;Glp}z0{P%$~j{UJR_rq>Yv=$1_Olw_jnq&chX#8z|o9XZ-gbyggg`HkO=?} z?EB#hcQH5N6n*U}%?Rp}+pvzVcO%NMpn#v#y$VGl2G1wu4d2|O4iBt}_JCB#_AqxR z@a83^+fxYkHP#G<*uCg95RE$mL{=!0$BrSJsBzefCm9RVGpGTIqphQa3DUdzjiSF7 zFsPeoty*~QAK|V$k5yap9W2}*E`gOLC6S0?2ur2WqbwvO9H}VsD2#Q$9=U30WU$l| z9%%?5W>p^tBRtxQY(@%ayUCBJL)>=(>q;<#DQK=gk&0v)Np+Ugg1_?cWSebj$6DuUG>gqoqV`HQ@MFm~SVHLvEp6^JN{^??;%)At{|%Uo)izbDVU($R+dM!@#R$6r;t#>@~e;J33m$(}(uLdmLu7WA3Y9m5%T5zgE z;iUe6xwz93i;7_{w7mEPC65UsWvILwjCZlwc%8fJhR1Ml;A*t`fA<#~v9_=&HHkTmRF>P` znVHskzYa)T4^I%>6$|NQR(OM5>7IZwYzUUiN54=M1xpJHR9nWQ!qo`Rwwm>Pnsh8Y zDG#3r3){RzqjUwS$rz#_nfWq}sx!w2CNx~1Y7`#*v5aa=&+9FBiItT8)B4EXtV#z- zK#zAT6n_r12;?3dz1G5jhJZ#Q~@pCo6qw4xX!gw#_OdbHGanP znD$22TykiwcdH(TT8{CkDjO*_aB!1qbz#6RMwSMwn1)ObUec_Wj zAzUBG;7Ip+mq!?z;gc3yW_C)pOiwv*YP=mn&;UYY^WuW}M|Vgw*9jYtKLz%{XYMDe znUR-M0JNKo8=8NTwOCHP$q(iAi<%03S5$^3y5gA`KlZx`s)IR3TS|!+c!J77iYT#b zEmp2jPVW63QK~B@Ya&^ik|IUGY9v43)Xg&=QdjATWMFxQ{KX>F6>(>rf)JEa)_fvi z+hlZNUg}bO-H+xo4n)~_qufZ`By&_OQ@@3t^8?EYPy_txi z`@wtO-Oi)DgX$MTf@6OoXay)W1g6DoHR_FrZxY5{fa%(Aq;YGw(i;jeO2XI~w;qCh zP&Rh+ybmU_J6(A&OM5g4zwrLRKA;hC+oQNu1*}AbrBn>|9nnB(1ox@Zqd{RBFn=sM z0*+wPGa4rSsUGtywWQ>FTHT6gnZI+SJP@=~8%6^OK>3l^oyaP-lVz?!M6|IVO#Gmy zZM~I|*{RC&mug|Abj}2CVfeGL#K{2<*p&*m>UxnZuzwJ6da0VCMX`yyh`|(e5z`&c z4po7Krf3xRNaPY`nhiT9(}wH$%kaV0w{;lr^p%1IC^J`TSfZTj`f1hO^8cA+k--x$ z5&Og!L1;260P*-Df6_QTZ`pMR(8wKLeO>ex*C+}Ww~>lX#+Zz=M=j{w>?0~C4oJFF zb@3xp91vf~*nM9zCgqG?{qC(YBwXHPxxvwF=#Z6Xarpz5ncmn5?DF`GsXBJl~kW*FKs~K(!6iW=34G9}Hxu?}{@Z_v__G2B0{D{`*`jY3uG32o^Kj1vW=I;H2!cziC0+3qYG zLX?u(7wO&DtRMRyCVPp#XW7m;zhHXgMpOR2YOMfwtt+II(Q)an{yZ6+v?ZfxN*ga4 z?EY+FLQmyu{tYb@sqoUrpwXuwMN)=f+JS_o@#$b0+Z1g>*i1J4-9!jIF~JD-bjTMZ zvKG-*I}yPK&(`#S>;u3YfHfJK%2BcR&(V?rzmn$=a+6fh+XzS3(>!FTR!E^X1n z%W9ePNhl8VlIMjH`w(wA_5{B%WzLcwS`C|cbp37)&&eU*WcY&1rMgm!d2;fO+Z&|G-H~pd6XjX8WU>m9aldzpM{ypPdv5$&QIEp{gKQVy+pa|`!oQ+yP z;0S-wF3bR2qL2>z^0Soso3!=oJWdocb99Ha`QbwU@mjhvOPXG#usy$g_`rEI(t4s- zvLkffY5GEqxsK-rjd7KlsORYs^#ynX z>IgLFTpC6AUJ-Cxz55IA!2|LU zO+n#stisJWE8{lec&vrz^pCx_b{(aiFfn&Dq4QQeSSM*oeR*y9_B*wM90--F(N>ih z_Vbo&#a}(+8TBcVSvRfPSE%{#!k!0~pc?9S>4($9m$}II!q^~mAd;)`ZQ!>+XA!!^ z-w=`JnmZfAiq-1+JE))#;4eK3(hqJbG6E4tk}2O7tUH%dGePa0tk&e_Dt`|cJe*wE zDAN{&PBjh-FqmDpwTRN)#zC!!N7LpwUL3R)Za*)6yJ&azc@>H~Dqb}ZK;jT%{lvvw#P}ka>wx@JV$cc8lF9qq@32;MxQ5dw)xu&ys9T z#5DoN$%_l^pWBV=>_UCTX@nICYyyZ<~`St1?5Sj@1+J^8}Kr@0PnDP#g-Vp=tHjjj4U z#*oL+wI3BabC;ATXIVgIQ|u_+zehwt8A`hV=00PB%eTmNK?hUmFsf$iTbZW z8f8}&o=HauCO1-Dk8SEm_Rt|Nm-(m7%1IdP*jA-B@`_oIki2Q}C1$sl{Y!$N?$OhY zz`*nt7Y%tkXpOfZuu;>}EpQeP4JRu3dq*(`YIO|R;%h)&+DhK^5j|;qP*qvoo(Ik8?#lLEc?!~5flAM`c1zB>>0#y#d5v^B=5MQ>y?yK zsJ~+UMe}_Lm4vf8d0@ z2XXbH71w~3-&fE~n03gn=LJz}u56=Q#X~m%e+N!&zQ@fPd$b1CcTj#u@c9}nYtRGH zw43o!oKjE%o!`HwLuCk~GtPC?RD&;Xt)*Su1HJ>b1!@S>jG|{`oo=6gCbF*V8Q#s! zAf(a%cJLC5-Q`WNYtTyJjY&o4q)e18X~y}xjHyn#J%QIuyP z*;w9NHm+aAiOShFw#JGkkW)hM7HBdw%Y?$^fTPgWlmlkS_jq^6T8s6Zs()?AG&2fbT zH_Sb@&tXXYG1>)|7hn>1O`5E>^{7vDN(X{r#Oapp#nOBTDqpfcTNFZKz}7975c9<> z|6G;&4-&Rx=kwYY>bOH#ZLZHD5pcgMopMe6wni~MlheMGXUk5X4mf{-lVrqd$6!bpNj(IO z%Bd1Mpw0T5j6PV1gqiD`0X}2S^*y-oyQ1_s^bG1ius`kHW7yR9Pp#h$ql_^F5duh2 zZDR1BjA4HI%2N95kZ?jvHJWG#G6ThRQ=FB6QQzm>OF*i8ux_+gAVJ}qSY}JYa2@L9 zCTzM}VLWo%HZVCIYi1!3ZCC-+_#-Gm_;3@r7DmxQgXwJdnss=9Hz(WYHK#Tf@>}rX zpM?81HyvHuij>z}T2yqFIb7PMr$;ArWrU)<;(k9OsUk{Q6(DnTLKb*NS6-B7m#OL@ zT~sF$BCwR^)7%naig?Gejltl%zB8D;tc|UqhgrTQr5ppj>>;(u%N+m*M*x?u)Jr4? zAx9XO3ZwxC2#zj{Q}m(PcNLXpi~eD|&Wxwf2g6>fp48qF|82?nvOGDMV05|-^?6_1 z;72z0ezdv^=ful}lcmmiN(I&6Zl@!bnz#&TEoO?1yHVhF0OP2bhN6+^xj~qzU1&_E zUEbnk+I+x9^Vn4R46r|6h~V7g%MrFRn`pLe-V0Yl6rl%UCnXb@|px>m?+-q>n3!3g0 zpl!fCLQgYNnA-lA(6g#)-j+Ug!|6ITd9b$vSt0{e(XL^HgseNR!&0cbzf%eD5e#hF znJu*-AGod}pF~aq51zw&&x8lG!Qtv`B`Z}l_Am2ea98ZPa#?Jv+sZ777?}_vW%VW6C*ioEk=s4>4!PSO517E99*iAoeF|O=6xCOW9sFc0^Mq~~9I#2=28PR!Ly1K}p&E?Dxpnev?M$3!-?ViyrNcqVX zv^sz6bU_kqPbW@G_Dh|Eyq$kzj#D1y)QMh*c4%#Hkn@ZqkZW#GyWcyF|9-Z%eVU{LXjl1(W!C&`_f2(KWG@|r-SYf#|f}sDhIvt6$#mnOf1X< z%4(xCtgjgUjjG}FLwxdXbLm(#uJqVnXrG!YEwW(en>V%LUo-5RZ@0lh0+)wmEsq!l z30oa8+3x|n3MeCJEY!j)%8yWWi!wZQXWPV?n22N^*Ar?T41Ime+g=!-w;aCUu^r6T z(i0*hWgP0gjOvz5U$fRM_3s%ENL({d^xpMp>O^zFafS67{bK@sCa~h1jzJP{{NgW3 zEnR#urnT zp>dfFT>IVIDk6zkM%KXj>qdH*6QBq=9HD<~wKZ75Ho8D$hLjf7Xka}A@M4?t4r(bn z>f2<8L$=ly4Sfw~MI1-jul)9SjbR9<4PflmD!1wJ zUL{28_d&4RM2bK=JeQx)J4nq;a&9kvGe};Ww$XlfXzN9%kHs)_68#>J`2Dem0Kx;s z?bPe3aunvTHWSMrATjPD=mMjLWdETj4Yz$<%?aPtI?z(zc7*(6Q9WX>mygJ)Z1$(3ZFk7o`voYu+&$SI0j8fFIAMB} z`v|QaTwUqVvpJ!vl)u$GYtqZrPaxw#R_7hJu}aY;_o>C66UglMGY!uiiOIgu%RF~ddr!o%a(#u17%@RsoVWRv@1{#b@>o*^kA)TQrU`@uiOHRS)n!aT5tKk1 zU)Yoqy4_VX=g4F6qTk-zx_O}F-k+r_wB+1loYL&9d7Eoc6?dzK1*5`GDRii(H9#&7 za}#1I82|njhpGRA2u(S*iuLr`{-&Hgy#0`-73$=&TA*Dz>vhLIdU@4V$74>qnPPQu zBfUs_gceKVYAwNQy6fMDCyQ!(L!)>cSnJYt9nG7O$wXZX{5?wFHK*4Y1#(F*3rr)I zI4^Uqa$k!e6%X06xGy^5LV;xrT;3>S5HL9DZQnA ztJKEPLJ}CqKkNngx|98Lo?kHr{PbRQXdUj}j4+Gj5nLm3Eh5-%U?ixWLf$!a<76js zwNFup%X*O9!D0kugUysD{@QZE1FX2R;Z3wYPWXsi_lbSn;ZV6&I4x@A>qijyv~nZ~ zmFn4!`%oHp{6k<*B5~PY0Lb66(9N3~3;KgE$ECH*TUh)+LuJ9+r>f>)k^D7x==MgF zZD(vOP)lSsL%Xw_FQ`;`jJ#l|6;M)Hu**AE0bbnE z?D#}jKZjfxFy|RnrE=KhZt53k31l$e-^pclyc`E>d^UZO!h02Bwvk_zdbP|Z6QV4n zStcT>(63b1{g-#`8AN&Q4>rQaqD`x*0f6kkYd^^~H^(kkY)La^wl{UBEIaPIe;iO)eyd$@mDl0H^|sfNMYFxuoQ|SJUmA4=im|FLcw2!zdYH4E7em~Tht+J(JEZf(q-Rs zy7!yLShD@-bm3E0(?0wR$JEAV)2&(if;3d+WUIpte)E-|uL|^Fa<{|nOzCYMl|~21 zH+O4T2vI&R6`wJw$g>Woob&A78(iYii|i!J8hHW*w$P}m&ve`jpV6&n$NoK+Lvf*VggLkZ;!hHQ={ z=HfOij;ygL;v~>PmDz}gp`AHhK7W)LFPJ+Xp9{!>9}LM-!QNg5G|W%-!$U$+NL@Bd zR8nbZw=N0u6UW`$z7yXs7YBMkJN(d*^M&GpZ%SJ^h3j&UcyE`r>asjXt1omH0Rsy> z{alq)bTHN75Mrs>*1igoChbl&1v=h=rHEXFfgxy4!tlq@%N$6+Tt=<04}N@cOZ67> zrQcn|k`X=xK3^Y$b?@*iv^&U8w~9m%L$vFnMO0hx`aJK20OLSsdFg$iE;m&xr-P&u zilzXiHsZ5^y$16lUOI-?d#WCYW_?gN=lEbp0NbH)#yk1yJ^!4F{um>mVCEK~Kky`FKeffJ8+Ia3H-<=!>TDS3iOUFR{7b_T4$+x% zpXd^%NYmo_LRXBBqJ2pD_iZNVwzH4`@6#8A< zPk^(y`@Y|jaHIQ|j5pr5`nD3Ub+Z)@+se;VU%WVxq>O-lO8C8@qq?=VHZEkRn#P6v zSdV)JOw@3CY#+56=wrgvSVPnVGiicj7Aq0nlh8J!d%u0%W!asZjsdbZu?8c-wr~(z z63P^gTq+^qRR7Yq!W_u776RdGgeN%?CX(=c*Y9}WM=+f~pHCL!45{-sUT}#5baQE- z4*Z!BQ6~7F8llm7(^22`zADjzB`FuKBX{Zo&PM$`Ls;6}8z`z1WKzO^S7QQ$!mtxX zM#W3xaB?GGs&tATM`SsPivspBv>ZR=UW>9T3aOUMrMkqPPX!|3;38H}eyvc;(Ml&D zIWEmuIM)>aR0vsfwEuDu^B_sr470|4is!>#LVfYB`?pU z8?qQv3!{VJFR*|*PH&PSHCiEbs<_O|^3-~dKZB6H~j9xqB3HWjQkcjl~nlraDR((t9 z$YJb+{oXa@Ni?5x>01%nxOyc?+nKzx{(gO|DXD8gs+q~=)f6CCbM9&es^*ng z1i0&4u^(+{-Fm7=5u*qeC&$L2bmDRi-)h7MfgsSrLxYL$Zq~(^f$VOOQ(tOXop`?! zcVOvn8;G9xJWrTreAYpL5Of=Rp>Qm&jqVE5IT)nZgX??e`b@Q(Il?bhc=Z^^E;VB0 z9T#nf0grop83FP4*XQ?uaK>!YgJFXelSL z`CEueid)87$5-FHA@LXK2GaJe;bL+_acmMYd zpmKYl=RflSN3T#1G(ABn;rcmd;CC-(g{}dv(&2LkmaD@KgSe5`_HR+Z>+z(Pp$`CtT^fNZsWZp)J~>v?u*LJ|131pA7}spWK^2f%>3gTKgnkv1@BD zI}l3g+1r1I`=jwE&XOq^k<=vqbYX}L9E!OeEP6AS=OuZkJ&wvvwwy&Qg;ljXXiL)0 zzBKZL5=<^eH*PG2s{0C~E#;Z!@iGbwR}k>H6yH8rRCAfT4OK?tvt63@)b->a->ZVE ztD(u+D#eOkV%1Vp1XVPYAy08NukVf7ReSr@OoH2z(CY0t1HnsG3VeteL63C-lj{fR zhLXx{*bj4LTQS)$g+bTh>1w?bkl7xskCDuv3XODV0KdW{Qri1qAj_eK?7&Oq zA58Kp-UX~dC%S9JICUF@g@_#fEt*PG0-R{m4(q03yUin$5={zT;(nEpV#OOeM_7yl zQ41qp+BxU2D_*UfPH5K+Hi}{u>*x4$=<$eOvj2uD(~45h2LFXQ27;wJVv#qNwRUUL znsD3JAWdc6$~J_oYbhyxDl-SE{zjGs#z zyb?zBl?_hm8nLTk2V62@r!o+-RU_w)Io!^~#e{cQQ<{EiBI44D(pbso8GH%fCq3DU z0%YQ-uZQM19!gu37K`(@Ay_M=GjIjAwN4?aUl0^cuM$+#i;AZ7%2jm6Z{r4LT1(mL zQHS@{NXG92UYteUj`B?(Nj~K9H}zI093cIMqM-yvg-+%`62qU!`WKr)l}W6CFB7YIemCt;A&3{fH6k4 ztXFj)tA7#>AO2AXxp#qw3P&R0ul1$z8Saf(=E zhvDrF$_gc2Rj~fnYs`Ay2(pWJAfiq&rYQ3}10h=P*V_SvbQ^(Lf!ny|7O`p30skZ6 zJMzt_fo`YN7!au+0ebEQ8q^m-+?)~6-HF;Jj)A@I@gn@<`2OXN5&R!u8HHfJh*<|Cf`mtcnP?2FyU;5VY zQctcA*f!(E@+Q)be+nVdy#~TXJI^KxsVvSAr2zMzcWVj!u;Y+r)4%@AdFsfKL!C+v zBy;;vP6inDmD)+|=ImaW%SzqI!FuE&{1G?b?-IBLJtIak0&7tDQ*py7*au5r>vf+@ zv>^bB8Uk;hfAT5Y0B3d2phZLGwoO%OdM-oY{WK#a0C zD{g2=8SvPnal&<|5<6y1;#q5%4dB!N3A_JI(sc?gQ7HsbPG+!DZ9MJIZhx`UnR${M z$FphvMO!rImQ5G9CP$kKCTs!HvM^UeDJTPrb#h<&i3rXwn##7Pymm`cPtnb$KfpI6 z&U#K7&#a$Xlh9hkXoMdPmVwwp;-o|?1G2LB@4@@`GNA#>Or%Y1py~H~D`vLCLq_!` z%fW*k8TZJ!nX=TF16$vRz&dCFHQ$_SAXHsl4y@bHOj zgqRk%-JKUTztVi*{=XfhDQzNkhZ7j^1C86(GYf$K2!HMCKF&0)ldW1*Rf$i zR;KW@SiK;HMhT@eaqwW_)6asWWR3EZi6@{8A>p2xNTQ zCJktaV^Sb8cM-0Uvnm#4 zL269@t?QL8+6liWhem})J72wGIGG*jH>X=f)WZ%juw?~$+s$%1-0f5IA{xz(G~g;3 zWKH2P_!86?fqVx$U@@XtMKx*)m&bN#`@u6v_70dX<3C)bQ-ri4%Y?F9^Oiuf(qlSn z;`~Z~mG3q}$Y07XU~5T-<^RH88mPXJSnSF29YE%rSdic?P|Jg{`5BStA!(<)mPjPIY}<0^ZZJ<|SkC&gUp#pM7wP*o3xpyT`Gx+4|D zE1huoZ8Aio$EheOz|NNJywhbwzvC141+P!zV~-^2sGR;83C`d!0at66qJ?R9suB{j zbps1qK!wslB6wSlqvO0rURZi}S?l;}tRSVTX3^UE!dsfV`3p#y{gm8UB?XQa)Y!A5 z8dKP=e$=no$1~z$Qit0GDMcF1R^K*oRFtY*Gnx|P@Xoh9`3E4d>z5z)Re)5%$~f}b zq(tQ5bTd0snmDiTtCX8hD=5U`Q1%cUj_fHaynFlm+fZ)X)Fj}pB^%Y84XO*3T(r%u zQ)Hxx0XaIRwDDQ#F*qlQUiD6DtY+TapKQ5w+5H{-Cb1&jk6ui3N=aQ*4KtKs`o~rvNl=8{KAL2#I;6!RsP}TUD>Ph@3ZZt-_~W5XKIH0BdpQS zadzSPyawej|M`d#RAUeU zuj}3XLz!Uv)rsqxYh0`QfNoS9VW?u0e8upTvC7}p6{JXemZM=Tu1%~TT}V+74^vMs zK=Z}gO_+rh(==*z_$R;*8CQP&SQ~7(ht@XjRD62Hz?^2D@|Z>C#_!-Em~foF1kX)U zTfHAo0Pz6PU-mZ@gu@p85CaqNYr_7eo8ej?QT^fmm>W-OtrSMo>4)+sEUmAb`tJ_0 z>6*v1!l$&yr?)PqCd8ciHilro=Z33Uq2}45dnFCJAuyLozM4#n0Ku!H8o*{D#5pf0 zop(A)6jdc|-q<}STei^#t@}JxIVUNV*Po%NN2oh_(s>l(d-#~f+G#jzk+?d)I)E40}X%kcfNc@c1#bfmSs6l?-(G36hJ zSBC;vjm-oVDiRI|v<(zp7+2+GoQ9|3^QPV;FXo$=I13I>4w4w7`a^ z_kluo9*9$ZQ{=H(Rv|e~6Oafpn*=tf6)u05yQ6GVR`aDj{NqUX=5{M_NHFmu;()QR zgw**(WS>qKoBKsQV!Be;yZo*Ow$AszDo-iy({hrQ`5@@Hy#U%M@d&Jn-7c>PM=@ zZ7h-i#i|VOG<-76FBFX$Qa9XmS5O;E&xhT&wk3l4x8OAOD_Xq1(E8tednPxG_K)N4 zV0Fl-8SUd+F{@sIY;2{9tMt;X;}9Kn4g0c#CL$(1-&XOsWyuBj{}*pq#y`}JcAew8 zmE#^Op1#s|N0J%b^4ZU3bvuHWk7u!%YqOSqI^d+yRy`x@u)IY$XskbnCuc12B~QBL z?u;`r`EjqH+A~0Pft<|}v<(HI0!!4>zh%?p2YkT9ko2+NeK-<&3uY%eT;NB|wk>w> z=WL7=#1k--FW6?!ofI&M{F!L9lRTXzw<{hNH}ylKEd7aFGY$8Z#dz-zX&UKtgy*%} zqmQ?B>T{@?L}r#KF4nm^SO13YwlNS+M-Tk}$#9M&lN^LtAz}EyJ~Z`Q-WB<&kTLrK z?WUO1C8VD66x$lVi*+4h6{Ahq$f3Dv#?RX1EkBWBm>bF9a=^i_Al89!Cq>v2OGZSR zxBA-u+ix|OHl~lXas~U#=L|55gGg#+210D-PPn6yNBy zz^k7FcH!}?y6#~wk*8)_Uaq#0AYJ&-EtO?q`x*83+nWBvyR0gi zkL}3QPv&|OR(+#dmoZMY4$RanAs%WLj+Ye9R`yAuwNNxklQ89yyvxmQrj&?kS=MCI z;kBMmu(*D&NS)^G4-zCyKe=t-ySNLj@W+eMd?PecLdj5X3%hjHG$)K|7OBC3Fg)N` zL(VCP%R|qv8zeh=-tZNp#Y})n(ky07dS`d=KV+K^jyrxEZg-rrFh3VzLdy9}MqSW< zz&g9z#4T0ou0jjv2`R_`V#bg&$s6ZOOcM+QrI_{}^q9eyRNuY`BrQ*1Hs}~tfsbV~ zdSs0f$!W8;H#ON6&&fd^KrG^ZKo+D3(bq%Sq1)94yUWog%o>iYlsD@{+|%Wg0=qTj z@T=s6(^%ik1(+hc0|Ji~>yD^|Q&A&sGXkR`qM2P`wJ{elqZ27fW>sk4MdwG!ZA`>Z ztcFNEL{>CP>czX4Y-5x59kgnh940=YTn1yPQYkW|yG!x0!*eg|GusaWHPZv!_yfGM z$v~6TNyt1EcC?)5`_Acyp_6*Ehr|s1Ktcq&&Su~+w|FwQWn!xAc)o9oRuiTgRmUp_ z&k{=n-v`L+fRJaJ1I#3;4^DKL_qY-4>Odj9zqb};lSAkuR}j@urgWBm$MKGkyr~@9 zEP9i`!oEWNz@Ri)3`8&Dr0s#sPDTTkZ@8sBy z+;dmh`izbXB;93k&pj}4vZ(A4iBdrFOBa4Foydzr6ERg1Pjml~&*^_zsHfTKXwId? z2*E?^TG~6cj(;7jJtA)q;XJ6B4aDf4Xw!CgrP?4i9DiQXRPGZ8B{&6gNC&WS=qQgG z^>Zp#hQ-B9hR}bq*p&V-QgBcexG_E|U7FII+a6@+H?K#il;RGa8Xby>=vTSE`XL20 z0-~7lUM8@i%_=k8w!K?x$f<%}d8w7S2y?FLX1fmK!>0GyAw7=nr6Ai)prcIp)ICd$ zagnCK0cqls@6^SAP3hU~(8wEYce8zV>6ZEE7UezOeZn?%Dh`1C*T6seQCDL|#5s{s zmOjGuqp-kk8A_-gDR-B9+1q?6igU=j{E`1*mS##aPM@@R>op$a>f$gF(9$7eucX1^ zrX8Xc_I2mug8Ha=l8n$wQ72A8P5t5(Qi|T8%fYYdv+IJPCv#=1CK-hzv^NerTJTHa znn~sGfxEBRJ^=NxSp)XSmOxkg;_@g4h^U4e1%G)Z%_Tb-06z_jSnwG4GCtF`D3TgyWuyJFhBT?+0L-4>6 zKfg`JDiG0jD0x-o>nTP7hr4%&0`UFOkN!U)k7Uzn*nj423U9G{0?SMrgUc_hs!g0lgz;S zi&)kpep1cr+M$GAOX^^IQpcDFk---N@qa7*V06Wd;H~doRx3S|1X|Kd=Q}DG} z-<=c$s$+>)Gzx+;QC*Cluv3qgvV`oV+7PJb-*j^>HFU?8mxO+lsOQKqEEq*`la4kQ zdi!R~l4KQfihzuEt>w2NuE~J_ku&S8K;PI%(bdyWKy>TuCHybuFw4V>suJ97yu~a* zVvB*B?SSrlv3r=ay=9k|x1A3OQ3%svd((_Pzq^?=OVf?qA6`UoeZV(CBL;+Y1TD)T z5$|f^1^7O98(R9Tu{*g;foWbB|9x&k;C@Bm#Jv$qhkkLc5M5zdynspo$~?jQ07mO0 z84%D@m;F+AQy5m|ci5~q4i*n_a?js2STp`h+V1~sB1BD`X_vpcE_%0~8MRCR`P~P2 znHCN|UDntnCdVIgx1-UZhvRvFI-JTIA@(F|pc3-D&SHzDAQy~{i=gBZP`|OR=@l=^ zLf0xfI6G5pcwzx0ajU=?>?cK0*k@SDe(^V(@rM6F0I@2&NxOZ&nKyvYT-ZduO>LI) zT!-ox*VjzY&e9OLW&0yxmx_pkk`rae+tQ8OGP3*Z(+yx4U7rnB1e%sAvu#?_VW4dD zk_BI!1;{^O`nE=C+(_&Qw#p{$U6$_yBj}-8g2Z67>pJuc+%iL+ufgP!Ch>{6w|KK) zZ|>ZAb=(-?B(lt$JiK_m$u*`8wG2}=fpKR5{UANB0wfxPrc^D&Rm$^|8Jd+R)drVs z=0p3*3JA<9iia3H>s>U86-kD~Em+r+3|@$YsmY(04-~Gh*^-SCa=oa9M{;3Ci!>$TLoT&v*_*KUe_XB1FGB3|x- zP%yOnPcoDR?9J*n47L$gm=u-DK{TLYK1`ZI7^n)&Bc4SE_;D5#vXXVXu8f!DDzIQW zquYt$+8TIYHsFo^#pQ0PkXEG%`v6X@VsY;l0&!>i?*Vu%(bUoI881JB@T9)>;51OJ zdijAbJs*1fYy4#{+%$cYY?jgWzOtcpNW0}&GYzF2Z*r{z`JNKJ$D8oPfDrKS`p2K% zgxwn?1({lnI3a;19O}fu6#b?^%P@b!bW{tMu!V8qLk1UbdcDCaUbfgIUGZQqhtLzX){-JHKp0WlM*M2V!c*xQ zx($E$4kzUJ{(@!#rGO9`Vavahb!hMRqncPV8H@v-)m?FF z+X5q~A?;?vX9H*{l7~#W&CWt!auIv!%w6b-!B)|cVHvy$+cIfhH0yFWX)d^xafnA* z51zU__>j!r;&4J>0T+q~fJdt$DErv{AKD6$_(oJ@em|@AyMi(nON150oG~^gxH8sC$m$-?W^q8eW~opXDY(w z+@!GXbL}5)o{@Kp{Od0aw7yL5twNqy3yBSjDsGI}$MCwCF7w2l^e7O0v{SHxTs{Q} zGqT>9-7FVl*H5p0N+Jtes>V10@PEvxHW{hem3(|9gV;Azplw&mTk)#4P^w*NVYqyw z&lP1z49}Rqx{egsKRi`fDbOIqSjYQasnooBeDSHSDL{u}?4KgiNmt%Y5aLzt!Gz#n zd;y!mDlo zHGE$+e94uXi_7|D$FB^?uYJUUrt?OCL(G4Q1J)OLY>jmT1nK`>dZATX@KCCvXj{~G zfMh}$c&cCX{+;K0C()Z41{e(Bl9rE*CX}B0CG{5XdD1qXGp$m2Rz3l-$JS2yLq5(p zxp*7;wxH4OOQv}Roy_fX=~@~ejrrlhu4$RIlB2enR>K|}5!%}=z>Ln!4nWOJbS`;v zNUS!<0-$R;R9fn)8Co|e0rPFmounw;6)rlSTkh z+F8=p5zv|&-}gLKy?Y5ACk+iP2p%Q^q$dup_ef$N9kt>rnN9b{%|L|kqOT4(jzEI`msq~3|AM@0akDM^xUwc z2GrL#fckz|s_H8i_d;c=PAO$!W}G`5z$6-Etab>ykR)n$^S3Wpm8QGs_T2r&zMv@XnB~ba-ERv#bL`ylV+9;&X=-$}q2idwv+uXvc6VxYFI;tLk}P{i7%!OCwdt}W*O|Ghm!)UsniB(dDg zt-|cIX7+2H%H>AyWmLI}J8xK>Rui-5+K#_T9>tfke3BB23TLX|MtVG!?T~;-aIzdn zm`C);pR`y5z1&%bnWQpc0=au!AfnaMezx5Cp%EeZI5_!SXh!udrq4K-)82y0-ZYf# zv&HY(K0MR5qbWvqnKGe}K?5GtO^rUBNrUcRM^)gezAesOZ!&l5DE_C3+Tbo85gNxb z{Qi0lsl&Dj*Ly$a&&-vWNad2htm=g{s%M1eNvNQVSA|LcaUbYk{rjASN-@FVzu=qg z1YPc!2_qhfaGGup|3h%#eS13evc-(uO7&j ze;}SXb4AJgNW1<>6F{mpJ-V~FK84m~QaA8=ZeVC%jJZO$5m#Y3#)vc-k~@1xONo$0 z706MIfaprT(NMu>-5}GfTnkhQ;0GTmc#p3n_5okB3c0}hJmpF%_{c}dLR0n1%96V_UDd))nr-_T@d8VtFuh!re5P9Mf=j$bmBYGBcLO`PBVi&J$> zG}fZv#6|g&Vgc79Dla(rFBZm`nSM!LmK-6ZN_^7VA4Gl}rMLj6l2}@x=>XjaRLht15+I$D&#nj_G^+UiaD9t z9F5607N*sPi(r{<4u_)K)GB*$7_gM~JP3o_!%T=dTDmj_P&~=}uFEU&)2JFOh{%gD zfUFn<=>b+E=)4DnVbzZs@l;M)Pws7``nzwWj`|w%PfatlB`2lt_5A9coB1k7UZ8YP z`Nt)F1G5bu#oR+d=Yfq_sqj}qy-9kKDF@{=J1vot z7Fp%$hE=vhb9VW8tN0@Sd?npl%?Bi*xBd7!y03j<7L{SGEI*iZ zHg0GyJ(_-d{H}a?Jj6p0FC!Q{`fG1m-~Eu!a;&jPPrM&8y|uvUcjR(mvjl;1;dWIn z?ik51XAeNkTn}5P8nuD#$~7-*ii~a_8ku-bmciah17iC5_Ws;B+g8b$lYHz!oiiPA zd{i9Px*y@YwBxp&-zc?JW7i>O282||1n|`$N)gomSaMVQT`J)49?_wIFH<$#B_u?j z0<@1Ble%oj^%|s+(n;y0f$dq~M=C1eY7FvoR-%b*IRfa5F zdkC3m-AZaQ+*k^-nkCNZlEu-w{yZv0kHr`@wg4R~1-qDFdrZC%t2byj8qpyYRIcR( zrdlKq`g~BvokT#zjRz+N2+B4qkc#ZFK)v5FSSsp8ij(B#G=X#S*lDu1^wG=YzcBJ1 zxG@w8a=W~V^=DA%qXlG2Rq9?c%iIC>%HQTJIUiEH>&S5U7kTiR za?xJphaG0A!65>qHxRSUTke=Sha_&dWt4m1Homk|t{FWqhDxW+iX(%O z0Jl&6S94gu+&bLA-Y{Nz(H+`qj0qnV5F<2x=T2&ZZ>uh1@?gj0=nsoc+$w_8`hdR^ z1m;#Y%mkcT4fHOt7HyHR3@B4Pcu}6{HN!hIKcEuNNmK}c zea4Y+a$V=x&r-Muq*Vhsb;auYmSuj(xfJyjXCe51<29m_XPGWn;bK*S$y4gKt60C= z`iwl2-#Vnmz-MD>X|b;ud24^l%#j7LP%iUl#jqvxH=$<{$7PCH$x8b*(7@bQTKtcn zM!I^zPc?Hz5O{xzC^60gKPZrkmGQWF!ZI$PHsXZB=6op#_h`0;YL-l-xGt4d>)O`+ zoH=BmG7YAANdiH9K!>;9>ScnNeu71!l7}H8 zZS}53|K%fCs>!256X7ELC+1{%PY zU_CZtZ(Ab<${otW2d5S>?;)eehuM!Yb&7MZmL`sXqz=I>$5`liD0k^totm$L#AZ4? z;q%2W+w690y=KxjZIkl7f_*f0c1unwDSXnWk$vCkBkyS1l0+}_c6*|ZQc*Rk?{A%i z$7p4SDY)0Gkcj|MOJ^K{p9hI{3ER^Dqs*vFz#{H1h_ZI&qFgx$kPeQNJBVlvvrkC>4>rx^V$dUHOMUbQBu8|XXifNjPj{n1y@uB<0ZN7ndp((1FW`L|SB&{dA zlnVi`r>w{{w>oTOzHXCmZY zu(O(L!c(l09qmE8QZvP9m)z8;aRPyuU|K32tufk-9NWaw4?jVRq!*Dmd^>w|vuD|@ zVoa^cGP}N$^w-;_c=?Za=VnVpine47;7!EPyeztPp$Xhqn_YItJP{z%-Pn(CR!z-~1Ne|zsvBwFuPpxx zaz2Uq_>6Lbs$2w-D^FRc6`U#d7rQ)LW3+F&w+x-_OrFeg-U@^z3WnceIv13QJeK&`1GmTPzJadXf4I4o6aT`&sjfo_ zvq3kx4U+{!QJdo6SWD}rW~E5+_3nJPW!{M_^LhP_KOdZ9orVvaMEsgmDM!4+5hj{3 zjhGcXHAxfkKu-zvw4qqvFoe#cUF||H4Jm&Dj zc4WlWSn*wpk8E`&0T@Mq`-7km^?^D}y5_@U*g`Y^rmd50KRoN2)?}rBay>0U&oqS6 z^;(U)^fbjaVs=_6W%{?ekq!~(^2V1gA(KxARd~fv3*V$IZ;}YDJ5AIE_%%NW6o5G! zP+BEWk_0+dt;CMwpLOF59|s##Ax6wygL`T%3A?fe8py>@jKVvX#VL@B!2cBAsjjqE z0k5@g?y<*tf~&ahVL-7(_9KfmngZFUB5%GA3F-Qd;C$jFpHR(N1IHp#E2aKFVj`|@ zgij%2oC4TO(!=RTZ?N`u*5Ca8AuDDF%x7)eO5LzW^(a5?#3uX=ESyx1c^zs;R=t=e znn7HN#X;3-H&pY2zQOMat}aKbGeJWR#cGTfz0IM2aS>@a0i-`@RcyvZR_smFbS|2k zKKW_+)UGB2;4o^py)ZyAQ&m2^yVFDnXo=jABv6rq#xRn&gOY5JwvkKyS4`!e)x+*8 zaq4JHP)GHhpP(A}fV25CH*X}H%B)ytO~xPpx(0|@Qjh!$hlK)8Yp|kY^{QY!9gfH9hwiLB1S5+}-!S1*>7?h3!Y1b0Bz!-}nD9$N-Y2)*O($7^1 zXg|yO!E=wmzKUQh#X?NF$piZgTimnx*w>d8GEF+VIKi~!a;-sKT^zKBE7pqTgOt64 z6)Y zx<2$eQQS3I|5YxYwUT&uu_T!lSTKsyA))vEyrCvQN%(tv7@~x9i8AGxq z*FIqMwx+0KT}mV$>}mk#d+QqYY|1~$n*+vjedM5x;CDBDv{T2i>B}M_{B3keQ*3dB9L8w>2R?&*`uUBx~$fG=lMKzHW>DM1b(5}v{ zAj9&ci(#>Bo@LJ6wkE?KJNF9p7cA3dAV9=GLp>}H0W--=_DXDJGik)|W@t7wn-f4Zh7 zWF>DspPuO(^}R_zYkC^!WryJZ!bwgfWlLTWS0dxJm@DCMs-#e-#tVx|Z$$+9pNr3) zuvM0j_okx^sbTUlzMWD6)}u_f7d8}7mbFjz<-MV&K>|Gc@2EDTWeCkZu9+A*Ax!!J zPl=^pLOGGI=~JUyGjhgxiwF({G9R+kU1orK2}b*r`;^5NdtAbbFq#Ge*4cCe9||8U zdpkmiEjsm}7rQH+*5WF>9o@~e)1wR-cOL(8ZA|xdq(_Nq*D|S~xJ@@$$LY$fTNgWU z>L&DxyxYOco=k}|porhbqKt~*@Yt%B!P<<&-X%>ne{BBT{v8J5^^THc#Gy31FCK?4 zgJ&1)8IzF+bC~0&Bw|yqUU~Asq6Cg3`qyK4MW}}=YzCNkt?G-iR>BX~Z%w8cgV)?< zI}`+~WfmjD5fy?YR;&f4a>l86X;u{Jwt%M_LVKzT5Md&g)@cHnS3}QAL?gc=a9L-z zT($RdrGvXXdzw1F{j&E%Zws^m#COy8n*Z^gIczx=6giX)?%Ms`Rm1hWtfLszdL!#0 z*ORFUlRNtX>h7@TX3jf{TO3MgO$LO+nmg?%9pV-C7@hl)bxlM6SX!YJdr7JD%A))D z83*q(3dt7oi)w^t_+n*#YE48Sq=`>05j{j>n7H(3iVm(m}9t3jc~yG z%XCN`H(twwJ~m?R&Q3Q!u0|fJR0c-?dq9N0wV<$T#Q+mvD0yPXgCc3-=oJH&TbC&a zSvZ>CzbFlv5a2OS9iDEClfnM<$fiBQ54V8N@lW*hHr0f6jgiBd_(azOxr7Sd=ut}? z0JOvPfWgk-)J#e^;msO#phlBy`OSWfJG+|pGHFA~YW`jB+x}LvR`ph{tv|=bba||wuAQ5V$IU_i3gGupsb|%LSG?eoWONY%ASQ@-c zYsq>~)kY>#Qx2Zxa5jnU6_U(SxI<2O^K9tpw$9BBVr*+64Ev$u)?NB? z1i$V}6hU5bS%&X(Fj6soZ9&;6J~ z^}yRrje9yVE1Fe0UzXzDsPo)dFrc^}qsUxdBPLhMhiP{zAbHiCiZ&paOxxdXT_qas zWiM6p1piR7&TNEz)I%luNW<;|8XE+rMy@-#MbGhHR$$V8TQB%onrke^2TA=MSgY-x z7ODTU)uKgaJHvn6N90eLTtYqfdu|2@2^CF%4TU&JlyKAUdE;Pt?nZQuY#>&dPv~h9 zgOdkNrPhAWjO80pQ2zz#%kcx)4?WCM@W@!&T{(47EXm7hIF8#En&g`8<6DU{15gOL z@KNSVeC~SOoN+igWTGUmIrSFlCu>0x0s#9SX+BB*H2TdYh-+gb`3`}{EJ0l6a4O(H zGWomBjM9s|`)E D;tTRu+orNXHsfSSvW=TO?VZVqj3)qOK+4D5;r!?l=e!@|9=k zYMC6N`mSF$H`$Rb>YcZ^byv^4J-1lr%$|Agj#n@XKo6JzJplC)=ZYYjJlh$N*ljVv z_@_+JzUBVzGZrPuNvahNKyuZM~+r-D7~of zDNF_CGvo-)ZAa>>3%kNw=Q?qWmzAK3#AZ9+PEgCEIDJ1solgw2MJOT$LM=<^;2VQ3 zrwUj?kvKc~t6-az{f?sbtSVQZW@za6AW42Hea|!}DJ=JGXmL&?c%{y@B4mt?Fr1x( zlGlT*5>=S&5rP@_*kEy|Bg%p>B+Zd(CdKytO(xs^@FqMKF)V6+{sPd-ee!`qS}}}0 z0D_J~jHOFpKU?Ju=-_$`5U2M_^X+?N$pWN9etiREs)?|Jfops9j1Kz}Wl}0nCC*u~ zFoFBoBpy5Rh&7DM*r_LBn}6$w$3o2j16)P}Bvn5fN0@m zmQkk={plAtXx4~B1Sat`ohv=RFVtLF8vgFpqN~A3dsF9W8f*8Li&A zByL!4%ZcNDO<)f4~wb3$53E7Ysyr0q&>Rb7D2cl|Jj@m}v3h?4lL>|YLx1BA(j5|RFRxt=k9dwIswaI{NEFgXW+$5aL z2`vGEJ0ZBGT2#aF`-zYX zRloy;oZ3pjJ!LX=$@_94S*`X6{up1}E`OQNLL*W+1=B=a$ddfYPMiK*F#=hI9#p*x*jR|KNOht975J!;a~xw76n@-aYPqo8x50nS zGkHG?@GAX*h;ES5XH91Ycu1Br%*WtKjAg8vL;70RzJ2GN8KquseT{`md@TUU?6ZLY z*n#7UT0mT@$VFbVu)h3Og@i`pGYoTJ@q$sh>z&tI=RREpCu`1=O8VSD%Wsq-c;KPr@=q<71GS9 z3wbkLk4#y|Jm#!7(uOYQpL>NZ9GE$MWHe79BjuT@RAXZer)(d#uc}J4fevREX4sWjch!0`tXxSq%sP=EY~e;?F^OiGH>w9&Y5BJ?E9`s-kFI zmW(g-z4mHs;<8qD+;*T~<)MNJYjou;EqC$phd2x-SnnHY`K=MH*!y zbzHu;SfAtU$25PMoS|zip*6^y%&3e);?fT7to}vR6j|W_9|u(5QsHVdSgFwuLsZu8n%G5>E| z=q*?#{*V->dWga>Y5+yAuH(~GHgQtz`R03D6|D@`tyK{)4RZp(!T43>C8r2TBa%mI zaYNHjld~4m62b*LFw{(HAA&}Kb6u$?70g+Ck|Gv(X;&Bgq3e)x1AQQ_=)KE)pd`QH z>uXzAOxj?@D|yjMo)yV-vHOwpFg}a}aE}V2dtdD<^2-UaQIUKhSjB=kD%bbY`@C9poR4Q z_LSafX>DET_Q`#iy96Y%1T`n$}EJRj)B_53Y{7S`t*P zDkBRN39p%zBEL3@J5e?p(`q?*3eM{IQ<}gB$25XFL#lTVZWwR3ju?TBR0$x0>&SwU z$zd@oa%0*8F!KY|o4#K`?72=ECrsB?4zV2{RV%wQm&T}nNnXJkk>x2{J)K3N%&z)^ zHHYbPUgaQlC4YQX3lp4{3jWgm6AfuDo*d=K(32CA(hJ3;l|dc$kUw=9ZH~qD`U=5; z9ejSAeQ0f>3`w!w*Kp8uI#=H!!@>aZ@qgXh+t}GwQv4GP+1RMOINa7&16(0qN-z^= zGtFJ6x%f}h34_Iu6^QWF>tDRU=l;k}j^i0LthtZC^RdJEKX#%{z!Je zNRjDY7<1f^*_1mSEsxp?EzC9GG%ie`fqgg9#tQ-B|NxQ_6~k~%p+z$9@d+CpqO z!?li^5LSq7?MXHzPvg1I%K9&afKGqT2J$rnM%?e8wNjv+1m|zfJxszWpaR#L0To0B=4yNQs8oAK zR&DHIWVR1tfMxDZY=^%}Kn5K{5weohHrU527UKrKCM0|@mS<=DpdhB$eD}0r`&AGK1FK$e%M|6J1{@PFX!h#tjy|B>~6KQ z)q1^(GbWDoa7Aa=;WuOtR&hKZ8R9Tfg~QKkIfm} zZ1S{6!?A#!lD{nhZu$J8`Ee)(JEJx~{Ye&eFoL=*^fggEw-b?ELZo zslZC6^xQAEaql2i&HrQkZr%ynuZ#5SW0jjz!yXzp7|M9^ck3eX@A&Bgyr`lr{`EzJ zLU#$$Vd5z&5P-U${VsKifS3d&7%@pQXU!g`(4C3Q_so8}`+(^G0m)dO3@`alulYea ziWG1r#Qsx>ukNQ{8gSU_(w&GW{785%flMrgEN0Yu06Ci`M*M0F&@TVPlV3?#s*TbeV2`2rr?9+3 z_g3YZX1WK5rKz)YM4bO|+sC-CKy5&^g9Kw#*pny+r>X8s!n7v=HY`b==G^&LU5oJ$ z=UNUtg`TxLa0kxK9xZ8zO}@oUxdMRIe`nmH;Q5JwY^F;DvlubIi`-ESF;>uTf%2OP zwjrcKooyeJcT%*&2rU{VyfC2Y?HMoqt{>0GC082FtESKa+Cc&T~dUASdoS zyH6UJ`60JWy#0VYt;y6!;j^?0eeXDZw;z)PGN8U2ON<=SH2mfKfp^Hntg?TWq5O3cbnMtxrnVJn1Z_G7qH|X0tFAvql-oPCegz2 z=V_{Om{HS_#ssdi36q!;p3zu4zt#yJa@G(FS?c$uwHwK3qZ%vN)1fd72>^8bSsrxJ zRx3UfChj-0ns&iWAp#V&Tc3bO$T&AhJCXuU3SIkKTQFFrW5XAi?1{U~@F8I|%xP^b zkETQY$?dSmU$XvV{lvxVs+$rM^D%9b0)*heDGKp2pQyKpykiG!IIB^=;pw(|f(a+J zfdR7AUh!f*t@mTA1N#?=sVFrgv8^a2KGb491TtCl0-s;^^^%D+drkTUFtspP7oS=SK|QeMdx?u)@3lbo9;^R5cPuVMV%QsKTJEJ!iYf~w z68s1FHk*XG+*l6WMg>!}Kfu=~!N9AtpecEW-GXpg^q6_T9*T!_ptG=$qGv?RrkMO4 z_%3j`Rlv~TBW2co-%_$jj_u-qHz1dTPdIOGJ@(bS)ky^Pr4my`REYmm#7?2wI56;k zo_8Z?g=H|^qAj{`=xj;C{QPi7+I# zh^R6C;s8gg#>T)*XI>$HEml1iCL6K=-Vi^X>fn)~Vk!IVf=vAU<8o{?abnB3h7iOisAG9sWXXBaTsTKWz9cTW%QVz%;dWY z5mx**vC2i*;7lG?z!eb%g5WIz#&-vI9&gK~OJ<-{_OD)4^lc_Kh6q}nGjooE=nkav zc@mEd2SHgpyrXS`+QFQj z+(Sr1P|kO;10CHmoQDl7w{v}w+@i{lm~249m)Y^TKGQq-uOq$1G6dMJ+hMARE##GF z5`67fBd|TX2upDFcvTlLO4tdaS5&liMdSbJF_i3WVVcKzZrU=H+)b01?A7YFdCmkI z2=^U~nBrnLZ`kxs1P~413@R%&4;xk9z3AZll3?QHYyyyfT0@bWYXy7_ewwv9`jtOi zO*si;Yeqb7t7 zu=D|W0YMyU*7J5Gb*N<$6ZGZeABPfWO3~e?6Ly?{M68x%Kr~)3l>wmTpLdg$*#J=a z@Hl|HwqDBIB2|MI%MUuxnMdms_A@)vP^pjNB}z) z`0t7e2D@>IWy1~)mjz|rVv*T-ehi)i=xJNi0RL4m0~uapjitFLb+aD}Z_RXRdO^W2 z1Iehzn%k$_I7KTRc}bzQrap#gAALdf(uv;b1iSZC%+2@-p} zr_z>#mRwKdoYii_%0p$E#&xKxI&b8izXcNQn=4LwP_bKVh9**=hkCVFwREf>rlnfv z)e%PIf)5u#SzQ7JKIGn+uM&5J1K>`*brfE*D6X9$!sM6OZ7a?Gb@))2pT;`nYhhp7 z4m4Ho;$7jKUD?3?cnJ0k!~2{xxizYGqRyHZ+&yB6rwVB=(ruCRbo~zN38eLIGxTgq zdwSU6_t#z5+{am+@>I1p`M0gWVGF&-^Z012^tE{I%D0P04)th@poGd*-V^yiZP<|Z z!+fo*JP@fc($8dRm7YH*`@5n(#vSU#u-6AlKsL@u16hAp+?{rJJ0q;(qF$Yjwy^_A z*CfmBwDQW3d*!ip+pY9!rDzm{YT{&l518UEO0_aPE`^-t@S%J0RV~m9u=CE6GK{VO z-^d(>H0xg)7b3SX8qS!MWeDt3zYxNIxVoY3s1aomQdFUT_#R-jqhBl=p%vc!@a1k& z3-x4|_RZngymRb~!vXgWF0Kuf2+Q02?1(iQJSkz*K!H9SMz~#y?Tw%Xc^X+P3m#vH zZA1Hi7bK&|cqpXac^VX%mw}~)-j{;mA19#8n9;qaP&RK~w1BuEX^5eS;;pi=)9~9w zb;bLK_(p{>AWm)g-s%{LJ&rXre=Q-{z~m@TItB3+3GUqxZ&v)o`5-u4^B4fxMa$OI zLCvR7T7kIujS#P&X&7fJ>=I*oXz5ClB4|U1W|%b5Vv8!m9IJ?NI|NkWN*ZIY(PR=j zK&n9(>)l}3M@&&se(r~hH=l-q8X}Lm{5q}NVh%Yz5u_Dch?d4a%SCYw_!uAdZm)&n z{aOWoRMyki-!s$u8D(VdR#i?`5+B&H=p__o(mxfBpW70nZ8>v`E`5ck2>X&q%(DECS2;7-|PbF3MT!> zTyoL&eXO(ECT6`PBQ65mSzc1`4geyY@Z6ExJI*NnpH)^I)>p?jLQf2qWzj_uqB?Y+ z+B#aaIJm#Tc@n=u>f(4>UV6{%K!=xGpOT9vF4HS!w$A|@;ntx)M0OGbB{tD4Y|QJZ zc|vLDOU67)1h*z7ABT80)gPrA?offjunc`9R7yZ<(5Sv)}E{Kbq2B0ly&K?SyF@naVnbUfl8PEmPE^# z$A{i-q7{g*ryzjoJ7hl-5M z4ZAE`yu1$L<@KJcz8*ZJ6$KwfaZ|KMigg#A+hV;dNMLPj zP~cD@SkvoIX4?$2AdtCg=_R~$l-(&MG>7&gAh^TeACM&Bm}*SXv%Ye^v{8eNmPk&& zWBC7ThnJPvRg>K>jw!;@T6I~=lxE;9za7;9$0Y_Kj-gULN!nIhKa-69Ou5~({Br|- zM{%^{!kI~suq7sjo-yLwzhwmSGBGhp=QJ;Iud+x?$_e1X5g^9y#C+i7AjE}{BMdDz zj1b-y@xRj3^IdUPz+yKqCVAstLTAp3Kjcyk^Z94EOUBnYxo@dL^biGft{Dx9m4UpX}TAsBU|$kZVcHYx?~ z6YaIRP`0x}Es}9qS`XkhQ>MdhDP@;8lo+sB+TaV_qWNV35FzhG{W1rO5MM}9;*YiD zF8ddPAgM#HjHuPR^AtlT^YN0Q+`?Fom7+0fK^Wpv&%Jy3b7hp@S)Rm%Yphpc4Dz1j zUFq(j{D`Fo3=+TKKai<`vV!j2nS@H{^R~jWClgO={dAh& z#JM(`*6aFThk0Ekd}QL;Y`43Ls{EXE4R-#>xo5Z!-SqFVVfSA8befE1i9)}MPsY^P z%(qeXPzT3P39*GFrRQo0v?2%>Fs?rYyjHq{m?%mtKu%JVtCq`bErPN6Y&r>sHscGEF(~R#r9-z@z0a1~{#grFXBWY7 zQ=i=d9{`O5QWOGrztbkz?h;b(tXu4BWuPt>4r(sZdj^p87Y8WzLN3UHI42JOR@$u# zK5{b=l(Od(M6W1%%)SSvLl5wQpT8gBfU8`lkB0}C4=cO4JP*~hk`4NJh3rlgGu70< zWI;WeQz#2ZSOp`&BS9PmPcTTwrBITU|1l%tr8Kki5q+CQL}7n}v}}C9%SztS6Gh9L z5@)e1dP_+CZ(C8nd>;(#PYu}F;hgR2iz>KT&C!bx}*mo%Zk*Fp0F-)6`9N!tAEHd&YknLuI2PztP8OaGIpu^ zo(H?U=1&w`B)c;EQ9_20G{Y>yCd%#gwZ{ABI5eG4JNTMW;!5A8u=4iA=Jp^gviz)e zt4!kyc$PSZE+z^2hL=`?aHq#6kg2^yAC%E{jIC0d`IYL&)1ryDymN2;yV^HYP3v^j zJq)~L`;gZJHT_AgwoySoK?J92*>EfnT5O-N^W8*~x94ARoCGUSO3<7`4-3zBxdLj-tGU08Tr6j73v+gEPm>nWTWka@d_>9 zKFC_)$zhu8^NI~E2aI?ZtO8&-BNl9>b=mM|>k4PIfjXl$^aN}Vcsz0X9W5-|=f8FQn4f?9OZH?VoF z-v4>5KKpk9LH}xwhoEb%gxT}m!c7tS~}FGd0OS9Y8h44r9tPWSOlAY4Tg{A_x; z#%VdTxeL2$29$Y5N4EN~xQY@RU-wGHE{#uMk7JwsM6kWOE1$TNiy$hk$$%VJ15hr- zFp;`4l%|tr+upxL=Ru3|nia$@PCXdR-DgD+%_KGZ7;yM{dmvNEYINz~7vYs)9~8pC zt-VVru2|nP}R+ygF&Ws|6SW&3E6}OPGPtrP zR9cA`rWT13``)Qy<$QN@zZP-?Esr@NKVk3uX<{hX0<+XmF)}6ly?pn7+TQ z52Xv4mk!TiW`9R_3lLiD4=s8|U=cVy6#R!<*AB zcU59pJII_L13Z9eq$#=Kl4K*1XjYZ3RET4wv2uPnPR=K70u0uY9>ABB4UdFH=lC`UyHFytG=rOj!>KC)S8;tz+v0`&VV z-F8H9L(ri%M$>QuB1sK)mr23}muU-7Hf-*=eEL9=tAOf@S7zwQ_uAET;^;g@-u?uY zaPw9W_%_J78DWikUBsw6rv0x-dtdI`0&V$m6vb|S!9*YB)wpl0`upwR+O%alC z%+VBr9y#&cF5c-J{dbuuO@{&&wWh+4X_yfPF%SF}Yguxw7mB-aKZ<**_F2ynx;O5s)o9rtNU6{1~GUnCGvCD=T z&`Kwnh?L_w>w(GQu~jorM(azG`SUgCoALNQq>3VJhwiFdVGSQW+Fh9O9Jj-M#B9P; zJm(v~lYc=$2y_{-W<_A@>hryC4st4U1K~!CS`A~B$}gT!R6Mahx|#Gh-8-Lhn+=BJ zOWX_QAlZw$;!hN_;A4GgfHvK3qQkQDvpVbbBn)eq8^TNEMYh63AY1Ti{QP!Osbmaa z4IAqz;^VW2+xk5W)fu;zfRHmdxn7%)?}l$5lvX;N2KMp1W-K+w%RXS)-(O|)hG(Dvx>n_6kAhMhg)lUk^(66+giXOvQgQg-# zueQ!D`ro6#-iKk}XNuIiJ|PBS%>eLMo*c~t=KhQaN}{@&`^ZR&J%ve8dvO3}Ny^GZ zDi0__NJg+V@F~d4gyxzq+V%8Yt`7U1Y5FD1_7Ftsj%%?E{w@^eR9%$ zFZixj)~h0cYIw*XSgf}3x|!6z>LJYhLSmsnFwNFL>ww;ZVE443J^5}k{O2Qm+GlsZ z?Wurw3i(xONj<0Ipp}gg`NzNL>&b;QX+2nx?Oo74n?Pw(bV&3cr(}<^(Kqe=!<|#E zp0Lq~v|Mb76s~5OxO1Lrj6AIu_o#F)tNW~HzQ~3vTIazxAt8}G!TqnmB(m0d=Y%*Q z=shk!dJTmfW8+bpH^7pPVLzK3ijLI1Bkeq4NgdH!&N&D*f3M7h4UXEtxb))Xfhqb1 z0koy1t3q$eN~uxWjnW`-H_{$}HdOlHkE=a~spzTgDq9bMy_CiespVp{cAlW1v>SJh zeNhM8^nuovE5PmQQ&jz@P`|zlOW-u6o9d`1o;I*?c;}x75hT( zkX7agv3!LKGY&&1LpflPEi&vsxSzh|(dJTd5+7*~KWk2!s5L4CzlXl7-O@U%k~7*g zyT)>}^fvF(JVO^J$eDbj;W@PUDJG8~!X5J8+89vddSXJqJBbu6TC!0NE#Ce8|0|eA zuhiy!Nd}}CWeYXi(sCK2ZKB1O{`zx}{4X+`ms$07hjtjbgGK1Cu!bF?zZT;GQ+0mUuS|LI}ym; z--9qKeLp6DZ!wR7c#duCTyIFh6KRSyupY^i3dpe+wQUvX%>eDw!8I#OLH`R88A#t@ zU|kh=sDF2QM)RWUA6yL4S3(py)E67}t^vU*Zc&m?U^ElaTn0w^HDLDKBBr|_V!lov zF(6I`O);(~poB-=8Q*+p0=+UJGGV?P_JYmy$02B^xtYA@_Sgxa5uu2XFpK9WRXWF7 z^=+!*{xu*`pfy46lN3J^3XpdQfHpYW%U3a~>BqMM`u=%w;uAT6L+of7>a;>&rWbDl-k>C6&}Zu1F1> zbT`%XY;i$Xvne_*qUN}cyKzy{_Ya!kIa{9)0I*v-zfGw76$R6ut>Qn1n$r)%Aw@k{ zUeD>HZVt%{qDhP!g*nu+1#-_=)0)@l)A09tb$gyYx3Zxc_Q-P1`aFh311R#*0Q94T z;{>AH!P1_tx$X>&CQEmdr5Cag`Ev}B(c=JZsdQ!=vWTT17mPv#=aZKo-Hta?W~pgx z^0V}jjE=Z5F=KhCkXEc2m?ULF9FYgLOU%81wO*)+WA&n#tG0+GjmjImo?Vh2IazWS z#TmGX^vHM?1|>>QYRKKs?pK(Mo+S!%D`Sns%jd?xbz2qeRYV-R8Kq2!^r-<1EkmY$ z9UF$m{C{yHQQc{RyoZt!yWmCx5 z+t}`Tn1>=CDxr7}JFgs{9~YoCMO9mYITTu@*2s!v1P)<%`Efv!w_j~b!Yp*GG z6~yYXBN)3Eb;E_ze)(xnYf5@W=kYa`G2^k$wRo#qF9M{*#PZP&w;v;KP0uzapH5YJ zSC%g)-OZW0{bUze;Wx3rqWNT|U*<`oU}-P-qI7KkV6f_<&ri9I*K^1GsQbVlc7pwu)Gub88BR)~GkVe>kfgaH4ZMMI z41cP-A0D4K=%r0Z<2OJH zkk8{Wvq3Twt3g(1yQFDV`k&L<&EuaLZWYJ*Unwl@khZ6Q?p}55t_X5_`i!_=tRjqp$dFXT1pH7*iPJ-! zeqGe(N$y@40PiW7?ODKUy`ZRJ7S^dPiH$`RmLAM)pGM4!S)J&N6h!? zTA$9iA4i`3I6HkqBMUx%CJs0O#@Lffz|wM-SW>@@56wUcz07g6I8ruKobq_XES?P{ z$SlFVbf?Va{Belv0P4Dpktv(SZ>>QerT4VN5sakw_86Dr`boFm$6dLu8eTp)D6II{ zqFHiRP0t&WoqJy>AoC7-{ld?$oKBjIhB3C|=K#uF9PmC;gigp5m%eV|4Y$6eR_K8E z=)5yV%OCLwfa$4?B&-QvqHLPylKNDMowvWkd%E6xwL;2`N)ow+id7(Qirf`Mgjm3| zH^~pmD+Ofv;{GH%2^oThwo`t-@BNm<4?$l^d@p=0LmxL;R1y^Aij>$ens-ffrNCdp zK#N<~@liwT#<;LD|8Si(QO#X$^E90nSN%qE+WBmh%A=2Cmi^i+k10r=CLwy6* zhnqXo7dM_*99Vc`>}C`)=)c>y`YQiz*|kNIh=SD`&mXCfrCE>0JcW+j2RGfo>_}9> z8;6j`#&xl=(UwTV{dcbxxY>l^hfs|gcWyyiy(G5`4cr0iH@NQ0Ohw1yV!fPXf|u+9 z5xO%I;0?tAmG&(WH90Kjzftl#JAHa4vlrS$@tFhPGd~0ax}NPZ3?TRu*jqidtVZRbq#A{IEKfPYla>K2a(c(_ovaC12;k_9;2>Wy%Q7 z_WzB+D)lOK?q*QqzyOr*Qz8tDdW2wqRVv}C0-5{}7fLLi%9{W1$RPK8ZZm|MDi+&1 zal0KXsPod(LMdW18P@Z(Rr@jN;C*!x*>dLkE2v#Y2T*2fi=GrgCNRYUz{0`0LJkha zm>zBZFNka$vZX!Nmecmalx{{{x}K9hF{9W!Jo$K@yPdu=AC9x0()>S1ifUNw?1a*s zzwlSZ`zu_B)k9HkHQ6~7=bEL9@)Mu&jE4FxQ?O4}YBmfT=X*?fnv%F=FvM|C{OpL4 z;lWz;uXL(ZeCun(r{!b(#z(iB$0qFTDz%UfWf|T=xHQr3<@H8SX#MTjCjFN@3aH^< z_Qk_VCZYw`+ejalW;xpc7-7k)d0d-yEB!-`qgIuR|7_-)cXkq#rM5VMe)tmNR)#%c z$m$S3!n~O^dhmkJDhr=UUtN^~8IlD95JqzetWkU+ZNIAF$yl>UaO)eFwvx1P=JdUX zcghkyskz4SW(A_bu{UdF?ki6+Khkq5+M~|EcKW#ktoyRzlp@gA$#9SObd-{S7<-Vg zHyHPS3ysvk-GU#xjO9K6@T*UK)m}(TxTLyS8O*MJGN~!e697i;Wv|t(GXF|x6e(tw zcOmdPBd6EgBzKu!dPCB;H!EF=@Dd`A01`#jEH|`s7{GJ}nf*1pPcmiZB)*;l=(i2n z3mv8C3+YCXmS2C8dx0Yt8f|z^NZgYS%lJ{!DR2{acNpBMkDKjt&JASKp=9A(%RA10 zmMkRW{w>WQ*$S`ykjgflkEbb+?G!az_7vQ@!^SxQDQXZs6Z?i8SKF&$x}%dTk3Lyd z%700IfsQ>5(!~8JX72Q?6@sWOKg*38r}RmsJJF9bUCj0rcY)Hmzcc3=pFq@n*71n@ zz-@3xuJ;gZAZ&j-VAUldZRPUij`ji73S4LDkFN4OMHTNu>1#o=vu)m*W1 zAzuj+DH}blRWaBqbQ>DspQwu=;I3dku!*A!Od+i+uL>O!XRO9*cO7*voy9m8Ngd+y z%LSSZauzkfu^CrT{ur%>NQf74+Z_u-EIcRTFKyQufY6wb>~I=Nlm0v#7%-M%UH`up zqx_C?oz1N22iW9bB(lpy7&jTMM0~sJeVmJ3<%Xx8tg^+ z;-Wf;Vu3U!Zr~E5&2m33Kn@VJr7NJ1uhD*Fo zqF%}#esEq2$E#T67Gw(yfp5zG2|9mWjvX;qk0|Qn}1Ov%ls>%%m(FBaFJ&Dmi}Jj zlmhXodC=D$_Jz##XV`D-`F2$fju`(I@1=--GT1yOl&rf4Qycwg#~tVk^C%*b`Q1u9 z$R>`9%EVfj+kQ&s3dj_~-fYm_#0-XO59%6G>g&YDtdbjpPPDtmIrLO8E%PubLlyQ# zrWFL0)+Ua6J|(~BGMgmQY6)&K#7A$|dzYcT&2N*x=B3%XFwE|d+$?mxrapMG$CTvXG4$!GN&d>wv8wVB zqDXhxDI+s-!79+5j^l8GIRa~(wu=0qw+h7t#z5`G`jmF}iNIhr&4A~x$|s*M0y zywd3cZ1{rRlEBO;`A~r~prDq?=pS1!H`|TGw_nS+Y_b4nW zSX21Tuw!<)mK{9ibgp|Go{-7jxZwh<2@0Vjib zjfq~K6Mdp(f3z!i*UmK~{Kw8dy!GuuaMq+yVJJJWm1Gypbt+;6oI*2N<-6%7TP5M)KYjjE;b~G(2m$cuPQ|VHR1<-4v3T33*U`5h1Qz#u zFNAkqkcSxUY6L$>fe=uvXA@wO_;W4*ubRdGglOnCw#Bn-KICO;78y!MQl-7x)c`7-HD`^}THm)Y<6xW(0`aZpX=~Qo zoTZW!cU6r%Y#bK7#>3ywNGNy%{-ms#-Ra8;DPv#rSRDjsc+M(pE18P&WNR5uEud=n zpCIZ`C3B43U%rZlGwBuC%iaHTN}bOE?z4!NkIksmMHa=a?>lUs`z|^;j-x0f&xeTS zeouipSm-l{Bup6DUa;I@2dAM4B!ox3IQFbiPJ;!xPQ6FQ%g6`Hw)n zHY*&T`|QWaMCi2xM53Fk30C47DqG?X)luonHC`PGGgW--0{;@%?d~KaRu5|{zmC79 zZiRYejlwa?A@b;VDXZ;}AYYUG$#RT{fB{zou7~wNXnM};CF5(NXzRGPos`eP#CNL$ zF}f^?wID|-afP5(XpX_7+V44CS;=3_1`Vc8(`?W02VFtuLB*x023i=lN>`U9d3r3B z@81az8M?0>8PbcJJbar9wBw7P0Kbxi&r7q&izEK>2^*U1J$Pp$6WzLeMOF*1;`0z6 zNF|VkmRlS0=f=;09KJ3zT4*KDS09dF4>eU>@oueA@IPK;f`X4u*dOiO@0S9 z2Y9&K!i74RC3I#9`F(2>k%?>g!_1R_MP+iKC(QX1QME)cRCR-or6(!XqREh4tG)N3 zZpQKEKDW@q;M@$%=P^Pl@qko!+a5~!lqWI-gNvx-3_zUmnXr5lhXv*f$z`jma$1v4 z^b^Md!-;!?r-~R|Tee>N)3yeF?-5vx7Cm2;+Bby?X98T4Rid0e6kTI4cpaWZh`ka+2A?U*Qj0=?ca)|4aqI zNBG-YY^THwoGaxV^Z(?c+JUj|7Ol59obZ9XkF*Yzb3NK7$ zZfA68G9WQAG%z*_FHB`_XLM*YATSCqOl59obZ8(kGBPtZARr(hAPO%=X>4?5av(28 zY+-a|L}g=dWMv9IJ_>Vma%Ev{3V7PBcU4qe>y~bCclQEi;b9XllGe<=xaVL9Az`K$Qk%~&f6=((qIXOz2fr0!09iSyZ5@-QnX9uwH@$n&2 z0VJH9y<9=oHedj)mbwld0|VnfHGjDP%)S28@_y0{WbFu`et+-)+B-Qr03E^a5dZ6g z8bBZbYy$*Xf$V_*2^Cd6Ib|6Dt&Fl3KnCatbTzXFsJffmgDe1wAPbU&m z|AzpuaB{Q+{Z*P9^E;N98^8?U<_xp|y&nU5S^%B@GBE<2fvyf9H@Ej^0LTqs?P}(X zokNf)!GcBGw(ZxpZQHhO+qP}nw(aiMwr%6TSyG^d?E>vqUM`vLFfZV-4!wg`+R01|LFQ&TJwOjq!+WfvHdpBSX z&0i*9QGcrWjp>y|yt9)RxX0LUHMbuPvb{bPyOS&H+vit{vc8@lDsY4~SaZ9P=<(4X zyd|J7yiKg5@bQPg`Qsd#9Dr-;zXfg1Za;Ea;PcP7U<*GiOwP9w=^C6I8(x6a0jlBD zld^lS@c-zo?oU+dI1J)B8REKMnc- zx7eew`4DebV_$x~rf>vab-x3jdblqBzvFj)KncKEJ#7Nh3m-X9s-~-cOazdJ^`+9BXySkOP)j=#h*}KS}ah%E7)W1@1&_dc<6Uci*!=poh`Um>Q z9(~r;H~_q|ynVlfJG=bWzsV`n{j~&g{sUeM)z*G#KlpuqlA^yr#K-3Q#_xZ#&HZO^ zXm-Ue`%wHcXts28b}_#{Tl>9z z*^S;pZpaks3dO_@1LO*w$zvXdq#TRl$eWzj;0*E@XS!7s#;TdY8N{v#Z`U{Z06DxF zE~2*iOO{{lBXppRxLe9m;i&Xw^SQ>vP7a@!5YB^8-QsLz91oGZ=>r2jdyA`^;z-w? z9qmji5}!U#;xz4V6P>$_aI#BHV+2j!*OT(>YO8;t84HK_d9F(uq$NID>HFeP>6(h@ zG-VDmD>=AW76*Jbg$%ZQD%@8?C~h(XHsaMThb(6&aV)1r+~nYQ?e;PAZ4L>1Mhopd zpDoW0=5?YE-xf`Pmp~CGM6@y^y+`)-pqc1;%kuPXDHER_S#sqayO^3taS{wc;~?QL z^AnbXtGFoqtGRk?&ASqyXPy=B1n!t>zJDdhK+>neKIO3-F5b`|fbe0} z69;R;%)kB3A2tU@@+OI9v!P7I2%{ZxUe0*tsNbukJP=ws{Yl!5Q>mnAN6TfX&h3<^ zszwVy8OF-5U1EvS`Dq`F5-mD)!DatBs+etueQl4lS*y-A(gRaQrnt_u981_HOg&2^ zL!Qe;yTJ$(GX`hSll+>VcqjjkoD;2h`+41upY5wN1QCn4_MoRLXga`nGmBf%^rY7V( zyEZT?o*q!ItGcU2gefblACI9S3)**~zvD09z9+@cS^dQ;RN0c*D~e%sdFDy|B{V62 z{FnEbEPmVIvcDuNCYbIZmV2%gF4~LLX&T0!`J=(9)R!debHjTqFiLK!Nhl-_4u03_ zpd1Bxd6poT+|SrD^9jn18KCoIcfoBg#9zWf)C|+hC9TVonzGG8Dy1q0E`bcbI7(lR zgA0X8r6@;u{x|Wzr6=!~;UU+X4~L0Aq*LZ8O*2{LgNa6-sD!@)(b9}lKgF}afY9Lf zLNiKM46wXvt~ozWiih9(&0ba6hQ2+MmoP)RMEyR=U^q$PUy zbT%Oao`mQ;z=8g#^_{X_H194Q zNc}V_9NLagP(B4VnD|B5+Jk9oS~=x#Y6Jy)NE;Y`$P@;~`zl@m0t@bMU9m`04|sQ9 zvD}@V2SCeW3hU?JWjfDR5CuCEE`&XK_IbN$Cf5MC&o(^p2`CT?a)nan@N$a_&qVo< z%f`kzP3xe1$dx$10MV7aImq4dXVw78cP67lvM(O&11@4Cwvm|V@TbxneHpYn5Z^M? z^3^M1hqK*pWXgD_d2pcN=Af2q(0w@b5b2| zh4{y97N-9qH~Y&52)iZ&)71MGp{#yD+WRJ8{2>XiMCP(*EpfSO)-8&Era(PD33)rN zY^mL4#b*O6Jg^GPg%GK0FnWLLbg~kAI9n@NbH+9?qG-H5lakvF>&XB;&{`0L=miL- zAX1*Y!wyBOVLQ|Y_O<8T0T;riW^Qi<~*ouFO`ZDypC@= z+(_(?k87=cK8kHlL3*)#|KPD-M&6Pvc{H z?HNcTTbCyGaaOZL6H1(ixDb^jNofz4Z@K@waX@Fd0yAkVbSD7KBK8)q1i~my&-enX zuU@tC7Kl$Wo({XqhF}JPp70y(4xRaUmWTaMt2lk5v`X>sJukVk^@-~8!pJ*7_|VCE zFL7~Ykn*I2uaK{+n9qIUR~ao~>4}E9K#HXz-|_JG(D2l$YA~KyGC@}fELFVR^5YTr zBd~<@c$*3XC)ZpK*d?eEUGt3SpO^zUM`AS0~#IdOVyGmbS^p~5#1a1~NBQ4nU zkd}7-SPNSKgYya`=L5aQM2qdAAmJuY(Zoq9wqr6Zwgzi`er(vyZ@ysiZ9>3gip7}F z>;!%h1i3pIzW5`(Eu*y2o&gW&xEW0wt6P^3mb`UpgQiD z`!NIZa%`O~)EZf*3a+SI>H$X+p(uV}MdJJU5#Q@dVj>lGa7=<>THqrs|4&{pQfDRs zZ|wAOE=v>Lx)b!+7%UojYHPRbV&ky;a7@9g!`GLFNOGdUARKQCK$0EPU+7hFUF?k-_t8WW%n2pq75R1O3%~V7FU??IaZ; z*7lx=WpnfTioNEprlM_>fx$5aZs_f)c#jKe<8Lt^3b|bg70mA@`ZtxTFX}O!DcT+ zrneI4fTqlG-`ms2x^fby#|A_IY0IZ0_=R@_Z0NS#GT9mWhx&maIZW*1qlH#aTk0Af z4Hd;3{tMSnVJD8@2hcT>s4K4$@?UsF5v1lCvwN;-|C%bu|JC8)IJ;X3t=mdto8Adg zUi{DO?4FaU_ki34py3fGj|)VR_iBJ&I+ulsWk*|r9rp==g^LFEN8 zb{yOwkztw%5^5o55Zbs(oVp=tv<+pv3v>sR#>U2Qa16S=`%f}WD!(b4jxZqp%eT;3 zLhHVULa>{miM4A3lSm{clwTrgr)l5QYys^`08dKp$}E3ji1=``4!Rn^W}VS(xU$&y zbr4EiQbG$p&_55mJDIZNFV-Yex z$fha?u_sAIKU$LZNOK6b<*rgN{NMRPMub>s@uOb+5O<~A1~hW)X6FYeE@EArC9PGQ zP>)$wyySvHG+$=_*r+OJ$YQ~AQvI%Eem33C4{;T9Le+xZuFf91%;rvY>gn@n@xKO# zdbzf-4Y5?rbDxkC*7#*~Fjv5v~EbUmS7*wyVhnsLX1n?P8r+ z#*$ae{{&aM@LvOI9moWMa0m)58@j?h*f4EXq$3Db-^5MfNnHY^TFcGnAl60}Msg0GLHYsf?t{dq3-PS40;%2) zxx9G`BMP3jX$OS2XB7JsVisqU>&@o*31!Ax+qR^l-}upWlQavEyN-Q+@<)+;1Q{jM zkpo8GKiBwmPdd9EiUVnZ|ra95j^G zb*s_$yOd>Ge>Wa{4_7f?TgYS?uM6$loZ41WArYis1Z%`KtKF_E9F<9#aLJEs1b+i< z#6+a78d+o^YB{@6Jr*UDlC`a&eJm42{R z?2~KLRs)yj!;(X=39ls_&}!a_Xc;6ufA=aK8R6RJ6^g-WpOtc8^(uEZs;o>FfzayZ z+i0$uI}%*K(Rz;9y-2B(Q}424M>n3^^rAdP*^(0a_?5jP&M+}<9ZGlIq>0F8vuEeQ z{9dWdC~&fVN=+TIpmGh)QT9sZj`O_1iL#;<&n5Zj&<;M#q)Sh&wpIO*82ix=Ix|d( z?wfX@bJ?{z7xH}hVQ=q97Lo)2TeaNc_z}?=H^3rAwId{5xTI7XQ5IMiD2MY>$}dj9 z6Hd>{XEs-I?k{b|yFXhswipq2O5714x?>tZ^?926B zOdqR@H`BpV57$s7t8rpSRol6-7kcN>9BEZTztMZzTvPy?Ic_lvF41o=L~#svT&^PC z#V^8O0T~*t;wD{aF?s~H8PbS|3PMfg<6ty7;||H(jy^fc1;I{Zqoft?UGu#c2=gPsY68XB*sja6M@QGH-A-jPA5a&-7P&Hj zUeAGh9RvkhQVrfv78=5j(dmYW$`Ia4@H`m*nx00BHd=HLYwyZT*gFCpeb=f%%j>hD zXA<~XFM+XAz#V)!GWANhC8 z6%hk%YnIBgfvP^!u*LcsVy{E|bk~cV?DF!}6%oOZW%%6@q8b$mZ0&sxUeFwAT(r8; z5q5KhZ53M_gW!9UWmx!SU=k{`RIX=)Vioqio^c9N25<(#EkDMT}qWjy(trgL`mKA<L02E;T+ZS4F+=j%|5V}>&TxAL)_E$b%j zCM#FnN}56XAav@h;8@d=2g3b9vpR(VEo|&I-C}nB6j}tsU$WN{>i(RhS-2RnM48v4 z?_1EBtyffSmMw~Nx$oly5Tu7$5iTJqsPI*}3x3~172&&knMIHBOmy=dm*0kSmJa+A-v~!7xqdvVJSD*G&*a*e zAjnOmMYK)8(sh8LSirx%JT}wKW1AVfZzFu^Q43ViQT!SU#=Sj_&tbQwOcL>H%jO)U zJ)~P3{oNZhbBtU!x9It_j~=H-@{BK|wgxTWAU8_(Uz^KFTHr=@P!ID<8>?E7gc4G0 zNhteQ08<=i($PaO1t3^?<7jSs4)`l462+BZk`zPG5;e!otA>vXV=nB)7)QyisKk0E z&l%#i%`|n_Zej26$%}(Qp!Ee`9Y8gn_ta!3Ho{Qz09q$^Z;th6j>iWARO;4IA%t+d zv`{rUK5#JIBz&w6hDvK!lEGGT-x~S%PJAhNL_Nf+q5+2>mD+cl)q~-??@QFbnC8bd!F<}W z^2l4T`Q9#q`OrFxo7QonbS>kdmZh50I?;*J3X&_E08@_>U+}kkRQC~F= z^j*UD1!#QGC#{y=mXex>C4vUn-S%C}l_m&-n=A&Hj6u9LNZb)VQEDJxT8L>9G`=gR znMu)LfAHW(5H}2|*bctC^rb6z1{9Tixu!G+Vmtgf_hdIU*o7Ptj)raP*yM1=Pzse9nn z=c+;gGGH_+-mKu#z$scfu07QW5!v7FFGqcN^nxd;`dgA=;jSfEo&guQ!F7Gy$Y)2; z1Vh}y8Ym$Bc1_gzjD!err`D@Efw3aL_;9lOIx9(%SoNO{F~IeW z`%FJV$W{EYrl1a^ks5v#A5;zIR!+1^gLHWd$`YN2i$M68xFtg!TV|8dEiC+Ztuxym zS;0N7^<0ce_@*uHfQNciVbyW#of}k#fMobL?0Xq^W4kF#uE*(wG9v;qR7;c8Fa);a80gjbQhD4Gn=Ua-7MGW`x&B zqX)T8VDo;f{5v)==0^tcX;@*RB4y0<%p~3I6*+!xJpdoeE?x+eYec*g`#02}rzqjJ zL2|&VgKZ%H+;U`XYmFD0GJ~g2mhc+;lg5^Qk!(Ox9D$>33&_-sU|875dq=F*e z$UEMmdc)4STsX}ZRJ#0*a|TuAO*G@RkfV46k!+uQjWbu|GT9Q3E+9iYIuZzU*I2ep zkO_Fdudr((vvGD>zj$D2cBHBI|n&nOpFR&hN4@d@&wa&FsH4c zHgaJUboSHqi&~yAPYs`i2r%r z`W{tLM|^o^1Gu17q8<6(9~GYr7X79E@Qqf%Y+ySxG-#A-;|N%|0Uio;g`z7OsfEz- zAWFPjeR2IoDTd2ShnPcK*ntw+S_1q-iq*XVoAvwJ{E>*=(m+vcPEj!fZl>-X=d`;z z=#EE`S-MCK3LFNZbW`h-bAZe2%E=t~^+)D+L5lV{%iQKo9Q0maR8XK@Fj@4?Cai$t zP)pH&;w^k`gf9C{A-*~ciSm_ra{|NQ^zQv}Nma=_Vvw6tJ)o!KO;Y3z=PGa^6BUs?UKkgK-nKFk(QugQ zbyN6;{isj^W4O0p?X8>FQ%($w z?3ob%XzIOvgD0>y`XgUVO<%as?@Nsv*lPHt&ykYyv4eeAO&_~!WWPEfCX|ZsMy)1~ zzbgvwzT@Yzu)rj5dl~(O5SW0$Dc4!xOUz9+lO?sBT2K5c8#AHy(zeF|xOP19-pO`vY3gnvc3Tx|Y40F3`#T zq8|L|B=c9={e~zt=%aRhjoBg6vOE1390Bq5q5P~UN=bX=l+5h}?63LI`IPnS3Z)=r zbgUyp?wqgTYJB? zQ&DH&PNJ`Sh?NS&NveVtR8l@D%|_Rd2J+WirGaN2(@E8pn>&+Z<7B#lTQRd)g^|}QR_1m$-gW2g%z6yFGD1=_*oM4tMJ!q3x`v&& z7O70#+AizFU=ws}CYh{y=I=lSc9RdLSMf~96{Mo;+|PyUFPkLwpH==Xfr3A!=p{!) zM)A#agN1}OGG1NOo!o$f|9jKsE||bn+Xl|ooZ1Fl+#Y{*r9NN!)y{<>Olw$ zq<3Q8$55nh8FW+SQZ6LPN&rxffh41@d#;aTt4HKq3j9cI`p-&43%ryDhI@qIgfQ7f zb`VRPYF(m`#@2NOlk?d_{EoL}Hd6desyMOAb)qTo9uloKEFY;$c*SU;t;hQ{;wcXr zWHb`ORj!VzM=~dtJJs#O+X>HNlOo+rXf@*Elio3+4m6{;1Bn&?$gop7wzR~{=yLhX z^c^nHusDFu)Rd`&V}Kuo51nmNx_ci+c*L^kK)3 zoKFqCslN>9F^Sb-R~MDmdVUxVO>~Y{)xyB)At+8jj8Iodv)J*eQupC`lSXj0BQH>f z6SIT5UGi#(^(9ZqZ-qsnIUNC4Wj?3^9}MC2+;2a5yd9eJGnMKMFR7gWb>jC=Dg$qf zBa(j?rQeJSpQiBe4E6DG4`72GotsEU{G6ZNTwQ<4H)1}e)5edEJl{KbY7P^vkpmt| z{u(RLbYto->vjO(wxo- zeM5(mo0jsnsUJE5t67&^y96H+c_PG7=EgKozO=7tei~>4ILV#<+HoXMq59Il4rZng zUI+!L1$Xg_QuhI!rU~-Fuq`E@UsoL+T>@*Y;1ZaDze)>4RouJDOpsgn)(v>5D82^1 zuq|)-SFsS6w2({@&2xh5w7dCl9rXU+fuMvd^QbW>dCPNXx`3cOYsy$o>IGdO#>W%yR z;9n2sIh-UP4Zlbytyf*R0}HzGfN!=}AX34cdv5oXwS^`H)(pgu)I2YaRtvg)K>deO zZ8)1h@0~yX4T5;IJ9q4L-VP-fQamafTqa>CXk%bxE-XI>*=eqXQ(yBJp2)$XeHDz8 ze^hS80zOZhT!eF7xNQ~y+<%4YPaplYvIozV6=!{4*mCrAfGjZYyPX$$Jt#$+(55i_ zIxD@OynN1Kjr>3WwE|jD`KOXut=&E!rmc=aFk?I7QcNMPR?T%>nhQ08^SWI52TXdg zl?#mJG3WEUvIFCWFXJdCwFY;VOb#M(*-MRd^{LrsCgo0!P+IgR?I_wmJ_%h@0pPe^ z4iB$nXbCU64i!PpDkl*Mo_|WB@1d`F)oLJQay@=qoOVJ&q`pUFUxu$6J6+o{+PRW` zBJh}~WhFJAfHgUv?{=&1TMbJ@o%O;h{f=gA*b_g7)~=Dd7LFX0O6CxLW51YQ&Z9ZA z91rH#3#i+CV%vvc!xkkhe$MW>%8oy0?nG?JwSWF^)E zM23?MUH@*2VbL3I zyS^WO@$Xd}w}QZC3Cyxa;4s7FnmET)Hn#=05m<@t6?dfv+-%Yty7?4*Miix|E!!H6 zFUTL%H{2b*%N1cyiBrFvN-PPqk`02grpvXMI#_?s{V5))>#=|3g-CgL^3L2IF9}I* zzsB~#tc4hf!dv)PiB^;Za+J$SLO*$Np_gma)sBU-fR~YB#kQxIg!41~Pl?nOSMyPm z;?9Toi1)fAblRAFX+ZZk0ZPi!IOJL1Zvq=ptbAomM)POF(ALKJ>_QptuYlBYny+bZ zmmJO(;%h{awI-P~cZXw%xf$%8L-k!b}C(TQ@aPqbJ>V}2EWj77ilLhs+m zOi;Zih$csZq+Mg~V`!YXd-ICxoJF=e>u0#!2p9iWx}uB_@W68hKn~Ztu!im+Sn=u2 z2IMNA5Km6b);|+twscfN+3DfzT-_Z0cwVo~f1YExXc~bQ zhLiJnGlPGhZsAh(D-?F(;XBxT4QH)9xQ)b^N(3aT5wMJmRG0Io3Uad5;mc~%6ZE0# z-f138+=H_;OKM?)&@Q&-Hl!1B8))=HK8*%1X*Xl#F^ezdypU?p%f=B3qx>CyKKgT% zrN}li?$arYkx_exg5ho;ziVRl2nOTGnQ|2gKuHI-m^>r_0pj7Zyi#AUvZHnr!9Q^K$+4m4Yc=?8p{ z?uT(kb_9#Qe%g7fGi`>)q}suEfTbfaZA*^L^NG?Wedz%2;<9`?7|U|M5y3=Sllb7o zzdW$xr z1e)M-YXw}4XDVndw?sV5$(Sg9(l%VFI_+d(;;1zhTn)GJve_@=xagF8qT-A1#Lw)K z1gAFw{1&upYgvKuOzpqsG;9S|I}-ww5>m&TWrXg7ufb(&1lyV?MmC<6^@OkOt9LmJ z;!2BTwzI6Vh`iq7Rp!cWv1X`I^K(ekm>s(qh;8efvKghey`m5gTk-#AX|9$E;r&Da zRq*send z0j=O$v%noYe`!Hz8wvxSz9wH0T|iM+v?Z0fwWWl1g|fk;u~l@l6*N|rXRpFRQcMNR zBgd>Be|(N^dH)R`7^kqiUId3iNq)51R^8g-T@Mg=H$oJ)DTdc9LHsbvSlmQ3WVK|=rm4sa<_aZR zScxuB{!|(^&tA=vB^WfLfj(m;Xr-Y}T9gvW%9A27^bWVypiCmdj7G4CJL0GS(vfwJ zKp+vR$=~B-hL1n2@_kb-1-H4nufPwjc zQGtID0XzNw0THmXGqL|aA%f}-BWF{c=07-_)o+lLtu~vk55uniGq&0^8LBEaxXZK<%I2fz*G*hxU)? z$*DNztKnGs{TD6*!vM_2^(RgBTk^*vDfYx+%#4@&yph1l%t?bDBZnWdd2l}&}C_3u+b6&d*rDvJt9nBr^6 zq516ud@=PSmbsSE{ib*)#-S8X0`4^8b z*}t&1F#FMiF$a|8cOoWJ!p?7c{P)<}uk>l(2gn!QHZ}+Qn)^?d&9B|^?~(rb0ZcPP zQJ9h8kJi%gv7L>R6c>A_Uu$G?P6m&E#690tX)WCExf3wwHy6RA-wVu&9+GJ3iz{m` zfKomtPEdEx)NUfc8k5*bj~%O zHb2+Wuk3dn|1XkRyh8kouHCZVA<8f1ZQ;fFUE0R)negn+lOOGm03urJD}eg~ zLjwcwnL0+s4_&{to`K&%4@|$_MkVcZFLxEq7PoAFV8=hLqzLyS!&m;A#S=i|uQ&^mk#l`O7w>m3| zPep$fkTyl5=57GYheJqfgpI4{i@w*gl;mfr-2w>HF7<5v z+PsP{iEXHFhVfjScyF0StV8-Pg-n6@i>TSzi6q(FJn~SoQBkoETS9QSdvnJ_{k}&G zgU`}zM6xb-EKVNg3~#~Sj)p(V{ga1Y2==l|SL9S6zp=?YpmSUc5AXm?lPi131hvO} z75!9?R^JT#tX};bzu2=GiyvcQgXqY91|*w0B-@JtN*IZENyYk1@-6uTN8V4`gwF2? z*hB330#NSFsbGUbiC2xA4HD7B=y{p!VomYf6Bwts$IMK1phH~|2z&5t%VaN7s)Anw z1i;^xe~s20%Q)?$W6=16PV1oD(ed&>u3`cBqQ5Ki-Qb?J1wUH$QjXmYyS{t8;yoyS~%;n zpyu6oU$Vpv+MUQ0r2)H*Ppy5APVo8U5Q=Dwra(8n6U7pzD2Y@fk`}Giy(+w+rXwr6 z(=PhbH!%>2_#q@NvnYZJXJuc3q%%Tr_&nD=ZcW$|Es$iKv(X~h4?IPUXtIY>b)}0f zE&iy}3q8K-TaU{cQhft@u^J>XYq0NP;f>X5(TWzml@mCI8l*TQ&(4ZzrOyCK`N111 zARCfs#@Ce$Ks;l@2*qmvpX(j@0#aW6iC*N9MJz5v{DZL&y> z^M~hO2(sD1NfwY;#vETt^MB^8k5@U3o}x8PBb7IFRC z0pjvQ57qF&xCe(|jYOn@^k-ml$+Q}hhZ%ZDocn^amd5_ll@mg~O;_P;9MOPSulfEI zG{NEc+U1$EcuJ7+D?yy?4`J-VYs_6q4P%5T;t0~MHU6Xe(W-)d;{;L}TWjtV5Q&Jo zSB=NiaG+loYEybqm$j3CEl_OLd48W2h%PGxYEDVtMwkRJ$TELk1x53cScaK`(?rIk zLPLHT$W${)w<5ig0OD)zY(&x%5$Jm0=0}|7Yf{iiP}M$L7#Jn*N^)y-LKFv>+>Rpj zk4LfpL2#whfL%L%&39ELOQxUh1eIg5PUbJSVKnPo@Kt;M>G|o=oBtouyImxy`zFY4 zM&{VvkAY&G2kL$_OF@p&K9*?>(U8@HGY^z%W_TMW z^HSu`iiKh<`BCTSnM%X2A7;XOo>eiAB3mm$*|Unnam}-ua7`&P^>HzyPmlUW51-`b zv)E@z5Zb#UuRnihHJ7J^NKarFD=txk9?)!XbDElJ+Ii=ONT*#w$G@Hu763+=(NG=s zxKQRxShE91kfV`RzMG;RQ@cRmsdIJ~G%caB#I)}5Ob&X85*Dd9;Q$G-*BwOy+Q8LJ z%*Ka$0$y0%74gT^dLP&%hmP!ORy-NsZ_e#dAB}u7FPN35p>VwWpK~4GimwyJ)cLyD zYTAd(WY7fh5WzFzRI@ac6+^CJe*z6x%@%@Gr^~{I(@G?pTlFFu3<|wpyi#lTvlI4k zbF{9^FGS2&s$WOkTyvf_0AFPkr1T5Cj%C7Nc6x+N#UOTruf~fo+$MH8APom05R_J~ z6N=^0a40AfxY4&-LU7q6Aj)=ovyAvMtwUE36C|+SMV)JPS7Qo+l}X2eo=04O|Zfy1-kA2g+NPj zGsob#Q;|1Qa~e|9-xsX4(g%*}ZDJmYNX;4>H}KZd@dYV65DfvUMt99n+^Yx)(|klg zUO!VA5}O~hr#Hwu)e?pAQ6=kf@DqTUxKNwcmqSIQXgzm#Y65o&!{O_@p2DR_6&`ZMC&5w1A3SY5Nt-^BY&1paX{x_?n|3u2U#kR)czZLu9^Z5f$l~7%ORnZV zM6@nKzY15ih0lxxi`!tvLtaAhjGFFcY*;~6u!+s9)U(E%gQ;Uiwo z>&{o;K_i!svA2eC8~%pHS<+>p$tYLe$nC~c+LqlePDoSeY0i$4m_09g^7l!&4ob$& zHr(Yl{Pgtte>`{VC3vAYz>H*qSz8TZ6Vo~c$AA?6V&URR{F<5=g3V$b{B!8K+>=k5 z!mp(XY9^0#z*-Q(1O<0Ysyb9;s1e)H+X{NHSh8;jqg%tE4ubLGwl1eeq(hT4bBs^V zUzCoT+-#4>8e_#>XT<9d%X9EVpNd1MvVe{Hk$mKcI40L(EYq?M(Oq~>QJgsv=dq;DXx}T`~FL za_M?bos@_QAn6F$FkE;S7%Qk1-(8S0!XZ#(y?O$O>A;DMl!!703;2;ah}=b>S71wS z$ee9Zl2jET(upLvFk4kbsNg(8bB0b-O3m-n2T?4FG2)^_aVtUlKX z`N`OD+I&RVdHsfa84i*L$URTM1I2su)hrErEY(QEs(4;=6TQT2<~t$iGxRT+55|nJ z0?D>BZ>2-EQi-)y6A-zqBSuRl=v;hLRVcwF)l%t|C{r@GaSzuhu-$;h4~ol5fYY3e zhe1lUP6UJFnK!^<6VMBG62Afr=$w)3l6ij*K``Id*|{3$WFC;iP8~;rX|RRtew9VN@L}MZQ{oprf~K2EY8Y zDWSRgn-{3KU1AucmYW(iCxmR=zG!iiuzD&J>kx0fH~4K+?)dG*u_;0o5W$yevL+{| zexa)4i#KzCW$(7Cgj$Y~DRqDS+=iWe&+Hhs)pm9=B@N>kar=6qbL9kJ4x2;U*2bzT z^h}U;#}v&fS`(1R-d)vDDo8ve3 zg*hq+vIx#T#n1qU7DQ=jzYmWDAu^MiDv%1CgaL17kGx~y+LcBs_+T|60 zE`az6dO8(BfBrDd3+tNz>DkaJH{*=|4>{XaJ;mr4R02+pMcg`t4&^KiRGSTR@FMyN zVyjo(HK7MQ5%{KJv3V{*@xnL4kXqdWwSO zd-O65XlGW9C5Np;PxcvtKmL1jeI7bd$5Y5P_&);;OiV-Mca!XHt~qUC&x|Rp0$J^b zc|G;`jXX`KGI+8m=cIlb^hx=v8BW!8TNn;jL9R_pwtMi514aaxo8rYYNs0MbJaBc4 zsD%QnS_Qzy6eeD^P3+YOI^>PD5Gk=9^!D)cySg;%JT&^y>p2tBK;D{JEK#U7A-oo0 z#x3{GdeMtngL$-d>v#CUw!(n$tJ9CkL&>hTxkt8`k?)oI8pj?pt`pyh@aY>@km_YV zyofp`q1P#qZC#l8V>i}~;YF!<->HTWvG>G2v(FteKi`l=bx4Tsr=lj)V<-WBZ^IhrE zD-z})PJrrX-$|^S$jR^pm?O2>>?$|&1;@yhnLwtV^mhk|fkYaUXY!(v;GgXhd`<;* zB2$GGeHaL##29BOIv_&awa(9kbuuu%qCvLvr(7d!-k@j=*b#*kk+L!2ApuiLD11Qo z*Yaa2{X2bL@(iK}0P!L`7Y9> zh4YYybRUk>mAK~E?JalR)i@dZnmQUv=gyS?3EF>)w8uXc0~8ySWT<|z|47-E^yTwC6v`@=2Q!@RV6i_}|ENV^Y-a{D!d$iYzOB@>;y1ltRk zdO9loOj0=d$$+px=w0af1kFrB(f(#>=r8f9iNljz$4BDS)>#@(59`iXWhn-* z(ho!Q6*JwL{bZv=tP8|~J)w7S-QEds0>p(5HCgyHbn6FdRk+(=3i0a#6(@NJ+KDyFQiz&wWLq zW@vO>f*i7}RoR$AiWdXTz0R#MqFdpqZ>(2X2><;1<;p^X!*FBj{_klO`GwK4&Nz;-q94+0-tS^lJL9Gk9aRx|6b=$N6&!BE;5n_VoKc-E+j#ec znV6{}2p;vGazb5xTd?yyrE0e5+?abS*m=TSN>x?d*iI!D6n=KhxRS|+%^a7F6P?t_ z#}Q0E_p*)k9MU;thHLhMBW`sx@v`x&tmExfhACO#@|7ha``5)*!z61bH$Cde_Ea5- zBlI!qr%n{8Q)hjI2n$pnz3;RYjr?%xiIP`~pK`%Sty%kGt&uN?HJcYsSg>zHV~HO1 z_n=Vg;u}wF4REU7%SQ2&JSkG)D)jpD0DV0}epK)kO4!EBWb}%Ooz(C&$ZUWY6cl*qt>Q@FflH z)jP&x;b374C`#}xP0%ikdeBzK33IM68O1GoHP5rWBRa8RFpa)#XfRey>_QnHIi^MR z_9d+r51%@k9(5OQI`RQbvKAlUPkp3zV77lNUBAsM#Gs0dt!mnkbi<8QXFg6{Ge!RV z2@*Uf7RbPRAJ}fPpHpy{mfNFUOl{ISi|+nW_t1}1cL(yG29_6Cym`kTaaphv-h+K{sra4sH|rxnXTwE_#6t zY~~t`UT0x>P>^UbL{&ey--g~0t&B;5~B=QMN2)$+JSLK)vg@tlcDhu3{MYg=7}yG zCR9YxZ}scijwmfEeYeBa_G!#E>by|S?um(e`B;H^nT_pKtG!Ly6B%<-9S zACFu20vC_kN3^8c(+%{-IQKS)n|s$HZlJc zS%esmcYR{JIv`SNoloN~z2K__wc&foG(Mb@c_gA?i#NrHE?QLKj$^l=WN}})1wvMd zE<9~9o{Jv;6}#Xc&Vu-J=;0o<21uY3txB9iKNr1P9WUHKxZdBUr7%Wu!lZJN*7>ik z6K?+Bc&NvlIq z${K5qBLW7Q2MDD?vg?YB;oR-YRb21407gsS_{Z{FWE@AH-}BISk?M(ax4To9Pgm-8 z@>7_W$MOcXsH~5TaQV%3X|x#wDC}(+m_cDI7}NqRJzbcUQMDO0*_LCLu;SR%51 zJuExf1R5%IEzsy#i|Sm=v{N?3zxK&(zRVW|#Irq&{|Z94lpU!bYaUa})BEHr3m?p?<{bG5tO&^HN_Mc?{5w>1 zg7uHN%RxkptYj;_sJ|)clv{oFwP3hyVt8(Av^wW@8vx5ll*3T%6=?1y|H}|3YP7RJ zYj?;w7@y0F$`=?glU0sL+#D;AtVTFT14|$wJ3B!LWxmqRB>tq)BmMql7;eU0Qzw|i z>hCI(sP6g-bHSiI%j7t>lfB4hbW4Qy`N=mC;z?rP|JK@xbB&yYoRc7;lQJxkS}Q4p zkY>N)ME+jqCL>MZJf~X?xlpPq=ngVw4^1{4wF_R6RD1D0zelghJ}oyP7f89!$tU0x zdWd=*i6$lpsCbLyK)WQf7KpnOh=?_B@XIyy|zQAP47jxs!GJ z7%EwIm%*1R2b#VLi5*B@OAsKaA}7fGsVx_Q5{*0&rN~)4;_7uhDZ&a-)Sf3oNl_J2 z9iH6?@zn$;ND=o-YvdkR>&f`;W<{J`KUHYTcQyE&H(3ej*OKynd*ri;owClK=zh~? zDNU{9{nV$FxYgfuF%~PDaY=V-fnn+Q7BRJfAD%UiU1mMm!Nd)z5X5CyH2Y3RVSKkD znR_M{=WNq&wuj>aibi8-!1@(%S!aIVLA09*nFmo~Pr)LT9v_Q9r# z114%Yr4_C;OXhlcs}m!hO>RWtK|btxR(p?D9$E%gDH?>HP1K#gvSA$Y3-Q_~3No!v zpJ~mP#>PgC?utQOiQpXt#ap@@t$bc>n)E%|u0xSEFP*56MzyO$TMSrqGt=UTwAe(a z%Cq(c!IUm$6JNJ-HvhNW1J zO}|nD4vzk1<3X#|3sWF}-H+Lu>q3hNI2wxexeZeSpeJmlQxO@iMvcR_h!bL9#3!2V zcR*sGxSFeENOh5GNJNrz7qb3L7(L%__%mz z{fzvvb5cj5ys}5qa8aNRUl@dsUiE#62!{!y(z3})o;MAmfxCU3s@s()$?4_23BE!( z9?xF`mhHarv5U;$t%Rp3kClN4=Dv4xLh-C@x3lf~!xHnNi+vkkR)6fHkr@Sn#xwUP zXYvh$zMZb=yIF7nHKi^y!}r+1*b$7}8x8O>$0fns4+4iXY!rLf{nctN=5ll8TIj1N zgZZR6x(#PTzvLX5yaSjQ%S~m%?)qQPR#67hC55oUpcx6t^SJ3T&wC%wIeM^Zn>d{m z?TCrElW)jS0{}9@%>WP&?CY;3{Nsh!z@1du-+e>dTI~WjHgl^b2T!wQ?tVpCxaSDC zaNwlQeTw@#oz1$h0$1j`_emL|-vLKVYIiJJ6`syyL3b8_veK@o+kH$dTekdPK9E?{ zflsSYvqyyOKC+^b9{CkmR9w@;A0=+D_!^9vo zA4OCN^UH}fPzv$8k3yecwxkR+Xwku~n7?|rjddK)6Kpit7trSoFHUH~lcgdvkMskz zir#Iay7yIr*Yr*n=ex4{#hx;da^OGJZz{{6RKsjzU>ovNW24@#0R}_#k8UZGJf(|I zaAg>V@`6X=#2Fn4ai3$0_I+W4XVJ}w7IN71vun0TWl$f2V4WqW%^s5p@9YgbsNty2 zrogccnTC8|k|$moi&y$ui7Gx+z~Zm>%`4iA{})-NYE93LB}jNuT~Rhj^Fxe z0oo>xR7o&enkzzd!+`l;cS?yYTV2xpd`I{#3~>nErD8AoJa`VMxw7p-BOtxMoJyBH zMG6ma!t0+<)WYGEgOEsco#8P|K4(P6Z&`9b-ps_!#quC2@cqaOoLH$=ZCy~_9)wrk zRCSg2kga7x!ab058M3ja^bH&txn)k5ia!vuLz?f$H!1*LhpI_R%+IH_kquVc1-bt$ zbpWm+wLV{9Plr0wTtCSq!@XF)$T|`+l7qR@yhE^&E%}S)p{cgjvV=CC6#)%fPGv7l zB0i$ZAYNwj<5|+&Ey(qRS*ujl%~2Yi&;QlM&hu2|EA%dV8^WLv!v|}wh(VSyG`n2r zH#xlhTsfXrj#k7M5C}jw@z37nh2WQ&E21=K*3+lKd8GshL-IXY6J8|)8J7U4I*B(S zM`JQR79z}tVXQIfn)AGe&XN-zY!H1}MSY_d5&}tCT_$XE7-a05`B25e5&p{+B!l{+ zXG20gKt`r1K`CW;pL{IG8$8NpzZBSE2#TkXTFUf+yZPvuDsPiHC7jXbL?BjJsv`nE zIE6Ij0t~m0&OOojGbT`$*gJrS3vG0Vf1G1d{4LQKtt1JqJ~&c)4zU9HVtQYP2g17C zkFpGmM6dBr*ZDMC8#+-ToNEeFZBv8dKy<fSdnTmPphAjpYp^8>!BKpOS0 zfvkH`h^rOinZdKi;h!xGV_Y1b6x+z*3TF`wT2a&puzQU%B69mEU>WfOV@q6>YFayv z0+NxpL&bDD(KM4w`0-&pwGmX(-^es+qYnawWn!4H?e1+0{=D1R@IPt1^zBBSphnj? z5Ck`t_QJSDv0xc7`^*5qwJ68xWJ2G{B~$?1g>N~LdidEW1ca+ICch=tbQlG(JtJ>8 zX`+2#8Uk1;Qju^csG>Kq<#b|2#}*0u&Qxlz#JvqJ6{e&GLs+%OkB8vK_s-wPH{&m% zvaVVr1;?Q)%hb7nOD(YvkQ@;4z-`E|5`DuNS^>_;^`&4)4oe}ylD@e~R?#tFIi64P z5H-B+TZ)psjW-`{5@!*iO!x&F%ExUXQLK(&vR(P7^ooMxu7uwWOik4Yh#;o#pAwkKMp4j!zf^yBQ#%RNPnrn;cFUWPJh!A2 zX^Ym_92Iu4pne2s4UI66jTrkY1YVUqMuJ(RwpWHsNODS8-}-r2RzgqIvI%W>Vgo6K z%FmW`h-KKkVL!Ki{_h|FHMbVERvHdHr~AYVYXoPErG@;(xz!yIy5!G8TI%EySBIck z9ys5}^nOx+<4*PhOpgB9UveGO)t8C~NW&7;Bg9Gs>yJqMv_So%Fc_fxaRIq+7NEcX zW>L2BxRM-6%%ujS1*QDX4vBTK&BKVYsaojUTHa&uU{mUd2IN&}9sllrK| zh}joPp|66#wqx>)&qWiFv#*!a_GxVpKU}XzFF<^!r<`=F(&EiYd%Cu)ZJ1pxp?M+B z3>B0@AOpkX{0pt=v|4e={&4-S7ys*{_f4Sf1#v@*MQ6fGmLB2tk~{E85~Qu6IF9z~ zZTgRgawcWDs)z&;|KB%%Vx%8EtDTbA*>+5KAoKASR)qU8tn-)j8s3ppD4RtNYxj_1 z@;psa0cg5<0sEU-YYW?lk*L6{kD+y@BFk znLFM`e9@j#q8{a>^|THm&L-)LKSsFl5o7d+1;A>df>lz}rk7FlsMdl!N8TiQn6vqF zi_LUZ?Ib`7nSULZ``o8ru^wG3*UOEUq$PuE%XMnLcP1wF&1V&UdRV;Aa9P8~{1x@j zpaKU3218a_=?=dw650sY#In5#649FM@iviEfPU^n+!{hmXc7zpmoxa*I=0FX9I>^} zvvRZvPiL5}rD6G%unj%0uG+(3K2YK9%9YpUA!?PP z0~GNosP_D@txIL73VEYrVgpMBF;m&Lgu+MxPmTys&&R)*)^kLh+>?`X^Bb+N+GNjj z4@FNhXup|i_E301&DG)_l`4mz*7OgO9m4S!kMgNy_8w4^Fm)o24!+>LM)$cvIzavG zJEXk9BTe&4w+o_e7P?J7@$0F<*_p_2lqJdQ7Ia$@&Kgo4Eqj7tDS=O9LRMr=l4-{|7y^D+f*{ix< za(y^DQr@bU48ZmGT6*kic|6d3!cdbQM%qLu*m)loJW=fcmk0nZz>^}=Qu0d zqLQWTbG|C(Y&+n5pG8xzz(fkL<>d?0d6Z<&D-hMFY;FGL8c04i`8yQAc`@Ws$0A3D zN1bbCO2{8re*?}FmCDCC1=YYCu{&9q2MFQ0{yzjxV(YKL9D z*co4sjqaZB$-PzpW!+QSa#(uTy(!~mL)1SJy$HYSLJsDb2d}m<3jyYX)1H>+|Md4E zb{s;$6aLC9jqNn2rzc?MJ8;#dil;WpDu95|mUpxWs?4JCO~H?TcQC4p0QSc;=VtZ? z_+pYXNvyaoKBrBlAbRUyI|cx~tEg`{$;00c{@$h-O(-KqIjA=56Ki$lPj`u4hi0WC zh713|^=p(PjU%y*MtTwJLd*=8$IK>WvyzX*?4q%0X+-o)>0msBuz>*dsoJq`E#UCI zZM^vHzD_%#y*xM&eaofN-WoIa4csI<9x#eR7{iqt*IT^dVRnWkJY%4tsNv(S^vBou zi|)g7U)S+1fiL6>V1%P&Ei>TAgBQ&ycndte6n_}yXmksc;1vA&im1j90UWXv3(FsG zCAb;WvzRV7i5#7H`V29ab}qH{s&{H~3H>4uNU8fz2l2E`)6 zT?U?s19r7@ktI3st&EJo>Z3ws_3nrPZ(U_??Olg{HH}u|JBtx@o1V|E_xz}6B2^6#`hHKjNNe!ty| z^HXv=SbB5APBvDx_UvN*dGC>3CiM3OS*q}>M^-)ZNAlE(KXZNcR_a74<9?B3YQ*G= z)q$s!^o(NG9Fq>$hCVu}(y0#~s~)}t4$R5mWRsi2Ecvr!Vj6tU504_-Lhi6)Z<=5a zDu;iw;=-s$?JO?9D(;FYXWb&7Y%g_%NaxQ7;5EHDX;!1YBT0VYuxL+B7*MObL9tl8 z_FwY)kVm8n$({r*YvssNv!urk4NhlUh?1_4%a8DQ3mJrq4xUvh==I$4`&bTj#MIin zg~oQI2^f=7RJ{zF-F(e*$?y|@OY5pzQjqz*$nb4PdQwJFn4Pr|*UPfy(S zR@!Qo&Aju~(`YF%!l;7UoPP z++vsria}D80vGL3RcdXsv-$azpKC81#K7r&(r&K`^PBC`DcYd?#^wZ4g;g7!F1&0) zspc??=(<`3lyuM7W#h~=%RhYFXH(bm@Mm;MAU{*-Q z9qLftx|{#|&!E(%+<<8ipD_!@S%OM&GZZLWO1-K^-HfQq{zOE`SNz@3+wkrO8-H@x zNa6>YTAy<3ZB&mKe@IR|2}g}oh0>AInX72(0v>e4P)qKDf7G{LAvCe}<728iORww7 z4tfKPwYD428yQcjXkv3_eS)qiU0_OkylVfx6Du0?r*8S*B=oHLCRKPw}by|?yET8g&-f4?XV ztbD`t8x@V>%;)n&9a4Xa5i%gY&U0Tsckp_s!&76+k{4T3dnNg#bW~`>?8ezF<|gn_ z5P?=S!2P>ITebiFoZXtf(CHU^>VHh6MdUbw&Squ|9oiO-k(G8mTpK%S;X4$U2uv~? zxVVvjN@3y4Glb3|oT4@*ZeB^58-VcEGi_w4Gf{3KMt9QDIEnJ&3MLGQVulcyC1qh$ z5)4qpQ>{MC3IG&U)3MrNpaU0RzusRRu>>7*Kpq1IA+MeGNeZfPUuIX+JoUKW%yL*# zyetujrcqwK)b?$Dm@MqM5KI8GF#DbGZFXO^73sz=n2>c4?$K>Sz%VmCbc>Oe;uukT zJ@E786Dn&xrYXz25Kc}|KWur7UKH{89otbpP^{0gW|tD2;XEliqqIJ*ZkSOaRpmg~ z?8|tL#zdqK0N^yGAIbfPQ}cA(F|7eJC+{p)@uep^tnVRy(2hayVSJBqyx7J==@$?3 zJ`qy4lZH%AS+f{LwjRqqEo>bV z#nC)H4DGtFk1told?rL~NGB&=X)lYcI_Xm_0 zHH!Nr|?5-gb{IRTbDZNK1)B;Wl#^;X2*EVdl=o<;F``mof-mQ z{W^JKC>o5<*Ofy@Mma~6x5#BFyD>2LF4}w(~3Xl;l=+HQhu4dA!Ek zHuv}uV8cC81M=tEH?Bb%NbCMJO_|xr>1K9fouk!s9?E5%`zKhaQ%MSCEkmH=eTm21%mSQ9LhJW}R;~vxg zWW7*+gSgX~87H6w^O}%Z3xQY=v};6Am(sp`Y%!R+`z@%la?wUzs6m5jCA!MXXa|h- zjMm^D{CTT!01$08<$k89|3|foN{T#Fzyk zq&{*si{^oTkt49UeH>A(&54bQ!=66%#Idj_*;gxqxG2%Be~|_a_IzyVG(jm}Qu+=H z7w7Mu#B>F7#y<_Y@TO*gqRax{Nc*TGR#hvUP)--uX|aSb+E9IMJ6r&3J_Sy1pF*vt z{WxW}SowLKI$FqR4U#P72v`K}Xm^JdW?8}%Hro_ZV=C_Dwk#HSN+)ISezCs)_33Fq-|tXsXEMEFq?ZkK5_&ZBju$MT9?Uuw0uAma zyRS1)o>>R?sN zezDz5Hevu&O4{ywZ^tWB=h=_Tk+aqypY-@~mc)d`Gj+&rk(FQeL>KWs8XHCqsO|yJ zE|mm#jvjikpk&M+hHFSwM3xGUbQZf&EM}s5sli8;Edl~{fvIPue-;SHlJ+GPf6@!3 z8ElZ8z{2NQ=hE4zI(BkebcwSKW_$Su5T?79w3{44rv!nbaj%B+k9^7GzhUwKQU+p} z4h4NJaJgqnf0!h+rDur4Vz7nlkMtw6xRhwCT4%!3kbGxOcs?A}^gzS0Fsi-)0wTx+ z%M!Ah!yH%r zc|nQiY9deBO6N}I)^+g+R)!i7wD)))sE?Xpn9rjMxb}0s9%LU=7eVNDL2bQrS6#@` z&T=fqh@p%U+M7TamA+KJ@O0+vXZuUpW50@TzasH7P-IT>CAgWZ%Aw4j2D+patj2m3 zT&|Ym%)|i0EGuE30)gXDV#U6M`LpgsP%^dD2bzS{SSajrz%P8Zr12UAA0b^DslFa3 zSGspr3vpHZN|@`BTu=1|pOTF$20$;=qDRCN{FY!A*0_u2R#>s3t26IGzxS2rG@pMS z176{V5QSNOaB@d3ug4`Zd_3T1qL~hGl#V3+(QI~5Os4uC_ zNowKHF&74^w|4?!m1Vlzu8oWT{ct=sT`44kiGNhm2i^9BGrIMS(=n}4n~W$#?XIK@ z81bv~z@}^KXwm}3Rf7bWoF!<~+aV~WEgL9 zv~WvaWed%pdPnRE=iTCD!2nY|)_YvKzo9o(^2`hhskb=fY)86Nx-?ds&m@gS-fQF! z#yX`}*|PEVv~yn+&Oa|exT%N<=PgSINI`L+piK%&T}Ml9-#-Kd-3q3v1EjEgE*N-p ze|Tjql@>ccnJrc`74-#5N|+VNti__}$#6j2F-ktVWr?3=wT0sM-%%?bM`uR|)5TFG z4|x}<$03jfv}EW_o;U_BXPsdds*W!pT({@UtfMop;sj;y(qmI4+~yX<|2_v#UOo^L z!18~xaVQ&rM10G9!E~vuAbU*1iL!`v#uV};$w3=~z;D|NRtZo+spyd9HnV)%&vdbN zI09yDEBL<>$2@@wcy+{1o0FfpRf!DRSJ2Af&p*}AhAQvhPHauIlX>34Hg(S)Q7h4? zP-%|J3TBYNHeY<>{^Ko%w2w+)Ek(s+_PLFy<5zX=57PQOHap6&^(hNl&_%40P7$7_7-Go zlu)@Z#H!e5{s613RJIUJ-*KgxWYsF z8B7PUoZVaY)p|)=D5{k^P|X8%?J8*_ws7BYdz-90Qbjt~cDhNFZY>d7W*FSzvrxZY z*$km#Z7V6y1&=W%mfa^B_LBL6QYLi8CU?0ZP?_Wvne&!7fNtZ^#f;1XR|>gAFlBdi z8!?-E4mCdN1X5XYaoQoDA}!FqwVYuE0v#hhDO@cfFuvTwLAB2(`kzDLVVe@W9#M^O z@qLEwA0&c&C5T}#()eN}s!D`WXJK5|gx-lcQ@X5IzENO->x)=Hs860@t<;B1RlD;* z2xd6pM|y?T@>58l$MAt}_+T)mnhQ~7o zLbvM@&7?Mq1CJu2P)8*V&)lGs3qP~h<;*{;A$;EbC2KTuLwbiTjClUHUC2&Uw~^^f zvuNnRIzVh!DC+Y$8K9beDyBLQ>uHj%G(C&pU>Tz@;Z$GLau~-h6vH+v!9$?ae?ycO zkB(|`B(6|)O=^Lq0=wm7L(BSu69W37jlD@G;KP&Rq}JjbjX1X?juH`Ki{%8(Wx%|j zb61vG<^y?4|LOlaG$yX>2NjI$!FDjWyh<5I;9*Mn0HGOTVJKQ^0JeVi3zz$$ShR!{ z90GH_bciP8&n~VY;B1&N1}76?b~l{noJo>WK> z)d|vB29||7O11(U<#A&vYOh_)v0tmX>^J4ehtU-~Y%ouCf7P}F(KC)ZwhFKdhG^`V zIA4o*6Rnz9^!(EE>hFDKLn#O}BlR>=sXMtiN8)6Qs3QkwfQR(Q@UB0;T3F@4aIbT3 zBl`bNrLo6ghkN_DfZ~*FNNUEfWVN4+}e>H1#h#PR&@K>tQxRrN>4y(%xA?*QzQ(ywd;Wkn4pg}Iu(dg7;XAQ zp0~ShAFieksxn0qkg~u{`07WtIDg^Y(9rue)K~1oVmDI}PI6=qBxFh9GOf>u$3XA_ zOx#Dn%sj-(DJClDxq9;^+U4?*Ce9F#x5{}8Vf#c9-1&)r0|npz9^+{%g?f>DyyV8c zr;rkA9rGc)YT~Y@aZ-xXcP1$-*qweCN6md) zd@LpvtaA%tXQ}XKZnZ4k9M7sx5qxD%Rs77uC{CG&e{KVV3BbIBd-bjQ+vH>Dt)0Bq z7^5o`SQ!*O#LjJgWFbh#s-incNbe|xX(#8UY67u_$Tmsd;-*aw3aw8=g_Mv{f2oe0 zX5@D5Yx~`K(9EA3PlUQ$O{U9VDh1&RNT0`>u$?&WK0JLL@+QoE*AMh0@-^!UnRp!; z5UN_B$-hbod7V7%p=kQ8zDtP7vApV{dUA5E8(8(5;jsIE!bt=%n=1RzUp(%si*7FK z-M~(wg7*xds+b7Iw`ps_d%=o=cKC-erCcYO*=zWtGr?Ly(l~mih78dA%@JI{>|>?` zsi0hZ;imEJo;=zhRX5zyi}XhV*&{UU&TL|O7aj5QmFoRqDaB=s-T81x4E`I*x8~G* z`+!|u`{k?}RSiUun)+e^b@qD`E2o;*fMf6W-dPUz{`dlJ^QTts+MIg663Mc$ivF{S z;WPGtE{BVp)VF#D$qvVR&7NQm?zK~MX~535o9@#fQWwHMA=GMFKEEjF)mas|do$&C zx%3LXG6PPN5%POg;OQzC({}bDxPJD%xDVdr1uSU_w0%d4$qrOs{sWtNS)DA*e*@3h zTJov{qb-esx1<(v#B>9pyoBMjD{sCnvs3!OQEVA}C;!#EA3xN?kcD{kMJTS1 zM(PFp;a*MWQTcuo@4E5Xo7WrfF=a8~=WB>X-eVfj@afp)U9 zDUh?IU*IyjhNjwq?g^3I?Av-L_7r9WUyC8SX95MvCFFnr9&D@iBPGujt2G33QFzA( zNP1WeBZ_U%2k4%M09{43x|dkkKLMM#>bvHSIlxw>%(;p_>*#z4g zssoRU52*_E){ti*f0~jdl#y{a*UuB zno-&W>I(%*xc9>(U-eNN1+mM@pRq#u!#CqX%JFDcUciKca z`#NFBa$sJe1BuVGHMR;WdeUm#AAC|g@-56+tOuI-HeRMr#E!91AD!~Q5GJY&ZA;k? zIDn@b1lcPeh%lS~LXq#@=tvJF`8wDBZ)k^9krYY@GF_8ibQo&n0v4xtX5hii+$(68 zwK3ZV`I;w#%Mk^B*9uFojnC`8T!g!J$8q!vo+nHT?~6y*uV%|S6*#1E zbP!g+S`VIq4JlEL^W>rE?Ekt?_Jib((Ex><{dAEtb}g5z5Gt{bMy$-O-Wi?$uVWdmWzqjSua92QR8qYJ(?u|wLvZX&8)-Kns=w|h`^CuxSm=g&UTwghLM zOd?z_VqHnWhSh~xF*}Y6-1xLT61B!_5=H}f^K;YHCQ4VMtJ`^D77amy<1aDFIklRombq#9EU)jRd!=MLXxEj~oozmjEM9T4WLeZANvDQF81c4CwQBHA%#ioaT_gyUf5)4+7Ym*G}jPyA@{o^3ht zRkE=%p?2}E`XrMW(J|=wA>w0KaAL|6yBvd#1KE~VI)GDMbM{R`d5Ej0tm5QJcdj9h z@J%7mN!f9|qMzshiI5?l1!bA(+sQ8r=Jbh?u9VT-nF@<7gRP@{w>&h}CiOn(KDL$^!_f3IEc+4k*6+e(Eg`U_j zcHBRs=9Y%&bkPJY6`8E5X7KXMhf7VSQ@G%Wd4a z;;V?@bVS$S@7LtdrX9>a>Mj{G?_qFJK&8qYC8Gk^@`yLli4xtJY#~Q%*mV@FNfs#0 zT)-nXuE}~Wv!&H&F9V=batTUbQVU!=n2bbAc<~*oSN{OtJ1c{7liYnuN-p?`ltB30 zb&eCw-diOpG)TUQLk(=hqJKyIpa8;cC_lhaH>_NPG)0+6J*y31N~?fvAKa;(ohPdt zR)IiZcOfkg1_Mto0JneLsp3wYX9X>}K-S%)FtTQZNc$QQ+W2^c6#!=n9-YN|yEah5 zI$$>TGIfIqcWA}V{zLjWD?6s%2BJTQXK~2-Si=h1+!;wf1rNiPvPwM3^)l}O-)oK`P-PQ`b%miHRd)4ws3{52-6rJC5u_w9Hk1rsv zHZ>PLGKUDgr6QLjub~-LDF(%hmugEREJ!RuCc`(-P3e_3B$s+FL6C1H_}JO4b1j?F zg$>bjudDIO&%Gegia>j`Gmre)wXWS5>jkNX1d*oKZh)<2W*j{9@}d*+jNRLrAMKF- zi=33~hpCr=0Psg=|Ipb8S;Ou!@fn$UkZ=vn4qZQN{;x$o;a^G|r$=2_PEm#C^Q1tj z9=f#1gl;euW->FxRYBwk2jo#(F|7#+T(8P+$J&U)ivF%0ufGYIka*Uw9v{_Yr#2l( zJBQr~FGu=Z0puaq3SlvN>S?T|@==2n}6K=QrZ{{bRuzv$>yB za;g$5z*~60MEFA}V^*H<(ygS|yW!An+|5NSabjkeRYAlz8SY2 z?SvuUS{mXHJ<<3cC4h7wp%DWE;(X)ON;FwQI&iy)w`+&-HL_4hUik zsPho3f=g^3m6#e5OUSWf0uF^1nsdM>@;7L<)9{0~i03HL&LU4q-+hRAYGv?$$%vB5 zaZgZh=By5pK_)gcwC2a^HM`X-cobGpI$y0}(l5*mqa7$+J;~7CX0|gzbjt*%KdOJrJ|Ds;vMe;t3n0l%KS(P@b_FZ7O^BQw|hlo zh?k|2yoe5Eb`$Td`xT0VRn}R^I&J*8wGkb6#%qL_8fxTCd-=3VK<4x5UPGXrC+;sQ zy%X~{JSs%LYyYw-?)VC8XPXX_D1^xy+00suT9C?afhd-6vFNSFf|3h5kwnz{z^Y7d zcLhi8M7o*`Og!#9MCp&lWs!-Mt?(|7(wWLSkq1sKZ?2fcMgbgccE5clx!oIhDM1#xzzM z2wa{GO~)figr_ETQVSFn*aCJ6-ZJl^LfjkMEK;4%D;b`(J*(DMsj_E)?P3S~inK*= zHhe!8&H3-d?LvYYw6Z{|sJDTUsHJS^JBAokx;QfTkOn~_zv09+0zrN$u5NCXgI)zD z&75Oi8#ZSITx^Mu+fAzp`*nfvv&{CnC$r9r56a=Zj(h3b8&lc(01ZQ` zk*m~S0f3)YsZ0VZqhnidfPb<`V@in#!uy^l>z{hyFI{|k-s87q!F<=2sB4RGe-df) z{xFOa)A>KSrGeEnJB7oEK>PMUcyBI}6`kRj=z76`P47G?Xn;-NCyUyAK^y1W`EqYY z1NF_dkaXtKN<{_{GonVMSGJ*jstqQ?mJ=Bl2;7?+^3t6DIdEXm8hOF;@RoGOm~KNv z!_%y64)pOP2(=X!%%{_HmVDxAoZ01s4&&uIu8Y(|B66pRsPYceP*3|@Qx*_{s3hZr zBC@)Zj0*kTiJ-g(m>wP+;l!U{4a@oyLYvLmZsZ3v3@bHj>E6J^h(p~yBxUd>P-?9Q z-7axZqIy}U7p`1-boH2;$@FPVC&fVlIfIs^acBcHN{4I_HC)Q$Ke$kP>4&zlK>zeY zxRp2;Szo`*;p9JterP{R)O8N#A9NFit2hP48HLT(tXznR2P{U;WO8sZwQuqo5sZPq zR(_{`f^K`CKlbMz)?ypi@;+%$*x0rhtNwsM)5!w<7tkF{>%_fP+X0R)t~Sj3V1 z(FuH1ltkL=%u^_J=rV|0f@5gK%pPi1WY51dwtXFgkOEJD6*N4klamQDX#n<^1b;RH zY)QljV9P-KsZzh$v+CzzAn`9a5-rnOtQ{;88%PAd|BHiS|Gzn?|BgsA5il_`GI9Qw z4)wpA(oD>ptepQ}4yx1Gr9``#3?~cq&uD8*q%HS)!#@*hSaSG3Nhs>d{C}6yGuNAK zqt`#n`oC+&-PSW5xe?|wtSeowWaMfp1?X%o>|l|bn;mn^%nbJcOUbM#F*Y{QGPKvG z=PB2=F#vwUR}M!Z8>Cc-g8$o|zOkaIJb60i(S?m%l_qd*2m_U2aa z@>Vl2ehtAnfMNjV;Q0~%BF6&o|8^MsR9ybRbK@%u>+iSB{R@}|Hzp>h4{cy{F96cq z$k^(Oen4;3|2!ym0&w!rKD1UpSHHg~*Ezb`ve`7aIskq>RFRRt;@Na)VsyW6ZmnNc zU~5_5Ei5hUj^E@Z|2{VSvC@sExy}Zp6M#?i^Tq@QEKQw(V-w5u^Z5mJc4+)!hfz0| z=6?K*^oQF6VPSV-Y60Zp{tbDL`j&V7p_cFeP3%bs3W_=H>$?7J`N(6`=;Q#lox<2l z*ZlclaeTkr+**K(z0XriXk=~zXJGyg+ge)Q=XbReDD#6Bd6u75_=O!9TiTf!K{kM5 z2{KM@bAP`?5_t9-Wg7hDPW;7J`1-e>{Uv|;`6YhsbAIZBx&Phu{JEVwsAXe&5NqxC zV+Z_sj0PM7`r$OW`eC;w)|SSe{Z0DzYg+>N5s&{B$Dl+n>MKELW&V{0M+RQ>gP_eB zrsef7jZCE@LjzzY&gyghP_H#JhjM9bXa@c{e%w_8I?KpN|H+bD9#|OKxXBx6`VE7! zF#p&!{*|8ZOJJ@HkEF2r2h7}>U-Y>}`gOP~KD)eOZ~RJ#{+9@a*ziw;T4Z*1065cZ z*Z7UafoAs4idlaB-MiN(IQi9@#O&bE^a61CDV-krvVZtJeAK7z`2{03GdHsTkZ&t* z$5_w!v9155d=s}lxHx)BTlF*lv0wP@_-R}I9}&tvTvg1iR2o-pXDqpVMgX7rO`?2o zR&4oTz#r>V?>9P}_eN@vzoh_1mYFB-I(HHs4qtqMWz^Uwoh`Y?vOf#RTVLto=bs1_ zDJQpaNFer|7oL%Z#kkWZ{huNfj?BgAr?S+(-{-dsCkr1J)7B?+<1a)U8#`WV_A10A{c|A4@bKc?dBgk> z^22lt@BT1HLW6WsH}B#lS!=+O_v$E&H$9FWlDW8O$;}@f^r}XI)^1&X(tRDi<$>Ky zSw^;(;>dhDl>S4Mnayzyb$WmFe9+XL72T_WPG`x+-tY>qZCVR5sX|msl8>3I92%ab zD9&zLTNv&v@>hX$k0I$wh}o#6*)v4~vN;MpXa{?9Mv<9vtD^Q%7xatOL5@UQB-3e` za+axqz~{XdAu8DPIO~3?Jm}*IgfRs_jrAD+A~RL(W1o!Ax_jJJB{@Uy&{NqTi%wL@pn>| z9WfSlYiZqdKrO?8IeQ59nVEDy;c;Z4dcjx+k2q-lq+sC~ArPJs)LrsBSgkJ);e$v& zok_hSI-4`0>2zsvT#kz8{zgmY&dLIGXGm``1yad3qu-YK>e;Jde#Ye&5R-ClCK*vG zOnwgbY%6(gu|nZG{<9{?#0!BpZ>M(GF|N!iLRBu;1%a3pvN?6--ZsT9)q{4MVHE(6 zSJqoc3W{T2WZMH-)RrJ?_N65Lq{M8>2fAM{?9I~m>YeKXW!IBFc+z#A9^H6v9 zL+#QXBYLG5maRdJgmBEn61kSp1K4R(hwwSaoTGkExuWc{T)^IKJO=wAJ^Tx==rN_<1y*(6C%st%F( zxm}}h+LR+bFvL-3^KlD*8T(&Ucp9!Yx-Qjp3?#6~acwBPAh>a!FZVA;jWMc`O8V%K z7VeSoZbMTjz^3NVl1rUcink{LQxMP=CU0h5U>N2l6&Vjzvuk4m7y>r!Yn6|Nkl=K8L(8dd1BJD=QS zI=`hBl7iB-!&Ig~)OaVD+@b!x^*v1y$}qS>A+gP3pqpkuz&5sO+#8 z{bZx~4*(@V+P`M}tR`GPb!ljcl|FhOTxg;c7=2k_zA$D2`(80dQs-?ZMWncB_-^wW zyX1!u`8AjjjisyLIv8h+zS|rQ!yzp`oT{7NHyD-q^4T}V0D7-#NiE#sO6d3p#act# zQo&5_*v00Rx83NW%sKb_(jBu%dY=~Yb8L{G?6diQrE#*iZJ-?rg(=Wu;{|Wk+@n9e zgUDA~h2B`mD`tAZcD>+q=Rc{7!~J{){L~RNBC>gGgu#`Oz;07;ne;XYF+6NErH8>_z4o;5TA-(*=uN4G^N ztRW7mg{JR=)s0y|@Zl@@_~}?0mLu}#QKVk3NBmrYd4i92Np;{lh=+KJlRejrePfay zQK|Zjd*&=vEMzKKa8TrUBz0+>;ytWaavEU@00)BWiE&^us;L~y{LRb$>BZTSNJyZb z9ls3Z)wF12`j>lXk zA6Gl0fP1sRGSkw9$1xF_JyS!Ct}&1C){lk7+8hKC_yeIQ@K{Sr#Uf%Yuu1@ zmStLlfU?uE?`0OL!B`myrx>2+Ff9r$Re=Ijx*~F4a)97t?1e&z|9;N8eTs@7&I6%# z3Q5>xBDMkK_v28i^z0sG>l5k_ALneli&a8v4hl{1lzH5N-~$TP>!3bT7K4#%ZeW#R zQ-Py2oc(5912=Cm2OGnC(EOjrg*ZDDr!?ow{DdoBtJAVlSDJT%8$0#lCy(jxX_^ zi&0~tLU`U0lfU`W28H}09cJ{qVaD!NMXfjgtX?IT12W~26Vl{W`8yOkXioaXQ1Eay zDjuQFxCR?B;*T>+-J4p6!v=)Ye*Di8?Rf~lW3TvEaQ&jXh^h&0*Nn)+o)z*=pQD~c zXY=6q!ks+tTJ3^}$m9>YgV(=XF%N;UxM zCTuHULwg%<&}Hu<((2&RxvnqYunE(@<8Q;ZR6NE)kDO97orc`P-5Geo1!gN(RKrU8 znQ8!Ctp)f&Agcom;z|+gIt0_VIpI$QxDX>Q`p2zq+BD^?#v(rCPhsBWy~PhWniUlH z?cG?ZVM)$PrL|ToyIcZ&$GEh+cQpdCInrPFor}dgwKPh z)}M&KHe`>(YM{LErg>g`vFh_jZ9r(Kg;vWAY>4Tu@0xsjMkQiI@X{n`odT$ww|E!_ zUFxdlZt)z;x+Q?CsW|N8Bk#xm(z*p``4P=9Mfu)psb%tkT@GB#{bpY4@R4~u3)y^N zc~*;<0m;y(Z^2t9+n!^?DEl!P?P=U+MOY{m#a=i#G!tE^x<#8w_N$L zu%s+h0)X12PVb`SFW^>CdV*BB`^*nL8#~=isjmt{Gb~KRhX-_!B?`BL_ECY5`8*9% zSAgR8S%5bZzLx3KqQ1u7skBp64>Zl#Y&Uh3Uk;enOqk(NGtHoBeDnV_B#fJ@&Nx4- zIH&D}5__C+FTwniECH!X7lI+uMYKt=c^Ek}pDILn=7=S4Vu7EIb95w86Jn@Nl1BpK z-grE$N<%}ADY#1_ZQ+Trt!u|cYI)yg_&u}j1s=`pV22Q{FK@61+iU+V&VnUZNzbFH zs$+G_u{J(Dzl9!=(c+Dzv4P~ezXC-383X);{`pGV=;!&4S!bF>LpgQ9E&+u1jjYgt zO&!OHgg>#Aa%+&>>UxIEm+)aiX9lhIcO%cr;jTBQWcHQLo*+N3Uu6wiFodV#34=T& z+OeZvx_0&ye#Y7~r+`DgGV$R>mfW4>%;S2>74f&aG9&s4{ILx$e$Wtdf8|lL3w*pV zz6Ej{QpQNz zN_t6D7TecySQ=j)CznnATPeSdjnUflG=`oT{TbE8#GevYv&A1N&IsGGp(R3g*;n+L z&rG4~XUkVws17kvQ=o8}FdE(dY{e^Q z)a6y9OCt?fc3+nR_M`zmdGjV2GscP?eTgKBu29YUp(YsZNoL@M;2ArjQ#;|$Zdl5| zc?AvxGpl2J)OmeE7`;QYF6=SQvD}iUkxx`$#I6B_$_UKO;F?%HBe(1D#d{K?r(O%o zH3A(`BLUBSzN8_`h>p|L*EKmKjGT3=Y?V0A1=ZU=Dt;WoIa^u#*}BW}$!WvNf%LXu zL~UrnH%FkuDGIf-xPB?F~^D<+K0g!^V0@@C%GG z?Uk}++s6SH;d#ZDEyb@zrnXqYh8{DxF173oNNi9Yf5P*Ty|843G4d^9rdf_!0PB z>BE>*;MUm$wd;EmEg|fgt!H$vLk`I_l4me{f-Q*m_@G_<3z-b%f zEZzt!CD}wR58sGGu7_bWXvWaKsOg9>&4QuQXqR8f}Kc01&pzSL<9D!RfbzjMLI zLU*3oYoPJA1}V(sW;&8ql0MqSb;v0Tzo0L7qV_RBZm^}J2@8Gh4f>(3mPXde+;C76 zb+%KR6)J|Mf;Z5vuePv>?qyfqm_L1#6>*(3cWKL5%wkMj&f;8p^m2o?YxCi{OTxC# zaX#9WyMvc=Pk27waTU|j_FAMXM8RNMD)4uW8?D{J2>Gwzh1VXPT-BtDTaSTxaLbS7 zLFDIs9EJ5VIrm4uuU|zM(n{C#n*5avH^cns->GftaN_%Wu1vp0{m`Yze=62lxsp4I zq@T)lNu?Uq5$Eeeju`IYbM-d+h4v#oR)%ww1K?LG_`57S5npGQqJ7w$=~6@g0fV!p zcv3@b#J%US)YSv(q1JtbyB5rnPoj3IR{%ooNsAwytk4_g2paTU;0hcM6!^`K8O7!r zoVWrN{O;a`M*1UbU35;o=Mw_Y=JW+O)@`~g2ImnmyF}0DAUiknE5yHIS_L1X5`o!T z>hg;yO$N*Pb0*RBRs)$qwC6>i&4f%yOFd}hN`^5)8Nv3N9f42e9)f1jNm*tni&)9W z-T$~=)|J)g*Ny3ftFSAaY8f6f@1I7~pxw~(&Y|!Q!fqvw$X~P2LSf}Tq0P6;I3Pl! zI7LIdMrdh@sD40qf?-`>iw*yx?e$9h@-wk z2dMg**TtwM!FD?%ugTBjsCyWElCD0OFQmYYi;kNI;WQgS4WFW_62>0}Epu(Q$GAta z#xXc}nu9>ntr5;Z0+4KxK) zDxpALHcL3IxPb5j72{A#3(?=?$^8C-=nhF`;Bk5d!Xb}b2{P^9Coi$oV~J74NQ*#h zK6&e2ZUUM2RN;r#D;UPr!qil-?EBMTf2xXne7>CzNKEv4bH#pZ%X7^+)0r|>CD-h2 zE{y}5TvK#yWA=fX!mbccQhSOA`SZBM-7m4fT9opoOH`;ks)oLCfBLhM)~pH|Ax8(~ zU|g2xk5A*SgrK7~gVv?UXi(8U;cCOJ`x5E)W;g0S!Ktx!CXQN^_wQ70DV}!YcCVQO z_8aH2jpuGBD?iKq+ff2>A%dxeY_N$qSdN!#rUbs;byO6}Mr1qqn2ReBca3m74xil= zWs*fFHX3$SCEK%%5XYn7`o*(_pJS$|dD73Z)f1TB2$mP}A*vCrX#vZApyO8st`uMi zYjqxtG)cqHJf82%I>ctAb_OE@Aw81Xh->6qDI{bsFxiZH*%b7W@}lHclt7t*YgqY_ zW2kPVBH1CIc1vAy=2G_BzDFK

FiT7AgIPjiPmSW-9%xn6VLCSjDbVuJ@VAW*VPDBAw;fFC1Zxn`EETFz=g-?Pg3bAMN5>J znK&L8euPyDrJ2fHO8Y$jeVJ4*&8BkI|m^$!adq{9yr42KimVS zS6z{qL&G_BGq@SxM{biY#z#CL0r@`H3)fpvc^+El*#}TETLC&gWU1@C2spx?#7<;9 zO}JB_DXF>gu!tqN&_zdFmx*0w6{O>jU?`~1FUaAa(T}-jE~96muFkz)+2fG3)KFul zj_zKLw;IY`4p7$u8Z++t(v`me*Hnzo%gdiLf6$H?@eAEpMcI*gNWEK-aWWdqm<~{q z#Sn2Q{J1)?ntZ!?@kbUt>oj3`LoTQ^=JD_AWM_ZMdAvf4H>|gk`$U0;Czhu+&$x+s z;M$l{8;<5|=upQ;#o=xbc^wByh<5f3zqj$pLZj5*|71tPe1%b2M`K#d{$bbLyk61z zKwWkikbw3l%C8W~=@1i!QJzh-AX|uctPg`IS`VjCUBjMHD_hZho2+5i?7QLZz9(rF z1S{v7CQ4AAFn_N#?h`;95ibSMHMRPcL7m8VjVfq4t#Fc*A zG}np+)ryBWKE2oy(_iZ;pX80iTvLJf^00OOl(Um3cO&RpO14-4Si(d&oD5BP{1m|u zkQX}~#M{BPAtvy^nA<;5-AO?tb)9MPEtIBd0;%sbe^v$3)iyFp86HW6YA{K9Y}m%g z$o7r>AlZ2)?%4RNvyQ+GE!(;jv}5*6K=*R7ow0j2x7bK$owJ4;gTV)vc5!UPDYFtH z?HI|yE&o{Ct3fpFft4p6C~3bnzJ=ICM@RX9m0V+q-10Rs)Lr%dNM{rmL=ZmN0N-b@Wv@i?1-89(hlM^h$Sy=J6oJIu z7<+ULkH;-wPs%8vcqBQRS@GlPU^W5;3IKGzgln_Xbv8>55@=pib-aAqSV51pMv$Iu zp`rbJpDnm5+fpH43hF>xA)FwUyv{YKj2I@iB) zpNeLd)TwH_7U|%EKFs3N`wSvB77-RT6f9|^Pw^7OCsw52E1K|pveeN^R``!4zG3+p zj7%N3^t?E^(mk_3O#iazZEzRNh!ST!G5dZL@hv`Up|MG7e+dqJ)7e!jHhKk_{E0Ht z(eGNJtuVF=VSurkUIt%Hs}(t&Yosl!)CHzuznXW4`$z4;)qe7OKPJ9n$n}_c?MG3R z6Hx3MCB`y3!gyMb%AT6_C9WSyqX0<__Lmnj3Ox?LF?fXlD$=L0$!CAHSoja}m80m5 z6n(J??hUx2MH;~RS~PLK(}7(fPVt?|`^=h=DD{p^V(vT=G0};eqZ|LMl^m>9frJ+9 zMAlbdjX`)kEkL4*dB$)7yDZagdTW3Gy-jUL z&B;ok$^y9#VtbsDH3LpdnTglS%ou^3PFv_JulR+N>do-jn&9kM%AJq_j5)jT?O7Zl z6gir=@obb@$Ni8zS9p|GCx)SDhyQxxAZ3HT?3G>#>Pz|28rmNupYm(y`ZYgkFnVmR zLjEjWmfJ##8!6%Sz+-2Qwc_5h%^4#+>WNk;$bN#|`FEtodZUd`ef|(Ffk$_5>{gW5 zfKjCT(?;bP)Jn-vYb;Uh1KOJTn-mE?AC`fI#+_UxAnGoNP7YequT&Dv%_02>1tt!4 zxI5$?mOS-Vm8Edyl>Z?U253?Q^N3Y@e56Z^LGQE8DTdpCimsm)piIE!W^MI8%lFk? zo0md$XsPcsBE!dU&$~ZR7H{O+Ok@JGj*j|6YeuEYJKiw>?VLm%zXO5FO!C8}9@?Eu z9j>%?({5Y{C1fXH4GhQUaRsTgQ=_y-00c&l?Ak^==zKGj?-M!esbJrkEsx5lyF#YZ zW?L?=QS6wk(K0c>ejjQk!%E)%R}h4eb#jGQI3Mcy5*!)2r2a8}q8*@PVMt%YaSad* z0sk8}E1M(J4N{+W4NUA_>PmxN>d|_~e^4Q!K-BIAoq>(AoH6H2@6t?1b#_9hC#^Bp zaxr3^B!`fLz<$`#B%mMquNNRzwzH)LL-3*YPuUr!KWiC zY-EeJfUy0B+1o=!huK-JrdD^|L1@k(xAtHsCs|_{O=+qMo5XGmb5QU6;!mW9wwQGp z%x|f9oCQ<*e_jAutHgmx9peMwbWRR{_^qAsIxF) zxkqobK9$3%qd)wmmaLFs*kCsA@ZRe=uFJ+eZn#4DU=cfSih82TkyzC^10Sj;G^caU zqI{l%e3jOlLkn$uV{5#uVW}}D!v?rgTDIgCe};Qs1xoMgu`1=2omcX_HUw$#!ne=(7yvla3S-h-_K%l9;d8e1XsCaskWd;7@0vjYpUXZIu9FQ8&YSzK>hM0888YT2M zlzagcWGYY;L?`MJw(U)6TmFTKA9FrIisEU%%4QIC-718JgExj0ak7erzspq3xP-L7 zV6je{y{Y4w`>t}al9zwVJ-@jZew&MTuA>a33vB{TZ~vU*q>p|6d)pfI53pE_-wy3l z_%5ey;7d!B$m8l9TTQ6Y#6sA#_@}{x$7AG2uALim8_AbwK#Fx7TJkF{dU>Z?U+Kgx z&?|EeVqt#US(a7Vxm;e#MGPk0FlLv(b#+5Ic7=D5xYyqM2oR8e12jHm#~XKfDh??h z&r636{E;-`ZWm2Gwh-*yr+dE>kYZaJ;shk;wZzKdCbOekK}- z)S?cl0mUL~=9 ze~`{CMrZ_u)7g^}-^*}7eGloiRkEU&J?VsZwS(PX1#J`Dq_+oex-@^fkXC?49M@3v zj^v6iHfNOKvrip9Kh|N_b1`fYpeai%zB;IyLEhzpD^T4Q%JxRCpraUGdymgGeEe9~ zA!^q^M0nBQVA&i6nycvmKK7H(U%j>VHx~xB{2zG4Gi$PF0_$qDd}e~~;rT=Ipd4<^`!YchM3`VW zUj?~D)evmj{6r#IX~O($#n^wF=(GB9_@vOegVWIEx^)F?Dm5ytaa}FS&7OlDpC{Ak zn;sltjkL&x)aUuo`=AR@`TdDqktch?x@IwC`cq-gV!X9Gan76Jj6#Dh5F~a_>MS%~ z&sSF+&S=T*`IQ1KwAAQ*PlY_tu^#l6MG`Sx+JMBo2YPhn_Q@LT0H-CrgY-k|i*xAl z775%EnZMI0M|@wjxEcO zz?-nL-s7mMNbTZSktLkEVhZ!EYx+}WpK zdWhKQdas3(XAFztL#jcKC~%>9_(|P%1&)Vy=4l`AwFh8q;~WRYQ)Kx@agzU(48fZv zWxwP5l%muwpsvNWvlM=*Ff*kia0{j6IY z_ax5}Fc!R^Oeecvbwh-1w!RGNFj0CbYs$|XIe*XYrUBQZD51EvL{1W8WX!(;VHpRa zh`(Cy!_}!W;CQ-42NCd}6|*O6I$d@4REHaEE>cwl zwa-+G{hBZU`icIKQaX%4Pkx5t$1LVq#sX6CvUqLa1jA@EEnc-*g&wlY+hbvg5fvoL z;DkO$_tGVQ3T7NHEb9%1)@*(UWxdsr@{k|ghz_Muy=GzX4wJLvAFFtMow=c?VQ-ab z`Ks8IWY^)xcGw9dbV2OOO-xkF^h}@x!?5X;D>(6x*=Qj6#Hh~NtZ$!iTy*VMxtvz4 z&q&ET9nL0-RE^+Io&CZFuq`1C#JpEcx&NGv#RBogXOPvYNB&99)-n1O`Ru0?@i8z zesVofe>8RYaAub4?KP620Gmvdb~I&b->7o(7TSfIrMF0^0FQJ5QPK*Ct#kyES*oX0!ZR zh7Hhgj*~-q5h7*7uAHhWZVH7jj%bhvW=Fi#f5efjXmN$g>|l|P<3vjB5M2FxlAF$D zNM>-nj>NA&a1rbK!=Bp9DCh!gK)1}7_IPZvKLwHwvi-~~S3`-8uT0Z_wA<8{ZLqF5 z9YXV6+{$Or-cyPI?h2z0?Eb}^2#%ov>3PS08X)ooF20#IINWQB_V$>IhFH}_$m-#w z;<;ZC{T2rX@`&OvZ(wU02eCteuv01+K^JMTMP_wL^Z_<7(@zT{+Ol}vi z8JnW^k_Ai2_0f#t9+vM^iD@P;9gd!&MELJW$M)y4?Z?rxAA`7Hc|5uM5Q=h#Hr_9) z@n@t+>EqRMbqiv5xs7x!Lh~94*nr2uf>lRN4$4@}qUJupgeKn*~%0qFb z7Yc1?{bc0|0orOWGT6qR(lu_5TJ+zV&wSTj=Wu6Rq*`zr+kvGv2sm%DAgwmdxw{dF zf70!AZDk{ZT06XVK~@$MHK^Nf!P_ylk0n0Y*x%{UBB1vrhvt2v@%-FfEiLRDkQ>yj${TGU(7_QXqe4nE2 zavV`ps!SJ-X>4%!IK7AoMQZmDh_rxXe5{1mqZbWvyMR}I;%ER|Q1MJ3F0p{QtP!G8 zd#NSTVY3=hOh5R-+NpQZvoM=T`2+CYp%sak^MYt&iqSZvI!-mgt>xOIxj@@8?(#HxMbeqeI!8#GI7WH z1d;4pfqm{csF4$nyYKhqzGxgKHSSNc2uq>OU!&5|bEiAg_l?B!Y6uv8M-1=!mfd&B zTY*H>u7DP%LFLApQ{M|ONG+ysf#RsW^L?~;hctP>AG`LpQ>03)+|~X%INH!&!m4)H z=(}gj+4=CqOOZMAW1THMnYb*u$&XkSJ=L60q@6|s)9eOHL@Ls}*DHA<3sCMepT4Hh zT%kHb42x37X|_r-j*Ok;-+4EzS{0`wgqSscS`6ZLr?ah1D-fg#(i_o%7P}f|2EXiC z8v21CWit`8t;cjEC4nF;nl=D3Ab!BJP$#xx>t|Y(ea*p87_9644A=k0(RJAH{Y+lj z0YT7#c6YahuM-*PXF?q!M0wlQ?FB}v0_Y~rTm!Ker2$$VmH;Kx)8!-c5FZw!4C6Et z3uhf6+CoJQQuHk-9doeB7oa)cjYc|4)ry$D1yNa?_4gHciRrO_qLgL9{Tyh?>Ui09 zLcEA`>cgClt7lniIpmx{MKSkf3z)LzXS@gUfj&x%CgaqcNM`#$(oR_JYI?b`U!8oXUgUMo5z-Hb3jJB6sTiyfjh3!(UYL z1z|r=h0Vm#@h3->NAWer=1^s$rNWic0!DsD@3A?mHI8et)u-7Bs~jty26y87VX4+> zHG>9}{hH4@&+_Sh&b+0|a8ekFZcwcZzD5vC?lV12A}!j`O&qV09WSnN<;YZ#`p!l& z5s#?$rwWHda^ux&vT=leyPlp|t>tHd<8)P|ml$VT)EO6w(VCi)1bTw5a{~_W#Vufq z@568bl*0$kQ1;QFy(^3NaC*KGlHE0Rpgu3(;Fag^>3RJaGf1G5*p@T>IUueCHB+?$ zHcflkVchwUZXR?aBewfp2Gk7UOE5}ZYI9{3<2`^AkBifnM0pl2beyXU479A{wd-(= zkZ#D`3D?`dH3(7vj}+1mP;OR^qzmzHTwgD0)EAD>OeP2L50@;D^0#Y1CvbB`%EZ)_ z?EJ4rv-uw}7lbbU%oCYF;0X6GG+9@DJLZ_8%}YQ+j4#VFj3W)fyfAlOGgmoyohaES zP>wmhWaZOh+zc1Y4?6C^bK6o?(dhbhlPwrR?z_(pSn^RCGwPCdbV?1TEl~ut?pTfh zAQiC0i6(-R#Kbx=y%2fmDyB_=H230P~9xJ_<%vXBy-Fnrxo z?VFqt`z-~VG3yZ1i9Y0^fL96WK!2r62?+BE?5$nM02G)4KehW-}4CJpc$<#idg( zNaA8NsXJ%ZM+AoD*9D2YL%oSy|8%)-TTw*f7$?kxBU^OUSd&1JPGXk4tW9fB*iN^k zNst05_280RYp>qV*k05iPuv1p3icgK3P}E#kd6y2KZ!`EZ+DPF9v)vB_Z9+FJdBeF z4FqsxAS3EQ-n>#JkM0h)eU-&0r<$WN$g?)V3>`Xj_XW=k`esGA6}1y5`HlPEOl|_S zeqV=*)iAn&UYZQ%6pdi+YE4g{bEtNPQ|JCJ(`8E9J7XmFS=|$Qsc7&juXAjZ>JXQ> zr0J>h@`b}^){QP6bD@_WtxUmd=VWLtU!G#phT#|KlJb?(7+(x6+ofc|Se^K`5(bTlHRjT=<+Kv^V&Nta^mw53_PE$ zw6xSco16SA8pveius30cmSf1%o+cfA1FS@@?$5Lwp$|`=If^UjKA%{cikDFeEq#_h z(Z#0@0!RXr=kY@m7#DkIv&K+esmb898$SsH z>JkmUb!Ue87OIosk}#8)V}zasa_=CxMk~pdj3ab{gDX3H|7z>IDqbBbz@ziemBG9W zSL11`LZ~M*Yp`>CQwc4b#I~MTsx22d@71o zRp#c3TQ_sKu{bf$Ebz+V_#g-Dc zEK?Ueln@k|*ye%(14kK|@pGKoCm+eeA(@IDCw|Or?qUoCG-DMaFzw3eo5O|nt^0ks zORz;x`=v7-hLSN}qK|DU3B#i#G%fIs9s%YUU0sOHf&;^o1lzSh!csVV9V7K}(Y>qO zNEHRU>U6Qp7nKPZy6h|)uip`cZ=aioTN1JpRK;e__{aT4fZ-yHaz2YexMkX6gW%PHlw@>%(**;8)b`YTsgrY?-4(pA@4lGV03w7PePvA)Ptjlth~ z|GtOcf~QG0$#X3z)0-m4aZ8Z{6OufU=>jHnnTL}DI|1}lKXdBR-7?K0jXyxv4}<38 z*qYImqoQ%sv$iXoSK4V#Nd_sP^v8;6e7cE@4|Pn?sh4#5$?y3!^x8%ZKMt2Xm!Y~J zk}H=#n*7EbCL*N7gEd&Gy(XT#u(==PsTXI$2qb5Jin+b)Kq&RlbA#i}=7W{8TXb;8 z6gY>Bk|8P#x09JV6?<>0(Y4Zh ztSwXga`fBoMrj|1`X0rj62pgiD)5%w9qq9Ql_(HGPG17}p!rH=9iP!KLJJc?tN%sU z?A*pId>~A5&ontxZJo*`8GKKmr0kQ{QR1z5$T-;0M!cNU51Yj8=c4V`|l(T1zC{h5fNSpsVP#ZxW14vo<5Qpb{VKvM-iv#f;{& z_jPt>X;`F24o z`_4nfDKWYze*H*bQ;&_4#vM=~G;O#gmkhq4tG~fD$c3fG)F- z*M8i&HWO4WI=&mqF2;zq$}|!KSWOxjr~GcuEsG)smU_~TAm5Akce-{CmsMFM=t%>2 z^0TAc_KS>OCeYkhRTv;gp84z99h22lF*jm3Yax;mE*NLqvVO~Pi-_zM)tQ~s9zShq zQ5STdcA3JIk5Q=Gzp{DOIB`CEGxO`oFgQ5uWm{v(j@!KR`w_9~&7)1I&%mH;%B2)v zj$DTz%EvLg^>|56qI_e3z&apd5?d) z@U4ntSHQo>ahpe0D{#T@zw}em^INDdg5$@N4W$A;VqNNpXMY*3mnCn2x=*xv*9Sj| z1wzuA$E^NfWZ#}+fmL5Xj~yLYy*<-je`yY|U#P9;mWotqCQVoaF7$}bKpdgr(sDY^$zi||Y9d%z7(RU4 z86<1O!=2Fb)o&KiF^|iy&-u1C^@Lerps)%uEiu3G7QB|yqJgprfux%>FlT(UyKJh0 zHa@2N@rEdN=6uQ>Kwkfbr3$~WKa-KUU6vR$B}|WuhCiO#26pe(6({XU*rsX-%6OT< z12C5v87SPmCy1K}(nk+cp$yWilKGG}l+u&w^Nf;DrF*2r) zp!u2i$tF08Rir|VzJ@is`#_`?&Yyq0WQdCSxz&e^gd#-W#Fh`nVzF7#zDDPC? z{R@HDWJf_OiuxS(gzoMI?h?T|$g7f@*Mne0howoXKYx$&Q>*7I7~!)zV_3s!3I}*} z!+g^z!v=P0M)>#fu#gGd(aNclS(BY4dCVm&Z{BHR4_;}yb~Zl}rHQ+EJ&tYlo8LYc zwZ-9RvS)vqljK2v^I+>jakUgSjasv7mDpWSTYsis*c9 zxCGRNAt`7kd$iBOj6U#K9N(AU+C$M>)vlP{Lu_joseOwAPang~Bu&ZdZr}?2ty_L6 zTx=%5 z{|FSdQwz)BQD5WD7Lc@;Jq zVs4f`E1{>XVvXnt6i*FYvVYvn#@ok{K zKY8--YjsJDFRzk!LrqR37HUZegG4VMUJI6DozbC+4Uo5T4{wu%ZgqEALqUdOp{f>i zfcd*0>cUvPAI`#pU`OkA_wccKd`1bCEwj84%cpN%f*lB|h>)Z1*7=LpRBw2eThf5> zB-Ca4VPq(XED;oL-(+J?9~jrpa7~@Pc*nF>@(3-X3b#i7(zcuK=8t#0Ez|hc=&GKE z9vJVUoFQ<1&c@*nBM6+tJW=R7m@bg=pT;`)iiq9Jb38Scp3dnM;&3QH|5%bDg2y?F zGXP2ZRv_$5J``v1zBnocg3oU6I@l>wlpWYmu7xdoq8=LJ65enw|I{+O-}G>&*td4P zfhzkgh&K`Y2FaZODIw+_QJLg4<0VRn)@$(Ox4g?XL zqJe@x?NKg7oGPccnFN7T#YtsmCHFNJOLW9ln~|+AQlZnVKXMQaSld3IU2{C=?~xUd zOW#|FmjzA5bt}*9J;mqoWscz{!=YJP<2&eUxNu_5cj6^}-pM)#xc1(WA?MGWG6F^= zU2&2hZ<&&oZ^mnnR8A?+;*afc@ZX%jWa)QXIRlM(jmi%ei}gJ8QM}q|^Sl8xza559 zN;6Ctpz?p|#wrHeTyS!qP(y%<;=y_djVt{!{MoVsojF=`CLzttxkCoj2o>%U_ATAR zRh>>dS}p|hJ>G|}L%^4OFr8;Ua+7rc8ynkxEQJP9MC0Fo4u-so3jpC=H2-*|sXLVu zF>&j{bIpTPp+sY|>6P%-N6(2!Gw=VUsOf-{S+udso+*12)Z0_3NqrAuXzI&vni^z- zz{Un@o_AqmmhZ9ey<)Vv_T}TZL@iauwcFUQS~q4}D?WaXIK6TH`o^#182^!{1XQ7l zg*;2E*I?Ovy*s+v(RfEL#va+BbIC}j)mOR34XD-+3< zB&D!n|M=~fB15qe@fHzlcTBHDKykI8CTAwF_r!G=Ft%7yWzG4`rs`dZAj*27Nux^X z=)NEcuFG6Ejh=db!gY!&rYiJ4qsn%K!1@7;#huBY`YL=N{_L}-S3lsyLaO$qv@{)` z-lj2|JDA!lx{Mbd(qhR7G%1>h)MJOB28&h974kGPQinFi$sQUQQSmJdM6BK$T(j>% z*0w~iu&PP9E$KQPr@u_#XRQxY=M(yEm)0J61#=$meu0KzVyJ~t$oTj0!p&0SpIxFs zO_9exr<`O|`38ef1pH}|CF`yvYM;u*D$vr$__6pl?Mv?MzfZ=GwSBC7S5z8_Zr%;I zIQh6-MnGMLXM5BgA`+GM zJ8K-o!A6@c>y#j0=hPx;X)|09wPymxqjQKha_w&Jls+-&i3zeq4G|)T{KX5=f-UOu zEFk!@0g{ZNpjZzbz%(%KADq$)SG)=u;2D&m(%VCx${gx1%vbs$Ml(atp2pwoRs7gs z?|yfEuGa@MkvktP9tsb5LGa3^7=k(htDR+5?{hPVQe*C88{!PXT)gO@t%I8{C$hqu zAl-R9;!Y0I?koU^ju_=)X|=CMmu!T>?%E=myoweSE>udLa-u)MPsc=HeCGoEqeq@3 zp@RDg(=o$!ll62R)e$98%<-&{@5*HeQJ}O(|=9^24=NKii63E3YH)u1= zoCkT)89jhjpSbeb+};Hh@MGL_`AbJLSpm7(dRVw$!*yMbl6I_jP|0t ztyz-qIaux6Z4;lSuz-WobaJ?P9>yXarV_aj&t)~AL=#HS*JJ~qMj1e=S3iZ(xok{v zE2RVl9q(b3V#;_ghe9#~Y^U|0swL4x1jAH+sJehXB3NGcxkFuJu5SEybude2^E!5rtV z-YyglIX!ISSh^=SM4=`{ph*kzN%kc<|J@Dl8JUP|1c$j*_b6|jCb6Rf%&&R&F}0jy zn&LSPFCzBsOg`RB_Rz#!uV2RQdj0puYR^m)UjcnwdeE!jUS+b3Rj5xUSI>eEvy$K5YJH!PXQ4^M+7(w z+u|aF&^Q8^y1OqCF{~M(^3i6>i$ZV2(5aU6hqxIqVF0O*0l?l?ngA*rFw+P0`jmA+ zS8Bgwg+%ApW!+dP2W^m!LzAt@j9Jy==n6%gMv*P#z{7Mlt24ij@VS6)L4QTYl9sob zk||S!*WuTnn10~k!7Vu4zhP_rRhW$r_n8r8+{&;$`e~CuFY@jgG-4cGF_|8(WePlti6gEC`=^8*Xu!ec=(7XonneurQ!+;{l*4SQymVfL=8c z#n3pj4gfY7XjA&dIxll9G5?Kcv8|kx2{VIwvx>6Ws!?|c!{5!l8c~{#%nr7=;jvi) zw3a^@FA+>=2C&;Q6je-j7AvB?llTNktZgOT@0hx9Z{;l-53!6G3GP{Xg=H#Uxa$nc zFWQd%$?Uv7Z($`Efi^8yg$=&7?Uha&lxOWfw7#5jB%0e9AwbfWg@H7s%M{xr_vWh@ zwwFTb*)P8w!qnojHOr!mrOuN|m?IGKNTGW2ty8P^hnzibvc9KsIddR{du$!DmPpa< zLcFJ;qSyE0l<@s#Q}$Uem~kUJfVvTciixzDG<5@sA0~NntD-%iLb%~1Opil)PdegY zpsJyu2UDcVpZl`BgZDe zfQ-7cWhI}^t~~VSB%=G6xq(|u+#Lv_ze%JPJ}(KKQv`oLhEb)vZwDAFGQcV`v|pTi zlVMkR(JN<0{s(6STo&?F>G7BSUYo%e4?UeT+nD7bqcTFi%Bd^U456BYgr7#?D5^jx z?R~({zkzV%`o;F`Bx6lR@cyDP8aOVNDb>uoOj?SdqJn($^EP@`!$!f&D0+H2sV&?& z5D{_T;MR0i(r)&5+)4FjjRte!8Ck#}auF*-DJuF8tXj)N-$;ht^+oiyBEf~{XJ5;w z2yyMmNs2xaaVW0#UavXoVAa=H|H~oYC}~g9Y;-_+Qll_%6r-Q;3A>oRbz`OrQKFlmxTON_hoKCjNOWtNq8Gj+;qRUS~iv6b(cs5zDj&vZfLO4D{woE zIb2DlN*ewN)gD{-<=j`^hkrVe`*rW}9RUm!uuGK{3vM7-oORXERU^?`6apG4YZ|GH z-9waM(Uzd$ux;D6ZQEvsZQHhO+qP{xBEz;iUscyyHRwSP@9Yfj=$yU3f1bHQOqzU} zklXhGmY86jmb~}=qn!-iIer-H>)+NJh1E!x%JslLz#WU|Y8G^i^FY-=Xk3C`r?|CA zRX3>qo93pW%L_c>wdB;PZA|l$yZC+DFws^Ga3Hn+nzA`TE6K4?Jk9x~13+>)6Rk(sn&t z@&pSMFtL9>xYW7ajH11xL2{p=PJyHlw%-A@Q=*Sw8J^g}Z4*70e|1uZqVL3OVzx}C zjqh0W7#Tm@jKU7XYFh(57r%>sR|u+5zl!-CveVGpZudd%>}>DAk)E>|^Bh-_K1s$i ze7>-_)^jq;^WU%8YXvriU?7~oRw5Af`Bhit%?E!GqmAJPHTyH!Y==l^TIMHFuW$cJ z#+pGA3O??Dn1b1sfR=(!5(3MJj8{m|duu7ft-+&vIv#X;?zi|hf`GAS^)4%?;TrP0MOc!`;F&p5PgH15nm z<+@>9{dEYB+itWl(?6cH&h}e1*euQ^00f`Or+p>_`v@|3Hq}@|N7Ux;!O#n?$bDbmK|ZYt~Dlm zlR6@%hBwTKiH{vRl4S55>m8xg=%e*_()*OP?y_@DA9+NL3n`;)f~ciudb?{fi@&%V{Vb(JDZqrUx!9onqEE)ll0)nFX6CQe=j`cnz8@6n`TE*st#1p7{`zz(nmS5GN4d$%Jh~RMV`jjb^HE6e zjonAV9d1=Tf&?awwhTe?MdVFDrqou#8g($OK=%~x(|{ZE3=~stSk$v}&0MvRx6(Bp zXQFl{em)SOY&JdL8Ji;)cW3Egf9{AU(v@vDe98(+LiX*eor=!Q^^a)FY1 zwXdO3vP-Z{WS=cEX!56otYiPk%wiISR;7Wd6oWS<|^Mi*IDwJiAU`0oduh#;Sm)n2{{?iAVt#hcue7DNIgZ z{7Y$FC14j0>LWJBWEzTy%}O3!PAHOES?Qlh)tsA)i|8!umZ}XkA${A{2;d7Fbf}o~ zu6)92*OE~J{t#T%txi{@pil4BanL?cF6I~ z4cXelkIp*M+Kd;LlCOm@ zH|cXi?K;TII$21lhC)?_j)b&xx8+a8UnKoW@ODnFSVadu569lAi~nOH=nwagvFF{X05WAfi0 z4@!P4_rMu02P+!Z3zd7SY0Idw!;YED8Jnm^v^C#`cVv$@ssw=&dMX8h%Bu^HGxnh-|IcW>E3a26pCD08aR%?_2cYEUL`HDcDul&CdIWNqGs@VnV0sHJa124uwpG#z(B_&L@AW{H!S-c zg^a;@-Qyarx!`F=?Mi#>-<4m!ptL72X#r?65)-p%0H+FBHTClq-4zm}&Q1}8-1WX| z3H9(Ca+EWHXHTsSrxv&>5x>Cto?y2~%9HIg(J|=o+PkfwsNjFK|aL<{;wZ z3xLy7$1RI~)m!USALSNY)#hJTYA)<~FU_JR-->I%X;}jzlYmFKI7SBMYiYgbem1T`*v!FTKCp5Zsqqq?8fqlU?A%X z5U20GQ9M0QlnJXS0$;e$ANa|u6pQqpvkO%mZQ;9xpbmBu2r$8FHt8non3l2Vug=q2 z9JDw_ayVel1Byd3@%Ok`IFo`l9=^4mk#)>BYe8L3ox+dMK1>VQKj51xNr5n7L$3j^ zncsXYH~JJmq?&wg$?dvI-cf0TUCJ4f+8V}UpM%sB5yQ0q0OQeo<^*3i;DwHVMQfS# zQy;v`Z$WQ^m&>WWov@P52&I7)u6xhoJx=|t=IYe?n7U$AIPV1}YS1uh_15_@)jo=< zI(8@(qq2M#CHH|U;hyIXpzo5B9+^V~GVhE{&5)`|Ih6|;0yq?b>*+CTLd6wID^lvS zJShqumqNsgky&@4va?}XAEr{mqTY!A?%R7Ro_rAZ59BjJO)AP2lM}1dkLQmxkP9az z?tHH`!{yr|Q0J6!q<+#hw%}z+V)c!1{yBUl8Lq}76)ur>D~nHFcxDD>wJWCSTb20; z9kJ9{c4c<#s|`rb&oS9xN`_kBq+zgZT6_ypV%m0=s~r)Twp)$LWfT5tE()aGf(-1x z{Ok&u;v7P&9>xtkU+x;^T3}!A`X@YoDgCwpnCA1lXR3thd0q^2sj>mt26Y ztbq-5%I%|a>;gO`;1f`ZB-1R!GSBgmiF;Fqzhe%MS)q2Qz2H#JhI5Zeu4YkfY>9b~P$|##~Y(zrm}rv>ZPv>d2Ht5*E&& zR=dt(LPfD|V7o!6bBI_eFrV=0K;dFi0DZ*{Xw*b}k~mE)&bc3l)ffcrsBl?!oo#Ox zJ^MrDM6sX)94j*+Z{#6i(!JXroc&b6o1u=<*KcDKC4!Xbw%Yd>^w@(2e{6&c3qGg& z;?J!FZ>KN=D>TJSJn6Q@X)c6~vG$Y)RKn1U!y5L+Lybb1Q)VYXW5sXaJU&0ge9JEw z4eHypbXMjx%#x#iKCq_Q;JDHznZFcz~PYPKMZz18vws)9)cow zEOCQ=VNlJ0;+lnlcvJYau{DX?tCXf8G~L4-ME-`g6vPHKt_LD=8QP-e@O@AU6iDDn zD^Pt^ui`D*mD%dbe>W6L5=I~op#JFI+>&6}kwj>BB~Dg%+m|y)N1|wj!la1MwUuK~!m(?M zI7|U(sv4uES`-e_L&mBDR$&L{jb0^#mAM#uw(kg}AyxF9*&+Gwny-vSGQWD=^8TaK z&a`|(DD1c_bre0O-GwkGaIV)-OP%S8aT}4{sAr%1^Sa|A@)mS@FAW#$#i<*jl#bba-$59AK+EHpHtG?|X06KD9sZ!%DhZD*O zQq-zSO;dhhl}b9BZ{bXy@ML zbu;BWFJ)p+tGoC*aGjU}Vj;$6S~IsYdB$V|b6YgbXyvJ6K->MJPq(2|vGYk}N#*y^ zQ-{~gc@IMwY(LOyg*d^vl<+lXXAI{64Lx&63L*jD1Rv<-?_g(Lg8hBTU@DB>dpQ;KGhN_}3K?}Cbx+50SW+m5J!tDy+oP6p4WDrsN;0o`B z47o;#f;eOVg7amj?7fxq z8ecMxU*4#7jmRL>DBHi7bm@vd9IVpAK;!!x)WwYR z6nkPeR2NsWvOO!S$j|7Q^HS6|9RGzXQ!Q#I)D=2{FWM_mHSLl4N!l*0px)W#rZ#yv z*k#<%|8hCHRMx)Sb7H%F@YtryiLBetsV*`xS&B-cRCk!F6V-fmrQ4gNP0Z83is6rp3ZIQLM*x_*dl zyuwW&$9p{QIKc-1s8KOUnj@aKYb3B3S~$*;K!KYsr|FskvntSgXptX`-J>BBc?}@1 z7}d3dc){A7kmf4QT_4p!0+3Q^loX>i%rtH?Z7kNWxhXbN)v$uurrGOx&EOZ@TNZkX zmE+0?d0>klJ_uG#5{2bzmq58LNP4W(w&T&;D4B4s*0LO>ZLb$1y}Q!|`JknZo7&h8 zd}A6!;vIrre_J|#Vxx^-$nL^->YgsPKUNC18d?A&X#`s?<%8SdjlED)+_9b&huF#t zbX02Yfp8B5TpsK*5*NC4@XGnl7l%gM6+GgTl9S2TrpG9Zua^JjjRJbjbOQ8oYhp4Z zq?J4siV~rj5cfvXSkCH6pS>P;%W^r1^2BS$`Q91@a$84XjxKbh{)*jETOgF!1a#B* zLwQ&5XbTismf@-(EVl#4*2EcVg*P41Pa;^BN%>Alf`j$c`a1@_bni$HoBXHPN1ZE0}LOE6b${v-S zpFkqRTEi)SLPtu6M_Ou&TlE0dd6iuD$>Ut-K)0{O0d8OA?pq3@bqE3>^VShCck~S0 zSUL%07t?p#Zi=aB8m&B(8DkhZ2{v! z68rZgQ^;AEX9ThB{%V-7@j}{VM#FhN;>%DbqZ9BB_~w1@<#!)7K^OJ_ z_Dkp${5H0)ruD;M^^-U?)Wb$JGAC5W>2TPRJ{09vw${7+G4j5Cu-i`Z7FFh z64`f&I?@AG$)X^??gPt)9LVsGNq|vwHZzmYL`*_0&FRbLdB7_Qbh0?_30C*%LpyJS z%xUG1b$a8!_ND|*@FzTg5WtPPPx+?B0K7BNSPmkjrK~s9-k;l}|Ca~P`Tz9bnHl~E zfM+6LWM^k*`k&AL?ZGp0urV?H|9bFk#_oS~n`m*ia35p;LGWX(Iol3ntu{@@Tds=@ z3k^F9YjdBzUbjxyPQE!!el@ICDlwIsMW@}XMC58p|1@|P2DT*odho^n*5G@sC@?oR zu`;wc#~1wE>Y0JQSeu3tlA^e>Fac|Du12E$|L_37GAsM1XF&Rgfc8(%%)pAnA-LE- zIkz^}g8-HPI4UeHE`Fz-;G_FDocR&>5$jgdTmho^>2FV4>rx{F?wd7o*o*WzQ+%T+c!V8Haj_dc*Qk10jjrWYXtwf z2Al^pFtszfwEU0<^t(QV`=uIR*f^*Q+tI(G&qxe{o*xDzaoPZrzjBk&Q1zot7Qby?DS9I>x89fxPWC_CLg%+60IIyWGXTGS zT(BPCOTRi_L*zt<`+#?)W~ciA^G)^*KfL}l(*U+?YI(oHH-3nWziV2%5Pz*t0Ot*j z42+C^q(A18&hxf^Edc(0vtv1UA%idZ{SgN>H?jM0+x}U)gSS4sxcX8*@!J9LYx~8& z^n>lq$Oy}T+}>;qg0!o5@l*q=hoiPLk&-dXkHhpP8E&XnY-ykG8!cF)=k-qOn!M{_ z3oft-J!{%|T+28bD}b3<(7-RHHMOhUPzCITr*!cnyg(BrC%;xCDDuTL8to8ketk~d zh6`o`Px@HcO@46uUUZ`f%#c$vOTRR;^iygR@^fw^7bnqAY7XUyrb{M6Xzna*a*8ZY zIwPMfxL-&(*wr5Y5$4(4=Fo7|Bc|C)W`+2dBY-k`C1#u|=z$>%g)muF| z19Bf|^IyE|Y{J!WqoZ6!cTla%0-XV=uoK0CX+ug)Wr6ohg&Z^nZYOaku{h;uCBTOlSWW5D%{r{a-+QUKUbSViJWLuI2-V4j*I6fO{Iv8eNI+?3+@|*KLmX>oAb$uQ9|Uzp-yyU zI&E$0JR^wqTi@5Y$ZxUt+;Mlml(j#maps|rBYj2NeH{nCU`hla2EaH64|wUmM3BH( zp$>i#w7t>i*v&H@!6T?|3|XyGI_nFdS$*hWUH08-z*B9q7DQotI2iUJ1ye|VqP|^w zH1js1{ERBE7orPp<{3aMOuT=W?JIeoAtK;5S;yBg@3);^?t6khQ22+sOj4_U+Vhv&)e zh|)|4NiA^lICBTiL0sO9wn=r2>J?vEvRn z@;zajFePnaD>S*JC>93s)@SN4<8PE~mp4yipH0sN+Eo)Ct?yk&9y7+x|2^FjI20%* zFLPbq$>HT={A?c0Yu{y(+FBr;@QeC9B%5sw#}GwHgh^}qWZoZKhP5Cdw*4gz2$U(| zC#id$%briCYu|xXIaveWv&7Kovx<2E_iNJ&z^(0TAv0RM^}(-Nb?l)mnT=_+XQAkc z*Oe0fRp$&()VJf?Y0?5pk?u}Km}_f@E6oRQF&;;|b1(Nj0oAYz@P%vrU^_94e^(3m zY&aafo=I|Q2~O?{&f0bj>(jO5%y@TRsXGi>A1kG_q5r=^yx@O?c>RUBuihO#fQjY* z65=Phd|Y6skRvgSS}{8;@&3p*a9)W*Elw4OiWuQsIymW#Uk}^uaCUu3ggt3Ok5{32 z=!^Q`$@aj=!8kd6sKsHi>;L`7!&B2!l^}DMP2Fu{tkStp(hAf&Q96 z1N4pb-PzIAGH4gX9vQwBn#6X;Z)DA-O=AbfM!+K>DhFRQbqD`EYz$#P(BD5q7{TH#LIB}A;P^5>&(?v4_4z_v2r78XS=KB&=jGt)578A5$U4!+uBsK9wB6zzVbE@cO z^iR~TqQo(egbIz5;PoYxnJCoMEujTs5CTs@i8N(hj{ih4agN)|hxZCwBm=6&7i2~nCFF87M_V{N3dH^}~oUTQ@j|Zt1vu}LU9gMh$O0EOz%)Vm0cvCeE$X*Cu?xSbk4*`oi?`9xj$d&O} zmpF$|>^TtqKhA|$E&24=y>XS&{8^g}?%7{#?1~h7%0b~se$|JPR`Ub5o?hRflMv*2 z?AuDIt~M*Tn#!=t;Jv12OV;!mH<^%Gp&MD*IL_e7Gq;>@9=JlMIe*n$gfu13mM9rC zZTt*_uu_~AEV3ke{paBNvO@>5Pwu}pu^(pf@1QJVF1oLTbYRkX#|L$Re<3SK#Hh=t z3GdVCBK429=~S_|$F4_Y<$X$X5k1DeJ`z&dJCY9D2` zy2S&@zE*8rb%tq3w<1av12w$4bg5u1`Bt1++s&lpKW!4jN?>AQ%7$~KxwPY*5 z(*OOo?_K@t<`8H{VSJfxO*AB>*? zGm9}Tl--Q+UZTDPZDpBpC;}H-5LiXfUTCu;mR<=hU#8nX{xB&k@}tyxPZRglXR`5i z@*BSV%%JRl)5ja;8g>QsTw=QrR3odbBcU_DLtCK&u+YoccjUi$_z?Bu zE=z5_9oq~M^4Bj5;+FPpBp|+6wE0#VlDX12gMZiVQC#IWj&{itaF@>Vbt zRlv*M$yuOWgX6r~YkF;HZ4?{I$E8vvOO>LtGnt-LFSEkjHsB?swR3@Ye)MSMG&l)| zf_&wa$PtK}oOQ2#IQMgisnCsx-)7&iRht|o$y+#tSb!u<@*9q#J1mvuhIXk~Pd|(VbC3x9&C{v_cxY;w z*xM1O(&j!yjqnBTX+}juNqrnYgSTYXrO0db++B*H5N-yjjqYGkF*38-d)#d%d!|1z~P&aAD?X=ZzH>ps$#{rW5H%9OvR~ zCVlqh+odBCRN;~uqUs6m>iiKj!psSFqrg;N)f>ViKs~V5Ss%NsE3kFw6cth0gbu3xcN5U)NwpU{;tUi za(4{#Y)+-O63ykJ%Nf+&nzipu{)!-NQYdLq?%gE3jp4&MEo^O5aOZ{gx?`jVZdRrrDI5vng5!kX%R%iIEq56{GC|BdKRfA0j z>6fV;dPh2^|DmzpDTLZOH1k3hCa)`eC7LvBGuD7%M z+2X#&Vb$n9A=~UzbQArBAB;$QPL)Gu7lG^XLZu5xE8#l+cWJGRP6IwL23CspGSD(I zu(A}o0X%U+R=fNjjZW2k-yOx^XHLljnUV=YuLZpcYKL>0Hn@NN^+seRIRZT*G)0d_ zo>0;p{+W*7Li`s?p(zNe!6{tL6is#*U z%iH;GF}QsP($cHArHcx1$zy6PEY)MQ zx_#F4Ar=^V7r0V83{x7>@|0FTz@j9;Q=AMoMEMB}HVqgusvu~@M+SanSwG{WggZ_2 z%$gcW7q5EhSE}w*2IM_12oVE{JbU#Pp9^z{iElWJGl#VLki2 z@aAM+-F-{Lvk@a1n}sB0sd|QJwv0OOLh31^b|!_*7%R#k^8obm za$k{;HG);h*8rhk;EtQfv@nWiQ-G}J#N#!4VoVTgTErkU$*BPFy12x&ET*mJs7TUmS~MS$yh*T?vy z$1e@D4-`ncja-CFjI{#xw!EAz)Ge+XH(QY5Xc4?ZiJ-HZyk4j1?_4!Bc?6JLrk!J6 zWaZQ#DuI+sC>mXn09qKU-$R}zkdXT-%#k#;c3uPZ)cMY zCvoA-&R~V)D|EFVQDZ%}0-$|HW!nhUEMuwU#p)K=tn~crrc;z=9^~8#8;B(3*wuF< z(@I@rTXOPDo`yksuercQ#i+~)<9t|aNgrF?8qINSLN z9ng2-f**WKJdjsfdld-6r4zZ9+B2k9q0nCvUH;2jcoXm|@w4TK=^=Ue_V;$_SK#C& zdPtih2wj+%8mfn#o<;Q<8VKQ(Zk`&QYPkX^vfH-VjA^nRv?N&f^SRWW3P~|KI@_Rq zoZ2tj>jw2KW7=nQlwdW7UDK9R&dCUecsax@7FsKv1Y2q1c-e8k`JT#bhnop6AX4dc z7)5KeCkU4;O#0D3Fk~0iT<+4@v+%U(U{4wenK=jwXng*;hMI29Dbhk%k0N&wmZl1x3t@h#Uli*z}R_h?b=A|`NfU*if@;rVKPQS(x5HB=4a)zp4i3p@^aS_g4-uoTA zIp6rLk^RVd$LhM`jqgMk{VZ4StTqp^E83)LN~Fe%=Kxc+tZPgoSgj~{lmU($sgr=j z!ONRLxPWpkJB)ZKm=~?iW@#5pe3-#KP`KCAZ>9-Bk%HGNoIPi&-TmsxaTzb6-fS*j zemkOoNsS_5*q7slt^cM)f0pQhUOq`9vFxl9DKWNu_lylHPfAjyEUh{eTzB-QJ2S>v z6rwDi>A+r1^rLMxQ^+pdr?%XiW*w}D8uJ_g?Vj8ln*p6Cs68;Xm5|)UCJsCtdLSr< z2*-97ygZg3roZi(g*$QmCE#=IF0ojNE(xLsmaOoMuJ17=0wRKWd~kwcyUdGtimQh? zF>Z<-%lL@*GftQ#trwr!Noq>BNAChutLp991XHBDS_i5}edM+XkMN=xKnW!@gx_U> zAHz?@K;F+%cAKMH5jF&Ky?PSHx9@HjKQ`Y2mFT@SX~k0zRW5oZWi(eGZg6f4eo*f% z>>rh=urN_7+O$M0SlsoHT#Kii#eI}p|Go!$l|rB@fNJ> zuN9|K=>>@mil`G9pHANvrY3fx4%a19$N0I>P^ko4*_i?iHYFrE&u;aMn-bSBm$eu) zEr!)cT-HUUyZ*R0Y_~@o?A6BPtUFQ%If93RT~zAFRYTQ6E*Bh<)MZb4py93An`H5l zE{hQmOZ$muwWv})!^b^hO1TW#COu3O5VW03Em0*2_g9e=_is`JRyiu&R<5s3ns^p= zSVM*-<&)(pyO>crgT5-!VBE2&MB3R^*Ij89weBR3TRE=c@EeS9hq}V~fq-ivw{9t* zM5fw_ZT{!lMOyH^7Wv{7?&o_~EC8^?AIRrA&}KU6gp5yFxj__z2dBMK-&=N@p85>w z0XK^=eOtb&VKw>`%cZCb){aCMwk7O4d;})vmpycdGSPhy1E6w2ZH2XR(@BCQj}3-J z2mPqB@Y*xbG_D(K#$|E}?C-zswh;>_>FsD)xmSpay_$=Twg%y4(whoBEG^o(^3Gy6 z&fsljv^+`vUta=YiXB4{PjahYFSr<&>nywsnL(aI#UPd$Y*fXT%v*{MChzmZ z{U4>(*HRrPuKCVpeygSWYP!%*-VZC@bwfD_4OSOITeU)j4s6|6zh8^T(#Mx8dlI$- zvEfg-4m~)my8c&5)y}~Nu0eG_$oL^-!0JAmgq6$tSJ+q@YM$n~^GVE_}D9C5wyJgd6PZO&_<~zzQjNF0W5f7><$G*3}!Y_pz^(-dY3Qjg6Pi?m;3| zzo~TsZ!FlZo<2`ageyk-hPbjAgujdm^ehGVl_|S;frlq)u~E5GXD_gMo(U_-*!zsYbAS|!(bnKV1{T0#%$UO!{H@^3kcgU3p_L@3`p5NoAH)& zOlVyOY3jr&+F*ED`w8hMVgFtx=Xao_{GRmP_hqBo4yL z6c;a5uKMHr1{8%7jVvS$?f8+8o!-jO98z-nILO z%@m%YEz$&gGBgV4eLW;uf#g#5(9LiaYw~CH3_*LC$s2UKQtL4|zG4cv`)M}j zd$$%;skY)KXxJPDj4Z@VM8@5uPc>k1V2Vb}1h~i8^OH$C1e>F$`Myc6DyWXtXTJUN zk-x1(^aY=x;lg7RR?erS*ykt4pl+%o>B6!b7sK#|oftd2)G);Icb^tNK^UGg`lDYE ztkK`tRe~VXU8Z?4rdgC(zcER2J$Y9;5=qQk*x&);dTWp#KLpDfU$DfnQuavyFNm^l zNy?U|_3NF9!}yP`{(hR_Hopf7_`^r)M#B@{6VgvlwN_cnSvPFJYmGSf_j{y!_e6lZ4jeNoO{!7$=cGme*5_*O1D1Yd*YS{!*Pl#9c=ZKI0 zC>Q9h?lV0^@@pC{>)oL zw=@oKerq>aHV$&RqMrfY1JJiv2!@bAmH~bc9tdHyeCK+F3$oud=;G>0|MnA0c~7g*YUT;09jPPgNNbwy}(kf21)K zG0a{PEMcfTU`O&k$p;B^CY&)p-X8UL&4%MCC zN;njICQoyF#=&P**zwRz#|vzI8a8;j4V9Z9gVGYEfcyb8siX4pK;Fs?o=s?dJ#`e7 z^DGPf0tQEAgY&Cft7DPuGdJ?a%AG5d&D~S2#Bow)vhxZ^&)IX`KvMdH+vflkE^XKE zp10m0x>Uj9YKU;whSBP1IJ8?flH|C|g?)W8=*6=6G}fv0hQ^s)*DBDCnCDFN`Oe*q z$A*(n0~&;_#Cjb-^L;FF|HsC9Acnb6ACWh@ac^pbknL6KBJDIS)QdkDN@ZwZKA;XX zqbjUsjHJsu{dOo-J&FJyeN_VjwnTh=RLM4r85}-q1CR*P2(TCG=;(1Zn$hGx0L~%-(P^Nk9u4LFNkOLPBbV`2_dBigq zOq~?$`K98=w}V%N!Pp?-0>JZ>Z}V;7L(C^y#{aoOsb!3Fs;Rh-7deB%Q^1hz>yh%l z>)T_7=FeYJ*y1vAqWFhv&4DS#8Gi~z1Qfw1{h@LNpp(1|5KL{$-Z3P*W z6n)m2)e=@2TrTkvPKeslk_$<8brVoYgKo<7fdGsP$P?;{MI2j?DWF#M{Px5N%Sb2- zC|w*2iDfYbl6W)8Sut=4MfSRt(nSxB%t?R8k}H{|t&lNugQIx2HelGM!sa?@#6#1< zBpC$7X2DlD{>r3N^2$`$>Dk@KTaVor1!(lber$S5;&zJyUGURuAc3lLh~rqUbHKpV zHU6BC{~I*j!EaUP04k{iJPfFiS?$Yr{0K9VS%~^0o7#LjH&$GwY3#oRdp#7#GX?lm zLAmamzwK4L4N_;{gPBQ#%*Fpf{pnVIvfCqeJn|+8oM#>Womy5)SsWFe4*{2N6ewhF zSxy4SVn^WaJEQyiBTA*GO_2nVvJerotK8`cRJPGWHZjYl^@ly17CKN%9?va&@iw4J zfPXQfe$M_oQW@7H4nv1=BJ2sHSGrQTf4*d(Y(Yd{=!&fOGZ_o>$>-jC_=FA-#Es zfcP7l&Q5Y#)#J=^*R_X%9yQYgOhe~nk9jYydI(IAqircSjmm_*c@Sy0hdhbVOuBY!5Gi1({N}&T)BL1mO#JkJ9PceYU+C$5(%Rb@Hm$#taHjm2uI^EnTO7W zj1$l|Id8eHZ+USF#IrCsOu$;cRbv3P8_C^)Mk2!^7J0W^X??yR8Q|X4aZN6BKm#Mr zsZX8s4YqLvka{LD^JvI?Di!&1LkjMr^HW}`MYFV0^Z80!PMgss;rPjQ@=VL9q0MV? zL;BpUx_PaOC&y`K-f@slHA@>4gm7>!=Qz2j#8O=zFOef7@WwvIs2vje^@1BAgYG5w zex!_e1vIr3k^}m-*TM_~%-o;$0ks@818(hLGQ3+%vxzJ%Q-pfvC!u9I6SisL&Zu3i z5@EEUaoRyA4swI`XyC(Rp7I47)0~;h43HxrSe-78Mz^e4TCyaWK2ofxiOKXcWx>%x z+C1^yB?ejh?v2A27Hg52V*p?C=R8gZf}=~LafgT3MY4)|sNiv6hxMi&lnW;}*ecyT*5M!}Bp z_$=4O$l!_TwX>r$^WgeV=5n|}g}DF}l6Y$wW@Ss1Hbe@%b7x<>^Oo3psLyY)#M&>Ofl+0zq|Xfkym;^BTJ z@kuX7Eqe_kU>Czlt9u=UoS(SSW{PY~8pX-;5utV0TsasBp3F?X9@VXtRo;f~uGt}> z`s;G!oB_~e<=PJI-lq}|n&s%X?|C6EVVyL7TKi4rPE~vFxU864>XBUBTxO^Qh^PhK zY5fI{l;mgQsIt-V5e1sT~H{o^UOv>e4r6 ztH8iO63wXsgyYJ7hLsrbygS5;C7!o^nOoELZ|N!_$|eD^OsoY{w{q}% z3LIOOT?x!ZqJ7o<^dSC%Hu{sTg6}94bM;oF<#=he4#9`cu_MBNg5h%g(b>ccX%Rc@ zP{LaQg}F3J6TB^I@|9R)52LsyLRa(5=SagooT5^yC2k1M1nEFfM{O*pi{@l~2Ji9L zulxSCJR?EGv1IN;V#|*{KlKeLbg-Rk5Q*s%SPw~PQ?(<~`)t0-Ps{|a^K;4bRG%x{ z_v!OXb&PELwKqE}afOCr&A4>g{z_FZ4Qcd5ev8Kv^jp7yh>un&3!NIbE8&f%D^&YGb zD>p2eJrwYf(ry3a$T`Y)8n2(18NM(Esyk6ku-SsU$=6{ZaWxAAyc$L^uxwsK)TtZ+v{GDTz|L2RvgsF!CAAHfaYfo=XB!p1)s(TI8PPIH?Cj zhCABy*7693v3p27Y=Mi|ppdtFVsG;!mNkxgtdOpU?B{;P`Dv74xq~ zuUpOd<4+I@LekwSU<1RhC1TBpz-E)aGXB?n@d4uzc0Go$CZQ8e`4~vP0wtO@cGd;P znrFnXfDw~Z?gTtCc~B2Lpn=W%@EJ0(eC8k$YlDWFsr=MdKx9n8E`Mlm3-@h69GgHi zQS5(TMB$uK;b{Smv{cWAN$z^YRop6?e*HZ%fN^V5lY=i%C^*|H>|z3}@*3AX)IJ3! zeJqGoFxQ&5WVf;qg$J4Z-lNXUgAzt{rxi;vUAMO5tx)xYKrD@Qi7ViY1p4LbLkM5M zK$yrV$e33?>;L)ZAvQ(sV)g-ahNlY}hRMJ_A}}hnkS+aee0BXJ=pqcf@CQ-NH)etZ zU6$2Ssaw-VEnO#Rtz*So*-4*mlsfMO{&E>I9+L(YI3xm&1|23Roh9ofpb(#tyRFST z`rtxu!)^Mo+&A%W57H){0L6|6vGS!4(_ z^tD>$Q*9Cder!mz8{5S8(48Z*f=y1BXW>AupmDeA2)nGp{2l4mwLLT>I^ssWjAE$t zb-hD`(ogb0*0z#vK?s9uqRCE{azMLbsDO-wOF*X`h?r#({Q8O`E9GU}LrrB=y>$FS zQAw9tTiOX@5xbo5+SJoOCZv7ns=&>@b`^x-8}Sj{=(mFICMJR&ig2EzG&^#B+gfOs zitMoYF;PeoDa2myhQGfJFybtFEIgK=e6Tx}lda7&YOK)$<0H6uRSu5OdX){~k+4y9 ztjQR;gCdG|W#kY)A91={LGpKFh!l@V)N^4DfZAf<9`D#)rq%|m2hX-uK;V>(2w$m? z@gBG9X?y5Oaw4gO>jsqTmxkFCKNz>IyGDum4(ac!y%KrN92uwBy0U<<2t-k8hxC}G zUrNjui#B_|S$gu8xBoyb_j9|o)k_uIFlugMR*XFZJVMD-*F6-;o>wKgl0sCWOcMGM zsio)*@m<<^1h(*sreKUmH3DS}my`&RAV~U!O7)5MowoI25Gb(*?52UdNKXE;%1tz$ z?oq}Q5dLjGm+CcoHFYn0U1f&HW0~T(CynOlPUi)b90m0&H&*(HS!15wOVXnP-c9P` z{VdCK3Xv+=P6&Q408MTiTD?j_aXums47{uy^E=aXLJm{IPH2L6-w1`V2sr|alwXi3 zBv@y@r1Jy4Atjf#2f;?f#sfS#g5U~t6H;KfIm_{!C>VJ)-N|w5GP6jX=$WUPBft9N`k?oTs8Pe zZ=~W8a#ECH)3tMQh4Z(rY2VB_gxBSiQ3v?#fkTLl#TF_M8?ZrQb=6~txNww5AwrvmfY?=4JIef1l&Nf8 zqnu}A5ao5}j?9~|FfyhQ#I)T~zenTy6DE@xV|hn;2KZ_bWiJvNkED~nQ)k~irZxz#73;tW zN#StFN*{F!)ML0G)`%sYNNLS#`J6T)VbpC0YCXU2o~P_GEE<@%_S3X2uuBj+QVyC6 zCo=qO6GFE>W%NcgBn+UX;5qnIY%D#=p@&eIuuo|$feZgYnO>+jTJ@$GcZgGL!G;SS z##ki`F5B|!M95-2?yN9S&KCFVLQNAHgfjR`H_CS;2a%qzj0T1zx>1gD1ep(MO5mr| z0Q-#Bm(PMl{A{&hf4%HQ!VGIitQuFatJTi!P7C%8(%)^5o~S2&3r@g3vyD^u>xp+P zhq%N0+-eVakC&x&dqZp&?~w(HHOU%a*SarxF!S@xBGcN%{{c>6+l#c}qJC~tM1YP) zj_7H@);1V(s#(ft6iF50Y>&lDlO)jy4C#j#9CM3o5j6J-xOLZa!syIhlQ~{}8v*>|f)Jyp_1*G$-}I zQYMh;MLYmM_EL%JSsdFu5?I=v(_rC{MSeX_%U8tAnT9k-IpiIKGreKLxrR7 zNk7#LV4840atp$FZSAA%6DgTgyYMC@j>6xu(d+)(toeRu$tNqp_GWP93PICF(fDj!gvxEzo8JeS7ufGgXR>u)BGzwO^it?u{drI<<) zw_TEcR6*fHgBx{AA28HTi+5|Rh2)RY$0M|x*@$1z`pqBD=Hi~WN#C^u?xDvv4Z`?< z(!h#v=d(0hOa@ZS0vL~O{`!hm>#q%8O>#TMa>B|)Mq*k2Z;na*CJBg z@~`8^MGh%6w%=Ut*}Q!a6a@O(CV@3V&7doH6phd_-mv^7%1@u7BUdIdQevtd{&qap zb~;x62Jwb_&tV}eEPI3U&fjOaRbz!!;~EUn=#X*QIUxV|jxA_Nq_>Kzeq{Wz8fb*6 zhLrMA@?zDI1O9$=Mxa%XP+=S#uP%v5@B0OGxw_p#acB%Xb44=dcu#$=(Oh^WI3LMa zsO&9hrk+8?3)1#dWN2J|xi4vSdu!5!XGS}|?Cr>M+J2FHy2+3;Vbhhv&Jq(RMTWRlIFIMAYC^GBfWn3$_dj4WO!8VEiZ7uqPc;8u*CJIaPo0`zw%L zaLB;qohSI{*$TeFe|rT5@J`Xhxe{;P;hhpY@F==oNke1SuLV6_*#3IW`8VUwqmf@K z5ndw=+wf%dDK>(KE+wam=e&J1QnlC%Vj{V$k$l%+lgCF0jf?2B*gzVD}Y3%5#v zd;IRZL{EBDU}EhJb0n74mmadqAcx1Xzy8MI6+r;(}cG(kjoCi2#@ zKmWYd6?LFd^C0eQPFEub`W38E)!n*5f{%X; zt_uDF;a6asoPY2^xqV7qoS!a;{Kz=rdh#@~82s9zc)&PI0qmI*OTpjM4ISf)b#)At zg6-S9oze2D&Udp3#+b;N>KofSMOO*-=~C4PV2_0DQyqe+fRvQwO8pc$-WM|F7mMniPBN=F7;Jj*M?OeydR^fzAf9@eWTvKN@?X&X1r}{6+{C1m zkRxexJv@X!Z97*-On)9@@m?la7a0dbCe|U{)ZPmyI#GMYBuQ6+yszv8o3+S^|F!?u zrVg1X5L`jefxlx80$+t3{AB7ICttWZM?;w$erk^McuCg`0r0($il(x|$zWmTH;ZMd z^-ntGoEP`Jz2RKbVbly3ryr)VUHZl)9p<~Jk=84u&_CJsu)w{LLm~=Cb3aRdaGZvS zI0ax%f%URjcCWUzUw9~_2s)SdobVh)_z zvQ3^1x?BnrHM?=UZ%Il`r&c%ok0X0Jj<+uILm!{I6!8Qb2PY{&M*P79M(=gm1Ojbs z=sTOn$NWIF%h5P36Ml95=k?fn4Ry_9i6I${fr=vqzA`FyC3&rvb0bpqfB(+**3GSH^tnAJ2J2IQzV6d zUW33{1~}vkbfbD^g7*}{gO62X;TyG+Hg6>K^~SSPp*^^-6?r1#o*~Eks@Ux&r@V%K z@P+ygPAhp`ge#x(qFm_dm1lp#Rqkqg>a0*7M3)M8W7&)|CE?JC#pX(zknO(n%{G{M zU^+^%ls_ELE)E2d%~1&B1Yy25XLyR>ufDRGtHE^3Q|Gc@S0)rmh|(&e2Adg< zkui~&KPD8)*b^SKvU{We)*yf-E`b2;-F;{h2qJuC6-!!wOen`hW|$t}OT5=<^4t)z))~{l|FeuZ9~Eic zeBguRW8I?$g^%c&Q+RC_I0bc@w#YDdMEMamR|m2k;+ylS3ftSA_+9Vj<7te}p55jN z@^;^^l6S@gfSCWe?S-NUp@~$qV$&$LysrQhNFpE{oQHx>=})n+T&HD^SoLG&6ux=v zK1vC*lHe`0Hf5exQz9+Ybt-{F=RI?crz2Mcpe_ug-9+`8J!}>+qpD20TtWv3UAV^{zJB zGk=MeQ`*{%0-Nk0X0Z0ciiJPMCY*sBCZtzV(bgtnG$t+&$UfZ56DCb%wr__r%KVnr z6?`Z`=MDAVqhee$0KsGrsHw7_&H}?xkgSmO&fl)2KC$%7FmXYUK?>=s@u#kKj9_}g z{x&u{-l_swqACNJNwd(5UV5((PUQ!aTsc?%%)Yp7%aj+#Q_>f5b1S&$oKrSvfLL~8 zGR+}lQgJ^g_`&kM?Vyfz##B(+@@ofsPcj(N9X82Bp`ApIhD6$ChZ@d^hs?o6x^2%z zNO>hfUWKsB_Bb-86S+ZxzPm049)_~g5UEG2P+0Nt+$GttR+5)>TIFXL_8uOq(9R`^ zzABhJOFMW#TwK!=pJ*W`&696%CiS|W1tYq45$sc_Pl9KQ=;EU|I93H= zg#9hD=*#i8gU51dDu#fKfU9j)8srsVJgwA)=K6=pEB-O@iS+q6+i_9u7n0a_FGElp zR6JbgxaQS4>*k-I#-+^#Wu)a{6aa)B(R%CPWH4r^J3?r8f z!ISJnrxtrRolPtwXILRFPB)e{+ez^-Y*PMwuB|h zaoLgAP`AZo?EcP5AM?0G@TfT@nR}tmb`|^Vn-Lj!5Z6Y4*pV~RD*WBL`ut20W@(20 zzI0LzrI|ri_U^J*08aVf+wOj^FeXx9gda6xT2nNr0;AHa%>{e(rI{lo`&t)2HZF7* zOZmIw!WBsmWOgk7vGVWa9U12UU5*rn%IGF68V3Hi-1Asg z)AQcc%HmbmbBYx^Y>?6rk_mqaH_Xlas3t0^*A9l&M0eqt>{jy-w$;iA0s}JhhAU3Cjc=;dcdx6xyL`KPB4-8-1i@xZj&q1u3)%a zrz$bcv6F0+2C9utA??Rm1o~!bn|OJ|{kaf5jU^tZt;A9l8B4pCo)r}%uX+`|t}ylL zk5_3r{j|AX9Z=*HMst2MC3Q7cz1L^fInvk^FkbVJ`mAhkrQ!V&E)G?m04&-pG8aNd zcBkFotO%W&raGAt#X9CJbGvXdBK$XUvQQgRJN5y^|KZ95m>)UFD zZ0n#vyLQ#c3qo?aU!&-?xd;dB1v7F%!!)pU&GzgNUF0?6LV>sO^4E6se=<2*H5j!I zInV@zaB{iC?5frN7UYX?)`bvE1Fw2nHmFf;txajCGuXKgi1xnFGt2Me+G{RSZ@;}C z@LS*FWO!ErvuS&vL2$#s4Gj$rc`!zlTav^8pxtdmMti6mlYosp4l|jGWcRY@ z_?u5{PfwzGFd=2p&o22^A`^C|SO(QAb+q2*MFOlsGbh6tsVz?ne%!>+^kAYl9r0Kr z7$!fC@-^}SdS&q7jnSJL=DqGiwfGz@NtE|igcuel^JpXY0LKO5OWC?C*<7bZvO9Fwe7aYlSL&Wo=$&9PFq zdN}|@*BpqT9ZpYg*A`0?5VAeOF+ImG_tW)^ADKGz0{gE`j92)+MRcqOyV#64KZmNhe^tY8 zIKx}A^m4M=-~7+{Df?g37To*_msI$aeGGLUx8n&3C9g--zARhwLdg6BGnxT`*&`-p zh%JRm(&qJt9^pe}obHZeRZ_d7*H$LBOx}TyAO%KjmO#sQ_9mdnqyfWI)T+koxc)z= z743o#AadVe;&ogr|@&b3pm4uNYyBLkYPW``AdEdb&pN zg6zZ}TX+;wTKR~Oy^lw4-p3V#B|8&spZ$s`}%on*Xzsf;=*JO~^ z^R8hznlOaNDeOyg<>V@zHPw&85Wx(J}NN z4S6H5wEeA*i7B%5{sd)lQo;wHTN6sG?Xs$aJa+E$ zm&U%_)>vUt?$O$BD;E}8;q+XiNX6R>onN_~M-vC>7$hIy`G@(HG~bW7tlIs>`m(Qn zyCCYi3}($BLn@^XzbLptlY>q8cCN5gi&2$p)o^(JvdHPJpVSry$Hj!@G>SrlEI+d) z9H~)pap|trCRNO3LP76spHfs1fHd>Jxr*M(qiBW~;ZJ7dBFNSE-=JS+f7`+$*J|Dr z89sm_d=I;6Vy4E-kH5pV>&u`?c?F;9Y)W64%Pn4a459i&=n>BS9NKJRUF<1Idx1v< z^!U%lIYi;Au=Izqu$Dg)&7UeU=~Gy-@BK?I~tv=u#i5W=9d?uqFz% z^_iKDUmynuY^J>8p51l(;a9)~oC$*A~f9P6Ya ztqSp7k5!%*dNtSRqav z`|EGbzL4S8D;>Gd^9DJZ-+F1U>f`qt+2C$PQu)SbYD}oy3k2%ewVNeKvnLPxzjw00 zfcjL{~do4+nDw7)J9w90$=&&@KM@YvCkIzYVb0n~AT=*w(OY+*s>>t6I{ z3FE^kVufNS%@RSxr@5@84lnU^RC-Xmx3CuTspqI)c5qg^2?v~7%9;OQ1T~8eN}|2; z8aa9D6;YGpZsLR7f>riM{Ne?)T7sUn{YbK?8UkVDtf&vT1?`J+={CS{pa!npl>wm6 zVv;1{j1D(M7!VIG-FzgK+1k;tYU+hF=;4rqCsZfo+~M#Eb26eCO~?0Gk&z+_8^Rht zO1jV1MNuhLv^djy&%;E=RPI%ICmRSB<}N(NLum*GXQa4q} zMPXBbehQt^yW{J0dCAHd{VNHB0;L*L_VZu_uO8JsOB^Mm>+Lm&SQMERUMRrl^yGd4 zw`jsAtBDnFenYo1#k*RBh6cy91!YoL({hW@pde2?gISM5o;}(6hb6cE@M8YIV3XJx z{#R@g+AK_n8=#Q9;Jy`8!eQr zR;32YR-3KL{i-vczFS_kyr-+|--frA(Axm7*bY>Xh(yYu@QRv-jAEMch=7oU47B{( z!U|(!8yjQD<`kp%Q)6S8_o`F>vV3?adM3wzn}PqGjHcZIGfhhY9GH**sHpry!ot9E z|KXcjo!tU7*E|1{{~O6KC@T7+o8hAcFnar||Bi76*7OHR_QTVjuC}?cp5~YJBlthq zq?u^|*;G>ir~DQSerW}XudG01e@#gN9DEZ{MyL0!;KZf|mU&=&FlGiIj?4vsX&W4X z)jw1K(pG$>eZCqF#@`V{2Viu-|3FOA{(eK#+yBv(ei;^kuBWlB{bOVO@&Nh8{6m5e z#xL%mv#kO7<0D#{F8DycSF*N#tMIwNw)${c{cQXOlC5!auw}6QU1k0IG*X61{&dQc zN)nd%I&cE~W&pIF`f^KKNoW6>pXs*r()(1&i15b|_Ki?*-yruam8@smb+Et@);}`?m=+ zKdC6Ag@cG2>S`~WRMyW)3qasr`VTwB4*$Or>Z$Lgbk_CHz=^@>ea*l8kAsQXFN&VA z1w^9@NP1@aAOqPt=eHDC{%@~g`khbg@eg3+j|liLZvN{}^w#g}+)v~1Z_VfTZa#5# zbrn*S)$|YY-}e{}P(0AL(*%IbFPj??R({LZAI1KE)TGRxE=d$7C^IXfus_>hwr=q8 zLpma8?r7}4)qgl70k)>4lKf;yQvMwYFMAq4QgyJ5EKc>Hfz!W^pLGuZ(ACp3{<36d z5X~Qfp6Bj4er*_mGJfA4{}!L?4l|NRkdswNE`Hya4E!g5Bw{^B3>_^JO$rm#3T0CoWOGB7eSGywem z{*K=C5_kQA5&$yRGk={7m2;x`Oa0(B{3w4Jve>!UzfWHEy#CrQ{^I{!wr8fdr=|DR zP;F%11FIF87PBoIoIuA$`rcmZ`C&n~Qkct8PQO&PT)#>~ZJw0Tdsl#&SY;o5za911 zTfFwt3V6_O2O3K+Wm&tXiS9{@E@u8Z1vX|y+~E6*^#YS!OEFG7Sm@e7N`@w?9qO5C zs|)qML50{iW>4==E+aTICigBnp$d3Wj`wCcvJnpwfPb2d&U-D^1q5j7zRB+~BhPu~ujT zR3SRYd?`+>CJv8h!&jT~GBF?R&ibUAAI#NE5;FW#JiLtfdzs6UB_jl8U@t8mW4^qY z`s}qhupgSGF$aNyt;cN=zJvA4?ljlGv=3(RhCl-@!&J|l$FqMeT8B>s0 zt&N4kiJ`klJzQtd=_vUv{)teU0=2DnNc?BOQ7f>d;KIgP$Za*WoVl(kx=hGZHEN_s zOa|emzy9uwM>VB#oYJm{Jzj}{lqo8H+wxy_E|MFF-z}VDqpN-Z(bZ8ew_I)8dpmZ? z`d&){daH`Vu7Ro)-6WDJ=2U@J@2P=GLyGL14!%vx#hF914u*EL8)jPVIPoFez^SK; zTdpY)h>!`nsz(jH5M$ZP0G}U{_2&^%ss1m80%3o2Y`%}SUMO^QIU^-FVW!DQqZqv0 z3+zr^KtFW;-k_vg#H6+sqgeSZL2&#UCjTC9HOO*DNbu*Bv z3U%MT)_dsluI0}YL4DV4+{7qw^+H^NFViqNxz?(BK$3WtS_X8)bc~Y?gYz)7%OV3= z^nsmfN6%o6sq?LjeqQB#I0ps2{ZZ{Udw7ykQdP3r4a?6R)k|lz6GkS5T7F2j|c_Zg*snhx=CuaP;lJ61v^4T;LO-);?`mv zcaPu-DVc9F7+>R?gJAJ;HKkmuNhivJfBi`U(c(KD@Hf3a3-Rle!Ftu*=hvB0TB>x{!HKr$|Sw0N5UAYlqj2bWB70`gf_sRV;wYNrhliH^=5n{RWtSu4o_JJ|M2cqh7Syn0Y zI7tHt&3AD*uth@wa@IenEc5^JE96E;s83~PEQwS04)>gpa%N`~Xw()Q+hl7MN1v}ytE zDiru91MyaQambWI(a+J~bqBd#%1nN|B@hAD5~!`vA#{Z5t7jl4sobB^b@?pDj97FF zhBIO_&kpRIHGYyzuuV+^Flsy+^VdiM-BN2Y2&ID%a)ZkeYU=r{u~9Pe3>-Kwkrl^@ zluU#$VI$>N+dSj4TKRKE7@O+`Z8d7l?c0G}d3)Z$fd#j!vR+Ubw#My2F!7FHr*S1s zo6W_)@%!1&M8_o{p-=-0T}BCA6OUi~*@eTOJ?s2+cSo)fq2YP_M?%>_lTn`0dB<3> zCcSBcFc{g;xSKS(?GNob-!UW8-{(#FlFOVjU$>*V z{Z6mR8zvgtVqt|W%4_d8d6hxQ_AaC>E72K3yvJl`TKNgTF}BKg6la_exU1c8{Nvnf z7jiO%zgygvU)yk%S-u$Y#;)+hs?T89scg$+$!8SvW zUWmtrgu>yr=RDS~&MoU=p(+<7Im8uHz5|o!v;-|h zQSm~L-wgp)=6N4@J_r@PB8`JgYywMhRw~u3WC-g;=K$paqHluum zRGap`l621H?Rz06cV*#=>p&GA_wWZmce0r5MD_RJ1!mnq?}w+c&B2#7>Eaa&&mLwu z9>=}rQS@oswm&lMsYnD~P2_LjnT#yXoHgt98zY8sKraAb0$q}5cr zo4R2@Bv{nWap}i)78$ z(RsI$wg!8I&-t0MH2hK*9`w(6=9vgR+3#jLMxm1V5jsg;YSEpzk`}J*Xu!hrn;6h=)yJ19ESCK5@sU>%S^tXb`++E}djn0#5C7Dj$v^dwUc~czG`mJN{^OT%d8D zrpZvPX~N2lo?F3^kRDRC+Z}P-zc;`K_$z>^-%e0ptz4LRRzuI0cz>LIJYwb%&-eKu zmB4)C#3L^uPTym4iyaug-#FH=?Q{R+u5u}3+umBrMo)Wb@mC??%Ipv=@*$sxz73b@L@58RWXjQX?(I zJG+1FB7}vz{VzVj)c&mnuO4?$b8cM%32jAR+fL&GBZpyH&gxjiR?Kyj#pAaT4XlTE z{UjcA_2=Qn7hYuC1S%J;xCJ16-p8}js*caZpBKpwwXn4+CFPC_^)%2F0)f1g7RXtz zbvfRGj@NC6pTO)QHQBP0D2&ZG`=YT!EC6udlu3?Q&ERn`jlD-tMq#!YL4jC_(vl>k z(_A0)cH)W4;yqigHaY~KymfZXK3P;8`~%}<-)S{@_A69Lk@uZ1dtj@Ht{DTRav;r$ z3l)baeue-m6E(XSgv2+Qy zOQN$}a4dOmqUqS(N$yvm;ctiddt#hKbe2Cu7xqif-){#$8R~k$F*G9rDD%cc*AsL9 z#Zp}a?tR+k`)^c+*C89?!B?*yC%|73wIpLqFB>%W6n&?jB+m=}4aowMN5Oa1NA)~d z8{t*Ug4{L=!m>^?5{=%xFL3HXODY?-fg52#h$r-IM4GmLnS0#BQngCORCOC1bgG(J zp?h|LKlX-d`gbPufF}2yrW(f><|~V@RHYkoo?uF0+t4TVszec*7D<1_anP#(;vCGT zU=m#cktd%SB&&Y{?)5ox=L>%4Q{M6Hx%^q+rs`AcW+VyH!UQXW=gD45Ec zKOX#l7j_=$K-A@}E-o)^JAV5mwSCD^Fp3&m<92 zZTT`JQ>0)tk|p8K-q24Nv1^tJfKSi|L!Huu!K}i!22%v-^Q_bt9*_PC>T}HGEW5O@qZtS@Udr>0zQsk}D$Bu1fKr zrc}!Df&_LYW&8~EJhe_oDA!=ExmzVcJhnZ8yK)e5xKh|)^zu)O1VIQqZ`WJ0xQ(ZW zcoT^`{VNP)KLF5GybjxvDChe@AL{9^09=~U(EgTn=&G{x;7{@-aD=KRc&I>6oP z!3hkt%})Lumg*~!#kJU)uY}cPse>ryAe&0+YMZd1(r7VEAM7Zy%bRU7VjJHz6uu8i zRpv;ppg^U<$q(7hs+*wvS!;O(SUxL7ZVa{R7`Mx*6 z2aiP|8LR3()ikouMWiA4U|w#638=OqZz%w;=D4DFFEZqkqb0p}f?UR7c(6_)#1jAT zwhE+UFEA2@I(NzA!ZPBNsZD+sfz(uhPH~)kW;k(g?sV6jQdWT`6jt0$RKt{i7($c_Dr)zbo9+0`$lB{Jk}Faq<-? zRAc{(dje9WxAplBP}q5^`+@kpqn{(^0?f%F2a2l0-|yI25tiA3N*R zyaZuH$f3M=f=~+%xU*6*Ob!fOni`MCUQ?Vnu3CzhHB>_`>Eu!=_2$ zE#7n2u4?2tjAi%e?J;1ER&B!Lt@4jb1ePUAA)Y}cRcOW5UQ3j2>`lgR1Qew8SFk|# zW2n_l?ja_yIyx+-5a3-92S|pSfztgUPP}sh_rGob&ii~MfD$2MXweb-Fcf}g2p2We z#b;~_HBquHSpIMlPCZV8ODagepP!%%KZW>gx4j@8ndpw{=MWz8HQ*i`0a-tMYP0sU z1fS-boh)M}`4M|{BB5!f10f#@CJAM0zAVfSuM?CL-7Q59%BsRYN6Eg|TxJTY2wTGM z(M>HFH7pQx2&y@lp?TIo5xU+?oKAR;sSP;yj(S;yATs3Ouz9AdWi(OUzXRIF+Mm=a z-cvEf71%?`%+m{Km}D>A?FG=jok?v@!w;bw0|88ZQS2A_FOY0x1u=J1pwGE{%vY50 z)nWM+qcMQet(=1yO}MW3A>Cy=$R>DH?TWaeGG@ti!MsSLrK_>m#C%fb7s|`elhjd*Er=t;E5u_yUtquf5kr@W6lLv&(EMTW84n9i#O+B#l2P2%|1b4WM6mdyHQ5F|FXO!O?d!e zde=f{tY%pNSl=8?lF#Z`=weTU(4CVGV~0zoJLj=ccoad}iv+b-W*?2}T5>%}FV=uF zJ>F*_%PS6SmTpg%JdGxoz>b?txMdxlyC3N+Ij-fhmLs>&P#;rN&`x_>FkaCle)wPx z+x+;dhQYk+TbhV7VxO7>NgCAAUYNH8sX&L8uCaTy}M&PH(Lp_#OP&AU23^y{T zm8-b1c7>?>kZJ&TLCGTx;jzOy|K`Q6VCN3kJJ7zKV6qa8Rs&xprLB}<#U6ZSv@7DZ zIQ{01nb<93Zq=@}X;6l6KL%JLEQFueH1}y1H1)vMV;nzb(w<48s9iTPh(*rEL_Ds( zl{8Rii5V^OW6Yo)msP9XZz{$DACO)S2I%RKj2z!_E6{AfEA}=9>0V&GyN0F>*JrRDGWen9n8O70cHc~bw@3JI+vJg zmk_fU+xWGBn>A1V4QN5iLLH>8>9PL`jXuspg?8&K&q2GAqUbrwGu;)qWz?&{Cv_o4 z$U`CjM<`IUya)+i>?C~E>0FD`9l>+wHPr9rgJ>V>1ks{-qYH>pUlB?WI5(8P zvzGTIbni2F8vg|V&%m2F7$E#-FTYMqyp+cR;(%n~BjM6$c;v+J>|Cx)YTqRylFI!)DP(v1;euGkPC)p!e}dyr9tghWkj&7wPZ3x z28y$pwm-HE+rhLzmptP(lO&tW)F}P1tJQAIL{JgozE@^|xi(H2jd(uoC^z$c z33^+Jx@{JHn5B<@eXYoPqP1E+D-z22aa}F012*OqVmD(ApySBttIIV! zayF_Gw%cevIfw*wmpfBcQ)Uw)d4tTjUlU|H8+rp}11bWeGa6LQVcK>iSUN}O!gT}$wB-T1Z zTZf2RZp}{R)(Rpty@%C*Txut_#M^4v>XLm@01Ks2k-+A<9yO-bHs| z=TZOn*SnF#)q<=yZipVM)hBYU_gCQX>?9*0IM=}ZcYFeo1Pv6rA`)Jj3;N&SOUjTS z?OBt7^MjpSSj0^k{G!56xrnR0p?c-Qq#P!6nYV>N1`cA2Ll})!Evkswp>g-+ICt*I ztO85-0cE;Z9M8xL$g04XoK`wV>yzKt8-w9Z7ROobc zes!G}vveyAU!d1_yM~-CfYhD}c^OEM^eud=kvBWUN3GA~G2!xa{Nfw-Q5(1k z{d+UZ0O9tf;;nm-+pp_^lZyIBjF7$Xz)FceeTln`7cW1E6#MiB?E>xzBGSd!N z;gM{g0!wikK=GfF6I@7DK(0{dhVbF$i9m^+^l6_vyNb=+DLYxtHueL| zcQX77HjYA>H6N&muCiH#0z>_m)0aqqN!Jk$@ssJ#{&2xgFq!ljR{+*P@i;fRYkHBf0f^-8MTi%Zl0JnS-(<#O3a_J3{@j^~p%WtvkRYA! z>TB+OrCRZYiJ8wogKDivhjc)FKaagxl_5<}P)LZpm)Tgl*({AnlD^g5l#PfS4f7+> zIGr`TJpiOYJ<%el>@QW+u~os@B}>omJV)U4sc#8YrIl#GtPK-$s7nvdZt?Gko5{=a(w)H{_XZbO4)Hy(7b(A3B{o9AH+UfuQYnstyyDMf?Rzfm80KYzoZP(dJwer#hY zN#5qwmW$H84`<`1%tPcS%#Wf}bd-?e0V$sL_V!>z=2gqXJ(3la12D3yLme(Pw!~*XXn|mK(fu_jvxQ zQErdEl2H}M(L?8#oGT3DDTm(nr6iqGvQ&nrL^WI1euN2xtu!Ljwi~rGng(uQSAqlx zgsCIk+?8W(=VBX~7u=DEdKW>NPk|ZdYT>#bX3^Yq}6o zMIC;>t^umLQRW4&9w!G9GafbJ;oK*vRANJ({AK+~|e zq|@PAfZ+8jonh=Y?(+YM@kNP!O*O?nozNtA)z>nKE4l>EG`1cn6!oiJfS{uU-vuncx{}TC5#BRqcP= zEk-p^pX%3I5)r<2=WUX2#P9*XHQZ=TK{6a2PmJ|!Q;zYm_GutoKvVwF=lyWt#(}I} ztLmpB-I}>Pabz#r^U?3_pQW^>DWFT(oh6*eve!xUz)&*sNnFMmXo|}acYe+bv z1KRA%gv1H>FU_+9Dsd;LJbL`Zpv9++-|ffyoddmZQHhuS+;H4wr$(Ct7h4r-KU|D-lg}n>DunbpTJ~mw5G;&{*_*l5 z0do3)kt1f)<4FmF^9qVx)lo+@)V(Otdn@Pv8GfAdi^VJgZk(&I4l!Sd-D^>^xho^7 zy45$eA}ubl?^lOTL`4+1A_+%Pad0{gqP(b)k>=cm^2Wc%E`vkMb7f$voUlHL10zcKGNXrau zx;+}(dboVmD&L<4VF(`7{H+pzMBq+dyG z{jxifTc|XxKChpul)m4IopV@-*f>mdgTg=oDW zQn_P=t;l|TLYxuGxbpYezymd7gHnvjcJpPVD4|UUml~kJV%M$+W1jIqUW@CtZDm7G zYwzJbb4}(b`t@bc%w{PoqD}0%WW+bw*h}po3tQ;$M_K<+a4wK0;0;;n5SLHwm(Cy@ zl6D$A*ITS|uFtVPBK$>`>fTg&pRmO>$$(!l|A!i<0=|u|Iy%qAbIXJ=_-2(_KNUy{ z=IEf;$=m_#cB;!0*LNQ-rEC5!2ypYf1Fh@;8(3b|i$EASpHx9la`j1VXaKnZs8)>I zAY@D%E@QJzv3+HmO=j$tBAN9G4kCAbByQ{82LwYr`Ug@ZYt3E9;BV`KvFzlkQ|4L% zHm8@$1>B#8-Ud+!&?f%VZ&EKx}-{8rB9psk|p< zRhm^O<5*<&#MWZ9CmQ>z~ZTEdk) z?&jgWi^*nZWP9o{3Z}&ug_-maD|V*SS{HX)l~u9^Bj)3&IUx*Pn@L$(4A*w_C71=a@*?a5 z*=Rvk@C>tJZ}#U7G_7Y_CPolVbpM^47-Ba3Y$mc6XiLKY0aL@}@z*-;#?- zY;Tdk;Ki#Eym@IyJbSf3JLOwu%+4uKJ(6Gu@=|`f3=0VCn_89uEu6}F zxkm8j8XXuZFXss>X(Rv$u?&v9$tQ9#>)6p}iVQ>^LgE{vfynGik&SM43eK0C)NshHHS}Fy#WEUgfnin()jM_xw@}rn@vO`dKih@ z0o^QjGp!0?vX0WS%FNLqD6XkUo`2z@uM!@)5PfTsfjs-X;2^6=a?;6rIfO>{S37TX z3BO)A`Z2qdu3mKhIB4q-cEJhn<~o;)Zxw9Hc+cGkyZ7`~W%gP{8#Gm@J%X^W!F}($ zBTuXTPdVfc1rb2X%~s+xT3`{OeRBW)F&AYGYn7{MRF7Fm*AzLd<@(FGp3oUu4kT=I zhg|#)K^GOxqIFoON-l=eq-E}IREbaO0Lfihord`M{Z3A`Y+M%F-9(_Rvcy}KkGTlc zFK%k4z@LDFYmjI(F!xv+%3HLP!GCP1YhRarU#^{OBJT6FnK0deb*XuY`PvYEwk2TG za>U$_Uoknyjl_GH269e`ZXC@Rb+yx(Gp!Ph!E-=_BqC--hqhGC?yr-}wB$imZ@$c6 z)W-^^L{%jJm^9k3xSg1m(UrsEc)53TPSR9ut&~2DI_@M5wo@dc0TxBZz==>sGE>0t zz~e5l8HPUUWhF~AX^$VDYq(3A!J$UP0CKI4T!i~^cwrD7LBtb_+)JCla3aO9Z$9LA z@!PaV5$8?Q1gz{c`zsM_P%q~IW}&r>K*MqHcR~MlmoLPfQi(gG(E3EIKq-wQ3|}-A zSsoTLW;w`rf*3SSEFzSR)4^f#ZU=sNLo|$%-Z8xoWgZwuRhN9Smnp(RSk1Rz-Gb_| zT|{g_V|PxrO+bkq=o`X#m!`IdIIc5kF^%V5nRg4qK!ppZMP@Yoq>)*;)r;!v^YiWv zP?FoJ#!#LhFtJ`r7)D9Y3cpk-PDpSfo(sCXu4yR8w^GRTn$%ud1be;3PNAPzAJ{oD zOZC{|$EPnk-y)x%+gqX*Czal_)<{uIS|UFAJ-;XDJG+I5)7&Kv8IPP*yu2il+Yx+yJDl=LH`SqM*h`sAa>`t|6cuw%iq5anb=?1rj^$1m| zr9w0Tq!5o;1)!`j*!tkYy~m056FZ8@6J<}H=mccsj=mbV1yxo>I4p6@g!u&bpIVf+ zL_^VC4T2>Wr*wp8uQm1>{2{=cy=7>7>W>>ZZ7Htgh}6;4Y`-NtBe&P24y>tISnmte zo*z^C0&M25TSg^0?{Mz8TIVMxcd8~26hafey?GZ7mx}SNO+-$QNBv{AqF#hN%ZNmxI>O&U+VCI5!aCHOL?+Er-|nXk zv@KJ`&gPs2sa3^Se4nbaP5e!J89|nQGdD*j58sqt^Qq4NafhWgja6Fh?jJT|nE0J<64UxaF9vG;ry*m3HdyjGrN=X+i{iv9wCLQ+9atc*>soqV%+gCm1Nubve;l zgC(=DY#Rthr)RH<1Pex08uIi)tY*V?RITpf^Y|(4_riRwHBD{;I)4k2V+zzH#`9Zl z*XHQ62oyisJWzm^JUNsaMa&=cuKO44kZABPfQOcHxE9A|G*y?Ypz+SS5cPuh2Trw3 z>Go-4XCf$d=&Db}D^_UKRBdpYv%s`zVwie?L6iU&vpN;&f)xKsMxTQv=JdL4$rnec ze1fO_&giI&Jq$Y%y*&jIe@3xhWd#wW!H2#z>sP8OL^&_k{N&yECbCB_%8Vt>7{mQ8 z(JLT`S(@GsaBe*%>h(r+3&oOP-tE?3t}m(^_`J?u%x^B?&ViPhaUe6EtB@A&a=#51 zHCDaT&3~$I_!ffTK*21e{}`#RLIYUb7Br#;PNkMm4d|@LD+*I> z;)R`50=LW^rNowx0fB8mVQb>R9#y-UR2=qo=zHHswmNJpF!ZuOL8q75d2GHhhS+5Hp4RKP&Y3{l zDp4qZ7t_?5@=1U4>^jx8aD56?V7{*?j(ai?sspBzDsCMy9&l;aX8>mwe_G}`x1Vg? zt;~8)&99|5rlceGb6B|;+1^^Gh!Nh1%Nq&kF*$ElBlwE7$g9(~k5Bu7%_Xs_>iX> z7?O8D%tS#pHY94<8S`a>7@p_U%h!bwg6Lg=MJu$Bwp|c15SLgpc1lHZlkhjC33b?2+k#8j82@Zm;jQ#>UedcNEr7p0b1$sKNrz>W5bg7r04~zhuO^Nv zv!**t%APi(^~CueiQPt*v3?&v^irkCRGK&fteva z=EB{P8jm-CB!Nmu{GLE0Gr8c!%${G@bkD4-pF6hfKRGl| zsWHAkcbla^?(U#1{fSn<8_~v#41!=C5X)sOxAA@0%fXJSjr1K73@}~)>PoN%u?M>;Y zpdvOq0_aJ6w<|LhY*GH@67e9dbxDQ(;8OA47zmX+i>rXSJDWrR9zLurQW)a?>0BFi&%|mx6 zj)U|UGwy>hk@Q?)uk|b31i!QQv;$^noCHyfh82)dwA#wn+ zr&pKZsI-Fn%r)J9Xv4K=3q3Hu>izKtOm1jIJkV{xj2#?6EuDS*JQ_n&_liC(JBr@9 z0aUf^duF4u5J&U@pGBgI);F=_FY-cx>4_epXJSYPf>m-;;STEZFw@X1ELn`1c0 z;2o8w%S;cG)geOIi1C05IJK?At)f`shNi_f0y-LUpJtJ4s{K8Ow0I2QT8&vDdW6=S ziwPd5NU0f3&4&~sb^;9^LUZv6<3($v>!|I+BEZ#Sw?XVYIdFE?8`y~5+xuLvJaqy)Zt_IwD$&&G8%XAE0lH91T(z%9S2g)xQ1)i7P9%0wrKpl3zK54yU0v+3W)Bx2)>nr z;3(cW^n&B>h`0@OJ;w=+2cnuzY}_V8FVf^qO0)jUUQp|`)-3Er&1ouU30&yPNY0NJ zrH?fykXexV+x`+#;=%FdNp14`LWvC9%tZ0$+~hQswfu2CQSH?73!PsY0n^J;5le6f z3ta0HS3N)%==F-94;V*O`HWbdDB@Dnr>COK4az*Z>k%u!V)s1*Cf`$h`#Lz%WL?J5 z)s8cfWn0|f7lr6s8?QXiWvg1LaPLnHL_|Tt4@+`o(l5f@nn3!7k&hMuW`3u|qsakB zv-n9nZf9&-0)kMt9uC2fZaD!3xg%jl>l;U?Go~-<;}>t8?o=57Xr2wK;k*{7{6rmk^UA2rm^cmpOg&eCNo4 z;uMzjdxxPDKc!g*x9SXRb~u!TnpSt3U~sffAzS={BG#5Xyio$u6b?NY=t?3nUu4mMj`NaZ{Zyjg*ZM4uG5Sn zZ67_(kPzyP_1&}vX=@M@0_qx+*3>-Tdl7-Uz!D=xJqPh8jKtZDu5Y(J*ZZu(j}WNn zoZp-FUm?FtWmi4hA}2Sm-YyMq-m|?tz@7g_|)?=FZnF z`v8*v6gy34J$xuxTK7(?U(4>F>o!6!h24ko-%^-7hdN9^ zwk}crA$@jRPMPy=(5VxR*IVo@?KFY-7~vYm!akVY={!Csdy8^XlCa9g5N!rQ*u5(R8R4*MZj@zG z!mE%PEKqSeEer>vDlM`Fq!;M48|qanhn(L-!EMna8J@M;sKxaO%r4E5t37^d)@By-}( zYLw7|t2iilz>N4|@93222N_-wNg${Xq=?JHxA-+Xm^Ee25+cjV8Y3vi^r_0R3F5}o zyhEPb@TV~iFDJV~n0x0o9lU(HNQ~eaoGHwl+p6X7+bQy+QaCtaCn1~oE*Z`|} z0L9vR^TPf*xiTMhIbp{^{YAS=j#g~C=*{}BGq}@pFLF>df{zSYj@+7VXL%u}7%qEJ zoK+#NfMdP3JsNHra{9URg8hBWFTX^;<$SZ1FH<+(s@8{o#XVv;#{4|YJy4d}zi|Qm z$v__N+<$N_HQ!w@;Vmb%paTcE0XgU$B%wdY&I!haq2LqKa(jODiz#FOl2l(Mb!Uci zwJ{%o{VRkQb+&AlTsBA@qdhC{GK0{F(%}+H8V_&$;uzbn-0`+f@5l7~vOh^fpncF( zN1WXp4{g{zZv~lj3#7W)?BO{|*FJu-69LjROXJJ6^)KEzNofN$yTm~ap}8Z@glPMQ zo@<}lHiXDQk!r-6kM>V0rQ0Ebu)I&!k zXk4uWTf5C8z9^czq;}Ht!FLd6@FlYi6K_5uXTR$10|bIa^-bDe5opFQTVkfGPGR{$ ziH$;YD&?{u+hz2U(o%mr<@knaU@3p~NGu}b;S7^mXPl+&sv-!dbGWn1JY6n4@iE(J z`m^esopIZ$avAHJ=Z_lvc0tiZ6xXG>*+}Xd2%q*J`5}nTwgybr-6t~8dcLm(`fD@i6PY3+$5OK(se2ny2v}JQcSMLI}`ds%(CG`KsbC% z+d^>JI&p51Gyy$F&O$(Upwad8eyUMwEdiS0-%MFjPa*dsS0kEt2%}I%p>Y=2HGWA+ z-iDPX>~8nkh}H(Vx*tlz$j(bUVxl3i8CGKJFn^$#P@x21-#kCj^sIOYjh+_TA20?%J~T@|3}QqV@P+F=4FA={M7f_ zZiQFlMs~ugPG6Z9t!78@)DCiUuoV3H-UQT7=rZs1b~R=7h=MP9V=)r%Fax$RPv9`} z)8Ar3v$y^_!^sv{tA@=b#Hd-9LEWI={8HP}1dRVY__B+^urhhW-ce3t0e{ zW&UVYN(s&TkMUYY*4^_ysGVp4;1dsehzxIM%XS`xVgAzjve4c5uTEod}>iyt!;+b%ri|l*Q+rVAU+e8jwT|~Qhr(FyWne)q4 z1hKI|bppExWB4@1F z4-sL9b4o+QY&DXhV~xpUnNB_@!(}s(b4!O!is-|^WqUjPUXsfV9|>c-=neeVY+G7; zLP^-C51Ui4s`VM#&u6*8d99rfU=V4Xuz#99EdP1>urqW1*Qbw)jNL8+O4pH^JABG2 z@UW{mkV>%ekBtHxIT_mS;9EZ^Lp=)sm_H(+ZVd%ha|0c-7Crcw9mz!Pu5C?z8qd|-m#<)R&KZmWHz2; z-pjo8U)m+FWIVjMuVa_%^QhBl*tq^Ic=+t%#9;fF-cGsw^k9+h zXdqBgQOlZlP|EO~_f01_@E-r&s0~(H^OYrKKJ3b_h%9yBzzqY0`LG(Z>?dWAWu7A7pm=b7<{aR9NH5q_BaE+@d2P!MhD`YRoMGVV3 zM+(G|6wZOjp&;N}Ku9%??m3eEJR85S49-vJ8_NfI;_OzzaWdpVwc}J&JQD-uW4kbU zBr3wkPW9NX5HS;@$j2VpSeP%S)5Yz3c~=~{##3?2CYQN&C=pfX@%z>)*ZKIa*o;q( z>(=9U!%UK_ckccA(RbLw+~)6!)gy_&9zA*d4w*@!^T}npyi116E0ccZF=;x>Y1iv{ zE7`Ld;P&)+sC3#|1E1sld08-syxe^Fiih7xtlA#uH8$D{8?F0moBrmmT>hV!Vg1j{ za56Cbx0qSuLg+eEs}BP>>1X99QKW+bE;a_{ya$%KzOIcO+J_7`5&8-L@)Y-dg}^33 zD0l3+-{GDIsVAbJtrxD^u}6y+;VkXlAt&4NOmCK?kD9Z_nGUc8>!jM(ar@+G;_p$ z+0K1xBA+%oB#K{PAlnCW*?HB#RCmzxjw$j-1E6Fr(V!%u2jJh^#phj;BsKWU%r&>NNYF9}*&-dy;w zRtPLXw5pWjJ*mp{!>^tV5ymh35v}R@H$o_xtw;}-H$FW0H9Fa~8&)(aN;SjwmFh^2 zN52}2QLS9P+IE*;DKf8fo(eUQCBG?EL;Y8QC;*i~{vi2-ZUeaY0&W9>Y!(9M=URG1 zf!Bl86ZQelE&!yoXkq{?^f7G%$nz4FY8qoKFlY}3iB%|S7qli*(xsv@QBBX58xRJo zbb$`hgf=a#iC@>}>r;bS0?ZE50kp9KfXhxd{5amNKb}>UqD9^Ybk8HbPhV$-&m_$k zsMnbH_biys1Y3aMv%-=mu5Ky?e89?JwP8>zvdb(T?8&vPsV!UoXw9Juoz*OeRVGmf zps%2`r9327LrDv^qc}{m>r>R+gvKP1Dzs-wjMe-}Yq+aj!&tgrFS!qSC{HAIlc2t! zP#tK2K+gf*VKuJnKcMLl&86uS-JQvqY@DB2BlrRxOS$DF{X%;M%HDnG9*{mG8IV=b z^IN~pAa}f*(zIlpB(x6#SoLi2i>v~|0k)J^6s z^)Is;$;n;19w2ZrO%LF^jwsdZIHMXCj<&=rkgokdYR)e@Q(W@C`f)qaI5!Qcj+(I! zbhcBBI-{_o+e%-DnDiBJTk?>bAlb=s2kG-ucUz;XhZ(MKuW9MJ_jbB02 zpYUXF{K+d{gvMWCWN*EU9;u~WQ{vyU$NJg6N7>Phz2TAhJ4x^gwHw8qIFxZSw|Vf> zU*}%TZs*}9_s1qq^@|YgR2=zCEyQi@}Hl;Xd9TvND=Gt17`~@1Ccgrw0F^Z(ZV>)ney<(6ld|_Tz`m z|9RDT@No*KqdP6&z3}1xxbC^z@OX4Dx*RR=xlih-wmn<(W!C|{wb|;)<$8~wx_nY$OmRYsrwR&pWJJ}vxF*e1bl zw88~C>!}Lm#o`uqLM%HpYhTmZiYb)m6|yrnT)bG75WTm3>L(=O@4+SS?Y(FfYSylN z5lZKg-NQcVjy!ZTIvUmaDx~8_#(;<`8{AnGivB%kS;Ex|>k>rI&*oKksOS7K?d{3! zjynIRe#G_o{ifdHqwPe`yLrL0Bvqy<(tGQJ-3&?AV>7q?tZz}qeVB_KhCXy zrAB70sYkBImZB^89_$p)A=el}rvo3#)LZpGD4#*k%6OIQKT$lPmhu$n&Sqx4`d^)P zn?9qTtC_ZEM?lY{DbifXk|(%eKh(d|Ow-GHi^j=%%LWXa?S{{&Pejc8Nt5*+ z>5%mf&6D*ei+zsX%z1|S_%6zl^A)*~^9{0-^C|h^1G`i8H?nY@HJSg4?9&-L^Z$aZ+7{kV z=C#KeTeJ`B6=4N-KW&wl4@y^^!)`{B z*mdqaEjET;vz6P@gq{TYxlUilKQh}*ablJ{mvGFECdOf#<|bJbbK&-?%6$73eI*t6k%+{z|v@}2@*mQz0vV{(Gp!a_hUZW$WM!li^gU7dyJ^&U{`P zxVc!r3eVgQ=hwz7zQ10qY(8hxWjcGII#0WSB}>#T)n_W(9gn@7$PT~me0OVk)s{a| zPbu_3rGku+75kDQh9F3A!o3Mt`XJ0N8sLrbMp?m`@WuPYD;j0{#`?#cK%}8WBUGqr zcO2@g`^q^=fQ)2h%%Q6L%N3drld(jsiWf-1;}z8)>|x{PJ{Qb-(qCH?^p zvsz|`J0Y@H7Z7A4iOqu>>Jhsew)uj`Q4Dqe%QfuA#8?3 z#Xka_F>I54=fssTVec!7?qb{2jDt0D&k2bxppC*P^8Kmb1x8i}>ybbjt-vpZiA=ut zSwM(PZ?1DYK(j5S$`E>3Z449F7|FO;_9+w1o3I#Nz-;!xxHP5V2je^aY5{*x%^#YZ z{Xm{P@rrz(+w__IT+L6&cP3rHX_iCT<1o!d{L3T<@t{#wh#&3EdM*kzZ>|V6&q)6! zgJYL@sd1P2u>>`*p%yi7rwlbOg7_O#YCfS})VzZE$eH7f$eHV@$Qfll?@-_GYBNGU zqYc4tToLm6>4(gYDTmB{efQ@@$cL=wP3Aj74s5^~H7iBdHHsQ zPp5fsc6Jf9oX1*TJ}$M+*Df!2`57U#nhk}G!z#l?woz_L-Im4C3fH6RFLK&-t$E)P zf3c08j;*54kC`Pn;#Z6PZnjbQ)!t3TX4SNo-32{c4i=ra{K@X6On(!tqYb<>6_i|BxbL%m!Dc;9 zfil+|S*oVq^|d@K=0=nlcXA(*C0CWXr$=NU*9&ViG0;LVq#7puCWc9Z1SDJy(=MYV z1Hg2k^d}`?M3HMxkeyv1S_>piPGl+M$YIcT1Q-)19TWyJK2A7TCl-o>`G~9lkOG35 zr6Vl@xM=KKC$fe-A#I!h1x7*kKUWM^fC-wG9eO>Ne(1p*1HV427vGVfC?dH(a=C8_ zb*BxI-j0nefqP$-?D~-{nN6rG4l~DPW+nqs#k$8?jCIJ4D9S#GFBxuI z_K6-Only$T{ANm(Z9iv>V|AzpF`Zo)B?~mnpen|>{JQ+B!S84m_0>z!T4c5U!Q3ykB^ZR~J6K<_V^GrBb8t%vem{w>?1H{_}^rf294c1QJp zf`Rit!@$PL@n1GMZN6dnUrf#)(x@Ut2*o%*|JE;%Y&u2YaFVdkkLfH%i&jla0p=Oz zyIlMccK+Pfr0UB@Tci!Ehh5nXlk#^2X+6&vagUxg`NR;x2e*X3(!PhP*DuDrOVkINLERd$&-vunjXJr znc#Fxc}2%+&a2KrsLtDAV91hG3&n)V_Uh|eW<-gJABGij<)RbMSv7 zIp&y~U?3XmF|6&+3J7Yxtf=7cs-wR}WDR>lS~-FG7Ye6;qaaFd$jhblu>!jf{OqD$ zd`*&E^Nj+}>m;G>gs7>#*ywL?UmH?gLRr#jggTN?^PHw8vf#zc8yrR0yDSK;e?wtM zHh!jOUpFt}JILxB$t~DUPX;u(HVfux=8IY&bJ=lW(htVyMTP0^&lbn?El%f<&y4{7 zIV2-L)m<2@>YWV2_xgf`KKKc*e?g&Mj#~E+=gwjQk>$_#R%o0KBphrid}xFR*?rRR zdS@yxlim0Y442YO$m>EcJ70RmJ=10Tw%lnu1NnnCN2>*4PXM(^EyoeomqY+H^$ z(Qd()_Q%O!Sk%OUC$4guL4H=C9YGK1^#^-Rr>>&Ua#7TmcW2BKdE;Lw)F3;`{sRi% zd3YHJ>DF+I`>L>o%;<7O6i;3x#01u&*{?nU|X;=A7wUlRS-M6a`ne^|b33JSfusa>Q)=`T5h-(87Z^x&?Ca zloQX?G!>*8F%4!C8YsHtPw_p(pt0zW@EgJ>i%7^HBHB>;km4}IPI$%0FfHXj^&v}0 zV<=?JVA62_s1z$05CJhwjX7t=7>EbE4C(qZ{ehaTDky$*($(7`{tUfGT0DpZ{O-nu za)2UKpa{7EFQ?-39Q+pWor^}%9qE@U(yJ4m&mlsc2{Ch9k_d3skzRZ9F*7~Kx|yLb!&!4Ak0AT4$q;0^%xI&jck2EO zCFePbe2kG(iX+`GP0q(FoDRXS%f3AGhz5RY2Qb*B>q!LPKk}B_VF$b!C|K3}D6^(U zoQ!||RTa9cM{ECG6?pzqg-e|Yyo}a;cd(p_BSD|jEo}TrWlzi}?dxw0(!Z4)thrXicY;M@E zXJh0Ic|{5H9h6?cG54QP_|Ji)zft&a?8yJ`RpH-Ih!^_uJ(}W>>C~YV*c<&ek!D8J z`0@Ty1>JR$j>Xe)+|F+k=^KS*a5c4W6A7*s_v%{}e0;sSl;VWcY&Obk|3={^H1S&% zTq`#?&%Pw6pH`dGP_E0*%>F{bPRJw-@`D8_FY6`-si#{Bq#Qb*<0TC{R%UsV(y6M2 zOn+m^!_EKRh~eSh(i5%O?wbXy1!xq|zgURz9iBP;ftT<8=8LmoFn`&p-ylCv?&*OO z=CfDX!DK^PEIEJv+gDacnJ76pkyWE8Kh4_K+N&&bIC9Qj)hAB z(f~#jxKGD82bQ9(pwSd07b6azL<1%P{}83ZBqJgailaHg!}K&hR+|J>N0#?@rN#W# z2GBz^11oX*1f5!p{B!{0G@@uj3};uOB{Q>1{>}hzfL^#Ll-yt@NkKndu{72pD@WsM@Fh-eD?#-d%o)N(hTaH<4ueky!*^u2z=!ks)idTBH5e=z zB5sJMDQ%9O!f}qJ$zG&vPLc0mB#{Qyv5vJ5Yrh({oQ|PBHvg6dzQ0+ppZSXg$8Q!g zq@iG!@S)6`8nQ7aErutujrd}?0>QEzXwMp``wRMS`xzLYf_)p)t(KXH?^1DQ@|hpB z$K*bGZu+H5QXOVM{S;?H_$rPD+GU_`V6`cohB=R(<)E}R2zzcYQQ<$1PUZ0Vw6*E+ zp9Ea6z&fa&;dZqEw*2Nh;;bsKJe6T#=zm!F z9~S;=EEIw`SN#(U|8UU%f2S^({SOQO!@_@!1!h#|@qc3BU$>Fu9qo)=jJ|zbDC~_* zl}*%X8R=LU=$P0jq3DIaom`ylzMp(o|3}fn&Q|!_6^4M~J3k2n6AL3F0~_OaP$Nbb zY6eDf1_tu)b~1Lx|EDI(jt2JjCdS`>H3rsBCQ$V9$|CA?qAu3fh6c8_e~m@i+`@_A z`}c2Sq9ITmTG&1sD#-&gc05R?*=hLySUf4vWKwbCCp|QX5Y(Zy&{A~=r0Sq9B!#J*~KzArNh5!j9QbuWkLEcII)Kh|GN}j&K znNe_DA&9R5wQz#p8emT0gaIT=*AQ_6m3!h_N2bYWRlu@1WJ>PQXqd(E0%)Ks!29uj za{7QG$ z#0O71?8bZ=#n=h>VPigB>05-a_NtLPFF7413c>A!apdlrB<;DIBBt_uO0kp7CEoWu zEc8hycH!jEel(;H@s>J}R)}(lvm_F%-a;uK{(0BXz9%deV^c*w`>sx&%y_t$*}-?6 zB5ZKG@SSfGEIt}83)G6M0&DiO#mQBvm3L4Ev?^-3bSh%qtd&J{I=^J?muNemR9x9j z(3M|ojOFk2&I&7{us6f9p77&pr|I43rfX$^QJz?&xmNn8 zz*h=Dx#1MF)z3M62a&tLxD{)S!W<@0cvel#lr#GwnG~-LniM*1QetkJ!;?fLqY^f~ z?+FS;f{uj-pY^})PYWdmHJIR+W(i0~7LLS$i_%Hf3j-p-V0(<_x9gfrw_4QWE4jr! zYa91Xyx^#aMF(|+6Kp$=nGNm|>m%7GME#^>d1;+f!yt-IQaIFCNpsW1T3KdltM6aO z3^=%a-JI7`2QN9GcHi+M7dNj^M`~BaFy* zKo`S8B_D}t5#?r&6|$u8m5C)7b$qM zXv)3SR_vRl!--nsDysHcR`Hwhp&*OO7FV#;nJ34B+YCjIakHV4RP?I7~7%S zQj?4x&_P#ZrB)VE{^%E1Gi3zHbn3L6VVkwrSt~R*4-ZXkVfs~gCY^P{YY)4xTT44L z_xH<8t{~L1q0)I{uIK@l31}-KpouPc0T-gV`q}}D&-el|89%6_agk^oY3Mw4r7~AQ zEI*vQJRiXyX7sx|RqooO14?a|%y^3ypXQ?$dAdbk*)%>e5 z9oZ`D(}yRAwt;UUI>#*OCooYL#tPnNINKhY%BRC+7q>T0JIxfjQONs?IKiCBfuxh# z#s|Y|HDv6_4owjBEg_v5oc2!fS~Iq;{D#KjFug;@2$!pe^}Mckw3!&_K=O3t7IMXzMx`Io4FCjwI=&|)NDCSd%o zRJ5~mCSc_J>jYczuYZ`@eV6{SYW^w-6KL@;3bJ!DvkD8bh%mAV3Ndmp3$idVaWXTo za)>grF|si55&WNx zUTDY%!3_~m4UJM<*eF2C1ZL!qdK(IvriS?)k`WOAF);2V0 zqLupFV#8#R?~fXn!Wc)!exD_MRR}zkqXBG-WyVPPxJUiHLX8Y*yS5SPkUp)Ri|QSe zJ}(#cu{F-plavD&WnfOFTDCx>!I36wbGQQ;Wq?k2g$WvEh)#uaw#+Ymc6`dzB#`rI z#^H8jIP2rqU2i6MHtn(-Pj^ra0PN1%RFaBdnJ)QiGL`zcD^&D^ka{`FVXQ`sN79~a@Vr|Pb;Z-&+ zY^AD+EEA`n5Bd3F^5a#T9`HX|ajLEU|DM^O9;|%)u>AOA!Q+!R_dT5QxN>pwlA9k_ zUH!Q0wBfz=oBwnl4mu=nq0{{TThHyeKa&45vh Date: Mon, 11 Nov 2024 18:05:46 +0100 Subject: [PATCH 02/40] Ignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6142305 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.o +*.d From b72f78839c6aabd114afa307031889626e7f8175 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Mon, 11 Nov 2024 18:06:07 +0100 Subject: [PATCH 03/40] Hello and editor --- lab1/editor.cc | 30 ++++++++++++++++++++++++------ lab1/hello.cc | 5 +++++ 2 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 lab1/hello.cc diff --git a/lab1/editor.cc b/lab1/editor.cc index 82ec95b..fca27d4 100644 --- a/lab1/editor.cc +++ b/lab1/editor.cc @@ -6,11 +6,29 @@ using std::string; using size_type = Editor::size_type; -size_type Editor::get_size() const -{ - return text.size(); -} +size_type Editor::get_size() const { return text.size(); } -size_type Editor::find_left_par(size_type pos) const { - return string::npos; +Editor::size_type Editor::find_left_par(size_type pos) const { + char right_par = text[pos]; + char left_par; + + // Determine the matching left parenthesis for the given right parenthesis + switch (right_par) { + case ')': left_par = '('; break; + case ']': left_par = '['; break; + case '}': left_par = '{'; break; + default: return string::npos; // Not a valid right parenthesis + } + + int balance = 1; // Start with the right parenthesis at text[pos] + for (size_type i = pos; i-- > 0;) { + if (text[i] == left_par) { + balance--; + if (balance == 0) return i; // Found the matching left parenthesis + } else if (text[i] == right_par) { + balance++; + } + } + + return string::npos; // No matching left parenthesis found } diff --git a/lab1/hello.cc b/lab1/hello.cc new file mode 100644 index 0000000..b873300 --- /dev/null +++ b/lab1/hello.cc @@ -0,0 +1,5 @@ +#include + +int main(int argc, char *argv[]) { + std::cout << "Hello" << std::endl; +} From bdc3832fd12e888bef102559fb7294c8599b7de3 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Mon, 11 Nov 2024 18:06:14 +0100 Subject: [PATCH 04/40] Justfile for convenience --- lab1/Justfile | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 lab1/Justfile diff --git a/lab1/Justfile b/lab1/Justfile new file mode 100644 index 0000000..1ab8b38 --- /dev/null +++ b/lab1/Justfile @@ -0,0 +1,18 @@ +all: a1 a2 a3 a4 + +a1: + g++ -o hello hello.cc + ./hello +a2: + g++ -std=c++11 -o separate_main separate_main.cc separate_fn.cc + +a3: + g++ -std=c++11 -c separate_main.cc + g++ -std=c++11 -c separate_fn.cc + g++ -std=c++11 -o separate_main separate_main.o separate_fn.o + +a4: + g++ -std=c++11 -o separate_main separate_main.cc + +a5: + g++ -c -O2 -Wall -Wextra -pedantic-errors -Wold-style-cast -std=c++11 hello.cc From 63265d5cfb8962159eb383a9ae266fa739fb9b74 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Tue, 12 Nov 2024 02:59:00 +0100 Subject: [PATCH 05/40] Bunch of ignores e.t.c. --- .gitignore | 1 + lab1/.gitignore | 2 ++ lab1/Justfile | 22 ++++++++++++++++++++-- lab1/buggy_programs/.gitignore | 6 ++++++ lab1/cmake-example/.gitignore | 1 + lab1/coding.cc | 18 +++++++++++------- 6 files changed, 41 insertions(+), 9 deletions(-) create mode 100644 lab1/.gitignore create mode 100644 lab1/buggy_programs/.gitignore create mode 100644 lab1/cmake-example/.gitignore diff --git a/.gitignore b/.gitignore index 6142305..2458f1e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *.o *.d +*a.out* diff --git a/lab1/.gitignore b/lab1/.gitignore new file mode 100644 index 0000000..6f6e224 --- /dev/null +++ b/lab1/.gitignore @@ -0,0 +1,2 @@ +hello +test_editor diff --git a/lab1/Justfile b/lab1/Justfile index 1ab8b38..09cf796 100644 --- a/lab1/Justfile +++ b/lab1/Justfile @@ -1,18 +1,36 @@ -all: a1 a2 a3 a4 +all: a1 a2 a3 a4 cmake buggy +# Build the A1 lab exercise a1: g++ -o hello hello.cc ./hello + +# Build the A2 lab exercise a2: g++ -std=c++11 -o separate_main separate_main.cc separate_fn.cc +# Build the A3 lab exercise a3: g++ -std=c++11 -c separate_main.cc g++ -std=c++11 -c separate_fn.cc g++ -std=c++11 -o separate_main separate_main.o separate_fn.o +# Build the A4 lab exercise a4: - g++ -std=c++11 -o separate_main separate_main.cc + @echo "Will fail" + -g++ -std=c++11 -o separate_main separate_main.cc +# Build the A5 lab exercise a5: g++ -c -O2 -Wall -Wextra -pedantic-errors -Wold-style-cast -std=c++11 hello.cc + +# Build the cmake exercise +cmake: + rm -rf ./cmake-example/build # Start over + cd ./cmake-example && mkdir -p build + cd ./cmake-example/build && cmake .. + cd ./cmake-example/build && make -j$(nproc) + ./cmake-example/build/SimpleMain + +buggy: + cd ./buggy_programs && make -j4 diff --git a/lab1/buggy_programs/.gitignore b/lab1/buggy_programs/.gitignore new file mode 100644 index 0000000..eb7d7dc --- /dev/null +++ b/lab1/buggy_programs/.gitignore @@ -0,0 +1,6 @@ +bounds +bounds-heap +dangling +leak +sum +ub diff --git a/lab1/cmake-example/.gitignore b/lab1/cmake-example/.gitignore new file mode 100644 index 0000000..378eac2 --- /dev/null +++ b/lab1/cmake-example/.gitignore @@ -0,0 +1 @@ +build diff --git a/lab1/coding.cc b/lab1/coding.cc index 6b28096..c06bb86 100644 --- a/lab1/coding.cc +++ b/lab1/coding.cc @@ -1,10 +1,14 @@ -#include +#include -unsigned char encode(unsigned char c) -{ - return c; +unsigned char encode(unsigned char c) { + if ((c >= 'A' && c <= 'Z')) + return ((c - 'A' + 13) % 26) + 'A'; + else if ((c >= 'a' && c <= 'z')) + return ((c - 'a' + 13) % 26) + 'a'; + else + return c; // Non-alphabetic characters are unchanged } -unsigned char decode(unsigned char c) -{ - return c; + +unsigned char decode(unsigned char c) { + return encode(c); // ROT13 encoding and decoding are the same } From 74ce672841f4ecae528c9ba63108d79a28c32545 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Tue, 12 Nov 2024 03:05:51 +0100 Subject: [PATCH 06/40] Significantly more stupid encoding than rot13 --- lab1/coding.cc | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/lab1/coding.cc b/lab1/coding.cc index c06bb86..1b51ffd 100644 --- a/lab1/coding.cc +++ b/lab1/coding.cc @@ -1,14 +1,9 @@ #include unsigned char encode(unsigned char c) { - if ((c >= 'A' && c <= 'Z')) - return ((c - 'A' + 13) % 26) + 'A'; - else if ((c >= 'a' && c <= 'z')) - return ((c - 'a' + 13) % 26) + 'a'; - else - return c; // Non-alphabetic characters are unchanged + return ++c; } unsigned char decode(unsigned char c) { - return encode(c); // ROT13 encoding and decoding are the same + return --c; } From 1f44b48fdea2608ff5a111ef111e8d5ca5b87137 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Tue, 12 Nov 2024 04:57:21 +0100 Subject: [PATCH 07/40] Trailing space trim --- lab1/buggy_programs/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lab1/buggy_programs/CMakeLists.txt b/lab1/buggy_programs/CMakeLists.txt index c3a3b00..a11369d 100644 --- a/lab1/buggy_programs/CMakeLists.txt +++ b/lab1/buggy_programs/CMakeLists.txt @@ -3,7 +3,7 @@ # It uses generator expressions, to set additional flags when the build type # is Debug. # -# To try this out, first create a build directory for a release build, +# To try this out, first create a build directory for a release build, # and do a release build, e.g., # % mkdir build-rel # % cd build-rel @@ -21,7 +21,7 @@ # # where SRC_DIR is the directory containing the source and CMakeLists.txt, # e.g., .. if your build directories are placed in this directory. -# +# # Run the examples and verify that the sanitizers find the errors. # # If you want to see the actual commands run during the build, for instance From 53b9f8e4a3ddbc2590174e4f72d05fde8510baa6 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Tue, 12 Nov 2024 04:57:45 +0100 Subject: [PATCH 08/40] Valgrind steps --- lab1/Justfile | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lab1/Justfile b/lab1/Justfile index 09cf796..d7b08bc 100644 --- a/lab1/Justfile +++ b/lab1/Justfile @@ -34,3 +34,18 @@ cmake: buggy: cd ./buggy_programs && make -j4 + cd ./buggy_programs && mkdir -p build + cd ./buggy_programs && cmake -B build + cd ./buggy_programs && make -C build + +valgrind: buggy + cd ./buggy_programs/build/ && valgrind ./dangling + cd ./buggy_programs/build/ && valgrind ./bounds + cd ./buggy_programs/build/ && valgrind ./bounds-heap + cd ./buggy_programs/build/ && valgrind ./leak + cd ./buggy_programs/build/ && valgrind ./sum + cd ./buggy_programs/build/ && valgrind ./sum_alt + cd ./buggy_programs/build/ && valgrind ./ub + +clean: + git clean -fdx From dbd64f45458653b9051ab2dbe0bae1e362a906d7 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Tue, 12 Nov 2024 04:57:48 +0100 Subject: [PATCH 09/40] Formatting --- lab1/editor.h | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/lab1/editor.h b/lab1/editor.h index f1a576a..5d6ac7b 100644 --- a/lab1/editor.h +++ b/lab1/editor.h @@ -4,24 +4,24 @@ #include class Editor { -public: + public: using size_type = std::string::size_type; - /* Creates a text editor containing the text t */ - Editor(const std::string& t) : text(t) {} + /* Creates a text editor containing the text t */ + Editor(const std::string &t) : text(t) {} /* Get the size of the current contents */ size_type get_size() const; - /* - * Text[pos] contains a right parentheses. Returns the position of - * the corresponding left parentheses, or string::npos if there - * is no match. - */ - size_type find_left_par(size_type pos) const; + /* + * Text[pos] contains a right parentheses. Returns the position of + * the corresponding left parentheses, or string::npos if there + * is no match. + */ + size_type find_left_par(size_type pos) const; - // ... functions to edit the text (insert and delete characters) -private: - std::string text; + // ... functions to edit the text (insert and delete characters) + private: + std::string text; }; #endif From 3645b14f3ce22d80a20331857888e732dc45dfde Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Tue, 12 Nov 2024 04:57:54 +0100 Subject: [PATCH 10/40] Clang-format --- .clang-format | 274 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 274 insertions(+) create mode 100644 .clang-format diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..53017a6 --- /dev/null +++ b/.clang-format @@ -0,0 +1,274 @@ +--- +Language: Cpp +AccessModifierOffset: -2 +AlignAfterOpenBracket: Align +AlignArrayOfStructures: None +AlignConsecutiveAssignments: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionPointers: false + PadOperators: true +AlignConsecutiveBitFields: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionPointers: false + PadOperators: false +AlignConsecutiveDeclarations: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionPointers: false + PadOperators: false +AlignConsecutiveMacros: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionPointers: false + PadOperators: false +AlignConsecutiveShortCaseStatements: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCaseArrows: false + AlignCaseColons: false +AlignConsecutiveTableGenBreakingDAGArgColons: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionPointers: false + PadOperators: false +AlignConsecutiveTableGenCondOperatorColons: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionPointers: false + PadOperators: false +AlignConsecutiveTableGenDefinitionColons: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionPointers: false + PadOperators: false +AlignEscapedNewlines: Right +AlignOperands: Align +AlignTrailingComments: + Kind: Always + OverEmptyLines: 0 +AllowAllArgumentsOnNextLine: true +AllowAllParametersOfDeclarationOnNextLine: true +AllowBreakBeforeNoexceptSpecifier: Never +AllowShortBlocksOnASingleLine: Never +AllowShortCaseExpressionOnASingleLine: true +AllowShortCaseLabelsOnASingleLine: false +AllowShortCompoundRequirementOnASingleLine: true +AllowShortEnumsOnASingleLine: true +AllowShortFunctionsOnASingleLine: All +AllowShortIfStatementsOnASingleLine: Never +AllowShortLambdasOnASingleLine: All +AllowShortLoopsOnASingleLine: false +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakBeforeMultilineStrings: false +AttributeMacros: + - __capability +BinPackArguments: true +BinPackParameters: true +BitFieldColonSpacing: Both +BraceWrapping: + AfterCaseLabel: false + AfterClass: false + AfterControlStatement: Never + AfterEnum: false + AfterExternBlock: false + AfterFunction: false + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: false + AfterUnion: false + BeforeCatch: false + BeforeElse: false + BeforeLambdaBody: false + BeforeWhile: false + IndentBraces: false + SplitEmptyFunction: true + SplitEmptyRecord: true + SplitEmptyNamespace: true +BreakAdjacentStringLiterals: true +BreakAfterAttributes: Leave +BreakAfterJavaFieldAnnotations: false +BreakAfterReturnType: None +BreakArrays: true +BreakBeforeBinaryOperators: None +BreakBeforeConceptDeclarations: Always +BreakBeforeBraces: Attach +BreakBeforeInlineASMColon: OnlyMultiline +BreakBeforeTernaryOperators: true +BreakConstructorInitializers: BeforeColon +BreakFunctionDefinitionParameters: false +BreakInheritanceList: BeforeColon +BreakStringLiterals: true +BreakTemplateDeclarations: MultiLine +ColumnLimit: 80 +CommentPragmas: '^ IWYU pragma:' +CompactNamespaces: false +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: true +DerivePointerAlignment: false +DisableFormat: false +EmptyLineAfterAccessModifier: Never +EmptyLineBeforeAccessModifier: LogicalBlock +ExperimentalAutoDetectBinPacking: false +FixNamespaceComments: true +ForEachMacros: + - foreach + - Q_FOREACH + - BOOST_FOREACH +IfMacros: + - KJ_IF_MAYBE +IncludeBlocks: Preserve +IncludeCategories: + - Regex: '^"(llvm|llvm-c|clang|clang-c)/' + Priority: 2 + SortPriority: 0 + CaseSensitive: false + - Regex: '^(<|"(gtest|gmock|isl|json)/)' + Priority: 3 + SortPriority: 0 + CaseSensitive: false + - Regex: '.*' + Priority: 1 + SortPriority: 0 + CaseSensitive: false +IncludeIsMainRegex: '(Test)?$' +IncludeIsMainSourceRegex: '' +IndentAccessModifiers: false +IndentCaseBlocks: false +IndentCaseLabels: false +IndentExternBlock: AfterExternBlock +IndentGotoLabels: true +IndentPPDirectives: None +IndentRequiresClause: true +IndentWidth: 4 +IndentWrappedFunctionNames: false +InsertBraces: false +InsertNewlineAtEOF: false +InsertTrailingCommas: None +IntegerLiteralSeparator: + Binary: 0 + BinaryMinDigits: 0 + Decimal: 0 + DecimalMinDigits: 0 + Hex: 0 + HexMinDigits: 0 +JavaScriptQuotes: Leave +JavaScriptWrapImports: true +KeepEmptyLines: + AtEndOfFile: false + AtStartOfBlock: true + AtStartOfFile: true +LambdaBodyIndentation: Signature +LineEnding: DeriveLF +MacroBlockBegin: '' +MacroBlockEnd: '' +MainIncludeChar: Quote +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +ObjCBinPackProtocolList: Auto +ObjCBlockIndentWidth: 2 +ObjCBreakBeforeNestedBlockParam: true +ObjCSpaceAfterProperty: false +ObjCSpaceBeforeProtocolList: true +PackConstructorInitializers: BinPack +PenaltyBreakAssignment: 2 +PenaltyBreakBeforeFirstCallParameter: 19 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakOpenParenthesis: 0 +PenaltyBreakScopeResolution: 500 +PenaltyBreakString: 1000 +PenaltyBreakTemplateDeclaration: 10 +PenaltyExcessCharacter: 1000000 +PenaltyIndentedWhitespace: 0 +PenaltyReturnTypeOnItsOwnLine: 60 +PointerAlignment: Right +PPIndentWidth: -1 +QualifierAlignment: Leave +ReferenceAlignment: Pointer +ReflowComments: true +RemoveBracesLLVM: false +RemoveParentheses: Leave +RemoveSemicolon: false +RequiresClausePosition: OwnLine +RequiresExpressionIndentation: OuterScope +SeparateDefinitionBlocks: Leave +ShortNamespaceLines: 1 +SkipMacroDefinitionBody: false +SortIncludes: CaseSensitive +SortJavaStaticImport: Before +SortUsingDeclarations: LexicographicNumeric +SpaceAfterCStyleCast: false +SpaceAfterLogicalNot: false +SpaceAfterTemplateKeyword: true +SpaceAroundPointerQualifiers: Default +SpaceBeforeAssignmentOperators: true +SpaceBeforeCaseColon: false +SpaceBeforeCpp11BracedList: false +SpaceBeforeCtorInitializerColon: true +SpaceBeforeInheritanceColon: true +SpaceBeforeJsonColon: false +SpaceBeforeParens: ControlStatements +SpaceBeforeParensOptions: + AfterControlStatements: true + AfterForeachMacros: true + AfterFunctionDefinitionName: false + AfterFunctionDeclarationName: false + AfterIfMacros: true + AfterOverloadedOperator: false + AfterPlacementOperator: true + AfterRequiresInClause: false + AfterRequiresInExpression: false + BeforeNonEmptyParentheses: false +SpaceBeforeRangeBasedForLoopColon: true +SpaceBeforeSquareBrackets: false +SpaceInEmptyBlock: false +SpacesBeforeTrailingComments: 1 +SpacesInAngles: Never +SpacesInContainerLiterals: true +SpacesInLineCommentPrefix: + Minimum: 1 + Maximum: -1 +SpacesInParens: Never +SpacesInParensOptions: + ExceptDoubleParentheses: false + InCStyleCasts: false + InConditionalStatements: false + InEmptyParentheses: false + Other: false +SpacesInSquareBrackets: false +Standard: Latest +StatementAttributeLikeMacros: + - Q_EMIT +StatementMacros: + - Q_UNUSED + - QT_REQUIRE_VERSION +TableGenBreakInsideDAGArg: DontBreak +TabWidth: 8 +UseTab: Never +VerilogBreakBetweenInstancePorts: true +WhitespaceSensitiveMacros: + - BOOST_PP_STRINGIZE + - CF_SWIFT_NAME + - NS_SWIFT_NAME + - PP_STRINGIZE + - STRINGIZE +... + From e4e27d421a0ec8fb86c2e0e88d7538a1900cf99f Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Tue, 12 Nov 2024 04:57:57 +0100 Subject: [PATCH 11/40] Gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 2458f1e..903ddae 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *.o *.d *a.out* +build From 7d93d5dbfaa4d4450883c7b484ecc9929e0bfea7 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Wed, 20 Nov 2024 17:46:21 +0100 Subject: [PATCH 12/40] Lab2 ish --- lab2/Makefile | 24 +++++++++++++ lab2/dictionary.cc | 82 +++++++++++++++++++++++++++++++++++++------ lab2/dictionary.h | 19 +++++++--- lab2/edit_distance.cc | 35 ++++++++++++++++++ lab2/edit_distance.h | 18 ++++++++++ lab2/spell.cc | 31 ++++++++-------- lab2/word.cc | 34 +++++++++++++----- lab2/word.h | 34 ++++++++++-------- 8 files changed, 224 insertions(+), 53 deletions(-) create mode 100644 lab2/Makefile create mode 100644 lab2/edit_distance.cc create mode 100644 lab2/edit_distance.h diff --git a/lab2/Makefile b/lab2/Makefile new file mode 100644 index 0000000..4e354d7 --- /dev/null +++ b/lab2/Makefile @@ -0,0 +1,24 @@ +CXX = g++ +CXXFLAGS = -g3 -Werror -Wall -Wpedantic -Wunused-variable -std=c++17 + +SRC = $(wildcard *.cc) +OBJ = $(SRC:.cc=.o) + +all: spell edit $(OBJ) + +edit: test_edit_distance.o edit_distance.o + @echo "Building & linking $@" + @$(CXX) $(CXXFLAGS) $^ -o $@ + +spell: spell.o word.o dictionary.o + @echo "Building & linking $@" + @$(CXX) $(CXXFLAGS) $^ -o $@ + +%.o:%.cc + @echo "Building $@" + @$(CXX) -c $(CXXFLAGS) $< -o $@ + +clean: + rm -f *.o spell edit + +.PHONY: clean diff --git a/lab2/dictionary.cc b/lab2/dictionary.cc index 79bb69e..d4658e8 100644 --- a/lab2/dictionary.cc +++ b/lab2/dictionary.cc @@ -1,22 +1,82 @@ -#include -#include +#include "dictionary.h" +#include "word.h" +#include +#include #include #include -#include -#include "word.h" -#include "dictionary.h" +#include +#include using std::string; using std::vector; +// using std::filesystem::path; -Dictionary::Dictionary() { +Dictionary::Dictionary() {} + +bool Dictionary::contains(const string &word) const { return true; } + +vector Dictionary::get_suggestions(const string &word) const { + vector suggestions; + // add_trigram_suggestions(suggestions, word); + // rank_suggestions(suggestions, word); + // trim_suggestions(suggestions); + return suggestions; } -bool Dictionary::contains(const string& word) const { - return true; +// Function to generate trigrams from a string +std::vector get_trigrams(const std::string &text) { + std::vector trigrams; + if (text.size() < 3) { + return trigrams; // Return an empty vector if the input is too short + } + + for (size_t i = 0; i <= text.size() - 3; ++i) { + trigrams.push_back( + text.substr(i, 3)); // Extract a substring of length 3 + } + + return trigrams; } -vector Dictionary::get_suggestions(const string& word) const { - vector suggestions; - return suggestions; +int Dictionary::spit(path p) { + std::ofstream file(p); + + if (!file.is_open()) { + std::cerr << "Error opening file! " << std::endl; + return 1; + } + + for (int a = 0; a < 25; a++) { + for (auto &word : words[a]) { + std::vector trias = get_trigrams(word.get_word()); + file << word << " " << trias.size(); + + for (auto tria : trias) { + file << " " << tria; + } + + file << std::endl; + } + } + + file.flush(); + file.close(); + return 0; +} + +int Dictionary::slurp(path p) { + std::ifstream file(p.string()); + + if (!file.is_open()) { + std::cerr << "Error opening file! " << std::endl; + return 1; + } + + std::string line; + while (std::getline(file, line)) { + words[line.size()].push_back(Word(line, get_trigrams(line))); + } + + file.close(); + return 0; } diff --git a/lab2/dictionary.h b/lab2/dictionary.h index b56f143..e543011 100644 --- a/lab2/dictionary.h +++ b/lab2/dictionary.h @@ -1,15 +1,24 @@ #ifndef DICTIONARY_H #define DICTIONARY_H +#include "word.h" +#include #include #include +using std::vector; +using std::filesystem::path; + class Dictionary { -public: - Dictionary(); - bool contains(const std::string& word) const; - std::vector get_suggestions(const std::string& word) const; -private: + public: + Dictionary(); + bool contains(const std::string &word) const; + std::vector get_suggestions(const std::string &word) const; + int slurp(path p); + int spit(path p); + + private: + vector words[25]; }; #endif diff --git a/lab2/edit_distance.cc b/lab2/edit_distance.cc new file mode 100644 index 0000000..905aeb4 --- /dev/null +++ b/lab2/edit_distance.cc @@ -0,0 +1,35 @@ +#include +#include +#include +#include + +int edit_distance(const std::string& s1, const std::string& s2) { + size_t m = s1.size(); + size_t n = s2.size(); + + // Create a 2D DP table + std::vector> dp(m + 1, std::vector(n + 1)); + + // Fill the base cases + for (size_t i = 0; i <= m; ++i) + dp[i][0] = i; // Deletion cost + + for (size_t j = 0; j <= n; ++j) + dp[0][j] = j; // Insertion cost + + // Fill the DP table + for (size_t i = 1; i <= m; ++i) { + for (size_t j = 1; j <= n; ++j) { + if (s1[i - 1] == s2[j - 1]) { + dp[i][j] = dp[i - 1][j - 1]; // No operation needed + } else { + dp[i][j] = 1 + std::min({dp[i - 1][j], // Deletion + dp[i][j - 1], // Insertion + dp[i - 1][j - 1] // Substitution + }); + } + } + } + + return dp[m][n]; +} diff --git a/lab2/edit_distance.h b/lab2/edit_distance.h new file mode 100644 index 0000000..71765ad --- /dev/null +++ b/lab2/edit_distance.h @@ -0,0 +1,18 @@ +#include +#include +#include +#include + +/** + * @brief Computes the edit distance (Levenshtein distance) between two strings. + * + * The edit distance is defined as the minimum number of single-character edits + * (insertions, deletions, or substitutions) required to transform one string into the other. + * + * This implementation uses dynamic programming to compute the distance efficiently. + * + * @param s1 The first string. + * @param s2 The second string. + * @return The edit distance between the two strings. + */ +int edit_distance(const std::string& s1, const std::string& s2); diff --git a/lab2/spell.cc b/lab2/spell.cc index dfb820b..04c3d39 100644 --- a/lab2/spell.cc +++ b/lab2/spell.cc @@ -1,18 +1,17 @@ +#include "dictionary.h" +#include +#include #include #include -#include #include -#include -#include "dictionary.h" -using std::string; -using std::vector; using std::cin; using std::cout; using std::endl; +using std::string; +using std::vector; -void check_word(const string& word, const Dictionary& dict) -{ +void check_word(const string &word, const Dictionary &dict) { if (dict.contains(word)) { cout << "Correct." << endl; } else { @@ -21,18 +20,22 @@ void check_word(const string& word, const Dictionary& dict) cout << "Wrong, no suggestions." << endl; } else { cout << "Wrong. Suggestions:" << endl; - for (const auto& w : suggestions) { + for (const auto &w : suggestions) { cout << " " << w << endl; } } } } + int main() { - Dictionary dict; - string word; - while (cin >> word) { - transform(word.begin(), word.end(), word.begin(), ::tolower); - check_word(word, dict); - } + Dictionary dict; + string word; + dict.slurp(std::filesystem::path("/usr/share/dict/words")); + // dict.spit(std::filesystem::path("words.txt")); + + // while (cin >> word) { + // transform(word.begin(), word.end(), word.begin(), ::tolower); + // check_word(word, dict); + // } return 0; } diff --git a/lab2/word.cc b/lab2/word.cc index 20b9417..870d6a2 100644 --- a/lab2/word.cc +++ b/lab2/word.cc @@ -1,16 +1,34 @@ +#include "word.h" +#include #include #include -#include "word.h" -using std::vector; using std::string; +using std::vector; -Word::Word(const string& w, const vector& t) {} - -string Word::get_word() const { - return string(); +Word::Word(const string &w, const vector &t) : word(w), triagrams(t) { + std::sort(triagrams.begin(), triagrams.end()); } -unsigned int Word::get_matches(const vector& t) const { - return 0; +string Word::get_word() const { return string(); } + +unsigned int Word::get_matches(const vector &t) const { + unsigned int matches = 0; + + for (const auto &triagram : t) { + if (std::binary_search(triagrams.begin(), triagrams.end(), triagram)) { + ++matches; + } + } + return matches; +} + +std::ostream &operator<<(std::ostream &out, const Word &w) { + auto space = string(" "); + out << w.word; + out << space; + for (const auto &tria : w.triagrams) { + out << space << tria; + } + return out; } diff --git a/lab2/word.h b/lab2/word.h index 9fb0716..7d07c8b 100644 --- a/lab2/word.h +++ b/lab2/word.h @@ -1,21 +1,25 @@ -#ifndef WORD_H -#define WORD_H +#pragma once #include #include +/* + * Contains a word and its triagrams + */ class Word { -public: - /* Creates a word w with the sorted trigrams t */ - Word(const std::string& w, const std::vector& t); - - /* Returns the word */ - std::string get_word() const; - - /* Returns how many of the trigrams in t that are present - in this word's trigram vector */ - unsigned int get_matches(const std::vector& t) const; -private: -}; + public: + /** Creates a word w with the sorted trigrams t */ + Word(const std::string &w, const std::vector &t); -#endif + /** Returns the word */ + std::string get_word() const; + + /** Returns how many of the trigrams in t that are present + in this word's trigram vector */ + unsigned int get_matches(const std::vector &t) const; + + private: + const std::string word; + const std::vector triagrams; + friend std::ostream &operator<<(std::ostream &out, const Word &o); +}; From f9f3674fde5a3cfc5d0115398d0a283b9d777489 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Wed, 20 Nov 2024 17:46:44 +0100 Subject: [PATCH 13/40] Ignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 903ddae..694cf30 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,6 @@ *.d *a.out* build +.cache/ +words.txt +compile_commands.json From 744d0f7a3a121c98bc9325fc09db0e761cb890e8 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Wed, 20 Nov 2024 17:47:12 +0100 Subject: [PATCH 14/40] Formatting makefile --- Makefile | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..51257f5 --- /dev/null +++ b/Makefile @@ -0,0 +1,2 @@ +format: + find . -regex '.*\.\(c\|cpp\|cc\|cxx\|h\|hpp\|hh\|hxx\)' -exec clang-format {} + From fdae90ad9ff61f718ae9e415ff0d9a4f17e3704c Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Wed, 20 Nov 2024 19:11:48 +0100 Subject: [PATCH 15/40] bugfix --- lab2/dictionary.cc | 4 +++- lab2/dictionary.h | 4 +++- lab2/spell.cc | 2 +- lab2/word.h | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lab2/dictionary.cc b/lab2/dictionary.cc index d4658e8..1ce7578 100644 --- a/lab2/dictionary.cc +++ b/lab2/dictionary.cc @@ -46,7 +46,7 @@ int Dictionary::spit(path p) { return 1; } - for (int a = 0; a < 25; a++) { + for (int a = 0; a < MAXLEN; a++) { for (auto &word : words[a]) { std::vector trias = get_trigrams(word.get_word()); file << word << " " << trias.size(); @@ -74,6 +74,8 @@ int Dictionary::slurp(path p) { std::string line; while (std::getline(file, line)) { + if (line.size() > MAXLEN) + continue; words[line.size()].push_back(Word(line, get_trigrams(line))); } diff --git a/lab2/dictionary.h b/lab2/dictionary.h index e543011..a9c5519 100644 --- a/lab2/dictionary.h +++ b/lab2/dictionary.h @@ -6,6 +6,8 @@ #include #include +#define MAXLEN 30 + using std::vector; using std::filesystem::path; @@ -18,7 +20,7 @@ class Dictionary { int spit(path p); private: - vector words[25]; + vector words[MAXLEN]; }; #endif diff --git a/lab2/spell.cc b/lab2/spell.cc index 04c3d39..1d00838 100644 --- a/lab2/spell.cc +++ b/lab2/spell.cc @@ -31,7 +31,7 @@ int main() { Dictionary dict; string word; dict.slurp(std::filesystem::path("/usr/share/dict/words")); - // dict.spit(std::filesystem::path("words.txt")); + dict.spit(std::filesystem::path("words.txt")); // while (cin >> word) { // transform(word.begin(), word.end(), word.begin(), ::tolower); diff --git a/lab2/word.h b/lab2/word.h index 7d07c8b..7c1fd5b 100644 --- a/lab2/word.h +++ b/lab2/word.h @@ -20,6 +20,6 @@ class Word { private: const std::string word; - const std::vector triagrams; + std::vector triagrams; friend std::ostream &operator<<(std::ostream &out, const Word &o); }; From b843fc98e0c3a503975783f8bbd0b0f9b7e407d6 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 21 Nov 2024 07:48:45 +0100 Subject: [PATCH 16/40] Refactor --- lab2/dictionary.cc | 26 ++------------------------ lab2/word.cc | 27 +++++++++++++++++++++++++++ lab2/word.h | 6 ++++++ 3 files changed, 35 insertions(+), 24 deletions(-) diff --git a/lab2/dictionary.cc b/lab2/dictionary.cc index 1ce7578..0245fe4 100644 --- a/lab2/dictionary.cc +++ b/lab2/dictionary.cc @@ -9,7 +9,6 @@ using std::string; using std::vector; -// using std::filesystem::path; Dictionary::Dictionary() {} @@ -23,21 +22,6 @@ vector Dictionary::get_suggestions(const string &word) const { return suggestions; } -// Function to generate trigrams from a string -std::vector get_trigrams(const std::string &text) { - std::vector trigrams; - if (text.size() < 3) { - return trigrams; // Return an empty vector if the input is too short - } - - for (size_t i = 0; i <= text.size() - 3; ++i) { - trigrams.push_back( - text.substr(i, 3)); // Extract a substring of length 3 - } - - return trigrams; -} - int Dictionary::spit(path p) { std::ofstream file(p); @@ -48,13 +32,7 @@ int Dictionary::spit(path p) { for (int a = 0; a < MAXLEN; a++) { for (auto &word : words[a]) { - std::vector trias = get_trigrams(word.get_word()); - file << word << " " << trias.size(); - - for (auto tria : trias) { - file << " " << tria; - } - + file << word; file << std::endl; } } @@ -76,7 +54,7 @@ int Dictionary::slurp(path p) { while (std::getline(file, line)) { if (line.size() > MAXLEN) continue; - words[line.size()].push_back(Word(line, get_trigrams(line))); + words[line.size()].push_back(Word(line)); } file.close(); diff --git a/lab2/word.cc b/lab2/word.cc index 870d6a2..4e89ae4 100644 --- a/lab2/word.cc +++ b/lab2/word.cc @@ -1,4 +1,5 @@ #include "word.h" +#include "dictionary.h" #include #include #include @@ -10,6 +11,25 @@ Word::Word(const string &w, const vector &t) : word(w), triagrams(t) { std::sort(triagrams.begin(), triagrams.end()); } +std::vector get_trigrams(const std::string &text) { + std::vector trigrams; + if (text.size() < 3) { + return trigrams; // Return an empty vector if the input is too short + } + + for (size_t i = 0; i <= text.size() - 3; ++i) { + trigrams.push_back( + text.substr(i, 3)); // Extract a substring of length 3 + } + + return trigrams; +} + +Word::Word(const std::string &w) : word(w) { + this->triagrams = get_trigrams(w); + std::sort(triagrams.begin(), triagrams.end()); +} + string Word::get_word() const { return string(); } unsigned int Word::get_matches(const vector &t) const { @@ -27,8 +47,15 @@ std::ostream &operator<<(std::ostream &out, const Word &w) { auto space = string(" "); out << w.word; out << space; + out << w.triagrams.size(); for (const auto &tria : w.triagrams) { out << space << tria; } return out; } + +bool operator==(const Word &lhs, const Word &rhs) { + return lhs.word == rhs.word && + std::equal(lhs.triagrams.begin(), lhs.triagrams.end(), + rhs.triagrams.begin()); +} diff --git a/lab2/word.h b/lab2/word.h index 7c1fd5b..babe27e 100644 --- a/lab2/word.h +++ b/lab2/word.h @@ -11,6 +11,9 @@ class Word { /** Creates a word w with the sorted trigrams t */ Word(const std::string &w, const std::vector &t); + /** Creates a word w and derives the triagrams internally */ + Word(const std::string &w); + /** Returns the word */ std::string get_word() const; @@ -22,4 +25,7 @@ class Word { const std::string word; std::vector triagrams; friend std::ostream &operator<<(std::ostream &out, const Word &o); + friend bool operator==(const Word &lhs, const Word &rhs); }; + +bool operator==(const Word &lhs, const Word &rhs); From 5b669caddbfac239ed9a8ffc7a1e3f893366f871 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 21 Nov 2024 07:48:49 +0100 Subject: [PATCH 17/40] Contains --- lab2/dictionary.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lab2/dictionary.cc b/lab2/dictionary.cc index 0245fe4..6747a69 100644 --- a/lab2/dictionary.cc +++ b/lab2/dictionary.cc @@ -12,7 +12,15 @@ using std::vector; Dictionary::Dictionary() {} -bool Dictionary::contains(const string &word) const { return true; } +bool Dictionary::contains(const string &word) const { + int l = word.length(); + Word w = Word(word); + if (std::find(this->words[l].begin(), this->words[l].end(), w) != + std::end(this->words[l])) { + return true; + } + return false; +} vector Dictionary::get_suggestions(const string &word) const { vector suggestions; From c6eb4cb6ae3b98b8276f67130aa45ee7100c6dd5 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 21 Nov 2024 07:48:56 +0100 Subject: [PATCH 18/40] More picky compiler flags --- lab2/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lab2/Makefile b/lab2/Makefile index 4e354d7..48c8fe4 100644 --- a/lab2/Makefile +++ b/lab2/Makefile @@ -1,5 +1,6 @@ CXX = g++ -CXXFLAGS = -g3 -Werror -Wall -Wpedantic -Wunused-variable -std=c++17 +CXXFLAGS = -Wall -Wextra -Wpedantic -Wshadow -Wnon-virtual-dtor -Wold-style-cast -Wcast-align -Wunused -Woverloaded-virtual -Wconversion -Wsign-conversion -Wnull-dereference -Wdouble-promotion -Wformat=2 -std=c++17 +#CXXFLAGS += -Werror SRC = $(wildcard *.cc) OBJ = $(SRC:.cc=.o) From fe00d47e0236108359a2c034fe9a26bdee088397 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 21 Nov 2024 07:49:28 +0100 Subject: [PATCH 19/40] Ignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 694cf30..4f6422d 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ build .cache/ words.txt compile_commands.json +lab2/edit +lab2/spell From 8c8930f5c57859abdee6c154efe206a0c02a2500 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 21 Nov 2024 08:45:34 +0100 Subject: [PATCH 20/40] Makefile targets for linting --- lab2/Makefile | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lab2/Makefile b/lab2/Makefile index 48c8fe4..0b87009 100644 --- a/lab2/Makefile +++ b/lab2/Makefile @@ -3,6 +3,7 @@ CXXFLAGS = -Wall -Wextra -Wpedantic -Wshadow -Wnon-virtual-dtor -Wold-style-cast #CXXFLAGS += -Werror SRC = $(wildcard *.cc) +HDR = $(wildcard *.h) OBJ = $(SRC:.cc=.o) all: spell edit $(OBJ) @@ -19,7 +20,18 @@ spell: spell.o word.o dictionary.o @echo "Building $@" @$(CXX) -c $(CXXFLAGS) $< -o $@ +lint: clang-tidy cppcheck clang-format + +clang-tidy: + clang-tidy $(SRC) -- $(CXXFLAGS) + +cppcheck: + cppcheck --enable=all --language=c++ --std=c++17 --suppress=missingIncludeSystem -I/usr/include $(SRC) $(HDR) + +clang-format: + clang-format -i $(SRC) $(HDR) + clean: rm -f *.o spell edit -.PHONY: clean +.PHONY: clean all lint clang-tidy cppcheck clang-format From 94d807fc677986add815d6c149189bea7c320e9b Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 21 Nov 2024 08:46:55 +0100 Subject: [PATCH 21/40] Type casting fixes and bounding array access --- lab2/dictionary.cc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lab2/dictionary.cc b/lab2/dictionary.cc index 6747a69..51d5ba7 100644 --- a/lab2/dictionary.cc +++ b/lab2/dictionary.cc @@ -1,7 +1,6 @@ #include "dictionary.h" #include "word.h" #include -#include #include #include #include @@ -13,7 +12,7 @@ using std::vector; Dictionary::Dictionary() {} bool Dictionary::contains(const string &word) const { - int l = word.length(); + auto l = word.length(); Word w = Word(word); if (std::find(this->words[l].begin(), this->words[l].end(), w) != std::end(this->words[l])) { @@ -60,9 +59,9 @@ int Dictionary::slurp(path p) { std::string line; while (std::getline(file, line)) { - if (line.size() > MAXLEN) - continue; - words[line.size()].push_back(Word(line)); + // Words larger than max gets placed in the topmost bucket + words[std::min(line.size(), static_cast(MAXLEN) - 1)].push_back( + Word(line)); } file.close(); From 7dd7f5610b1ecbbe5aef36e06beb3ed2d3d048b8 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 21 Nov 2024 08:47:45 +0100 Subject: [PATCH 22/40] Expose triagrams from word --- lab2/word.cc | 4 ++++ lab2/word.h | 3 +++ 2 files changed, 7 insertions(+) diff --git a/lab2/word.cc b/lab2/word.cc index 4e89ae4..c1f73f6 100644 --- a/lab2/word.cc +++ b/lab2/word.cc @@ -32,6 +32,10 @@ Word::Word(const std::string &w) : word(w) { string Word::get_word() const { return string(); } +vector Word::get_triagrams() const { + return triagrams; +} + unsigned int Word::get_matches(const vector &t) const { unsigned int matches = 0; diff --git a/lab2/word.h b/lab2/word.h index babe27e..eb927a2 100644 --- a/lab2/word.h +++ b/lab2/word.h @@ -17,6 +17,9 @@ class Word { /** Returns the word */ std::string get_word() const; + /** Returns triagrams */ + std::vector get_triagrams() const; + /** Returns how many of the trigrams in t that are present in this word's trigram vector */ unsigned int get_matches(const std::vector &t) const; From d10300509e75b5e73ee5e2df1dbc340fb031899c Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 21 Nov 2024 08:47:51 +0100 Subject: [PATCH 23/40] Formatting --- lab2/test_edit_distance.cc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lab2/test_edit_distance.cc b/lab2/test_edit_distance.cc index 1f44719..982badf 100644 --- a/lab2/test_edit_distance.cc +++ b/lab2/test_edit_distance.cc @@ -8,8 +8,7 @@ #include -bool do_test(const std::string& x, const std::string& y, int expected) -{ +bool do_test(const std::string &x, const std::string &y, int expected) { auto actual = edit_distance(x, y); if (actual != expected) { std::cout << "*** WRONG: distance(" << x << ", " << y << ") was " @@ -19,8 +18,7 @@ bool do_test(const std::string& x, const std::string& y, int expected) return false; } -int main() -{ +int main() { int res = do_test("foobar", "foobar", 0); res += do_test("x", "x", 0); res += do_test("baz", "bar", 1); From 70170ea9954e7f698520f67abde224b817c9169d Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 21 Nov 2024 08:49:45 +0100 Subject: [PATCH 24/40] Formatting --- lab2/edit_distance.cc | 20 ++++++++++---------- lab2/edit_distance.h | 11 +++++------ 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/lab2/edit_distance.cc b/lab2/edit_distance.cc index 905aeb4..7f635c9 100644 --- a/lab2/edit_distance.cc +++ b/lab2/edit_distance.cc @@ -1,14 +1,13 @@ -#include -#include -#include #include +#include +#include -int edit_distance(const std::string& s1, const std::string& s2) { +int edit_distance(const std::string &s1, const std::string &s2) { size_t m = s1.size(); size_t n = s2.size(); // Create a 2D DP table - std::vector> dp(m + 1, std::vector(n + 1)); + std::vector> dp(m + 1, std::vector(n + 1)); // Fill the base cases for (size_t i = 0; i <= m; ++i) @@ -23,13 +22,14 @@ int edit_distance(const std::string& s1, const std::string& s2) { if (s1[i - 1] == s2[j - 1]) { dp[i][j] = dp[i - 1][j - 1]; // No operation needed } else { - dp[i][j] = 1 + std::min({dp[i - 1][j], // Deletion - dp[i][j - 1], // Insertion - dp[i - 1][j - 1] // Substitution - }); + dp[i][j] = 1 + std::min({ + dp[i - 1][j], // Deletion + dp[i][j - 1], // Insertion + dp[i - 1][j - 1] // Substitution + }); } } } - return dp[m][n]; + return static_cast(dp[m][n]); } diff --git a/lab2/edit_distance.h b/lab2/edit_distance.h index 71765ad..6ddc48a 100644 --- a/lab2/edit_distance.h +++ b/lab2/edit_distance.h @@ -1,18 +1,17 @@ -#include -#include #include -#include /** * @brief Computes the edit distance (Levenshtein distance) between two strings. * * The edit distance is defined as the minimum number of single-character edits - * (insertions, deletions, or substitutions) required to transform one string into the other. + * (insertions, deletions, or substitutions) required to transform one string + * into the other. * - * This implementation uses dynamic programming to compute the distance efficiently. + * This implementation uses dynamic programming to compute the distance + * efficiently. * * @param s1 The first string. * @param s2 The second string. * @return The edit distance between the two strings. */ -int edit_distance(const std::string& s1, const std::string& s2); +int edit_distance(const std::string &s1, const std::string &s2); From 7a62bebf76759c3677564368484ce593132a4162 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 21 Nov 2024 08:50:09 +0100 Subject: [PATCH 25/40] Initial implementation of matcher --- lab2/dictionary.cc | 72 +++++++++++++++++++++++++++++++++++++++++++--- lab2/dictionary.h | 15 ++++++---- 2 files changed, 77 insertions(+), 10 deletions(-) diff --git a/lab2/dictionary.cc b/lab2/dictionary.cc index 51d5ba7..dc97b04 100644 --- a/lab2/dictionary.cc +++ b/lab2/dictionary.cc @@ -3,6 +3,7 @@ #include #include #include +#include #include #include @@ -21,14 +22,77 @@ bool Dictionary::contains(const string &word) const { return false; } -vector Dictionary::get_suggestions(const string &word) const { +std::vector Dictionary::get_suggestions(const string &word) const { vector suggestions; - // add_trigram_suggestions(suggestions, word); - // rank_suggestions(suggestions, word); - // trim_suggestions(suggestions); + add_trigram_suggestions(suggestions, word); + rank_suggestions(suggestions, word); + trim_suggestions(suggestions, word); return suggestions; } +void Dictionary::add_trigram_suggestions(std::vector &suggestions, + const std::string &word) const { + // Get trigrams of the input word + Word input_word(word); + const std::vector &input_trigrams = input_word.get_triagrams(); + + // Iterate through all words in the dictionary + for (int i = 0; i < MAXLEN; ++i) { + for (const Word &dict_word : words[i]) { + // Get the trigrams of the dictionary word + const std::vector &dict_word_trigrams = + dict_word.get_triagrams(); + + // Count how many trigrams match + unsigned int match_count = dict_word.get_matches(input_trigrams); + + // If there are any matches, add the word to suggestions + if (match_count > 0) { + suggestions.push_back(dict_word.get_word()); + } + } + } +} + +void Dictionary::rank_suggestions(std::vector &suggestions, + const std::string &word) const { + // Get trigrams of the input word + Word input_word(word); + const std::vector &input_trigrams = input_word.get_triagrams(); + + // Sort suggestions based on the number of matching trigrams + std::sort(suggestions.begin(), suggestions.end(), + [&](const std::string &a, const std::string &b) { + Word word_a(a); + Word word_b(b); + unsigned int match_a = word_a.get_matches(input_trigrams); + unsigned int match_b = word_b.get_matches(input_trigrams); + return match_a > + match_b; // Sort in descending order of match count + }); +} + +void Dictionary::trim_suggestions(std::vector &suggestions, + const std::string &word) const { + // Remove duplicates using a set + std::set unique_suggestions(suggestions.begin(), + suggestions.end()); + suggestions.assign(unique_suggestions.begin(), unique_suggestions.end()); + + // Remove the input word from the suggestions list (if present) + suggestions.erase(std::remove(suggestions.begin(), suggestions.end(), word), + suggestions.end()); + + // Example: Remove any suggestions that are too short + suggestions.erase( + std::remove_if(suggestions.begin(), suggestions.end(), + [](const std::string &s) { + return s.length() < + 3; // Remove words shorter than 3 characters + }), + suggestions.end()); +} + int Dictionary::spit(path p) { std::ofstream file(p); diff --git a/lab2/dictionary.h b/lab2/dictionary.h index a9c5519..31eada4 100644 --- a/lab2/dictionary.h +++ b/lab2/dictionary.h @@ -1,5 +1,4 @@ -#ifndef DICTIONARY_H -#define DICTIONARY_H +#pragma once #include "word.h" #include @@ -8,19 +7,23 @@ #define MAXLEN 30 -using std::vector; +// using std::vector; using std::filesystem::path; class Dictionary { public: Dictionary(); + void add_trigram_suggestions(std::vector &suggestions, + const std::string &word) const; + void rank_suggestions(std::vector &suggestions, + const std::string &word) const; + void trim_suggestions(std::vector &suggestions, + const std::string &word) const; bool contains(const std::string &word) const; std::vector get_suggestions(const std::string &word) const; int slurp(path p); int spit(path p); private: - vector words[MAXLEN]; + std::vector words[MAXLEN]; }; - -#endif From 1c88d49452c494aa98d29b266938214e35d954c3 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 21 Nov 2024 09:18:48 +0100 Subject: [PATCH 26/40] Bugfix and ignore empty lines --- lab2/dictionary.cc | 4 +++- lab2/word.cc | 6 ++---- lab2/word.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lab2/dictionary.cc b/lab2/dictionary.cc index dc97b04..feaf66d 100644 --- a/lab2/dictionary.cc +++ b/lab2/dictionary.cc @@ -25,8 +25,8 @@ bool Dictionary::contains(const string &word) const { std::vector Dictionary::get_suggestions(const string &word) const { vector suggestions; add_trigram_suggestions(suggestions, word); - rank_suggestions(suggestions, word); trim_suggestions(suggestions, word); + rank_suggestions(suggestions, word); return suggestions; } @@ -123,6 +123,8 @@ int Dictionary::slurp(path p) { std::string line; while (std::getline(file, line)) { + if (line.empty()) + continue; // Words larger than max gets placed in the topmost bucket words[std::min(line.size(), static_cast(MAXLEN) - 1)].push_back( Word(line)); diff --git a/lab2/word.cc b/lab2/word.cc index c1f73f6..d4e4b48 100644 --- a/lab2/word.cc +++ b/lab2/word.cc @@ -30,11 +30,9 @@ Word::Word(const std::string &w) : word(w) { std::sort(triagrams.begin(), triagrams.end()); } -string Word::get_word() const { return string(); } +string Word::get_word() const { return word; } -vector Word::get_triagrams() const { - return triagrams; -} +vector Word::get_triagrams() const { return triagrams; } unsigned int Word::get_matches(const vector &t) const { unsigned int matches = 0; diff --git a/lab2/word.h b/lab2/word.h index eb927a2..6c9a0df 100644 --- a/lab2/word.h +++ b/lab2/word.h @@ -18,7 +18,7 @@ class Word { std::string get_word() const; /** Returns triagrams */ - std::vector get_triagrams() const; + std::vector get_triagrams() const; /** Returns how many of the trigrams in t that are present in this word's trigram vector */ From 57d5f34ee530ccd290fe8b7281c2560f0b0183cd Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 21 Nov 2024 09:33:20 +0100 Subject: [PATCH 27/40] Better trim --- lab2/dictionary.cc | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/lab2/dictionary.cc b/lab2/dictionary.cc index feaf66d..7bfd397 100644 --- a/lab2/dictionary.cc +++ b/lab2/dictionary.cc @@ -83,14 +83,16 @@ void Dictionary::trim_suggestions(std::vector &suggestions, suggestions.erase(std::remove(suggestions.begin(), suggestions.end(), word), suggestions.end()); - // Example: Remove any suggestions that are too short - suggestions.erase( - std::remove_if(suggestions.begin(), suggestions.end(), - [](const std::string &s) { - return s.length() < - 3; // Remove words shorter than 3 characters - }), - suggestions.end()); + auto l = word.length(); + std::cout << "WTF" << l << std::endl; + + // Example: Remove any suggestions that are not within 1 string length + suggestions.erase(std::remove_if(suggestions.begin(), suggestions.end(), + [l](const std::string &s) { + return s.length() > (l + 1) || + s.length() < (l - 1); + }), + suggestions.end()); } int Dictionary::spit(path p) { From d4970c8d7606f38e1a103b7b1d4e15c8fe74a260 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 21 Nov 2024 09:46:54 +0100 Subject: [PATCH 28/40] Include edit_distance in spell target --- lab2/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lab2/Makefile b/lab2/Makefile index 0b87009..aaa709f 100644 --- a/lab2/Makefile +++ b/lab2/Makefile @@ -12,7 +12,7 @@ edit: test_edit_distance.o edit_distance.o @echo "Building & linking $@" @$(CXX) $(CXXFLAGS) $^ -o $@ -spell: spell.o word.o dictionary.o +spell: spell.o word.o dictionary.o edit_distance.o @echo "Building & linking $@" @$(CXX) $(CXXFLAGS) $^ -o $@ From 42f69296f65cd27ad7f29a84ac41ec67d50d18da Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 21 Nov 2024 09:47:11 +0100 Subject: [PATCH 29/40] Better distance sorting --- lab2/dictionary.cc | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/lab2/dictionary.cc b/lab2/dictionary.cc index 7bfd397..ac522ff 100644 --- a/lab2/dictionary.cc +++ b/lab2/dictionary.cc @@ -1,4 +1,5 @@ #include "dictionary.h" +#include "edit_distance.h" #include "word.h" #include #include @@ -56,19 +57,12 @@ void Dictionary::add_trigram_suggestions(std::vector &suggestions, void Dictionary::rank_suggestions(std::vector &suggestions, const std::string &word) const { - // Get trigrams of the input word - Word input_word(word); - const std::vector &input_trigrams = input_word.get_triagrams(); - - // Sort suggestions based on the number of matching trigrams + // Sort suggestions based on the levenshtein distance std::sort(suggestions.begin(), suggestions.end(), [&](const std::string &a, const std::string &b) { - Word word_a(a); - Word word_b(b); - unsigned int match_a = word_a.get_matches(input_trigrams); - unsigned int match_b = word_b.get_matches(input_trigrams); - return match_a > - match_b; // Sort in descending order of match count + auto dist_a = edit_distance(a, word); + auto dist_b = edit_distance(b, word); + return dist_a < dist_b; }); } From abec11b35b285b0b83435c26e1b06a780fe713b9 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 21 Nov 2024 09:49:35 +0100 Subject: [PATCH 30/40] Spell now behaves properly --- lab2/spell.cc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lab2/spell.cc b/lab2/spell.cc index 1d00838..38f0249 100644 --- a/lab2/spell.cc +++ b/lab2/spell.cc @@ -1,4 +1,5 @@ #include "dictionary.h" +#include #include #include #include @@ -31,11 +32,11 @@ int main() { Dictionary dict; string word; dict.slurp(std::filesystem::path("/usr/share/dict/words")); - dict.spit(std::filesystem::path("words.txt")); + // dict.spit(std::filesystem::path("words.txt")); - // while (cin >> word) { - // transform(word.begin(), word.end(), word.begin(), ::tolower); - // check_word(word, dict); - // } + while (cin >> word) { + std::transform(word.begin(), word.end(), word.begin(), ::tolower); + check_word(word, dict); + } return 0; } From 686fd07e08adbb8ea9dc03b3dace35a9898b5a86 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 21 Nov 2024 13:34:17 +0100 Subject: [PATCH 31/40] Spelling --- lab2/dictionary.cc | 4 ++-- lab2/word.cc | 24 ++++++++++++------------ lab2/word.h | 10 +++++----- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lab2/dictionary.cc b/lab2/dictionary.cc index ac522ff..2e999c8 100644 --- a/lab2/dictionary.cc +++ b/lab2/dictionary.cc @@ -35,14 +35,14 @@ void Dictionary::add_trigram_suggestions(std::vector &suggestions, const std::string &word) const { // Get trigrams of the input word Word input_word(word); - const std::vector &input_trigrams = input_word.get_triagrams(); + const std::vector &input_trigrams = input_word.get_trigrams(); // Iterate through all words in the dictionary for (int i = 0; i < MAXLEN; ++i) { for (const Word &dict_word : words[i]) { // Get the trigrams of the dictionary word const std::vector &dict_word_trigrams = - dict_word.get_triagrams(); + dict_word.get_trigrams(); // Count how many trigrams match unsigned int match_count = dict_word.get_matches(input_trigrams); diff --git a/lab2/word.cc b/lab2/word.cc index d4e4b48..293f66e 100644 --- a/lab2/word.cc +++ b/lab2/word.cc @@ -7,8 +7,8 @@ using std::string; using std::vector; -Word::Word(const string &w, const vector &t) : word(w), triagrams(t) { - std::sort(triagrams.begin(), triagrams.end()); +Word::Word(const string &w, const vector &t) : word(w), trigrams(t) { + std::sort(trigrams.begin(), trigrams.end()); } std::vector get_trigrams(const std::string &text) { @@ -26,19 +26,19 @@ std::vector get_trigrams(const std::string &text) { } Word::Word(const std::string &w) : word(w) { - this->triagrams = get_trigrams(w); - std::sort(triagrams.begin(), triagrams.end()); + this->trigrams = ::get_trigrams(w); + std::sort(trigrams.begin(), trigrams.end()); } string Word::get_word() const { return word; } -vector Word::get_triagrams() const { return triagrams; } +vector Word::get_trigrams() const { return trigrams; } unsigned int Word::get_matches(const vector &t) const { unsigned int matches = 0; - for (const auto &triagram : t) { - if (std::binary_search(triagrams.begin(), triagrams.end(), triagram)) { + for (const auto &trigram : t) { + if (std::binary_search(trigrams.begin(), trigrams.end(), trigram)) { ++matches; } } @@ -49,15 +49,15 @@ std::ostream &operator<<(std::ostream &out, const Word &w) { auto space = string(" "); out << w.word; out << space; - out << w.triagrams.size(); - for (const auto &tria : w.triagrams) { - out << space << tria; + out << w.trigrams.size(); + for (const auto &tri : w.trigrams) { + out << space << tri; } return out; } bool operator==(const Word &lhs, const Word &rhs) { return lhs.word == rhs.word && - std::equal(lhs.triagrams.begin(), lhs.triagrams.end(), - rhs.triagrams.begin()); + std::equal(lhs.trigrams.begin(), lhs.trigrams.end(), + rhs.trigrams.begin()); } diff --git a/lab2/word.h b/lab2/word.h index 6c9a0df..27b92af 100644 --- a/lab2/word.h +++ b/lab2/word.h @@ -4,21 +4,21 @@ #include /* - * Contains a word and its triagrams + * Contains a word and its trigrams */ class Word { public: /** Creates a word w with the sorted trigrams t */ Word(const std::string &w, const std::vector &t); - /** Creates a word w and derives the triagrams internally */ + /** Creates a word w and derives the trigrams internally */ Word(const std::string &w); /** Returns the word */ std::string get_word() const; - /** Returns triagrams */ - std::vector get_triagrams() const; + /** Returns trigrams */ + std::vector get_trigrams() const; /** Returns how many of the trigrams in t that are present in this word's trigram vector */ @@ -26,7 +26,7 @@ class Word { private: const std::string word; - std::vector triagrams; + std::vector trigrams; friend std::ostream &operator<<(std::ostream &out, const Word &o); friend bool operator==(const Word &lhs, const Word &rhs); }; From c5e034c3ac71600cb5226f485a0fea38fb7722d1 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Wed, 27 Nov 2024 17:14:10 +0100 Subject: [PATCH 32/40] Bugfix (assignment used over comparison) --- lab3/UserTable.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lab3/UserTable.cc b/lab3/UserTable.cc index 91db558..ec31eff 100644 --- a/lab3/UserTable.cc +++ b/lab3/UserTable.cc @@ -56,8 +56,8 @@ User UserTable::find(int c) const while (low < high && ! found) { mid = (low + high) / 2; // - int midnbr = users[mid].getCardNbr(); - if (midnbr = c) { + const int midnbr = users[mid].getCardNbr(); + if (c == midnbr) { found = true; } else if (users[mid].getCardNbr() < c) { low = mid + 1; From cc34c036485daa6acdecc7d2c8a6c6de83120b1b Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Wed, 27 Nov 2024 17:14:34 +0100 Subject: [PATCH 33/40] Makefile lab3 --- lab3/Makefile | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 lab3/Makefile diff --git a/lab3/Makefile b/lab3/Makefile new file mode 100644 index 0000000..e6d004c --- /dev/null +++ b/lab3/Makefile @@ -0,0 +1,33 @@ +CXX = g++ +CXXFLAGS = -Wall -Wextra -Wpedantic -Wshadow -Wnon-virtual-dtor -Wold-style-cast -Wcast-align -Wunused -Woverloaded-virtual -Wconversion -Wsign-conversion -Wnull-dereference -Wdouble-promotion -Wformat=2 -std=c++17 +#CXXFLAGS += -Werror + +SRC = $(wildcard *.cc) +HDR = $(wildcard *.h) +OBJ = $(SRC:.cc=.o) + +all: tabletest $(OBJ) + +tabletest: $(OBJ) + @echo "Building & linking $@" + @$(CXX) $(CXXFLAGS) $^ -o $@ + +%.o:%.cc + @echo "Building $@" + @$(CXX) -c $(CXXFLAGS) $< -o $@ + +lint: clang-tidy cppcheck clang-format + +clang-tidy: + clang-tidy $(SRC) -- $(CXXFLAGS) + +cppcheck: + cppcheck --enable=all --language=c++ --std=c++17 --suppress=missingIncludeSystem -I/usr/include $(SRC) $(HDR) + +clang-format: + clang-format -i $(SRC) $(HDR) + +clean: + rm -f *.o spell edit + +.PHONY: clean all lint clang-tidy cppcheck clang-format From 4bb3629a7638e7badb620c2a7f975694d710c93e Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Wed, 27 Nov 2024 17:14:47 +0100 Subject: [PATCH 34/40] Some assertions in tabletest --- lab3/UserTableTest.cc | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 lab3/UserTableTest.cc diff --git a/lab3/UserTableTest.cc b/lab3/UserTableTest.cc new file mode 100644 index 0000000..9d989dd --- /dev/null +++ b/lab3/UserTableTest.cc @@ -0,0 +1,22 @@ +#include "UserTable.h" +#include "User.h" +#include + +int main() { + // Two identical users + User u1 = User(1234, "Name Nameson"); + User u2 = User(1234, "Name Nameson"); + + assert(u1.getName() == u2.getName()); + assert(u1.getCardNbr() == u2.getCardNbr()); + + // Two different users + User u3 = User(1200, "Name Surname"); + User u4 = User(1201, "Name Nameson"); + + assert(u3.getName() != u4.getName()); + assert(u3.getCardNbr() != u4.getCardNbr()); + + UserTable ut1 = UserTable("users.txt"); +} + From 8abebb692a580f3e71cfcdfd6113bd330360fb3a Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Wed, 27 Nov 2024 17:15:16 +0100 Subject: [PATCH 35/40] ignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 4f6422d..62df9d3 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ words.txt compile_commands.json lab2/edit lab2/spell +lab3/tabletest From 6130bdee6684c3410bed302b4528ba8a5a7f834d Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Wed, 27 Nov 2024 17:25:14 +0100 Subject: [PATCH 36/40] Format --- lab3/User.cc | 5 ++- lab3/User.h | 30 +++++++++------- lab3/UserTable.cc | 80 +++++++++++++++++++------------------------ lab3/UserTable.h | 21 ++++++------ lab3/UserTableTest.cc | 1 - 5 files changed, 65 insertions(+), 72 deletions(-) diff --git a/lab3/User.cc b/lab3/User.cc index 0268bd2..d45437e 100644 --- a/lab3/User.cc +++ b/lab3/User.cc @@ -1,6 +1,5 @@ #include "User.h" -std::ostream& operator<<(std::ostream& os, const User& u) -{ - return os << "(" << u.getCardNbr() << ") "<< u.getName(); +std::ostream &operator<<(std::ostream &os, const User &u) { + return os << "(" << u.getCardNbr() << ") " << u.getName(); } diff --git a/lab3/User.h b/lab3/User.h index cbedfe0..b4a8868 100644 --- a/lab3/User.h +++ b/lab3/User.h @@ -8,20 +8,26 @@ using std::cout; using std::endl; class User { -public: - User() :cardNbr{0},name{"default"}{} - User(int c, std::string n) :cardNbr{c},name{n} {} - ~User() {cardNbr=-2; name="--------------------";} // overwrite values for security reasons - User(const User& u) =default; - User& operator=(const User&) =default; - int getCardNbr() const {return cardNbr;} - std::string getName() const {return name;} - bool operator==(const User& u) const {return cardNbr == u.cardNbr && name == u.name;} - bool operator!=(const User& u) const {return ! (u == *this);} -private: + public: + User() : cardNbr{0}, name{"default"} {} + User(int c, std::string n) : cardNbr{c}, name{n} {} + ~User() { + cardNbr = -2; + name = "--------------------"; + } // overwrite values for security reasons + User(const User &u) = default; + User &operator=(const User &) = default; + int getCardNbr() const { return cardNbr; } + std::string getName() const { return name; } + bool operator==(const User &u) const { + return cardNbr == u.cardNbr && name == u.name; + } + bool operator!=(const User &u) const { return !(u == *this); } + + private: int cardNbr; std::string name; }; -std::ostream& operator<<(std::ostream& os, const User& u); +std::ostream &operator<<(std::ostream &os, const User &u); #endif diff --git a/lab3/UserTable.cc b/lab3/UserTable.cc index ec31eff..b52f0c6 100644 --- a/lab3/UserTable.cc +++ b/lab3/UserTable.cc @@ -1,24 +1,22 @@ #include "UserTable.h" -#include #include +#include -const User UserTable::user_not_found = User{-1,"Not Found"}; +const User UserTable::user_not_found = User{-1, "Not Found"}; -UserTable::UserTable() :users{new User[capacity]} { } +UserTable::UserTable() : users{new User[capacity]} {} -UserTable::UserTable(const std::string& fname) :UserTable{} -{ +UserTable::UserTable(const std::string &fname) : UserTable{} { std::ifstream ufile(fname); - if(ufile.is_open()) { - while(ufile) { + if (ufile.is_open()) { + while (ufile) { int cn; - if(ufile >> cn ) { + if (ufile >> cn) { ufile.ignore(); // skip space char n[80]; - ufile.getline(n,80); - addUser(User(cn,n)); - + ufile.getline(n, 80); + addUser(User(cn, n)); } } } else { @@ -26,34 +24,32 @@ UserTable::UserTable(const std::string& fname) :UserTable{} } } -void UserTable::addUser(const User& u) -{ +void UserTable::addUser(const User &u) { // gör tabellen större vid behov - ensureCapacity(n+1); + ensureCapacity(n + 1); // 1. Hitta rätt plats int pos{0}; - while ( (pos < n) && (users[pos].getCardNbr() < u.getCardNbr())){ + while ((pos < n) && (users[pos].getCardNbr() < u.getCardNbr())) { ++pos; } - //2. skapa lucka i vektorn - for(int i=n; i > pos; --i){ - users[i] = users[i-1]; + // 2. skapa lucka i vektorn + for (int i = n; i > pos; --i) { + users[i] = users[i - 1]; } - //3. stoppa in den nya användaren i luckan + // 3. stoppa in den nya användaren i luckan users[pos] = u; } -User UserTable::find(int c) const -{ +User UserTable::find(int c) const { // binärsökning (baserad på Holm, 2007) int low = 0; int high = n - 1; int mid = -1; bool found = false; - while (low < high && ! found) { + while (low < high && !found) { mid = (low + high) / 2; // const int midnbr = users[mid].getCardNbr(); @@ -68,8 +64,7 @@ User UserTable::find(int c) const return found ? users[mid] : user_not_found; } -User UserTable::find(std::string name) const -{ +User UserTable::find(std::string name) const { for (int i = 0; i != n; ++i) { if (users[i].getName() == name) { return users[i]; @@ -80,36 +75,32 @@ User UserTable::find(std::string name) const return user_not_found; } -void UserTable::ensureCapacity(int s) -{ - if(s>capacity) { - while(s > capacity) { - capacity*=4; +void UserTable::ensureCapacity(int s) { + if (s > capacity) { + while (s > capacity) { + capacity *= 4; } auto tmp = new User[capacity]; - std::copy(users, users+n, tmp); + std::copy(users, users + n, tmp); delete[] users; - users=tmp; + users = tmp; } - } -void UserTable::print(std::ostream& os) const -{ +void UserTable::print(std::ostream &os) const { os << "-------------" << std::endl; - for(int i = 0; i != getNbrUsers(); ++i) { - const auto& u = users[i]; - os << "(" < Date: Thu, 5 Dec 2024 12:02:17 +0100 Subject: [PATCH 37/40] Bugfix 1 --- lab3/UserTable.cc | 3 +++ lab3/UserTableTest.cc | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/lab3/UserTable.cc b/lab3/UserTable.cc index b52f0c6..7e0dd1e 100644 --- a/lab3/UserTable.cc +++ b/lab3/UserTable.cc @@ -27,6 +27,7 @@ UserTable::UserTable(const std::string &fname) : UserTable{} { void UserTable::addUser(const User &u) { // gör tabellen större vid behov ensureCapacity(n + 1); + // 1. Hitta rätt plats int pos{0}; while ((pos < n) && (users[pos].getCardNbr() < u.getCardNbr())) { @@ -40,6 +41,8 @@ void UserTable::addUser(const User &u) { // 3. stoppa in den nya användaren i luckan users[pos] = u; + + ++n; } User UserTable::find(int c) const { diff --git a/lab3/UserTableTest.cc b/lab3/UserTableTest.cc index 6ec3a19..98ccacf 100644 --- a/lab3/UserTableTest.cc +++ b/lab3/UserTableTest.cc @@ -18,4 +18,8 @@ int main() { assert(u3.getCardNbr() != u4.getCardNbr()); UserTable ut1 = UserTable("users.txt"); + + ut1.addUser(u3); + User us = ut1.find(1200); + assert(us != UserTable::user_not_found); } From 2769a3a0ad430ccc72479b4562bb92272a7da3c9 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 5 Dec 2024 12:32:27 +0100 Subject: [PATCH 38/40] Prettier search, tests --- lab3/UserTable.cc | 14 ++++++-------- lab3/UserTableTest.cc | 45 +++++++++++++++++++++++++++++-------------- 2 files changed, 37 insertions(+), 22 deletions(-) diff --git a/lab3/UserTable.cc b/lab3/UserTable.cc index 7e0dd1e..542cd0d 100644 --- a/lab3/UserTable.cc +++ b/lab3/UserTable.cc @@ -68,14 +68,12 @@ User UserTable::find(int c) const { return found ? users[mid] : user_not_found; } User UserTable::find(std::string name) const { - for (int i = 0; i != n; ++i) { - if (users[i].getName() == name) { - return users[i]; - } else { - return user_not_found; - } - } - return user_not_found; + auto it = std::find_if(users, users + n, [&name](const User &u) { + return u.getName() == name; + }); + + // If it is at the 'end' of users, the result is not found + return (it != users+n) ? *it : user_not_found; } void UserTable::ensureCapacity(int s) { diff --git a/lab3/UserTableTest.cc b/lab3/UserTableTest.cc index 98ccacf..b50200b 100644 --- a/lab3/UserTableTest.cc +++ b/lab3/UserTableTest.cc @@ -3,23 +3,40 @@ #include int main() { - // Two identical users - User u1 = User(1234, "Name Nameson"); - User u2 = User(1234, "Name Nameson"); + { /* User Related Tests */ + // Two identical users + User u1 = User(1234, "Name Nameson"); + User u2 = User(1234, "Name Nameson"); - assert(u1.getName() == u2.getName()); - assert(u1.getCardNbr() == u2.getCardNbr()); + assert(u1.getName() == u2.getName()); + assert(u1.getCardNbr() == u2.getCardNbr()); - // Two different users - User u3 = User(1200, "Name Surname"); - User u4 = User(1201, "Name Nameson"); + // Two different users + User u3 = User(1200, "Name Surname"); + User u4 = User(1201, "Name Nameson"); - assert(u3.getName() != u4.getName()); - assert(u3.getCardNbr() != u4.getCardNbr()); + assert(u3.getName() != u4.getName()); + assert(u3.getCardNbr() != u4.getCardNbr()); + } + { /* Table Related Tests */ + UserTable tbl1 = UserTable(); + assert(tbl1.find("Jens Holmgren") == UserTable::user_not_found); + tbl1.addUser(User(1200, "Table Yes")); + assert(tbl1.getNbrUsers() == 1); + } + { + // Assumes 'users.txt' is present, containing + // line separated records formatted as: + // "89524 Adam Abrahamsson" + UserTable tbl = UserTable("users.txt"); + assert(tbl.getNbrUsers() > 0); + assert(tbl.find("Jens Holmgren") != UserTable::user_not_found); - UserTable ut1 = UserTable("users.txt"); + tbl.addUser(User(1200, "Name Surname")); + User ufind1 = tbl.find(1200); + assert(ufind1 != UserTable::user_not_found); - ut1.addUser(u3); - User us = ut1.find(1200); - assert(us != UserTable::user_not_found); + User ufind2 = tbl.find("Name Surname"); + assert(ufind2 != UserTable::user_not_found); + } } From 69af73e315ff3a9d23964da0bbaca3052352d10b Mon Sep 17 00:00:00 2001 From: dDogge Date: Wed, 11 Dec 2024 15:54:56 +0100 Subject: [PATCH 39/40] lab 4 complete --- lab4/.vscode/settings.json | 59 ++++++++++++++++++++++++ lab4/Sieve.cc | 74 ++++++++++++++++++++++++++++++ lab4/TagRemover.cc | 32 +++++++++++++ lab4/date.cc | 76 ++++++++++++++++++++++++++---- lab4/date.h | 28 ++++++++---- lab4/date_test.cc | 94 ++++++++++++++------------------------ lab4/makefile | 56 +++++++++++++++++++++++ lab4/reflektion.txt | 61 +++++++++++++++++++++++++ lab4/string_cast.h | 14 ++++++ lab4/string_cast_test.cc | 29 ++++++++++++ lab4/toString.h | 10 ++++ lab4/toString_test.cc | 22 +++++++++ 12 files changed, 476 insertions(+), 79 deletions(-) create mode 100644 lab4/.vscode/settings.json create mode 100644 lab4/Sieve.cc create mode 100644 lab4/TagRemover.cc create mode 100644 lab4/makefile create mode 100644 lab4/reflektion.txt create mode 100644 lab4/string_cast.h create mode 100644 lab4/string_cast_test.cc create mode 100644 lab4/toString.h create mode 100644 lab4/toString_test.cc diff --git a/lab4/.vscode/settings.json b/lab4/.vscode/settings.json new file mode 100644 index 0000000..b73e5a3 --- /dev/null +++ b/lab4/.vscode/settings.json @@ -0,0 +1,59 @@ +{ + "files.associations": { + "array": "cpp", + "atomic": "cpp", + "bit": "cpp", + "*.tcc": "cpp", + "bitset": "cpp", + "cctype": "cpp", + "charconv": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "compare": "cpp", + "concepts": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "ctime": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "deque": "cpp", + "string": "cpp", + "unordered_map": "cpp", + "vector": "cpp", + "exception": "cpp", + "algorithm": "cpp", + "functional": "cpp", + "iterator": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "numeric": "cpp", + "optional": "cpp", + "random": "cpp", + "regex": "cpp", + "string_view": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "format": "cpp", + "initializer_list": "cpp", + "iomanip": "cpp", + "iosfwd": "cpp", + "iostream": "cpp", + "istream": "cpp", + "limits": "cpp", + "new": "cpp", + "numbers": "cpp", + "ostream": "cpp", + "span": "cpp", + "sstream": "cpp", + "stdexcept": "cpp", + "streambuf": "cpp", + "text_encoding": "cpp", + "typeinfo": "cpp", + "variant": "cpp" + } +} \ No newline at end of file diff --git a/lab4/Sieve.cc b/lab4/Sieve.cc new file mode 100644 index 0000000..9360a66 --- /dev/null +++ b/lab4/Sieve.cc @@ -0,0 +1,74 @@ +#include +#include +#include + +class Sieve { +private: + std::string sieve; + +public: + // Constructor to initialize sieve with 'P' (prime assumption) + Sieve(size_t limit) : sieve(limit + 1, 'P') { + // 0 and 1 are not primes + sieve[0] = 'C'; + if (limit > 0) sieve[1] = 'C'; + + // Sieve of Eratosthenes + for (size_t i = 2; i * i <= limit; ++i) { + if (sieve[i] == 'P') { + for (size_t j = i * i; j <= limit; j += i) { + sieve[j] = 'C'; + } + } + } + } + + // Get primes as a vector of integers + std::vector getPrimes() const { + std::vector primes; + for (size_t i = 2; i < sieve.size(); ++i) { + if (sieve[i] == 'P') { + primes.push_back(i); + } + } + return primes; + } + + // Print all primes in the range + void printPrimesInRange(int start, int end) const { + for (int i = start; i <= end; ++i) { + if (sieve[i] == 'P') { + std::cout << i << " "; + } + } + std::cout << std::endl; + } + + // Get the largest prime below a limit + int largestPrimeBelow(int limit) const { + for (int i = limit; i >= 2; --i) { + if (sieve[i] == 'P') { + return i; + } + } + return -1; // If no prime is found + } +}; + +// Main function for testing +int main() { + const int limit = 100000; + + // Create a Sieve instance for the range 0 to limit + Sieve sieve(limit); + + // Print primes between 1 and 200 + std::cout << "Primes between 1 and 200:" << std::endl; + sieve.printPrimesInRange(1, 200); + + // Find and print the largest prime below 100,000 + int largestPrime = sieve.largestPrimeBelow(limit); + std::cout << "Largest prime below " << limit << ": " << largestPrime << std::endl; + + return 0; +} diff --git a/lab4/TagRemover.cc b/lab4/TagRemover.cc new file mode 100644 index 0000000..3f28d28 --- /dev/null +++ b/lab4/TagRemover.cc @@ -0,0 +1,32 @@ +#include +#include +#include + +class TagRemover { +private: + std::string content; + +public: + TagRemover(std::istream& input) { + std::string line; + while (std::getline(input, line)) { + content += line + '\n'; + } + } + + void print(std::ostream& output) const { + std::string result = std::regex_replace(content, std::regex("<[^>]*>"), ""); + result = std::regex_replace(result, std::regex("<"), "<"); + result = std::regex_replace(result, std::regex(">"), ">"); + result = std::regex_replace(result, std::regex(" "), " "); + result = std::regex_replace(result, std::regex("&"), "&"); + + output << result; + } +}; + +int main() { + TagRemover tr(std::cin); + tr.print(std::cout); + return 0; +} \ No newline at end of file diff --git a/lab4/date.cc b/lab4/date.cc index ee9b34a..bf6e37d 100644 --- a/lab4/date.cc +++ b/lab4/date.cc @@ -1,30 +1,86 @@ -#include // time and localtime +#include // för tid och localtime +#include // för setw och setfill +#include // för inputhantering #include "date.h" int Date::daysPerMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; +// Konstruktor: dagens datum Date::Date() { - time_t timer = time(0); // time in seconds since 1970-01-01 - tm* locTime = localtime(&timer); // broken-down time - year = 1900 + locTime->tm_year; - month = 1 + locTime->tm_mon; - day = locTime->tm_mday; + time_t timer = time(0); // tid i sekunder sedan 1970-01-01 + tm* locTime = localtime(&timer); // lokal tid + year = 1900 + locTime->tm_year; + month = 1 + locTime->tm_mon; + day = locTime->tm_mday; } -Date::Date(int y, int m, int d) {} +// Konstruktor: specifikt datum +Date::Date(int y, int m, int d) : year(y), month(m), day(d) {} +// Get-funktioner int Date::getYear() const { - return 0; + return year; } int Date::getMonth() const { - return 0; + return month; } int Date::getDay() const { - return 0; + return day; } +// Gå till nästa dag void Date::next() { + day++; + if (day > daysPerMonth[month - 1] + (month == 2 && isLeapYear(year))) { + day = 1; + month++; + if (month > 12) { + month = 1; + year++; + } + } } +// Kontrollera om ett år är ett skottår +bool Date::isLeapYear(int year) { + return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); +} + +// Overloaded operator<< (output) +std::ostream& operator<<(std::ostream& os, const Date& date) { + os << std::setw(4) << std::setfill('0') << date.getYear() << '-' + << std::setw(2) << std::setfill('0') << date.getMonth() << '-' + << std::setw(2) << std::setfill('0') << date.getDay(); + return os; +} + +// Overloaded operator>> (input) +std::istream& operator>>(std::istream& is, Date& date) { + std::string input; + is >> input; + + std::istringstream iss(input); + char dash1, dash2; + int y, m, d; + + if (iss >> y >> dash1 >> m >> dash2 >> d && dash1 == '-' && dash2 == '-') { + // Validera månad och dag + if (m >= 1 && m <= 12) { + int maxDay = Date::daysPerMonth[m - 1]; + if (m == 2 && Date::isLeapYear(y)) { + maxDay = 29; // Februari har 29 dagar under skottår + } + + if (d >= 1 && d <= maxDay) { + date = Date(y, m, d); // Sätt datumet om det är giltigt + return is; + } + } + } + + // Ogiltig inmatning + is.setstate(std::ios_base::failbit); + return is; +} diff --git a/lab4/date.h b/lab4/date.h index 9cfecaa..25b57df 100644 --- a/lab4/date.h +++ b/lab4/date.h @@ -1,19 +1,27 @@ #ifndef DATE_H #define DATE_H +#include + class Date { public: - Date(); // today's date - Date(int y, int m, int d); // yyyy-mm-dd - int getYear() const; // get the year - int getMonth() const; // get the month - int getDay() const; // get the day - void next(); // advance to next day + Date(); // dagens datum + Date(int y, int m, int d); // yyyy-mm-dd + int getYear() const; // returnerar året + int getMonth() const; // returnerar månaden + int getDay() const; // returnerar dagen + void next(); // går till nästa dag + + // Overloaded operators + friend std::ostream& operator<<(std::ostream& os, const Date& date); + friend std::istream& operator>>(std::istream& is, Date& date); + private: - int year; // the year (four digits) - int month; // the month (1-12) - int day; // the day (1-..) - static int daysPerMonth[12]; // number of days in each month + int year; // året (fyra siffror) + int month; // månaden (1-12) + int day; // dagen (1-...) + static int daysPerMonth[12]; // antal dagar i varje månad + static bool isLeapYear(int year); // kontrollera skottår }; #endif diff --git a/lab4/date_test.cc b/lab4/date_test.cc index abd24c9..c66ee07 100644 --- a/lab4/date_test.cc +++ b/lab4/date_test.cc @@ -1,64 +1,40 @@ #include -#include // for setw and setfill #include "date.h" -using std::cout; -using std::endl; -using std::setw; -using std::setfill; - -/* - * Prints the date d in the format yyyy-mm-dd. You shall replace this - * function with an overloaded operator<<, and add an overloaded operator>>. - * - */ -void print(const Date& d) { - cout << setw(4) << setfill('0') << d.getYear() << '-'; - cout << setw(2) << setfill('0') << d.getMonth() << '-'; - cout << setw(2) << setfill('0') << d.getDay(); -} - int main() { - // Check input and output of dates. Uncomment the following when you - // have added operator>> and operator<<. - /* - bool cont = true; - while (cont) { - cout << "Type a date: "; - Date aDate; - cin >> aDate; - if (cin.eof()) { - cont = false; - } else if (!cin.good()) { - cout << "Wrong input format" << endl; - // restore stream state and ignore the rest of the line - cin.clear(); - cin.ignore(10000, '\n'); - } - else { - cout << "Output: " << aDate << endl; - } - } - */ - - // Check 'next' by creating an object describing today's date, then - // printing dates more than a month ahead - cout << "--- Today and more than a month ahead:" << endl; - Date d1; - print(d1); - cout << endl; - for (int i = 1; i <= 35 ; ++i) { - d1.next(); - print(d1); - cout << endl; - } - - // Check so 'next' functions correctly from one year to the next - cout << "--- New Year's Eve and the next day:" << endl; - Date d2(2013, 12, 31); - print(d2); - cout << endl; - d2.next(); - print(d2); - cout << endl; + // Test input och output + bool cont = true; + while (cont) { + std::cout << "Type a date: "; + Date aDate; + std::cin >> aDate; + + if (std::cin.eof()) { + cont = false; + } else if (!std::cin.good()) { + std::cout << "Wrong input format" << std::endl; + std::cin.clear(); + std::cin.ignore(10000, '\n'); + } else { + std::cout << "Output: " << aDate << std::endl; + } + } + + // Testa 'next' med dagens datum + std::cout << "--- Today and more than a month ahead:" << std::endl; + Date d1; + std::cout << d1 << std::endl; + for (int i = 1; i <= 35; ++i) { + d1.next(); + std::cout << d1 << std::endl; + } + + // Testa 'next' från nyårsafton + std::cout << "--- New Year's Eve and the next day:" << std::endl; + Date d2(2013, 12, 31); + std::cout << d2 << std::endl; + d2.next(); + std::cout << d2 << std::endl; + + return 0; } diff --git a/lab4/makefile b/lab4/makefile new file mode 100644 index 0000000..ca93933 --- /dev/null +++ b/lab4/makefile @@ -0,0 +1,56 @@ +# Compiler +CXX = g++ +CXXFLAGS = -std=c++17 -Wall -Wextra -pedantic + +# Targets +TARGETS = TagRemover Sieve date_test toString_test string_cast_test + +# Source files +SRCS_TAGREMOVER = TagRemover.cc +SRCS_SIEVE = Sieve.cc +SRCS_DATE = date.cc +SRCS_DATE_TEST = date_test.cc +SRCS_TOSTRING_TEST = toString_test.cc date.cc +SRCS_STRING_CAST_TEST = string_cast_test.cc date.cc + +# Object files +OBJS_TAGREMOVER = $(SRCS_TAGREMOVER:.cc=.o) +OBJS_SIEVE = $(SRCS_SIEVE:.cc=.o) +OBJS_DATE = $(SRCS_DATE:.cc=.o) +OBJS_DATE_TEST = $(SRCS_DATE_TEST:.cc=.o) +OBJS_TOSTRING_TEST = $(SRCS_TOSTRING_TEST:.cc=.o) +OBJS_STRING_CAST_TEST = $(SRCS_STRING_CAST_TEST:.cc=.o) + +# Default target +all: $(TARGETS) + +# Rule to build TagRemover +TagRemover: $(OBJS_TAGREMOVER) + $(CXX) $(CXXFLAGS) -o $@ $^ + +# Rule to build Sieve +Sieve: $(OBJS_SIEVE) + $(CXX) $(CXXFLAGS) -o $@ $^ + +# Rule to build date_test +date_test: $(OBJS_DATE_TEST) $(OBJS_DATE) + $(CXX) $(CXXFLAGS) -o $@ $^ + +# Rule to build toString_test +toString_test: $(OBJS_TOSTRING_TEST) + $(CXX) $(CXXFLAGS) -o $@ $^ + +# Rule to build string_cast_test +string_cast_test: $(OBJS_STRING_CAST_TEST) + $(CXX) $(CXXFLAGS) -o $@ $^ + +# Rule to compile source files into object files +%.o: %.cc + $(CXX) $(CXXFLAGS) -c $< + +# Clean up build artifacts +clean: + rm -f $(OBJS_TAGREMOVER) $(OBJS_SIEVE) $(OBJS_DATE) $(OBJS_DATE_TEST) $(OBJS_TOSTRING_TEST) $(OBJS_STRING_CAST_TEST) $(TARGETS) + +# Phony targets +.PHONY: all clean diff --git a/lab4/reflektion.txt b/lab4/reflektion.txt new file mode 100644 index 0000000..048257c --- /dev/null +++ b/lab4/reflektion.txt @@ -0,0 +1,61 @@ +1. In your tests, how did you test the error handling (e.g., that a wrong string_cast actually +throws?) + +Genom att använda en ogiltig inmatning, som "abc" eller "123abc", och verifiera att std::invalid_argument kastas korrekt. + + +2. In TagRemover, why do you think the constructor takes an istream instead of just the +filename? + +Det gör klassen mer flexibel eftersom den kan arbeta med vilken ström som helst, inte bara filer. Till exempel kan den användas med std::cin eller std::stringstream. + + +3. In TagRemover, did you process the file line by line, or did you first read the entire file? +What are the pros and cons of these two approaches? + +Jag läste hela filen först eftersom det är enklare att använda regex för att bearbeta hela texten på en gång. +Fördelen är att det är mer effektivt för regex-matchning, men nackdelen är att det kräver mer minne för stora filer. + + +4. How do you read the entire contents of an std::istream into a std::string without using +a for or while loop? + +Genom att använda: +std::string content((std::istreambuf_iterator(istream)), std::istreambuf_iterator()); + + +5. In TagRemover, do you have duplicate code for translating the special characters? If so, how +would you refactor your code to avoid duplicate code? + +Ja, det finns duplicerad kod för varje specialtecken. Jag skulle använda en std::map för att lagra mönster och ersättningar och iterera genom den: +std::map replacements = { + {"<", "<"}, {">", ">"}, {" ", " "}, {"&", "&"} +}; +for (const auto& [pattern, replacement] : replacements) { + result = std::regex_replace(result, std::regex(pattern), replacement); +} + + +6. How do you check if an input or output operation on a stream (e.g., operator>> or +operator<<) has failed? + +Genom att använda std::istream::fail() eller std::ostream::fail(). + + +7. How do you know if you have reached the end of an istream? + +Genom att använda std::istream::eof(). + + +8. Does string_cast("123kalle") return the value 123 or does it throw an exception? +How do you implement each of those behaviours? + +Det kastar ett undantag eftersom std::istringstream misslyckas med att konsumera hela strängen. För att tillåta delvis inläsning skulle vi behöva anpassa funktionen. + + +9. When calling the function template toString, the template type argument is not ex- +plicitly given in the call. For string_cast, on the other hand, you have to specify +string_cast or string_cast. What is the difference? When should explicit +template arguments be given to function templates? + +toString använder <<-operatören, som automatiskt identifierar typen av objekt, medan string_cast kräver en explicit typ eftersom det behöver veta vad strängen ska konverteras till. diff --git a/lab4/string_cast.h b/lab4/string_cast.h new file mode 100644 index 0000000..cc258be --- /dev/null +++ b/lab4/string_cast.h @@ -0,0 +1,14 @@ +#include +#include +#include // För std::invalid_argument + +// Template function for string_cast +template +T string_cast(const std::string& str) { + std::istringstream iss(str); + T value; + if (!(iss >> value) || !(iss.eof())) { + throw std::invalid_argument("Invalid conversion from string: " + str); + } + return value; +} diff --git a/lab4/string_cast_test.cc b/lab4/string_cast_test.cc new file mode 100644 index 0000000..23a812a --- /dev/null +++ b/lab4/string_cast_test.cc @@ -0,0 +1,29 @@ +#include +#include +#include "date.h" // För Date-klassen +#include "string_cast.h" // Inkludera string_cast + +int main() { + try { + // Testa string_cast med int + int i = string_cast("123"); + std::cout << "Integer: " << i << std::endl; + + // Testa string_cast med double + double d = string_cast("12.34"); + std::cout << "Double: " << d << std::endl; + + // Testa string_cast med Date + Date date = string_cast("2015-01-10"); + std::cout << "Date: " << date << std::endl; + + // Testa ogiltig konvertering + int invalid = string_cast("abc"); + std::cout << "Invalid conversion: " << invalid << std::endl; + + } catch (const std::invalid_argument& e) { + std::cout << "Error: " << e.what() << std::endl; + } + + return 0; +} diff --git a/lab4/toString.h b/lab4/toString.h new file mode 100644 index 0000000..c4f0154 --- /dev/null +++ b/lab4/toString.h @@ -0,0 +1,10 @@ +#include +#include + +// Template function to convert an object to a string +template +std::string toString(const T& obj) { + std::ostringstream oss; + oss << obj; + return oss.str(); +} diff --git a/lab4/toString_test.cc b/lab4/toString_test.cc new file mode 100644 index 0000000..4e9860f --- /dev/null +++ b/lab4/toString_test.cc @@ -0,0 +1,22 @@ +#include +#include "date.h" // Inkludera Date-klassen från tidigare lösning +#include "toString.h" // Inkludera toString-mallen + +int main() { + // Testa med ett primitivt datatyper + double d = 1.234; + int i = 42; + std::string strDouble = toString(d); + std::string strInt = toString(i); + + std::cout << "Double as string: " << strDouble << std::endl; + std::cout << "Integer as string: " << strInt << std::endl; + + // Testa med Date-klassen + Date today(2023, 12, 11); // Skapa ett datumobjekt + std::string strDate = toString(today); + + std::cout << "Date as string: " << strDate << std::endl; + + return 0; +} From daa2dfc07760cdc1d1ceae5452517b1ca92d2b80 Mon Sep 17 00:00:00 2001 From: dDogge Date: Wed, 11 Dec 2024 15:57:57 +0100 Subject: [PATCH 40/40] gitignore expanded --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 62df9d3..655eb89 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ compile_commands.json lab2/edit lab2/spell lab3/tabletest +./vscode \ No newline at end of file