From 12feb4c1c5dac2414cd9a71985c94f46b9f0044c Mon Sep 17 00:00:00 2001 From: Nils Pukropp Date: Fri, 19 Jan 2024 03:40:04 +0100 Subject: [PATCH] tut12 zwischenspeichern --- Tutorium/tut12/README.md | 93 ++++++++++++++++++++++++++++++- Tutorium/tut12/slides.pdf | Bin 0 -> 102810 bytes Tutorium/tut12/src/functional.py | 58 ++++++++++++++----- 3 files changed, 135 insertions(+), 16 deletions(-) create mode 100644 Tutorium/tut12/slides.pdf diff --git a/Tutorium/tut12/README.md b/Tutorium/tut12/README.md index b7e8643..7713766 100644 --- a/Tutorium/tut12/README.md +++ b/Tutorium/tut12/README.md @@ -225,4 +225,95 @@ Musterlösung 11 - Wiederholung Types - Functions! ## Funktionale Programmierung - was ist das? -- \ No newline at end of file +- Funktionen sind äquivalent zu Datenobjekten +- anonyme Funktionen aka Lambdas +- Closures +- Programmablauf mit Verkettung und Komposition von Funktionen + +--- + +## Funktionen sind Datenobjekte + +- Jede Funktion hat den Datentyp `Callable` +- Wir können Funktionen wie alle anderen Objekte variabeln zuweisen +```python +def add(a: int, b: int) -> int: + return a + b + +add_but_variable = add + +print(add_but_variable(3, 2)) # 5 +``` + +--- + +## Anonyme Funktionen - `lambda` + +- Mit dem `lambda` Keyword lassen sich anonyme Funktionen definieren ohne `def` +- Bietet sich vor allem an für kleine Funktionen und Kompositionen von Funktionen + ```python + print(reduce(lambda x, y: x + y, [1, 2, 3, 4])) # 10 + ``` +- hat als Datentyp auch `Callable` + ```python + add: Callable[[int, int], int] = lambda x, y: x + y + ``` + +--- + +## Closures + +- Verkettete Funktionen, bei denen die Variabeln aus vorherigen benutzt werden können + ```python + def poly(x: float) -> Callable[[float, float], Callable[[float], float]]: + return lambda a, b: lambda c: a * x ** 2 + b * x + c + + print(poly(3)(2, 3)(5)) # 2 * 3 ** 2 + 3 * 3 + 5 = 32 + ``` +- kein wirklich schönes Beispiel, ein besseres ist `compose` für Kompositionen + +--- + +## Komposition + +- Verketten von Funktionen + ```python + def compose[T](*funcs: Callable[[T], T]) -> Callable[[T], T]: + return reduce(lambda f, g: lambda n: f(g(n)), funcs) + + f: Callable[[int], int] = lambda n: n + 42 + g: Callable[[int], int] = lambda n: n ** 2 + h: Callable[[int], int] = lambda n: n - 3 + + print(compose(f, g, h)(0)) + ``` + +--- + +## Higher-Order Functions + +- nehmen eine oder mehrere `Callable` als Argument +- geben ein `Callable` zurück + +### Higher-Order-Functions - `map` + +- Wendet ein `Callable` auf jedes Element in einem `Iterable` an + + ```python + def map[T, R](func: Callable[[T], R], xs: Iterable[T]) -> Iterable[R]: + return [func(x) for x in xs] + + numeric_list = list(map(lambda e: int(e), ['1', '2', '3'])) + print(numeric_list) # [1, 2, 3] + ``` + +--- + +### Higher-Order-Functions - `filter` + +- `filter` verarbeitet Datenstrukturen anhand eines Prädikats (`Callable`) +- behält nur Elemente die das Prädikat erfüllen + ```python + def filter[T](predicate: Callable[[T], bool], xs: Iterable[T]) -> Iterable[T]: + return [x for x in xs if predicate(x)] + ``` \ No newline at end of file diff --git a/Tutorium/tut12/slides.pdf b/Tutorium/tut12/slides.pdf new file mode 100644 index 0000000000000000000000000000000000000000..447744754a64bacbbf60fb91ee3fd42b11634ad4 GIT binary patch literal 102810 zcma&NV{j&6*RGvRCbn&7V%xTH$2RZSHYT=h+qP}n6HUD5+28*2)c5{)ySnRPM1 z`dD47&%T;mQB<6ciJk+7JmB931H(zgNMvth1;fh=!ys;H<810g#2{{C=xi!#YHV*} z3d104YG>|jLBzq%3B%7119WyWHME6s&uUiRjKq_G^SP}pI~6q9mR1g6a_7(!*n~R* z!}IE|gRuW16n1e@P*doephCT43FS4 z_WbJlc-4Mu@z(zt{$RCQ%g;xbba8q3zC@oxn5uD0&iB>*MvNd!hEZ9_pnK9K#ZOE4 z#YbTf@l*3R>TeW{zlm3n@gEXP118WqIw+i&x`qk^v0iRkdVChjL6L!3^!gZ9$)!i2 zToDExymYn5!@EV3t0C|W88T$Dsl5x2Pp&bW=8TpO8X}H-M`o*zcH%7-tmDiTMrS;pEQZ-F!+;7&U8E{WIZs_&+uFD$&ShqA_snL+h&x8I=vT8}PgoeD@FxfGQ559XSn;qXRI2~-@oh!qIJ#ECYAQ%0 zPx|)hJ2DJEDn(5ynWJWHaxkVu!3)0%)PdxuI>sy-FwIRy96wgjVLSsTor25ueIjZUu`0f9E3xYRsY+T4YoFBY2vy> zYrU0x%vLL>j@h%6sB8Z0$~SRy2`CHl?JRxneCqLipBFECT?xzhLt$Ng>@XKd85 zC2OE!_#)>lb*Qi4#!nb(vQIy%1lMld&drjg=bB=cjLY3*2iP84@m~8cyhOH50`lbUS7)3=TC1)oYCidnuI%92!>RLQ25Kp;@Uhm1XNPS+? zX?}5urU7HZtTfAsC^@`&qzpx)$RP5=EhZ~WFrH4MA$h`1y?ofZrqtzF(Db;=!Q?&0 z9cYt&03V=hPbSPE5eYX^%fwRq-gJD}#O2UMEC$^*u}KVzb~;dhv1tLn%4`d6B`T|# zsZDM~dca$~x(1KTf;{U*aQfEsncB)dG1zjgeJi(yB@+>-Zn>Q$WYQ`zLdLlCtF~gR zVA+vQFZP&*0O4$%#-Ny&`wfoQLnj-3u8glo=TAj!OXh@H2}oAB0CIhF)|p9-7zB5B2_r<>3hl!4Yg z`G4Y)^?%DHE7N~-srrvgAvmAh+BqO`q#fzBAQh`+)+w5ZK%OmJ2-?AyKvMep(?)$Z z=RYpZoz=M)uq~CEo)M9dboO`Har@)`fr(=z`jaHx;Qg1+_fNkC8D*34ZF@akt&*Fe zxt?7D1KO5M=g+*l*G=Pkv>)mWd}}Hs294u*%-DpBhhb$rbjo!8s!|~9ng9ri7S!<% zN^5l2zB$Fd-&WbrV{LakHH%LZf?z@6;f9|{?sy;~Xj6Fvb-wZ(qByyRpFGfoWu_`b zn%}{=1>PJWgI9VMh;yKvD^O7lU{!EL#;y}rJpQ4OtrcU|v;^#4X->as@pyq~Wc zzqwS)@zya6(8j(u|!<~>SbLLxLUZG=uYa&Gf`P{UK8|o%GE8bm%gYK;lS!>_Xj8qz!Fh#jI;wiK6$XIH=f6r^;z z;|>A~RNQ!SR{rM^*hqb}0fm3^H)Nn1S=6!@p%kgLO`Mw>Tc*jjM&lT;9`0RXg1WTz z*A~X~`C{s*0HJ#U*XfXs)7yD3;rEmMxgX)T_n4T@RkzQRx^{gk)qd~yeJU%1@7w)- zSg+*U{dX0^K@O_a^~(A#As5rKm|a)6pU=k=2fXc|p2wr}aXgo9(NJ1H>~;3|$BYuB zikwCw#km#lQm7Acj$`lp{(aajn^Y%YhD+sb{}wR=CU5CY4J9VS_wS#-#xo0Fe4lp$ zh$T^CQPLCVVZFryCp!EykeXi+L9`Z7!VJ5RxQrhR3QSoULWFAPQ}J+XgHnM$~v>)MLVBF8xQW z`b^ifEjFr4xuY#UaghsG))!8UZdB{GL(w%vcRDxwCIXlq!JI0w&41qh%a;R(03r5p|j7jdeqA7IF!`-9LQHrZU{Ol*z{*{TrOfzoDfN<}JQb zE|_5Vi&|^WFX&dCW0b>&6EP1I1a3Y)SaBM4Hq<<^lsL`lxGo7^X9@WIL_oZ9d5}9Q zhId)?QnH@jvjmpLvp=m9W34~a8V_DN#U>Ng&*+mIYAt0fr~O*5AGYl&yVcLFvhB8L zZA6|>rn5;yU(YyC+$QT)IycI?1;*88;=%XXsfNzZQ)DS^BGE zM%4K!p@Q5_&5TlHC9Y%_W+}!MDG#ONY!f-uaHBQt??UK)&14)0xA)a@Xh1p!c(o;R|a^n47F^-(vd zNGP*0%`*cC=0Xm+iXYd|G$GTVefcon67~0{CGVYTbLGIhMQ+5y{<0g`cFj9s^e&RL z{+!k6oEjy@_UN|6rjz~eHlAL~T(Q+gTb>_c7JhWKjJ-NaOrkrw@O|HiDwq1`#CL?A zvhF5(lH4J1ubhUVufIp=h;jkbd!KLW_EceYd94Ir*&Vd-&y0@V8Sh>i!3ZuNLTXCV z$-POdQ)Zq=(OJ)%F=fraHtSK!b)0z%fz+?)*+FeOfAWCTi(ap>GeUZ?z6KF!aZr#0 z{%8Gz^RZ}%ERYxhZ3puKibS4g+zzlu=*I|TU`zu*YR|CK`T(%rwdBKx_qy2GLo|F( zaWlM$T+^dH4#@|Q!JM~BCtXL_7^w2303?fdeAzPbUT7f4S z)KpnmbYI)b%UydJWI@oZ&=3ge0T79=4V=x=WB9bd^b#YjCP=&9U zlxaq;nApQCgV|tFO%@vA*v+FUOS~Nu@eQcR+mEzYRC}v)v+}RV;}cPvV~oO82EWHH zhxxIudZ8o5DcwqGhq15Ak;fUX4M>a8Hc5M`-yYko|MT%fwQwkQS9HB2=pI%vW&)>X zs`h6^hG|%boBuvUmRI`TD~o`?1kUlofLbpMZ)jP}F?mufr*2>aq|xdBeI#>>FKjJh zb|%Q5KZr=^%Tx2|v#shR#5$UuGe?i8z7-*(r;yp|WQSF2{mI z$crxqBGFgt!)MpF-Z$$<(=c}cCfU>GQTBg4&_S(=7Kv9j3v&@MA6bgV^H;Dft;DBj zcQz#PN3Teu!YN-zUfT`;$(Gfx@ul*neFa5!O;~Y}$fg2TCV^%P6B)MSHh8Rsay5cr zwaXR&tH#vf-~#a^9SFS?a^5)$#`1Y0vkX=mooidRkf{`{4yPaRkt_fjhjud*qfCRh z=t>!ggZkz@-{x3lowJ}(F*@tcxRFDe;%9=>;X|B(_Tg8V5slf5Z!=YY$Ek)`(O~+v zK=ExlP_p$0T63wPnf|KfDFx;E0r zM*%Bw3mEZ2Jl46J{?L%{!-JH}U`&68Kcj{~hfT>;$D6{ep}^P~z3;wQtD9+rwX z*1<8XoTETZ7b!M-d0U*u6F;6Z9kDk^WHL&`Ne5se>T}fa&4ItV3&J^V#XnFuAl3`9 z5kv;T@LB98UGMXyg_H&u@aHhJb0So_OHU*Z zvd?z*%(^SuKCI&5n^ox8{YxDhqS#&6M{p-K{&`^vwUtp%TJRF1+Vjp%sE2{1NXkVt zram^JRlw}e()-X+098}WhmP}w&ZtsJ%NSG%ZFaJZkkA}y+KLiLZ6SIbYZPrUem!J9 zS2Ci21$m7=><<7Yrr`)$|8|okZoUvkB3|_$vq4%)M6qCe_}wX((N1U94w&@x{X=YV zCN8}5^BR1}|1X@8RkeXZa5Ve^Y-o9Nx+Dn%2zKE^h$5yqHd9eKOLfVXHv!T*ewx4I?7g|ZCyC5s$A`Wf>gpi*%|L7%V({hy-^ zaaP?J;mT(J`7wtB+kg$V+|px&v-rHlm zL-|fr3?*jxge9}GEI z5IKBIQ}=%tZ$v{EcO!@$k5FxA@DxvzmyRVEFje=`@>B@IB z-nS0YH;;>DRPXY*uJc?xUKD__|7ps+>!#eb$X^eHM9)W7B=(97KS0==JZ3;5Yk?`u2Wwq-y$1C+wZw;RN9(=E?qe~SRGhEG711K!eFv)Ky%Foj_utl+(K!TWfi`!^&T<)n& zsNSrhjHc(Sg%5FU>Vh?Nx@@?7g)`l{y#IQ%Ci-u>2i|Flwzmo)my575rVAg;jTldW zvw@pnu+|H!;O{$+6;91atu79IN8nJHE@)wM;Cq*f&21>nt_5L`#?}eOsa|dD#Fq7I zMHM^(pR=d7-bl(vlq6N9ZN&%|c<-_DiJAA=(?vGUdd^4f42VqRn&rC0+n>G@m5)-& z{FICto@S@hA?+k30mfk|7MwfM2OH?kj1t3`bsG%#jOD$=Gzsz=>#U+R4lsX%IYB2a z`;Ad>nC_K{KE}vHcweew@?$Mut!^sHQ@SM8Aoj$pRc!}lBpf3@Al)BQrXE2su8_8sO6?IwU5k9c%{OHM3jIiSl{ zfo9FG>9io4PxE&qiffWus=k!4%U8owVC91DO(&!`A1w~QGGzMCOqreBiklwfYn$c% zwi2B4;6>7dBp49T?58U}yUX7&uXZ=ZN5OXw=fp{BPc`rCM_;tbZD<84b;VN~}zEX9wt5d2zDB(`5|87ix5y&;dc4OT>Ziq!P5(92gP;BL{*HpS98_oxF`$at|J z2a=>ex0A=wF0}|>WDQ1tNZG)wH#6h*%dVJu4w6KMfBJel>`ry9&zMOE7m8?di$!am zETUBJC!s9g)b7zHtueS7uy($EV9lW1;1;)X0qc|JQ_3=&62@{mlJMJ7vXGl#^u)R( z5AP&5O{n6w8w?hobmTY4Y<4w)XFH_jWM`tL@@|t@Kb38^a2_~txs~O+vk|&WN#5ps4-RCmdM-r&y5og+F z#(q@1kizLjww$1O&o(kiPVTrnV`kXX8q_o+rBH1`xYw8AW&jqMR@LpREhu1>OR4+v_^W*yIYbFHDjx!+c zPb;lAh*iu!f2ZJ!7u2&HjrU2HpO}m+#nHusJgw0o`HR?OiRd0HPn6R{t5(!h!aI)N zXbJ5S(nUW*Jd^_~z5;|{iGd2PP4EN@r&0>vEx&-$zMXXfYa&Q2)h3YCrV&3l8F=C! zNC3w;N=EKs;S!0x@rbrz?vUYJ8)pjf7%OUsF zPfi<;a+l?RdsC+9u*h)i87j}@+z*n=1!b5|GLHXlWqZ2=dD-+tG}fyoi? z9_QBgj^dT`D4D?Ju4!1}E;Ii@&|j^)3UL!Wm$*L1v|H6_nKbe}8xo2x@22Zm1(9|* z7j=L8a`eI43Qnq@X`wP&jGI>?pU=wHjKECU>9D4R`Gp(^yyWeFVNLEdv-bwsbRSRu zC=SV*jq~G`^r~2>BZIdDAPJU0YYe!$$m%$ed@o5SUp||{BBd1nsc%Q6Y%r(ggy08W zPFc219A=xjigRz?mTsc0>|6FerIz2wQ^&TLk2y?S6NA7nCkg&wcuFgZg^HtS&HIfF zQ=ty1PchZV93)W*{%caRsOWPJ`T`icZ7~P6R)1e<6uY%t>Zk?@zt8I{UwG9rTvUGo zsWsKlVIWDqwo>QG5jy+3TQ{rGpu*Q883{(6f?$P$%~(E6MGH=>qu43PZ=WPx>fD2Q zHNy^~HednrsXc@K-rW+Pbf6WR%CUKo(oJFwVO=$w6XJJ+802kQZf*)ty>>o(kfO#v zekwu>XP_*04&LbFdItS7DMejWl$xlVQmXeA3ySgdpW}b*Hm|q;&K&#Kn?We@@DyKl z#23&+#r=z%wU(Tl)PZ4GE%|__)gkqTXAcA5hRhG- zw~W3O8l*2e>gLsI2I@iL-t62pN1CR>58J3 zq^}?ax@W_8`c7T`N`)ok%SY~lOTD(2zQnY`_hPUdFnI>5O*F5j&KSrjN- zP%F(z-0bphO<9EWdlkAot~Bz%JWO58OkmNGrxC$>vp$sqZ_T@6ajz(G*?Ay9?tL}K ziqFyHbHz^}U%CDM&ARkkgzL<-t{X#Cxw&sz)&;_+~(4#j>#oF%0 z`tYXi9@x_>nW~Z}7c}_BrBqqLhZ716>*I93D)feRKCY^$D13CNxB;IjD)VPvw=aqNrV=S}~rQTTVe_p%m z=X8s(cd1<$r#!6j6ff={SlG%(T&aMV)O#DhJ02pJk*q}QTZwkD;5MJ&$KP9&!eTi1gNbGXP?d|v%_cTi%t8q zSQs{6!@o-`zYz0n^tGXW2_Y=qnkxb;f^PfK{URc8TIjbC9$K@7R)XJN-@%Kx77s#6 zt`E7_dT%XT8ofSR-g$(h#&6@;O+HOKcIfdnGa?fk4%s9w;Vbu;fG zRG%p&vs#44BAT0r=hV%r-?=?@V$#i@&`3ldXxj>gP=x%uzP;;EV1h&_Q2Jjk@1yzy zes;aP%AyJE_IjVH*DZ*-_E=Z9yE|dN_s5IZ%kOCXpRLs)sze403mEV2L4w6_jwQq& zPtTVe<#tx2ODH6&c}Vf`Q-M)e(8fI~*5pe_zzOOh+2qWPD2Gd*2Y0WhSdj@PFc1Ux z5BI?w5V&?x=$|+Q0=vEtlCQP<_q!Yek`W;){&#<8?^yhKA3svJ4c=e7*|#~WjdqMz-~g|r2DHxgT2EErSd^$x8aTy88G=wnlLQ7=UaZh5X{Bl`HZu9RLjfaTPVzUm>0B~`1g7x{Qb(1dY zeT*)qnO_uULQ6tLS_(m+umYElAGx3szL6n|^wj_5IMf0P z-s1oMspQmul*M?s(*U<&+(Ug23FnvRSwiAVX}4tBM)F29oq z!wh3c)*VyT-~iMB^&qcY$YQG`$zHB>Mf_Gz?v$*ub3oSi0S>vcr^yI=kZ8G(KeTS{ z#+_Ec<{4eP=$*#)fqc|}wa@tvLRWMUtLWJ~XF{zSB)$8<6F}nEl5d0tU=~EjM^ZI{ z$zPONUz~)RCzMKGXoTjGcvYKB64ExW^HC)J{D1Y^S34p9EHY439`B&kB=HdF@j zyyT0GZe59Gl#=jEJ+M}|FI-LQZ{0sS-^&sv4@>HPuzT?tb*I-%PM!?W2T76+Lt4r! z*A}e@V=iPB@rq^0*)U1wuu_iGL4@rl-OfIje3hyfCu>=)$P5G#la@BU)O{eh((xM0hlPv@sLd zJ4`KR%Uv9dOy>B~Ia+5$3jzMu3~jSN9V)vf{yPohXx)&BDmgv!&*z2AS{Kndocuh8 zw2(or*jjMwlnCNRd_iU_utDtU#AyUL#R1s_a2rJ@t=tgPQ`5Ic-KIN|oreRKfq!BN zOQCmo7P4yKHiBQ^GPtI*oVc-^3AM!bPip>POD_oJmvZF@do^mD6Cl)(xaF@+*NL=j zia*OYyvv;OA8aV%hvck#6Ni|M`w8a9(DxE}4Vm8Q9~b$xs@X1{f4scGpy8L83VC>rH>3r-aibq%5W9xm}zT7>opllKrvIRjlTDFEOD`QMElX{)x0sH^0f zu^Ey`O$#1&8YI+av^Tm3Rnj=K{)i$F-3jra4$fen>tG-xATzsbx7NMaJh?y=1eAxH zw>E&&5lj+7;ooa39h!Qw>akH3Yf`0gYpwkWSANW9;~QS|^x%{b}_<4T7$c>mp6(1yt!J3;BLe2`Xe z0u49;@}#tP;d6Z>`nXB`{h!JWw*O_h!OFtL{@>+>&UP$*D}0ZD0@EsZK{yI^grK59 zcReuMHGtoLk(27+hvP0Gm1G188*oK$6c$acaT~~4NciRRCTfYQZ1#B?F2UOad-KbX zcgL^m(=m|}%a~WWz}@@p^qSC*>&xf;Fa?Zk!S(r^2gKv}a}*cvPjBz1^CMy||5nd8 zH6h_wVYZOfy}wSz^YbMgLHiJKjU|*{&*z7l@ns#c6OZswS}X{Zl$k^PcKQ@Y>;&`# zvQ^D16dTh;9p*mH%k<*)yPNwFj#V_%!2RPTdc6l0pZK*;e9E4X9_zB3qMSmZLrb^&+GV{p0-DI)OD6sr@==&vhp8Nc5@PJRyQ zvttZ>`3nn`!C$6kUd_l|YiGT8-OO74@lNDZ&Y}=C^Rxm_V9|Kr@b824xqCjxC^O*u zK}?vRq|D|u)1W|T$4nsOg}QKu+o1384HjDm=F z+YBj-hg;sYl4U*LN^B>tHa^4)>Dg9b1dsGHc~GQvW1hQ@Ux#~bXOeN@KFp;MWIQ;iBX3%N><9qn|* zAdkmnzS}21Xj(A}1_dI7Tier_)oES6gnfB@wd5FnK2s1QR11|4XOd4rVntSy!FZy@wlNl~Ge$qfQb z6CyQLS5QHa@Oze562*ogLYpnskHLQ1pqHzm)|J~B+EhRPNP!+}eymc@cV^JijY5#2 zNh<$sWLg}HL9=3#gir=H0jh~uMl~J?gT-boec+zJBYPc_XvUcZDUA>JEESL+n#)f$ z(5JP$HgC}=eI?kP$>18ylgUkkvocK=a{J1F0NLC7ikVj#8+HqGQgIO)gK)Tob{ITZ zEMwN#r_9qBv}Rhc)r7n}h|SU(u{n9yzTU8+%bu0Ase_n82xLJ#W&dIHm;Xf)Ykwbi zR&fI|!|;@n4Qxrl58|QbBHGJ5Ihkn2`&T-<%4`=<&+_GCbg{p8`>V&cn_dyNY9!yp z8hj-DmU~DAN6^wi8zXIDaDZ=+A6)b5mf8VfVuo%^`3EL5JTV(hID)dus4@0T3eBsQ zqNfrm8H$*63OUYjrA)dT6F-`Wwx^)$qcc@7-~4pXDLGji;lBX6c< z@Qi$82;bwJBdzwC2qL~jL;Kk%>gY*DwL#&U4xKaJ;0d>|Ipvy;#2Ke2-D6>xy!q;u z{MANx-PqHGrP8JC+;G+QPt1DP3R=Bx%WjM2#yO+q$&^@CuTBPvEAJ-G#s`X`{hJt7 zFiJ4QT{Y&k`@sSKq8QaE_r6pO3O%i6C>|=iDjXbKUwU=Afq}W96KH^eoX_WthL$}G5H3RE4~00z3mTO3m#n`oS|Qht{7QUo-8f1gXdVe^@|}a z#rlbW(lp2cEHWDPWrhVST?b9G_ujnaHL4-nIOOE^S|oab-A!j%o~GDbO>IZ&3T+1qe~b$xH^L_Ht4N9DdUEhciv*=Q+Okv}cky{PW}@9L`tkY@Ti}s}h2)%#ai;y!>S{@Q z*rKX6hiPYfMm#oKf+FfUHfpdw$Fy{!!qt&X+XSqCC0q@prKLg1CO&d!nCVLOGQ=>7 zR>X7%%C$ml(`2+(jKT-g{v5E9(V(LoRSiAq(t)p38p}83+`*r&w7)U)cU?R^{^W#( zbYa?SDzQM(5Dwyu8v^gBl?M5xY6l`{Qc9ldluS?f&aMv5Fg6>)T9)LVb(`z5-S*n zy(7z8kjUWKoPT)Yb}O%=IyjqA&_8XA5LGK)03wAgZZVao@c|tMI=*cmHng7E4~FgJ zDr2p`@2MY1mqR$@s?6okeQ_-|WA9qsRy9->T?RpiG(H5oC&5!~kDEnKi(!d8)oFhNG-| zj3(on2Il0fMk+HuVQg#5Wr9r6QyC|HfkCDvCq6-@c80zEP6%1lpBewI?gQN%vx9ks z;i|YNqQH2ZGBOr?7EM>Qcw_-@xsN0nnlwjTT9ljFCIORHOr@SHgOvGI6jyAtfGz1n zW}gJtfQ>q3j6z+GnPMS;A+aW63g}F0dwBNMjx4+zr!?v#N}BF#CobNNAg=9Z8?)!x ziG}?9%rdb>#|L7SaJi4#Un(`weR<$eO?j@F0N#2@sfE#oY)BrRiK`>Yonpat))eC= z$&I2f*)cXlrfU+4K1n`=85^rCdM;1C!|CbAJUGyt4SEFm4^6ZGpy@em*CjIFO|H(~ z7gBKBk`3LGHFv`qRm!3-IbT1+Jrkih$v`|Vy*^ovVQ6ZfxJYG^1Tuxr{(Lh7QtV2x zI<Nkgcj8`@&7qy=rJ2g^%B6h)w8 zl5UqR&iXkO4`xJA4J5m1&f12sAHXpxQCC$@-XX$xEuy4fE8sn)Pi7AbFTzzan=2x;e8S*eL2WI+>f3p^{}R`N5^iH*JHl(dVoM01-(QKU;l~x5f zJ)mHpqV-SbI>AOnaEOU%hGS=mNw(xG`TJ$_B(&2k zUTP$%sfDr}i5dW`17=;}(b|=JU{OfIkD9~ILOHP51v=g9&mpC)0mx0Gwla{O!gR}_`*BCGV4 zY#OGbXK@n#NTnVLdw))F^AQQ#kaS!l&BvQ=T&$$JoUd>dum|!C^f)4)J z%g8w~yeV@$q4;SD-MXU+MQJb|i{%@D@~t>K9-mJK&$;q(%~_5y@nhxJ>Zun3s+k`G z-_}?ti>2KB9#j@ZsJ6%AIub&*3k1r@N!1zS;`(NOCD(}I-D9qZ^{HjpB?|@K*X)`j z>~MGkw|aU{fhKE*OR2;aAX`VL)6~YyU;DFzuXSk#ubKQ+!Pc>8 z=vVXQqLM7UQzoQ!f-s43(hgzDWyi(|$`*4D;F;>KlMs(l9S%JBM#9*y?N*M_-qW!=o>c1I0V;`0dO z@0wvxv$Pf+)4Z#jXZa9lxRn$`+hAUb=Ox0JY{Yc|s1o05e|Uxy@X>`4S?|I?w5uiA zTASfO20vQ5Yo%Y5^99gYBM5Gz(E@`+(xtd7sHN&y zZGLP`XrbQoQDmkxs^Ev=?2QZgG;0 ztN*Uea_9|@a(zM-N3ZIhLHP|6`m_4Y;|i(8E_lCi@bMm>P~QBrG}FKd9%T}i@$rj~ zQDq_ZM4C4@C$%iBt`MQrpM->Z`gQREWifjpOLDfj9i`E5nASf03Xt&&nW2~~K3fJz zl3B)X%}BzRdLp{g3fCQ}a^UNIldFwC_F@cP=p*`z?zLSDdg9VxxI$O^m$gTy=Ii9< zER1Pqadpv&H?xfWj*Da4O6o~??dd5A?kNON^uTu@v-SUm<2vx9o{snzjC2KPp^=6< z-p)wbaCzP?$#Wq$ioChcb?@uGldGxNR)WFzj)h_F%Z?FeJ%iEO`ENns4onL44j_f4 zQ&+;t1G0%H_TYRBGvyd&DiIh)?CNQ!GYga&F5s*i$%e!7;@O`G{^c2(u@T@6Urz3) z<-Gm3KB9ZYrznBzx84lkVzZjb(amQ3n{A8p0tv-d0xuC{x4qt(d+xhLEb!RhGqbdp zjQ6ams{7As)M_W(CBd35Cne_~7x|$o>I^mZ3&26%V;fZ0LH-ryG+2X^vJ3K5^k364 zz%|dE^KaTY1XzGSQ-0-elcT`t_9@G`E1uQU%L*+L`Mz;LC59EHbt? zEf+S*@WW;P2v9qXM3|oZkV# zwlO4b+c}4HdwSe|qGCKjX@dgS zdszQsq$fgZ-v|}DKeeB~alqT<>n$lixMp$ddP@kx{t@5yJo~LS%uPf{j)af|kmoU5 zl)0c*F68H`<<^E9?e=)T!e`-q>ph@-uW}TLr5D@`ow=vVdLC{FQO%PUv(+8K35qpJ ztl70ihUmjG#KP^mQo3+t3iJv4%JEIzb+J!0)O_4_Ib5_7jHR|uTp*b@prUKi!E*Rl zr+qbwr=L{(*#(CZ1Ir+N8tQ~nh;U;f8e#sba#&aLP{9`<72hAlB7P$LM7R+j$s=G~ zqWspw`SczEFVJ-Bj|3lA{Qky4GtZYX+#+Q*g;Q&-FJ2czF}T$GlEM527di7O{GVi( z|LsqoEG!(%|0TOzYp>T3{F7b2bA|uOE>6hgFi9<=^R#9`}sQ|F2aL_NTqgB%J>x-vnt$$$8_fNbdpm4m^9B8 zR~Auu$oIUz4c~4m6`1CmGaH?;lRHbNp`LtnOB*~bq&#$E0A9Y_m%)?1xAV5PL37|= ztfX?gi6$)s84;_+V?`G+uStD0$QGn}d{d^1c3GZYmcR;Go^+v^U$G5E*Pc3H8e6** zyuJ^BVZE&+Q5M&)NtPDA!A9oJ3wk~~>}-8kzA9Yne3QM(o4w7era8--FJKn}r9_Gv z6lbRdv;Eb~V}VNsX}ek$5oV^kE7adlx%0l#-3?eo(1%qWPk}M9Ww(ab%!Om}L zxZT?{5G$P_KipDX` zV^!X6p50r~v{Fla!Mh5YGw^~)1>lJBusJlI zfXx|?-GSZ?Mp1(p!Jy)BCK1unOJei3Os7NSLm;w2X*16)8QAJh?TeIqI@mdk@8yFB zWJ9ncj|4rjcgf5y*vY(RDp}hv!5M2bQzIv_@7!jnxn^ z`1`cb13G8+*1n%>DrYhz_%)?-eMPT^TCqJ#b8Xhi9eAi(GMY8R#Aw+*AC!%zdt>tX zxVFdzNleE^I+1f=J)e+?WRKOlrOKT03PPvO;|8wUanUCM*h>K<^KPF z|2}WJYt>Ex049vsf~{CK4EG7NpXe$zkX~qARf)#*l#4{cnIAW{)*33P3WA#Ze^xdr zv&LKh41lwq4&g52+`?&mACKSKE-alt$XUrU1cOC{z}+5a+@0vN@q@_VQpBbgc7mkHuMRRPkykyCC2w8f-eLgA zDil446P=E9ueR8RuoV6{+peLuu2p;+A)Z(ebkid-r6*fb=pjTU!l-&miuVBb7R``U z*t|1LMt_L!Psl5qIR*~IBkH8*vf*;I52BNAh5wby@)$QrKPBkHnePL#7Wf} z`4RPWk%t_l;vANwnRS;^z`MQPS*BIui`TIyC!;%XR}9!xmVpP;D(!)IOSKy9hG5b3 zhK69_T1$1rpSl_SJBUzfzzZipGO$=={$+q$cljejE65|*%Vr4+RSKI+gv2U`X~_^N zA>67)F<|=`#5&-DDBr>nNvRB=FfQGV#}CItTt8UM7~KQ6(9Q$ZJPjSWWQJRmfLoXI zuhuBIVg#2wBAuAGHB%RAkR^6>nteFA* z`g_8d&iod?p7NKkr3Qgs}vq|CcO)=Mz> zSxH7imeSzYi;!RFz_FCNj`%xQIKt@(?Hm6e#@;!|lHl7KJ>5NRo71*!+qP}nwx?~| zwr$%sr#-E&e_zCl_wIf7j~j7zp2~`ym01y|qRxu7_R2giX(G{~#bCq7tdS9?4@8Sn z9V{R!(p)g_U$>Zlm$}7Pz*vrLG1G=W!1u!34t=q&<1;F)Q#aKuP0y{Ts4U%%Djo{7 zMnqbVHMKdRws*IA7aX?|co|QQPiIwY%)ETo3sPyEC0Km>W%nN_`fh7AW3gYvMzn97 zbw~I_H%V$uv_=c23zaWl4~&}-bepY}Z;kdIM)!_6@oeh3p5>;(Kex8_1t_=Xoxrvf z_hZE}P!;!O<4Ojyxt-!^P;agxa%|rO&HR#hP;Z7s%Wcbl{#)_cyh*ZA*;cug+qV{k zH?5Q{r4Cv%0sQB6WARU5l&xsnV93?-k2Ojl*uZ@x_6fyAknw6|e4ER4Oy z_tR2@XuFLs9#lYk%Y`;`!MjU^HejJZuz$lbxL z#hyxZ#0|*h^<^-lP|?bRx^%k1O2GN&>qGr|{d7Ql0bhhpCgVrm&0a3(qub5iYo7cM zQIu~{;5)+T*{!$LRI|#-l@DAkM?zSgV^MxOv0_(`1#+XSNK;sc5=1Aofb4J6<3g3j!7@P?j}PdTl9y3T-N(SW)lEqTg#Jj}5#z;|fn&vE>6v8JBWMHJ(s z)SK?ZofLVz6;H>OMf=hO8F`!TX-9)Yxq+Ph>4t=EY`|nyP9dpX`U7cu_woB=$|RP6 zhs$yU$D~}=b%!W`u12%Q?Vs@E6DM6R+lnELn0otComK4v)r|P8a>&7M_JtnetMB2b z@O$UVSNZrXN)qP$Y!nvrwZ{VlY3FjlgaK$~uopxX9 zCtlO+x8P_^-pxdU>%7TwCemaAm?mtPp~gb(8g2>+YztQGNJEi$CQFulJHwrUhN3Xu z&sp!gkk|lG=o=G>pxfR##Llo6tYjXWr?GkGl(vDhMuc`cXEZ`01+y5M1izKT=j@#3 z&avdi3G~-i%0TQ|wI}*9lV!}HU!N__Tj+$>qVueJi>#<#-IX_!39BRSbi!EH+~S+M zcLu)~Zc*@72t@kAmes?U=T2(t;VkgcDQ#+nu&kX^n;?;7F$ZZ~b9*;uTjC6|6uo@xpSV@j>pPwCcfu)aXO_a4sa9k6v+V0)4k^hx zHJ39SpZewnLbGuF-AoR^VW{Pu?#WwU)pey^nK*!j=)W!{9pG^#&GGndPK32h1qv<{{`B1%-hJUwyl1=r53q~rf9nwP zgS!4J+kLIA7l+dd>$fYHKia}?oIpqcNe{dhn_bFV#E~}}fZa)+mFJ+8hu8Z9y(Buh zP8%B~u9qZex!xDW5BwyGZU~DnzJEa=^n@>}89>nav41)@pn>`G6C>>S`u)4i9f&K< zm8Bqzc-hS9;U7QfreEvzd*f^hYps=w>yh1m>h-2C0tQM%!@FLF3?E^XSO_m3NtKUU#qU=m5g)sHw{ z@Be}+#2|qwKIU@E<=q?kjFyxme|_f!({qV~)^nEOSAYptB@Ig5mTMqllczi0vpE5o zI>(nKfvHkY1USYNLy_F-5r(HI|3(w3SCb-EOt`{ls5Fw+toSuSqIweC-K&_AgrjOY z_GOERXnRYl!dNFNT;>nAQTS53bE9N(oBW}IN5OG+$YtIL#W_~A45@Dq{O31o0}FVl>th>bd)zqU{@r?qFJTlu*n z7Dl|1pQndl)kbgEJsksu;Q9_TzR@^iTo}tJX}pCgNIK(!ba4O&-IhKLVgOTZ7WPy* zaeA?_J{m##aYVByeN0UQ8+$~Oh#Z)uWQX}upCaX5fj4mYn6yg^GKf-1aH9w&dAj6! zbzCcuqijK9K9*|wh2i`!jC_5~m|gjS4CiNL5aje-S=?iN7s;?&%(01dQ#uy=`(xO= zYN;rIT?t)@-w-{ldER;-V>3W(O!;LTI~^<&^|2jG2<#*}5BV1Oz|=qUEF%qul_`&Y ze373is9}7kqY_(Sr-O|Kb1PbZp)_C`f^->sEvMtUiS1XzlO%~Wm`PrYp6j8Ki@alC zlZG9Wa*&g(qyeJ^2o+iU`UhxaL_xWo6AB0^33EvJ`8A?+iG$dlhB=0SWr1sOV?-_DKQzc_dJYMzUrQ1-M6a}* z7y+IOs}SdjrecqJRr*yZiNnz>CJoi~U(~MbDHY>}qXn$%&plr*Y~}>c)XABnMf5Zk znRfGCAGE&gDHr2rtuDS!S3cW*9{=9Ymnleh`$>2Cn2Ij2L!swdo6A~iKf9b>|NkGq zZ4Pg*$bu{(lu4Sh7<23}C+ng?>NtV;g0+?ad{3|hU`$MvMlM}y5vYQo3<59uaLV-d zU%(N}M!EqQfD|6S^z^3@K)Xvsm_LEDLyDmEcLxP>Gf3ilc%US`ev# z+jzUonJzz<%pWiyI2F=!Xh*gs9*;{jQglS`6!>flTwcxzkrBl?RjQ z>B1GpZyL2!Jd|X~Rd*zbMpmCT$=JdU7j6zkxlWjUhBk@}NE{qLX$sGkVkM&(iEOV4 z&~QWoY36wj8PlzURadxOK`&6Yw8(?sok3%@!0r>L@Bt9T!=Mpyy-Au!^ABe6fX7%o zED*||_|UKdMQ~ah8tFyJ{H!m-AKTn8l@(yvsHOFyV7<<|^f+>jV9@cX_6cE-ODA`B zoOjR(K~Gtk9^PxD=cM!x0~~|Mls$7n9+3qca|u%&8ED4aUqKDk{CHhIS<@i}-aayA z@l+x{v^Z%>w{yzrGPi)T>K{X$C8fs-F};`}=W0j4AQ}xBGy}a=^}X+U|xZ(>(2R%!P6^l|JemUfTZ8v}hHKb+VjeS=&JN6w(ig0ZW-K29!&_l@D| zn>V{>F*R?vMSif82B!s5k}91~p9RspenQRn&KOh>D?+E+epbY`uSr(^#Q6RS01~Ul z#)Y)`KRS!l&d4BBfXm_!1s^q7A0Gb2i$4~H&A*vEVKUpW?rs0{g~uc| zi6UelaRT3z1kvn0?{S}71>Z|F5*^X0(x-%t8;&qCuB+-fPNe^iJ+^3AuaA{k;aTaL zMsBJ0)5Bw{gT+|e9!ugNlK+5p(VXJB)PP#PTN;Nmvl!L9D!Mp` z_RoL*wGO_k*Lm-J-+Xj|qlDj=V!4IXhKBux;@VWo?(L$?Wd3~PbXY-ZLX759aiBS6 z&;w0_jwU!v8E?ULYL*8DXToNFR_MJiUl?BOy$TP&jdLxexfj3aMb5so#gpax@vr`p z9$s4UO+fXPkc-5Tgp1@r%tNO^slYdh&TO4Rfo~%9=bQ)EgdDj0_?P<1RZ7&N}*Oj|L}0Ept6vWg>~7$-G1sOEhW~Gkd<&m+~cH4huI*oB>kfeW+EXA zsr#RhlKs*_-FX$8YuiaOUcXi zO62{ja^<1ZH#w==ku<+Rm;`dX+s{>#I={jsWan@MD{MdbO8*j4)p+xv8HooBJ~ z-H6NS^Y3S!$UL_7%C&iPfp67?@Ds@psr;n=@WPkfFi++laF-i!`MZJs=|6iqk2vnX zH0`3|wm?CrrSEqdQK4lui%<)py?|T1oh-yu$RqpQo~!1XY`f?(*ZlOvB7GN*bXyL& zy-#6_2CmLZ(wyJZKHk26yrmR0EQ}R~qTIv}u|&eOKU5o<6TG{NjqUUgBbXbAJ5%eR zU*gM*_7C>+li)DhtL-uIDT7MlBs!*$W)Du(eQ%;ZfvwVf=uEmAhifzVoQpg7%)N@% z%Dc&!?6VX&qEB9o4d71GX%}~iB~)5m&VjHvVs~E5kKVw=8n7)8fd#)H+^~Ww^sFlH z@q6No#$?`hp0SWudlyWNrtTE3SxHTBN=)AD*HZ^kE_o=%H*FQDMQ$aoBtmkJSV;&( zLoz15Rmob{w%k9})Uv%ZI^(R7^?VkeefKFyF7I~eWk{w zWO@jT<#w=@uUj>cX|r%Np9i1I(~guj%HSO1raxQWF*{S|Uzp$#mL2Z+ZiGhr&+AO! zWOL+ZN5qe4#(jZydLvJf2=)hvaKRS`^8(IO5?=oCc-`SC^Gub!cpuanF7>KR#$=7U z#$I5L>QMK#8s(IxY8rE^eX5J#-i?Cb8b`mwoU=pT6HwW<7YpO-7t2vL+#Y@HL_19g za0`>+B?R{gd3lK=9SnXEj=p~b2iE1Jx`${{M4uwn2B;zwwhvKh*L(s8_M?;N?t5w+ zu*~6_P~1nl*D9X;BxnJ-&<$dmHyt$(S=rZ4-l*^lM)Td6@F8kbbv;0PUDw4WdC=b5 zHXdjmWK(QarZUla6+4-D)ke+`Zd{fo(u-BQAbylh%1UCPZb@W6L(5m4{!Bv(0y`;B z3$o;*nJOS*6|t)SxAT;VjuyD{mg^zA>mq#xs~2x(e(3b@8^ySR=>{RJx9f z+V;)lE$wyWSxy0Vu{PE91{pEH5W4L%j5=vEqQZ~&5~IcKrNLfzCI1C_!CRJs?8fXt zpn6HR{HpX`Z1?M-6AzEi_wnd>_WSE*di&-3jpJi~Ig>Axt`|nG*VENA`doq!>-$ZE zD}OCp5a7F!P7(8`eB`YU!&9e^5(WCr&g8~8Gu}A2)GsX7;@v?yQ~$HQ#jLir7X#S0 zzzFB`SigmlYjI)2Cp!Dqq}Ep-AIj@mpmgI~J%FR>TbgyVv6iY~b@#gDBZDn4 z?_F{8mM2*}GRFc#D`=!lEA25t%4iHjsAbaW(_yxYH<)hQ*q*-o&HVIt_ zsQkOVD1k^VuL)sz_GKF~Sv^5D>uUwE*$VNQ$<*Up`pi3EU(g>03-fA;>!@wL{@WRQ zpw{|f-uJ`H&Dc%ff|>|UY-jf});AX_y1pdP0Qv;s;d`5WrhnYXy_sEdEAdS8!nMeo z^ET)UdS^DC_kRMm|67YeCIiu@DE%O6x5xZw=_ZT4cBZm#|K@fh4Q;nD6;Lzb8#pmL65q4^1t*59a5CF}u>6V|?zo|S$dJpe!h}r&&gQjh}?Rq1pXj8M3 z>&=!=5QLx=g}m9OE6x2n@a6e*HI!3m+IfEbt!aUFs4^||>{!`J2Iz78VR1L_Yvj68X}H#;k*vS7I?JcE>@C`2osH9Pk~odVQCh05L;oO z&>>qBx_!l~_;?%=2kT2RbmF>>HT@`eD`He6$)5BAlz6zy4gy;l6)}-T8gpS%%isyr zPABIlb2nil3Dq>^>4ZFMU39i`If_m>NumsB3bxrsw>w$kQRt&6TbuXNB<-D_={_f# z{Z$7cB#H|3ss$zba0yI(XIfL$?P{8AsnSaZ6!pqJtxNGp6c|R;BK@K)WMU!SHb@$m zYIwwIwop=}0-qN~QwouR48>DWC23ZJ@%D{!79ew%4IffaNp^fwVN#;C%xbe{)sr@Qb1il+epN+pC)-I8I6K9Np}2O+G{byzG03_k6V|1Q(s)TtGdOk!lX_KPb>RYaFGZnt zaZMZeG?9w~GXHcAI$Th7D`*P`UzmO+$$E_(z!6e9bs<19qPgY@L>o$~MH+NX(Hgqc z2p^B~%IF-PS@F=C2ozszs3w8}R12>ng0GLF6v?IvSewujWI?sK7R2oYgq;6KItU;T zRP03hH-AXACFLJK5Io@&1rT+JAZw#pi6n#X4jj6bcDsFPEryKIV zAn?Uv062Wf3(#|^K<*cqk|0gZj6D?oMlIL3qpCa<_zuKYJ5(FW%rd4bh;@WeGh!bx zy$H1yfIt->YFW;StOVe2jA8nRqA2!Aj_Ux0A&cF=S%|3*K0=fNg*)p;)+iXwcFJkE zk!dxv@S>eNMSd!2dcvgEZF1ri!mOHMRbGFp?S{TN%d+umQFAg<=(Mlb#m5FYnADz) zAv;}dw!gbo0;6;qYRcYy>jV9H%4$JqVp~R9a&po+w7XR%Q)S!vfj0ME^L_Ccw|JRo zrjlKi!3JteiB8L(T#%G6Qrod#fnD?eZ8n!+`FLNG3~=sXeurD5}GqmVf!3&myT@5Ig>gpe`Fi1TGIdo%yU6GeG?E;rQl3=eIZeuvp=-r7#D*?QL0C$n&CwVwmK(J(fBu>vzRS+X(1 zps_R=CiC1R8D>$+6mPBDq6OyCy|G(5AuYyy!Gbb0#M9I(lbHp3pZIZ$iRNYcnR9T+ zdWb1+s>CK}*7}Y~J`5&pzYB;N6$H%QjQ0$fNRlO@AW?e)-G%4^-1E@^JB8@PNR|YH>A}GN=}K}aK?CYLMJmw% zaO>>tbPN|c=~bFPnP`B4Hk*-bK^hU=W#GMhOfwv+HBBiUhP}fQjDHUW7*m^0Bn;Ox zDrVS&>6Y|`*;eW4tJ*K2pzf%!+v+$&k)hL7QRWzM5FV(ogBoM9Cx*6LoakR6z)p$u z&gq*G1S?yfXh<_QmUE~PGh1_D^+rryyWs&n-ZM4}!IN9^t$mupLhu6KOwHk;h&4tJ zI)FI5-$swzi(Hg{(KNXLbwrNa*6DpqIi;pS-Fri_$tZXXt0dBiCaKm#QwP9sx#&ZP{ z7)m|~R_B&T^DtIsRhZwzt=W~3!4~MqjEjLAyZ|9)qs3Hm*;l}N+2T|m9EkycH z=9O9ctRm8nM-c6`wbmc#$ZR*2>tD{MUn44O`rq9*_%ItT{#s}@%0_&3Hb}w0|g~uc+E?HhPSeS#cJgvm+&TmOChYi}MWYu?l zzkZuBw8ReU)UqDBf!h-5IOXafHbviTz(J~1VYKW0AX3+_=Mi)@!n~P{>~0ctAI~NC zmHb=O%kia*O6pN!WEruDQNDNTK4?@o83Mgsfls|EV3f`y*m`27#}14~jB&g>J_ zo1ygEW9C&6Sj&+eeJue}kXVhX4(J5wFJT?Yp)PB42b6W+9ML?~Pcie$!)m!8Ko`n- z{9I8VMEHF^65sy?!n#j>cpS>w-^Lpg+=oCzHNZx1tvJ)h5`E38wX?59Xsfv}d#Z+M z)#El}X~SHtb|gdToHix5V$I#+!t7AaySN-q?^lbs61KVzER3M-8=+89#o3{X9!SsJ zD&euB9!Qs%UX*clN_7vIdwwm@&O;2aegR5#58CfIPtCs-wO;c@lT|$F&Cbjk=3vc> z%hA4!n=?zo{Y{Y(sTRFDdUPeM2JG90z^*U5xN~?ZtBS4?DkWK=T_d{zLgA27%dZjY zS@^{xyKEqZUpKVVlMOAtTd@fPZ@_a`3PHKi(U>qMi_sP%HqvdLbcfnA0uf^FJJtaF4 zJ$y@s^RNuhUYW3|jk9p&CiBsV$Av)OQ5Sa6>qD)V#us96*>bPs_7iyG0^jWKiSfnp zuK-g1ur0zIeRd3epwUU;!_eAMn}KfhOUOhX7;8={kVFb za-w$d9TK{NneD_^u=CmRh{rqn?X;qfBp;IoECmWH6@}1rY5tlkIGt$c(7Ur^4vw-? z$m-yzjQL}Awi-VLIT=f zIE+Y=P=(J>T86JgiMkkF!zgzCn|K1La3Esc%%>$BqSeeuGAS0J61rav4`ryhrPfn# zl+XtCN#UA;vh0(ptPl(|J>duOBg0gYmt@2Ft4mfu83t70r~IA}z~Q8s6Of0pXw9F$ z2K>;32A~4^igk(=By4k1ig5aCNP^{1L00Z5Nr{B8+`yy0Pv=O2GM}SCU-k^3dLxMd zM{*5ozkJixGXqhuu_Tan4d5vcEt#@m(Ao5tWRMf}0(DBDDMI3uoP5>O{<)Y({zCEf zwqNwaX{^4$)Wx1V>T)}sebUR4kbP+sU{rDdf(?^Yo<0sS2~}Aj)shYg=C?g>NCzms z=I4HeG6or*@#}eU1q&J(C{FcFWs%~%*dK6Il3$$PV#cO}%a1FQ@dHcv@PP<$N`(C5 z18wX>J4`DYOIa0Ew}WxgNPwm|UX4{}=LBXsU@lk$foucy#i8hBqGW_7ThWv7SHN`%Cjn%D^38)oKmp2K&iXq3V zRd{qG!l}i{v^3w;{q>W&=%n;(Ml(~L$wv)fYAOr!=Bx7j3&w72@RW4cElsfPJD2q@ z8L$=J`XLh=a?zTVlg9DAjk4&b8XB817naUld7zt2vt9DAmL{?HSk6butDVmCy^WHX zo>(4V@~5o_KAo@6zk|afPa=h$16M{WX8T~u;4H-MWqRGAwYr09wfmK;cgt3<7cAaS zSYLdeuzp?aKhjsSF$&^Gh|+y5EeV<Ml3d#Ar#Drr^j(#gWiJ;7Ih&IF1zN+tY9_@+8m%-$BC<{(Y2xz-jJ0-}gBM>UmpQjm0DhTk2VEgg$VXI%;rIL3RfnqZCy6XmzhamPaX2uLOi z5pL{}CCjcvsUG-Mk(v-q)jSgVqB9kV1kXX@Bubde^;Z&${upR^B{)RTqU9r5agB?W zS^$?LUt*-4=<_Qy&6YXXPchfe=*e6jSRM5Ly~(0ZpVN}EwtgoudN-HCzuqc2+c2SK z*hRB(HdGihk0UsdZ>E~iYS#8{z~a{6ROuQ;CEo8#2YNCGMmxZ=;us@JS~H9w5?>G} zWC8s{6yA1}2o7uH%8M4thJQdV9#A)OC5RyDo}!b#QI&L%3@kF7UU{;H1;>vqW zSPh?&R4*Mt`>vibQ!zZHU2wp#vd}S>tj`_9|A)gl=(ixCHCX@4SQrhZ+f0#tWWkd> z)@fWGkKnX$X>N|118OcW)j=5j5D{{t4wSHv4bln5+LS`VQb%7<#1lP@4Cuw_c`d`R zx+mW#{|X$)-?gDB+cRFO3rRsU9%$h}u?wlIP(Qedw=aj1XbK`Q<~Ms9W@azFI<;;g z%*W@sA|i7*AFlneVN6}x0sO}V=qO7`s^omg700a*Fq%Zj)dyfjoOi8Q*-(tdV`CMT zJ>nlrlz8$G!S-xQ4!~&Xvlm%U2&RwXEn5j-6*<>6z9>14xXAJi1RWw@RR@@|--}TP zsx0nXWgt|i;QFf(`A1d1UNEs#83ZZT9=Qq(Agkh*Tucjyn(g>kt^tL%;t-7mTmxwa zFKUKb)!d+B$D)+bB%_dcXU_niQic={zi1Re3GM&`N2G;eh;Q`QCntmew3%leT^U1g zZhU@KSJ)))aV17v1oLdOi;G4o5Ku<`W76kHLh%j0=vVl^mwLE9pwn5&vi7Fkblqo|vS2-K==Z_E3& z=gvlX1fY%tA5Lu%W^lWGu#fXmSMHh!!Bk@|Z1^ngBrJjMEQcXoNj|b$vE=}r2<@P` zCxeS_uBWRR_UfK)qOZ5ZvA3M{%|u)2JyrQcFW!(ylpsI7|LUzpg%@I7b~#q1$*Cr2p;+WZC2KZkEU z2zFHM^Z+!CBBY9ilDVB9Z`;TPaKL;%f&;afwzdV&gVR^y0x+bvnYjY2Oh-svA#|k= zUE+D_7j0<*&Zi$pwSCI!N?op+N`^At==NKzSR(7r43$fi>N1jK$y{N*L`UgI&aMo9 z4Bbx(%TJTxDmqtDGohjrgptzFl)DVH!hkGSBYo1eR^H>fvl5^c|A^f~`iX=WMmFLn z-5pG-8b$~S?JrDHkJfg>qv(JMW5h0tLwak`_;-TUM$+DTCYL?n=pMDF{@s6^X$N=N z(CP(we}}SlFkPK77-jso5_E$csGzp-?NAVUW7j9vNe5wv@O%2}u-(i1rlp6=#_1x< zb@VNH3`Nno3E48@!svj&xAd|RI5c(Zj}n`w6Zq{Dm}c{WQ7jUCR#!y180+3))8F}I zG>hrw?`NDxv6^01Dp~YT>^j4mFKCT>eCG_?6wB-fPQHOQx)j}UmX zGG~>Zipz46{1HA|bmw}8pr(wSdzK@iWG;=MHszv3=J2j(wKN>`@9_+F0xovINy-LH-+ zi{lYx;$1PI@*h2p<0?52OrKBsN`t-i~DK?EL{hL#7iNt2BQS7rV*T7HSM$aOz8C39CQ$EusWF2z))`q7RGkmrmj7JyD zbAT`{YaR+>{$5&-+goG{V)`DCK$yI`N)NYF!WR5Yg&}e2JXP0z#-OtCGeHp8f0i>N z8PrC@ZH6vnYqxXwjB`5lRb&O?9a_AfgOd>ybwO{bZ8*amQB@L82AG4Ez-G z7ASc9I5tGHeq4EZ+BHfe|2&5}6Mv{cJg*oA{kvG}2nMnRB%_~~uVDY>GDwZ51(xrj z8WoLBwmd|4(^4#W)ACStIgrqOmIg5B0%NB&Iy3^P$9#N<;L=35{uy}HvWKQ3hzLg> zMh!q{8z1`_Q5xnDgfwN5UyJ1e2})m6Wh)pwcNi$R;DGVCibk^uB_T%qf}(Xrns$Ae z$d;zI$qtkc|ocR8Gp0Cp0O${8M?WCh>|3c=QKtRFf8* zl3q&v_FC7Y49{dM?DpAu(&{i9kzXAN8BLb1S`O0_4(B#pHkLQkY|K?68oUwNsFpZ( zS(e)6#Y|iDwP+^n8my}uwHfiw0cFjt41r2km!9J4DiBT>NGrw)UAKukjL(^ zF`gUcpa6m5VoH8~sX`?v)EiHRCU|qB*#)`bCA)xUNvf#5GBvH=_nvbYAtJHMOZ5 z&8FT~V(WntjS2)eKu&t~BeqJM;|&C>A|{BxR~vgW)vXvj%34A`W1D>j_%F7sglqAZ z?oF*qG2p#17XIUfPO%Ao!DE3)c1I4Dv=)Hg#7EhaL7=?1MS#NK>Ec~bg4ZBSUG+NC_|AB)VEL|* zOg#-z>Gf+pH<+y&Skn-*@=hW_*vD!|=50-e(u1@7+51`ul*)E`p`hXBW?tZGWg?;u z@Pa^zJ^ltOf^LTL{y&kAHcWyY1l$!N03>>|>r1a)fF{xaD;Oe*u(9nx1lW&;FIrd^G-&eIeLa)Wh@6On7yBjE}h&PEF2pobv%lZrTDSsUuI}kXSs!=SD ze}7yUI{^4mVdA-`l7EF*Y=cO?&)gJ5UO{6yY5s36z>v}ao*#5zXGfh?7c)yQ*TV}I z2LCb@u>}I%!pV`Qp{M!Wr#LxtaEQFiOGJ`5bfW_B)^^dl#W^6%61*0+E~ z=`m)sCh*}&?52K3WR}@=Xp9Ei&<)dK1gh$0YYhfhkK&I>LsW4otmX%{s%51e2VK#2 zB02$t7mPYB;gXLXvq zc7mNS@0zkO89(J!uIR)i*L7@AayX4=omTpUvU3y7i3sB&o)NNULO9olm_c-`jTSp? z(Pzj&bPxyrbcw^nAUcGjt>Ax33u&VZ{wVQAPeqEV|C<<2vbE?}KdYEu0@T`C-I+Iu zh{AL%Nq)E|FQ4U3AvjxTlsz;lm-qh@r zAh1FQC#i<~c{Wc{?1biqMXUziY#};~2W?@z$$mBeHGRSEffY#owaGID(YbwFqPv#u zKpDR+5>vDOJN0%bPs(SM^ebv8Z@@QBz;AnSmo84W(5-6t&#V3`)E)xy1vDW9ju#B; z7w$arzzU}P0&d{AL?(t8Oj_;6Hf+Qy&Ld~-D?;zNkC%Z+VaE>Gir?b+=LYR7;sMz9g;ZMvPUuS8n9ukr$;llEsvVQvLVPARUR4ul6vXWsedk z*bv9b_mY?t4;;ZO=>D| z2GaRXZ`ik~1>{=QgvLi$$HX^kAG+p?KUyVxHjznB^7yAz#gm60eU#?1nMjwj8@O`Y z=s2lHcnrU*e~-dgx{)#UHz%eSSMkhNZQR6#3R=;zG-YMh%FyAQjh=5~WC)vL`P-3fh3ulK zMQxXmQ4)G#$~`MiwyUqv*9KB_Ue)v<#L|Wt>%NxPLc(IZ8>WYD=N9R^l^C;U!?SFm zf>rKzlil^WsM6|ue3abiqvm@m$)XVIDdhfz z4deF705Wg`4|)#y&k@kh(Eu{HrQxC&NJ)p66FUf%3J1yjotTG1-z@ z2m3se@9Q-8>+f~zZr9sm>-X2<;3(hs>~5^z>;67o+-(onj_>!)Uz>2djrQAjKi}1z z(PptiD#K$J=?SrS_=n%Cnyr)%m%m;MR(v^sYQXCMNxf9lojJ~J8+0=+f~j0clxkZL zP?KX~g!FuF7~aZ%U-@A43VF%;9o}}eMjXPt4nozwbGaxt99~e^CLX+8ZZ)?dDY2Z^ zaBi-BRVk3R=X`9Ge0B}O0Ax4|{6BkF&c{grl&I07(D@PQnHF9t;A6qZ8X4+Qei0F=;^61vRS{;YY<12~ z;hd}2?bp+^zg(PD(^gijT_Gd6ea<4rxqpzhnhXzbEH{sp&e*f$eUGD4D^W^g-PQWuc&F<*>9%Sy`sHIhru0N1JMv$tY$Tz zi^ZL7)Fi9&mk#6bmj9}`#4M7hHLSna%MCi|9Z?*XrI^yP`(;gzZ!6p?p6JE%gS|HW z?X|8(iF`|w^N~%ephDkLSfn3`;W8*)P!8eQ%SOwR0IP0EIg?jQYbqT@x|~I!PKoMG zKQ`Y*VxudByx2ia845DTnxHtLh%(KQHu6|mGc`yFp2w_Yy{CwB3Mw_rXvHiu{OF!K zHQ@~ZCV>1|913Ze^@I<%Pu+rfQEXnxWO%OE5JOp6{==*icM*N?2sl5gu`0rW43ywmH5`KCB3x*orW%IjV53knA&4?7mfEeI zaQ74*-lN!_V12e6aM@DD>sQ$-{m{NBSejDtkr`y&iVe$>R$iLbjv5@hlhM5*u)0VB zyMy8_fnav$5m2M}gCwwOT9g`T-HPW_=Z;czzz=`23Bg|zF|LKoUtZq4{THx0p_ugt z_>$vkIzy=l0sG$c1%T{AyCVc}44mcEQ>?ob?%oBOAz3~0LD@SQC+jmy-2cYgf-lQG zv;Pf@L%Ihx+Z|G7VE@ca3gwOwpoP?@NztI?ee+wDUV8NC7lvv)9GSd-U7#yeE_{SS zjQ+W88RQ*3aH+iiAXL_0po5B>7N(qdar5MJdoa*=E6#p$#mGQKj+90Bux#L(WGSvJ z5s<5NqlXnb1_6}voEZ>4ptLeGjx0W)VE0as96_E^j(_Kc{$UGQWK?Tjt54{k9Bq-O zPhpux5HC#*5tpm(W|=__NtxC4=~}4_yQDxy5@a-mN@Qw0S*@i>dSNi&YBW zrl4q~S;Ol54lO4AW{pBoN{fc+aOm^0o6q%j9RkIeTxMz9Jfr4~5vE2n<@0)%*J-whST`4S;Gk-cupyBgKJC)*eQ(6~Vrw+5Ax`AQFKKEFu`r>r6NoX9!!9QW=G=mLO8BTVf9< zLMi8HB@%(8C?+3t5|ZU%RcKQ+HL2$R<2BGoLfqd%rT|~8P%9#!ExQO`u3t(!Tv5GO zX!E#)D*P=X5Un|qm=^Vyc9}s)wT(rAtkQ@EWC(b_jYL0%Xi4JiPh!zE5M-98q{k&? zn5I?S%b=-xr1MV6Sia+Jv2E0T-;$xV+of#&6Oz-eaZ=#YnyZB(R90e9k5rB#{)BSm zD$;xiFNI7 z$VOpBd2ssqAMqY$PDiFCaC8LxwoFI@6jDbC#~x#-gB519T~D+Xo+V~M?utdd@7GM* zwq`dGb-R121`_wS6?)6dP%*}Bqg2Rbxfo6U``)p*&nAFO6+O=hJd4Oxr``zDh?e1G zb!{culW5ta77k{1Pjg3KZi${d(}Z`^ReSCf`%)`6dv<^4U(EfigRq+%v_pIvXXmHt z<*P;_7um|JjRtB8H)EbQLmtfTK@8Aw2GDUNkcqq7X0$LE^4N^OJB~gJT?VC5jSIVyc`wcR2x7+fc5qa8-`V;6d5O)DUK)Uq!d*EQwZ^r!E zHZbhA>HSC0U|V5~LQ`=tXQ#K(@BepgGJzxhx@$YgsfJy%KWoVy_dhoN*<4h#0OQ^@ z*}S`Xpfi)$d9T_g!;5~b;)bEC^ZfJ2PDRo_8FIW$cUb<151A6S<)BCr&zPDcD#wZN zGKchdde1E2>DO!z%i@S7uszyRD_e2e;CU8iri>@L_$3a@#s3|z%uG2x$nt~ru z=D}1(vILCHU{y}?xUylZ+8l~fsd>TJrwQVQFyElWpRhl?lNXSZqk>#|3}RK!>WW*S zuGGn<2D}C>;UpWjjqWsgAN9CiLi@4b#kp+dljKV20jt_^;U3FEroyQVL$P)w6&7jq zG+CwK;@y(-w@e|K+nD)SRU+AYq7^P&Wn73u2r*gqcV-V|HYe-!3Uh6!PS(q!WurA{ zC{G8kO+`um!MyW^u1U5fZ&r-z3JI#+RGqKR$6c_&Q?k%GObY#JS=GX$?ys`rbI8fv zxu}~lj<{bX?a}|Nmgkp58JDbjY-TaR)%`}$e2ov2Swsr)v?A`4^com4AVX z`{S$X>h9fZ?N;sX>VDRgP#;D39)gMHlf$soZ2wQ1@p zVQC*kc(I=B{?QgLSY#$_#+j4za)7e?}9tl#!RlY0hKJ&?1S00bEm8Z zZY`3v|3>UohGCFvZ*;Eb@;e{%obA#vHv03^m$z!`>z83$1}euyzV>)m8oK$$HlUAY zxi46xS`pm(M-HlTBvBd{fJ+Ev`9%&cX~@!+bV@)9L?etT@GcCYA#a&S4x(mtuVpe% zg9#;DficT*^q^4Ui5M3+pZP`}5bFTDFKtq+UTZ5PZq*Iu!;QzwH6Gk+$_K}+=7p6q zwdm~=TiQmgN9b5el{?(kemhd)No(O=)wvHOfZzKsxoH-F2P_qtoz;oJy#6~bmoT?u z@toMLk}&s=MAd(!#OsMhLuR2eidW2cKIXfiTxs1$8qDP1jnbyf%uUs;oY=(WHcYWn zV%qpQ(?>N=Wp^1V&$?lmhLENn*d}2r%a#TvgC5L2!qe`k!02=JHqzF|k9g}8i3(~^; zSCDDO9%-}B5aL3}Hi96g^bE!|7R0s3Tbt3vnbJ`WoY95h&{R!@#F^t_T^b11{!wNc zZDh7sfzrx%J9bY{yK>`Y@j#97r+e=N7KX<*gj3w4fl7xSwIG8JNC^p`>`jbS$)xP1 z6(u1zzb$~_b8Rn1H|eyRXmX?Ow{+fWL~=Vw86ygcJ#)=K&eKihfkao?AGS=Rg~;;0 zw5|(EAepsT5wWD}1b{6Kx2Dz5%&`qR89_H<1L`pN8U7K=Ax&?<{E_8&Uj1I zw-<?1PKXFe^;}yi#B-zKcj_S@YPNtlV3h7G9_Svx-SZQ71?$HrJ_yFqbSfq#gkI z9Nh&?yJ?J;mPVKr7I3Ah*`=Bt_=!kQTPT&M-_#$W%jxlG|EcviS8|-h<^6ih$-W+Q z{H((3#Hs#D=~w)<6?V)_Bk^RyA}4C2OlmU?&w+;lT>r?KHYRlEOtpm z5sP}P@(yQx6@4R7Lmgj`>-Y+Wtq7^Pb3Wfo0%%0^yyejqL&7!`g#_AlnS z7olVFw=e@D#X>4F)J}0AUh$acF&jdxqLMf&r2(|ef z@-}!w8E;1xNmRnfu*!Uuy@KI=w2VVLuYJJ3c$Y92inM~yxDO?B$^n#};d8}~&qO_B zok{45LtH6DItFM^{YWm41u#)02ksC^y`a<80s%|0Q_mD z0UYA2j~HNQ3HCsitPTasY+d@c-B;x#+`<78cD-n=jW)(=M()}x%MCWjeM1pCYlO=Cp4K5byRE;V9K@GFe@OWl6#gMW00(Or6VdM5>DUDRS=@N7K9` z*Oaaf7>NWJ^LyyfFJ14&}q+fqmjzLp@ngQo_ zQ+}?RUuRoQaSA!cymdTVTOgS5h9H-ZHNJ?E@aF2#YUu?JW~}lVJ0dX;CeuZ`FKmEc z8zyRRR*!Kkr;$i2Pj15FF^KQ-cYkn_Toy}?5!<_*{Gc?f+$C2T_C4&Nmde>*^Hga8 z;K}VJv;mHt--(isni{k1=$ccPREv|bj6ZX4U5vTMMp21n;NwN1sn`x^cyeZ75=gEb zR`{$CjWEqTE3c(sOgh)!r-%Y=;vn^HopLSLzzhBCgRqj<({N?(+Q}z{x{y6#?hMD+Cc5jg+vLqN z@6SW&LG8_N!WcPvNwY4w^5G{F0!0g>iL|{roUTb8}B4JKmK_a&%B8W1Qid~ z`!mu#!SJd&zKRO;@H8cVZ5^o$AMelAgn07$uIv&Z5CQxBojOnp!6ak#<-!2d1ducK zK|<71SHtzqa^#7j4`lxgy8zF;InNi-g3|tN=b5&e-6DYXRA8m+!rfzH%qrW(b*2&B zIcx9y4ltXT-QfDt4-TvO~J)5(BmC|$y={A%1;t!|(65PBVx`N7; zcfIUj#5cweAnHSBTB&?8_X3*^{IY<#C;>0N7Umnv#C_=RU0R$IKZV1%9WsEe2Nrs( zDi&c5dShSu^%ITndfE8t27o>W@M?9htiRd#nRS4To279C zxyD{Ou$Q13k;T+g`d2v&{kjzp@zz+geftYfpt)<+#Nnn;z|WU)#?7eiIT5r5MBQ6W z?+59`VqrE@?a4B4^M6Y5UoB&H({8hW0Ry4$iSVzO=nwQ%XU``xY+KS)XPyd6ml?Ij ztp9Pa*D?PurzrSW&i``KR#>XZ`1<>Z0Nue;oy99GF{RfUvYOgzQzwFpL;WoL=OOv~ zJQHCR6SJ9~&TjuiqW8o*yynZYLC8yiL#@}Nir*T4cQ^|*!EZ6tGo2470uZ8HVmMGj zl7=>7F1?T66nA;wV?S$r@k@YHEm$pHAN$$_n8&QwTxDz}M9*vECCmkLr7c$SU(}RLNDp?*3Et#376@B~65zzV zw!hcezqO84W!Ym;yhKFE)OI@0X$Fx{Ig*h6djL(KdV3?RUMdY|p?zsMcK;)AMlJs} zQK2GnL6}-@{_uRb|L!NGZy@;I^;XyUaSL_n(A60}tFDt%MF5)%#j6rcu3Krl_Od(b ze5b3Sc9wKfAdVV*??bYmrve6N!eY5hPv!Y!|e<>ClSqssrPLDH@tl|J`r2Jgzqp$Gr=t0 zSe*EH8(O<+BPw)B=0vE3*Y=GI`iGcp${7Uh?u0lCC^2BkR7qmr#SXZr@izB(Rf;%v zvZBl)28*rbR=MO=lr<+d0!GlnU@?9Vc>#jaP~c8;5?xF!gW`AeH&o#*K97?rji6a-l| zDVnGDx_X(Rw@_wL7D%g@aC3-pQdmyq+d_)T(eLkMG2OQ60^C9y7fJ(syqK&%Yp5u` zt2qp1iY0dgyQgGJ^!~e{{6A&ObFy*&pS2;svV3bOTb$Q7ji<*bf@l*pC9%Lod&V0E zD;Nk+wwnHfk~_xeI0wDGZDB0`xPI`*n|P9hOQ>V4*gUpKs*G2kpP%RcVe^nnPIUdG z=oE-BwA(kdYV63<$2v%E8TqAi-t~T+8`r(|;ZvAUztnnr#0}hOLm_rN?g{+d_mmcX zIv!f(?k?ON`fSW9uDq7fn7erBVfuDWdTiMYTv+3>k5G*Nu0Jj<17Oo~>Lp@0 zxCAuqYs9IP&7j&i*v%UCa9*xHwm5EFi*kw>u@YVewiZ_hyJ;Z16paqO#rKm~Rxxr_cM2kc=qA&+nXtA**HqQ0ZrLZVB7CQfmqHn~FQPunw)T+(;{V~mk zq=XW(4nxp!3Qt-PjZ@#fugONg493h?4#sTtKZjGV$LByt#Yd|9stpg%jt>Wp@;yYE zP$4m^Do;{ft(z;6Z611U7R_(`gl+yR(q12%;SSwSNrp%bmMl|2od3H=QB)6$c*d{3rLRn~Hffmod894-xujYUH#AtYJ}Mf(UOQ|$P0i7(ik z&iv~i)6w6axsYpeXxAUQHwS(1lU)lo4xfHR84IV|7ity9Id7qw;U}+t{?;Vkv{lAD z%_^8a#1J^`RTFao4$aZUTt^I}+eM|QeB9^CytbjE-d1Jw66Awif`A>4FfASjzJ(vs z9Ckm_e^KGj#+h;}BK1|xa@5)2EaaJUXn9af=-8EoH|R|?mmVM+uzTcs^9)}>PvmpN zJv%8CF89lBbO+IerLCz`dwgM z!DPc*=mGAK*&Q7^s|d=|<4h&zpqgW|)sp!szng?V@>&!1! z|HgGlM>XJkR!Zy`X_EknyE)`M4vjnOJ)WPSH(n(w<5CV|p%{t8Fg+fI_&Zfze2u*| zHJOirGtFXAD|URO2hikEOUd}93@e&N(R__pfT8ovgjR>U2OytnV`72DmEbxZR$MZb z?n=l_14Q`K`x`e$3{OL%)mZ-L9vo@$k{KII@!xlt38vbS0_0Ox0IwDs(j#{zYZ67@ z69!lTr>m?TOX|8S1GqRRWL180q#Jq$^V% z6=Wes9sZBmKU}}^fjQn{S!9F~t%TCV4zx{dA70JE5Gfe<9cUtodIOuxO?V1K0Tw|3 z+tGj&Fxz#Hq|7i3;7ylnkAmDzF;s2TkBpl}{KoJ3Q|b???l=k%1^PA+S`ks&)GYH@ z-iv;5tP}@p9VuW%nY7-%5Hy?>7tOG(T8TU77$&=GC6e+m>0)ydvrj`$7%ny%O2X65 zv_IKa+2hNpmtNG`AFsV3nGA04=4NWv-=3lN2xfG*mfyhdI^ z0@%Te?CNgZ_zA*rbLUZy<;ugxiXu%R2X1z zJwOWUxOqBsAaxPU9fdZ^%tgAQUQoRZOeiTv_h*Y?Z~Ly-ENzYdko@ygnSRS_Ouud< z<0#4uly2FxdKNG+cuYbc#wV?J?cv&nnU(!3C;0tt2lq%i=jVN*h*sdPjNs%KnuR3~ z?OsOs73xONVrz`vmi=~BvIp?HH8zl zCGMQFTJ;8WwX?oBQjnQioPP+V59jyj{QS1EVk^YU@~oE_^?B!|p~l}{b_exg{IfUe zyzB;JdJk<2mkO)r^X$Cl!;s)Vm@{TR~mrM@3O;;B%)-u}a!u8LHiI;2?XT!@}u zy$slLGN`cISGE#}Qw6E==weX!`AR7ca6BMaluN=znM-0{jth+08kIERkl-gZ zeh+p%X;H?bHENHoo`j5RVW+8~9*h?$evpp*$_Pwt`BwHrJxfrIeZ($^>m$T^=tC>X z;lY}E{fSaZ`6esFsO8ev=Wp8d-B0R?{l~05Y-t`wMlR9UZF4T ztQ#fnAVrv=<_tf@7_c3dOE>XkJDqDc$SW~!u)6eY`>)v5V5W9kIqkXKtTL~!takIV zg^NWx(~n*4|BQyYcG0d9Nu_`!J1*6)!C-SuG!|#4gd7-U7qLG!Q}D5}goh~MvOa^$ z0?NS7epXv>hm1T0OeP@(o}|C~d&Ul%0NHNpOaFu$F4^b$+9@WBm+AgIKeIj?r}jt- zbu5%)#4ewE38HHf%9EQ9*C_kXs$ia+ef;100b3)OE4dU#p`uYNVwIoK{F-rivo4ID zy)I&&6_P2djnQ=LXxNCY6AXh(51mT`BUaZ_i6y%X%-%ze^73);X+okYC0E&WnnWta znMi8OrJT4{z(Tomw!B!nrZJOEZrysdi*&VHPFBc>*R)t#PGK{-36%7i(YX@q2~P#< z(o|sU_E_Va!WhDOK?$&Jo`1}P|K7+6VW531d4o)j+3NDQI_-w>0Q&yaC3R$dN&~Qs z>44RuBAbOu9(mA5hAD0&fR(_amGFH*($kv!TUmC?k|poT5DpW;;48qd%tChcEWyB*`#B+yI5H= zBa?+Gfc|DKZ{oWRhQ#PZc-k2jR$RBwmx%^mFoe@EH{C1)T~IH%trzQY7ejs;j<0Pc zF=W8-L6kYA-$FH3Lez+|Qo-E9z(K4Qw|a9OF+YfKAT<4G)tRG2B3CH7Jc3+g`aY5s znj+;}uMVBlkAQrSloBk>6MZ&1psuI1w8I8jD{t-IfYpdpzQEtEhC9&&f)Euu>U9q* zXUlZwPLj&bBL(rTYK!XAGj9!SKH#u9o-4d z&jWg-UG4BHQu@I8OVa9x8*tWp!oM-fPqU!ig5ZLqGT z%ws|}K4LLLLx`K(c$6P_dC+@`A4`EZK5{bef?J$Vj*WsfZAf;F|0%pzPjeVsw+l8^ z9$4mP;rOZ?NVtw3^q_UI&)QSD>kCX39qr>+qJ~<@8cxf?v(Uu_q?;ciHx(YPx_Ei6 zlfc|R;v=a&X2jZ>gxE$VC9Ww^dD{C5$%5c5UGmX)WHXJHk_^(+s9^cm6`MC2{bt(O z!$&?qb`}5}m_hR4yP$d`=Rrct8q1)SGao6oLvZq)vd3g1eD-r8&ceU9UAXqyX>otw zBn?N)h^$7^7}uxGVnVBrsGdj^-6@2w*T-=KwkukO;8P0R1yawF=*HA@Km-S_u1OZ4 z$TcWwLGEK|>Qhd+!c*Tm^9JewnT^}O`6Yz|tvweFXeMcuP+R_55NAU4*2%;_C?_^z zbmI7Sk!ss3p{6+LttGzfOJDZN?LcW{Ch0-98iq;OO!1Y7Qs#I8S_^H

