From 5fc4c31acb085e1cc4bcd38cf61461518dbe684e Mon Sep 17 00:00:00 2001 From: Shine wOng <1551885@tongji.edu.cn> Date: Wed, 8 Jan 2020 14:52:00 +0800 Subject: [PATCH] update conclusions on linear regression, update words.md, modify some mistakes in previous cpp conclusions. --- c++ note/chp13/chp13.cpp | 7 +- c++ note/chp13/chp13.md | 2 +- c++ note/chp9/chp9.md | 4 + ml/linear regression/images/gd_diff_path.jpg | Bin 0 -> 93863 bytes ml/linear regression/images/select_alpha.png | Bin 0 -> 26694 bytes ml/linear regression/linear regression.md | 392 ++++++++++++++++++ ml/logistic regression/logistic regression.md | 20 + ml_scipts.md => ml/ml_scipts.md | 6 + words.md | 50 ++- 9 files changed, 478 insertions(+), 3 deletions(-) create mode 100644 c++ note/chp9/chp9.md create mode 100644 ml/linear regression/images/gd_diff_path.jpg create mode 100644 ml/linear regression/images/select_alpha.png create mode 100644 ml/linear regression/linear regression.md create mode 100644 ml/logistic regression/logistic regression.md rename ml_scipts.md => ml/ml_scipts.md (94%) diff --git a/c++ note/chp13/chp13.cpp b/c++ note/chp13/chp13.cpp index e66274c..0f61121 100644 --- a/c++ note/chp13/chp13.cpp +++ b/c++ note/chp13/chp13.cpp @@ -1,7 +1,9 @@ #include +#include #include +#include -using std::string; +using namespace std; class HasPtr { public: @@ -45,6 +47,9 @@ int main(){ HasPtr ptr1("2020"); HasPtr ptr2("2019"); HasPtr ptr3 = ptr2; + forward_list li({ 4, 5, 6 }); + for (int e : li) + cout << e << " "; ptr2 = ptr1; ptr3 = ptr1; f(ptr1); diff --git a/c++ note/chp13/chp13.md b/c++ note/chp13/chp13.md index 4eba10b..509f8b9 100644 --- a/c++ note/chp13/chp13.md +++ b/c++ note/chp13/chp13.md @@ -40,7 +40,7 @@ Sales_data::Sales_data(const string &s, unsigned int cnt, double price){ 因此,应该尽量使用初始化列表来对成员变量进行初始化操作,这样可以获得更优的性能。实际上,在一些情况下,必须使用初始化列表。 -对于某一些类型的变量,比如常量变量(const),或者(左值)引用变量,只能进行初始化操作而不能进行赋值操作。如果一个类含有这些成员变量,则必须使用初始化列表对它们进行初始化。此外,如果一个成员变量是没有默认构造函数的类类型,也必须使用初始化列表对它进行初始化。从这里应该可以看出,尽管在多数情况下都可以忽略,但是初始化和赋值其实是两种不同的操作。 +对于某一些类型的变量,比如常量变量(const),或者(左值)引用变量,必须在声明的时候同时对它们初始化。如果一个类含有这些成员变量,则必须使用初始化列表对它们进行初始化。此外,如果一个成员变量是没有默认构造函数的类类型,也必须使用初始化列表对它进行初始化。从这里应该可以看出,尽管在多数情况下都可以忽略,但是初始化和赋值其实是两种不同的操作。 > 初始化列表的执行顺序问题。 diff --git a/c++ note/chp9/chp9.md b/c++ note/chp9/chp9.md new file mode 100644 index 0000000..4725192 --- /dev/null +++ b/c++ note/chp9/chp9.md @@ -0,0 +1,4 @@ +Conclusions on Sequential Containers +==================================== + +> `forward_list`不提供`size`成员函数,而所有其他顺序容器都会提供一个时间性能是`O(1)`的`size`函数。 diff --git a/ml/linear regression/images/gd_diff_path.jpg b/ml/linear regression/images/gd_diff_path.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fe68626e68eee826b02aacb4eec22ee48fc3c1c4 GIT binary patch literal 93863 zcmW(+1ymGY7e@strMpW)TIufY?v`4XUZg=pxyE~WeTKMMwojr$L zcF)Y4nRnm)#l0_5LrwlI1{nqt64F~m1sN?Qq!( zJm#Y%3h+OTwStx^5|S??5>jv|64E{JRq!4X5`+s0>A(UBN$3X>60vJ$i>3(h!)q&L zc^RbV|6aMUl4Rf;R8K`!S=3GB7pSO&d~n-f;9w+08A%=Qg+s)AvhzMkCw8dU^j+5D+Si7KzCaEX{8GS`?fvch+KXVH!i^j!YqaN zZje1ORN)JfWH61!H>tOF{{%bS)KAu;5k~>-$=^#3GRs7e!i@+^K3tGrx6PWt4M%-b zy-!}5FPM{I<_Vh8op*y|H8oP-8G%MdMg&Ae7>4SOFEUn9n%mkKLOVxBu#{NZZa6DS zOrLh{`8qlrR{SzO>??n_we^zpxc@F>Q}*)mVvY*=Yt!ur&0jsCr(-T^*>?%JDx$F?bUYIYGFRG682+E^eBvH zH)>xwZuA*TLx!vW^m1SOpoKBcS_ z-X}f}tmZzn3wQa8GwIOOd8d90E}E$PW8NYHh^ckVK1IAo+_se@!2ks{wa3YdC{eWR zjcJk2E)GBC{80WdygI-k2y!@t2Is6XRo^v|M>##5|Jc9Djf#pYfxqpvpo**1`X>0y z#+_B|;9khMe#YI$M=^=PG;~_1YUY=7mAI;Q+l`H3m=*?zea47`gF|65g+Z~jEUL?* z(-CULLk1Z)Xg&7wskD9o?rc5{3(i>zmctkk%=9n-35tpBtgQtX6ws$=aV|aPK$4y1 z7-trYKO1B$veC(CUMj^EAk4@WBhfyeth@`ANMgu(1*)yP^H)n^P$|)7Oh(t$&4V&3 z;suXz2RZ~@9V&-kVK%BOTV{Ghpbc#&?RyTctWW{ZxYzAb>fpw3$hk6BY9R-#v;*t7 ziYSB>EB(^mWq@f*z&{@gN}m6Zh@r+@%~_@`oxgSki;R-S$|2bpzUGNrA^CcdZ8w_j=IYw%Df9^h zD(@Nbg_-HkzoE@dIY@mjLi9m7DQ7sxs`L>HrMp{~DQ4BPvRKu4MQv5{5XhP8&j_4> zGo~8oVgsM5b9^j!aSwDuKu+fNezs$Ua+X2SfQ`ri!O}}lnjrm9$R1{=N1;MKp@N_9b#3}U4`Ya0J4+)#?)$P82=AO zFcI!TN40R8Y72@8>f_=c&M52tO*i>hwKG}-D4GPC1Sme)_4W0Wx+34T?28g&6%HAx z7Spb6|35)IxR!hwZeCvfUs17ts4(`rEiH?4GgAAAZsdfRV-qT^5NM$8^1(d|v zOeq-FPI+{_8k)1*Fg)AzP@NpGU$asJHcOyIR-3&|(TeJ``f}4=z})uF`C-GUAO|k< zZ;_{nz%X@LC=BW|DYRQ!cJMuZwnUfS{F>7G4a}^1u>?3dlGo?YFG}Gp zgIg6r&HIe=k4wa+qu|9WslJTPIA^*;v-pSwW;VqnVl8Fd^%a;ObJ35{T^UUo)7g|y zkrA%GzJpIIRFm@+%9667JgTb#Rk!+G?Vbir_8H?k(dxst9~+yR6ekI+RrGyPg(?nq zuP&Wj+P$(I(zSGT2hv*F*>gU(8a>+aWk6ECF4hh6ej{qtzb}-^>33p6OQ?nl|cFd&_`3y4g6C;bOzS;r=fA9$&(v&T2FRe zAp8BZ{g^uR=|)323Hd~HU|_%r4AxBjG`pcQ%WIgro=G3Ksa~;J-2%+FSUBvBzJQ>h z&x?O63kwHyWy9CWGe$x^8FN+FuN}Ki8ZXUs2@A#}{);7~!^1<1m^|jFDqjO#LRn3& zoKfIPcFxbweH6{%93Pw}^VJu#(_lg5iBhfXE`vri{vP7|O&7)Xmo1a`Y;VerjDRJh z!ibLq+#C{+6^{fg`+ro)vW|LGRaMQ+&s&P+d<32>7@Rd%B5Gmw4f_1yK~}gQ$Q{Hr zd{#zmM3nfZEYrGGVwhu%GhTSCO)yhhZrV?s zK$f$R!OqU^@*x1}T*S`LuhlxeX=~<``Dg;Yb+EHgWp z2d;{Gd{J6|F;%lEpNlZXS#xl50uZ{@n}Kwg!KONSY};IUv{->;W@^e!fh8y);Jq$~ zgBz9K>9?v2sSvuLegBE)0ynIn6#hBx*iX2Xr<}4+3Y}Y1@9Ku~xD z3?F_oD4Ok|1!vrWG8WynQ7(u-nG03SHi(R#t!%<}fn*{4`S^6L>+3OMRxt0AVI7cN zJ>k&?ngodjum;;bYFd4rU1CQ}Ox&v}W2kHT z-cXkiW){Egt_UQwK|}`szpI0-av2s)0+>c`v+81R7T<5PCP+`?(Ai2oFvg!pUHWEt z=-l-ZiFM13ac+={OMFX}&*dI2_VKEG%E5@DCP9oGeN_G)h22A^?>yf#-IpgI9#{>~ zzC=f3*0I64vH`$5mI|EzY}VJl7rClKVakyPa2hTkkW$te4~r0pXo0`O3U9JEIlvH5 zt%0Y^-1Tc9mQ2OX7n>=ha%bTHln9;rC%0bJ*>8TD7;XC0QJQfcUDbqejy80xB*h8` zm=6{|{0 zRvD1Pru9Ug7l_kTf+QO0>HdFr)MZM zHLzoqGXC0kv6s_D>7m-3KPUX+W_H1H*#=xx!KS<+uyc8ta_0RH=67ReMC<##!=i~vN>dmtNp%4+4}Hiv#YkYk%vm_ z10r)w!cEs6otP?K4R{@8rV%NF*B3Cpv`-f76PVk(gI z0OXlpT@8{{r*N*;n#dj-txKif&fL7c{eeIP06(_cAKVAFDIuR4ri3oms4@nC_@Nml z1JP1wOTRr(bCdlXc&o~I`DTQm%uzpvZB2V$x6xo;IG`lV`Y5!qv{v;z7ymPQkRqRi z3-rzGH&E2+Nz{t2uroQ;8q^rD&8@EPK0dYyr)d&Emg>CBtL6KTTEyTB2+&atA9@5` zx4+nc(a`!jtwVZyXV-j;nX?C?dZPwl()s|UIXS6^La)&K#xs~-bl6|4Xs2!~4}=HI zxH;Tx``%Bia4G##W64vEUtIYIObfuX{QNS?%Kp?- zNXmh-)Cv{^COUzOfO!hNoouUfZe_filxx=3tn8QVU7|I7Pj{Dd%%CU z4!@S=$X9PQrJ)PSvppcrM6laq6PaS=daFOi}dZnN3T7LL4&Izt}w`si+qTmeVcBWSy3;c|U{vSbP7mo{#HDYfYWa>1~Gp^rLH>Xx@QK%u~- z$$${(*LPs&#jBF-4CL>tg)paJxmNX~*t*u%#dQ`5rpinP^v$zoWki;TX}Cmsab`|V z0n}C~t372rC>h2fcgZ-~b7g(*bEtdP4#ztAltQ2xWe;0rFI}~Yr$wIf6=e7F^YWU} z=~|r|zr(aTdXX`@3rrlae0%_ez@#rVx*Fzp>uO`G3}tk8B&4Jg@gCz|^@FXDd*mLu z!&?FiCfL9QE*W7;FIWq29s_UMRQjBllN@<1!W~#}GUg88E9x1ugSKh14;R4034&1Sk=u&< zoQJXv3C%C6I>cYEHOTztNAc>8{*|Qgv89}nM~LJNFx9QM{Nm4yjVLs6bW7w@v@YA9 z?h#Mq%HoR$lknq*5?LGY)U?={aZG(y^X80bs!#T3{~|zkjgM=}YdUb(Uayuw7ff9A zedn(OG$)NZG&-A)!adOP$T!Btkjw_0H_)AJkrb17czzm-e-M{%4IEo6iI_>Rum9+4 z*uS!3HcLD!R16=opMK*kvH(lH-KDdY3uc1m)%hh zoZ_pV+okH&Ds=x6EEAd2Sbd}sMbwZTGe9#TYrWzZ)?*nSd+jTlE$Y{A^C6E-d4hq~ zFq*eXi-_2+UCLOX+ob> zmpzYfp6t%OkMDB8EzjcCBW%Qdq4KW6W$6;>PGolcYP05dOj+5JyI@5ImX>kWpNmYu z#{hf~%vY2PqX7$&pzo|5d)n*15#|IaL)&%HJPR}7*M%JVA@>mb1%)t-fsTi=GDn~?PaFwl*ScsNLdj3>-qPVP7_3NadBoAk3o-T z1DV;`6DK#V*|5~Vt4fbfLId!Wczvkq+@`j%uQ!AV>Tq<|&i?i}W5IVr;Av>R#!S!Q zKU|1x>3h2ny{&7wU)cj{-4;KpuWrd=|5E#1FLJZl8r8+wSh#Rqb!m!!oJ9|WDoFCC zbe3HVOweG$k?{h(UnAvH351vAjgV4jiD?Xf(Jnu({B!=|6`dk$@NL;+k=H8!>Z*t{ z`$OyZ$KQT89Gho9=ACA;u>UhD)YQ~kF2=CxT}Q?NMgQS>h+^*Qh;^tg`ao>5+r#dv ztVwDSzh&RT=KauEP?G=G%@kY~?d zpIDXa=Q%DEag4=u9rA?Z*RSZx(~fpCLIj>B1S-nPysr-p2TB}A)$!qB+vS#NywsB1ue(MSmg#ld3?(GPREXNned+y-B^Yba{^1r-cijD+ zm;X^v!&HG?0deu&(^DJ}cy?sUS=#uMpZ0Yz#S`Z2Sj+4Qq*;r9J&)fs?Fhs!yHQNA z=j%96lnQuhElNhYiQ-XolWuS0FPNZXC6%#-23K4hc|Qzx?{f<&)15eTPcRTw~c=I8H1Gf%+tCCe1E z$_?PJo&>UhwFPixpWUp_W)J-itPoD)8~B1%tpxy?-hYmdox{^iI$kVshTrLcn4 zSFzi%*22y%!%;V>7=3{`#2Z<%#gr%nDU_FvGpl34Klsh-ulzy;Hc%r(pPRu^ToaPF zpEcA-!9^=%vxRF>6=r#H_xLTMbQTWzcR5;L%^rCbtv2lNVtqJjMm0$wV}N8Yb9)y$ zOx}VpmT3u(GAl`NNcWoVhVQRi)$T=60ahF!vf6S>rj93feCC%>;U;Ot?dYJhVYt8y zF%&-FAavC!1DRfk563d-+ zPTTg!Hvk{}K7)AhYG+1|>^J3JjiA>GFdGIcoq>D3|lUz2Yl*Yy-r<#DJa3^}{RY%gV_9fR#v_~e{(I1!&%HzKk-9~*p!b~U=NX_%RAafpH56ytGqs_7?b+_M_rchI6+YFtfP5~ z$;`>qmXP!A1kV4!j(9AE>YvMwS!q+mJq#~Jo1EJ`Pxc$DAHBpBdYq1PmQiMoAV`Jp4GtL1h z`1y3B)}DSYEvp*B@Prvzvw+U2#PT0c0DMZJS}3vC8)s31jwc3CPoRC7Ir!28@KT?i z0+|T?GKig8+f^IyhA2EAwj39w|2t^8^>gdE-jNsVV7SHbON*k(2_zq;4*v^kdiX@L zJak%ieZ!XozNtT2a4AUCBW#?7yScfI3qE_X`I9fhoWGy@7Q*Hk0zluZLBSAH-tTJP zq`FnH;68+$$k<{upS}sV+FT`5*WRDy(40KIX}<`#-J?BoS7X-yfdoPGrmjJL|6<;s ztNNLxv;BcS1dT52{a^3Y{@xz$=!eg>etxAc0m+v~O=BmIA6n(ZfAG9JzBw~W)TbIx z_lH{PZm9rigP54%D*@AMa6U25zp96=Qz>6X;-7ynuyKMJ?gc}Rk5HBz@u7sp4>u>D ziD#~&;i^sLPF3cZ%PejU28PNFOPT*J zZqKY68ykh*xB}&s^S_@A+dKCc**Y6;9pRVGW{`eeRd?7TefP!X}M@iGogS0I0+Ay zrS;{V?R$XS{es_58=VEN3_33Zaw^sS^!nD4#^i=hFa?>gePJ3W3L8wCTH| zeGPYRPm56&v$e|2=S9qgIBiT?&wv2-f}rH6)4Edl_Kgz097;C7K{zCa0fHXQBJvn9 z{d_rU5ODKgBYx}ANF`2N=IHoR5?$|$sk}OJ7ri%bnL@H^zx|1u{>P9Tk}ot;hO>WM zdu=|4)bmEZ&^5I6Q52%e&5|&)o`|s@v-_Syuat-L&pu*)p*!2$s*%xtyGCi8JXV1i z6R5Oy_mQrDe&(HAL3+ptie3-8!QMmcxD*_V2TM}_^Bo)^oBfxB{Gzen7+J(HeSFRH z1uU-W`~#DscJU-@RGt478l3SiaTqh7axY<5uzb3V-q-A8F37NOEbKTZJlJP)HG@SD zE%s8Se6OadNxq@V0y?(<-m`>N(D@>us&%>0)S)5e) z$jwCys0&Ha5D4yyKT_RwJnQ!c-GUq25uy`5aqce&2`sn-*wzA)pICS#`87YK+x+;- zp44>ge)c5KKxB0i(J!5PK|1ao>az>qn$-53p%-jXuWjBkqeu=qjc{+Y$YdyVlhT>p zLq*lG^+cOf6&H4^#oDt{$nVdu6SGs$k$wPdtL{83x2{fxXK z5HUN4Fn^qlX}@Bhat&6_XN13189Z3T#}d=klfi#99e99?39L*Cb#giZ(WPZXG^qexKV@vk*CR6w8~XMt+<- zV`66J?(Ny@2=$fJDuqO3(J$^TV^+~+isc91g#QV;lTH%9#V$O7DSPVTv70d6;Gr3W ze&E(Apn^{93E{j~c0UO|aQqVW(d6hy&?SN5!)5!EZYp(9j0aUmtMvKE>>vG)|JG?? zxrQ96m!D5)#P7M?xn++IKlty0ZtFt!L;j$DB6USXl%@Chf2)mirRqYUIt3vp&+9R} z>px!J5q==mf+JJ=ZNO;9`$+%hJaO;)i8DUd2PxhSyW~Cb2T|X-Jf+Dj3MUkK8zx`= zeo>4z>Okd?&UbSO&-^ot(+trA^5dKE9yNvbx8Kcg=$0v@FI&8pBg1fju7|?alaFMv z5u43^`6~o{(-1^I+OMN~BmV=yUR|te?AyJds^_$-{P_FG(Q-D&fjzn}|5fj5Z~O9; zwy$yH{Es#k&dJnWe)8U%o0|;ALx^va0h@->e?EV4kTJy{eb(1s#pHw!>g5TF{`k6Uw!m%vxql#*;_9lF>M~a#F6M+(Z=2<)a`J0680TqN`>c*Gubx;6K( zpzxMQoU7#%t>>N9ULYBawca32RLsj)5$n#(>PYuk2~f0W_c(sB48|6JOaQ6`AAYKc zanD@{?e6NfELMLUFdr~#%d7gYvt({@5l$Aw|8tzPC&hWFinF@!U#5pY;DY>DF8Qf4 z*0P`JvX9a9m-nFo3<`9}wv{8L5ji1-&rtF`J>RJmcG(^9V#8JEGSr0mtCvT~qES3m zcV4teRN|yHKISp*e@ql^zMUcJ{TWIW(Z~dG3Iu})Uz5j zl1?83-;QCE;3o(AjTgGQnyW$55w0&p^87e{?L1|l`dRFJy1Jm_PPJS7_ThA>Bkb=z z9L~+d`*p;+a`ao$Y)=hQGzy?~0oCq)vH~M+_~r7l)!c3#tb2B0q66qtAOrxdF$7qB z#F_yMvbR#|3r46<7a#J>UpF=mz}MDtH`PsZB>X1@Ze|5u9*qY+m9(7>?U2$UtK*C| zn4M-Ztuh_F6Cqim*TRjA;wI5jj2J_Eu`GHqRZ@9{f6{P7w)r=d`Gd%8ZQF9Vv>A_o zc~8$*(8>7gu2lGu(Q`mpD5h7gwyIOR6f z-9Rg?Q0Jk-@0TuBW=_@FwY#k^j(wkXNSn<5xXCmp8~Io3@tW`I??)+4dcTJk*PG!A zg$nUG32a1c?au=g&u75JmOP_22EtEpPEI7NXQ5c4CG&jA^QwLlE-i+OCD!!nVxcg#rd8vLNI9Z_E|yB`8Cd3Uj_b`+mtJe8toX=SYw#!6oW=YGv?+4N=?!VH1N?K`QtBqZYS zTZ-m^Fy}qdhF{zf@O$^Hqf2Bmycy`Z`rHHMT%sU^8I)rpqjR!phvd!-_tHsegmAaG z>G3-mT&!N~@vcdT;Ca@QLgI{6e+Ax$Z*@G6Dt0`GwBwUZp)LIZl`<~ar#INOjos#Exi?sQg!-k?+Dq%WUVhOu7=-A9It(N3yYj08 zl+^XNS>}unCr`Nd9rvw2mg%LOG~S1eo&NRx8n{_g#qZZx4aG=j|6?EX+wJm}7^?ry zu`$s=SVxl;1+;tT^Q}j$x?*7GW|4XS^70Zt`D?YjPR1(8tySOrMy?PqTR4)2YE%vs z9*iH3+;!JkzfYKEJ1C9#aWWV_70J~u-VIXD!@$5OwtRsRI5_abf@Cl_TYc|AY%x$m zoZ-zo>%tHBg>Q7^8shrsxPu)jCR#?>?G=2{mB=3#RC#*)p&ys$$dTqfxybX~W=+PS zW*_4r*{)wblGFv-J5^0N*B8_o+G=1N-cD$-L^|ZE&<2JmqLowI% zc@MVm6u)`VOcB*zT&UKASNX0T>fWKKN-`0zVY-{U@-(eke+ynCT zk;w6eO6-7_#T_=TJh#G=k!)wQKi#-+!&sXNA0NI_D6Rql)x|-;PCzYO)iLy21}{z( z-B*k*H&m6C3B{=i*Z$U}_x?H64*{3W1|d0d1)~R};*vGJW5x}^5A?dmwL8lce;Y6G z-NUKcBC#?<%XpXeOYn)m1sWBzL1KZ3J%N$~L6i)g)f-Y=#26DMx?#l6P+G-^IZbO{ zp*&(OonQf8=H)>c@3RZ5*%7Gjm=d#WWsd185_Uwf$jCWiWTM;F|MzK2)2SvYcD7~D z1r|$HN+}SJ2RmK_i<%=D4m9NBuKKUevuyXQhKnO8Z&#=-#GZm}+9e3HF}|te_s-jj zgQ8XB{!Gf>9?_SzFuG%j#+AO0H|I$7{icuGBF>pmr3sXXk(~f<8eJDVQZkZ-Bm2}zp zVP`ZW6(|D$g?rvmbbhUBxdCg+S|0wu1PQaWOugNIn<3(L;u}9(Yjifyh>F0S$6@^Q$7$>*%Js9HN#Pu;s9@>M z6iLvxH%$^m4EucB6P7)AqNKU6!`LWsi!lqU_SGBr-hM1>4E-c&FmhIauG#W+hRFXd zMz8RJA~w{(Vu&Iofr8S)Lz#yZe~>K8M!=5yyR_ifk^AQDm-yt~yP&N`Ms&inC%)@L zyocn^iIupve&JjEL6pzy(%$Y9f4FkY*Td0QjC2h1`!=WpBE)?{>IjX#6ykQtgce9A zSw&@-CbeJaM&Y=sQzx%5$42@5>Q+_q>0DCVoeCwu%@i z^^P&D)SH4V7jc69{#`MztEM3MD^;@=$lD1&D<>5`e13jHjGBzVoj?zW8BMbsgVx{A z>@y9K8AT3CNeqCtE-_wFML2WT>v6C5k2aXX>-7BIeA&gmfhJqU8Y`|@LHc^mNinVO zp8DdMo7hXj34fPyH8VD%x3uCeQWWp&;p^CEW>=gTtyX~oK9-L$1SoW(dvBwcMW&rY z-h1Mv!d1=rukscAW$>(C)4qF)i%9q|BaLUJ6-ly370D12pdz(7^@fZdH<4uPF5Byt z7|uRBm<#b_modsgb$0b+Z_ONIK@$0FHk$mWc-=b|VK`(}Ya>EdX3K9`NmSE~}DvNCTErFdz_2gq%8q?;%uBy4NPVYhZyZL!Kz<4UZ2N)bq`}+u7nz)Oc}-< zV52Ky?}9R`ajC!Pdees@a4nN)(N?Ae2ugow{AL_9V(aviO11ihdy?KrR&XjCsl*!= ztc|O?ic=)&WSVezOv_{!>V(8dYhG#bfeuk=&LradZ=)c-G+NNs4;2y=&!bpM%-Ze# zWdK(`Pt!XgU5Inc7~jz?qP}?!M-TJRDsJD7i!`?%zxykF+l$6~n{oZ|q~K$Ge^rGy zwl3HWuUot08Y3?-FYBrE%US;w7vB_PY>iGHwCs!*$oIPa1G@f$ym8eGS?%d517xI)4DA-bc#4erUv^Omz4eQx?< zu|OieA0gn{a^9I4w?Vdr=T9+pprglnPy zu*W5nl~nSrQ;=mIg?wW98rvYPv5qg=e^up^G41Gn-Mzy}xBoCjgX!d%P)!MFJ9%?p#h6f8h#fxdQ5dW&RH7fJApT z1z*-XL5*H`RvdbrtE7GcTG|tf9hk=bShMcoXmDTd&A!daLh~+upPyIRzbd>B0!4Of*u7CORoyd0ItP3s*M#bxxr8!3B-7=l0P2MA5Ryzkt_F)85O76~1X zaNVVPxh#6C zI2@)@fv{-|^Iej+GXf^*IF!fhsUFOFYcB)mzFJaiXjHh~#mvbV6pZ^VZV{KrBr;X8 zKHh1oWN!3saH@@oCA2|^1w|zEFsCNtX(kBT8P)un^Sd8ot9xvuHpuV4ob&!uKOMp| zA5DBf70~oPo0@*G~{p3#1gRN=jv?lj=9eslx>~6Ja2@1JN&~}s+XAVDw}G9HmUAl+@Ffw%IGx!#R@>nvPnUA%##tAyLpl#Z z91fX&Ng|}TFv7L4Q36$#A-3Ryq&*IId_HbpH2LST3T4LxLM4s}8zlzbpHmFJT{VGn zb?Nw~+oj2P5GoDrgr5@Zp}8|duFamo{J3Qm8iC&^+P|@24qo7=z(OqJ6_^Y%=m!&H zv@X~A@T?-pRuV@k^O!Z?Tfjq#B7Ytp(%PlrU@FNb^y`#U)KAMRz6#CgD*gK{ns7yU zk7+MUti2+FK97i2U>Uh~fyd!@osGF)u%B1RM3k?XJT@|(G|&9&6P9SQAa|7t33{Co zd@we%?MJ6X>nf3AlRW88ect2qOy=nd4%?|gE)k*bLlujJu4MU?QL6moCE8`G0+VlV z9`-7^l~C_t!Mzy1q>V;6M~7=bzwk%qZ8J}U457uG8^*RkX_pO2zzSM6D0LUbLIB?R z@`Jf&$UnHVT`Rb~#tW`)XeW(M@o>axEz z?KmjQB!{;l&-zOy)oWpb!uNLz^2R0EnsDy z{3nVEGmK4vg|r33w1Py9_>Zh&^Gn+oFcZ{d&^*!pTMaRsL%i=Yp+^Bz4ZVaO-D^lX zQN3imhxEy`$A=+n6j1vO1UCek@$V^L@P+qL0^8aJUa2Cgbj>?SeTz^Ft6suVNg0wW z^hr`$BAwTonwBMLKb(T8uUt2&+_KiPvj9P0!$o6*TUAj?j2ZK>bWU?Kf+;|UuTxk( zsYt+lb2IdQE0c{^p^!P#<$W|F!pR+J5XY8yu8*La47njr^6fxx4=wCSbYlgnT4c(D zVRFg^CVT$9TC%Jr`lT`rUbty?!YBvH((iaBZKv;>auzUoC-mAblXwDWYqb>!-NB9y zf%O|;+eDYeDLPVs$I?s&ABerAq{PX^Wpk$cuCi>G$p~!kQlZKTk+zvCHeyd^y4|%< zH$K|DTQ%Y#a$V8V(hhwW4-XfqjPog06O13NNf97)Ek-xJ=SwgZJUH5&vJ6QPTGbhS08YXbDo5Hf^OLlSAz4IkljjCt!ReZ2WUl5_l5I| z7DKyT1iU~24_77Ro$ZEu9z^%|U&h6dZA@29gvAIS7u@EGOZN2QG2Lv`m8lRG{*SmZrNni0C+q@B_;IMHPfrE{+pI0v^q>7&OU|~{ms6*hfWiY z+l2enT5xG-AV=N3TS+ZFBl@7?mMDjf${=jqTyI^rDX&m1uYelbLK8zK&o8jh*UPd{ zgsiJwT};qNXbCM8^NWFB?NhEeydS#@nf6z5c}~D_T>6WudYUg;!aaV?_dzZ4oWdo; z<32Lwv@!Go*g`q#k;L#{4;T;v^-UeC38*T&ms0G?BvZVfJ_3_d=ocdt)6};Fotcd+ zI;mgt*I1!H#w?8ZTM~&p10grcPxHjYk4Y@AY%ir%b*4iWg(N4q zvkA)#);EKx59vxuBAOI9EimG#PWVDnZC?k<;>G{MUVV8`%+E!_tlZFqY+YN`shx)^ z{6kp&PoFlkhlx&spR~ch#JSDMhMzMgySI+t(l2X%eX$RYv^umP{~Q=66c|I&RYaOc zT~N_AgZT&V5@uRTIch)C3C!7=Loc@xx>R% z=9%v!LUE{Yi(io~;%?NtCF$PR)=9}@Tx{+M$UmZFAm1d?F1sV#pFtvZ!q<{N>X38U z4bDZbq@WPVt*VZYXDOe5IZ3^|^!O;d_vYx9*}LlJ%KNxLqsy&|fC83vU=J@d#stri zjXKbBEspy(koNm{RSA2A@{Q`xYDsI6xO9;%idO93Z%QaGxQWLF)j~r;l$0`gYygdk zP8Kew?hzK`8}&pS6mqwmqb1Tp$0)mj`*oQz^?MOB``_GnDDQ~R1~a30``R)83M~UJ zF?J4DdZiGP=|a+bPK~aQ6!E9!Net7M(N~=+gb~Nb*1lm~b-8VAAFq zp3e9M9u_}a^7o9RmCtiTEtR5q!NQI}V@i#+q;Af|%kYi-?hc&VzhMP(@y9mZWKr@QWpYLlGSN>s1{_Xpy|$OCNGW<+M~K ztFfx^YC<7$-sxF)MJ{Wbgbk%=y%&mB3@`J;O35>*@*EkRqa$aX5O^}QTER2TJhHE? zWnNY__iE!sqUaYi(32>qT%K;YbkRVzoM4t4d2-T3>iU_kF zLs#nDVO2@Zt&89Sw#(siFqDp?iDu_UXZmsvsO5|+^GGr^_Xfv~;T8C?(9RSJFHZT$ zDzJ&=Z04hpUUDZ>Mri4{C^&ZNVP$4T%xWuJHQjOyr`{jfIs`!p8k~(%;6q08yzl7MtJP&#j{r7xgr*o2p%h_p1il`1E1mT@>WsN9= zzq&qIUB5gJDc??Ny*Vjpu;R|DZ*3a5^9+l!$`>fUCe%!?X@z|i$eV@N8?i;ok=DJ} z93rgWEGbly@EMek|D(ovHX6q*&@EAL;^KC%9{6qg`Kjq{y*dt8r+#^sVkSB>BDMD& z=hNG_A5HmcYLVo~!lw(f-)iEW?LpIjV`N|rRTr>^W2G|i>|5foxw$fE;r)sd*kT|c z`Mdv(kbZ}uj;;)(LzRo{oai{GaH~fmqvkq_A%}95|eF z-l)3O2{>QCJ1-oQwML6W1%Q6aP_#^`-x7iyGE6M({El4JcS#!C29aYc_ztntxcP7U z{Y*5xaUVZ0VR4sHOPXrPzWQg68sxTMQSh^i@STtvZPc$FOsAqfdGs>k&2tp3sXz8o zx?3_1*yg?s&`>v-b#1z2+HDMWqKs?Tde)>fq$0Y(X$oUAEn!(UTn(*xvZ8RC9jw+Ne$j@h4w?s%&Oi60U2R1{uK_BnI-=fz>9pA7 zl@&WOk>{t6B~?^3Tn58+Q}hZ7B-j)(!&NG#oq?mg`X+|B<1 zpg>>0?Fkacl*^o>{R0L?PL^e4;~~qd8CT~Q9NfFh#eBiuy*rGz$E+3$2E76KVnq}s z>>Lhp%2PW_Kiy)~%b33VF6qt|lcNKQ`5YMy$@($s*(u2nPN>hXP*2Xe|9|{Dl;1q$ zct4?1>-2Dq`)R^8*zbCIv5Bmd_%-MLc~qs>6xlZQlMoPb>vZpVgk^9|8W<`B*Hj6q zP-01O#8^^FVoDNO5mRDVk;#gTCE7bw4cJCOL9F2YIu6up9*Afp>LH@=ML?%1Zl2={ zLG{MC^`t7F42jZ=Bu=qcIktji&J137BJm!rl7@I)m-yA3C=r6L=x_Bvr#QEwoL3aqGuYZf4@Xqx73FkAa_4QF@&xVB zI^e5{WH2J1PCx0eT4~o$Gw(f%#ez7FxxBn&Fc@^zzR%krT~$>#NcHnLsa99MD2i@k zaKGQ@{{8!(DOuC1Z@xSgZW-Jy`&^#4wuFEWP4jTc6$KYugvXq_CtS$~Oyz{al!WLx z7rPl29<2k6CRr?$L4soEDv*5dG2{R7`>6l;1ob2*9ZZ;JHD=Ij9{RZ=)74?m(x zVv5QFqWb^*h`smEIr|4+#r*f*VD|N0t_Hf1 zXaVBTHof@g&Z_J4YfBUXEo)4wg$yJ-2hi6}O|wq*#G|k%JcdBr0_#*w6;LdxltiH- z#bU6e7BF zSR=_0j3(q)5S2tpzo~TAIbxPX>4e}tqBQsh@6=I>LMwc?jI3I(5a%Z1+H3>P9`|hCmoJI>99UcrloCF z2_f+G=~M3CyVq%5e^II3cB=2^v9c_wstRLFH@d4G;r?lOTpM8-W7?4EMpJ9RH%RDO zTAHGj$4bSDOBQa*v+x6E;So#DDP@IIB~E--rf<2{Jt|btv@sPxzZA@Q&i23g2>bv3 z9^-GH;H=O;I)o5WRZEgykEI65QlhknjuWg>NM(s@Pc#}boy|}{wal?0kcY6b?-w4sK0Itx#AZYO=6)SfR#HlTZ*-5{H6_8WSoad=pL8;W_0y_X(Ar4i0M zaC1}?aM=)_7$k-e1Xo#tt1z)aqJT3cBq^>8Sgnc55}8l&wojOh2*#j&jWZstJ(Ur# zB|7Sn4HC2pxrggZT>|4Z*6sUq3kBCS2KhN3JvyZDHsZ~hW?IY-YIaCSj79^vvF6#_l+^k$A< z{hvSL^5G?u$G^%)|J!eHdX!;^)-8R{wYoI*40ILp&__7LKRISD<*D0?5aT7 z7?s30zW~mOvb%&Z1Y=R5hEU>+!_^DCU!kKIWwK_3aWzLp8i`{hB!tR9niAAHp|y@s zc~nqn7h`>mxGCCtTrb0{r^k441ks=(Oh|BjgP06ATcDMo+zR3tHJMDKTK9oSZX4#8IdyUUxm_8$9JqQ&tUtk5Kw~Oc+<5oyEX?hc; zPl;R(Y6l5|Q4XC{gtQOI77`#*;K~K6n&WCk2T& z)+$%34Isy?n{tgcY`b$}-%UFy7k2#SshVF|{WeWJF4F@$4f;y$m9S#0kTleTu~tOklJ#X0^(x z77LVZroyOIh0+24^clUaF(&Kbo*k1N?tw(8G@%kf$1%28U@kAntRp;{QT_ApVpeko z|KuB-y>rAW(Hk5p53(+Jtl4b}h@@;{&2^L|p=G2ueSuBkqal5owPS0j3V~>icWGMg zmB&bpktQ9Cs4>{)Gvd)1zRYp1LL^7Wnh@nM$gnO(#Tmgl z{OlQ31<7cFbv4>#;2rV)U6l5$&YvL3gmh~{@FmO3bCUix$<7X5IU?0uBSsrsIe+f3 zS|`yC932b>or31}_Vx?CZ?`>^vsK@`?r^S45En&(Qi`jqD@LQy3zK@T+sn4*g?2c3 zK4evi?mGDcZ5pSW3ps#e#gYr2`gb|u&p8brP|6%{YCHiIVm!KAcIZf?p(%T#nii7) z$|r0;DHweB8N>hSeft05WBLzsRNBXmQ>Il#wOBGfxJy-3U~6Kd$cAIg_7-`bQ)<}W zJ794>MM~S8n|_A$Qi2b}TBB{iKRd$@GLkq#X-#i?f>tr1EJ^!==BBO+24DLs)1Q7w zTvhns8#Ms$FwQgS_b88_qRJ8;KOwJSJQ-u^0&0uvD}we2ImRtHI?3t(>mSiOoig}e z|0<`yddPG;rqW?8t=v@f!dfvw2t>iIp~2@IEwy$)Dl|8qp&@;$HSlhvNeQFin&^tM zsSHw)P@u8sb=yuW?JTH9=@O3wLy!p3p5WIajwWg*(0B(vAxMMi2CGoX7Dz%+uIcAf z1K;vyeh$@uc#$tgA6UB(D2)-gX0izq=?Fxboc%uj^222Ab_yVK? zl@dxJxR{VmaQP+FD=;8N5Le^1C)5kjDWaQsg=%YzU7h1Yg*FjN_aV}l(TGr5tg|Q` z5u7D>OFZdQFLTr=!51D|)aWEa;t2YERFV>kDLTw?J|WB?v3LN)Rc*FTvc8d_aAc}K4KwHsdSFVAZT>(Xapy&s~d{w2JZ@ftudv*3xlOF`QePo zzx*M?fBzw)pDu})P@}O?OuV=b$l)uSg24t5#t?227^A%L7Zk7WvI{3$|^qd|iTS(k~$+*nqQhv@y*!W<1_4 zAVd&F&4a4S(I&!$6judA+lFtYHC|aDLP!x5zAivjNRlEdMF$18Ld1jgsTVnlRr7u} z#5<4iAj)Gs;1v=am=Y8B5FHR_8!$a`h}VRu-+=g%60$x%)OcStvM{b{Ff&@_H*WN>+J@v-!~M>kJKaQ_ zpH~C&<`9S0QMC^A>gtM}ogMDnxzk}??RRcY<2I$)ROg`DjHG?JYvk1i!Qz{k3JHyX zT`fzl++!ZOKjDe_Gb+76e2wxJ<299P799BqB@v!#EwQ53>kA!)H1Z0wuw>tR#{U2C zr|kddr;IN>w${kj9WT%fAWh^eQP-#X!y}~+A@uxwPR^d5f3?UAL`6 zy#}Y!C5o63z?CH`i9sa<7ZJh=Z9G9M8Y$}xh!GbW`4y!JlHyE{fFsxfr7bFov3?9@ ziH-zUEAR!{t&p^F`l<$rhfvmFDuPMy&f#52P$^MZp_M_B1o1TzG&V}0I>q!gc2%J2 z8s~*TMeq?}-K1_z27OIf%@MW2m8WPEqoQ5ZU>{%LAHf4Nq$+N$C#O2WlqE=`|k%p>C!`Bp%KxheFYi2uW95EHra#3_$m2%6&0jIq(K06U5bo$|I71)2Qf> z5DJ2_jrd$h2;Sp;jh8Vx*&!4c1WqyiF(L+qfnZP}!r2wUc$5>IG%2N$972sVTg}7T zK1GEJ$ud+tCKOjVnPYT=VflK2H+@uOP=0|^DO!1gt#RI>!V;%b2qlCHuVWG8#E}oM0o8w1lq;w><&G8pQAi}f}ORMa8 za&pq8VLvaYB_jBBgmrm&i7}=ld2UW@-gHuJWc70FtmRHMzi)PdJSU`w^=K@I4*@Th z3;z)(;eDQlA9Kkwf~p$lLqy?AL=2JiDJiMfWKvDq2&yUD2;LF!A{Zy6r*rQ9$46wp z^B$8wK4*C9NJ_!$h_E%m&KE>=Nr+M~8si{R2_ZJ<{s6yN;;&}V?=jdrqE-?MO%+Vn%D)ZhbM&EqIbt63c}7dK@@}07@sDXxJNn92|6Jg z_Rw14>LorlFzk_T56}kYKm94OSImb!u8N$;XXh-x@pXoS5&G&`Bg=DjOeHz8H$vwn zR(rHkq(O+L1>yVel9m@Fzxg)Boe8U+!iz$8*Mi@OjT#50JKBQBv}9882zAHDYW}r? z%1s){+RgdU$1wsKAX4J+5L&Sr0VW_R$mLpQMx#OsHX#H-RE)$LylJ>oZUqR+nYEg! z5O64O&`A$#DnhB`4vG{gb474P_GDn1$vvHV|1>P1Youbtawz|N} z5}#;9j}WKuz9h&3`~nFz-qe_=iT1oPXwzg3feOzOfI!9-1Tl~R$u4HF zjk6$LqthP524xbo={LMIE=WfcR5AfyQ8S07Hrqg{NG9*Wo1ssfoP9ps><_$X+~s3*+;OyWc)0{=N6u`Q8c9 zV@KG zPvGc);lTmZvr|$uaa}_!)Jh1aQ}ld=Y)uG*A*HkQ(jE~FdZeO+;_Q@4G^Sio=BykTlgzK&U!w%Zmq5gpdqY*IBN;o;6fuqql{@Jb}$4zrmoIW$pq~^V8LHt;uMJnh>EbbnROWA z7%565&G24OaUW$S_-ab94zDf35|xd?_YhkUoWr>qohmdDwO`_j1(6PD6|k&8N0@9E zlMeAtBk2yHFmWFj=6Eg%a)m2rIA36DjrS#_TllC(!UfhwM5)913gV4X^{qp=E*Jbo zoz`X~biL8IC<;zaPB=O`qTlaRRaK|#`Dymqy6*BEzMvC(d9G`1# z-s7zJm@=uFX)%HI^Sr5KIRHr!@py6s)3xV-$4Maekgh65@0}8V=VJ!H`-rU%mJAl) zyvD`~Gu}my?!X5R(USrC&H;XVi}GSd+)FTNMp)GZQKZ8@xzU$Z0H38K{)1I*Azj-n1no5OGH<5MFcpsz1V59=#UpCX zGgJX|K!Spx2r3|68cv?~&1=r#rEa2vpuk3WNpQhpWQobjwMP69$`Vmk;{f9^_>y2R z(UHbU11i)$M_Gr82Z&?@YJx9N=^A6TDLU&xh?-O|2wobWt)dujJtj>c8sN(stt+T! zxOzp95h@v?lN#q%n52*RntJ(^IGYeuit`qtgs7k4szpOzsArIF;k=;Jm_!uS>IxB! zF+Fr&KpaZNsL^3_r>U%oT2<9>)}nxS;M|Pboe{KZD)h0&;W7ObmGn_+4_`VWGbXqd zQEadw`DF9++1VK)(oq?{D9`FT*|QbQD~f{QaM=Bv&*xNC#s2>OXE>u*Sm%aY+Ry>O z5PSK+wHjU9iQ!g!1l0p!w*#a>! z=Id`EWsUWMcMW|*Jh+{8Dt9$UoIuvY1i@Wiv0BZL)L;(p;M0_(EYUmL%?(wTNH3#a z6)f`=X;tE*h*c7yo}DzaQr0*{Gfa%;I-O-Zyc z2_^kl=u5;z8SbSOfBT)3Z`~Oo`7vh8AZ`hE1w9}IdJr;!KKR{;%X=AY4X|57R%uM7 zWPQ$>q+3wyN}}CpnqD*1JIu;;)QHG8m0L}LCMA+=-P_m)96l^CQqstoZ==LO&?pK- z9Ezk-O_fE{l@Ow)BqNHzG2;6Kx2~RxBDkv2sFE0*L3|1!#=Ayx9H|-=41a`k&rle= zAEQhU%5%IwM)V%2KB3MDzCv7tCut;lT+^ncw1?pFzK56rp;&>9`7$;mNUmXRb0agvZEDOuJd1pmSWnFfTH8{`mP-8L1hnhQT* zsVQ0T%zwla_W_U9`^@$E`Ux&raSdq@kl-3zLK@Pe53Ch3n~+-tiw>T+vLuhs8NBz1 zum0Z87=3g`e_Eqmz-wuG&5Xh9?t@cMctRq$Uer9PokRCCB<b#&= zthKAs3}4nTpW_ovq7;=@#J!aIa)~QzLXi_6?ZYHPiNO>VI3YMstsU4JJ*_G8vPosU zr4-M<|Jl3zT5rfZX&?FO5E*5Rz2ld1PrNna{?QSq^Cic{lBX9>IbU7!(PhD-tAfdB z#IN7m2{wo zGdQiOMPnsd(?y#pHiUHq*0n!hH-!&tv`YfQ4nD*Lxx{gak~NGU5)_I+iozhOM5xj0 zgcFucUmZJ56_6ScO&}#`-Kpe&LevC&MF^H43QY{&HdPp(04X6X@oLdHDe0qZ3E>GL zHK2|N&d}V(9&4MLDXLmm6H`PD2q6bb#AJ=+OuRzk7#}P~Wr$XU`5cKrOhb_f^$b*k zO1BVKf_H@S3aIg+*(d3bkSYgVV`WP4OBxa764ASmCC$E;7O9`%RE+coK!#R5C{GFT zh@g`O|ME+M*LanqT#SlhFt#Dj8ih(H1fQUy1ZQWU`WT}d;;zyVYJBw+s4!-It|hy< z`T2Qd(~chh{Lxhip0l%427@76TN9L4#8FJIm(r3d0gAGqEXqc9Xw8alkf$$zpEYa1 z5?F;fPr|!A<~^SBA*ITxsj$l7*Gd5@G(#8KDpkX;cIXhH(1f)(oOs1(x#H;KXWaSW zLw5e`A?DeX{ompC|_at!K%ckXZTm23}Hc*^;VT3JqiBK(g( zd&cG29KrK+ddY9x@AHp-^B%u?Z$hF1+FPV5QB^@0rxe9AqIetQ9icuZ=w@uZXc~67 zho}yOr6oR_5!`|>*3dUp#*phil_ZoHtmrko-b@~T@ocxh`bP7eA#jf}%&@`IQ}+mR z-e5ee@ZykQ@T?jK=rfGk!!svvftGzFj0obf!6Pz2s0bMRdOD7HjWBL@Mp=Zc0n{Z& z!V2;0)YKca&In%catG~B3Hq#|y~KwE-vhTGxJ!b{kg$!&Q4J)#DFszN%tB}{c_gGHm65;JHwYBp+z7XHw|s3kBYYdgHp`{K%y8|U0}=v zF{7qwzy29@*h85Snu^*jL04#Xg%=HR5APPAbXbe|3=ze!KiI%%)-@XmP1S_wn2<=5 z+jov-J)kl#OXio)7-uEr`MV@`K!4N&8who@Zh^2MF`{?LQcW5)P61hS4c1eL8x6RI zIv&>AE-k9j{I{Mi0|ey>60pIs3Rld+1s9xf=}))_4_U~?nugF+CY$GDn>;E4w!r~H zvn)Y3gtq{uteDK^OwOi^fA$gm_a8BSIAw5EHwq-CkLwNaeULIhoMOEt8I4Jz2#2Pw zOAIj*3o04mvkWg96(>lrWP1~wL`3}r(Gi6TL?+SXPP;pPlmP>BoF!e;2!0 zu&So`*_=4m)Kx_~?4hcH2j6&$|5_A3J-H&y5@xyMkAD1^|GO*rzx?;V#kU^pA-=#% zfyq*cCdAPUZ!2t+q6P;9e}Piv^JZfM#A~7zK;>cS(c+M_MyD1hF}WlZA;yMetuxy6 zY|>4CmX6Kh(I`?JD}0F2DkTpM9Yuu*B@+})6ph#>Vg`I@x+#L+!GfOC5=9&5D-o2p^s9nwwPJ8Fr+0eA?#IWBo}M!~xg?p@NZtsasL_ZpKERWJ zj*vXZdYU>C(5Dg-n)a1)cs34jQDH2F`x3IH0PM1i};GE~#`8hTS zm)`Q^gZH=_hbBdlf~?ezRxaXx`dL{BIKxG?Mb6vfBHDn-*MajJEM-JJIU!k`(9 zAr)TMsanX9kRc4#@<6U>8(C{^=n$jC1Iu-bQ9@9?W)7H?5E``%)D)tcK#GJu!B*f` zYdmPu&>Q5UneOb?jrYFMUsnjE23$<=J-l!FRg}_*n&Z^~#TcR~-rMy++?e2HUD0#| z;^xV3>V|9O6QCeSMTj$$x8Mtc(ugTQk5Fcd;BuTcXx&5Wl&YBG3@D@Vc7ZY;9j&oO zscEEfJk80pNMt~k2%|Ml=24MFq)!N27%k{%o8ZUIF*Oj>5-6I7K)B|xL?Di{ZnV<# zH(2Wvv6fX?51>TWCE>v0;t^r~Gu-+2x%%iovLzogv`^6f0!_WXAVGQX8bk>}H-kHU zr0MB^PBiuG0B5!dy(1*Oi)33w(c7r#02K`&+DA!5Efz0|3Ss3}RFo{-lzBDdOdWF; zow8CDKC0K1KHuc(M7Z@hc4^x|eA7gmI7{Rlk+q~nj+syCpPbP@zhwLPlF8+Y(N%$6 z0nQ^jLX8v3yhgktjC;f?!_Q_c%Q+^A(8&l))?i|FjgA#2O{l8^9}1EvCfKSWOlB!{ zP%Ni&hFd$RUW6+bNWX{l3;~B69pD!wbv`F`7GrDF);1O((#W8XEo+L$k5KuPcy|w- zMHI%c5U3MHRV|n;3QjMl{N(8qtk0Q88GrKeV}^I`Fp9_Y`xC0gl;qw6)bflp?NQqr zWvAT#_1|FU%JOT!vd=&M#u0~i#{3Vz^Jo0dcRyk_{X_oG|L`vV?XP4c#e&3CL|Gr} z3xW=iX>>ZkR|}NXNMa$e4Zgj8UaWNun>H5@Yv~KLZW@_cS7?KHg6MUmycSgM9%K$D z^L5!|2~-4Cqp2Gp(wFx24NV3_9==2d_TzuX zcKOHjS63*Npj3`H2jZ!l?2cGy%EN#}0j)izuoyyf(ee?7kHCDF5J4S79YsjoG=AFt zxA3~hJc}t!%2LN%=@q%msZ@m18MQ=+^Q1I#!&aKs3he?aR1~5xxTamkRz&pzQ#pG1 z6{AJL;A+AC=^6ct3wl>Mp>#;)(O%(*QIlP8HNiR@5rGw|H$;p;xx~4gXfz-ijhhS7 zdhE)fMg!`8MLo|+M*|4W@J>JK!L-2niYSXQA%b;RHQ?Qin6gM?mW`R!jm;QxBK zMVdtXt3Ud4{%`+wNm1Y7pZtTj$of6})q6;|#OWcZ0TP$^xZfxaxGRX}&675f2H(;k zdP8PtedXzOL?cQg!8JHb(AYquSA}WXy2P&szzRMLX-bm@q@?o8b@fmXiLo@3v>}6_ zP*OH6Jd8lfCVCGs65{5%7eT}kSfNpf#8hE{AqM49Awnc3gp`OrO3fNa6H-vJ9*w4f z9>KSRbZICbp&5bKq@Of5sWu26yjvF=nrbEj-d}>QQL;}UUpMNn@OA;(f$IS!s3oe! zuzVndX)}?Bw8@l0iINeH6)IEcmOti75RK>p+*8EFC|7_kam-P@F(RWzenxV9@QCg; zKz_7pA}iB_cpK3fM7Ei~s9l3IYDLg>v%A%eA9hafiy`03}o zrPf-IGpy4;=L4rFj~Ms=|787nu&vp7-iQ6(cdc*Q!`bKDsYfEEt)K!N}WfYeCZ zmWrAzIkKc^up-6fN-C+?uBa+fL?UIEROKN`qDoZ~b^xXH}Gw!{=VXgJ%k9XasoK&$1pzn0j1bA5ou8KIl|C3Fdu2!jMQ7*o}dNNY9ODSxVJG)q_{$|5LgIz zx5T!mY_>=#T;06JvVX{Q$Q%`}voUP9eEYR4e)+lkJbt?3yYKB#636ihv4kL;-5e=r z!hBZf$`N*tbFzwjo5tIeWaR6Mb${TtQ1BDmu~Xeuh%FH+yI z`Gzn_B$>LjfP&Jv{YE0$47JBV)?~}5-6N4OYkjpM?n^X-jA7RKp&{3<&$2Cw`p}*= zffJIA{0=uQqnb&)PUOVfM-lfi>XmyT%MQ^(u^W`OHZ+TCmJmcvd|n*JH{>K=!p>KY(6Jts4JBM4 zb_#3|=`k+78r4h6qnHyj*J1seTB-Z@?}He(Zk>AH=nW|tOykILnpmv|9zOqBcKJ*2 z;AfEWdD_F*S#m+*)3n2mGQLjUzf25*Nk^6)u?Tj&Pi|VmbnQtY0+c|B10^2_*@H2& zLW-Vs2en-Yztf?XN7_)A#*jrQ;$VKOazfLB0qKz~b}^(B7er@8%m^vdECq@mpk=8> z+v2D55(WZil%$UB$WTm}4+`3#F%oFe?3(!44wOa6Q^H!s(o7TA%=;rDD8&?Qc1X@x z6Fu)GK@^2$Movyi+2F8u#{Knyv{}J+gWVixtfdS++#G1vTMqkca#T8vjsl4tCXw7X z{<19-Q3}_uy^3hy&~Mo<6GvV1@Ot5I{j*Q4#A&UpT8jDItm1Ty%mod15mqkpB(aqHw0aMbgp~=EH5q4+Sw0d&0v41W zu>sWs#zJJ{)tmW`y8tyH%pgvd4Laj*vl0YvORcLTmZcIZa{YDu&a74rI9m-roMZ&^ zfM2UA+ERk+zTQ|o_}5{1!pa)8#}Jt?xxj3J(t~u~dt0WI*~PUrmQG}Y{3=h%sTZ_eF#>z$qqISb?B->wLUJA{k{>Qn)dzQ+P#E1g-gQ97yky!C z$oYo6B!bqlxV*7s0(r#A$+c8=l{Cerf|OK;pz?2ax-MHVFVAyW!+cICGg<>$Okp+! zjWpfhzfa@B!{%h;xAE~n!CTNG4T}VrCy0gE2dvpqO3QTlfbC}O0JD?3@bGnVnrYh} z>72hV``Kp*5@=2a^z1h2<@?Ojfz@zE(w;mnXu5`U&HVa(Bq%Zm?BovGMy8UGzNeHK z>_Etg&^Lr&G@BKhJEzQt1F;C)-SQJp--X|Nj;>Wc{Qfud{(Aul2Pm%iA1UPJzGALq~B9vHaI|MQ=`%-{KkU*>!s`H%k0 zdwBM7x3Z|N>4FmCkt`$9c1W{0;-xV{yGFtp5-t$!tCn3IR7a-R9n2i%C(;wDxjB=` zhGSr4@MV#vdT1G*5;@d%afPzNB#=1}!ecDVWDZ1GqYNZ&h^$#C?u)aCuyw+x7)JC| zVp)K;icd2tZov`@1QN3~JleJg>u`}wQ{S#f-1-)+5+XI%oCOJ(JxXD$i9!+_eIzdH z2pX$QV{#dXWZ(dy_f2>4gB59zyoL}kbGLwrw~0!}Bef#5&^CTxAV}F_*+@1!q_03J z4^drE*1iyOo>LH!&iey(9nT&TJ z$&C2_t3)5i5z)Y@DaYxEsBkzO2qAKMZ^z0mnP2?`@$g9kBhy}8f!*EmElNJ3v0$Yo z+Y0moYX)RF`f9ULST5a#9S5XYQPPa$g=X^>kUeF5fn0=~SA@+9(TQ?AQgU)Jo7IX7 z^TSC48=2HNg1ByI?1l(9hD zpe2wsaJV`rmW8+(Ks(pPS#c_*s&9Fkh%SZIol|lU%93EZrs+WYmXZzfh-`PL_7rJo z+76pX<}wrS-KIS^NDHxRpjASQ6gyJZ9c7$oS8LD1)0WUG>39j29kzD&F)Sxm&peI9 zo~VUzdJ8TdVELM;2{6uXpK|w^d(d3@mS~)aPd-Ug1k;h}{!8?aKSt?S^y`ET1LOXR z)ss(Q`Z)2y0ljsb#g3fzm;8l)_uZV`zQh0Z|MNBe?mvBw{dC3u`p>_c?|Q1Bolq1m zE{vil?An%M7w&T#5_E-}0vZEEryUeIlI=j2mSQIkOO%L}29Z_0l_yG3O#7;%o4rYt zfJ$U4GeH8`S^^Csk*OFe14TM!`?k+e*bwMR1XMghdBQ7;sFB$o)$F0Rn-Fv$TLKxY z>{LMta~;ep4Y0WFNIIhRV5uHbnLtA#zabBbBA9hRA=`pTTMwp;NMB!A-))N&Z-NS5 z?J@X)6pp^3Bw}T#^Dy!1h`Iir1D1=oqZ+(AdjqW4`)p4YwFe;gv3TNDoU~vYZ%=iu zs)9YnYp$UzJFk|ibV<@cVnz+2Yr0*h6JaGrL1B_o`zW*=a=JSZ$N5V`a4JKP;{RAO>8*L&s-$L5kphiBt z#xh;ec3Ui-qW#9JsInloCF~w!oL+~#&<>}_w79>hZ3*o?AMPJsgDw$d?Mb=IP2DO5 zub{e?yci*D(KKT7k-6`ofq9H?BkP=aCAWdk0Mv@cc_!_#oLuvc~-JB8I1gAZzRMgAucM&+k z$qB>;S!U$T?{E^rbV=OZrH{%V`vViZr#{Tz`fq-NzyGga;{JZcfBYXj$@|}VPFyd1 z_A6Jset*TE_~TEpS+BtcEF3W%kwHNROd>@xZr|OIZ0$yKYcbnm(lXoZGbm|M9hhh- z(qIf=nZW_oj6~Y;X7L^XHM`Wxs!?tz}i7bn^tLDnufLCr}ZCwsHG8!E7 zf(?k~H#Ve@u+rljRX;pUC(H`Q1TxkEbqldnh5qEiXlp69@zyk40~r5rK6qNvXbGe?q5WZSvk%$}}j z&4REY{P>Um_{Sds^HNG2j}yo7$jR=6&3f&?JeirVKgay~Pr}s~h%8Pk3=JjtrY5!l z!c38ZYNp5p-HKo%#GQk^bac>sch^-jvV&%a8ECxqNEPZYcx(yX4p>w(%nHrpp=8N&o|GY5pv#RaZT7hNm51oHzD0UEG1}La%d>* z3BxTcwn!5wWr40mgCN5Rr8}jB!EF^yL$-<7_YhZ@w!R^hKq`e0{Pxziadb`F5>IxN zG$B#YuHMF$(WuY_$H_K58lxMmmm{hXTki;)E$MJY&_tSNBp2F~9r;#5}`FMo! z3Y!n0MttlJ5(*&)N(@*G%*krV!V%Je&_((?clhZqzQC&&dp_{pPw=*9@6oJxgtn*T z17*G;O_#(lGC%wdL5}Fj4sAB*cuqNg(d{?3ceCtv1uD?32}8#-Z@ta4?>OPbR~LT% zQ!n!T3wz%D%!WHp_Wax@U*;R%n)u*{c5HSBXb(s;Ai6<9baSydswY`XVMP|fYy+&p zww~=QUJd6mkS&6&DBN<>uyj7lqh4-e1UV&$A9hxCeaU8)GNZa9$c9u7EL@?!6_1yS{_q#f#f)v>_Y79L@S5|dvG)?u=s;u491ViKwd`Vku}lV$OX#_HEh z=dua8#7U(mpiTYxQso_r+29#N61*w_ibZFX$b>OcWbb}Q)(B^aoFd}1Q)n>TfoxGt z)vSH=cb5&YLiEO!_xPrdAeh`Zb4+ewJchCJ>5D~-6-5FjN-`zO9@7KajLhT}YIrAV zk7M){280s|9jZ^G+(B5on}8j0o=0+q!{LUPUVe%7YRh`HqH8->%Gx!y|2+EOzr}8T zg&+>cFQN5b6+j2H*<$&GDZPX?8v@bw?U+Xd8t&k%to+Td@6zb^~E8glFeC)A%yyb~gKJ}|#=Znw1#_#*?9<_-)&4leeWJwgeVZOd`Cw-G(zNW})%!m85 z+n!`Eke5B(`VMn?KvAPxy$usj-ub=1`!@HUct8Ke-%9+epL~VC_FpCb!vEsKeCb=? z;p*ywue}tx_vTZiyP@c@MyYKv8cZ^y`N6X=vT!7G!eSY8!4ZBZE(wsxWQm3oLOI3! zS|{to!h(p9WJ4%xZkTb+_)L*Z<_ZG_Hf&@~7GttfXIYBs8CDX-j)>kNmt#E$afP?^ zM1!U@On`}?MARO^`|9%Pks96>R7;&pbOgj5Si+%3!5+!4Qm1o z#SU(XsaAd0Nw$b2KMrj`Ws6xvrMOSlW{}r?%SRxyxT~Y80+f5WJa;5>Nuv?tlw!W! z3qd^~#NH0J!Pt|zrdXXBi;|>(?Fej1HuxoCx4m*UC%P8fk~xsLB(O% zQa6Py@%s9j{r_#7rN$1ymK46zEw?3h)1JVo> ziGEmz1(72b8bSw6*Q22jniV;Zlzc;3ygdhnyr=6Y_V-_>UEg9pyyht{O#X6(#59hy z%>y!p=4^)rUpKe?36t$Xg=T=1U&I(tosi|6?|$bgKlax?#%lLDe&V0Lz<>TXf10PB z3OxPvisxPszAr`EW`LlW3Wb9UHVI^Lf#qU>$?jm%ff$Pgl67S9Io4!tn-@Q z)8o&`HlTvp1 z0{;C88pt(=KnV3vGq3^Gg2{wfqVgr{2&@pasmAWvt2r}*L^mmO^biUBnL1h~(4k@& zfT{ohfB;EEK~(D4rGg?B$u{~{k;WGh96XT-!PwS~Yln%rW=>B$rAG?LOfC;u$^nt1 zZ&z($v4yM&xFT0Wc`6HWw>x8dazYbZVl)niYbXV^hm`5_Q;Yg-l{Xx)o{(3kz8nVn0wy0G$Zi z+mz$A8!u-AnTc(S=HjtcvT^r#8_8)wWg)f|m>UJ%oH?_5iDYXC!!1HNx*Q^zw_42# zX;x4cnoZ}_in1a`DAGadpn&SN3m2QlZ?EY<2?_01Xvvi2;4gr*pbd0_bOSaEwzx$@ zr9*-sO{Am+LPnbrQ>8s=FpV(uq|1kdrqDL72a?Tz#SQuJGPIEMfp!%sOG{a;k<+cW zDruoyyo%TaoFGl6Yhq}P6?aG(B(j}k&-i36b%i{ zYU9L#;TF;iRb#UQEkwCQ^fqGGsGL)@VSh~A+z1c%=e+W8;w|q;yya~@U;fhG1(*`~ zm;dSo#u0Ac=~~43Q-5EH&qlA8@sA9~_2D6-CG<8;@1RW^0VY2L7U+ozy@^7h& z6}3Q-mYIlJp-4-k0Bk^$zdb3p7)K068R*%0Hy|@fjJ+=Y&WDCV)QS($bxkVr z#-Kdm!6#OXAigD6dS|%V@&?;NYF;ORhJkE>>`L9baS!f)6s2&DSgG^2Q=GVeK&!m++&hlM`azz?YiBBsCUU#3ui1O+1EK*VX@IUUN&PoqSgToi6cofW~W5;&&3FY z*brlk{7!g|vCK1SN34H=y#Ggp@{)_Xbf_DH4kS}%PvDhcL^@v`m#UJtww~ez;ufZv z*k*`I+E>wNJ79W3)65w6F2fyEg-qIdm8+nix35t@Ldh=iWTjBJs--xKvn>~H%wBF&V>Ln}+_u;mIf zXjZq#S&$Y&&R97*jiPOkc0~v)*zY|ZI0lbTDjh7>7>4#eIt0iGv&BO-yA35pmcvLZ zMu zM9@H)56p)v;^1}%iPa0!^yuv;$(PqOZI75lLH$eMrWkKAK-Ys;7qBu!)rg^p4JOBr1U#D<)X%%jk6ZaaWc7D@?TspHzY zR(H(hKq`?aTN+st#Om)En5r$OF#%os?_nKC!G{km3xSrNtO=DBR=i#7rNKxnrsNVl zN=+h#OsW-`Xydam3ssikn?5w7reqU0#@D={AbmZw7N7mnkxWPy2!hKMOi|sE%7ls% z!~@iP8`vOBM2QsJAQlO=+RSzYGolK{0j&39{!t>i9IHTea?-B#M0J~vv+)Ot9D##x z8cnf!m`dLHhEZpx+||qDi0DkVMCQ`%ef3PqwqVTOcC*G_L>;m1(S|4T@#zh2ZO~>-QZX$ zrQ2-C={r~`o{}2^HY=tV*l?R7E$vBdmAZ_~=VVKS&5pFRSR;r%jx&J@!ZqkZTt7<* z0Sg;K(_rO@NQdQfiu9N+uFHz2Xt2ROY2TI=%^N6fY3Cj%`gT6(#gCm>ENUMTuI+k!735!!HMVXfwwF7c^ zjif7VYb;Gf)>|a{g(a~-KhTMDwzJ+qI3=`aP%f~zApM3i2e5}&xsRwDZ*zGC3u{F8 zFbotuBZh(B^9SIWcW(IB^KgC@czAiq`T2nt2T$A{C*%5R;<@h}`Np@7^quhb?^b@~ zJv+Ypeb2I5J>$q9jwlhco+LLc60mT}Od;DP-}%PKS3mnYKm3QECEPMnndxNB%#n%2 zQaTzvW8@)6JF?M%HV#-R9PFGu*F;)whsS_5DOa+r29mTK@<<;W=G<^eA!tW5=om0D zCT12At#~frSmnw-3)(?ZmkQ|Qp=G9?_AD+c3=+sPkqjE`{eKrXW=Gv%HqmHs|06RE zYmk;K87V!&y26lV-&;x#j9!Ek1xbW(B%8N>CT*<@o4V`@?sb#{g>xSf$mkwOda^A{ z_K?8ZT_;TLU6g^qfZAErR2fAV3fCk#$86=x0acU}RL(rYj0kEh<$^2=QQpe6JtW!4 zN}p!MUG}_IgIY7m6p<~_k12PsTbaSWM9Dvo@l_;TfZTO5p_#W|<_=~Hdn~n8z+#5VMy3e9;ubJ zfu=*}OPEJ;IXVuf^NQ5x3LDqkOb;nJLvxqVMaSpPi84Dq!8CYQwKaPSuw&7Q%XkMH~ZicpWJd zv}^LPMcXYVK07q&-e^25s6V`V&9c0V%{@&#hki#Y2LcP0BH0dzU11zO9h#ZU9?_O1 zU%HsJy@hb(*1gP~Cr|m%58fu*n&WuQ#bx5>K6S}I_y@nn+2d=TdgfVHo0ebu`~~0q z?fbm&{GOlqA714vUu^ikkB+?O2R6LG;j6#-8~oy@f0JiF z_$+U_{W!&1M!Rxrm_R6vw^9~av1KS*Vi*{00vU(|I_oGUGD%`FVU$Q>&%i*YVX{P& zfn-yyC9VrGudu|na-+dK)b z6SPNYi^Sq&KyuxzH_}j~xZ<3G%H#%Z`bulcJ`88}&w)&`>5ZxinY^;Hg4X9c2$b5+ zxwp^AHXwNQ>2|1|xg;_dC<8$nmo3Tcj4j2}hAh^~aUoHN+LBEuY$(!jEazlXMAklA zv~x^a7MT%?L>(COkw|$&Wmqsi%X0N^O@1I2 zbZ*%tv<(=<;g7<#p&Aj`AZ{f|~wPw3JLF0gma&r`3d0x4?FFgOP*Ldo? zpQh1M8kB4c2?K3eFcJ}Lg@i4$2}csgM>;GL6MH&VG+{$y<_8d4Om4X0$f@o~Rk5B; zxS_C++2T~xtQip>lceGzbb_fXs+(eI{mZu+GvEq@|c&B*Bk7 zOvY;8c4M^2Lbkr@DV?(5d@il%C99jt7GYJ*+xYtjm>#`&V6G?{C91GkKuBa}iZwKH z;)fRr;goFR+BV5#QVqCWLvILA!g94#HH7vAo97x6-hd7i_J}-EfV-YXVxf%1fp5)>En6fui1y?qqkTa_ z#AJimHJ06SqjABq-^gaZsI>x?9j}23mfYWDP2+s6&|oDxRKG2hWsezzeuJgK6P!bj zs6uJTX^*S}TDJaT6aB}skc*;CN5DB>^sNKjnhwiC$qOM0?)({`6s+0$mPiE|TFR6$ z7Mjf#3odk(utHlUsS^#fICn@Tuq-o8=fMaz?ZM8;tkBJx*t^BZ0;qZ{ye-LjNZA{W zX6RvP(55H!cgbZJ@@v<8>KA^U&;Rn5`GueSHlO&p z7uY@i8Q%T9TYlgNzn}Mg_`N*&*2j7M)rY+P$|Y7BzV+4DdH=_hZYS>7t3ePGZm`d# zAxp>JV3v`GJmj+M5elurAZwa9VAiuNM^aFh&=PcuSz$7N)`|oYscPvv_7;4*Mj_>e zCN#7)C^n0dstu-LMY54nYjoFIK@?w#h~OGM0&wQ(Keh64@o4sEQUWTE5-=lCm15@G zMR6I0*zC`xHI9H5s}+#XzEb`3u+}X<^iGbD!qFDQ#67OEV=*CFq0y#dx)fC-+w9Z_ zRv3|`D5X3iz828M-5=_i3b~jc@x|Q%9;4R#ph!*g1E0Jv<`5S$!Uzy9rqG%qg_IH;6AB%g2n<( z4|)V15M-oib`f4!A+mumAQD}pBTgQr*Z^Y*`K9a1QQg%;X?s;h}hNWe_CgI8hA26RH2s(ou3tld;^m7%Mx-`ox4 z*m)2^@U|m%AnD4tKur&^MPhb=pDfVbLK<#!^s+-4ybV*~hM74-6vzH#Q6ejf35ym+D@5Ip!~ufEj6$GD!(>L# zmTWDV#zmb(inc6PYS;;+>VY)H&HEBCi3B;p#K`6YYD1k=qARjhDTD;F^(-7KgmOi} zx0a6n9w^d#Wg|vrArnYe$m&9GW97JT2C@~hEEIZ7lx!V^9VU?^N0LR%2C^(9nd`Rm z%nxxQXd-i9VPuvgNfJd9vn3KWX-FGHc9?osmMm~nUI9AVuwy21Rc_F5f~hi@f%F7A zB<0W8!aoK18pa$AX7#X1Zw;}-{^2@k-OQXZ{lGs0;FjfJX=9ozwT+U&qyAxp+IdPGxfoR!|3`SZa{;lw|Cc@3i>v+{O~ z4aFuBiRZp~!{rUU`8{XkW~l?(o&;nISh?p~Ix@@L@r6&{=b!(*U*yZ5dWFl^uNjXE zW=f15k3D;fr`~bbHDRkYWfKUk6EJtDx484}r+NDizMH4+-D52~4z_U34d4ANu8a|pM6gvgMF$pcD3)uLT@Z^HBhV1#4p<=DecvWl1dt0S z0?KWN9;&A+6f-9Cyw9bKsEE(F#1HzVEEIu;6GT_cT%%P2ax5cp%s)j5pC?-J)4zhu zOcj-luU*YB2@Y^z@$_0bIO-z!Cc}aMw_M<;O%;({VK#zoAr}AeMX}<7J2zLkD9!;` zEv9=l(v-&MPto-nA_q6V;wDnlS1UI81T806iPehH;(?nWwgt|7dy*A< zGy|{(i~h}aZAs@4Hk?glPIyJHxw62<0#-7YK&LA- zXNqKQSh$ya3dU@aMuc7>MLUi*`AXg(SVK}_v4xgM)D?+RMV3~5k9hlraVS>hM485* zF%OnNlva8&br~gHRjyYdsx)YkYRgU}w{g=HH{}NgVDh$1I@k@z6C$^(SgZp(!zB9+ zpj(O@F}aWBmHU>eNmFQ@xf4gs9QmQzQi`JSy0U&6Od`Sw5_-_9nvwQM);~Dvfz@?{)l)H$|luXr}EtvR^VH+PdhJr1v z51m8u16Ly23`p9c5lTKs8nC57(guk$usFzHq<(Em2#s@qED-E)zTC~@W2I8@iw#^F^&igp^xO`G*8i$C+o^(-7G3FW8vC2PD|qd z_IG}p@Bh$aG~FqdE(q<@&>WDm$Cgv4TgC$>d$gJA;l1^0n~@MaY{R2Ho&>ojmjJS+ z0E>>bopG(yq7g$GX;52Ll*pP~0*z!JJID&v!riAgte<+E%@5z^az1jsPh8(W^0nXi zI=}FDKgD;x@G|=c2hLxA$oD^Uj}L$JcX9VaPqN$goaX}vF^*;7n#Ak*hN5s9PuW>d zQv**fV&+PZ6e2CkAc2k(uG5jE#yW1fuo0D>$tD(6P8e9Mpi+pnYDpLYWuqO%GFME9 z3JncXE$7*MrW9}zX_4f{VAwVWuCP`gPX#_H z3a#_{%m;#IVjbZD5}q$sCO1EqC=o0zN2rNX~BZo%+2G*vfx>)(dR=z=Aj z10@|L`RZ3S`Z9n8VMLo5ik|Mvt!*VlOTmxysq9ClU8fL}^>gGq;KWs1oQ z815!OGR20v+Fp^Yud!(bv>_FvSRhMgDo2jyTr|hAECg{7+-L`4U0fInG5g<_g|p3u z;r1!*$%f~D?G?(gLrcr?@`hjgxnJSM7hmQ>f9iMh;otv3h9_@vce6u?jOCglkzH7G z%0MTc!lM!hEHq}6TzH+4lh|{j12e+w<>1mCX_+6*m2CDGm^zb^Ob~H(qqU50_-%Xl zNS1;WBd8KZNtT(c(1U5Pq%&_7#SlI7!&$Ep?a;7>P_S@tYe5`93lakoR!Ho< zA{BATLk!LUlOqy5M8jh5XkcBS5u|B-?x#1H7|0fBCI|-#3)&QK2b*1Gfomm5%$_?+MiKjsc%?Y91ay@1KAOG*)Vm!{=>=Tz)m;BHE-L-$F@rn=y zjcacin`B;i%K5_^e&kR85kByTKgQH7eDl}8$~S-J zOT6;62Q;?g>3h$R);$Lb9X(rFv#DJ8kwB7$NMx%k2JI;{9J2XpUK{ol#!@(;2W?nP z2(-)?MFSIxX=Kg?)DbsVWR_CgXNqsAO&VsDM65o(NYaMMAej=xw|WNwXegpCHbuRA zs8R=gLly5VRFRITHE~)3qgC)A9VSCHRI6{p>wA{!c5p%JI}|W!kl;M98DXlwzexk~ z=;!wS4=q_6k|bvHk$w?~x}nh%f~-BnReMBRW-%5r$&6wUw4o0>2008o+lD6&RmO|jxUd8qS|M+c+JFEZ-x zetHTcg{$g|+JHVHOL`J;mRE7=!`fR+b`*|e_82F?4wFKWeQi-kR62^Ss^`jQ3%)TO zoi@vY*?`0jQT44)S=CM90YY+snnpwm60cn#8+NtrNxp&8h%hdBl`gX%09StpuD!C|=6*5A! z$Pju0kqNl8M8eq8dpc5v6dEp<$pw%iJglkE9g&r+-RNE$uV@WOU{R&epc0tO{IIZw zC@l*@CoaK3gUb&@h&1(?r|PaE*~ER6_3-d*VOxK^L8W6Uc!fi(p2e0ZJw+lj+4Y7N zuo8U9BMw(C8d+Rufm!5O3X>ETGZKL)Yl;ZdY>2iTN!*l)#USX4M%O4ES%k5;0N1po zSVYY)mqvP8*${Pu>VQhe4BQxu*}JP_F{UJ#_FOS@VH2|iXr z%3X{j$YnKUZV*!v_fcCpEm0ghn{7sHpy)#a4cHp9k;oaw9$~5Trb5H6KHx5TGg~m5 zDn*oPWjLX5BrrIWnumBG^c{-aAgobB-GDe+Hb?+TuF952QA#UMmzD#?QgzmwOD)Ql zAdzG*gB%I6pt1$q5M+zk$`3KSkLg38r?I!9%ovB-B1cEX+6_Lr=v*ITV;$g6kZ+;d zVR8wKs6FjWYnz~SzTMG>J`2h_w>pX2UZmW{6l8Sgjl7I9U~b{Etk45+sq&vjooP<>r zjKX6wFqN5uc(A}pX;AfcDrzK}Yuu5ub z{uSen$W+OwnV@wkMpH35#(6#xh@9v^M?*rmkR#{p>8y5L($lgti{v=C<-mbT9WxU!Nk*J(H@f(*;+(;vU!V% zM6cH5jBIX$D3#V&(E7-El~rUXD^PDQW$T;9sx3A#Pb-nxXI0vJ zD=d4koqvXUbQiv^YC`tthgWpazv+c*$aF$f9X}fi#Mx(%ipNGNhzvgT7brBCJmg*P zRZez+x4vb^hdy|h=e~8##l=DhQo{)R(CXL9U;N7}KKg^g|L#A2n$y#JBo0h`8zW-k zA+{MITcoIwCB4C|a=2a~OJJgqM9I>SOfUu?@>b-?BCf-lP{!h|QIfy}9E~Qf0^gM z@KugCN7Ah=SF47s4U-63gh4u%QkV&}GSFJXBFaM&sTezHtGz`qja;j-!V{X4C^wdv zk=p(R=2Bc~E{YYG6D$K_$}4$`p*959cmvxtc>Ro|VOlT0T(N-Rk4pN+UZIh8;Y zdJti<;;o#S>(5QAY$%XK+=^4N%_YMkN|sUsiai)5SVK?+Yu=deVctrLDM`hjCu{s` zM@T`*Vl4IhH=~T|Hn&~}*0N@xCrZy$;Ap-(P81?N(N^?fMbC;}R;cs{O?3z~97xEQ z^Z(q`HWYasvDU%-98g(MPTd0}lj9vEVr5UL;gb;D9bS%}&@7%RqQn||G*?ZE4@`q9 z#iT;;T@Cv?nTIQs!I?c`Roiugl~Y8eGO>lsm1AW&G8dmg1y-n?)$qlG4-hRd+v}KR zqMo4it__jou}#(yCAcI(u3Ud&TadpkQ)4S!uuKrVcUZ;hAkOcd^;75@vMc2Xmw z4pmYS{Gej(e^>D^QRBwpZRHdRll#={gfD#Int%L{zRKVDo4-j=A+!!7DH8dse|_Mu z{HIS6!&6`<7@1Li+a(v=Bcn{bR;38HoF>45q@M7b>>eXCi-55um7YW)OJp%+A(Dt3 zSa}AWcI>m~1U9l_7C*2=2U^*Xi?U!dhQ^Yy*_(#8w_y3t6<@5iPK;I<+D`+@JI4osd2n$p~t$IgkyeqmWk5h zuZ=^@mf{kAN5?iKYur_iFlF}_KEl8z6Oa`_PASrnOj*n$y9*7oC5mnQ$HbN0{ugO$ ztXHY?v>ixKk-0LV9ci06Ai5@(o@_11BT=UhR58b8`24FwxkbWN@R`KIM5e9L6&sL& zBnO|}=m64@QJ?DQh-FVOdeg1 z(;`jwIBst1%3={GLx|P?Uh2Wz_)?>$yO>O<9w@fPbn6z9;->bepE_k28h-MpUSPj3 z{FT4*HvX+YaEo8~*=v6OXD8;oS+qV5X7iRyB8NOftun6C$OWU@Nu;HS zM|!1F$QF^%aKzXRcX;fXXSwx(_wwd9y^X6^&UyK>U*zkb`aBmey~bm=?y}vTVy&C< z+u$kBH!1OJKlKU1bN9LPwr6>PBgLSlVal0=`{6L92`;wOqNJ3Gv89MIbPc&vLDhHAAb zMCnjznZ%f+a8*Y3c?JTF3pR>d8EVx4PXm9f&xX2D}!y6-QSNT9EqrpQ8c^RhM+iS(@9wox~5N=KA6mqA&}hJ@17v$cVPv>di;-uAuk z<=r3qFx{;)UU~5~zWH;X<+nfm%iP}|nbvESkZF#qVW0u{(oe=9(nft?KYnQO~T#b~srqbJaEG!X4rvtz}E@aI1M_KznyGI6L#(#~}z+>q=X*pftj+AooU z&uT}T);CqsaFEge@-$Vi)050AoGh#QFb5X#HFl|0jM1=EZPjQ; zW-^5psdOAIk!9_=C{dreSx+u5raJ<;^oX3W)Qwpq8^?{1Ns>SZUm@c|&`cqjL<d z?QKWV4q;%C$+a%hF%wD56jn@zhXY{D^d9ah!M9(m$gEk!Z>%DXZ$L$Bl`)Yd)tgKx z^vp6-q=y<}P-tAjLGVLBV4=8ZmNiLkNbG?-V2@*(s;)Wvp-1q~)1+2D!8fQjc<=&V zaY=cK67KVv&)(;c{IR$4{U5poQuyEx^n`Zd)1SQIv!9$P0w4NV#Nv@`!VBMS`P={1 zbNtZ1eTR0?ntL4TA$+V=ZXj7Ei%+|}4fJpZ(?Bx6u?zU^Em~(U&e>dm(Tu%hj-q6G zMpG69h|E@)Bs0`if3E{ne*cXrk;r7e8fmoQD=b`C;Z$3~ty7NgeHPyTcJ7>*IY!AKr*kEuPrm0dj}S6$R@OS!0(0lB48?p&=9R*ugYS|jp0#uxI|jLzJBVyZ7=<-i0=XXhCR?xY@MM)Nj;=0thwu3iy!Qk9D&oCI z3@g6>qekpUe(4wX{NgVhn97mw{}@Ok{Pq9j>-@97{|ZeP`CUK!1T&YOA1D)93WyKg ziCZgi(aijD^6Z6lQ~BfrPM#(pbl&frAB( zCS0lT&svWK`xNIa6z#ZL7O!TstIwog?1yYzt8lI`YD+2+ zv5q+lT^N{D$r6Z_gPu(pf$QRjL?@0f+S|fWBS|8`0<8s(Vq^&f8nP(&$(Se`*^p6= z;_qybhLv@$YYc&)Jq2Y&&mQ9-{&h!bfIyUv8;lDvMgt>qPqu`5VXFDpY0{E{S8tJq zXpXwcC2(aGA!rRMEgM~f1*T%Op+j=uGA{(}sx_$RuCCe0fQ61rE4)?~ZbZ2f*lNed zd{AFZ2!H;^KKk)eT$v2fZ}&fdvRe%qds#j7Nh(^~x;_`pYj#`w%94t(}g zBNkdd{INIlPyYMY_}W))_?{1*@_YWBr&t)Bog|)uU1&+B7#=SMRLxdxcI6RE+~J01 zQlp^!pT*2|ToM?~m_#|Kzi1=MK>{}hLD!hBm}xw+ibxxJjw0Na9w89b|8of|o``3J zT(|^Y3GTz#HESMw^HaR_-S6Vo`h?e?f1a0rG>6I1C3xflno}KqF}vjE+!lp+1o;vmMjsK0c3^A;7VUZa6)P|2t%$NLz>L0i$JBAFc{L34b_~C`$=d{amXsI?wslP|+PiqG#dJ zYS{;;$pX0&y)!LY0<+-~4D~A0E1HCG#}6Pm)LVPS!s28FT9UQZLgK^IN7appf1W0% z6d9OGszPF~B$JMO;KN(G{*=#s`jXH8;+~)R7w7!uuby)}WM2ICktg3e@Q!!ye6wTq z;I+0c3bYRYeFNu&0P#%~;z_{f9*$(WX`!!ztjW01i|02gWQqFFZ8@KT&N*_Ar z3=4r{_V4Q?g&WJH;(yPZoU5Q#8R!^v@Ml2+O2<@$8_TG4^mGJ?ET}KZQ1*4)AQnkQ zIEZpxGQCAq8usF;L)kp3TFo!8Nxd};#k-wQ^Asm4uTK4t)hgj|8dqR8A%`kK5#fMm zKKgUoVEDzjNaSeZLUC#8VkHtok4oTJifizio=bsa&Wsd#={XG>m$jI1sLQ)jMabbV z{P_Dn?r4AY7sJfu2I9s@VeQOi;D+ljL{0hnprYQ0zpr}Rz5e9=uzcF#+)4g zQ5OjfCoa9vmQj-P&_%KOjVNMBJ?wl4-_~AwL8T*!G1**)lWS%xbtW`Ww6B}6m6yu` z3Fj0gJ&+Nn7KqRC5}C!s8AP)9e9OSk?=bQy?EOwL>37gT_D1QaEUPqWNkQz545idykeQ8KHHhYKu^ajWUfNsj%;~~ z-c2qK_oSPNoAnBP+uI3meg?aBMp_oiVPv^~&Uk*#@!|>_Gf&)kjA!5S7UJzQ^5ged z-+PK&j4nh5Z5T`8JP0Gc;akL2|3w0gy3n(cmR39Z++f;})!X5HF-Efr4~SLwr9?s< z=KICf>p-%=WH2J!h%3u)$-oiiAPpCmDH3Rg`3R#% z&(1D^OyruvwPpWItJgLz++aG8imO*au@X>gDVjMj*N4n1r)Gt4;*`OHw;m=0I(pk7 zvSpFk*UI=RRCHG*4B2n{T&m!30)=9k#v+5RXe2skN*a`2ebW3!~k6c$S?CDkFSV^_okEiJ(cF)F!C-ntb? zGJ#}A)|7yTiBbw?N4GhO-)(=UKR^&DdFH}+B zmXvxzgvHJ&c1lT)@qho@pXL+)>NS4tGcWv4#HBeI8icF!g}?S6{yG@^o1Y+$X1g70b?FbJbT}4)`uC;Bi$=g`{X*hL|xH`8lNFPR%lNb&8mrjcF(ef8*0 zQaG`|CWGckQMf6Nf4O8~%GqZ^A}o1g*1`~0EG03EA}E#v>sxd+R;;kM%r$VdjLi$ZGz1Y^ z3$)U*LnPAF28`zdW3Bss_mt`1gMN2R>e;_wY$|;a+A<&@+ObITxLQz?z00m4+ZIAB>8NKOuN>nnj8Z zXmD0^qNC{A=R7LR0*m=0noyENOjd|)>Ex8iDGS0Z#-SvxZK|6!Z|5=%$UqcV9*cCC z3E2wA8USe`EI~*Tz16D5>dBI7_&HCF{5O4jm$zIm4;N28d==;=t(C%Cc-E_i_7N1x>UC+P5@|Y z#pcU`g$a>UCm5(J|Fg8f8H*$)8(s5cUZHvHRqOLb5uYncAW3GC(KF_FtX9B1nUNmpV)X1;mJ2|xpjBNAN;fLt zB9CT_B81R$BCX2@DD*UJEV2*oyqK%{yrm%!IhRsZTrPF#q~lV2_H(8i25FhZ)%Vu| zlNp1xbkeamV-Asn2oKA`C7EaqI|i=t%fPhb+KfYSzu`6vzTGTJV=Y>g5c)dq2^5KR zxK2?kCtkIoGnW+|#pM?Jw6I8Eu!f@OigJ#KOX8j-d&*A&WPTDm6-~cu5@8hj^)C zWSe4O4RaMCs`)&v4FiQlTdf2pirB)zCR%BUR@+GlH0Fc_w=)Fq8 zy>V#$;2(UF|LpJlDBIl@hD&mIm25p~Yl_S)c6elGr z?HiJjBP(uf#eo%jR$R#mqpUfW4GTTTda%zD*;`wQvo2gt#TO$dMY&@_7U6!G=tAIa zMTx3>8{>I#ImNmJhLkwNXnyM}{L z1f&#VF^1q;M-56NP)eecK(N4A7Ds%m0|xsLNTu+=Mph{6;FZg4hKg{`%!vigv}Y*^ z5to^qmyshg8Va|qJ#E&kq*_|Nllq;KY3NGuJ>|VpA7yMvHJLiCK;CCx7gtANL2lsbDVko0pkn>X~Sd z*8I{VvSLOm$)P?-;yR|OOzzAtPM>V!8KdUv#fylw^kKzPJb5=~zb&%B!A8f4n7QW5 zB2j&vnd@5B{fWw05?7Wz)kAw0X~@$1KvI-s{m_{onrpXJHFHyp?r45 z>b6ydw)qm7~GF%p{C`IlT_9WQzO)*c zkP5Wn7E?O%$$$Agzxs*i0r-(W@os+P-+K>-adE1t^)3{ao!faBF_czMX=O{w)C$iv zb&afm1*s2xLA|Q4zC6|9SELw?ECfmPHZ#afi(8)>76Jv#54%zttOT+|$9vk=BHB3LA0W+Icdj0$nb=H3Uz-F*q5v#MLdr+up&PmCMC=Atl(H@UHKE4^Mpb z2YBN9zK3Sm^6GQn=IU2I$19)s1z!B}S2&i$ZgSBHJiToxoq_^E=y*mO0?oWLzFogIk>|^3pA>3cM=2h>UCxMhCo-P;X(?%1vW&I zfl8!7xy0yA*=S2HhTsQ061cXENXy!KS^!f(tiMyx)+H&$^AP8hcp! zVWS(LLaHBti~0N8#GWKdG8n>&OUoQE_6mE;^w!d8M=)it%9UkSvLgJ+AN#!@cUob~ zVk_oaIhDFSXl2bT!40XhCdt5ognj23r}(C9p_D=sB42&&f~YVTZvzWXRuJ3L>TR+m#FuxeaCHz=#oO zxKg-s z>pgn{*D+w`$eW44c|}Jj35W@u#43$xxF7u87-ZnujPR#^{6{|i2$AA8kwC+WPF5V4 zhzuw_(FT{_V?-Ueky0J|9S4jlDr-)-vWXY$f&+z(++s3#U=vrCXryHm1`cK(^{71o zWfcdaL}Eo?%;NI?WWruRwWX(JtG)BHQAV?>kQOoxH`&l4wBn}X1yAE>=$KTwGUK9d zFmCCJjjn1wVdKZ0L>h}k8t2Rt*oYHQuS;?@zjWRv8fa*|YVrx)8)%uMl{zl=gC(Gt zK@6R*tu1gMlSPq71dK}AbdjW^YCRDp)|s8w)v}@@wf}d^My>}<5$I(_GAcE-WwJ~u z4rLS>T;VSs0+6I2(s}S@Z4Zr=W1yuPvg;f(6WlCLM5X21&tLFA{x@F$RlfU!PxHV0 z8-Iuq-%u8msT7Z*lGdq`vT`N2O&;SV8niv~mI%W0`=iD)j@6G@kfk z3UmZ3sFCIi%-DuN+}&pTzVG2(ANmM)-}+ASGV$7% zev{`v@kuT|_c`>1SBTQETCG_RE0&^I5-vaW8D9R(=eYgmw@{vZhB+@>WFsdK6S4)m z1czdn3T@7;%!nu#sStzPqbSDO3NZ_<`7?FxSu&Jjbj2&XB+8|Ew#{tNE!E$c#108f6jXrd}2s3$+py z8kAmwUoIx@Uo;^WV}%m_-2d_4|9C=tu`f00R#!|VGFn2c=TM-HClmrVcBHd`3ks#Q zWa)Wmi6A}K6kbjTf<+$FTjbIbEYNAkE^OH8hE`h^B7=AZcU0w2U@Xc55sv2V=S|M+ z3v_Yi^EGK$iu00Y!9|1;851%P#;jhEh;&>Q!?btANP(hCA6$fblM0jJx*0QWv?_n=p34t2-*C?2wu`yqP@FW; zIAW#Fw;H+{q}kw+6~4`zMXD0sSNI2f&i6>Yo<*2Sp=GEQnpQ8URu7|MxByoq0v-VB zI?bVO+57=@H^jOQoirA2rt3lA5VX0R&5z6-oH!jlGVXnCHN!|7daz4N_1_Cvpm z;XU8WoD1_ezsgIW`9)s*nV;kOD_^0RM{aG;SZCoI|LiBoufGUqr|iD#J*4Dc*9n0# z2`Ly|N?3tj+Xy58!L7ozxTIn{P=E}5v0bT=?nc%Eoi(K`WqR9aV2V6IVW zrjLM#{^yl!)iCX!lZdZ~vq=4QwIb7=v80+vOdXypf_o<)@ytfD*L~HSX($5jwX{-I z=?%$KVL{z#Aaw?qlk)ff>rZfff6ov9r4RGokG>PNKw~{Y2e*RYdb?75?xvx0Jzj9? zLdLzK$poxN!|;ZTB52Q23W-D)H)x4SY5aL4QcUP{Rp)i3Zki%SgPIR_OWpT2YP7O2 z$izxUHgdy`Yj$$Yj!V{DAvRGY*SVd4-f4z$6vo5CvKS%yWnl)A3xgS5F0|QThE1zH z(<@J`RlfO4pXAlw{wm?} zA>aA6UqP~msy_3kXE-_Cq6t`BI&yPJKCg-m<32IZgg^-qMW1blhGxkF&|arV%(U^G4|$x8n-pNma_Qo zbDayvoS9S!#psI>iras32pqi=1rg`3iQALL`s)v+5LMXJ=U3I817?}{R(T&!#AkV^ zFY(Y`&Vr5zKA4IQ&(OhcV7P!-|AWXZ*8Ll@X(n;~=8W$K#i}(Zr-iLX(0~R{4haZH zMpPA~<%kE+{(pJ<(_r1Q^S%%JJ!`E!z2h10+;bBH0RkWaPM|1KlqgD+WyMMy(}^@?DD*$;LLR@nol$ifIr8LQd(rOPHX=9HOk7yv%H5Ds%-hGEJ96i8&$RtZEW{DMT9IgN57}CRn77DbtU_B1UR~Du6`8sLWVx zBb`_-3|yGNJi?B#w7n*i6bH4BgqT!`ry}eqG)_3{(`MC+kXcLKMoN=(8rFIA!$hafO8p`{B~BfEUnioZ%jrU3 zDx=gK7R8BUtDf3-DaKmI837eb5iQ18mI#?k+S?_D5F={>ccms%;kGG~6AH>$6I9?K zEp4=nOipeTheL*P*hf#9ia0WB$V6F&8fPR?Jfdf;Wg5$xG?FzW@M5P4j2P6CiA(sI zkOT)UNp?7BOm<0X=%m94SmOo_@T4j^iZWQ5#vwyfHrnH25+do;BgSDRPk0$IL`{B> z6&anRQqhPds^S>aXouHCNER{VYFKHaU9_<$n3ynRj6eh*m0au)A~Qsj(nBW!L%~;n z^)8{_@cf7FaQ)7+w9&JqP9{@va27Trlmbrz*M{ivA<>6=445%69`qv`3`(aPL`zIe zObctKwA!Z0vJpBT$m|$z8d}YZ`~<`TJDU1KearaqA{Ge&7%D!cY8ZX0GJI6>NKDs-Cr1x~Q~H$X!m|DO*}h zW)WZ#BLxw>;G?h%5Vn!tM2f<4Omf+SbLuU(+(=JV8M6b+en+GHNKN6Ax5y4 zt%J@xnm#G>8WX8<%UCR{u4nBd>I4zkbs7HBx7ViE7zCWjHKe{Sf>q0jMnY6tV<-)2 zQ(mt&v`tHvWi-p47q5MYm+gnBZO0e%P0qpv56vdAWi-;OrBy*hDNTt|GLf8VtT55x zY)0<`huIv+uvW=!2AX(Yr=dd;GBY8!1!sND+C-j_oKiFHg%vA$Y*cbFST!6-$-(fD zwg!|mIT4c)L*z6xcxyRvP{)FqR7A~aB;i(qWE}My&INX*!VEUuRxBX~Y7Nw?7%_~n zhz}GdW8al5L&sK>jWeA1j;X0|L)j5E;*6m%h9V}>wS;O{N|O^~OUnT2Q>8Q+eT<-% zt@Nk}MN}qI(BL@}PZ0$xN@J2U_6`*bYU&UuWkfx2@nqVIG zK1q6LLYt$hh3cfFmQ8AaQ(?&12x;6c6=+YxnoLT9X>c*8uqAJO@h)$^dY@{4mzRI| z<4J!!D8UqLX}~zFBva5#vIHIuns|xg2G)Tk*PKpjaw;IFVLhPNi^OZR3DZ`wOY)4& zu})BpOmqyiSS{#eO&=RdnX#3QUXv+AZVNWLK~0CFV#GAbB)bk(OKY~6*fPwu0#c*Ka+`jUWGWT&$PO{ep6FO!v+k9DVtB*q+|yU@~P@?qU!&XZNU2 zj?nuLDUXggz~ah1UjN8BdgB@L(HxWI%64!#acp8sX-0@953?lll?3%Wfj%gina~dt10T`_ zs-q{WQra;A!`8P+w$*0bphSS9u%UDXQxg8;wu}%FlC)mx+iXLRHI_E|q<5vBjfw1% zC&6Ts%Egt5jMVa&jx)byVlxgTr^F^Lat-uGS^0)c6Gfyo9l0i>fzH4*I>b6obxjjn z_RN?t(4IHG!B|5nhSE6t&|;0y#Xy5+Y%&Nf7{wd#8YyD}_VwB_wi!0+U|*K9NhD#3 z(13_giQz0Z_z)H@($5tf9i_nJK7oG~~_?kw5xeWTf6bX%kNLDwCU zQMsX%3?Gw&ilann63X9Ne&#>^+x)e^@E`HQXFkIJ`4|5^y!CXk$C+er1!?TADoN!+ zlssArV=)7lP;t1JAtrUtJOM9(M(eBdR~by!RY?e{)Wb-x5figedwS{VL(jxc>F`($ z^s%O}B}Ow=vPy0;K`};&#&aG|QE5n8of(;C1WA*$J__|fokC4g`5luaD5Y$lv8 zOE&c`CvlIJ-=)+Mg%_+3gf?*AThu!C#4~o0!`vYXlfqJkKot$AJv^*?`p|M`X86dY z;^@t{_}Ty0{{`19aW`M!nIHZW9GxwxU;85Z_Lo_|@iopL-Xj=GdFM9smtNxV<&SXV z_*HCCa{Z$pPxvh7I5RyR$zm%P z!(MKPR#?@MO&8J3kmt%ICJ)8|3`XYzm}K6kD(qwq<0I$2hav;@7&XjCj=qVgMqFj+ z+Ca1hZZLSaqv$(FPsbOzjfcb2waQKEXpnPmDP!j4WDnUcBA`I?^b zR=?oBThWP2^1LyiCQbDkqnM}(TNH(@_AHF2jgg7u^wJY0a?4COj!KB_fP94m3MOWR z85Bb=RUk%^n&-*RT3AP)E|xg7?{O}TyEAdjBaDp0YD|*N2pW492#+LCxDhiFL%tr| zNj9oz1TQ(c$rFY+TC8;}fRk7=lE|J4rIuupBsYS_B*AlD7OF4PfYa?ABmD9BJF z!~rM@Lal*((0i&?hK1>q<`|@Fs6EamGmM}KDIA7IrwsZ@s&UZp?(k;d^8p$YC^yny zHQl`^J_br8>F#Sk6u(LCCDCV7A5mi(P=uimmRNkSZ94A1eFEax`_K(8V#Jw@!dAF} zl^>*|AEu*@lBhk#Iy_)iFi{6MMoy;C4FZgo0wK`SCR&E3o?C_+1`H|SM@_vxk)#za zlo$tfOnUYPn@VX-eY;jGfbSc7Z+`!XTs5NWn>K zhz&^Zna*x;>-Kl^wcq|_Zd`wfTc7$t?%163&-@5>b3u4`m$TPj<&Cd=fz4Mx&-OQd zh1dVvpXaO7IkV?qVEW=mIC%EM%s>2brq8`dn@_2$;%cB%Sz*^I!AIWu<)5do=Iq>h z9v#gvA+T2{8^9G1du6*-qE*_arxJ@x1_fXZ(kq*~qs%f!Q85KfjAPRW);?f-WSS*C zvqDm-*sKG&2;zjUP6+tUL_%iR#)$V3LC7s+Ch-KTAgsO8Yb19t@`Af0t}>uwjY+j; zdTtV+>z3>@l{vTa4PVh?9`#EeIbmbEgpR(%8%ac>P2y=N2c}?6Os0?_P#H(t3u0hy z$8U z3}gf8c5E`*kZigOTe2KPa1GG<8YhC-X64@muBoREq zw(oFxPB(}-d$j~jJWrK`2h6dwCME?h4Tu^>W=tGZVy)y@0+~d5=@KwLT3YqVKW|WS zNCSZs_)Akm3PeeG+UeC{`SIGW&Y-DLX0 z%iR9(r`dhxCFU=@M0xERy(`GAW%=*{Cy(wk+7GOk4dcB7$`GkE;-jHG54fnaA@!fVH*|Ht=gA3O zLVzYv86~*XQO-L>f?C5K0*lacJ1940!omnP24-eVYn2_7*!eL_nm#8$7nL`p=eAgG zP~eT_BzP*#*`SP#Wo8miYi`Y;SeddYFT&CXF2sN_6qtb);4m84k&F@&Jq5#&4@^v+ zyq_gW>E)z4UTlUBkr9SY60_VI%SwA%^%S(CJhjBQRIN!s~Qaf4ksl2G%x$$E*gzw(cmPb?R$((o6u^cbLS*)1F#0Y6%!gi9p0sXvWB7sOlguohGW6?kq7vB_kAN6_<=m zkzfO4h(f6zB1Gfy>Olo73HX!Lx;9jH&0+PBILdf#I%XB;EV~KEi<_LDjk$LgSv8*E zb7C}j3UZ%RSm$Fy5iOH(`h4=-4JI#tn09=NHy*WIqjS%>cg&`9^vk?DjbCQ*))zQ_=M^5k`3e_5{|_jp2NW-SoSlzt-s9of7*%6$7~|xu_K%Bbk9cXPFyATPMXblNo}y zXr_#!q3e{U?@(umYN&%kNYlekge`n4-XNE!A~B>~4;B46_>UiBAz*=#wbr%}jFvUm!E0G$a! zhhafSVJfCEr^2!jPl2Vy(W1DRgu8aFMWP3nQG3s>SgzZQGd$bgQ@M;~@XSmy!{}AX zf=5I+l~j^Wj35ELO%_-pmz0Fm8#)V$RhUF&Y%QG=E{Ggxnij5tXKXDFSV+W3BFHwr zqjDJzp&=x7Rso5Dc~G_{rMx|gH<7O2GPh%b_(VL`X{7kcbmb_t@3a|M`;X=@wB01UkWl2szKzi)()$YsTeMGJ~JbP*wNt02U>(k zx)x5-M90Sj8cAlHJ-HaR5~;Tv{-}2TkeUX3Rul^hS;XnUpA;d)UAaNI)=*dkA zaOqj{D2d-DnlijAsEVYis1fkNQ%eUDDJ2DpOp>m}Qkyieh)HE2c|3Yr6B(<;4Pt+t zHYp>N1c4o?VK8tfYE08qiI-1#asZcr3>-cq4%H3?I(kCrsBA_@hlv5T$sM|&q!7n~ zEj`J`j6v%w41LiwSV-akp%)hQl(S~c>1v&-?3ZJN8ycS$Jz&Ojwje6aJp*Q9hK}98K1wq;FfL)kM45!l`pV* z^Vg~0`4T7hU#IU|s@($)Zof>^dD_sEjVIjs-XG`L@Bd>gbk6>+#ZE@_)>2DG9~{>U z;m{dEuZf+K2}Pbf?Y9V`U79*$(cCjpi=u3Opmdg{7gip|792i_2U=yC8{E({6l<6{ zW$l$k6k=w;M`kuTP&XnpG4;u+!r^%8u+9!r5i&672QBV2w89OXt`EzUoB4=qan0xa z8Si8PqZvy8HB_d+TZ4u~x^1wi5w^i|T{CKvn#ePgv6R3KlQS}rP8>@gabgI@vH^~x z;51_t4UJfQOc6Tt0c#9Sg_)7z!A?Cmhe;eKRaSk^)EcahY(+7~u{YR-hX@6dWLj0} zf?}M-3?tTE6&|Wmi%meb81YeY5+O@HH!Ft5SQe^`b-;vKO9uoBdLXE$5-=vY<}@0U zDdwQC+Do8PlSBdu3CAQ!-UE?jTdOcZ2Ar57L~w)3gu^7mF7+T8Sxgp8Dv)d1j5ZpQ zYNfbD2_lIa=8_XMCLpbV6-#fDgK?vYNxwc{0r1v8`)xk`Q-2CS9}zu6qaB>dh}O{! zui24Ylm#fn4MQ1ALr<=jf-GezCQ&aUN`oQgV}><~r^IOjJZelC-$o!rKlov${zj0T zu{xsq1Q!tlLs{4p2r-hGY{>8eL+22qiWg1FpCrW!9}`y1lZ-)(L{Nv(jK+2ZdJ1Ob z^lbDZ!AgWwvR(#3aTx7T+fmFK_NM2&wDTC<3ULATdQ5xlXdWyWua(^POp1cTET_zJ z7DqL`g_Tr9_Z*RH7|FTb8T>YBeO)U{%G~nC!-i*eEW48ttEOQ7{FG0B4Z&eDe^?jc6nfN(bGy2UGx~%Vo{SeX;me+mJuNhx>`$~LnemBre`a1 z1pz9_=)EQ+eu!-Qh|N-4LZiMnV2KEMcBySMIL~t>w>_v#D#i$MP??MbBf*DK`E8{o~(5qn)dzL=1pBIQ2z8WK)kK8a8 zZ-k~(4uP(Xr%m}rIXoYQ4GqRS}M{FO+#}y$8BT>fA5PW2-O4mn%z(q(C zsacleqtFFm$0Yd{XN8G%7=%?!6oJujVS;hAL2)5X_!coxkdaBonuw2{sYyM)wI(4p z5fVyU0vin!>KK#JlOPrbr8Lk;AZQ?qX{>9E;YgeMR+KIFUFRiiwo{)l0_+P!8Ten1Voayvoph#D-0>3aTJZG zHNp&tR_VQv#fVeo#96AS97dSs8RurrmipwJpZ=fy>)iXL&ta{F z5NVg|cW=8fXpGn*!(E?LEyhDu z=tT(vQ%y9I4IT-BiR45hL{VB_gOMbO9U~hnPb=dPCLrjGBm1h)>Kb%<$1G7$-;$YLjFP27*hn?#4jx4C{PO zQ%yN9cX&|TVCCj)_dZG-&-l`rqZ>bqDR)^dGu}SS8BZ&YA04wfJLBT3zrf=3F1B5B zFh8K_0w+hW)1P0^_ZJkS89Oh3hS`U|kMW%k@zRUWQO$2~Ditd;qOgi_a4)Q zs3TJ#A6&^M1Yja(!XXoIqDJ+^QZ4yI*tL0UH;vBwx_UCw9(RwKR> zGz@BIPY0}%(^Eu*z5RXU@*y4mFAhH=ms&-V?z*6?H(SmXUM~&5K+P){wwlxgFxk+s zOl49LA|tVEqoyWvh=?kC(J~ul^ggChde;%WGRYmcjT?fAr;moUQ9_$0JjMcjAUIe= zWh9oekJQ@ZTmeofouTU@7kyww%QHnuE|walj>=f!Bno3A*bpE~rD5$sO|pP*HBe*G z2-ZP97$+Boh zOjLh4+e*O)pDeOsU}i$HcD;PS(V-!(?32@nKx@-twJ~xo9a9zdDCsp&Tg54?wL=Xo zzVKxp|DAtIb9&C_{^S3g(D#Uts8GP{_6L8{J#Fl;)(o6G8E9BODLtUc=W?KC^|2plOM$U5WCpfjo8)~g zjJ0OcoKr1N$c|4aPR}`b=K;6hxXmT_pjf#C@216+T!fNvv?$3^P7TIF zbdhMlCbMV63R{zLUQXFeCNw)EBnuQ%DEA|I-eGbJMrmxuCYy1@4c5)Ge4+jbU4D(z zdd$5O<@I0rb&g+sg`(WyGk@}bPPYFYJi7ZD-O1}5z4b*Ny!Hjc;vUj$aMcd;>vx#H z{9WX?USfRbJE(T9G1)&PD|XYwIW&YWa5yhng~+Oh%nD|G&O5*Q50TyHxb=ze!y}B# zh~QZFLNqWgEx9P$CgM%t!V6Vqn7BX}hpxFZ)UBr|(%O1|56fCGa(P`-NvQ9pS(m}f z2*eoizQ-9u-!v2$J~Q5BFJ>GN_*LnsW5!w?6A^M_Io32n9bwoPrMGZmgr)^+EOi|S z!Q)&;B^hIzBvz$Y>OOMXrseQ(FkmP{WS&cs9%%!+g&E3G1Dc@-c{Hq70dJMQ>lu0I zH1)Hhu@qtug>8r|qNg&#PVS(N!~ho(5sB81g~)YAXrvgj$@niPslBGU(ISF(H?NaY@K#kn>3D3I?pOX22*} zljL<+R4LL z+NaU_FgS`P`3#zvS`)SOq=|VXga&I${Gd1A($H!T)-qO$Z&qX{kJ)?kb)Na^t6aZ( zkIBUrv#iNGj|+-=lENs-s5bS21&ITMXjn~xq@cu*i7RNIjAc6O@HVF|COq1^$!jls zoCh~v;^fW&R1Krinw`lRGkeay*)WnM9$iYuv;AH2{x07YevZD|q3I5|zue{5ik!do z@F8tp(U}e9)L@=@naOi6a^tgqlJd7+VH_T_di#q!di8T$9KFrS8=nVLQ0(4d_qmtJ zZhnH<^PlDVi!U?Y%h??lT$~D9acmIAg(AxpkH7jm%x|<*AN~Y=H6}EkzV8So(fwRh zqBERt45M7x9~r#o-Hd90>Xcbhf#})~2w0270<18b&xYn?iddJI*odGZux&ONBiy@x zkNtx~=DT}9>a~2Qaa>o+wE+L6LO%$2nLdys+*gZu&n&Z)9qdNKNl*$^stDpTLQpCU zXPxI{+mn|$^(Ih-g!!qe$f6DeW6&f`J#tz&23imO?64Z9^n7 z%W|Ry)H*_hst01gWR|8?N@qBh#B9IrGO|r%t3t1lOa&choONk1VHFy$%v=iioeHa< z6h2{7)-e(X-c+B#Hn#*HlYFrgyjlt`1S7PAI%WjUV#nO%6obY4CIq6%aFVkNXtZpw zjIq>`5cW1kW}1s3y^@)}@SFBW|5l~eiLkTf(%$im_&%_Fgr8NO4$uw{g8oU}B1I{M@ z$4)&{a@rW_qfnYTnMP`95j?p%3`!#m7Vbdo=z<}WoJ=xWfkFjhplFxeJi5=zUwW0@ zFZ?!p4<6x~fbAnDL|psshE5P9LbNd{$|6{sV^tuwNmZg4C39Bap!tYs6y4To^DV}l zKJ!_A>*dez4{v;u*KU23*Y|GW3jn*PBe2qW+WAAWbZu0usCpp@@NH2eg^7c!Z>QlV*oj*?hkz-!W z)||ZlJKX)kKP8@jk;lLNPw9T;?_=DU2hVX5?lV$hyFDjv zmOOs@YaHIc&*;{N@oK0>mZJBJvVtO4>P^SA%&`$>2G(7lHeYe56S^i+w;fekaC67K zza%_9IY9*W4h{z4ks)9WzD_Zw(b~QHkGOW@kf?#Y$P>YNm@LL&7duAz9W{L3w|t@R zIJE`z!b+8~q@F|Qll;U)4X#gw%jhFE2*Fx>+u@z149dQ9RJrA(4fN}VyvVV}kUJT$ zTCiz69Z3wV3D9>vyO~nj3>yTi2A9F2>#@$@qNW~~h0~~Hg<-WwO=FiQVX`u_+$x38 z#AMdld1fPn=84#v8$%ZY1%b)fu?i_bwFYJ;HGDgiAdwg%jZ;Qdk?hW5O8Je6$&|pQ zEI>sm5M-cB41^S{0b^{E?LcXQXJnJe+=4(f;8dtEbTQE%axsLE+@Qx|u@Nq`qqE7o zrxJ_A^gSaA;%Gw6u4V)RBNcx6-~IRb^3VPwLV(A=@@pJ^&!_mY|MdUK{wF@lI0#+? zxp4_wHgG_l5#pd|xrsf&Sf&a&u)%Xqj}^ndP;X- zPcM2VP%b>C2Q>zx2HPbFMS?XN%wz(6M7C>i z8O&zH&=Kk_wwTl9Ih`%x_D85*`UK_&|9Mu2&+)1+d9`zVt`5A`dLEdPW6vz><)L_h%O4RzjK$86E+XN!qL}W#ovE}&EvP}{RSEDGP`q!-GgU&{-d9u z+`GYBZ{OqYmwyRUO!?>^`5$xVqn}1IVG|QY4K;+`+>>iy|4-NU7U^ zxYXCSL?ncuGK?Mp&d$zIRrdDwuA1&$*MSI4)397DxPI*#AwX8-7(0}WSK;cidVCiS z@j#Vd_dUPREAOb|xL3xRCG)A4ue->kj(97?(o*=qjv5AhJHCTa0o|sD9x|7Kz-AlB zLSTQI@t{i?%+@Q57Rn-H&k4>(3Ic^SbiHA*jW`S7X+i)sOl?Lvww!xqQbg99$igQ> zgg(m|Img@tMwR2?Mu{#yNQfZZCHZ62fN}Ec@ttuT#W|M<*Vza+1DUyj$BGjqmAEZ!}RSaxQz)6|{iY8lj zuMlX+OyYXZ#HJEaBVF`3fkI(#@Sf|9aQwwD@%g{?H@Ws_{|rC>lm9*1`w#eu|L8y9 z(|`VdMO5gc$0}q4N3#*ANJQGqL^eh_kDjSyl)>Xonq+nw61pDGQhOYhsmbU<&o)NX z!B{d{pD_D7CSyHl*gKQxMH-ckj*%uv##&ocQlRbB<4lquipDWU*v2gd5hF24-e72B zhe)6_iW7)^AUl1P+ox~y@*BUwwX?UlvAxf{*kFrvUOE-xK}jr1x~m zqtb-PWAC}^g|}ME+g`c1y5OD#e$qA z`}3ZWtk~y-nOP?=Y3t~>Q?}~^E-ntR&6K0_IbVFMq7T<7`!Q@gs?8bqU;8}W>Wdt| z`Kzqn`E87hD8?i5oqg8*i1BQOj1Jhn{USG?eTiaros+Jh+}))MCDX$Lg0YA=a@*5O zhH;L~w#GR}k*8KmQ3%neH6kG-`_#*Tb$ombz~SK`#w5L(2M->QWf{A>yYzieS(a&J z{Y@N~wfh?7w_@byE?RzZ+0j=O6*(p-t&K=bLS8-uqzUA8N0k?>gR*NJ8}Hf1z|E|n zRKxi)nL$*UWw$V#oj0_`kXeh%Gh&3pJmGPw0!~iX1UI6yhLc6d%Lk6S?x@u;8JGAj zrUkD(T{JXCm=}sIGU_%GLqKfmJC(UX9BfuCd6`iwn9MTG6Lq08X&N|jmbC=7n#2hc zNK>g@qP(PxK+|*(#aqZSQiGZVByD}bW)5+w8Qp7|j2d8Mg%Hv}J(DCYYm9;qgGp`Y6ma{%rmpGAjNkkV|7*VbH~xQ& zuV3ST`iuXJ;`S{Yv);~jBuF>w4`0yT^Fa0KYeTunw3w>}8zh2ULh{cTc%@?V@_ea_J)E^;KyG-^E zNkdOJbh-42G{E8|$t17)o_k*TiWlDKgm>0~d;OM^7&x&RePz*+#S{i7J*C}}xehB0 zh4eVxVzp*YO(_jydMegTIAg3WQw>O4u-)!*e7whcbDh)sCEN4JVR^vu-4zdCe}(hc zf1QihehJ?;^zAA1Yw*JU^Pi$Pe3lru5Ix&wOxNeQ@d4LA^l5H=;(H0z9(i6;R7pIr z4F+tWZlP@gWv-M(5)5#;eK%lT9!Ez<#2C4D?Hb3&#}q}ucs#}!gLCh;ye_k^-|e`> z7Yk`ZcGL#`#=7J4TR7=6sRyP(VWU!Ik!4hlJH-_+b`h(VZ4@j?Qo|2zi(V8lLR1iweA=`CoPEMjRC(C-6ylkW za;$YkRYLD63kx=tiMdT$M!kXP5(m#&p$(}wlo`RRCocx$rzp$?YLu;p#M{Gi3!79Y z4fHYM3{2D#qsQ80316${F|dzi9#SSJqO_W_<`|M=OBN%sD0uL>&+%XV*dIl`=llQ7 z{}Z46Km6};YB<+GVTk zwP$0Xu}P-44W2wEa52_m;xIiO{PhAIPP>%(nMjn>JI&RSp=o+Na2*R{h_R#Aj!}5b z!O55T?nl4GM^1j719^jN-lO{wnF>;Y=0b1G&amLQ!0jG~oxpnO( z-UqTg!`L)6vo>Y)YSQ!?O|CwjDr+COzioMI+w*I+@a5j{b|_iez}kV&4KY)+h}c3f zuEn~JLIOrSjzGnhiWP+_W17^+*K@{fDNtw(%{DMvJjd#8#apj$YEOLyw_yE-2_Twsfr%S9NH^+VR+nG=sdYqS`|zNRur*9 zh(c|YAeMN+%)usVa)365Tq3iixkeL(oq^_~q-)Vw!TAV2Qss^oIPQC# zam);igW___d7sGHyPEijMP^fQ7K5)Fe&yf(xA~3#`@hfOcYm6n_`83Xu(L})3^K+s zQj*B?tq4tw)EW_+&e>Q)G2qJD7->}5xAuy@)S>hWIdFQ}I)|=QWMl|MOg(_ikU7E9;IyNlClik~TME{U zq@^4TK;}`&`v~=vw_k<3pPP~`b8f07F3)-8SN{pJeg!cQ_P(DRANx^eJ0ouGkJuC8 zH~xOjjc2CVI}6@!N@fQmy58an!^I|&<;r9f5$hP`7BpZBi~UP~=`Z~ifc1KPRr+OF z#%wmDEX%8`>gfRWO$RKE$iTY3|rq-ceS#05S9XQz- zPB)4~VQefTF$e)^1G%xBE<4%|rn$wqWHhBdvfc>G8jMSZkR~d*#-u9IM$`)u68lo4 zU{zRdy98MXN;3clGh@*%5lXES+CHK|3DIGHn?d;q7BzKe+1WS|)nN_{Lg!Lf`m zR>evxt%=IEQ)-_KH7gNpOuozbG-59WtdH0*u;HV{g_McZe#j^lCI%|&h#@(*xF}?0 zL5#{fzwirOeDy21a?E%9$d56OkPVX7%c!(oS*pRBRDKmP$-`Wb99nD?e3y(6dY3X& z4Uxh)x+rXeGQrZ3R3}v&1Z9dr2e^bH#1KJ~4SO7{;2RM-(u6Lm#gZW^m;q|g58C?$ zp4*GB@&ot(b3V5HZ+ND9jcRv|+3Se&NI!?VtZ3~HYq`c5*LbYA3Gw^cH~#|H?H^&H zFCx0b$-`r|&6de@Lg5@mkuw=jFeb4e5;-Ehk7x?im0)rhS^x~}4{KmlX4ouaG_J_= zJoR*nA}QBuz&OL{`6vCFOv5h5Lov>ogQuerDp9^N3%ak*6&TPf9 zDB=2)@CV4K>2f~yy?>G}`wmPwrz&A}3eVh`fSj<{oUu~Fd{$u% z%!(Y-36)cf6E>@49P3bAw783l3%1)WySuy0u5I*#003-4NklW_ z+2{I}4kJU7m72t&>E?}rk5-1m8zWwv2L9$Xpl!)+62 z6si!pv6plI%=2KS9F&e*dj;1@Lx{@83$I^zf^vG?6|)+ont@S_r+zWR_?QSsSTxq4g=)_CBJ{;A2RD+tOeZCJ}-aE|x7- zo+FYP$6f=`CE#i3Bhe<~+AYF7DtlRmMj>~Wk@q+UYf+At4c5RU&j>N;DH#M6Pq2p5 zb0z=GA7=miKg;Ic-{9^)_^9Os&TKTmOrsFqqi*1@4a=9BAR;CnCrDKFVyVt#N&Ui8F~5K2oYV`@`!Dsvi{ zvklki`#Vhd40nppu%j1AX7JU0!goGsUb|+^Gug zRF030E&a6_n+O+PxYxov>&V^JhS%OX=dmj}QNvkT(U&D%DRc!$retNnn!qv(SO-oO zGEaG<#vYWkcQX9VKr1tr4*~NW4>vbB>EY1yWU*yuQt@~bS$9J2c3~5U>yF;!tOEFG ziQATb*1nS_#~7!r|O;@WP0Lqrm4^%Hx6f+$hwGhB7ncS3Nlg!hnR9AgL+-+(h}#8zXimmajcnv&cqxFRV{m_I65|ddql} zqn*Kfg%AlU*b*|7N+PTChLBmRD!IxSAE|x7n4}<3Orh>QP4AOfT@&#pvD5R)5j4^( z^j#o#2HCcl$}!3eCMw%DuwPiHl_o-~FfI+g>+q6*vOa=u1LGVv2sSJ6QJ9#(juRH0 z$3$VV_2f~hET~U^SF$7uh>>I+9#RRl?gOJNrzBDao5~iHXoT~&rwKwXj%t$e*?;{n z(!B8|k3awG-2dfY;>M>w!Nbr024DW$f0G~o+y97S=a6jMlUYkNmUZoMRw<1^tdQpg z>poD|KJ_P>NC*(~ghLzkkxsx3keAj+BvU$*1QI)hrjL{^S)9j#L12T@_auV2Sb~Wd zo6zQ+3PtQV>|WzLn_uR$^?${8X1|TwTVM)9%rZJxP@9aE?z7PukD1fx4q1GeJ@ZNK z=pSOzAFw#zGM{J6c4k;>nT*FnOwucr43R5%=o3))OJRX`X>al#0$g$%Qn_T6q}NQW z5*fq_4b~R;(2>$?D60x<9eevTuHU#x-}l&oFWIyW##v4u9Wk9u$g+&7Dz`>cUT`g3 zFR1qm9^X3PfjHi2;A@TJ?F;3>ddpepsjaXqbGocZ4gF-~4tc=k6;>Q}+EILLj2(T5 z>YbNapC3{eIiWM`#E4{5-gva(ViDObXB-qA&+Sd{c!Fd+deqZ-*xxbCMB? z5y>-`0#;d;SHbDY0CoBA-%Fsny7YRP3SY7klA@$u?I2)!&-C~{KWrS&9_;duzIx0B zJM?vibB;`e=6p-$Do)lyIWb(c%5H0!JK_E|a(o^Mjp6t_a{nSwjtahG4wE94Lp}tK zYRl+_9-W##ypf zI2Vs6qQ)@FGcrwjXqPfH3ynmZ{02*t)GCOE)_cS>d^&uYPp$tNAJt#v`RX;|*wU2+ zN=8G)azHJen44^MPUjDpm=}1?{t&b6b?TFb=`}@6L?tkrjfM>By%mTIOp*62pQ|V} zK!Bd0lDvPF30Lt-BvmKFi+JC$TCJ$65iula!0yie@LTCWd6tv!7NE+t!)u9;nPnhC zT{i&KzT@QVl--?OmM5n?d+R#;&6ZEk3YZJa-N<=ocvK4yz2UcO!@X_bc-6D?o+ZlG zc-qns3X?LjJZ0_n5C0Huf0w+O(S1I$T1L+9cI2kQXO=~bjPr{7N1nZTP8;C-G|=@z zr~`{k8Sfh+hNFkd?%ZPk@?ZYTf91)5v|KI$QhGb|oPK}DyJ@c(J{`g!b=~mr;UkKo zV7=L}KP`EFKIYJLWO>0?&S33fz3ma3(FMn{4mgxWV~NSliMm(z^ArruRuLN_*C!SN zXdTfY+&%TYd2HEkh4YoA?*p?eGAkTin=+^KO{DjZi}RN8$gy1athRxOVcRR6v7D`x zuJia->AIeAl@X(3QN!W%QqdE9YY08KkO;$V06+M%HGWVD?IK;L#4f=?jkOp9>urbE z^xj6+CQOhd?fB>ey%(A`GRI<7sH5;)Wm&b##3v&2xsR+HPi!MoE6kjOF5>;A*@mI- z;o&xNQMWu}9r)DGb1~VQ+o(KfI@aq*;T;E=V;Uo&4Per!IV-1}zV#-jU-)$%|JpCJ zdgpEGqx zg4|XAc$oBC>nO{LvaGPyFdmP{T$1Oh%AC#mg2FnQ^@iy`c7u`?6i zKB_re6+}tw{oqp**_yzrw~R93*_+Ckj!NJn8Xhk^&)pdD_;HJIk?SKvEr!;@<3*n+ zJXoAdnb#zbsC7K7EnO6fN@;o}s-RK8T$&#!!74FX5aRMQ&No>g&y><-EP6vo-Uk#W zG7?WVvFudv;M`-4GCq;`>UnK3bj zj6kP`uI)MAM0N|y)C%fgBnIyz)6x+PoHw3Q42$TAePoj5*w8Vr9HZQ@Xq8Q`SXc7e zPyc`ThkyBhLu@uk45&u#{Lqi{XaD-oFeP$flo%sL>ye_M3zoj!Vn;d4u4UcyOy*;D zjG=A=rb^lVodu~l{N)|d|$(V)7sddJhIT!4)VZx?ApgiB_k4^t5*W(`Drs3e= z5Nj_@a4!|((k^^i{#|a$@q+>u33?$qh+M3_t_-+EyB22FWY<>F#NKJfSIx@LEGpWC-@ zrp6*k^IAwF`8})rz^#&JuZ{TJ*w#=19D z6PIkQqM_b;P9@O{8UeAE)ixlx0h^?F4U%wK!x-KG(OAsXfK93jtEOkwMVyV4xv&m` zOp^9izldZCt`-!;UjS!S&7GpW#S+d7739s;MMj>Y8P88m>BpD_hr5>|2bZgFCnJo zOsCXLIF~64opG)+8pbSj%#s7p176mbxt@zrDH zAH3f4&QavyCZ`J^MZxiDWL^r>GHC`Gt9UQmf8^KSX|BZXU_VcVC-Mw6Gpvu9Azl)t0zLOgt{v@CHseg?g z@KREiX<}x@VofrSl^9s|22(=l0@_AeCsgAM6Czzy>JXR}$(W;XhI+sqO*2^fBp%p{ z5)j6frR@V7w(RTg@F#Zv4xgU<3Y9#jk&;#?Y-Pe3a~8VC1v{Kmve7Yn;WpnX-@*5p zmpCv}9QNympWn;zyY+@+j5JL{mStRATu@aNMNt5dW!bm=Jf1!m)s!xFT}KQ_k!8Ex zvcJDijB%)j5(~zAj~Q4EO;eL)j?>d~4t5V&ESAjY6VA^sXnlaH7<$9ru0jPuTM z)M6kP(?;$G2b~q!rXqZebn>x_@ z$cJ_eJGsY%NHiJu&stW!qZm0pyeG^R7CpRmz9q|q%34Z=%0Na)FbXFejB+N4>_^>M z##O>H^*+#hFfl+EShdP{S~4+_%qBdS$qiN=xq%kAyY6`K%l{2u{A>Rf?c$j2#c48i z2>vQXFfL1OKQWM%73I!8&wSq>;d}pg{~@kSrC;bG`_plv(PWm#5tenw2xU5{Xsu#{ zCt}(5pe`BL5?cye;*HSf0-4fw5LL-tNE2q4(f6L6@H_nIGr!7rKNt1cYeq01JoLhkFQeCZ#Khv@&8fKQJqNRr&;Rsa=LMyW&^TTv*xHhfQx1Mrh3BmAi9hi)BMwwyN1Y(xh3EQo* zRgX83xyv!RN35ZXh8{zwkxd)PG9fFJRe)^_%vkehZv1sVb^Qw%9?>cd$&Rh4HPG*c|BUF{?bo#*o3ljPHo8}9~$acF0(k`)H zueo{i<_AXQ55jiokhvt9=eymSgac~w>VWE z*Pd?UnO0en>jAEh3Vi6vCx*@Wg8RSzbM)c=BP8sLPk@&ps*q`OeaMK&g%Fsn&-FmziibANP$5uI|Ml$KCH4Pb} zDqbMZEUkgsN7`Q48=r7{{3U+q*572Wd`v5jTE;Axvt-PU5U|l9IGW<75$jE@=zoc#_RMRDlW57BMeO^_isT&?WddPS@;{0sE{{B8) z-!q%fsO!!9o9^$)dida!@yQbnA&LCgb&aYrpU)|Z;saCIZ+IhyH}sx9)+JDG82etu z?_+f2|~mY zBCNa;dJA2e^SA(;HU&Eq97Wethh$h9TObb{7D}bcW)-NT@Nm=7HwKI1DhuLi>tx8f zUj;S_hr1KBO*@`i$i-m0$ni3udBOU;rVIh!M-FzXG_~6{>`p7%ttTrDo3jNs4|kdT z@K15PUh(PkV}9W1pI-b?337%!-W7 zI_ddu){1XDuOg6|XV!qESF10qY=BiyYFF?Jh|3BC^&p80qKL*ovL1Cc_9Rr%OwW~2i&}QlPt@w z`cogYZl8Y5ck!E-UmHGuqAUIW^CFell9CdUl<3^Q_kf$XZgFsU9p@~E*RCUCXquKR zOHS+W3s{#;y(b&!Pru<9;}wPHBG8uyF`(g0(5Qs7Z>Umt|fj!d7xRCtxi>3_&7FO!B}3)<$CT zQp88Lb>bmjx^K5cMtPEn@tt9RQgE%Z)NSD5;~wb^J2wi>mK~cGmfMzU?8u!EJ?N?< zNW^L2aBs@gM8>0(RQ7#D#E|DgXazNai)BOIcT|~DO>&B&rE7Xd)recWQ+%fc30N%H z5%=G&8D%|wan7&(t^eezhgDW%_QwbGn?UH3NaDeyBt$shbnNZt_~3c;aKW|xl9mFK zN5m_A=h*Znsg^p6n361}fZH}btEHhV0^S?4sz6L6^a*P<%GTW6d5eR+ucFnGBM#Xx zV$F<(ij7X$FyfRcA&j`=clq(`Ha~1ftQYUlRU#GaYffQ%%(HCuA?Z5dB?_UkJE?@8Iwf1}F@ABSY_hgW1ng$VJxm+gihP}P3 zYUt@e^g+irv!1UO@{{l7$uE;C0Y&M$mep#-e7?iM;URgRQh}S=#5cUa!~aARKTgpB1w6bdX zg5U!?vmNI4a*{JR(Eu}Nxb6hT%J=UHd>jI>>?6c3lCw+W6P<^Y1l9=qMTor}G&>_VuRobS(W|qe%$INCkcIIA~{{_aK5 zL0b5-S~i1jkderaGwjU9gv;dZ@_+A&cclPzW5lJmNgNjAW$SCTUUPhM#^H@angf`O z$Bc?Hb=-zP>j8fgdQFlki#l@J!W)g{-a2s9N4|3Axp(S0SHm_4K3FnwOr0>!l&%-H zjiXhVyNp#WJUj`!aATwCm(KDFRiVf%a@RJ>FaL%(1sq5Td178>&hPb&nOO7lE>J__eV0sf_la z$BYcVPYMGk)wJa73c6N5Sem&XuWm)!t<=waYc=EN=AnuH^ zEXi_*0GHIj_m)=gjyaw_rS}=BUgAA2j|BLWGt zrJAT>G`@#xp)qoHen#JS?Ck7vZMMrauh=ao1KK$`eMn5fF^A+pB&pwWeVXBCIo}fv zy^PpK<^DSG#;NDkb>wr8BcFc+D{nYoC&P&6XK+rEf~im@V?$HJ$w|j_T(Ma;beY4i zJVg$RbtHs9Sw!v&a?N-i1O zZKQ5n+K|(<0obxT8nHT4Ol3LP8KFL;X;!NV5DDD*=pVz`3HMJUJF}d=>zPbSh&_D^ zn@!}#j^)9`vOo0)_4l7X`rdQ@{yp~h_wYXHz0GFRtECEqNCNM|n7-cO zo;>*&BdgVl5CYTbl#`Paiacj$XXh#^KMh=avh>rzo%r(eZ~BmThsT#e#)o8Y)wZd| z-QC^c#?6~#S%H0GXG$^dDbgv!3__p$+LJ`D^zq$u93uLq6Y!IChM`P6I(o!tG`f1& zilP{HhId~fL8&p+A-zS9lW$>!& zntS)|ar^ddHk%DQJ3FMuE|ue#5Q5)}q|=j)^wny``T04wZ{Oy|jT`@+z$2bKkIRpJ z-_!R!MV`Ro&N;4MpK--`&<;k|#);{1AV z{@YOlU*P}2a#{^I$!@Mp5{Y*aNQlFa&mIaWHO;B3aqtP;8%XP zSCtR`u5bxuNQWhjF7T7nPc&f!cF-?Qp) zlJuf{fbs4KX$|vzN3Sp~9U~W!2&X5WrV*Ta-nnOfc3l zntGy-O!F~*C5$VFwk=u+q3LNmk98$3S{}af8hx{2cJKl>uV2Hj1J3rzaK3|ya~vNx z+!!e%1BjS0(jq+WTf2&2*w)X+CdQ7RXUE?K;*!D@+UPv2XLGRGb+ z$X{5onMJlTXQ3q+P1huG!n$W3$;XpU(@CvJbYqp{oY^SU0(3*cFXzs zIYm*hx3@>rG=vavS;pz<>6OO&Y&N^P8Tqg)T&B0*sx-~hKQAJjot@#FyQ1%uW%+f3 z<+tm2`dqi$?bQx=`Mtfpy{nQ%@wvy6;k!tl&vnA~hO^nK6X-X1$UJ68bdueTPSq_i9y9H6RK1FNpjX) zW;7ZlviK7NhTo6Io;yE3XT4r?czDQkI%PJSAtHG1nayToSw>M5IOiCRMr2vWzhxC)K1*hUN`hh<08B|1&p)s$sPyK2eHg7vb)HI}y@Z`nC4dGV(5$a%V@p>HDx zhmObh9Qk#Ds;Bpn`*$yx&T_WP8Xu<2ra6v=onn%Zsw9d}v+mf|aPc_9i)S?R?Cy;? z*vaYJNVD2-I4!yVK)L&%;ovai;Ce>A4lGw&%1S9*$)plCYo+a>?b7tth_JXwx@6{- zP<`02y6riWT~4K>(E?>m=N+LF+#>Ky7x^>$Isg19V{hm+UTI5x3%BrcAocL!LyR$8 zyLRoWpY=hlk`KZ#KKZ@Nbs{2H&F9Na8sO&5n^%iH&vQ1L%~cQV;lqbG=h)lZ2ze$^#nV6j**9*-%@@@nl)r_=YXn{UTCxXW^+?vgX>Cn43=IIgi@AY^}zwJtv#Hi4Qt9V7Dw;EqZpwmU36<>zdwAIX`Q- zvy*eWfamrLHjBWdEO};DV0z*9A+)2AjO-O|To=|S8w%sF>dCs2$FF(rJToQu9@H?( zX7s({`_ywZK4UN$J9qAUU<&(< z&gE&u{nveiUuSoVF7C2|=+7=&r4i67f zGx#Z?w_4%NbLI12+3*`*4t)985uBqmhV3?Ty^3sV&$ukvof_W0yI@{9uJ2X&U@$f* zdN$jRR*Xw&IB15t;~%plc{EJRdfm|HYy5 z$8V3hZe-AiN(_V4NPI6O=Shgp<$Y_KW*GYHUX^W^WzV;gy?nFnlBbn_FF#&fTwLkY zdG8sGM(-)dF6lkn?H2Dn7_e~BjOU(}oI(1!N z{qCbjkGOvQ`c-1{jR?}epNizkYj>5-e5?GW5Bi$5mic^sRii_4jlO*Im*mRJI{XqP zU)MDugsU3;$tL61qX~SoJKNLed^zf!PN%eOOIeo8=kxaf=zh23TeCJ*W3K9PW>3>yGRDId8n)@%Yg>cW&H-cK|qk^sC(c+RyXd-}@XE%c#gX zJKNHVXHO|>P$Ph-*3;UI0v21vFEZln5p$gk=N85E&ql|o1VA~ADvEDSeiQ(?9 z(td2r_Q23bB{YV(25JLq!JagHs9*6HK0e`}yFF&|o_@NbR|Na_F48BTr`2l3$;k;f zZrq?4+7wS_5Wkn_;OS@egN`QyXy5lddi3aO@MMgkD2l7h>&YN<*`m3uXf7v?S(b5d zaDa2}s^9GUp5A-9uH*Fdlsk9su-$GGxp)X*Pb1$?Pft_Xt4i-Z)9IAkw{QP}teLNO zok9rjmzVkd98d2Gml&;+las5|u`EmW_V%uLOqY#z?>$9PaC&;m?c2AnF5qS4ezHEl zEK@(|#(zC9T-SAY?@?9m-o4AS&p!KseX?(N8T#}{-1i+#yTN4zM~@z}zqik1JWk$n zL-U*~{MZL@z=jOXNBE65gkO2J&Bc~! zQ9VbzTaM5!)kP$KmL>dE|c+`s`^3lYLB~j7d-#mh;3^i1k@%8>+O2M zbg$xUG2;02obi0Z?rx5=fs+$YP_Q;f5iVkfeKzN{A86rwCNvf3HW0Uvuhb`i?;3|YS3GkW>8%gjH7aMdb# zGJt%&isR{L?Hl#ap8WUa-)q~J$B!R#?b@}g!Q16}yZpPCrpmW&-Fn|Ocse`#b|05j znzi=ZAF!TGr7zL7=jZ3l=ku$+(AUe3E}7$bo^x?=!F)cyDlNON!#PKu=hSt5mEvB) z44%HBm;YX`*Er|sx{mF3%fZ3Hdr-blAKz{^{N-z2PL|rX;ppfQH*ei0MkUW2nR8c| zuf!wNr>E>dQjPFKAiJb5-92geXJ1f$^S1*3_&0iX^+YQ7*oRd!PS5;NZs2&UI{T{73ZIVgcJW`_I9R9)(CRrnR*EkKqsI z;1&ct_pP5Inw&?s#i8A>5sCTGRlATS3(1Th)w%_f=V5aul&%R)^CA%BASp7$u!vgP zhV-%v_b&)gO&fLxK*xsF;(#XLZAw@X6#VqLAbxz_4Uelww@noa98m}XV3b0ZJrJKV zO_O;F|A|F)PJ!w%Cg;9ve zvW#RhiCiw<$La{IlMvS@tL?>D9s*jO!u3f{_Gz0K-(!bFZA~YUkVA0>=S6Tfc&7arnkJ{uq{-M!PPc(*+te z1ClBs5OX0CvQXVp;SRdN**r|ug2?p<6P1n(S+{_Y0rRYYjWiFXro(OnR!0CN9$dqQ zyQAT`q=A3-EfL>2Bfu;4)|9t+m|PFm%aH804Z!SWxLR!l0s#a9fqvnwZ{%JDPR5vU zlruwoSRRiDe!m|+pAXqw?$~?tD4^|8mKJ?a#o2DR8=@#8l}a(txF84!27};vp0S}) z0kz-nha^deMx(GSix~vY0RK^9&h&dt(;x@}WLXB#gB1Bi5&TgttWk<)c+%x^8MbXh z6h)}2ig-LeVD*fn${2OsgQzWr-v}JXK~+^&)79y8;PH5H_wHR*WSUN=S*C zy631(HvG5a=3rSC_V)Hz28ERA!@noDbyz`-R#@~K&hD4(^|N`l%|p?FkMF7Y`Cm8i z|6O&%M2~;o<8q-@)R0a4!9hi7&qOlWtDQ@wd@u|Zob3f~0j-t-x4Xw2%EJZDrNOdQ zBoh&oOC9*U9?a%Bv|A?bt^WrUi+=@4s^P(dw+Gfk5WHAk{yr4Rg{6f*MJ9IvmTe)O zj=<&iz~n4gCWrM0O~hgmc)cbXRTZY)0|y5~Zj{R!$^{^kGEnB-C@oo#e&j;eD8x$A#<^?b z_WyCk87|q`*2=QVF6cvcO|77-XjH@LS=aOvk7VR-z2>-vX~8lCctsocLn=y_0+3b&n6d@P0$ef&vu4BFR`BYqiU0cb0A5~lAtYG6 z>e8WP4INBI6xYWO9u+S*iM^Y_8jS{gJ|Dv2F#F7D#es(RE?F`>&!bo@LJ$OG zGMOG&ysu=OV;VOfU@-Ge%8bCSjYfmT#57GqBoaZTQb8t@>6Ptxy^PIbZ*LFze7*;u z1$q|M(7lB}|MNfp*GFA!T1=wbaJgJ)x7(~7z-hfWCo@TLx{*|)MZSL|5<#%v)s_IS zfk1!-QAJS%QGuAI$%<7QjRvb|7X*RPJQKOTa}zo5KWt4Au8guc)I7j>C?+1%M-L_6 zi-B24M1f$yK&e=U(sV&-xxmAMoAV$b`e1Vw!T}EwNgv!^K=k?$344*wxe$&C@CQ6d zro7+;8*__6h(Q6cHMre?DEeUt+j|eT-FxG{@WTH9(RUW6 zr6U}3!?3!rO<;RVMWZf5(+otTKEU>(TGG&L$PnBbWZ8mc3g}U{3b1*g7UWTT(ua1^ z4WkX%O&8F#VOIcOp@SEb8vf-!;&3t1LDVHc)pUU8p{Xicqgt)T;xn424ZKJuxlc#A zJx-dLMx()8DWA`WXf(>eqNB!e8gw&cWc2D|i|~5Ah(@FAoKUd+u(6C=JGw?N7-TLk zoxMOHz|MkYS!gsGED0uxBHV5_Q(_ckA3irnb_s!AA+n+<@caF!*XxMIVk6PDr?KEP z4yQ?4uh&`8sWYWJeE;FM3t5Qt0Ciml&-0LF8KNjM1qSpsT09gs#zQwIItf z(&;oz!+_ht4|ZB>L1J1KG}8db2`Cl{2>5*v#UOTy3O;xb_?tI@Qo#ggi%?Vpi|2i4 zmQ=XCDrV;V*xu~G#fK1y%Mkr8c)c6~fnMt$Ug&kbwrvx-YGU(#9ft0~++y#oSS~i; z@dV-VNqFn8|0xQEUje)efBeV)7n1QSuq+OO%MDrXqPVM|+wSq~XJ*|HTrSjW5<1Nu z?kYPQ!0vVzss?bJ8z$$57UR*nAflLcL9zk9g&rWZt0Q74_`wAp|MUl5JTVJsavK4! z4~1eGv1Ag>MvVa|i^U>)qZ85OFk8Z;6&8Ij%Q8EJvMeJU4iD_1VPoJl0{gVj$qU)t z-Nnqz3@Z&9MK$A`(pE=PM!jB#Wm$;F+Z9olXadL;}@n74di+s;c%d zWCsnD7LY(|JlCrP_xt^=E*A=g0>a@itDUm#9yvZ)Z{9=d9*5%#j~W}%brrkiT|}d4c>N+gULX8E zFP6^u5KoziB~|>p|3ycu4w#05(l!Uqve9a3;5`C(-h-|CP3Q^_k5>l-!0!{#Y_~AC z7(uhDAe#%I(NLi40yMpWt#uI#OTiwBozoGHdLRbG{)7P2G$5-TXbK0f*8@TDz~xeq zN_zm_g4<)G-BFN8L?8$)h@uCkX`otFkef}xgoUPI!anCgGr~h@nms^hg9l$XkrpNV z;eW#8C$Ec`PkF%GHiDuDHh^RbtPZqRt3eP1%w#ffx!ow2%LoJlC>D#omrMU}P!CQg zczGN+c~qQr_}LN~-Q6b+=ytmZ27?3E)bRBl1*de-9-=r?v)M$a)9Dci&dot^p!CN< z9!}~JjB*#LtZ99H9g#?coiU#0*|~GpAr9lpi2r^cTZ2<%S!S^yp63yc#o+Iob)zOT zskf9<$S*bw1Dl(h$mMcKCX)7 z^?%-lyb%Kj8-a)dqpiT}38GqVBARp~o^(OcIxsa6_wQ8@i3xBC7QCVcmph7V-i=_m ziJeUgXBI;U26?m^Dr8ARC>X+(=l^>Y_O3zJny6R1;B*VMY74Vxqp&$1{*VCC&!JY4 z;Ne_|B|T6i1%?6C8(qk%0k6-6dP6~-m!RZ4X!B8YYXW%L2G_E{*CbqsYWU~>rGY3+4bC=ULx8Spz0O8F2g5WG3I9R+UQhj=Uu8#WftM$o8tVVD}` z&cq?hU1akalu8XqT?Kw$1hUeFVR9(!HISZ(As7bQbp_qFfoLR*(ry>!GT+P0aU66* zMl9h1CwSp@b5Il+?M@B8U<~1y7nW^-vqiL;HRz@VsjERZcqpolmIgFaBD|?2It>n% zVuNqk5E?30VlDi)|7igK#kXVddjQL@QL8lI6}>QZ1BPWHk%%KGir@u);8}7U$KK$i zJcu!YEO*PYU>XK&%VHr9vW|dWc!024KA(?0FFG@UKmfH`4e@wV?kY}>l-q(I_K%j?9qWDU?-A1uk#KOV?s?{ospK6+ha5#)qzmbBoE^*X- zA7xLDb4$D3E_Qc!arW%l9y4$sXic9T7xtOdS)sAjYBe;QP0Y{FGlpU(nZTn6r>d$= zsn(sH9jvad9%!zeR?3yw9f*#ZxPge|f7HECV=UxrH|li=eO@kI*WvT|##)!dV;L1! zaBg18C<=mra=DC1B+^p|0D{3FL-MPticY74NF>5yhlIdp_v1M18&RJNzlWH&0NAi> z9+u6cSkUnIzwF@O{%_mhg&4ekA8NHK0-_hZOF^ftATyJMsyEQ6buoJ;idM6Wa3l!Z zHX(O8Sg1qvy3uV*2!~?;Oz6fYe);xKA*)UN=l}TMAUE@EtgjWIXl=MWJlrlXJRUzv zr8;~;0ldJYuq(k-{Sbp*=q?VLCyZJ+g{CdSk_DiuAjWI>?h7vbtDm~Dy3z-O+BUX# zc9Bk}5DAA^k+{Y6CvRh9S<_MW&8QfY^VyNb&+|O)-MfcaEXG0xbSOii5DTG&U!UfNFFbjRum*By?Se-|yeoYhidUlge6CFrUsYF|=5gHF1h4+qNP6(I5TM zzb3yu9*>V?DLn1;FVWMG?@ttt`ukMx(4%6qOncV2GUe>^H0gM_u7~Vx>ngB;d@lfb1+_ z*eU=Eot6rp$iwRcM4tfDRN?h<@OeEDcms-}g6BBsW(SG12f5iWT)c%yG=Nybi(mx! z;Me~XO2wN1ID~>%P^(ywBpI=!7hazSiYmkFvk{4U;1gYF)eOiIpsF?$-9p0*qs67s zk^SIW23)lUE<_dl^vA$Y|0_3E7CBg|idMUWa43LqH~^o|3xOlLUAtc~V6*n}M|oBU z?N8@t$@8G93){A_u&{t=G>S+h!ju&4lUAz*x7&@KogMhRUNo9b@EixNUl+&oJWJh= z8q;A4mXcuvn$|Rp6-gg9*GZgb=h-FepW=3-&hDe!%lY@N>({TN)oLN1&%^8WA{Y!J zl}drYPE_?Cc_RcxmC{V9TbQ@?gBd(j^0wbuCw$h zwJmc#_(yrbM*-ataJAWN!Zb}}v)LX!bwA}S%QE{4^x{~OBq0`yF=}2_RS^gTScfC8 z*9*&Z^ik~H8L(|cgKqr653*R8@8B12wy^PO8mI2!~;qkbU&hjt~ z1FfcsP*8x}=^zpnvAy2FhwpB{;(v$To$LKu^jdj^0v>d`IyBipIv0d)=(v6JKF%!W zps7H!X+TkdcGrS8l!Amb^tuazq#>U+@YH1qZ@liqx4#nwxH2kb1-Wb%VxU)E<>np| z<`IVdp{aRvH*EM>48seEBhBOSpjxf69-M^da|&gxDM-w59HP-EJYFw?=w-nOyz1;g zMOL(vzGhVE8U@pd!GT~lq9_g^$WOX2N3G4U`{{%hl}aVV<8f9NNAo{TalQ81Yv^=3 zFbo5&RtwE$6ZhBFdS+fd_KftF~$mdoGhJFn$0G2dx%zcxHRG<3w)4_ zQlzz74XsuSv$L}-n@0iGNy$-S7~9+1@cDebO$Y4b@unVf6v!nPgj{9<^5*mT0SuWe z%gE(&P*s)9i{L39kBuiT`H{?c5KUF_=FeK#+0>yK29n7DQZoV6DusP{I91`-_9$^VJ z5m)xvXFvOS)>`+v*S((2;^h1~bx3uAk~9K~F*~b^vsLLF#<|3H_SeHLj4Z8#$fV|T z!~#ua)0PtL-rIz^M_ZC_AIGAk@iU*R7VIKiZbj*G$H?=AwdokDCGwGslFz!#e>R{w z-Z^t&6=;7N{-wP0nkYrm?!z(UEa`&Uk)<#}rg=q=HRaCE4j?zxulvk>LTK9LzASf- z(`>5ixRnb?vPi`XFHs3M-UH=OAtb70(?%Kl<8i(yfr)+e&~{zmtzS{bJT$1zajEQvYq1f2E*LfjP0>8lKk{c~q^unIM$-;Lxd$WE!%8Xb` zB16qf(ws(;Zgt6JuOBdveS7?GkTPw}AwwkvX+sDJK_PeH=+Dj#@81R)MT_K}mfvGf z^_W9DtHvJoueb{hLmC)mDM)yKBA{PyKA(xmQ>!!JOs{9;^n~R}oH=(K{+A!@^dtpM z)1j)%`B|hdMj5`H>^h_V2EKocUv9%rh1cJZhwZ)H9?&?QoSq(hQDJLocIF~72|ML6 z7dqX5(A%}~DVlO+p^d53pMl(mz!LU$PXx4>laH z)i19bw5j|OHnFaZWVZW2H||Vextdg=8`2d;*B43oag`KnDJt@qQ>gyVDm*PlO4C}X zJ@`yEu4l1}$kCT-I2_W+ogOi*@Ue};PpYFewY5dM-1)|pR(^gA8{SOzBe}{v>552Z z74hfj(C?TRhiMf0hSkRL=($#Nfp|)iS3J2TDMqXA&GbgEMeKxI$3<(Fo;+k;)*gNS zIAx?kgS4XLYL+H~nLz!^!k?{!W$#OlKFHR+Os2`1o7j)7^E0wP>{xmh`9(KmJl{4V zT2y&IyBOs&-I_<9a*z$;Bl+j-H4%u*Z%#;%(wE3EgvUh3v)s8s5AicC#<$woqPDwt z^tR^b|2B2*v^lY}hb;MPNg*mT_pu(aPu!%IjdKK;~JxnqFE`NTIBA2se)k#!( zE#y{uhQqUjj>Ni0hW)p_ymt2^NIl;$UY(U(s}wZzzfG?|giUz$ms;6M3mx<4*ve<` zWd6H)9-IHCi~+Q??-l~g`_ltz4-XGj0~GeM`{`WsmXc=h?^&5A1Lz1vj%9aACue7& z7ydx1$EOdhSWb&CZX@eYhS`=U$O+_=>$$ZriWnJvf@eg15qGu^Vg-`&hR@r`B9Kqk9lc_6%>phyK2Xfo$8McbVnxZoaIOPs%9z|&raoB zm*iTFlnN~6-3|-r?{nIBml;+Frt|B^ii(T77F|7ILu?k!;SlmKND__*QMIod{VDi&)>80&H#?Bv zu#P_1Qo$NrPo)oRnc2J@m#KkgKb&o);g2N2F!slN8#1npY-kXJ-j(hRZyN`POK@Xl z>NefBcaV4A9UkcsKzLr9Z3`&-@{lkZ`!p|4RVs&-J279@1-$T#3mtp{1e1i?xK+P# zgfLaCJhif~G;43CyxNpi?#``r6CxIPWSJCoflUQ5y9oE+-YrnS@Vusttzg=_ zSRldG<`tUTB3~DGvU4%sWa1&d?5Qt-Yug^f>0dggvb&O#*&*)5_@fk^U3g3vosMyw zj;qe1U78N$BGET52y$%k$IMdL)l)uNdd?y3aV=IN$dmPzqllN( zuwwD)LRk9vWEM1jh@;2T_0Z06Q+{0*SD0_eqmY3fm&qWbLHEATEPc&?xs!A%Ti>l_S$YmE4Y=~pa z7`>>P_WH+4wnE^YilDl$pEGyb!0X5gRROH0y0CC_FUk>>TtLDyp>VYD<||A z7cx$~#EFzLz^mnc2??MXutd{pS|*(B-_qOfF3WtoGe_kyYybIqiuL7PnYONS{KQq{ z78#z9!`4QbSW&}GYNB~R)>x&mPwvd6_+zXGH3WmNHHq)5s}{dl*u0OoFDtO2};sQ)&(J& zT*Qs@Q3G1W9s)5PY+0834>^N+6NMpRUbo3%{mCAutU!! ztW0SC97+#oONLttHvRr3g?`apxV8qE-TUR?p#Zt*pSG$;9+D=QVnTSwcaS`&2=}*nVTBN#bw2AK4?-Qx1a3K;jrWL``1|ySlI^ zR;A&J&5{DmTfM$Coj{ytTvusH*_n5{MZJ8#$+~5ePKy_;OFKfA%Gdy=l0dn2n<$3u7E8WAxWOnxU3`vgPyrN;F^R3Y!a@>m##GeB( z3uT9dh~#-#Cp%%*~#4P$DFiJk52bHlA%nc+P}%tbLDDOH*mMqM0kW@Ax`4)k7UU^=0<3t z^AdW(!FMW-ioTw9_IA@6Rf4Ag^7Shuf;*!mL=c0A<1_9 zBC<*fD~JkKwWdTqxGEc0=jh(1A+yS?HQGJ?SNw4-(uwKB_eC&C=jH;rGm~IKG;Uny z?ZWrq)GJPI%wnjd34p8|Okm6+d!?-TCo3U$0PxBNPw@1_ody z;?xoH$X=uP(GyQMHJ!M49vI*Sx=xr|aFLp!80P3lvdK`qSmVhdPmeQK*Mt4)ac(Ga zIp`(o`vYo*DDl&i5dsC?C)FNWuA9uPZ`q%f6zG>jB)iHQPxj)Ib3m|b&uIdyc|6XM zG{?X4<%o+t)Z`6(#0{p2dK**+s8Lb;18U_|u_YOz+nwr5*-Pe5?*xfX6TS6OH`~Id@6}b|QB0K8-1mF*bZ()l%_wL@maLie)8LtH2O`Do)mijihzF=X^y zQ@(8@^V9c-Yq=V;FDgSR&cwh7F7;lcOIJPL;Lwnjy*&ZU4;WX%QruG01?A0eSBC>~ zmLqRHu#z2=*LW=2IU{}p5A(!c$-_zfIdJkgo2y&#dwP8$JljexbtMi>KEGLIkGF1T z%LTLQ$n1@E5-W|0iZYVYM}?|!3g>@R{fT3#xoYo!=h4AJG#DVlpML~sGtE(@W-~jq z6cpSu1uX3P=bMNsO{=Zpa!MSoq^hxJ4s@-!7XaD~2w;jU3|aLvYjO*1V~L{sa6`52 ztgaA)KNS1<4T{einEl`FNBodI59i5^#JvJ$C_c97AGIj;4X!%|WvqZCCz`K!3_$2!pqKe@J@Jn!2_WWqFnM$RH_ z6r&rV+HjoR58KWZet8HBG#|xx@rR!jq}WH#=#u^0Asm7WhJ>9kQV}3iGknI*Uh?a60(tbd8r1#{8MsU%&V~@2f%$Zev+T_!GI@F$Kg0+ITBxXVTi% zKSaV=BnFJ2D+_U+Mwy%Ahv3Zgrtt~KzKZA))dKHTWX6yEy}zV$x~!8jWXCW^j^>@- z5a-1$c6@9^o2ZgHuyVen(0WNyT>19Km!-qX?2SdJ{sdN-&&BiKI*wDkW~KPXeU(PNrDce#>ZM($x4MXb`_W-Y7-Yzs$^ zkJb4^?Dg2poq)w{Rf=-wws4lxl~nrqZ|;BGBx?`L*imosBU1ouZ*TXpVc$3dHM$gg zJ=fB33>&O^#-{Bb`0r4aIQ=|h|x&iINN|b0^2zFQIwnlP@%65(Yd;_FqkEB z)iq;eRrU0^>9PPd5z54*>u_gvJKo|rtYJo@SYMYKk1hCE$UNu}{U%m>G}{{=ujmuE zv9U2ld=DzMbhMgt8L1%fbweCfH|2(kVB9B1``eWkCvn?;0s;czOa75d3vN%n=vlw_ zmJTUD+EAKQeJxkCEV^w59iO8=Auqo&Nw7;*y|uOTbQu{{9j4tv`btNEg(z|oNp`1r z^qHOkPEvpxq58T`Mr?@#%scah&EVjQ`^TdppTmNxdH{^H@#pbDILo$}zv!`OnlCF> z!)&7k3pGTrjkFKoOkQq>NH2+-9Zl9X6W z--1p+YY&gKYYkA+2Stg$W|JzzH%yR^8Hcz^{yvukDNaSn!oR)s^BV<@h;7P=r7<-s zI9HQv`_F*DtI3bZY_gud_g@R-&!9~Sm5`8foELm5DSPxw1hOcOv=8z|Mx1HtutI=j zQlXk%;v2;U#|pYG~W69`v_vFCqv5y|y#oF4j7J(4YnwG_4;V#as%eX^>!Wbmmp>`KP4k}AR<_~h``lEph6RjJU2JYM(vU|@Z` zRipem^GLGz`1r}MUtwbH+s^1N25uQ?sU%q_7 z`7P$MKt2$c7$5rD^yas=0J{CnnQ-v_ZVMNuf9?6RR8-Wni+nMJVuT@2Ph4hs+oS^f z1QtXgPc*JYV68HUl2wWb@IPKJZ~9?sn~EQ<0NMBp{TqMX85&EjM<$Wn8y{X(71eN2 zWxHL^obAb<&{8oI^P+~ha*Q@gpbwa&hQ{(+qc3% zQ_DqTk2i?RxEG?V@^!fZ<$!~!a}w_P5_2uAX8qSg{sCd$(>-75==wj}irKU3rK4S| zdBI86FJpkszmv(&@qDQMAn%p5GnG1f?L<7_6K~R_CHlQr+;LBHa!wYhGdv2@f^L%( z4bHeoOmk|hXe&_USMb!BgHB$2;D?irK9vwr^a?X^ppNw4!$+*EBYA8LX$4q$G1n<4 zZ+06{UcG5-G$}Y}aGaQTZ$|OVt+>COL`kzk0mhz>9x}eKGeGm(3V-;T!Dg?OT+f9K zUZs901@^-?V2w76zVD&0VDnGTM5CVX+;`?^+XMv#b^70WFsz-;j)*!bT2(a>K~#O< zxu5yO=1QtOh>PIgmnhpTpEw;#+6_!hiNoaVY%l1SvkIGhx3By;JTAzXDe7G#`P9d!Bc**c z^NJ)+`}>I?B+%nVFgkcjvA_y8r1*ISVLxsu7`)Rakv8M{CF?F8f-aS5h(Oo_X- zD65IZU{B<2p;F|940(Yfr2Ldj!FEb9dRiP}^ASVe-qS}pW)8z~c={+@rNkcVk6wZ7 z8Io()+^NukY;re4>mE!%HSdtS%$1ak5`>D^x{?_!{Z9`N4<08r;}X<}Ullj1%$?J?E>FtXYh z+s78103}aIA68b-8L{bTXn(+Y%xUG}aTz?iRfkj#S-3C6sCP@-tdvFUof|Peq!Nq_ z!(@^)*LxOV6i3r~LfBDbR7C|K&}gd-Yr$wEWX}YKztWD#8c0geDfo# zvA1pc<-S|RXO|XaB_yJ?OR-hsddmT?G)JkFr=jU`tCG!PW2Iw>}RDi10d76Zcqo$gFuh zi#VR;t-@FisF!}f5u>AYmVrJesDVQab$I4`w9zO8#Lh=ATdF0u;bif9!ddTD1~RjR zC4b0EZQHzK!r!f6;2Q|5sHozMl_K?Nxo=qc{~}-+PRsa=oS0BQyM45T+?880b6su9NeqtVi8Xuc-9kE0 zk7A#x=YtkB(x0Bs(kEwH{Vwxo#(UMX2B}03`B05)m;GsQyQE_PPk}jKWoM^>h|a~u zD-c8tIF~bemN2b<`gwnC_+}GSfvbD-MwgqKf)Kav^=nbximU2WAjWcUW_~qKHsF$@ zl&!o7c9VMw-q+&n-vn@TJ;ir2=}Y1mw|bW_5bAorDDy8Uu%sn9T9MK%NJ+j@@w!|( zl8aA~xu_k1)i?6$thlv-)mmZ?`2($NPwxbIV<;bWgyb$Ejm@z;(ixeVCMWAiw{`B1 z8+v)8oVFEpTl{HUJ-XoY&Zr^HCsaapk;AhxqslgMuT;XqPd^Yg@0Viy zPG(yol5c}zG5!t-+eQ2G5%uEHpOE~W&%-&?*X7U5iZ|eZ0526!18<#oB^1@csl;@);gwtG|op5{ak{GK-)_T7^7e7&C-uQa-$jT{F=Ji~ctl)k#66{i7AhYS zu;csO!fOm0RaKPTHJ=2g(+s3j(HWf$UR~);RUP23W({|;T){R$rp335GR$yJ7#~9$~5S{S??J<#&kuQ~NmzLS{%U`ud zqVD~4Qz_B|QUjHNr$-Gmbs|cx=JUgbtxu|KLS=Yed}Wli(;HDOYy<9l)t#8FSnQTF z?gTqh6PRw0$I*USieb9ghMIwd15(TJ@o^Xltk7g)I(`yeiabM;ZRuoR=_JLMgl%(u zAeR{b_N2c&MtNC}S1E~iH2>(X5?K)^#wB~n6qSJ%THiQa&Fg#a+8ztxffdqWK8Oh5 zi#ESCheOhY22Rg3J?8@g7Aqm&ep{T*8s9dG@vdKedQ}p zuD&=E#0gJ38qE56HTBx1R`xn=WU892Epg>2wFcbE+9lXiNR5-~>GS8eq1Gt>NxjKl z>BH;h=1WFKscM`lnw*xqsRv9_i1Qbho#YVukim;W_T&u1J6 z%mnHKMYEz3`=paN!K86c&ZDSRA$5+)uJEIMJ)X>MxEnTpep%>a!Yhka!oFjeE$NX8 z<_9&q!pnZFI#3j7=ju;3C?Rs>nQt;L!e4V&^ooEU4S)#nK?uRldjHQ??!_6APB`n& zWWU;7g$+3%9iFLH5sA={(2lf(i+>O&spAPK5e^MD487T6PR^n#QjyP%F3${ko=sFk)?!PykH!+T@fiv1UchS7+} zu+j*i?0J#%ZPeGx-i{!;hoaVBsa*5%ZUe=!Gurdwr&lb)IhW-{U#Yd9LR@ zqJj*OH8<#=L+kG6J7AMdP^$(>0Td&I=}*;NDz)x>H<#W@7@FH1jNhHpO&Dag^iFH!1cr60WsH4 z{j#+A+Gm(@tZbqi{bB4{Hc^@$?ZrT^w}g<#Uhf_H^2Mlie>MPA?g)P~LzreIbB(OZ&)mYe&1)%O~qYSw-@=7nG`EtNezL9F32Q*k)EGUDyJ7n49w5Z z*NpLZl*fJs(kweJQGLFU!g&eyt`KsSijOQ6=1%LSt%jfv+lv5C3tS@V{{0Q~EFW>l z@pMNdr#i~iv>PBvlG3#F!&YF#DM1y$0Fq9-a`1bQQxWZ$#nn~0Gf5>qTa#h7lOL*3WCb<1 z@7c-z_LP0z0#sT$ySux~2Qk#G5$|zaXIo>fU%sE@jp2Fr@!0S(FdjN&W4ElF+N2*iOqk#swodi0?Qc22$#Lp&CqV2@%q8-MYyb#(}(%rt^<4Ms&Mn z?t~vwAeXuJp@WZ*`ho$zeEG8L>!=*rOFrWBGXT^8LeTB-54u-dp`-MxhO*wIDe}W% z_S4eZqxijTScswZ&CRjrtiw4hw*y$X^(ya#WW)Q&v4c|kUN&@VSTqv)!5~{hwVIN(dbjxR4Ah5hj%_(|TS=-+KAmX~SQKrVV zbASzS29yMVvP2iR59B2&t9!P-lEkwU{*NLc*Yu3+(3G1GD+rY(y=vp_=X1ySFht0! zBwS}BIMq`)V*|ZEJ3TS*<0fEfRcF@F*C^19IY~J99vbcCUb^jcbD$fxTKNRAY|KDs zp(t7Q91zf3pEd0i2^aNg&HX`V&N)V|h_;nSEN0o~b{Xi%;0@G6T;E=|ID4kR1b!Au zI_JF;H;X#*`tROOGT@Yjwn)4#O9~K+RV`qP20^j72o8iVK`4FBBU0IgFmw<65pPHS zQx#}S0_LIUQ|H{t%$&l67cfY?cWW$NT*x{z8#S$XEch|aX0V6>_D2?SC%4)|{}liI zx1tU8%zpwpsHi7j(5k?At6mrCa?hV%-{;R%u)lYxVnGPF&U8I;gI_j029lb-xqZd1 zL6@2P7G`|r&`R;iSKdvC8KKBm_P=(!_d^UgXRg0BVQ>W6cBzU^PCg|E;p$OiVC&#> zRRzmw7Xcek^BazoV(H}xX~*A~AD2^uAa-PRdZNINCz;=ZI8u3|G3a=SZ3z!B;kN`%t|YBebx{`=Iz!bYh7?=OGOa2V5P7N$7T z8W0G?HBV)fr>&JITFS;94L=aVfC2Tlz@PPvz0v>z8!2F`CZ-ZTSr)O z;8^P!EJq=~;`w|2jtf{47#ZYG?=h2c8HKVUYi;;8frCHXKp{y95fMejXw9x7_`Aw~{M|@j9bxC- zgog18Sh=|gcsjfN&y8@hfuHu?4rm`?3rUOr{tOXOQ9)rrNpWFON%%iei+h6iy*X}V Q!5IyhJdd-EYeF^E6-WrF2{AA*NR$+1wJ7`u*zu;IsQG0@cQ65QzGP?$TCwQ%>?~H*#?t=b@Ic-Vr zfq`K)p(Oj{nTPS#CxQmG;nTKK#h~sA>v&;pzCLHg{0@%&1g*TlkGR<%ab-F+A7nFX zD|L{L-lTfSs0Oo^X4ylY&sY^#O*uz8e@hWfb^g0&lzvokXzcy?w8*#DZ^Xd6*!?Fy zLm-*-0P#&fX?zA|k|%R)=wHeHKmFRtg(_`2uN%tOUildJ@VT-dYDb}Fm|i$9Rqu-1Bp+^*l27_W0J)K7c- z<_j?upR9VCm<>*Y@981y-R>lQg^^N|?UDIJ0UIr`IeJOIhA>*;0Sd_nv@$HLiru?2A==-&RX zik~0uh&~sU1VbCvIM_p`>8zI{!^2%|8BdS46Z9)AmHN`ev%ybGC`YE?4<u&Fn}x6bdFRBrrBbV?1xDSST(q1noApTK|w&i7Fg!kqA5aTNK_RTfhm zUtodB$-iqNeVq(oYjybtq?EJdz<{F=K`q;{gM7qYWaot?P6U?|OV1rCbr7=~486Z- z@Z|DGkEa2~BS@FjrDMDCvGCHAZRhZEmBn2BJ?=DMm zyq#}kxEMfsHMJj@I>rkhbHu-xs7{h!Z^iQSDz!y0po1wgD zpW~$ju3^dlfRdhX6IHfs6E%+R`8&e4F!AFo#hzqF-;-J#v}}Ds?$2GE9nCCNPdLP8 zDn$O$kUV=OOHC{6BztnS&8?R5C@!AU@K=snimI2i%jVcq<#-M%4diHv5&K;c7oIMl z@UefV>Qk0Xdy~xybtkByy{T8yqi0k`=Bg$!F0_R^+rCjvef$(gOvT8iktTpO{oU8Q zM($N_s_<98Gq0N4?O95(^8^>jodt`3I=E*DG2kRC^FMqygz57|SOsw_v&~%Po#3fHv zVMR=#*r00hcZQ4u=k-^5{a@r3#%;nV&4QZr`7e((i>|ru7H^BB-53wmZ(lxh8dhJ`AW0YS1mB8&7 zAE5M1>A`E&i;-fkXmDmqzKjKJk(Q@^XD3NZ(2FzOg6D;nveZ}DGw^@G9@c&;x0O#i zNE5&D%X81ykR`a-S!lOF%r@s}o9r$3STw)8#(FkZZq8@=17nX6y)ZSbwtJJmqvQhX`NXbO@KG_8{PIY^a+Hy9OcN@%rMT)5N$8bSweA32^RY-2 z(t!Rb#6#L ztZYdg;a@Bxw7tc6p|x3^DxN)|_#nM~5)1vVmJ~2+VGByuO@GAE=Gvw14*3H^aQ;>1 zx`8$&teUr1BJ)HW@d|OF(ZqY85LfH|=d%ECR?uRD|M*PQO*P9*Cb~#}EA6ll9$Uz%ZT3$or)a23j3k!CB2)=!H}3q|bS9cYd2E^xoBwbiD-q0iZ0Q31(`^diLj={51>@ zJP-A~oz6JWM(_Y_1YJDcSw!~dt4!c;w@;}|$HFmxJMB<D@hEP=P6nY%vWNd^K6Ce{?2faahh$^ z@Ibw}6kjU+rT7l_2X$icNStV50Fa77=pufYnnVnF?dh~be5%Zm%w$`neV$DOpzVc_7kcn zt)Uba9Z?KUyNgOpvt#Y%|IG(vZREQn5oQkztBdrnw{?{r&D41Ltb78J!s>4i&LBf$ zPb%IG78JW~$;VL>sL|op1l!(9UjmGTCfP;cIMegHZmDtGL!Bb)0ZhVcT?yRowr_BV zE&%>p0C72}Wr5($Y4tZl&20tX3&L-4jKQtnEO!%4#=pYpK_Pi+iO^2nXWk~k>IM_4 zd8ow5@cjJL@zN7)XvrOJ&u~{*_Qa%#dn<#V|HT>nPPli|SgCWvUALxWA}aN>Ila%3 zt(oj{uPYi#L!fB4@aMGl%|iF?NU@<>F>TN3YMxMsYpF>UB+g}hsFNe0bp#1E!8tWa zboyh-w1L?0+WL8oT%;2i+l4HP~zkv8O5KojfufKkO@NJ?(f!SRCG~>Q2+LTtL zWC@^;XD!A?igg0GnQR1%up6H(_qph82hVwbbL1G&Q<70eYxl&D73JqPr_D5JCcfjGw3FV^~zs##z_t! z1T0#{%4>BiGctL2C|jPyo0oP}1K<)d06g+UGwvq4szZOgZpb>HZ=GTgA>+Y%`3U$s z^AmJb+g>pLD0%aNjqPh}Zy=l9OL9 z$!>(Bu%ah9X&CWY{jT@Z{ON@#Z~%|d;j<}>;a!`wEgZM@Myp)&r|sr|OSLG!T2P^m zet6>?ZUwc(>=ZWFW+>a`Mqgg-A9&4m+nsq!L7zm)8DqU1)zngSS|oP0R{M#f@3$Yk z)PWOqk4Ap*Uc7O6uwYno}F4m}^Y7yAS<^o|cM$13;?Pf38nHdDnjfvlwI!j0g`=6HodvY;(1 z$mwGMR(63%)m0gJqsD$h2V~FeEGqFI^R;u6&7;uauk(u_!dtIE=+4j=OBr8f&EWdl z|C2~3>Ua;0zYZ!s>m$YNRQ#4%AZ1kih~CO;n2}r3t@Eu3BWW^z%kC&J{4fV}zhA)# z#P97C=kq^5bb-RaVxQ#2N33gv9q4$~Yw1_q(qd<Yctu3#JcgBo4h1{(?8NlRtM);eKZ8W@C<46S#< zhY*WRgGJH!=zwOH*mmqU;l<=PE{2dt_J2C=nE05*r+ds3IQx7?B;0>09YH7lu-7m1Dppr2`lDL?WQv7 zvp~6q2Ik?d~(l%Qg zv;Eb62hO1TCg+pfiDc4$b>M^F-diep?I3nrSWLz6Yh zE+y!QvOfniw^C?~eb^rO2^@za#!P`x7A#j(nq zAGL4LC`Ft1`$g{IXMLup(z1jX-+fQJ!(1nRzwnJPC4A8>N#F55YjSBnT)dm9s-1I( z)l`Qlq8kq4&#)3Lc{+l)K}m2Se3U!ajh2AfAms5}aO5!_oyU*b@`FHni4{=1a$HUh zjyzGbTFaji>T1TZN{oLJ=3v>oNzNEu=em_Z z$@2s3WF-hp#OcoorkTG0h1- z5;~(8TF~+*|9J!vDlp18WF}XvL?eG5vF*eNWGPFDi($ZKwAYWJH85(mEyaiJFUf;Y zCp0+3nTdPpee&TncwsOvhzCI>m~icmTLHZ$cin#mkENONx_-|;>)O?$kzy}{F21e2 zkQP9kY#ge@aczNM<>}8oNYD_^i6;rUq5&E@HK`7}`E{5wdv}b22oFDqciw>p%HEKYiJOzx~E2=|-Ep|s-)w!Y7f9Yii7`Lq z9NsYkPP#N==;-Pl#0@5EBW6c&8q@|_&zCk8(L;TjYj~aU7?@w$6vNmKNFWN)QUi<+ zxKIRd=35CC=p`qCT!`)%7=^vqr7JKTycDfV~N%)GzJZrQY&DvUmcLyl*AvQQi#5jKuM$r$`N zGY^vM;@zJnSY+8LM}oP3Df!@s67$$A84C*R9LZrZ-1M6P3c{pNL}%=gp%P-*P<|F5 zd_5$pY&nWLb#JzFl8_)!51gmceRxCuCMlf@LI1CJ*BFNjC(_Q@b!ug$702F08t4dy zND^WOKGsr0()%FxpJa*8?n`uocXpR5S}snvxfqhy2HX9{A;TaTV=h|FhOzNkPAyEH zFo)c{0~|=O3NRIPQ-Src$Z6>px~Wj3i;U5P-Qt8)z2=|JmlJJ|Z1RhjiBZ@>~sIs#G z*L6_nP%PlpAki?>6X?0A9FzKt;v7`=JATEnTYwOx&9jdliZUB$`4q^v>5nJ-P`CQ8 z_aO0Vr^iy94k{C({!*GT%yB3=Z|*@+AER`yYykmOP2dJQIMIggRN=uPRAFX~MlWm|kwffNHcO61jS1>xV|-CV5%Tu>&!0mGoMk=V7hAm|Ic;`MPZnMx0dtV4I)pEM>ZV#gcCMxBxjALhLWm2*oIZw~s&?yA6t+ zNlBy)C+me@ombQ=XnUDIn#lwkY@wsxsQAY&ii^p%cDQ0^m7pAewCGOcZS(b%Ha*RI znmL*LjzCSNAOrJ&o0-hX4Gh=}65>}afdqUGlaG&Yf1hP~3s#Zxqr}@iA!-Db`grR1SiwT2AIvMZvjr&`=Vv|MN^9bYeDhQXKef=G3LB9$CB}ZqTtA7i9H0 zHt{a*AW7UzA#-9q+#F}>NfwM%j(eyCnpI1MrQbzZP$3i5_UvFnK?#i<^-qw9Ctm3C z!T4}bmUKKJALp6C_}<#uiV_DXzQ%=7@w47XIa-J3xNlEedhX2s)XJ16sUViVTW`^I z+ou0ZkRj8Yash#)7h;rXPo?`*q;Ec-;$R?f~O; zv#TTe73e!bHJn}p`QZ*XmqG+>wB!X!oABoSd%$@Mt;KzK79Y#YW?|GVVx#xntYZ&} z$%#)uZ~;mi-75>jn;_I)>J{B~G301&?@bZXfD9K{9BvHd$D#uBRg}h}AuS-{^A+~m z&oiVDcH7jGC0&sTc3Zvc!mXBBg%x|F>{}`_C5pfN&4N7Ba-I_0!t*o2ThRXP$`Ys? zzfxV{-F-!D*?DtZ{AEr4T)^xe&hE7LcGB{R6r2YV$xqOv0P6BA-iMnf2@x0R*CpKM zT7q`F`TG);r}ozdv+s-f#FQ}&2h#U?gP4H>M5g)W^?&PB(muQ`pCzzJyd4%ka*Jz| ze1J~|HWumwYPxEd;MEawgGtrG3LILSr+yjYs5zA~qAi@J>ph!pM`9u`UqQ$Hg?RTP z2X<6O??Ny?fuzU_dg&FTC7{dkjB@W=_r7{nOT(9dQv#v3lP&WLpf2r^E3q09(d~5J zs^~_XU)d@p`Cp*wr-%A;eW~LtS+48D6;uQHu^=(Uc^Bbm@>n1(!+j)0Xa9-yScO~{iKC$1+wSVLg))j@nTB)R{Tw&Ub zwI@OQ$OB`wJ?41R9bo%aA0Iyd1v;93 zptqO>Vzjp2k)cQ(Oqaifni=ob5^G;|lGg+UQUG5i>b4nW=nLEtM)W87n+v#$I|P|Rp>UDGUPF{>5Xz) zAwx+``|PPX^Un1q@fFDuu%k9c>v3MDoJ2n;p&(~i+zg|aG?teXF~B+d#I0#-8$+N( z4qUBc?HtSljub=Cb?nX1_uhjqbEk6mS$k;7+*|F#4VP(moBzRnH*8Cx%`{aKjPfI6 zEe_&QaI#UT(4nvNX3lXSt1~}>$^SEjN*3{oA)@KpiG@8rjvxDH$HW>K4iEG@=Piq0 zt=$ZZc6QqJY9x^fZHo7pZNQrfr03-fIc45kRioWm;&TxRW_N7fBIrkE`@dD(Iwzob zffb4^fr=Jh#cx(83k+Nq5=3G(4^|c$OfCdPF@wm0p6;_luj^C4a1{eF+K+l9Tcw1aPcqPNa#u%ErVuq7m6x>b|*cGHBI-KCnr#XqcU}#lW6?j zg+TLe#Dsy=X5L~<5X>Q&__rpWRHDqwt^F>Sf1oA8H09}Q@|L4BW=`yWg$h5;s;>}~ zXw=QClCd(7PwD6^uVdP9#mRvYmJ(%;LT3UgTnu<`8)A+9okiK;?{^`ASs0gvIGrch zfzT@4$l*HtIqt}15hqK(i>Y4gK;n&=85Z&w`5&S_0^19X60#S%g3?;}puE#STnL2L z^emvAyGieE{XAiUR4*~gj|tAz^y1a8n+b}F9|O*R2!UKPblG=gUx|?7X-ni913(-b z81_r#3<%RFZ(pc>5_!&wLsAQP1GPz}Sa2eWWT78jWp!Y`L;@bB0*o#kwmM+s-i^`^ zuew;Bc78I>_<(LnsMft*wc%ZKBv|V!t(6EW-J}vosWi`Js)`24@I#x45s@+&+YgWx zs0`+)^?Zy?d1TMGM$ivZsR#OBUy03`)VmeCtp0B1;5MvQt#c<8XM%z9zJL@`a*#|B zMy!L1q;n-$-1Im{v9HGRNW)yo=Tl6ElndvS#5?kZo<%tw<_|KfN7~A;maejR zu+>2U9MHQME|YxB%(f%7$*waL{6*r{_P2Hxa&o!PTuvXT(_)5)&vlrX<3JDgh!XT2 z*JXcdJBuHIkW8TOXnnYgvf2}LGJTGnK%u$}L3&r@Sq>gDx_xrQql%1}k9g0>$#cb`_St>D-n6@~#RZH-re>%&9gBkGhFlcgq?Sw4vw6 zx%uJP-3Z-!H+$_a1%9ZVU6B&rKirC>bBtA@-*v9G6=5S7k)VYt?p4YARu^xHVl{a? z?xP6M!KPw{sE5ys+&IHG_7upwg6aQs2lOP)ffF>1&!77wkrpA8|1&*2HR>6|7YGUt zBZ+;p(3Z3`<9DhC8Ok$@?|(`fdx6n#x*h1=7V)n_cU{I~I;b!uH~d@!sBIWb%3(lK z$VH{=?&1rN^#{?AVY^^Sw?n4r?iW?v5D&h?Cs+(~PhQoVt7Upyi4 zH?xAh+z$4IiOpLz=JmCzQ!$7K;ddB#9^FK2Ag0O3Y=Nf3q~bX%M1pjO zm_t4O3a8{J7(e{#@JWT4S@kXUQ?WCi@m@Rt&uGR)Ygbu0P~#~@Jm*%t)v4i6ydq$9M3T##20)V z{n7F(b(#xLZQ|oE@`{1z#&v?3Gk^ga8~o)qnqoxoYf8nKcbyZ^#n@aV%PaNkgd|C z)w|&Bu)kpyBq@V?L&%1LK?!U5q#zH*Mw7btS(~2Wsnj#V3(%M97DItDG@tV!^k7&w zH<11f2(7d2#=mNPeWk>o%`JtFtb5+vdiX2~RGWjuA`{GJfL$m2ChNu~<sUwy!KRT6L837d0Bgy(WWg;Iu&E+lwi%vS5P?LXDoYK-n8lAD~PD1x3F5Y3$$rOa-yI zBgmi6fROPOIF#7)#aNAGf$q~tY6*M^AOul?)`mMwcWN5O1jfB#-!2^Mi%TKDW%IS$ zQ>6*-aM>jv%Jf&+>UO4y*LQys9nFq%&UwnjetuuJzn)(B&Pm>!l8(xj88aEVuWU9V z^1sxwXJ_nfCTq)!^veHT%ckRoyV*#EOV-$shV}U#i5H*jef)Tz!3lIgJCg+qC&=4@ zKT@;BK%Qzjyr_puk3zp5DpzFVkr<;>ux})#B)TmswF2n zOO5Tk$K2l-)c~oJWqi%Q!s$h^;|0>w@AUJe+kR~7wIqSeKM1S7Ks??F>Q+EKrN6`j z1-M3ZTM>|M!bs@E^xog*d?!6`1nA(jWXpVmaJhx!HkH4Rls(c zoPYpxdc|AfXb0kuLe2109jJd20&>2hYzi~_j5!aLmf<t}|b$s9ddGSNb zkZTMWL2nv-*-PS$d#+D1F!w|)2VVGqb{Z`(c&IIYj-M|(%C1?%LZ|e0XI$4b@%1ET zq~sSRdW}Lx2+=UUlKE9L>=*zZbd*eWqFTpx+IN&CY6!c6#iEZ3iw)$%-(+K!rA!RO zvP(4K6X}B&)qzS%#u^`&36}wdc0)0BMS2V|oGFbD?#D$}V#~YE$Is-! za-Ts3r3ZK}TbE<5U|}=Ch!tU%ykW}P7&bGkWf`fSi-N*URb}Rr=Akis2Ae-KtyE8wi;dw!+aQ}!#i3n*uF8qH*wsqmWT5e< zVhVdcfH7y1&yd(BQSoP>EJNkq96Z6~{bG-;qh=%>qG<6^RGw+6!7S?dO@s&m1G-n> zPo*OR_(eK0JTrc_uGbvAl_=%sWA$b9L?Ng(=9~PMtQj9UVLk&mAuERxeRcS@Q%SCr@`GND+ z5D3JgGtYS7-M_Ec5}WS#K4qZhg>ZDS;S?@8FRJMFP5 z13pLK@8-Io7vl_mwPvfxJKkPRB;@j@@*572L?L<&I*(V=+4A_p>{rKR1U5z?5ctJh zp^(Y(B`yy+m1zjQ!yghM>#gYF_A(qJNQ3)v*$$XX_NuQrl?kGlWSAx~t+n9d0~Zm- zXm|i=o9D54K4*i6EQv;Pa<963#uI#DqN^P_f*mCQA;e-xi|&(=+x%E!beOIh9oTky zT=r}WSI{w!F1Md$G4)CXPHf*INQcP?D{sn(I@EQtM0LzBCCHV0|1;hC-Pedw>5Ukv zPgy)9^=V|(9te0qFPf$ZtS1nrX)3R0EkFL1%U_nxvC+cuW%D~m_n9qnrT2(913^JC z{fC9+n{tXVfO!M@#o~pSEs@F4`{zhFMBaf|kTJR|RhUs|+S<`_>yI0fUdcG^8G9xy zSD9C^J5vK+iTqLvcp4^x5l6xS{D?5BV&mUTc7YWRpA>iI8HJrfhKe41-Q7Q?QY0^v zEe@bgV=c=ajwrk#9YYMfIu^fOB`!WxgM{D>DE}d$sD7}qrP3x@5%+4Ln=ExUgOj*1 z%*4;&+RXI^&#U@|0JR9+UGk@TWQ-k1zi>?PMV_RPf@qxKfmf}{wh)T<4(G#N)E-xK zDu2bWa=vG;2b~sEAT!O?nKA>ByHS(R_lg!Hn!5B`z7Xvr+rxvzQDrL3-;oL=GDa!| zb8G%{Ue@bufz0fH&;pt`QE1`@2xqfF$jrAb<}(M%=g(PHL$=>IA`x?!L{E_K+Rc2Q z%5G!hf#(2QoylQfpd0u@R5=H#`dFcKn#o-;KSxj-!xYB{x;6f(w>-Y}=E8Du zBp8_GK)R7G>Rz({cWQ#;VyB&6>zk8>upg@SzmPt=CH_}-_10L9@rw1yJ2kq7V@YYb z6o4>~{~qYEbc-EzG_^vm=;E*L_j)%VB}^S^;xqRsD$2CwA<76*`F5o-2a-w=8g-N9 zOCa>@*pi0k^R z_$M!IQH8pt@eWfw&F-irQ!M^XTcE8Qf~f>ysCU;<0mj|TC;H{mS+WEhTimufH%9s5 za^Bvt6}wTQ)s@xe8G%ng1DHqjzWYz}4XO$}YqrPHf$FK>{-Glv=B`cFc^`=| zhCIYW2F8ZTI+`)~P`c%ct+FWuc7;XVE1NEH_)UY&(dH&H1>qw!n$NV`jOQS8^X(ro z`LX#K(!!F%WNHRxyDRiN1V**;`!y?%GFhLG_{Xg0hnt}r2c*uvT8zmzAb0ZT(oGCW zO5Bd}Z%DUX5p_1-0$gDo^nPGw*;n1?Rk4S{F7ary7QE+0Vud9Uj3{dN@RP>*q}G-9a$e!-x334M^aQ5W4G$p+g>y3z zM@ZT<1;tj7%K#>b#czxq$pQw3h;>%6g~4nJVb1}Un980|it0Uu>4w90%+UzIp$s>} z75OWu3qSQnbv=FisYo6_R1poJy=5H0+no09I_)_Xv&1!0W!H9=qGNjoXC zHfwa6xZL^qguUvu>inrfw{Yt7Ve3Eb-SB)5rNF2xG>2=Jm^}+rm}KBdtAB;LvKQJ!_tH)!iLEpHn`$Cg^BQx10(oJgfriUcVxl%;wSyp1V@_ zwk~!a3QrSOe7xcG$QU|xi2E}V1o6m3H=3BJiy@xR_dZacH?j=#`0f)5N-GYbJ^O2z znX)nd1tW>o%O&MgVs71D7BZ(tj~s5U^~29!n;y+@fAy`O@Sxj#?){YH)4^_mnE-^p ziUm09JT&_kuuw`cTO_sNNn=$ii(fu$28stFv9{0q*R~4^?TB@wReCTB*KO^ZIUyT1%q+gseeLwd6e)j3UF)M@%fZ$U&$q z$u^=l&&tVl0x#q-lVn(;8$rALtQ>?D*{ zbomi3X8MiBAw-`nsc&md!BYf*(%{w1k&w3t$>KRXk5XF`!1E<@;-VG1KTuzzn5}$> z7nF2?wc;Z$ImiV;Dj2WKdk@6}YZyQ?0KvpO!0Lj#hhAA(w&I_rey1_dBoH=<=P2({ z1Pw}honcJIgTwc)M(wA6H=ILkhw&Ny(d)(x0O&^Wage*5`m{MGM=@u%i$xO~eA0*< z|Lh_@MG)N{`5t8|1UOOmu4cjmTXawSrqtK%*aSKUNrPaWCA3dzvUOB@yrJpGZ`%_0 zBqQ&hY6wLKMv+}@EFAvAkp1$g(odR?hGzIw`zg-Z>4#KI)vAqvtof&nu)CEyp1$DLAe-t1YKRBR2 z--q73Zwh^#$T6SdI4Li!XnQNX2}`?2tZOm{*5% zF1@xo_c`sQmz1RxNo&}FO(^1rx}jku&g>gVPcDF9e^<~O>#kKulI$fJ&(%)ax#Na!`lL}4C1toOhh}br_20f)zbjaO z)9)xsiIWZqT}O1-yJ{ZyCl<1rM2aVxHhZL#Qhd8N?5-^l#x%23$lA52sJttxgxd$8 z67AIF@IJ|j6&nfSe#U<6<;M0XQB~g$P;4I&hLSwoDb*Kuq7ayz7}?69LnZdmvczkz z_pPsEGc&iKf%O^8bp&J&+A=TwR~Pi(OJjtZe)iuk5Y*liSs&Ky%5-b`qgv8XWSfzXbh$WZtqE58KCTBT;wvd%?ST~duBIY}^3O^1eVPKNvG}h_s9}@MzSuC! z`O(M-FAw+hT3C7qcH`5Hp&JhjhR!{>Yk!Dfo%|I=D-HRT28aW^0>OOiy9i$ow=bFW zp=7rU#j|nQ!V{VCnmqLG2zGz0QQ_n)vySfItOT`yKS3 zVV()I22@8>(vj}S`#3(?^7C&+e>Ddb6PY^leFj%IDn<^s9N454Ytgqu@`>3`GSAvl z&SUcdc+@0A%;vwLoKC|gYe70NWd1D~lCYB&d}`47GkoZ`l4CTru;@bD_#AXv5rc9W z?`?{yw4xpuhk(xx+{1DDTA*`^2seku9fQFR1dtgT^rHHIT0^<~vp77gF5Vj46`WL| zgd8U1XVkZ02|78fLS_F{mP@`a#rR#B4{BuZQAg<$p=2@C0GvQqXr?MR#nER!z|kTO zga&f_rlLEh>V9IRqV8@4%$~wIIW;{33-DlRPeByKEb$s?&|5vh7#F(<%M{S>tC4im zTl(b|^Eq2(N@W8h^i+Rt93*=OMb#u?oM);J15U|TBvbSCqAs>rufpFI6=?>6py zgo(|qJMheDb4aHk5nX5>9(_oqy)AT~rxN!gI~yP5V~0uf@>EDv2jIzqI~?Ded~1)} zF7`ihLxGoA5j@vFi`FG==6}6s2@28loSLE2bPI}jO}{pb!dyenHLDzl6xZLXb7JGY zf8iQ;w&Q(<`KM~3`}x0GRn^sd+RHQ-Qx0jgzzX{Enz?Ic9MU~sN2>Qm!y$>w)wu?< zrzc+^ck-rk50ecZtA)sLXy=508rTJnG4yR07X_7o;wy0XLwk|WvYXQL+V(y<#)Lw~ z&w!|#%#1)mF|mua@`zy8iLDFWE189GjSBM}Fudz6;=f!?zwP*+j; z+YdOw-5cVljnXD#$VkxxNw!&1l9SM>g~ zg%uo}HVAqHbNAR$r|f3Gg-+ft4GvQtPc=MK7uy(}SfP0+yhw~HeDs{8>cke5J`UoH z!Vav4zBCK@8CV@VHTHRBIyUs53!C107$N{+=Cg@8zl|`*m;8r;G3cbil5bRB?em{y z;^pyx_jvy*67P$ur##|Z^d!elGjyHR(oX_6$2{q9opXHu%~8(9Wc=DDsdRzz|04cR zt1MN_a{&MGxgs6tls$d(+?9k8NxRS`Si(nSk*}-9^^QYbu48{`68XQE%3=}3NcS7y_;B%944(> z8|1^O2f)2dkCvHwcgLDL@JWCGkr zUcH8H{c)o%?@`md4UgF`(yzz@ml<<9i~fC=afR}-)u-ioyz61(BVw%dz-><9kS15u zW`G7=5-e%vrd$fNN;HQ2!3t+e%sn?2RQ1X1bBfJf{TN*P@sCs$736dXA5+vVq~W~o z7SvG|1J?e+BcsEa7bf+={;K;0Vzn7xp~8@G}|X=G}VA?KQ(fGkWzk_1-&S#6O^a_Q+R-JEgiXPH-FcV>(1Q%h)Jh zFNNy{mVul+WqIg-QP8FM)5(>Q6e1cgS4T_J*Rt^T(gN~2X8FaX|5=QZHHx$1*a)_$b&#UOg5r$&Ynn~t4dQw4y!5Thnbsh;Z(+94)xvD zs70JKjHmduOShvpN-CgS+f`D-1&pAj0RQ`T@n_*N1^IP!G!8CsZ1~uHKY&u` zbl8Ca4wgey2lZ=x1@$UX>CfjRN2-yikMO8*ip`rnX7s~Ms}Uov2w;ENE%O#6#N|?2 zL;}tlDXhB)IO8><_kh5BVF!wUFMP^7dW3Avo~dLaDOf2e1s4w(7@4cClKW~Q8prPk zX}QaVCHB96Qa-R`eIqHvLy6g!sWIolI{CI9YiMZ4PvW(Q(W5)&wBj!oBuWlT{%}JA z1DQ=XakRY8Xo6?;dzX^?3N zSv-i}!ZtB?$rC|fh5ZHNt&YFTT9GIqT2=*Jlm3EpSv;^a67s#bS~Kn2PFs;?h}}9< zdL$9K{k@`(R^W(Ue4RX&rnJ+z>HTCDYz;zGIOpKibC@`W%Ripsyt4s$lL=a#iX?Li z?Zbg0HfEELM4DS>uMTG`u~t#YX+iA^aTxdn;y;VA@@!g}g=gtTl+ za97Ok4{knX3T3RCs(x4T&Da-o7S)Ag^^2r~)0XM1L?5Y@d)I8ye7^8ppvQoA7nWA@ z5_1LZ)Xjc!Uv-O>y}WH_XH`$=MDmk#{i(K3IYxnRzUTz3z327wq%3n$ zB{)B#L~03ODz9tz4+$}>Nu(xUsB|SdXcOst^{NsLi9%f6Lo-Ar`?f2Ik`q&l8*eU>G1L{FRcv zysZuD*lYVWJv9>1&Ncc_eINpf1-tXf=GM0!4*T2N|HIWw9Kj_eyb#_!J929Y_dAm< zY1FA~wY=y!-W{ie*}%33SFl;>PnvZo@s(`Q`9^nHmF*oplQZOUyIc+^4At<^+4X*k z8FC50z?4~<)tcDz2<~+Y5qI>kE^sV7Or@Tl%Y@S@-O`${FH|V=z^k(l zT6yG=j|0A@AVE5jjt_$nN{*@9Oz(I9-AJl(oGhQ!$VK6~nb~w9ma0ggE)G1{{NdAn zdYEWp)Z*2V!0WX-Pjk3w&N za10BR5Mz47-?pTj|N8s^=81wJdE-PT%lOCmwLREay z^5`Htg-8*-%E7=O4G1yQHGZH~lnB03A?yfu>-7=8KIY_treo(7-o~XWw}&zZX&)&qV0TY|+d7rA=d#+^1)ZCY`E| zk@XJ^oPCC0LG&fl3PybRMDuG_c;g7B3vFP%nQFy{jEqfwDe`}A6n!ghO3i|Huvh14 zl?r_;%ZPALaCmmo-nMjc%jPgRehfH8w zGfAn;^@5v>XfGnDd*^;q48KmR0bhN<#pli?a%0uJ$5rJJ%6D%mSLE|?d1+6)d3%X8o{SwP^KX*&x0YMqZkGsoGaU^XlW5^Ir=%rr z&wz#7hrGGVU4M`;^jbmyZc4?QT=PckCGCfPs@m%fr0pkrkjLCFUGfmbE3^eL^Bp?e z(StDR5vMwLZSxC|Az?LS|ls2S(A(wklcVen ziYBa8cTsFEr}PT3eG;|@x4}7llB-ME>sw0wT}DGN^$u@|{?Fc2ifpsZfbS$cK7Xem zweqcxxmjCVL~?$&xqbXn9){!+d_np$m9$A=5t}vg$AP;R+?7F|KlRSSiAdfY^;|mj zalbmribB{%iz7X3i;^(ZR>9G55icjD^?S%0zi#EAK6#B7lo5bWF_RxhUDE%-@j3iR zAsjP(cpxcl!-NyV$3%P4u=uQxvmi2b|D^VQRwS1151&-+MT&4qt(455Knr1)rk9L{ z2jBKj)fg4lH-ujscc%tzw4ciQm^|K;f-<*y1cz)$g^9g0RA1zekV~5vXDYeN8`17z zPFX@_9;A_u85hWXRqq2|QpBPVL8)JVzi`uAv+zV)Woc}37+%9(Q36Yt&9 z8{TQ#dxyQ-zGC6( zc**NG2;UvAXI?YxzZ(P`|4(J-9o0nF_G=IjrArB2dQqfTrGrWrQ7MMrn}7zCUZqNt zAWe`WMWq^P0-?vyqzVKSfj|I}-V^G#d7k(C);a5}v(7qyLNb||%$}^-zx%$foi`h} z{ElHUIQ?L9y4J62R+-Lj1`HZ=I0lXT<^6blbt~}T*W+a0Xg04Xj9B71~x<8`jL0U^UdhdR!dIH47DsdT(!9|3!7NQ-JPoR z$!c%Vc?d}d@|hmrnXxyC>>@n}Go~rxEnn|eiGDzyyzrd-LMCuV{KfU5u_#>{+<)g) zx8epaqr!ZpjN3P@!8^WtciA5|pG?_f9g1ywfAJNR%q`?2u|L9ezVo0_YtUHR%3q+l z+&m^m(k-ByZ{>7p_dBo(r8vdW{5>e z@i#_~Q=(1CQD$0etiQG%OK>EQ6Xjss1=JG8$)9xIYGJRNZ?wffv5>Cgxw~?4ATFKK zLI^7KnHEY-S13S)31c~$vv3J+-^*VhJHncw6omGpuu4`U6eGi>5i8qvRRR~6P%RQU zv=zKA&FZ(HiAa{baG#o**&Sugx0qXzETWGTYx{hQyDy*emdRb6R zeFSuAd8DWb+6%9CY!s7X3LI%yT&Ph}Q?9&dx~r>aS!_vpqT5wg^YsCF&VSEbBFDdz zFQ3iHG5wu}x;%NG{72=`!ma$-QeVycs%Pw?tJEVGP};#_!6j$mV~6Ghl9|h*aLTdG z(<_p9GyS$Ah&0)9V_s-W$5DY13J9mGpfoxEN>)(t?#S=Vd)to&_>z_PGlLG7KWu|% zoyO(?>Opg1^uY(2;n}#P*D{0YqENY^j`kI3eg{g^qjo4yK=1fous) z(Mz>9_)18GgwgQT!;Pei|L%qxc24Y!HWVkJMiV5-!T_i7R>6I|{6R~Qf5X9aVD0#E z!SNsOX)mwsT(_~Bpgamux0Lm`B+zMMUJpGZ7Jjo*-R~nfs?p>>>qiq?YFdwwH&oA6 zda(;qjrXCt=E7lv7w9FyGX^}9s?T5e1L}KR3b8nq1aC~7$$cX2Je6jL?$_-%FlDBO zo-G6?)|;@R@7eN$e)km_SQZn{EU+DP4>K|^+FpG*^IjnVIec8t=WJOUrL)^R1NZeG;z6pBfLC9|B18cVQ$lpVSeJ>R zFzo5?=a{S=&Dl-X_9)^p;~lQfP>JH$i-tZxZ*rURr_-UGKF_VE`N7;CQ-9>(+MvOz zRS0_diZHZ5TR*xPR6=Hc`{Ype)2beGrwSUtLC-^`=>Gnoq%RrC{uu1_$~KPjPc08~-Q zV&I_iK_-nGpuG`5GBwFaWRuzXTTK2znV>hggE{KQPk&v`l_eGz8)A!t>n(Wy%bxiPv{^<*(9R^r3 zK8oWP{JSK|!&fx4aaYDV@;Eeyht$``&9N1KzsrD{cV0Qq*Q~=J!hEu7k@u1~uCxqY zHajC~T=pU*=cf1DgS9#}I=&1GSX`XZXZ4s4#r3b9yW%XMRsGu6+2A9)SejH?xKi8(PKx*OA0ekWmRHdy z5mBm)*|H8pVbC+_!dx8)mRuak4f=nX&P*zv0(B43d278_3*l}FXxwOFM>iFAa$8a7 zr*cvdNmQi~apLGO<&PgqIrch06^6FMBj_pafOnUGe$*Mp=+mPO)q`tbf4t%U?#~3^ zX?(|<)?``*+ywa2cykMsno`YE)YAGFv(bZFUG}qt0bsg!QHkT=k%ev z$wWXLD|5m=>rO;Qgd?^q;u$FBie`ycp#_E;=^56jLO>d1r%?EvB}bqElBmBCjJ$j9 z6gmXsMX2k(OzezfhNWQft`fe(8D@^qCy7+;{7AJu8sDRMN^|w*)}lu3gxS&n@6N2} zk&=4iRWg#A7s#CfMYQY|39S-02;O7~{>#M~Z!ZuX>T%x<;l1llY=;xIs}c08Vj9Ba z1I8F#EVhpTb4!#gh7dhHi$&Yt;kVI{@a-o zBBb2=R`PyFeoRGp-C_>oM7J$)rma!%f?%epAzI8kqSo&)y2 zxpK{V8bTy-c9DX_k14E$C|j=KT_=^y-q{|;x`YHvFIsWVhAL=isFLpTso7$IJ5O4L zQUXSNLOFzK^NynGyhMePpL+T-j^X-^BE5_Ol!Tw|?Sx>X3AM6s;4{Pl^C->7bw5mP zg+$Oo!}_Ani`&HXn*2tY1OVC_gwip34$+6N%z%{o(zgPZK;{vg+F3Fsej27@gop*v}%3nbwu|+!4rphB%JR7cRrhA_? z_BMC9-(FY?2c6aKU|TFr!fiECt}5=$Mj}4;S)MC)NhZV!&pL1_e*IxRZ;%}k7{su5 zae@j(tR@o#8H}_?_GC!}T#%$H`kf0r8J8d1{c*a-lS8q@@{DBwerzwg4?;P{&--{~2{HV(YKX?^`K(q0#m{M{jx9 z4i{`0FK`H)lv`6JCWHZuV$qW%Cy!!<1BN^>#}W3RMQUXp=cl6b=Sjzf}- zv`TEKBMbupn2}@^?|q_8b2GKon=Tr}#0X3Tw)wQJn-L{Z#dT+P=zAMW1&i>k&7+IA zEEfmf{bE!TYdwbTyduR=*AKINJ7=i9b1;9yF;ew^Xy^8SdC7~4xe&MC*6Ajx3A33H zI<(DqbOOHAlFw1kam;t?xi^NwA@6P(v1BXxf4SB+J4RVjad(Agn*jJp$wC8(gA0c+ zoA)9K^zF@R?P!sywxMf2fR1vap_-}|g~Gl?8UV&nV!eELE@Gh3FYV>9qD!zk@gE?x zaB`rf)cEf{0T1J{_tE0CgU6*=CG2@7xyB=RW;bX%PthNn3-*gv-w19a)@O7o$}HTi zNPN=XvpK&BEJ{!kH|?eS^ij+7HKwRk|Mjiy%F)z=1xS{l!QR9RDRXGA(8%LO9TCEJ zlyA4ivaq!_dzQGb+tfYC#}mUrr1nqu_V+QUxA?1%c{yb&V$htmA7L3kJ;)(?FW7=v>>GUjxWb;;hvw&c^!+^LqM}j7$q1F1m?iSuBQlIi?5G9qSW?Uj;CHI(V zf66xEN6}AauAaTTdvA1qOvB-+cXb--wX_kKXx$#8!EV_>>NjP10os*pyI~fmPiY$( zXPRM;lWAbj^O^)go6K>&fwy#Wv)Og9N%cAd0b>G&KLX%uXc)|uFakFg{qfvXZ@?`L zH`hm@z5dg9p#z||rhB@u_HWER#l=s^dnvt_WF&8BnkZ`U=}DRk_dI*K7L;`oy)s{H zohe!t*AEjra$6Xo->=n4(p}GdwV(MNW92xvn^m5CY2psy$xLE-@tQ2|qr*FW$0{4j zYgv^oQz&K!RpdqbUL|VwP3I8?~z9xYkX-;r%78 z*4xU$;%k1K?Q#uWq{5H1JKteRuN)U5;-z#e-Q+Xf2P^$kc-$d9k9Kt%B(&sqn#D)l zdo$(h36;!D-6H;fP2~OG)!T|T;I}md2gMsoV;w5;59WS~^dmCWcR`?adgY0+h;D(RXZot_ zb)5n^Q30*~-Upw@4B&+?n0kH`C7sfg>I@u?33ydsgjcH@T=Q|(>lyo)&bT}Ug)P58 zHDr&c_5G}ePxb%RYcXfj%Y{(y`i|bGsB3to zc<~WDy#xt+IRt3E#EYz4@w0dGeIjSoo$quU&O50!Sod?F{<01loXmk_5$={j;qkVn z-Ip1d;cJ2e*Jj@0A57ZJQCc?E&I=9*o9hRC`X%2KDVE;w*wCQG6D*vZc9)}-@XJWh)tu*>15r>f9A!r(<~YUtaEiJnmXp!Sr0!GX^+ z>)9cBi9a|`r`PJc(4QHa41(Hu0$Zp&tv4npX?}Ts%Q+qd{|=q-h>?3cp(uC~5}3H0 zG=WW%gtdKh>ss?|n$16{WZj?K$UO}Mkbzbx;;6@nxs3B@47E)AQ%QL()82e7gm|&I zSoQNX>RH!>cafs!plg4~d1&I_Y%lgSZ^g2y_NCx{OX0ygL(cha{>9s~!3h71^=?|h zf!QRT(Cf*2EiR(+POYa-rzfU%!1t8-EwULpQ{9e5DdF=`NW5n3E>(OVjq)d&vsyIonkqUTasLt57 zT&1VE$4HvDXZ_CPKsg#VF`k_{f|(31ZLqiCc!-AN+rhpu&Dm`$ShHh(+14$WHtYm; zy@4e)S=bJm5i9b!==+;X+t90q1POJ8q#lMJZKDh>EdB#!Xi@KCm_=dAK#5%fjzI7Wd2dM zGk0CA#cF<~W}jB%(-CirIwb2W^nOrbd>=~D3Bfove|=dFW$aiGSC(VOkKw?)Js6IH zEf`faa9Q2R;7Us4jj>xOC5bQIB(50Vu;h>0@6wHHW!7yE4tN&`(G72Iw46U?V?K07 z;EsgGCmfrY^`=|x7kX8hb*?5>ody@+CJT>F>+ZwcE%3>A;DNs7ID$I@H^O3~cF9)^6bZ8R2Pg&jV%tA6u{JJ!H3YIg@N>|vJUpzZ~7th~> z4o|lpjQP5`A0;UE#Q<|Qw9?gxCOl0*f94RA>vDOLq>k)IPfPk=NGAN|EX0K2rRu$G z4{nm}WjtGgsodVnLGaF!Iq?+FsN?P#+ll;=A0f{-A6Vhsi11NVJ5Ep;TP>9 z=Y~hq>Zqg~T9$8MEBiNBx*|TaA|T`>DQfd3TeiIn*cVmb{0PMyOJaYmt3@|wHpXMH zGMZ(P^I`WI`@zi@zZC_CwmpyX9FCqBFdjZ@arku@#dsW&+T zUQjnZia}r{qMpBxnSmd(G%wIM^$hN{uh6qS$qwI0m4q++zz7_C$ME-+55t2Og?p5O ziyU(0G`@r!mpbHbzrr2=Vd^=?>cIoI`{4fD@$jW)ES%763t#!o%)iq#s5c%rs8doO zqgzs+o2EA=)qL|dOyBRWRAML;mWc6NO@+I!()GwJUhdgKr^1(Oy9BDCCBw-&B}OlC zBSvh=L62YwAr@l(&+~B{#an$R0!y)7IC#d@l+`M#H+oj9LRm2fsd`p^-DVKWRvdxc zarR5pAt_(V1rWvPWZ9nEEp-9$^Z(GqBb$xze3Vnt^f&)oS^wa#8H)1kKiV?1(dC@b z$cX>lY7czkh!<XgChsNbekEiu_!TvCPMV&8Nr)q!)or1Lr!67qd_tb#pf8EyUVdIh}Df25_~IsQoK zujl|tE$Fme+UkCO&F_=vch>Q8_K1lJd=KA1 zC(w71w;*9b7xNE>-YAXA%RTAHi(?S#Jr~qU={5@2<|_Ha55)8@L*S9?3>(&dbV057 zP)cja4Kr?9rOhzcXBiaATSp*q+#b@T&2s$8Y;YavO_rNS2Uh?~FGLd4or0^y zdbSLl2fm+D_>Ng39#ueP>mlR;0_T%_CsyV3REiCY@Ff6d(SR{#OBBh);BDhK0480_ z59T9P&5*!0F93pG$>oD7?_^*;8ojh}4uZFnbIE9if2QRKwBfqZStZX=*Jdd~$}nGV z9kg{P_2N!WxL@A$rFXu)0O$1@QF=;Mi2yY6qO^n<2NghNff313Me#LQI3t^lz+k9k zdyKXZv{Pla>INgk8QEt$2R~Pttup(GZ5&^=WFEMTsi~g{Y0~L>eU0(KY{NPTxYB`! zOYFtvT)PoMIcRxP>Yd$yx z5*DB-Y;pdcX^Yxu3nw}Enq?w>vtSZWj0&fb{?$h{3MvE~!}3%^HHUJ*XpkTU2fN%8 zi9GTv)My5$*|8CZBT(iDCn109ehOl7Tr|6?v5+keUMPvg@83a0CsgW+d8AVSRY zVZ3oQ1aIq2^A&NYApCXBg{ZvO5^W42M3OIOHBt0@$A0ze#3?&%Z^{&y_tpC+?SD5u zFWFDNruHo4l3=;#??x%0PpS^p*y!JSd@eFFulCf$a-)+sj|djHK0ugzwgiF@>)uV7 z%aGH^O3EeRD)%EqYdiq0d^o~Vp8S$pJTZ?e+4;3q%iko4<#SuOd|7pIWSEpzMpcrZ&(oSpj$;tfpkt7Y>rNX)GFMJbn|{2!zcF`JW1p?0bV;3q(? zf*6mq4m}x@nHS;*SI2borZSdX0RxJb=We;ecqqIif0Kd!A}OWn+p^)v}G($^@u*C$Ue!7Bl)N5bcQ{tI=G(=REdx~=q8^keAv{REOIKrr0^C>~ zVK&%ve~IMAD$g;U(y0E{DOa>c7#CJ6aUZz$WNR1CV^2a;yGRw%ZXiYj4Q^rAkpcc= zznRl1@4+m4?g=ZQM${!$EAci%CGGD^8eda{M4>ej1_Zpy$4Qb6i)jKwV`XF{7a_4j xYwzz^zof7N9oz(*`TzQp{r~f)6CEM+)5!B{UOVklVC^3wojdn#S8CWq{1-8NeDeSR literal 0 HcmV?d00001 diff --git a/ml/linear regression/linear regression.md b/ml/linear regression/linear regression.md new file mode 100644 index 0000000..78b34be --- /dev/null +++ b/ml/linear regression/linear regression.md @@ -0,0 +1,392 @@ +线性回归问题总结 +=============== + +## 目录 ++ 摘要 ++ 线性回归概述 + - 假设函数与平方损失函数 + - 为什么是最小二乘法 + - 多项式回归 ++ 梯度下降法 + - 一般描述 + - 学习率的选择 + - 在多变量下存在的问题 + + 特征缩放 + + 均值归一化 + - 局部最优 + + 平方损失函数是凸函数 ++ 规范方程法 + - 直觉理解 + - 严格数学推导 + - 不可逆 ++ 过拟合 + - 过拟合概述与产生原因,解决方案 + - 正则化的损失函数 + + 梯度下降法:仍然是凸函数 + + 规范方程法:一定是可逆阵 + +## 摘要 + +这篇文章主要介绍线性回归问题。任何一种统计学习方法都由三个要素组成,即**模型**,**策略**以及**算法**;所谓模型,就是本文中的**假设函数**(`hypothesis function`),策略或者评价准则,即本文中的**损失函数**,而算法,则是选取最优模型的方法。本文将从这三个方面对线性回归问题进行总结。 + +第一部分阐述了线性回归问题的基本概念,给出了它的假设函数以及损失函数的数学表达式,并且指出**平方损失函数**在本质上与**最大似然估计**无异。接下来的两个部分,分别阐述了求解该模型的两种算法,即**梯度下降法**与**规范方程法**,给出了两种方法的数学推导与数学表达式,并就实际应用中可能存在的问题进行讨论。最后,介绍了在统计学习中常见的一个问题——**过拟合**,并且就解决过拟合问题的常见方法——**正则化**(`regularization`)进行了深入的探讨。 + +这篇文章的重点在于:平方损失函数与最大似然估计的联系,平方损失函数是凸函数的证明,规范方程法的数学推导,正则化后的平方损失函数仍然是凸函数的证明以及正则化的规范方程一定可逆的证明。 + +## 线性回归概述 + +> 假设函数与平方损失函数。 + +线性回归问题是这样一个问题,对于输入$x$($x$是一个$n$维向量,表示$n$个特征),假设输出$y$是$x$的线性函数。不妨设假设函数为 + +$$ +\hat{y} = h_\theta(x) = \theta_0 + \theta_1x_1 + \cdots + \theta_nx_n +$$ + +为了简单起见,不妨引入一个$x_0 = 1$,这样 + +$$ +\hat{y} = \Sigma_{i = 0}^n \theta_ix_i = \theta^Tx +$$ + +这里$\hat{y}$表示对$y$的估计值。因此,线性回归的任务,就是找到一个合适的列向量$\theta$,使得假设函数尽可能反映输入样本的特征。为了衡量假设函数与输入样本的符合程度,需要定义一个新的函数,这里称为损失函数或者代价函数(`cost function`)。 + +在线性回归问题中,常用的损失函数为平方损失函数(`square cost function`),定义为$J(\theta)$ + +$$ +J(\theta) = \frac{1}{2m}\Sigma_{i = 1}^m (\hat{y}^{(i)} - y^{(i)})^2 = \frac{1}{2m}\Sigma_{i = 1}^m (h_\theta(x^{(i)}) - y^{(i)})^2 +$$ + +容易注意到,平方损失函数的主体是用最小二乘法给出的,它反映了样本预测值与实际值之间的偏离程度。假设函数越符合样本,则损失函数的值就会越小;反之,假设函数越偏离样本,损失函数的值就会越大。因此可以用损失函数的取值来定量衡量参数$\theta$的好坏,最优的一组$\theta$值,应该恰好使损失函数取到最小值。这样,就将参数优化问题,转化为了求解最值问题。 + +> 为什么使用平方损失函数? + +使用平方损失函数并非偶然,而是由最大似然估计推导而出的。下面给出推导过程。 + +在线性回归问题中,模型假设实际上是输出$y$乃以$h_\theta(x)$为均值的**正态分布**,即 + +$$ +y|x = h_\theta(x) + \epsilon,\ \epsilon \sim N(0, \sigma^2) +$$ + +所以有 + +$$ +y|x \sim N(h_\theta(x), \sigma^2)\\ +f(y | x) = \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(y - \theta^Tx)^2}{2\sigma^2}} +$$ + +因此可以写出似然函数$L(\theta)$ + +$$ +L(\theta) = \Pi_{i = 1}^m f(y^{(i)}|x^{(i)}) = (\frac{1}{\sqrt{2\pi}\sigma})^m\cdot e^{-\frac{1}{2\sigma^2}\Sigma_{i = 1}^m (y^{(i)} - \theta^Tx^{(i)})^2}\\ +lnL(\theta) = -mln(\sqrt{2\pi}\sigma) - \frac{1}{2\sigma^2}\Sigma_{i = 1}^m(y^{(i)} - \theta^Tx^{(i)})^2 +$$ + +这样,对似然函数求最大值,就等价于求 + +$$ +\Sigma_{i = 1}^m(y^{(i)} - \theta^Tx^{(i)})^2 +$$ + +的最小值,此时上面的平方损失函数也取到最小值。因此可以看到,平方损失函数实际上与最大似然估计是一脉相承的。 + +> 多项式回归。 + +实际上,线性回归还可以应用在非线性的场合,比方说有一个非线性的假设函数 + +$$ +h_\theta(x) = \theta_0 + \theta_1x + \theta_2x^2 +$$ + +不妨设$x_1 = x, x_2 = x^2$,这样就可以将上面的假设函数写作 + +$$ +h_\theta(x_1, x_2) = \theta_0 + \theta_1x_1 + \theta_2x_2 +$$ + +这样,就把非线性的假设函数转化为了线性回归问题,从而可以利用线性回归的方法来解决。该问题被称为**多项式回归**问题(`polynomial regression`)。 + +理论上来讲,一般的可导函数总是可以通过泰勒展开,写成多项式的形式,因此多项式回归理论上可以解决很多复杂的问题。然而,在实际应用中,当选择的多项式形式过于复杂时,可能会产生过拟合(`overfitting`)的问题,将会在后面阐述。 + +## 梯度下降法 + +> 梯度下降法的基本表述。 + +梯度下降法(`gradient descent`)是求解最优化问题的常见数值方法。它的基本思想是在每次迭代过程中,使得被优化的参数沿着函数下降速度最快的方向(即梯度的方向)移动一个微小的步长,随着迭代的进行,被优化函数的取值会越来越小,直至收敛至极小值点。 + +对于任意被优化函数$J(\theta)$,梯度下降法的参数更新公式为 + +$$ +\theta_j := \theta_j - \alpha\frac{\partial}{\partial \theta_j}J(\theta) +$$ + +这里的$\alpha$称为**学习率**(`learning rate`),它其实就是梯度下降法采用的步长。采用梯度下降法来求解平方损失函数的最小值,则有 + +$$ +\theta_j := \theta_j - \frac{\alpha}{m}\Sigma_{i = 1}^m(h_\theta(x^{(i)}) - y^{(i)})x_j^{(i)} +$$ + +通过选择合适的迭代次数和学习率,就可以得到使$J(\theta)$最小的$\theta$了。 + +### 梯度下降法存在的问题若干 + +> 学习率$\alpha$的选择。 + +学习率的选择在梯度下降法中至关重要。如果学习率太小,则需要更多次迭代才能找到最优解,需要较长的学习时间;而如果学习率太大,也有可能导致收敛速度慢,甚至可能会发散。这是因为学习率太大时,不再满足全微分方程中微小变化量的条件,因此每次迭代后被优化函数都未必可以取到比上一次迭代更小的值。学习率的选择对$J(\theta)$收敛速度的影响如下图所示: + +![select_alpha](images/select_alpha.png) + +可以看到,当$\alpha$很小时(如图中红色曲线所示),损失函数$J(\theta)$收敛速度较慢。随着$\alpha$逐渐增大,曲线逐渐变得陡峭,收敛速度越来越快。可是当$\alpha$很大时($\alpha = 1.3$,图中黑色曲线)收敛速度反而相对此前变慢了;$\alpha$继续增大将导致代价函数发散(图中洋红色曲线)。 + +因此,理想的方案是选择这样一个$\alpha$,它应该处于收敛与发散的临界点,一方面保证被优化函数最终收敛,另一方面还要有较快的收敛速度。 + +> 局部最优解。 + +从上面的讨论中可以看出,梯度下降法最终将收敛到某个局部最优点,而无法保证收敛到全局最优点。实际上,当选择不同的初始值时,使用梯度下降法往往会收敛到不同的极值点,如下图所示: + +![gd_diff_path](gd_diff_path.jpg) + +因此,使用梯度下降法无法保证得到的结果一定是全局最优解。然而,需要指出,对于线性回归与平方损失函数,则不存在这个问题,因为平方损失函数是**凸函数**。证明如下: + +平方损失函数$J(\theta)$满足 + +$$ +J(\theta) = \frac{1}{2m}\Sigma_{i = 1}^m (h_\theta(x^{(i)}) - y^{(i)})^2 +$$ + +所以 + +$$ +\frac{\partial}{\partial \theta_j}J(\theta) = \frac{1}{m}\Sigma_{i = 1}^m(h_\theta(x^{(i)}) - y^{(i)})x_j^{(i)}\\ +\frac{\partial^2}{\partial \theta_j\partial \theta_k}J(\theta) = \frac{1}{m}\Sigma_{i = 1}^mx_j^{(i)}x_k^{(i)} +$$ + +因此,可以写出`Hessian`矩阵$H$: + +$$ +H = \frac{1}{m}\left[ + \begin{matrix} + \Sigma_{i = 1}^mx_0^{(i)^2} & \Sigma_{i = 1}^mx_0^{(i)}x_1^{(i)} & \cdots & \Sigma_{i = 1}^mx_0^{(i)}x_n^{(i)}\\ + \Sigma_{i = 1}^mx_1^{(i)}x_0^{(i)} & \Sigma_{i = 1}^mx_1^{(i)^2} & \cdots & \Sigma_{i = 1}^mx_1^{(i)}x_n^{(i)}\\ + \vdots & \vdots & & \vdots&\\ + \Sigma_{i = 1}^mx_n^{(i)}x_0^{(i)} & \Sigma_{i = 1}^mx_n^{(i)}x_1^{(i)} & \cdots & \Sigma_{i = 1}^mx_n^{(i)^2}\\ + \end{matrix} +\right] +$$ + +容易看出, + +$$ +H = X^TX +$$ + +因此$H$显然是一个**半正定矩阵**,根据凸函数判别的充分条件,可以得出平方损失函数为凸函数。 + +凸函数具有一系列的优良性质,比如说只有一个极值点,即全局最小值点。因此对凸函数使用梯度下降法总是可以收敛至全局最优点。 + +> 多特征的线性回归 + +在实际应用中,一个问题往往会有成百上千个特征,甚至更多。这些不同特征的有截然不同的取值范围,如果不同特征取值范围差别很大,则会导致梯度下降法收敛速度慢的问题。 + +考虑存在两个特征$x_1, x_2$,它们各自的取值范围分别是$0 < x_1 < 1$,$0 < x_2 < 1000$,两者相差了1000倍。在使用梯度下降法时,参数$\theta_2$的变化量也将大约是$\theta_1$的1000倍,这将导致损失函数等高线图呈现扁平的椭圆状,梯度下降路径相对取值范围更大的特征对应的参数来回波动,从而导致收敛速度缓慢。 + +为了解决上面的问题,需要对取值相差比较大的特征进行**特征缩放**(`feature scaling`)与**均值规范**(`mean normalization`),具体的操作是求出每一个特征的均值$\mu$以及范围(最大值减去最小值),随后对每一个特征点进行以下更新 + +$$ +x_j^{(i)} := \frac{x_j^{(i)} - \mu^{(i)}}{range^{(i)}} +$$ + +在实际应用中,也可以用**标准差**(`standard deviation`)来代替范围进行更新。这样更新后的特征取值范围都在$[-1, 1]$之间,绘出的等高线图接近于(高维)球形,收敛速度就要快多了。 + +## 规范方程 + +## 过拟合 + +> 规范方程法的推导 + +假设函数(hypothesis)$h_\theta(x)$满足 + +$$ +h_\theta(x) = \theta^Tx = \theta_0x_0 + \theta_1x_1 + ... + \theta_nx_n = \Sigma_{i = 0}^{n}\theta_ix_i +$$ + +因此,平方损失函数(cost function)$J(\theta)$可以写作 + +$$ +J(\theta) = \frac{1}{2m}\Sigma_{i = 1}^m[h_\theta(x^{(i)}) - y^{(i)}]^2 +$$ + +参数$\theta$应该是使$J(\theta)$最小的一组列向量。由多元函数极值可知,$\theta$应该满足: + +$$ +\frac{\partial}{\partial \theta_j}J(\theta) = \frac{1}{m}\Sigma_{i = 1}^m[h_\theta(x^{(i)}) - y^{(i)}]x_j^{(i)} = 0 +$$ +解上述方程即可以得到$\theta$的解析解。 + +为了简单起见,下面用矩阵形式来对$J(\theta)$进行表述。矩阵$X, Y, \theta$可以分别表示为 + +$$ +X = \left[ + \begin{matrix} + x^{(1)^T}\\ + x^{(2)^T}\\ + \vdots\\ + x^{(m)^T} + \end{matrix} +\right],\ \ +Y = \left[ + \begin{matrix} + y^{(1)}\\ + y^{(2)}\\ + \vdots\\ + y^{(m)} + \end{matrix} +\right],\ \ +\theta = \left[ + \begin{matrix} + \theta_0\\ + \theta_1\\ + \vdots\\ + \theta_n + \end{matrix} +\right] +$$ +所以$J(\theta)$可以写作 + +$$ +J(\theta) = \frac{1}{2m}(X\theta - Y)^T(X\theta - Y) = \frac{1}{2m}(\theta^TX^TX\theta - 2Y^TX\theta + Y^TY) +$$ + +对$\theta$求导,所以 + +$$ +\frac{d}{d\theta}J(\theta) = \frac{1}{2m}(2X^TX\theta - 2X^TY) = 0 +$$ + +从而可得 + +$$ +\theta = (X^TX)^{-1}X^TY +$$ + +> 引入正则化项的规范方程推导 + +为了避免过拟合(overfitting),在损失函数$J(\theta)$中添加正则化项(`regularization term`),所以 + +$$ +J(\theta) = \frac{1}{2m}[\Sigma_{i = 1}^m(h_\theta(x^{(i)}) - y^{(i)})^2 + \lambda\Sigma_{i = 1}^n\theta_i^2] +$$ + +同样可以利用多元函数极值,令 + +$$ +\frac{\partial}{\partial \theta_j}J(\theta) = 0 +$$ + +逐个求解出$\theta_j$,在此不再赘述。 + +为了简化问题,仍然用矩阵形式表示$J(\theta)$,所以 + +$$ +\begin{aligned} +J(\theta) = &\frac{1}{2m}[(X\theta - Y)^T(X\theta - Y) + \lambda(I\theta)^TI\theta]\\ + = &\frac{1}{2m}(\theta^TX^TX\theta - 2Y^TX\theta + Y^TY + \lambda(I\theta)^TI\theta] + \end{aligned} +$$ +其中 + +$$ +I = \left[ +\begin{matrix} +0 & 0 & \cdots & 0\\ +0 & 1 & \cdots & 0\\ +\vdots & \vdots & & 0\\ +0 & 0 & \cdots & 1 +\end{matrix} +\right]. +$$ + +所以 + +$$ +\frac{\partial}{\partial \theta}J(\theta) = \frac{1}{2m}(2X^TX\theta - 2X^TY + 2\lambda I\theta) = 0 +$$ + +从而可以解出 + +$$ +\theta = (X^TX + \lambda I)^{-1}X^TY = (X^TX + \lambda \left[ +\begin{matrix} +0 & 0 & \cdots & 0\\ +0 & 1 & \cdots & 0\\ +\vdots & \vdots & & 0\\ +0 & 0 & \cdots & 1 +\end{matrix} +\right])^{-1}X^TY +$$ +需要说明的是,正则化项的引入不仅解决了过拟合的问题,还使得新的矩阵 +$$ +X^TX + \lambda I +$$ + +一定是可逆矩阵,而此前的 + +$$ +X^TX +$$ + +则不能保证它的可逆性。下面给出证明。 + +前面已经指出 + +$$ +X = \left[ + \begin{matrix} + x^{(1)^T}\\ + x^{(2)^T}\\ + \vdots\\ + x^{(m)^T} + \end{matrix} +\right] = \left[ +\begin{matrix} +x_0^{(1)} & x_1^{(1)} & \cdots & x_n^{(1)}\\ +x_0^{(2)} & x_1^{(2)} & \cdots & x_n^{(2)}\\ +\vdots & \vdots & & \vdots\\ +x_0^{(m)} & x_1^{(m)} & \cdots & x_n^{(m)}\\ +\end{matrix} +\right] +$$ + +所以 + +$$ +X^T = \left[ +\begin{matrix} +x_0^{(1)} & x_0^{(2)} & \cdots & x_0^{(m)}\\ +x_1^{(1)} & x_1^{(2)} & \cdots & x_1^{(m)}\\ +\vdots & \vdots & & \vdots\\ +x_n^{(1)} & x_n^{(2)} & \cdots & x_n^{(m)}\\ +\end{matrix} +\right] +$$ + +容易注意到,$X^TX$的对角线元素一定大于或者等于零。且对角线上第一个元素为 + +$$ +a_{11} = \Sigma_{i = 1}^mx_0^{(i)}\cdot x_0^{(i)} = m +$$ + +因此$X^T + \lambda I$的对角线元素$a_{ii}$一定大于$0$,对于任意的$\lambda > 0$成立。所以 + +$$ +\left| X^T + \lambda I \right| = \Pi_{i = 1}^{n + 1}a_{ii} > 0 +$$ + +因此$X^T + \lambda I$一定是一个可逆矩阵。实际上,还可以得到更进一步的结论,即$X^T + \lambda I$一定是一个正定矩阵。这是因为$X^TX$和$I$都是半正定矩阵,即对于任意的非零向量$\eta$,都有 + +$$ +\eta^TX^TX\eta \ge 0,\ \eta^TI\eta \ge 0 +$$ + +因此两者之和也必定是一个半正定矩阵。由于此前已经得到$X^T + \lambda I$可逆,故不存在为零的特征值,所以所有特征值都必定大于零,因此$X^T + \lambda I$是一个正定矩阵。 diff --git a/ml/logistic regression/logistic regression.md b/ml/logistic regression/logistic regression.md new file mode 100644 index 0000000..3c3c124 --- /dev/null +++ b/ml/logistic regression/logistic regression.md @@ -0,0 +1,20 @@ +逻辑回归问题总结 +============== + +## 目录 ++ 摘要 ++ 逻辑回归概述 + - 假设函数 + + 假设函数的意义 + + 决策边界 + - 线性边界 + - 非线性边界 + - 损失函数 + - 为什么不使用平方损失函数 + - 对数损失函数 + - 最大似然估计 + - 多分类问题 ++ 梯度下降法 + - 对数损失函数是凸函数 ++ 过拟合 + - 正则化的损失函数 diff --git a/ml_scipts.md b/ml/ml_scipts.md similarity index 94% rename from ml_scipts.md rename to ml/ml_scipts.md index d33cd3b..eb9ecbb 100644 --- a/ml_scipts.md +++ b/ml/ml_scipts.md @@ -39,10 +39,16 @@ Handscripts when studing Machine Learning > 在线性回归问题中,是通过平方损失函数(square error function)作为损失函数,来对参数进行优化的。老师说这样得到的是一条可能性最大的直线,是否可以用最大似然估计来解释这一点呢? +后来的总结中给出了数学推导。 + > 多元线性回归(multivariate linear regression)的梯度下降法与规范方程法(normal equation)的一些问题。 不明白规范方程法正确性的证明,以及通过多元极值求得的结果与规范方程法是否一致? +用平方损失函数,利用多元极值求得的$\theta$与求解矩阵方程$Y = X\theta$所得到的结果一致,即$\theta = (X^X)^{-1}X^TY$,不得不让人思考两者是否有什么内在的联系? + 规范方程法伪逆(pseudo-inversion)的数学推导;为什么求逆操作的时间复杂度是`O(n^3)`,其中`n`表示特征的数量。 为什么梯度下降法的时间复杂度是`O(kn^2)`,k是什么含义。 + +> 为什么是平方损失函数? diff --git a/words.md b/words.md index 0ebbed0..890470f 100644 --- a/words.md +++ b/words.md @@ -2149,4 +2149,52 @@ Some Words - These apartments all have a delightful dockside frontage. - The restaurant has a river frontage. -+ +## 7th, January + ++ proprietary +> (adj)relating to owning something, or relating to or like an owner.
+> (adj)Propritary goods are made and sent out by a particular company whose name is on the product. + + - I just assumed he owned the place - he had a proprietary air about him. + - some proprietary brands of dog food + - This is proprietary software, and you have no right to copy it without a license from the owner. + ++ recap +> (v)to repeat the main points of something that has been discussed earlier at the end of a meeting or talk.
+> (n)also a noun + + - Let me just recap very briefly what I said earlier. + - To recap, our main aim is to increase sales by 15 percenet this year. + - Here's a recap of the week's most hotly debated new items. + ++ defer +> (v)to delay something until a later time.
+> (v)defer to: to allow someone or something to make decisions for you or tell you what to do because of your respect for them or because of their higher rank, authority, knowledge, etc. + + - My bank has agreed to defer the payments of my loans. + - Can we defer making a decision until next week. + - I have to defer to my boss on important decisions. + - I defer to your judgement. + ++ outlet +> (n)a shop that is one of many owned by a particular company and that sells the goods that the company has produced. + + - the largest retail outlet in the city + - At the factory outlet you'll find discounted items at up to 75% off regular prices. + ++ intercept +> (v)to stop and catch something or someone before before that thing or person is able to reach a particular place.
(n)the point at which a line intercepts a coordinate axis. + + - Law enforcement agents intercepted a shipment of drugs from Central America. + - The ball was intercepted by Grady. + ++ franchise +> (n)a right to sell a company's products in a particular area using the company's name. + + - Each store is owned by an individual who pays a fee for franchise. + - He lost the franchise after failing to meet the specified standards. + ++ cosmetically ++ rationale ++ ameliorate ++ level off