;mN&f`Z}^_qjv~#@J<6U4n#&C0|1y0l4ALU!@)_Kq<>dj-kn_1}^XpsERt8JI zC<)dbdz2GqgQ;m?Z3mPhm$zspkKU1{X&pt&hortnW?#hR8IIVFB5OSFkv0d`jkZm* zLC%K5siwh!W?Sayl*MYnK;>(O9Ah=W_7=utP8!2NC0GMSE5x)~Q@qX?jh3DMAiMZh zJsUP%8gF$%+qlQ?jh~xBQq0Oa({Fb;hN7QtRf7CFO072$`z7?7LFkViP;u+GiThU< zZL&xg0ZF3G8PtoFluB|g{26Oa=ic>zB+w6W>Vc6gqqQWHG(9R5{&U5_jXOWJcJ>Hd zaKQGRj;ZeAxPq37ZV8Whe8UpEjD4zLVa9DR?meJp{HfJ@KBfrt>GLKi=q9ndI3|l% zn!uB4tHdT`EJu*snooP(D=i(U-E0=4%DQXV?2`KPgkgfD;795n)^_>!E_;otjK!(N z3c^TCK*g&VTaTK#sPl_n;7MZ1MJw^ zlsJE{H88&7hgM4aaHGut<`n;Mo?m7g9XOP)@?$dyVM5EeiqvUgk^5F#?PL7VsSEbAfN4Hrk>=~}bs5eyxpkT~1y2%uKzy7@ zh4N4=3vgZA$|0bj=UTJZ)Y4o%8e<8pUS@#JT>LEQ|wt! zt_nZ4fD3<)QPss8w77(9oz7~}y}Cg3j6FiA%@n#oY{~PAUdbN$8{_rZ@`@rDj=_U5 z??VOs#AsXJCH*pjo7BKRS}NcguYE%VuY^n-Y0 z%bYw>$~*-IB)ye`^DtJ~1kX};l>m$dYY-(AVY)KG&Sp}n)Xq`U9&8{?B6_gVB@ifr za?@Q_Q_bR+8o!zpOOvuyY7iuA>)L2RsFuFGTbvYT(H6#XN1MD^nUW7`V!};!1IWf6 zO^Qu+PE|H5CkC%iAUeCE5h2GA) zKknW>Cco&VyTk!rA49wCmvJrK{%!tQM-yI;Z5d~3fj zr-_a2I?ZIYd%H?o=wY;2!5Y|{6v^PENl9HASTHjBCv2NaTdmhfkgwxqt=g8uyk#hO zL?+U~c#JY2A6FW8mV2Ec_hKLOR7?1|v}xJLgYu{AbjiBtw#~F(xD>*!vchB;VyE~s zkUh$GsuO%`eci=o7g%YP75|MLpV0Ip5GEueNll)Vkw08d#}L)xTsPSx03!JEkgiZqGm_Sr5zqU3tOVp?4z4&#eQvT z4y*g~A)GW%fNNVWpzr#ibk*3wD@hzqI))%F_tWjQPnhrv=G;$JieflEm~}K8qW&so zHXZy0aJGaCy}j+8M{kyV0i22BG|f&bbc!yo+gNcqqd~R=TbB;quX**wOYC)LjDces4 zZs;`E!8q*utM<_8XX}8U6kRdFw%2>jP#Wo82~Vy8M3V1yY!{8CJSkQ^_U0I3lw~QF z?a3u5S~saNNk8Ap+d1d=ot~@xLxCXuyS0C=_NgE}V8;hFkt#Sq?AX0CFOT_&A;V_u zUTDO##?kTz-xkC*4|*dk=Z3lPr5~VaA}V_;OdLH*UK?A)+VNtwq&d1Y zB#cC~{IWMP78wrgUJ`4x7#=R!bxrDeL)x;j%D;mc$^ov;~9gpnD8)cXwt|K%MRJf?Qs4XaYb$E)PBDpdW^&IQfLiQ?jXk3qF=_`=Imeet7^zDm#3XT_~eNYiptlF+j{}rl8%=7Z|LMqVi^CVLs zfWsN~fl_zCqUy6|S%1?hmm#C8x`K_PQaD;bA^}Tx7?4aHtA1w~+5Hg{&qfsRTxRGA zO()^Ig@F@IX6q0a1a~^-rQjR?2`1LoXF1mnWd{t~&gnx17q?CM=BkNsCI60Zq@8}gB>E|{|BrSU6vtIMZe3r^ zRyiB5T1Pu0<2wtyZf`(2g-fNZV(L?HkTH2+0tr-MyM);hE?C?ywD5k`DouHRA@pMx zZVOF(uuVcsz?-v*&9#s7hrV+=mFZ<0nxSQ&+wl%@Pi`OqDV}iTv|2nhTpdt^Q9D+4 zM^~?A0-C-ir;|q6=&GS|##7noyMH}4Z>3j+i?C869M|9|S*7pUA+clf$%ypD{gbso zDU??B4%sYE%qF`^E&+2?{=QyD5kA z2o!lCH3Z93f-ezmNNgQA6)iU9^O!n`YKTEVv7v3z9=3)4fxUJMag zQv<8(f}=Vu$?cqS!4xFC3`XXHv9O4)YSKvQa2Zu^LbnMGMxE(gdCvf??fVwCs;xhm zxVRiPgHxHINMpvzp8^E2liYAG851~0LNLh$U6BZG1i1W`a*`q{+`l1u*k9E5mU1}@ zXp~WFfleUmJzGG>a6CIEf_(sdo?6A(ZK07eW;i{rNgRp3wtP^NLskBU5(4m`b3e${ zCbBabOzU7+2{8AHn+Gzy2|{=M5BFV-&M2ct@09e?C!Q3LObOt?2T!+A*sFpk(T0l5 z+6S-Zbas|Ps61Tawv9XT!7rY;0GCSq)++#I5_P3}C=cOL_V5^vi;Zq0DZKQOY)m^(p-}V{*|uqhu^~sMH|! zo`tEyz0EMlhheF|@NDN{^*&d-BoTf(U1I;*<=84(Jnb3h;NmlWWZ5L{-t{y4@*sRc zl|MJT^UdvS{xp6`u0$F{F>B9D5nDwhk^x;9VqH7w+;`Zz?Yefw>+nRt?H7kHG=%&q zyc@Q;sl)^%qBb|mCy@^QV!l^pn;J#8=Emfa!em?@U+1BLrsQMA&@64&RJ7nN%kt^4 zbAH=`&hsD|BJzs!!Sx>AO12ek4y|B?s z#X@%I9_Jrp0&hcdu#b`=hp2R{Mpi?~xLTlFrqWQy+@!#`1zto48~x4k#NNZqxQPFH zD&wm~`nF@Nhl3fK3(AHm~^kw47`5* zeA~_Ke!GdT*?hb2{(QQ5QU1JL{QAm!dJGikdO3MISk-P}ru9d6-?`5<&RSL#BrFC{c-P-LdpQK?w-gBO`w8ccEx7ET$R%V|D>>2*5TZxaLq`R`Qm!p(M(nUT4 zgOP-%kfKT`=P>gSmeNfCr#r#cKvL)m%`PGjE4Xt~sWMYnWD$T*n&TU14x_U^%F~k) z>PhfKRgi}Y)04r`_nt$xvW+3hyRm{`vB#SC+rh8v$?WgBc@Qe2b$FIw)o-I`E&uK4 zUbv0Wg-qcf?pcLA%93Re;xbLuO%jlGK|$C*RIw;~j9rc>-sI@;;ZJb>@Z3M`U`!V4 zVH?@tz_D_^`n_n~+t!{3eV!?_VUNtTwuto^e6~Yz1`R@$k-r72+*yQigY2+Jy_Nx_G;aw(&_a*hwdL z)5E#+W5@CUHI3p1fvutraU5@dwwqCvWWnRNO@hfQ$jK}6$=VgSo0%Q?oNdG$)BDl` z&Vdu}j$0(-E2IkMhC^Jfn$m1bo#%X?oNYdAvJ}gwILo!y0d}U`0e1b!XiI~2tjR0r zNxLdTp_9FOKkwoA&P5d2uPzGIgXA68NWxeDwWr`&tpYExQ~t@?7lm7aK5T(LZ2|OK z@=37vLtK-10m!=?OS2q-U(}QAFBZ#^0ecyp$vBRMN59dak~Cty zldwW->aPt&1cle=oMqLvi)D{O{0tiV)KbX~v8uM;6%XnwX4Hah?bw8PrSMe^rD1r2 z<-w7Zf~6hb?#JPILRrA+vup|r^R2VBI;v=e;p<|x)o5(-jm_(bSuh!sot3i4+Ox+w zZ2UnkRH{7w8uhP*)D+zUfN%ZVon82Uc$a4qswYYgiYj&88Y(W)#{+bcgeU*Va5Uu9qsdV>ycDSEqM z&IR;iSuOQj;V_z^xe%h`c`w)9bTX@5pPFP#Hb9t4w*b z!{?<$psH7TZ&3O4!JvRQuodaa8aeEbVTbeUd`8Di-Pe%n zmK#-w?$uQPn2A1%MOaziedt?@GDU3vJ`$ymvp~zA!>)T-{OsT6bx=)om|dUlG34f^ zQ}Dlp|BZxQ2hy3&`7Qh#fF~E;ukdc&y;gjS;OJmDx1Sqx^*y|e3FyV2u7Ik+Ea1D1 zu_Eqik^941E%OzrwUIwow<$Ytt-P2x+l-zF@b0Vq)8f3DiIvlEIjiTd5ctqB370zu z{ddR}{leszCyvE=pmG?{M*i8+G(Gjb#xcDlBA%tVC6riM@c}){*q*vslw&dBkxc~Q z{&EDOs_jm8pIdQi|MPS;Z+5_y+;5{e@I4R|JO*bdzcGn`9)CH;*K*|??j`Jp4`Dtw zEY#hf!Ggp*G06A%7 zcd=|L+}^(wp44_GQfpD_!`a?nCR4v-`Jc1+&%A`db^U8mxUoFR#JZrSF$YfvO;b3Ls{H^`2h2Uk~RldWlsR@{O zyf$MH8n26eu&+#jk8-mM6PmErp|S20fg(`uVLS_{b%ZcCu3&rw=7KetOtw&VJlVq= z2VS;Nj%Q;m(e}8E4CDzK zPfWS~XLTs=JxBBv^Vb7C%z6~(|L4d4zy01bMHS`aNECBTrap%A&O=03F@H6CaEhYf zkkR1(Zl*`DU&L6crfD=(wW8NXzYBt=R_WwhHJkF7%(J&tk+)B6`bwr;VuEWlM73(C zn(~m$qY^e(VYWF8JC730vYh$|K+^lyj>Buzhex)tZ;R?Ri=spWC3xRD~%6eUJ(0v58Yw}+YHZa+??bFwP?e_ci4G+kMKnbUG82v+S=1hDMAkCOL+X5IusEB zpeAskK&tnShrbptQHC#W_Dp7-1fAz+>@EvGi`|oQ$cQF!NYhdsEHO@`e9KCHT)E`# z!}o}GlqPsAF&b%G@a{Nn?!WNL%wCBN=O6qgP5WE7r@#?+_^;fvh-l1$3R0HN;9k8M zSK>6zCoV|F7|9<=N{4xm!s*|^j}=jk)_3pWRztj@( z?Tz$y73sYoXez}2tEfide4du&uMH7D#=szK;&VDcqwDZQvm1iMsCx>hq3K``4wI5( z>)!j)@z+58RFbiN78Q@1G<8a2mF+*vcF9Qv=#+MM>DPb|R_ZCj{N&YavFSewI2pTVY5X;Pm!v{T2SNt3Er+85yI{RmMgZ2%UCopMWn#R zd2%~QL{swMZ%8DaDVF4NDYUl_Fk^SsQ|fzaE^8$7GLNO^^xqLZGm3*%JGYil^GYi= zj*q(;t`b8VRw1r)TvuN~{GlvK9b=PJc0OdF#ju^72lJ0X9)42G`oe~tj^$=|+XLu@ z_ly=D>Erj&HjP`6Q=bWSOYC>m#W({c_oh@3n$v!SK?ZtR6VT+r?f!}}I{UKW-)jye z@RUax2kzDu>qNGa!_z$_KGKf{E_^tFRmL%B$x>j!Js)Ktyj8kqs7HFceOS8ZbxOJ? zd`Wt$eM`Fb^(Y*oc<4%c>h+yyZ64+;F9j}kjUC6CX+sD4Va=T#>nWLTa1_ivU0QURe* zafpo}aS5J4PvYVc`0&!66RA(Fp9fE2zBrqs0=mk{g&{ zI=uL;A-Q4yt%=E4983yXth|HTWs_|+cHiAqeBK2CJTg=LT)WIvS^%2 zrV5xrTz*7u*o4&_pA~=TE&qrjlQFf#Talil?Zihda9?a>hHfg=ze;?0705nje*QLh zr)-=#9++3j7j(8~mzh7;L(zjTRRN8ax6Uqx{>igJmlJ^I%3W8VCZd_;pi6~ppicKG zlI{H@2*zLe;%uJJ-*TCrhlTh`HPjUwkq2O2)zc5mLoo%k>ox8Yto|c&eq)QQhy@#+ z{{1=^G4Rudpi#5uY4pUV{{XLv$H}&Px>$D9Yd&(0#|ypty2*OfYrX6%KCSq^V9cXl zmotDne-wK0k9N^Cqe^e+AjaoDIO|>C^Vn~IPwP-~0p5|wim>^1VS2vC_f2Z@^O%ed zfi+HZ=rzISO!hO+FnF@B_RyDI*w6SiNtP2Bp`04RxK{69^>L;s`+V^=6Ig6L=miro zXSB;Ep($G`y5zG3Yt&+i%9f>(ZT8^~97NHvo?G#FD4|#vAzEL~N?ZX98BtRQRY~@_ z4?-NJ6B?JY1R=vDsN+%IpP$7B3Qu}J`5id@H zgwAivCqi%ok103Tpw3bEqA4MdDS}C9v=sPdO2UAqrw(qa7_of~w z3wfRFY<}&PS!g&${>Z!3G{aMQG+I7js`N40X5Os%k8@FCd@ODl1pmug={;+T2c&ut zWf444J97-qKFK%8=|5uNf!Btcxz7>CZG+VZr_!FOFBsh3(jXQ*hp7|Cck9ZDr{{cr$ApWIkr zJ-y5hC!p{TSo6$DG^`sweVuPMuiJl}lDj~L))Om{Rah)E_#G!8xaGP*^EBw%JoK03 zx3PTDHhG(Wrz}lx6c8Z3sLU0ghybg%=a*G zRrlHDse`|1xcL;Z0YQt2kHN8K;FZH$!epYKec8twV_lro8?M=C#^95wqAXJ}&`P*p zTkV+nLdF`ILekjq$$O*}h57f*i7svT(E`=rT-Oh!`ast1EF9av%K^9u$EUbrQ3C-o zoBsCQM$I2DaW!e?OuM?<3an2e5DUa+E<)2N%!&@Pv)XbkvZshmOaZ|Q{+&4MR=cmn z8%i;kcVb51?~sLtb=~j#6GJ`+vcq!5^`E3G%UxQ_C9SBhKz)Z~I|!s_a=i*+4hX7prheKu)wLPZd1 zF_{iR@x5RF6evec;r0W~CQfxLF;U*devG%&*`9$C?5y;$nxC0OX!PAMAg!c)4Rc>j zpiByU{~4lS{tQ~e7>_6c;5J1aJbms0)~_Om{T*@~!fdXK5cQV1pa=5pdjd9&Sv0Ij zL_H-q=@tn||HcW}wT`z)0_~TavjPDgqB+|wSpGn`va?^GVOQGoev%)r`E~X6JXnPz z=dG)M&Ea>XdoUA(dDsia9=#UT=MAMxHN|!)u+k+n3v2L7T>C@=|I5<8@e5Zlo`bdK zX9yiLhShNhyQ=m^T2ZHqJKEo%7YLSx?}D~iJqF^o?N|`ioCjhEh?S*N+!NnGxz*3D z%V0fQz6^GZVCF&ZiH7h?#f5gig4AU>Yday;Hamf)LR5WrW1=|I|qE+Nine2a4_W` z;$GU><4dbD$4*!Y4EhN;k;^9jnWmMU{p*?3G0icNh{`un>io&|ctEY7_{9kq%DByF z(>^$#Rs55fDNgRLwb;TTthmVAxyP1xY!NPOc#ypO=ul!AkU8$g`}}k4+f{ zMHCQHm7VzaTlnO*Tjv}}vrls>{>tb!!~DExpydc>vBwj^3X6 zgLA_(aP3ldj3UdiBO4` z)F!}I8$7h(en)My2oq#r*bcWq?ug}blxBUkeJAv+)+~GbVI5+cRshi&U+qMOlrQCz zscx#WT83iUxcqQpeL{zfr(q-hzZiSRC{2QHOZX|9UAAr8w%ujh)n(hZx@_B3UAAr8 z*3_N(zP0AAd4Jp=k$LiDMn>k!9T6F^PV9}9396)xe+!wYUcTRLFSCj!L9A*~pq3d% zc5*SBHnBLbQuHm$I+_%A%^tn3&HQ=LT}E}!AamU!m>8cHG?F8c zHvUGJV5Z#UZrISwsXBl^4!6onDSoov93D%QThAtk$W6&RXb$olBKV_ymaLc*xetZ9! zWM&ZM{=3DoJFkfaO7m%+Mf6ClSf|cy{1WE%vcz~(HCp@G^M2RHewb91h zO62BVEa&&f$AB07r8mp3&m}wjSKiECV-`ao4J%c*z-26cQDs{O9JiGtdNSxAhB1uy z*5uzBVp1X`vPM<1cVZ4K(nBFExqK5)+b76269^v77at|=EbMw0ED5{_1590~13 zD3YJ-AqREHf*Cq1#wr10v6;22$S#H}rY_KnrM@{hfe48>%Gt(CVOe*{3PX6P0q1JJ z>?r8YD#Yp{V-DolEzb5ozCvHGJL#VVJI-@3$eR`=s~*`0zJ!a(qAo2Q)fzgFD9@B-Z7>$eykACR z3!bKxEn(7E&-)FCn>!^JYw2%l^2{LI3?hcBxMmgAIA-E!z!k^X zFD*Tlh6Ryn8NzfZqB3OVs7!QQDbp3?+ZN+`t=7IdIWa21h2fRIkKu=&V7x~^5-oZ9|HMV`2q~{aKv+O6aMQ#U( z*TJRfEMg&_*~V;u{P=zs0m@HNT} z6aqU|2R9TByT@nmCZ^}v^M~B{uV*|j+Pz$tG>G@TT$t^(KgUjoTLNnI%#HO-r}A~C z+u!v`ZX4Njx4*V!ZhyZLE$1~>VO8j?8K?vw<$lly|ARimAM_RaZgGp^tGk<#$t#+! zeDs;Gd>beZmCDFY=1K&$olV!_qYXjmWhNDN)2VfBMf9s8n0b;Bw&>_!o9L?FD7Bs; zEoPD0fe2Ss($O9D?^-juXH~}GHBUph9zPo1GeE3>_=J{j4 ztb#MKnRrw#^wRWrVXa%aFFfNkxhayVb)fY4F4}u-l0KiMst&tt?s1Ir^PQ9Kc{25OTzG5iJgUZKL!0; zwtFnfs@`=Nd&R>8=?osGOf9*9+tGd^JM=(^1={o1i3-O18L-m7~=L*pAt19 z^25O|*?4|Qqn{bE;-zx%AZxJfJNv(yV_; zJ^BR(&a|uTm*vp6;^N-B0QZimE z@ObZj_XY-Pus%q2Ya9j+rPBhr8wm>)sFbGt>;(Qu>L1Zk|47<4BK?~-xS4kx=xS#( z7~U!mi0wcG#hs)dSzfr=!x)e7137hpb$~J*DoE64C0&ezG^U6w#kgR)_(g&4-zUF- zFcgE@(O6)CJ@=fe9)M>QINHC%Ln4OdES!bO7^rELia zlSBuJ9Ho^UiR)#6h5A8)Htt)u-|MP{-D9VfvVTR&Y|x-O4-Pt%%`5exh?+A60fSMz zM)5wmJh#>!G&CQGlDv&5$?5$TGk|W=9ZN6T7;e`bTQ#z$z4Mde6{fFFvbiYA0n_ZA zGNif`c|nxS0%OKD+6L3h1BZ7}U=uIO?jlKbXM!1f77BmwO!YY;7&4|(deelVNp&uJ zXlPk-t*W?!txk~@tl&06U`i<(SFqQaf$;fpTgJHf=TA5fIDs^m&PUR}CC0Z&j&m&_hkCSnV;NLw6d zsp%-;DNnVCff%ga>EoF}%iAF3v6 zQl^+Qsij)*U|_MR(vwlx@TJdNB`K!LmRv0f8doez^H^gsHa1a6hGemE0i`cJPcrdj znP4#np-tI~)YltUk@Brd`<3ZxhmI_~LL4sB>Q01rPNkRx7rqh|DnDWNmnecIA33}J zBizHKIIO@%EPUGiF8p0qendJ=NH%uvPN}Pv>L%q`k(89)WK0Gx`Z1?7Hy!d-vVruj z%-H3?XOd@BF%wrlmT%wBO_M3P$ykbXZ^y-o8thKD?GxH0fGp`>`sejySP=|GuGdxmi8PguGepGoyM#75zS$SUgw>|Cyj!6PydK7%#YSNIR}%jp%4oh{NN%!B zx3#~Eo~TsKg^&+GK`%$LGg|;?xMwyK6#!|a4VfzleFs*wdu2b%R4rW>Ggi3so6LO> zE}klP3H^cj4015=eb~(DD#?ph(YvW$Lu(2VHG24;NOi>Y58jzAMZSE0!O4C$TE!0l ztkI!BfvG`l1|ye6-6GzE0HuVI} zp3*ip2T-f6$Oi#{4W zC0;>9Y}+m-`HDY)w*S9!iI8-ke(ssTavbFAiU8&7_Z-AOquq~hC#wC+Tk<6~S3(;P z`KzKxS`hYmY{A7P=OH6xld+`+SLl?#LA4wS;grhC}AW9NMN7|P?Y zj&HbRp^gtfSIs&0M+#yNoK3hDN9^uMVsi;P;K{GIIM!sa6Tf0I7emPCV#Q)3W|4{fzd8#YT5MTk?dP4Ywc}bFZ3e6jhH6M+(ZtiF4Xqq1``BKaDg2#|(#;)y z=DCKn5)?j|T4<~OwOI&CQ}@}f&CO{+*6TKPrbHF{)7CTH=Wb1`oN|$ZdF0d&FV){gxj4+l zAIHmVMZBja?@Dlu1(ApzPRMSIRkJXT^|SboEw8IkHzX>RLJ%A(>M<_L{4f}y&WpM5 z7B-HH+pJYhMO_GF`R3xn5q@1sb%JxP zx24uZOWjyzA|>z4heqw*-^Va~%_zE0DC9M-VFI|P`J6UnVIb61WMfW_Ohlqit zwQY*#+F2sT+j`2xIBN12NV_N*=dvW&(Yk-MbzLx^m*8M5UUEt{dntm-FMWQjZF+#_yl!F+dvaGfyl%twC ztV?Z&g%9=eiU>hjq`tJ}AzH>xHj{Dk9qmYy3pnZhJPDU)h+;n5P*zzslVejiHq<&r zdbKK!*f|-iiSI9Z2x2aTBRT8#iOZFL^?^*N4C4AML-@ocY{myOpz{%P+?+!WtyVh z6|tbi(_@2LDI9+_J5tIXxXySS6cw5&KM zB33{bANo6G-$3P(Y3y^RJ1SFx?bGvzB-MT>)SkrGE7zVRFpK(!uRN4k=Vs^ohL%v0 z(l&(Tg+(YK;hmO*axmPQdzP4iqoNh5ERUDNR7Zc=8LC!W0{8|i0niabQuGoU2YSLv z0^|xM30Tw-UfocmG`I{a3j|?fpISfy&eXO(VDg`u~5#c+io=JeHXv6iHKMN0%Uq!orm5pEVUN@hN=SDPa+N_s{~t_jP`;Ta}8p(Hkj zrWL}~DEu0&g8N2#Dy@N&pXcDQo+rM|YTE6%%VDsX9|xNYWXm$xf6&UbbyBZn`?MlJ zwH|;YmQYu<88GPRrgXus_J$c*4+B7JOJe5>NoMjkA*qlw^Yqc7t+DV}VCAg14Ea3q z7)e^Czb?F)Pgof-hBPZOr)GLZJ;=tKVax2`l&mbIb<|O^v=}E&evL2m^JJIBx{D~Y zJY^Rr92u_*7tY}kCqE&UHG2O4R$7@B=p2g@<(?o?S=#Knix~V*2}ri9FJc|$KLJ^a zZ+nE;)9Ln62(n>ASv0o$8krdThM59JHaV6>Zu3z0z{T80^c*UT(|^y*;YS+Pcu^}_ z+E|!DoxDvMj!0G;C$ck;GS*p*eqX(Q3MDJOrRNwXFPE_Q9MYVe%RW7LFn=GmO)VDz z?RlbO1aQ5GG&tz#0@}NNUJ2k+5eMj!!nKpb+t2)4VHsWzZ9aqS7I52oRn)?* zW3O05+7R7*Iqox$@8z?lrO?N;I0cfNA46dq)s_UAOhDzI@#+^G`_a=y>I#P)Q^WN~ zUyfcTQ*;UH9DjWpLhOA$gY0a7{qd`_ZzG5twE7 zT|T$DPijP!7?D>a5Ny%*|F@KcDxuKQC=l>wM~cj&MitM{rVt(^IU_})v7$m`@JpB! znJw6ILC=>2xuytDoG3nbJw`+-+#}XFG}kZ6)4KQc5gKjpROWcVaCyko3;`}%J@?6qQZEVpzb!dYsi#R3&XK~UV!0@S;{M~35InB?OXMws#P`xc5CLr>h@jc` zR8C2#M^^Ixm!ldLe-*GZ?k^#*p9P|s>__{1N*K5+JCvqxR8r!DTTWg+)LNLRZf-}V_rqMK90j;=Uoip8pwkS9+=Y|-4Cj_1Q- zD3Nz&K006YjFp$xzu(^476?VI`pkktaso5)Qi^s!)>rUl>OgFc%m+RIqHtj!Xa(Fy znzQNh>spjl_Gt*`;@AaIU~EmY$3nlODa_XmtgNd)^w+S~JVTuvwX+28?^OObD|fo_ zf^a_YeMFG@#4zG@VxrJi)-;wHz}6#Ed+7Si-{SsqqH;F29yMu@D{F60;&2vXYP^*r z<)M|@+h4scO{ZNsv%={Rb*-#<1d#%tz-;htn%~@Cg(}nDvE_c%-q)lFcxzH?+HCctKk>6w^+o@Wt?d5z08Zh?yYk8&L zQ8&K@>rB&q*8={^#;dLx(agwUA}>&O5tOAnucHEMcevL+boo)q==c*XvAtDvn{J1R zZl8zU)xgkbju@CB-{?Vcw-t2jh3-^wKh9s-ba%N-9oPC|@S|AS-wSq`x^1~0<bf+kpysQZk?Il!3lc9YWCyRm^*n4_pl8TV1n zlO19obtNN0Ev!v}8JC#*Xni(FI>VBR`(Kt!C(_c7)hIWTdegR&2EBkQlHCy&`5zgJ zi_Ri7GAAw4w=$iW-x=6PLX6?(Wo+A5Et1AhyZ2v3Del6I@q~-MZMZ?d&7OdI1NN&9 zP>g&EFJ2%bF@JS&x%rMiwTQTGjT>szTk5JkCa7WKyQs#fS5CcQYqx@kl*Mc>zW~RU z)(4lq8*3}6cdTc( zn>5ev&Md~1`1%efWnNVHkVSnQVzN^zP-t#5PJ@9`CqJdLtSyHMrp+dt-_F0F7+~H} zK8$8KkZ}g;2Wsq(h2oJmYLa~IYiE_slblc>$1)Fd)%Kk`6dT1NmwWhe{A$rup#1Un zM8b?aQ#lj|B-a$u@*Bx6sYhMsPITfM|E~PX&3SI-}?fCaK-;n%rKyjTJLt zjkGga_DynhjqH^{jXabw?x89*k9bwUCWlLlGnk2z$!dzm+wZ>U8oI-OJsg=6wHLX_3 z2Gqu@km>>14^5Ak0Wu7l-*N)b9b$~>+$r;zFDt%aS4Q9~mO-2md?QLLKB{w2R=lD- zbo7mAg{m=kF4Es_h_1(yqFUcP^od>M1OwN;uErHR-i@c zdTHJ$N2gCpqK*wBJhP}l+x`w~KPY=-6n8c)&1)rS^>}ER+%0|QEHkBwuidY)GR8mD zr%aJ?p^yzB`6b4ArmKiI070;@xmqvnln-I$9=9wf!!yVV0PU}+Fa@8wAU_vtbyay& zDGR+QuTCkc4&uvp5Aq9`k^M`;_m$Fonw<~>M8mN+lQ~>Db`D%rw{&<%6mhf_Oml=) zD^C?2Q&KCB|Jz;?CH24x=K{rIZi7#ZZpT30y%UjM@?;Qc_&XJCDxXa-$=oJA2kBBN z?L@@6Q)bj{w>z^iG&fR~xKw^m{#i`nPb0VwRgV$PJDnqg~aDaxQyZ%Aaxw}=L>)FCtcAIFSHiLvA^VqN)UNL|fj#x2Wq4RSkW zz->2Wlslvv?LBFE;E{uj>LP2MR3-xRA-kTLn4xZb)#yjbYWAyU!}MwF_N|VBl$mc- zxKE!c22qrA)VFZzlG&?~n&!8uA*a_m2#cG(MeSka8fHYzNy;Z@efkB|6T3f{6S2hI zC?`J%+4KrTD5sl`_wzp2YmD!?kGu}KF5enHLkw{cG>7Zj?=bBWL{C{LzXGGvEnQ3U zuIQ(|x7mn@iWIe&28qs<-+0RIAoRY@cVxW>Ed8pS)dO62+cbg$`40F)zIWc;$$H-t zcf`4P_uuG6tpO;6CA|CSwc)w95JJ-0+<9{%`~1C6+Ynfu z?Efhgi|v2NJIl<-!3xdC2kqqSXkuUk{U_^E>-RJ+J5o1)Pk*Xk5chU-QK?cQTi4!S z#PD;fMzACz3WD4F*{H7b)#t1hNl^B%M%jjAO;4Vj>$(=?*q0Ik|GV=HpK<~B_x(#d zc3)zELKw=J{Er;fcg0=m`nIi3Jj)TTe2=LuRzvMePtRxjL};#0tM?OYD*hMVzc?-w z<8#5wcWjg(co@6J89Uo;uZ6uj+u&L0U?3GL=!6FQP~M#*ejOJ?t+HtB)HQPn8c&ET z7rpK_?Wv&t47OflbwG{7cleE+4*`OU5K2a>3?^Ga0ur25N@Rk zGWf7}=w;Bv9JlLp%cV=O=%0-h`#i6dt?aRAE0LKpRySfUtF=x4=2XEyetmE4O)wyH z470;I_z1$b_6ls!J!2VACGGi*@-{)xPE>sG6oQ{JtEgK5cWW zskH{54Ja@3?iD+N?U$mFlGLn$Usq~aniG4$eAES{_okm3m(dngzFfn;|h+P2g8V^kXi|shnss;{ywb`T?+rNN*$zh5|HXjI<$KMMM6apS>ZF)Zj;z z&be11^oA5b-0M0xD#A@jd3JHY7s61UyHkWPu)rtCXM(B1wsHXBl;6P4P|ALE&s$`W zmRO(^&I{tb)tva!`Lc^pXehe!c6MO{OR;XZ1@(jvMui}7p7SyY;uXqx7A6qESV~88 zeM@v5eY4a7ENxdC2D?)kMF;xIq?3357^zx?YUvtu6l1gbO0{UV51 z>XSJ}qA?nHIZLBGde(9Vs_ND(N^D|qh4vfGNg?Wl#QCCqCx@jtR^a(httftlR+fmL z0uLLzcx+1w$Y7bsyWH$eLomcpGDCMt^KSqnN)w&zGzK)bLaK$abWzBP;pVu;H6Q3( zL1wwq3)w<0A)Lwza$bZ8kcKbx6_5Q1+b(fR>!bWAqX;d*BuVDtxFjgs?t5*lG>bt* z${p+?Npze!eV+fA0A3jC4gHi;c4=j0qa7{9#p%ym1rk{hWxPDLM}>e2eMrz56C}GD zeFcUVl_A%Kc3eqr_HyHL@-vEB=^32Hr2WI&(@{haFLrI8aB?-{v}+Jr_U{tj+(M80 zwPV=H8u$HU2)z_HnsJ@#T zw~V$ju#WDGJ?Ts`HA1N7sH^GXffhFizU>N{e{xmgI9}P;%{lX9PuJ(|(`S`q(k6~* z4^Fi0p7qH_xIgU*Bn-G-1`$^Kj68y*Pi;)DeqY8VD(?(& z4)M^cHZwJM!sRrDIRy2U@l=2FG?!rZK;S%(5m4VNc>!Y9Inrcc1EM=^WVA5V{!2Er zp0$v>_*_spnf_=@tryr@Ce}t%+f2ZbnmQ>glfkfP55p;52s7@xMGeA|`h9NHn(J6*hzxZ_UNyO6zyX+9ly+UoEW1U1a0@g9$puo6tPj ze^?Oc18UJAz}f2JarrtmT+}5Gi!dw-NaaIr#KAvVThZS*a!acAq$M4>I`Bc z*gzSp3z-nM;E2#^Z3vl+-H%Hw0{WK?xE5;~xCegJw*Tw{e&bNTw?{1iyNpU2>!lV;`O)n|wI8@l ziDx0-$i$w7uPLf;TH^Hj8JRc2eLb&Z%SIe#^Q+?V1Ptu;Xg!}7%Lb`Xvnh;?bCy~L zA{)iPk;z~aG)WEQ9anLggX>FD6jr^l!jhkI4ox`5Hw2n)A=@Q$u*nD{UP*Y85_XiY zDv~ZU=WKYLC z(Z|SU=VqE(N*_Djp~MzQpO#>xzvVv&Z@~vol~fn&;^=VkKOV2ly_Q)N*X0yvPdvxa zW#=~U|9A|H;lW^>t_~tG;gfU4&R3LPEjD8&H|3Wh<2hPcd^{qJr1!_Gj);`6cGL2s z!|9@P>9AH7THU6jDj;r37J+2!wn3D2R#227M9vj<;ldB3Fs+fyPY=$V4O(Nwjt{vEax-qVm zqR;_;uoLgiYn8%>WfG14H`1Ep3r;1%^mf3RG*vM9SS)E+}vba&j4raY7zVC z8&A>eRp&$MS}8~q_bE${7aoOrJ(ni5D|%Vm24M~b7Th%#e*r{x?rh-H^ozl<8IEd$ zE*F2|k7u-CYWhL&*bM98QK=#moc^Wop4p{ayQ9&kSR6KM(tkA(oB?hHSB$9Xy?4C6 z13`x73Xj~z^jSF7`+A9T)SO*YJEM$nJVAbPeM!mkzL~EJ0XA6gT_6y`J5P`WXTQEO z#$0YFk#9!1)%UmKDG0CLJ%-n6>yvrRP@}J*_-w47)}bt)I~y zeO|x7_V3@1C|>xt&4zo;C{nXd!nifml^g>Mx9472+C@VgcVCf_JZP*@rWqpb#*HM; zaYTXQ7aloLf_QNqQT9~a-t^vdO^u>VkH)OMD9=*|hy*@w6Z!ryw0!$tv-REcY`@*?? zwhVgjsXo_}(>K;=WG^qA-ykl%1)rTf)Ims#0!~QkoKivDH^<|JOVswxZ=o-{k+JA2 z8T&Gy=$7n64eLXKX}^Z3t-TH~(ppB=8-TJ3MDf0CfX?#*w9U41$_<4uE{HVOoe1~oDl zH1uVY={=%`KSz_D>CD5r&)!G-GzH8~A0TuBQ!P(9AE3n!NPLcPA0nqFp?c=Xz<&rXnWf{GNLUG zRWwHxHncwtePvscE=*(~wRG^HDPKA(50~B+@@RK}+wnL$r5SqR`~6{I$9(3tp6bXB zszc1vK%)7dWYkA(|u6|tgZXkYDLzb{rgd`Rpqu>dR0ubTjQA*YR(J zf#$#48Iou!VL^8|(UjvP*`(-Vm`(b+YA0Rj7v%qr}@ zmg9$njKMHSk*u9Z@wYc9pQ6;lk-bej&1{QCr|q0y!tXw9p>=<}rGEaT<$F9CQiOW3 zio`u-Kqu&aO*74gKHL!AO+~7}5U3&xu%)E*BR!>Be4f2Rf!k)a-&x!b3)nC#4&6dN+v8HCK* zB3pWH!0-^(Uje_Y3@o2~P}n;Ut|^o}wrazAP=x;v5AT|Q|CAB5UjL9t^PGD{{%7J( zoBH~s3N~i_w@~1%)qQ8>JI1?D6i6%1L=Cb?GG|vqC>SY+(`sWm%crbD<^h?z;ibO< z5gXA{+m_+af-jNI3-_$^_orM0?<8^S4&uAC6`aI`S*mb65|fs9acO9@=&?+y7HbzB z>hW$JPANc$Hdy6B)AA*x*F7EwRi0v=Vwl~Txq5?+I~k&gm+(KP>h9yE1va~eLN}1} zqRpH{%wv37^L{ayCC#vr+OFsPKQP^VwB`TcRqE_TolJr$T*l5&Qei|rU%!BM1=UIZ z1GLzf{-@Al=J?5#-0ZsSs)0ZN_waZawnex%Y zt%x&&Gb6o0Xm-x$2VH>!ELeT_e4QZ?7)bsSBphA{di=f9H&`f|hWFZH>}M{c_k0Ws z=i|f=eFo^Z_^7TuS`299`m$SpyMio{GA}hv&z1kYk>3qPs^G*yLlIz0Z}z8OB6PgU zFA-${8ce|^lqzR)Fx9svQEXelQ)=tudLNKmTl@&Q#b#(2E(dVqlVTY@A(a#wj?D!a zyaT!ap1>)HCj2|2?nMW9o&fU2W87~>vW4TEXh^H^p5b=Ff>-VY=y*{I%%~==30ek) zN9T47*5ipibdmIQXed*iK_xn*g<_Hx)X*-&u#k~Ds^24|BXY906T`i=n2^TGPd!TK zQA}>~z|#uK$y?5QEq1$39{=i0-H1^9MfYF@IGrIV3j}`EMCcC5j@(ilfL@S8s|Bc_ zeOfN36p&0^1fFz4*RbVXbrtihpONQ_Sc~8s-xtgfoSjT;7jT3y20qx?(;3c2d$_O`yPoi6mSY z*M>QjdKz0ok zY~#UxFj^{V5_%`CXu}4Dh5cuC@+$SZ|AaBt{~^XWnf|*>N|D;CC9XK)PxEzh>^I)z zLaPs4NBp|FE5s)djsgs=@#+iNH9_{O#T4&c<00o_Q&Mh)rBVNlLZh+Ow_8V*(lLB^ zK1UJ}7Tjj&{^s=hS#mdh=Ym8~{oC$$mvZGwQ)%P&HeYJp9}kT!-;}!>J9aS~4GEg| zruQO3i(hUzC#i?y2%OhGK+MqkMCb&hwuGI%-AI$)4;eCQy@N$RR9tTFz#E@Foix{W zO<{q=L`rQN^ej>WgCLejw~p>Qd<2ePI&{ADG>E40inTgl6!?f%u>OLO^|N$&)WBVs z0np}#&D4K}DFJ0#n_zDikQfO8za7QD$5 zsRGfOlZ%D~;YO7$ZAw>J#jr-D=}wFIYBEc@J^tBTSVW)p@vROA~;rg97dI4js{8CzdD@L6Td*>6ISb_M7B%G zZ)yI_b6I2HXmF-y;ACyO!V{IO)BYP3sG* z?i;Dxq)`sk-YIZx$V=d{+EgnLHf4sLU1AV_tZGwJ|Lt@>V5DL-fH%PZ@I<({&$(jG znUf}%cUfY!zgGO^irCVQ6MLc7cPXr49#V~*)-173OVlUus(-48u@N<^qZvL?T+b78mE!mp!>IK_NC>Ha}dK z_cplj86%F+Qg+R5SP(%PbGsR{f0J)lyQ~Z5X)FC6Iny;7?w^3YTnRk|^Zxo9dV*c> zoDEB+P6M>gKO!V}_&(FuI+|p^B~LGVxtfN(c`m(5Kxyj~186yI0>582Gxs=O9%@Yo zJ;ox^kQ<>T>qgR-N>9%IZU%gV!0k9_|A$)6&iH@Tav2j_GiP%~0v0w_MmA`AF$-&F z6GsAiF>3>76A=?5J7W`Q`u}qc0Vf+1(|_w(F1?|=P)wSyIk(Gd%G*7z9}U2O6iU+s31bHfq<*bAT{{e(E3sp_mQF z+p9%pj(UC?NWGJ)EmPS{ryb&2TmX?yfP3F+;#H*tKBXIw9}EC7i`n9-(f+dO88A}? zprAUM%G`E@9Rk*`_vzYuvOsl{Uwa|-tH&33r3El3_%}5IfPg`>SYRD@Ye^xs?vn0#EVFx*e)>uc6M8ryW) zp&KmiF~N^+-orsczqy{zt#sx+tM+%f@bFM7VC2$~yha`s)Sg3i=G)yEjln`tI-xB5 z(MeXm?L3w+0|@-#gl3@b2!KTupu6(vA42`@d0|82Z(uYa-TKUKIJ1K8(bE~<37muI z6zm5#g?GR)pbGSnRdn06&6dJ_1?)&DUW0STKJbP7>)xzMU;t>nA4^7{{4(aeORUZ+ z=Zu1gQd+S^<1w5h!eZxju$X`u^x{66G|&QlpbgMOefWt$x*3S0{wfAku|Aeo+@n63 zG#DoWNTiWKp%d3ZcBPypk#aQiJ(&kkRxoK9N_FIJm@?CG$CYS z{+zi3*+i&21HNsj1p|~Rwh|7glRor;AYyf}_O2Raf0(q*B=eSRp!?9uwVwq8>Yczl z!h@D$*>XGs)Ro^V!+6@Wvk^|B{*Z6|Ftr&!m?_46uI&b9kmOKQ0K@!_H5iTGs6F*W z5G7(z83VfM0Lgv^xZj~h*r5V~FHo;;EfN;xFAN5XVMimqNMb_xM+VGshcajUn17C0 zv^L-&hqWSHmFu8r{l=|ufc`nt%1~Z==rIS%>K%|*jZa(Q@rUNAd-huzdXpjstqj`7 zgl1{!qDze!m_kPj$_2?oCCYaJ4=F8@E_&L4*|!n<(yzH;pmTc$(>|_d_;*9-CzH@! z7o(3Z2i&Kf>)Yo%AS`>11tD4*W32AzZ9~48q02O|<6Rz8Lq4DPwJ3sbam=_E=pkA7VD*o*D8}O~(>3+2|Fozdl zOuM))DG4ewbb^@i6*O0%hB!iD1XCq4nY;ld84qm_#62#zI7LDeC48#F+c(@!pyfWU z7a_V~DN55BBJUEJw3b^q>RkrvqS2cq!3uly%7EVt)AmuT%U=nq25gW7uz}c+ z-1?C1Aj9x8kU^R|5dBY8KU_@Dr^7*l`yON$VEwRZ&_Sm|i>`6NK^E=4eJcAh5p}X` z%|J%y?9F@+0U#W2QEqRH1_=%qjLmY+y@op{EL%UhT^sv|duMI48U}pgW6lFaMKPOO z6Ry>#X;l*vmYy1#ZIPT9npvVe3+o^`n{@`Zm+ zDsXij7X@Bl9YTP0y~|kQ?k0v5{ARzDOZESJ#U$x@SdVT~}g%9qTkW+2>0LYq9#_er@ofGw-{D$9O|WOyydh5(8`mo_FB*OgBblvodIuZJ;!}!WFISM2`m?h*KIi8Zb1lT> zVLZ-8yFMrd<*TXp<*$m!D+*m=LtfjNw9u26pv!d=hbzFUMhg~yp2|h6F*xVXPcF#0 zeKxJ8xoLH{e7%~7dp#Jf*R;r*hj}A94;GmotY+=q_Pd{RryAW${inm2#k)DweWG-HLiGq|xSHa7-P-f+mol%J{7AvAm zWaS$aOJvPJxxbaHpbW9ayPp+_CWEB<#e%o#)tTpDH2=aOXf!)HTs(^*Sb%+s9w3&V zDXuLB)vh@+0^2?+O>8T(ON@0Y=6sK>Z2kgA>Gg+rlVM`gP9opHww*691pf9epAU;^ zWis@S#SH-j{zb7MJl2W?$eZUY0RQn>sYmS0Gdu9vWzGfu%*iJ0*`m;DcCrRexv?ct z9PF`ssLzx86bs_<%;LD~V_{y7w^+$dut>LEOQD5?ic;>7)PRca?ru+oYKtD#!d3U6 z=r2_ngW-O#E>)Bi61EHNN`D75l>j^aiqI?DnDk$|?2dc7=!I4EqwEglE0uOjDi`F1 zS#eGv_UX~Q3xZ(gQsIB(@P~j_uHc;7nimKBjjVca0FVBt*$ygv}pcTh001izYrpp}h z-9W8SvV{i~mIejK7x_f)D@zK491Tucj=VQ6$ zg^FsEh}S#s6}Ky_-uG4GiNi`|!Q-7m z`hzw$W-#1NXkt(@?Qy31;?eg@XSG2T@&43lWI+T)1LlrDXh;SIX654O94P(14xFco z805i+jpVGVjwzvZjYs+5;TNw5{ugWC7^6!RZTYot+qTWywr%^iZFk?cZQQnP+qP}n z_VmjnllLZXCi7!bN#*>gRGq4wlfBQXwbx>XC~V=yRy4)u@L-c4|0*BGG2_H?O-XK( zqJO-iqou`gm^T|dWWR(7Wdq`E+Ga(54@lUPZg_!Fm^_3vDOWQF) zQJB)d;6D$o#n%&M=OKGN8+5nu*KaqZdJJ17Y0Ll+E^TyJgArMmUx=&y{Hn%3&4>B| z>ENYxRI43uYV)&M5POJ*Oyth}w+*r)oSFYZz=Tj7(A(;rmfBXE4QOn_46KC$+&bKo zl{Y^qtSzw!zlf&tpdmm4G-%0N00BVt#H5=z{}%DWBi0hjyjVpgk+|>NKSPFX zaTVIPH(fVZl=h@(M8LT8l(|WsCN^TEijq>~(p7cw1Z{1uEFa^3Y4UwyH=(k+)ZnxTZG7nl(NXhIn%u z!8NcAWAQQ(k%}8pX9?NSS4VOOf?h1L*YjS%4R)gHs<4+0#Bc-3sz0YAU194-60+8_FD3qoo+rzAJQG3eHK zxj`9Vwm~Cj49Lqvk$6VaI14VF=f1$B%d+`|l-rZ&cH5b_zfN$8WR@V;7hK9Tdwss* zclT9D+!u#IcYCRN@>ze8Y-*kZ6+F9vs1vZAB|nW<*L~Iq9+t%7i#xIm61N$S@fEv% z*Nt;-XzG*FNHJNd6nl)WdUB<2b*R$p!tS-aXyVxFW|^gAAH(VeS>{Ptb-$H?QZs81 z@-^q+kC-&z#5e_gWF32CMW73N$vQ~NUL|IRE8*J2tWsaFxLn>VD#)C{m6Bc`I{o}Ig zp$KnG0jn@HYo=Q?QF!XvhLd1Q!MKjprlgUlymFOrm6ELl%t6!VQR20N;7o$uFIJAc zh(Uc^zX;_*{-=OW0e_Er;drrt$#4dvPVX18;nd)ATDxNSh}o7&%1Bq}39Fj z0`0eOqdIlbzUC?NEXubibMAu-4k=7%=^kXQru1O39om+^94So(pV^5al2g>1^*YKq ztGd2K9d$`to4D#C{DI6rf%GWsh+UVP+$w=LBBG$Wja;cG-RWdKP8Zbc2xLK;-a=SZ z*G-jP?6mH$qSjUg4;ASQ9_O=4UysJ<={?vSe*FbPa+EWRyZ%LOXIxyx;wT)&V+;

buQsNp~@8brFyDtfqtrgN-i2mkI->>k*lS>N?CCde0W zu|_aeH|1{Cvh~zsq-^42r$Z_?jx^;s<%Gl=EM1;C3YQQ~OzjvcYJATUq?B;B0lZqZ zj-Qz&UsaW^%1EUphqDa|(DdqtVUBWi02!&HO%i$?nx2ldbb*isM4kd1{vmcu8CRXR zfQFx+Oo%qqIld7IQ+9? z=ArD|TuL6ytQ{P))8A6@YN#-QO=pu5%yM-0v;obpQ@Bn#6%Cg>kE*hJiln9@LS1Wt zltM$AA+>}gDotH$CLCFaT<<579YkAUFIs0)RW@0su`p1KrwVq_c0ohz{2KL>z!uq9 zg~D^BZspT4#k{w|eQdTu#P1o=?;X%x&Gl(Zz#6YA*v_Z^-V0XpQ_tjq%jhA$kXWPt zl_;M-YfzqIwo#x(v-#0=PL>9u40>0tCS6Rk7}v+86gwN~KT~P)6oaJB4Mo`nbMRBl z5v38)3~OvQM0iXAzw=J+RpoKR8XuaQoSXCvHKfV`HzcN z>_j?Ku&L~5sPR^cLQ*T$e(gjQ=K1et(*@(UF(h_irp^}^M zn*{5M7VC|udAvEpI6tlwn|IL6m9PGHAC_xZw&`~Z-lKe6dKlb|=eMMKE?QgNw!)5! z&M4bU3)g#CclQ&UlrOc;@GS>_x!6vNmknkD_$6s_gz?Kdl#$@&U?hg3Ha<_MEp$<>3XI<;mx9o4}(B5^;PS!MP> zG16hecLnPJtu+MplPX!2x0T*?;>ATLg1Mus!PehZ*Hb7L8ULC{qE3O7@k|0tUR5xqhn!9y)9Aumhpt}+9LyzrHj$*uZ&q#SAP&!^7=IKS-!VObXS75zP z`fWUzp!Xk3G@ksad&_&k+4t;hcf=Mfh6Of+bs;Zk($-OmguBVSG(j;v=BI(pa9JLsqKpT0hDv7NUzbu}a&tsdZSqm+jB2}nqAl$Rc= zrg%P+W-O~DJUV${t0IDXo*^1=6l3nNu)Q<1_c_eUZBmX5%ckMHQa4xgGa0);Y~;-S z?a5)MGAU_SQnRuI;<~d(~Q19g6NWXaJJ~(H_C3nnbV5AeLeQ2dIqgj0I&AU2kPyTYzO+>LCm1 z5Hgg2qCm50es2L8XKEQS=5ys z9%xHGq@$suqAWn|#$H1v-g`FKe7X$bjqlucI_IhYOIuQc(O;pa$8tdZY!xaCbeTa6 z7Or3Cfbtu2N>rGvjtbnGAE8i3o zjLWu#$|cDL&AL=Ue*m8XjA@t^PO8q)h&@Om-kpQS@Vl(#;;%odBqN!-=pbj)#a-n180-I z^3Xjzb?CtII5JIAzH5xrh}#0oWDrbTFm~&gvMG2(q%^Ij9~%tyI^#$0RGI}Vsp_zY02!6}^i#h(h} zcCHgTyHyV49=Bty>Kj-&C!L?WH&V-q@Ya|1$LPh~nBCgox0nrg^@>ma;4#9TqD{3R ztc``(E_OPpHW>@^Q9t^Q;*{JXSGh2G0%Ph_31Za9QGte#n}nN$^on>n?*)e+`h~$+ zJLQMuNt=mhrrujRm*e0!y=N4vMY5)htWoqvs26bF&21SxJ@~3VlS?<`D%(k6VzkNo zN-bTl?AT<%VT1;m7uFt-*;Z(i*tbHnq>Le|=0+XB>Hl~yq>>6tjM-yup>zke!1NgY zJbfW7n||Z?)+uR%>i@&MOgy?*Cjs-Xi@)GTDsM{I*-7XrY95y9gS+?J$7O@@ z(8X`^G_hL0Czn!a+f~i^4@&Ho<7Crpn=j#T>nx0NvxG`9&4+6%MkEW zYPl+_dQ{3L4YnlJ?Mz}?CZ;sHSrYdE2-X$2GfWx$WBIfF^V@{TqeB~sP9^XYdsf{m zK{_dum2+rxdfk?tt9Ep~U+-a^dycnawb&3ddB<#4Zn{2%p{~N(1A|;{EFQDvK8;}l zl^BEM;t`RLm14}F!;hCa`B>lLTyskA>iI)dt{TicobGqUQra&_)SCOg1>@jj+?;ZB z&|s|7S`B7f9b;orlU&Bu_r`tz=Xt|`B~+UZ4C5CwO9QJ)d&xV*?cPLOa~~(wVr&J; z#5XrOEwA+<7mX4Jj_G(htsv)b9D~0$)fF9Hy2i$bg{17eG3Dm^>lW)7f6Wo`7=D%_ z{#3IC(qN&;POyza_qu)@YR>1>2$2iAW$M9Ul z;)V-3tK+0?u1#*W&kx9=@%(K;88OZ~Se`$`U!Kjo@SG6xDvfz5?CFRhOP0fADrF<< zq@oKQYAr_Jz8m~Vtp}gH`dt1zPAl@HdPFjXhJuQ4yst>Ec$~goNlgl>%FDYd1bcO1 zG2FLpS~fZHlmW?^{J<3VU!7HkP|IxSjpAB>%_&udt{2yHb;lv@gcM^dm?|VUxAEF% z%tH-9ti*X?)Z{?mTUK)QXzQ1{g6&Lrpzn^IKXigO?Kf|sA2LY%SJDOW_~e!r^_Jd%FCK@&{fj}PVhO5*s@53C~ zy+a(RD4#+PM13>AM?Kq-msett%O2DI`Inre)1K_y*5aMNyNJL9j zbeH`nZglx$nCZ3s(H6cn(yGf>WR*g7s%*v3il^MN@Y9Nqt1r5S57Q|*)0h$mV@)E# zGdA#&LS-x%?w?d<0TM-@B2^O9!q*Hw#4G`2(H15BFoYS055F#Kxjk)VQr6D-LFEI} zRS_JYDmYUu4#>&yse!LL#b6qiL|2P$_9s7pR43dI_WD!8IEO+3lVXk=eIQ}c)in(wH$3gd`Jj`i^tEpLrY>vvqdoPfD@2axwb-elgx z;)QPYFRRZr)+q#4tg~+hqrn+|oIl<0j_1$2Znt428*21ah3ZPk5|c=lZ7o^q34lP9 z+3dds80@tq9+|&!Gqmg0E)Hh+0^UlQxOz(?CNW*iCI$t{75GS3b{#k?&{USKB0#HH zd)=LS-F;9pa!z$P5Dkj0?ca`VxAL<>&@>zFTB0GKYTxd zhOwH`s*{)3mN}d1j!!sFHHPb_eEK}rNEbEE8kQ^CFWYgiYo0HzIkud=2V`sKq`>!j zgflj=m1=O>3G`Y|nDw?3uGJ#jDRU%hO_Fq4)a#zZY}?>RK^OQ?6W*j4YkC4^m02I^v;{lgqxJI>Q!BJfja(_Zl~pOJ zVwIe8BU(pDTU*A{WHJ{#ElbzdIn^`GK9k-e-;geqp6B1s5Z|OuGSnq7pNQFx1pICy}1%?@9~s`Y%Gqr44o&fbpMdH4)Gv)a@wL;1B``Z|oOtC3F1%PY;$gM4>+pa(pD#@}U&v*Il-To@&ZMByJs5XBPO`n+ zux*d%OlR|L&&8K4Q8l~O?OFhuk?d|L=zMo%rRw05HcD(euLlo?Jy}LkyGTbFw>J)e z|6ChYR+Qg<+I4>Y7J3o{ng~ZbbhffpYau2HNW?CYkS)JGTACrVb@qPer%2@tzKn*^ zNJp7EXP3zOr|){a+Pk>;Vz>JP(`}4+ZD#Qk@t~V(=Lx{$JVcJb0f|q=Y#@||E(jaZ zNKu_3KuMmyg;>4CXZi6~SENLQ`_vV68>!ZyFoVJoGQ{ZyRw} zvH>jn2z4d3;$`*$(-nbgM{RAn+Hope(Z@lIM)*7hHV74BF1nwpN{uhZu%O#{K&Eov znY1*1zO9#Nv4^bLI3yD@pi|kIQS@%!16pff3(ayMHJ67`#M691`$0S2_03f!rKp*` z;bG?(w%i=OQR;>*^>e}OA;uQEM&&$Rb1^HM&*!V-3wFi9_zTRTPphtKM$I-^{Peq z`3vI2K0%skl;r>U^tC?!XLFD&)hJ$qEcJmeT2vw=x8o9GaP}={M_wuqafE`gG&P z7M&*=VT^7TqW!Dl)3|Vt7-r~w{PvVEbvB{dx_fLuWnw;rvM-P#s7Y@*VE&)cT>;VAvN3iA*N_k3s+c z+hE{(ddHL?C42U}*yVrTdd~+dZR<_Vw&eBwzvFu`|0llJ|Bc}Fo9*|1;dkl8kJ|(= zAc#DFLD46O96-d7APEv7kf3>$Fyr&}Er6+;wgg-^iXEsZr1sk1 znh!UD55M<1q1o(jHuX%~VZtb-xeA@5^|}7FCL_BmD>+UNurz*)BZWNPgQn}BTurU6 zv*GSf3xi+x!<`7KmUZtm$?KAvr`PUfr_)HggYzJ}Yc}z)t?B`5vMz&*#NO!OIDC}4 z<&o=QsUu>$TJuFB3#A-D~c9u;KzmIP$~&OOw)*R#^2QlQ5iOLxhdc2zoIhoXTsRe zBBhgR#3u45Ad|+SSeHRlDYl1G;5MG`2QZBI`O`q~!xFl~QMkt{h;#bJb_gp+qM{Ms zA)&Tdedd-C++&v#P=B)E7HHNfvilf%*JbU`Y*m8o+kM!9ejLJsXCZS&C0yT4<8Qxq zLH&2(`_H7@|3%kh;b3C;zti;?8QGcH{!2W6_o#`dyry>D`>c5*qA z$y2a$;EAXrmyqOpUaoZd=?$x5(nI;)lpzg$u0_h-ff&dky zH*qW7SewM-&Wv&SX==8%kgk(nhCsB^~ImXA(m^o*0aY?zN>v8K*};mkKR2q zX3?+F0xH0mFQd-;FTq^f<*u0>U7h!XvgcEkcbGm9Bw3Z%9xy<^KKO)RX)OG`KDTtx zdk)H-KKKTFAp`bNpVy9`^a+T@48DUt-9%7(HOH{yVFk7xU1E)_?}M&kfOfM8E9?>tgC?283=9$m@B`(Js{0G=H&~X zEFhATU9`TK@}OS)@90%)*JCQ=J<95U=RO=q?cbB$(m@*EN2t}fpHBabqkW3p3x*fo zFn9b`$&MxUc%=jW>aj{gz@zkPx1blLWt&rAW949`?W(Lmug}<+`5FNJK}^a=!1qc1 zgNL=lVacc3z)sU=(+-@kL8r=1y(sh@;zwf!>3N6gCuIhL>t#(0(54VerkF`TCG^0y z&N)7%Jdu++rPLIcQb1cBy<4?Oo^}{HUx6eifWw;6pa>#9fQ}c5p4(l3GaaR@L+2&^ zTRPKaq7LsY4-UH{=$MO>vb(Ow(=jUBtGWW^n2RZ!dwIgF9Y|~j*3gq5xTjEq+t^b+ z1GC)=#RQZB5=)~EQ@krv5};Ir*Ca>@w&c&e(?Y%wwgu9|e9sa5U_wi#6X-w@04Yz- zB2Kp&A)Ah~9u=L>YL2|nXMP9G6yxcusz|>nB-Z-|fDk9FFr_ssXBVRqjWExZFwS%C zh(*imyaA(4EEd4*pc4fJgxpwPprG_CPy`3X!xhgEG{h_SdLU#E^-#LQ$b?wufw@CY zfcdtPtS9C(u>&A-*-HH$TWA<`OZnd6mik%W80mr^&2YcqWaD;Y!3Q6J6QP!YSpcwZ zrPcRLl)8M+eOc2RyP{hX=T_-u2MFZT%dr6&+`|$)jqx0n*^;Q5EplXvN+<=9(C2EMmxN+(4M?EOkj^To z9lbP)7qx+p(rY%2_mm}*wW|+nHS$l76ywCkm$h+>(;5z}(c&1bkJVyteI?7>oEVki z#2g-7VI;JoAvY8~x03#aiEC(>@60qNYI9&@1dFL46zu2#ay4mVM&3#vuWuL@laQMM z)4DYp+%obQfP3LVj>$bT1pdy6YZMy=b3hW30Q9M2#m{xREob_vQ}CxL=y6`6Dd-`J zRD(6%Ju}GI!67rqs6b0SII2KPJbR1kJU?NJ>NH8h<4N3rCqg`infyFXcrJs4g*2=X zj+jz{gk!WX9+zZP5Q*c~A%2J8R^0Sfc8`+C{*r`sXviQ!JTgicyOky_p~M9#Rf;H5 z8?9Hu4G|JLN>4u{kSH@q6oHMLPF9fJ9;dBq0}g3>bX>w zM0NIAr#y$eoh|8IVHd>GQ2B!2V`0-WcDADIz2c@VYyzA>vhpBQnyqk;AK8GH>#H80 za14O>N#5=93>Lf9ob9gTO}-m5uJs_I8}3(pBw5JF_6f5`ytgw;t;Pig*AQnR?;MGF zc7vRUSn|Q}0eTY9nC2nRqWq7!_hPphPh-~FezJ&kAXdOWg@GXIxO@ zAWhhLD!uNUlWop5pNwcQfGu$=>d6S^Lm77GGiGV@4!^xcUkD_+x;IW#0rsmT_R?{r z#-FY~d;%dCkamTyWt+-SikNf1;yW6!&gAG&74V??JqqK5L4zli6@)@!+}bIcEYJaJ z%*Mvn?$X9#N{f5{vTqjrVj{`&jg}%ITO;6;E#!gHv|`PKPz*|#_Om*zyh6?XAYaB* zy8e6L!DeV>sh>nZpZ~PR6z{W1`8|;yS^v)YzF!x9NUgfGq-?uI#KE^OG?jfE!21c+ zd0SjxQVNT(aBF+3eeYq<8$we>PF%xo9t!O8+25PuZN)}Hy>RNHzq&r1x{1ELxTLJM zyilcGE9lU4+iUtg0O9>e>GApD{(wcWvUMsv><1F?D?7<51QjWl0=SQKbKB*}D5vvF z!)6b*)ve8D)!LJfFWA#J=U3+7p&J+i16)6=G@|@xf5Op%QQ$!PeuSO!aIu?6=FS2H z-~?c2e*s+s9C1{7W!nxnH`&yQpTRrX`cfrlO2=z9rD2;5O@t`Q9uF8Dxw-K1stHAW(mI&t|fjA?z^)ucU*k2%`1bU>j4{g%;*7CCd5+Gbl> zwWC}H;>}!@TYjEGLQ?vunC?voLaHa^YGTX@i(72upBum?z`f71p5-~kOw(H7~x$c#S|MG*;E9OVxouK#pCjxI{^>4M}Ru8BZ^UH76yj8h=tUeiN?88WN-qBg9rTxyIH zqy^XM7mt9O4?`ht=;6_~@;V9R8d_>6+h8n342@kb`fWWNjX9N3wWU31^TbjXvlLa6 zF$y`7!Vz~=@A)e5MxceDf=Q^9gUB2&T6+Sa=f})f$9(2@awv~j%kAL4aCgE}Lq0~~ z>tEpJ`h$m_@PQgX%RG^ZJ3JvICP{44NhAYQcGW)jC1=|zO4)c+?3YhP;ImR6I2@u{ zi2eVpwYy#mHrVfUYKhWUjCSrGIHzWJKSk(}GJa6=*Hqr)&>Eu?qDp#t_2A~Il-Q$Y z#cDQJs&0~qEPJrJvq@TR$`u8Ph5+nEgvtLtnC*ot6*Bh*&OmPNt4-drWtz7ym;|Qw zEiHMJ{`81l_}j$qPK@&NHd44)Y$(eqa0daSL~PJuWyfa3<3`jmz5h)8Dy$BKYZ)d6 zX7h!_C&kD6INgz~!})sLmi3C$uEpa$Atu`A^=l3}flp{DL_$$}J~*aJMv~K8$7J&D zyJV}grl5g_@ilh%eyca+39^+AILEmHjA2DDl^%RG6!ur`A#m+TBTSqzRhjOl#_c6ZRbK7N0f56^q*4DDL4!;zDL1V3gTn?;$+A?e4{ zGYSK11)*996|SAk=y+5%Qt2B$tdUsyW8orVBgyRT=fykuXss7Esm>2HylMHM;AfX( zrp;1%hG*nWR%pbZ8^90k0W13=ku*~?&!`<-1$03EbAlf@M?9k7{f)9*xmIhqScc0L z%XxKcZ=2}?!|C=s9C{m(eFNtWbeLOWACn*;=JItmi0;#P|4Vlx_TNPJ;r51ZPxtHD z@2^7hoT6Nv+CITcpqzSjXmN&3^eGr=21bhf)(W&_L{S70g3-2bql8n9x$miqaLBX= zq!9ufe;9}3S|HJHpaice2@DC6_`@0nE3(oM4+%P7|5!J+ySx{k1NC9@V#Mna1KQWi zado*{uT_@J;}fieZe8&ZY)^?@)e@OF3&X$5oNPl?GVV;o8)+-VYnd3A^7)$zwIpkZ z_({3%>1%W>jj55BODgv&va&;q6Vhh^b?;;*#=%g;hGpe!gpBRB-LY379gs-6_4>fc|-+1=e=u*{EshvWEedan*WH5KB!rmG@Z*|7vlmS|6fcmjvw>( z>oc)*8sV1W(xR*f6W?GCo{yMNESsxv-eNRcbF>nDZ`z>z!==lS<9S{#=3tw!)HRrj zLDX$Nc3MR@7%9NAIx9gD#d6TgvYi_rUu-oRMVE6sEZYnW2=bz}H}WGhq2S=)g3POW z%1E|l;Ik;V0(1zink%eDRCPw)t{TQ^B7E~GWCIR%=c!FLQYLLB)YymTHu|XV3CM6B z6~9nl9B@bcaO;HZdq~s)q%~;Dn3U>7RInn5?D#T$?n|j=Xu5%DJ0T;VPPrZ8rNZSm zis$(+jEX}2z(aBaxFlI_w+h}s5!wp@lDg!72akh4>x z>?h*>D@Kg_PW1Qee}x8ZylvzLUQj7Gv2?qRdlV*mTce6-8!RA{mNWpErfdmkAW zU!_W;9SQxO(D6E3t?qrrQH4t<>qu<-jaYB?kLvc~HZL!ma{0J?W0jr`2%7$Qpji^< zDfkMQ)EC8p~-NY5d-DcMiF7dDbkpz{fFV!gySrn6T;$+26v2{@o5Trp4|e( zqo98KD_U3Lcl06;(x1&VEv?FqbYCw6HWzsQ z&Xq?t_AOfc!$b`3tCvq0mw8ytJ-yZ1hY-m1elv0KvZBR!jG2x_KbUC7eK?a(oLK<9B5K5;G zTyF->`BSs@xAkX~PXM7F@e}spaPRen8mK@HmeQ!4#=O^djYYYUv=wUg#Cse}_DGR=pQg(N61DV-5M=YOj6QEE-qz!CFu`oEH7U)0MI2RWgo zQ_>reF0mNF{#DncuWq&>l@pg62^pxxcaC|C!;Cc1?lsQvjfQLE? zGQycE|ira&6)J|FQ&Z*)@L4Z_X;IKJV+T^2}DhNfc_ztfP36P-08kdGS- z)3CN4zbVCZ$m&R>DMW#6f+lsx{@(IIw}do8AO{q%F9EB%4KAl()Dani=!;nWQe{EK zOe;FFU?PL^Gew0~LiIeBn{NhDnp z&cfz0N~rm>2j+38JDPnPTV1pIK%h%Nx0L#kS!itn3Q;s7B%}y;Q=pH}D=71t)r+r| zRyCz?TmTz0aK_XWE1TUPFc!t43TNv8zk}M!-7Jr~|R6W@o8SUM`Sm+=#m_(|T2@S*;Dc+v>lH7F_!iQj1maQC|PcoTO!M;!Xh3Rb< z=#IiOpBo!}T&k9aP{ko%+?)i9b~Bnx;`fY|d2ItyWpdf9s(FYA+k0drO@D?}!G0Q< zcdel;vSlld7@y6x1YZ{p#7e{O>pw}0s$998v5TVYb>e|q@NDg_Dyq~IV#%q~MWE7Q zuhNRV2e_f0FNA^}_d?7Fw0q?**dNZiVQBUC9ezGzeEYCwDB;2iX3DtT0k-I~fHI+Z z;R}o#1gFeXLP5P8dK{JWJ_&YbnO^0W(A;1$fy8V}b@KIw(79rxnKgT(FAUN^JkxPL*(U*L5zLjBe~ zd0>8ughi7^;`GV1^U%h$iXY2QZOe#85snJss8A+Mlyx4TKGqW%vUGwc+8$u)~9cM;6H|>}R4oUrCmZZjA!v`i^s=hSnApCSeir zgoIRmTUya}qy=aAtc|bhny{ul)aNF99=q+(Z`f+evtNyf$@7h=8Fn*q!ScPkEe#J1 zT65w81jh)3h8xo)ji)7C;YIn9a$Ak(uR-nj9|zAL#NOUhY*OQES3XB(hf8>cY|t znV({+&mQ02Qs~mzi0HHTpZ(Y0l*FH#h{S52cU>WSeSh)SpG7U}Zip`d570}%Op&*% zg}$?Qab`D+Ke_PCmc^LtH%L_FvT$ay{$CD|BGW&a-j9*Qb@-ok z>i0@iO#xdSr4gitfDxoog?#QK9gYOC2E4fFD0@^5EcIg<^qzjp)U;7K}zYDmt(eGABwPlV-{8v`Wtf(YWU@~h*(uWp723bD^GuAfI zhFUQKs5!ELK@RJwM;o-5RVKYb7C^(adP_~v*IA;wKZbovx=dogmVW=L3?vO^nc;V| zD5X)jHxs%+SW+9G8QM)(uR5A1+vj+(VO64D7_;N>4o#{r)P$`vVPq;%C*&suhan+R z0z=UNOR`8qy@(r-*^~@aY5r@*eJ_r;n(wwKOgp+)`}ZQ?mOoymUOjkDZn74p(PTxe zPn;P%T{rbmvelt#Ps#Jl?vkv0`l?>8?{&<`GOH6~nndZ8S(O5HEJ!j=vj9~Ctq)i^ z7(FiN0jNn`lZIYdGErp7!LqdzSS?1erc?S2%^wRYg7hRF~M7)~F)-L%h zf1;x-cjlf-M)%a8{ffi71YLxfrz~mP?q3*VoYS*g4KU2&{`p;rq3lxsEJBL=3q;#@ zOGCMkHczY>mVz}1BLml!2a&{3mP3txz=AtzEfbR-Y?emdyFV85+YFBSLMzPMUYLxS zwV3vpS&=W1fw`1j7=J40e~f|$-;wSN?hNkt?zr7=-67p6NhzrfsSK(2sd$oZsgYR= z7K*f`!!CIn-wUpgp$wt-p?HFBNoz^%NweZ#3TvhIlRc7$LjLIVw%|Rob*vK6%1m9Y z(^G$)X{u9rzg~P9JK|efnPGT1Eq)zEkN@IpEWEi1#H5#d9T&+^(PpiD_!KhV=S;q& z&3ZeVN{QweUw$~PXCob?cbFmm+2~{*07DD+1O9-TH*hWt**$BD2`wc5vg5RcX_k~c z7{S=}V4_b&v@S0}?64=?x6{9vTUk^0hmv=-$w*p-PbEbY8r}*#K#6OLm&^7zh$|k* z-{19{PRb0Nno2O9hPAR9IGsG6W@F3di?O9n8;iNae}VrvS;*swhent<=N6lqXZn$j z>!K*(FE8orYm&5NHZxQYsAW}jS<_3j6fU^3oxFIO`IrOytVR!1ik!<&7PSs7i$apU z4ab}syI9_~K6>(7gXi$MM|Pj?z8$)Em)r21ukwfc;#$C#Kz5zG`23;1ayg%APiOr_ zMxI455|d?~fmVMAmyOfTfoMTp{pF%YthBU-J%ffMD$vV@B|9F9@jHEdqNA^}$g;)Q z$XSMrwbOv2t;|Nyg_Rk`^D6g9_QcBjq&1rDKi-(66l|&+P?3YO!=YyN5i%w! znhf;v^6e-ku?4VElwqY&?rcW}FxXH+v+~>vJj~&b@$*SejVY|?M|rJoRex;~H5ud> z*teW4$ZUCZvUFKf>E<221&= zV|2{`bMn91{CpM~4rlx>`??E2cJN8i1AC1AFwe)SxN8a~)eO?%F4~2{)QzE}_cKkA zB9X|Dh@-_3L{&DYzaK@FkbUnIk(ut8C>M3hbjO~eXw2(pb4}}$fe z{}=5OiCQJ5leaf91_L`jMa1Q*V!PF7>G)U$KDAza)&011+5Gt?Kh+!Jz5o1ulpDYS z`|{Sz`*Bmr#`keU{RR0=ME3Nm%cJXY7=1cF!%t!n3sNkzP5ts0)E6!Fbc1k1$!=~)*)tpK z5ij5OBAcDgF#XLF?)smq^O8hu+;vkFFJhXha)4Rw0aLjykC)4-@f!}#APgmnsBWo8 zJM*6q(%)J3k%C^_fT{65e#tk;d}fe(AERg?=_1?6YyzVu05*j zpTBhMBw{*8%UYnWUtrU;mA3y;+hi{5Kb?ooOFT`%EE(Aoq`k@EwBs-L<#FI#Kb)$j z^WJW_Uc^gQ=si2wYaI{G%zh^IKHU1Curik^P0et(X4LkGPd4ACq17H?AOkr_$sYBn zd}q&?RhqaLWW`Zs08gE62fLof9hONHFoc#jT1pZW{?S@|Q9nf#v_w@GuUhLo=iyGh zN_0&sSKEL0Qy3pykBZ#!bcz#;n9v~Y(=19~MKkXeRCB`Zw9~tEtWvao)X%m?OX0rP zHt!Sjt4(V6LDzsq%xbq@pVXh~h(sf~#7X#_dNk$=IDA%CO06AWXo5pB45rX|X)^hsD7f+q&x_({eO-)4Jx~AXZomBsI(K1Xg{%DY zvBRtQIOE^#O$7R+wjS8CcgcnCb2u6;sp+P7)DTj20!9wd6GJvrQp>!59Y6(29kQ28Vsrc`J+*RjWhY;~tjx<%u zc#=b-Hg$8N#<=z2lY>~Ru1z9`B{7{S#_|?!>k*pu>CxwV8QbM{_bHLX9W?s)M7IDq z$KS7ku>0)p$0PLh7p;yT-SKT<4hqoL833Ztji;vAxO6r90Q%x3D)xottki*7TgWLW3dTxc-=V zRMDYX;z(${+DyGkcKD`a> zN)fHRO0NZ7O?oN%a{}jB))A%=i(6j^(miF`#W`Y<&7`X<#5AmQtdt{(2s!D}87dmo zC8%_z4;ZqccruO9q?OQ2_E1?Oags2iS!Pig2|4UE7d1`ywYdgZ^G0*@`9A0zy)C(U z?a}vVbDQpp3HiFCBOax)vLb7|wTAO|K4}hbxm#?dlE`QMzR#i;1Y8dS7Uw?D z?Gv}ZF~em|xKAE`rlzty&sRD~#0(zqF5f4)tUiHmnyt73Lr=!1P$1l~V4Rdo7ihx6 zDJk0K>6~VqK2miWA9`fgG9m+}!9S93o~mX9`ku*6p{s3kf=VK*akSp%q-eRQsaIXT z*50Dm%F>&!UTEpGV}gHGJLlZvWExp?LxaEO`7C@lVsV~X)T}8F8nVpbK(h%pksO9w-Iq_ronPOqtxY>M_+vd8?Aa=AHo<-x*FYnfkH@-&{ z{~`H1a8eDCbJ&1D(sChnddKwZcP*hhutY(YA|2UHxcCsG0g6#AnP9sj4_dR&AXX4p zTgur-f)maw9$wI~UYv~TPN5rdReyL(tfcZ8I9oVL95ZIT0+vKR9w~O+EI(7M2?dc5 zj*RGhoK@n1(j6hb3|WGCmLklc8EdMHX`O~*E)zZ;zi~n2lqtL+|kH$sS@q)O2^B4eO}GT|H0Wi1&J0!S)ygzwr$(CZQHi3Tef-2uDWI0 zwry*w=f%Y9e$g>A@y=C)LDU7(TY)MKFJ6y~`?AxJy>h_S1b=HJH#Il)h0=A|{HkYoCNb?a zx?0e8Xgef6Ir-7HWi=&&g5*14C8+BSHqZC{+dPl$7JmEZq4j1#$R9R?7%$CQGS(lC z00Tq-eL<)$AKQmGgF;3*SV7YULlgrM*w};-AkeHF3kf@#jJm;!A}YIT3`G%C&#=uJ zo;s;nTL4G*!9HrdSS+E#Rqhg84Tu%fkiR|lUODmA8`nprNF}=1j#jfXSFcRAxOF1A z$;cMaD}gQne|CB9Xx-Qae2a*`(010XsO+rKCGE3VtxD87gsIdjRbt=Fj&(jsEJ-tI zePF*HR)n*d|AIO?Q!dPw1#?WS+?a-M!=#|fgQ-2|NILn*hg3huW~_0lnO5kiWn|9G z6TdR~!uDo$dY#MmY`=vTEflj+OgQ>=%i`wa6N3Mq&ntK5hfhk_vZ?OCW~8b-Fuvc| zfg&$_IV&~hBrA0?aQW3P0ks-y7r_S1VHFmf!zOGA%*eRa5^c&#gGTG`RN=XS;h#g& z&ZBa>R!vq_qI{0>fkJor0HcO2C)5qvKu`&?m8WGH$M~hTQlT$oTNC|oQ>a}1lmN;k zDVqYVblFx<+qIUtb=vi*7RqxJ+c-5#ZL19vXRG{*q)<&-w`gLR_If#2w9d3PkVn@Dj=jtE5y5$)?g(uT^gj9x?w>u{DlhvpPU6erf&-0PQ&5kwilnVElVS z{5wVcG_d1J;wEg{qN^fYK4YNGD7ztKNxUiJw|Nmx{dV1M-7Jd?iyWK0%TeYiMaJBc zsg@Zx6fDzmq7Nc*)M_<#Ej6tw8`Wp35o4?7lJ$inS zC=A?C#k|6an$81RcH5t`rQW}eu2Cn!K*w&&+VFO`s*Hi#mpd}oh|HXj0X_oIf}!L- ziBbkr(bc2v;|mTcJX0t^0Ys7)dOW7Er=kW=iS308i;1O^e_0uA{aY!9)2L~TnEoNg zr)G#cYV=E{%q!n%yeHz24iL4m_8%_8j$fHHIHi>!pza$fNkFf$lx#LE-dB@WS~tgN zP=@cHBy!>&+!FpE`IH-j(QY367%bo=k@$SxtVtx1otc@vN0b-*g!NN`q5@JEMtv9T z=ulBBjlw`gWNAP>zx;Wu$_dov2?d3_;6dYn@!1OJB#Wtue_dnq3BwR0q)w4ifTS}d zO;QSI*wm|!K-*c{oJ415mww-{@39qY`~6GfHwJoEx0E)=O}Z^bngwnVKO0pyI-GzP zYa%_m&ZoA7b`UAA_-7DBG)fWaX?8mbj(DgL|3~sG7TO%B$}ii@Eqi;MJ_0M0nMT}1 zn-APs0&XpFUqaVb*EX3|GC5Swij8*qcy7N2l7+J$4H110^Ar=qUwKnDckZqT`FL>Z z?lQ@3tdqAe71IbT(9rEM4?OCtQ}~*A=ksn0el(RAIQ;06?(?qs?#bTHq z%HH29y1{7sUX^~{)86;?EiYxh|54kUWXiM6;s+XW&$XV>eT&hhKjAx=>V{$mpSjUw zDr(}_nv7WiHPywuq5KjXX|f&mH{308FA=>wwofRZlpa6*qh4D1NL`HC7FI53C03sv{GojMxRR*<;JvmApoWlRnlM+*$WA5zrM+Fmwu z9Nj_6Lu_TiA;Q^T5_B<`c>>2jmW&U0hfmYB<`uzA0u8~YaCWy&+-cqJFXb8jBi#V% z8^nxo_6l8l+P3?{<$y=^r)tn&48haw>+Zm5$-N{{b&)QKTs?!fLo`@VrYP?l~iy z6I|SzdyStMT(!xV2licD4_tPIDQ` zxcCm_{)oJB>$3}oa0TIKMpre5KmuAK3R~cUb{Qw5#KPJQFy| z$sHBkm+m(1I4SzAcY%En0zw5zp@ZW!F&66>R)_oZBSQP!(7-M%v0&n0yqf z(LX%vhVmOp_vx4dQozX5aph)f9E8S^daU6B`~k^t>A9>|6*vS>1|ZLPvJLz=2xEhl zytwLEHyi~?dC9Lyz}8cG5IXK>1ZRXXo%;~AU>?$;kLTFZ!*_yR>SwYYKu&tAILaP? zJDBU}*#{8s_`Vi-z9YuU7#%{ML)r(SzcP^FW{VuUo51eR6fsDiEmLPJ{NYh{Uw*DR zf0TQh0CxU{rT?l5T86qlFIjUOc6$oH2!bGpBL4pm`})A3*&@@+#vr#6OQwX|pgu*3jA#0RM;_z! zc;_WTr?us~B4&cm8#2CR@*ZRfZ;4do51!(Yw-UM%m0>-4@xO~CDfrInC!RNopG-1= zG#JKLBQb2Jt3c z3_c~DRpp|HbupItK7IF+qs@+40-L}CaD2?6N) zoxL9f1Wkyz2iPHD5D=A_X1^061LPbiGH{zns;G(XZa7wufdG;VYe#x$IrY1-rUt6J zh~GC5l?+wSRW9J%lJ`%W|K`kz+??*x?^7n1GxCxRCjih3W*Wd?eHk)&IfVZ&4OE~7 zsJFOX+KhgH)dmm%5}^0G9lloLpANA$U@~ zethe;`%mSY{EUx3O@I~X?WGojy_=-WOWYTL2^YYlUY)_VO-U{sIDzjEtA84(v>MO4 z!uk;}02qMDZ6S{G=WeeJSw^Hvk`2K($7T z%Ujg6GXrdZ$i+(G@!9yg!J59uX3N#>G@@j@S=@uZ!4#ndw4e#`C9jLNNwAU#`>2 zr1sNPEN%!p)fa%vxZTv0)>v{cpa)znC_!Wa7JtCoBA@_m5+te^ANmf^gPB!SF&&k^@z!&WMc(x%NM_}MT_pt;UhAn8$1n4gVfLB8Vm~cl1M6v-E zim;5jj>ZLy46~R~_;?IpWJ4v7!OQ9C>FA%%dt{%_xtlr~$FLNE7n3J~r&tQk)1Fp} zH+f|q%q@SHjOy_*aKp{M2-PvzoScIw4V*lugb{p^-|?*r-S7H1H0HW!7?qSA;U%GO z&oX=xD|^m&F{Chfu}mK}cmK}B1)piPt*qyX;05>aA7UdM*^F+&XUKa<>u-sr%MTM^ z7dlO`4n(W}=w?vtJrVYh^d9dmWwV&>osdXwK>bd&bdzpNgPkpv)>wN@E!QHYy>;T4 zdwfJGn}tzFO^Uh%_zU+G#q)Qp?0^Wpc{%81=Z8HZpZ9 z)mg38HT4PfVkyECk(+qCb!bDc^`+&f&rdWbpH4|zlbWV&$a}dGKc!xcDYtn$b@-OI zvO%pOzB%cv8uhtOjl!tL1lpREwEB;ZSq(#8bHCRz)QToG&w!Spvd45K{!Kj}pHJ=S zGUC6u&fwI0e}6ib6ZyxqMm3Ewt-Zzgcjf`t+5o=2tV{2>=?&=MCq`}2Bb0pYqtP2;ob(6JOI*$NRz?g2Ani3 zf0GHZy#(MM1BEo8qz&)jb7lX1x!hl!fcGhBfK}}hYCyd70cik^&7vL)u^a!T84bdb z2;;1SN-97=>xa^SquwP<2X8clbO|@X0EF+=IRzYJK)4S7AjBNr$+d2GWQ9+~R^fwr z$OrKXcoSEd3IzqzeZeG7Hf&+^XQE+IYl2bh$7#by>(`M8L;9V9L5t%I4D75C&c~?o zEWiU`J|NpHtAKqPm_-m;{%{-EybxQWdI9LO0D_hQu8-{GE7=+FMLr@xR64j;K9n1V zyxN|59a4NBrU&$NpVVi};a=6O&~!j}b~xDTSaCNrwgIqB;8q>VHY*hn@5;lSj8<<7gSj~ILNBd z4S}r#?((c}6Mqi;kponv0k#eCMLujQGl3a`LtyKi%PK7W031L%Ft-P`zt{=5{ekT# z)g@Q}NQI!&xSrGS?gpMy%ww_fE)1hErOe>jD?u*tMMfHLP+CD0&~%WfLuRX_TzOKr z0_hZa)hbO<%K1f6e4VBVzD{cPJ@DNV&K z-FATMEefg$2X+*w0%(a13lDH700C?&P_NQtsAwIEl&5KVFW)LSW*1VGrDX&*N%(U( zt_vS!IF%Rfc4!F)#(S@i#ICvlucxLH&}fw*r~Sg#7NVAzPIwF2L*U&Y=u*HSsA+Em zG6+E=%QTz=0Me92)$khJ20-MLg*eXp2?O7(IFSJ>L46Q>f(8M0LVE0*%rFJ0O@Ij7 zdJq_8tY9EJ==SLFP27HK)m_#F>L+&KPPV~Ht?b?k^{p3X z=W_0Nt!$sQ-*Rr$&zCFN&kgpgE7^BiZxv9__%OBHX9E`S56&dfoPyVe-!#R+5r7#Z_m)~o7Ja$U>?NhYj(6h z&22U`f8}tG-|4Z@T%sQ+m{yxPIXS6$6~|Hk{CW}x}E(Xlzm_fSj?&%K_19I%3IjLvKG->vp`uOc_<&<-AE~D{=LBiH5;ER z3VW2-^?IZ4bw!_=7+mi2gORAa^gP_By(*x16=UHg0Y41`-z5P(e_;JJv_5^bS0zY1 zs=lAPJwb3hgf{(G?%Q}EeUw*l@N4APem!h|LhP6I+c#b;|9{libGI*@%&#}<2iGv4 zIla0-dB_^A%wa2kcBgkLeavCL)rQQc+JtwXZ4rGsdu#LvB(y1ow`tSbsVOUa)@Z1Fb-QHmi;L^8&6w(Rib*d|I*U z6W^*=Il2;kD;ZS4;v>IC^oE1})iFGxzG`a-4EP~#>5rn8t2=_zxi*J~^ikMl3Y5lA z?@d!X0G95!2PfN2`s>ltJG9m&vD;{bfa9rXY@jjTcBaGfo}r@o7$@Rlu-P3w@_ zn*n4l(|n7`Mnl(k=HG9rOzV@0T&Cp^)k{P!hsGhfOTTaQO5fmE*b50X0^Q}#8i&lW z9BB-)EzI=F3nY#|q^Rq77-7NJ03U~OxJz8<_?lqBr?Xop2*+0q5)K!6EF8a|V1dIk z+6Vs9Cm4!_f7mMsyLiK1-yi6vS8iws4B8V3`?&Eczzt_ZK>kT~Okd~J1N#MAJZWzP zs)kHoXCw%G_aVIs5cnktcHr@e$Y02jp$e;b|Y(UR0;9 zMsvdo<=kN88P{u5lVA>gnXz}sYs^TE#>||}!;IyfUg!~Dls?CsWX{1@6nI{H_1CJ) zo5XEptj6rj{mrAJw^K&(lMdgl=*xpWP#3fmQl`0xzB1t>%mAI+3$%3gibph`oHN*4 z&DaTyEVf^yCV?DE1_1*fec%9eIB@*Hh(XODrq?3yx?JcQFG}$*44!HPUD>!U=BWxJ zk_z6LNVwW4E)Z){U$cg^#zNY`PKc^V@pQ(*z*l`U zHDoQL0)VQYze3po-BFd z4>Se{I&qGD{t;Gd&sQt(l3M^Vt0}q1w!M8Il78HF33%bLP{JAcAZAZCegxd~wd5vx zP+$!babbFkPC9zyS~@fBT3R03Bf&=887p%H0ZDgl@GG}$!IdCAvB|P9Y*fAFgXx92 zus+obi@Ert(?ppo6m4d|U75F+=foDC272Xtw~t~Gz$F>x^H6V6sS%7gBwaG7h_29R zi6|Kf`RLfzaZ%4^RXS<=t=K3F6j;=p$g0eD94`)!^QLCtk1tM+F9qD((E74RaV8x- zV+OF#MD2^oSB!B6qd6akKv&R~X>HK+WV;Bb>C3e}eD|h7g%a$Lhg_4|11MI=^iE=p z*w!e`?2*H*hH&n+zsgCCTM~0{?W2SR%A-Ckit7DF41usQ8OBwNiPy7YNf(B1jQ}Cm z$o~!hNdhKv`6tb7&`B!<<|2V$+frc;yap(1-c|XaTS!+na3x#P-i_nyaPu1-wTTTPas zSi0M&)5vE{)?yWI#9AadpFj|b!QGf{L_`u!D1v_i-mvAFDZGQ*tb1d*%#Cy1MS~=0 zl6So1p#^p}(2O%RGC#z|#4nGdLkD-9_-3SyhuNAPV|*gdHf4#3JzAN{DNBCRlAvlN z42?h$1inVq0!ou`?B4H8rZke5JSSz0IY?b^Hdd*OFv-r+Z()Ksb#QN?HJQ#YVnPB)qFcM&J|u+hMLhPjTVd-g zd2CsqT0QsD5|TYa>VivP@uVP*30RtI%f`YK?V*FGBqWQwGwa$Jc*@B31%3tzVa0n{ zNCGG%lx#_nou&f^CMoZT1u=O;W8w?*7WJ%6VPisqXhFmzJTst_D%{mp$>?#!VgF$V zNl<;$H7fQ{WdO+T5xIsR-NVjlg;c{jw-ni|s}t#%1ir6y8JSy5XT^ZPfvr&c2=b)l z{cFAOES386B{NEr!Gg@JNjCGV$(JErNU@x5LJxzh4KhgAwZ`9Ed_E8G^L3l zH9pgL(3p@(mo%HtIL=7TsY|{r=5{3C7;~56KFS%FTabH@n*ihxfSU#O2*BM1F9yB` zJPJ4qcndh5uX2}jOPQebR8}HZE-&SBYQW8uT8L>}IVD8DIoopIT4DK%1L%NH0n^?1${Y<#we6Yx<=C#=)#fGGZ$a++azyUV^ z_Q=*COr;0e8lz?p+q9gKQjZd`Pnza@O~83}_3_ee%i@CvYv$?b)TpwoV$hH2+IF7% zwanM%=rk;mef{|i>kS6r;l2t1{^h+>uq$4ghl>nt%aKoVKeY1MM9mJ-{Q{KU1l^E0PWhSGei?an{nGKqM=_@x-#?skV+ zZr(=v9=40YsKC7QN4xW`(f8Y`S=6w%PC=8{2_3t2WJO}qKjb%&wRdXL&41B5L`8wP zjFFU=L}VnLGLt$g`i_qcc5MWhWyE)X_Xqm)h5913rzS~aTlQpDQf6wFgj0j}$+MI! zd3(Vye1w?k1l-+>^-H(^&L{ivC8x`2hV90ulo`m6P)rNcw#+LY_%irU|KGI?N=2>AO$B_kVIo7CuRT~|AUCA8XLPYd*NxTx=xq@XE71h$lUWh_(XI; z?;3TJ%qC$_fO)90cl934w=gV1f@xrxqq-loWU#Ry)gHnFgyiu9H%|c=`I^T!6)K>X zPF^w~*r?kCbk|Fb?2w={tP1*Y{G58246cnvE<9scYYxAhpOZw)7*gB&%fPCpMn1=- zzyXQ4knM||ahiSG#v?jeB=7vd)BH~Y`sFJfE0P#=`Z<|@9O-IYpp1;)AuDrKr!d)A zCg|Yq$&1lAKHV|>5gf{K-?b%{9vu2H$n-l`ccF8zW6q3q=&2vrZUL|=b@@o3gZoZk z=5ezLqM{15*oAyh?6HoE_iQ-^ul;-^(4dj(K5L0OlXyk}v-z!hduemITG~LbT-*83 z^o@AjBSVEOO*EBrLMO@2@DbOQv*;IaaW7}v!C&~THE>(&*YYcN$F8?VY>BrIXF~^u zY)qrkYjrz495siM|G6IIaXTNkJI1?nzAn1nL1Iecbl=QOP*Gfww?rG=Q;gYn3-VgG z+UtK@Tx|@UNJE49`(CcD2!EhoTA)}DAv$XC9J|;?M3VUvq8>Wln>&8l3*>h_5M7Mb z3c)=BHrFSvshv`q4xMx3L9_=YJes}zD`OtNIv4CRtXk`Y zzwn&-Yq=j}K?F)-xc=8$>^jS(vi(hE4w~4h)0KG11k*EM(e1*mqes7sd>hpt?dI*{ z;u#D`Vj;G_*3U8{jBGk>= z^6XV$B%j-2EY{`SOgxuv?8s2tI*9b!BSS%mRFf)&vVQ_9EkcHMS$UaYq8bdi4`Fni zMZsgMd<0 z0mr;>6V8+{i#;dcy{$4iL`h`p)}-OhwuJf3_9P$_H8*|3S!-84|GbLv2$p(tHyc(% zO?QcnxLuRrA}xHjsGVnFwvG59uI*-%q4rf6Z1V|0> zeutqQGpxBtQ=RX*Zq_6(2twAXCcc0EaSz}~|tVK&YWdT~W=KWaI zq;Cv$l#H)LjR7fN9a<)*C@87NTA>E5Su)bQh*=^bGfoP~Ll&!hL?J#BN!7S^!}w0p zo3@v;)OdkKGMz7T5&Hj6zv;jG!6B=0h>Q(hS9AUQO(&Lg+Icz zp&s(8SKJRqOBD|z+S`278+LHRDZ3-pcVb+8NSh!b*=YI)#7W2|5|102-7e|N1JqFD ztNQGhf&+Enux?%4Y?frX{@_e}pb0u?%*tmj)nlV!}n&9NjW30P$ z&AKB-YXuyXjc-cc3M-;dQK@A|p|ZY0YD#KOspQlpaOV=ZHOwoTZlX)=7lju_=SH?e zhb>z-$s6Jy+mAc4POgoZ!=#GWB0|_7{4bp&*ZyYwoKA<=Y2)9w(^Eg+VLbm#ha)W? z;?e%(o#$oBIOFNC*{@}&cg9|8be5SMUv$Rh%6Ryw-sr(vS{{s;+s~=Ld!2}?k#P0_ z-6b5w$F^kF_1jfCEUjZ7w2TA{Fw(43N!AM^FFyZX-XYAeo<%1nCOQ_R5p${$K4oPW zS`n()|N4JMlH=+3)E^kVTs`c3e>zD^+Qx^0WxjojpR7;&eIok0_#}Er`;dN9%E{&` zRFL06vbgG*@ToyDCY;4Lr;2AQ6!092sDM_YmWpi+aa0q)#;R^)*?VHBHt8$Yex*dW z4~ZXRzg>DDqMSs;*LkhF`t&AB?Z}SeA zPMe>Oo+RWHguM$5W^U;}u2!(JjWyx!z?5)FKdysWc`LMkg?}sL#xgz;Vq=fO2njL3 zlC!lqRn(q$dW&v7u|qKW8g)(q6uFiFGU|#EFTX;E&6}B+8xaT(Mu)6!@ zU%P6bj7<&JLfy`89L6+`p)c;Wd~`k8a7o6jA|9q`r9@0+ov~=zu!y(vO0s*&P=E<8 z87EHeo_odB)LyqTy{;7;W#xKlQF9l*w0m)~AAIY_0(Z-DPFAood-YabyVXG^EUY>o zcDH$dc88$6{pI&$(lPx%i+?>_je*BG-@CyJWk2tUuOt*fcaBfI9XDL%)wzs0kHk!h z59>C>m{)XO8uujs%#1*V2N(+8BD>|B62(;H0Giyamue@(H9y zK$BDy1WrMjsi_(g;ueFW-&UrFR33&v%;wkf2LdyyQxxMZnQgf7RIqT;K(Q)vC)*%M zy|S=}i!OU;N|d!FIyg!dU`$Dnphc27U6t%a)0h5kMu&a=N;@@{oV9wb_b=0&EI@e1)eYdl zON9I}cpax71Y`>R@yk@?Z>Qh0Sag~9#v_tS3MKY(0-((G$N(zQc zqXi!E(D2pT}W zsSQdJfje&tg}83W$%KS*NxI8XCN?qLm__6HYk$0p8P|EA8Smy^2I1~1uZrNb$m6)m zWwX^>K#aKMA9Ii<*>@WgMMr0PipyMG!86K$aenG(QimFgX*i|Fm`pPoX+RZ0uY*p5 z(t}om+Jat#LV^aFXpHv)Bq^EyWK7VgDym*ro>rz;u2!~HzE*}*iqKQC=_skdvavtke2`SY&z%b=(xm1S=XWXcfJ%wvEXA;{}&-d6pz zvwNI@?G@0><8Tyl3)S!WZR5duYzdaItFEBofObrW)v&=s*oW{RlD#b1N`Hc2nME?j zOwuYbn9wn=+(^KU??VpC)>-rzJZ$?hX%Tz1evjqC`xCZ> zjo4LJE1mzh+wa*yEN;;uC%Dlb&y}0b5c)`n6-o3(CSU%3&4tha5l~}XlHaG{UreHn zz*1e$nkhGKCJ8iD@LOmAnv=c?Y`i%Q$~}6i$VXC@4l_xrHWfr0Q*316e;p%Os*MeH zG|A?Yb4E!kdsAkpJmW+go{AcQVuz0XPWYD6KlrgeBKRerC+G!>76e?Er6{~suFQl2Y zQZ|h70m%l0rc)`*8J1IGnoF7ov`G1WW?UCybA~%~r@#$pU=*rV8fkM99173vSly>cL71A-Dg-+=lW?U00g-W1D+_d7_^7 zW!#c?oL6^jd%JU4%2RPmF|Bnj_bwpN1weYgKXl^k0>14*6z+u}G5H^_Mk7W=u%z?4 zF9b`F^@pt3c#J)oZ}{q5v6Ez7qv4o8W%SwGWx}xE+KvsCMb~N0Eti%Bjg_MT41BT1 z%znjB&1O#XmDZmURDlIg1&aeEmvzhHR-9TA*LK1Ki=|;h6MkQViNw769=Ai?CbfT` zJLVTu+1;;lbe#luCXfJHLZ*NqkKZ~AvK+;>LY%sVr~*Yc0h9H3TBsap=`I@Lt4oF>6&bR-e%cQ7Pg@r%ZhOt zvRuchX~@hZgGiDDj2Ux>ZatK>u)NT>A zR_7wJ?3U-=a5o-xabbIx8#RA~s_0+Com)wyCu3!nsiz@GPfJrYHU)Yw*)k&aG$$K~ zvNofL&@)ZN(t*f1VOvijMCTo)oa;Dal<7=6{hdzyg^)~w^CHQJ#vaCm-V7V0QcZ{^ zlGaSGN4zr18YIn1(owR?S46tVa0BZwjVLWGkYV>Fuq_d!cL=v6u(Fo!JjH=Mbx~&b zShQ%!f&?XkcRVyu` zh=;L|6Ro71UzWryh;fvOCWjPcNHWIRkb=^DA6<`k7x4y;OCLRq-j_*V|px?%Q5lcG4L)%vc&3`)WLT{>`HSls0f01QGf3oM+~@Rm4$U?2#-xg9aud62LNE zps{A-%_gI^TC%$p)fOV3pU3+CA>>fXh!Gv<(J8JT96@n*EFLKV7i%AMMr7tvTX5|w za?u@Gu$kW89a;LA1qb0n46oC55<*YEnTf6Mq)D1Vsp>$Y;aLkds9+c5^&EICt>U{! z&08`#)-5z5=$j<2Ku$7#&$`-t>28N9DShalGiE^9;@b4WI(VL<`KvwieYjkf{4FA{ z5@N(rMnawhvbAB<`O}GxrVfLl(0&?v^C?X2$9NT3qU^6Y_jEF^%?hp8d-r-I1VRUrE z`X7#H>fv91FCiIUoJH@Q2=4{G+V1`6_(<2aryIz6y4qkto2059C^WNb9_^V1PCvh^ zf?0;9ZyI-xK3}hd4V(z6w$Nf&xZ-4aFm<`ij>kaDWGZm@SG${ish%FEyX_k=7Bp4A zPGe`C$z$`L8k)-W`?00-@Jh8spQp(0Jf?5(>Ny$W|Ar*Q!SsJi&{O_{nEI=Z@qJgMxGUr_^q@N3YMVoo`YRK05W6j3}OjO!FT)^jkQ;U`{~U_ z{j=-3sHkdiO!M4OSUJ`yX=!B+wxIH9AElBBij^Q+$9slmG5Y_*C3dV&;mnT2Qi}2; zNKbZp+Qm857+Smk_jg*Ai#&U4*EW*cPV8GKU{g`H3Feya0mfUs@AQpBQ=F%}@3B5wl9lWcPq+KGlq2#dFy56G%@xlb0iHC!C#Oeef6 z=2{@vXDH&@^dcmckdFK~y}3SX{Gz|*(dv_mpj0A;9jxN_5>Hk@@y8x!5s?#lptH@xOO`WoBUcufR;H`#Pwsxc+RpUvKG3RxNG7 z(^kQ!>ei^iy)PpRK``hcA;y?8;Im0Ipgh)7tBL7L^yim1428!s8tkzs!bmcxMJPy& zsNo2;q>6`XNOET=RMumR3{{ASmRfc$wZX_nHt?|8H#4LcC!e{jALsI4x4&e6be?=} zx4T~h0~-kOL%7P@P%3C0Ndou&gE6o+w)PEwq@V8rqJhaTxm&Yad2`*F0u$ltg=2HQ zwAgAczQh!$1i8(@ebU9975>rIpW10FDk(dw(&hI@lz0T}M}b-VP=>zF2Gf8IDCslE z=c6Ox1*$UzU<$6;@|ON*<^hwB(2J$Dj(vf?$Vmpc4=~-jd~>zCaf%hN0ia|1R1+xL zJ^>HJ1?yZ~)LrF$jg*{6^XSEB;DNHcjs*!O;p|Lc;i)buc1Qq#OEP-f z2QaHmgA9c8YxDAfSs7UVQicuuSaU8EATOr1w6VW_^Qt0dUQ8e2_m=!mdLvown;Q+Y zFf6{Zp>^kqxF!*Ph;<;@K+D9v{;l|t4ul|T2r_{4#QPmUHVHHV>Cv(HAZZXk#>RL7 zi(hAS#4bm+xjy+_&8-{m@}NE57;YU-%d7~< z-ddkj7Fns7$S0*YK=I;L`a^x-qGvZWEVXhv#CpWI$m)9J*^a7BB~Dt)Mpf(7`QWsY zB5wPeX!dhcbzPi`>Bb7KOx#c89??$(9(iiDVfrhie$`6CTHS8?-V2)<$ue>x{=uJ# zHi;ecIzz}4xpmk4xnboSqx+I){I12$Ga0D=xBIfe*iWuFMXvbJ``PR3^#t6~2R?i? zYnNhlY-rzL+y+2N#%u#@H7mW69?m<+Llf$m4#>JW%F`B;nXV4|e2e0h=BdF5R}|=( z&m_ON?tmVNJs0pRoVR4z18{nt`6|Lg(Oky{oCN776#T4Gu0MAnB5nTv5HwLj2_+=^}-PQ!bto#YK4L1Z&cMj z@}<%GSG@xI{MsYlWS!fj5p|;hTH39AQl8c6#ie4*MP_mGymuEJRX2cHF;;~-SEQxh z$n>6Z4y-UoK(a;nAZ?pW$*1Gyut~~zIKdvyp9tfJ{;tV@mm$?N!$&K{D0v2fBM*!K zZ1qQBE@bLietI*8NV+ShetLjY#hNWO9=KkPxDgjHbS|R~w<>UBE<)@oBd#8KbO!?J z(u)Mpd>lZYU@w~?I~zgX_1VxT3vulA#PFFyT-sY>YM@gQ^vohObdL{U*waWO_9ATEQ!#R&a&c;> zy?(By0>n25LsqR>Aau5!f%B+1pwp=12O6MTV*ERJk);R&mcO`)^62M9uXHTp&Nsbw zEcu{Q79r4nO+~0rirPLB=P$1DRV-{`H!*X0GxP9fXZ|&B zUltzJyzCO*KOf1p%Uj1Ny-?qc1km(V%0~pfv$Bn9^PbBetEIMdBMYe$x!jMU<^H%G zDT^m7yF4m(2Cr+4h-69C&^8yk#%O(bN;j%EEhYx-@zquwAE!mUUaFSU{$-)wn^&2D9wW!&9#iDj8YU95N1W znwE;6o?q8|_rb5BY>i^|Rk16X;k0Ou#8b5RlYysai3DHO@TrnwjwlL8 zMdR>#Sy-11g_DwJj`$`wKEWEz1AP=ql1CqRa!eAb!+aD*^1AOK*CKgHq9_-k`#5xG zquVvgrsx*&^wDxRg!-64;#D5hz=TUgo!pfHw^x%dqajin%)>S=(HaR8y7`y1zdK5& z4q^pKE5!^sT4^l93|a0ETIt51Q0TmEN~#sAC7aa3v>1-OEMv3^b;_v0k%2V9DyT>j7(@W zfqZCLf2dmH#-(f4mSCI&dWq<_Ansz8-OlAAE!e`gp^4EI!6yModOnk7R$u-x@Jzp`wPFkiD2=6liDIVkVXkXjFVun>Swqhl<o`SxenpX0Gv(v8cZ@p+|d-%FifFY&JkQ^rcZ&LMZBhu*Pd zV0quSMpI5s8_dRf6SdTws%cQm3U5}On(mbIWT zxdp>zS!j;SB%>B`8a)hINktYXdyBbrT2nLWjMSnvT_dAhm@yjdC{*s~VdVyriR6MJ zP#Wd0@?Gk{Xl49Q)29HhO4E<$mX@mx?bD>Dqm{kAcd(WaP7N;VYSrX0p@M<}1&Qb? zvum!KgYG&)*!T~g;X{!PL=t$C%;3|4L3JF(%=zRihU2VDOSi3k7fvKNaWW&5&?EiH zQRX=WXkSS67j*dgd_SQL3)BLy=EZMq|cS<)&{q8LOv~f*o5u=)O z7VW{Vb5=d{HFjRw93n~HvafnI;LisxY^1#>O%NEHfDTyTyRZ-ryEKEOGBP4$tvl2Z zVnb)m$Ay%(DYg%&)XV8nBk)D|V%RL~Z_S+auHNmkjt>d-^gYK{7I)3M~lp+Zpx{rpSZ zC*sr$ehg~RWrtQ2xh=@EeerYb#k|TM75j33<%#brJyM1y;4X>mAXHJla0bjI3ji}W zA3od20Xl6Nw%GOGPdDXz)21fxm!kPO)cDSgsZOH6p5M6iblvGFEA>b9)c*25Mk!mw zm)psx(BS!cn;>@oS2WI%j6AFJr_>X{PrzC_WwCH{vKh_2C z>|mV)u?QiK#|I^(@jP7Qqx0w5wE6f&!}2(wZ)=gotYBGF6Gv<#DunyxA2La(-xN-% zZDNAa|CXdX8#q;CeWVw_wUv)hIr>T{3PB_l#}JB+GtZlZ5c)KcNH0^~AO0bkj&MGSgx*);)QPaJbs)53OvOf$ z$#0^_A-oQz+ zOd^<|xkl9lJYpEK3iGB3V{CIb;T<3mi^GK2J0wBtlW-cRVv5QRZPZXW*=5&p+17+0 zmkD;FA#aU=g9l&p&^?rGE*&_#I7?w9#cT{>EV`RfRNvr|VqspL%I~bH8grAeFcuHK z^wFhdkKXS=T*hjt9GBcic{I9*GC>9QyDmvMKS}#7`O)HE@^E2++|cp+QBZKt?4So< z7M52{c_}W|?9{n3(qp}YZY5KirVYsoubr`m#kCxHXy?w?246nOIy2b^bufH@%p!K6 zms^HdmkS!R)r^;3BnMYCf2CYqFfYb=aCX6xM)EYr_h@5RvnZiZPG-RWGl+E%C1qr9((&?PNZ)u?Wpl z)J8AAUbcOG*eQJ`_H0Z(H1J`ls!PA>(^Vc-`oyzp3Y}EGdE9;xWT8A2QlxpVg{;-w z-6ub#Ep0f3N`h*-&hW7{yxvz9s2uBa#ubf5#rr7 z@6ttyMi7rJDuibTi@RbpgoUKhYIG2LAR1vMQF?njazUVb-FYwglGPH+EHf%m3m`%g`axUt3>m*KJBG7^Su36BrQrt zX^;00xmVaMz8}!)A076$3X}VT{l>$8k63(?-C;K#F&8fTx?MX5pZJC4S$|x)s3*SP zc0Sz8ug$D;rk5+rn*Fspq$fx$&vKU=uRL5{Zneqbd){&elE1~f$xDqo%!kN4)h2D_ zkKW2%;6r8a71BHHbEI&6HhcX%?#-HQ_uZIoms=O+fyx#M_zoH zKG{=Qu@k5j{IT2raB+3EYt=U_8{4~dH*Hp0i=N+B)>yZ*n|}N<+5D&e`S9n}upKNs z-9zC`to@JGJie4sv}tEfSakT}UlM@_Gm<*bnDpty?bOzWYc>VnT{@mRM=lPz!Jn7g(+uFGQ zHD-Seb{9_GtnHJqac}n7=jGB{>bLz$zPsqt%9;9Rw{Kg2fAu8m@7hY+S%1o^uinuM zEB?N!zdHB&ojW?SvuCGl_@y3i*xs;Trs?aP&Bl`og8Vf(cdOiF_dM{O>2ZNbqNaq1 zYvB~ZiW$<=Uxg~~V7~rpQIqHat(HX|9N~d?0!3_g7sMn6yyHEXn(Dt}<%2bIYL|-a zO7imD*VZ92vzy(Pd3Vg=w4y2j}^U zl-f>(BM**ha5|n4taM6qXLV+Od$3MG$2G|I5_9D$xhKiC6$@VepD7aXF{)v?_lE3^ zxv!QolzclP$)e!+;NaBa7Y35IzIpGR&K{w}zQJ&o6p!qV)H!PMJ>M)GTO)2A)nk1c z*lL!_Haq&O*o!SQGZe&rObMM6y@hYN&LeNLb6h2BgxOgyEe-w2beH+)!|(&SA-qA) z_eRO&+)(j5p`75pY~OW*6+2cv+8cT^o9F9v87I}NcfEKoC$5!z!UEYa+r*#vi~m7`_-bq=6!L!M;LNI21xsN2DJVa`M8Vtu*z^kG z()Y|u%U3Xju(7suA!S%ZP-+^y$TBhmni8%M4b*3>V5ATWG9@Lo0w`brv;fFQF3xl> zp4M|_6ls09_10zXu0`*@yb3B$3*v8BDA2cr`5_~Zr&Zb|4`JhE=JgL#T@H14SWQ?_ z9Cq!A^q=bfZ)^>5`iyfJCmAVDHkzP0Q*FZcG`F@B!T0C=VvCHZQM*7_@&u=YN zIlalr#_Z1OO>TRp#E3mn`gp4(a?hA^sUPJRs literal 0 HcmV?d00001 diff --git a/Tutorium/tut12/src/functional.py b/Tutorium/tut12/src/functional.py index 8f0f0c4..6483d00 100644 --- a/Tutorium/tut12/src/functional.py +++ b/Tutorium/tut12/src/functional.py @@ -5,8 +5,8 @@ def map[T, R](func: Callable[[T], R], xs: Iterable[T]) -> Iterable[R]: return [func(x) for x in xs] -def filter[T](func: Callable[[T], bool], xs: Iterable[T]) -> Iterable[T]: - return [x for x in xs if func(x)] +def filter[T](predicate: Callable[[T], bool], xs: Iterable[T]) -> Iterable[T]: + return [x for x in xs if predicate(x)] def reduce[T](func: Callable[[T, T], T], xs: Iterable[T]) -> T: @@ -35,21 +35,49 @@ def compose[T](*funcs: Callable[[T], T]) -> Callable[[T], T]: return reduce(lambda f, g: lambda n: f(g(n)), funcs) -f: Callable[[int], int] = lambda n: n + 42 -g: Callable[[int], int] = lambda n: n ** 2 -h: Callable[[int], int] = lambda n: n - 3 +def poly(x: float) -> Callable[[float, float], Callable[[float], float]]: + return lambda a, b: lambda c: a * x ** 2 + b * x + c -print(compose(f, g, h)(0)) +def main(): + f: Callable[[int], int] = lambda n: n + 42 + g: Callable[[int], int] = lambda n: n ** 2 + h: Callable[[int], int] = lambda n: n - 3 -print(list(filter(lambda e: bool(e), [1, 2, 3, None, 5, 6]))) -print(list(filter(lambda e: not bool(e), [1, 2, 3, None, 5, 6]))) + fhg: Callable[[int], int] = compose(f, g, h) -print(list(map(lambda e: str(e), [1, 2, 3, 4, 5, 6, "hello_functional"]))) + # f(g(h(0))) <=> ((0 - 3) ** 2) + 42 = 52 + print(fhg(0)) + print(compose(f, g, h)(0)) -print(list( - filter(lambda e: len(e) > 1, - map(lambda e: str(e), - [1, 2, 3, 4, "hello_world"])))) + print(list(filter(lambda e: bool(e), [1, 2, 3, None, 5, 6]))) + print(list(filter(lambda e: not bool(e), [1, 2, 3, None, 5, 6]))) -print(list(filter(lambda e: isinstance(e, int), [1, 2, 3, "hello"]))) -print(list(flatten([[1, 2, 3], 4, [[5, 6], 7, [8, 9]]]))) + print(list(map(lambda e: str(e), [1, 2, 3, 4, 5, 6, "hello_functional"]))) + + print(list( + filter(lambda e: len(e) > 1, + map(lambda e: str(e), + [1, 2, 3, 4, "hello_world"])))) + + print(list(filter(lambda e: isinstance(e, int), [1, 2, 3, "hello"]))) + print(list(flatten([[1, 2, 3], 4, [[5, 6], 7, [8, 9]]]))) + + def add(a: int, b: int) -> int: + return a + b + + add_but_variable: Callable[[int, int], int] = add + + print(add_but_variable(3, 2)) # 5 + + add2: Callable[[int, int], int] = lambda x, y: x + y + + print(add2(2, 3)) + + print((lambda x, y: x + y)(3, 4)) + + print(reduce(lambda x, y: x + y, [1, 2, 3, 4])) # 10 + + print(poly(3)(2, 3)(5)) + +if __name__ == '__main__': + main() \ No newline at end of file