From a6c659f81003635da118687d5c7689db0ebe2ca0 Mon Sep 17 00:00:00 2001 From: "patryk.slowakiewicz.stud@pw.edu.pl" Date: Sat, 6 Mar 2021 21:51:05 +0100 Subject: [PATCH 1/5] HW1 --- .../HW1 - S\305\202owakiewicz.pdf" | Bin 0 -> 364022 bytes .../HW1Slowakiewcz.ipynb" | 417 ++++++++++++++++++ 2 files changed, 417 insertions(+) create mode 100644 "Prace_domowe/Praca_domowa1/Grupa3/Patryk S\305\202owakiewicz/HW1 - S\305\202owakiewicz.pdf" create mode 100644 "Prace_domowe/Praca_domowa1/Grupa3/Patryk S\305\202owakiewicz/HW1Slowakiewcz.ipynb" diff --git "a/Prace_domowe/Praca_domowa1/Grupa3/Patryk S\305\202owakiewicz/HW1 - S\305\202owakiewicz.pdf" "b/Prace_domowe/Praca_domowa1/Grupa3/Patryk S\305\202owakiewicz/HW1 - S\305\202owakiewicz.pdf" new file mode 100644 index 0000000000000000000000000000000000000000..036ab8f9792469fa0188a727b5c8527919592a53 GIT binary patch literal 364022 zcmce;19+xOwlJD>(&?aMb!^)UC{J>FHyJR6dnX%}*=6E!W|q2|+D zRcbnRa=h2PzFoB;-Q~myj~kmw=VPl;kNC!@;Om>l-v1Q&I_3g){J@66ZJ^-@EyzaS z?S1Pdxs=x)hZA2qqbFi9Og;>*>uw>!i#H#Hpl%Kf&Q~jwbB;Wj&8=&77iwduADf)s z6|+<#M-Fj0;6koF1w|kaESyG4;Jc0@Z>prJ#n&WUF?B9{fA0;<7A{9k$ef^=@LfaD zGP*nK?nAvsi9errQLU4=EA##Bv2T&VJB8SRhIM0};PQsf&r!TCpOkdn%hqwN{3&9A~ChAP%U zm)9V>h$eaMuV^01XS)Zkk0#_0Ox{eDH4^u11sI1Ah^ea11LLTyRgl(tD z^TNl-<8cFiL+sYPe8?URcNv=5zNto`qaaJvOwjc79RUpS^pQNst0=GnYDz^@lKWK_ z(7Bv5<7A%b>5&53so>y?;|(>O7iEK~h4cgdS5lPUeKuUAU;;N>{Uu<*%rBy6XVDz$ zx=ZBL(#F}Ko$$eW7kt!EJ)`I_aQP>CX=r!K;Vpv_RCKTlg=c9?!g?SZ&wPIO@+a8p z*%QWyV|HUYV1%8s(S7AKR;=wjZ>_gCY|J~Ly7$Qy(07#?UqmFrC6N!vOVX|I%%zi4 z$V-zW?L}hRR4Hr$qqBEZI(u@12p3oh@J-OtaQnw&6OcgpRMS?T$+Bhk5&4GI>@YZ< z!1|VLNYk6vmK!m7p02~b`s-#@F|$x(1LS4fW(wwK((1mAZxQcV40alL@@4NT3!Wh>yONTjqfiH?p->p zjo;0dyjV1({ZBq$<(QT${VIJUXVz=qB%B0=CFgWst3v)=wh|2)H_9 zzx<#D%RGU8e{YUUH5Qz?3?nR|mQjLNO@VE<5M~0Y7cIyK81c#QfkoAn@sCrgqrgD1 zgHRJ0VO4}uiWJF$)~T5~nG-9)Psp_mu+MP1O=_5N9Ao!kBHfV_Wfz1sVXWN8h`rRR zyg;FW3j?ExiEtK*snNq__{Fc+^N?tdK3QHvEcX*>J`JyIO%J>nNX!RTD<%T$6UYtc z$S?At!*SGuse5HfqL zU&%Ipx^*%I$x1N&s*Yhkes)MH76~9(?}QX~2q~BuTfWu8n7dK#PLk0fO6)AZZhv_F zZ2yk*%sjRZHEl9C@Ti)|F~aBka&4qZG}}wO74f?-MqDI~`VJb*s7M;Gfx;X_I2D$n zJX7hItZ0D5w}Ud2{uY{$yqUbLk+cn^Rb! zBv<1eO>c+fg{rs1;vVS;;~mK~M%xw7{cPcqouc?TL0v~e%C@Z}fR}(z&)cjw2~(8C zo8WX5X6O~8=T96Q%-0^$#yOnEZ($iuJ>^CGlO;=D(BTeg&>_M&`g;?SbTEf9Q1G*T z99Gv8tBS$QCX!0S{#&65*5H@h2!vM))eYq7omaG!G%EG>FS33(eC2mUNzAy!|CF*-E-Tr$YCC@T{62r_%opL_^j?ivurgcI-mcE2QuO{=Dv$! z)^%@MX0rQM?@(?9Q^g2{p~1edVMB`)`u@!DGoy7zKtT~Lm2=yP*>DE8@6*ka(Qa># zb{0il3TrJPNc)kLvco)3uWEoY3!g$3(+sqz#HA_07$j#*;30<`E$&|a09(eIs7AVMPkdTYw@dGw?=S2de+ep;faY`y&2 z!Y?;fc8Bh}+DgOAo;Lpqmx`G7A)!X_Pdgw2T8HEV0rVOMv&s~ z!j|Y*&uXowHE$?^g``-x9Dgx#CLTb^u&g)^#8pc3IzzUWq)1VtI*Rqz*A;cOm-wD> z$(#A$;4S6x4LAOD<;?oSfjA~!V@#RXWQo0VMWlWG%8l^7?gSuK3pnX-P}2=ZSp45N zFDUm$3O+r^wLK0v;`XU0>+00U(XTKqPA#C!RYKQ-{Z~=~c1AtTmm{d<`futr5KamB z7uyeU5x@9M%q=fQ60+UkmofGTs0qA?q^+P0G$w`>W`4NqHMq<=|7>t6Tax%PmzXrJ z9*t)p;dF1E#UQLKsqPO9F1XQqPwLLf#sUhSoj)l1{L5Pe$_ETqu;yHtCM3a z3)OR>-GXm5N+CvJAC@1cREQ+{~zU*w2ah$%`4Ybhb(pkVcHMK9)Zq}+yQ-fV6aiJnZ9*= zWl>5opX&g|5+fc-<8ByJzIaPYd%&`FcF)?{0bi%dpS^8xUqQ*kKQ?Z z(+E8icyWi%48b0Bw53lw`jcr5r_b+b>v3iw?IbbMv6~qPYY*>05MapGBGQWUm$hGI z^A__piD$Uxl^sT)Gdt%x$`VBI#xHF?MC{C~7+XVaP+_U-oe5|zF~>ggzOV{|D;xSZ zH@mc_=T&PT4pgR^F@Nx6S?jnv>QSI$W3Mm#VSYm<`~sfoQP_(ZBo1&LJ=!&1Ac259 zI5=^8LUdvZI(oI;w+htbeH4(@fhM3XV$l(0B`nAceQFlqP|@JRQ@WcsIIM^%J%&vE zoQ#?tfCw3r3*1rhjWyg13sQ_2&#=BZ;Hu{SHo<;;)&{kzwN<@L%HY)F^0R=#HPTTKVSiXLnVWtZMe~ zo@{Krq=ZK6hfsqK2jj_G;u#9)2=`a?#Pl|YJbP!(`@fSh7^tYsZK2lg%1XaC$Yr6} z@h}55vMbmk?-7O91wIX0Tbv6;w!cq)O&7-2DHi61MIno=CXGBT*r_$j45Q0VfmEbr zVA$XgD;EMf8#V&5sgitQ??a-vH-a}Lb)tJ?5TL!`Wo~5l^!CPjf85(kEfnhVI+H{P z_fZCgQ`>2DBf*~mVQpWq36Fpmi-X5^+(+cQq7s}FI*y@c{oNC4{vl?<< zwVoNe8nTO50r$}WuB&MhL5z?%Eqh)@z=u)r32L7=xl3)ZGT5xlrUeg=6nnW@;-}<^ zcEv2_zF=4a14iE?<`F-R5z+LC958~2Z&1|6FOPr=!`D{Pu4qXb^7D=F$y-{SZ`5zM zbZHUP@9^m6M>D&`0b5_!4F=(Y!6IX$P~H1QINlzOxnF5j_}7fP;(W-7#e>jUAm`Ik zp-^kGifY?gITigN8saR{Ch`xXXbXmwWk&=pe?s2aJvZntJr~Dn z**3eg7nqgkY4Y=n`&QfShJ_|*Avrjtg1L@t7Qssp0NdJ?X$PhhPRXT;N!P^pD4n^H z3gxpWOjK*3FUy%Ps22f|a0m9vAN!g+uM?;?mE?JerZm9bR&m6MhJ!F4dZTd z46mdtm)~#4QX&~Lz7R*!b|{M;AT^_{E90iBFoc*CJ*->z!%NiY`stm2E9dJa=SNTH zM&YgYV;giUG*VdfSEgqVJC4bbU=z>}3OT#yGHWppBbsNf7!Vwm7i`&C#k0D{)dPzE7SD^o}?;m1Zdn zjrM~mC!DG-5x_}8A&?AhNLKq~}gX(m*IAEaDgzZ@*z$O0ZrZeiWl46!-3|g(`Q1 zFs&FWRgf;@7s)>E31Ly-zZT;_3=Wjk<$4dm@MImE7ULlo{ z9}Q-q<71or*i!R%(ORGR!5vdDa0%JPv<5ubFfGCAvM}~4o8XtJT1k8u#1)}0={)PJ zld25@2L@K8aG)oM(OEz@^Xr6gL6m!y5x}KMNCy913M%!*Dt-L4@r1upIUMy z+f?DKmeILr7_BI!m&qWTiyvV86P(f9a%Nay{BEngtQN16hpXQu1iomiV}b2G-BRFc z7l>A_2Ap6PYt}#tIoIoG_;WZ`A-odh&Fg=II8TD19c<~$#Rrn(D+-I}zLzJBKh=;o zS#d7`XO*em>TGwEA75KX6lk0di*K-i0mM#oB|`n>&kaZ^S7Rw(Y`#%EOq2(;$$Qq2 z;*t|EE7Dj#4y5*w=M*RiM=xZU>Ry8MW8qv@`O?4YNihEFU_P{OIH}u%ZJTsG!oY!# z6&-fRM6_e~%m}z?sb+DF+(6AWqz5>D(v$)Hm`v=8BJuEv)SB;#ql!u?vAogiSB4_F z!Q}FnMPvHf;fk6WUWG=NaTN`r;0u+b=JY2>Ba{u}3dYLfOPK(iZnQfRnWHInY74xp z&0)MiIo04svF@tc&F@O#YE?^)7r(Z7yUE>h+r90*G1eniOI?kAm5IXSrJtSKn8{k@ zvZZ(~TFqk;j1uF|jC^LhH9i%177-Ua!%-WyzD>eowOEzrxlj;S)AdwW9DBQi=DK%7 zTth{C&zZqy_IQ3H4>*b^;j$tc+A>E6ny_nvtvwsGNjJ8xFLRK?B#Mex*fv8r*ObNE z|+oYuS=ZsWNZVE3&H`=KkMJ$9U z=`EmwP1T$9%-8OU2~6onr%0);A%W}M-p0CYQlH*SI{~q3NkRTiX2kLzWk!rNG=I&E z_Ebe9@f&~NxXD>CMio=E6Z}#F2HgJYhNf!~0L?-5QUz5rj^oLdM=T;&-%{FA$P@|Y zFuc~6Kzt0Z8FP3vl2`Ecy_m%4QMKSRKRSbF@0^{OH%LCerA5oET1q5o926(aDmX0g zlt^Y5%I9T%e#JobczmI%^z>jYLTPyeO8v6ILU6WvtLhwH3%2fmWa}(h3#nZ_NO(jb zhVMgLuS>u#9((7Z5m#L-&4tG>Dw2%Ps)}`>fAy;o3R{?*Z(pfczilFBP^KP7>W~nm z0}%NsB5LD_$n&A*6B}YW~71ia9`J9!{ z?X!Blowk7~d_f1u0Y1@qa>R$*F^-V~v%)jTUIry^=uINV80UXxrvWOUw_?2pn^he2 z=;~yv3A~OL-+GUW|Gq*w13e?j)iXdx{{cKPxHuYy^wnfPPx^gN`}vZi2sfx5pMj$- zWD7IH^VvfA_M|2WAoJ>ve9zO}iv%RCko4o}Y9{6SC8+X?dxT5hYP(#)DM5u!1%n5M za79J}ffIFkqJA}MhT&s|1s(B^k$E$a^lfxICDCR46m$2QA7}Q&d}<&?sI3%2GPO(| z6hiER;#^;Pc=>L>cL2qV!{&@Pb|s*Y6O5>L)Qnav_))W+%=7w2u=q<@sXF~|Xs{UT zIu6KzuCoe}GOOeZu9E?J!*O52374Srcw=?QEzh*4)*P`)<1}VqLhUM458ygPIUOvK zHKfXacte?3V3~ZmhW>bGoJy=k34ye&dM`B~*1jKRmZw9of+e_?MF>3H@1k@&Qvy>5 zD4(U|E1spq$OZ%s)_3wm5ec-&?o-}d)bwF&a}|b?0ZIbn_$78m8z+Lu0&;`=>3|#) zv+2p2?E`!Op$@VrNJAG0C@X^bHf#;&%*2Ye>xmD3HKGB5yAxyX8Lwbbm~t-lXreXa z?C!$MSKC>uewWCL(D!C>7KcUiag5N6B3dvyd-d0-r8wTxm`PruFc>j6VPeotfSM+p zly`_CbjJ3Rda&BGGsq3^u73b)1BK&Gl`m08%TKD3)r#>^6C3AN3-VcgRm0$qQHqLB z&7)DYh~YQ&txCoJS(2L9F()olxlg#l#>C+ei-%wyGJG!#XY5Z1-}SP1N>(NhOneJ0 z8|MYL2P%bI3w=X6{4Q(@(IkY)3&TneQ4dr*sZ`RRxtHJsm){d7y!%A=jj(5)e%uruU8;DK+@o3e<#2roZ2h*po2V+ZY=L85I9&NIrs#Q2=q377( zygo?U3|j7H;^bH(AiK>L@Xfg-lTM+OsQb}^6Cbj+z1GTrMkC`<4k1_D`dNjH+#lvbyQIS5m(VC z*lkJaCcXqI>mt9%?Db`$VDBdJkjdVD1B)Vi)H1s_lB>ic8)V0YjCIBcsY4>D?AiZ` zn1nCa78YheZc8an2a=K*LWnmAUo2ekWkJ_JFp=DM^oH_AprWo!XvBE9$7nik5DMbU zfC|3DI$504b75Um*tk}PoI?s{YwPzSj*;kZ2L7xJRZ->qs;eyNMYH zc@1q^fmD?nz)?492aSn3E<0(o*F-wH^K;+@1&c?)N5FLbnsH)>^4G&?;1KYKBls4S ziZ^<_RBuv&(O6|ie#pytU1pqX5%@shl%RWCk|p|+O=VLlKkAXJAqV&?VAan&zkU|h z9`_9rZPk9&JtqoQg$><9ZHBzXNf60)rk#BXQ4|-=ghU3pJXG2wC|Vj4-8(!%J-kQ; z=VoT(QsaapcwF$A^xR?)H>21sJJG!OIjb}9u0?UevYNdVoxTV(9_$+Z@xkwvOLNIe zV~SXfvSm#pXbOsH>oIIs4Le9ANH;OD%+W!!Vuw|1kfor@o-=NVGbAx-BtrSI)ww9w z3K{Km;Vl*g21V{Y$sxA^&6gm@VwV@)>-xoaE7u>SxxyZi^?JJ%{3~-wzL_38x>9yu!!~z8bod3{@9k3`v;1h6Q5`+x z-gIMDCszqoL7R02daBBv#SJzWy8;xxnOOZ|`Sctf(RO#TziZW_JG)S3YGpl-S!pm_ zo-SGos2Fp+);R#dUAio9M_{*b9=|-tAZOBQQwjtMH*$G?jOt=X28l%M(sBHayAEC- z@^!syq_?8TJGh)Q`}$n?%c`T|47S*Axd0?8yP60Sm8n(KE50rWvJ+u?%de5d^JZ4) z4E6%2gRR$+^K7iaj_J9S+Of5)74YgN%0Wi-J$#5g(Z|rc(2$UH^hR!`L}w!te~Xb_ z@=#S^&6VfVOF0*U@uZge>N0Zzn50D5x%TgB+anb^(3g~SP3FQ~a>OfDU+ zBAiWa^%ueQ7$|C@qT0GYCEx{oROPV+nNZ&p5QE&@S8X*h7S{Ce^U3#6RN+zV<{%KY zD-^KpF9NUB76GNWXJbRbJ!d5e8zBJ)_& zwgPQfNmUhJNJ+lkH?|OvbaQ65t~aEQ;BFAAQet4Lm@2F-LwWL1Di7JmW^9=Ltic?6 zwvuZR<$M~D+#8YlS#~FvwMG%<5GeX~*q;ScW(XRFIpCMR@6+}3WHH1c*Jh0F3AUYo`4SiMmtJ3(_?c0&-pFzZrEzX{_j1ng zQtETgc7FG36Q{YM2j!Q$K7SMHyCqWhR9=SL%i-kv4^*Dnx~!7=Fj0gQnF0H3k~!Kt z{{l5GLU3_`B}&N2XyJg5Ex3Bj0g;>aCzWb{h6e2XSSdJdNCN5B>pBs0eMA3td{Fca zP3sh?*N^dSdZf#kU5B&*`!F*TLx?5Ma$2H$sg|^gNfdqv1?QD_nJ){r#*N!uXVh)O z9UAG!J)ALlCK_?i2e}MFZ%sB}bggdrxi2yVH*Q-;0aAV(>$SeDcFHBvarjR#`#(;` zE~F3JK99NpzXmY)|9j#|NBhsjQ_k5+pGrwm$3$P(j!M>E$L@Fgr@6MFK9!=e-sclv zItE%QVSQsmBRgzbMp`O9OEXIwSu1T_eJXx^2V-4*AscOHDqdqdTPb}TK1*{eOACDq zJ8p)r|DHN&LUOm~_0Tmbr!znRjHVqJe0L!{$V zUkFq*kZC)_Falft1o31Xc(Ngx%Q9msk?vP)!k>DK0{CF*4gtdFqG<=rV|{lo_tftP zt7_~AEGxWG_&-IOAwXSfcaq&I4P0*?ulLA0+@3$sW*xk5fC#^WH znQqm!21}RuEGIEWGyDF90&W|)KN>|fo_vh{9Lv=Bt4Ydy=9r4dI2YaTj zt_oEYDubCv)?-$7%Aq_NC`U=1NbENZLqxhyhahsoYdVKGXvzKHdrr2o0-zfhi5N^O zFt1%s^>&q$q&&4=*ROM<1NY<&IXyX#U+iBrI#|?hjFMXD6Iw1tyZtWmYJ^j}G!@NT zoPr!3iJ+!hXp*JPo?m@LJ75iPcKZtJ<}ye_S|qT*9yM0cizOZ@ldZ)w zp_$B=8c3fH>Rs-ez4@5-ggiOJ!VCk8N6y1o)0F9{+Ae?9eLO!+UToIoo=v zbm&>tEj|0dc9t78yTvXfb<~e?jS~Efv6~Y;(XnDML7}T^c)u;_UZ_F7w@lr*^YC!F z0Vi!&6f|^s!5au=T5Y{Ps=eq-rDdIIpjr*gUnp@S)k8i-oohl%y(01EZiO%j+<^FbmwvtP% zqM=ctPH7W58_ZW6KBG}27FPzBr-zG6 zi$>+ahVJ6Z?Cfk`C^8WtA+2e*O${{*i!y0^cSdad(7n1zC*Jdf^kL6ym_~~oiDxJp zlSLYvV@0a_T8lkdh+t0jReNW6;O|hgWL+B{AFoh~h{WmsjKB+{@o}-*Lk-_O>_BH(JwA_AUg29yg)lTixd*dhQ673;f_N_?k0P> zJ6Sk+xwpcc!i-RA0vY1+43-q@#HMpB7XretpR>ZQ`)m6?PFmhWT znLC;JwDfC&$1gT0!cusz$vbCjH|g$3o>$Zd+=)?BHg z_BJhS~B)y5yRxe!#}qB|7`>OxfA|g`LFH2Z|>i}ygrJjM;7Bo$fU_MDi%%%k%6~c ztE;Q``Z{;^1aq}*x(Go2*xCPm!~gF2x1QjC8TeP1@m&>Lp(E`5uB)zlUg~J8A%XoI=H@K4S-PM!$FNX`G4_}jvWo4nwn5)fmhg?+>_TwdvQaG|(C@q!B4aCI%cYjPN-@lYdNe^iIfan2ne@L^jqY*FDI9buW$ z1Q`o!a+WzfN8M0uZ+-VEcMFdG7|2cT#FP8xt+hx+bG?zI)s%q~!Lj-MkEr|hiK9(AA~og!vf)(+u2C#9K^-K==>a;yf) z{X3%sSpK0huGK?cP93;mu=WE_(osl`o^ggUrcY#x-4iP-}sP^~M<8uF|& zT2}5ZOg>zH+YnaPP*<1))VUU8iK$kt5EioDwXOHP&sXZ{bh<8~wvNkFcz33Jq+`6q zuCZ!x<$U>V-^W`NEH?bk{%QrIq$=n1 zU*xB^?|IC)MNNTH49n=(Ls!-c8%2_f;^;(_LxDELyQ|$Fp6-1g?;NDe221tz(tFb8 zo}|-NNPPkw(G1Z$Sbk+Y?>jP!Ie&r7t?LlNJHKJu77KRGnN}rbM-SE`&c&5wEa|lb zLLw_PPJ2qvAg@2hyoLSx_-u;4Hx=e|=H5vBh>KRTriXY$(42tJquNOsmrRBvu|16G zB_h7+ff5jdfmL}jVv@$AJHL5y>alaKfi?p#azz}il$~M6TH-Qm#9?u(yaUbEfn%?D zF~c1o5I~aR`TjoEhf=^}LLMo7va&skKA+@Um`jO6OYs)AXLS$rFo}6^aYT#XT@fG~ zA5|~6bVsejOEK^AgT4eQ@a~8qanD`a7zn({@(X@lwEJvfX|q<&?L3vfDziCEQ3^l2 zp$27|DP)MvW&*7`yLmXoG_b3dIHXp^$6{#;`i0s<<`Jr1hrr=85gG?hse@_m{A?># zAfkQ7<7Y(5(79Q^4WH%CdzdLz(zdTk5PB+FOizVmH6mYWLI_!TFm~lt8q2HEv{;^4 z-loHln_ZgID*@sdyiL)m@lxpaxvEk5qL|JU;wDXE4J*;`{QxCXy)FKUs)sSrL|?pB z_JJLOXn<`!N_^{K|5dCDEyDPrB(bvotC=2ttMkF&iMRGc(Mc;g<5YQ(dvN>D1zI$e zfyL3*W%NL`@WgXFjXAM&u@40_4E3d(Y+8{I&HI)li3)9hGHpkrZdy%ZBDaw%p6)Ta zhlgUwredt;cbwsoS`J3yC|HTRMJJx)wT(q_zV7{iR^t-Pv&-#H%Nt;)@N5mh8w^$Q zHhithcvM{=lb(aReu>)bdafQ*sGNYMK*W^SMe2)mB4q&9R+-#*3p;(lgbH%v#ukkM?_}&kVr=QE;+P!DQA4R;Nk1?L;eH%Xpm1%k-LM{HJS5tUdyNQiG1E1U(>x3m z?80OaIa4Y72&ow2*A*{4q>MY?Rd5Y?&$RE>+zYx+rq0t8(ZYit?`1) zNb7Q3ySRr1vZd+BTUJ1DVLY!Ra(XJxXL^dx5fw~MuAXZ&Ti=sA4fV6Iu!;?I&h4$A zU-ACX-9=mJg1p&p{QxkMa{lpeTr1N*&v^g$6C4xs|6g}#pOpUNJ2Xbd|8lJJ6pOP* z|8+%$S?ot^-_4C3JjZKb;^Gvaz$gks-=|k59I6v0+$)A>KNn9!o(^G~5C+SdC{Pf! zE7BcZ)eDxOLa+92Bx)L<6%;iTxp^Alnvw6?vBI&T`sDGE&3=yAw_q`G-n`Nf6pf}JB}xito^WkcIuFJ33QM;lKN zPNHjnJbyD(G?VH(r)!xK$#sRhI(`2ejI-<>a&LaHe?wopCc*w!0`yZZgrg%JIJNyD zqP}|>$#EOEx6M-MR;=qZMTdIWLf!LSlU$MYhu*N-z|2RUAU276u~m2jYfN0r=hERv zM{+h7LHO%`7Q9II>%o6~;Y70kSw4F`>4w<`Y-MctS8Rp) zl10_i6?PE^Tl;O#KdSW;)(FRyQk}-hq8&e8UoS8Cq7?}*7&Gt^gz|%DC^%HX(S^iL zlE^;0ZYKAOk$a15c@UMqIgOXLEr+deocQfTo|>OTGik0fl-sVn3v7UHac#zU_MvHF zS8mGZ+o}{^R%Z$nGT1a;zC{^hoaaRm?MDAu{-NYQ)Xj_O{AbyXekf_PFz|z6ad)7R%l#9>@UA)^?v?UYgB#ik zW!z9JXG43wNuW{MJK1%~@1Z?YQ+|C3^^XkL-Ld#jjkskjkbTIwf3^$kXEpvVcK|;e z(!dI%guz5mi(>qEGHj-}^;xlf^eM`g1o%Hq`G=POY3M&~|5^FnYpLSARtJTqAvbhV zV83{oBc}22^aScaSroG%e!_3W*tR-%ct02|9`gZ5WQ2xM#4`KYZNk`QR8lMA0iR~o zW8qW}INb|xH^aINNyVMw?Bk#!^f}E)gevNlkl8!vuyg*}-kY}4a$)T0MDJK2H*&ts zQakI?yld_2lgvhE{`sj{@&Gg$`pV5HPcXcO@Ci%CbK${O4@55E(BQ=C##6!|O-YXP zMmIMOj!?k-glW_hGVO4qah~6$xgy3+yC!7jfN4?z+XJii-E8a_3*=t5*Bbr;@ih)Xx0Q!#=(wosC zv=%i%4_=<0$LG@#I77Vyhf~oj>?g%8_s$9ph8t+#>yI=kLIu?WH1~OY^$+*Z6NcTB zRdqP%OpHtxb&+)ywmm726S98EAMeK3eUc6q54W=K=fe)L4i?vzaE0vgG`Z?Y4)x9X zuOpDOAKq>L>ApY?9LBGHo6DeAzed3NC51y=706qdX2Ot}Y!p+QAZI+7UN_O&EUzw} z%*-`NU*1MI4g~B~a@RcluLf2^bXY@9*6%uAC4DJ_mcJJ_(%`?}7tal}_La073`-KD zJCW84Z2K+5vUQ5LcAtHN{rp5vk*ohGDyMg|^59tsSVYE4_|6`;bf*!vF}@%rJr!io z*)x+8Bii4_@o~JrY>t;g5ic6im4oe?6BJaAGF$I7=e*U}lM#K67IOznzR&bFmV73E ze~p7{Iy=1HvqGk$5>gssP1D(IY@5>&dJ-Q=nQG(FJE^^L4#u9~+vWojAHWE5|0%`w zFrZ>)B}GGe%QedN?R;pS z|Lq=?iIIl!U++=B*`@9^f3q?jNl74AjtOjgz>R=6gpL95#z*JH;pWXg?LKP>w53vy zTXD5Cwlp@TdH_}t^lrf6{sHz=SQr!x$GaC#qRkMUiejaPU@3v&;-smlpYJLvUvm1x z(ap~6r}gf^%k9FA$IhFPMI+l60IjVl=`R4>s{jDoAOHZ?Kmb8#0HBUyTpyma$>by? zVD{fY&G+{9Vjo;y*erzSR<054NJCU{!?YaTX@FGj<7ZU6vl;Y_h?$W&t^agqU2^#^J% z-!q*hgHiW<(psaM3V*fq=hQ@(jMC5JCD(q;q{H8uSZ_y#I@vrOkd1rP98)|yN! z(tnPx>`T!Lu<3hl(0#vIZH0nGoN=+H=={_O0I+aqQ2-H5G6M_?1Ymn=0r20L1^6xR zZ|Si=2mdBLKriGUt-s6l+4`-T&(hTsr0b0?i-|J=iwv*% z1amW9+<)EVRqR8|9XV47Zf;M2ovGS!Q{6BR-M-oBErQ0j_{DTHa*)q|-&Ay|Zjn6~30#5!*FXX6VX_w7K>A?$#Ih!b)t&Tv(%g;mh7D9VZ z{e@ydzMQzke7I}{YCuNB96WFKXG&)#axq))Rrei}P_GNs#H zaJ!z~J)}x;h5S^uS=Jb_N zO@y5>Mz@$(mEuT}cBIok@YyF=oi!Hw_`IOC&e=VpXr}v644suGLcPuF`l$#i&6gy- zIy$dJEk2GXsZ~5@g1`}U3%!K-X4*^~)9k7Uo5~VO;VuT^Zr^gcNg!?tjf&nhuVoT2 zM616*x5uZuYr_(PNuEae@UY&Jg;CYfWNIB2#kS(vf&X(@m#)L)NPs|F!+Hk{L9#c@ z-Pc-y_$f2@t}xZb!`aj#T7@>yb6jT`=BpNALQ)yPtvq#LRxhI72HC{YV4iYo5_#DfQ$DHHaeFjvMCiST zTpn+{%kB zq1ZSOqPtuitw*teW74Y%kO`z4-A8`DPcwaZ2ObI1eHb!8^1VNBMYdHA^LK(wy^#|# zwL@loMkW%e;-6gOPO@oI!;d6a7^u(>rolb`@3Ot4^2JxIb-ySBgX7gZHN_% z?nLWBhfSSCmEo1R+#jt6DXPxGQ{Ql=4-611q>x%0~HbSe)X}_{w zc6wDvGS%}E+*AsMu3(v9G{zYp)Xq^>Rba^WUM^@`(Q0%{T0raw$&MqNysflR8?Y)D z3`zY2j)^_rJJD(ch0HVOa=Um|xfhvba_w7IRl(&vGBSzzaDqZZ*dwmwnz{?NtN8k* z;xXP%==O9M?(coCRI}jo+GN9@nZ_H$S?c>Z2$F_T*C74C6Ib4*`p%1l=a<8hyxP3T z^C!>k8c{*2$zhmawoO{ZRbuY~)b`3KOE>w3XgO1PDi^j7(Rv~MTug0qG>DL`z_)=M zb|Fys^7}xK>kZH~!kWCL6jscqlLhAuhmHW#yE4KGK?2THPN9TWxrG}UU6Q@jVXzPv z6=RCg(}}8hO#6911u??4w49bIn+VJP_Pou`OG%~yr(D>z|C>+|m8xrBbeUHpV+Kg! z46_-EwN^8>1@`RW*t|izzH!YgSD}!)Y=g{hM37Oh6Sy@{_JNuymaiaL!Kj!EDUD*U z{=Bv$^EL?YXwaJSl*MQyGDI_ZNE<$CctSA(!x04(as>#yVAA>m*u=w5WK5D(&e$T~ z3I^EfjxON4h7QP56vW0xu(aR8molU3Cny zeL`VelDiU_y)T660apkuXqM@riTnD)M0{Fvrs64pr5}>-9fXXr5^#kYy2~+@-K@S% zS652zr)c%4g|E+Z-w@U9RDcEUJtfg4i~S&3YrEKMtQ5VxV1iSX-Eo~!bGEm25Y{X| zeNAAzItqBU7hhkpAZ?{aK%0iC;HqCR%X#v(9%KW!>{22{JL}9KE`vZNK60OKX|Gxu zM#Oo)Dg>SSycVzo!-b+9c=Kpk=>f4cyt6qG+IK$2Z;|22>)lPQ$uI=FLd){-*ZQX! zLz05}KoM<$k+VjP2t@^HOp&zKws)60>0d|4R$Eh#c=d+qd3vSB<|?|H>!};c4TEZ^ zXeHo=4ycEmhM^bcfQ}uQU{0YFjdPw(V|I;1Dn02{5_lJj=-AXBn|N2bt!kFjiH`4> zc1cNWBnps|MY8A4Tc!h-LO*vz8mA>X#?Q61%Di_`@km%|qdE}C@!u=R>bXe;txs3_ zjJ=q|S}9DAr4uSv`g1w_2xm?kFttyuL6lo3V$evCS=2?r(NuB>LIb5WOm!W@i%7kZ z@4EJ>jmrTY{k=%F?CJ!`cBvKf1ipQUIly(oD5HCo>p+RJJ zo^CPp3Sk?>XRvSl9dl%`z)ZlZ{nW>)dIZC|NhOpZsL4C)$~ZlPr?7k^?%TqMLP(Ph z&H=YRasu|}r2bDgV4Z^>G5}SPD4sh7zSEa)-e2*qP0rs73G5xwk?m6MEE|FQL(^?* zj^!7W#%aF||0=gsSf1Uk1D}Ibzj&ROEDRN=SJUSxGn3@|_>mo`%nT;(1eCZKuy3&_P=P{ThUph1Yk#Y7f*}=gxa$KIhbb zUqU}?=S#+!S`KqIvbVX&I(q|83^AToUDebCVxlLP3?7e!@3d)|^CzRnw(ycc zt=|_$!qXUrNbU?0%;l&d%&#}R{Ba+IXW_-FX5r{No|X+W$#;@7lzJ0)6*HK~W!Z-d zg(7y5Nu6;qpowog{8H#jOI}C0a~U<3>}=n%5v9U_avP{Xz;z>iwv>>8SWHWPD0OZ@ zs0rmp*g5WwID9ObSC2D7h$jf+;<>CYIwu1A(3}gYRLtAidUZw2W*w4oDs3iw+#V8Ey1-hzuC*zAo}bem+;`9h4}&7l$S${2gRR( zfi|zj6zrZ6*gQ7`4wwY)*JREVG?e-J{qxtIsQV29{}46J$hqBa4D; z7mDy+N4-F;TNk5g@ytp)m1Y~{l{E%6U6PFKJL9TT)sNfquhk$ogG>7wWuF=KrS7WH zmYD20)G5?atR^eUCI}X}BU@zoj&!L-&yRR~-_K){7RdAi5vusjG1)$FXzTEL` z8zH^GnE*8CPewTD3JO+km3=WyzkCv-j-kC`8D;*d=k)$mI;}?wc#sUlkTm+k8VF+K z+>YURR9V|?7&n$@L*a*OzT;uOEQJyl3{#cY@N$?!D;Yb}s#9JcXaho#L#A2tG+U7T zm(PiNGprcC5~2{1zQOH}PYLLZzVD$x49ue#pJPZ&ch3mQP3U5${=B_!Tm84OkO8?2 zNu0mOvgWj!SLuEz2t7Dke}v%6glKxm(V6uy>V690fzQzLz(hvw=q=f=H|gnYs`21; z7eCXa1@w82INLE1j}XD%(uE7~R7xRlCsBObE=Fo!3NiUSK^WQ*nhLmn?6VVy(5!b_ zj@PiLO<#^pGj4$K!|R?f)Rq5U7)-U6(urfnN01c6No zZWW}IZlt?Wx*G&Rx~022C8Znb?rxOs?v(D5`ql=Y`+4s7d-MO_5068bwP(f5TyxEN zUgtGy%b)->WU^E>3GkViD|*-$#UCONrv}pi6yuI2EIU5)#PD+{Qhm#JVR*Skjab{N ztP61~v^OvSwF67OJ9m;wBvRjAz^I#U`mj|!O_dWY>&njY|>oZY6-9l z%dYORO>(c_b_R?HD8%cdO%e;Abnn-Ge-fL`ZwJd@br{jL7uxc{$Tx;a;^wy2UB88)(O7>y?fPJ(SVPryjHOc8mC3No zctr3@{3`tWqD+42uo+mL=ECWD5~ZAOsmx2PzJZ>xUkv?Rq&TM>F_TgArCXcBXh(^-? zs*nqTk9xyem!M*L+6mTP#4ck4R&6tK>7yxDP9qv`bw$gF%+oR%2D*Z0I*g*rK>LL? zkKgX)l`0<*^-f(xrUds4EPgfGOYOfZ>_jB%Oe~a)tbaRKoZJ*FE8SQhM`yNRoAOk_*iN&aOD6k@K@vDqxV`ei+&9=l^OTRKj?>mX3XL zF>jOGMR>h%f=dRs0#Cv&Teyc`wph-Hk#!gV40P7d5hcm$nb$P(u$HikC7bF_+KlEx zMnKcr;lDez)HRoZvLF?`m9(o-sIB!AZ=8+^M6 zS~*X*uMHQ#ejNp4iMhYcn0@z&!}bI9YrycA^43NrxD=9LbKqAKh9UqpoW*0~9de8o2Png|BGLEBggkNI-x zDhuY~~LD67u{xE4gqdLCoTnmMTgDFJerECOx{#Xc_8jCMgc{{-oY zah?Vsj)WVu8u{5-{;ifd6t=1Hr`?v4+s|HjE1b` z{ajpNb&1!On1QM&F)q)OIAU{GO9TR8%zEVBZB=;1)>+zg!L9GrlpQf7hiD>W>ha?^ z8Pt)sN4eS+eCV0U^sSm41{uetkdb&6j9^#fwrq@ zV)1@Tq`f|`<-Oj-d>1DD@W!pQc}A-%oPyVjoc3th0b#Uh0Ev9Y4L|QKpI5to?wMrj zuo-P2eg&J`-6tmQcd&Hd;=M|LwT@t$w_SNCXuz&31y@rC&T3AFtVoLn`(I~-ylQ5X zbz9QDD4gs}Be>f))4Q(an*R}W&g9jKKCljud|-V*!qB&Tvr(D$=3N_c&<5#&QYAK3 z4!q5(9+h!JSOY?>I^MuK_x#)_i$Oh`ln?ne*~}ipFWR|A|ISRF(oN6teL=n(_HV~! z8eJ#oh!}$}k!CF$=uoF6nSWX72yGz|=JBbN%6x5ZE`i8qKG{8YE*QD{WkzyJ zt|PP3c)ALU5S_F;M2u3~NUZ52D?N9n64*VNwNJfgzbB59xBPuy@5_pKEXj{pW22#X zW2S5zD=ZmK<~%+ZsfF-qqn9_u0+oPAk_&}_Q<>U_cLw~3tMWAQi!X}VtH!(dF^aNk`A_-EBP`hiyOS0C%s#$hK1Q^*C(~udgxaOj2%2GGR-j zcc46PR2sGcMhR$lhkN=9r`717gnV_Cozi+xwM z;3i$sgZ>)5JBdGezu7v|@6Z$5tnvD%UMk5lYe~fM-TLp-C*s z;)>U37mCR_lLxBVu6o8aksg<*nlPv*9??Hj#*Cy`&eXSXXG)3q2v^dn{Bah84>>{v z%wug|`k4TYw31)3>tUCPqw7u`1#q)v6%mU#3 zTNQqW6-tDFE$CJe`(ArVzRm9kg5Muj8Z4{!4mM}1X#?L16jJF<*>w9Skh5y+k5o0a zE5yUTsK55x1qft*{SVva;418Vq&9Q~B$YUa&G z+Qtm~&#*_c2B4oY&ciBx;ZX?`3Xox0BO7_n|IWJY#%T#32!qCWDjzeQXXthe^L(Cl zYSNk7e_h7*epfPKRM)Ot(|9aIJg3%#n@4+P=%obVj>Uvnrzi<0zxsh-pO?5ldU5r0LHPOb? z_pkNxy_^YxT^UvgzDgY@GtxSqAiR3>)x4`Zo1cb3h=$-+EJpTQF4k8yMEuEZUjpF; zT_ETvC(`7-dO(Vwvle-VuL&=vl3?kkTfI3_UsiqGkV=SdkG03UtDiYk zP~y8X=qOO=OZ$%k9$&!rrnm&FZ}=Npk|o*zqwm4e-`~l9bjwj80|X9HJC?Dz@#lvM zpO4Ak%I71W%g8!EN0NW7)0B{^F80RRrN_URVwH^o2489HK;%}F5{L)txbfH~!o4_U zVkn4+Z5M^PM64S!XCavwj%y|oWx|plz}_~ANR_WUo#j z>R_~e-F=Wz0^V0924{saHi-aF4F{?2==vPGYd!8Mgp z!x-{)?fWm3o2baulc=@1c? zqN<#XwEp@2(|o2bRz0!|w66Niu}DD59XgAYg-(Cw)GPDvnc;^rpM!(ntbLZXUcvv` zDko3j-G58V+i-cZdgNE%81KGoE(q5oCpyD+6!1|az5+xa@YM05Wmaf4Tw>%MLNOGd zsv08Yk|e?oS3%#@SSlIs)J96p9|v=QPp7T?b__;Hs7Q@?ULrK+>!?>iDkAf}80a}(p z>2qIbL3Sa?IU$*X7xMZL*K!c;_Eh!dx3nY=96HKzqLLXg9L&se1`oU^3|b!;B%j^| zk1NHvbS&bo3)HU5*IcQ`AX{eHlP{V|lXKltJo%Gzrc-g*=H9wBqLWKaod`_TysKoIdSKG0zEHyr5D?ceq z_GuSFDYxOu6QYst;!l}Si3lXFd{14A=H6PeK-q*^(|aV(yR7OVF}1xml0Os3VFraL z$otTI6((aV?p4e!8F3l+$O#z8CDv3XoqubID5UmrGfAV~_sz!S&N1C-W2GyS3*k>VrCeY3_Gu74A_-CWIu`9c^*eX+5ONO13otsRacW?7*DkW0FY<1Um4+>NqJ{QhK z*jZBy~u$X3YE~2J-tic_LE9Mq&tj0*dbH{K+U_#rW%|C(M!!X6hI2vu~CT4m|ND{B{a_B6b!C;}9j;JH2agwJ{b(=eP24 zYa~|k_H*;3+ed6=teMV$y^I<$+zN3v*BK^TmC#DvE{GQUs?X1+v#vLQ$VPc6)A|KbV~kWJ~#=bE$Oc2?gLAB#guW;9GPRgtC1$onEm&Nb3GJCxL` z3_{@u8f%E79N{X?N`z|>X2-%I&vIr%Xw@O3_+>wBt3dEG&wgGp0|c@%p|UQGF&BdQ zAZ-=ltJ?Att`3#%%Z5KZwQO37{CiFzKB{dl&TG#ko=GX&=BwAe`m0;msdP_+)M|S! zhV||GYU#8?4O^dz9};Dx;(XRzU|>&~A9B`m;Fs!P!e%tnlRw^t(nENahvEb;X@HoP z=Ka*AxQS1r4tAyQ$FHmbpEa+(dJDwTBoqltGs6_+FxVtgP}Ba2`sLAARR{G*|=L1|=!vAey>>7hhNf}T3eN+TsX*-eJ?oFYPRWWT<=f=4qvB+uB? z`jBOmjv<}-ow8i`Z9j2cuQI&ClAStKo~H%#>o$7EFLd4K)F+JUHzGpTFU%br0<0uH zjtI~SfAG_5khT`om>P5VA$M_Yrer57MX`1N+HoB3gzlU3?4U%G-)Q6W3`e?5ZH2|r*nufWHrlw-v#5<4cJi8u zfX!#l=cz$b5|j>_+^Z3m73gj+`)lFXhQy6oD~h<7BK1wSxEsvmY_0A}&=|h#6v?3` z*|1g}S8%Asq8nJ3YJXe3dE%lyGqY==5s?+wqWHp%^%FV?7mBFjTGN1^-SaGSX_Gj$ z?32O|Cbg+a$!?r(TjW-oHYWE!f8HA()4ryr%G)6?_mS)#LL+-l?B}NyAk8P%V5X0| zcmpCnoGtlxR_uS-AoE{lansW=viu{Bo0*LbvX}P%)vFL5ZuQ^J<9^4;@Ha%Um*m7N zuiNIQ`J@4c@}uZj@YzY(a6uW4QBk(DaaOI43XV~nFH&|)Pz13yb>_321f0O}vJbr3 z`OAeiOk<)x+@-w65*O_Sm*QUke2r4fa8GU30qaf*Tq7t`iooEe7Hk zHW8qq{{EBt#w^9x{MkOKfLyfHO84!2NGEvByh)mY`h|T zGJUpIal3bar5%wzI*7tf;C&HW)S2yu>Ri-b*r|QJ_a3HmwlRfuVXO3jne0W^pl~-{ z;#bC-(M3?~eSOoL+}_fA#KA`0VPChrXMD2t%_eeZQklN)3cj1p2bczYPvD;yUcZl( zGq*--xITbwl4S}`i}M0&xb9ZLtVZr5icsRcRL_%tlKfpg#Q~T6+XqvQ6(#*){#x)y z2d(3V)>y}RoCvZ)j>oBr&^lHY_NM9Nbf+ zLZ!JJ8S{SbhJ;*4YR5Y>dU1w&lYfn6QyG4Baksgk!nI#m_|Z|K5CJcU^X%+( zqVyONl}d474YC;W zHS95MMxx5OeUPU?4wEUx7nfqcP>V&L z3J0Q&y3bJunZ`<<)it=qX}{ODGN+;8sywQE776aTAJ2pvw(7i;bVyLT_fvp*upE|4 z)c$JXPFIa8`%Os-0%WM1AbZNSIi=zcGdRI|V8VmFsv5o1)hX)mwsDAoF9G|vA#E0LW^8z|6G!~27pO4_+^(w}oOX8x z!y0>#6(F3Q&>3;($T1;;VMWk|h#Mm__(Rxsb;@6U@FdF<39;4uOtt3E8RS9apN_P8 z>2MdLs%7la$@{G5JqA}{O=I^t;jUl_q%swqDRlvG8_0Eh6hY3?-P#0*=>&)y63+zr zp7kXV`Fj!#!JzPhqF|_hCD^4OrSr)rUo?GI{E0uJ42tq3l25tFNyidchs$$jM%#1H z;zfM8QQqLJQ+3)gjDnb8#fKoyHq}%tA`dWfo3p2}`i5}nCv&4Kv|0ib;0cESTb;nC zH~cinJU-dhmRg3%z)oQo4IT6JM2|H6qoeMn`eI$TUp{gPr~IVnRl~(B3(DS=ncFxT z+j-AxXPeC#8)rWM^|ZqVmTS9u^wLr1h3k>HPS80;vjFZh8<$1-qIWIFS_?!nA)8e{ zeay4EETf@)#L_mHs0?{wp9CimXD_n(CL#EUwK7o+dp>V}=BF;zv)!%$KSm8VSt1Ck zwEy(w=!k%&=v}HAd5tfzDgjc&P#Y7K3JB;SMGF+M2^g7hK~vxpU}!$1SAqZh<>?Ul zL?--+YAUpWhiobwFx0yt>9@I;oYR#n_tjYVhrpk5NvclQ92R%8K7IHT z8Tr-3dGlNCfpalUS4}GO&nR8ww$3dJ=uBeh#@}_>+?=Ur5ym zpm+EnpBuUpC1E1#GFY*e2g%ZzN92&Oaiy7dTMX=`V*$31cX*juY`8r~%sVf8=<}sQ z8nk#R=T$Cn%vvrs{pUz?AI5u~;(^URnrN}s7d^wCF?ewcD@7%)QT+3=$}VY%dqNci zf{xOXpGjNeG$>;EPkg=rUE_TyVQ}3U%$zu#Wles`&j#t_5_j6Daxh?k1xujy0=NgO zg#8zL9D=IgB_Hw>*yx{xCx;WEGpD?qA;=Mbn2b-w0Fv5p)nkn4(^9NH< zWvvW*unkYSYcj|wGkY_-BFonGnQh99F76 zc2P#4EV5_uc-e#RIb1MZiuZ+dB$6@pV-<`1Qpd_v(Px!txv6mLl`Vx`@{0jEE+62i zOXi7c#=m8Ov2IjNsd3VQwZSHz-sd9can{Q<7LTj$apcZI+2&9WEf@tiKkvCM%(3|( zG!9=PpaENrEdT;soNw&g>dhEFmj4Jx7rmbY~vww3ONp+}m_c9x2zCvn2T<*@0^OtZ? zzAoO>jg|EnrP&oJWbqB(h>60>Ix0P0O)5VQKF;7Eec7Xj_Z6>+E@!tR_`s}!e3sE_ z7RF%U<=V>{A^#>f@#&Q$j$Gb*BKB>!LQ_!UR`^ymFjt#q^?Y z2>Y{{XO5oip;cRngp{lzZnyRBd~-VQkQ-SQxaG8_3SB$(uEGWBzQ5=>tZlN9l9f~9 zJ%}=mua$siG)6w=?!!6%>?;0kQ~NgZaQK$>)8*_C{z4p1!M%sA#PD&4g-bAnD80YJ zb0ACjWGMM5eALuP7w>FJ%OCe%#lz>a8#qhLQDOH*KIdiy;zpAre>m!*Hq}|}HEsOz z2>sKt^Ou=5EZTyP2;)pjJ88dLA<^jc=A!(RX9#bX^}B%m0W*RX_xfNs*r6kaxoi6D z2`iM*>9(KqlDF)P9E+Y=t+#;^EwSBzBKa!_nidy&XFpZr=<(XuB!W;`1#~JtT@^PA=4I$6ct2Zg-kj>@ zkU)x|-@cuE_IWsWhap}G#6;>lo8fczUOec_AhX(x!6c^t0LO;@)Y+3t%lV`#VMmKc z_l6&dyYO~YZSMIw#}C`DJmsHV|t|!+1LiEriM15-~&*7Ljh3 zOd-mCk%+#aSqG++_f823HT7%-s8!mk#!R z8PE2sQYtwUmJfv5P;h)~ud{tY+>2U#bk!X0wW8H!{k*^Wpv@yNwuar`;^n}`dgY4RFarJbls13)dh0(^Y@mTnEnHy`X;5$g?TaOeq$jFwv&n&PX`IOpHH=PyF$?R!UrX zpR#A)>3!ez?aSw|TZ$X!3kRUcY-dtI9J}#~Lj`0tP_&Bmx7vwATA#|p9`R8m3k^Ig z3ms48VGilJTU8zzJyvqpi|?~z$e&NMhxNziR9}9vKFr7G@d5X}tGVf5R;WDGJ@g=U z@uIww$$%T3Xq)rvCQ}W_nI+B3fqP&f_x(*To)sg1d?#c|{gRve_v+Z?Y?HJCC@$cr z+WGVndXi%>anxYB(Qp2|I6z4rG;j5uN?H;Gj9Bu_rE0*--)-ii+-fNRYP>VHZ7v(_ zwWV}2S@y8Oqa0DXEn91^)n`&gP&q8m)EC1V_q0FDHdh#h;mwFT;}JlBatA{}Q9oKi z#lmgf1Y=z9yhs}~faH%wD)JokuZN+Y0>G|^ln)kw`hTt409_$Ktl)(mg300qF+x#G zBmJiZGk>BPe6!66>|xy?yZuZUQ9g15D3Na#+wyDi7{}5Ne(}$-t#9-!o%aostsVd} z04ha2VAz!hR}*u;vpc=0B09fl?Kw9Y*g9WEo(ic+wD zI<^9&ZhR##0GRQZPyn17J`CeD_6MIrSd)PVd@3BIolpSl`QI!MKn4mjlKfW=R+{vW zFm9hx7y`*Ag@>;LA^2^ymOHAk_$9!srmTzbnGPts0II>9gv0;yI&l2Y0&BugQ2>`O zq2KD#S)=0{J4t`B8{lEWpVv^CI&H0J7p6K6)NL=SVP#H?T1e6!jl(rEZa~8sIIiZO zmMz%|20tzY=Tzg=a0vqdfGw&Yo$!CnOvrZGqfHP%kr;9E0-^Ob@UdtloSj1UeEI#f zcY(WCu>n9z`9V)LRgeMGRAq&nfS5ki)~W;nh(2J{rUz_Tu(U)8p|AhHa93Lht2s@F zz$5VYu?N8HAxjx*4LX`C0pgvo(K0_L@GzG+xjvvHfDES(G=KF39T9w};C(jJ{B_%m z-HH$oc&I~`5hR+9cHlAZgh!x&sq^qF6|0Kme>$z=$pavuWXO3s8A1qC?Vmy5uy*u% z>>fEBz!URGmm6nOZx^7Fy})Mu6%786o?O}Ter(R`8SoGTR)w@k6ELd0 zpuGE#&!jNa;ZHa)Yy?~5D1q){y={aaQ0D^?$t(gb_?KDm_t?Sz1H25(EPy5hB=*6d zJq9d7i2nC5^qh&AmgH4fokon?F^>Ii;k*sJ0WI+k?(~M1O zldA3+H6$m^?GOgX)cVu&^f)S9;oIDhaSWfE(QSKZiFac%(2Vj(w^Jv1s@tW^f@uen zxAMaEiFlD0!x^N*{Dov#6a2VYz`_wCJj`B6(AB(~_>y?&@5eaEuL8ro4HCe}~u5Q~$bW9beaO_v%E6kz4{))KU zR+28Nzwawf{R5^BjVMkN(WZ;MHWexD2vvOu?{pE+zk7EXfv}jd=~81Eo{}e^KXzxq z5j*C;AttbCT&WEIOu5KgxKtg9eF5i6A%pFp@?%3oXsx~!a$gwYiTZB2gTWvytSI(N z-0jUz>clL}k3odo(#ChrMdtIXZ?CYe-@FjW0^ekE)8Q#ZX#;Nw{wypEzRf+_tZ>FR zBcT2vHJ--s<98j1JZ)WmM0x8qf-bK(_rkC!trb`oH;xP8!uB6D3c7A!cNs`a=H8-rTwX`)8s4B&?y-0%0cMkl79W!7=Ft$WLPUh5qR%x?q2IE0~MG^B5;BwbncGYz$c+ zRxm3t=bxq3tN4m@-L|%}%4b$q%tw0s{r-HOP@P!>d46|skH16mq&NEI)`42gb%z7j zL3@bTjXW-U2H(#C(<+*s856@_E`?0Jycpg`=UZpY=60oxhAQE=q=p(JDO=P5-`gJl^fKT>Q4b{N@fh>C?^>8pEg=AsJo4lB zg8fMR8M;XVib-A{xRGqdU*yPzxzg;bY@T(|E=o&*YKtXtYn;0zG^ytafna-JS*?`a z?5TWQU=RUS4X01b5*ognuESWSEeH7Hg|p7L-ltXrX>i09Ll?@i2@D#JXZ`!C+9PeZ ztD(dkQd{SpeHv1Q$r-6&BvN%|*TVz%4%bb}io>vO&a&@~87prPaz1=AX=_u`$hd~T ztJxYQ*0{Z3C#{n-IeV_mv)6nFPG&qd;BCDfZsbnBru~Y;aywy%XV)~h&!gR9l5&8@ zd2O#40(#TW^T-wyE3;oWIcl|-yL?A;JG^@r2@dq?xMXVn#(f~Ue5#P?sj3{Kd~}ch zem8HZP2-jJPU*`uGW_@UG&^q-1L0k0e9eD5TuC`EUI6#Mynv+1@Bxx?zbd(^Z z=5*M-YbQK$Jp$aft7Sts%b77D!`JJdFcq%UbGKUZ#bKLCSkbEJ0cfn(eMM3rw1N}m zBhnFA2upEi-_mKKFB?=zhZJxU70+Cf{vE=S_7N+fD+vA%+bDgI8sur=g81f%9^yI2Nx;wo4`Gq5mjHPypy=n`GH#3LV>?X=lqbew@y!sz%@wbpekylJ+2T znh^l&iRMs+Oq;L1On)hk1Lu1rAwal8n@G*Rq?%kU*;D}fV+7&+TtWbN(^QH;r~%(N z(E}DMpn1g_i$oKHe{U`SCuY(JSjj`P#vV` zMCu74I-f)?@If5AYHW2Yl!T1#4~Mj+%d8R#d+XwxpYg*gL$r`b#P^K_;6(os`(adg zwjm}pX30RTAXfT_K=Rxo(W!Hiyst(uJu1z!GY!c9NIvh6%%7#hMWENOtQcuN)li`R z{17fCyJ!$_=afvcT=tr(dv zZUwxyeM5oxl0{6s*$SBh!+>v{s4q4-XH`!$Fh*N>C45Ij#pRNOP*s`@@g$2hbfPIP zA}{NY_R}Piv+MHavLqQ27%%cg+kxl}2kcAjjt~;22Ew0^gXj&ae`-v$`JFxJEMV?} z?~lUEW6i(mY5#Lfyh0l8z0o7c$a_{9ZqQ(W{as7{B%C zfFaLgRmjvB;U7*Bzt5?aj4sRiASq=qORxTOUB*WDO+`yg`Ncj3wLz11kr6p3_m*+I zLug=c#_t}%_4_uafFb_ROXCIKK}JP#Sr+8Zt5U#T>Ys8J4rA(Z{s4sr{80jJEcHcv zE^z6*ti#^dmW=1y&Sx=xozVgErcm9}6{>Xi_#7A{j-MTa>f3&kS94Moi)R|avJPaA zdrmr(T1;U<9(&$f9IYo{mncdNFP;)JcLpl7T%mNjdDaKPZLw^Qbif$6e*qZyE?QUm z3>3R)Sw+x9_cUuy`sF8Z1TUyEto$er8K8-PFu25u^C10W# z5T^AHMecuI7>bX`sVUH1@As~85od#lI{QW5;3&!Tm9m(8iv5_jJspZid1qhLfNzVa zhnDM86Dq4xCi!tZh`bROwCH zsL!%c>7}5yUO%TdGWNJGebB;o1*IV-x+`7&atKCM%MTl1c8_tN5?aJwIR^tMh~42sly?nr)_X%|Dv?yU2s*>ogEI6vF%bmX zVx9eIOjr^Ad505H*?hSDtj~H%>aRt}3gGSp6_0fJrZrb;4MpJ={802o0HAe9T9%ls zxme+LH#?`@?>(EAvo~iVxeS~<67eHl3z^(|XTO5!rcl~p;U=IUT`s|#V^5RW*NGhQ z``Qg0zl9Qc+UYPcaOojCKZ|LsPT;v7W4rjoh`O8oDIXxyJ%Q&d;A#KUh5@qv|93MZ z12i=tCL+xdU|BkVNYB_pffSL7MG@O}b;`BL?YM@8G9>({5Fv-Xri}47z)lVEBqH+jirlbi1qG30EM^+f&{zArOL zk;dd1IVWP2VZ6&D`dIxoxg!*#UnNivFY_c9Tav%Lk*w^qE(KSKP|8TCg#Oc;vXqIp zxL>_H%CcT?LuGF=D^ow&He@`l`X$E>GwU`jwevO9-Yj5o-=Ea-2gvZZEaM5md+z5D zxPVF}aV6SJR1cdxY%FNGIy`CPxEF z@&qw`6juVONmfP{?pKwYjEtEpNe9Y{{tuCun?Q~T_FY8Fo1gFz2L)sGWM{ri3--OW zESv^s-uT=pGCBDnG2a`Q{U2jw@7@aKr1+_KMvh|6*hbkmJ`&o ziz>NxG8-t71`VBaIIpY^oH{8xwYf$Muiwu6o_b!bsV#r7mLr`T=;S=2G_ce7?y2T{ zt*z#X0iPxjv)*Sby(+({Co+I!eZq5KW1)5Rt>VX9n||`|9?;RnjcJ4%cCH$YZyW4z z7{dl#?q956+>^!=g>*gKbQ>ko(77MD>F1SJzwg^|c^graU5DHzH5Bwz5bq@4>GI(I zYf0$eJuI~SI&dyur{cf%$4z6Tw`b7xpZ$#*$IE?!g{9DR`Y0ekv2gV}C9~ly=AMaV z!_0D0TSv~D@Mu7^G3bl=H^EiojfEQUU6XD`a_vOo@eC`3@`@odgr;oLDp~%~mKHC0 z2TdbEi=y*WoT@{Z0fn!olOf~F8F*Y9Z(MulZz!@qtvH#8{ZjgDW|M`k<7S|HoFiS& z@Z0^)v_T{|IceyL%7=#XF9+#kI3%O?xT?zA7vV(`qPS{(kf7y{;GoAiu+Fo$P7iC9 zE2+$&WqHRb$L9Pc2S(YS`>_WG)-spCY9)_```W(gD{j<;73e#-`4+Pn5bmJAz95v# zBA$J8%z+U$`04~-qrC8%bFdDgJ`r3Ol(}7vczt=p!8LkW^C>`}h*Y=G7?1kLdu=7* zDm^_bf7H-6&dKqIP`A@{b{f~>o~A6&B0TA%86n7BoKqa%M^%43q2!KtvmUJDLY3k_ zPl|SUp}RmA*EQMK_?2&UBDg8js>vpKQ{}}YjO0Qsta;$QSRas`A^9t*2MJqCp4LP_ z<})4j2ftraWPMg#|H_qZ26BzPU@1O2CHVTvH=LNAg-ktCWL~8FR1W& ztab%d-bp^n?L}0Q!&b;A8vH)C7wEQr=u(SJr897MIQI=TL^o&CJH4*AnnU}_`2zU{A0hSqmyvhfpJC2WTUcr1CLxl zl7HA+&e$^yNg*%p7ws&!>hi*}g+6xGjc?#xX9#bq-V1iO9T`BY(#j>{z3JE()Vw)i zm0I4H{j#~yG@LAj5R~MD12gW>J1nqt-Mx)&~sIAftlR^5sqa|E5n@{5n zQBHqq;K}%be>bnYSZD(y`N%E-wtb8L-MZJw#&j_6Lte$uM(xtM;R#4^sZ5e~FfKyU zhW8b_`pubs=Fm$spW9|4IB8$$Rdd9&Pb3XHrz0hru^3Ns_=`q6R{0YfDsNI!>?1k7 z$?`52uc^*oJ;Sr@iH{X{_h^uZqnQf0zv||ah+c<3N%a9FG83K%3*Kk$U}atw(%j63|lRCNcaEEE96ctMbE`)~AKTS()}Ke=CUhQMer zef-!xS56B5g%2C5LhC0Wcr}S3xr3>I<&U-Zp#}7=P|-* z1vyc=^T#P>)|(r$7n#t2+yYn?0iwI_@*Fp0BsR~};N01lAca&Pt7~A`zyo{0;Ha`z zqd^AmpS7R>tqBUypfXEYr&@a{H_4ZmP~AK)daxvn9zZ8*Q^OZDjD_^l+8_mye+-S`GGB=HtA#w ze91!E25$l!#0-M~i!8we26TJabAuHJD7vqVaSwE9^MW8F@|U&!*Vg>E$NoIV64BeWO9El2-FsO7BuZ)18)Wc;Qs1?|?G7YX7xl9^le^$xR z&BsKiDxL+v{TQ5hJ!U!?1{fA6AGU8YAOUF1fui>9o2b6Lby;Y-)peUbE~gdp1bloz zQmF?=K=3D(Nr2(v^~WR8(weUdCjU}B=abT$s~Y|c2OGth9<{ymNHyG`nCszkE(+R^ z71&?gJ3^(>gaS$rP;`p`bO~{2%*L&cLWVIl<6g7*^wgnyyxdP*%(Tyn)CowuaFAIr z`&${pOskArA0>!EmK_tcQ?mQTtojbwWl}bShC{;*iWa(Aw@Mz$y zlZjhj*ZYefr(ipu+ajUt+sj1ydkoZ>fbbw`=KL6OxKtPj{j%lqz*Pgi;UXg~8)cxT z-?KCp)-*B+-pyS*#^})<|B?&!?bV+|n^)AABo(*X!hB-l*W&e*Z>%KWdJ#zx$A(GM zJ;)%Ra^WgtOzW&E#v zJ=)**U;J0^^`&QIWc~XFjCrom)vh`^Et`zU)|VD5uyB%&ut|o{?97~=5rROVRAfyG+W2B+6?q$OIxX}2 z`B-QJO%86s;l$9IIw+4Realz&x4?9-XMR8)J(mkcc`n#e=vCeYBH@#r2ENZQ#TAHb zS}1!tF|EEE6HBK;ed^Gndqk;KMl~w}li3lfz^32;Bf0GxtJE9)`%F)DDNR998KxXm zckCyPV)c3S1TGjSFI;djmeSFL#;^J1(7ZShDhdRVB{jWeQ9Ymf7aeLQz8F4b$l=cO zCDXPc^!A5wr{AYdt;omrVn`>CNo7mHAu@wsigyy-tHU*;q2h2g;1T3BHdgWD#VSo4 zntp-^RR@p!4jOnwg^a18krnI>N(&UAFWBj6|Is5lNc}+wgDUh`NKjA{TVFHq3>mDv~$*J`j%J45q%-~qh8-~`#Oh_ z5*zo%2u>P+CPQ-qBiFJL8myJ*5|_?PgI9=h&G5;=?qi@sY{@j^y&7~OM$?a&IWe<) z=ZWz$gXi{~p)USwvTxL&puY8KuzF9)GjADe`~Ps_wXL6@qK|7rmMLrfA)1&UZU|KFi1e6%J&LDQDE7~I z`fdMW($S5yr367i>1Dq4#M%l1+9kh0{s~%qBc>)uuw8j1hH)r_iXELT^CQQtSA`{i{%^(OlaeM!1yWm zPM!7+&0%zrt3MmDB3WuI+zTgBwV;CyJd>%3PVfm{^GE$3+TJp(j%8aLowx*d2pSUH z-7Q#fw?L2t_uvkJ-~*s9 zS=aS!yG3R!W~#L##xA^<984z_^;r5EJ} z$R1FGq$e!jb!ktoODUI~ER}IY$+sY8zbxz;;w2x3eM=e$hhc_pSH3*f0+^1g0J^ovEMD zWtoJyAV8J}1oUoXq@Fh~(yJC20^Rk@&zEf~q8wv_B7R3Z*QHeeK z1n2!~92cTJLaM32LIz)}<(4r-LXf}NpOXw02SY5H;byv}nokunU75>vxHeQ-$|SD+ z<<~?@jf6w(`P3GISsb&<2&zmhK9x&NXm1Xuh!E>RPk8G=t{gu{1eq5F;kvgkDpP0| zL+rw(N$sB37w=kv(w*QH@1}uKJi~OQQTP=q@W`VcXJ3F?Jx9x9>tsy&O7T^$lT_;C z&D5DZD)8n#7UolTl+t#n}Lv34(X^9vmAXol>+Kt1wzJ<{t9j~?HpMR`} zOx}jtfs1jsRo&v@rBAH=58b>ojk>!FZltTLyA|4=!P|R?EHC~5 zOnP5L&`g1Sc>XdwQluD`;-SDD(*%xhHm2Zr_tlT6LTyQs%=t%X!B`18$oDY}HwO?P zzx4ojjFj)B4&rRWqr5&cp!Bp1oGnT74gX&(&#xPa-p5lIrfMX8+yUeG~km>{f6irc4Booy`ES1dswhhBT;B2m z)S^@M;^7QK3nUPfZS))xsfktS7wuW+*Q~(iBH=lZklQ?c)_u$RTJY7RvDRlSx73%hD z0>eU5nNl)`(a^0~N5(jhHp>{udA+b4SW&dT6uO!_P;Ft81P;Y(BfX zkp6J^IrVL@JKT!jg$OK2QB+b7-zN_BFd7L`d?ArDmEXi1_ih;XXurv%RRxQ$tMUR#R-8vIaRoa? z{mN4Nq0KmjqBKSSpgaIk@0@2d2*NOY-3gHiukHmZRcsE@W<7CpML@Qfdr>goen~CS z-kVJ6;=?!tL(hPNEjHDI?X#UZY)R^VZ6c_d=ltrIM-KeUTwN(wN+XDQrJGLS%2zS9 z<2~ip@M=*ZquC5!?o!{0K&3=UnsKOk4xk_D1k}p+BY$ESN2fOz`@w;hYB%XwDR(S2 zbt{D~Dbp5xCN~6GnR6E4`$75+>DHfvO!Ofb5wiRx(M1Rqd%RwaoUR3*(kDkUXwcyM z9QDoU8^YY!&Q|>mu!4c;Sc92v;k0Ta7{pQNDZ?+4Ud_9`lbszM%4?G0d(7J~R-?2M zXD2g;Sj4Ewdj_dDt?0K1szxF^QBUj$ij9)E9sattX%}Me+UL%6uK;^oMDrx-E8;DdmZB( z=m%Qb1{}H8co4+TGw|2H_(xY~GdxIx)DF*E5e)X8Xi9s0W0*-}LqorpK#E)?stQ^U z>u{~G8C*VTmrH@J9F`*8+I$%zPd;h7qxOn|Bm-=aQ2O?VjJfMM&;4Hs?1AC(G5G=;&hQbg9QX}HF={E^O)Z4XRqGwdt<^rFah$WPYgkd0Rpj6OiiaVPF zmEzZeAi+1_jo87nq@z3rfek%{q9Ck6<_lIbtKu_&hS=N1DQHP!h8rD<^-p5TOBqPY zTj)l8YAK&cH6Sj;>R0V7%#U4{evy)sor;;^nV+8v3%I%)v`T}SJT7wG#^u&R3!Q$&q;=>7=adi#4!`r^ z4-4e*!rJThN-E%sP^O+Jj6uM@y(+UtY}>Qc%**7@x^Vh+C9mIZP1f&%UMe9w|1~Ht z)O9mkuMB*RLGw(p^O$LzJorh?!Wd>_>R;-Iybd4p6pF)rwfQGPUKng+4^N=IZ3r?G zjWV(ghT+YaAhyI-pcXv|j`GHL`ekCiQQnzn?cp^`N#VciY#~4R9jGnT4=$|EoBNjOT8)F)Pg3pt`|>gs~8`|@PdF6iiAJk>5a8q2XQ>PTV?G&d+u zOgX4)TeR1Ds1OiJ&a|3`VP<*)8;k{Zl;PF;OY`&&0n3^G+)W)|*nbH#*scQR_YbT7 zC(-WOlf#iIs2_G_SQKc!k*~#;ASx)KD1~H&1N)!oyPb+ z^$`-3F0me5u@e$sRc!pt_X_Vj25Hm^I?uUIol7`kH^Bh`@u1urT|aS*uEpemK14NV z-TW5ee3UT?cw>T_7v9iTNFr8U*f}^#4wVYZkG{FsMaX1Wo{G@r7e-M+ke1}6?(6VK zKb6Bp(GQTzdu&8xh3P>zFc^U^VhII*eik^4uN@+x36$|(_%*gOlTMQ{!$e$FltuNu zyXjLVs_G}R@6;g9ka`B?%I6>)e82i`sC58>{y|sF_~XDt*k}F4+TIg*wgr-SUadYn zv|bHtji#-%dhi~)NOg8h9Brj}<#ORMmJywLqF3Si#!%|*Wl?JJnpuUR{ zWWNJtzub(rFCprbK;Ke&=q2&O(&YwIXwPN$NdM0{WaBYYrwh!7xXf zNGkvJ3{Mzv>7T2$W=r{us`2sqGS|x$%tq29go0JicUI3U8a4~N>z|GJw*D(-@>j1OaY&ifhbq>D%%;$&32cioCx`+pnfP%q{+H_oBx-0kv=tq*U z?0jG@U3LB!E1Fi9Cs27cdf?1Q5jkRKNB`(@yP2d5wZ>hea)J+7TBcAsqrMJbvpI#^ z&8j72FL74S$fgCq{`6GQ?VJs#4?F4P)mSA}*-gBJiVsy?wInQPs z=A0Z55?yAA8=TL2TRUHBl^(GCX?DdcSz*imji;|upc$UewDBsi@IJGXUXb-GpQgAJ z?3Wj2i?4Z>(w%Kbd2^>xKn%5698qPye0!ZC?NPbF@2Ywkn?`E1?dvy;#lKPxO1@FA zqwh3Kch($@Ecs9=q&Y}X_R{XiB9U-XOj0amOoU?F@A9%(5=zd4Sr zTBdVu(u{L3QLB&_(wn$K)bkKcrM#UgQ)P_t%N@!;Tjj<=iVneMWmTfENPm1zwJq)m zXt`?2tjWX<0 zxj{e-(~FXllGe)dCJSzYwIKnQX!GrUw2kwA5+FPwd>edVmTU%)Q2>QMe8Kqu34F-c zAA*I(DtfKPTS=g}NEF#txnzYJ(0LuOejI<#6cQrgjH}7*x^9t%$?|D1DZxV3cwps8x$Ya2RqF)CV z^NNHbH&#NZ5s6vwe3|#IVgIV)SBNcFxn&SqLi-%Ykw0KiQ8bVF`E=w;10F1d^y@*k zGh#FnG<_F5rr3N-`fmg4aQaZ~g;{~WEJ>M+vUpCK<^q#F(8|H9v<^Q?EcJc^mx-#G zhqx0S8D4b3g~+twPUt6vCl*UzXUcw(zQ9(Tu9x{uUI0m(JWra>w@mo=9NrMvyuG6( z2};do&6A&A2Zmfmw!hBjlD(t)5D~z;C3Si1^1Wv1Ekh}qr2v$#7`kj7gfI+f|B&dK zmRQ=S22Mi^3z$QYuOFI_<&oY#L@d4-sGSsy#mYyngy+DkCjtaDWkdPDEkM;MPxorX z9A^?^-b*BYAQ?Tox5vf!L$73NFNF40&U?8X{kECMy^exzefSc@8lNG2FB}4aCIisA z)sbvO05308ga$cb2=MoIKJaC#omTi52IWKnN%DR*2J`JJz&)P~s6j#^&lM0mBJq0A zAt3=U7!U;bZDjxLYyJ|VCor!)=!tHQHOG+3VP$0%+?Fbr_lx!;0!V|&1AR=HnC2&$ z-wz0oMo>>Hy!_i$gFA&1To9<}%L}Qn?6pa?VTyd%MNJdMx56jtwTt_!He8Q3e8g2G zMz+V>Ky)RGLhm-$Jut|Q{NxVK+b;_^MTQ}~ZN-%2A}he7vv4oWWJ(;$QfSvp5r64{Yn`< zvMjk$A^95$u+Z@Nfuq)J95EwhY@acwnV)xy|J+-;G?#uo85sQwc zb|A=G651cV)!muWOFZ-ipXFx?8WKdRRcD(`;d0`56>oIW_d}fv}+`lw+@9 zZ|#%)fF zjgtx`p<*jW+SsT2-Ks92GoyD42-a}iE4QH{Ew-BS8T_#E5tSp2*qmoKTsU?nT;IiX z1EONy8(nzDPZ6ujE5BZ$_Rwz+7$8Ciw-skbvb|fr!q}1l5XPZR2Zc!GH zO*CuoiiXTQ2J2h3NB7u=3dzRqcgu%KJWU<*EaI0&jZ0QDCXjlP*OQY;j8cq{HLBu7 zWZX9|KzLupi~xfrwAZnVH9w0=N>f8*&jSQ9L#Od3Fd#uVLf}czU|)oVP`zLR#zydF zETM*ueGmvIC;~Vp{~72dy&KvofZw-+hU(@g80C@Ltg*#RUJB3F8%(+`rkB1QI$M68 ze?c`rZai}W z{50v|*4;6$hjYgsde4a^J$TTKD7wCn?7}IWb*F&*{)hYkufIat@)7>ACDjYFZhL%! z^#%kTiwgm#tQ=c3q&={}JuVTv`FB5p0Hl+n!$gnqJa^E1^a!3~s&$$_^F;z2NN<7) zk_vV@hlHaR$T)!S7)`I@JwUoMBB5=BowtIqOON5&ffanb+qKNxa@Z|``NM(&he~0u z9uF)J5kd4|_5^eW0<7_&CW(E3I{?IG#tPQh6jz+yc^Wqf02W{q6{s`$Av-T%*5k5m zz?lyY6CBL}ZBvA`2DXz2FsE|LG)qb!cDl?!g4*exh}aT90EIE6rW>)E z&Em=ma%;f9;Dzi~#mWFtmw`Ypdw}S`-vR|VMJs)yN4os{ed@6aBSE5ih3|gaRsTL= zaUG+`k1s3;ps{c;VoFc4@<8Y0N7uO20rS<)s_79sI z`WPT-{+12Qkz(^s19K;FSx{8a6nKSTgaL^JjSc9Tvti$^OL^F3HC{WhxZFpv*~`2Z z(X~phAzv^k?}M&pEESY>^AlI-83#xHk7!V!aRTs6R3r9_@!%KCLZ zl7vv@1w$+EEj+q!O)}20m#vvNSx9vJAvany^{Z`G;7ejGVH$R{DHI_XGBF|`(!KUl z9$x4Vf7>}o{Dks{yCLG+1NUeT@OSW?HYo~vtPw3qvqp_b6t}X-7M{Ewit#^sS#q9D zCQ_AlLWe*#6Sz>==${o(hVW9+(wJI=mfFE=;M3`;L6%9WMS*2PF&VyPsi~#bv%08_ z@ed)WKl8K(vLuz*4GADIYkTBgTW(66=ycg>rX5GWpL^-B44vE>yxJ%ly!HsIOb47w z>csA1*9$39#-i$%TlJU~rQ~Gv<<6c4Za9}&p%w>nuk>qbcO*i?Pu5!oR$XJsI{ME% zhdDzVTCKv!U^EKs^tJWz1GmuiZ)e8W>~c36bcb>bM?&&1I=aRJ69kYsb!F517vSH% zr77fLIgIhR=ujvo+HGctw1;^2p@3HHjZ+v*oKJq~<0K`;2&_^Y^mm5(jv=mX?eJAZ z3EEe)pp%y3twukkxPhGhX;Xbe(n4`Xq>`-9>=9PDy84ys6c1ldIY%Fb}$`>20E8Y(`A7eTc;Y#>B^A0#;Ae|9kBGF3Unb4C}?>UyT4<~ zn2f9+=DrV0^e-;5>Tx%DyrymDAM#9q#~O_J`PfVbP32H3M@tR0|6FYHWv=0_$vnLe z1SYqY+DOxcxw2_0g{mxek5t*D7w-5>zh>^h)Vq}};58p|$Km=u5cH|p);Y&ziHQb@ zC1;K0ENE6(B_#~KRTH~0^lVRLaA~dyh%^6_`~Brz{)PbqWBO|KN!EwU7ZM>sGV5|U zL*1pT>A4`L)IBnlq+7{br>{UZOVqvuP6fX{_uW|$K^|kz)lZm7TxLaR?R##B$D0S4#t+ywtQJlPNJXVsqV9zHQ~`(_sI$NJ{! zJJa@W`_nW&``SUJiK1g7@Nt@HzOt7pPaT+e$jy9L-r=ff35#t_HLVLnOvlw@;@T6< zS$g6{REVe|h_5JGI1XR@Qw_pQbhfU>`lGO)zMUTQRj!NnZufF%X&qj8(E?MG)+Ayk z?UokbSgUw4V&O2U#=C50+axJg8LY?;4RxfT1$iOMFsiV5V7OD{--*z~=w3Sad0Am9 zI{W)cKA(b@rR{s>lGoz8F$X;q5>FXnf=H9->0hH7alsC+_FPiCn58^4SfS}c=4zN6 z24hphE9yB5Bw**dz*Z{#IXU3hH9qG?%JpoX^~*E>55BfH0ALnqZ1{*g5g?!eUU%yx z)+?Ip z`zT?1D|ryyxYsG>@JYwK_eim;A^P#~@!`<3EiEUJ2qmBah5vAT7I=da1B^#0k=Na^ zM6#}dmYAGboH}m@_J>4ko63)s*^_S$sFc+r?ld$9iya##Vw0jJ9Bysub5iwY7xV$> z;9Jw5sOD%rukxvzb|&(dLgUYE%O#NgenJdmI4Cy6G(S(zyq38|+-Wp!-QnM`ie^}OF-fAp}r@ynnI zoS&u@9AIP5Q6@4~=HF#{a2ZrKE>A_H;@>_L7^<7ae2JLumei2HD?FtixOVxM%egFaYSW=qOKm@+f zbFe6c0Vx=~gRVAE2A-s$2yGuo^0aG;E3;sO3PmGak#qXyu&s5T4{(SN%6^OVIW-8; zQ;_YV;QT|qkp!8B5LlWVlg1&+sL(hj^h4=AoF(IHwDdt6;DJue+9XPRqy< z9{ir8_4c5tp>bWB9D*2%*E^I+^g|Ci^(l&vMn4EC$qWLd{pCgBaMm7rF8*oMxgrh4E~NqO{|NGE*W`c0XRgE7qfaSv{$@T{89uJI&G^8zAc6L;}}n zdn|;MEfi9?vRfkvJ%H2Wi)g!3=CiZ-zyK7eoe4QhrY7YBHvv4Zr!5RMkS2{=6wh(< z-Z;uIH&v$=($Uigl6rN!ts6%Wz~b6)d-lbxnqSL-ybXa2#sYx@_noXw*e`foDS7j2 z#{w8YxQ6gWLaPZMDC)(}6$V#PsY*5$b8tZZ07rw`y&sHgu31OByGPd?!C5W-|T&`)utS0OScpq5w0X8CC!?z`UJO)^j<+G8v%P?xBJJq=ckcWF~ z(%y%VJO!R(mnx$4mbLw?9jOyQHegCieRf@v<0?%7;fln)<;c4IyI{?3%J2vtYWbsG z)6x&})A{#jjgh~!$@31G7F`d{UaCbU^Iqd`|EUQ7owu;8h(N(@)?3se2{&WAY9z$- z*3%fJr%w!0$>9@o{x4oX28%?R~`Siw+_Oc9#Nxexu_2l8?TQNNI= z?3xe3Q;@*IZce>FF&Px&fZP>9s(~K%p3q_uGlLMqVh+7+9c-xlIB!5uQ#MEl#>DQJ z#PNKHKoG`TO@YWmJLrz za2rQUd<&$RtQwJ75%543AifAiTk8i<^@%d?9}qyWSxYd?dQuM3hYc{B@ZH!3unLA6 z9H%dSKmxg>M4DP~9O(7FTdg$*K;C83#?I7rh{Ag_1Ze!BxTUIdT6l=o62WeO?$)NI zjH9JYac47+3i5_(8LF_e6$Yc2kH%z0k_LA9cb!BlIP!9P_1(GC)uoN(<;LF>`k{~e zmQ2C$Z_DR$cYWzOn{R(Q8AxHW*wt{w@eK+(QP$tLbEin|5;qX6N%-nW%dd#G#lp&I z1xp}cm3YmZ6>jvE@z;&}NUDn^04?E|Hd3ya<{1m&neq;U$YF06GNYtgR&RxyanV)a zm5f7|9n%!}s;UM8?PfDV`U3^mpcx@u=xSut;K|oe>&*`GP@s@JMo0#xz2~5GORRCD zJfMl*XCTLf!3VIaI!M5{rbnTizUbh!#J-$P{5Y6B!Jy;g(L}*?JRXw3r;;l8cwVrR zM(lalx|24s@bVeRdnYrHgSlsOuvKft<8tZ4TMGV%J2&cllZ86-#0aB-EL^7-&&`qw zl{`6!N(n|^R=)vagzCST7(3*EO0D)DPk_k@smH0i(mM)l2TFE(oVI6I0jb~*z6I$xjbc455Xd*bhCUSI&W~m z+4e@{6uwY33ri)RC|gn&`fOE^7SysH@GA^T6urFX)~5-Q4Q5f3z5h|Sg#4NoC?&Ju zn(~~w7~b4jt=SQh^_rdrA`ZW@47eh)x^#Ji>%K16yuZ2AyjXSBwRF|Zni!S`#4f9A zP7`X|z$8Ut{lALF@ZUuPZEdY8kE15b=>b|z;X5?0V)E5){1sT>!hNu*eZevUV29ad z1X!1;Mg)P!z#}qkt#H^J#~ZXv6`~Qr?P6cqC2jZ`U(p z5=?6UmNNI_e>~r*(Dy5^_!jsAPpM7J0m|$A?5HuW1O&3JJ9{`Ss{_Y|aTvxXE63+q zX#eRP*1$n~(|aU(d1BJ{R4FI^tX7BB;k?mQ`t#KkKdFcHDDwD9>v z>7VjRv)5{M(aRnX4g`4)jHY1m{gtM1Zsg z3ziwSBJ>ZlFNY=&F57N9k?)U_^=NjW6}t?(x3AM4@3yqJPA7{SxR1xJABd!xdD5=r zAFF<15|%rjxs9;ds?kww;aa>|89&GVaAfX$xToX3^kxHkNq~bDdvj-34r3?u*VmKL zRROzls!T5YZSAqG#OG}587cMtI!Ox^@fOiq1u2!EWTGgeHtxR48SCqYEe3ST>dsB@ ze`_M{ouPvMlLM_nF=vZ`#2rojSH|?8jC%wH0Q7d?8bNP4*kwk89{TUnlV5WW-}hrO zt!L!Px9`ojBC)C^v%BxG&d55@j36ov|6H(Wd#LZOJc8bE0Az8?7Tt(wNMq&BofkU(FqeO7xvM zuLgU$4x9tvhsIhSgk;rkP30)ZL$Zr(KgM;ryk*BEv5)9n3X3k@3Hg{xG%X=8xw5s% za~9g9TK|Po%l2!L`5;5G>A6(STj2!&k$hP^DJ$ix2|?Wn814-5T3)B3FMHW7Kk|?^ zW@yK(z8+-fRw}(Vm&bj)RApZeVfWGJ^o5$6aKp7(sgPQh@nckY z`~a%hgm0)SZZ#x__7qnP+F?2vS!UBOwKlEev?6oEHH{w+jMKt1x~oQ#)P~esB!3xU zOl#uHwd{qt(y6MN%^t@{#drs2WSvUXg zCM$J^G6b2ZiUVu+uja3a6Rk*>0#-G9>>g9+RS|Dv6LwF_hbcpysA-V}S$|sJ6dj+b zPiZm)nd1?2s8lo%WjPNoc4+K7ui+b4S9u3#l?KtMYY0mjaxp>J=C6No3T)R4-9?=` zqx2=riGNh~#C_IeKzD1#H(W40k;W>#BDcR<*miOKp$4$B+g;1kf9e(f(+59A+Wv6$ zY^#WSa!UlHU+^H&T{)btowd|8&D;K&b)afhUKg4PY6%_`aZ&QUbFV*9bgP)bffV`% z^Teyr^W(Xg?u%pf;DrwN3JbVkr}{5bGg9m@ApcB8gG{uw#7p%@K5L|u)+6llX0xv| zs~|ngp%6T!V+4~5+cZv-;8EG8+K-9EWg9#X8NQ z9qa*LW0`wFf^uv=@5tCfuWjo(E9(OdLK+Or9bc5mfsJtXu2BuJNf5*iRZ;ds13*e( z%ZAGBOZG9(ucpPU?F{FGs=IRGJL1y}0&Y?OqJ8m>6&8x%4PClYsG|SpZ4i?c?Np0n zY;K!BO1>>9f}yI&I7=965*ig~Yv4nlbd+za7r~P$2UH$989M<^I2{wniT*L0xvN`Z zcSoJ5mzS55Y5l)bzDa9N5mp1nGIwcS4+(2}&7L*yV`WlzlXRwSC3s9SYoNSqfc&ob z1c}!j^L+v#O2EBm+Mh1&nS+OCMMPB}PPA9{3cv792-C~Kv_pr2y=7y?1nrs1_rc<` zvsq`1r+U72y{Az^nta&i29+C$voYu0rg@>>?E+~ugcRu+bVZ^i6(sJb9LM%eKR}Or zb#+YFd<6i5en{t9b-gjW68v~}w0=3ryMm932;}(UC2+8(V3B-4>p<1%xki*RvN;>S zXBZ^_tpx?V>~sK7q`Q1Q;;aC|^Fx=lQKgG~RJaoa6NRguouWH+m!~ot0eevph!(K? zXL-DkAPq`@+JKw<&!|zcFMDF_&cm);dkwe>8}RyPx&O|lvt$O|=7sVFN z7F}-`>qhvh&erl_z|D{y-qG>3)!b+^O9}ve_dA*c`TY7ksUCo|l}26k%=1Ls zJ+8i0A;Xcv_yiZ@K($NRzsq_f0VKPMzi-S>yX5(?zXNJu!dm_%N584kM{r_vf&gk7 zdr0O5n5_$iJ!L|LaYS>wIw}Ft#;f>ze0HR@1g}Z%8@UFT0Gu$v1%0gdPxbI`-gncN z`FSERSEw)YzWfOr&%OunFtL|IPP;IeAwB&1E4PSB$nZF{pER}=hZIj=VaNigonC*1 zC^1>Gmq{XSq?5wlQ-%0B)t0|ecw3{=kM!_iOl-(^%K>t$6-;c$>!(YkX$kfeP(nX} zQoNCqRhdmCC_swR-_k|iM>w&=(*PB{K&XbNNG^k;fB>X{4VDBUPM~yy`uk;K6f&sm z4S@GSV?g+xz$YM=qZ2@?e+dho@_JzI#K7gWtP8y*cl1`906)QN7?2PT!$-6R;> zwht`ngaT6!(h@^YvW8Eu{We{OULlSG~e0u;|0+-KlV$CvMqT=OSW+?HE$O*Y63q2%kU2OMm zHR%i5<%{~?pX^#sM~6Ehc6u76?jL7kg1jqq-enbVRTmhF0+s=&N3XvY0aBr$>aZ6l z8ZT}$8a066T)7<4j7g;#_|tz0bUfK;b09bFE!K!?A@aDIatGmU{*SE4rx7XM`n3O= z>I8a+9lyq5f`1P3b^upd)1rJBSPurO7uObltG{dX`tjU)St%CRHc-yy+`H7eb9B9G zf#5E8j{1J^1E4tV9j^ly`ZA~vE9ai77I%F{kcWSZ4M~!^Ld$Z)&f{^zzQfLj2i051 zo#F?5iv%Q4BoJvRMFv6#ew{!fMiCmG3|xaY(-%mAN1B{}j}1nWce1$90NVUrlmafI zO##xe`3@P39S6;TI4n~A{=a0fstE3T3TN{x%Qk-P)6wFklZ$~-LYheZ)nQjS!O!}F ztn%)BJ3n171s^>h%*2;;P(T_Vv6%M`npef&I6q&YxHg`#a&g-*Mv3Vw2f}&u<(h{- z@|gCFH|L4L%Z#^ZIS8)%6*~stC)PL(kaY#k*{9%EjH3g~mKm7qH3kEGn5z6o97>4q z-~&WNzT52@M7zurH37rjCxHCVSVw;41Z_Fb^eY2E%ShUquTGxUFyyZ;dNKeqCjl}= z^Qb`O!W2e+Bxy9x;4|bS+;;MQNCe9qjZEwPW)sP!# zK4A@z`Y^``Jg+TYj^~OR={7-qHHV|F{Ty8yBF2 zamyE|@&%7XG#k4 zj{K)iLF3g{k63?`a|DS>|D&@IU*m8{{a-bju*IaZzCVDKmDQKh`jNCWNCcXg%3#c# z6DfQ^6oJQv1~h1j*Mn>wNTPw%%**vLx+%-7|4Y0Lj(Hzy0W|@ohVI^kx+W zr#P*=mlm}=|04EDY(UapQc8vBuoB!fDd=l$GEhcIY!R8PS((!P)3E?nRy$)xEfP3{ zQR4?3;&6W;YlsCRnK_!Nsv#t~f@{$mcBR35(nKo0z+Ia}mT6^nRw#fwpowL>vW`q7 z8{kSY>~v91`KPuT>%GEux!}o%1%4$2l;$U0ouZoNtV~W)+c_YkmTd9#HvCE_fEH?u zWoqJCnwj1y`Z>{-DzRQf|C3XfuJy&JDtL@abwe)bsYkMDTQUi&S+PeGcu70vlZ7;u zK+nQDCS)rxEc;(e6=!d}hUdcj{>x7=IsW|<%>VVZSDY-&|9a~c@aoF{Ki_%wI zWrdIDEnC?_RoLWY9c{jh>eoiyLKKE4^FtH){m-~m^Un&A@Fekl7JleC=Nn40q>25VH2l%W)cc|YLE^A>{Z4Y!^e&<6$}79Jw1(8;4?V5{Bk6ziZSt>YiqOut^$STXojI*5zvT9SlF zsI~3QO~8CVqoVC4S|A&I!zZ}K2|lGY;^ga)7yBK|BARc6nkd=0h_yq}2c&=zfrs&D zM8M$EseutG0KoYX;#c17%Yo7&X;#;+{Q5%?eK=@Qx|pj-L0d* zjl2<(aPxf8vpEdIX1D?Jm|G&XKy(Eq0@HrcK%=z>?0p5n&*2)b`q;1wZoZ7gk<;!0crVA7sVu^dGKdGx3!>B z_?jnld0ukkt-S{(m8jOi!Sto*M7Y=HcKpiE_OUEru?`l*uj;c~qnS^RzeU%lJng}0 z#0FlSiFY!WJn1>B^bI_V)|Ph7D9twax=SQP=FN;W2}#6;=d%}#r#;O&j!ajPX)`Oe z@43aPibiYYE&@o1q?&o4$fKv@W_9KhUTl70%7eYmDgWTCqRyTf5KUfED}-2!?^sAxQH+&90mN=iXqI==iQ+Pb9GG~*^zI+n97S2c8UhO7_gkrdtM5OR8mugU ze*aIU1|<1OsR3$J7QiTME*3EN(-(+X7gJREaP8h;8hLS`&j?z;29i$$o#!eHoUU(dxmb(o)acu4q)utPaxue5t<5l zEgc2-B?5{)aGHzu_bK`h&EC#~zL}^q!z^Ji=U1bbdxyfLt9EPJg&8XNZ54ZIWIEW1Acja?LL{a|%mEmwGp4 z4hz(?w%F22_%2S7;@&=2)?t%rEWK>3x(^E?pcuyD;W)BCn9CxdxQ%<&5PV4^_p@@O zXsJ|pNtw{ee#rWx-u7|JLFJl>!Qns=&)q9I7zC9@H1LP#TjbU%B9IMyG zKv|&wprX!9qGz8$)&o&g5+=dGCtP6S|5BqPwAGpbP%!eGBs_o|85=-kecH@{owgtSmbcR z$H&}i3MyXT&cA^i)rkkv%FeHKA-km4p|Xv4!F zzcy#KYcPJdZpgUYijiuW;IJDHiR0EuAi}S8T(4}3{ss9=N+?U7{2vV zwGE14Sc&=-fps`f##s>wjwej!ny!qjE;;ZTq^PUHd2^Rt`5{g&r`v$fGnQ2sMeu1c zTW~=+59S6GsLyCDdDzA)aj!hrYq{UEl!#~RmOG=omk4F4Zd0U#G1-mdOIf$*40dv8 zH12muv3rXQUxnJ}%ycd_RDjz${tYsTfDz-_`8WL;Mp{oY(Ykcma6(G|>v&>r4l%LV zbDgV`ogd|n-#Y1T+uGJjmpUepU@}%>J)8?07!L5dbp$14#^JUv@Lx5}V!=}%j2Y&+ zUfp^aU8hSo+CO`?q;RFVQh60cZ(q^=O2-~bi|y)S|9J&xv9mFyZ@1t_ z=!0KBD%0sUn;?46kNYa->J>N%MduiE`yqIYhAQq_^j)5Z;1KXOWowu$&7^%0k4L<; zteRGF9*7vvxp==u@8)yJX_drE^R~Hhx4GMH+u@=3yf@(eO9;ywGf2y}q07yfBke)= zpJloammB^hh;Kg!d~a#82or02Q(!{Zykh=-PH^(%ah`#+FrzQwVxb5#>6wzM5Q+l_kc&x zqu+de)A?7y$E_ld6gbsJ5`o9QNQWFg%lH5px-^-gMI`jYlCyV^B6$eD@9(;p1@vo~ zP!lu+65{KCF;B>}3Pn&Lp?^6>sQT>E*LBk0)oeKQE!ybgTrqI6?lP_($|0OhGR#3r z%+pwAIOW8G#<}C8Yl(^KjC)D<4hwx^mI`+kW@}ba!q*ES$GP2nm8EA5gSoxIO`G|9 z2d7N8U0FR?(gL(gj?3d51d002M_a}4Z3s_@|?Nl5&UE(p@zh(7g)27iq=eIh* z{TXq*j2I2C|`Xz%%|=Bm(VB>3Cjr@2?_yQphV^@MhFBZ@FxxV{);_ExkPRtO;E+)e=O!!H zu5-s%vKrU>ysU~25(^9pD45kpS=Q(mFl|B?aGJL-h3TR*G(b04)2Fck7Re)cIt&es zm^GM|Brh^Yi#&*XXo?7ZARlJ5BcX%I;l@|@a91xEn6BVAQ(+22gule|uaJP;>|9xg z>Sp!f?pYOqR9H?hjT3Ki)7$1?^;kN}O(tbR^Z}}`>6juJ3h$e&m){q;43f_4-!!*c zj(ojzNHBu#VV+VBydA(H-Ekz3_VD+RN9S@Gs9B(Gk;DuY9o8Nd!-Dy{_ZwQh7)4 z7RP?w+PGmFO+AZ~NA;IM>PN1evj1^l9obpvY{>thpmpKjggM(|q?Q_@;3SD4P`@=D zCV0CHKcAqezL||l^W9OCOW)xKv-2S71Jmm4V4Mg15>oNC^{QlnNHrj>VS!M!MKe2+QUs|?8pK+k?buSWmyYM8a_eyk#%KvANrWudTWnICf zJRwC##k7UgAWo~A9X^}V{Lp|G`Y#mfZ*aykg!x>oJRZ055uY*DdTS^{`L;5gG-%dP zG3||BC#k!8ZiKEva|O28yAOu!>UH?!G*g8Y-aascfIkq;-6R zOpaYJyK@hrSSd9!o4x|_nGjgSXt6N6(`MaGVS|c;iZzx}W>LRiT>(WC(uH6;-yyGQ zXGo>~iCPd>tk@+ud9K(+Vb2 zBsNfY8wFR)vA!nnLDA$Ezr17H*Mt-c@lX z@tW#aTCglw#&XF2h`v>~Es)5)Bg-59I9L#X&0S2?sz-{K_;>|}Y`NTlGh)9pdNr%> zgnrA77{C&_mhUFp4S%58%`n;h;oIw~e)os8N=)-UA%e7z7M%Js90w&VBF+rw@=L)L7oZXyT^C*Q;xf!Vzj} ztjBzorHxWif`rqLDo_~wm}hQgUiQ9D%aPsfK){@E?&`<$G|b8NEkE+4l<`CKE;rh1 z$pjO)SEX-a!oAM#7P1cA$(63_fmfU+$(Kq?8lEGzDk&@^6lmQ3N_Q=i_=kIalCV2Fov7Ad+K*qRA zE!n>u%lGNjBOM|gNGGq3jNZ?wl30JXIq-5n1!YyH+2L+@xca-?Y#fCjA?{Lb-FhRY zM5K*U!$Ed31iu*GM2_Hb$*PA`>}b+2RR2A-kl~L)?Kl=yZ{_%rX5$u(KNTsYUWr;1 z_Tb<9t64LiX|rth>CQ!#iiz3o(kHS*9BIpd2>m+DbUILU%a4@W?3a>WEDF%4%Dcl5 zeE2qLUS0Uz*@c0gr(d<=*YeK)!_qmhhtWk_IJVW8joq}dZQHh;Hf(I$X>8lJZQFM4 zeD~geFwdMb8}C|s56a}U)(}{xMSJFDFU3z-RrZ}ph!2wo*A_yD-j~g~022CF^s4rj zT$%RUy>BwA%Utz^*wWxgeR{dd2i_ZSKF$;_RGzE7n<;yPe`o{c!XBJXW|1#Bt?-Fk zV!X=+=-4R1si+-RGaBFHA}@!QhaBt*XYO!@s-!f+X$y$+?RSZhz^BwU zh1+C*U{)l9eZ9X zm}h<5Z&>vRSNQWGOe%asn<*-ouFHk4M||(1zO!DkNyl}23|YS+r8p^qF2=awEX>XO z5nj5DG?B5m{nm??H9RN^1KnvXJXH8JmolFr5v}=QVEBbT}QwExoZ&Ls! zjCy&sILHA8l+AB6q14q%^ zuUu)IC;LFgRca>-%%nFT?cJ0dy(@ZZKHqhxZty#%X5XrR!C<;~*cxQL${@ee>pbrR z0>V(RYq-WEJ|SBnmQnKEZ-IVL=@|@bx}6v`Vt5J;U5!U9^$7}le$&{6^$I^FLJ+=< zDBFwZ{rmtAirb>uUH9W_D3;`b_=6@^sz21jBb~Bcq?IW!dY3lA{FgRQt2S67#Qp|K z_&1a2228v}O7dBwkak`c8@qQDqg4onJ(^rVdOzf8)I6z)i{YzfMe#>^jF2}u&g%|^^UU>8wFZlD<8#(Q98-&P)-G#x4dyb2d+tZaQXIFODh1< z-^lW1gFr9PkVU|QzRmb{Jb0@>ujh2s+@-L+QM^`tgCh#toc^3X@*vTNoX*g$$68b4 z*VDY%cWLDD3=n}{!RO?KwWh0!_R}}A35q-5*2Z3z(YTHSsf6vNKDugf9Zy?FdAIfj zJonx*E$L?ceIKws&hU3_6)%(FmE&-^EAvJCmx=d z{)Z1ZT=s1yMWv@%ipYQZ7kOYDe}Hd?P!Gk(eogAkcb80qrjGKF)=3qU3n(~t(Zj6s zNYQVdE2wI(Y;V>-Z?UAswGroX8L4I!AeRZPFVK!ar?Lc`;s@thAvcr;u zS4QS_bl&*Qsd)TZ^`y@N>4t`kf@M=I?+r{1|8eQy5iNObB$S@~`CV=PB3A^db&pS8 zHRO-(#&g|OB+5yZPp5qxT_wig_xze+1H`~ScATy(o|_yEC8+GXX|7#q^&Ngek1Tp3 zA6{IwEW^qkG!iP5F`Q5*aS280sPImg>P8GPI-8vDbG@5?c5Y8HJ9E|y0yU%T#$1%} zu*J|cLNF%j4pCr)*txOozZaN9&^Zd?leGECrx>fj68)Qq{ZT|PwpnR9Rh6apCUbhe zSC%}L9tIs#LCWuL(%So7^M25bFO^j}i{;;2l8NRRJQ9fO`t2?!K72Q-&qBg4q)vE( zu%(DSHDYmrjDER|=eGPL=#6QeQ`cA~d%C$4V)#YrLwsa?q)>>2XCPuH*a)wTPN6`I zKwwF)_~ewMR71nqPgiGs6+P*;8@|?tQ!X|A9@}_q`|R`!n@?@EyoOna@>4F=F{qsu zK5Gg4*?F6=aCnJT#SZ)%WJvKPPu%xtugt(}M6FPQpzHr%g<<~nK2Xe}jcO?s*_p+g zZSIvREkX^(3S*H5a@dhSan^Gk3)9JleFo-nbk`7V;NvV7VH0h7EwYPzR-*wAkmIk9 zz43YbJLkEpe6!Lx(Boae{O3i+$h{yYO{RO^Ayd-^s8+6a2pGb& zEG}MHW71lsj)@L{fU-X}zSVQ)7A4?E{$kvvlJmePYT2e*f%1p@SU?_%d4ui(tJJya z5B`x67;$0#sJ)@`G_`%-zY)BMLCJM;%z;VE3~8f}FY*0gbi!)9hcF5u7rlnvAZwUM ziAe?Hg~3t%M5qFp3>z-H?wTI;$YH=On62>zsnnV0&q_U#oxPON+kbbQm}f^aRR-y} zG7S!_nAQo*VrSrHR5{}Nq_#?u2R*ohe~_vY-9*8fajjh{IujBcK^K_4_U(l~crFuN z(XF|~3p))laP-J`gi0u|HjPEt4G0`|w-bE%MSTm|eU&RDSXPWq!_;{8Zyl+a`n@FbF!4T~_* zgxXggk=EY@PI`nkV8it0)nAgIRHYiT8XOEEMnP$Jd2OfdvR|Q_Dn^1B*>{_rGxs`7 zba=10p~rkl;@OQ^tBS*0*{O&qEH=-oiPbe9WX3Wq^Mvr&J6VxF2y=mrsj(t0t%9a$;?Qkh{tk)l$DvVV}Z zraN-Bn=vs4X*UVR!L5f<HgvbK@t?v< z5&vX=vFPDMeMw>J%zsNE{$$`!niF850zV?~7%}=nWoU&~wZ-z8fS{NZ`ifbXJy;Lk z!c0X~XFnUwz`O*9fQ@@!ht``)`+>dvFWh1;7gU&YEl&g8R~%%^B$IzbscUmdfoWrS z-=Uv7(QlQ8#ucY z4yEDMG2S?FmP6uzo`nua@fvGY7zP7)lf!r8)#)y;drZ?PMr<&eqT2K$X*_Mlvfdi!qR|t9_ry$CI;@Us;i|~BEm(&oN)r+F zYjYSqtBfrTYqd9Jd$YGt8PBO|_(kC<;lZU}dYbSQJg$2^HYYEhql^j)_^EmM7-wL2 zTpIliXajlq=if>OzCa!|#E_=EwHp}1;AMu_uNy#ToChXJN0;&uRMu={)b>radBGZr z7^;yNLfTK&c@ns?S}N99ToL;VDL&)Xz&+-N8QgUJ0!2NL;&TU*nL)h9;MP(WlVX1T z{vB`ljRJ}#IwNKYgXXE{|1yPP40_hz3$@6Q!tg=8OFVC(<3vn%^|0Xj6`@{QPW5rY zs8`9{C%&lYmvgc00#Cat#79^W4I7$DyW@gUT8F}%7JOpmhIrDc|M-dP|8dl+A(C{@ z1|CRCzj@8zI|xF7(`c*X8vF}sZ9kI3TV2MzVf}h432r@)y$#ZAYcE|U@y7&t2_xm= z-CEm;uT!pe4HC?yV^nt7*R^x(gfZS6131D>Tu1&EE zQF?4kO$OxH>Ia|gxj>Or6y)gaR9c6xUb>EY*Hk&KvO8PVv2g-Fi$vzJnjoWY^V5Hb z=v418?xqQ!Dyiv>P9pMeIqSb3T|8nMAcMI6bm@G*L6TN48$jS%+k^jGw%XkcDOcr} zhw|2_TsEKcBsE+YYdT}BF_Qb;ol!q(UU!{6Vz^iwuNVKvuzq)}e~a=KO%Y$rm_YNB zhyr3rr+nx4S0-P57*6X$Ryz^|!-kK$oQjvdHPoua<(}C~O`z&jB|J=2 zU!FVpkTXnCbWh`FCklB`E<`A-^3B+8wHj3(uSSlNz|yq(a}#Vg>VnJ!E=9j82kVUcJK2Kb;`+9;Bdi%pOu&cCXnNrRp_`Jw`<>9wZEO6SizsL)<@@jw0;rc>r1 zM)XzH2L5|a**o{5dif!0N@Yua#AmfNwjE9hN%n(g7K^Nn=C(>00kW1O**MkTcA&Sg z`ROD@SdZaZZ^sp(gyB-@H1CC9QY-_67N1W_=h5WKGgQuUjI=T)T~FPNIo;uhei*A4 zLzAR%6w3VSjn|ltvg~u}i;_WLxpr5&X)-(IWUJH@8tYb{op+7>B7{vaZZ)baa%$sz z9Ee_kH%D=AWE-2yb3+La2yUUGf^a}%zsCWf{x_rd)j`$OUMbFQqUNog zz@vfbK7atnU{hzZa*m^y^W%N*td(zy1`$Kzsn@gYZb{=eEkPmxAGWR!A^QHJb;fD z?r3j}<+;4rY6BO)+L!jn71y~zq8x+ zY(J7A0b+m$EZ7#sCd|nG%H@l3@YC@?R%=lwelL(<@jyC+Fz9)DOAiC`BjRD4Mwhi;5{@}%z)ywhZ zs*LWx5f=)MQK@AmA_dEv@ogHWMd~O(ra;GndJ8LNN87^t0Nx03 z|1_oDs)U19KwO`AO!TAG#PWXUO-f ze-|=*yq4SLeC=;LkEWh~r?%GD?U#LTPtk_*b5*WvSK7SA#wLpJThBLa02F@OLH|c9 zZ&O5i%r8*{N2M?f+guNyG306W3jGm^0;v)$8rs?~uuCs+jR+z8?V8KZrzTmqabnL$ zf3Y9F2)W1Y=Dp?~Yy+Ordv7Fo_E$R3XZ+wJIHgbPy}wM`+P>NGJ+zs~8QsOvW?@jQ z*BFD>yFbpqQz$ho8LoV&>}e$dHhPVQgS()|b0&E%j~)g9APL5T46^De1tWVp8C^)8 z4VW;8FoJ{WB(|O(h#oujd&jDgc^q`Zytqp$~+ ze{NrUyM1`|8GzGxKfG(guo%Df_q`&WDS@qkg!6CT1x9yvoo_HQn}kfoBUcVqH4l{R zLHowHYEKkne{W;>{tGT_6@xMG8;+*ZyWW%+sp(S}E8A{u_}9zJlh{(?w-q1u#;q46 zvZK9G)iUyxmxAHC2}@qDcVD37eR8X^@ji*q#8z6#nkTTTz?E?SdsC8d{)^@KXuCZT zKTdJ-)-M%3>$lySh!}Fbi)}_G>v7;Dc-6zMD(@x~eIc_|i@s`+kl zeEaoj27iO|OoS471*Vsu+FMb}|2$7HGJIWLzv*pB6NGo?c^6EwKWGY@Vbun?w4~XQ zYs3>kZY0N*1u9CoYggE{oTZ_QW|F&zl>&&FbV~jlHr^VYlMeCsPe92l{mY1kx+`4} z@ms>fj(iK&pC_l6d{l$C+VL*qM95~u*^l!}?n;KMSyOvw6EoeHJ}ZN30KXzws0ACt z_JyyA;IcCOr%lg;l~e}EEr&Ag%>kht3@;2Zq`U~XgiT}rOVXoL#UAQ98REhTyf^Ad zN(hE(*!;W0iW}>n{S>D?1Z5N`UI`DnS$Nf2oF6M>t|5k@hJ|L(Of|Ei;8x2ayyV%x z8pn=va~H(^1TNw8jT+QFgXNlBS%1s~_(|H~a^Py7S5G4a+L}ap(vGAhDWEI}CK6z2 zBhokzrf~Ad=uBj_nk$Vz&q+R2g>eT9l8{L>!p1uHq9@St4a17^sVPyPv||>YE48sT z6Q`*ohw>Tic5~^ixPOh`6dDR`71(f(V=1J9ml+9_sbyvSB98(>X}cZr%EE49nZ|q) zCuYNK@4=iuiP9pLFS`?L8P_whNt;(6`b|at;;Qh4jyXK<2F~wgU z5Z4={$-U!{ia)DO7biK!c|8jvm?Dq!%ATtiGjzeyxNbW8qsSOy7%UeyikuGo%SpQ2 zsh)U+l`&4z*I07C+71kD|CP4`*^TEX&npqAl50#%h{RBJSz$}DXw4^q4Hyr=e{4I+ zjf$)=iZ!XQX(@AfYAwg)q6uVOWJ2im`zB4RxGO+}0l~^dPJ%T-qbT86yz$OPv-IJ+ zbzS#c(C=*2aF}j&7W&!ri3^ zjWua=ppJ4>f=W_>xD??r-a;sy^WBm_ZVWVc8z9A%$0c;`N=6fG^l~)XjSp>_0XC>* z%+_u>LH4S9?i-V;+9=TuYZgXao}e}X&@KkzGK_utiuOD4PDS~yC4h6SRg#0ULvy!S z=O(7b@!=?dq=wT$UOAW@(dluvV2dsZK1)}~Ts?grG1e-gmCaNZ#~J8}s=XQ8j2$!J zjy+~;#ca!Ms>MYGLwn^$QKIIm*=F%_$BG1H)Wh&qw>hY0ort`L^wn7XwSqUqKt{m& zb(3k+DQg@#a@BVeS1Va<_EN`V-3Ngb8S@A$W+I!!7tQCsQI~x@UtFVU+z=@WscWJBbT1AAuSJ{Ci2X*f883S8qex>^Iy<>nM!u7y#&B0?)=!QpmeT1 z`!CGwS{_^}>Z9+2q)FHz!ROvr6A9Fm2&kFt#HPJR$OeDzE9luW>bvfVypc+%XGQu{ z29QK(I@i}gSu!&$fo9?sxZDkC=*s+4w_0bi>Ll3DZb!7SAlC*Bg(clS{zZQh~pDdkLhE5{8-dIK-*;a2Z%YBqg zW~c1dr*lx6VNtCVjbI^3TdsU@dK#|PK0RZlKS4Fn0Ql)Q4_hQ6g5h5!@9B%5$SSJr z7gIaHHK4HuM&l{{8SMAF*H3ZOxGo&bwsZe}jgozS0nTs00Tyb>)C8m6CqD+l;H`rhCYAGTF!SN8Vpr2+yGUKf}CBY zMzIFTmzA-?g``&L7IEa6Fo7aILnkBY6Oy*AKXvIWt3(Kpf(A}Zik;-}uaXF7vu=%{ z*Y+@LDqBP=UF-Cm6G1{dlt;29)D9s0=ax6zz!&c;$%bWGV1u0if@Qs<{O7z^LU}-4 z+{GpI?yuP99GuW%Kk;HKh%3BLUzkfA zL@F$9G{%`a@S%UNN!|@r;2?Htb)j?E;j{P+Elr;W=!HFF|tBX;fpShFleM zy?7BUBKefOL-E=4CT$Ce9DCuZuCZr&m!umCmyLUW|FZ|&ye7oZ^)l)^eVIHY0ccYo zTIWwMRoTFKy~ZmBmkn!pPgA8M7lx{u2&Oq4I*AFb_Lv`%9g{MCQXO-h_2L-J>^GPT zi@U`n4$wl8$PL@aP3ej4sF2;w$BRE)5*S>iU_zx~kp0+$0`*V%7zrgq8c z*=>+g@y7WPBV7#_Ztj(Sby~Cpqwnx=L$=o89XxTn`0YtisOnDaM+*+H-R!;5QT$jH_r|acAaJ)QX~r?BB*>O^cWYD!Ck-%Z92T zv_RGWV?r&+U1Wu}O!%GcWi6y0NMtYTrUBBx6eo6ZZF=fCp4x+MbWYs7_U&AtbJ}*R5AoP#->m}M` z0)27I$9-S!XF%)FGANqLN(GdfRk5RvYEk2I5tM5E=K>&yfXFu6J@UlX?gZBOipQ+b zTRZ0-Ahs^fncFWVajtfNI)FtzxjuvJ)LArj7hgjO?v_+@vNpazDK|4F=7+4->ch6b z5yd{5lD#F_t}nc%e`&ehQ3osJ0d=}>QLf3r?T;#VM2Co9$P|*69@{6H-x4}e=I>R` zQC`4y6q9u}eU<+12NeEtF>&GskSC7~ufySNI3@Zvh${MT?APh}L=wj4nueN>v^_BZ z`qnH!CW%@mVy%I0L_pLHIb2&c^Zijq1#xe!AsZAEh0Zkz*XX>4a=B;VTE`y;eqwJFHPq{lG< zU_l%2RF(66wbhpev+rJvI5$_u3jDQ$+EY#4nL_;`S;=P+f!`dp2P;%sVg~wYVI=mN z)Rs^aey$_3Flqs>Cevj^?!Akh9kNJ2L$_{^k68Bh5W#R4UNDG1AL@_MaWjZ$F{h*x zv;<(NKR`D#O6qrF4>)NG%~!#ez2yVj0Oy%gc=qE%hqnrbki~}EqNF&$uw29OO(OIL zlz^%gS2bY5@bR?4q(+Or+iV(YM;^QEoNsZ#Uq#XiC=79UG+>B4_wGcXU5R@K66Yf# z!u&2jz)wTm7~m0MswZ;V@tD+3X_M(I{}7|aM}|Ha|jcdI37jGkotE3Dhvvn2+qx|tY{fl zHTWGMiFuEP_AB%^1Jc&VuI~QTSGn@_HSQQAL@T{(m+>NRg?e;JC z8}zyr4*&4_5)W*|xJA3*zAY3K$l|**>WE|$$mKJ&1G&1AyStiqpqo_PoTNtYmkSlM z;>m{M%psM9$jwNLlHz8GL<%@}yBsXYQ_N`|Adgd0%7o}o0g*S}uPhQS`0z#qFK^T3 zP+j40-LU4Eb9Mu%jBY_a+QgvwGk<0U1AN0p;LHoP6MB_|6!PE(x?x#xDc{Z#-jEFa?I z7!2OP6cF^OrZi4#l_u-PJ#3l`-~`5+F8+=iB9ZSbiZ5Fj0MU-mqk4Hr;tXwIvLdZg zWRZ%`V&o^1Lw%^O{HTd-_!?;UPTOv1v~cvFu;M)7=B34pb2SZV#C3xv(ABNS+18&> zqB!~D=lM_!({u}_t_W04;g;OMqJKF8X{Z~Z3^qvCrcuG_Nel3~8K9dD>ov~$7z#nY zE1>Nv$O&8haU@d|;b#HAf1}5TO};ei+gfv)i=W9ap6wk}R2j6es6ACr=$8nUk}ePI z-9;~o-ctrcoH1ucnwthLN@%kLE5L&y)@#iI;9zs-j8jr-hKu zZC4naJ7uh-fl5azNXx+Sx((dKwaYKOc#HWb``{A=GNqwCZ4oAanj@{aD6y z!VAS-vCn4mGeMmzv{-SUP5ii>%mCRiFa(n0bjhLpmm-KXL!5o&DUm<_KAJb=G zDew-;-DDQnXJi`De18Kji2%qW;*IL|@8_pgS(+aU*^C(wS-wUWoBCyxaa7?u?#2sA zXR`PgumP^F)TAQ%Fl3L^F7M}m$b^3)5QbhyqCtG9C_xv1D)HGPFa(_^ed9}Xauzwl z*s$$0d>Tq)OKPL1?vAB{4al8mxj@9|Iz*rw)~8wx9x+}_*TEXK?YK!`{z*>ElVVpO zizi~0p6B8e`D~QSwfWL6Aj}FnpyxA-eM|>}bW9Bw-D@48JkMd3k%0tla|?KGQd(&j zF9_vpy4o@8u{qA{BPd63pRTdD{a4Ud3T(|E_y-_*cL4DtATYa7@2B`2X|O8QBBe8@ z@l3`(CvrELkWYmeZDEvMm8ivZxG- zTRUzuf=oHwZYetz7VbxV*?^X;pDoIRnH!XQp)%EHhR8 zzb|^jsScb)UuwZki#_z3xCshl{PG%UxP%+7v!!tDRX^;w@CNm<0QFbcZ@#W_w zvcmgrZx@U#Dr-gzW7LNSb76VuY1DVAp%fJGFLNg$tOLTg{vF~~?bOvw24Q!2kf+L) z+h~_RLeQqfNk33)$w}idLO2diL{se$O=guz&44My3XE+y*5)Ten`Zle-BbI?m6|nJ zX*aB|Z6`k!wngPx2N~`LGVyW!Rd5{XoEXgb^=jONPKULyWM(_^Up|p{358LT@F>fb8_{O6lI);eO%CHbwT>ju77UpE&i-dDTU zG2zmML0CcFI*texwss3xKo?Z#(Gd)4|En0)9pdTllK)x{8|K)c@RJ?zg9CL~xr_eRAx1j`?LIk8nz&?gVvvAXK_@!W8 zzNS9uy3-@7x~6NrbL$0bTAbtG=#1!~5y!8ybl87Jm+)IV{&kc=y*tN~e^VDJ={gb~ zLp9_MXs>k@ny)YwV@a5qIvMn*F>QPUJ)O6Hh?r9s=WXEm8K%U2jOu)}jqdZWIxzZz zYlrn3)~`)tqSAJkx1TV|V!QM%dk0_&|9-z4 z!|=$jKH;Wb$!{DdISU5(!29cq+<_g?`s@~JKIBbk^|Z!N23D1`Z8$4s@NIeCP4MHf ziG}ip`gnWdD6*>Bp5_%uB~NB@HFYzIDFt5v=oPE0(H#sRN5OhH814|8JU7y*1*;)49B2sDsAo}f>HJ_nAIfIDVZdH|CvE2tD*wT*oqAW}ZRkkV{(hS7QKsa_W~Sq~lQ9sA^jdJ>~QDdT0?WYBOQ{$loY`ir^=*X!1#B1~;gg@hHvo6CQHZ7y9o2NGttHf4+xwM?vbARz~Z36}f^I$ZJ zF`w+;#k+}^B_`}nE9CKsUPDM#U5)e9cF0DLm9GOe8rM0NEoLlYwM#j33!X9JhP$7w zmA1hTrB~4b4?+ceXOfxGdOvY|g28_6x-V7mz=6NsG&O-pgcS2EhkWYG&!6VV=-p=S zh66pjPa8Cp?N8n`3r7P&I2-0^p@yFkaf-iH z7|Urb>oAY>1Cr16H_E72Mf8mhZ#7_{{`!mLcOyg^aEd@alwPOLlPx`bfb(HQ#vV)A z@c0W^O6BxpeOaA#MuD_Q_Y~ZczMa5tDPrJc?Sx7dQW+5Ob35RtONx+b2agUE7UGVl zZF_neE}gUY!*cy9POMGUC=Bsyl!BROF8FOYeLzqnP3Ko*xE5IqV~7jV6ID3;xCI3C z?qF(VCME12#hNxnf6v(5UQa;JS*6OA6<^d(z@e=XJ)jP!8Oomjb8M5=EDyBEG4&IW zy-pYtWhTE;YR-sIRWc@p;;{Z5hv6)O>GUqax>Fnqa<{ zBp*EUW|G{|Wy)8I;E(0x@XK~|Mht7M^d26Gvy^zw5r)83^pRg?Wkb1RI!R)&Uk zlPu)1P^r!HL2aw+XyR(~V+sf_ zSM&3tcneJ!(Qs#CFZkfHLS0pJRf(h(i{RVEbhSmQ=*W9{1k|INu3{1LF(f7nD z88fF^6x4OT{W%+FYMZDr;C2|XNs3E3rFnf&30r(l?LRhdg+;bKh~o!j@hFyp*U}Zs z^eL<`>5ML^N@Ic}2u;<(p>M70gweJj+OQ_mh)2~&$Sa)Rx=(1(JxRYokEUVw8;aD- zwaS+&2PF@1iWo6_>qA0NpuqJhch|TFu9}m!R@Tq0UD)0XuTO(9cBeJy{UT64Nb-R9 z@)oyoXfB)0QC$i8$AfEvsl4M#wXTHGR+%QLG4Jvq#QVz8DginD+{wj2tV@6hlnA)?De|V6Wu$&Y$f;LdUr!OQ;~dsMgJqz7`?>uC0{;&c^9r{l%ph zN>M1{ffs5J&93v8v0_Cay}FeET5Pce9Sb6ioN&V;3r&n~pZX95hqi-hYazj}va^>a zFUC}oa{&$|NupqzK?O6vEq*+f_|o=)A1*tK?cj_8+1txO=DP#_k@eafD1jfirdR{6 z@y_TJli4+<_9$K`?u{kb4051}D=^Jq>O;`0WMg5i#@OW@Cs=dQSQT5$Up!aR-h-LUc#FibPNJ~FlZ043b(Tw=|3ckeny3(n}IO;#YG z&Koz*g=3Z;#g(&gETNZTSK?CKPPy3!+iRLMoz3J1CF%Rm?j?J7au3buv)i}c=qD{H z;*5@ca#$Wpj~AzY>&kt9c*K{^EO-sadh;}RUl6bfIM{XGt12ko!_lxbHL|`TR!W*SL6;)+~Z}iC7mUrYsLeD*pvQe(!!Lx5`xzpd%}6?Pb`ok3og9fuQTe>ya&Hz|84HKmEYkcAV>E=^N=50| zDrv1V1Qv$gc@Ewx&`V;nq8w8%x6u5 z>Jo3`6jPQ?BsoUn!L}On?L|TR&GtQu5g5Q%=Zw1r{)P-hCmE}AEQ;4>hNmHjObFop zY735XR-cHCO6J2SbK@*1hZ|?60Tm{osN%D@2kr}OAlZyrHHqW$iD-Lgdn6d9eV;_E zauYBcRUoMkp*cOaL&BD^$f}P``j*B4*f> z`mOSvj!So!?vGo97F|!Z1Xd#8>mAJZJ`3kr^`?qpB@v7X1JuDAC{n*U+qQ!yv&c6` zyI}hSK?NYt=LdB7*#~A6>4CY*i*iPyQb$^4zo?&+DIFYiT=33Dx(mE;?Cpb~LA0pB z1^)(U))&v8^}^T2uaBWZu1R+MD&$WAUhlYm$2VI<{l@0IGh)RPZ(}?xyx;BvzRgE>ftw zPM-V$^!EFkC*kVv)-cj18BU?=*ud=V^zvo;O5&|7qM@P7pyb4~8XU>C9ur2An+>&2 z^{_GK#5I(1D{%K6E0FZr$8ihn^4(MT^w=%dvXE%hIhtFk7W=y06EhXD$vorIl42vb zjnyP|++#l)8C$QwII5gE?f8tW1G(^4>$pq;=fqb{*_xwCX`oeF{76RESw)u1lf(y* z!Z?#TT7beyTO(>|@W?bAC+QWK&_Rcr0q`6`y5rgfW7KR&3SzPhyqMH>2qz9HjW%~t z9uZ7&=xNypjkYAQPdc0L2vXFA`R!!d2Y zgSvdlmZaBDO+i%c^8RV<=aMyU7If`WdKVQDLozzYU+~<7; z`N~d8MU*IE&dVpQbc0mCOp7v3=<(EV&(PmxQf86^Rfrrrz3j}Gj7K$n70MU#(xqiB zSGp4rMDO^%Twk1}Rl03qg3i18YnF&!Z-lPgKcL0csPH>48Hwb&j1C^AyxPka$oQ@c zr1-jPrDVVNgv|O57DxW%sHGyeugqZ9_LddlyJw6R zcHOHeG4^FdQ3ZSHfxy=v9jo~P=%m|m|B$0ZtJ9c%%DFU@a1y7wJ__sewox>3@JfTxRn#*Ixy_s6bwyo}f^Snk(T*Y9VH+&}-o;5esw$DQ!Mq7D}+) zCYRN!nR9&`JHrGIVGq(v=lYocj2y*XYSy7##4LaI&FSn*fapDUMZJ)SO=w2PnY}Y3DeXumALS!5B2LW5R zUw;y+63g3ROL~bOJRg$YS6!KN$6&p#}Uft0i$ij{Y}ylF~#$XPGd$Rq)Iwl zPMe)!Tv+ki>ausA-jZTQXXV;2RX0&w2O17@PchM@f|>Z!nA&(UB9LI! zpn6I9bUMi~C{v`*OfC!i)UiguIn?%RHdyKVU&X&G+%jw;;w=-F3Yzn#^*Zjgl6nlK zDb+DniZHNSHg^y?|A6R)z?bXF^NG^gS~hTZcEr~K$XWlb2f*gX=neD*(>sts)p#BMlKT?yRk z%I%*vHd+H;m?h}bUgMfU7$8R!-*Z5E>ha3dl9mkX)Ct?{<5mneo6A(FpgF}N8Y-Fg zh1ByLQbUz#BH_u|vGXu7nDKo9{5I;r+*)E;)5;>aCSNAo z0xBZd>|3@IuDM2`rj;jgRl&493_a@-PR(H3ZMn>&iA-tyTioTQyEJddglzOeGIbEJ(W+oRBH0$r+;vQ4N`r%T~lAfCdjqlAotII}9rQi4|~JNoL*q#CJB zt<{(|R~k1#XZIox!Sog2tJ>`9Em*@+RL=%OqsIT|C{%0qaQDhu0}no{`lDdX(0)S^ zPf=0vzugpOh!Wd}?>7g{DM7*T zR}-my0!V(PN>F{}(V=`u{)(*UbmcEN%c>h1S%|sPt4VFtF%J3zCP2W__f6To7}LK{ zmZ*@W@G%v+GjfN@%||KS{kkvo&vZ%APdZAGRg;Rp$`JNQoLK_$5p#m*QLVQDKCTAjp$kFVOif)}ucgv1?~WO46u zY?`wL{ekr&hd{^B=A$kJua;8 z1QQlBIBdR*z6Pmgi|Uf|HAgD>H-WCfq^QM=|H( z{7|r<);Y_W;ml9yo`pB~?-Wih^SoO~n`_bfQ+r~fNr?^!1me(=`)aE;kj?2Hq%w}r zMnYwX^ml(}mP4Ng;nt*-xD+0lr%4Rk8t`B4^2@+4uK^J={v)^*NeD)&fL@Tn9 zH$gSQ4&y9h(spI_IFxXSwEs5y3{(ms58KtC2dyGv^`YW5nzaSzACtlRoB+9|*mK@; zS6ZHLO-+jARpha-^aPZhm)D<*(uA12S zhWs^iNfT{VAFcnv2rs)aU2c%br|wZwoUd5^?eVRS#+QQzt|9_Oa1GdCnccn;=%spR zDDRhb%3YDo^>ro#d-8Ka?U#zFCtx!E<6|6lh-lRf;NSeO>_@dm$fFmX~8ULWX|F~xhol1tyjzWtd)MtG4EPKy8tPQKPS0qvQmENTF z|19?P!wl^cKS&3&mLb%HB>(Xdlg3xEN;BC5DM#cpUBOtPXTLstSBTJQ|2hr0kL7iC z!Fpt*wh?O)nw2s@5nB~aCAqs=yUiBTYdZ?wAi~Btm3DP>b zqkk7-)3B9WFQ^gR7Ihm-`hsc4NS%A?dm0KD)?ucItaQf$rfgL2QoIjhBAqA^f9oF{ z#t%N|y{b=}$f*Q>D=2KuXhE(qK zx)AYDchd&2DGEwtPS&5ts?1$*G7y$v*xN5Og?tfVIIxk=)li5cjmO1>K0^E6H3)PRHDz-v^*M&H1k#1CwpCjfjy z?!RfQUxBr~E^dD3M>)$14`?&)Xq*va4KF68jJ$X1PaDwo5WGQC``i;zoN5A3=c}sM zzxTw3NnAxMY-kty2#Sb=jArZo$F?X1o-~(dH;>XdjIux5c8W>#tT}eLJ z+1UwArSQuY{MCTP0;;S^*Ur!8%hcUFt-ADhOkmRJNky)vH+?EmIq$1PEO<`;0!Y|o zM(`ybZg}fL>a&GykaLFn3sDws>+ID*TCUfXc;4vzE;FK={TXVNIL;5rK{di^4oaE; zb18^EpPvBI6CfEXr-l9*G{V^t%0N2OgzmIY@mWxFUTSA#Q)nX=n6ZDMFYU|$HAo8N z*d(6`>}a-gS+54$qjA$cu~>Z^frR~~Y!vIi13*qkLhkFVvvE9Ps(P~7hN4ooF)_~7 zObhJrMiVRg+@zWj?pa-3v|p&bgOzJb7CHcUn;j)*uR(9c9N=8u*pKq!nV3%@CYhQS zYtX8}qa?ryr`f#ZQpk5+-IPt}$oZBw-bh|j97;`LJm^F9P1>sf=tZ2=XA(qY0w@Xq zJaFAgKycaTu^jn&`lZt2F0M2xDqi+Sv%`F{;U(GvmtLg}Z#AAw`Xp0HCF7juV5_?t%RK~6+&ts|MI!*xzUh5@Ym6(C+_ZuDSWUvp&(VjqG z;@s1EW@o((pL&^sPXv@R*YLGRjJqThZ%Ml7(4~yWb4oM)ZL&s+Y~p#mYT|ggQtggt zugSjPfo?W6#?yppLXpB~zQ;Jes`l0>_Rh5DJ;#dt$3MgPUyLr37?T;S{raRW zDjkvN+ejsJ#Et~ziB`>fhf&>i^BCXvTV3Ac7N#eUddYLtKux%%r2&t2U5_5|W@Oac zpyOcCyk9aK@%SbxwGxq_K5ZJuAL%&{wxUy8-L|2qqG!k-Quj zB9sDRb{HZ>MlF-USi2K>=a!$gO)YJll^}~8O}e=IVGUG+*S`C!HGl}Ut`ebR{01=I z^xS>?iny^!@BOiOrM7XkF!izmt;D~31L%`2KXU4mi2B%b8q!6&4yHhxYe8W-V8)){ z&b2ez->ZR6k*Ao4r3nyJ{MY?24uhl*P_5Q2k|XPR4~Ea=(Oy@~YC^6_)Q zHs1as4tsCAbcL&eGaw}&qFhFcS|9)~-@aF)=Pz)w*o+#YPQY81lD=`vDbf|P*y;dl?9R~lbNaRIzLw@bn8 zz+6s?S}Cu_k-K(CPy|az$TBo6Z7#*Yv`3H6nnZMi2)-TpGLjj2x*m~fkHSa~6+TEW zJxq&!fm&%Zi8vgfodV_YRgQ-J%0EBUtOG0_SjeTS(mnIm*qZaHx=a!~mfhIzQ+=F$ z4WF%q;}TD0mR=()vEYAA)8O%1{6WN8Z7nCZZm*imJk2Xr;eFDe2{i2_U#}8w!e-OD z&}=7P#vJJ^Ggvy=ILlZNkUff&=Y?)k0BxR&^rG*>-A-#dn-Tj8OEK*t8+vQ6kYKqhRJG%UoshXX@?J& z(xsA{#!6@=Cq)=ch8Nd>-!xe&!YHN7^6n2VenSAg1aTp1d&>JUz~1C)da}v!y-Ubz@3U@ zHYkr`_rc!=Scphmh4ol9VMWV z*1UdhEz3^nCbkpM5d1mH2@4MwKtkITU-SU@0~0?R+Ii*|nc?=wlv$@c%!|t!5fZ#G zwiu`H6xL|mRjRerqrk5L>fe$YSVT$?4)iI!m-p0cAh<)Wf@d4dO_u9bGXyOfl2xBR zMb6f>^gTX^#Oc2xohwe)QvJ$@9IPiQ%6THNLo$J1AU^LLf^ZsHxzp5nLG>nO6$I(& zN3<+koqp)v_^bpY^?oSoa%2;8F%Ljblb7d?zSfSv_{w{An9%rFNb`KXN14$~&Ua1~fgubsX$F7^ z>>1yS=8O@fMc03bsHtKXhc8YZwQs~UUKal0Pf7|5f>7y&-9Zvv@H)%umi#)!5lW)I z%$0g-dnE~Je-<@`$CqzJU|kfZ{YypegSX5GDanqyi{GA48bm3CAnaj4&ug`kh~(LZ zpMzOxev7d6zV8=-x5^~OtsfOR`n+&c1@MCa2-5yL{Dtu68IBQBHPmi-%-p-`qRF2?yhqQTFn&Jnf3v0heB=*;UJ#XlaM8ad0+%ZLHPah&+rohR}mU+B2zSmGtu`U zjubBb+XKTEYd@kSEH?m|1nf@QQy0~OUNJB9)c2X6^d8&5H&MR1#G_?{#d3Vv6L!Og7g9ik#w$a1`$(tqu$>@ z4V(aX-j|IIZ%g%1yF73dK^Ud^td3a^V5KkDI`KEAxM04Fw_+Lcsu8;66R*eRve^19 zq}Ntc_3Co3`=U$GPT&W}7C;0XVWhUyI`*)MWTCRqy)d z4(q8hm_%nc<8v+t8g!Fp7zySJr-cXYMjxmb!Z_;pKE4DFFPsetjfL zMZVs+GF$i?gnI|@n^tH?(Eb@}7q5-DG)+0o6zyM9F-p0=eyBkLc<6~}|DsD?VRm0M z9fV^tn`|+iB5G&B?b|@{~fSg z9!qTu@@d1afw8NELvdPj(qRIESVKMdiW+w=)2up1J%8K_LNPxC9(d~o=d^8EXi~m@ zf5evD2n9>>X^3DU|F!HSkm_SHxt0HfE7=4PYgon3=xz(|P`I5hjW`W2S^dta?Ku@^ zOA-xhDNETOP6&yW8vV;WCJsbz)6wsVS_So!^!Ku+*O7E7`izxH>_fV+gip)}!5K6} zY8QVA*96Y<BFA6$ysxNttLNC5jK#q{EE;1{B7CnMYYQq>wPigm50x=Dw_ugHnxP$uwvxVIlZ|dj%>3 zM)71lVqGir_m1-C10LSr!RbVleaZ5Tj%m`s!86z2{FUqc8Xly|sAc@wJYfQCV;Vob3VP~`)yJf6z6 z91=W-jK%A*$*7fp!rxqN(Ua-9Q~>v(Qb8!8iS@{*JEI!5og@T-)~Wg)LAj*53rs{Z z2goqz8kZS?C`Qx0Y2UuaD8(qwC&b<}8OB`Sehcqk%i5Yf3*jf{cN(IBaIla{^M?fZ z2S1p_}H7^eW;{-kaDNm z+Ypa58V>ffHEIWu_WE`wOqC*>-?gJ;YsNy8U;F-m&-dORlB@UneQh#wHvZ?R6#g@k zh^{CX_sKD80#yUcAFc*<&7*MoQjLPm+ijZ7k;h4rcwzn%h3TzsYK5ElZLo%DwCSze zZ4S)HBv#gbS?dV!)m!?X%(;nqIeDs(HC2OoGuAwAU)*33(ZsQ<%6{1-d`Y{1I09%> zDw=2LC0+X&#kCNng4l&yb2zR8;|4}gN>VAw7cB~5cE8=pV_@qSpbCQ)f^;7i5Ds?% z{SHyzI>rcYl|+u6m=?ghiSauS4Mc5NOhL!$kbVWC50k?H3?4QYe&+@tF%`PES)LKd zM+m0~;!q}b;Nt?Q`S^p=s8h|K`4B-u)*B5_;PFBsm8YMwr-T#Q%@S!UwFJWE<^iOf zI*SK!U4js#`+2l&hu{bqGiI9O8bhA54W2o+CYk4l)t9QUMU7p~}BC&zfWPHbpw zW*q68LVQYQ+cP2>6>-^jHPyYAmeNUr@KDL()MmhEUZR(p!y3KZr$2>^7vrRW<`YM` zce5rtpDLv%wL>^lw9_^Vz!Zk^gQ&27F>HOV-rFBpP*#NraTgfav@8v5TqX#uaS1S= z?dzq*08!|G%|)mBXfPVOSx>su$7$a(T{p${H4kqLm`&EcDfb%|!aU_MI7OD0YVtp3 z!XmgU{l7bcY7ive`2 zM}jnQmUo|4ssT*ebXBAU^~~p4$2#_4e}Ir=wUOoxbbFZ2ACAgoaMTpay7qT!k9dYV2 zr4>^hLZwqRT?%V<&CuI~W#nQ<<2JC=;KN+ZI^MMk0uDe|(fmY~>#i{3u3+vnmiFC9 zrLYj53$J42w3zxaf*mEFEOZCQ=*#?~fl1fiKHSwt7Hlm&rccbmQrk1v1uZA&G2}=w z`05@$J|cDg{qa?x;Bh?Xz|tVnLGex%oz|oJ3x~|2A4C$U6Y60Xh74Y8#K-VkU{a~= zeC0CK21`lVh$%JAS3JZKxn@a-oZB!GG#RqxSJbD@h!DHuD8#}fvDDoUy6XTk^5w3~ z?u*v}9;O4p%%!kypLp;Il-CIuXO2kJ@{(4?{Jg-R%j~EfCMi`Sv8?@8?fm2i&>g)3 z&PdsaIb{pFb1=ca*n7i7rSimf8$TK_9^WRJCHishVH~>5?~Ezo^xpvp@ID`IF#-u3 zPJJbcc1%PTfd=++n{VmQO63Ms;clm92TD?%LuWc;O<8$LN$Wux%~LJ2O#O zLp}M&>-RXBfiQ^VPRDAGa%`|X*Th4JlLxZO%4m`t1o_L*#Yzd*kP&X$RnpWpy9s0=3I;$VtEEm^wKg^KDFyyFV!w(tl3;Jiy3zxYstL z3`%T))&hZDQ04c1abjw_yGeq+Ys`d^ntE|MY<9&i3>B+nSx@^I?L-~oN3dbGd|RLz zQ~y#9lg^bgBL(0tTlXuZ1_f{zWM(BP=(5Pf7?76sLrW^qN9z$Cj|Ip`xKr*_?>qn_ zM^U0=wf@;ENvCTYjhv1OQz1@9xbY|+io%Pb=ByvCtoD;(WCr+vq1%R2D@!r27mdYP z(=QWFEB@y0IecE5XZd2{wv(;lxdTy&H1-5fG^K~OUJNs{h@uex%1To~5|>oJ^tW(7BI z3!X|?54s17U@13P{KpzIdL6wv2w-IuUh=?K)qbS@jH9u)#`R9vjTtcX{tp8ZLiCuC zuZG&MqhH$KGWxs~yIGdjI(GY=)|-zJ`d6{#5`O;#UF2c*KC1NM5KWEF;g%*_Bc^Oh zP7)hwms$Xb?16QFfNu)^Kfmvdc|R+y{h<6zB+a2?=S=q$&w-Y{cnIg*`BAp#iNO33 z_L(!OMPxV-`H+<$M9*|dI(zNr_jHRq!Y(RkCHPF;^0FwVacwsh)sKNA)w2`^voZk( z|3-0Gor){LDXAXHMocvAcpMGS-&5t@0h*s@?gB4EYaKueZp**j;inHL`AI-*52RC(mud<>4B}{NUT7jqUka+Gg)DSxuo$+CrgNY=Bz^AP55d-CGxP zTU8H7X@-evv&7_K@mjiq{t)Mw3b)F zW#V8}a&Tibk6=;ip>=yj;{QOH+4POt6`>iTS^_{=qG0{aCY%#}WgwCMu_}6;$mRr< zX%~f6%HTlpU~y|X^o?SDy{mgZb92h2h>6^mzBxP-!2Na5qENK5mz-p4Bs}dd#PL;h zM%teB8=#5cesKdAAoz#$Rf(u=JG}bAA1fhSVtmD9$z*0|~<|Un%zLOuu1N#M0fnvOT4iNXBG%)Z*XvsVx-@jQOf-YSXZy zMEj3jq{_*Oj8JhYvd+L%*?@DV7EPKTZp1{pf4A;RY6KYAp$ z!pyJ@hdDe5qT;#b!*3ZTg}hj}C?;dEKQ9#e=Y^Wd?0#N|wT~b2dTrX=vuQv2m8tX6CAxK+z^q}QRsow z;8lVT#BnD^>}qH?71OvJUe-4RL{$w?t8p`w&?6e9*$b`@BK`nnTk}`s=GJ~hbPX0P z@_TNcWD~>XBtx|i4^F*gkeWabPW=U#YYF(~XfQF8-U(*f-5&{YwCLAUb`acpd^T=D- z`UW6|Aluy|Fm}3&I$~Olp+SKm5aAHvP+@>L&0StH*x)}eNph{Kc~#)4_}|reVEwNQ zY>jV^X6=@07;aIIOhnMp!T$dJ^zZoz?r>hb0&zLE`Ri`46=T3~9|y?;#)0WIMO}}i zQ*dpqWnZUlpN|LdZTTzlW9;`o)qbc@nHlRt(0l}H_1~>V075f}ML$*|1pTsv*oI7otz_lr4CD zvQv^|ue24mG?rPYaVA+cCKf6o0X%5POrQ)Sd9WYOnlzbcBYE*y_sWZm_AmRiKdn*! znux=D%TvuXNr{6b_pq2(4Zq@0J>Z)O=Lo4~X7~8{>G*JglpD_YJam5uThj?4plnr} z0Z-71`(vpHZY6zg}bFm-C$Xy5IacKqG(zTezPInO=EED@ZLTrwU+B&YqZ z$WeogcKOB3gA!QaH7s%Me1t0B@jBP0dhp(6{|P{C(8EgJOTA;PUYrN_vNlopn8iVoq0TA zjG7c!98LO~p4l5#nE0+06#rNEhZ3jHNj&*)8Tg;2#lYad#G#V@Di4Je-y_fOAJCCX z>xU-Pl%`^jn+rpb!Cyjj#owaZ6!64^a%3{2RekPLcvdepOm#5$B8E*t6LS@ENzH%* zCxIEO9ijHYJyq#qlKFN#+w_arI1T=)sJb*nu1sBmpJ8(!aJ3w`dT-w~1s9aTD8?1z z-(VQs-~b}Dy4KLuhk=9s;U_Ga4l58?(g-yyiGRvEX#n@kGAHSK$Tp`vy!^rer7JfX zAA>Q-!I(n#Z%b9*8|Q#Ox=|l2l5R90Yx$_!^8164!XdKeB?BJ(#X40(1oqrl_P<=N zNz&;^v!uute6R9d4(1nO@uRQm#s?E6&^OE$?*XFc2M;ehk6#a^-xV0s=-8K%7}&{KO+Vxm4d;ub zD=OgNCVMTd{8m94+rLHwTZE>0!+!d_dNX)~Lu zOFI^OBHeIwmjRM1gg05d+#A$5;F?7;g?o17*0`!>2*2J#tHHJ0&KUU{G^9P(QsFue z5gRAh!voWCWs%n+6NAqVqX7t%-{J|)~ zIp{c*j}iig50PfIa)e0ZWA*LJHjnU6 z{7B}3v6PldWt<(Tk8#!|HVcEGHe;-YR^p>RyEmPnA%2Cd;k4S3Y{Nd@Yh}V?8rU@9 z=$X|T@7xyT z>bHF{QQZ>9!R!3Am=?SXhKH8qtUYVXohv1>%khMXW#eqjczh*2?g4kGx8AZkuZ5v% zn|Y z#_3hY!wKMoDfLM_bxjwQ_wz726J09yHR0=#Szv|^l38Ek@AU+h1nEuUK}HQp)$Zyi zC#hY^NAlT}7~KXb+=t>*#m?d?bmd-Ks5l@-4~&MIjoKvm4(Nf1uXFO_lUuYcpsau! z{z$zM$m7#<)EAQY zIdn1gh-}|jBMgoyt3e*KFkbd4I^pn7a9~k(aHgaD9sOY;U7ZUyVFyflU`a--doidK znwB;PT&goYJOdJ}D^cv{*>9E5ah;)0xp}_D->~Nk>!5Tqhc;2tWxNqR`+2|^O}u4C*?<%xX7V3G(50sEC}W#-gWUZI>!Y* zZ%;?+tYzRb{7GoYvi-Z(7TV0gT#7pOwG|I#nasP0C3UX`_pq$6h1T7t)=KTSx?WC~ zSCq=~-LlyleJc-AaZ|%^v52Tgh=)%WUNm$LOUN(|PiCvA)=jpPh z)>}}$=NVi3X7m#mLUeSp7Y^s^KiB0Zj#1kuXe%eq3QIjgSD?}`w(eBvi$j*6SX7Pf z=7~@G_!`^LE0GQs_E)8f+8HmSd#{r{m%Qnx^xR>pgA&kKuH0v{PI)_xj(Id{k~>r8 zkB`flgFUNu+;iGW=+2LlhmUbh)@)?kNO0EcSATzbdoAACI-w6oN7u#lw6881HlCYu zm#q1Pef4zT53RDiag->L8o`Drkz7op=o_5NQt;%2ocZ3uVdVM%4m~92_BoO9C|*IT z`itZ~(mR-gIq%;8G~}#||2E|RuWH=0v$6d*S<4kSdGvj}uFL&f5z^3LQOyh3sU!_S z2n0g>uhhApNOk(vD%mKi=U^-%2B;}3B`95gho;o!_kkMzrpTf2gT3@Grq}?Pg%4*f zCNW3!^VjE;}3nz!2kGx$<-U0BnQ6= z7$T^^nHl_*x&NbW|3?J+&*A_5)L#wxf89k2a*BSg&AZJZ8k_*`XrS^vOvMk1Kb% z5<3Mv8;ca6zA5r^E{s92>~ogqwx$+*Ybde->AwT@-$L*==zmUC|FaK3SNjY=|JAZi zQ3HhT)&9}F|8J)j#K7w~D?fvi^htub`({#Sg(N^aCiWFU_>ciQ_rp`x=u7<9$6LXy zI;XrSOcvvl0V~-d3A>1RyzSGAtj5?tWOs$KHxOlL{)mE$K>*2xpx)ZC7gc$s03!28 z=HC7EV<*S_?H1sjM-6r$L_!syIB+3I|Ibm5Po?lOO1tbm2un4SPsZaD^328;n|d11 zKZoe}AO&%mMW?>V1`$f!CRH3Q7?XXHpj-p*yo{W-lt4(q9DQvQ7&6a*900WK>y+xg zfd2Cz=U$ch#k4gL1t10S-wIGNud<`nDEaT(UvE)?=Rj^Ym&58`2N-==9Yh{2j_8j?r++a$hYYzF+$`{Vq( z``(!`omj3y(;>2D+mg%A*Q?o3W_=gWMzs%h|ma8%sUEBAUW(e>&YBLN@GT2l0syGJ(l1Y(7oB?mury3Cl1^e2sO zeoJ_w2J}MSf#0A8FIW30uFYYgb2=UZT~)u20=OdPmb$0Rnxe+Ze-4}a<;3Fp z>)(VIgg0+}*97tz!HnDQf7PP@ES*^qa9kX7xCFpOQV?r8d@oKHrq1O^H3|Ov#&A?A z5f-3ufjOFeYf4%>N9(Q(Bbf`XzaQ<3QJDlmUbzY0jR7O^apstm?H3?zRvg#&2SO0` z^>{Qj2dFMUaTNTgNb-YW|E(l{O6Y%_B150_0d`CxUK7#(KZBK%~=tah@!aq_^1PO+J{QKR1nVo-v z@n5HIkieh9-p#ZYHbd|H_#T$1yEP0>J0f4B2h=uCJl7X2Rq;2P@KP-HpLG}Cbv5wL z)9&(-zR3qH4J7e&26d|3cibVZ`BR^q6m>LHy4a-g*3(a)$t+4jm; zKlV*nZtfCWn~`)JQ@K;A)SWE&UWV}STFM;<+o?Cti74GR3m5D8&-W!wYSv-tQT2|J zk-uH_R_P7LsbRi;Y0zwQxeX^yAnk;!q=UE2Z_0XeQs=s!TLE*iLWpD?94xx0&eR1| z?Nl@$?E1$VPH+%hbCu(qZjU*z@W|)Xn45@)HOr_X)TeE#SL^Zd3zv4HJS1ie6pusq z7O%<7xU0?*)i?IBbMVuX(AINinRZFjYuhVqY*V>Gx&% zDwn)Hrbqeb0*|-JXpUX1JN_7W^&AwC*;7qXCer37o#253*F?Tx}h|s`j z9C@>jy#qUTOQs9?3MZ(Pt3BadiEgn!%Q;y1{r(AI1n#KfmjW^^qT12A=98vqXv%rX zttpjtO+WRS8cqdA{UX*AebK8?`74*K=wJvd-2oFjQANW{-BZ#%sdd=cqg;Et+Ow}y zyR^MyY5-Bm;9UgwdEA#uVdLSpqGK#Y<;brt+H8AP=;vor6^*nk99q)n_n{Wv&C_g} zZCe@joAaoR%QZL`Y|AopE0xLx#)6__SQb!qy5n6a z)w{?eQcI_4N)04#x#*L&1dTsr*VS#8fl7o2f?V<{xookG=2DK}EoAOseP{A&Tib3l z_Uis8?7V4Wk$dJ)b4RXxA#Hc|e)yax?b0_llBV;h-t~s9`>vt;KY8-oj0`TMFH5_! z$lP|SZmDIgUs$rS`81~TX+30T`0R`BjyeD2ZBv%2H&$)ltEF>d$|tFPxQH-rFV#D> zff1r5#IkqevU`YIh<}pMsw!0t62UZ>=_uYK6o4Tz@~>N{trt8_9n^{vkGD*6d(&Vn;rYax3k%j@5@ zmVIwK!*7{N2$tD9`unR)sH9Y+OL*|ka{ei)e7W{-9o!9(8m4Qg`D>YL{9p~=b~7E9 zYHZmyB2;AN=GPe}on^!Sqw5ej#bKkk#;9>sE?5{5F&uZiV>7>!Pped-ax>qMU}i z<5|nmIU<6)^EoHvhu5WuTkkt8bX2yX31i(mpV;d8%+(v2yK6+aC5QFRH&d@WHTyh{ z8iq<@wwvbnGEGbx*N_!59ht4D!ZSTzU6ZF&waiEsg3Qe>({-+L@V3fJAu5Gs?i0Jjd+yC0)KB@8VJ z-4qnFM`#|{xs%*wJx2I6Ylkm-E0we6V9y+gImO8*!;sxwM^ zBM03-8mIyyH(p$Ol7FxH)nbQR9#wtdkjY8Q8sF1{(!5VfTzGaZiV`JY%06Y1FLDCJm&{ zJrjFH`s*~Evbb*#_BIG$``1p@AwS^Nt)FUK>dt#1Ej?vl@E4Kzp~Jk=t*sbZP2M+G zVxF1m!-JXqXBRS1KS|8>4T^DASM&eSVQ2bxhyDLYmHwZ8{r?lH^eimQEdQuw1+FJ43XQ500qT zr-*^iHd8$EEEIdl@Hxc9HSoVqW-M>tmpzkzrF)dNTDBB=w0Mj^UL4AORn%7Y9B(#l zHDwedMn(boy9oq#3sMmNYfJU>`MX&mg8pl(;e`IX4ekApyRzi1BOS&$gD3>}t@!`^ z()iiL1~w14Z!~Vw!r`E1<=zFIN5~j0stkVCYZ1Mf`0AYEf)zH+VWaTy~aEwhNhuVkkF=9a(myj}_t%E1`4gy8=`f&@E{}ygz|m3|vb- zk)b>T?@RXQ0tM2q2BDpKF;!s&CYTw<3A`C5UPxmS-B^|B=uj2q<44m^N6 zyDI`|>S}}B(!wJ6Q#*Pv0`#9B$`Bwh>QhWa>KuGG7*DDApO@TW)M|!>!2fPW4n~tp z@+7$613(_%j=i;uEnkEf3POL41Lol5#h`~3hn)GK1XL5T5OO|SeEJCX@d(<<$N>{{ zNlgOkw|Qu%rW-8l0MWm%eEi%vSM3_!c%E+_`Y1?A!vC8_Z|l>a$Az2ip9LVEL*$Lo`M@t)TGb=C%)2IxYo#wf>1CAF=)^pMrNN9j}9F{6jIL8i?Pl zRm*h_46YMLg905?KPR-KFLf1Dqc$v34Reb}+{&+FIy=5rdlQB{EISv98LHPJ$mqGj znGl5pk@0L#Uc$jQGTqKk7#GP)XG~)QC*8Ayl=W{{=7a|k>qY%XmS#w6@AGm@sQL5S z;gDE9(-@yGf>;t)-LKsYc@Zr&3B$Mf#YyhSQvLX$9%Mg*r=jBaVa2Vj8I2Txg_PKQ zl>!R!MtllO(@BeiDDBf2H!-ckns&ir67QeLq^ZC`KlK*AcSAp2!wt0J&7EAJX@-kp z0-rGoPO5Ny;r;4rqsErLz)j$Lr^0k5lsaaD{>fkLcIJBU`hqahZXmC*yi}6fZ*yIT zu0&y3RUrmFMA#Mnr9_=1$?KDOH{0H$Dg`r%sX#vJgWzY1NTEx0()9EZM|2X#Bya&* zVj^Z?oI%umLV1Wez#h1Cw1MsQM`b(?K6_x}uhm(;8qbuWJE(;L0-erjQ>$|_>KeCu zH2v{@LM`Gr%BNn=yQ6I09C^^(lR4hzH*Z_Dz_-|a^W}r%r-_*a{OodW%+HhxYB6W$ z&vxNWYLiHfG|Y8l0jme&+LY75`E8rsf`}C|zFA%HL*HWg^}srdn71aovH5JOi1Ns@ zWQ#bMNJ*%63VTiGaN+b1Cgv*$B}rd7c)AJ}7pfWc@IJjy3*|pEbs2P4kbAKVY=Jr~ z-Le^af6qeW?Ffg+_IBV%#{KF1xR9pYy|ze_e2^G_`r8MbuZigK$uVLkLE@C#Vbo*k zBPotJJ3<;-R7mn)64EqQ=hGOE_AnZ}pM4tvbDIMJ6y#V}B?b=X zxyHP89>0`tj<)>7lzcFo5J)Yb2iywBdbS^BExs@2g4ZmMrlE5TU}^XPmifR#=>+pl zv5{p$oT$D$@#gE^!rAn>OsL$EyTV15lmRY%1-V%RMTt)g?W^BU$){`^yyI zwni}l>{~G0>MRe*rDs!%6L%RA?I(D1=hXau42_lMQss_RJeV@rvsx8&&dLIh&RKd5p++hjC0nxJBId)eUiMLNrCmdwlCKaBLLSv;#N9NUWMrYJ#*yi<;anyqSD_~m>0G8}Dft7F`yS(ek- zWb%u0+=o66p)lgkQN$3aE^!AkM2(g+ZQ1)P#9nQ1Z``nMSC6PQo|-N~K$hFw^DEBu zcWpC&&}}l2t)H0M2+<{mX(xCVG>7F|+Fe3@_wToHf9hyBS`>lS)jUC(GhjPyA6^@p z?{{1-zI2;FdHo&-lmv7hhm0G`bQn0-0-@=+7fzmE#Hpd(^H?RK;{0g6OujK#ZDX3| zS@s~uH6{3MGgz1JaN?RHi8~Hr-7-0ZclQOP#Y;t8J9J3(+jv9+3n6)h9Aa7jt1sqL z9~-Z@;#j(Epc@C?YF;<;x{a%<1C`O5Ptz-6irm(J441!6b}`Adb;&W54Kvdwq&)^R zanj_j$Uc^+cV*C1R5Izx&&1i1vGv8YZoGIwE_)nYIh@6Dq!w4|(-MdDG2HTzr{>Cw zL=CG21y(?cUp5_mB1e%>6Z!Hy6ZwSxrImIRqWEZsKli+c)%G$VeM9}S0S4A;Vqs|F zySH5Lw9~oG%hcg?!Y5W$zPB}!L|JPyq?^klO+CQTx~D+~=A?iC|6DdyIALgjGxSwm_M2a1Rpg`Mxm=oU3ZUJ=@(A! zr`qm{mvg(X1RUwGMLUkC^-^e1? z?G%CoS2Ic^G|ew^0#sr^W;J>FtM=AbDhXh8S3imrFE`j6Dt*LtpEPG?o-Vc8vsZg_ z%Hp(RvfmS5IZb87lJuP2^{*m3*A5)sBTOa1zZWJ(UNwVSzsO)RmW;$Xl-Sn|GY2m) zvQv^MU3HrRUpT3v(krg&b9G{5uY-DI6e{SBNyy2<`l{X+PmEi$a=5eFZl#w;h*hUq zTV(T?tN8%=(wpkM%4Dl$aEk=0UAI>b4#PMQ6kIahDYatOIPAfD_i`Q;Ph_4&%!bQ& zXd#(E@xWeJ*|=aVS5|mg9!9WIc9y;2p48Tg)W{fTEUqg@h#3>Bu+4gL=IoRaGM193 zP>sXcZSnQ4*^D{HDl*TR8quCSqE4!m%NOI9u(BqhBhZqczaNv+7!aX#NY+SCTg+QM zeCR;!Lr;X5Ht4YJ-to{`HkVvT8fwZ~oL|VOflF{H4g(=IaHNq`Qf_;zF^5Whec)u^ zsNi%^5)os9no)>@Of2WH#$3)eRjyp!atHNAIQ8{J=-9;@x0wdVOBbj(-MLA*4oT0Np_Zf=uh`_f!@xyQ9bm}^2*8<0WkkoLxh90qL{h5T zD|o5Ba_E3z02ewnlIzYmy{c;ctidNsq3{C@iDE<2mA8F725#YfiM9`CP66|qsz-!8 z)t&}l(J%VpfAh9o&Ricudf!u%*TC0n?nlUpP3D~l?uzK7-o!@fvdJ`h*3)8BU2G)Y z(>uvjV9`&bE^w4KNLoRDC{adlRchN*Nz=z{K!MY}vw6nxltz-s#@Oa6;Qjcvm>GFb z(0j>yO`hBqphse&pWNHj_eDYx-~5)q?8@%>gNau1AU=H|2kJCp!-JnbEp{r+^zeg; zIYG-Zm%R^_Eb(U@b7AADz+Gm&_yq$wi8yDhr6^|nWhu>sq#a@HBN$OOF)v@Uyjn^# zhx5gvQW=zkC86?k(SAWGedU#x9_I??&&{+&hSxRU*Dh5AhlSaz?0Qd@9+9lkiwja9fL2BG_NAfI z>dVl#gF5wC*(t*n`@sN|8zK5YZBZ@x^{qio(gy6}Hd0@Dx=Y$o4oVT^JKqW{C_kZ* zVF1P^x$fz_E4?~vTAh^lA)y!F#pf5$OgNg6C#OEHIm35)9#WDA7v&1l)^Nf@@YqL0 zB_9;q-d&flDW{T6)>}ZlA9zg}37sVt*%wyxx*mrSNajFQSn#Mv%YIN)oy_~*t0k^2 zebgjH50koa#4H+mh8*^ZbaL>aj*9WyFbzZM*yzRvjUCWd#c3FZYyL*BZo;vIvz+u{ z#zY;4!(oJL(+98C&u@pdJR}QXv0@8bB0RhNRUomBFaWDCDp_o;#*76opD)3k&@QHg zZcKbnY`KAC{^{uKX5i>ACto5FIXyy3JGRC=c5DY2q83tWF%!ra{ zdVO*19I&WEdy&eNtr!#eLF0LeXP@rN#h5u>u_g6bG0n`$Nj{x=fwYvhp{D+lJi-N9 z6B3XT@H*xu^#aQpBiegnl&qXc`=l$>vQm|D$&3BWmmTsJaun~<(u*!IBpS_zGSi5I z#D-JLs{jt6iAyG2kzjGtCoi-%X zCu1St@ZEH_>bzZag>QP2Xyox0HJ_^3Tr(!YH-D-F7sNMlD*=b#D0O0Z(3iNfVE8mUIFiZQd ze*dKZj2N>s3{_xjw;rc%)9UCxhK|^yqE#vcsVBP{ughPuD8&eT!*@ zU=Ov)@y+i^E8D*QOmi1Ij|?Fz8r^v>f)fR*@3~q{W+Oka;e&jiO7e_FNR7-OSG%|V z>ITz9Ov3@_`~CVWK@mL6w~-6jMiTeS%=hNbxUwV-2T|+#5n8pLPFJ_V(3wE`6h5P+ z5YJ3kQ+Dwe+uV{S7Pa;&8~Ng2C5hA7QrvAN0z^KUftC;6b_C)+3Q=Itly=LP$rwWF zBC?ajn~Gv8A>btxHLWKs^ko}cxCVM8^9xD{9tGb^?Hlo=Y0jnu5x+v*p zg$L*vk!({me^EaW#d=-6ILAe!kMx{Rwd-e189h~gd5J@7Nb+Zi92R<}!^o+x+I3Ta z{{Lt?$MCrN@9Vb>+pw{1b7D8Plg75~#*Nk3ZEV|4V^1(K8r%Ax`*%Ih%jC+7IVWe% zcdxZRd++-NmDomiheTitJ$g4KL7;(U=>>272_2>5TKapj72bN~nu!5We&7TE=Lkcg zNAFF34GZt^EMJU6%l75H@PNOaNZ3Wes$zc4TK>O?vA9AwDtKMlSE3AG5k~}O*S^)h z(^IrsG#BwO8C-du^bG47MX!#ZBQtlKkZS*d9ewVwY&>`ywB&$xTkme;R0{ehPlAWx zm1c0LucG082D@Yg$`_j=gU^b+mu0OcZZ>A>5h3hDp~4xYqXY#GQ3lV?Rbt1?xs$xi z9Zh})t;GSQ;T)cUD+GzJ2?#^s8KabLONX;{%9N8x8zq=JmhUHud}$Dp^_apd5xWX* zJMbo%$7+ImmFPf&QW~L9jvm5N@hEnS_u|OubH*SUHdW?)>vf{s;U#w~T`7IX@+9I< zYU$;6$m12V)fEN3-cYTKpBw*|lMi3FBJ4PGMUmH(vh2~T&q_zkGFe(01RNQFr7yxx zBJV1i9=JwD(aCK4=GJ9ff_qP4cuFB|fBB(dxh6iB`;}a*lA3A-bJza%lbH8CRu#u zBR#c-_az-LiZk14Ad;+@f+@JR%+CoOd%N1gh1QvrRQXqd@B>o4Ox);asN~y6j!D@X|+<=D&Zj za;d6n=Q=kUF68AGMM?Wm{HE~wcK*3u3{l|+)DG#lzHUYZ6Z&Mazx<$O-bV>n{E<9V z7GwJ%^u$)_jh}3qDLjGDUT`S|%1DRZh~CqihI8n5M0SePdepDASEyRj!xk5zotKiu z8@vuL|6+G6s?)TUPj>Hyfx1|niQb18LeEi7QuE&jT*ieD@{0ZBi5}88d!D8F^u_bgtp>W@CF1cMN zuwxamFjy@|13!!8Eg(=uQJB!Ml@vII-BbE_4kJv3Y^aNr&RlpYkD|Uz;%+*GQH&-ZuxH<(u0e{`hSE+J7Cg`;{G^by3oXik%p)`q=Kxn6Q)6r2d0<`)7wq>}-sz6el@%A!%Dg_}U}KZJge!T1TNId> z7e#y$n)xx4vqC)Q?fD?eA}4Q*^!q?Tm|a`5vKD`nnyjyj5j*5}M{+1g^ULghd`snU zX6m&Y876@Q-!%qLI~|OxMFNE-fhoa>dpVAI>iPlT%MBFFOrbPOn;F`g2B&ccv7et? z87|dyo8w-m%Sy=^=&rvWO>!a}pLySsCs2|U-4j>^&uchQN+d56O#pQv?)>uF(O`Gs z@%mt}A$*YU9+3}!2*u{m&AlMn8mUH-eZ8}t&daA!FLwpFOjpzaJxUi^XGv!>1V zhx6tJHTjJ2R{k5u#K+r_%SgTwL)5pG=&-4xMfkm$M}&0|PM?S1@u>~CW|>_6_n{&1 zbXN=COsGB=(mM@V)jK}-;CBCDTF+bYL|Q4Vkq;V3ux}uoz^b1&%Zd{^5n<7hgZiuM z>sbxK6A)9X0ZAfvRvDg(&b6GRkfq8KMj3u%aCazEGycllsR)eWRWlb)*y(~v8WTWf zM1#ay-8`4t^i-;wb_VC)S{sTAkoz>5702ai?-aU9YBDQEciSNYR?z3}hn{%#f= znkF+C#jjwgUyZT~UDk{6tVsTkCOXj^%uBb(t-T50e{wP~5$=E=yaN;_g_re12^-}Z z@l>#-35rQV;1h(aZizp}o758pOau_AA7{Hwo&sX( z!-tToTwVZ2qI3Xu-UO-J&cDm51K466+?njd;=Txk=R-{P=qOLxfk-nHifZ2%0j3d0 z#LgC@F>G6^tTg7)h5Rb5LwEV4%)zIKWnmBS`Ci=H>s{=Yb&aTfw-iwWs3p#4c9U&A zpPp!a+bjG~#|Q0nvKpU(>UA>=Q1d;XI4mFcp5?0TIe-RiTXAFtUZ)USmV(fRpS`_4 zM`#H2l#Q2V%EG;_X#)>bdc13CvC$J0-wMw7%+VJrcPX{d20%EwYCYt8+rs*$V`cPC zh@lz`p9i*mK|+I`iwT!-dsGJ{ zuRI)VJYU!*6I`fN${ua>2)#`Qy0NjF)Fh!=UG|>twI9ubN~ms7)!;*Bs`nLDR)WOy zJ`t}s(Cc&6oMo#zOg~O0p!ykulr~z&?G9d3armzmEoP&AG?>O#fA&Tg*XyI#gm8EJ z17Sk+$t(3VdLs7f@Uc=c6rP6;0_R+Pd0wpP+&NR3Dg2%6CYbc;*R|BVhdn|F>7^dw0@Fi>_2P(- z?d$f8Y%!7TotR=xEkldvH}$W-;70CumZ`T6jj^bY-RbH=(mpwlMXhd)MOtyS`Mm$G z>|5r+78*ruNzos+#*lN(}j@A#Rr8*(g9uP#iFI=zIZfaLMu~x;K--Rip z63MUQ5UHz&4F6X*RzUL`8>S=Va4;nPnEr~1-Tc^}!S$P-?Lo)SwdS^S3R$Sp7*-DH z4ZZ|-&8|O%*$|lObvQqCXZe|?Yw!yzcwH$d9yZ1FY2ig+A)3@FMA$gE*YCG-AX{@+ zk6x!?9dpSoqq7=TYZ@nP)ZakVn;pxZu{HXj9mOFKlsyLZ_pQ%j>pjj zi|AeR0h5jFqFBqV_t&wzU>1?Yv)5~+RIy5bmZ2)KO6J#%F0UjwQPSQu42ZE(z`@(l z22+|6VNJhy>P;Y^c?mzohtQW$T?rTH6g z*nn*1`5y&nKZv7hJ!~hYiw$UBq<=_2LW`?R1%Ke524h*@g=^^oc8t<~tpT^$1@I@# z8Eh?JEBbq0xL<9R8VH$tka;5AR)2bU*RvM?xo~ye`x~Lym;xb(6PNRIyBnDNbKn3w z0K%Q;07W9n&F+|rf%<{VZDBr|zIUI?dD7%T1t$&9C?Sdof#GLQLeRA3mRRPw|EbB^ z#c;h1=futW*&liZeE0tI=7{<3yOWt~;x*r;a^iQh=Rlh&Jin5`X3u@4qFQeB#XIIf zwyzc$)Dn6smtP$Y&5)wU>$u+Vd#n8TW2@uN14g4sHw0VFrHD}w?{i-t4SWY)+T`22 zcsuI)jtMl>$9cB)9b)kbj_JxLWAEYm8=+)`OHKIMJrJV@i|$Yt@pgu)<4z5fF($s; zhxRes9e;a8ID*w%Pe6&ib_no(=xggmMJ_XCNtZ`RCdPpe7jMetsi^KZ*Pd4{qTl++ zOrlVw$qJjru=rfn&~kw>g6pA(Q52c=0nwoD?qT)K&f*n@bw1(mxzoS0o>3khW%)ad zxxE!ABU;_%>H)JOaQ#750p6V83K2)5|6s2F(bU_QE#z+W9J679qo2H6FwJKEEEr)A z#taS#UggvJmvw@fFCy?B{Fajf_~%}B#r<@}QABnzRRR1#apilNPu!2Ay^BCy`g#ZD zu!Fu06@W(kkxSgI4*h`rh>D+za4r6`RF>rLIuY>%D500JA@?C3z=HH_p;SUjH*F00 z?eu9bf6=6y9>dPk&L5B_s3ptTZK6^vx{nV&npuJ;Lk{zGl_~y(_Kj|tX*zJ&EKX&F zHit9{ZXYA^L%)H3ARy1}!db+X0nVWit^>V3Q1F8R_r+~^D>9;!ws@05-IS^59nw7(y3GBhpA(GZD#}o z%lY-hRWqWkY6-1xMY{4PQPh?N4Y_I62ep9j{4Fi_+%<;gItXV`YU2Q6JU-Z&JfO3A zN%eZMd}%vZP`->mEZ?-Kko{J(P9mx0mb}s9l z>*?XdlhuP6rWT=awdfy|Y6U*Y+pd$A26ILGZ`J(nYs+wbO-%kM#ee30Z0H}UYi;eH z7r7s{AD+rrQH1XzMz71UXhXi7T26l(N^H6?Jx zX*VivXRLSzOegfVl!!q-gLS9lj?3Q?qqNCM+;J2{_);<%=_E>zzc*m9LA<1eJRe|c z%DdFtrn9_vC8q+h)z|7-qAlG<30Olp#F%|#@n<1V|3@7dZm}zsh@xo zujfwbkg%n#?ypjRk+~loAuTjl3J4I*kF^XkZiqXC>eltGi)dd_8YO;>F@i$w>b7yzu&8d z2`fwYvwa|yP{S-Otgm^*`8=?Ks)QPQI9r|NNs=I_c*8^lsw7iXN z+F8G+nVpsm*}hNAq`~#GFn=@Vl(A)Fbk#{1gNYE|E466hBSZH1O#s~yTNwb!FmT5n8q`zhkf3%wC!<&U z9YIaTAZ}R8Mhr7&QmGHG-DXD=al2H?X1QC1*#0`jmT!HTi5F>Vk9pLfnY0A_~jx@s|U_Cw$|yv*c(Z`%FVH6XnhJPvE8hel&tcU zw~B;-W38mn1k6=U1Cmg}M2Gonuv+*$$%tu(H{h(HVi}_TtOJM+mhz9}i||T=ipNz8 ze$D^tMC?j0+1u{!<~M;X?YDne`mXo;D2jYwXWwc#y0Ssyr?~2+x93)B&IUMNkqKiE z3XMzuXCrLkI5z2CuCSaIUtau4=e%0NGdv3N6nfWn01MJukYg&(g7z_r?us9|o$%Mn z?J~saK8t$?``qG^rzh&aE#ya;=b+A#C2x%+OfoTy%nu*;WCz;ieX`C}ZYl#m3NibQ z;L*wY(K*3>3k3QLP_WD8=bn?>3YKXejxEB!dk`N=y`Asie%~_Q;sWJdXksfi=v1z) zhPBo|-6~cInuKu2rd`$)S#3$V!fYK!C*|vMIt&~)4C04puJHfLBE%^d)tYl{W=9Nl zxnYCqIR>B#lC$9G3ZnIYC_j3?DbU=nJbUZ)(|26Bh}QnZuK1Ydx82r%8D=*3C(>ZK zpyyUay>iUn?8aE^$cs==p-h~T`>+9_fA=KCvmq9{{#VufD^s)yym}QR{l}?Oq|Su1 z(btK(Dcbt}mLAr&X5%$W7W?*#Bu-9F*a?^l%G$5oDO~d%Ri<(xCv_)h)a%PJx3EZR zyA2}zjSu~v^3pvbNF_G-60jIV(8Dj`>sXy7l1$l8lNLzR94%Lm^opOYzIR}tzKH=5 zdoWydalMr(L)axCGiuqsP`#0Oc#ac$V<>7mzy}bDGGZko{g>jsy`ea)aMp~&h&SC^ z>SXlh+pqmVU+#fVy{C8LY=ZMT$w+tI%t}lD_dW?V9JW-U$F`Tcku#zM_suV0QR*$( z=RgtG#c%mvuwm%JCxUejYP3ko&sU}OsAv1g$>YWp)*!%Li&RoaI5t&EzZR}nRMRXZ z(%Fc;KupWeXLQ|h(J72iw%!etI2Ad4n8(S-satLC^lrjc1M0wI#V@4%xT@D-4XJ|+ zr)irODeb2KVX__F3$nT6dM>d2yU{oAXw8S*^izkO(mpdQ2lu)$EAlIf&o=NVJiVcx z*Pm~L%>}Sh;u)fk(2A`&Ho4bXTJ6`Ul0eY)4&F!3K@jV%D;si85?s+Kd-6&i*bir=)ng?`X#7B}*^H)Za!CmxeV#}(x-c=-Y*e68@ zmC(5B040mroZ;C|E>jKJbZTCNXQgrjj`@o>MO{Hc-gD3RCb6X3pMN8UVM`CC94EWN z+*v)lTp=5|`m8&EqzqEG)j&XCy9CeLZQvc$e1CgArcRgN-!mYLd~Sdd^*v%(efyvs z(CuvQRvNXZU$TrdvrO|T%n5O?psc*B51~BWn_A6Ne5*=`ld4}DB*4wmBx{?e`2p?T z*lH+q*eDP(ie3+#r2V*!_As7{r&`~uIaI@2$t^qwD2PrX_?R;sC&ElJF}OkLq_Xn- zN`X6uQYKXhaRouyj=pnQtV1r}+dVQXhM(h)oJCm(5~x&go7p~Jjqgjj_)zBbCg7FW zjAG#1B<}ac?>++v62Q%)hkt*WRT*|LA_tAjc(+1~Q}Bqyz_q;kmeqT4c3V8qERqG$ zGa3P?IjlC_jOo~~GJ0h`r>xpu<0&v(m-{DQxA{sYDoENY89nW$P6dfiXs-jC=Cz*mvF5H^0lUai1Arlca1`5C&)Qf+z882aCW?pu+hz{H-AK zx6EMtFXOKN${^F7u;J3U?v8-p;L%y&zpTs5Jc)HFs0AReiXRO&~gxZ-(85`NvyHgNHc`= zLa})9Ym}Ud{K-4}m^m|Sq2=Gw`Gp7AO{!{A2{Isx=URn@%GUK0d08cF$=AO{UQKBF zqhqKarcsI``B3v_&H7!XlXAp)t&r2B>okG~)V5)sT55|LvhvQ63bfArm!ls!o~kCZ z(si_HScNKRtg%iK_cCrns}9LC*Lio3ajVF1b)|;=H9{&!WU%Rul+rBW=%&RxGbWx670b zAK+QAEBYCjwA+`{lLrf^KQgt!Tu={~D**r-1UTn%`UCF+e{5C`&8MpyM%rq+cU2JukC-Ly+&)c$HD~yf{Z+ZMAl9YSK^F{UAKKUECSM~h<6tO!1 z{!K2F_viarE ziebqRF$X$4*YnxC-4zT9$74!`p9LU^9DMEZ>Epk$zT9jGVNcbhtdc!DRbK476>s>i zYk~44v)0B$Ey-dG&5BxEb23$fRHGblvueutcI1f=Z5m4;tBzD9;#zq@()a}ZyiTi( zD#gsHkh+^+==T0b&&|Z1__^HXcZIxp3)Tt6OKb@^i>~^KX31TT{c`~Q{UYoJRU#-T zQa|^1>H)m#N?V2cQ^pK|eKLW{^_hSh2Ttjl|I^2ZGff54OZ#2k93u;2vN_yVqW9L@#v z`<~OQ-7X#0x9so>^6ke5deMPA_rK?rF7mgYz)6ZF!P}FIBnpEE%0K=AgkgK1;z?!4 zrWL3yH^4Bn=K)Ps)PeJnDd=%>m^}E(Wkr3LvM5*Uw!vC1Q-)_V141(5-8hR zFLcH?R0d36O?ikR9FT~o^?bY%@Ys_}O9q18JOunnxU+-v4}`88HpI+nf*1`u{?v0{ z;+JHXI?IQ$3XbF*71SHfdXi(`M*biZKrr8z(l5=E4=OzgQiQq52I=h6xscnw6Rz*0 zgl!#N&^!6cM*k)2W^FBo#XrjQvlh3P%RlZnPNsS= zG_w`b(%bcfO9A(auLitd_VaZMBrL7H-!~7{qQwOfxW;a<0XWx)nay=L07Q_nmPf%c zYQ>LY*pc$q2c)a6lm!RE=L914Ivao68+e|q)MFDzN__sblIM(~l^;-Q<2>QXkm69e zPQiBcCsiSvI8%m1`oQzhza#wchf3-gk-GVo)ID>qXr#lTXyFoR(^Y@%nEl&vH*!_C zFE6^~ROkI*^AT*|nTmEuzcrKdh{>^0t?x2M;#v;z)MA?QF{?N>XDrb5m{?^5{Y3_| zm0B$eCu&@~FievrTCLZt`4FrqAT@34{?!%Cz!qpZqLaTuur|qZ(DRnwhA=t*A@_z+ z`zeBukM&h%p?7<`)ZuI%-S2crPpI3mZwsrNTOv^wcTJ`uYe05eqaq8_e4w*B;002h z_0V}c45<*=V_KXfNUiMlUFj_RC&SDt!pEd{F?-8h`PtvFD>y^i0+f#Z=FLve9*ZTE%1wEwdr}vS{e;Cs^m?ZDQ0Q2Y1#*d? z=WR;G{fRBqg1Z5egTETwWe7HFUh|&`A!iIEuk3C5p_qJ2CL<&?TZW~v_I2ze(1}*& zzuQ}3n&1|{NMdBpDy=v8YJT^j$^V+jH`cs_};5x0R)gl1=!^D&Y#js!Df zEh_Tp;Sk%bJV=gU)bI&jrxi8W2VKiC29G~SqhNv9xc#c^ zMsX7y!Fj25#Mm{R^T%$}gd5$O-p0x8a{PyVgY1_!G8E`hds18)Y%5{3|%(i5~L zs4w|GNz3^mwV&*e)Dm7*Qaxz?P1e||HaCRVnmdQyiyIV_rq~u|k#}K%DKTTKqI6F_ zKS|RYUnIe-d-w0Vs*UQg4pcW<5Ha`L6pxAj{raW0JxbT(Az;p{`k#STXAAEZM=0kYK z4IaPOP3taSkCB(MSTd9b2uay%jsK*1dau)K>mRSkuqss@sdnlila7k}jI_zCiz2#-P^Z$lB5ufX%SG2ko#c)EL;k z#FoszQgS20IANf#vV@uV^`Cq%C8i;QX4cNZv}zV?wdK`E$w{F#{{E6FKP#uEA?I_d zO+HAA;`sys?|1|*h1PikOb)Tn1G7ErNl(~tq6r3i{D+41#8ni>?j%Ej1!*iC)A_ME zPZi{A+qh!l>snurR|7d6XP_Kp<@tIToBeFoZl~UI3!1jNK@Fi*estc7o;@mV(Zg0T z;bNt^1DLh`Xw3F}@oEzTyd_~sLv7cVwtg9TXOjFaEec0s-}mbdd8vC6Gp6#3>?GvO z7yJ9?XNE&h(@GE|qZ${m)5C9}Rgpe*G%*FLAnTVw5au?Rrl_!C#1gQD!1VijN?Csl z?T}}#Mx1v3$mW?_)!OIV(tmUNly<7JVcWJh7$DVHaZxzX*!;kC-XkBexHwezc*phh zA9~i(`rivoptdM(*!YlR@avaqHc)NK9u#N@*iMkzaatI#1yd%wJ6X_`my!YG;(HT* zxoJyZ^w_RL0Bk7nJMTKc3FoWzNx^{p=|imU6&Ouzqy> z=A)d1{Z|0(P?%XznC|&ou%!6uf$O*VMKMs;&jxSf(uAsUWP;f=@LhT>;-BJ0FNe)3 z|4v4%5Mfx9MP{k6$|@Bbs?X_h?-8{#8Q?B|Fou@l@hs)zZuZ%U!rdclSC4SfqMcO! z36f-*A2wg%*+0%oh4dLjACO#Ge_Gthk6Ze<7_R!ejTYc{bDvigx?hoI7?tor8?S#S zv*C1FnANwNPAeR6^|v5P&{33qOiB8QNK~EA+tM;7U20^w(%H#t_Ys4xvb4zgREjmn zkCsX;@|AD#-vo>0i|HvBMLWFcPju|wSjvAzfV8_$Jd@m}5zcObY66BTf3;v7U%cu2 zFaK36a1c4&gGrcJQ*etk%?eKD!@$mRzpw?4c#e$OA*LXS(@=%shP) z^t_Qs#ze=$_1)I+FI6V~H&J4ThFep4Vny|=GouP83Yr#u!@(@Z4Edfm6}WLvMvcPB zL2h$t%nm!6*lZ^bGYW-r=QP3^LYpUVpt&qu{mke1=Pju^HgXq}8OfL*8tCbYiZHH9m%KwB4nCHo(e@Y+ajfdEpJ!Hu_@#%25Ua{?YA)6uavfY5^^5JasH?QY< z1zUZ-010gW*0CY3p2y@r05e{Oe+EEtPryQK^|%7-v`2w-8 zM+rd_=3=;&;WM&=Or+%J`esB%zUrL|>DvnDn9#JT7bf z3Mu%4X?4kM&^2rOsr6B2pqA3!L;3ZWd;HbX`!lVUIi{1In28Yn2TS+B*1sycvyMeS zjEb*tQ4r&6MKM^0Lti$tos@?F!Je8=5_T>-UY>z&N7P(c>h+q4e8YC;ZI zJwPuakcYoc3{5qiS+(3|nsmFXEc6+4yWHClci&Y97spm~T<^u@tX~Z_TEqnLI0Mew zl;6dk7dqV9^%M0=PRrD9TrpXb$FiEO$ZSyD+zQb=xC7^{!o!`gS6=^NSg_(nr;7(! z2$i~)VpG~O<8Zip!~Gsevb~-IfxIu^shAMu%?=wis2f-vI&l2!R4PEq$7)s3H#;h9 zkUi`~a5gOWZcNj?tHJJlY54Yi=;5R8&w2x1k8NRh`VNX+aj4FV&xY&diZ#Og5O;e2ZkYk+^8R}QvXzVZs5uokoc1g=ld`!Jl&S%>8| zII!^jvi;p;Bb4;&DjW{5y~Fe1+#JihPb-L(^*XLD@6C~`4KFEzKh*}SJWt}OcAB2H z1DXEhvm?uX^{K%Zx_TeyqR@{60o+|t;eDI~wIh*vRuQW?s$|lpP|0q%;am+c1;lkH z<DW5sua4^A+-x&=*clqYo)ZV-`*aaN;EE;~4p(jKkFBM5LrDdKuf}as-Nq!NSRI5VGCYf8-<3T8XecIJ+x8>I?9i zY(Ty>_a%zsY|qOuJM>Xmjz5>dzkmeWV~C&8A05;KXqP7P%D3Q&F6PV?o!6~)gI6iL zsvh%HN$PQRaq98cTexC~?>ZREK#CzD6dOi!6~khVYkgmUfNxYDk%|B-IU6?_(ldeO zqF!4bP}8d%nPSNrZd}-#+~^u!2_lROfMH{EsVxlEXfqs z0|4!RepvrV&uj|-__VatfoHnMIV=8_Hw7nIt`r7VC5lZ+T$k|Bdw%Jrw)o!Ym7U@F zYv)>Hex@S2pYSN7P76%3$Q2?|LDlJtoP{aLv4hh@9v^0gz`I>X!x@#u-G67MRfQ=C zv=MgYF`&Qn)~La&5|f847@He?xN{@0`I=-u8)3iwledmDySAr{<{E|*(vBMtd3o3c zA&qRL4TADo5vwsi=_C+4|bZ##U&h5zTaA`v*RWCNxsoCOngoMkD0uNc|_ zu>anF@7q$D7{&s#c$T-}k-B&EAzkXzPqWN@LKUV|rV~{45No1^YOQPvo{BPf8~vD| zBm4DCMsu1S^IYB1ud!)g%%8B!H8vmAI9;`(`0p0&EwNi>Y#n^g21IIb3f$vueWDr{ zmHu4nhcE2a=+_(3qX4^PPHTJ?+#P>g?}{^h-p#;SUgTBeu_#n*Yh-`P@#PYE-Et;= z&B|>?t1ixM+ZcAwo`>h@qEQGOa`Isrr<$+NW+T{O4?xpso3BK$5Unk}ch(D=&4E*# zxeXxDKtRM>YzxNaGLrB9q~YPI6XgCzYbog#_jw$Z8EWW3wQkXq#f7J!)A7PcVVK7m zYgYQ43m)|qF5`tEJ!`L7$oWuhkz9M8EKwy;wrLIMbI;?U+F0i-*TF^S z>+toTk8S|>5G#t(Cf158gU~u!{Z|kmd@f6dz**s0WGd; ztU84U`teXy;ny1gx;|Lv)AkN{B001LA(ZtUV-QwowRR8bB(qQ93>+hssH%GyIMOAFU z-z~~``bCoQ1(T8!zU}bQ4j>%S{0&(O_I$2D^s=oxeV-Xh{e?@9fy(-k#6UwDnqVE3 zp8e~Ny5#CEvh4!pqvrst`p)2?C6AEaS(;=? zP1XrG+&$%yv_6HMR9^p{D9!mU*iSs`4zT*YIR1)n$Stt2U(T!lGSQ^PKFp#hH}h*n zbx2Wss{V0*5L@O#*@(VUE^k#E9EuvPPABb#+X6;+A=P3d$1kL)4W~|72X7)U>OEKe z6BYs-U{2bF0?iN3OCD5Zy8d za<_Uhx$|>(B{$GO{6HQmuKXLxOPXJdpe2HaRbLQsV9jFpyjeYu5k7>&0uf;cI3l!G zI(R)WKHXqr%l~Zr$PT$ojdLWn#JeML$7Rl@xds0ZIg#`0KnC?hdx@)@UqjEREvh53 z*?&`?nT##%IB{~Mxy~-uw*O+vrC0`clt*Fxyv zin1d82PMfPz;RdW@GjWLXmq_CEo9?2`LdQbeXk6ej{#k$TYH|#yCjZqCLe=cg_TLJ zo_BKei;*Ig+NisW>c9)KA*F43S_x7qUE`@HUqa_*$t zg)sXAqb#&(dkJe_8i6=vW;tknb>rWT0KaEGgU+3DRKdt-6w5Nqe^2i&#y9GlTv`yA z0d*GWmDw>Cz17s>NX{hW>aNL-N&D(oD!O@?c1SYh{G%k2Y&aq1N5A>m&h1S^%=z}| zERV(#Q+nUiG*tTbnIQQvZnx)7^85L`;*ky)Q0Xcr7>hFu<#g%J?X`It$azn#lgst4 zs@(Ju$~LI9$4a=c^U*(O0lkxvFM(-oL;)Nk-|A2p%xj=^!cN9f?Ebh(f1Y}oS6=8a zOy*QwLSj_&COqY|M{Q zT!>Xnpo$qYu0D(YKWY?e4Du@TdniN*r;1R?x&J(Ff#<*e$TSkexccFn{^a`MTcK`y z5-l=gwvF4rk{t|p5kN8z0%%pc@S^vphqovT#K*}|PR>1|@`X?6CQmhy-EJ5gRr*?* zs{3z$M`V&s>1d;}K(%DqO9K*QGvAfouKc11YQAB;wy84zxTd;o`=pS7j<*_=>T0Vt z_;(T|TgXePnM;y{CWJejhRLVqfiiT6Suc`RqMSokw_)e|}F4m6q&u%skF2gwYRMnx?=`MXGk-kjczqh4(>_L6d zcR+$~*sT4;d#a+F4>;WmtgQJ)%{r2rn6*X%T96h*3$1jf^N4Zj{RVB%eYjXCnHgO4 z2vocdJCgc0z<-`Fyp&=-%rE`Tloq%T5AEgPBK3xAW4=P(&E6`MDQ} z@NEZ{E|PP6Uq0)%VgSd}&5;ThIxbUtqh7iw6Eal4fl#S~aukaubJ_`lHEMvLNz81F z6wT-tT8i5t>F9tZq54yyE`KyR0Rxsi`aK@8GR{c3Y^ek7s82-=|AUWmhb)&)!G9oo z_5+zkX~`n;NfJ~2LGu&R)ed*ZUy#Z<+jOiWX9$PeiazU0G*WDH$}UK6D|4$hdluZ^ zOgGSVPK{zsExBccTI`By*8Y-RU7%IXkEgmlk~Ulu78jqJ_~mc#a%jthJtl>H+&FOf z2bD|3i{gbP6>{}Yr=33X4`fatwq?)G+JaPF?!dpk8hU=KTY=&d;Gkj~U^biT!m!%X zSltjGu%Z;Sw=OH0?Yn`~)H;U#4@4x zY$9Nf3_kT2V3sj>F<#E0OU_?z*h~_HO4g^7ROp%k5WZuscH;u@)_eu9p&3SpF$69e zGf=!ge6^i7_n+ktQbHRQ&S{@Xb^j0|2^be8USR!hE60MoheZ}AN z&eDM8#q5tmf4fhY#}j^VLi2=T48Jv-vpABW%EBF0Q~4vrpA@>ngG_7Av|RJa@1 zu9B=P5h&|O{eh-%L3PJjBT+DJztuXX*1#N(qNY^qPeV_#E?hsTc$ID)zWWamD*bT4 z!fjaebF{dkUs8ueZNoM(%mvf{cgOkQ3DtblPs#zs4nvh-zP!Of%~0s>E^P_)g4nb6 zf8$=kGv#8qU(vQf-C-NHua~-QcJFLfDMdNsv=rLoJFqPJIcJZ%HXN+ENLFOoOs*ON z&a{oCsI4R7;!|pg_c5Gk@v?2A->7BnC6R2=Jf5t=r!;7Gy*PC%^cz+_PvK)&8v` z(k1yyhVoC`8K1x3UiUk-PE0P-hJfJ*4pwxgBzn)s1B3oT&unu~D zxf1ZxtU%(#Av=6bS<{`Xr@((jo~pO@%(mXMRssV4QLqo33k#xYOr56X28VwBmjzl{ z>^%Q{Y%6Dlxbv})hMys(R4BkC#A#N(D?-VkV_8)l@ERsMW*To08$kpp+E}xzyEt%= z@q+5;X*hZI#=SzZiVq>ogYuA=RUB)hnYNZX)$?8FmHut~oWwhFyvURhmx8VFu^%Cz zGhG{B+9iDMe#HvbJT(nk_D3=sXBRuZh;bwHt1r)Vl{GD8GE(W{#N4BQ+ zu5Nt^auKW`eH8c~lEs$YOH_lBc(>_=h-(=&}QwMqs)Y=TS21Y69Q}x`?SM8 z(E(i8?l)PWvHNb2Xcql(LqfkC2ri=aXnP(Dbp&2n5>`Y6;;H=^<DyIyp8nI$INxJ@fBC2 zms$jJ@}#I~z^9A8?jP7F!rhAks22_lbJ1h^86Iq%D0s5GMm_V{&VF& z$yQ-h@1#loinQ+=GLWOoZy+!5c}%gnhjab4kj|{C&CvIT-VKQ^%KTyI_;)3nw0?uy zsK`&r4bRd1GR)s-9s#PGk;AcEJH3~{*co7&9}=)xM*2a%wN;rbNT@*iIuMF9qgnL7 zyM&xhhKD=kr@MdVJ2OoMxdSrB#L1TO85?#abWi6?N3v{0n*@|Qjv;zSPBy-ra;9c- z-osxovK)+FRniWYrHMR0B@Gr>J%PD{{fr;o1j+`~(L==a(&^28arZs1qjkYE|3}+5 zM`yNW`-T;}V%xUuq+;8)ZB%UAwo`G%b|tB#Dz@$S)v42cy6@@x?j7TexAXn6v&LSY z8gtF{n@+1VbH4RKcdA#)QYg@KADv!$v`ZvVFuSd-*>eIy2CW-M2GH$&zDUABy&#XV z$V8wV?g0E$tzX)B`|NQ5!5Hs~_W@+@t!Har-G2hScvY)Z$tqie6TUYx&N8u|sg&jl zYio>t!dQM-E?lRo70Fyoc%v@Q`()jhj?=W~WzUdUa)NH9+$!V{vq8DH5LZ~l56|}8 zSu~)p`zw6veyN9?Z7oMz$@cqVo{aD|2a=p+#$Dq#3Hi#7* zlD#yU_?xg*gkEd5bKX@nIam#v6#h4(a{xpbz)7V)*;31AWDJ=8=U3zc1;wmzas%}X z5ViVd^GN!yTxwF;VkkQY2NNHg(@@IrRahHn)Edy|i)xQB+HjWuUS)lah6#VOmXpuv znOvRN9iV6Pex$tY165dJV8~<^DZBu%zb7WqIebJ*!|#T-{T+aVEhFJoXLegc(jHEa z3mbYL$olYYY|~|Uiem7T#a>i;dqAuW+jxBhVPf0{;T_3hap9S+FUW0S#n79`%>>5> z2Kt%|R>dgYx<20y$!_ajpAx-<+x-KZ!BZXK_;tr$S2(#XO#m*xU^D>!qw~!$DYKmW z%jr7Jc1P^;+p1TSEZiVDZP1Bj1;0(0$s{AtsVd|m z1&68mc^?)^&?~1W^Fz=oZ|&)h3pL=>#tb$;1b|to;g<$L-(37ww+r)f2)MTV6)E*n z1p72qxv6_!zZl`-#=@rUZFxBjPUMvU;@Ms!w6G&gU3by;8$uV z@>$X(Uxf=RdADkXi$ZaM`6fVU$@L05Kd&Fp6r$#p<1G@jr%bjuYa!#xfw30ozDTUM27vVQ^vK#osz*wGkLvhTL^-S zU}!tBLh+=#%+jd*nr8PtgaSJ;LgdfN|8m6{fJjXH2-(y+$NWKj?!x-Z7Vj9zfp6!U z;T;FFI+f(?!;1-^uX33A(>i1yW;lTcmhI@(5{0awUJ4ATX|ixLc@3Rb;gIF@_5&o* z?d#Q(xTTB^24T(MgG>uZO6Cpo4d_8mV}?xba$)EY2ZjU)smmz5d-Fy~+rSr-WPqV5 z@;1`ZW=FF=u}(2RGLCNYyhP9x+Xlbb0qPi+k+9s@B#C67m* zh&?~#Kw3cJEMz8;v&j3pxTK_{^-;3PZqDnQ|A@{vYk`|d5OTzX(Y={{WXdU|bGa>W ze}K7t!}dieoh5^Td!pL8fD5fH84az%qaZM@R@# zh(99T=w=Et@r_)K99S0Bhy=@k7;*|B37$7|j*N_8&D3cKkpb7^r5C20?q1WZiAKXZxvk9h*dDx?2GF#d}qY@ONV)AL1qj1%5wl5PyPi=liFV z)gvMP@fZVBO#S&m9NdA6kA%l1D$IpMv--;Cr!s`eH>;g~?wviDNSp-DED}19lN1P( z8zix%c=x%7ZN+C*=$Ax=z66D->C{X!c!U+dX&gc2y>B#D5_ufrv9q!KO%N*-=o^Ih zdK^x%ac5ajsG05JByXGv?o8jz37hST2l%@*#CFFkra_E8^1ScBQ?Ggwc6(;&a7=n$ zm|W4tl5=zF*d!ksvk=`JYMyC0jNr%1Bn7#~L)zPeT!MJf< z!;%#m?kaQQPe+qqGGSI|+k;p}lSXkIzhyTv)02spEp69kbG|98koBmO#`a_LK2)?L zrkt(#i@Vhuo>wQMuCR+c1~$B7S?ZXd!Q`C~(^^60tUu(re^7GcB|79v(Cy93k~-D$ zFuUA`MA?fUj|U&3uznlGRW0Hx`V%XA1!!#lPbvezp8qdU*AILIUODGNzFQ!O#|1_8 z1)x9Qx@YqW(v3rJK^sB=6bvM!VgMeFq-b2@i-5qMsGTXGkZEfnBjI*U;a%z~+&{0k zDY7rL#bY5el0bHmp!s9uFd=vqJVh?C5}u4&2qaXtu3?m^p#X)T@1+1wzF>@a-*Na? zBUUd^P=K0%Q{B!gqBfD3xuG&aIRxsLJ7-~4RuJIC=^CaaH4CziiBiWXQiha>L|li0 zRK{k(^SVK9A{Otn*j^8ag5itIGaj~&=BKXylyrYS+g^{zJBLNd1AN_xu zc@mnDgN5PWk_xQ*DMy9bB!}v1``H#reOw*bI+kxQ!_nv=^#|KT5xKaqr997^My3Jn|_$Dq5 zQBR-}h>K3yjWh31I5I00G8YhP0?2rse>S=L{Q*2}mg?IERJ}707CMdpS;wC0qqL7I zNFL>K6qZZ)L^o5@1jLN9RZh-#85TJ%v<%=3+eyP?&nwfRGHn=v`RaCaS?J-j=T}2N z0i_xXgA&pHsV8O$dmD~0|gy37-n^y#V1&@)X|Xct=HVrLkDbwOJ~4EiXbRLe1}8<&QW%Jsg~2fMC)3{O4>`HvV@E5ztur_#_x8JA=nz(mh$v9TYz7arjgTR?_E(JE1Jh|hey||cpkUMC(i}G*2mSsQ zV*zIM#u=XF7n{)=^r7^uZC0R+zKqnWMsikNymg0fy^VyISG8^TG36O+YJPjmN&73C zov$c~{q@KC06%AI-gaIZ7QXd)TJ@*{vyPdyd-*FnzZ9)CVPz~RpdoI}6aE=~i`xV@ zpp5to&XjgEk{>vLDVutySv)RD0@kVKkZqZ1$Yqicuu3a-+R>ol&E5^qerCL=KCXcvJ(D_3_&O zB5I@t+2Yow|7R|&zncF~Y#@u`Ie!zj%ySGRi|cuHxQ9O?B~WR2`0#ZRZl=PY&(j_u z?@%z8DXHfJS)4#$Rq3R|Iqo9n>!4wn*Eg4$FjweY^^ntS=sf8kZNhWtpub4-cfP&f zoi(irtF0eQ9SAP+(v)2QEq+?JUCCBl$9SI0&t5jB(*S8fm>Do~HKK{G@c-b9A95FC z_zc9$W6C}>R~A9w!?YV6o2losxk~yJCJqaqk>sa2u3zdp4Xcb1T?HMVApDzyQ}V!h zSH#v>2d_qkGU|X{lVM#g?Z21Lw@u2arDerl6dim5I@Y~DC4%}Mzar8W4~CA zG{60^J4K>Il<08;`L0X=3T=Jv|@-8NH%YThiQDIo{(AfZr(4qr}PKameWs zWb0*`w-pZH(BzOmWrB%~Vq_*;<;vXU3o|Gx$wHS#CU%cNd41?1nXynWi)x(96YCL4 zE%z+(fvj6U2&^iDdc`{6OYuWYS;el1L9VwdflNHIjAtR;$J6JKAX^CB$H|9jPFC2I zUsECbQ?>*WK>qPtC}8*V>cp)e`EtA6lujyY?RLDQ>AK#oRNZ+LhVF&l^pa6KFCDP{ z*})QWas&c;K~^pcKNTOB=UcUN>LKqrNPT_zWlA-Kc0^+A=Sq(im>l1xv<99^N}-$D z@#oLCw~e*+-`Fm$GgVe@H#CdSu)vA&9AHBEEnja_hh@(B_kEwXD~ijHpmi)ANSXa+ zVW%?}`|dWqFLxw621C!s%$)lV#$ev|*Yb*)V{EOz^h}34RKsOCmJfK1tA;KI@AmHF&`uC(mIxuxQDjs~#E_nAyXT&5a6l4+-AL0>_ zvoSO^b4?-ym;=9n2+`^*qGDD~HBmXwOc8Jaas?^ZZvhhfeA7&xGb}d5Bv8d2CR9X9 z;t1uj-Pzl4nqDzGUw_}oKIuHyJkIKTYh3cp@_DmkGE=?#-Z|ZERsCA~{`e|}2u2DL zARy3RL`i@MNx}^Y1~Li{C};>0Ac#8w6oDn+f`R0_nG9o^WeHNxs^y`QujE5K-<=jF zA5hOkB>wuw2RgHa;QiuN|6RFpjl~0{bHfS$6?vamhWfm0Ma5-m`y8C4T2IV$2 zcIm9cc{^iwfP@b+{T!u1;|iWbvL6oE=pmRTrr0fkSfzaO@X85U}NzVE!jCnc=TAjnwcn6BUThte2X){0GL3*<;_{Wut>On zze&0xb^!k>`sa%m7NFfv)=EGjs)@!B`NweLz#lbb6L1YNhCmLbPxT>#14qW3yF*1j z1PFMFr%FM5MgR#g7QYuFp%W~K9LDpasTSe)SIsgOXJ>=ieh43rkH%)7lez&lACz=; zZZ~>@_=+qsui{Q}Obu83q1NH!o9wq{Gskh8*lgE<`%RP~`;ZnaS@cnOQsGv70a05P z9plEhzB#zEk?4}h8+al18C^7Ru9uC`p|j5x4>UP^wI&@AyrMo8Za0Me4P_i~GMx<+ znD_>pUNj?eY7l*bHWX4^+EZoRaVHW2sfpB)fi9l5?+e$@r4VCF&huWo54~fTf^X#a zvaA?xy+Ld2^w>3bYtH#RWcKXV7Lv8Yo(tdzxqCldoY|_^(UT1H~PO zxW{52vg!rzT1~Z=a2d9rd^mJId&)rPwfq0^+ajb zDHHmcjnJY^CT6Gr)%m4p%YVcDm6JTg771ejHG{VcFY%)JbFJt!}bR+@WV;JoC460Kw_g!Jyd!;r0>aqo&U5b zFJF@MH}ar~~Y4ksUnwhPz!GDz7xZ&CZr)ph3kOQD{)0~&^(;rQq%)_RkLW4E5!;-NH~ zuER7E^$l`?5_;a^l^)N6J@1eD2@_$|wKHxb9M?fsJB`8wL-B?}^NZKs`sk6S0056s zxro{GbeUbP>#bmRv$C??@XM#5pb(z+UcU_s1;O$jOETnd{~zwU#855utKx!aw5mCV!!{wg0cwF ziyM3kJotf4Fb1%_zba9+JPwYto#muK#ePLCT#S&_;G_}iLz*Iq!vEfad3$_YGW>nB zo0>iOLuC1B3+T&|mYnw89b7HsVyoTB3+--lNf%GTuZFD0&07KwB)%9Of5?Q^bk20a zOHDci?`ma6ovfM7xb9}pMs(vGNbXL-#q!ZlPz^N}3pJ=43THs7I|Pp+zUVv6l+<-* z+{6W9gLew6m^T{B?pOgQy5D<$G1*}Ybl8{r&O$cA5m=>-(BbY(T1iWak~JXGdoa98 z3erJ)CT|m8+ms1)?q3{)x(6@qHM!E4sdGz~5)P#HSxZp) zH#|7=#%$!;eUteLAUedlNb?>@6F9cS(bZfxbMVL2Em^kiYkMR@6bt&WYQb+YTKFCx zJ_SA3dDdBWlb3%lh_;_aq*dLz4fsvg}@KT7HYl{=XPJA4Cjom_`sJ@^{% z4Wo%m#cVIC^k_@23vEiobLqtSPO8ZNz>&h-Z|#-~#`sK?EgE~8moo=W1ML;#i$tq# zlds_z-1c2zP|U^R(YoSm94I9pg1X`$g8(A?LcMbKQDbRYdl@xf-LNV?Z_{?gviRWF zZ@ee=*mH;ZnjA@=<9)Y6H#+;yJ~$wvj`Ww>_pG&Sw!Cm;b7@Pia!I2k;7H&m+bqe4 zsX@Ag&1N_aFTq_|D6F!khQbf-r+0-Z-_;pqPJ}vhnKG1;aFdjy?8?G+*>&og1?;S6 z(7t#0Jq~uhpQwP6Rvu2q@O$-92Ff0OfX#k-EkG{>QV>gCFP2#REE_pj(~jZPgZzGb zbI%Zd5~On9yI>$TzF9G^5x$mC6F~OH#h=u8&&=OJz3=*!WS@$?zTk5OCK_hwJuLiE2}We=#7L^UJ7+lB9ZH%+h+6r2Ue zrLTAls-Jfnl>W|5JP`!Hc<2s8k zUp*gXn3f5IoooHPc|kEk>E_)h-0Ck7O}3~Khew^ z*&~}YPHpcNUhY6muJ0n{)?JIfAq?4*DhTsJ6{;|5?xY54(zF&Vk*$~ z4kRbzMuj9e2a9f)Yb(;qO*QEG}vqxXHxXzww&6=xxY_2N--1k18T6eb=8M&yL*9-CS zb%!BZ?%elMzYLSTm{iLG^cL))!N@c-U-ZyoQ=`KNOGauQ>iQfbQb*W!O%nY@k(L*_ zSa~;PT9jfYlxtiqgR42C-~_Ll%Z__@_c|C>i@g_h0d&IDRkqV%O3>Pqj;)Vfj}1o3 zg$Bq(c!&4sr)WjzTXnq==8#Zr-Q5?(0Tv897FFCh*4tz!YJsP^L#J}3%D!N~$68%< zKNp1tuXAN5ttbsg?CwEWn)~`fP?h1MjvUesVdpf9gVQ8aQ}Oq>wziu4m#;T=2nz%2 zs%~9sG4LGPmXzjo6ZJ3g%yKdYM<<+iO;Te)FX)tes=bwt>nr4;qYJz3^+qN?Uo6|M zO~l=F8W;1!XrwAavz1n zYq#%_6Ldvxo|b75pq&KDJOvM4EE6Qa$Okkbg;Be9?Z zt|MNVMp!VSU!*Got3}T8y#S*32wWeA8GG)C@C^SEU4ZGCV7g>de^7tbz7KU)Z>&KL zyZj>5fY%Juch-FIac&m?(>hg)QE330b%aSYVDg+ctC^&``R#+Yq~SifS=-{+p4Sg& zp)VOVs%&0jt|M+=lP36PrhuvxBGWT2(?jjJYrZ=xN2>uzGwCol?YrSrv6Gwa`LqJ; zNXaI*(6x>n^y0@pjAv047dOKS%u-b?MVAxg{#|^;vq2t(n;$o6HVdQ*SZeqwtS0X(bj+c1dxlnzdxLYLO1R?sMQe%rfcne2uX*_)bu%mmWkW9szv?+C4;nfS z{DhtY+hZE5&$pG_ddqr}G8j!ORL5w6ja{+Y_(E0@5>$VYwz!rnTFXDT68mviT&7Gd2JusAy$v$v+qA+@=6oQn!d<)A+wuU1!jMlk@;r_MFHH}c`q%UBlf@w( zANbg<=^d?9#+UY6b3E@&YQar_`3$s0GjzULcCb7(N<8V+WfS@c{+lINXXiaWs`2N8K(y$o5$>0tlV1SvYuo&k6Pt^bqtd2w zK|kHkdX;xNGV!dcaj-u|AcUrLOhy_|bz`gxuKSANx>1d>$=!Xn{k#V;sakg$zV6Ju zVe3d!oDy@CXs_QfdT@eZyY|Ie5_Qwx%9G#yX|PtOp3>W(=XM)?N~5R1Yb8G|8cz~h zvW4-n04N8zEtvLeBG^Rt8W+(+OejEW3c4Lt3>RW%v4 z3zhB4I#-nWA1LEGd+Hyq)i~0?5N@HLItV!7Fil$~qbrB#I*u>ROI4b0)a8q?lHPSj z3;Zq7V0#lLoay#EP;5okK=Rq>F%4*TxIXMAKh8~ui$vX-H<5_?bCqBN3#Z&8nB_Wu zEEyK4He`wsYYS}7Oe=(()IpnQNsDNbz$ml@GJ8{d+kcdJS-(AK^aF&8rdE{OslPU% zCY||O^SuFWA5ZZ~O1cIs3P=9bhehk=rqug*@$+tSJQUnhjSMi5mH7my!U2^;C@Q$f zDXmPS!o(dor6@6JMKI@9l&x3uO;POfeRyu@IGT;w+H%r-T&Gv+4&+R+wwt$a7`38Y2^QbD zpU+ZdEY`tXY@{Q8Nn*nIuz7v=2N%#Kr89Gw)pjYpanJepJ2~C(PHVdLFVLb3wwKnU zBZF6Qw={bN^nQ?{M|B5$ks~pjT~@%gcGz9xEgT>8siO~qWZ**-xF#}C(2@t-Ys~W0 zc|X6ced2Z4f8f@a%lfS*)B=z-@XA%NE5gVHw~b-dtKhLNBw0qd{cjWuydbb&KJUZx zb=p~;8-wy0oDfc1xU?9L!hOC=raCHX7$YA(=01*6w%1B&C<_67O?NPc?20m(58tY_K&^Tj`s%5? zO`{M@dRX(Rv9zP_NawU$Va_I9k~XU-br$9&9++Iy8e<^Yb$_&g(s=cdtqFbE#oZ>2 zHqystp*Xg8OPCAG;PZ++*N`oUMya|y^ZLd6;jEsX!;^zT(cTezEgr7G_f16fV~=U< zSp4NJYS{n}`5Zm9Ih%6cCxV_tG}274pr?{BKTMB31DczO>82OEH+S~N0v)+<*Wo&@ z6yAdv|~Te#H$n+_PR0w(tJAZxfHDU*5ZOgWdcYm(;!<`%tJAdkVsR z$&o4AdmVyOuMF!F9#)T~eK#(5M=7HEzO$aPifR{)hB$H1`S#F;@ZFDt?&0uy3Ciw6 zZQo#KOh_)&A_@kK9_(qe{i@wJV2Dyp18Y8+BMrW&=UdEWGk6(me-yTj?ASM|Rd)v4 z)=OkZm5i*>pi>yN7InT?ra4e`S}ncKEf=v-Ft5oBxap_G8ZVlQD|s*ZaO!Qb!Z*Doa|x#hUwUBU>5SAFbF*VJ;t zx4zP2SGZDg3qgoyybP5!ei8$Zqd!Uo_Fk7o77`WJ6|q24xMvu=QnVPBCbAV5H)$Id}5a;IvU7+7b{jVD+xsYk*Ydz8gIzdtT)s1 zDPvb5Lxwx14F0E;$9bpYe8e5BSi@V)0!jFe26;Kih3G5Q8@wJT3_(oFxt`CtT!C3o zJp=2KlI?AlQyOVujaW)51SyQK&wIXUTi&K*opE^(GH=8R=C=vD@@%xS-DIXa=})UP z5?q3}Pux6oFnKy}u`+Po$KcwWx#7ng)fr7yKc9e=#4Z_S*xV?Wa0n9kh(X~~wq#}# z7q5b*-}N_)K#Y{BX+#sn$1#aV!q`4uaVv(8yFy6j=dsUV*ehcRNkRv1AMz$T2wR+9 z8R&W|w^@%g)Rh*QFjVJIrznuD^q~|Qyz^N*0pDF zeN|)zu76_n0#m=rxRHVNf%DQog<<9Ruu_y+R!@xFa!kd(-S;9p_mys=eLG>YGJ=F# zQ`df+czPlcmgj21WrQR0gPz4_T5=DdQM`pXYFu-#J?hkJ*#&Hwy2CPHFK@(n!!XuP z#J3ohPu7QZ;lnOGM-#CrahfEsu-q-9Uynk3wfRVvhCrC6v|EWjMJv&%W|5L$`uoi$ z$7XpHG}M077_7zlS@mr%MQJ}3YMhYBu!b=XM0uy74^lq zicWMYD;4dF^?Ul_5~+&ns#=+D204=vshCxqpOtt_MD z>dcOTE`6G|3ulzor@p~(3)^d=&5UKOSi*BF!@XjFCH9dt9Y(nj#`2@ils!Z?&*4!x zgd2J@p#m7@VV(3>LQFGY10Ss_m0=qjO&19+Camh8Lt(C>Zb1&vNX0C(JAhU@cwN*} zIDdY9^5RMfaYmzP;AMFfV0BDh^x`%Mk}bb$&`p9Pp^gw(0Z)kp81sfCYi;3NXCI}` zBq8ljkPV5ft(?|Rg~0|=^aE5meSa4_tS?@r;XfoO|&CV%X&%JcSXvr z)fUu8XNKxG1dqVXUTX!dhl9#B4Sm%hq0K1cF6Uu)BU_5*fk}^|AKKo65ek%4qI+#3 zCpZy@Y4miW5dboxNh~zMh~f*M{Gvi0qBe0}R9B86st!Ig<97kr>+P~H>-a5AvdI@Qssd;6*1hx^63uD2-ZCs z+{F{B@5a~SAaccV&8T$!!sj8lzOJEnw@F)VM~9nZ-cSTqn=;`=^bvrLau=p7I}>uiL!sD=|15}s??LA zh&7`{Q|TD?LaL&UlLP0QIE`JJXG1~3paMEal*2RF+T6FZL*7*1qp*oosqRw(3Vj>0 zn1fM(!*-^HdcQYv2_+*kqOo_s;=$)7y|jUFaXU1nK@JyCtt2}&85lt`bRQy~c)Jlj zi)evc@fao(bwMw)Y>L9tGJuX`JEbb4#$VMATXkj(!HrC%)P%qL+6*|W9MB)! zVafo52nio;kiX9Rq!leIGm@`VuG*4D7C>pQLCKXP;~9pc8QPT?y^b<}u@b{JcPoX1 zRIbjeVB9d#6=TYDIwC`|M#09IAC&(1E$jzSF6Dw4qq&3N)=fI;E_YVkMtuEC%7nQh z$@w(@f<{l>XQ-o+Zr8HX*5Y$_qLuj27qpHu65)20VZ)K<%1`-M+zU};rRh*o`vXoF6Mis#_!1Q@%XvuYE^}qSVT?_32DljAKrH=8i}H!y`;#Xg z4_Pq{1&x{Q?1rFOHk}=K1!9mm24w7;bihT_Ej$^08W?A`3zT5jhg^_Nj|J`npS(u8cjj~t zT-rli64ryN}-GM61-@EA8Ezj0Vl^d@Nj{Jx$!oyr~!Emg!9KHvdF=DrPjx_kYLGh zk`5^oc^fLh0weaqin=(L#=WmVnudxE{Er9 zbZ!>s50wlhK~M3|>Boj&tbNQQ#Qc~{V&tPz1PnpQFPY`4Mv~96Zmi=@^v!yJN>%Z6 zi{8AwoSLH(bKnwii*C?l?Tv|8oJ7Z@*_Y$e_+~ zNZ32S4h`wRrt^#ztS{UI8aB0acQ$3Yyi$UdlgejQ%6Sxnfdu^f;Qxqy2rz~S5Fl9j zH3!!lrmbQyCKGU6-x7>lR&XsPot|&Uk<#r3D?y6Z<_=zpIdem(c#v1zL1tQqFUK#z z;wH-9^hkD$$-geg*cd8)A0*8by*5DpA-rw_*-ci!5G4YRh?5UrUJU;c~w&IKuliiJ5(Nkkxi9tnXX6%CV%dMe~@G2Sowu3`I!N6#vU zQ9a6F`$Y>y0O$o{_Vc|L= z`QDF5D)GOS-(j;p!xXkoZs|8mitt!xCz;_IDx+{$g0{Cb_k3~jd$+IMc(u+SIrY36Vbza< zRB2S3in}Bd9QNF+J{|8s441GleesYQA;{JCLPtp3%EM=Eg%nl>YOaOzpJ3hXC~%GG z^F{&}JJ&_Zd(A;-i7>vGUqg*?#DZCA@T+E7;Z==opKMau^{_@Kk-4 z3+I;0-|M&rX~Z0f9ZEQ?IJ$G${a%kqo4`=~1%g-!4T>K_3N-^mgK&!z%L`H^cf=4O zp)A#ZG9ef&PdL{Fr$JAKG%q~Qg*?@v#Kt0_69K{C!0Sy-nTS z9U`jp1T=Dk@naD>Azm9&1=S0)#AW#um#r4mR{h$0y7*JENMEz1*=t&N>Q*V=q>mH-#>GR-C-tdK&u6L z03JG#S3Ew}grQn&42ZPa&>+0+RE&jgF7jjz1C!W4kJO#yl*i)Lk}PyH!vaYHdB_%y z4-y_3=83$2{JHVTyG8_`qa&SSih+!HukkFP$phv zpJM{$oWqN!Tfjp*E2gc^GWiX~gt@A=P~(=DN2ziroS2}q0aqi?Gkh(O`JRt?5;x_h6|3+{REt~MUSLNhj!~?LXR>gvM}<_!G>vla)%Nx&aQCnhC-I4W zEloE$a2KMs3h3rUZ(KG$p>5}oD2V^E+APf{1=@S5+BEt-g6&b-{IKoDxS0NK@pul; zum+oU970!i||&kMrtH8$@d$Sf%hKF=ff2r3YIFCpA7WhB}lA2nnj z+N+d~Y+*79&U>EGgDsr9{)3d`_)E(Dj~5KsI9dL2!GM+V|LX;VUp@VAFBq_~u>&Fu zp`Dx^O$=33k1qW9d7nf`0mZJE1Mp+P}e*JX&tWwLbI$^O68JQaI01s0N&g=-bkcoHAI1W zH~2Z$8euMeHTuhW8qCIJRDYEM5o782<8Rtw;ogEfU{EuosrNEeVT6{O2V zXA0IxInf?U+FU*i)^fjwYR)ZoEIC;Xk9^1O?w$*L z7b=2jZuInHNpv$RqHdn#JN|fjM{Fr6ZVC5HE)rwT3DjIf+}w@l^OekWfxV2Bx7rF7 zKTAIHch@3-z6(WG!{X(;fgJ zR?5cn*nlOiMr4CHPuAHsl$Tyrv&!6ZAZ&S8h=1hArY2?SiUM??d6{F<=sw1vAtc&*vLzBSQsgER|<{girtN{{A^507d?j zIFSA;SpY~)V|4JGCOi4Gdu?CIK?(zf=#9^6(82SaBj-G*pFu< zGZ0eR$}ZK~fSzge(M-+KkZgya>llZoAu}H0x1sM+Fpv4`lnaWp6}QmM8Xv8@H~A_b zc3lxlTKdf(0>8g#NKw*ENQ9+XD70GsgY zPMIF*cH@#CNFz*7pI6IEiIB0OE-VEbQ;y$M`9U2~8m8Hh^9PNUq+aIe@-fX!${DL( zirwXp%S&^mS$TP6EOf*mrXQau9Q8(0{y}3y$t+`~TFZGUO|?sGgWE#Z?}bEgd!Bq~ z^Y>Z{33rPT_cWPIUiR=+3(szw}o_0AZbPnVJUl(FVsSQW_VhX{BoQkUQE)32w!vu8miIp^PL zc0DgJEhl_Zg-mo*CydKk$dH55q%657^e`Eg`z5e`HQkh<%IG!Ceey`eTc+~<^PfW# z`Yjgzlc@NoIQuWmp&;F%l4+`Dt@@m`)+Lwg&>f{o#nh~u&lVZzWY>;!(%3R%`Fwkj z{kl`Fyr76w(JXmr&)4#U@w$3sEfS{IRk<2z54)_GNO^7SfHHt-(fRmPCN;dj(ue73 zbqY1?dcl!QzM^oAy7k+Iywr>wbQUbIB580i&g)nWdTwFOo;O+vi)s7_CAr zJPoG$Eq{z{rNs)lXMkwjZErD}&JUHHpUQUT!tyefNbOsXTGvY9J8_+TQJMmi!cxJW z1K5VL>zEqiDK^hlcO9lfhA74>9dHxPMF!3DN@#nu_5;LA88uO%1R8g{VhahXi+nlq zjoZ(77K=;(RN7VB5>%n_$THIEisb1`Z=VhEIo;7G9h=2c%M076rmDMl=8_N!UXDMe zS{Vw^CjafE|3(z$5{sT8t2EGTItY+)P3$pwDb9IIWW@uI-+YHfH1Xw5jh%&Q4+Va6 z;llT|-JWWI=&$>??bSQ`@wj|1NPDPXbGmDxc+A!Bef{V$txGw}m~iQti* zS;^c}Axc(_NAuM&!*b!u@Pf3c`I^Vc$tM^;7?0oDQ?8d2mKIA^lB3m`GXWAzx|+kr zy8_EnQqOX?a?uMQ)DvR#_jCL{G#6F2qcs=V zG#lAX=d3h!4gWODKJAXN^~pc3r9~?hcN3zu(6AYw?Yc`bzdn--m~ti0Mp3iVjAz-( zjFp$pP}O=7nZFfR>*9BeY}7Hvg`(giZx3a8e5uj=MKLW#@%xhugp9A16Ibgm%Scrr%Sewan`JNC5ZB(zMk0MT zY#Vhv02YWm^+uyLnj9t>46IYv9K>*b%1vI&uQv2f3owV}r9Bm_7>t>h6LJ=~e7ibT zwwQ~TK1e3{X=|GA>vg^XY=n+grD_B&?dBCurqLp{(s8wUTNyE03!T$5O{R(Ema%XZ zvSv(DrzhtN#&^~~v{>xbuZkNUlr; zmU)M<9;IL=H2?*DdUUP$Dng&Q8j8K9?N~?e2B=X6D5tH@U;PZd*RJ{mhBoef{c~L@ zupot{tA_R>2<5l2o1X&tZ~E>{%o4ZTo@btW(Yf%cVQj@9|Cc7pc4c+fegvA2rcyyZ z+3v*sW1pbz@he3Z$Dap=+T+VePs?$SsFBg`o^xxHQ6y>o?pwBVhS=q$v2v{3l-cxR z^qx93JMBuUjC7tsfeTJo%pklQjXbTB=3w+%jL+!e1m2_9W zu6B+sUpm2?i+q|zQU9)(=WG&9xX>O-~l zbc^?+Fy+m%nLImY2=D)}_LgyREnB}X5+HbRhXf5Y65QQg8+UhtyM^HH!5tcR*93QW zcX#*OYpuQC{ho8*-#Pcg?Qe7ToYhs;HEWD|#=pkIn=-jTO{QwdnjBfUbbrQ3EKS*8 zij1T`Bf!Y0{MW!6%d!Hygs%mbWXA(FHd(W}$tSC1 z8j%Kp0;vjCP?j|Zxc2)d@k?TPQ$jn-V{wfY83Z^!c7gg-yxgeZnMCTeLT}AA>(F=v z=*gV3M^c&*Uj?>2MD;ewGfbTX!$8lyYf3%4H?n#gzQKdRR>r5&S-$V!v4?J1KKrCu z8182SqS*W2*Ej!h3;vG_4{tZi(ISzDEXvbG`}?40yJtn|CxvHme(--UditQ|`#|y5 za&ANgw?sZWN*k|2HT}}KiDorU>s{>MzFI< zs7%G)wac-BX8}6{1JT;MnVS2NgG~WkJ=KbD89H#> z>v*t0Sqwb#KrWz43H60@-wstd^7^*NxuxQ}H}I1_Ue8UF#?a3&s~_;iJs23c4a9L$2~8}DX#$pwn+b4^!-n>IC#al z^aE#?B>1n1BaL<@PItx@q|3xYYZJ6@-X9xHgrCW}UNEzi?P>YkZnZ%8Ss04`jk_DQ zJ|C|hMNPW5p>@T~IlzL!Y>c~UWV2*+ELPIpl7ZMdw#D0J$0xO{FKh&N>}fA2dq&;oXC@aoUvxeLYd$WDw!W(B56 ztVCP#!LL5sFZRANsaRMbbC1hFZfO8>S=1E zYjrx^cr7L6EroTzHouk=&cqeYR)Dv!eOxH~%LmX*v-*EK^;2Zocc@p$(|aKC?JxDM zbaguEwQS2sU^=L6HKf#ZRcsYU8K%93}TV z1=CE6>b?f`a{GEQ1H~}RXA%X6x7xI*0N&qL?hOM-!+F}74@*vqyFzWfij}xYY4m!X zx6QlU0E_qV!+UbcOA9O-a^7zGQvP7ff% zuVA#}CA`yhH$bcNb_8T`T}y}RX|4UvAR|nvNsPrh&=%vyRo33C7`(j3qO&AU{X+F| zxn<0Wb7PU6Hi|1F{#npX&L(hu+UyU#aI0iE9V!AkUW)>z&*)BD^mf`;nd*R3S1h*%5t@u| zJ`c~f`r#{3dv{bxb8Wo*y6>$Sk!y!Zrj^mLR!8kN@>%DTvhaMx@b&7L*Gt+T<>kdg zc6aMx#IVjETOuZwdTB3+;S_AjwWEgG+gY8DX6wFS@9!d$;Wf4j;nX*j?^tQ<(_&VxIPL zaL2dkSvMG2#>4hfz|Uujd-3je0hoAJp~yp3|_M z;VC_G?!RqG;8oFkG!d=kb$7MDc%qtXs+|hg#wf5zmrva_=!QBar*rH0lhIs(5{o%KaZZ!&^J1TmlBlDG?X@4Efcqe z>pUFU@@BexiY12Z&M-7_7m(P;coNa1bt>j?lW_HoyIXcwFfoWdDbJCCn!W%7s*##L zZWf%IRMWnX#;D1*oX!+i!BZ)6h!I?ALJj=}qDq#su+lGkr0Um0zRt2$Q*Q+bSK(7J z6EyrT#c3M5fP(XHoY9pQrCZ*eoM|0d8pH~@!R}(pZtSY>t$Q>LfdelmcgRC_uGM1> zWV)-(p{;d^b{#*gbQi^a8A)PejUFjzxG#^90=}M!F@I>+7>QvOhYZeY}s4UC!^b{2A+e!2>oTJ}jCM&2&C z#T$CA2+-k+_p$c}?>6J+t*F$@Dr70q(5rk%NrR#YdTkf;hKtfEZ_+(o1zhXF&5oL@rY@+?@TbyoR#LZXmM+~opBzr( zg>mDn_#6Stc7dqfW7|^iaw>G}OXnV(_nMpQg*S+6Hs%CP2xab`pPpP^4S+p1fr*b(dmMTWkI&JC4o4bFPZy#y+PE8Y?vNr|~KMWjE4E&Gz>M++pkU zq0Wle#q&M+&M=&Ufi1p0@7kIRM7+@oeQl?9?&kunZO3-Rd&=Bz2_=o$|X31S`+`RX}eB!HqAX)-F-Cs@!gAOG(oC;&Vor!6luF z_tCCGkul^OOlg|c>|#URlH1RvHASc*nkc3Zk9c9LDa?nPe2r$uw8i>n8Fs)%-@E3e z;QJsN;;}kBmuBVsatqE_O^y9dLq?|1+*z(aVQo!lU=sStu_^nX|aJ8N{X#ei(8Bx_)lzL)s6D13S zcNdqXS;N3W<9=7=oV(#MT<0oZeN*F>=2LMG?I2$9x1*aSihcx^!I-6X=($z2Ql@t< zqQZ{5M?%1A+N%Eh5Jg$z;*c%yNvW044rKcN%X|HIFLq^%!R&0`dI$dgOhnCJzvbPO zmuIky2&vl4(7CUfzFO-#FT7f3CH4lg)n88Bo$K(Oy25paQ|A*pUSjYxzbg){pQ|^z z>sfbi8heqfj)cEj9+^)|oN(Igejt876c@7G6O}=L+qay>Mz_cFt^E?=o+?ylaA* z#8jQZ*MH$YbP=_eIs5VqJE+KIyj}vQj{a)V%Kg>13XS|$n{80qGhvLl;OMV1?k(C! z@rJ1Q7T2~57b-7ncqCRKlSBf~&fJGE<-ADOSw~~g#S=OnwYs2bLy0+_33pLD`tEhJ zre6^Yx+M|Z{3s@&=iHhDw0(e=w0}mk;(3D;VX-d2MZ;OYKdf%O30fVmX#7U0BKPQW zaIMs|AhCi({p(nAg-kr&F6SW+v7VL<~li=>=VDH+3;%`Yxh*uhq48I6?Ega!jsL{O5dMmb{r{3f<9~^O{oitE zuyeBgm1W~UF|d;iIBkr<`z~dF1)*R+r%xgZsW5103IdAO2O4rcE*|%_hWz7U9&^*& zt!@n%y=#C40T>a;;@lfuVM&QExBRV=pC!-~3?IkuYe_OrXrJ%e-LLOPM<~Ow5CU<* zN(!(pBxY|T8~(4H7*PIQn2>*+`Sei+?f-HjWaNtg#$Q){xO)B3YbY8R?bDlW?^{|= z1UW|f_jxFPYN)@<=f^&kNByYyjgAsaKMdmU;`75_K8}-qFLf}cj%s%fJ#l_{=F;dx zC#b4r9%&&J;ug@1Iw2B%b@y#M-C&&aU zpPo+FOLpo;x%nI+lt294ptsHopf2dczm8f+Am2+vY>uB%zKQz%Rk0m{6u5(m+p0ct zfhYeS2BzbG-`BCfk{4;cab5f2*FPC1|EGxjWi*6M+J9OX zLjuJS{&%Y+?yrgX!v9@b3&|H5v<{59*Jk!3lk}jLrO1gqy}OYI-6#YMpWpiSD+?dT zwgIxwbk>rNbMPg@f+@*_-R^FJ+Wx)N^y`4KQd1(-vmYE;vdpwRCrz|t*Tr_XAmfx-TzPrwQlj=uDZb#H9$9y%*hof)BaE~wxv$+l0Sa)Yygp|2j>S5#D|x3D!aV5HhrERmx0tlH&XxcT~S*^ zK!n_TzCk&85S@j=!XU^%nmmZrxgnFdrmYYJHB-pz_UiQRtnjPKDidod;n`c&w}$9; z_4y7JrEBZEhQYWJD(f`P$@!+mxEX635<;=qZT*{x$awLYP)-$F-ob9oCqd|W+r^)m z(<_U!P6}yF+e(-5`SMaM#7pzu$`B~g((M-~&W?z!dDyVBg!I)_^JjV^L5s}Ab+x*k z;Zc({Z1{Kkw44+$nu@!xz2Y3VW%5!dn``s#%%qpz3$;6YTwHK)xE`c7_*j@iq7*~1 zSURrbK=E{u2d~G=u%EQSCKzRYQ7R(+?A#1k&I0}8I7dx}xz*8m3ZISDCUcXBjFRSE zL=JvM`jhTA*KJ8i@29wYXFMS5wQ$D?Kne9INU5z~55jYU@>dk*XTuBSDb+i%1DV0Y zKtalX*B>Ea3gHRYeHk^Vg7JbpV4`}NbLBa3UWrY(Wf41h1}bV{{bJvJneK^4HAuSJ z&i^>Y|M8ZSA7z$i+pE3sF9<8*z8iZR zgI!;K8-wXzduJ|r4dZA;Sx%3S$INI(_isyRp-E?Vsf7vNXTwN@w0+iT-qtIyhnnZC z%6alD^36ohB?9Q5aGpN0!q1tF&WwPJCmCs4jsi@dUYNZo29PL8v{(A=6t)sUF65f6 z%T{SeuZJBo3%?Dw8k&8hwWxHC8%;HLLR&){jVNu>n7`MUIhp^o@{`w4z3g;!1z3Py z-i-BLB5^)b$}QkN&|jS%zMpnuT#CebS)B$Eb+BGsjdLFq%ud_EnThu(GfRsA3yEEh zC=)Pjhi?f-+8aiB*jIU>uyHRaEElSkf<`?v>|NxT;pCdou{n|iKasgIgDu13)_5gn&{ zA98Xqy*>oo7~ONNFjr-2L09I8r3K-aYm!d(bjywYbQrSX?ESssxIBVr#Que2&hC zIWOX)oRwAbb7R1D%Sgzh%lanQF%b2R@fC!xGv39SC zi;L1Mgy5<}PC{+v=O2vA%WL_N#6~-r}5MGX=i1|*_Momf^%&(+Z={~oX07}c0Y#f7xZZGM?5`)LZAT3N zV&AkLP$dAYkxoa&b;X`O(~WF2QiJUsk4V9@6My24oI-VP3uZm;WbIUxVSxo(h}p@& zfar4KGFvG|TzyvKU22^iEfhB_DT8!d1D24AQxZ8bF8|2FZYS5f_P7}k6lJ%2Vgaq*!n&@KP*A(JrwlY zrb(D{2KpslockKA%kf>uLdljQ1uovE?SFG+*b`Z$92HD@x@dn!JU;#)s&lVN+aT-c zovtQ{H}0lj7d&_t-Kh5fb(mU3G#lHZNMOpdf<}qSLR2K6T65>{WHk_%0gdwsYxlGd z`K%_YTVzRKD zD1vMQQzdaMauu_gZsh#pPvK>Y32Nhd(a(3E8s#7?pP?#>V)s@!20o6f`(M+W{K2&E zxu*}4i63`Wu#mk8D>>nGT(m_L64*2RSQek(iFI5xT$Z0vO+{@wk@;QcG}7)(t;H!3 zyVZyrQEyURT*K3Apt6RKt<9|G3hA6aG|I?o#Yfae+eN7N8?oK!_|c|!KA%tS{vNK# z<3iDXcf=tT!1+nq{i>79fTAAf%)8`~q&5#F_`C`i+>dv|$jfRqABx8vM2BB#A_d8f z`fRtv?{PYq!VNci!A3M84I8_E^KMF4!xx(_JU5S7G>94LQCy8vn~GxFr_O_tf2}_- z%aK(%J^cMnuA&#sF$ZmDr=b{K#nFt^3C|mvBlJ6_~GQd z)0Mwy?qozkD=!Gjpt`W?M=0N3(%VLTY`n=-WHKEE3d#jB%Pd9;x9pH=`~hfAn=~&~ zjua3^UUFnHK@(E~86U*Q=YW_(HO^2;UpB!yUrAjIC0zQWQDb0azg?}{hhSQXkZC3M zpr8znc9A>~1y<4{H8P;+=}MC@cH&Ck!$NlNm3@HRObO*eCN2n}G_^uz5|^OnMt5Se z0PWyZ+yjyVG+0me>CDK&pYnLC0-1k_Ja}vj|*s#X#32!A=^_= zrmUu2Np1C|7;o#|^F@sF=~Ju~^35eGqqC2!q>A+rbKw^>LZg@*&-)g0T#vikElqvB2`*uMet4?Q_TQiE;3`RgNJRZwf#yf7B zDdUg*n)l`2ahWrH9|*T=y&n7ZdVNolx5CQzPdjoa`o9ZnkJ9AF_j>d1?}#7}T;6QY z$+lw0$|^Yz7pBq##Y-HAxeDe>Yte$e=6}%fzC^x$5Xtoq5QUCWUz9Plm1&7&xOxZ- zc#m=2ln8#Y8kp+TPWGcaeJfo)miNzarU1gC@P;BdWY2k3$(pDhGw(2r2c2K)KsU@> zu)k6@eG&cyhlrgaX+_Tnpj<^s@Gk**fK#rsR<#9}!!j5T~@k9{Z4bVyU0?1Y&_(^NpqlBRbL=-{5IaMqm-a<-1 z#bogdL`t1+TArblq8RWS-my0BT0XY$wv^0LSt3h; zIOE4fbK}mXd(o_fuT1!OiRQce>0~Ab3Jqd(GWOs0v$1V&k;o?loYhaddX3_RNqm(I zO_WeHa`P6|_o1jmVK(8hK~YNr;#|38r8QBCO66f(p&g~NvW`TN;y0y-eo=ZNUl&!> ztkv!MmrkZ!jC<1~ANucIs|o@;?S(S>KZZh&M5j}6QFF7T=k;_5U;eD9cRJ7GI2X&y zIXQ%F-`^YGSJa|8(2_&w$zlKzJ_1feqJ$^mJd;B<`s*BD2CSq~F0mUNh%uJlr?%JU z2g}b$s!a+XCpvg;O2rGPoAt*NrUB<=Tqs<0SF?Em;S!coCKiwENyK}OZlA-?Sses) z(5~u4ws9i+&h_+p2Jn%D@ql#$-fC;Q5t!p1`dW>52OB9#!lxW%K~{k1#B6kEx$>53 zt`8Bmv&hbrBm(3~g}ZtvT;%Ofd$I>a z{EL)+aofIi0b;$Wa~mF$ejc7!0lKn}TJ{N|Mj>M>!V@gvrbh<*)%IK=Y1BAmdPHp| z>_m836oI7SHQfy#Qd{nKYdBC=q<* zSWJJ`5<;A)w12Df%}HUNO1K3&N8js2c7k80WD2kakogm5y1cT>i+9|(F*2FF(+xw2 ztfQKtdBa&Fo@_>O0B>qO(UerKUcplur3=Obi+20V9@M%vk=Nc!#q5kGsE)%+4AruX zSvw^aF3Z1~ZyD@&*mL3P73xGpaJ!W zl+gJZ@lTq_4(}V&y_|)2TcIYwnhc%ftIUQsBvl1L5R$DW@?v$?_5Rh~*f-G!4$)6K zy3cwZ370~`&(uQfld548k!ul&^+t7xq)sGL)IUbd0ip+dnzCpuiK@y!Z3ACkdEw@; zmZZ>Hq8pTco+UhBQAU^~kQ$5mf^VG`y-Rv@$r3ex*AV?1KXy=Uu;c$jPhW7mTv`5x zp;ND2dTKxa;iX0pX8+LDL!XV>kAIUz0UxA|fAPfC=#A$zQNMq&(^XV$^S`O(hpYd7 zn^3o!U|(lQS=AZI;_<0QB>k6--$RYNEK ze`C&%JHZhDLcCx=`X4y@p#us3Z+JWq4f$_Q`s}ag@jtYh8y}2K+6l2JUw-`FYN|#{ z?^jE`(^`nzE5lGp4q#&747$Gf(F7H)tlgoet~Sa={9;mRyqe{ir`u-%Dqa1^`vfD; zZMlskjp|7s?&#b*IaSAVNaGBBnuS77T1=B%xT_1#HL@R;l>qj(tlw@o!V&L_R->Uw zum-}mU0!mnOuk|wR8}HT%M4gk_Zpk)jmtu+^U&}9scq_REGXq+hx_HRaIKDfpB$`` zzgO>ZaUhJyI&vc*m|3XA`G#7N?!|rgo@sD5aY# zVPv8f%~L>O(}$*Uu&^)ZY@r-wY`2zUBi;Ov;@ymo})@ZP!{i` z6U|AzYj-)y(f)B3RmJ|-$+K@djj!5gdy114ZY>KFRvfeQN7z98rhB3~Jd476gYmf3 zWnYEwemPWAg|UKPRBohp2Ev40#%HUTAmq^NU))56=KP$MBZIjwnt42YM0aXFp+r)9 zBKo3}-FMi60ENN4;dW<@wrS82ibN!Ih{ZCa-NP8Km1W(-XjN`rckNATo|XPauob_| z_fEfJe$-G|$}{Q5-K{4=vpiUvcLtMCtkeZYQgSj`;!jj1p)3c9VXx`1#jU}D(x6+J8wdM_linN=q; z^Th|K1G0WfxbUs69-?cfa-?rUBfG$U1kG@0zs)qL5i~($SGAuB>~ReH}5-W5Ac4E07IMg4!y)WpkP1;@B7VYaqu^z!wFue=|b7{y+niR zh0(9M08DS|TT4#VKT8}ia+mY6BY6az(G>&ozxv1Ju$atq@zaA)Gy8d8AGktaX6jInkv^Sp`0MdeezwIKQu<6Y(N%1OI=N~5+KZL=lh z??1wfM|57Ow78sPIbzU@uW5Sz@v5TJP|M@s6eo7I3(r zJb_Oe+hP4K>bv&P@MTAStfB?I>UuUu>+_ed9*Mt8u-83gc~3@GPQfce_1GkKFX_(% z@S402-R({Jj`Ce%bMs{q<8a*NFX{EPp4yo$ythg-A-vZ$f3^jW6oO9`!d918I~s#u z*X)nOrmrbs$HST@Mwp<8`MFN)NzQ#X^yt&3--;77walR#=@C(%>IlJgrA>HyM&}cFiB)68cQ5C~PbbEX)oJT&L~GSn2F8<^*B{J_~yF zpTs2}DgvU+!0B&tY9B!HZAn3~h}CyPM#qVouT zCoA*s0+*$fM3KBFGCU{r(TgAB0&=vVf438^RP(JwNOECiy1X4`&+;oWBmCxVCFNv4 z?CGAFpt>rN!tQ{+BJO;Z_)w7;6F}tcGMjP8je)X?k4~sSN-;Cgjbg3VZ~bA=e|fIU z)xePMWG|{GM>ffw8Fp|3P9wQv$c@m6mhMJUNB2>Dzp}gj3KkmR`m9TQ7u;74XRmL4 zQ8qui?f0J5+1C7Wvb2POEkUTjATRLX(ibGN}73Mo%iI8ptYKZZk(IrTd})v!~!4HuER`sJ(Vo%vR@EDdd%kb;jLEu z=aZd}_m-g2uLrKk^m4>)rZal(yStV6RBW2?Z{qUKu)K-#h?8WECwns7yV%#r zhh=YU$OtujM;Pm5-R&UeGineGmeMez7cm24*o4^zRUA4{R_Od~W#QsXp(x9n1Xwea z%v@HVlrX~`6Bsyx`1+CNM;&hpix=Im3a!?4~(0s9NU!e1^bh$Vc;=0>&M$ge` zG?Xp)`QyqnRDm;8fg&uZy2#t8WrFoDTsq025c5k^Nm0dOjci26T4{pglP~KKY<Opp<8~3e!7(md^S`l5FQ?!1-Uc{5>Ks8<<-*XNOhY^6@2HRG;42{ z8My(u%9VVLBBJ0>*whXoWaFW9P(+yKY=0@?4VV$D#yCWmTE+ z^)5A$Q{12Jy^9EknJRq+lhA~xDNA0@>%vX&Kr9Fwx~Z|esLlvLhE-=QJ+hos{1fbH zkG&Sv+0H3JKFEvA*I!}eq-_P%aaMGKo=H*!QsdVREiqUCzY7gM`UCwZj{rUURK)=3 z(lFb|n<>levKx{mdHZo6%1pA`Mcj*n@o%5pJ7sgEJdU!Rdva>aH2ZUkQxg1eBrAR@ zY9jL?xOshB!*6lT6tl}KNof0pZ04>cXUMrow|@s%)OwiaA`N3{CM`fF62!XDG8Lu6 z4$knhD=i7N9ZCtgYFyk(@R-fleXAhkx?Ym^brA&Fwg$ln>9EU2KQc#vX37Swq1($| zbO3RVd5!5-pywL|6tF#!bJ*h|M=_r$*n*HohdYYl@LR#DAH5NvWI6xi;Z70w7ai61 ztnlxFT*~L|JklV*DcV`Fq(hMq5>)nuL++2UY=XtV&I_`-b^9X5!Rdq?vKP9a$s$M2 zF?vyxv7wn1_v|*@tcrp8okkN*WLon<1_0S3AU)sLBr??#bIu|9up{*obP;WqrQsc+ z#k-RikykyyFjBG31J`Y^U7jJ~_@-~27Ja^|r>;l!b*N8k!N(Ol=IcV#k;EzpnVI

_B2O&-Mrqck=NTP%wv6aM`~@>Bg9p)*j#neMV(K~`C! z)V9Rx(=*(=4i9W}KTYhV>D-59$e(L+xIYM01r-gRm|PCl?4~K9q1&EhZw2;r;vH0O zd#6qG4+H>}7Cb>3vTC0J{^}5CJ;uDUT&ec=2Uc8f2LN6Rj?>ce;8<^r79Gy zdcr9EOxlWJ^cM-M$rSSzjmIR|1L)Dp{|n@**WYgB8SqOFZ^~hx-FNZ6CI91A^LnUoL=g8%Mw`wZ_SwgQ z8@~hqQ~t|`@~MOp%N7WfNDad4v4!@^ucDtWH^u7KQ?Q66(fH7Ztc5`XReK%KGHryB zJSPJ2Xh4bX_s7%8II=RD%WI{>{j8@<-LhsXexslL zUS`?CqfuSGc{FJyAl%>IAN~eI^xoa=#_Q=AL;8(^hANOZ!_DDQJol6$cTlM)xA99V zE!yf+8xth|=0RK?!6XS7nodLWztR3FVs7{$lb*ziQk}G<`Lv&wc4VseFDzmre{?J@7_f(-{ZZAn!y8hjOmC{Ssn@F(>N>frn zt``)V7#@E-+v<)4XS0V#@z=#`G`t}kAvll`6Qw(NEGM=;u|yO@x;5FNjnoxlbpV_1 zyEuusdDprS{>zPcO@4j?6gGu})6EU+gZS@&rJfwBw6PbZQY5>#a0r60>TXN-s5f%0 zSkv9Ve;}7>PM*BDGaj~k!{x6=)nB`MlAuMe?A)+Y5oviaA4oXcrX2jDYNh{yJh`;E zF4ac&cDy1;yhw-Pb>_A8=zdUh&_`n7e*mMjMKEn34HvENrvkoMek&@#@K=q5;YR034@FkQ}yEoqEdi`&=BzS6i^acao{hg%+Q}&HWl@;9KzKKquPM3 zk3(Dnel%R7D&sJbf`Y|mpQ6g2#@o#5`LW|Ozrd6$5i6zTr)jj;{ON?Gp7h8N!EFHs zRJde;^L(vIu@K&rn>}7qFc*zJ@5*0h{2Psi@J@HHM<8dyT*30h>YLkLzVx&|4Yl-f z===Bhn>t{;d46D1_;z3Cige@Q3J}wqS}#Bagh-z6a&N4jF7UkxGm)WpWtNGjDtic1*vd=#5q=6ApZb+RYM|9JtK66H?RhcRuri>p=| zcD}}8J8C|3u)e;|V7u_$PR_40YkWWJx_i3uv$Q&Pb9A?5Q^VCSbF;2uAiHX?AMNvI zRMj9HHnJXHF$*34+f;3XoP*hPili?C#P8ges;#9kqw*$Jy$iQjy!YBt0U60=T*+4j zYcP&%B@g5qbibOL>9#$)?gR_H0RC};3i!PV8urx9 z%2RK5$^(O6e}LL~ZUFAN8Om~%ZM8=nO)0!<#B7@zr1x0yLsM7lxzX+|ba?VgYIw~i z*jx5qZ}6SBI_6S%h%lp=?QbIkj-^!`E6?GvtR!LOlWg8NPx%*vTEg+-}_~ucy`s^bg#c_5CER_~pY` z^CVnNS7Ky&5Z^{+7s-2S+9vRF$5?{WB<+5hhANi30h{FhoOm#dNZ%>1%07>Q@bf0O zq{vF%S>fRN*6c+{&0pChJE&eTun^pjzE^Vt(`RP->e%~(S21k+uyb;gHH@(A7@CT} zoz!?DwA4$M$)Ro^;LiGI6z!xQe~ltl9S!evT}4M<@r63*@V4Z4mAIt)C-j;-y;z+q zJ|>I9fDD0pFpy006*wCL8{EvNdm$E-1U=nJkIF%xtGSVGTOUlrMo&NwjSN@&)?10M zU^nlokHN|BKwAK1V$m)|9`gK^nI?0Jr4@q&xn_taeNXo<&RCB$XC zi%I5=sI7XF%BzVXZ-+Nwo}dFW&_Pbf_zp!*E*MFet*wz(%Ag~Bcr}aW;Pa}NV-SvM zRcQnK^0p%=T(wjC6BuL);Q7PQp76ZOP#qZ}|BW%7_*d^}g|zrT|FqfnEFpsa z4<>}ks(1d(Z~llj{ZbTW@Q(^~;Jx++x`2#Rq{t8P-}h%VPFy^e!s#mkuiCFBm;4V_gQqwJ zjhYdqu@*=+8W9_D-)W`okryiUt0V0ihSW)&f0X&2!~?|>szu6ku4?S05dxSTG6yGqh*zEks4L-{No>p zU^%4!9+}+@MZfNn9zI;@lO5J=y#Bte^4JQcaJT#_EiVrTo9Hs)DJxDMwZzdq)lDqX z*0N=8p~)P21iQpfq%EQZq?a9TM|b))z8iiA_T2uvS`@*!*Ph#FvYrVOA#h$T5R=l_ zCkp0&RlcsYIY7h4;4t)TT$HuC;_avUtZA<~S6!tq;`)E;-k(Mx+$qfW%Lt37j1!Cg z^O3PFJ-vm9n~_ishdfUE$)fCy1UooSuT#(U%5d99^j`1?(G)>3bY?Y}0DZd3L8M*T zlTm~;$TKd8x= z>H&vv#Pd1MvGcg|Ue1Xy`(~K*JF!cT&Rt^kc)4OD6M|g@(kA=&Wi&G|RW)&hz>XgN=y`WH zVRJ~6ya7Qb?@3&`si7c&ZnfpIfn=KkZ2)qUPsq+OAaS(N02m4v33Ex;%#a;vZ=U`3rPm5aQLM zjFEa_PzybuXJfX6iU5;Gh6L<2O+TE`l7l~MXwh|}TY+1HSRk~|t zVE$f(TWfPyZBLMI)jls1$!E{M>w*MwNIgNrd6K|H^O}ox%snrelUII1@asGQ>Wjd`REN>lz^V$d%2fh0D~N?ti* z^*F456wRTjz)=lB!x{;)($$0Hxc4|H!8OBGJN-}o`mf+Qc(Aw@aCiBaxE28{u3fY! zi`gg)aM#}Rug66p*pUg7cD-EdMZ8*b9j%h;q%SDfqt8|?Ipgi~zKzrSwO+>dosa#p z{(&r6`Cj}}&?po&l>5G*?F(S-`DWZ=RxlG9Sr(ZR`E9YU`o82;&{6DNzUA&bGWgf6 zjDmX2r7wnAG{0xnw8f``#O!E75zk#vd97UCL1HzX$1Yx-nr72-#Q;Q-?spgFq?f%IX z=jRaupEQx@bD5>SiefvS?!0#*Osw>I`R$363@4H@FgsnIc9}_5m2bmH$3fF0i?!YH zm*8hNZmtM;oZvUpB_c~&a~%swEkoxtQA+kKIO}`I8hZ-RQZ;e7J%8%2PPeY^cL*Os zEUd(yI7(c3Qf#0d%fcj|pT^yRbH@nysa>%dN_RW1>v%2AMPE|HJ(cj@!~nNBX181x zvnPAlZi?{HwYbsfwPDmH{p5}7rh4GBzHgFBlXTnF%WO&rJQGrtA6U1?Xl49LTz`(Q zLCf;7;K5wJe|&;EG)Y%(P%SG!2&@;yO$8i-B1#-UfVTh3K zJp7cw;zgb`fU(CbTY5r~s=IUX@I;PP|3F^ymBxxa-h9t6-sK!?3Q)nZ4aP3Gukf6}Rqh)1y-txzS-X9J< zRmh6+A<#MnR#;;4<{?p-GqWtGhIw>Ugtx?3KG&1YO27wnaP+6tX((> zt*-;FvPp@_%5nK>LyZTCg>kwmUaTc**SZ?yvjBTH9zj7Aqy#|}S+FctJUyzNlddvd zSAlxts@AqI)s34~6vD0uRZZ7VNK~kSM?^#ZG^2^w(cA;{0ynw8)fQZ>p3e z-0r;^+Tm{Kq67M&6ehBf{IjdUc*}|xf;S!KBgM)eCZuHXR)PW^F9jnkz$MWDYRsQy zBq&h~3lT?Q)hW*}t&rU~-?o*2ZQ5KErE0C471h-1x{+}xu7~$}%%Hly?khpR@^~G; zS4s$?eaF8r=NO=ZJCOpUz+z6JqL`wpiVRC~i&ek%Xz6Ui7Wrj|41*6$3$dhX)iVCZ zg-J7k065YksS*N;IO?O@M8nXqBN~BRh(rlML7elfX#f4)p|8Wy+@;HPkE4kg7ZQ#4 zpUg*0tL?aimDaTP?Hc@!$u=eFG(AOXVtF-HbkBQR7jBZR5+*zFyRFJiS($vlf=Udv zn?T-==t0vH7f-DFw`mn4kH_Yh!{q3IlAY(9xC-D6VOfV8o33!V*Jeu}TB6T_L2fMH z=~j7ALPW&@sE`_jC5<_wx*1uXsuOL&&^rtF(|IO{fC|P0Cf6WuYpBzH$s>K=73Pto z#avyMP7oNV{+ECB=YBlPqm#`=d z69pl?@>N+pZ!cQBOLchQ_Iw83sUE(oJ%y-L<~ObaEa*H6x-su*>(qXvf2Q0yoBH*t z%|^BFjylp z(|rNAu$t90$L7tu8EMyWXy9!GT_y)?$+`>_I`D~SEfyXlSq35$O37)_pwdAA#{PP? zKuxWsd&H86otO&GR~F+vD>#^~8I_;bQCAZ_Co^N^7Jn&D^P#M-zZb3Go*hZWs$vIn zTV?qa71|zufp@Jzt;+Qr9I3VH%GkMm?6>=q*%cUMMC*BO_Il$ zomC@xUBV`RRgGCZO@Mj?-X`%{=X+sB$^QQk_Kwk!bqm;S$LXYFJ006rC+XO>ZJQn2 zwr$(CZQJ&(7w3HEVvPH@YV4}Ls*+uM&GpP@;boxCtqz2*((Ua;(iwnt(68?Of8o#f z2sfBUK{G1BzB@D>!qo@GOvWOk6}$4<+V->U(Ghw7hX=EsG?e!CWdsDxYHLod9*u5kM59!+XFRsi7|tal!O>na zdfALVBw2Era%v*3-HKU7!WktlQJBOE2US!~P>_2PYf&)ZaTeFfLtdEA6DUDO1g+Eo zob-4uPvbM%WiPxV36Qr^soTk{R>YLMQJQ?*E(-^@x>^Wz%! z>WIbK55K1F`X}Yiu&MA_kuErZ)gq!sf&4~A;f@$=5zEjD%yXWEfnHy@8360<{#NBB zj}S5-%3k`48G&djC!b9af)Db|l}1%ME>cS(s$^ z2QYar>lu^ps91YsqYGC>1$D8R;l-b{`0%ToC`H8t`|6{lM5wdq6CNjp`1A@%G&xW& zSK`dv4W>L9K1}|pa?4^ z*xR8(J+CjL?M8MN9~BZIW`H|T3tnfjTb)nk@$GD^{lM|88O@ea)LK|26S+QKoXhe~ zo4r8>x)&Ql?T`z|<+ILHj(uP{O?w)>i`6ncHB(nt`3?(y5DrlVlkV0SNAL%zwbsCu zKP0z@tSqKdE>?Bzg^AnEF?t#g^u5dId;(xJfM#3<48G%fF|0e&;E=v|rY!gF{g}NM@vtPDS zJEFETF}6i^b^}$l?Q4!FIH(Idb3j|+H*wl3OXl?w-*4)&giy|LuvEwaZJC!&z&yVQ zxwHm>9yOn_WKsOY+@G!`;W+QAq6xZH{b}v?zD!zj_Fnqaz6iR(p-?j)KR`O>tOo9F zs&(d6XUT!_X-PVouKv`o)%=|gg_j14F`um|VD*bsI7)OpHPg0fGCsGJ~g#3f?IU=S6RK06Lbb0t{pT?t2SmK+La&J2#Dg zwGa8(2#ts}yNMLx2Ja^0a-b+ixK8Q4wYlFD_}b3DFG|^>g{ne;un)oJsQ4oa;ufU5 z9eZS@=5c2N*3QNR{=UxdO;y#apY)2lqxMrG?21g3b~u&Ax~*pckOT^3a_-KCeG9 zafGW+`kEKJOJtRqoj@!yHW-Iori;(PSke~Q?tuF|yb1>N&>j1COcS+_zdC7+YWjgy8^;K|ia~*+i!TFoOMRy?hsvlWdmyWqmK?nw9RxfUofn1w#52OKQyr)TD67q~HGXAyGF z!4n$hQ*bS)Y>VFs|6*JdD()k6?&Iw=EqADs6nn?*Wa%D0-T#vgLi`^(XlK2BC;j}> zFYx9K4IQo)T=Y1086@Vdvb_U+C9)q*dJC9T>t9eRM@7FqUy4=soA>n9Mi^bhG>A4! zAvF=t`$Scpw59H3JiiNVJH-FAH`F|K?2_TXxmPR}tJkkX(C4=okDA5ZJ5%qkyiQ|Q z@F4w-wyCi(!U(=YE|n%L@*j@!*EfUL&%J?xtCGX}bWa;?fyOavU$_vgvRXzYcaIq~ zqR28$c=^~Xutc-gT>C~xWfJ`0o%dtT@quu%k61MO1c;PMKS!Xn#DBY=QBc7K_2^>k z$d(r?YmPmwC`VF!(xSi2>Rb2&fH9j3QSRi}8>qW-?wN=IZ?~mR1|KkeVmV(bu7A&N z_n`Y*de&oWncokdz2mL@3HLwKfx=JEV6L}>@O>;?%?r0G>4Al}vkmA9l9OS^>r3=m zE2T40`kH|-?TDU{6K2bp_44)hS1UN)mCG=*0We?XvI2VGugVOvIBZD_1lmn_!^*oiis9R~(K zwXgL)Ft+T2N!z>7Rqt|^-C9W*R1shEw@1_orQ679KY>dI>kNPDkcy_A-(AT$tbWUK zBy7D-d8T){qn}h|ZPio3|9E+2^vWrVuF}YzwUjwA&5^#9J^2N4LNyt8@Kd`|8EVuo z3O#caBl@MBJx^E{%t2kN}C#<*#2$7IJ$s~D`sF|n}1{9M*j!2L`KZFHm<|& zIZtIo8b|9tii>g?sJ;diY+O7qhhyWz`&G7CZ=Xg8)xB0;Qnz`ge-fQvogN*o#iJsi zVQO=L-cT~BHlB^j!inWb#}jJ=lyGDR5gP(W$2!T`TWUWi7m8iV!--!J-G^0jY49lD z3gbH@q~#jIi8GIi$5e8^-Jt-VFSg$?ME62{?Ad>&GkLDTv4vgFNOllT5sP@UB2M1@ zZJ7&y1GwP-$nFaWch1fu|AC~uYX33h0ijSVJ$fKCQsh&k8RM+G9O+qS9w%^X0}ZE_Agq@AA7HU0Rrc# zg#3F9`@;Wo(nBc!`0#*u>%Vle74Ls&@P9cagx3ke--%EWO30nP(0`Mz|7Rp{9vc5V zKOEHq#~DWV|DWi*6?}8QXHN6xe%|ff( zescp*uw7enw9EmVPHN4A7WVG>zRV%B<}R*$0_Lg(KVdwzV%pK!l+y#(Nvm zB}>!Z(L&P3MPs!A%{Iu&SwOV~2xK@6P0z+HntvxASQqDqVV|(!fIvtzb^#n$T!I6h=dp zx&Y^3iUL-{jjKtSc%IzEexmx-Ov|lsdww=|=#&AxHHZ8ikj-niF1bw{L&M`Qiy-$t=d?0!Vw!8TPOGwJ>)c4fV6fudc&T%{Kp?T*|8{PA_Mk{ zWRvqf$X&#;P}G)l^g0j@%$6s|-+sn!%XQC(F^iV=f9NT0W@@8H=eZ2IVXC^k73Y;u zp!`jbvPd!nJQT-Phdtk@a$|uzs&9983D?~gms+SjgMMWYwIKtAeLNR6`3x~#BIi!o z)<4L)84FiCG%Ya|oZD*~ZR^k*t(^mcogzzaRVkRByI!Lg=rUljf10O-gQ>9pRn~2z z78LQA=8m#$bCxU7j50FpnknM}=X!#}Fo6zNBQL(;i%m2Pe?gWEYBz zd~No#iJ8Zgt|=**e@E78x9=Yvg_*J4e4j_7jWJ?jlwWHvq0j-B5*N44^;YD?AO4}h zYDwhkR*TE^EGNk|xn!RDmE55I=wW-b1MSa=TZEIs#;Yv2b7W5&q;{NaUK(6_Y;lmteVtzU*&39l|opb;ufty6ryk2`{(nmHd*7 zNXYLg^0mWrj3%j87Sd18(>Q-(wA5FsyvEPl!a1kS4-V5Y+HC#T8;Fvj%Mm$~)0no9 zwyHnA4;I#M**Em&QjWc@M%23REpogS3M)?WSX;fWg%f+k9aeUkTiytqQ#)hnOBwc= zJ?bD=l50I=6}ZlkaD?rbE*Py}E%{>uCx8T}V)3T7q6l}t z6S-ECz8r5na|cJV)OFw_MS9=7l}L*@Y+<_SuSUMko{l*C+7s-W6CnbEuJaP)#z9m| zj&#mn_J;@bX`miGVbn)_mERD3N1hsyxuk(0+%GfV^v+&lmw%j%SVeY4x&?@RK>?Pq zJbHP^G9=0UGrXbZSJzH18jiAM;*$%qbBoI>NHop=0hMG#TAo(aA)J$pp0k%j^u>;n zg*|%!HBE;}nrLKZ%v?<@XE|+YKVb<)0jl}^A2mHf5p`3_R5?aVIW?JDT1jqJ*8E6^ zh!LIpdSe1zLH&oUEH2R)zTmdKEB0$qoo22ht(Pr*S3PpyUJc$aSsR>n1DnL>sT!hy z!KGQnBX~jq0RQ#jwVCGVg!WGu6mLiV&5neDr=*XZ$ z^k8ZBm%L=VD=nXEO?EAE-;u3e7JPDJf}TZL8CimIimPUPfF$jv z<;r~;!4AlNdZe}^#Mf2gSE{E(Qx}yA%$lBZx>d5=ze53Rw|m>}!jq~d&13$j^Rta# zmzc3ON5n?43h~1eZN{={T8^>>_nB@K75MCFQ+v*0qi8cVbsnA5gFrMuZ1%<$VNJ)x zWRwUB*^@|j{>#=jj7J#snQx~p(MoHfck#}XuJsoarmhDL3Pa~aVY=% zqu7gDXDdd2{F}7W53fn?0^2X_=U$a7CmM>(lk4C*e4-0u>w<&csRu z4b@bcQ*yPm$uF@0kkbMa#2{5f@&Dz+**!Az-&&&^a3Wv^H8Vl0U+Juq;oioI&f1Ik z7JdjCMb6ArK7XuA_xjnl1x-H%ds9Ie=@%9V4oU#VhomsBH-&UJ9K#}}LGDIEWKJFc z7pf;HYYCp36Kj@ntqW3`paO8}a}$g;c` z=^pmXiXYNPzP&javSVOBR*#GFT2H%c!m?uz9fF5}VsM2ehm*`@1p1B3%vg-7ntYtr zG#K-O!-6>xf!SEG88VET;RV`L%G46Vw0UCEi@;Lp{`ykS5u2mL3Z$b3_lRCDWpmnQ z*1a)ly0GS`YjFZ-*x}@yx5!7LA?RHK9%ob-De0?i(T}qHB3OcCm6%#H9CDll-u#4F z1P|ov=W?^xX@G<8_P2v?!8WGUgkkioSAzx@Pcp6Oy5xD5CVuDUSL8r@6>C5Zs5IXb%n;r zzu8W)hAd#!k=3yi0L^fM)%X_p;Is$cuI;1@HOw=4=>-eHvEsQn@S5CtXR2Cg!lt3a>)my%EZ_Q8Ya zb4hgvbFec?JqXe(&Mlq|7Yk)qYv$k~&sb?Q;}W+=Cu!JNSDMy(0sGe@YRf5};8DbD zfx(Q?!~kPwaprPkYAkZ~AIG2h2_a%!KF9mLo+vA#2dno&KN=s*yAf`L@P{|~3b(GI z?3}`eh#XuS8_S@BYv&Q7Z?^KvXvVDEzJM+dK3LzWuyX$RXC%=+Xvcc~ZNn#3P;3~B zFrrpZ;=RdD&h?6~%^?VPo3EtiXL)*f_H*FY^;r326(3Gij_HCV8fZpcZUEt|)tIS= z&ET87;i}(y$QPRo?%ss%d4hD1Y;6z}<#!+5Zm$ET9AVc3cj1mCa{>VX1oTnp_J`kA zF0zzJk;soebe;j|FTMSXjSF@?WW+7if$8A(!s4AV;nJWs_QLZK^Ezhu$Evu~+Mu@1!jUG1ifIahdPIhB&yr{2vOAyC*I*~sc zy5*65&s;`X{4SuUrW&$@V2tQuY00NZX%4ZTZ{PvvSzcP2?#JC#ub>iCUR0fzyKi9$ zz|~t`>Sx7d@pA)nZwC&E_p3gUwZ51kA_Ryc0^xZ+gF#}`1`eKzu_iM;bwyTkq7%iN z+#HlKfd9qp;0m$ngF+muLaq>2iof)CPDr@|atvBCCLS@PZCzo>5q;&K zsj-p{@e%byLhs}pM&o@I&O(+3ii-`j^VHpIhNpA}yQJjmngsk2xvI)qb2vPADI5ei z0&>qbmnYYZV}^wFG3jSBT3;0|Z%Yl8Y*B@c*@dPRpw>pjZfpp)xNkn_Kv{1>`&=L| zEqMNp8BVzHJw$#kFhZ)5brhZxb|H~Jvh!phos@EazpS^}Mv(gkpJUDN7%LHZhzT3G z@lv=jn zczE1eJpHZS&Vgk+>`c8p+qbnWjqdC43nC1hqpb6V$>=XH{fbw{=I?OkO-@%J)yJ6Q z_vP8kuGWrEv;|X;hdH1TF(_&$#XLiD zJJt&Zt-X>NoLeqzQ6=P-gb~+~V7!up>FEQTBT6}AvkfcsU zO;{gb!^0k{WX9(i@&C+2q#j~B5)%bAG-sMU<-kW2Ec?;tG*vM|KBZ2>3UIAi%N^PBbq2QTU2RS?SvvC}SXBC8p#T{2CqpjJViNSy)-p^|22v{Qp7Nx+GJf7gz7#qPs0Mnl8D z+%mDYUe>fgPV!7ae&TcDeTtQFLBM3DdHv44v*>7?z3A#=@-g$N{m6q+SqTqG_%-uK zb1O-GXYS)GfX1L`Y>_Ev&w}y(HJ*mp{90OElP!oN$fADrs;oPP% zh>gp7S#a}dI^r6J6+RC&)vKgKX-V0|dr;S%%KBOv|Jpd!iXr+{ykmzTUw(Qg>+4fM z-PIMapi~#ScEUp?PAib^`%Tg7CO05}>PQ)?EyIiX3s-YbtE-Z3T~#+8A}|V)J$<#? zvY7kkm6?=9>a1#yA9UyFkb%(JqbE_b!*J;?KB=K090AFgD&^?xg84Lzz0IbX*~&9f z!wbCp`nxC0M7_eN)bEJ2k;Xx8<^+f|6KVDj$e@Au>8W82Xl`2eSzm^ab3!gy^Mc=x zjr6DU4%EdzI4qu*U}eg}DV1oiKV-e{XlN$m6ZKh#bXXYhypD0!KG^^6iIYtF=2v^_j0UC#~XXZwmqSX=hX>q@o1B=xY6GB=yTP zW^p`N^kh$L1M!Iz9Y?n;Dwq&0OT*o3qNX)8b*D}^N`oo0yrS{*@iIJl{?0tA#H0*d z15QbX1PErEVaYzI?N=KPZG~e;_y?=h!nx%Se->orhPrc2wA1QI;ROk4GI*AF1;=ei zaM2_7?0T!F(ln_k_Mk+1PJ&93qJFjfC#@jC zt}rQPySfM0d(Nzh2y=?PJ;@?XIGVu`gi~nB-S-(0VVS{9x82Z>^Rpj%A+~@Qfcu?b zY$SlqU6fxXqUWaKz~@j}lXfvKTwLgh-`cYIM@#7!Y?+%T)59a|HT_OgSOC3g2g#39 zR&%1$v=Fx&4uVh4HE0w2+4pmcwaqkW!-tBQESD46SBzBs)$y&vj5JnE1HaU5%4RL2 zWMlxOJWTi+Q6ab*mskXdi8*<$P<24eNNrpHBfj5m%;wNid%zw4+no7!GMR+?%NDc7 z9s*^6m-e3yO$IuI)`NnfCoa(4zE4YB1^<5q`4{V(@ABDUr0Cfpf1}jkA4Yc17yp99 zPUvj3f8Y2B>%BnOmJCdM#YeR4R`9Tpg%9PP7D0g8``Ch z=i!G1bKOkvPi-p8AFY3~nXPy(|AI^rtnRCS1`2xX`K{w0q2A%we-F6=`OoLDhQR;t z;G_S~gKs{x|MFndF@Zl_GuKr+LDY5Snk8JQq#g?~yWzkmL@>WEQhtsB#A)7l_AYq; zAhP0UqjT+2qwIj8J-x^+mq%yp;X+=e^j33(fmwLMet!sTYKh56Jk+3inE^F$rn=2!3B(@(S+?5bl1k&mR6V{mj| zg)8=P(UI;^ga@h1KKKw7;Le-PzEwhF4$_;OwNY;R6yO{iJ?*>}kcs>_t@bi-Q4b%P z2qNd+q3`|v#2p_;3!GHo`jrK>j`a~-Kwn^3ZhMoSH&IytonI4%^VP5|x)gfB{!L|H-VMF)Y_Ajku^kASNs(7;+PbTV zRH#Fq=mQaEEk8GBg=|k)_!Kc9?_%+63Hvyxd+o<0pq15e!``M!_3Ib)1pt9qv0=H` zQae+j9+a*=op6;F&gP1DSpa){7MX9X6Qs4{Whr9M!!B&qt69#6rvLucwh>~SjMm(} z+3+i9;JfO>P})7~tSIHDhUwxI_6}i-X^Zd@4zN$;W_wWBL^ZEA6>bs+Zkh*M?ZWZe zsrk9lkg+Xp`Hu<-+U_wVQq9%iBto5==Xdp~%!@XHNh8L!jx7r~nf>15c~VZ=dg0=j zunG8>>7|{Tl8OM>mD9D~L`+78CW@{3y)|s*PZJjrhRm||Uc&B4j#0Wj_Q7IM4_6d; z?{5A}(>~g5F6oJPYb#j5KHCsUKzD<1){#}lwM%#{DoUDT!k~3rL6X>)GBRoy@C4*i zwqTwkQG~|fxVI~BX|PQgHDJ`MW6(9yQS}t7!Mt0Ul}@}{LKRTdXebwb<4~nydvMf> z%=49$mFb@+Gsx2d+D-|a~kw27Gf^rb5f2=U-(~8NI=EOPkMhy zUIpHbYn*E4SQge!YI~E-KKCMDyd~DjGEN(u+}1;N>-yrLX{MZ%@OME7;;sy42A`PUeKU-6i{2crZqAynK6*0{gBVv@@Xb$^ zXewH#DmEINGwbZa2FTN$4^lSMqFaR&l}k@9vls^}Q0!c)NUag*R=TfGJspKL9mIay zNi79}M&8fW4sI<$nwQ421YFA_f!6093V2;oF8WAnQe_2%RTPpRNTYfGE^S$gWY0lr z5-D;k&v@MzP;fKIU5adZ&vc~yPIRJ%A<2G!)`L*y=!OCOhVRg8^RN1@MZX%tEB+g`6g^hN`pEB)0_D+>fnvH`>MM%MxOi9U(m4{ zs;1A+NHeXo%tt88PJeC9U6i?{V3$Z=S)Ey4Y?;nmvvlP;qmDKLPJpewjEB=z0ygqb zmV=?Zu7sMaSZ5EuxjbBuO_U=rO;*0BRnc?~U!9f2)`Cc$bZbq8jF<_Wvbv(Y*fX6s zPU%W@M%@<%9$DlStF?oqR!KU8=)3K6=F4}!BhwJoM4m~fUs0Z&PjYR-1v*D3XG4pV z3k&$tTOP{;J)`5i%IV0qv^7OOlYCz(4nlqY3vWZPHOwn7F;h+_0;9hf9Qo+;dz zma5}T?Zo}a(hh;}>5b=#4JA-juTZqcS|`0&l!te5V(-in_ErEDBCE>(27DU|HNFZC zq>W!Cae89%!9)O#Bgh5n&>)3enl<#tICqFlWQ4ectm6rN00ZoPceGMD!$VtqvrW!R z6eDoTx*ezNn4!5q$%h=@$|#oq&N?rcum%*knJ(jXApX8qjgVRJH?trCF6*cqElZVQ zzMx@3Wc4)IBhYDuY`irKIh%(+EqwJ$aAWOz(gpj+#cN5dVy8=xLSbqhv`Kod-OniL zu168iczt`hzAy_NylkI+Y<6zRk!9mhvxMLw#P1o$HCJu$ZfZ~zVgZVV=>AjgsN&hM zpSxi7w>Bajx9}H1I!p+9*3V4En(0yRuL^nBee zYXA|DxxBVM6$9aTf(t+S)FjRPOpJ@I5Kxj^l1-A5j1)zLu$!}EN;_@&I9^RzK#6Az zrRYgzcyiN|h6_rZb!9Wq^a2I$h6S{sk)LK89)&B2@}=xixndZ<^`o~oLw&`g4s%Q0|tA6m}SLL2%?yp zscn&8W?G!bM+7g#xzbP4kvLm`P7(&vN*p(#s7SD5OKtXLD%2Sh8Q7WlYJ62?Y^eu>thpGY*HWZ0rq$GYg!8RI?gO@o+j*j1H2;zZkYTnLD1BWr&4P{ z+wat4Z*jTX{gKd74ol~yq@=wH0cRSiQ54FH-F*!}SQ&mA(NUQvjZy$KKw4YfvAvC- zwzsQS23{TfY6Svkp{2AHv!P&N*TxbK~7nhKAE?~#|9??*3P#(Z_fGf zqrvU0j__72pHch^beGBfm`Q=L@ItfPdL!?7Va>ZS^RSi;=TYITRGeF=;a=Z^@0vqR zB&C0zmjVz|RTV9wXoZpea-{hyrg}1X_)z2Ztg8p-Db(*cSynD3Qf{JiR!Sy=j+Jh>vt(t*0|A%hV!iIaHts zuvETV4S&M}Bnw+w+^1id z+g$of$%&W^vz^>qRukGi=4OnivrUu|#6ndyl`3+|ROMywyq-w5HAz}BA-OhZ(kNx; z&%{p<%OZuA3K}hf$o+a*5^#uoq5zg>^>v0FrO1N7)53}SLCH(*N^0(v$q6zY29*;Y zM1XRBhiTL_V2-J1My()9@P186~up62w7SjM6@cV}Y2K z1qPJDK6FDVZvzFr0kzVp0OzXmOA_!mbxFlvmoWW#5rTmE@m7-DAocqED4;H?G}%~? z5)f2mxx}#e!EW*UGntAD*Lr#BUTnK0cfK93aU8S8g@3*?Oml-5!Abhdg!+KnJ{02v zT?6XzW8OPOv(Y4?I1Nh7(`&GV?BpDdC^hZ+7K&q2Bx}{rMYD&EWhG_;X&lO1FR!Su zk_<0R*;c5LpW(pBXk>X4e5-r7+pBPRzsJ+DFk(2pxzqF-dUoUE#$Z5;bTOLB zy}CB6QzuOGQU6_Yia6}08uRp!6L0!d&?DwMqik+DIrdJ3bJyP z*3*H>PH9=qim>S1F=jdcS#N5(zc)LJG0UjkD|6)l(aUHU60A3P1`AO0lsTkqqJlYF z7iJ5Z-d;LeaO1<_#4U`cr zR<(Q2S-{?_{)@*oLEo_aYw7jnYV;(`>n*FJAf%SSZ1?W@y?K9W%#&-C6`w<^pP=z0`|wv z13J?L3~1==?ZQ2ArYN(HS7H;DB<9HjQ7r*%6bPoIqO{*nwFWjR+|TV{$9gQ3#JMfS ze$P^U3lY=te zLv`~1PP7t#%JF#;zPVzW+I&eRLvm0+9X!NRhu^v--f#XdBJRi$k}~9`dwoz8-Iau3 zh2E&2O||Y7*q$vtNL`hZl8#drN|GX0#Y(%>jOEtn>?+JrRHsW0_y3`&Y=$NYsw+t> z^?SBZ#gUq?LLse|*j?*gc?#Kxst*uigb9D#TA5ke&`qU0t(J7pTUFp?5X|drA3*8P zU!sgoNF5UKJWKH0siT6?#}RZiG?M&%JHTe+GaOS^G(U5E;So5)$h}dNJ14g}ra|o~ zBQZ~0DLPYL;_?M6pD0aiUVN#AwjRP^0SY}@sMrjsM#!5#{>=>`X^2ML5T7xolStIg z;#31f!Vgk$C^--9;FI|ZZh{3+zgapy>-ZB2{22KC?VDc({rayIAcu_=)}B^R77=5oxPxkYDqv-wI*9+)^(wd?W$x!lDk7xvzuloZ7u z#5fIup=yB3!5U%xmxS|MiHS2e47zKpz@C4D|EheLxxgZrs6n&Q0j;zFX5`O`c|41Nh!Q~pQP&Gq@l zMy7f9!|kQL@Qi-44D~V|*I<%wT#V$oE-ziS4kT#749$46KPt$yh&IEBYKne{fDYdF zyrM0ImOs>(K$1m3dJ(_zZpAxk{$M>tdq_zwE#Fgs_ll8#`QJiJoke=Yr5 zu{McyTg2ZR2{oyp7>)^AslE$sGkffq7(Bt$X&^%ftUDd|N?V%BQ>pF>52UE+RX4+~ zK>RT_zQVcDfU7KTqdg~q0ih36uy^7v%W*vNNQ+)sL*n+*J-T>*rEw$S?NgZ@b@PM+;IYX($Xx)vZE*Dke%PtqSpAtSI z@S$SlH{5PV%U!Pyq+6u)M7%E{B9A#*urfz>aLpM>Xp5JHC1ez~=!yHFfaQ(YO)cFmq)#=f})uS_5t z93_=ywAqRnry?X*#s2m57i)&!re`<*>W2^%tb4Q@jiXT8{MhHo%{`HwV0)0z0j*EL zFgQDlaALn^ebSP1_wQu0r=7RwZmzxRtVa2$0$NB1X*CxtyHuN=*R*WUs1tMsf9#Lf zr>uO%$?2jtpDZLRRgX4ccH@0*Al2rpfb`dF%|_#Uh2+1>0X=ELS}mbs(3dOMykP17 z7%{Y^DNk&NZra{Y4Q9>>4^72tn|#B4cMR{678T;#6}+#X-v9x$j%v2QK3d^}<%eqX zwPU-?K1CJqVkvc%L256gpq+N>-`f^g0p_*tRu2fa`?+!EeM{INQ9E4j_rrpFiuDVN zo0}OJahRQtD#k}he2zAd2O@NUKv|btP?B~rgDbY#>X+wl(|tO_su+GcZhJNqAiiSo z`Ppe$Kzz;y9lP?J2FrUkW?7sHe<#p@9PH>hFur~4YZ=L%1q+gRlhIjy-l1|i9$3d7XWn)y7M z-6SLw%e$eg7o$psf|g77sB6()7>x(zC}2Ll`U_s)s-7(od5{4`097Q#iu`~CT9 z&8ro`YeAj&&1$nxM(G-!mJ_zs0&Pu{9=AP)gzuyP%pXTP=$pT(5B@CkDdZD@m`I4Dm zoRP(9@kSU98PL5W$U@~35oA>&*cCe0WV`U9>lM6w!!a+K76wpclkn_U|S``;U3 zaMLr~hW*_ENE<9TZTlUM(m#codyV5;O=19FHPYN2%fv^{$Ahc)-N}gYbZ$p0x^jlP z-V>5q{k;8*b*{X7>ncsKa2RR>Mg7FM2_bG|x{XUp#FUMY=|jUn?4j1ZNmn}5_hMD( zs82LcXXY;A8{C$elEX?T@x7T#H_wE8>cR{)91I)mWauZqzK-9CEtRPniL%LvK2FL< z2fzMgp0s$vawNm=)6(9)41U{L1_0P@R3&~ZtjCq7)emvUJ04ciYn53vbU=zW+={Q&)|u$M^$RD) zeZIlN5I69K0c&fyPXCclci7^5ur)$@`61i^iN`44InammcTTmQKCkD0Q0{*jH-y{2 zJ7am^{fAy}Of^0Ij+*{Y+L!u2SlUV$^54VY0bKY$`PWXk|2%(rgvC|)3;@;Oz$uBo z0UuD41Qk2C42df3Ux2vrBIxMrS@ebWWrC;tEa_BCjR0mKrG5yH1`39_MYlKDggl`= z>3N(j0z;xmY+PJ}z>i1f%rGBbq`#RsylJQY+c(_*)C8bjyZ^sW8x{b~|7md8`u^|P zi#&n+x3Kjm|9`0V@DtGee|il5GwA=J)@um8d!gEBaXTzlKAkFDmkR;Q#zBMyaqEq* zsjaIws_A53)1mjiQHF(+PDPWq@c6@N$Meq_XyHK*IE{-C(nR=NUh9$9&e9COetIfw zOW6N~Yu!B;Y8YaIjpoDaNpUnv0oz^eR=wh&UPpH#LBM^kKoi-foEQJi5ku_tY?ohH zebEh>5$rjy?|@v)-2+6S>DjPpcW9nI3ld%Kyz;@Yz!nbh$Gu|h-DCE)S^P32fW((@>RFXBG6GV{Tz(USSBeZK z-ackU5_|O8scP72w%2~&GsZkMQ|^oOy5XT>?Upq>VfcYN)an|Cu{q0e`#X?qA|>b) z9kc}Q`%Xa@a14>P^+3%YoeI_2Ak5)`cm^tm<5;>^<)a4b(SGS~K@97HI1S@STz2R3 z$nOJD98Ecexc$qmPg%`&r7~m!&m#Se@~*VC92AkeX1_NAVLMol^y~Q521`O)GWR|O zPd_BIE?Sd4?-SYVx;w#MFBPOv_8QMtBcT{0 z($=dnsT}~iW}n8Do0$3`1K>UY8QUY%`%8L*C5?72*>2%X3pT}s*TOWWD5opjOU@(2 zKlq?6T{{Y@t5~6y(ovds0+>K|24BBiowe$V+A%8|QTgn8Pp~oD!u@U z!4%W4=iWBL*day@Iw9{tNc`;kb-&$db)3>=TpE_iTmpl@A(94~syiiZec6FcZ49*( zt#4*iZ?i(}*g#=JM_X=>4qGVE#@nTM?rzJ_VEjtVd!M8F5r7I?%asxJL%?q*z{g-L zgY7ck&<~ozKACBbpj)qo_u)_16_&PS z4F2`Z*MP1t_{8g5k>&%_YxuC`%TsKrz4(A=VP)fA`#(*7x+yR|;nYn@LRv7^&ET8c z!v)RdE&kN#%q78iCk)g2np)rDgIhc`JjOw_8NXSI5``G_2_!$5w($ljZ84rs|B_rM z$l%bsm@gvDWgtM}b{;QyZ6*rfF7{M*H5zqd@iRTt<79EsviBNl$t$}RJBSy>DPd0U z-5(hLjTO+a5L)(lH*7XAY;l}h8{P(`Vs`J+IqWmNb=BmNU{NIV+!71uf8?Vyveo?S{E-Oqm?x8Vo0#Y zwf20A^A#Fuj#=t$=2u+C2dH84Y*(X<9jrecBT6e3<~DvAhpSWWUu#Kk66n;{fO=e& zah~SNW5(Kd>dX$b47^+H_4oGvNf=X-9 zW~3&?KQM5ZE(CNRCYKMLs9)tsn(8d*&*UVe36~!)qYvrgI88=Ad^egozLZ@Pzan9@ zBZ``+FqK$w8Po~)bNKWPgS(U3#B#~*8zhEjVl!F1IBCN)y}w~?LfMckwUmPlv}!bv zAKm)>0T2(tA*Lel`Nbi^Lw1*wX2M{%gI$2Xe=IN!!OY1$YLiF0e!um*t{CBL6}|hR z{fl}hiqcwN+xHzGd#5gsqV4&-S(0BMJ3o)*>@o8FZ3O?lWzw%J2faW7Np}GR*5s)udu&e-S|KTJw;7P;l}w9Zg*5!Py~xoN{>hb$_G!h z=5rfT_ULt9;A+mKor(?Lvbhrxk8jHWYbK|WFYY8((NYuAqh2T(=gv8TAgqfl?>H{A zi~8M5Sv#N`Y>r~mNqFKP{h+TiRu5H9V-ERT$eeYlzPGKpV%0)Zp%P4YCbCRAyHm~Y zkf0{yFSiE7bf>H17Dt@7Cp#hl+9|Ke4DwzvOopu9tjIplJqXcwJ(T}s=j`J8@)I&X zf1f-WCBboCjhX@cX{7z(2k0!#khB^M@zO{Oh9$0r5TUFAPC`0Z!A9J~M=d#M zAf72Eo73{5LOUC?`dWDpYFNtN_Ggfs0`2zs-aKkvn4N``xqTS?5eQRcGG=ZrK3rf% zUnj(cDh40fYsZ@D%z8;WVV%0mK%~A_NK70a6Q=K|E-&vO=!a#A3X3?yDvAiYtPkYi zVEeelk03t;{PudL7v0GWB(o!W{2MWB$ac{YMFm;81*-+eEkk4lG-a_No77YlE!iBT z4`DwuC2g5aGE6tYB}5pZhH!Z)X1~lw@P6^5Dv9ykc_xQkjn#kYayIJ{qPqw=s6Jd! zyLd5wvBYE&A!UrieDEmIDDPPMwMzZnHGHLsg>U9>WQ;RAiqLTYVwvOOjZTN65YZB> z;Ufy3It;Z0&URW=9WrpYKU`yQ(hZ0XQqb_s1Pux=@C4<%rRJO@$u34hH7%(w373KKgi zp#WN_64VwQA^cUOyeoSrJFh=d;cj6o1k~XeWm#;5+&M1%Jlv(5mqV%Se(pEr_3p)j z*`M0+@v0dB2oQ@U-G9f_oSG~*^aT>FH?wW-42R`uOi|s4*E=?0w|Fq%2|`0d)_SZR zs9GMg|3-(_zt|_7Z%!vhOn`3afTH;j2o>@a4%oTNh$$3;3s99aQ-OT1ko3OHG@>+s zy7k7{cfh&N|4m<7QeK7<1JQStqP@njj2lv(a)22kz;PkH>L{e*OV@)inGbnyJB;Wdiu`xfaIu?&*d_7j&w!f$_s1EN8 z!#M038#_xCw^o98lvtUMmM)NCIwoY#=UWGG*$%tw$&LBc+Rj) zC$}pukMk{jOf{Kjzx)Suw#vp>822FAz!VGYk$}k?xjSHKxp^E4*c9uMeC}FHyr-To z;-ueXzlPo{Ngi|t{oLd|HKbhguz*ml<_Aw(Ywv;eNzZ5=;}bOlciRK0?ddgGI-R{| z-yNb}`n2E-4%g=MI_2a$U%d*|RW`5fsSX#s%PF83hL?NTF zXt7mw9y$LE8?hvT4A*)w}& z7F~8IWFX!$EvuTK)f#c9Rh`1VaX4%7RiBa^g28Te?zu2+<52UtnCEipB-Crn7>jVT zVz=5Z=7#>vjD(^PpZLXWR}t9qnd}+1Iav4;TWe_bCa%oh$VyaqnE7-dLWHpGXP(S3 zngc&$Q<0wFtB{NCJve*q?(!Zb6BW$K$}y_$?qyfc!F5>Dg@yACPyh{AH|t#=geF(z za)__mItPNm?PhQ592Nz%;Xq{tghVQZ6)+fYh`dyE4(#6~y8>O1Ydbsl=Cgy@gTLCh+|s zpir;UAmP>ltol7{$fw{>D4;|(Zb)uu)MVZIuFv?wXd%~2A@8%pEy97$xrT5U=|E8g z=}X1KaUkYVAt}2twYYF&Uv?Ui;h5S~a?_OP4$SCQ4^V}$JRD6_gBi1~>|*`~K+NyA z6u^Q6G1+AURoMU({Xn2ODe`xun4xu(xVhe}rSLRiZf-xJAy(x7BJHiBB3IakOWYj_ zX|!>7cWB(*-QC@-8+Z4{-L-LdhsLdOch|qpd(L^knOWb=&0GQ@ixjC;va_?FdUp1W zc2e&lH$UrG);K8`j%YEsfF5tuM)Fumc_8VYW ztD%Psg48rTq~n9`NwkDw1k(B&+nzRR)mQrlI-5cN!!K=5k>)0v_@e&{)Tr*J}H~)-CE$A zdo~SMKJ+5}lSxQ-iPyIyRMcJw(saw?sx(oETh#=1_M3yzcgXX-7pUthLSh$ z(Md_7^SFmS$?w4Lw}ASph|N_`OnmJUe2c=3^QCa+7L6pvNPczN1k&`%bW`L9A!Kvt2&j2_du~ zEN?Q7YhmTho$`6x`VP>}c@Ucn5yk}MEqRo*DD6WUS}S_G{)3d&guaQ&v0`7ti4++6 zTHnkBN0*bg?YtFVJg|8-x{XB(cvCF1faow>^5b&C@_8B)pVV#5(0}8|7PaVR$V30p z*F76K^L8T~ItIRYgv_4(z>gcyzpE!Ypn90JJmmm>ZE5%y`I6POJrsD$9^Tp11FV{v zp}>L_JkkPp9qd2EiZro-*eA5^uIL*=-Et6EPac*-_B+N=gb7&LRu@)}(r^4-M@8a} zdke}H_7Hf`2YtcYSCU`Hb<||($0=o^!$j$J_66b=REKPGgQu=xocgSlu@-Z{9*PPg zq?_{?_{cYbXBMcTQ9_5A!-^2?c>{UIf=~#t{oI|nRoeAXmOlugBEhi)?!P8ncd($L z3YpFr_IJC1g#UlIyh%1H$`945E{(kv@v_EKYM~)a^jpUv13`%XnmJntcV_$Fp)0f8 zxw{C6+IG%#!Mmv-Tmgv&F36%I;><%3D6YRJKXiT!{^{ABB_Uke{On7dIiYLMDe0)J zGL1^(G#=&Ex35vupNbAxAbk4f`>1!dcUGz`Ap|;V&D(Yp(?NfECi8_&YDAo-*)G$h zUCZ{=4KJNmd>e{Dr=A2XUl+>e2IkbQ|8Wu)d+w?==4xRov2ij1uV6J*Mj(1FgZ@! z`$04Z;MJAIWH|6V+I=a<0Z~MM3L@yDN)!?Y;pn~}jR6!H6)xnFBg?31w}-sdd8+Mm zMRys5x|x-?n5kXEznJG_o7Y)hPP^%ILl>ga=(`v^UoMh%IBV@o_7z3>UpzX?mEtKM zy!*UnxmC7gI5bamBr2@nFzF7E%)v+7M#TMldD88Gq_G28#I>}r;GoMN)q|84DHHd( zaa)Kw46kEKd_xAASH{;-RR&t$To7`w@XoPm>x(J0?5ccacGw2r&l_&Cyd zqw$G#15mtb53-s-v{}g)3dEf_PW5(UOCHr{nKur-qBs&%?vBS}-KRrC&BOc_&TVgU zG9go-vJgP`7acSM259P%_jRv}P&!{EgbRkpCi_nIZ2dDoYYyt_pRruWZXsZ29FG(K zc)cP}FV?(pq!;Rj$2EvWL4ovk#eepz;O=E2Fd(bspB6`vU9 zyh9dZ(=lpO+ zv@+kT4KLIoyL8KAt6^hDh8k|I3`L^sLc7v)^!lj6a-EFphlDM|kkB-4&1snX8melL zGMtv&VZ0}32=a41i(@g{N;5p{reZ!camXoF_a;cRni_7klufDpjQEGbU}?ZYlF*xK zcRv`xocqppuYh+TDSaY-(;t)PQ({LsS|pxNF_eNza-)mQ2dor}%hE;z9AE)vt9`V~ z<)c%j<9qT+PCsIMi&O4^VVF~SJCZ?|2(Z!Wi#N=@HM#{)w2VOXOb?0ntFDDJ{?DcK znPpiATZpFv&!r}>+_Z${3VFCtdBJd(ON8^Qle!k>R!etZBbf$m%qwFAE?^eT-m;+8 zCG%%FLWt*RY-_xs?wPO?IG$<>egC#&WhO`ZAG#)L0h6$~EYG6|5TTQA!XC#pf~2Es z+Ky+O2$Qxh`ivt4#- z-lzJrPOy*ULnbmWQ&Up@?C;mHIW!3p?cF|qd}tF0cy7Xm!?)0%T(0K!@4Wr#77*am z2lB1liV0g<6n+5;HVPA6m_Bi+Hl9fhwr`Xu#4t`i))oi16K+yW4s|%KlUR}c`ysWjuXYWbnjygv^$D+4b(OJOo_E>ss3aUQH+9$Sq(22Nx;=pRA0n$a-I%U1E26P#8e{+)pA8e%q+h`tpI_Jl#(*k z^=Ft0P;?8<{EYoM4TG}xu=pSGyBQGsu^pBJA@ak^HsQUJGyoToFlaD8nKm3@y`wiN*zSM&wyoWuzt>qTrasB-;^pw`+)n1v6>;Ljb9fGve037~2o}03cv(z& zGJ9E_>+o@TYq+|1*Jo8di=4&^V?2T!qy%aVY;Ler)XOh;hP+>}J=K?~T^EVotX<*^mEajX#+mG(8fV`7RJ{R{Gm4_hvK34{(jCG^m6&D4! z+WvA6KX|tFPF; zN?2C8!08oryT_zNNkzgzm45rg#O>krpt6Cc!DmgrIe@VY{X5bhSY)zlcXviZk4s2k zSk9&JYLkB?==OWv1n&MloVAP`O(%RVKMUUT;lYHR{TI**INn&Tp4={YyIj#-UwLwSS}FZ|mJ4 z)Z1Y10T~hfV<#<@2_E?`aw|zNfUv^y`TTIZAFheXKjn)RE4$)c#wQGYmIdGg0JvWk zn|F95qsa4Ki1U_0pR89ixuB-ISm+gg&!H?sw+!2%Iy_e&f=dw=E_TzE*kwIfZ6(j8 zr4k9iY<)V4zj{}ml<)r@S0@1^uTsR+6Y~GTlJKHE6h(W@D;>_bS3zD?;hQdQ?u{il33M~nw(Ca`7O%e$ zAi2qYyTy;#)#pQu0a3p1x#wRf(vx==^HD4PF40SXePJ)bMu^LLShEPX=zG2}fUbBP zAHFLB_aM3)+!8w!cr%T&6wW$8VLE_g93dCm7 z9#tu2xkZI!$phXx#qOf=0!-^$ZHxG4>_*|XCMIwqPIg&pd;j=&=>Qs0d}V3nyj1?^ zKML;ZzK3-D01(_ZkGRoGPN~k$qnHCnWofjo6zPN=rzM*kM$bq=?6V@|PKU>mBjHhJ zmowU-9ZF{XtS%;tpwmJ?h0y@ZbKcqy_>ku42qss#v9`y!z<(8ZgN{$p`KpBRL(bw?vm*Q)!!;q7}@fN_BKhC&q){n z9`hIEJBJA1Cpg#&)ryn}nQOM1z}yqDn32vw;eiFPnT4M+n&M(63MtbLX{9)M0zZZu zK@G{fH`z2mP=J?_D9Cw<#!aP0emGu6{Wq!I2u%6)r><0S{M*2(mMRO-3JwrF?sq|- z1_d6IsmL0ywDRMV6#5mB>_vntM1=t^3o3MX6$!Vfm{>9?09Z{iqzN%rN-g<3vn6*+_^bp%>+1L9C#D==H~r8K0&Fl61+fZcq&R!L63pj zc(X|aJvN0o$RVaQ3NZQ?wjW%yQWz7FfEI-cyxH?9B0qn$q}{-u6M<`PrGvCyEi?d5 z7SRsJpiLc(SBcE;K)JPl9wN>|SxY|k-n2k@MblDGx#}O0FLaZ@iFXCoAdYt!3!>zT zOPACaBLt|+D{66~!4#oQXUc`-!WU~>G`;|I^!3o2c6CJULQ?|_+{}~IIHXl(RqadT zBuIf{x59V6D#{mBC}>fMw3pF8*IA-H4*d_gRm&+(`B^SpZ&FiD`cQ8tIX9Dl%NkYJ z8#^;z{@cpfpHgo+!1tC~;Lz3lObU@s$Td;K3(#9BO01?Ex$JMzkL2GcJpQPfmPqp` z>7ve)kdYEV|IDXjC=1wJC~rES)26yAt!>WmWl~YlS|(f5l$KVQRT&zS%5QR|8RY&S zWNWQ>Ik?s`c6(qvYVtLdgkvT=H~SrNWghA!X~#W5)j*O7(TA3%B5tbIcP%3tS8YH< zK(ED+B6S>+37tG@6SYxJT-*6AL^C_C6zB!!OMa)rhwsUP*Q+8NL&z|AcN~1Nl#QlY2RCe{P z$&`;9Iti&&yaP-E!3|z~%AWS!7PlU+#YN#UGQ?07wXu7<-^PHf&~jS60Cn{Wy{78l z;IS^oo8B{d2g*S3{8MslSwn0INPmlvsZ%r+;Z<4=pPK}OyZN!+Uvw(&W0PZ@{r2YF z%I+57QfP||0HScsl0^lpdQP{B@8VETl$P<+lPe^%*w}gY%UX_ zIP)J=pXd+0!%l_3W_QM1^Bs!X2)liKfun74WRiWz#f<|8#dS7-Z1kIJQ=eoM*t zErE=LEEby#Wefe-$S1P*j$Heli1&qghXf~MbMR5wmF>jZZM6~bDNOSC{V-a&1pt_n zl<8q=s)|bFzDGvUh)p-6;vpXq($Pn(#qTrhau++WBB8x!Vcl(ZHb(qPnG%M2-+JV+ zkuqnd;~QP9cVAZYl@zSOlW&i{wuZ5@OF17dR^Nz6z~M4vsc+r3#|`cr9>Su2a1?^^ z+eX?iVRUaw|VB^0{vsYI33p6YDB?+9J$34FyA zc|AK>FZHRxU%8I$Au~7srpMUg^;}MVFCRz9o#wdbp`LL$Zz|$Fj=Yw(-vpPj=lI9k z>Q>59o(ziBb;X0R=1|Xbohq5+trBda?G{XDC`QfhBXRl-1HtHn!_wMUv?_rd2OCcH zxv|e&6MLk4K;)_MJ|LdEex|t3YCgx}f(%!tSQ;;_>jJ#^SN>FKBS*QcngFA~Y0;bO z-xxS_IB-*PalR5OJwK~BSc0prY&ZCTvb=)P`ebb%H0M|@I|BGr^7D_%nibl*l|I{) zu)*DsFhS9peM6VZsG)au0iQ)XHM+KJ!-a13ns}rGdbhu)g6$AS)>L!O<(Q+WsO~hn zWbneR8fb3KwPB`=Rm?hLbJhb37KsW0S7>CJF?~Z&n-v)O!NwFa5VbMGmM4uK7*^V( zJF?zXbfWU$e-$U1!I@zCq|t1HR=J2Fe-U2ryR^0}sO+#dX7XVMty)phQ91_P>hme5 z)ge^KV6roE(@7|3hR<747c{dg>E0U>Y>uZw_=3}Fs*aQzZ?!?vqm=RbgKG4@zlwkC zVxJ_>X+38R5c_0KC?rFIcuN%!$OU+jbchVv-QbiPSueRfHRg&Nh!ilM7c4K|9ylnETs?HN$zy|> zf0n=W^R6$XdVu?8QEMuMs{QQy8Q779CnP&8MpjC>U%UZI79m!kf`cnisiEL7tMA6P zdwx!8%fnI^K65&3I7Cv$;S(f4XWb*?4jmsvXIW)%Dxgp+OWm2=3=P5~xS=7gsGF`i zPxMhUWCg{Dk8tKSwkh(2>0b~?bjywAwinUm8AO^;IR(&U`6e|_T>g!(&6dD?2z z6y=uuYeVc|k9s`p!)CwUmM8~*a+4}9^{HUb%pwA>D$hB%N@vb5;O{cJH{ddklk9p0 z0rgVd=>&FEg`z~DpgYe*!aTdU#-;5N2IcZNI;^I1%OmWsO+JO*$pfZSYTY}!YWZi` zZ58?`DlPN-634)?62x!Sn<+a)?-mY<-&3iTS4nD>`+U+M51?t&J&lNG;89t4v(*Bp zH_vhlEH~uv;!MD9MF1D^;ohQ0>Ar|+=axJgSu15gY64|5GKf>~x`*zjsi0{0Kb~=4 z26cV`JWZqMpuy;g5jupqRe0}Cn-Ss9d4Dy`%^no-JecxwjP>=CAT28Zu-==L5=P4i zUyB6(07|VZE32UmUkUeY*niYb`}`RDMj|dB3=hFO9Hmk3;U+TB6d3am#XaQRj(`yn z!)f;RG>em7D#gaaGCIv5s2=F%D@0*c;tSI1c|hK((7$Ti)2g|)TL0!?IWam{XYboeXmdd02)HC|}?(QI4pOXK#qwbPiHpX9&$q1OjdC zX*YjwI-#}AsBwe(0TywpY@6cYk&b3-Kys79 zN$LVzc?U0Avc@O7`hC2|z6#h3;yjyp1y5P#l8iiypO$+opVdbWgcTiP=5el~ebyU! zzSy#3dAfWLu9&?uAT{Db)D;pW8&+V!T3(fb{7OL=WT@Vn2H_BOz5y?9>l+%6+`QB@ zJzx{S`f%Zfh8Rcg_ML&HG!FbF`D6NSjz66cbW&Z;Xk{r`++H0gZB0BP*pDgS#Lw0U z)J_z`7L)aR!r&*HixN{l0q4tK61`fjD_m1I65TllluE~!RLd>IkeLMO7E6T&Y*DVq z-%IN%mX;voNkLu%D810^NN^!0vR((@pONoS-f(3huKk2wql2f?QCFDCI(5#~hRzS` zIRBH;nBv8`n$A!#kl0)S@ZWDUyMK-r;e2PH2fDOf#!%c-*i<0Wdh8rVD?*MRRM068 zF7;|E>aY@=PX?d+q>59q@&7v{?|c?=cq)uDrLQ1QHN_|v`}ydo_W>@cYdZ13brb{; zl5^Qd!~>o4xI?~K>;#rHoIf#@REPw;cu&6k@_p~`;6#+&2b>DYAz;(R8hK8mbCW6d zaJwp4PTFJR<=|qGQBuX>e)S5x6*5_S{x?(MABaSXQak;f@&(e^k@KQ}CumN1=gP6v zFRESW=#uu38EN51+_)+J+N`ON#CxE?f_p*JSWMe@42-yr87)&$y;OHM^5`#Qd$-^5 z>^9g(?dnz+&pDYj!>&$0-@YwheUFu?*{nbH92;NN8VU<%Ntw94fB13_Y41mK(t9*( zw^BpMqFMQTOQvlTzcfYr=E)YV=J((dmeLG`{ln4{N7_#aSx@Gr*Lf(4(36)xb1>&) zen(Ei2lc(9+xl}C`BPZmONZadcv<@a3GS%E4N*LvMJ{0uUq3Ji1fRN5b({-6$Rm>on`Lfo+FB>ar2ZADg> zis9kiaPfNT9pog=>nh!er>s955K?Op&u7`H!uo}JeU9;B)Njc_gb_R5jiR2aZ1fc^ z!<)VBPN=*WX6;&D0mz8Z@}~UhQq|Qlub!rtat{{s>}pFYZ02E&g^P4uEke{m-QXF>%KjPEbltdc8M-Q3)O<5~HyE&VYi zAogfHZam~_G-?2rMVzE6&3~Hu;QuQ}pA>BMt`pLfe@kHZT+pXcaP;um{7rFbq#tw@ z_fr%2RLZhLBabTSA)n6UvwDqlfij)WxnJ}akaO0sQ7z}nRdo?K;FaFJ_Wlw0LF=r| zmJZaFX_aahjiHvkkkPMD2tvJ&u~dp^tmA!!-xcsBdb-;lNEt5n)g99PgUwNEnLY5Y z=jVMgaS`#ktCu@wiEx2vcyx}8eULdNjAGZ67PW-PI=qrY2Uz1B+M+O}jV~0C0gfJ1 zJ_GhBa1~R1mB&Wc?a!=~h>gSJMWKMEZ@)jJyN|&iE*yzbR@}8@|I2Lu+t)kd#$hKP|1^;C}^sC9JpADTIjrQkgBC$q-~i7&J3y{QnctfMNYx1%CE>#!T(JN+tL^ z=G*vR$M^iduJY=(Hjown!+pE z%l41F@TAF)y`9Es79pF`GEKNOoMkEr9auM#as@__@zeZHt{VWYrzalL37Aaq92|r4 z(76@>g@!-f<`H^$0Nrb^Lnhi7c(fuk*#5VQyoLB*(oOPjfrDrZ`oG`2rOQbT{HM%8 zWc%L;2hY{NwzKVwF9V-Zody+EAN%f>v=zla=s(Ur`SC2^k>72K*#hdnV7%>~CvU(_ zaA^bTpZf)SxVw?^pP#zuLR*7oJ?#3lNU2x^nSPW?+^_?hu^_ zjWXa%FIFpehH1V*;^mx=Nn+0HF5h{@Wz?SlYMDhMgUs2gMV4J^IFn)jgw0w zlQGjf1JB>pB1y;M0ioyVHHMZjAw#c(H4;ztDwq<}xyr@+*V+7Bn33At3?{Rh+F z^(;=>2e)qBl^Um_#Kq69)zu-iyM}y@!8P?WBPLD!&R>C%lY)wa2S5O9r7MGCPf2}1 zqR2FA=0z`_5|OClbyRrPne@Dbe?8n4$qQ|hby)UTqhaP?0?Bac{qgSjNPf-iND z>(_~b;*j<+=~8-u_!NGHvG8@llx?YycVw0KXE;p>*f9)Y__7=IrKlQ(mcwV4t+7}; zlV+vo?VFO)d{Ls@Tho?jnle6kGMjyuzLwUH)YRd{p5I`BanpydulAmAd(T)nLjO15 z&cH^!w&gisY%;R>Y?bmu5cU5Ra%X!Z@L}P;o*xocT(8BNtxNJKoNX z7H73}sg6VbYOFvfESDnUU%x~-s-uS=R-`}zmGt1%8(uev zd>2;JEdbMW9IO70p(1KP4~0h~Gxgp$AgOJ3@Aj8~>|7Cp;ZNkKHsVC4TI7xcY3TP= zkT|@O)pwe>ilB`biGg>UlCA{XWbN&Us3edKiRRYv`%n@Vp` zu?z^@1K@=eh~hQh_P`EWI-Hp_iOCGQEi(dnRC`2!7G^ZZ1oui<{l zky8+N?PLClZh>RZ5bhFGmUu6p_rW#@AY!|HxJ?89^r;G$3_G6F43S%dAhhH2F(&T| z9g62H{w22g`jp=Orxx6OqK(5AD^cvRqv?EOqp)pVDLlccfh<$08tHzio&y(~muHM7 zPDHUK-t{4@v1CN$Lq(FWyi}k$>FzEK&O_3=1sM|+r0L70UZ=rp5yg)YpHsxNK?x0bE z-*6E|y$FQE#AOj|7^-Lcc^|6}X2C(`z-pt(-h8#U4a(@a{#|s^Wm8r9m74#77 z!zO%kTVD2n)%i*9@nR z=~N0c%_q)BU0!z6>7psVAN^A+Ov=HUtZl8to_gSK~HXwUe=XgzWO?Dm)HxyKOtyOF3F zB}-G9*q7po9iD>-Aum5Y&m&*wUYmPXR2nI{{Cv$@|PQeHyd_Qxm0eRZQedV+3a-!pP>dcOKA{G?|1D#x* z4M9k;7h9gTnmjK8@^SaKju(ay7qV(4XvADteq3Q%!go1235+=-?$SHh;F~mr8N;J? zNlL>|oA#>Hq*`r>oSgJ5GAa_Pnh`fjFFz0zQ~*w&d}^$bqs^ap4^_tYoxQl{nLla>JrrKne^TaJZg} zE;(^v&brtZDeY9PqL4Jso4vR-PqY+`+{mJH_CV+85Pjm#rAV-_p;S(5QV2pjH+IVJ z)Zg{hmLx6AytMS(jfA1OY~yTCa8B3K5;7_A$-RFtxGuNm`bw2y9k1m%uQ_Kuf}$E1 zD9*Nnt$2UNMm5ij8eftydyvHu1_%$1Be=Fme&a!`gzfs(+6KuNJ@_(tkgItRo8+;NArGH3!&iQ%`*gITgMkYxk0@zL_6m}I>gI70l_!dS=QI4{yGh=9%!$ijlQ1NDJm3KJ$; z!PgJ`tz6};j@LrdnmD(ZNHpC-=aa^0vIcN~V*^A*Vp0ag-m^h8!|tJHR^ib_I7xpX zJejA(s2aH2z(=NUlN1%lI|3flbX*u>P=&H&N0Si|HH+3GrDBKJnPO!si6y}O7nx&d z=_yvEZ1VEzipvs+*tCF)>QKmSu<8rzy^JA?_Y9w8F_$22MUG0jH8;mPGt$d5?CI&+ zv8ME>*q4^44jN{roq!weSbc01i_YCJ`@cIlP&QnTwbmm?F=={gl09jts`j__Zw5^A zG=E~^Tzj29fS;d_FsOQY$gFkSSL6qEw1-YF&Czgi5L!+= z|2#3$`jS)0KQAnd!?Q5oQ!fVMsr*LKqGHC{98Wc?A{y6gD9J~s7SU%@7oB`>Fn#ff zh6W(8H+OMgg53L3S-z|zpXGl?VXE6y@BaPqouR2AB&=)XL6MXhK!zg9tQ=1iNv&p* z`bCa~!6&o8DkK$`1&*t~joblI6VQS9=IeVesxtyVr7CHLSWC-~VO%u^2lll5)HUI8 z%WKFbiDHn9A1x?i%7@{XXFK{X6v{I*pP5E6LqRU#It*cC+R4g7UYcQ5CcQO0ij7oJp zuaQGpRHE*BhdN$4AH%xaGP|A|$?yE~D2waA+46~8d-L&5VNh4s ze6`gu>-rMJ;1<^JyZdL@V2`47__9MKRmtGbC7f=nxI6)+6m!Wqslzg6N;_bL-1OOM$OOE( zs0~#EQZ48Wq>>6w7J>@QnBSo~`a~sh=J^|rm)FbGg9b19FYe+lbrrRrH4xw1PW2B$0vn9U(qfVY*_jf&0MG?5?t?D=QWZ2(<SYAKlosj{>3!=iyA##8aU9vrlq_c+&;Zl2cH6U;-+-qR>)Q`rQ&sNw4|TWEFMf z64qz3d`P~~8tgAbZ*i!i@mrO3wp5(=l}SJr?Hi|`IB`A~TY;r^jY&_asq{;ZNwPUR zI%CzIP~@79W0KrX+bgRMQL~s~s3cKSuMlMZoThASX@Q2+)$hKbSd?YZC$q3B9~~e6 zy~N=Y_|?WC8v2~X)q;=;>95y;nV-HCLHt(QQZ_3h@p?wCz#XF0>P-bo%acc&)&=4_ zvgP-B8CVm+X(LPcK+++bx_YS_krYg8-blw(&}`UJ`*PxdH;|zp=2;0e|3S1odybCYa`VVmCO9_GW123bOd5&^1Ej%TNg-{Jl!iQ?9 z7gq98JGfPCc;Wospyk$mZ{~(a%c%w&mfw5N27TGzTW$w((gMz7U@IT$hafD;JkhvQ zSB8A***JhINmtR1lak4W*M3QN+-Usb->rkwoo!` zXBT@g(>EP!1#HuZOQHlSwrINjd$?jPgMjhSO*VVs!=G*TMHOsAS{Z*b4%6}IXWX9<1<%XXBo36+9{_!VDuo!I_?Nbgdk|ax!G=OP$`dp?4u8t zi74#ze@o@FHca1Q4VoVRN++2eo@eL5^OQoZV9)51l+?#3A(ar*&xngl70WNF@3?4` zyi5yB16S;o2VZ9oB4c}t-pAVm6_iD{g$sY1ZAXB!;uIU7T>?3o)Dh30HxDA0a{?U? zhL-Qdnid7i|3y_7zI;mm?Xdv%;$oh;A&w|!xMF@O4I38*9^NiEz3wXK$_63i0W?tdGmiF7)1jSeOrxn0TJ4 zfkE6SOalMZg7x!v9dJOOg$nAGmw8i`S%_-896C6 zPEE~ZV`)R*{`lQKvImPq{#qd4th~x#_m@K{ImU=X9rQ zGFC)qK2fYKlVc3Mu%^8RzLbR>)M*&2FOzwYmiV3_lSivRm4@o;@i`Zf%dV!T1`VD4 zr6>TBEiEPG`PQniY2tZma@^WZT-=6z{3ecIRDp|x|Y^BTK@VHga(Nb-Xe zYfql9>KEHs`EbnDv5&Bl;jXh5+~XyotM(^&bKc1-@l?C`Q7s~$vqF~bQ#N(u^fqn3 zp7F5DLJ8omxu3^byD!ICBGK(cn2XnSDfT;L%zd}FH*+E*KQzGWW%@!-PI0H4)FvWi zW}O)~ao#C7g&*&F#^5u*u|tCmhK5$ZWWBlm*m|p<*x^)hY+S^yF%|%Rwv~6>#L15I z7Kx40!ry(nbc7+@@PFs$j&48(rd^%DRKrmzTYo@k*fvt%&VW>$ne3rPLM*qsMwK_d zx>wa^nW&2&X4(qf9kxw8zQTmTaO;YHanM!r+ev{Bj)vXEi&_%T1$o#s^jd!HEB4L= z7n1StqBQv!)i2Ix`U)Ej`!Y{A(OEoKDk0PQF)qnJ@{|0@^Y$K|uycIok`Iy|sKK)i zMW&jsJ#ZaFOwEsZRJJDQe;aSsM zai28XSd8EPLeI=QGhKboKf3S!o*`FA`0ormlBp%mND$?}>&aqxPyd9H1-nrHy9Cnt zX{Ja(!`}sE!58qUzXKHiS*1CuLBxMh_DI+*n;$q)$AA226qrK7uJ4*5UI_C08P5XW z=#PHj^cxS7ejpLhsJSS5RC0FfMm(x&hO->h5nuW<_0rG<3`bx^yI*%vCtF|>(4@e+ z+-TGVE|K3vpTC(wS6{9DGw1H#DR)HcLc5{=%GJl<|D9gP0haZ5^x0$}@ZTRli~ak@ zM{)iuo(KAn{JSdPM&ly>JrM8ZkG0S7^_mRo!WqK(qX)bJ1aq}$=kwv$Q*v*Adqn76 zBq{AyeFIrBCXHR6J#kqIV<$eQWltL4T*bC>Ip`EP=`gf$E5c8&woXq6eT1_%^YD~l zMd+gU-X9IBr6L^l#(;w?9TI99*u^dFN93wtE5^04lM+n>Wu9O6*AMW&SBipv&xti% zJeKT_F0_p=Wb`e-8Cz-6W}4Oa1lCkk9K46V;)0jiuKQiytZ#I^Ad#OZHE$!9j59}S zaIDZfx<2*F3gNe`n0QKq!&c%%t3PnpONr|5&dyphO!0j&d#7K!Ehy_BV3%4eL-fZm z!>G4=IiJ3Ng4J4(v(nSrOt10}?u%1(K>9%ry7`73*jJ%=DSzKcOhrd_i%zpoUfRv$ zLUJgB?Ym#ND?rVY+4vhZm(vEP*p=o@T~4Ixwf|B?NDTC}7}4KuhIygb&F!H0AZOJJ zPQ(0<&2dw2MdYGrk<#=tv{~oqj*@9qXC7p&oFEYg>B+{HjW0x{x+CjFVPmHjmPRZ) zwV~xTm3Zp-Noj!F&Df=mtx{K3PWkV=BH^9>eDkIw=Zj2g!K zNO^6>x-6@r<`=Tupnq_LtW;1fwesKJ=*vjv1+E=hY&4!OfOjtbhEtF zXrZl#d!Zt7M-F&F=B8+=o4vrp5@&w^bzj;(lA{zmkU!AR!7ozS>+@Zj(fi@-IqK%^ z?d{{^BWwCk!RtV7YkzY$$ftX6=7krb+}kVYQKBjAB^3l(!6P?z*&43y?Xqs7=2`6$ z^qpaCeN`FRtyt7zWB73|!%@4Z&Xu?4_G-nqB}mZ_Ry^6Uo#j3|p5b4_ad;M7*q?`W z?bHn>UIFrO)U%UO!Q*pwVxhLL^2QN?3l_h|?ug^U2C{vV96n&n+Gah6cl2JJp)4$U zuye(m)?enOI&tt&N0G9c)Z2X*6Do!?1ONlg{7vbi_9Vvrp^c*~#>s&5I{ zpBO-;&=KH9FvF)pSNiy!<7l5ZHhms`UM6l2FE-c|?iIq%-E!fL1yC~^RG@FSw6}42 z{rU4qL6~--t%Up8Rh2Vf69;y0f4iEQQC5ZjQ&4|pR)oF{vx?c*$Zy7Z>M%FPa=#Wp z3T^g){?5CIWrq3I=&t(IRMJ@qzmATLiD!0d2VFTXKV4B%?(OlXcb6vCIbo~jv!8*r zH1|%rM!K@bbt;wPI|KjQ#RB+v=cZ~8w;7?LBdd}lqZg|+$Jd5sr(9$SqBu&Qr_cy> zP2eL8`+DJLL`s4LT=)4~Ywt@5NJPFOrsa~VwAzGBI{SB2NQT_ zpT#-hXV$xS+p@8pNF~``Al1al*O%Jq>@lvaUrr5N{1-1?CU&S^eVi0Nb+9Hw|!qH#Ts7V^6qKEvPF9Lxa~ z7-(=Gxfy|oekPr5n@h5bj@$9rf>ITXKN*V5~^O>MK)V9}Ig{hi)6mXI@thW;-IOPGtUJ@`CdAlE zi+-T6s#IWDV@OCoEoCajK_feR1A&m7GHj!_0;Okq-Z{Ia!pUydKXlg;NOyI}gM>Ae^k_0fQYj84sSKfuigs;Mh8EC{3yOLdq`L80a&#-AM5RH3 zQ855e$G_szV9MG8r7gduN`|`|3FdK<$;(IyYX!=FiBg9#ZK|}+I1Mj4hU~|gcQ?MU zL3PDFe*Q(pg*J!g6ya2&YlVUARpHJFW+NbZGnR07bv|PCBs`>1 zxHiYtpET6Mf}qP4lRgEtB_1VrKG)TrWNQxoSJ|(EB(bkc*vuqw2$`kda=&r32#TYlgoGG`IWAjzxl@bn)KX_ z0IBmG#j7D5q%m(@YevYbhJ%1!G#OHW6M>a6Vy$9^VF3`kBeh3IKLcdHC-=khYn}B{ zz$5Y};{_v!ac$Q}oTcaxecz=f!fuuE33eMwNb+H#y4K599G4QHqXos`+lomK7z(8C zqDO^QR6s$+BI976=e8tHFv>V+gI$WZ6FvXg?1Z-%D`rcY&wjukwq#PLn22Lgp@=)E zh|4o#E0Kjd00RRzmw6P5{Ue$PN!khZ4nwn?`O~k1JCd04kh!8>8};UX!(v;!JM)VP zcqbg567)x&Uv?9zT#Sm4flfL#?9cgn+ww|t8z8-irDJSb=wn6*x=2;45o%|Iy{RM#LfBrqu;`U=9}dvq`~7ma6QbLjozy&( zgPg5z+cTOc=Z(#&&P}Y?bgHG}mjEW?PcTiu& z&yw+vjiX!-EfL|fxeNiJ+GKTA2+6m;f{G+p)$vWh#yzqX;j+(yH!Y|e$Z(KskC>Az z3Gh?&t=5+r=)FMlRmhpPI~G57+7e)~M>toG=}iJC!6MhI?LgJz&uCCr)UnZFp}MAa z544tw0fXnAbDJU`w6lwfRmd)~q}zY)Y&ZR}xJIlTv?_fu;WI8yDQ#?xiCocN?9OJ?Cm|(g{?ktN z&D9AD8FzYEdnCeFz?96y%-PqtOCTN8m#2R5`r2RR;qYC+oZQTWoVnP1H)p8I>CJNM zrc)2MBXkjTMdjrwl`uFy_vgpQTqJZg5BI1o`XW(mLx+~XT}RDr<*@g6Qm74ak3}V@ z6FXm92;+4{s1wazh6}lGHmq8Fr}HAs^hj*uWulsuj?lrcXYDniYa}mgtecCa#1$qj z&*cSnnTHUxfOw3414e47FEtDTJnY6a5=dEUo(NUfSC3ejZ5Fyq#kSoBAEy?^ylUb_ z=5t3_?s4sV4u&M32IXjPzdm()vX6QCI%1DrWmM~DK&|WP`H<7=KT^is;sj+je?2u! zW+2-?r%5pvCUldFxvgFd1ZFCasWhzY=Mi-(re>X*0MEJ2fF={S}2Slx( zv|V{WZ(^1VO)4t`=N(vq;S`r}mYW$uLVZ!Myhi44!e2sd&2T8=U`Z7%Vf~^&u-B!j z4BO4`0mHG`o*tfI)0as@X7o)muNIPjY70Rd3zKUn&$QIjwZ1GuMH5<$9z}OP%5RpY zS$6L(8{2m3R$_90RnD-4bds^u%<@5Ba;N+;(MV=D1+OFcRe;YvsUD0_pWSz2L*d&| z)8V5vmV~jX-DTM0#^X@`@Zu* z=V?vYV55w##H$J#2V4$7K}R8LL*%D|gu~793R4?1q2y~~lE~{!6eD`k>+Tx(eyS9A zt?y_-%qMC=U5cO|a)l-eE0Pi2j~OmG>G$^bt^5z`doKMnhr z(z%sq=5WyLC|+FQ+%rNssh!L`5OvRsL?5>>HZq47MW#m^&Hf~0?^SsvaB56LLKVqE z<|e<$W5(wknIOQ3WY;rIN3dm}; zA6q=BH3lL)u6qLVe~Y!#3-{3W1T;8F***VgnbZ?U@HONeMo&wmpDm6X;cgwj-d9M? zS+~^_hn1~;5@Ia0C*?FkZd>MlUjUmLav>%2;ozJg6&0gNn(GzMtrA=8uYWh63)8^x zptxT?>G31EH18}RLw<5bJk#({KdSE?Tv$3EN#E|MQdCgP$G8S}`=QToa|^P+7NAU&6pk*J+|};=YAlF0@f#*Lh_7S z8x~NHkL{Htb!`m-LEy|Kc&E&CMZ>if&U-ZOzufmnbhFuygy{W(xRI$m&FtYK>cw7N z#0Fi=WXBxlQ7Ggm+QXV6Y+S`NITo1o!Rs8hg0-Tda2K!z?~2mk?7M|t0cZb^{bhY3-zCNFfiCy~IO9^Y+C?lXzk zw3+1@wpm@H+?qe1(cst9aKg&-Us}eU3kM&Y%P+Cp*d81)tP7hs^pX4DXz{+l}S+5`%*);KE!SJVS^&5bVIV!R2mmX zb-f&9WR9?L%yJgEMUR06jgf_NF*>K!KP+I25k|8L#ug-@LJ8&A#3G|oPfrYY4i;rZ zA~~(nzFz)UhPKQL=&I)FF&Q1hs@qfSMwWUg9weI1`jR?YCYq8JSyzn*CClScLmF;t zyNya)JhBN2ajP%8LCr<@TUyI5;g%Z@VN;J=4f9&vvvTT6d4{Y$ZGZtpp7ZmXpT*OJ zRz0m$M335*FbCHkhRl?UHZg%`yXK6yjOtKnxbTC2qQPe((qSs7zdqGH(=2bYmJjr8 zuO%~UMbhESg#mPOUKd}vaZa&zW>)7^!Hp$iY0La&`V=bTC_FZP*ptIKZX_Cu1OzYj z4hIfR7;SITNfrFv$b|1^KP559VxXM|@G(p)AG`x5Tq;G%8_IY{X8R z*?KaMWgcCIsfmT7=|Ra_*qX0kj@Op?+gX^fa&w8w39U0l>s>qXc~wly9yw9;>pg(d z+2=P8Zjn&Ji`1}XmB{8GGDcX-R4zO?4~0Q?uX-l0Eiu@{cTMW@0sgpJl462=z9Sa) zB040x10jpswX7U40{Vkq914mDkLL2LDVz7Wa-6)GuTH_Xj7da|9;iv)du`z4ho%ur^1>!**$Sp#;Jw1} zn+OOZ82`}4v~sbeHlW+~lpzA|n8{iUkmSNebT&iaG_1)rgHWKXw8?1Zjkhec@J!g~DfZ8q$mrb=v!*$t*AZd`jAn$xo-&_12DSi}&yOetMdPTQ9k&xu@^ zbwPMNK%8#sB6U^M%%RB*6Fe8$pY|1?S={8~)EZt+$q&e?{788aZ*-1s1^zY#>Myl$X2EPeeYIR);e~xPZ?N53+Q@^QKw{#QZ80AhS^9-l2pf3ZL@Ue z0{n)`UT8&m#tS67Bz5|^@~%(t<_iVX`-J)>-{p{ENu_d{5efJ9PD2xF>y?5(HZo0{R0@2(m_l09O zYP0_XKf}3wlPaYAmb(-Z$Ih;%kUnu;H&s)#5B-qd2ddmDfNA#ax+6LO{qw}Y?AoxSx`i3aQJ#B09HcN&LN9=*Q zRjow5z)mJV^`w3uySrjM`k*6yE(X8uri@LyS(8G;t|4+^30a<$5SDkCJ0r}rOz8^zx5 zbz=YQ3K#P2pJT9IQ1w^tKs)&WFVcUSF^lp2m-}WSWr6NoXYxOhKL7Jvzhu)O-hv4L zX!nH}BJ>~P9mU>=lp%VYL2}=LUknL5w1T7Y>Ip!@4g&deUp^!4ql~?tl?C=>MKmVb zdfosuOhip%<89QI83S#1B-!K0GWtS#c63Z#Z(Bv?UuBE1O&%%sR+xn)thd-veqgf)nX^kZ6+i~e`OJEj!Bn!)cIE@_+L`n*wFO7RqwWCfZu~CVTmf@W+%TTFR=5L=RK&+p0RnFLk0o zRbVhA^BY#em*z7UT0Bdnok_ayaX82iG1{n=s{F#bc`?aDRI52Ug4@JJ<*5$$DoZ`G z(aY0V5V(>*aWlNaG>6yd@iHbZ)o_Xpb?NcALI>-@OAUcSx~EXQw9T>>62cZ%K$bn$lg{C!p9qiS5RsF;%a3pi8P^Y}7QiXXSyci2{lPB=t{75Py{h2I^$rfh}hm9C&UEiW3>yvN88NlaXlO z4=wWg06=kfSos=gVx`Ln*WvS`g)Ose!l*%2M)=R0Vo%tpn2HJdrp6NjS`&u(en>ji z6}Xn}o$BG9kdW)DQ^N~uxpK_?Cf`+=n!;_Goh&OuO zw`e7h_gD!(O8DM^-&NkcvZ*;26vXWi;K<=*EhZ}TKq*9t%;7eqE&0F{I~V!4LmM8y z+i!1oP*d_49OwcIVDd8{y=G$_WgBI}?di<=OHj#}&l zSig&8>|7u`Z#iuXTA#IYef@-Jlm3ag=Wc3hZ=~TY!GD`J6I9R=cebkVOWd+2a?RyW zL4@MtOHe-R6cik}Nu7OVL3|YWWqMOiKE>8+?iJ61NN<7ro2I(J#9fXo1Fa_)MpNR5 zR=RoH_R-02!F`F}mGlF3(&sT<(VQ-~{M(`pkBBgo1g%yjU&~M8WRmzjMOSGoV#8|} zcWtqpk8h$t!rr)^Sk9H3K--$7hF1)DTt`z=$P0Cbq-PebsllyQMNO^|qmp;IH>tL| zsSdj`>PDO^1WEme7hjDrMPzV0&+$|qLM6EBpC(s}r_WDoch+z!lVThWmXKXT=YF>P z0fB(~E6J6u+mg|NPKVdx$B>l5tY1pSX>b*a1vIR%&gbVdehIuZkKhf1TcXyPQJjxp zk%l-9W7!|iB@cfHc=b!uE)F|K=DpXq3i`QYiUZ>_!7nSba_XVBoO7;tV|1w~;v287&3 zo)RjO0DPZMl8_#+0!V4W{%iG>B5kMS@~P|8KT~;VGBqjJbY8adocH&7Ltfo*9Jpcq zg7NLzRkknn^S7Z@oN>z?nUxw(L;lj=p~O1hGkvnF zHPH_T3z^QbY1memAEwK2_)X})7HUvTq-EOBm>gJBI=!B5ubt^d>Q_0py&fumLDcvb zs|VG@PQOzN^t4E^dx3$nkz?+K4=xtYX~b1wY{jZNpFmk#(3-ro==cj*JNVZ&2Bqd# z#uZ{t2|&PZ#=V~9HX~4U;95u70=(J$h&F^>7IlC&`^K6NNvldYhrAn6p9@QC7@4(fg|yi4ZUqm9_Wi2OuG0T$q0ko}U|S_oJP6@4 z zM+=P;(-0Crfw7BU?X)OZf=If{6T{&&57Io#_^={kN^0MTz7vy5?XD<>*cy(G!^RPO z?;ybt`%{~9=D{YgUHuF{gb2+eO-opgzVFHE_h^$6 z{VP6Zo%qiF&mBvWIIEbNxaGfv)*gV+8lYuz@0Hbbq_JFtMsg0oVE6HzK)5As0eO%^ z9qj1BPKw@7q~e*lZN*5$gLnOpqouJv826Q&O@6b%tdlrb=5XNmuHAgS(b1DqIDZMW z=MkH%zWbwUZS3Q>z!Q z0d8y!85ma20u};phR!{yAJuSz8ZKA5u)M>!VV~(sHFfFC`ZoA$nx?9~hwixa#^3Qa z+&7-IvK{rKUPpv>jIrGBd~JsR7qSFZYGgPHERQrdcdLJuf`K~76Z&b7n=)aL)k*O= z@8S*>L(`l#DAI070h+LBKOnNR!fsOYZV)ekP1z5s006e}nyDAMQZn_?V#T^Sz27m< zN8NpSo<`LXFh7JX%gr5?1*KgmAk4*6c!6VTj3$;u#gcg_cMMx3=!&f}ORmf}0qq}C zef_9BMaNkfgu|6V&E*1{qKG2L#hZ{d%}Tol#yn1D9qvCKw8%bM?6zG+s4$NdH?L2% zjzd-wv#Ks$=(hch3#|(c>9+yzE8tG=>%|GenVQ$lR(iAIakHe1*vhoK>%!$!n5 z9JcQ~d`B96m#%Yfj%n>Bu6rCdy{vy{Q!R=5zVF8z{4JmM^xW_IQxS6N!x6q(e6-zk zPc`6Qp(P*|xj4a7SRd`-Todz7w)(vRwjx|(KY6I02elXKL`n^N%-CT~UaK~M9w7jY zDXp4@J`Qd)0mge}%)!x~OW4Ef$mGxQrqw3{=~hVIOkvMuCQ44j<%E(@ zfuB$3fHp5Qd1qEG6DAk>k&6PmgdzZP;*qkEn@z2h7MX&BqvVqg()NU@+uD&bLDkeV0;1R>1yD}C4Zm6;&$ zoqUJ?w^0M|)s5OrvOVnQ1DR}GA0(xM=1 z5h{!{nPXeu&MtXp5eBRaQU{9&Mng0ow0C4nrj zIGSN0)%O9zgkw?^8?p4|tmu z%DzzjOWh=xJ?&1eX09idG3I z$;dz!O!>SzR&cnN5l1#a-2!X=cB&Zeg`nq;21t7;xD2%N!fh?JzC1OQEPm)(so9tu zDk=(4pd>K?DvEp^%W<>V;81Q|Zoa3^N5Mi-J;$S<+gA*j>Tz}lYy%la{f6!Cs(IEW(3SHd3-!5P zzHd(w+NDciPwj&yqqi`bttCs3P#G;3@WbL=9fVCd=*B!F#+UD!F<&h*%*g3fBNSdC zxHNOMK@(AnQI>_@2&$yp>iR9Jf^a~d2yULyeAyRZb}@~7+>*v|nQF(9?x*17MqvFS ziXc*0#Enkr*>jx2Ty(XtRu+BL_piy zq`A8qgd3~7;R?{ICd_v)HFWMon$6q^tH%g4HSw=V#GiatI2W z6?1C1#si1$Eau%MeQkaCfh;tKD<+Rbf7d~kl8?BF6|vOJB&Ro!#Xe<4Xxa2{9css7 zY1FuPeB^&DPWJi-FXxB19cXOHj0{pg2bTs!o$YxGC>Urnr%&CUsvEccT>U$5-#?I)lAS zL0g469Gq~OhAtnS!wZgaXR~37FtJ4^dJU{Vr@LA>Sd>HUjcd30o=KMIc!(PJObx>h zeH~{L``3q3|3?f|w53`GxAu#kK2BBx(>POlWG}{Q(dDBQoctK+9$fjLa%#`;Qf}k& z3HCM(9U<9)s9z@GpY~V_tMP-htcpBTYIxqI8@z&Z#~(@B45UiS?}LD4PRs z{rRp*|HAYkz?aft&bx8>cIVhcLLrX)2Yw!P)3-txzEJ#JX9X&z$n7AZsM6>dPjAp* zup^z-0I8S4eaE|{p^*)<!H60&%baffZwCR|1)0eT07#L4fwRA~#%}Cy{}Qu%kpH6>{uiy` z0R0!Oc}3eY1D5f(dO83=yIAyoFh?c;dpt!ed)`?Q+G>0XseJaOikE5WSu zguLa8!PrX|zP$bVo^wN+{Uo8|nm}N}cFX^-TKR=={olkrq}_k|-Nqr6!0`UlJhqVT zzp&00^uG%S@jXHMYaxgu|0_l6W`X_<1OW!Rf`;L`yV^;1Sn>2(`H zolPCwE!O!jA8)V{rgEAb+%l+Wuqu}N*S!3nvr~_gzbv|Kr+zIK)p=SCRZBbulMi)= zhv6PXr^>Fp2Yew0Dq_k50#;#5Ut1QXo59y!P9>yXx?VmuCtFEn!Ie3~oxMV5M<9G}B6Vc}ya^mxp@qpwD0oXdQo;zs;r?mK?q?AG8`x5=fVZp4jG{B|bzp87 zVzh*J_lJS9#*Znn`GXn8`^;wp*^Nox*Ob6CiN_F>C&HLXgzz!W!D5@{WlvZOla2P? z5ZAEwDMr<*!AGz6_ZL+{$4_tQrIC}0bb?p@pGu__iLWMSgRct$HWu@Se>sHqTty$R zA@hJZQe{RhCA3b74_adUw==<|59y2CwVG6OMo;LKpguj+rlE6IZGLkLq-6B3&l%{< z7ztI3?PzIJ$%H%h5ug%|T$%CXJ$;Dc&>VW6bB})o)e(T8O0aGXbE7C-ikB5l!XnEC z+Ke=c+gN;gGsK1IDz_%U2C8COn?}l{(zmy7A+Ii8`}wDRz7gJH`=c&h0>1>aN>xSq z2C##*{qmIfGVA_5Y5$hb7wwzR%#84Z`Qra)U{Y@Q^BNq)vOn@169I1FDE($d^OqQ2 zNAg=y07WQmC2TWFR}=c~DRtkn2LBqEszeR!`1IPZHBq!hfOI=kKGBK(kkUnY@!qvK zTMqjKQ#nbVqV&5x^I2SgAN>9`sv^Fu6o=;Ha92C-8_elb+V*P7X`lBVqsX$7(-br> zkbg|;_2W^C$C9Nq;+s80RX27L*Sz6+j@BLuDzdI8<~tadYjL-Yuh)a)G+{65ADC}i z#FdXP-0DuHMF~6j*mBs}3#qF7+l9Mk#8v(s<`*S;5iOj@Z+1)gg-Vg;EoKC<_jVOl~VZ?5w zV)ZGIzIK7|vhBFat6|e(t@_a;pr%my_Wk6GSDXijmDw}2W~wOez$d2!1|gmbs^K@{ zFl!yxBkSqPD1l-749nb2Zfe%uNe+>XnRRvH4=$_L&Y zQ8VQ!cT~B#;YLIpK4Fy3Nuccxsd>`c3=>x)_l@offYj%FxQ_kByf-ZMpYcp~doiTw1kQ>u(UaM&!@+edc<3e}1-S z*6*Zo@l&VBB|W&;_w2Yck|PxIp7_ZQ01wp7{{|k*CPhj+9V;~?kh)1^8_XcM_vUnr zjf#ODLCBt1k+!^YYHcsu6{ajJT{9Z~?K*s=Bvc&u!T<8I@j*~EdGj~~jom8vc%~%X z$o)k3X89ui?p?qU7!` zmj{2&dP7+?k1}eqA8vOZ{2Q73fLQEIFW!@+udCm@=q9)N+ZTPt1K5sojQFBlH+vS$ zy1mB^Fub40P*rs73>&u=p~xK5PO_4aRW{dh%PMU~011nXJ3`qfYtLA~=y5jV99i~S zpO|wf(JAd}l^?VQ>%sh3)SR|xFIRZl(GR;gGEOGMGv&NawuR_M3c%_<>;(;hUJf|A zo>V#CMBZDrxf&A92082u^yIuK*sz~p_*Sn_DgFg^^t|Mq1U07yONsC8sR!F0V9-sY zV87>(4I=6V5)9a3@aRcJ6guH8xHy?l@GS|k1eXE$kOF%zBcdX_)ZjDF4GwSvGSwDM zu2S+n;xBMV?cW~|@6Afd>E%|;I|eFCS#5LaQfV2BNdCmG0&Z_L{k)=)qogpepfi1_ zW^aSHuAK~qu)C-(1#+OZ(3qYCjD$X~v?`srsPq?kOBysXlgeR^L!83gmebk{g6{Ig zj5S4?b6^-33Z|6*Vb^u#YDzDLoFZ_Gj6`vBcnVI;+0;Dm2+WW4W2$+qfxUU(=Uokb zxV$wTEkCA86pyN$oT{Ko>zCHgqVEtj;huahuR`tZh~>1zG&1~)d=cG|tLt2J{CUhI zx=IpS68tI76)DL+9%{hkon3f_JB;zpiFF;yV}WV|3gQgXcQ@h7MDa5l{MHBTl@KzP zMw~Q%bGlG}kcJf=*s+6fj;d&@{`-VqSWdnwq<`@>+{VVNNyZrvm0H|dGDx+PE(A#- z5#SbGi-M9qecvXE*XSY^p~eT`Oc!@yyv`x%dAzXjArzy+B3}J{qYI*!r?-2g#+wD= zr~CNsV|Q8UkGCIy4@+B9_OtxpEHx0>lYS>Dz%eu}$gVValyHzXq~Y|Oot={ysfiP! zs?NfK2pSM>2S1SlYO-%!8>@b`;I%L{b%@#l9glqn89|7{0_W$2HDO145Kgo(L!ub!VxDoKfX^H5CGL}iXu~86fnEq7bXo%21tZ8Ba5*P zs{*$7OI=hk+h`l&=7J`!Y?JfpmYe*jIvMr{0L6KoyB>*sjXMUity=4X4ypavesR^sD8c)X_n0WH-JXJF4*rG+LN>jt z=B~&(oY0|Z1-82~^kgiOaRfCkuAsRNNQXn72sMUqwHsGKM@O7~PG`A+Bai*(Y)+E% z;@B42)>F?y%wv{MypcWji6OpC*&pURtN)<7P`nxFQ;yt)<7|+KQE|XG|9$(n5}?QZ z&YtYI{Yr?ar3#kC#whftw!TlF6YDwWRSz_Fqg-fI(cLF z47vP^1v)#y^M~cs#F~FxSe;*>V%d?*I9Mz7qAe5g&9NyLp=)KfAKX@IqgR;f3k9`i z3G5xK8Tbe<@x^9VTibWmmoZeJ?zfJxuMAU|KP7vjER$Ze8Q8xM|5!9x?oH>(xGzpe z@0rZoHb(5#8^Saj(DrdL7*dJDWv_G~7-0U>i+{+CS*x}Oh@%6>D)FS6%s<3O;OqI$ zc<^gn^P-w}0kkm{%MD%po`)jgYu<}HqORLdS0LBoE66+E{3|9jBXBbwXvlG~jf^HT zAKek9!#hF2^JK4&VE|K$$1+_OdDFej<_qI;xZ@jd;&?IuFxgOJzDVvS>K^weg#G@W z#$j$`&F;W9km&cfn#m3?28%t=qy=7E<5>Wl)SV#ox;NOiqzcXIU~?Z&Ul%uXtr0DT zNUELS$4t>$WV(uoDoj2|TV+Fchp(%EsjL)sT+g2oA~K2iS#qsYDLE68Wa!GS394{% ziBwMPumb)l4J&M?LbDj{#^&g3s;CS>1h`=Tpr|YJt@h}CWG;$f==tT$GIx=`o%_z= zEP@@kIXo2s`q9_T zb>_JybPf+5oGA)L8~UpOKQm5umfr@as6Zh)=J^e{lWb~NO+p#ujnpJk*@V6MJ25tO zu3jS`3CV!~yZ^f79s`MB_WPLMq$HVg_@_J7fF>b4JPg;nZ97 z*@La)ep5UPY=7&I-HG@qJFR1ZfwUE&MeH7_{r#36|EQJRD_1K2Ku}l0Ihdj(_3|iV znE-+B;bM_@hM?`G%=^r8fX29IrvCy^>#lzRsF$D5XLsHkt^4^WvI1x!5q*Ca==IjO zKh+(ob6){Q?Z@H?0Sw)YKOo*EkzPyXtS$60sw7dV7A3yh!?Raj^aK}C#;1XpC`;sL zfr;~jGJNM7X~WUHE__1i_%3YM)B5A{Ig4M*80Re52<2*irv5yKma0fZ)yvgQ9Y1(*RT zcUMcPV@FS7kslr_h_M#NqYA(#;T7?zTpvjA90AKv*vw_ek|(gPlBF)+-I-h2F(un* z4j^HAzZl?P9f8U)Yf2c|bj3Q}A2!BrSNHoZB)dLwP5de$Pr=X`Y;(voB>Im?x#rqf zf~j<5Z_(0gUXRUgz95pti@#*}WY;4q_rC!1<1)_cBcsY6Fe(9gaAAFaTd3mybvZ+6fV$VIXTI&_Y)ssY$a0Ek5dZ{aTp$`Zs zZqB;$Fd=^_!jxC~>5O}P`<-v+SJEL$;?E<7AO_B%##2V#kzag~GiN^nbvT5!s{*|f zkfIQFUBIO~>Y?1(t~{I!ZC>2yj8^VH9R@A=^{(X`g;1{hg;1yZ2}EAQyDxl$H91*G}ucIjpbN|BoDg4`9c&8xq3h zK`<+fmoa%x1T$lY5&S5@0A{}I>nj*Q37+Un_b8~uIp}ruyW!gd#NMqA+-u(T zU5KtK6i#bIx#e!;pKzyoAkelyhXApS5+d&w7iaJ2ZS%kVMzI`#U2+`({x95(Cm{9> zK7#${N5ub;{&1fqWB(KO{-1>V)bjJ9IDj1g1%HhOUa)&GfVTdfRfh0i;2Js{OXcuh z#%kls1rQzn2F175zyI7$Pa;tCtN)Xr|FrlR1WZ@W!nJ!IEwm*Q9ziSgxwEz`qp$H* zfj1TTQ2M{LThA7KTMLNWkID3u_68T4K1k?h=D4XT(e4AMyNaH* zbP8=|?5aeUId3imRNio3p4Xa|?ev?Vq>P#mJ@Vk~6d z_?!m4B7euxqADnAAar7P{7l9lor;vE?s#NOzPx~IjT4YQFPoqN>A3K4M!rYFo)aw{ zZapU2zIdD!MiYEh)N-((IVRHkKvR-el9)Ifz+Po2pvUwdag0T_6`6k<2@s^RHzNQl zk^fy6Te^#ey5fMPdDy5y=?GWdFZPWOr=xwiXQrpk{!f z_A+o~CFxAWrh{i`YjzMD){PJ@@sT0DK-sIgh=ddkI3hHHHiBz*Yi>=r$k|!pYC>FUcZZ2#g=wmsA0M-?k9siCKiHgkg>NZUlP0#dPM*zVU;8>pETps4U3QLL9 z6E++#wfp{5wop6u0DEOgTJ)<*lLch#oH5LOdTM6una#_{J`dVo3LGq4LR`$0O>`nX z#&wciKDSQIltTa|0TWb7N_}macjCP7^NWkg_AHDKJtY7q*Vz#keNFLHJQw%vEqZsP zaoRx{yRAkhfa3SgOdT73kw2F~kIbUbS;xotXLeVjbH#d!aLrU`5l<9I2I-`0SkF7| zK-Q|K@ALGL93Ytz)amq;?GN)5k0Zvd2r4cj=Ab>|nk zdkoBOckh6D5}+h+<<~`+>t{feZ_uA@kk0_UG*B8=Cp?J}Eni6<(S;<;Pmxb9ai#1L zT7Zjd*LyR0x!H$@Yv)G|ef71T1K;8K_Soglba!aYrFQaFM@!T)|A>Z~pw>}z8ha6y zK$s?YbSe;t$$^!rIrz(0mEa{lS#x|m|MD}XE!*pn_G2%DR>=$`@FsLU@vdX3j6Ckw zm(P;bgj|<@Tbx-V*2a%S?q~{>zk^@)q z(zwd`lmwb}9O%d-+N=sF*m7A@tY%i?M$&7VC4&d21MNpN8qLkPH08!a%@h#sZq2)P z#}GUdlS;toPJ_qDlHxdB2__2pjF$3a3x&iqsVx)njRz&!>ndxV-JC&4(r z=sXd<-=s{J!C9VmJjva7co^_uW<0UE{0A^lTGo5pDJbqvHc)0m5G=7tC9&D-&S4sj zS0iKx_1B{8FM_hM0&1_*%u76tA@p){ed3A&56kj`TeGgR&}HuQmYlZFp21KH395{k zT;5f=b&Cn@@l9BdE_PAf1w1Qj>R;=V+m6@M(~EuBJDZ#04c6(TuXhMlT&Cj>RnTYJ z<6Ann5szLiJ2UMJkB0;sy7|c`1Sr)tN1Xn(o;BMY?sS}O@dOp=ZIwQ)yJE)p#$_dU zWHIFntZWJMD$Y#KN-VPt?2U(y0UuG|BDv$zs8nHM;dGuJ^i1^WZH~`_NBWy#n|v_3 zdnj-`&UyYXr^8FeK95Jfikh%3*eI{x5z!d?6^V_AjgwltVe;AB-R>LolpwplJX#mk zl<2ehNDf~_nKcR+BP=>{ZJ$UY#3hfT2wrcR30RvKSr(LLo>6Id$NaM6HGd`3$*Jnz z+&A4%h)ZXb_wUJj`JoXa2Ps47Dcmzx5TW2$TFgF+zabJCa%SxOFwH8L)7Mvek4-5auK_p`c(>Y1{(>?CC%F zz>TLGsM+%t$Mp)x#Caya;A5m0l~m+Zldb}UZq2+kG<>8*^bNHI{}g;LQlA9k*R}^^ zA#AFve%aGc2!v1xB4sK+G2>K2N3Ahp>b9&BFLk~;P!ugJ^j_aJD(1>uBP2T zrz)W3=SfS*>f$6QVr_{=})o>@_+f|Bs7@LQow5uR>?_NHr zrKB9*Q%)n8s;8`~t%RJOSx{b-Q*bC!M%yvq*Bv4B+Jc2u7tX^a@J2d#L9H(bZVF>D z5FZ;?QdPM35+Ncn*iH6x1Dl-ydI zhL~(#P4HJXZ!;-r8_XeEf~rvxYW?nR0-?Tl{~?g3j=a%E<5=K&&_i8uqSnH$%PA3aPQ+26GiOmY+-N3r zYK70+Og$ho(U|dOu~ueA2w;T{kCjs@)$*u7->G5G8;;+SJG2fT4w=TJvwSLw?S3cX zdGU`h^R=+&upq*zx#Iuo?s_@R5`{SWKK`Sw(mMRW9aUXx7pDc|jLwGd`j0LHMYv_g zXQ;-mAOBb~3EKGQMyU-uITz=}A0Rf5b!#CF@n0i@ z=oyG;{Laxc`lj54vzh4M`1! zq&P27%Ns1pF0xI-FgK5t#s>)xNmaKw=T#sPw|K=k$T`i)(L6+YvKpbub@O?+-y>R^ zi(8$ltLhRUqW27Lm5;mAf3CCAaFFdy7$$P{uqZ7m4Vf@6xpL&KYz^yJ>h$nOmfn!x zwwy^cv)5_X)~+m!qJ8NcXOr8gce1{`zpdD8pI%JI?2{NB3=}hA(@(#Q+vp1Gm)(E6 zjlJwaFFq`6UKau7qOdP5lef_tS~Z41Yf|#D`(kl+0S*_M!_2$W`&yg`OR{~e%C58b zUmoRpf7H{Od;TcBT;Fq@W&A90C$*#wl;Pd!FSUj~Sd}60-IJmsMP?EcU_(kyfglL_)-)OdGOQmDe^Znbs6S{wntQ^xv0nB!p6(_rC z9u0*Gv|+UIy*%K0eei6IUK)q@BCg{7&GIsUlnSh95``C9Ie}B7buJA#a=*hHav?n%0j9SV3<8$ud$$nC9C?GaVbDh8L5NgAJ{Z>ZRzF$I#RCkO z3d;I&MdiBcxZf-|`1w^HW|B)G+gQexFhd7VowEVZ5$h^!MFgB+feOUTKhu)sF>?pV zY0P6lokHntWl)pi(O9#;_nMW$^ws3z$eM{sT2Rwnq&Jk2j~ptFsbhgjwAFjvv8)XP z>7N~@5t?Eaa_Z$KcxmX&it$KW!DFW}D`|TBSz+8&G`W))oI?wPdH6t>X1mTK(5M|c zPS+RT3!0jfQxcYuH!wjb@@=ZOl%gO|gMCSVbwWO%28CaeJ-s&B+z87Xc!vkQ0{eVs61~LP90TO^%-qFty6ujwxQ?j)>x<8l^5M zmQ!D$j!Bn|mp9A`k17`keflxP2d&|@7@mWeM;S|4Rop9sL#|}s3b#f)sG=(&?H>YT z{Hdv^5dX-nG^&OW40%juuJgmpSbm^HM5LfKKngDSH8=_#1($l5hRM{`m71k4ib7O* z4)7Q*uA)Qj9gM|y^ev<>q7$y_R1|dmM?5;xX@SM%LWfnmr4rPRz10%t%E1yF*#f_b zQ3;57VI{ore{)tCERkejBJ{kd;(Ctzd0*!Zi)1z%T%aR;JDR#6ICa#{(EA;QfOu8? z_C9UGreV+}I7FQpV%#EiZ&}({OpKYh;95syO`7`~lWShhmihz#2rr+>hTOrDxn!An ziB4)1DIO7JuqH4+ps!K><@sa1>Lm)9DspVxQ4-a8aYp5Xf(SaX;iXYf+9{#5xjif- z!Y_>89nj&b;%O2nH+`;`spr7@tAVzQqe1jH)1z5p)Z%``7jQdcLJ=us89b_j0@`<| zNSXRl7&wbduNLZ>XLl@((*Tfiy01aNy7LohP6NC;w3hpwAxsW2OfeKrPtS6CV$*rs zIY4U4$#HNa2bD<<7VbL@;EYvNcOPgSTvTfq^&)~wBu>l25fqS7e^9K;(E1?FeSQ)~ zs4Wn(+W93+J_m%_c91sG^75-0eixTk{;8&BP%J!|VbY&p>qj!8SDPC~&&1n1$C`q^ z$eTrfo^iG{Z0(Xqvc_e!A)weO0`s&2Z4)c)gJBxvdG5wFk7+CA${ds^B&Md;xj@Lm zj_>@Mk8CjE2_~n1+$irZuHH$uyWI8FxEh>-2_L>#MO@sNpq8%5=r#sfd8V4AJf}=I zN?nMa{Ocfv{Es!L^_VT2ZWh6dxQu9WWf?KC05+qoLAk7&qvt&ojtLtY+Je-*MOkBW zHRFhRgH8Bi3$C>I< zLAc=xhsMoDw@%8UWHnVNmZ4XSKD&S|6wa=4S%fOd9cBN-9u7H0 z+aHXsbf&U%F24J!;S^$%rxYL@Ku>@a;bVC&mpe!(pFe^V(XOEH!Zp=h9Ut6|2WwRS zA7O7DR!7gb?cz`ziWGNucc-`(cXxM};_hz6-QB&o7I$}dhrQ^1KhOIf`}_8>*B`So znM^XtWG0#OcO~IEKWq0Tz0wxtPWrWOxz|k0#`?B{W4W)Al9v7r@oDrXkKFRZb)^cQ zLPJ1dsRwm5C{`^0a?mCogwR8skd-c=HLmp1_ONJ!(7`Q3I9vt z#!X?7;RsEGK-s7@kHTtw1~FM)?T6@C>0JbD8%;6&DVz#h~3OkNQk zp}h&JQ}1FDCQ?rmi<*a5o;Ixy3l!7W-|OnyBG468l?7eV;!ADk>6Ki1phRX5Mmri^ z&~X9wJg=q5b#p3e`V=!3ytxv!1|87=i)?o5%vChz$Z>2k_V-<*Z+Ca%ZFF5t-=BN>k(ux842Y8NNxo`pGD1pJ0#ju=nmnGH*lr zZ>GBUi$6JvB63gNRV)RA2-l_tZN74v6N%;Kv|Lp+_iI>&ZfGyLVI@Cq#HPa+`DC4$ z{`#8!j+=b=_TazgW4-$R`VCWYN_pSm>%)VNUH6KZxN=VLOv}B+luK3m+8xf}t-dv6 z0`XpidMF7~?yA>}Cz0cL-pB~0@nYqxU5Eb~ z_lY$w{WM)~_o}N#cS-B@2Q!Ymve=;OooKS}cp$kE=91VIH!12foArwBYk75KExwO_Nh;3nQQq5(|L)SiR zBALkqqS(hwT6=2IX+*e6I&wFv_X!r5q2CC^LRvY#LxV!r!QgBT*= zhXbjB0Y0C$)WDb`QvqlC+>cgKgnxzu;>Rm=u~xD48qP)_X8QEVrulXm3Bmi*_jBh^ z#WS)GSJU*<4de^is|)h!I5d0STtNl?>-@!!_SfN#9R##m3H9m6Pt`f_a=Rr6`ndzd zeF&olb|fMQii7l1+ZEwfx|O>JnFSOTDoGXdHbyrTIXAao#mIi2-;X4U=#|8`fH;=~ zE#_OlN&)?r0`>NWQ!`(Gpl;~7NY}&M7MisR*xy)d|E2_VDN6KjqCnAz!2cf1wgF`K zGt{Bort|l|!JnaG{yKbdA2EpC4r*SRgl6an?0p0YJt zUvC5(U%kjSvDQ@4dYK(=@YRSZFZ|;-!$%-s+Ho-N6N{hqV&myh+E`kMgucs);PG@g ztAmC~!<3gOC(p6@m?`TWYbD;a)MQRyxi3_7<5sh3Zca|aQ70~_%n5iK_srM9H9H18 zldoOi;x^YEIc5N+|13JIv4NwODwUvouUVhVQDPYrk>=dQ7ekh~y^MYxjCYtJHi49e z*?B%*_N}NSY1Ym)95x$dBZr+fwY2m+bIqZrHj0=bq&b-ei5NKE4)e7-FatNT`tm20 z*L;9iN^X|sW7DSvY<%$|I~;2&+^Tz?D|}R9{KF)^Jm`m;^Yjj$?1J)?9L-|Zi<(n{ z^;pLOoln<%RFwaiNb31u6xzWSo_msH{Sh!EjpktTie|X}A8~y`=Lc`1P-vJqv64w% zuwS0O_o^=~A>rJ3~>msJgs-)`(nRAoDn%a2>mHv7Z-2?|o+zSo#E6G!nJ z(jz86T9;9gV8*i>cHC{E8UqF>Q?R`v({}P(h+Jr~PW=fGs46l>$z3~sj9HZKlX-GV zosfzTYJI+r=uM9DJPJvvvq=Qrr@4KRIZ$UtbSwX9DFR1K$9je<3W~ul@$eEn(Zu$K z6V4Vhd}0z^!-j5ZNi8hGfH)jeY)rZCDg|DlHtz zI+*GC#RI&z_W^Cs&dWs?p-b;go0H773vZv7o!yfrJe1u%+?HQ2)NfDxb@E>`7+j>U zFQfOZ@l87*&be(avx3WujPEZ<_eoO)Mz(y`!`mJOJ>M~V=H?9xNWr7z(*Wp|n4{9e8kQgbi-Q>*x z! z44$+h`j1D*Jsg;~(b3TwRNfrRSs&eesNy-ZbvsNN@o0`~w(CJbe_764RehzPqhrk@ zCxNUep)CsB_(ETg`!fATqT<og~(f;s-1%=WgppO0zGn+fN zjgGkGGl15T`*wq55}nv@40JfR#@Nn8%T!nwS5QSsgm>H$uCJ*`$w;_NJdUX#Weip! znWNPoE=RS&i*Ee#@*|`)3^Q-UF9cq*1D$Zxj?@Rq;*wo5R*B1aF`U6LLj^xGBVt_d zhlYku%HKu%Z6rn+mo7*ftIWW|x$JksgjYvv|V{v&V<3;k^fPq5?UVJrQLY||En7Z~n@BEW;YZt6sw0fJ2ldD(j5xS7! zC9dKb;Y>{lFI||dlp})ZJVi8oR?sU(v-d^lx`kvO%FDZtFw_RYO<2dHgjrD1>oo?j z@F#Lvfa};K>{tZcSmeaYdlptQ@1&dbAx&ja`(`v;@lWn0hc7IMwPAuXvt&sZnXffa z7WhZSKeK}jUIw3;>RdXyp7r}PLVNWIpX@NCMPtlSc1!k&g7XN(#z9lkq$|T6XIYtA zJ9KsAEnA;@0QVFz31t*U+WX<4hNFUG6ybj$5k}@2tleIu>Q>trwTtcFfOX@u847*Bq-# zeZ69RtA|}~FXS~xUjg?QD7Uem@v4 zi;~CnWwXiREB^KS34yYKJOLMT3&gL4-2jr&VyEq!@BTD{{i{Cy&@Edf`i2w~)&lDB z!6ci0xfhV|jhHiA@0mu$b15N^DQQb$(iq}qB$atb)pHTeAIpd;U(@r-YoczRL-wJi z+l;aq8rtLV>?8)8NaFB_l5BqsWH#u7}nf%qP2W;&2q+bJcVN28`!&U7MRWuTdtJLPkb2CPhkj zM2SWDx=B}6Jf^ppFnH0x5s+(-yizSKs1g6h2?1BO*b-PEakbSADs@|Y1fJO3e>-@= zQl3s?t{yGkM}n4Dn(({yhjTS2C7a?*Y)G%mm$W(tkA3iJVzl5wiEDzIm!NU|lN7ux z%5fbc7R#oehcdXhFVx>qdoLjESz}bI5CEUg<66X_#Duhz!pO+6hy`c~&c()V@o8D@ zb7LlD;#AaBy)%MNN-PNpnr2E;6r8~ymu{fkKbWvpm|#>C3gKA#&LQCq%9he@5xy|L zKLdMz`-jE1L=_HgRsO>5!t39vEY9$2vp`zWN^grT=_|nqRN^2h*3632h)si}_*wNR z*mvNCDJ-ItL)a9cRykCZUBYifKxLm0lU!L+tbfn)iDf7k&`~0j(+ZwNS+&^Iw>n|o z(A{^G!i7PC@!cpj022c%{w64H^qUt%oP3ML_mGk^c!b+16z)w?N+Lp&8IP9naJm$+ z!s1Y3zN0vhi!Z0tQR|PR4J{k)E=WGm^P@kaybhW-sG{a#o;qx!RaKIZ?qrPaO&i}; zNRYlwVlqJj=Qt}IDK7grI_(PAYV|4GeN#q855o)}mmbsGws{=b*t{Ogxi2iq z>cNo|9@HxnAI&3=vQ8rJpp~iWQET5}o*fp|N2|Xg zEF<=fI$C{e@5pRB8(u}*lXn?PX)=DJlt{{O*g_8^z)a}3q(1ODrBxqzWu7#RB)Q>q z7d1W$(3|Fq?y@UHO$bH6pS)XCONvWJ&lr+Ovd)Tz@ZW{B;aU+~mj7y1CN><&^Rh9f z(Kcn+#7tXP)0tzo6Y}eT=@`SzQ|y&G=(nJh=3qa7T*;-c2JKBd@4t2)|3*TXfFP7f zVywq@&|gkUgI@kqrx9UUB+To+!qV4>wv<4V;@~aW4g65}+SB$)z|kIlJ-j~3atXSX zq+-Q;dyY&xs#p9>y@FO5RM=ku+^AA5a5oJlu>j^FbH~H26`cgahyia5!b|Mg)Xv5E z?u{+6joYsif*SS*R1tVo712(3Wz^D1X$DsK$6wXFfT;SFl}sfFbOp!*!_qqN#i7P8 zjAl{N7=uTISPpR4Hfx?$oiM0Y23}Ds@(H)ThqTtvnuO51&q)z!%4yG%VKm}nSPPiK z(}*NlA}fZ%^#1u$ac_g1a7(B-{z+Bq_2&b9#Spr_C*x?4^RD;Uk1>N~DKrzRRdfI_ji&g^TTP}gvTTA$%^rEZ*;Cc-HECokL0TIMwX z>I_Rcj0OcG$<3eaW+N>wto|Se&>D>)_UKMCSEQ1DEaB~oN;9Lz8q{uA=xR4h-$C)iBpI(X1PsWy9@1v9+7=E=z7u<+^}%Z~OM3(j=M~_HWo+tlG`9RC zXJ(0khR?}>3n*vx4QmpZzjIVQ zpSmL9nI!s$E0w9Uin@TLi`6tgBIdpb$@CFRrr8USEbmGOR3v-Gj?03z#9_HG7yzmo z7cY3yeqzR4mm%^tGu3pq>8c!Mhp5$%TNk@N%Yi(<*i5rr1Xht;d6TOr9bB8YQLdOp9uS|B4DTc1WaM}S!1>EY< zG6hQLNlNI6DtkW+o#yC`is0#f$EOwi&Iu z5Hk9725T-e33{SYgBs_tY80*X*2%RA!SVJ|(3}oEga1l31a{DO!9YM^*#-;zMZL`) zrfHFk?{?=m4P+-4hp%GPp^wCQd6a>Yv)c3wD{X3olqZ|WsImRfm`qkwtUzt5L>#uh zh2x92q5>d~ph$h*X(wI#hC(cv-vFI;EEeOP)sK0na)V1i8Cn9$Fe>lo?6o<5pB1U@ z5_+52)%qfom;N#xS)sLnWVuT9!8(NBbEj8UgV)lIkQ;q=u49Pd_!h%lIw)%;1_*XrETiyb0IQ47zjT zPq&;Lu2B`woS(l&p``^tf$4Ijt|F({*xrxshTUItME6GuRGL1Tc0i!fwQ=rMU5)Ef zXSQD#BSKc*P2-P}Y>0P_jPW$X_xvtJu?tX!B{iEE`(9H91xkSBxxovbMGn)jygr_V z0RSg8p2}fwyG%x#i58c%uc}49fh{|?maHdkZVDwI$I(I<$;|X4&AWR zqvV>N#<1l2bo;=AwyD54PN!ejVMhl+!sPqr^kc1!TE=3PNN`yJ?Bd8SvdnvJOu!J;I%$oL{)Meb*oYWFsICg6{J)Lt+^;4ZY1CdaefK>wEr%kI(KvLjz zDVyqANAH|KY{p*6MXaU(L6702?tULkyvxeyNeK%hX35fTZ;#5$xgVI{Z0=i^E*UKg zZTj(H@(P;u-t7ARqTOwHA;JP~=#lF|Y~!#|^SI(mY=qOAx!&r8?ll$8gvTqDCJZ)) zyn=OTa@i4#Q(tkZ&hzveN)sfL*ddNfW|c^?cHO|vdSRHsFVX)g$Ywd z;S>Ji8>`~2I?WAYd|Q^Likj3scY=Dua6FZ1)!9wZy0>>X2Y|A$4E>EY&nH0oZT}b_KPH{$kF$YHAlZZMS!20swYe{Yf`cJyYa){? z#vD3#6Wh)`E+q1EW_`%;H;&9atc4EDN?OPuufbTSiV|@5-6#WF!>i^RL$lR(G^G+Y z^-{~}gMpLAo>dpf9~K4!3#}qc!=EO|H|Ci(Pl^j^ECtI$PsT8I<&s!x>9Ok9R$#52nmC>o16UHn5t_*P=;TH_?si(pFs5% z@$Eqn^g~`y!-KWLrsywY?N&h}yo?70()fhKZ%N+IQ$&21o-l%3Tz?N=wixf9wX_%Web&d{6=npFaFuev{1t->Cnl!o!zyG0#+%=_PJA!@DL< z%pdYMCLZ`a4|L4s&@Y@=z>bgd#860|-r00h^DtkKaJ;c&)l8}0eG&g**CzNEYfML% zd%tbl2tR|}O0z3KX}OBm=;FD)U(RMH3Wt>)MKRhZqT8>7r-Cg2O#%Hdu-fH&*=R2uJyWtTsqIQf3k$6#GnM*0{$`(X;!g3^LJ zS1Z~;zGNB280VdTejIh!ZLZC8ppN&nnp)Be&g~`W`@ya{V*EslxU$0V{jKb_{hud> zqb!XNqgfX6!;Pc}D0kGhT<)ka!8%r@(*Sf8|HDpC?ttHp9`}7366YdeA@Z`W zE?zg5(b)o~f_=!Fc%%{7P1U|Fs4R4@?yCo^%v{rrWr<}jrhCUW^Ps{( zrUF17A&Ja5rTf)Qms8^0>!E3f&z!CUQT~oW(aqCpP~wbYEmudV*!?LRY$+j;96Y;Q#xTOs#B{m%SbP*s%6z- z6IIi2Y8!qo{Xwaoms@mh`zkuV#hK-^?(Wu8r{HH?H|M$Q$Xk_|7A|8G7ZX3xHz%yb z(Qh9SxI<{DAtKaw1G>N@6gOqv)&5ilFbmZD{HfeJu`=3qDB~78A>4;r8C9?pXlk)~ z6YcH8x2q8LiNqo455zAoqaTAu+2b>DAhsrUy5<_bEqFb(DL85-4?G7!I(Um(3|MNI zHm{bqg4Nvw=eg8+5^*II^LQn2oL3e<`D{9?IJ7?zg-%}WN4G3p**KYen~|VgrFN;) zbf0AGNF{}Hx--HEq|4B>pfb%Ym5T$cWdb0kP+#UcZVJ2F7uvOb^81^*7$l(OT6if# z-T~5^>X6-}yhELO2d{pO)`jtjd;1wX76Y57VB0c|H(!6&O48%Kl!`xLOT)~p1FN^; z-5PrV6)>XI1{kb|iVt-YEMMbkn3&L-gJK>nd2I@6gia2l9O;G z&$*;v4V#r|GyF&BI`8*Z%;bJ%|J4c26iDOhR#!yVac1HbVALV5%5%4F&1(%^r%qytMro#74{JutD~1IX&uKPv-L111CzUjdg${H`AJ3cIZ2HaznD^ zgPnC|jm6Q6q;^f#g%x}SQw;-6)1u^Q5nn&aOl9~|shgjRJ5IwGGI$WUM;g3M{(4-S}^8krs( zHI4*?d>x8_NXdvA(wCLfd8`;6{*+MlW}9c8vm-#LpL%*(V{ofMg-)7?zR z$H7zjQ`)Nf);x`WJ$D{K6@P`|cE`GdopD}?{xH+t+*--}q3U@hvdq`Tl9VXMnOPeB z#dz0*#mZ7Fvch@qQB~dx=j;|2*geu0QT#gD;O;6X;#T;5PPpQF3%Xp1_O4&uC|r9Y za&2@?+qYqaA6>aj^B%<_aV)csju*iJKq|;^)!+1&kkoOF)|n2ZE~e}og#k@|ZPf8w zNt8t19Vw3X%|`nhYKfa{xwp}~x%lA`Y!#v+t@P0S+r3YGboom}M@L2Eo_*Vs2mCw5 zCHTw+9kb&-RXk5*X^pm;yMUW9Qko{Id*?!(Ic~H($NM{$;t+x?Dv=~$ISVD!BnGmt z{{fAG6HZr22Ktwv`?Ux|sQa?GNtdwcwS%h&%-yn}(#qGlybQ-_e0f1KzNsGk@kQGS zniz>uvfWeWQvLq?ibL?SNXfAY%G=1LTyCzXb-Lwm8wkwxn4_8;c9Bly3&Evv*R+cY z;7umr){}n;?PQ=!?>9_E6d>!+U>xH!2`zFa2S4Y-=u} zrzG=*GP!6scWUeA{@x%`bR^Dbv$Y#N_WLF*xSZ|uKED1 z9-lOm;W=ui+@kVAu<*_GMkyrNhHE>2>WbscEO)S@B;V|7Em>qmCu}f}Byyc&xk!;) z@X=%@enn;XFFjQCZ;f$%)nbEY(qu~1AM zZbm5?9Y(6;;CjEdT9b7^VSN!nc>k*-zJ1EU3LNHm6^m7j7mex(3%a2gS)EY$J>LOP z9footn4hw;xey#gbZuez_!o?Zup~i*7ovSH?BH_s*OuAodQ!L{H@9N;p>(-97>4qg z5uV(f2!yf+{bp2t87r?W^#`-p2~NMY_{`@EMaeYiFGj{V zUKKi(;k8k_MhT-R?FrL{f}FKkzv6oSWUK}p3}xgpx+GzB-0z`zlq4ETMl2e+6Mo`m z(d&0NTS?PC>y?Yl_iT~d8PohH0BCX081#fT4aD~)w9pG}H2N1YPs#!A>cLn;q{-#a zeM5&yn=kB}G6xroZW^`C0SzvgGy-Io<1I9FnNOTQla$RZCHa#49K3bzwnIdT{7+yt z&+ZjqM)M(J7Md?;WyYmHV!Dgitx;F%i^iX5e!i@wHsQ3}x9T3Zo4+R6{PFC?JU(vI zRgoz<%ZR?u*BiJuRynKIw6>EtUvbEyvN_FFncE*UVm!vsl8Ly}&62A=3oyhoCvArk z2%mq>t&TLUN6s}9DW%J6N$lv+Y1o#UDU>~}~jNzKGb^fM) zX7r0~{Rjtkhvr|UaWIB++)S=nSA}cKn;;q1_rbO77$~!txx*{f_9i4 zFO6Z)tfK%lxEH{e1$T6izB$IdqLR9FPHA<$+t;+{QaIhgWoRXE)nY1QDZwj&-oEUF z0|L*i%R?n5fZfHQWT;ry@D5n|s}AL0etw!D;H?c1u1$F+mjkr2a?AT;LMio^t4WKZ z0^(;`-C&TTHKX)79I?L)m!S1$mgxqto4bNnQe6Y%mMQLMi` zg6Y|m5*7QqpfF7H7i2!23y8Tt!LZ7So3y7bRXR=MI4y1iB6-}73ZVqh+W z|3!Jpg^Ot`bkl5Uh#O$Fj0oO%rHXo0EI`r7C05qKhVLt*MEV!XS_%L@e(mT$OiF!=_9L+`S5xV) zi9XR}9801cESKSWzbvnwbh_Nqlr<$~aoXW@3A1t9^z|czgoO3tce?lQ0a_kzOZzJI z#BRY+-3Z0jxhkW)x(98=?t$B`zATE$VpWcnhKNb!Wj;Ru zpFXczjzzT}ADlBrP)F_%ia4dmfn;>rWwm^6Yu0Pl6J1Ir-EO+b`RP0iK+IO3hawzBXK?~77U^n&Na5&&R>Xh_3p zn-|v1F&meaWEb?V=CcZ>6B9;kgHDvrGU2GDq^t>P6IT$At_FZe%yvHkB({O%h|>Ut zZl8@@=qTieW^$niilcF4fnz>S-P5QY^M@il zVD?s67Zn!miUtmJ7O&aINC&(MJ~bVo3&)U{RO0-6+Tv_Neq=OUD|Ngz&rCtNpn{Mo ze9&1mIZu3YX|$M_Ub4sBe1d@pKg)M;RNG>+DQ7yBQR_seD{b10ym&Ll^3JEfyul8Tpe%kJbfQ4$I7~%^-|c2Wo=~`6>E7A z1GX+*8Rb_??+N1b4UG@N2eS)jCzAWV2wyv|yo$6>7#?EHZs|-N4!XR{h0o)>A5(fE z7tKVpbaeY!bl{>ytpzs%V6+}H<2QgtrT5Si&R3p`7{NzEf$qrp6Y;?x&UKdfx!*J(5V?>S9J^IWd0n z3vw!wT@N#6?Ucj!W2Gph-}&Gr%$h#izdjS$Z(a7JwKSOQHa5KDJ_eruhyM1azwO2N zSp*hPP|y2doY^0&V{XI=L-Xi9J!yRZ=x_06jC!jiAz>E;wGdd!*lib#c+rHZXdLrvL!I6zA+{VnU-ell?) z0wN;KoW_^@FV^2(T+_YUOSKFFpee|i?gF}c5@ZAJh8E&5_O5uT82{Q=i5P)uVE_=+DN~{pc1+2jQx)}8qGSt0q^{A9G3_&-|9Zxq*l~s2d|^2X zmE`&qi`|1f3@5DNWR%Zzr9_ciEa{6vA%12Z2~vMsg&#iUEjI0L5lkR91JC_nNv8D| zPj;iD5F*0%LjrIhKOPXEUzbSGmC4+<;QB%KNeFKvk)*#_{uR9P0}#ij*A#*oif^>Q zUjgp_Vu5dOlF^@sfo?GXlHkuD4?OquUk6YX;uaORNzeN$iar-!5k#m?tS~)w@fT!) z@pVSa4TyhLvp|CX$Zzq5|2ga5U0yOkQmyeP`5;%S-WJ~xfqB6Uc+ zv*`C-ZrYn|_j$as)m4~~>kdHxlovrJ5RlF&bv2z+vyRy2T-%n4Z1~9y53VdY0qsx3 zoEe8_?Ti?tqbeFhJ5r|S2;uF(d+TT+!($jyAFyvNvhXW9igFN44`CmOIxb_IzTd#zmK$}XL4cuzf7=wU7MS1CedZMCn9Qh0~f;c)u^6)a7NJUv&m#=U45U;S1wi|Cu@vk|8Y8m%c*l z*+S}>Tj=$9cCJi$gg(35sw;A`L~3~08uqGMOf1%ol(0{7O(e$|ErCK9jH5OGzig17B}`H8Z}MeBAxL)-VV zNPJ5T0t(5O&Yhm<{mZ0w%TxV_FtOKZ4_;xpb`9lKH2D3m9^|Y~41MUxMWE}x_B{Qi zH}{d00&Hx!Gb8yG(G6VGw>zA@AHlfeu2P5)kCE`*9eQk&Kp3dgk3XkLdv9JtVWso! zIDg%qfUx0w1wrmMSOd@fffQi~4}k7HLwV$VT+ckKqUSsI1i=oFpKZCNJ%{Gr?-Dv4 zdpf_v38I4$fJ`0X{(2-f$Me|ns*;^}HfR46j>8#y!FifEut-%y9V;NNv2hVd4h*QC zr1NjI6aM0V4jN2szNfwsuz>0TTrshRA0hB!2HAz@VOz0pzyg9?-&D{u366nsDe z`FcBdL>jw6y*W0IoY8W|m#NG5g!?V_eFg=)`^^zhsX?Z8{4shqqK;J5;^@*`{Avi1^&Vv_sOeSQv$nUSFEgbLd=}1J-s#E~%iO^$e%l znih~Qy1h=lqRyJ63H#^>1MlY}Nr3{OfTk|=J9)A3ZsS!B?zfGa*CT`R*#Tw#i0nbQ z{Q>~`A5V;sr`iz#Ay4imCl0<-V1i)T9jro^!N@=$)T>RR3YP`Am@J{5RS;LS&I?)(r}7VBy4a$eboB=E2dx$0*7LHw1mu9{0t4YU z!w`|6wS;rnsgT^0{`o^_$Go(d43oYY9)c8}El8d!YKqh>1j z_yk^)s{juSAdD|ynj_CP!k#O+aF9ziUyo0}XLhf5g`~HG0T{oZe~lbd=)RAeb)cW3 zeP3^8=X*_&pEuS5z314LG$55MpO*^wl_!%5r~*nJ;G9}ZyiL&SDFk?V zHHKeAa&z}wI0ah3@jx2>lMYyyLdYf(X6O2>L-*HDk-rxo?_r;VMF@gB{9jYatdkqe5-ib5l!#*EdF`VWp{zvsGJh~W2m`Ao!K^+`n)-Sx7UG)+!V?`wiwgG z->aAd^1eQs+W)*8UH=X&@a=@nhx4WVCsUoUtNoCU82==hM-ChZ4fOHvxCtQb9unaM zK%788^$`D#YWO$D|D**-?Vkep&+aY#2jqQ1VJozewV{Kfy^)^Pr^`m)9GaCLpC13y z!Ocx4VrJ=RWKSnzspn`UY-C_#XhbJvWNqSTiqF8o!p_SJ{qL!+%WLYAHmf4AoewHw zc&bM02;HhE-&e9*S}tjZ2=3iy{MY8sa(udW+bM?C#M`jI8fhf^Q1OIfv5!~u=%nc3 zyZku5_+;>K_Z{+J>uB?IRTFeaM@QV*v)NjEI5&^m7fH9$Xaxzljyem5^-wYtodzyt zL+W|fjzaN5=>?knfJ-|=LGWL|<=A+;w_KX^saXk)SUEo~;<`Uq0sguxv?);CMzma- zfgSO4dTR&nK%{r8=XLU^yw{tI{opdzYg2Qh54ee(y&eKHgJddVkqY>MJs)p`=OyzR zInca04Bbx>Ar3sG*7n&FX61cm4YGP7G9n(koutl6IlFl13-bLRqrht@lV1tPFCDjH zP1%gc!c6kNqEMXTAA92Z4O%XF*M8dbpVLB%StfoLxe~mViakU@$*%=AnvaAu!TCNu z#<`+x>DWo%Vi|rf@3<>8O%AFw@(5H49ji2CKb5Gqc} zo1t^AI*RDZ93*5Z5xn)#tDo?j-oR6?2kRa$e76T?YjyV(VfFF+f^HBGk2f56@%^`k z0DXQ8a}ZCF-sLwKnVObi2Aj=N;UTtmdD?%q~B z#xx6=Ng`!Q!Z~*n4t51R+1cp}Mnh@IFkn)gVHb|Ta42s&!?qzAg31x4T z3pK!Ez?|7dcktLCg}$;Otkl{?|oCXA$&1xMb5jrRDoI7Z?7Gdmh*15#=NP6C}|ynRV&VyOk5LP59@ z3o)nnxg#p?p}VlqitRj2OrK0^sJ7R#YIIbx!Gvlvo5t5_hH8VrsX`;NRX zG;}`Ag&6*W$}oZUF;m9+guDT^%ThT8*U?LRdUZS^ldZ61l<158PGGcyr)bdwxI#S3 z@pR!d#@L;h(AmeiY!y{Sa6dK0y^p{TS^azTongQm2wDr^Or+&GgF#WzU;ON>yLh?u zbCCR}jfrdP;lJG<^RoJmel0?;=OOG!y;_Yk(TT4xIVH5q(J|jgQhE6kMiU~CW5OM7 z7A9>BOPC&|nd0)>KF5~3N9 zadYY=ZW)zA={U(bvOf-WxOf?^%@Ku|hGhF!iOsp4aAxBJnn`+Afu%|V0>R*svSlzM zG_K3s3lbw89OvfW39b`T!#l=LIAc2uL+v@~Yy;}@vu-cBwIp~PIw4o_aYWpFgZE#< z#>#GpG7g;Z8tA{KO14I;`vGIkDXr;Q$6q(J&q;oX2^-sQ{8@%FTA-oB ztJ32|>7KwsTj|#OIG`PW`#NuIxRcu$RJ1LiW^l!R>LPNSUdMCTM|uIC3G%SK9xqp+ z@01gkqzF`EB{7O|5jcLYi@_Ezs^8m^D6<^%Cka~nhj90(1Je9l9W-(0d#Qwuo6QZ~ z``hrJ-zdAMZaL1HsPgt8)&~SA!oxk7P&CP9uHg#)!AeDXT#5XfQ4%DkKMGixizyGq zeh0AylgM8frv+>i<^H@*Z(p3FJe5VAPFA=>YdA#8CzH9wDU(^Bw`R4}$Zj zKTBzIGQ^AO5%dfqe}Ur=A<>ril_|;P%WLomHzZJQ+=QsF$h9&*e}V%S1oQO+8lvfG zf=v_%#!efZ?m{+y!c81GVxp%RN{B=kDYTqheUlpb)Bt5^-VUzVW&#oH|O8z zLe<3x>`$w1Gf-%YE|qu|yePs%#|o{LM- z2s2GUubguY3QX%>Q$m7+{hpIep2))}x5xM+rfCRFmCCZoD-Zb)B2}>9#Q?eilrqdO zO3~8QAq3*iy6{OrxE#N07e+I}A7;EKkRM007;L(D7CxT*nhV+PGF^zdmHCO5AyR(> zWv2R}j2@11X#dPj*;+?KA+yLHokp+aEHC3&Ref!?AR!9eMT@k4Q^T^aWT6sYOshAl8ntUc^dO9&9GZRxsd`4z=Iw2cN8+!#?Jp&^;VIyZV10zv;JvTZ* zGe-wGBYPnmD_a|DBWp)!cEHikj)R<@y_Ex?OY#2>fd6ky4)_e8Q94;!JN!*a&fdt- z%)rsc9-ony_y4;i0?kOz!tlR4B4=v|a!N|L-B&lR(On2oD~@~7{ndpf0mXDf%)!bE zgvu5sqkKkOmHSbcaZ(lgQsEpzx+h5qtTP&Z)zVTrh%|jrx1zDm1n*|}DKh5QWEAL# z^!86T%2~_Q>o*y=IJTn~HYpGLSsoK!s|Z~$6DE!k+{lGod|0zwvH+K zVHAac%@Lf5dud+NU_gnw!i?Ir<2NZAolP4n_bzw^Na>H}A5e8_A@LRS3*(>`6*}#0 z0$|k3nGr{u*Rxe-ih7pQzUqUdPCA}W9QNr}W_uD0a1x>~Z_=3>kh7ee7o*`-O=uBh zvXDmRj>q(9*6VE9%Cq-7cZ9a5@h|i^31+s9^rsT-rD+PyU6ncI$-H3E&R54L@swnAEJT2V!r-+)B#ZYS_ZH7Jx6EG5U% zOX({z$peZC?iciSOBiROw-LVRiFqhS1Khq@Om8+!ygiDk6b2Mh48Ktn0GovFzkmPT zG<@BfuML$Ky`fh!Nwe+Bq1XS&c$JJ!H;j@EG;>NhN%eJp_#^k3*SUmuJi8D#1*gJ- z2k(j9%^zv4A@g_Dl2)Gy{t5T)p7BTE<8U~xv-dPIT=TspwKaTrE?_Ut@ ztK58u3ctN(L77s|wODKFBHCY;6xhrAA9oiapl;D}AVYo>;^kStj z?hpR&k_Y*$h$u5B*2lHQNB$%(3#n}kO2*HPJ$d6y7LDf*DU?ia)U#8E3uRo`<{J9z zih*Y1iaSRd8mpzGpNTL0KK^Lk?AJ;(cX)UH+q90b)+k@LZI98WqWwxRt;#`+i?y9&mhyJ zUg`Ow&PzJzbg(*}dI#Q&Kq_X`xHYwgy&-?aakX}I`%rg=WK$M{&GDrwrF%Lrjh$|V z`Ai@Zp43+sg58o@2A|dII5mwwqMckY3Qh;|@uaiZ1seye|5F^dA9J@p1_gjgKBAIz zy5Kn0`Q;PRu{F0$pYB#-cHroL-$F3%y(Hj635qYa^$T8qQ__f7;%J@B$fa?ivS(36 zHl(@Ti)5(1R>0}tsqO3~W9fem_Av_^>>?7r{M96mS+1d1p?&}V(DoK!QH5`xFa{tc zNJw`{Gjw;0ARygc($cAPhjfP$BHi8H-QC?W46$eQAMftIyZe6Ex61`{4riXY<9F9{ zDy^FD7-4CpTKeW-+xeRu|2WU5A5KhVQG60pZ=0Lrbg)n@@OS^(Ys_1~Rn-;j{k~M~ z=StjPAESCO#wTx{jK9N{Kb-%5lbg$DWTE+S-ej;{7k=gukt~Ce4L2$ zS_uYp5=sLdtGPg}WethUwaj$$7qM!@^R@Nr& zXh!!jt#NHz5M@qH#y;4e;gDa#al36_pbR9hM3kK6JYS)HZ#%L2S$~!ivRV2m0b_vT z1!3gfs>Aq^U`uJ9MHg%z@ecOV8L`aGK@L|;B%e)_gn#K&h8Q6$4LKC??5K4fe3a9=xw z(Qu?}DfC`ZtBAx?VkBqrK7c0jjuvV%Jw+14xv0@R(xS?5 z@RqzKUFcu&SV%wht!`C58rFOy__Fr=cQVq!wc9ZAs)QnSWzA=sO!%LG&4-*R}Z8eRkUxgM3;XLA0L z5zPO2u;nH(tGA<9F5s|-^Uk%m{G6EBOE1^ZYYje5_f~id+Y8NWEpSqO@Wm%!OKI1R z3T&ZYk-Ag2qtdpV`htKzfOs>AKQXjP68;yrlV?``%1wIr{VVsZ##=RROh)Y6Cpw!& z*Rb99LX2xGkX>Suooa6z){>6EXkh5dhj!FUoYy@k6ITF9&pP1{LGJdTNNBwVSa?`6iH^i7l`ZM!d-f>y@~zy z^y}WDH3Zi}RsolLl8~x;cx2>=_EpI}2K`dg2QSyEOvWd;=gg^B6!<6bIm5~aYq)f+pqpAUL?`~Q67(B?N6ekPRH0?^1>-@1@DNcosuq!GU=FXx*JRK zGW?q=+*`UlWk!Y{?_y1_2>rDRDm0_6Cu^_WuyxW$U;X;8to`wC>l=Ztto^K!}sX9n#$G+|4W!q{0qxN{VYQ-q1&%^ zNy|t8cspVe7yf{_Kg0621z~>pp*G>Ne*m-q-h?C`HJ&-2xqcLP5!fYn!>LRY+$g5= zj_SI{jLX1(M4XSn)iQVZt0X_DIWS&*?f(aUPs9MrAr`zZLVb9)&9$w|3Gd~MOZ@(> z_2n9|>)vrlK#!+J6E?sn-IAB~V>qmy(1hH{Qt?93PGDUan9iL4@XgXb_aNte+?d;v z11HB4r;%hUefPbwMvA-B448DJU$;^_3&ShX?iN4brik^6A2Is0Q*{gDtoHUc0#sBd zTy(0pq)#C4l8T3yx8!ELC0JcO!V`>Mk#mC!^1jRS7LI4{Oy29Z5Ld4dHF8#*IyZ78 z=-e`~H0PRSe_9y!-ei4c2H{l%lP*;2-s)G=FQNR?)&V9-?%Ppu0ap+PmPCAVQdu2J z`MNZPI`2g?aeBfCSHAH2@aPR<;f)B9m3LXivFgS1bhzhH`U@>LV}z|P-GU3c(;iqv z@oHdLqIj-t_;^k5vo-i!JvXL&VBGiXe#F35&{WsheeZI;V^e3`*ID_m&(SwYJ^JI8 zZvBbNcmA}4YESf9F5=#M%YXodbGzpE@pT4ECBENBHe86i zul1x-5IB|^4LGAjZXtXsc@MSg?_ehCCf<$=fRYgj1vV$IOT_TdueBD4@7*qKTOGZ6 zOV6EY_S;cu@NKDg@U19E zQ-k%)ansl1Cx1JB);YVbef}uRtrBfqmzrMAlH~?RFE4A!HkdV=N8Hug@v?3FS3)X= zUPFTPl}Ahmu07kty?I9~Dc*Woxi{YcbqE9O{~7qtM*leV$P|~cq&WNSX;b4}`MdO& zO~rwldfBjLd-TK>he3p=*1|03M%Z2ICKHFluvIo;|+xl6D=f;O5-5 z4U$*K!)-e%>uYby1^6XjI>4o#-qdY8`WQDZ&Z4qfKq40}m+jiGn6`+!9q%ufr>AbF zwRr$Vw||LyTCI49Yn|Szu~brUbqg$m`LTHIjIf<+xS;n;xA*g)E^pY1r$GXLD>Cfz zEbE%KXG`Tn8`4=1R#M>0+CtQ~{RTu(_YXxD5DESO4ENM;B|p^l=y(~XsKVmd568GsHn7BVX8z0X1&R<3Q0&g&E9XB1?AgyLy zY(N56LO#j!ju0K4lNtFN1fpe9%?o zv8-2q8xvmiL<(P3|I<1_2dpILl~FQg{fyhKM-tXCC|ZiAiszTMv%mY^S|o#683F<~ zeDp9RWJzQ47Gz7WbX<(c(S(24&Gx# zBpP=mhlFFy183Z-%+6OPn(Im_9xJJgNVAh0Tb)4k33uTwc&J!}ZUMuB?&t|TKFbif z{`{XLdF=mA^8VMStyoyu+5ThdG^MF&vssVgby9Llj8k-sP4X%v`zU*dL45i3uqahU zg=cT|(nR3nLrhG5N?KA`55h+Z^@U0)g$${X?5c?oX;}iV&P|H@^Svv0K2QIaldZeF zoxK6wD+(?ozMwrY^5hGFBxe2$FW>~z`&(YSW3HWbtYgpYzKe}Esf*E;vQb58w;Yxd zK6`61x6l!eAI|Z4mT_@zIn=Z=ccI&f+iLRA; z%h`3>^r?*J6P{D8Xfam!60k^>8iEM!!vz})TeUfdYfF;olRdP?x*Mz zpX<-^M&ca?yJ%n0DGF;0at}h^x~7OP`5R3f)^N;UD`#g-JZ#Hz0r(^Fh%g8jT&Hcgn1Fl<-k!*-q6uKT(L0bRjxObiLic<5aE1#clEG)rMfZACK~-@ln}4x3{%#NdfUl<~-_us#!T{K&_Q zP2hCDWh1zFx#O+9%Q#$!zpbp^B{J%2ke2_INZ$h%Cr%Od)zyaZUE^?V<1_(fQ|^>F z;l$yr6D)5RZVXAon;@3dNNt1+71ll7U54|Z8TB0rJ{ifux41D1nVGdP7DmyiTB#q{ z$IPf$s?kg#?>=E}5u<8I?$IKM6DsIc5=Rgk>7OB3AvcV1?1dJg%c^r0@d_CoDoJ@Q z_@rg={v6OIVGUD)S5Wgw5{~Ls!p8irxLv?Hr|YxlBSpSC! zty_iCUx?3+Hr6Gd8@3B3*-?z4j2oPPEBZ#x7Y@Je?JXRvqBB-$Y)7TNh5RtKMcs=W zDcZGHn;>U5uQ0aK7&E_EqPQ_EN`sFGb6RDvk@*9yFDXpmpFL*r!;U(zqvDPYHKFlj zVv?kX(e8h}-SNt?!=iIE>S=0edq7wT=r-uRkIB7aSOy#8w4oPH!eOlU26gJCDeP%x zInl(?^I4%WYIHJx;20b7yHKWMfo;D{jFA#(J@5#}qkS9_sgM0+Cf-w02|7FMK1!se4!XB}n@*d-%#uK~r{c)q3~E^l@PbZW}Vi zmknk+%cE+G7wH_mzHz(1sL-fJvAaP8DOfwP<6|EnAV0|iz*Ze$NV7U{Y>m*PPt5Om#By7m(RHz)3nLu^>b^^vIk;4Q* zT5H6dP}05kjt~)veorDWRA=V%lgOatNtwH4;)Q`fyjz%*{bu9H3tv5zIfZS8kMQtF zQR(3uIZbHSF}8wAE=){*glEr*GPZ)z<7@qCn!7M4t;@Gt7k7dcfBlqh?!(Y0k5NgE zsJa_o^`E@QXd100XwdS(@)&x~#-ad%$9R}-pV`~^klrRoyqMpMbv(;5P|6MGfZF$i zcylOc(xT27%WA9MR?`5J1l6eq2R`m&YBQaf^FtBh7~zf_Y5n&)TCtmr+e)-0x<>b) zW@{8;yzG*&W5uB3BEvkirg=V#pmb8{xD$v78w-&2CE>^4uwPG?MPe6oMy{(kP#{!wBdK~U6l}$43LJlFR6&B19+Fg{ z@ShySA5jKtFp@rimV*>)d>KG&YgCxaGJ7E=af@-3bagbG@j4oK1?NxNNk1%=k_bLh zW$PzHG>S#PacTs^nPnpjVbsydtJo{))2CHdzBVJ{H13MeuiEkqKIa+z`Phs9DJJvH zPi>2s@SH`>?=LmG#*c=@rE@4Md`24I6|~o*?xkfOxw4C`s9Ei8EtUUzpS0oBQ)lBE zTkYpbTyu;7KeTH!!R;+8W5}mB!02y(ZOvR|9CN^+=ahOv>2O0u{wB3Jujw4^7wpY= zAX7`j7^hTM8?Ve7U+GOU$zfy^&(6&hq$jGQop6Lf+^XDDd4VxIYtDHV z<1{`DmCY-{9V_u{einp(N9kGKGh+RIGB29T8A=q4c556)WxA> z!p$Wu>$2?#2YAclP4njVWcOkDn(bo9Ls1>ZQ`xkKF-5}fI>R(|;D%wg*l`(wCes>h zRqb!f>v`18#lO-&9&yJFNU9_&eGXzd#&2*2M}6RNs%~QYJs#lraUE`lPI*gz)5QJx zj|pUy=VJ;HoV&in+U_cKbt;sxQdxSf;!Bx<_B7G>0s59#MQnRy2NBgl)X9Tyl@4(N zCrZt}s!7IfH8xjRiGzY~^GUxh?4wnO6>LyohXjgTywRhd8k1(z82+SGoP_Geou+BQ zu1mF`@@161UkaYP=55g+@(+mMsZ?RB+|@grNNRlVg*^J%pShph6NSq0+#VE6zTaHp z59V%!1!5ZWtEZEldlqsSGxF=4ZRW!24=+(>qsEqOP$5G zk5e1n@*>@FT~l?uaxWfj*(^i-d}wBK(EM?vX(9>#_%_2}d8IUwn*wx_%mzy3d7=Pe zJS65_bCHKJv@litSk4!?^5Q%Uoz!)fQ3tt*zEfK+S~^hubTq%V%W&o7_g$dL_~V8u ze1h@shU;{=8mteN+&g#7dLQjt#xt7nyg6qs>zNx>7pXnItl^h&ED?o!g6I7yzu#54 z)jbX0YRach>)#Y6Fz}j69#T8lG=rRa*gy{N42W*cMp|OO(Dc!}{qY&NHP@-uC%bC9=Y#rBZM=KsNLL-I%K$WmmKdezlWD?a#bv$NitSWsAQDm z^)i;Jm=^E(q+-?Jy^zFtwOD6xzj@2+a$W?9?0poy3h-$AeKGy8Zx3>iG7z}f{mJRL zk_OfnZ@3ZNp=Q}AIXu;{c&BEsi(@|q3o-QCxl9Z>L!E`hiE+Lt&Qqg3zHoQNnk_Cbj7z9mQQ9dxCQ-@cVQ~k|_E`!+?(W zTHjI*qks@0)ed$ZR6<{Jr=fL2{zJ6oc$snmUWX!`+9W^0(pKSL->s zSHIs}+^BMbEpeuEo&tN)sxl=8m2B>eN6eEnH)c{lRi1T9P|_6Wb{P^aormCoZoE7@ zX#A;5AeAfYqn;8qF*K@xY%mH+rbpJjo#61F2?$xMff5Zu>G`Hx=*Y z){$Fu@|j&t;g{&%18+LJJ7>?bb-3C8ZkLkBg6Kwsc9BTeQgil|M*mb>a(ifiSYvMt z*&@xe$Tv}V5C(>T7W7`IsA`J~^qnH4yekYiNMeGXxCjS_yliuV{Z{I}lao3`O)AxRw4awK@1QLz!Ovnfw+}!LsveP|jyXTXn0}Q*r zNt=cy{RrYVRG$uiAwbtypfxDQw+;7RlHcJzezs|Eru$@T%RfRT%&c3>c`e&+3Ubj- z&&wJeQ8)a%JWE*@EYs{N?(8lFdKALN<^X1b+Vqv8n%Ca{mz9zX$k-WdGIVLOZ0c>yRo= zsXK3I=-r+Y$gmIO~8gE==Lm=Y%D>2w*5G6js z&1B&*@#0)Wl1_rnu(-i?thRI-xG1zO+_k3K=j1|lW z^{p$nZNDbkla;z;FAa63%&*L8x{f-5eWHq@m63o(&p#a;;nHNDj6LZbW7T+D1di)-JS32ua%Q@%U&!MGLZt^e5ldhQ+6T&#oYSD%~B8)N8sOC zsDY!q>(>TU`yl5bTt05UqmdRmlWgxnv#T{>Mr>AvU~sLbTmi8NCv*ht5ki65r)^Cr zM~wToCJm*Pg;2`qMzq-0zJsZQ0P0d38oN3roCT>($cQi2o*qyC3^SLc3&~29j!BgC zv^fT@ehW>am`y75z2ah(M!OIWPRj4}xMxas60EzZY`V$avF=AChqro7u7k;{5DNZ@ zTT>&i-gJ`ZldcJBpxq8Bb21^rx$sUcyQ@5v2=sJjeH)UL->qfaN0*lY7Mj5Wq2B&J z&9w(%R3*x1BwkJ1B{aM04ffasFQs@{T`e^>j*f-AiB1%iS>UmB4t!zw2tndyRS2nj zjAAU?`tD4G$;Y+oI)U8$Sr3 zozLOCf3)BU?T^;Y8w4sn@>r(j2F3WdRor#G-kD?*IY?PWuWJfPha{d5o_Y<|_{3m> zO8Bn^yglj?gJlNgpBAV<-w8mbOfHrQx@i)Mo%cIEGoS9J%qheNpLPRrgOjAX_^f9f z8u-{G6*~{-<|sZ4!c&@LqdN?l0&eA1kJiQ9oB>riaEUW`zM=xakRhYMgXPHZTULc| z*DG^fccMb5~PbP&0c^T&VPLZViyldLhgNXq%fAP)sm)k?bIa^xzZH z|I+UN9~e`|6Z`gFT}rvg{9;&)z?K2kJSamG#7h@OgP)e+2EgnVL~f|BqL!kRtTU=I zNFhA9fEV~Noz^6VZu^fy*AkySoqz;u9lv9Wi!xx;Tfm<;C`u+cs zZ~MQ!G!=kMvzx{ACEq-w$#+||QIS_s_U@Vg`K|3F$m(Bb5 z8S7@yeReHD4boe&X9xr?E^9q?!70-&7AlAHGZ^evv#qnqmQGYglb4Gh)Jd(ZC8RUX z{leW(+nH8cOf(rHxcQrE^%X{HFgQ=U4dt-wjexGmvrk=FXeZdG0WU^*hFmYS%K zi&W7*pE`c|tr`Jeb!+{7$?qiwQ~H5Bdi{>=l@(i;b%SH(t)pvkPLK3_JI=5>1G{X2 zxwHCe_Sac_?9m`WL1*Ck>ve783L_Ms)s9F0P@8G&Pb65mTRf&x zM1Zdkb*kajj$1QI14-z9)s8j8=0up9N(#Z!S{ zi~}>D0^TrDSq>8B5}mcNZv`hi-59&8pf1KmDadaVG@KQi?o?^5G|=mBSQpl?|0W=S z))K403tJons>dP0`RuFpXh`J#hA7cx-Lwgz^RLs zdqvKhP2A%f_&e)cF=^--IWQ)L;CH6Aj#vTeNqsu_Kg7 zf9eRZOkoQ>8AOr;8+8rYv^+kjZCI%Un{_T`o{n*Z2JRF$Z~C4pOqVX@wDSte1owDA zBHIn=yfi=Ewzo4Cp}z?R598ZM;HE<)N`58E*OeK3cA?`uY#wS*rzAsn zxOm^K8po@D(Zr3K!BNh$ebiNS-Ocxu|H1s^=br}okMT{FxJhSBFolMUuGvfPnLhP2 znh8Jf7@De6LgfJi(~R;2`$10J;y)Zb;mxlaz zmF)ld(hyee|L(q=!zFkROyftv)6XS)O*ei~AD@%5?MYSm5SC`9r@Kun$@BA%@Gd;j zx9~0$m@-k@(mK6)^YVu@Q`S!*5n9rw&nb7_PT13EB2sfKtPodS9fANf6H^Y>4A*Ul z2Qlu*#h-giiAZ`Fp>p0t20ny_p}T)S|Azx((cG607uHXKFnTbtv#>A*jq5z#8~ff4 z*QSdQ8-%Pexf*QV-Vf-*2hXE8!c1YLsDWEPU!iof!u%lS?bUXV%;1~B&Uh$t3ufW> zx_EpPeP;Ta`SKQGy^^)yBQ_&=bjEvA+qQGJ4YSIKGXjI={Nr>NcHFUTTi)UQ@!rA+9!!@UHFHEZo9L(iO_OcabR*yo+#cS?MgKJ#g{8~!XTz`A|PU zZGI_jHbs^&a0)M4Ek9;FBk^w?8(_a`e1Y#tjIev1@uKkc-oT2z&FkF_r)(=Y7<)LF zFD*nj_R>xR$`zKjdrcw^%xC!ttzU|2~lYC17qT0r3Do zKt~vuAe8hJVB?dg#|OPxHwyX&9-+@3b9r=RWMq_-uszWK@tlt4r;3O=61aW+!qRx1 z*Ykm+QXO;JR;P>5Th91kx&PG}=Fjfm&p)I6|2*I!8mtWiv)+Ee*JY2GBukp`W|kDD z7Z(QRSQ_VTGW(ob#7k69{zw3u3oGp$GIvq77T z*uLkOg(2M;75=gUvvq@h3XLD_0`U*w7wTkW+p8uAE|^WUKXAPBQ+x11zJR{3$tC|l%;_UH2h z>1O~6d;*UTJ^7OZ-)y;%wdPl^Oel@H|W!p27>LO5waQ znC62i(kHBcs;6^W*sj9@a`5>Yvnht|44T7<-vS}PLfhR9c~iw8!%<~Hp(gZnyCxPR z3|DT#DxUq%V9*# z$`f(7hf>Amzd@j+42te#P#`DC91>wA_&dWbfBeP}rePaEMF#~Yv}H?oDKJJ68&!-8 z;y>DuhpY`^8XA7w-m^>edk)BORo;0vQEJ`s?|&qA!2ZEQr1U$exX`=oJiZ67Gk@=_ zQF!tFqmT$Q8$3+Q-VYo<2^$PsuvC_`n)$2ME_$ zV>C?`3jY!b zMxjG5Ac~thD^ngXD4I7ksezxdtrgBkEeZ+e&gd1tg&sQMt?Te^GOe4<*vZ|*j~^63 zy;^XGEQSK3V5?PRTZc|Oy<9gHApLF? zoBM@vIt*EtU1M-NFr7XnCK~KZeV8Y45jbm%PC|Bq?;mAd&S9ajXQS`Q8K`CZVnF#v z5pCM3zmbdI$9#?Z2*u`0KND^`-!^3Fw!eDH0&ZRjZhi?c{ZTCs4uDQ;;AiCbSp&6V zz#LEk69Y2o%=rguZV~Gyj89*!5RX&*RjLa_E@6k4IdM%s3H|$@2^xDufa$&eF+5XS zjQL|9H-f*!78BIuB$M8~HN<_y1HI6Y{Ras8QZ!iMSns)^(uFqJnN5)G&^dKap8?J9hD6HpuY51a zY@$_=y7U&20D)u@W21h-4fJZ%l$vY}v4r;W+*ad5N(X)1hL@Xlf=0-0T5e|u=p;>5S}zpF*)G0cTZLI@jY z5ay;`Ru#~ekJ4|p0lirK#m8oY+1GU84^T(w6}|(0jcnp$nn?4O^(Vk)Yl*tq7hHH$ zi<)tcLBr>O2YK?NoM=Uwr)M*%e{K)wBgmpa-_6o`VfU6*8`}P?3gRfr@EC2 zjBEQtX%q`Ukxf;SIo_WsgkpZPg(~sg#(RQYDw;$IoM10SfZ#(S@yM5GS6l2UYA0%x zNd=P4z|4(A9Pc$|X{7XM7nqom^~arLA$Sh39)*n5b+_|@LK^4fGyTe^>DjCAct80_ zKPBM&l1H5Ru8Yy}g~DUCe}^5pr$&7jtqHH;IUwL4t%40<#J{b`5ex^$a!Jz8uW8Ix z!{yi}WR)v^md|NTeWq$rVM~&Fv@KFARHaMJAq>vqF?}RyK^-qReLQ=K-%+KxN5bF) z1$R(J(s>ExM98m&<+(41GloNLJX3^96D4?QdZV-QS`tMpv>$nSxF@gTj9MmZG^Mxm zKeMP-&35!;&0kjq9%zdSlJZOyoUY+qNL2!7DCLS;Q!GyDF$-e{E-kc_05l5?0)Z7g zq}Sd2YucG3&W6c`3cOluj;k6Laq_^D8#S;l@@3OdOQZJSJ7&jJHBSJ)Mk=_YyeS(D zAxk+xA`8bu=at(*g_N9;@>HR-pFd3N8*j2CsrWC#0Wis)k_L+>obksoKn3X9NcpLx z-rcPmD+e8pZ(j&qRL1YC$Cm~$Ras8|r$*}INNJ0{kk=H% zOU2PZ2$d%qE{{A3-5<9Qf@25knug4%Bo+w#ROOq;Ygcu6Xq|YB? zCHd8cyhj;kwKa5NO}nDI^cE}M)i$1A-z-+7ge-Qz2-K!=4x(Z|tf8YDn5tISHY8FW zdV8L&Lj3zl?|m1_hElw&)Z51cd!~@CKURZ=ir=A#zRx0u-aT#j0nn46+5!>b4_7m% zYfAEUG5#*mf+${iW-2GJky75#R@F}msRx(S&JKqFOs77|$5xRt#H2xP1Y7|5LZcL{ ziNfgJ+vQaDd;Fhfi12@V8XZT426V|dqMO$$Tx{Mqh6eNqwEVg~Hg-4Jkyzm+|L!p! zxm?2`LE0m$3RpcF2i*|M`U#Yp?s172=7`i?5`>L0SJ7>h(5pa%C_|-=gk_%V4u&4V zc@1IUJ>C=J*qc3&5&AeMqz^juchOKkZp$=6NJczJ!nBrv?%w{c_#_B*jNeINxUmuE zr(l)Z=sT>Ij8qO@&bvD0uFZ{x2gk@k!f`8=BBPboXU~e>(k^BK4h2dK84|-fy|0#nS2cCmxnX$jCiBAz z(@>MG8C&;Y1LAZ6QCfn-Sn2GJ3Zd)n#l!asG5~bERBCibsz-@?{Vxssw4lQb!!D5h z0yy)XAt;#YR3_u!r~P?*es8{KWnG?2pa z5+TPM@IFjB>>i@h9ifHqtsiW6zTMvn%6>qNIlh1${2~tI62gnu2!aSjJTB`GLs(M` z@q_O+1R04rD0$Hl4E2my<|YsGK{Wa{HhkADgvtk@^2?m8mQL1{6opi2tlAxy7L@Uk zlE5$-nK;8$Wckb(-Tm1Z#GecD&8v(g;RU?6PWzJHBuX;7z=g+jhSs^30eNpP#tOl` zm-kY}wh^_zv@I@2I<8KswG^rFz8tWpo`eA(CW$z;C#&~-ab0bN6zN?$?a#w`$?6Fq8shrLr@Zy^eWQ*XR z7U;ji{!+25pQWb4{62RM=Q^dSirAWec~l=i9qoR%F}18f3TK&vai|%20bY|B1ixBJ8+8C_N<&mom+G7RXcpa5UN*N`k%m*kYKQ7nMZOCB6su%Oisq zeu_#`lk2|{vG7~FvXm^MFK6ng-drLK?WS6`7fzOA@Yjd=3ysJPu4Q_kwlK*S`gyHs zvGT47q;m<%!1Y?-?HL}}D3MJhVIXPe9_jAvLGu=q` z=qS6L%1iw2yw#vrDy2GCv*O$r0bP7Gzi!(`uH}b98ogCizC`UN=y%Af7POOK`H&2k zs^~H$NmQ@JRsBTBsu%Z{<|1oP$iTciJ3)M6X7@ZO%e8#GI2gBzL+%NF5T7%x*T5lw z+NEuUT;T~kYx9z-du5wgu_i4aIW~g*55QxqKSJ!l(xgl!3{86vgz%ONosZeSk?HPp zA<)=W?#^XzeRafP2hndGFm7BO zP0Lp+>u|C0FbUvDiZzDeZM~={Uum$D{SviZqD$Op3SRzYQsJU2m*Q`t_Bs%Yd*f5O ztpwsrB%eq0cD-(3#toN8RHX?!E(#KAj@>0nL!#6;$IM)-vxSA_rB8C8>_(062hyQQ z+gw^IQLOd5JQ9JM&un#6l8rq)@fZZg%F6SPlR?3Dq&x&~%s=)Tt71`jxh>pEC%v(G zus^JKu0Hy0_I3jac$VLk$OaFYll4Ky*p;312`a3%cXF)Xp2KQOue?lP2|Q~rM`L3( zn^a!Cod{w?P^TE2MS7FRYfZvQBJ@Z%;~kIO8~$ z+4(nO-jHbq40YQQs^HluoY{9cU|@PZzr^l2qw4SR#YG-yx^pnMPkb!DcOiI#F!2l1 zS@y%zt+T&5;67D}>W((FCFPw$7-Kcf2ftv^IbRc=aJYR%u!q?Z5eXPE1gpAR(j^Zv zX>k*Ts)Apjvn)4SPdY;mbROys?{2D@7-jF4U<=4J0)~tXOPv~@wvmwyVJ?vd&ID{k zC(VtQAGc=ne?$Rdwg}N?A&VfeLuVIwyt+;9xB_gcnM9Pp1}0#GCZJ>f%)rkO zZuQEtap*?7TX0ch%p&U~DLU9r(ixJB*%coSddEGxa@R=EeL(TdR$^O0kr7Zr8h z99qDf_?1db;vYoz8$EN*1SNPY(QI7Ei(;|R4DoLVEwxqn|HM?E{E%rWy zoM`#MJYUE0;ns-Ywe9#X%t&3n%Q9DPcRI}yZ)bOfa9ivIQ|{$%5@;SEBtM8L3USlU zN1;T4{95o5dIG(kAM%^EnbpIdHM0N&Op`C zF?1^(7gvVc>om($m}e?fHN4hP=1x9v-{wwFQanf6Of%?jAA7k?Fb6AxAEez0>EU?$ zynV9t%zTZDadbghn5x0fpnm}ALQ@tq7|#-Q2FVI($n3{gKxV^HV-~qZ?e8?*y&c2@ z{p;M_;P4!Tb)%&2qCKTCJ92c1T+BZpbRg!_e%nxhN_q8$E5e3DA(nY~n4KYB-dRPP zkBozk2Q3ip?j4U5WZN;Pgi%VZx@kW`-YMe{?c>77OE@6NpIUBim(0n6z7?oIZt7V8 zDJ>YWZGU@IpxHzn?Dw+pvNreJK{>HrQ6Hm^LIDcK&_7%~iSddA*vfr_6lwyGgK~YS z-Ru=YiFl3N`g<|)#+v@sbiuJs^-fL^*7KzEkUu@VjSOesVo;_|zW{`7`JOy%-?Aqg zgpI7F@#CxszekoB{p!R~l31gxr9%cHV7fYn093XuW#gYylHN}09Vd5CqfSEW>T=V5OydFxLD_Kv@@qM*34ws5rOvK&GRP3E5Ta}zm2OGV(iY@c*gs!T4p;Z&8CLS>Rg=>R>y zL1fL>Rgd-F@QW?EnO?pdE1p*gEvbI_r;p9!zMm}Y-GfqGX|6S?pJnKz5P@dAxrERlHGaYcy>Qp z9jJ^Yyj(646ZMWBGLGFHIuuR>yGU?F69s*N*v0(rH^0$GHo8%aMazSJHW_fycSWGn z1iHwT&B{mHzMxrv?!_7po6z9%b2zZ?65!4fK;I?^ugmsjLqfu^ zD{W0-B*eYBjv15jKfI1~_N=bxPcg>GhXOC^RaO;*Zy^$1o`8GIu4nR#eQ59otPTeS z)ow=$V$V~S|Lv30Hv#HF)} z0azfCDoP7rfq;wT^e(N)9^3Ty{;Q|#ozFKkr{P-7Ilr2hoB+kvA&1wsI?rGw9d-xP zl+X{_uq$zTmKq+dxs}}et^Wa@nWLKdvuem;?wpus?N0-HmCpRlj|42Ib)W)$;$^Kw zB6E++ffrAA1)UQ=liB{#_G?HabX{fdNH<~*=lIw>iOYxtZA^Hcvl!peQMmn_P}$j| z9AXqWmGhK}`v(l`WSand2!Qv?S=bC=<*a{izv8kbA)xiY|EfMGKQzKnbkexCbi_-S z%ztB}{>REm$V9AfT&q>R87B(kS{h)&>x6<#wz?a=CldA2_JPVzU{P@`%Y1FKLBpJn zM|cpQQj8_^Y&kn;ht$Cb#f}fDDZ#uM%=Fuqm@;SdhA!>(d$CmPUPu&PKx+g_VS2@~MMQ@!wO^HOI96dKG2OX(sXe}(xnnP}9HYNha zq8mgBgwY87wVZk;FR@GTbS4by)|!q|`tg=rMtqh+f#i>bP^EsNJIK1?sbUSM2iZ2e zmk6Uk(9@2+m~BjLQZ51t<)-{xtEiPxi3)AlY7bw$a?_=bLvLn{ZLx_ z_{~U*hvgV3iT-7G7R(b8y(^d-3@-sA7Yiy}GUY_>X)3R#C;jBSW%gt>_*1bL%U-rD zI`c5G71f58AcN>}eLtqBMZhclOA_rMq&hU~nrIt-?BqYl!FlDoQ(>kyoGyBEZdh@W=mbM88gebv!w zP5mxFiO!BU90*Ns-W1+ z@x^Ci8~$a3Tp%x6Qw^_+wO22d!!r4Jvz07-jVw)}5%F}3LjENTN`JP>usJO8C9Sr;z@~C@s2oJAZ38}c=z*LYv)ilD`lt|t+G#&OfPi(OhT+qcq2i*p~SUk02%Q3mWmG{0{i zqF9Ws%1}?Ht~KhfyDnehA2Oj8$l)8J>r)q7FE850-eW$t3F0|KS41e}Ocr3K{eDKfkmP_Y)Q^-fgd&+EY0dKF-VeR*&rgoGs*|r_u86xQ!)7od#A#k55*r6nBLg z0q#SvaTZ{rbyCFV0j=S`$9Gn(UgqH*%8xsIRVr6Rl5i?iB*PfcjdT4C^=Im5*11)* zCZ6^;0=*@qZpxV|(gGzaz0v%OmVJJkejk@E1c~-eZvC*PGQSPs4!eAfdS)OdM>j+z z^W#XMft0!raH8*DPcY%&Quq1(RHki5xh{KFRcg@35pV_9 z!_L)sC#PvoeFnQ6oIO5j(>s%m0uDlP*eN6I)3F{Pl?_N$_n; zxvkMk-~#uu4$3bD+R_(IB|F6SrtPg57-)p{wB{fMMVVe;*~P446j;cO9URF~WJDUf zsoIP0e7DKsD}lR~PfA(#!gTgo5c1?Ah|<&D^#aJYAXnH7IOC^Nk@v2KE;XmmNYpmv z%9cdl?^$UqSg1GW*e{pP9wrKzYZ-^*ak4GNz{HgG!j~v(m=B9ou!SPLd9VfN`<-0R zJRIc30Qs(GNmw=LI{mYn*9hda5sji<7GyP!h}(Gp)Dgzz3%NgnAH~SO!%7l7`~)7;adWkzsheo>(kfTOkP!0G$(by~v=94qlO$0aUAo?>6YZ>Jd%>-1Hiej@5$p$IHfq^B@)eQ^s8Y3wLcL#29m-b*7Tzw-N>IJZ z8t#65>ug2^LaPhpVX-F^@jBK!8>e_mmOUjuS5DI~@5m_d%BZ2LdC9H3<1ym{6@<7d zv48{Vg8;DF;84fHYTSZF&S}IEkfRpC-Gqa+Ea@p$vDh*b_fs5)k?0LweKXO@=-#*pqn|{$;xED);Azobz8fw`^ERn_tdhZkvR zWLu0x&VfR#CXVy!tb{9Flr-Npviv6W!^~_@+7@*$zfz%px1X1;tG9z|UU;3UL@w7b ziG7knp;(Hz4Lq+TBwPq`j|q{b>u>Sa0G3%B_g8~=RI!+v96#$WhivvsT;u;@YfOkN zL&~H>XG)gE6bUH##GWF!pzhfhR2%j#rURr5U-khea0J zs*AQuwG{U5w3GO|FgZ;ELg7)Qv%CdzMp1tuK5u`!s7U>eCy9J~>q>=7Yx}>B*TInw7PU)2H?vRj{=Gj|6=bZ2PJ^lKf z$3O78uh`w$*`1x8dC#mu>8=4^NA)KHI^)~N+#?hQGkART$CMGal<(Pl3Z+)|lyNzI-50R}E^YBvdg(W8DDrS=wped-uZT3)U|NZ(s(>L0b zC=#!wq@sNIa{@ljV@r-eYnE9I7Js|vKv89*pX1_`*9fm4agrwJwMQA9A9xL0EtTVh zo+I+o-DN0BjrDvh@SW$C8*8DkXDaKZ@{jD%9>p(UBwFO!TLr9)6HmUko&xqHB-2rg za3vBOg(rI|8WLJOdF~Rtj?aiXP(E9?+FN*5>r4h&%n#pmRb>%i*`mnvK8zu{cu?|3 zaA=2N8!NPr7-lXlD+#lg!7AOO)Rk<6WCAno$F{TE( zMXft!V>Bf=Ux2ZVBc5aF6+8c6`o&!V_w(lp0I(1xc@y5rd>4+XymY-eLrMOnJLkNH zf~@11ZGgd1*j>PFkr7titEX zt8?oVc4xXcbLaH1M^&#StxzoWDjrJ+x%8q=0c+P*C;U)nOfmIXp*T-hp^#aj)T^YA zk-)#lR_qPm=vdN;tyUtsQZ=K#gS$G8IG>cF$_{$6J5=BDCBS4->XyNU(-eiv=9SqEx2~sm+EF55xBRY8H!h(q=D3-|?14jjO1GXIj1S z`0l{ghUivbEz`NhzPYkiDm{urLgo522=c&7ugoA;Ln@ zUOx)KCL=CF=BoslqGrEFZgop?(yFYxKvld0&Wd-BO6eqTog^k-cf504|LESr5nV~+ zM~8~uM0w2>Hu_r;Rpr}_SWujeXfH;S^`@*=B*!A#D@u*hXYH~iTNNL-^RZ6S#}7Cs z9=UM*zUec6D*nS!5Q}wzo0L8)I*_`KtS&{T+c$qzHaY9LpNMeaN;%O(|Cfq7j04py zxY5Lc{5Ea1BQEtD)Tvo7zvMy>wie-~Bkv~W(@`dLkCsX|1B0=8FG<=!(YV0h4&u|M zl+DSJ3cI_aW*w9-mVcGfTkd$62&ZBU872-O=>l*-Z`@MtW+vFChRY*A3^VoQZi|5p ziu*0WXa6YHg(CUA_Vrwe#9nlZ%3zURi~w@#IXyi+4h8`iak*HGnkRb|A4|<*Lx8+* z&nL4L$#EX=>#g2zo7LP%z8aIyX--z>PF7iza$U+AJNS*)jDb+K`Yf6hZQ`yqPU7SH zLWynEry>^91=v!9#&F9^>(}|(Y-B1>o7TgvgVn%jH{$M7Q*Yl&&U_e4q=sXScetM- zno$$*t?N2{SL?j*R8DGb(NM!tuaCCct0c3AIT0N-g%uj&L)}cPYxcS+se^X)Zp$~c z_lh*lRQ%j1O_TX;+IaO7u5bp90ScghrAO%TTbYSP>E8^?ics^3W$0-@*`>Qr76BS4 z$t-y@lg#bCzoO_;CX#&1>w~?bAAKd})gEOzYub65ghSG*wn$9ni7ZPJXkxZ#qDloj^ zG(WY5`qBpw2Z+$*Vh&v`~2Q(R%(zKMw5|V^*2K z)Ewj=7Vz$wo=!5;V3hDsFHi9R(zC|bYQ4bsT8qK~jKzRTI{w+K*`c4655O#F!==%z zeNg7y6lt`r#@dzM*n&q?V(IPDb+5+Cn2&~U%4!H&5iLW7JXN5Aq?s3ozk%=g_QQt% z*-@<*H;1RBiqi-_7`!x7>1yd2u@Vk}mbIV1`^L#O!CKdeb!tWlALcJL7@S2VK5w(3 z2I8e^cTy@xd&wl@N##NlSd2AiLznK)^#tQ?*F#oy9zJiUw=+q2frD&pTe{sipg)-mXb)MbMT` zM@UN{P6K0W-Mo`p$R-{euAS`=7q8vQXzaG##YYqZS52&aVwR`TNAa~ zF{h03(t(hdqAT*fgaR6Q1V`smIZ=Xarjpi0=Kw6Qc#kldp4yL(fS)Q}sU3p|#KP*$ z-TT%Dvjm`}?FEiHf}9ksZN3E9UM_9RW~w2~&2PC!44Ov!GJya0_V@JqW_Yd*H|+Yg z%@95pzbj0a9V1mphr9X_UcCEp&l+_rFPrue9R5onEI|h0*lFK*!DW7a$4VyOZ!{IYA5#VR4hZDbTm2qvV`{ZO14GqHA{YwuLLPX#yH|ARoq{Y5h*{uS$h zUJLI&LvL>cBGx#6vUqTPF{D*zgGgET{Ek80p``R;a%t{v@>_}gTSe5LCCR>bJLa+P ztV#Bt7&zb_DM;c+4f8u4bHeGMCosFpxcwFZ9C^WGac^^|Yr@ zgq=)3?8RR(&!>J?>{o3qy|fI#e0P0U^}uj|#rTDrnbNG${ap{Q)}T|qE;~2JJtwWFBV?~Ts+>mo>Ft3xk#4XKcIRu0ylXh}=%R=4PoU)4&{;P< zXKnW?l`Quq;7b=9!Z`9|CI4LR+rTlPGw>m1nUBY|HzFiH4QZp zR^i!>>rE#n+TDj}*2nz}pW9FzLcOQQ_>C;}T0f|$Ij!7AA7gbKS_S zf}AF1_OQnhZ}6kr+{$ZGZ%yMO3MQhy z*e&@40#Bz<^x{qCqR4NSiR3gaHvpIdIEA4fp>IOjScv3@$Xt|ylgYT$-ad|$k>S{C z*>nfEq=zQA&NBZMlBHJ;SHRJ7a@>=YBq8Ti%vAFv0#`jDDsrJN-F#M&!j2+fH{h1w zE01-ghhkN0!$E`n8)q48OJVVZN(vHeSdJU2s)jDW(;*`VmaW!+IRL{Y`=coNl*> z7T65rRo7ByFzJg4Fj}uHVsVYcWqyPZCEy%Zf3yz9HcD>zjf8;EsjUV< z-!bmDG*MY;Z|{V{Ti6&rh#4Yu*^OD!`X`e~aRg%SuQ^e`Mibrv)8e9o@XxjKH#QIV z6dHs5;bf!~<|$wBwJe5-2y#3;-d@J;_W~2@M<)^@9hyS(o70d?G{U>Hk4?xy;?i5P z#@{OqAd$Pq{d&I}Y#;fzJ`@pX_M065TkNo@cg;oph{^dP^25 z$@GU&kfQV)e6y;SSD`KUrrD?fYu0!LIko9)aXj|JJBijMty5rA0XFp7(r8KHK+IWl zut=?#^UJwT7R8}!C*F;O+yTqKj^N9r^{C5eR*!H4ZmE3ibkYa6+vXqGz_+`|OFnLi zDcXx}EG&h0Rp+fX1t7<$lo!Et!{6wren07W_A$>yLheUM2>K-IiC%{0VOo)N%ZxHB z2m5{joGUOj$1bUeSMkFig^=Vm$qj`h#^N7ebiZSD%tR%~fstnhmGUK$P4tH`eNb<` zaGV7e>7Z?t1{ z`=1;RwNS5Z@OeLoou>EUWQs8br;}6X07dKV4OITwkZHH*2+lT{cgzGi%4#AG6JjPPGs^bd3!Nr z5lo|v+8}^R6L8c_Rno^K@00%phRa4)!T5!=IXNQHK&|@S@9BPoEVmF(6RQaTy3wt< zD&hwdeCPRrG_r(=IGofk;v8lASSSaP7jv6l0_;x4PUpk7mt>q)f>%Lj@Hj}$Jcv!sa4$Sgyq`-x`R|UR1G>y;+ z{Z_BN-#zv0TMhKqVO3%n#)7Rb`U<33=lOZd5#BMy}PqiRsoX^aRH3DD3FPHr!w-(<{i_u}i44q|8+iysF^ z2;ST38KrN<1(0{SG?uE;<{Hi81{!PFs2dN!yW>lAG_1krXy+=^o5j0dR5ampk1Bcc zMjvH^{g99Tp*Ijrzfx0=rOi8*Tlmkqh%xN|6nynOnJhbq3MhB(@dsp_ou!Nf*oTK4 z*h^m1bQ=JF+}8t=5~EL5mC_4nP8zmYJGhC*DvoWlgZ5%frJ&dMk#H{gZbSsH zSPVZ3_&o13x^M`m-roK&llV}3!u$cjAuz#?$oAc1MVL8@+(X@lyh)kXD!c3|QhG@| zATkjadOJtHQe}J86uC*fX1xGHg%ctBQPp_=LZyeT&e!v@!)JayDiOdy{+sssAms@E37H)pVW z@l%a+JhYSA>=xGbh-cK6Zns^zpB+-KqK9epKNjNqcwSh9{H%3RPixtxYYDUkO9C#R ziS&yd-@}=6&~yUZt-Z-s4*8m$SSK>H<=eTzv?x8^W%y86JIOm^4N?J?RoDA2(okfnh%5_MSM-Uo{dQK{5N;!KKelD@S(S2(!#~~6p181Sa^$C*MEFZPV!~LzH z>tx**bB3@N|FHA4>4yaOI@qKD&{tA2_VHyGw}W+jvw3v{B%SAX^mLwEaz!;nFr%jWM-0M4iL+$xPT`$J?79 zL_@YNBKG3@b(InQa5MLvGQoWRdyL;2=Xx`MeEdcD%++V#!!(G}`%}0AYF;a#GYAj) zz?{tKi#GPB(CWF%_Tk%AU}QbLk~SFG$=R{imKO7z19%I=W}y243|$Nm5;FWp;`R+pVBGR2wg z&)3HtK!Xv)$XC|Ui7G3vI@Y)5b$~yE9XO5+>Y%-%PQ5+EaCH{oqPJWs)7W<`Nbv;4 ze-~s(ipo^#1;8EQo8>5YhwksL4J>}!SKI2uzF5_*AngH0HSb40xHbjY>tZ|d6EbJM z;H=uL`MW4q_^*7~Uj(hfB2`0hq1<#dBj9&oIF&BoO=H(lB3 zH2x4&<2x39^<~fGB`xinu*N~DdhfD5A=&vffn`$CLU-3y$>I-W23&OzFS&v!J$|a= zJH}1vT6N$&FpnK;JwEEyjHEyWh;VkUeS&Qo8XAnn`?Y=SbQ`&JfEK#HY;DePJ1+`7 z5k0dIZq{``!DhklIOgI-`5-@+mY5Gl3&hZ`8W%P6&dv4!42-==q`pY|wc=?(oGM|wfDvBLIn0$3^oG_+t`1Ndq*u!Y9JNLTE~jg&RyzCTTw zq!P>@v)gW(DuKmQ`sU>LOC|=>da5!0V9WKs`gImiuSDF-OVX_;X!_8_zjiHsMcMvz z|H2(z7!}f>OIn!;3-sQS8Rcdp5hQLwNq5N()I7n5BwLYJ$%IT*vMDvZ35OiBGXMe? z_sjreE>x9%!}qP~G%qk!0$ddcaLfx9Q0g^q&k5J1o+)$+(|~F7@C7* zUsip=I(z00k#b-Mo(J1hryr8ftl)mvM9nfqnVQ;t<`X%$a6;chZhkBL8D9iMY}$pE zMn%3sBqSiLvT~>Fa!`BQ|J#-e@glDI(S)aM0InJ?DKG;@(g&hSBjBurQj)D}qtZ`G zx%w-H_a!ywRbe!T7_pr7L3|uvnZ<_oP^s2x0PmJmV*cei0RQx(6ADDro z>W4pJ-j15Nf!zjBIG1&z=mu-ONJDY@;Mm*KN7p`HYuzH*bu$&~Jc4*~z3UAlm}GzV z?6+DqNuhPZ5fBgJX(J5V@g&bE$^|YqVH_AiXi=(&i#oaKqM_gt|Hj@q-V9gV@O}Yu zWDF#I_>8U#Y{AYfK-$p@GSpD9qWx&r>rR~*2Hm&HZ>L7CYNZ|FX6Qt>Xa?|v-uSM+ z@fANPg^Og7NQeer^$tA92$NI*pGv7NGt2#U2eo{aCa-lE#kTDW(_~WaBbx%q9ROM+ zxLerZrSS>qd@{xt_Dl3Fh#C+NUi+;_=K67HQ1@fY zfZs3C5k`v^=XZUzefo?w$VT1Z*j64vIL8XGMAtuxQw84IN?>=`j}eZ2uRq}%^oxiG zh7zxaN;hC*-6)oXY5D&Aa}GZSLb7N7`52vc)PPZj8#{p=jF01 zN==wKLF>hDCd+V$YF4(;Vgwd1E^3aWA#?mk9=;?xtrCWw{Rej`M@2;A3j@ZbK@-O3`2}qu~M=#5Nkpa{yjCYzd{pvLD#LNQ$k!t#su)@>ixj ze%a@+Me5`kN1$QSy+X4}hrxxotWvy@V*&C9b&NK_ridafdJMW?alc}aK+SyQq^!A4 zJx^DPhb>4>{nn>+=;olDUCR9``_px77WC_Ixtx&#?1XLVTct6DSt~014vIKv?T!S4 z8=2Q1_F|Sv`a?LDcv+Qwm>3m`&fcW>f=}o7G{Om>-CvsG*xREDhX^o@-n@m6_C53Q zBVyX2Q)2j1SjLdbHoT{mN2qdv6*&;mZc*-=Qil3X#j)S_o7hGIJ6h&25CE24iTl+O z;AK5(TWfxZ%onjyj7r0DXPNpHKs>h-PC$=DQNX+ zi+;1VHaOT+Z_N(}7TGsgO}=6Uf-&UAv4S)L9Et#9Rp%tOu)lx@vs4g-U_RzQavi%j z8Nv+xST7~hnC08sXnbsqM1qUmA-eu@sk-22cW%dAITt>gm%ge#93SRVFR%4M=#{Ug z<|7XsVV<~=hE(Kid2Z;)!Pp^Eo-ZN(I$@OQ#iR18X&3tjN;x{bT9WV>A|k#?i04)X zAB>!z(}0vY$=beh$(bVmW9XMcTt&h?xq$$|lg!^J*|~#t6$L-^jej!?hMx^UV6KMN z83D2_1;-p~j^1Hi$~^UE7wOb3%>ml%wnfZBtc|cLGb<%c(d~#3oD+Qdt_nkvF_4;J zsJjf724?Yn(O1AG2U5)%3<^^M@TF}})_yz5wZ)66H(`XSs!!axC!(qb|lep#*# zut`pwAaV=`^L)A#ox=Yo>6aMB?*rWRdbp!lvejcPkgpPi>d?`Ka1|k41R{@CXHU_En48ygav~ETtH0)9VJ6?l)(|OwA@Y;~) zRznse^x|EXu_wm!2mFousstS6XrKwn1`zD@hr9F3(w;95E(RuQPU$P%@J$s;UxMnI z_-#92SN=D|yl+EYRsU^e7_G4AY8XP{)#34s4)+N>Z=Z&ar$^>h|CVutDM(K-5z(TjLJb@T~RfYFkRPKI`%~|MpCMA!2 zT%wfYyA^ZF>zE6Eh?FuEI(jV`VJ?RN{Ba%^ozRW_EeNQd)0lG^4jW9KdEN$RpjR5Z z1!B)%EadOH>)G8*6OQ;GL&W-K3U(jMAl?6D8IoLDsgCeFfi1s;H!I z#aQ>Gq*c8lVk`tKLE#Nqz1D!~KfSG_kDRETPiD2If_BWDd-Cjoz7{0qb_Kw25cu&(rp0UWwH8&( z?2SS4p|Xwb_W*%4$n$TN$(007_W)8`s8#c=|H{?=&*wojR-Oa+l;^}i-NjEM@j95H z$Y@526Cv42_(29%1i$xm(5ba+ujU7Dp_&l!>1Nl?)3b5%>PoK23@T6_6+5MoBqdr6 zX6fMs>`Zt!8s%%78RJK6!+B|)n(3iIz`FeW^^k?a$ycxs{M@)E@0?07maY+D*!c=* z7*F*NJ9u0+b_8mFO3H?A7Qoe$xmAzoeymfIf`$0BII8(|2khh;OL$i2O{pf6#nYjB z596~9yz;~wy8NKG82Mz+HYGMb4U4WS;dyu57zC1D%H5%eD#bwZb;A4|K(z1Of&@c% z7B~LMtAw5f5Pr9c)2_*`09pfSs%!-7o7c@s1Q1AaLJ-R$|u1jt$P}2qo9R*te??$KmkyKep{Tw!suZC%H_gPg}z#D+jLhV8wddTi#&R(77 z?$CvCYcZt)J9B|0Bd?RO1-mS94McSj`WzUD5Yt4z@?<)Q#>NzR4^-`jd&x^t0sSW5q=fcxUq^k%fv~#*EN5c1p?|0vSOzWzQFRsl`QgEF^n#|5I&y+dRH<>|+GM zy?ch?%;_0-ff*ZrYay55s}1KErGT1aB^_E+2xRE}oHLr99vdHrLXmdEx4o#qbn4Vg z+o2s#X1~sko)#XUSf^=66~!W3GQDw!611~w!6>MTDrLh0k{v87j46y8a=)J+JQg7t zI~q@JJM{ojj5+K%#?-uNbxvj~>1qmEhtz+l;w-Tk0XCRTme~{HR#bBY*Qe@&Kkzwn zYmr8v&Zqjkt!w)}%rSERn$7!4Xoov(7Q%<4OlWhlUC(>IKfsy0k|_2GV!J&HG3NeF zcQnbk1>HyCkb2z2vb6(;m;nf0d*JGywcuKHpvOCR95tTUKndgPCy6W1^??-a46QRp;U~zghR9=HPQss&l z0X07~pv`*JpyC%Hk1mfm&9tbt+m91LhT6us_S2agSULIQeWq&Ore5DG$XTr{j&FZ4*N@mh8}TfHy6L z@RKiC)7xHyj24vShT9um2o}nJD}qkx@4(|~nCs2w(te)Tjz9LtN;z9nUjl6EozqX= zz@2mJ zVOUj)9ODn`uf6*0?!~uuW>rUxmfWiP&hx;&1xAMNI5b)K1@S!PxMx|8;r4O-6H`-Q z7lW%#`TJFgCHu}`@{VLy?%redcB|97s6f4quo6G~#>m>H%HtUT>yZxZL9!tK%aR1k zdQ68rxAR1QVr)hrs!IeniRI;^SosEkq~S5GO3ZKd@?<7cc^FBy%Fr48^AQTL`;`zO zi+9I7Xg3^$k)eVFHXkHKuem$=lM5l6F82VaVNp3UtQ~KPF|&?X91D`h!PbX37r>*A z6}-fM+IX#S*9WqTBYOyBliek+{)D;iD~;2NWMAZDWd$B?1+9EVL#WWeOE1ABz=?RX z=6YY5GPzjdCqOh7P#m!L&laNsI~@ZnA65MjdDtw19c}y4v$cs($k4I$SvnFb-1QZlbO>HR zWxIiK%d+0|IdU=9z_ppAXg{~#wrhoHUnvNC%rA&>GihVaQqzc}?!Cw#`HT!wo29U7 za~5}Cikz(Z#aoyDBw+B+$RXPdO^&PiwZ6$)2*rf5^S?9Gj>4#sB1u#FC`+k~}Ew zwvg+Np2r9z;F~v}blBT9Zpt;1=!UmUuqjREpy)q`YkJpwsh?6y|A_J{D_*=M07`kP zV%eyG7-$7~y~Vy-_5Mwe6))qGQT4eJD8(6|5(AR$BQ&D+p4Kp-4sr`oA#5dD~yEU`ZixBEDqTvLmD0;$qW5d(#@w4+ER9K@}QC|`K?H)JSo>!s zF=m;4_@MH>75n$0+8aB*tnu!JMh_-LBzbKX6|aaOT$((Po^W>;3?ky}W@hT^ub$Pw zvxa)6BPxj)Vd_!d*wD~*yK%dq;K%b_Q7%J>8x8`w^tD+(1j!-3&|d5{R|_mq$cLLc zHCvrFsXs9Awil-kTKxuE?3K#;$+Cw^@MyNBT0(AUDEzqZB7K(~@XV=qlf^p0VgwO?wa?%h z_=m4IhL+d4MX5yXK@L(Mb@RzqodvLD0_X7>Cb2u6R!%&t_Gp3DL{!Su$cT?KNWJLe zZXO#_GR_DvfT&Xi@iwJrecdjF0v-4)y``p+rgbM00Cu_r)*y&Yp8A7YPKGLN2_E*t z(pE@6m7`MK(ty@l^fAix`ZGQ@kd*VNrG&pX7`T)2u}_R!K)B3`Bc^)qk?H{=sL9*m z4F2xm8L7?0U|;A}OFjT?yShsAoh&?Vdjx@euXVBr2w&BH0C~`kL1)u{nC9a%{iKeG z9sv?X`kXlx!OMoSMF8-pm1$h~#m~>*K$su|GM25L22^+#E2Yq+dy_Qv`6zN|ib~0t zi$M!$`VV}?ZU7u`uWS+y?g00nzZo(X(@`a0N!pK~-DMlF_wZ@gI)#SPLLd}HTI@S; zNl%}OhjXgqbva^!dwoCEP=9*-iKyjOq3y-i_Gg{D6JQ#S}`hF1IM?|<=)ht_7^enpJHOo#>M?^f0+ ze^Ls61gY=pQfb?_5hkCd+oUa@^20*Rc4v>g(K{5R>`@@ki&!GEu)gHzZ7{ttK*D@u zf;QfO2ok_SAZ{QjV`m61L?QGF1(F`0hfwmn=IeB~x{s_nzp!-EOLmeBnA7r9xi=fs(h*7kmnkbeugZh!5!X z9WdGeDNu?$D@w7s^y{AVat|q5Q}n~N6>~q+w)J?LjU{c&e=X({zoJB|32L?C-Z-# z8~&dkQuvC6mE&K}qgmAGv!UQbY2KzkgJrbL;Lr!BT|Xmt+)KChaCP?LPBAzBVOG+W%-+sY?_mT8O#`&l{6!{Rf)27@*$h!8)G*$lC}>kTpAKq@(d1Q zI8=3LOJ&{~6pll?53rSfgLdSUK`)kn|Ls6!as z?A!9@OoVCK@>VSm2j93AfAfm1Qgqk9Z1#E9FoZDN>4O_Gkb_o+pu^{%P7)&IZcg6kZP836Glf;rG z>^P4xBDA9F`RFXtCc=g^sO*c&U<%gvs@1|mv`Z=rLce{x>wni)nPr1I?<9hO$ag+h zYjNR%8HQnjaKud}^1k+I_DJcxV5^RlgJ$%_&qD^~@m~` z4sIH2jJ<6UBI%!He||pFjF^tVlY_eRTxU${_>-ly0WO_Fo*=Gu*=b`HsHqcq~7 zCXzBMF`TF_k)wv?Q(t1Tdp|cS=ioVl{QTE>(oqAYu93>z8v)!iJi$0WPghsWkgZwS zPt#vfbU5c8)7MYi{Gf9BOlT#Nhu-;7c88L4;qfK{t&MlWaq1H*EBcqLDcK(iICgI? zQWI_17j5anQ+^#rOMhdsC4?u}Z`%uObF6I9enf)qm=ksJ`yTazhBu^e+(N5A-0f4S zu3ZkvLfOM|^Bh7K%;@HcHW5WeJT;G0tlt?t`g#Lv|HccorZ3j)gglhTB0lOX*mCbb zZ(>BNj#fB&PKwFJ^AxiRB|5vccn;a?O#hA#EmYa?QL0vhwRFVJ=2mG|D40wvV5a*J zi*l@c9H{fXo$%>HnJ=Yf|L`xBgaKpg*Kip4B(!? zC`li>Z}f)gWtwsQA4o>l|B#IT2gisp|NAjw9RH7x5o7*8K1Pg%o%27XUO!m$v{Kz9 z{(c;kQ9*+@*S4`{#7QCbXj*ct#A?)lm4yP0by+CI@x+bNhA!U^XJO8OppXW?#DvgS zjz>ft9z{Y~Y5C)aHQMH7OGZ{xjpk}a^78+~KRM_T)1edIhGO6t!@+cq2{D8&g+$X3@ z_!0O>`ZXJNn$~h18PSK#=W8JnRzDcg4Ll``-`w|`&xcY8co)?28Wvp^=8EQZ{7i6` z;o)JzonrW@)54UWc)4_V&xxJ&mz<)%6yR zFDpZW8`qKukwmX2$rsVtQ|gockYgNtd}wM|6taymG9|3phw zCK-E}wwcHOxW1)NHep)@^zbxJB(HAGWTsr1OD zFG+QOf!Uvsic&-<@(+`puz_P1Kfi9f+?OLB(|w}fBFbW{z^msTqOd+z*Sl75<0Qs;IUETiGQcw@`3 zFV*VBRmGtEYE+f4GLH(=q;=#*QsaD;Q=}+yM-Gd$#=YZ5ZBb$`{gPHK-k|)(H(ltTxf8`8aH8y0Dk+W_VPyV zfFm7MO^9V^4>1!x@#NFD@rzY8wWU_2j<1dnx=geF=R@!RlDK~vy@~mMIePM+rtKe& z_W4UV#!*7G=)l>Cbqf?5@?%d9o#oR|K6 zf+US+MjDIhhM9|@5+q;C%eG&+zj~$4*SO#BfQ{+gHTk5d|IY|5Ff{yj*;JcL+`6Ok z&{6Q(Pkq*krc9+%?YOp8(EW&9C#@V8)3U48{8m-6ItZK92IQhw^SBqJY9;pKZ*Dy( z`GAdiFu&MS@Lwri{*A>ZTq+9}a(cD~UOEldUO+@vueB?a@qH;`=+nwEG%UHavv;?6 zz{18f@ABT;f7s0Z!yQ!JzoSpH3v>B;t@8KneOAapmzc(}&q->I9F~~&F6kYsD@nzuLLy>08R)jg7i;V`KgbUVHanKhLt(?B4wFAOFe`&%}?f#+jeU zMK70w7QtC*613d)|{1eV`SJ2sx_%3Ymrk9TnCKj=9XKCDh;wiQ`% zU}@03D7sv@?nX8JuyGyM42mHsXRq~GAui=FPP8uy39ei#`hu2%R%H8iY59YCV@UAD z!QuM<3wk04XSp04b3%ga*PHTw_a%p{z}q&6<4 zlo0#+zw39*SI&y_nT3tq@Wtd^y@}+RI&A4{bjDlt7g>edslEQU4Nmj7L)p3CS`Y6y zaXz5-g(w&Jy+hM}cx!li$kfE#7E;S$E%58M6X$+SP{z|%qC+`&@XM@n3}WOKo%D$s zCA;+na&x4=szJV6!_V1laZhv0uDd=}kJU6P>Z_ZfP_2@krPEH3+=nU7hxukyr)MyDPM;OK z*e=$P5&Rh^)a;gr)y}xo8ukVQaZI-R_lipECm$Ba&gWC+18uu3k!*=Fy$2j^Jl6v| z1HUz9{XWG#yth$Wr>e^Cn3isdo2YYj#0mQ4d46c%o>}KOTkITU(n(&k1yp0^zGf~q zMs97dHuRV;99h@&zxXGwD>vwLmlZWXx3UzNJ921yI($l{F0tTo;wiSl%f*&o_E^%x z{XoTWNL_n&Z{OF7iLd%EvXGMfo0E!!nI;af3W0wDnD?;TaE&tm1ErVkKa}48#py$w zP~G_d==7m~Q;U(w(}!4I{eMo-fuanESyo;?sH^Gqj(FKiU5|Og9?XFd-PU&|7~l z|Ni}R!^f0H@HV2ZuI^0?)v5+CAR=_!-`z;O6j_aw6h7%}@w_>L+658(Bq<24p2G`( z>+i__Qq;d({!6L3gT8SaV9ZVQ7$OEt(UEwJGLdcV_LA5>l0cI` z1i@;{l3I8*%VO(hkQczJUH8T`Q&a1~zilw;Vb$mFtuT|Bj8~b(2)Q54=k_4 z&qf|0oh&!QBTKQ987XGnLFu_xk60HMVA&r~NO=s&=rA)F96S<0j9+&{i8qULnt{W7 zjukd8{VMSpynJLvy}=B(pE3eO#J`ztd{r<*1rvjoD4F@V%4 z3T1-!bG{G+U&x_REq(7$}`E z5R7Nqi$fi#G?R~^!(eqh$!w};6YZa$zFD3Mal05&f9e(Ly$-KhwmJFdnE}gNyh?9r zBGBPbGDOycKu`Vi<0Ff{$&8Q+$3Ly{_sd4~T&*&Sc*1l(thcW-Y{oRy@m6)N{{GZ3(wqtFo zSCXlWwgZwdpi7@SofG<%jxL)DK}Q{Mav+)?K3Q+Z|L5a8Le{jJQ##A`&-}Nip9}rgj~GWRdfcX480?Jm zXR1osn&7on@BToUHx(=VGiANW3=D zf4jHhM^4%{`WQmO0!BEF1Mkv5^We2hqi9!G7K$Y zl{g6UEb=Q^AVEAea90fJKh+0(nNnp3ynuOKf6OmB-d%S5H0X+)krDL?0p!uh2h#u! zdnYS5R`R${*h+{?ZU_kS1FRB+808N!IvyT;Xl#&6z1Co~>T=Ck3lTf9kZ4t`3qD`q z30om!{SmmbF9oJV+f!Qjm`?rnvLF;J4G081z{&tdZSwKb>yWl|W<28VdzLd*;0M7Q zL?Lcxd=JVI3VWN%&GG`p{W1O{h|8ReX}y)rD)V11_)z!C zPUv^1;;Q|_rQZSVZ3P7ahgKK6KwVZq&Z4n!ye1|qc30TULoE@Jt_ zQ9f~05e7P8vPQq+!-v~$>+i!tizgyCFoft}y%a+-VuF@uCuS<9nkyasu`41HI!~FC zgH6KNsKguKH?jWwCYtJZg6$T7iuV;ZH`ee%8Rr*pCi75X@cnswSEr&gIUHC;z+-)d z)?o3t40o<2%}klD@&U&_eZ@Swr5T^LYy}&XD`W=b z16y(PCj)Mrzb(!PT<3C9bRm900Datx&#d)(quc)IrHUD}&HgxF49;hUI;f)`(V{}D zirtaX*c(;X3>RHShko#hIT0Uoi|P_SC<01`4~9V%v!{4*+^#5a(t<8W2<98L6iNk; zpn`1pM2z&r|Ca#?wC{bQlFTeq5i*6nz8Ji3tG9yh(FDkB2PnnugP6_N`u&(hJ&V;X zXP?zuZ1;%}x?%qtQ(qaD)$>J*futZE(%qnRE8QiHba!`(0@BhA($XN^4br}JcXxN( zdHwzGbMN;P6MNQPd(E12BL2Mt=Gpr(E4vMZ)v-=$*GX6Wq5T6(ROi=;Uk?+tSVVC^ zD?hloXNlXQl-_A+Wt<%8PGaYYHal4B=MQ^L-FAve|2T*X(fK#%>%lNJf(JzPN4(|5k2R`W&ug6U)&_3y_HM_ z#_#P_rA;&UHWN|46IC=(UcQ))Vl2<~a^Vby+$FBS^js=IL7j!1W_c4fYbRaKcg$s2 z1JlvYY0?*x&tc|;;Y`y>aGI&53kTU6O^i#g&wD10aAY-p0Fh~OwybFGE7gR4pW`w5 zlm~5Kcp!j@XzB)k7Wp??bh9lb+!uGEN#^eg^`9uvLLWU87t5X;m%qsOKiP-#2~xg? zUxbf0)R1GqUSUP>3CBF#h^(q&BQS$`BbL5Bo|HbL6q8U~Z&9;GpCUx(ejBpG*<5{8 zdJ&|1C#q;s74pQ~-|^ca_LJWdS+`zoS2;SOX-n>}U+@5l0yl$gnkgmjcrq51vN^{r zRo5lNY$toa4W#R`ul3YkmFjq2SMP<8sVKFGBL>ENy4Lg0PfZiy(TsjGv&{9}F9tWB z+};26@P`v)OXJNhvL6?tue=ISZ8sh}WPwk4b*u;K64eH|kq{@ANW z{gNu`xnGfcmSr134m2!$cF%ULth=fm)9?q=-jVKpL2{V7FWb)?p(ASH(j8ozObBRt zm#;hetO<`cH5mRo8qBg%`t~H8WjaavLss6BM5~iC6QxUyudBU{fn~-?uC=pdl(=sr zOH3_ucxAZv9~u$FV_AR|$7GZ7)c&rSJ+_uS0?f9J?miwS{j}el-w7sqzVZd@6&xZ{i3mSj3f~&*Fep;KJS6 zU(DXcgus>@R^Zn%sgV-Qv3olF?jyqLO-c2_i+FZ=N19;XDH$mSpY_#y+F&$G0j46W zowY5?u19_7;`;c5dK zCL-8UU||rpyXiREd>4}-FKw~I-g0a0?GSq!??`pFMaeoXh|Kp@2NCAjC;iO_oZA82 ziRw%Isp7$?Pm4?Pdx4cy+ARD#7YDrp{9e&&W%!1~&>`~b!)Sg*x*q%xzCcXKRbg@Y z&3~Lm_ueZ?!b#r#GW9%>nnUeCU@}K17-)P}c z7pB>KY3JD*g<6(YV?!KRkOOVem$9N+T=&+1T2>U!tKzviubblWj$nw-wR12&tR&V8 zs@sU_AZMy%RB@R9y6|NHEV#y=~sa#4DY* zaq7p2P*}Hf@92PEtG?fByv<{J04-8}-zrz0!OMM_ZamYt+xU3t?%dW(s37;urn3PP z2H3{4?M_8zf)}q`IJNo6-CaDwo_y~DSfk}HaUYwrNx7BWA2ec~@`;zgs|!n0pfA*t<+CvEuDr&A!*6`y#`gDL?p|)?%fwMg|7Eq~ zX==I_;-BM=SMkN0>b=zcx-l%RVt=C`9VHsIUX;IB0F*2G9qq_e{WyJT9wqoY^F7aJ zkGm{dFE;`F-1B-B)*SSc-RdA7=R7|?IE>C^M-*r$v|dno_z@3KyA5dZ;_vb}T`>$$ zT{)!l<*w6gRI14xO{N^FyK<3aOB3LT8UEuBZTap()Wv*?bBj+sSFgL>XKy~Ox?glT zM6*SHPSqWo^nIc>MtKIDw$I2VVddApO3z07IY1<|Kxcshz~D@J7}%?q-9iXoQ6 ziQ6N(;gbKNdeM}HwPOI|g0Nw#W{SCAPCYTLZENeMF(9d=xd*4Ec+3Jb)B*kB(i880 z8Q=_cxU&roCM<^fHVpeqGfi?elNAd*YQ}$=o|>k!d8`$lp^(c5_ObbY&>gjX?eTK(}B z9ovNZ-Ukv}R>-R}ueuea8-yrphX8U*o4I?I8uK9E$K;Dho8labEYEmjxTzn#EP^Sl zD@Kv+4eFvft07qk0uS2Q$**J9s-R^HH=`>X&oa~n_e4lU; zj%oEJUdBUKU{k!~Z?C#oE-G(7X|Rr91lNO!nl*m8`?Kxo&Z@eKc?`mi#k@RrpfG@R z;%vxIh!x-HYIOGrEIp8+6g&sZ8peG!|BkGezokHm0jq# z(*MF~cmpJKjkY4xstdfQM`LS!&GBy5Pv5R~N7p)@Tr}DNv}Fj;v5yJt$hGC5LV@oD zA~b?ANgDY-zD19X;0RX?Q0%H~kpJ)a*`FRnT?W;UK2+R(TpDe7i6_tAG`MF;|8@7D zcFJ+yf(-Lwo92qp!`{D7*fiJj2rKh)WTRDbpYum9d-6i+ln;Cpo zEiagl>lBSZ){i8M71AMK34&w9x+Ezb9~_)5TwWT|P31l@Dq9&Md@UJ;ScZC%h^I;_ zngfGM79cEv4%6{r_%reA=CdtW0SzTlowejRf5KDTN%$tuo$*V7u_dWO4E7L!Fgo`u z*!UZm%a|v))a&J~Wc)Djfg0PLYf!FL#P7UUA2Vj4oH_a-_B(Mig&;ZU{bFR~c-4jH z3H2C5Z&vE_)SEXRMB#*DZ(x>LV}8!1rSXi7X%(JDv#SlsAr;iJf0hGjIqdD?yl3xh zXPK_sKI0I`mlvgoGi(2X`5VPEw|!7&aDyGT%S(lZpTr>L+$kD{LHfzVC)80W z(#V&s5d=qV`L9XT6B+!&F-NQlb~s0wwbP`7g}n(|<6!%!J;Tau1>*r9Hh(li^-Z>Z zVv!Tee1>2n8e&iW{Qb)hEM%so3ccN}1v}G95SO$2^TC(wi)Q`=A@Mq$tu4Iq1i7CD zhQ=7x`+CL1^xKW?=m92>B$?^QE1u&s$lH`ANB?Yj9F%lRI1nL&G!Hn=-pNE-70Z18 zfg>Ao!lJbNqhtCF_cNhT1ti+^CC#zy+G35QwKxlr_8(GR@}D`Z0sD|ACM-DmyAtyP znkCr%8FH>$4#)GzOQwcW5=$nQ8HuQbNWEPqoVY1lybm&UP%l4haal%DMNmWW39Fv6 z+`q_w6mO@OQ%yDksdZ)Fsi_-5WL|LWxp{pwlE(z`^`l`~PvJrg}NL;i>fPcd=>P!Yokr z?3hA{#owLr73VIJG|@t53`i=QV~FXhXB3PDveq0|7h@qGv&1yY)G zSB$+sf-J`!c2kS5OX3b}B6a^x9&`d40$xfgBauxMl;SygVBO-SYO&H~)>K&v-g=48 z(74OH@QCm)9r^vBO2mQeXTVyX`+8Un+rw zqC2m8B`P|1!;OGciE(Um+i_28PnQIWZA%D6LIR4RdW11|h5ENncn}C3rY8Qs!~EHN zmzKuPdoEv{p4;;AK7hjJMD_N&5FIx&uRcIC;siNoLwU8+XP>@TU_gtSZ$dfn9ZVtG z7ij=>%y&m)UY+lrRVro0xeqKeSce431fF?yQ0?7kIyG4S#~0KHBzE^lu{MXJg0r*vnO5+mFp^SaaoHl-lR^2)JoRv7wofkXLxjEt|~?8$~4^Iq>4z{ zBl}%9F0Z}N$*zP zH;MCA*;#aaqMQKjV-iP9M(Wgpf|q|+23G0rth2nYj(2%Iwbt7cP%o4&7PV!JBU(Jh z)-lt~+6ek0Zb+5AsG)#DS^H||=SZLIjS1U5!C7Cj&!qLH8kYfMF_hD~Ay=Sbx~kPj zJd@5f^wJ5xQ=Jvrn_8j$VI$~;t%1*&*W-wvR6@)qRgjAA z`Z{sv=e*1#8%Ph4D5=+Z4Thp0qtBKCCTR6iCEjtdCsoEppr#b?oqmj1vtxVqeE2B< z6M4YfVf$qt#tX5{{uvCLBteZ5_{^FRC8`R}zu79_*EfIjLqJ18!3E+ifeiKrxtxJo zj9c`NqxJifzw;~%MtZC~etwnL-nZLPYt5}*jz=++6CgZmZBre4SBro2W5lXso~*$< ztIv#9M%z~jS(nmDEnArTI{~qEU>wNGe%|vPQ|^+-j)N-#CUa60!mj7zCfqG+d$c#2 zMBGAiL_CFQLiI~{*DPlLO+hS*wd~9%(elV^%q{aic5i9Xq9S{2YLdFY()y7o@NZz6 zHZp_|lZ~eity@+zc%}O_eFa=sXSKGN`o;qF1ark`3G02niZFyApdKnmVHfpFPyXPX z>X!JT_2T+B9}wAM;^PBfyk53s*o)lBhD&M4cx=im73QSo-yH7Nh*|9rJ~N}wiH2-) zNfdiyjWRWJyUpo>O3<|B7x!%GfL+5@u!;KUau+-oSpX7Rd#?PTp0AjqA{q*tU)hZZ zOJnxZ`D)GV$iQ3`es@fQEH5X$fYA|gta=V!rO~(O?*|jfACu{ZM`XQxEUhKo_iWMM zr!_Cn@z5DzlEIP%a5j*^kd%AXsw4(fL^w6IJm3!5ai+5G;F!uGZivE*#Vc@8ROg30 zb7Tn&Nwk~6i!lUBRkQWSz_YJh>yBi=GL1{tov5L|oy2N2Ndu~#V;UuvFlL|qbVF@` znl{_xBN^zfcQ>DuvQE98Z&dL6vTh$Xh#O=5@4@NX+-B4mpp znvy*?cnKq~J|%p7xidX$3EDlRHbGbb={GG+J=`T5@@Er62oTPhAS#Fk!TZs*gpZS6 zhcYHMwwi~SmL(Fi+=I%Gge*XsCZIW z!LSAXMjGk5m$9UIr+rWW_!N#0$6DCAI>FpWG(=NrnwK$jAyhqGfdf+gTH4<+*>I>j zgJ40z_K)A9|BS~t2m}R?BSa)cTD241C-xD{EK!hNN+orj5qCIzZjC~TS7SsAjo&n% zIu}2ZDTxIZ`PC(xx5k8vxqcz5uKat9P6zaT;y|D-wSPByj&Wc@Dr&gZ#;RrELc9l# z$hJDj>SvBsKV){spd$u#Y+&MGbG)G_Afs1IBf@E^FP`X=Kr^Aw|M6XMFcc~){^_V= z^^7%{e!8o91nPrB!F5EpM#7L(W*6>`U0Wx3#yEwFUFzcC@zcf}CzbccUN&{ZYg&jL z)^0K$N35Cl|?M`Q|5q9f*_-r2Jwnk!Uo z#*oDYm@5MKmn*fFs3aILz!HH50SB^WNuc9J<0ZkK#r~+S2HP_@J2p9+^%c@ndd&9n zKy~|;crU#|&AYUF52Vlt#DDi3hI!8#e)u`Nn9RqY zs?OFQ!XbVA@-H^&2zu+$Xa(kdQ_(}2l9K#iZ2u^erU73|6;Y&X$qzBUkzDW?STtN1 z_Ifu|KCO%nji=z5i}xXb)z7TNY;93w(T$xfEHHx*&P5csdOI}meS+o}`c{tsmydET1LlJQCOqlJ-DPDft_>VNU~u`^tnV>2S6ry(jxif*$v{Ih{HmI2z4 z60Exvz{=*=+WAg-_N|F)#RWLTjL_kKP8Di7WeFZD3Bg30WiBG#l9DK(s14PvEyA2WIc@mKV8ONdmexG6xQ>(F(P0|2440GSpxehP z^%QN@QgB8Ql#dMb65r`@yK?+|1{!%xpMXgFC(fI2GlC~eRpI^OQQ60I{n!xk0y0&` zj2NObcX#@|uG_>!sSvP!n#7pKis_38kGLl%#&dPq-#UuRcaETkK$JuQG00F>Of9qC zVJEUV#Ji$bl=}j`V{`XSwfEt6hZPtHhm|#Zgl?K=5?P9;8wkvQq!gqmhZz*~KXSu@ zkvLA0-m^12{3XoCoM|UP8Ygl}u0mrR?U>)=t1%&9(~w&-7nGU$97K>?u(5WEK!cAi z>t+N>c0Aligl@9}f9f=Ppn^S!dGta)t@%*)2msvk%m3W)0X1>^buQ!9mcik+{CX_c zXF1rTGqrvSFLkaaGbJaPy1^t^IMradyj!*sO}@S+1zQrWb!@v8HpH6| zk0MkEhX9YrFqMp#l>#Iv0NW+9IOLu&#N|X>!}t!y_I~v~1T&G>W7b%XB1BmV_GXj~ zu|NpFT)6^NT#xhb7gy(}_g{eVy6(>1$xh_uiPZz>8ghb zwN<`#$XFr-XxdR?k_TIn^Zx#T>;TeEPFI#a&Q{MZ6#v`uCEB^zy<<1(F76_?^35D# z*fV{cF>DY5I+f9Kqi=og)-s-)N&l#d#EtAX1bz1I@AMwq)13l(V1}{DtC1ylQuz_Xa z_Gk*8??Q*96F|-K+@>KtlOA>IuY9Bd>i&*+Q3h@XxbciXC}6xo=HI4%_O*NP86>2{ z`BnaxHWQa#1vyc}S35Of!xE}(%*~?QNnxRANaXw=Q-Xh}+`4onlZ3eriqQu1W3cBtf`3)*qP@amFXlM#J!g6 zyA)xsLo=EL1+JDB=`IMJMy)P@j`YhC!f-A6x!&o5;lXlvFJNwBcGS;SQ$v2h2j92_ zTcU0Ja;h^2rAHQr@8`WB>p%Dv*2!`Z4!~^WTq?iQyLA4QNKlrZjH{?L$s?9i&O$(z zQ69|C8w3e}U0#z|`AiDC86ig3w}7EW(OW}H<_Um8U= zbs?@EA$&a}%da4`5)B_g z+5!e>qv>i?Yr-!f-SJ?99OexS6}9ThqRP_DyfOR`6C$l@rd=qY?MnS#S7#uqy`k7O z3=v}a`p^mRrEMhDe57Q~l~0Z^#8Lc!5;M_$lL&94lg&lUL#9fKXL1^jhwk5XJ&ZZ! zBZSRWEbK3(x7iV672LXN9O~r-IATHJ#cA((P~el@eNYU{Ye4&B>x^g&U%!1AQVQN) z#p}y-u~UAJa9OqP$Ur|l6+M5fq7npb9k6B4Cuj6%uj~eSi#rP09MVY9G`U>hgcg4l z7r5@LmrO=@*FR*;i1HNo&!_=?Hs@N+x{%|)E7M23D&8Twe~sUuCN$eMKVav1bORes z(2?qFxZ6&g`g}JJ0X0}A2Xw%6#3O!XqVxfIQC#rF3f&=%t0#=o_mpKUnW z7TBAIq*4$M6FP%NKCHb73=@(R`5vMm!LR#dA!$Q)bM7Tz@C6Ym+~Hr`)Vx!zn^jqI zZ<@Pv6sN6#fA&0e<>po`7+(~UvmJf9@-`+KcL;2-KqDQScJhE<&gNz@jaTYa1o`<( zF87S%o;(8}+(w5D$X&knobLd-0=Tp(h;2cpYHh^=EDUMHPfc8|m~TD(izE)i6x@_O zYxOMrQ_&;m6EU@-f#l@JnIxVeUF(yP0OpkdEjL!*P~I+1N{p7~N}6`U;eX;$U`gly znrxASyHQxk3V9pp=6?9AdN!gX81?Wk4Xu2~_V4=~ov+4f-c#mL{_Ex_gjmoePnm6P zc6d>rO_wA>+nLI57b8Ita;o=GR3BqV7B>p;L6~@*cOV`=6NYqcRa8@$bQ$nxx&g-a09~7HO-Qu?BfGZqnaUqZ`;^X$3W6@Jk3dj$Yga z0e0nwV@I&XqBOk~p|hJ?pB*JdJ95PwuzcDH&PlkoRB*{RwpKKjjBu?pz-LGOLssEz zS>gx%!|g##W;PnENy3lzzuFt;iKMiW%P2E$7_suLWkL{Tp%4+~XhUzG8*kMfc z=mpIt`mP_25ztjSH<)}IMh%qR`|!h{Y{jpZJfOQh&PjMjvJCV~stX_X^yT#rO}Rd8 z-AyBnmYPy+wYf#XYj`>~=prU(>-9U zWRNXm!EkRDU?Tz1!M9RgIVIpa-pPcxS2#x}a{|*kFWNI$yS>4PcvorFgcCfN`L=JqXa6QCK4HVZH zg)k5daT4$L(LlIU)@#;+I7Vs^3+8+FMSnqAhSIS`3H*=1rLD_L*VW<}EzJ8RZ-4WM z>~v%r##i461_oj;ihnj!y~L!NpxW6{syK4K?lj^Y+LW&^x#ZwG&9_1ZquSGEAtTe z0A(?K0t~nITXUzy1sRW&5v1x zE=}{vLdu_qT%alEKB&8%J169CFy`0x)u5}#-WEg(WSE5V{o|eN*ZIYc;tO+NeceWb zV;rs3T(t#>&W592);lMQYYQHCt*J+FeQaGge$PFDcP1dy21v z6(mN|(ZLqa+Xut5z|YC$Q`}^*FJqozSmSzg8U=cz>nPW>I~0C32h zve7ZGSke3zkF}O`TI3Jy&UVHbE2{y!l!e_s`QW5lNGK|Jv9NHG$!(Y%)`uA+j=S(* z@u!nff+bU?507i_gRfWdhKC8OOB+f$Fj3*9DB#33$I91yDb3gJ_q%}d78oC7cn!$c z^>9adv&R&f|Ki~J_7KhV`TSq!x{|wy_!@>`*)SK6!(U>waRwo9FH0&C6g459@-9Z z>ix@RlEK^1Utgb%sk-n=A3~FZGSv#I<=?5*FOI5e-t_AK>v3Ku9oacS|X{Wm*7EmIobO^8%;z} zZU&d`PNMXAU;M=T3WD#iU_W|NdQCl^Wjj@Pb@}I`EIXe=n)=Otn$#Q;84AY8Vy+0K zKH&2_5~*DY9#RozeTlFE2HSyD>BEPep{hmGEz$w|>85eXuK}1qs~CFg3vOSIXkI4y zP(DUOV2HY221x?c#rx~Ynk8Ch?KV;+2+@af9O%V=9wgl!=68R+$+i7we# zhN~O-kdr=RF@&r;QX6v^)a!9Z03qN>QCug(RR)L~Sjs9sJ&nijW=6(Hd_f0}_G4lP z-J=uRbX=RH4D0yo+W7N)0w5m;INkD-A&{zz1=Pa)+^!}d0xi^JmaY`rO3q#(H$T7==di>4_ zNfr2ts)>t@bV#b?M|`;b8Td)3A#heYJcG+2Bx`{6O+O&Lp>rh{-_w=s$_irYS5t_- z6JUBfs|vw0N3JAO^0STdnBipZ)>Qx2*AdA5&Q%%Ek}rJENM*%>C&-8WuiQg7nV5~i9$QtlwA#>gU_ve+i{)fypHW>Q z@&utB5+oI(Qu}P54RPmBiIgqB>3i<4L`$E6gh%XEKJwifoKk6$?Q2FHb!RxhQ+Y);QB$>_0`sW%~( z`ZGwhJ&C;d5wt`w@3^+=mT+kiY z`F9}F=Z1%Hxm}gzf+rGJpDmX+(^C})&E|5VS_cnip!;5=R)M_-EV(e9#59&^gDA-^ zbwZS8%;g=zqFz0h#+4_?EKl7{YM<=_3pKEKEj{%=o~gem$?61iNzuNI$Mo^m5!3m-2?>v* z_C&rEm#{nPrCR_tdW4>aoVf1hsFx0}KrwP?o1vDGga#N$rNP8$=2LRg&&Mfd6X1N? zEWI5r(pk9JS&7jhC?{!c;5Fi4W*;jamayd+<#7N-CMLG^0wcl!onOTtnu^Wyb;fEe zl^;)aM{B>^FA?fuMus+B?dRvYIbipO*jXeQk5RtS)yFvQ_zU^=Gg=dx((Ini=p+yFej2JPv_G;AW~M z%g@R^BGx4&1OfKJa7#!8(e5FB(0)B$rjgyba76Fs;SR3#m)YHrJDw|!JS9Xwj9D&J z@nLPYqcK5_kr(25(dq*BQ}?@_Tj0L6xEIXSpj_R0_vS}}V9ESxgek`lV;Wv;Ai&JK z5~5LXbYOl9YzRSbM(lZzp&__e;m6Ua5@Gkd*Y0fYu3zp_z)5k@`HYHtY>x>$m?dZQwEo+)7r9RfixtGC?Z(%exz?tQRSV6+U(ln7mJ=OxzN zLe^kGFdC}2DrDBON-&F)b-LzF)br0!Isqvm?d*?lNm-no;@0z7DNF+ULQLLez|=fn zxZ_(-Qk&_xyj6DO?kN7XcCriecr%wOS)*};$Mt-^I0GmamIg2L++gY`rJQFCupFdL zw<&Md@g0Em_Ny9&LqOLt*q-4sZWDPsc(@*Xv?sT4dHAeAYQ{%-shflcGurso>#oXM2$6iUKfHP&ntooB(sVN&X4)WXQEsl z>)KID_t{WWiq_^z`z?sv9k~Yv;i?uAsZv{AElu9k1!W0WgeTZ@lea2OX64?@5M&PH z_5S^9Zg@cMdO5xx><;=KnbjR$@QX)Wd2ICJ56WEmz2RV{3~K&lIt%=leLw26@pEH4 z3g=*mVx+pF3di!|N_A4>@XCCS#~ki>cxtE+cR^L9hlw3{FrhVnT?!{y;^rv+!kk9X zTl9;o^z**grvQ3O!WlnXOD3zB-<*k16qGGfim{7MkC6`%qc3P%;`R*CGWRJz^ zMLl057%1~%`3*boeT#lIY<9rDczXHRIm8dl#h$6Gh6Ey#ALmYwh`RNaus z7D)$RaMVxp9muCFp^@+~ynE+47l_nJm8<`lalhKpZ8Mz~%r_Mkx%}yHLH#c%enNXjr9#)+tpMAl`WS4R0MQy%|)M7VOU#fcRF@}6a zg~ueaj}fdxziR}!11lbPb{lj&SRagy?|Me#zYg&OOSxm^YIn_ZXMjn^Xb#@x%%3cu z_J|W?7zH7BZTTBVi(J&IjMR~D2g5pH{e|28`hMT3Pj&2zq>F{iVg)opGRL6aM9i^=VOiNvVTqWeh>={Ll2rYH!FEV%p!QM(VZV8-(v3_CHM(; zW3-Z>#P@kq>B#medQt`v&rR26Vc*HhNNIBVn@spWW5bf8O*aEGNBdS@Yo3-@YlPCj z7Lkt!AD1gUO4Vyw%I=HG; zCw%l_3mHc4_rVvYJpz^)TZJTqU0|5!uPN9)NPFGNN58;vuOF<`C$#1FgI-6w@o@Me zC^B{XVWK_;$B6Q{A%V=Q3m(3Kz9}O01=GQVWW+u2Ft(m}cjE25i`3?kCH!mf!GXAW zW&a%Z(;D%N`VGiIz%2M!WmQOx*4yGvTQAJZYVL0`P5hz@^Hes6_>}5$@h7FGtVeSh3XKm|nPFI$d`FBr zi~0;xJC%03cB_;Y?6W#*o`9Km?aoM$aKtbCqHDTjq}^9mTDmi6(cOc!#MM}c%Dh*w zrXZRvK@wwzr~WH3;~F?1-`s7=%oFteQsX70WoutYiC)jrf4LVG)x)T}@P)%7$I~iWgW$ z{WD3|e(TigUT(z(CTWZ#FQn;QI^(pc$1~qZU}tM^_qh!>%|EmF5W+_2!$EBgEMvVK zDpB&>^%zTyeAJYhJC~?cBZ%Zvuvh)m3zLhsRj77s&O2C2Cs|f|Fuh?_G$-G)Wuw1o zis=W-z&t?}k7T`8pTL2FUZy0MH7(DlhRoF&`uxyNk@XXOBqIcwjP}#*o{;Lhh>>*6 zhw%+q^LH!H>fh9}t{Iv|x9J7BvYKSjOB>Z(;2o)ZUaN1ly`XoLbWF-%reoK7u1-IYW+jv%+aSXSz&(ns39{ zxUv3NM)9%=wC!0*8)>Erwt+fx@eG1C`q}5ALE{rTng1#~l?A4}uHuKoF;K15ABOXD zrpC$PKQzr=W`V5u*@STUmmvEGCjKp1SrW-CGo>oGbITu6REh(%FD+pnfwU`TtDPT_ zns~)DQfhIab=LYDxZE%bVlPv+GwI!tmU}8dr0WXOQ-9pO*b5yV{El?(q*1(w<912; zKCKLyd@#rr#HF> z)tObsAo~Zd<>iVjRx)_n%VlZ4o1D>Sg!`m0jezVIG?ny=7^jHjYF3;%-39PBqD6%h z5JIn5vwu>&mx9kPfpqXy)SnI!hQk&_jg%!v5#bC6)x0JX_0veGdas`Pnf8m<38>s3 z_8JW118;2guJtg+j4>}2HMox{hxqze*+Y;@@ z+M7adb8j(eE4RO8=0G=XdiW~5M10U>BzCIH+&@KgGkW1Kfu^@^Vq$M2NuR8rK~r$M zZ#QsiKI@sV)(gKXQZp+VhR( ziQtT=xjv`ZS=e0Kx>1e}Ez0zF7Kyo>M;L2Lk$%n#5*h`l;bYQp&hZ2s*1hC(X{{?M zC1DStKu!yefZtq+1Sg?dy^of`;TPbpw&meXQ}fRKj`>C8^moiB+&|oQM*uVgCY{%2 zb~s0_W{n{Fxd9ZjF?YswGJx~GXhFqZFQ$?-0BO%Kh0gb4_;J8A_wlv~`N*b2fFb6f z_-Nj)&KQ)A$r}#QWRG=DbT(2n@bKKeesV%@grfcQ-?L@=5w%rEL-G0-p=dq zW$HU(RX6arzW%B|4J?uFfS_v3eorV%PwE@!@Dd4WBheSyn%`UypK~snA|%W2sw~R$ z+|!XhjKZg6ce#1aJ)`_yiZ%|Hao;cLaIGgx!fPd5z?JXJ;+tFemW!nVtr9SktT-%gww4+g%?Y%Y&-%KLx>) zIn2($H=t(I9nnW`SN!ZyQHWSF!IXG0IN(NDL zbB1&|liuZFldG~l9oH5J(%h7!L-2DbJ6IIbjQw(Tj*_aynuqJPVE@62#(Kspr&`z) zSYViwk{sI4*Na6GvT;GEy$t;Prr}~z^SV_%lS&%<^KkU1@vNzW>``8*z5r$TV^zubHiFsHWzeT_hmjmAg;9@4f9QH4+ z%#2Ybarks>q@yoWT0^wXSH1@c0VFhxo&k1 z$$Ps#qvJc717%YS$~S;Z0ycH15zlX>%^bgW$>|hBaiZeP>yE!;ztXCeSkIul=T#P1 zhKdPu95mek*Wg?c0&MS`BN_L;OOrUVVfAKW@9UE#uWKhV+C`Qg6n9L4mr6F=*JdJ& zCXRsyX`|?rb8q5=1Fl*3hol%E=R+gZxqg8KvlJsjJjzOz;>E6MwehP4 zN&A(jCYQ;eyU3@ty#}CPh@y9bBY9n9kQ18+K;UJ?HMQ=-C|(vbNN8&ONR7cH#CnY*R!T9tPGp!@!hBODh71W}!Fr9J8j~f=>F2 zM__vp$fT{Ge@JJ&A`TQ>oP``82ZrQGbn|i!_DKgLHyDOWtO#QVva1(cU)k?bqi{Gs zopdUVuKI4wcBE27)pDBlF89ij@7~9CfKXcZE0ZP`HUR~haJ^H zy?`zj$}YpjJ>wwlz9;;aPAMyPqy%`t*A80~3>;EoUwOsw2OpTLe+@vbK|0}+`EjH+ zgH6~Ao#jwvO`M`Sd!O6(ymY{^wy4bWd z^mUFm5kwHnoTYIGWv2X+?nh=~m~CS& z4}>Jj%dtaVo$o{~$>CEf(&5oj!{{A97cE853_op0Is*r^M{EjqTx~L5GT$COuBkmP z$tfn99WXkU(Imgw55jywobDp6UPSr1>@7*(+M|3w^t|RmQ*bTgAG;%$y)o{rMSfej zS|mu4S^SwLFAT^LEcn6J6(L|s`f{%UZ>Xda)8+Q`r;hoP+FL#k61MJ=kCm$CxuCBO zE^+3YwiA&YyGpH&T#I0RaFo1pGC{Ta^1*&*9OU$dD}sAg@$trX1G~mI=nS~6PAvVj zdwiJZGB9nwTtDu~xb2i|$q0i56p@{#Hj;Ea6?&R0 zR4=xowC7O!ty(i{X~rTr3ZECw#=}$hfp%euiP?@>e){gXkDCN#n3OX>89hHfCgH=) z>5XB|3z$?JPYHvL4OHD&c_t~}$D=49JjnZMJ6kUG7Vkxco)I@zeW3ekiCJ1R z>>{12%D8ekLQ0#sj&O>h^M6?T%BZ@Uq+JL>5+p$b!QI_GxVyUtcXtTx!5xAJ2=4Cg z?(Pl&4i0yd_nmKM)_ix}`Egliadz+Br+2kfbyxM%RSjQfAIUGQ9^Xz5Mkx%vrF)2O z_E)Xp5+}aCKQLSy7ep6%2lnWvsm_Qr4IJ++u{!d$vyV>(&EN<5sh-vj}O6bV>6vl)90k&OF~!iOjB5n!*PG%5aYW#dD_4giS1?5u5kL>V!k8vzYI zPXb%BQ`8$`HQoK0pw*0g;J`bjXoSc8?}KQHITB}>)^?jeU9r3xB&nZT8=CPB%qCTs zuY`y9$j1ImAX76jb&xEp~x+6^bkQ+gy!rCTFZT7KiNP^DSi+4=!~Z zhm4b6b#zmC1KG2Xzfj`D(bUfnnGJCnVvQazNPu;N59`u`zMPl%_7kQ3tNk3%C3x&? zTZ2X#tc#YsAD;Q_F1(Kd7mS;f_=7|d4Ofs>ixNzZ7*DN_Ye_;#%)?=-YBPu#Nd?!q zyn&z1=Ha4lI*UK>7!D^rd|yz0&VOX|!vf=nZm88%Piid7df;tJ-8JeirLwW-l%16K zyk5Eo#C<-IU^6Hz`yD;ShEC%I^@d(u_W%yWz{iJF(U^Un1p~OMh+e78kB)#t3t*6M z$8MWZwMQxo$XG=17bU3q^^AwGfT9slmCN3Mt>K+CFjLwg;GQ+yY!O0|N1Ik`ls>=B z321oenw0sFshLpbxjT4(Ke>h#8r|7t^)5z8)S=us7$SnZ#B&xMu`q5l?PE=m3I9g- z{_xwHr7#&vBP2U$)ErE2lU@!_T!y8{ZS(^G9~P=OkkMw=yHj@jxbgta+k7IKnBSDS z4+N(MwT8xeI@1i?pSUJxP2IlB65SB1dwaLKYt`k83(dUvAhq2AIM4g4epO>X)t?!= z)y2Ks#sA%2umzK9T2%!T?2(L>{5Rk@;Tc#f$|NWPZikMxoln?juZx{;QcXcMIw%0f z7p{;H4Jo>_#p)dr;b+ckqAyq`hwSsyp5n$@GSnoR%1LNK3~%okxoMUu>sT%LH##di z@!x>)sxxy&2>Q>paylssFS{R;l<#(p091}$EeSa0iP?hI$HJFc;s;(;=T|BFs>lM4FOgN zT$Acql^B^XnG=mvpFiP$8e#B^psoJuTwe`Y~hMJhs>CMiX? zEaLpKmzqdSu>Vhyw_I*wUI!N$ydE|tQ@Fc*BK@X;o)!u-m}|I%_**;X?*XtAn_vev zIThTTaWz~NBAmv;qIFpr*Ya`>E8})YHTn#2IyL~gqy_OEBKZ6Zyae|fu(vff?AKA| zu(WOm4@+}69>8WvoA=B5jR>c=>ufHd42#O?(*lkZi8RXN0lWua#N-x$+manW0PZ#{7Su<8P1V<<|D&FV=8Pjej;0WR|Q2^w;eEqU2@H{LjtHVUtKu4X@9c*G9_4Vod z2f^8TJis!5+V989^Q{~3(8%8pzkWdZUX=z;0px*19>~(o9(lQ>0GvK}Y4vjA_a~6w zc@8DWab%pw;bR3nd$QFZiP;$22p-=>V{etUvXF8+Epzc@AQGbu5b3{S%EYGaDCEf_ zx*|mnb4P@<+Y%i0*r=_Awa} zyxq;N5W)~q#J6X8Pbb|68`rgXE<2(KUV`A6GP%&c*kUi4z>aMF@)uEWsuLTsW*5Xh z`ioh)o(?z;Kvf(;W)tAz3S{#!!T#M`+iQ~0MP|=V-9J% ze9jR3uMhGiKux72jM#n1HV~ae@`kYOeMnq`#%$rM_gDzrF>FPv95H%c zSZuwA$$u(_e*0Rn|FWfRwqL*}>!S<*7tg)S|McAZUxce*|3|nAdUiV6|M2uHVyEZ& zAKrT3v(X9~8CV+{$?Dlz+H-OJM+Q8$ze=*lqkp|{w6wCvW2I;R@55EFF){vYl%bO} zcSSTuoFMPuIwgF%vlPUGqJ9btGc)4i5OG%nUf&E5}ZJF`J`P9dE8X+&&z%#&vnE zhb}7u!w-Y+|M9PX!GaZ^k%u7X``%MxP;)?pjiP@W?VWLz8duV(*sgiWct_s-QP*hh zZfDc6b#ul$fdctY#jXn+_$(ENcLV(ZXk)r?)74ZOVqSzKShM=W zA=j99Zageb`EET&8?)s(HINgF1DXc&mN5{FvTYRejk;z?+7g+Lp=8%b-Mlsq1DNvt zaQyx7(f|3hX9HRP(Dc_WApJLu|I7$S#gW7K=Z6-u>6T*)Can`kkNa=nz?Gd|ld2w` zdj6zi3t-C6sS$%Olu4L2g}@#V`kP>iNeX{$&%bGZZaaJ&Zg`;G zhx>KKVSH2MGT?@j?i;VOSGw{k2zCQ!wPkTuEo(OI`x5Y0!)j|dZ_l8QtUSEA%kw-V z1w`yd)IhUgTee+&jt60Iht-xWN8q=Mi!A-NEW78IEUmTt>M(G65r1~R|6X?|n>#K= ziKH8Chh&V};61CQ^yW9{Uk=rMPiBhWAPR!TX#MqI$|onhJjixB#MhWxBxb*Qg}xT& zo^z1iM5BCTwuBZ=&W+{2y>H~68Zp{FSZ4n?{lqfM2h=6miY4%v z&sbL~$KHw70cw_s1J@lP-FN5kPgerfkCNRhA)LTay>mR(xuZRtEd(*Jlt7@{Cnrizf6rj!CnzoLCXSz5h=Tv=rrZ-p zUo%{QtkBsJ^ z;NFt7&WrUYO9m`dJytk{;A@tu7p}7V50AvGK22PiW$aI0a?ron9lRDn zgS3Y}%mJfLTPd#eFakczA){4KD?pFM?l0rhyRiU2K}u)st5>t&xO^R3Ii7fYU7c^J zGyx*}X4t>#n;P7dAOm8-{*jEV{%-~qp2iUH5i*A3Gjh*F6S?JYfx|lAV2%+8W{!}qg;drSgx{Vbxc5oHey|6c94J7{3k48s6Bq*H z7yt!-i11ZW@OSXyBG8@2Wer)H>&4XltKNLh%nC|!%c#M(@Z`ECy$G-}jaouh5d zlhI$Y=F+0bGovX#id#2V^>(GnQ!9p~No@kmJNdB-@{Fl#$oKbIdFFpU?~00eGOPB9 zD8MbBdI6C{P~&1}Z8@YPl-pROB@`bNxxZbE&3zJf8I_|R0XctA|D`1+DP=Oh4KX79 zz?2!Yje(MWX^YKtt_dw<(u84n{;2{#Nk}8X~-eT($?l1ni}qLAxrO|?)?S6h7{BrW&gW;jyx zHcb!lQ?)9x(&}diN4O>0mT3t;tu`IUS;qu|-^kQ-?xM3w$Yuea?w%FLekFfm=G6Zq zCO;o3QmEE&(h!RMdUmsq=uP#_($`;ec0BymlCX&4aIICvQIfKy>q)J8l0yz<<=kes z=mZ-ocEsgLDqO6BSwLJAtH|?B?vn166R@Ihjp5juvrQVm_Sp|5bxNgfUF|nhv}}&y z8A(J4pO1$o-z1;LjhdMkO7ZFFxOmWWOEr~&7ke`8w4aogru}Ik4w=4?iNon$*N{Vk zS`j)kFXZ54)x~*FbL){aWJ`wTZVAM6Ce99Dh3?!>P?*2J3eZEgtfdoLw?37#Vj@K5 zW7V(B{M8coh$|Lsv#$l=0Ru<#ubJ$yB$Sp4I(~Y5`DZ?V)s(Z;Sxikb_6%qIdu8nW z2V>90lOxT`y~O(hXdSNmf>;j6S#1f+_ip#pXK2q~Z?b(CJ(X0kMIMaSK{u57mSsQE zsxzi+t*Y;9Y?ZSY3l0&(gJL;%A$8`6T;-cK|Hwh^lhJSVd42q;g-$GQtLu>(O3ZGW z2lCE5EejYe8jey-{%3sNh&q%cK2F3U+?$niM1qdmPfk^&m$doVO|c8MrcKhvd(}ez zxn$|@%A*nq-q2ne3o$Pf6moi&8&;p?tXh~bf)o}SdXE@zZpIrXLQnATwX85~rQzNR5 zftQ!HY`JMk1**sLdZ8{FoRYSU0u5d&G@XT@em`U*q!-7A*!GCfU`k6kPn*6OVM{oI z=FFz5{Vm7bgMjr}JxRj1mh{2!@FUOao-bkU=QCU6cNMN}yo4P-l);~Z@9g&J9x#^L z?!GJTg{DT>6TYFaVqp;yLA}X*>6O7xaKa}Hf0|JluSqp>zN;9A?eQMEjN5dR8^10K zS=t$I5K!M}%{AzJtFpJ*j3WSjM%OwTpw+0x&$@fOuY={?+JFKFX!ffkbpZYnPRu6@pjuy^jXnA$L_^GhHl$_!iHNBMf$HK zC>sCEqV%<|8-DY05%ie-FROo+f3E)jV>K@?!cVIprDt!B$NH)y{8w>1{-Gbdf7K8E zKgI3%7fs;*6}N+)k(q_=-*ka=*EmfT&%HHecjsc~tdbq6F!%%`M`Q~Om>9$(X;`KK1PUM!5Bn8@TIqYBMbu43`9N#-!OvJwHfHO%Zb&H zBB#R^4@*l+i|U5UR!>?RuM?CVom+}-v^{x6MD|V`&(6HO>#W+`Zaj^KDv4h8G@o|a zkFR5TFy`x5yUD8(3x=nj6On4w_|6gx4+0DWj0`*{0t^Ea zQvegJAM6VhnE2n>bPr4%8$zjuEPPv%1!of{);EC+eOe=x}Mbep7&+vzC$!ER-=*0)S%N9oZb(fwp_MT zZB-T+D^c{Z#K@>I$?c)GbQ zRa{_@kZb*wI)a5lqXwmD5f!=*wa5`FSjTE}^c|_BfgRPISk`(M!QB{$zk>Ejd>=!f zcTsiS7{zPPz{CW`@*|U&R66;{&eCEjoQ$ISY>Jzo?Eu3M{U%C&fG&~feGrrtwtTi} zy(w-k5`}3gW@Nbx+F+!SEjYJ;D2$nO=vIT=xS*Tez%}>6siwZ8@qI?R2HBG;5)Ky5 z@dyc_T8`xJ_H(>480xw_)FP6_&rC?-nSS38$Qx#Xyg#~p+^ZbqZF64?2uWR#u{<7) zY&XWK1%R4*SVIUz*hG+_-eqTCrN&OiOL<++nrHKn5~t6yTy5htTz?)G1DEojG#0Qv z)u_|B9htE;poR5MC1(le)&X;nmfl#M(H8^XxX+VES_`@d^ivY0xkmnac_&53rh+rdN z)wJyU8o{N}b$UX{MBZ0US;Mu7O z$ID@d3X7z7N(a^wri*tK`KIb+pF#sFds2qz0ET5&qQOMNP8R*CS2_)_L#X9qkF;s1 zUi2I4sW^uww3Y=!ihzPFz9C}HF<7B2Udo+HQ@L;T_PjVP7?vBwD+k>!S>02at&zf) z_QjqJh75(&(`xameJoOWM&HH8z#0Jp zVccwB^!KK@49?08XCkV2uQ872Z2H5+{z&Wn1?yOXRIS?<>QmiHx$W6w=>soE(sW!D z?|D=+>->1^!?nw573o`F`OJ@7r$V<`6pLBhRXbqm4NX%^H7#$Svtjaa5__Pn^=gB~Yy1wXzPxT=$pEowJkIS+ubY+smuwow}{1 z=HBTSFy+a^x>_mqq@j!#y$%nV)dyh~(w$T%;cf%8z$Vt52#*@h^dDEB_HxgaSV()y zNZ%r&Tb{e4Z;rq%&%@}2mYxo~oMwZIsL-sSj)<51E<^z|+jDJ>OK@vJEk zGh+t%;~nR~1M&-CHXq!2zqhYk_t#wew|w!zby4;vPs(S`ppADREG*=1$gRwsW1rq3 zs8OK7G|mq@?l^v~jVq!sxZAWC_%Sv@60g5Nf$>#b;iqCFcYF?G4hlSZp1AUk7KeP6 zg<}EoK{Z;*?7<+>DC$r^jGn48M;2&TUQvfbxAMyarBW$ZURnPMMo~SJM(uuirCjp7 zzIr?>j2sr3<}_XPcQMg?B8>bv+7zmA6oQqQeB-e)v_Yf*)w;66Lc5(jzFGrVA(wn6 zXH^*zj1a&vVndUlHOrlwSSB@QO7_o6rs7n(AMd=;B+)3!`l;gT@laQojO23-O)Gy@ z1)YfQIkhVIQGlj4?~rOL)5Itgs^SA8!|h6S?ZBrTW8MWIg-(7$@++N4P+n9h{Lw^P zB%RkrfmtMJq`=7-j}UubJ!d>bwe|DofxrA@No}>{KyfP4wJB8qa(tyc#}o}kgHYd8 zZ*5#BGP@oozns3EGwLCJ;m~?&`Kh)$sO`#o;jpV|&93xE z=30~aIrLbX#~!9i3rlj_&oTinbAkOX(Ux7<9M_8Bo2UIATps5@$nCM0-GGS$0yvY- zG{^!HV=_z9-+PdEpKu#edOtmQ|2|qOUHh_i{P6O;!|QQG{BpV^osR3axgT2=uCT@P zTs$?^^V_|)l$*s(8inptJHV5%7IT&%ZDgg3*M*xDHM)AwT%y3Cav3KjF7R={`_wtQobAW z$<;|JpkYQEJ`PxO37xR9Xb}`ny}>kNb7*}yNi6U6e5tJ&CKPiPU759?P&a$^ zbrTeE4qX>1o{N)lVbhUapTAV2>PnNvB({N7ecHewjHbgvggDy!*x`ZPeG+JNk#u`U zHI7SR6$Gh}^f1!=wY!C?HgG8s|4PqcE)G&bGZ0)Vsmfl-h;|fe&Q>aV11_=Ii%+@+bNz{zO z{fOEx!Bj$lrZSi>&l0{}CAp-1`BTY>Kf%ZYY_L$#V;rT5*La?Hk!Qd;W@NB$-sceJ z_+4&9lN^I4iXo3MPK0BZLp?0LTq7Zu0Bqm@#E^b*LW zSCqQ_Rw}J+ydx)si^pRna2kz*+rDQ0Ay=OB$&!46Q`gdYcU)vo8JGK!!X94tb^LrW z7M4@G*U&MQpp?PJ88B+AeA_jjD8Vr(*|80t^|8Z; zWLxd~q@hqnw=fZgH?SC0-~`nYiyc;;+}G1Tdf8M5P(Bh#`R6gVQ0SEeahV zo80W|Qx}58brQ)9);~4XhEOn56Q(Q1)E>pUaLpX`jkWBO9z0zJ%3if?Zvi|6x{5Hf z@x}o>M6^OVn3(LJZ*)b6sZ;Ic#=$cV?B=SXJtZ?&V)SBOHDh9W z=2P%845#Ak)D#=k!pB~QU`3KJCAlk7`+LONK+_v ziz1uavUy6JqXVP$YdMhAikwu$h>DcwH1}!!0gj2DCgOjcIscwIKdwy#b}{3S{C>Ul z^YSk>RX6#T=dRP*fa=aGaI1S)+Up%YA8!}cDEa;naV!YgJM!+cG3-vZRW5VhPnEC6 z4!hHZoy+!%Cm2HUx!LqLl1;ZsZnwrt!86CAMFxzkw%>`v%(Pgjr!oS&GAd+9QC5XLCGvc(hA0P9>?^Ax+UjjAk?EG0h-lf-I%i|}Vz(0vGYkf%Aax7RaC zWZ*TK|?;AhT$Pk(puLk=%S(MtpADg+qsQVQx^sfUrJsnfqu zR7#1FRxOeb^~ftFdq_9v9m(I%L@FO7HS}7_6dSb=On^|*_04C95Gjr$v~!g>T!d;V z5({AM%?#}&=Rt#pOe=#VJLG!WsHTBEvXwf~V)%KKv5!fO_bH@Mv)%7zHtoe+II3Fq zzDnF>cYK>okk1d>V>Gw>YUMR@1Q{DCNvgP#1PcS}&LX5nn}>w-;d20iP7Kqv2Q-`W zPIb%-(q=fSI1L90pITXe0Mc$Ql~;9zEm_U?!=B%Lus-QmlrAV=yC{w5BNf+QPxg;3 zsQo#8cky=n8ngbXyJMqcgmS5iYdttk0ur7X2;z9%mdPVFsAuc6@1J|y4O?J(_R0G( zhK$#28F}ljnD!7Sl_J5>Q%S{2vK;(=IjA)ItXalui+pfrfM1CQ7n9q0i8a$`Xc>On zH>$0HF$X*I=b-Hn6UcMxpzNi?dcr1_|FB%fECF2=`Q`rV=+q$}9QrbVom0Vyh>-VK zhs3y*+b%|E-V#Qrqrt;*@BRB87bTw3Gcjz;)SZy_6Gf=TJe7bS6QCe3ug3wEURUK# z(jH`;2~`#k->P9wEFZ)x_v;m&Pt`pe_?@kpPHj&}3DQT6_K^ys4HkT>ZI+g|={((L zjod&VIU&HOad1*L=FzP|PtXN`Cedc+stim%rT3^LcfEP?Hhs|~6*Vpl9psI}5If%j zChO$`6p;RcU7TgDVX0=cqeU8didEQq+pJ@|fFD|?p;fh%%Bc!Xg`go1N6;OkO zAT?~7_{V9w3Qit}H3tJ5z9e4{x(|NSzhihEKVd8~++#^qEvF~bm6COhrVWt8(>n=h z-lTQ=P@T)dT-UWema;bbs$bsy3VEUmN&=26WAt>n2tD$vOF-{Cds@+SRUz?^OWhI& zlmS+!rj#({{N+V3UgmF9)f2yn=}!n?lsLVoWHjXX1zXxKVtOCJ?C4Q;Zp=xC9n$};e6 z;Ab?tnc4r?@(9=@s9OyGrIk_U0s#KZchFHl$y)16lv z+E1HK8^cg+3cf_l& z+c@%+?ox)_yzeKMuRp+jKydiFIQi~5i|Oil47dJwNTRUF80t$`6Ya}^gu$HV@^y#h zQMZD!6VYm8md^5T@8^RWWMkO)pm!V$j*lm`tqdOx+^-uWH_T~4;a$$c(#<=Q8FkvT z4`DgT7H7aR`*DXhs_ke{Y0mo8`}fX;&eQI))|vYjtC#KL+RM>MTN>}~YHA&*mel)q z=Q8BY*&^tvKzj9gRH{sB7g#2bLrBr!hIXf zzb|OZ*S0quyNOK0+bMtLJNd^W?|b-@r^Q$ip*y*)=gWZssbUV%Is=6O<`p%$_RNQI zrG{$Ihc;0E&Ym~p-Q3F=lScj+wyR@Ig7rcxPon&q9Cc^1{#`*E&daUirr;~hrc+}m6Wnt7>S<(hg3LXqH&!Z9PTHgW2rhLKUb`4F0P#-2ziTa zHV)mp5R@CcoX=Eec1`@jfAWi|_Q=#Z6nE&^^@rffhQYsJ!<|H;X4ezz87_fEL=$|smbO|oVV z?x3*2I|Dl;)lCxvcG`h<*gqzJJnBa$+OY>@bb;5!l&;+R$j<8p4BDDI=HrZZhC4Q+ z`kx&FH10((x!eTOOYA9mz_wtt;@}cs7*mVf_t-U0E+vO*Dnx=B4_$H>hs>go^P9?( zhFxhAmbk0@m!>$gWQf^FPIn~h$Y4jHX`xfRB_R@V`gd{!Dk_WCFEd<-b8+x(BsODE z`c=G&YB8v49x3SvI76R|52lRRV--0WBV2$9%AO-7n@m1fE;-$hf`3Xeq)$3~@DWlf zOKB3Fxq=M8D?#?#Xyv{xxn5tg6w$#5i30gZ74`gEv`NfVfh-l0A~IhV1-9#T8q_uZ z5k0Y4ivhza*W27wwHAH*ZqnQH1KyaYQB2#RPzT~N*Pm);5}+_0Zbod~>WNA0O~@63 zZUd|4?3c(?mc6ih$pIUefaSYq)<~H|AwnNi49iB7UkAg1FYduJ7w#g`HpuT;+<6Mc zy>FQdB;E*xsQG)GTI+m-Cr`TJQ&Dywo2>!Vb|Kq2K*cAxj|m<{^paYK;k5sW2=RPz zMDrB^7S%hnvf-hlYx$Fbk;r{^hUO2wsI)Or1(Y3G81oe0(q9@}I* zd-*;o?;K4~KpV6#G1ddd z5v<|dothsj5M}tmXMuptiQPj?a1W-9x#X1W$%_u=*WSgz zu-fgsrx!^}CWm88U(h&l;m1y~65ULQv5MH0h@8%kKxBaHY=IxgGqVjNQ_{#gC+w-B zputR-g7JCMLk>xNN!+!R&n}KnTJU9OqlPC~@ZgX0`e&B)V zFi*J0IEf2D|iG4_}! z&ZxPr0`F}(8B1)eS&xm`mYb4hf?bGS33?+kzXHC80DHQdRFS!7(rEWx?KCh4Xs)RF z;0z@Fy~+qG=miGWi$eLt&FJvs+kbR8WTvx`m)h|hX7Ff?MVRqVV3<>ZUw@k=t)yBb zZjUTmp)=A`pCu)R0ov$eR8|}6s^<=cc=_7G^x66QhUeeUN33Ni5nz>K#94!soRfUb z1S~L_acALatXaBk>lBsOx3JQQZ$pu)VD1Kan+ZP4)1CR{h9|Ae6T!Rr!K)xypVhrF8fZHTlchFeXxF^f(BLiU%R! zJl{6VxNkkhS-bW3URn5*84G?BvEW{ z$3uQT4dp8ce^@Nqjy$iHojkv&A9h%50$u^uMmkiiN!?6ZJjvbfke!?e!nDC&o&twE zDYlZ0c$$f{r#4uixm|%GUX|?h6LM5@Z8iCk& z#Z=GWFJy7}!$pU#E0mbb(*3Q^XP#3Wp1ZB(k^K zTUf161{3^Pj(={+Zrx2OET64Yw(&ZY{_wt!E^x)10NYF`dz@S`JnqiP*<&d?#Y&~9 zbWRKFxUlCf>`BT;b8WB8y|v z4^4w+YxROC$760fE;c&{i}P%p3Dmr4E9u?ql@B;h)$4ma4oWICcMl&Pw?GnZfn{1_ zmho5#Wc`Ccl%_Cus~pe+awN2bfrkNMBMvgcC4yDByqec-aF^{mU`}oX55&Ii)T6dN zJf^}lJ7>vmbYa2Zyg0n(2DX%zrG?-kGatmLdzotbArgoq#?-WIAnody#jo&n^B|Ft@Jj$af=D;wfGYDXH$M}Dsg<+nOTl9c-LrGXA045y_xGD5Zl=@XScw0K>|9S&2{BW zEpqxqC8tZIm^dn4{DjssdHzTo5XBW37?_P?3j%rJT*0_X1```UzuBy;7kc0O`g%GD zNNtzhto5I;ys8!qP6UqJo8+gm!Kb9KtWWwoh+6CcvQW%W$qjGrYHITP6I#AtV!NA9 z$2Un~u6rVr5>ut2oVHYs|FD3y)*rKyN~xiFj^v??clrbGKe?Y$e5vFS@SFLl{*Fde)hWe+Cxl zp_YP<7XW3O3VnTZPAXnH&d?%UtqJ)$zqqm~3-))ZuD>g7mRXs{2+GGU^!i1$4J+}z z#D-!;>=aV=^-Z7>#EEa58DP5?=6O9Xn@{^)P(L_Z=8*7QP2fAjdYuZWlpKvJmfm$! zJ_IQIMAj{%7Ezw9s45yDH8S;s@;ZIbIRRpQ0>W&6QE*XL{( zPpMmc-uX6*Ql7JIOSBP&A(BFw5H;Bim^=#h?GqZP#04CxA$VET+UKw z4-C?ul4Ld?w0y14h6yMk9#3J%x0rNaO2@~>hP6EfhP(zm@XIia^uSQ9I$u6G)#pD27_00!}5je-2IuaM`vn7GU0^dHmg#)%;1Lvs( z^@Niy4l8L%9ZGCZ!}4w&U_miiX9dixtBnnQ(Zb@HHW_WffAmw3vRbAQ$~gMJkL-$-owFiJ*`O z&DLe$KMtU0(V~i@WauY~=O4(;@U4!PqPW}K{F>um(AQ-GA?Whc)`EbSL&;;^ScJFs zX>*JRM3w0$y*69tv6Hw&dw|jE^wb&@Rek~;1kDQC0am7Gt|tE03(b`+%$z-GV(|4ExqOSf;=4wm<;;RElV;Uhj@N7M#QzCOkrj zan|@hnTl^jUnC>06G)#(O*WUPn6;?FZ$>_h_$X5af4K7Ck{kSFcv z!Xw=6OtQ8$J8I!itZ~-HWPa~+U-$jWrM?ak&jXL)6)ynuty1r6EJdCyfCQ>V$%0gh zPG>>R-(krx35CN#fVmq`#BRC>2!1)!WH+Q%@frYl0Eeg#HRmJn z6WC>(@5~9(A&$nq-*+wiJ}q`m*B{(Kx2uu1c<(cAgq<`e9P#GIGc^&nb{HNsw}$`P z_W81e!F*THha8M=K4W5XMgzYyW3w^ymAOfUmM4?48;yL}$*F?{pd#7HB@>t`hd;ri z+RLkpy+fE!i(9Z0f^tlboxH^=JWKCG6n+*-o(e?cY5gao2Ie|gTvsVLn^ z5nB0So`)f0l+c~;Rc#zs_-!EJVM#v3e{uP+iku~1DLGj` zNqNxAt@&r_yQZIe@AIi75{NMp@&+pN2dgEGz1{GRDs*x#AuVl2&A7iY5(tutZs{YNn_z+>zh(Yn-nJW|a`iF+kJ-T2uH&(7 zrX<&Tp7TjaBp#y6?;qRT)Yhlg=BgBp#olVxr?(5q9&(xF7@4kDYF1(AnXNBlZH{t# zz%F)6S>rh%6zs{3%x2f0KPv{nbF+Iu2+<%$M(j}+G9=-JHrB|L53#eb)VMnC%_~L| zP0S@UZskku)%fm4I(oa9%76kUxSU1re)mBE0lSbKO_-*WXbuq)$wV?ieg!hCFH;7~ z+IzK_EG(6Y=6vT8;^?;M0nE zsQQ+ZreqQ-g>&|4!=#mnBiCd`S$tY9Tq<#yMlO;kq7gx?d~N|Y6J>eHgbzy?-|@mz zwOyxuOfI1I+-RjbMb-1(;p^EZ4gTeX&8O9Jsv9A^l78YhHBAH($KJ-sOGUbvD{sEo z_to<{Byq4;cRYj!JTN&vTha3(rF67JB>1_4pU*Vj@&wNrKELru-2X}7MP|7%qz<7o zx?jrU$$=UZKPAV%o3laFOfhsC_C-Bf;;os({d?UP&eVBj$fbQWuoTYTCwxZ7O%1HY zbpO!mvudK8vIS|K;gj%UNDcssJw`BYw9>)7@ z7tb=jTygs0!A@)fU#P5BK07kIj{3kU#O}&;+EMgd%P9D5?%VL?WoJ)dTO+D>Sd1Jq zpI}r>Za-=8a>>kKFPCaPc9Wg7r#h1^v3WN)3B-5^mfglV)Q2sq&W8SL=w>y_VSAE8Q8nI{@_H0s@5D@{baePbH_Fdkhk@}m7;%4trGYV-H}q-(?t9(pTZMegQ*@7@&5|a{h|PKNIo&B(D`O0{SJxR zEG;7YXgB#le}N9UXmTxK@|gXz*B-!?iiN`&eX}U+dF1buQmD|YmlGvOVzb;;lgwB- zw6<@Q0^JLp07|?IoR2_>KAy1FEu}#g^!~26$~va>jHB#Wo3v?GZ!cz zv)Mz}#YVxX8!;OkdM1+McgWr3D@NB^gCR?)RsVTTp#TSiT}-3ZeR~?Zu4JPX-LWDD z93RW9naybx!LORb&f$0zmy6a-SypawwKMFiH$=lI%7~p1X(wm%iHoR|6C#si}8|i6}!*&dg{M5eVb}3@dwL0OtYz#cNMF4GCVX z8g>5WJi5}#a&5ft@s051hF#o`H{SeYCEU45Gw>mUkI$Co3kfTL%5>H9Gb|ns2Gf91 z$qBvM;|aAm*UUOB#)?_)Z)y~d9uD-*xHV<|;`e#O*-47U$R44(PJstske#40wtR zx|5F83@=9k?i%Rd+%ReV@TekwyakNrX;S9++~qvJ$+^J>?YzR||fQRSwVseH{#E;Gs3As;@tAfs8ycqSAofZrfj?sIA!^d(o z=wu(g(Dvbzumk4@n*XN)t6of zq_835?;b>?E2#k>h0s5mwPk^V6Hfj4!oEywW))3L$|@V~TRGDkFWdato2f2ettA}p z$HPCWK5_S7&6*-D`@wpaZQ4gBG*xKi)hrYCoQ6^d2N-RvwmSE6CC5IS0vKZQj27_S z+%NC+)1LNn$zqo_4V!$a0#xB~Yoc z6=LaboQ_i}T|``Ie$P&pM=T1M>gA*%t|KodX7aMIz16XSUnKKrQCm7TD$i z83@?Y0mi$|bgUncW9P3NUzR3Pq6r1ta@%deE*w5RFh=pXdw4*J`}ic1>pIZd#(=9M z->@V=VnKhD8Phk8rHBIqr&Va**VZS2s3tkJq{0S~c(nc>>fSP{&SzQhhCpx$?hqV; zyR)(2?(XjHlHl&{PH>0d!QI`1ySvXO`Ja2wdGE}8c)!hBti_|dt-89ay88Eo&M!3@ zbFcPhQew$|0B@B9&GQI}gPTajw4#P(NBEq1s=p3&+dXDd|Lg5d60kaBROm@M%1|O3 z^~Kj!ulWszE#*jZs#}*^t1Ozd5^6nZ7;sID_g_l+`%5aSuH`(NV!fv}GIUWxEz6Aunn+P$qqrwsb}YHci}txIsiqTk})owNno^E#hf zlCF^WbpUYU!E;H9P#t6XPBwl)eUoQwmw7n07vFZnSdVMD=}u)IVvC07k2v)z4B8lp z`gV#vX0ZtdKUZ|{In(VCn;-C`CM4&ae8PSsMT@Ph9f)G3PV4h8rgZC~!kk>1RlRpt zs@2;t*T*|bK!T^0A>L9*l3@89%R;85Rnc+&H4&>CRym(CWU*)5>TfnSooxg!o6Y8u zGnpq4WA~s>Yq{SjpzE{=C0kYJswuImzlGzFRf&o)W*Ix>7#S08Z%T zEpr;WS zcLoh4On`vguqm!T&3vru(F3Ra}9U>w!|l$4ZTRi6Rjb8e1!69 z^5U(yrX2ARdPgWiPwKiD9TO)gT~}Nebe0Olin|`T1yUVuRwi8>*?xB;aN}Qr)LD>X(V@ zY?d_qJJ!^5mB^xcv|uT~rnf`Yx)nWCwvp2JLYs>mVOUlkVVoN*!Jn%oE0JKBYYj^( z!(BDsL9$`K*}#Xh{vr}C{8s9f)pS37tggJ(DO%eA52JH(Vm%2rY8d7zrm}0l5wWoW43h;NFK76}-9z z08^2JD}PP^Q*T(^_{T@kN%se3@y}Kt%s)2Ce{LQ6C!F~|>#n@#4f5DpVB&wX(TnZB zH+l)1Svnfo(+OMZIU4;XGtfyIS(`YTer8~0Vf^>qQ=@95_Bd>C?RS*-AM{0iJDBjL zil*nLS5_`);`~T^4?3-nZYSpH_@X7`TWSo&#z+!tB&ffCJ_&jj);_?^FZRKDsDqyrBXjD zP}cU);}d|G<*0ijmTs5)5j9kWM!IT=#00 z8^SEOMz4%=)T)#e%BdH(I{&^{rt(Q_GfrOjM}qZFCV|4TV);W9B5_uw(0M$cG<+T> z^_2TxGW!9*iT!y?J@gFg(J}Op{n_t?rCdbgMs2kM8`UN1JS8LDbz;RK8P5x2rW-`R z!kd+(*4x^jmeexxA%pRvo9;XHWESptqf#M!b}~g`fa~f4-(llRqMCUcP}H5rs}~XR zc!&ebFK)T<69z|eSicK@P70In< ztyK8P7Shn&B5727PGdDB$xLak%m4ZXTF%%ifql$=AUU=sp%Ci9|wNYNx* zpB}%&5u-|LFt^N=5E{&$i{mCBrkBwiuj}{`(fRrOZoZ$O5m7yNsbdBWo){5puZM}P zJb@o)t4G0%OOcH~F2zt0Xn}xkrCpnQP%&;%z_ag`oQL@Hn@c?_1k8!(bLZC%x{{Zi zjo+5kwI3H_utpu?)O5$8%m`2^C8csu%;l2#XtX$gEeH6!qKbYGH@%$fK5h;+6<_N? zQbLayKu-}AV8xQMfS2X^v7eoz@sYSy>9I$C&rX(=5;Rw_D_!Q6YZAmZ0Re=Kkc*{F z&%UKQnG|e{+8ue8FM-(>;sSK$F4`++Jd|9pY1_=!#Ws}MS$Q+>{u+yp>)0o3z5Saq z*Jm@%4R!~?oCHq!PkmFS{HncYjj#f^Xes`dI&3P+5+G%r%4*QGGly6yk;fRgQwYn7 zxeZRI^BCi!#a@E-0uLeVRiZNM$0ioE?mz61zt-AdSj@Cc?zI;wj`^oxwT)e&j2a%wQZ{L?v8r`_F zPGqXWP!8fLF=IS_jXxK=MH#6zG{uwJR@eA1Qu6vi{Dia*p|Hv}4xsEwZ$cPXS zCBMf!-$RSM^1^L2c|zVCL1gcYf|8)0wzTCftt_PNW_$~E0chyn?=4Wx0 z;!SoWU9TVhJX|k|mneT(E~-V|0=~xGJb&1k{b=nU*+K7mi!XL1Pm{diL6{pt1}YSa_zyOJ)iy4!wjC><3t zuzKUx`uv&GuU};JEVLhTzG8gKU|VJHqVu_N?}B);t#8Zk@agJ4hM8dVVse=3;(mE= zvS%v~a5k`Ia~tF4Da$pol|(Z{MHt1KIg({eDOB5HsmFWuQM!}5uz)ber-W7dOmd~I zW|rAnZ8ZV#_)K|k>^(Mpv}v;dCF0^Afnrrzv;I^+s1E#uQL&*ZWX|b}d{fOA%%ueZ zV;BLE10@(U`E+n2k14a09I;_*qHi+QVl7sykG}jpyvHYRmru91K8vNdq0Mi@){;*h zWn3q3HOk9xRwqkN?QbpqSyFP#NZmx(w&{jz2CjM;-kYa?UmB|o%89zY$(SN5#H-eSG9!!C$E zsj>t{tR=fRz#|gnpN~*Hb%EiuEg;D|oL@$)bw*2#^vRBEg2%PEf{F&|-)Gnjdeo?(umn=~*Wh4GcRurZ3^}CTHDaTFDYn2BTPD4*-S0Fh- zwMDH@4}KdB`LSbCKBA*A0utm$Tu$Bo(9@&AR%vzw>f|2CV^tZ=^VsAN#D#iJ?=D_L z-tf}%0Ra014VJ+%BHbw5G{Gw*Kli-p{~Wp4>HmA=`hONs#P%P<>PfnrtkOJQKccS$ zDm12*60(;$G9Ib#qoQUky&ki2@$yf}73@#tdbwnCAD!egr6@w@dVsq#vp?3+2LD8F z#Kyqvh59L5%`O~)V!;v$rymW|-sPdr-*mS+EWg(D;Q8i?c>1vF0N7g_PvYJ)#XtuW%k2p@B{o=aGe{H>835+?K`5VS9tLaZ3Oz~3?+h-dkW6C#{&ZTjNN-&8Q5f%U!1@*Dvb>+r5?ERG zY<=cGn;8p$9;^mdl4G5hG`GrT#%@}N!4BvjU=F&1q_u#*B0DQn&H1nU8iIx952{V3 zQALLFP}Swngq2nXR}Ey=x?NyExDJ!|ctSWnvzp{3;yV>8@8#I_vX-=M{)ReSN+;kC zp{P=9QV^q5B)}l74?PQkrVCh&1xj$hdVseo@^Nl#Gs$IoZ#&~dJ)9#hAOR-^9R~~n zcr9>}qm~N@v%$=eaS=4pP5Bqvr3u|h8aw0<)o8t@<42fE*&kYu*7}BINYxk+vJ;Vg z6)<*~4J@2corcNE`<0w4YYT-An^1qu&_95p<*4;2U=qTrmeeVC+aEK&qXjOo?rP4% z^m7|{mJyNz1$5990A=x3{z)n-s?wI3mb8$6iyK%yj7u18xm^K2lQcH6`xkGOftSS9 z=d)U%?aH5#I#?Flv6#+a8-Ro=)+Iz5HUemifcjdF^7TQqhb;OHP%6BWf;E>+8nYB* zWSc-lAQPt`kB2+^z9}_+0#_oA<4=QFaJ`m`2JfInKJ+sG#Pxiakx16A+h);f{C7Z6 zLvcM{!TVA0oQW5coyU|L5aR^JNucAZ3jW+q2dpvhjPXa_zhdF$vFpyz$^8x}@*UF- zdu+n3-3AhygeMkTC$?`#0QNv6Qq9!v$ZJ0_VLPyvBeEULeQw-=r6OATb%%fk9pgXt z3!8rrK4T1kJoo8ON+xZc`e3Tv`_Hp`i@^4hb8Mg35RZY?nE|zc%UE90e#k{o72MY} z)10n^1Y)ZoCfyPj!GIYE9;563IwoME3!m$tuQVWVlU*E;Qz#(U0VC(;b9(tz{{hv@oe>x73Vf63JqJLg=7SGTLv3W2Z zh56G{8_g3InGIZ7f$7Be_KnR#0w43+x8&T7qkETkEVHbzr^x{lGH%@n2Cn(_S|1MJ zlW-YYoAv;p1OrR(7GEZ!&(8?F8Xe_}`Qe=@1|*xk{{gXVe;H%Ilfdjhm;NBn#(n|$ zXu$J-e-Q1e+XWjoZGCRd?8d?daSG&UpAmtfWVv(8`QySiu{Q`NTa(~>k zwmNV%+_W^y(P4G|kb72de)fc~ZMAdJ$;Ey&y|}GTnG*;>`onJmJLGnf`aeBH>isDmhPaTk739k@+_;rXsbtji{} zUjs+7G#L$ijCkPGH?V6}y+DS*sJm6H>pQb#EgPxC^NaeYj~kO zT7~S z`q!r;(gg1AFtB#OjdsH!NDUgKYG5U|Cyr;Pd}#)c@|%OQ$e*;9Ae9vuPA-r*K-tvs z4t^AS?j6pmhv5`?f2wRVI8kxqptVca9a7Pwy<41#LD>z^!BU~ zlpuW8DIN{1bS=btZP#y!XoHDbB&;#^#`BwGs%oBSvIK~X_GT^@6)B6E+?0aDBf!ee zE~d|&ZHGP|gnras?%TDJ(mYY!qmzk0Om97Th@Cu3Y@W1eJ_LzhI=&ArTG{}}nK#th zOuQxI5nAldGhyO^m4@{OS^-2(sN#a36iR9qY;6;Mg!D#m$GU&HTVWg}S%dRYs@A>E z9@LNZ(LJGI9kTH#{s!PLUPJ&0O^V}qsGiWWDn8u&Qwaqw=s|30M^!WJS$Pec=!jR^ z>{Z)VR(MBk;s@c`bD7Ag24+O4u1n z5%@?;P*UN&BY_R+mGIhM7Fiah^Q2pcSQc3GXAsAOwyKC2b5gZfAHT>i+^n#xxIy;5 zi*1O!(FR)JB{#M-Zz!o>V9nj(~3_})*zP@rb)jeatKPdP_-%KDTsX-mI@U z5|C#qxgGZA8AVR;aeRACh|1olPtv-!KDAG4Gwt(1Xt%0&28VR%$|lom-Ckp@7XteJ z?2KG(x?g2Cs?r$8#=t~gmW))c>m^plvN*ZiOwVnHq29=fJl=*woSau%owE)EB0te2 zanz2zc3@>pRjvE_jI*`qFlLD@)Nia@=SgI!?hSiQr|vZ4r`lC0njB56PCjG}{YjZ#le|$^07EHG=+$j>7$>o6 zd*ZvO2kkFJ;2F^WEd+$yh)&jM)6Dfp6Ut`P@oU2@^L| z`YntRJQ_7U$SPb)U-I*fJaj_O0z;>6wB+&muNuqY8itVimRQS^vk}K}E*_V?)7ADy zk5fsRamR7*ETyB&>Alx$j-r+2?+X64d91YHmiB0o@+cW*7oH_JbvO(2GUy!Id< z1AkdYd<}oXTtRB!|2}1CgrlNq_t6vNGaQIN=r>Wm1|-71{{9Ux5WV+HLLdJ1;H{oh zev%{SDC@#d{&OD1%=fJsvcjRAl8pM19QiqV^cz90zQQ4;qQpkHAYNs>VbLhKZAL7V zNKMY)dVFgHv_>?;aKR~=enF0e7E|d|O5_I3l&_M#h47);!vcLBB(mk4{p5RJ8c-lR zp0vzNOiEFhuE^(Q3Dd?k?C7<)O+H?eEzA1G!pSU6UW2ngKOZ1^pZuni87tFK`?<54 zr!hypRRo%W71Uo?@$#6n@qLB7V&U?_1K-H}>F#)ilkuCs!9hMYHC*zYjn_KW0nuwG z7XqaL8A34xteMQjTAjtRNr#84rTr<$*Rxb3QT9ZEl8c3_qC3{jhDPtZmZ>SJmw}$H z!LLbkqk;vQ>q}c4RN3&3WGg%}bmmTVOVB$@$Kcskj}pry8y*Ko)UZF>Dpv<8mLwzm zuOmPsHHm)f{c3$1Mq#3!mF<%p?-X1@sjHJhR*Br#!v0KmhW1Y?(j(NIO{QriZGaGc z4yw=E^Gy6zIznZuvbxB7g-U)lSUX^(`lv z1x&y2PDUS_5V&9T3j#SWHbthTH(8ofA<_MZvTxFaCBb*CY$bj<^0$dDQS$WF z(YaQ!=WX2u$FDqGt6AJN0C$bE;d#x4> zJ^EVCEir07rXgzen9H{}-RaNdQ}YMw{j!jM2G&qh>!+!JvWLcbtu71s_VWr@YT)gR zqcS5)t=i*L3)+e$>G79Smx9r~@=-xpauvxEz$UP{O%@?!=(vFdrKm>^$d51QHJZON zjJ4410{y#jAV3*Vg8Yfcrooz1Y||N3gWXi8B0RO8Pj@cT(I(P>IfOy|)8i7M&QUS` z9R1TXKQI3|133rNZd2oBRDq$Xm_pM`?vpHsfQ7pVWM{@91+yh=3X_9leG{j6lc%StzZ_|X)w1#6{-gmDx%VpOOQs242I z>Qx?MKFh(NMY|k%G6RD(&4@ugQr^G9CQ|6^$7FKn zvsACR{Q6-_P=s5$2(2k9!zj_nzpi8@C#%R%uRvd6xkMpPA#KT+(YQ2DF%ls-Iip;9 zBt9i32xid}zZYJD9jHnwhBNDk8;XU`IiK+Z(wwcHj$IHD>4v?pYp!m+Unb7^PEk}W zAAq>AP>+7HJ%r=MlyS_gms5kYrtNgVbE3=H{My@>W}ypSfWuD1G6A=HH%`Mg_13D+ z3j-$T^%;sxRx&mhPydO}mD2Lt9e`UHeRuBa=b6LVinMprYem*n|L{10p7e~17oo*z z%Ng_~<-<{&jeGHaPvPH^y#m!w)9^m^G9%-8&%NTZastgkW#Cfx(VJ)jMWZ`$de2gcE0`DrOa<&-;4 zi`X=6^{}U{;`t~jlZQdjoEnJM=3!-^xfSEg7ekKqL*gU2E{G1NUU~~`A<+AqZG&~s z?He%((XMTODkS;hKSm(&Or6d7(TC_bp?oYdbm&`8M_ zL(|c5S{SzqlR=O8n&7NGcb{EAU|26yOKs@rShq)}dvt#FEpdJ$2~B!baRCC_Y}w|_aSW0oFZqYrOZhCnpqayL4#2E3Sy^@9m>Ae~V=nVDpWQM&G1P`O;XqLiZS`$dC zG~rYv2gT!5tYG-S#ad9MUDxERe8=p~=bdqQN6by=5LV%qE=M z;6Zk7#ORAbw+)uRm=mC0&&%gi_08hX0Jn3L_?&p=A3`Vj~b&mFN#RP)IQ~A(9TY zuX43tw-Gz;tvOt%&96St>-4>yy}cy)JiHVwE+O`oiQOgKtvgRlCnDw1H^blFc_n4m zI@9~um(;wylE=?{d2%`X`BuG^w^z2AfxA$9^?UMy#zMu`7(Mj?@bb*Q?6hWkkfOju z6a6lwO)mCLy=Xh)V^raqU8mm1F z50&z5zWCs~XCO<*?yO12N!QK%ie2#XZFoX}f4A0B1@NxZZcfH9+1+{FwZHMr7a%ZlX zouGB=H|ZXN+<@Hi$xDP3!OKyWJG-VSc6hlU*0Y$2Sxm@RR``T?ZftRHcr^hpU}IpZ zE5x;$EwiYd><^mZZK5smYOI74GpKl<=U>Ao&e2hZAN;=At9;qfw~vVO+$sv!^lQJF z3OOWXD_$zLI2!a1LJnYrOIq1x*{e|`o>lGhncojo^sC*vKe%)tH`!?jHx+!A@G$$F z8bVMHGrDoYH5ZmKp?IJwWQ=Y;>@wMig%|`yu)ok#CpyrjroPFy42(VbX?-C#&HZ)C z-@d*NP@yJ=>Qe1TH27dr_Iq@Yg?jdPL%E^__3S5&nBmu}__Tsa)*W0+!2?ul2RnV{ zP=A86fju`)X(_1qNdy`J(c>cB$R{KU|6Y5ph?{h5BbOxhJzID%$jLkk4n+@5YnDMr9v$DFP?Y)1lUw_&KZWSeWGy z20OA1H_u9uw8%dB(`MteWE(J+#Iw36viODUR8ibOnGNRP*zp_VCT?JgC@ARIpqi}}Z zovjfn8t=^D0T@4Am;FdP?WD4KGu9yQbccV@YBeI2JbKIKnhGu`^(QZK4Sh`J#k!H}x~? zEdy5QO`h*Eik4=0mUbQjmIM2OZp|rYWTR$1$RZD*s&1%{1i*(c&`k74eeXuoJ63YV zX2_KTRzWB`F7MrEs!a=`?unZ+GZpnQ8TN-*@$7zBeF<4_^;GeILYY>9gWhIKU%H#$Vh3?)bpJU7Ke8>K zSM`wx3*oZf|Kb+K=0UZRVOGD^pF{iHyLUG4zD!RCG+`) zl6mG_v#G=BHO=vHE#=A?)q@GWMD#4Xm6B%HJpZlWm&K${3)$!~p3yws^vdR~kXyP^bC|}ZRRoK6mO75y#}f1n-{YIj5>-i`XGwjYS-yMpu|j z1&Kv2A3TEyG+9GZhAexH`?-?GC6!B=AIijNMU}AE1`P*_uAIl_EhJ0EJXt;0udlg+cb|aml$Dw6{@SZ1 z{n>uH!fM_7zG;1_I#OcWng<-*r^!TwCSjMrrrn%tRjb0Psz5fVx6ExXDii6+5Eqxg z`(>BT>kP_(>7n%QxJ=PP=XniDxQ}owXwr6~Z?QCND=vXk6r&ireO8 z(B*Z#bPWG_6n5^)EZXy?W`zgf7RX>%^;(I>t_hQJ?P0?+kT6d@ZlkK^xw~Cw3eTCC z^ZoDh3m`DPt4Xg_xbTVQY(p%kc&vN?;9|e~+MkJWAlm-yfsq=Rlm5Kt zv*)|>@#v)yZ<{s8@#OIB3PspZ@TJx0iPJuMAhgB?$ZAP=-EQ>m3z6%SP7+%b%Bo;J*E>fU<&T zzhHxp&(6p?NXqOcuG8+hPDF$cu(?fC>9uieuEN8&kfs)ZhAhC2in;@nff1wNvUHy* z6I`_3E2B2IFJq3#%CtSYzsLvgDcVz~iA4!9f9b@XSys#=1xw9(oGFUu;#KO8U|SPC z=qds?9rMF>XN|Y&xJ;<@+!rJ;KY;2dA8vU&By31L39Fs;@$x*j!YHHKq4vUC^4NYD ze0w-~`wfGL$8&Me*zx?>;*C9V;?u_dl&Rq}g0^P+DzUKY>-D^$fP#_1<=7t;d4WL3 z>vD6{5E<;iu4x0?%q1huiu;#v^{uU zh_2t)d^~d{d;1-SVn}pKSu?1VhtqC*7K5|?S_60(8~>4oxM~+%_R{fsYT~=v=i||z zf+GSkK#YismDiSMQb}YaW)+_5bB|NeuV%9uhzYi1eiG;NL;$MrSPnbiv8OzL;8Vx` zMQCrTjKZ|Tb3N|8fjium)%)7|NtoSWhH2>3Xr-6O(>Tf1O$Y! zi(Kxilxb-XaQiejk%<|XIAi8ePZFr>I5g*S)mgF?6k?)1UQ7pIMicX!5$(iWHn~;I z9`_iUMEsb0fjVQVGyk=lXmtjOG)@dJL)C849SC2JpM$U}ScPCU?2pQr6;Pys2>N}+ zPn5TdcgV|L8I^3KhoV?#lv3p0j)$FtGtU&Frl^Pvq4E(jerGVBRiTrSw`AnTH1pN;mfwr5 zLOKUGRxmY_rnRLc_g>W1oX=vU(c}Tel=^%IP%rl(@fspn(2pWRdt`CF!6xu3M~J)G z__<18!mkoAZxm#>o*qEcd^Qtn6$~Is`lldFL(p>H?PS0mhoPW;`mXo|x%vMoOZ)@5 z9K3$~@#ff9Y=pc{e7c$#TheAqm4T>-c2NLfqM!0)DR zZe+)pJcZ~{qGp_vP&a5gd$U3?$m10F`ltoiSrF@_M-;0kDgRk2jgs#amX58(4!KU? zL-gl3T5!YhzrZ$Q>hiIKF@ayNh*K>2AH_?IDWu6{(JZ$>TB|gj{bqa~MNH@;rf0S2 zT;wfAX*eRmTK+oU->;osUb7xLrm1#K!q&+d@F-!JWQps(zYkq#3skKxulp%c+6^f{ z)p{_}V!AZ}CbIkFIZrj;;k1nPyfvy~rK3II`8L3QX6x43d;%#G=HOQ4N&t zOQ7@VaeDz(Y_0i))W-c`X&ImUG4(1?2RI!|AIEsz2{tM;GnnPuz0sIox%JD-@|>3N zxt;-6QB@l9yln~6NzQy)*wJ`k7JZHFeCC17;|Z z`xIX-CaTNusLQkxTU@8j=a`Jjn61{LrgkS^Vu{ox0<@1|sMar?lK}7G2Si?u97o#G&=1D}i!d%hxVJdU=ya>CpK}KHnEFl- zd1?OXu8!m5FT&$#2Vtz`yOGXV%!wGZYptU8b3?gi*c`-Oc1%*Ss7%JdK3h#qoF?s} z?C{w{yH2bWsH#n^2_d#cWm84n@;$9HEm*i17S(D+%a4%OOn{Oh z`EnTpydYG@}V9$GQ*$U-^$XffVOR&Y2IE<75n(fb)VzjWe_ ze@I0oivjvyl0FmvAp3f(19agSVqLLN!n2}FD8+S&(`=`r3ZEgX#%)@p)0<*L5Z!>4 zilvk;1PV)u*IOrk1wNVPVJ`nePrE{_I4x#2KN^cEA{CWUSNeyT-Yr~(*oKlQOAv6b zdYH}*oLIV7r}dcR$hp;9H1`o6&X2XCIDUC?~67@FPBn zhEL_>t3PZ(W^Y~4qu!|g97A&$#a=_r!ik%6tbK3L0NH)^cGaDzvKogM;O|hGaw8~4 z-Sxphi`I>sQe5ic#|vltN#S_)6tlPchZo|T7Jay3e4#Z8>B;X)Qf?O!FC43)^Srh$$=wZs_e zGkT_2!!@-+t~c`x4gZ9=ZR)&DZ^`9Ijjirs+aBqG8beXWrR}m&Sf#{0#-d@RzI=tD zl!mwxMZ9s_GQzJ=^(8Y@%BJ&@z335QdEqjnO=YxUBJ45@cT!PzF1|>pGY5DJ22H{pP-Zm88a}Kl#Mw9N=Y@hV3cuxJZ(g2-*BiR3-R31_ z++p1DR%|EhN?E_|b$g!e>_vG#hn8;@?XipWVXQfU?!XgNR2r?tXZbcGb1*J+A*YM` zOm6_nj-bu$2;K#dt9Y9S@e}An30on8yggoNHdcE^L2$G47N=Zz z96DY&xE+sZ^|?bZC%T+3Q_BRjjJXjy+xJ6iyLnD+6fQJ+^eavl9xX#!1GWh{FW~N) zT&#;`wjcX!(|-qI#aW(0ld!t~YU_aCgy7ITINMHNt;-_06dG_?t7~?=zu(rT3{T*u zWCR3TaYf-}T~Cxv@NsrsDJMmS%M1!Ce3)z?BX%=eR^Zemx6=ifQO=&9=cjYUd+cPb zLK?^QfSy@V@TmdFSF<}Dix&U!q0^#YC&gJ$=*SZrtqHA2EO&4-TwQpe$5Ya*KPf)WxL zN9%3kLp)fQQ-%8UK~dYr=B`)Gm9`RQ6cE6cHO1-$NQ_E~=P@Ul1b#tzD5u->%Q(N6 z4CTqRBC<(G+&niKC(9NIg+3_vGL&!Yvj+%EpeV!V)7hMEsNY4VL#Kqd>xyb(@Sh#Z z6s^cZ)?%>CeF2OX!5ItnsRTKa3d@fVKno|Xc_+^TKNZ2wZ$*5!|9}QXJbz8)+;pZ} zHI9IU#7%rz5Yja8A|7F0tf1wXoDfNuh&~PI5!via^w}f8GWb};esPRU3DMJ5H@d(n zWQ2$(3<3z?jxH)+@KG>AWcl?>(;$6FSfW-KBXl+Z$I?mgUNOcQ;lhdzD*?O;oDB&t zT@l6U<{$~*$|?m{J~!&GFr>!J9opJm@or5=Th6L7F;V{mT(<=|8uu>)&Ih@s1z8Pfvy(erh^vqZ(ubu%uz@1v*T{IqnF1UV{3$g~&5E-d6~Q{WsV<;hBsn zP24^d^Gn9faWmt+cLkLM;D!-Tt7-4eK9n33h)@nhblSC_kD&i_2T=wC?Yc>cTKOS$ z&MqbuRNBRS%+%8$D+|Whqz0aXZl@`#+qhdI{#`M(7Vg@!*F0TTG2A*=c_GJ!^Ln1l zc-rh*7E0+1mb|u9AQnlKg)%%`P$_P+>M~SVD%5vQs6tH7@&iwqm>CP4uZ8^KExLug zX5ON7gyn=XaMU|4(urf#sHXWU6?&AkZy}E^EC!^Per1AtHkaR~KUJ3s<#xmzjm|s- zE=lNSqR!-#psJr)QFj)wv<`Q${UG&iQrT`J#;OI&YYgbjRo*j!Lq|T#;Op3TsnM?{ zRgO9Hr1*LrlqV;gxRdAHW{;ZT9Xo(RIKC(t+DUkoPZ6aeR+~$Cjl&skEGlzgn?W*s zhMyVliC>9Bc2xoMcL{VN%>-xDhQiAB*Ps37AoRZ%|9t%hWHJ|8CNv1~qs`l&8xz%* z#N6D)VsJjbW;eZ-h|{14jWg+i9(E1fENnXWvO_7uS8E?2yXjqL!Ki?k5*EP)v~%93 ztd*$j9Gi()f5|PN#5kG&?|3!|ai)xr zI%!CDSeLnfKrU9F6i$^$Ou(;)f!^;A;{ zv3$k37F(-c7(xH{^^JjPX>crYA#V~3ZZCav$(uLfQ!ohm1i z52(ArcUtZUMPnNcCxjM)B2dc6L!28fsGQ-1`C{gm(3^xm%@Rz7#U?L%{C&wubBavZ zh(&hA2n~ofM2Xa4EnfCeGBG3!?sfB&VxdwZ`L~Bnm(p*?lz?7iQ5FjB5@+#rFato2 zHBUU1rwYh>#_p>{ui@1%iSeFl!v-yQUHb`RDeh%YReOTEpk8)***W%u<{yw*XW^z6f-?VYDkHF_OQ)XvaAoB8p&JIACK=A<{giw-{4z>NZU zxeYL0JHQfo($5W`=7*?TW)`;)-;10>kV$dLJ72GcI z6fzd{iqNrOzH>R0nr<3$ZZ zWBGkd83T|2WOizjm2E9?(!=NJ%OP2s5B`k|5PS(fSr?v_Dml67f=zaPeQdn#>MH-u zdyI7nZ0--o3nbgEp;HC*>+SoL6oijtF>quwF#S*1*0;n70V$a9KQmL{4Ty23NA?Zd z^reM^rafutX`LbmiGHCOn&>k6Z+N;?sw{9NN_#3r#*tEzlR8U*{K%oZHX*k>XBI*h zuXm8py|K+!zjUeug&KU7y7RGLMz8%%a3r9R${*GVNKm1`7C`NA)|9Kvm-jsi$qoPB zAwWTf0eSVsbGN2at+yhH7l+_$$N|x~%JMm$Nqs|df+eAX(}i4sQHBQ-CM8a#MN(w^ z7QTCCb?wChqj9D4ELKl!@hbA~S;R~Tzh4v1V&EZMR{gd|Gx;jP3rE~$G+JY$<6>qq z{~Yy0_|0@_r8aDxM!oHzer~+HA?7uP$Wdkg=WY^@nq|5;83E+ zer#)e6^ffC%vA$@RF*G^p@(A=!Gx3p2B}>PTHpwt73GLPY$n<|GJT+&WoKj{#WuW> zg@zVEM%tjGlJsc%1BE$3QmW(L z$Aiq`VaOXl_%vAt;zdO{D`4;7Z}$n_v7G+8zB>QofiXBRl71Yv3l9fTMN=#0QpSYk38r9vs2M*YZ*;HT7OHehU4yRpOE7n~Ls zuP;%6?H)zy;}6Z*5|JU01OGxyhy(%Zo?=z?vv}5gh#dEsC313dvLQ(KXzz*-P8*PQ zff_s%Uc^U!E!ZcxydG98xkYjcw4KEJbeaE`v7;LKSg$waGQ5P#u zW5xA2pE$-jz&N#*vvr4~CWQ1O++PS2e1gA@g_3(VcvA(f!JC)(*sR%`cZ>4(p9HS! zI4yp-0zEUF@Lx9?5qPM^;On3^a<@5$4-6#I5s*e9?_m_x0Lx`0S@&uLEQp$j!e2{y@2aM1rq(C< z{Q%@&;i3N(gvL*#(`J{xbU(9V*~>b8ATWnZ{bN0ttR4v2a6ogRNiI>S%~0d|rI2oE`Hip@#`t={1iorN@MIh{IwtwivL8ecp2zExVo75Vt; zV*6fa(M*Qv`c#bsK?1YPeA!}73OTdxRq+yRh}RDQ4wvi=sN2)W!6xyh!)5uNsmJYdbX_ZT_v1kv29BC-2p4&B7_e9TGP4>$t zi1;t(M{GU^9wM&?d;JL>>n;ZzT!%}(7>|_TM`smEGtF7Y}lbYz%;hD z#+b|M;&L%aSy9eL-^KP176EN@Wcj?{spo;BA>Tw{y<&)UiL3cN=bVtq>t-wfL;mZe z$-b<8hN*mRxQs^=hbWQ7qnzu2CV35+Q}QJtXbkD4r|1tGNSS2@0-VF;hDL76B4b=l z(F@Bw99c$%fzs|Z4Gsf9a=ig>&#P^s+1Fj{tk@b(w zLB5uT_AnSjIQq}13We+1i$(Zk@xP-iOQ=nE#*8YmbgePa6Scw!>^?Ar=y?Sqe2j{9 zTzZttoyiXq&PdCfs}mI7$cYb{nc+Y$z;g`zl&4rUZq0ZD4h%dH2sOc(^re{`2QV7L zxFvYU%1TPl`v_m`$E8bP=7juA65F@=rCr79(0`^_?_ z&8E{unh5Z2SPyk7;kLX>q*;UYmK@oVsKBmK#Y?(p4rKnIp|dN*LcuVrqEuX)>U3)F zNa2>{Epp%b>&fTA4RkX5`PibTW60EGTp|k{;{kCDY(z^+GJ2e!k`YK;UyK(VI_^Sf zr5H+qhlHR(I29W7!FU;4uvX>b^$BN}!%~ z9ceI6un`Nz4eH{}Vj+9-T6Zm5EordxRjEWcKFmw0Zp4p^U?gCA-ohRTRh}BRjxfaE=rw zGikYOF~tXI222aV8wrjfI^-uP@lD5Ei{7A}1xgJJz`#s72S%Y8(PW53l%R{PKJ0+= zokvn*0KM@eD-pv3LRAkNhKu;!4F}q?m!@3buMFE@y9Jb@%gOgEZnM)e)2o^^8wW$C7;UAz#`5fG>1{c5Z<1c|d&w=0>2AU{e3e?KVJy6ZLd-Z2NIU z$!-R^%aW^Zc5vw~^Rx*Lvpd_^88o)BF`r$}AD-a9@jT4;1EYt_kLqO{ z(|m(}#BU<)2{7K(tyjk22xDcr=-spQtGh(0;~$m2_k4Mq0F&r-_G;Au>>Bp)%ir;x(Vef*fJ|O7006f!NO{sIJm&YNws{`!LV#%`$Q4SI6tr@xv0=o=DXGN|Nv5~du& z%G4_BDoBu@O@FW$ohNqGG6{9m+9!WXfbwA9hM465Yg-ZeZ1fmA1LEGa9ehZJ`pq8b z&E(9YpGD@IgiKk=W$jMpHTy2Fm|2*v07I_9fpHC1FbfG#m00=+=npZ)a0c~7fhVjA zIW;L!O?XuLSvvfLR4K0x4pUyJl=iMji|Ad8A!UJF21-9h%magRO7=Aiodkj+S_S(#SfueMcpzD6~ ziUy3d!v?a>^}asAcZ`wX(BrReCt^z<`(b}0>~lz{V{oR_l42ZDpkWkYH0$t@H0@lC zeCUTjMIpX)D0n=GiJ-bW0CJi9p-w>^fHAR=)Hj`xCH$xAO5RUZj)*s7L0s8~0B6|% z+q>x>>b%Cx{5uG!auKHGc~c35ONHaA)??kIMV4HT11uEzU9vz2)MRwNLc(lNHJEwC z9l&u_)LsVKsMj2rYQdhekX_s9C<7hIwpKP*<6KG_JY^g{UkG&E#xDv(bpu1Dw2Eqr z(owQTg19p;J{@I#Tt5}y1M<9CJivz67lJt~QBOv77{#rVJBZSe(JNXKs?eM_c_@X% zMhH*djr&^tDC(|Wc`66GZw%kG{iZ?Ep{Armn2K$iNvhrwd?plU(#Z*~1IgDYgB{mm z6QEXv9s-!@{B=$Q@O+J#fjJRyduV@%$2U_;+<(vJE`CeON7N=DAjCL2L{$J%E>XKf zgis%hKD6u&{-v4Q_z z#d{tMMdwTDp;K62+{czJqO~xQ7nfK@5RfPQZ2+8w2-^ySC)b~o`0D8t>;Gv9{YS`k ztp3eIN}^CGoP(q%ek-KJV{b|kNun>FL1Pz0u7 z05;Yk`_V$x4`lA}VfiG6PyKh#2J;4sS@Mkt5>iZ-yBBCu*whCj`uX&qPZ~b|B;mPN z;QmI~h7cb}reTnfTgd>oz1}A_)9EujQzow+fm&<0HMm!mb0#NL{TTIFR5FGZdDFDC zLh!;^c=5`{W5O*I+KS;)Tfu(#!~iu==)D4v)xU9j=_f;}OD6y0lFfXy3;%-%{@*!^ z{CpozY#P5kP+x-g)6=uNL+MSO90aiIQ6Zp0Lj8_7Yz)DT7ynQf4FM89pa=*22Dp`TtX{1YpcvJMWV@VyJkawBl zuL10B1JtJt`HzeFPekUby!f%t5LNt5RxabevU2~w1$&rSIOxPpEX>TE@fkSi>Hb$1 zub88O2c4jWvy;4uqmZ4Ay`8Oztur(`-Jf;q&%xr(HgZJyFm$Z@^HpE3BeG&l-=Q`-T%0!|7 z8)Esm8z_Uz$)CL*9f2MgxOlh1!vl>9ViWQanM zgNQt?kLx^cp(}%3?{vAzw%GhN4fp!zoim(>e(&V2^SgSJH)`q;Qx3PI z{3|1SY73UH?p%;&hQ&dg~{?nLK*ev|LuPfcdaA@9%fR4C{#$}H>nF#7JH^KRu@SDm_x{aHw|#| z6T*WBEje2KVvL4W5tlMYFs6xAIN5M5$hy^?!kH(D*m~1fJ$+N^1I2R^GDr(9?Zt+f zx6Iu>={m@9n88eiw|SboS&DlnH+28B-qZrt+6hRgY4gZ1FZEhzE2ad7G06&)AncPB zW2f<&TXWTWHp?vz*kVInN8e*Ky(#|syLE(dQ*a|&I^_GV0UDcCA%%ThdM1p9iTvHT z@L9et_0E680m+@c8`+B9>4p_uU;MQ)8aACVYnXWR(QPO15 zIV04Ajx!rgKHnc|(9cD;3SI1dG>u?b7>cJlH*eG^aZLQM{~HHl1jx1sh8j(h1ulLT z$I~fVz2oZRYSudikQNCR%$hpcx&8UQ_R@1pDkVK3*))?B-<8S<-$0oH8H9q}+QSr$ zYz`#NvgEqnF?*e`#s^*|s*3Ju3W}^5$&P(~V*!m0;C-Auo6DIufCfZ@)8?L1xsrao zXol1AbjAsA3G}9wPi?S6$g2!ANx!CA@y4V2_ptTj4!)}acV?;~&9LpmfIRMOq?>*9 z#}1sz;bRxH?SOl-Xs}6^2(Lv2e(7kmY}yI8rfbP#Cp!>J9%S>>Qg9nzZzN&gPBi6Y$ zRB?B8<{obIR0r-4|M4OKDHJ}{!}oDOzwwlAZx>j?+U3kppD;S3?dpzi~oMizG^X!V=5b&Cj*= z^y$SzefzFCv|WCe5?&uf{w2U@(77FtjN)m@&en@ltYI@4vdsP7!Y8_5%0ZzNQxG0W zX6IcklXC+{Yh>?i>HdVNe|IZCkbzrl!`42y1l=cF+S)~{<`DkPV&bJm zPpBh;!?CVwaOSW@62^2!KB?BHZ%d1Les^_%yJ5xUehrnX#&TuMP&`9q`|ykgN}*D` zL}>0;#D=nYZ%2b!cSP;=4v!&Ebiuj9E5E^l`c0CBW@b|s=^jFZkVDNMTq!Qqe^Tak zoznP1bR&A=*UC34Mn0V4`8oC{Ty)n*@_(@AgE3_TWe1WM$%4@gE?0L)Nw4^!lGBU4 zLm`w+S*EE7maiQ8*5lM^9s?bw-Q&$jKDa(aGG-&vkw0oM-mv8vp6ysTNbm!`4(f3U z!e(o>dA{oN@6;Q zVKBb|8hN*+Np(hl^-!<&SuZ_{L+AzoDQN|?gBwbaMEg%?h7KZ@Q{Dv2VCzR z1pcar_HQHurhiEW|Ldh!6ceOVk}+_y!e{?2K>Qc=I{qa)K>wB<{-=}x6axNRDS_$l zr37dOmj9QSfX~Xo^zU{3vOJ=67JP=z@0vWAw$d)6K5Ztv~Bhy_4tKY+-RZenQ(y_8$ggDN%;0^*FLDYZyA#zY-6T$JnJ1ov$3GihYpQaeWAc)EIo;4CJAf> zKbtjm`nu(AAmV4cR9qLgtqTfQ3m`Dsj8kgnZVMf`%BzX~MtxH71TQy^lQY-Mb19|T zZL|yM?s(fqr_*y7sppOOY#o=kF@ASKmqnGKyqYW-P&?Ob$q{ z$YwqbQ&kb4IxRp3{{}N{o#~d{rIr2q~1L0(abOHK55-b#-*J!7A|dKIz$E zOqJui`R+g~MX3b)I%a+q6J5}eJvw#DF)loYzH+-05a2DT%%X+u6KyIK(m<8Ym^fwn z{YnG#SJ{M`W^&dK4Ct_tnhHW7YQ0?7SgIKk_oY0a>i7MYy-DzdT948{KVU%X1x4q{ zGtDK}Q-B$fU;hX?sSbL@_Pmw68XIkA9t^SM2RRq&Fu#y(hxrD zY`%ABUhXKwq zjb)e!U!=}#dNZn}NitFkENpYFvCv4oUQ1v85e9!#gBGg0z$1wS)?w{jVUDj9tba*VD6%;9$7@4R zCdT9$UF8LhF%HY3+BQgLLRmSOdUyakuSZm7$TFgoF&1Q+!~uXXb!3P3grHJPM+#4QDd=&VVPW1GTTQ zmFtH<9%i!@wvzyDiPq%~M9y&NN06`~r++Yw-&j5-6P3e@6xrR4uhwePkeJF^MCmk? zl%S|5mTI$@!%NRMR&>m>#!QO3ruJxdgX3GsBu@l32XFjkEh*y(eI879&;;4#^+%`T zYGca!%vs|;XWY6O-upwvq0gLaev~=XME}DwY+G-cVE}IG6c@9!3U5N2PL>~Ql#i2}K(r87 z$V?_%P`!MaIiso`AT#dptEYDBqcyiXdNJd=36?LK=xaIvD6*m!yXt=Md}IDO0M zdbP8|bpfAZi;jl5?_y%1n%vf7n)iBm_!*ZV;;xSMCOf!-w!PYU{PxH*th3Nkd?TGZo`<3`|I zmP)=|_`-hNxl=b1sz~lLqh#W$sLqpA7N2xo?k)WEb>!V)fx%NlH6JP$84q*3!^+xART|?<8_c&Aa3&ZGNyP z$9j{asj3Ck`l@L$2PPo0sUHb_uWX?!gr{S`!Sd4R5diz$&kwUi^OeaTCZK9phT|FP!Nh`?hJ{8x! zXo*s=JG~mK&E#THK7eXy&7XHCX@|5Ue=u>%%Bq>I_bQDf`z#m-1!d^}Xe>3x93>mHcL@2YpXyeBkLqz1FskNM`D(cHn; z?zQu}-E}i5V+7>e$|IxB=xjeT9459)(iZ}GE^3*5X?AQP?SJ9w0CebZ@g+`|*+(hM zI;0R_l8z>I=KDIoEb=xS*8aw6Udl$%4}RW(TiF_A{VZ*0`);L@1}glkjzS@1^z0v3zniy?%IN z6CbxhtX}_e(>`q&_+jE*{V5m>!fPrq<%W0*D;&c8EdHmUuEY4%N050;!ykOEkE$o% z>pp_C(E^#3|K}=Gx`ORD5u-;S3zLY(k|8t|565te5ZP7FvsTV_JAN0F-;==)^ zL>Y8=mAU#Pe@1a46)9;0A(`R_iCK?=?@VxxoLZ* z7Wbsfv~dz01|=zXc}23|au#Xo6mT_#MUwb=O(fAVC8prgBA0v>$335%|MDU z1HeRKv*F7|cm;1_FDGxP@8N#78~h@w!G1X~qhpmmfzR=dR@r!8pnAK?*(|(1%Oaa1 zo!z`o@L|*Od0TJ4cNFWXZ>T?nJwU!slG6Sfm5f(hvl2whgFM*mYt+v+1!>phv`g-@ z_P!Ozv{AGXbv0iR+HJq$Xp6B@=WsJT6nq`xDRMtoEn~D<)t0&31msE+{a$kghp@iq zkFVYD73eRoeqB_SQLXuaA&WVcie{B1>7=RGDG2zEmkmr3J-5sByqC2EGnC03(*esyA99Yhic-JFEEVv63`NgPz(y1h{`=YrUYt z^-Zn*22iY*nhJ6l;_I5!1ZVN`c%Qe6u7270d|vyMaxdp=;=M4C!+w%HMCxv2*^4lC<=l1OKSkhh2>t6lD^&Jo!b^dv@FaWmLgS>Tlo0!v z+Y|kGvQG)NoZi%5e9y>cFn%k#E>^Jw(rKb zpN^+}RKP>jok=Q|=Cy3taiv~6y7hUa9o#{SSYP+fGRhMC%0jJ3W1U;Czry~2)__BG zwtPoNs0AD#cRne`{QJa7o@#`Ry6F+o@y3fp&Oz2;&$8X$1HKG_Q!-s^?7!-D8ZJdb zcpv^=L?a{(Ip;@J_&eg6fcO?rOd39Ey#^?BQTc4d4eP@}g+4}+bEMZJbym>6VW0?Y z_qI7idp}3pyWig=63P93AjU-*64(9sYfKxGlU?|IoTSH6jj)<>Zl}T zE8?7`5ue0V9`oFCULzOHF@pkOt!tm z@N?rwrc8bTF|me(a69sA=F*9K1mS?^ew+SPH4ck+iF=bb$N-mA&Qq-Bcc+2+OlG?Y z0Joo*8p4)e=~Oo6k9{4PIdD%_p|WjG}Hs z{FGT)Jnk{a*$$QhsTUj^xd#`R=H^P=Q-fmoGxF_6G3{`1!qqHS<*TImf2|+}sF!Tc z!=%9PyGtwqkBdHJHm;EvFJk_V0fnOfOc_(i0fuNi0{C1H5N9k*rkx8p6p2}c@8jX}|Cbyqd^~87 zbySx0sr>#xk()hmr(y-_hR`)fRVDCp_&SD*4_HFVF{$R+6~k(p*13hH8J6a%I9=3u zUoDb&jcDDgHV~%y#fU}~Cr{ob_l=m^Qt1s_(?fe7U`OGQ~@_x*rw_}1fEd?UgwOU&miBI7}ceQaMks^hXbKH9twho zpT4PL@iBJ1iLS_rG$P7zHI4bkz(F-fx)#38yQJMeCp@Qiv*hR8`~}E)SztZEES8zgnPlEh;4Q-BiGxEL4)Tp@>vr_rR|$QpNa< zS`vv4I1MPTl9JhmB5H<$*eZZiI5r!RKZpaB^n(yl80?iwR{nRZ(YcJ8o0z<)KUH&} z0(bjLOj%!=`KEnb)75cD*TpUe++6-Bo^5+usg|X^Dvrbce8_6ECCtG0wQxKki;-Uv z;#*fkN}MW{2@v%DIE+Q9yax#z?5{tIexz{XZ2U%`|gsp4#svG&|YlL~0d*5p7 zA6_3hGxkgmE$AZ^#|)g#A9*&8dvP!2+~xQWw`aY-3gf1fn^TOQFkNj@ydDJjP z@eDj_rgT@56%plb>WQ-m6go-LG2*pUt&bBZo&W&Dh(Xkz*6x4{aqJDYdZ3N$WZDE55Z zbqtGTWQ(eTQP8izCXsL`Zmg*3)qB}r+x`6j%Lod9tvBk6AAz8e;7RrgOB5n)bTK56 z4y5JNM5$`G9{F77xhKfW6BJR>7dnGP#={pG5l@M)EkPB`VLDaW%cjBO68pTS$NrrFOcz2odS` zcGZg{6uj07L~qitP}nDLr2-;>gB3oCxf3R_mN6q*4*it>HzT1qCBs!7O5|Xs1<9BI~>p%murBuL~>a`A!R-4Pb38*#bI_;O1UY3R)uO} zR>mMHoUD!C8I9T2(_mekTxM|32P{a;u1PpmzfHM2o9Ej|Xp`$nv%6WkIh_+=S-EM# ze+sUB^UZ!8c8(}8F7?-tx}+g97c_jJq&TetsTt(6P*iRZv8uHFYE-Cr z{~P2jW0NX1%{*xb$rDywE?k}thfhbysCP945D3H9Oq|N>Rw?yQlfkxK zCauFB85hX_E8$4ph{{pM45_hP#^$;n-;Y><99+T*3GEA{CWY3U!6jmzNB@x+@{Jm|o!M85RGAz=iW{_inzNr%6~VoQ9D|2<_lp zk+bz$Rc2`gFUm@6{G>KM7fgu|FD5RkWHd|U4aS4v$YcZB4} zn&!$4QsOD zHWD+ef0)JcAA}sikY`Hsw<2tH>uRNX1kW+r=uwR)ylwi{Av$G^?_rwgHHV|G>mjJ| za~zxi^OGehvb_xP{Uj(G_XyjA@U3TaJW3gzyy+*kZ+&bH0Xk{KWL=Bv8D}8ZqsXH> zrmX*f&mNbVe)$74$ur)rmg4}{nuJ184UO0MfiYF8gk^=LKwIViw;z-^&9mj{vsE@hJGx&?Y`HO)RM z7&*u|fcOjZE`j`EBK>Xp&y_X2@rCWHjhRezzP{m-WrjtB1rd&(j=fxrV@giY$rz;7 zSPbp?0CFb(F;6$doFk8MVe1dWY}i@axLqn5Ej-YZ0KBsakB>Rlo_v4)3v+KOJO-6i z2A%@pkAVba+3CgF^_AyGS~dA!kYSC;fzu1aU?0+sY{vtwy}-i6znu_nUxQLW?deo&(>P;iIf5T$fXqq)H;i9S_1nf8}os0cLf;mK5xG zB8qnnRxS&LaP9YSCUvsHp*SM_RguplU9wpYZ(J&B?$vRpIdn@j{4c0!iLap1M+gc; zAN0B>&lWxb5EKfcyO&SX2l&1coA3#|c*SUP58xcqWxD~0HN+4bb52`0St^}p9YmH4 z4)0mC1DKlJwl=(%2>SFRd9NtJzhaz`IWGv}(EcpGbcX?nod<5?pQdsC`5s_<$A6l# z!?3cTN%cM|z~GcYz@{`k0=CkN4t=CV4m&sVKGU($V&{u~-rDBREIQP3WeIs}`!$r? zr|TcYmFT)2#1h|aAM!ev!t z7}mODD3bG+s55Y17*3?0d5sTZ6dit_fOEKZnriSdwAlSYGG9&5H0SHLYe(wJotG^tom|rbIT?A9Ta7H+AkB< zp%ToIQl+dFDl{^c^BUa;`=u7lkV-&Fq-u=1)}0k{r2xYihLA@bRcU!xA&Z6HI))Ol zqQk-vzwGg1`v~W0JeXpDl$OYuk`5S6snQW6zu+yDLqL+ffTY?7fhPCEnhlIccc76| z{Da7FB{?n~X6qAEMfgJ)%=RuFH65UBZL8HCTV(v&MFDj6tDKQQ?7B%bIIs`8l%Hsg z=K*P4)(B}_2JHgvi4*(=Ll z@b7Xrm77r=Inc{)fdkvkbuQW~f*aT?NzLbvJ=zX32rTT;&9Cf?ghwE_gnxuG z-)9vohs|VMD?j`NY9bw}3(yqe&J?^eLNkfZ=g_O<7qHuTDV)JV18hK?y7yM8LG!17 zb%e>{O$a_VkE0a$q@g5XHX|;%NN8PE3`?e~Elyy!=}Aeg7`MePP1F>Q^J#kxSw#td zGZ7**tGI_y!WdkVe@%R@3-ffLb7eEBzg_d0(HL-T`S}DAP6R4TL{n)P8-L4*^QZfr zs<^UVm0$fYVdjU_}2n(=WlRvt=n=^5)OODVd? zMqHZ$ohS}F?r6KN28MH#_E#R{`)*I&qHn~|XNK10V!@!swCZPhPuGmr>Zr!cG4ls( zFsLRpD&pm=>Aab&LNa$op^8&ut3nnU&Ak)x2N8lujqx{U#Z@?DV0q^w9idObCYmnZ z7)0xi8&Gq3;fC87w;0hYR>FWUF+C<34Jp3(wlUtIL@4V~1?S$V%PZ3iyHY&I3`4XA zm@#cI8D*%SvR|S(RYlz_NEWKHkDWJIOFJkxRjbCTGnly#RE{rZLuiCa6vJ9&CSe^- zvxcmfA*63+*F}fwQC~No!Ve5xlZ0Oz^-Pkj%@`8%8nzTJ$D$=a<=LrnI_0b_djx(_ z4pE5!cxgEaVIHe~B&;RkR68T`LL8tkLn0-5!5C-QdmY9SiHVzc(*dXzqUB5W#QKX2 z^dT(kupD>n{KT#5bXHal5BLOrmhFj{RMo%U&`|_~>y-gGZhqp^75=sMv3%xZh~$S& z9`bSM1DU}x=%TX5=&_?$?McX&@`QTC(+qu2DG2)|`r#!i8)z z>L=&qE6ns)px@PAT~i{edG5F#@Y8J?qu@j&tnLXj@?A)b6>=erE4M;ePju8~6FC z6Bi^yGfmOL-Rag45E4;c8a2T6-S~|~IJ?}b$lAC2M?agNU)Q_)D}Yq}4qg^)P{|7S z=dDPH$tW$cS+x33N5-U6CkIfEyQtjw)4!K3J;k~q{sCh;XLq;W|YGgr# zcK?7vPK2Q}%ByU#e9Hxq+*uu1Y@j3%Da071wjJB;Q>kRIfH(Lv+5<&dtD3{w*G<8O z=DAH+Rs6GauhjbQ8q3xa=7hwF|J1bJtb%Y3F)lUv&V$e1@ih?1`27z_ze0OQXjs`Fer()TJ@` zzaLQs#=msFQF1YK_OLgh`yFe`AoQQ3T7eO;tbct|jg0jT4D^kS_ii0vV4SXJT<>mg znLj}-%RaA@^*LUfA)mlwhTzpl@$IGh4l}(Yn8kSk2Ci~KC6WUIwrlXiUIyR^yP^EW zUGRGW#Qi;^!^32&^Sm^5rR3e*M0|W)WGq$vJw57EJw3x5-MRJTOgsg`0z?{0z0}bq)dlTm9st4oCERoH)>(u|Sb{Znb9aP7fP zc4>cmVPCTgEEQFq6MFb8ga}d?=TZN62ltoY=>IJKFf#pH8z3F|Udujun9gS^=TnTn zI{4rKsHjAK&9RcGq^Y^}E_>+9D-zpHZ6K(pr`#-ZRl3lw^+(TeT`B2l4Ku=+eus{54?sE}2Yl-}hZ0#t`~C3JNw8eUeq*Q;690(;MTTP8mQ*ts~x zUZ>idYaa?ge&p{?2{4LaI^~VByEGZ-%I`JTfp6C$VInL+IAhP1l8>z)-(B7%{skK& zU=cNXD=w^%h=1Hh3>fd;C^qMMtsq3qq>-N7@HnsqlxzOtSwEr}G_iXVaBZY*hRd;o z=B+Hp_Om9l!TmdQ{Y6^*@9CW5-=ebqFP*#GU0uP!O}pN~#{8!9ruXYu1D2Q8sM}DO zK6s5mJV$B1y)?hDhGCu?!^f#U;<28d3n>I)-$RJF95DVu&RG3%6hnOz<2|%;yR=Mo z)u*TZ{e92y)&b8)kt5f1PU!tK5=>};vVk%YlQIfu z+eZ%)Xy5SGGH87}K!C*I%g?W~@$-aWn=gs;`P{kB7^nflT%VAMh@=+3!SP}y8y%v1 zr)<3InDXw{1f7%QcYDZ4`ARuAJ19?`Wm7iSwwIXAMzp55o@LQrj<6cLDSJEI&g}17=TZBe&;+EJhJD3rqtP+fj;!aRCs>La^p~UbNp`RX)G#aY7y{MZg zlbXZ&DON9R|EA_F8mzN6eRM%4vq+1N6!)wjk3MK^4D4DtN(tNqz&+$0z=5pqjHMsopa&B)8NlQ;cb(*lG34!7+8jhe;C!Tj&I-Lwj%M;O|CrMg;Xh>)Avuy?XFu&z7cR-W@}3oRewU-|sM^P?!!ny{={rHv#~N}-@6yRuUN-jkSl)X942 zhx;r!MrG_)kS)O|z?x&^u3;b1{FZLgoV=a&N{u~dGJ+#(HgP}u!7Gp zJR4CnR2XY^r`NArzGlZjoc^&b!c%3cx@Eb_tqW851+ndT3*5oh8|Plv=R zRJW79UDg)Y!>KHFS|Wm-SM^8Mpip;@iuMGrtjV{a)!;$B{;@jt>5=V?d$lD_zA)lZ zCrYvzt%ZfN#gwGaMcpmtX;E^t$!nJ*M29DKm*YDPbFEL5eTlS@3_KE1<7A2v>pZlFnYt=@X8Dy1=@@&eI^H zD1Q1Hhz1uUq!h)(pf}3GkQ02JjJoyR1dP<#X6DviJndr65PYmZJFVoIs+<_P6y-C* zLQ;fjVm#x1CZ)trS`x&$8@@7*2?85|rR4KN=YW#$UbZ?e@CMqSR%JA6Ezq&fvrpFC zUT;u4-#L0peGVzXLWRq~seWwqK{tejU~HPH&TQcKLEOLr1KIC{`1eRO@Hj-OV3=ebWd8B%&|29zu{q+H%I zPc(=Wst`k1OfbP>W<%}AokDwl)y*|Chovbq#J_VAJT*(6=8R8H|FXD0o$M0ZJFWrA zbPZ}?y1cG#89&T!$vLbf5(Xn`8Q(kX8{aDwF92!P5YVrw-H$b@q)q=t3wP5ygg6cX z6WeEGBzA5+6Gj%&N^Hup4h_j_MXoX!;2q;43r;2sPDE=wotZkYYC}*7yZ${hP=ecv+2c0mu6rmV69dUCg zC7e|stb?J9E16sNmz|3nLFWx|nab$XnD1m&eXELdkz~&vm;D2gC9yZ@zMeh>9sg za7$UhzB;dXrsZ%J*j`C<<8>XBjjY^SA3l{MIgS@ybnQ@J4r?zD*8!|LjNPiwEff&E z);vpUx_XxGc`eKpzCH5Veye%z6R@wt(=lsBZZ`Gc-M1aavfTFa6gSM?CZxja6Zh%W z>fKp39Dhp}gfH-{9cV&C_e?wIRTe7WRcm4|De9s)SKKHi<7FI@M8cUAarka-9;+f# zzN1!eXvPT@d3{8Tc6pGq{u#f$@z$=$)Qv6cCk~l&LRtsv@TXt=RPu0FELGg{AQAio z!vMnAnJSh?(dG}2xisdmk^-cX;DT9iU&sStQCf1bgHq!@2};9f=Y9I}^jSeF=uOZa z9AHN&zXn5~7i3$~xQhHpm;nDOLSSByv)OUY9p>SeeWJ9Pls;INB272SJr^_Q1YZ=} zAnE4^w$=#qcgOT!iT=#2^#ArGC&)yu(f>XsR8CupND>V^C{UqA4LaJ1CgygYn}cCV z%jIEF2e`-k?}w;frM)3yc;_8V*&`LEOF_OsDVDt@FlV_8Ugu_M8!gLB%OOz0oLH?b+4ahAw;GPgmE^&+GBYryK7F{(}+Icf3w7Z@-FQgDk%7(>0$PX;NF) z&}Wyc6w*xarWNC;{ch8v6O{8)gEd&OcN2|gL@vB%dsF!Hg#cB!W`~yxbUf0*hI(R- z4^Fm#7Z>ZSZ#L}D)_sR1#u=WzqvN4x-99GvzuX=D)>^R97rZl_h(?2rKg8#v#`%7% z65yIfmPO0ODhz`bC}b8lq>Ce@%vDrB#RPWW$SrIoRFp7*{Ti|I6$X+Qm01N$5ROzK z!XE(LT46Q~=M|2iL&z5$B@O#EpP4h-Su@LWR$k3ei{OPk!X?bTwhF#YZEA8El%k)E37Xv5}G>0gB!6!8@izaCS7 zmW81{qC{v%vQVlg$c<2Z<)<4#-6yjakx6fJuvjt~lbL$e#Um+F5V%O7jL_>Lo z3SB-KA?4$GKg&E(9n^jZraLNsuPHAqK3O+inrCBqU2op!{W)J|Th6P!=A{Sj0(01w zW?oR<)&Vu}ex>M~aP;)&TQSEMI8-N)To z0CRiY^u1-{hsjc==67}J#B?}=+uKFHc_rQNLl-t3_Z2mQdTeI5H+36BT+d!hJ|R-( zwv=hqDGXVIx+|*NtEeV`$OCNBNaL1d%Q~FuePZSXzo|}wQ+LXDv{!fSnvh+I_+yho z7h(v^KBi9^*-#UNCRFBdHo2MXpYyhY+e8G>>S}}U4bS{V z724u%;2cAt2)3fpu(uHv^!EJI6&~mwFb}$N3RfLPaT5QEI$$Q*OvRsr$d897?Qnc5 zLXC$C=0Gk2v49Z{&rPJQwaAj)P8ZBFY0Z*t0u{`{kgPzkWctdQh>{219o=Kxg%aE2 zPPE8!d@cVX#LVP*^{;ViECRnKr^{?=jERXsB(3VONJ@3_EXr(Nx9ji8a8$f=pe3I! zbH$VUosj$8)a>Mj@NCyqzt6NUnu>E^&=YQC=K7GV1)kiw##H6o%;TnDy;#nHK91Gm z##{~-F(Je-tyoeL!~E1(pc>0$zKb^W{Zrh9!KRg-Rdv_PXPxo>ebj~3CaVid&$H2r ztC8}@C&(uT+wOn6b^n2>|M$0!h4X(1Fgl4cQ9sb&f0YYdH;u>$J&Sxu6&hy?Hz@&l zuO@ES5NxvMu&?)}uKX}KO5Thqo(J-SlAmnS%z$>UtrT%=^{q0=g>J9Y#MO|R7{}nz ziV|Gf48Jw>?t_xff^TX~!|M~dhMjBvmQLXnbje$d`K^kzx8$gB73G7|vo(|lTDyjW z2Y&fZ1((rOsW7G&M(Q1iPh-2viq3!UO)u3n^D!L_txle-Jfq?}J7r{SjMqc;2`H!4 zm((3Eq7ohQYL2Pi+Dux<2a$M+OTBHg39jXnJ3?}!qTKi=yvTPVxd`{ap~fJN{`SS+ z1PJ{bh_^FhmkV4D4Q$WvJEr>$WDXYj8_FDBQc#rz#N=;tzP!I9BK501>VU$SU>OBn zejr3jI0^U-k}_$R_$|ero%M=x9h39%2Jfa>xL1NI7zfdw+(4&@i$zxynqm9g<8et~ ze7T3nyXJzEtnh1Q|9$=wC#tF9bel}l9Hl3m)6SDp>f6^ZfR>tU7jGg z(Qh-cwQ#3Up|}=B&#Nt$;-K(VC|7Zd050-kl$9+ZXB1`^Yx;6hX>?(9CWn!sH*--u0iG5c~g zA!W}F9;N61uv30ZYenm0K}Md&0|$#lkJ*h;XWr#)xUQe6RxHbUaAIK4a-^i#R2Fm# zjvU!L{_U!|Jfn;BLs!o1!`IS+z|-f^?mMmz;v@g34~))DD6XTAas^bKyl`v_;mlK~ zINdj^2n&M?d-c*Fm+8NBW+>=y%I)99oSfBApN#j)=Nbu=odnD#6Qe3Gc z3nnQAq)!FS$u*;8!0zN57Ga8e?8+6!*7+@II4!AT@uVBo+|<)znO5wO7ICrvn`inL z&+wYI?eb%*AHlu+fth@tO zk9)>%u{ugMZ|Y?Kue)5%s>q8O`hh~HR~ZF_LI979fW&zWk7N;>;@8!*TfXJ<_2HlJ zlQ?{s7kETA-^vUB{9-b$3$iUL-@OB3cZHarPl@Z&Sag<-(<+X~#uo4Ky#X0KNxL9j zBFumZa~GUSXzp*`Iq&J!$QzjLOG9(n+p|zqHhNWoQd*pjqdwmrE(`eL9taan#CT%~ zJq+`HWsSh-A*?w~(m@GZBhm4FUQ8H294dDUe?M&sT;7t{WBEs+bOBy~G3JaO%D}hS zxD-~_$gGlnG$^5H`}LXjH0na*^p8JGE+PN|bTz6N(38}VXVu*FggC0Y$jtDbC-90P z#|W8*x*eoQ6DqfrsR!5}F~1TNg8tOAr2imEMuY-l|4Eo}>IWr7e!aQHo?6g@V>evd z7G{^**bqRm#|9Pzt^*p(5p-ES-R$72IvcrV@JpVl>~xm^V}m&n=oUOIvFZ$I68vq@ z@A7(KY^s?@zYL?E-gp-sV6jJndp6j!r)T^}VyLLVW}}srfcqUu##tNd_41Rr9=W!c-D8@#{TAn1ixMX4D=hhJ<=!DbQ}e49oYk) zaF(($Uu^{sgJzVF51^_oV_aF)^o*pNMPf|hI069yVHA`wcKh$qp_)Ab6DJaOlsLhh zwZ!L9E-vB7{l8U~|6imN6W4z>xK{eVfW^STL(mDYfPTR=0>%E9_p<&6r2aqt-Ld`8 zLT01lW3Qxw?pOQf9%5Sfj5NgSeN%o(PbmW(PM?y$np~T>T;J4KYd?Z?-M)?qqhw+R+myt{$iA*H`4303HTmBK*RtTnG#jjy*=ZGRW(y0f z&V{|YQFGn+x8blyKPSm(8LfGjSEEd);!{+St4RnB7d_JHm2QxNX5Pxfr+tJL!Q)i-=p& zDfufqpdRwx+BxxK9;pkdh=ObrV*{pT8CzZ=}PNdHEc4{1Jb4Z}S zK;2p^IC=pC&uQcAdA;2-TkA{f&3^aTLw}A8`(R++^E1p)G7vNT*-&0jgm%2~H!ML& ze4)?lHwce8Wpj;NU9uul*uYY^k_mh%MsFgM#YYVDF0Fnxk3!TzBTy1*&~oyE8-fae zuZL0LZ)`$t=j$Uq52nDR(LW`lB^Vyu0HxS7{Nz;gLYEWm4O<0RC1z|qcwm$~;JGIu z8?I*ILGY8jdnnMj0Y0xyC4Vj@y2f4u?dCoNywGC9=lv{qmzX8Hzeaycac{6d8Y}_N zixs|9zn6j}CtlxfF2TtJZw}rxMEGZajXVd~hG}v`-zA1);cO*|P8Ba^JCu81FVs3o zGV{1h;P+UF&~>E9zo`?tRp_03PBQHwV!~bG>gVbaQP3#SnZUh=MQZ}nd$t-vx^cp} z&RtN4eVl*z#mR<{x3`W348ylC-`1TDAK?55UwVBiB+KeYELF?hVUNNQxF@1dK0?F! z@4Uk^K}f`&Y$*tFdvx?%y74Q%jI#YEt6M{UH8(K8eiUn)EmmdxR_4E%0|BF0jtB%-aCe1MKM5sSb^&F`)rPRt&~^#0Db0x8pL(2mnrQMV0ni-6 zJ;p3oRYZ?Z7~q*@B?dR|c@=g;y`Sg2cC2AzBw}^Viq)WMd)++pBW68*CjizqC6<_0 zNY6ISqvUs2_B405Vvc6iAWtFMWN{J<0c?E9(Hk;7Fdu_QEw-VC+Nd)_K2`C(k2mRwB=_Uu2#PV0W zWyh0ViG*W^CWpFgSNiPN@E-?HyZrF7yv;0(SqdjP-TFA>Z+;%`8Kpahz;7J26MRJ* z(Dq#8hm!WEYt4e1zX%1k6AuWCZ{?oQ+C29}9_=qdMx_z0BX~4}i+hH3os=S%>GZy94iO&|B%V1)h(2j)mnN?6kMc4lxsptYPPi~S7U!iGsr4907FRI zkN9g6J}6HWP8lub|3;)VNdy)NWgb(OwGfe!#$n6Eyy_}rk{JDGgTjK?$bi4Co}rRK=jnfaxX&Zn zu?2l(8a6a=2(;NA{gx0dfJ!P|^Wk{Bpi_M>_xa=iyonEikCM|lJG<&Osp4gz;^AVV zR%)MKeoS~joG2b)iyx8af#jbDr~lJ0mJ7~vOe%DYD!g}b0rtSI%C3%;2LK@6g25=4 zfF|(1awpm_zfUnu^qaWpnN4F09mVDCqnQQq@G3}m=DrNR_?fTZpDa{D41`{D65s88}hWg8~*&6O%t$6#b^UN%=LmUt*k5 zBsx!%L(2DOw&Z1;QX}}X;c{)&#;8_nre&(d8ne|@yL*Y9#=v{z)oR)D0s=)Jqu@wUM&5RxHYj9j>IZE!7ADsxdg{1QxLX?&~OG458OisUGiuXMnR<; zc;NJlO|5>*)jFefwUn;BytuulkiC?=J&=Zl{jcV;Y3sM**RL3ieYIz!dX_O{Tc3N^ z*)t>F11x{#9f$7uj={0MgDpnY9(@PJ)2yD6Mm>-vz%~}&9|ofg zFDiuAVO-kgz`-PEogMexZgzp+9bZ>Cj&6x3H?Mvv@=r|D$sO{mbkDXO9scAV zmplSavA|;W>R?{q%h7fJB;&M!+bfCtPsk8k$@AT^yFraY{8K2Vfm!YJE}^nNS|KWb z5GI$j-YuluN%}kfc0_&;Z+7Y3xphQjk7ne@>)ws$>G}HkdWBJgPInq}hx%?VKPUvg z7TUy1z6}#lwpzNIDdh#a{dW9>FxB*Gp5KL#3<3-ak|}$l&xX@R2-Q^qd>t@H9V(0< zD3lNQg!G){!b96o_86QjZHqAD_f(2dIPq z4DfWiZvf=B_{zwYovX=Rv_`EyS?=4Riu>7oyQUFEZsc#DsHf1Y&dC{52Mf-`6P&6wG_(R!cuTE$U)fjUFuGb%ru$Gp*Wx=+$5>=b zZbg%QEI!I!%1Xc8|0KQ?$YBg}#wv99AM~j)CbW{j5wStNBa0kw(t;$Yn>VmcgPr+X z)YN6#E~1N5Sp4gEhDU(yB~s|8q8%nitG4nDTwhC)i!X^7?b)Rp{R0ijpQwJ&ZBtkG zZHq(NS}wQV#J~ECy39-G(Kkk!FJ70%LE8LQ=6#T~&ovTidHY23V9eBNbOfk#+{xAF z=VGFwl+Uj~D3jVtw_`SRY#p*ya@XGZbzOJ4H{9vBwvJnUg5AYlsJ43gS;iQrmQv!j zNDYsns*1Z;Fr!EQ2iWZ_3BikGePQzLxFU4lGN+2LmQX+j$&dB!^{%kl1@}3RW+zG; z!(qz65~;)GnYQEUC~eGz0RepwrOdVBQ2m5T=%-|nZM#tkoxm=uxYF7=~w@G zG?XP|+UlTk8-&uZFoLy=>p-6pN_B*M!Ebi?2xp|ObE=yDm%qmxanqMVb?*`SD_^5`kM{+sVa_@kWxp@S1~~4 zC6@0>3ay$SPL95ucQor0uLnsw__^**vyux_CFkbjK-<%;xB3dhyl@_7%^ z!~_ZsXu~IlzMb$Z%8JZy@ge zdiTfQ^bb*BC&>VB%VtD&fHvW}5psx1~bv&gpP8QT(AGp~lvwAkl<$(!OpHBH`L zrO(Wa@@EdmBY!XSC%SazW7{sB?0sqN=-IYGipCO@_VHYd_I zE0(ZyPKo(}dH5y4XPz_*M;=!+xMc4Rm^IVn1|4h2Pp@6=$iidyf?n&c3u9C?Wzn^7 zHt~6z2L|VaBJ#q}TsGpO&n|8M^%2H34JKy_DH*{E!9|#9tD`hf`Q1SS16}^8I zq9|~&#YrcWg^m0<=lPEdn;$LW)w3d^Cu*eh3M5ZSpa?DLYUZu;9{*OAVE*Rul6v(1 zs)$PUV|7m=iOxqIP*Qw=4tInLHJ7^y#AA#+7|2PVEN_$4STYFPw^LU#POiWN*gQtt zUu4z!x{unt?>-}*jTmz#*L_9=pFXLG#z17wB~3UnMlwW44j)PZ z72InVYP`3~4G$cgTwfa0f`R84FsYncy3x)NY`87IV9=_9T%cDU*t?+73HKfW0|SO3 z{CGzu7V_SxVOLC7p<8$0V6MF(Tl(Os4i2L(W!Zd1;sCvxoH>Tj_rFO&oiuHGScC_# z3fRfx$Hj$@-bLjy#I!MV((ZV=rF~x8L$!u5w0rXl&FkKx9r$?E3;7)fB1=F%NsG~N z&`y>y=ICBbq}!=(VNE~rkHK#M>_KjxnCh+Urz2;hE+|>7{4Haa{fc`16;M~{tABa# zM@ws>77^>&taPmu479q_wli;k1+r$ZCfkFk3Sn1W53Zsj?aX+GwAu_J&dZabJY{c# zOiRCBH_J=)akrLI@lAHM0u?sFhrtgwaHg2L1u^i=;VxeQ;^H2g6<#;AdV_dJd$owvOb7gd{F$Sd$6;5*Y%^Q9~Oou1lPwv#+B zcyXRFxtmg9Fq#W>y(ujJ2-%`=gfQxjS+Ih=Yap?hwv-E@{$jJfgFe>MS7lc#6cvTC z=A{lls)tBm=s>gKvA@f z4B_gVoE67HvEL=rwG|8gbF5|3i`$DS#aTo`f!;y@` zt`JrkZ98aA{L6x&0Otioezr%}hzM%k1(`~*ZZiWEghkkaa0uaVkPC&jO9OGV$>Xj) zVET9tR1@)~G`EC;(T*={cjD60(oNVA@G>i>AWjXOWw;TGQz_T$wkyYSOWI`!#@_+7 zCpmVQ?q+b#@eL)3&k}OKX8txcJ%@pC;#4l?Tq_NP0-)FS2u%GBaDTxWh-iXpp;+}s zAkM?b+!=(0Ol4HqK55L_#>7W@1_%7j4NB6t8+fkU3R|9e&gAR-jV@I7%x{~r&KKV8 zbMkn^gUh8zVXyzNES$b+#GitP4`Ku#phFQ&)O(4UEhu|T?#BaQa<$z5ntv><%%i@p z@gaCvH7p-(;LD*J&DyEp)5`Oh?@Ye9ZjX>$t&O*GcmL9L#EFECoqx5OZ-!d;j-hS+ zb#zFRDD{u&x(k)|pLDIy7`)OQPL!I|@7TLYem}zb^-;uyV&^vatUs^-<8QM91SXMFd^njG`>(caQ2Ti~H z15$1{u|4bLh8eHQ&Zd@U14R`>bt>oToTkR;U9PiAr{1c%Hga^2Q!p_jgjFKa*Z}JD zLzRU%-k08%XKMKBEoUUqGAl&xhZ0lAckBIer7n;amYZ4mLK>*i{H!M1=k5>kT^dZecnk7zj(QBM|m{@=dVns<^O}%Fj zvkPJs=0i$Ff?$P!wvu`uPwLH3PPLT6Yh0~Wu^-Y-J}2L}OUOa9!P<~*hdmF595k^l zW&vq&&+>-#3R#jbd=J0IGy)>p@XQ@?4y}{yLs`u!rJAgTpHw;~rx(&{2yH2DI^2<< zk+1s)V_j26;4h(?*6%Vjf`O!bQO9xXOdQ2VB>X=Z!<992 zbtbDs418?F44=h5clk9JYaheAkIFBW+(_}X1g08EJfz_>$m ziMu_kswZz})mK2(gt3!K+sq@Jh7e8!CoelsLK%!>XEqtyWk@Yqn1lnh3TA@>FNZei zbYDgyK9zze3;g#R@M;6247atwCd0U__?t%Ls-p33uqIXeN};O(?i}lYV*M_ZU1G>p z!$FG?&awtHU7)fM;am!(C5r-a*mqXdxsa-lwjn2+;d26NEBr!Y6>QPC0%>xBGxCUp zINBOZ()qxs{*iu%89mJ|#~9|6nuA(@!bs%gDlIz2559l2z` zG^}|f*EkbL48=JQ{gsy+dOOSv!pOm!Mx~0|Z6n4bRRZR$KHrvl0o?xG7RE5mOkWQ{ zU^P<%)jVnRcRSb6=T4^ZVa2pAi~|Z4%Zotwp-M`totE zcHGom3mGEDoBYE+7M}^GA#61S0oNQ?F?D`R+wRX^S8)84#Qf)aeTP?1U_j-));YM_^YF?&$i$4PiLdCBx&O?F_?7Nj<_J{Vs9)E&3>KR|s}T7KiY zIgOive}6A|kDUAeeb=dtId&9ie@k>8k=gCr1hgKqvfyZaEKIhvGYBZ?SDVU|Ql7Ip z6@L0;Id|_WfWOD3TonHpVc?sW)Q#C@jG+n~rbRtuLSD!b*v7tr77ZL<{u^WVA5!)Ie%gTbe+(P^FUE`!QKhZRQc~w2De({;oKaq1 z-(KH82pk+77nc?o`WJKzB;S8K?LQQ#|5FN$osHvv2;(uHP}(Rf&)=Y9plAwMMojf? zWtz?O=3D3M&@LcgTB7BD2_YL$AOnKQF5iQFc3yO-R4*d69H5p~FjkgV)@7<%TGpT3 zMsxx1A9l!~fc2Lzfz)8HlbKDY*?Ybnr$B#ZmO@bAfTz%$4OcGC*^TohW4*@Q(x?FVzU5uk-IAYw9H%fk`F0UY#1P28-t2QMjYqi4zq?GwgC(($#~9y zuFSfm*HZL_aXp43^{GXsnqO+X1PttS5NNo}1*m-$@c8(<}c{kerbR`)%~cq07oFPvI=0vvHI911NQvy8+k z@YSh=kahQWfEO4+T>@U6!=2A4IrD%TzQF-SnrNtKm!Z|cJ^`XZVe)v8^;qX7$Lb2r zz{<}fi=%3`g|{!wYfVmJQPW}?Wdo*GeZD*YAoa4qV63f)y?tyx&?4(pU@)kOKdnt1 zdqW_`GQ&gqM?{feo?hry+osn{`c=a?I5=-s^(*D6tl`HF+4*~*YyEd2H%=g2Q^$q7 z0;%rFic1t0BKS=eoyye8+J6W&{$~G%Vsyo*a&lpX?>LOKz%JSyLi$$D8 z?upoj(q$!_vY18Fi2%o<7I`fyiiwPMv2GcgQdfEUMOjOXBgt;ztCG#~?qrA~iL1gc zO1p`$`(k+cFXdlof4~%oex!7<5G6MzC6KY6HIk0cj*>x^;Y06?mI~8b(z-Az>LfCJylgZQ?SSv(R5iG|TQ5GU z5i{A4Za8OnXaDhW2a>v$`prY+IB*c*f+CRDWUm;T(!PXV$!kh~(09nTG!)Hg z3(ZsP0_{t59-?YBvAzYETl7(~lm3+1Cud7zm(>!uYQ$*mdIjYwWOfF*q~*F|(EK7R z{)^Va7iv@Dtr^zF+f7PDa8x4d=%C1(TZ@7(t7;WkoL`@9#~d|^une;VO-~aeBP}Hr znHJn+zjR8`Q4(=+s_f`%eZU~3F3T~42%u`;jVG@O{fwxw-Q!m8Lf=L*vH}p?Cj4WT zxhM$1(X3?Q4qsxT?x|4PBs$seO1yVcLIjPnz5D>4-F#s-BTyvRP+n8rEEE*QmeGNq zS59^so{yUat2Mg|mF6{g;e|?SyAvMG^8~=~$Pt<9*bkmv4$ilL*CbuOHmdiFzKM{O z@Q%y|NhNT55O~(URN}jH#gS2jQPR1aSNF^bX3yx1X73j2H>;oc+NjWVtlNKR_a3G` z@L5ONqgKP82nA-fQ@6OtZL2hNW%t6$F7G zaz=75NCL-yj;T_B!dE16WY~pWB0Dr zG=nB^kI1uOl9Wpw9go<~4ByuOB4D}wP%wf3=o>g-SY?zQMKuMIaJNabtM+5x^+VD# zY4nGf=Bp{HiMmT+(7nSQ576j+v)dm9byrfarf+7i!dq~t>5T%@RP1L87c3+xE-0vi zr=c-$*uiXSy~LtM)nldVi+6#I@kj$b)PmzRJVY(vEaj_*!aA17m^+h{&^D2FS&_r&3*Ia_TGH(2!&^i&5gi0$qSXO+ zx>FAB&hwHa+h8n<#l;HXfMeK%z)=^&1&i~*kt4+Ci&GOQ5nK%`HFR3WjQU>eEJSPa zzY^OLtIM$-A9@%jr5xm9yWfR5?R_QDm2QRbRJ%$t?C*L@H^|WDz3boH0c_jZ*a=5B z5|r`>+Rmv=12~&PR)(Zs;N#G0Yj<3YcJH37R%)NG?FEg^t|vy-^c$8Vp$>dPFOhN* z%Oyo`M6RV%C043=9#m*y%+3IsH4vwC0=rc1n_X+}z>|;qlLTe~m{oFo=3*BH9hfWg zt<>~>_Bx(5di;&*HyZJUA>Epl2izEVtce(={I$Ql?(jw@U7t=DmQlJf$X-%+h7an7 zt*lgS1lr&A_QKoi=`AO9>(nt)@&TX{UzNsj+^FGTb>`ILUUycBfO zXbBp66%NLtg|GDt_)kX$x zoYw?vvW6d~J3!h&gZ)ZTfXAEh`7(L)X*|c+q^_y-DoOKSGpMu=-iJ@R9}<(gSzPml zaPy)@VFuagwA&xIHVa6&tnpW&*iP>GIT^5MS*)V0=6~Y&01K4~NOwa+TMSk>c+)_8!WHTV#DU zIM)a1B7toLdaM;#n9DyQ_%!Hp0AaMS`zEAkkDO5>Xe(c5QRVh8Xw$(!IlrEb&wOB| zC2MI}L7~aKT_$QiCPH|Z*PGhMM8l{I^+>$iWxZQvOt-tw*b#2_L?vuG7%LH(7*cII zhex!!&ewi4_XEi>w902G>Md71>*Wx=iGSTb5gC8(z`B~-6qedq=ID6z84O1hi|fCd zy^3L$Yqff6x$6{%nSrU9*twWR_VtJuWPeMai|`=WDis*7)y^Zq^E8P2LNcke7My^yU{Ize)x``*7hIHB+AHNyagHmX1A z@M$!w<#FvQX{)S+S7F0&YApgGJWQ=m?Gn&NPb*C(M%RPc!r1*(8F_0Jr->CPQHl7(IBJH9v~1O7cX9L5Y9-)5pv|KwD|MyoK+Yyh0@7K_~S@(0flo~+KQ0Jr$@9AS~ow6IaCc$fq|`r z+-F1TTDYj&(2KL+I0f|!wAk|O>J&_K!C{<^@Axfhye@0Z?9Mt|8Gs$(?d^_AEFWYk z9fM84US$*m>GWQX2FlyK!lb$Fb84`#m&+u+cUE|fyzk5Fi&~Y#&L5%?T>1dF-@8wy zY7z0*001Y8;QzD$$4ws3@qqe(6Gl00=!rR?Kd}qU9r^(GBHm-rpDl!)8J~nQYU$XX zEhLduz%7Y{g%X*5$l<#iJ1}_@IIJ=xy?h%t><6*nc?A2|FYBJt2g8L-^qZ1~p^%UV zf+1vZnUO#{_-5HD2hSioQ>Q>6e-3mNVFfzBMNs)|Q@b%{bR|gz1O*eHuQ+T)WI!2! z6b*!vO@mv~;wEN=If7(V4g7-V!_((;&&u!jXS$!&7tFOE6cMUZTw}&{NWsgz3wIV{ zpjIq~E0)vZ=I^>q@?@+elWpEy-gc;idw#t+qq*B<9p_-|0SBsr`-GFw{U$zmUXGBq z7_X(b9VNN@x7|?looEDUTO4AGm~TjN2q4}@Ic1pK%#Li85x z8I4@+&=ftJa#o$u%%D4jOK9? z9UQ=rpTRpCIX6KLfV}aAblsj!!e)X%X9YZn$9=>bcLFSKREkQdWblwO5)$>}##mZ1 z3_3VwfE?coebl?CuY$0x+m5-{JuEtVMEZ6>VQDP8>JTS!6?%E@;9!mb9e_b97w1iZ zKqTQYbHdNC=|QTnUp`glpxV3SR$oZlHr;uF5_Rd|@bdv>bzyO)q`;p@9!GI3Y!Ss0-{96s~9rnmoN z0-~RdsmMTS%iEgU3JgE)>^-XgaI^iqkODC`y~%Zk*PggSD1a+aYil~r^lWHN<` zNRaJ9g1MQzpA%~H-@4ooJx^<`dh+v|sh$L{cU~=O|hhY1ekBzkzarrM2ZtPj) zju`1K@zH%KZElK)n(*?QDI11KK^1+fkGGpr0rq3aE@<2#0K_zFIGb{{&Z1x=|ML^t zJ?RETQ4LFDP7sB`ap#*pF!>H2I89T%y!A!X%*@Q$Orc$kPN%~|#Q`x$nWklbVqJ@~ zWA6i^EA4)z1s{!KF&SwQ$<9$tLSY;ihKO#Gu7+3B?yUoBn`MGI>BDhM@VqLW zF}9->x<^r<9)+**%daRz)#$_QSV5PuvS<=~!EwY@=p=K--ltup@?qDj4Nin^(2U-> zxHy|l(LZV0FfdPR8@q|4F8YN=Ro~rAeY_U46}O*G+qUm<+ov+$Ct^TGZ1dE=cpS0A za`q<{yH1(+9rP|k%Js=TJTcYdy@M(wVIHW-M9*CI^4$qqMuy!t$JILBNZudZTv;Ww z?k^%CLEO_8zj~3ue;qvY-wFiTUTLmi5T%q-DeX%tJ+Nq~2Y{uxXA~Mg15Fv85u>Ih zC*o5`P|35m4)X604UajB3P|6CP5GwJF`SZ%ymRoaf$M!0yw=F&b!OdcTrBsr9ys6Z zNx31G<%V1BSEL}7QyYqI-j9MCh$*UiR*0yeX>BO0D`kfLeOe=g9o>`Y0 zImcvJ6Lr-P&@iIjsP?aHY1G!abp38`JFXXae%9F$BKv`tg7Qx4q2*1$QAVa!2%+#f ztvOy&MK2tRHA`eYSXHpm>H@ugT>u|A?J}1u?#!wvBS+DsII@dtgz5y>W6LOaHt8to z6&r-XD9{MS;yLSfa4SYK@7y)V4e20h8zu(AjEhleKo}Ztjz17MijK!n=Ibcb(zBWQ zeu~RgKbIX=a$N7#L)yLe-W~LHI@>@{To`8T;1sm|VTd5XP{auqs@O0@kPxs2j2aYR zylPw?-#rsQl7ns+Wdwwc?l=-iK-c|%EADG4QzU}PIFuE#uHO9|x;ZVKe?&+R5ec5@ z(WE)E_TLo>QzeF|EX+$BAZET^Z%onRNST%Nz)T;UAB+Til*GV} zZnspAKlNuFY?B;$&ab?IU<&E+<5=1LiitaeIk zUWutSGdKJ{&}mkbDKk4=wosY7P#)`ikyiQUY`nb4z1gsMXF$&gzhZ4WS?<710v;Dq zyU9%aOoyvNVwMt)V}fagP|P8vq!jk;DR%lE70RXw`}#Yh~&1Q2EcJ z#%dA46acEck=xJcvzPEduZH^=RbrTD_%{PqA9+m;(>6Y&ZpG{Kw$E99#n7WSJ0Bk( zohGtEp|wR#<@M=PCnJW`*o(X32w6bJC(01-uYLqQf3Sdc6ZnlC=f|@pY6V3lS*4Jo z?}>~!0iND9*`0JB_Kjb<3FQuV7KfyM)~F>TrcP9erxWQNp#u~5z@T{o8ImuqbnnDIJ8WdW1nZX(i1#ex(mac=Gx2XelfJl|GZ zKUeF%e}&`i(6&D)4rBv-0z$vawl@}vt!c;hviFp(ki$Og{0Gm^kkw{_2(RGOmBYoVuxb*IFN=wfR+B6JfayW{zAw_nw-E}d6Ri@ zSaBRtwj?7WZI-{s=`x(_;dHPkNlhTdf4GWg6**3)(eW*yWyrEy-{kCQJml2)sC)*Y z=!Ji+(>Q2j1D>81espHwFuBROSwv5Sh@1d_KDxcW)yBN)Iqteb)@Wa>qhgk3S-@fP zSLT_Ii;B=c>}!3Dz>(hNv$piy(x^6i&|# zhkEs2DA%2!trBl?0Vm48BhkOqabmz;;nDl>3^vNPhtiRnuKo%J6F`AXoVR&e*pRr@ zCGWy{(_CT}NK)zD=4)0es%OGV@fc7&gfq;E*YpHxvq1M-$bG0pI#pP;L@$b4sJ-}W zxdwO`H3Ukfl2f&hk+QS6AZ#aH8|TWLn5~rP{;uhYu~+Uij;TkqJ&4qR^Kq(^9rNDL z+Zjrch`MO&KxS{f1s*!VV_Ny=fsbL|L_VplyE=d-IhomZ?fp!yM?q_|B$ai?l)VI9 z(f6rk&vEqdmNtxsq|G`&%*`EGR+La_;&rz5TE&<(V;&)pVZZn>csix%XMqe=EJA$X z8_k?7BBsVkbIIn5T(YZt`S5-*j<0s>FQ1Tx<0j%s+N!QK$iB0pe8`SCey`(oo8E=` zkluhz>?UWcB8=|^1|EzDu$;$ySFPR+zUm)G%f1}bi|YGXc2f$Eb_k8#3(7_a8d7IK zdNsv}-I!oyymFvXi^8t6GUjqFrSw^RqTHMS4ucy}x^HPfI=zUn5i)woTq=ESrv|}`7n8E3zYB=uG4?RzjX_ z+d>E{59%SYOR)LC)(a91(js&yXjV%uUPj{6DfGw<~V#xpcmWX|Ux8(blR3t6s6q#}l!bfX#E+CBz;HT#K+I=nnH16yTL(8L}qjCMSqknqxXhQiF;MCBt zhKGj;y|KSxOT}Z}MTp+c@WMIrdF~&^v7WxInG(`8r#ur1%2WV;x#o3}v`0I%A`hN5OEXYp&4Gr_(PWX>e@c&b( ziJ6`Ke@ttqs97nam|^EaW`vh0V+Cr7^<>yohmdff#VM|6qM>!E&}?fuLy?jO#0Qhc zg9=g+N-}GU2qye;OdxFiHBUUY?AqGe?1@_C&}n11b=9(wrKA`FtW3Sry1Ue7A0h{* z?NgWROI%Q24}*I&83JxnzC1vGkL?ZR2ef_(&X?6oyjvgTS|BY zx3COdHXf6oQ;dn;MwGCNEowEF+0;S9t62I+yc zX%n73fpHMqzUs6JObe|QOgEfrL{q<{j*A{=GsJF?Rd1tC+=3%DqR2>AGQi9PXFBBQ z%?R|Z&4|t$(|JF9UvCFi2`ao`D#HRGebv5)d#HZ;lvXG84#&B3Dkv_z5^|z3U@_v!i7X z5ndl=LgT9lb@*U}dE-cC38z)F(##$2W*;W_FNg92bsG|4lOM-PbCUgf&W%1H8cvh@ zK`NZX`7A_#`stQi=uRhK25{u>_8d#2zX*ci&U}p|&_Eq7)sZ4y|E6D_kBCdlB*BqL zv(K=@?RQL+ErYbM(*muOQPRaeKR5qR6iHzF!^Q(yvl%ReR!Gi=2LbuE{rcUNQK3ta zA4dJA-l6xm-~KPHK^3N?aWH6hguG}!YERUkpoIn5F$q>WT3iXr0^I2@?#t4Io)J|D z!WQ$%SoFsvBX?n*1*!Za`}*M1wVeC;^ zdp{GUE03B9xzTZc7oj16Tkcj#Hi(hP*MGVG;Ib1;3(4(x;e+?L5AI~=r}n)eJ45y= zyE&ZB9{%fGV`5A0od$c?LC^tio4FdaHDvh1ud8Vqp>qciitmy)UQVV)y;}A>r&%P3 z(PFNSY--$uUcUo0MmKUK)yvP-5dij|U2V&arcm#%1{rj!tRddeD4KJOowR%~j^bcB z^oP`U;4uA2{$6!V=Ov_#GQcbcLut6*+7ByGa;}$zJc(>;Fj?mo7a|FX2ovQBwXiN({zVCH0 z3&>%p46Q6g9@*E^xx&J(nY#h~lR|ahP#$E20y}uYSt)V29W?MO9rz9t;SQ-Y?qSvd zn0Pk@3YoYsK(*pA&=ujS&?4^7xPkjj6p^S1NuR0|_hU5{mS;D2p~}wM+WI=wN5b~7 zs^^Y?J3(X@KEFXJ4cX;=1h{CztC444#sO)rnbfQTNV}}nB#{h6dP9(MahcMJ{@4U_ z>G$<0iCsU2Xa2Xz?_kxs>+ikUW5Z%xxJF)nYk)D{+?4p%p$q$(Y&Hv3=G_ngTzBWI zjnGO5$Pc%Z$MeTELeDh7{wUcol>+^1x?rLBAA=$d!=DxZXYDO2w(_}d1180x6PaPt z5uu9i6iGYEJ=Q9{BF3~LugXs_-JKE6&Sy1h$~JA0Xzyjd)fId1Z&&}O0^G`WQWEvO zy7hhv6w`JT)4V6xXLkH7MrJ>ESz7aB#|*FE+zM;j_O|5y=G0)6Z18knoTqxutp4ab zx_VR1s}l9CYWWC>J<6Omyf8gwA;0`aRoec-EB8v#c&r0Ydpdabk`LVx5F&+z69Iwx z^#gne+M8M)8H z$f@-Bav6}ZZbMt6c;9H<)3{ApG|XwI$|smgv2#oM{poX|b8CJ7+}C%cFM}k2@WoJ= zheO7OK@`Ak7y;kos>+mbt03h{rD~O4c0Sv7YnRv4FhhC{98!pf@dS*n%lC)el8d9| z?Zwu!+bvKFQP4Y6=6GZpO|~+LXv-635aTL7TL?u>mhulY!g%DsHu^7Iqm#f0W)`ja z9Lu`92l=34`WmXkEGT?;M6C@JOcIZXbJjBT;Fp)-nxd|(GlL+zdyCKD?3uh3?3mNk zNJ_TXBw$%-X4jPHlERgO89FK&E|{BT)vOSbzaVvUIt3A4M&D#PShOzqD`<5}*T%{2 zsoA$b70UjQuE%9N}Tz@Q2kxMlA5gx^f0N)Ur#2A^2 zkq;Z4f3bqtXk=4njWe)}H8V!YTL+6KOX^D$B@ubE62%wq&qmt(U!HPkdJlq8*$Q2U zxRaJzQL1Jv8G~?Fc|$l%du%S*K^qJ@uP-DNKV18!wlXI{?7^&b5j`gEj=2w%)1$)T z$87f9^Zq=X({CKJ^v*tsM~A4yaW!x7cfW!I)|QJ97#=}#a;c%nM09mji#2UrIDkJQ z@ut2_nmH99@VL`mo7?U^mDmW9VO3(*!2DadI~K3v(e{uVFel`g5~h!UT_NY?TFOdu zn%0yakoCOdFfwjc0koMaPNZ>WLk-{zA{)Wm+!*D|%`-xTIP<3%DVpj#Mx}bXjW5cE z%*ORx*gM6P%>Z`E$V{Q_fZh%i0)!GFLm^UrUh-|Ex3zBKw~DyJy4}vaDi!pzyeXJ7 z((ngtp8PsBAJmWt4cj_^!0wTHYg2sOm6JQ4oacHwSNEh9Y$$6`@^XjcH~edjYB)<5 zhlfEqt)QFp6S7vtnI=?K)AFFmU4L_yv06FBo98oq9&RCg%F2KS7~F~*OqHhJ?PE1* zDD&oh=?&-~_u*mzL0PYxusUkWion2`eUMv?__ICAti#OD9GpRi@l#<@#Yc}8nZhcM z)MCdokB`bX$_DaDenE{Q*Np$$Ap0M&!~e^u{6E^m{(pxS0)h(4O2+YG!vO|509pp{ z#((?wf4IN?Ux#ECw*T3JJF5w)f}-A4hgK~jibR;ZSaqU?y>205jKey4V$xJW7)cQ& z1{*~1xwZi%VuqCLndzBq!obTj%Qt+&@8s6poA z^1fsusU~@tH&H8l4SXFegJS?Vw#1W`H3DU{!I@0!$m4J`nsMDfE-NHIHX1V~+gB-8 z%+B{V7sMZ7$g|3u_~)G2{{9&6sBiXz%1+PZ;JD*`0|oC+?PYlb34FxM5%FB z1FH>nJIr?6%>Z-5js|*q460G71_s#>RfCjl{G-7TZ*=)yi+ohBDss>x5jD+ln#^&Z z%oyxizK7gHYY#oygz*c*dS-Rd0Az7P9~qX*Z$+B zqx@*;IPBlyks_}AX!v!e&-^|w{_bT)hxtiss3=6ARO%Lar#+uP{rCOb@J*)25TuWP zD7Z1*c!SshZ(na+k%FaK+O=S*WP_;K#Pvq5J@vD2KUB73cU;5P#JaUzs;q7;YcTML z$eT2@fzyJqC_P82m*s2gAq-6G#$ujNHrIy#%5|BxSJr%oL<<=IsF<=^@p??=`;=gW zKX7>--)3q8;22CGr};2&T7d~`7|Q_ucYm3VPc@?)1wGLCUUKKCfh*TUW1>O;sgTMz zD#UP18XnntfxM$GBe8Pgow!onfM(>7MP z3>@ExK33(3YzR1;ITe`S^(?yyLNOlGuy6^TU zeB4mc{%C{l-4k#s?JBER@FvJf6A@vS$mAM>e`rtruTw3jfs&U+uVOKB@@Z|AfqcW$ zKz2QzH{63FP!U2d)=qOj$TcU|$g{$CIgKoE%RVF86)8CfMNlmwht$UXc*nkzYNHMPCdhB!pfaoi`v_G!Wd#NCmL-R>L*4P0yi@#28=r4Hs~_sE z0{SNqYb9fS4&$iyh}nzc99cxv`d?I~Y+5y3TemG+J|^)Ug;h01_L^e>_q(t0zAL)` zU*p(dyTRxO?#+DN$<*?QaSeYecCoilT|nTJ|0?80vSr3lDJ|)&?yVwT10!Z1Bop61 zN(`MUnz1~{U(4qo4P&@XgK#BMr#K;VDCOKBDO*4dB?1J7p0oF^doOG+ibEsDRm+a@ z3-eTUg*B=zqGgYso$1-2rb?HP()*6V41k{Z;XMMuf5q{imqYl&kX4jV$&$#_M}^?t?sN!^hU*1XCJ=n#E=WEu&DshhP&!r2?8_q#+T%Z8;>h+?ErR)|Lb1#_bu~@1mJ#jlM zO3(WZLrxn$2^7=j_?vDjpJk^CNu^CvSa9K49)-enVg#YS4I<(7 zwx8-Y7`bkjUuz~a0N;?_FCa7waZMcXMet&}*#4Wakpqy3R3{>ZOse%0MeWL5;Zt-# zF`Y86`k0*JBUpoV zcZpKf4?C8t7Pfb^HhpzEViYGatCT58KS2SeDxr0Ha zxZsiYF9N2jR5As_gxXzMOt-BMoS4x)5#gX+PDX}BUw5`=P{NLP7`rMn7ci%r)W<@5 zc%h|v&aTW+j^cK>?(oi`{b~Cpud12>3q}T7lko0Yeh96(7F`a>IJ5BPrKi7WX@LQa zj~-a9DmXln!kh{8h3Z^KurPWK;q)v~Q&N02yi+c{+o$P)?elziJa5I?hy5Q;|i!0fs z9=MH(tOww-TxPtj=W*J=$9A-R$7_GwDXOCamN%4kgmU^V2TIwZk0@3JT0Ap+b-s_A z{e18bp+%#hOZ0#}244@08aNhw%cqiA#lH zmm-)Q0R6J=pP9dR1Yl`N;C?~fKQN+`ZPY+ajCy6Pfw&iJd=7W*YRFbX7e9^)=aDQe z0Q1Bupo@TGb#|;sJteJ_uoPI`JFevcBGG^jsni;INY;Te| zpkQ<88ix>my&mu97hPCjX9ZoB?ziMQMA?Cp8~`=uDY^EXSl%yhl8}WR9`6Y5f|+Tv z-NlEEKi>JE%F#*d9*2L(4As4=h4;0lKdl>ZETkXn)%+S-`b%GD9A&Rr=iD{B8r zGTfaNza>3XM2NvR~?$QEOm-JK1(1ggp0yVjobM0Pgz$3(t4K z4EAPTw5EWCwY8GE-3Mvnmbbqy>%tL~bBdcEmODL@G)#Y-r=&;A0Tvh4o=;a~idCv~ z%J8B3kg~dnTqVhB1}pv7qKl+p(K=?Ov{_(-8&E&U!ZFf`H+S;S?2G~Y>kzt6csEHq zhj=>&KP?>Y4gVbcW>0-^#@LbB>;aXHHk=oJPUJXQnWia1U*h16Y}}eWJ0%dhK(MqH zgwui}E^P;nQ|=~FgrL}tBz#+Kb>q^`x;aRg5i&e_{D1=A$*Omb=7IkcqKtg4*|%%m z*g4_mDUehezWr-@{*{k62HbC2S)j&maLFa>tL-I!A^;x^$c!{?w`%t+tSoae? zx1=ZBy0o@suwpH;=%u`K-5F_QJ*L5qZbMx^O6^1O}5s&f{P z|H~11uzlrvz?D{T9t|{eog<<*z}zq`TlKaW+ZE6fRdC%H0E|}fSVbi6#Eu2JlEqk0 zY4q8Tpp%BQe$^1T6_}OMgzG#{^JD1?Ejq4Rek&q_S~)FMgR7HR9k>jeRwXg3ooDv` zWt}@v^y;>m^H^Da@7Nn9$0v1!|BJ8j;}V3AAxT*3@cY+1I!k%?U|JZDI=klG)h#T5 z|2$z?pw-qq#g;|yo=!0#bayOlE#dxR;q#C9!q?ZSX3|G*ArwLq=#08b<0s5HOQ%U{ zQ-=Z^)l>7VX$n;=WZE)Y_BuYn_f?#dXyD&e()+-!z5DI7J>~SQGqj$t{v0-tB@2E^ZQkFeP4WjzV8;90RYimVgU4<}m^ zI<#YCs~_uQBxQkZvNXHM!R* zovK2;3i{A)#pVu?g!r?+oT?SjFV7wEIN{2cbSArck1~25@=9z+>LNrmHm@Hy2R;SF zI3+r6!CJOU7*!WLoU7XIiPm9{;h!Hpyq^Izjml0DTuYc&HbueUyyiJ3JYG&Q<9z{U zvCO<(UfF59EInAHUlnc=38X%pGcd!A?VP0R@9KT+cOdP=OY<Ev5q0YLc<2 zjFE%8q+Ac}oPNTWjKRIW#JdLO7O+3uu6BQ#hi?|~&ax57{*@8tJa_+0N7^^gSH0;s zo`|Spi$Eb)_@Ie9n!a1yLRop=JfwZUfWP{SvAcMBX-_t9?rKWA6=oJyly^cn2PpR~ z3^JUyuCG|kaK%Q)Q?J!(iK|xU@&V&MGvdNzax6_ss@SG+ zlDZO{^W=O`%6#?2LdPq0w)wX0O63MQ&;of)!Z-8yBfmg^6+AB&)ndRiJL8p-%&KozZo#TbILo{dEna z&`%b`EeWQgK4wgVc0WHwM^8gdNl6>K-AL>$jjC}}b8Y9s!DGLGaasSQ&@T?09=`g^ zW=aoAt{e7>TWH@5=ZM-jo4WCIO~sd!_>rAzfv6Q%V(}_Wj^+z{K9t&kf)?;X#-|l% zr1*CS_Vn%>sxDmlu!|oKUqW~A1$62u5zOu@=i)m$2S=3uxEnhLmn(gYk_q#<(J57e zsL({n-{PXyxc+qkSsutQg_tyZu=KIYSUI}gZcD5TUlNzwt>#kzg2u%Cr`fo)8Z{w> zGzPz(r0=uexi6`sC-UV!cr}lzw{oop_~J0OW2k^_O0u?=r+0SmRR=F8HCF9cpq~kFuEOZ# z;0s@JY~-{*1pU{wgRBmlHf*Qsw|tes@tx0Y*?;&4Le&x1_bB`K_mWDnAuRU^I2O7lnZ7L`qB_RPUCdm?FdoH|W`X*vp#aF8TlxwIMPs_@v{5Qq4=wGeAQ08-PD(O{ zQJ)pD7@cJ#DKnG#a=&}W4?X75pYb{Wacv|WJkgdrLlw)>lhPIJi}3$fNdK$rU|7@JL~<= zFqBC2B29u7Y8Z4P_|=WcIWnOUcle9VJ>pbz8Ps~}jbRrC$zXkr8#6d&#BaFV?c+mS%3LO!&AIu^CvRm={JpWuOh7_LG$4P4 zcTM`eA=b4f)6ql0xxom}VO`HhjcpHfED{M&I$hgtH;b8;BhL{~9J62}EwxMDJ#)h07>KiaScxLp} z0N)tjAo>q?fYv;mW+2^ox*>IKY{S|HrX5{7%w~Yi2tI@8Jj7pafGKra*K zY225Ae-;mFAgFrRJi9c@BD5#@HBV)e zI;nf65d(m3lBt<3%dBngro|z3L9ha;pGBU{j|3VG7f~MdC z|IZ`~C=I^TPC|2Ocq{sL8;d&Q5J6r?;yx8&i7WYBV&6ZS0X!{^JUK_(&!e!8T{~J1I5$?BEaERs7I|OJR|jhB$2#3t z>?+{bm5krZDILqy(?dU*{PRd{%${P6BNR2qXAbl(F^gOvWD-w8G6i^)32f}1Z0eja zkQMG$6MS9(`Qe#wdO?9V7MA)TiA7*l1QlSH6d2iYDS>#MN>GW4S9NX0r1$iLBubNb z^Pbgo?U=9J}WlJXV<}*xR4zg4#A`}SQSdEQel~G5Wn1G z8QUxmfcY?|`z7!wgW3;s6wZ@7)G- z#+!`A4oo+x198!TOUuPgpgCC>Gy&}R@XO5Sa00{Ho;fxyR41u@SCm#_RoVE59Qfpl z+C1-UqRfKg!luX&Sfd^|RX!K5m~g`AO5+#z`?N@eaJ8_4##~JhF$skx47tfZ>veJ7 zIpI`vJd&zPu497Wf?v-ghYBvb)0{(KiKL&zn%ubB?Tq%W)r06$V{-0EG3I$$FaQ1; zncSbHzTi1|D>(KMZ5xQZ8-_fb@8v1|f{V{O{masO@=3A!o49QGljrw2oU*)pB4yDjqWN4me%qB8El9}z8Qr8=^}tBY%R zWQ12I?&j^bcMrqf>jE#%d{5b?hYV0C&L6H9D!pr0L`1^q9@8!eweo^gk%hgCN5&=# z8WIDuzTV?M0`VEZG|=eqkZ<}U@nV}rM?(58m{Nuz!@@<-8P*(t4mc5^&2?p0qYFIE ziNA&}Sm2OY{@v@g+yu`STZYg_@W9?3(LFIBjsI4tL2ktZtWpb$9kX41mxbv89HqGe zr@i;b0IH<= zA|=C?k(zP{=E-HQa%ZsQDg_{66f0LQS^kEWRYiRq`wQ7;IR~@I>Fv52`5nsq zVHrMw;c~D$(xkHj1CYm6b^>(36X~z79k(7}lY3c(3_v*D-?vC0!*`nGWSh$ifyTNU z5{vRJc|g@|>*C$<^d_VdBw^I`c@>^Sanv1;9|cuOR1j53)isAR*n$2qs8bNS^P`T3 zq@@zDdJOf@aBf+GcRhD^T@=%1pLg*(uS~)$$sN@5J83YqsSS)RKE8q3WSz$qM6JOe z{``*B3@l$e{7jf()nnPMuWT1qYPI(*AWTwi7?(a71J*t4PYT4`kjP)h={pIkHCDe#cB)T% z09E3rZD0dNp2(>Eu269WK1{J5A$bco)Tuh8^-eH6KKAfnUMw)KgI56T4Uu%RH+7qW zvyQFLYZI1xamI(Y*(2Q#E=>_G3%jdIwW&cuu)0D2KDV}GslH_~EYhAvaTCxx!Oy24 z9}TjQmjyj1yj0r*>L>r+DqQ03(EB|GHW>W^FH=I@AKR|6k{=*F-+IvAtM!9+*ZLLp zN%RFnvR%8UuGXE~)mVDpG7)&2@F4WH{V%TmWCno&>o%#()gcF=9FFi3GE~0J+5_m| zpH>euE=A*Ft>$>bFm5M)DJx>@pf3+21TEAybA8d=!1>583f_P-xdk4ndC}%I+XWw1 zmfr`w#?)lYQY18Sq|^ytvW3Zv0kSVhiDy$Uw*%#NE}NoA#wgT-9(dsxUd@K`GRhL7 z5W+OEchU|fkcM8f{qN;9`ThRk3{aAVeci&0=&ImnO9{k)lS5@){ z-se54!xN4yo2A1uyJYN=4(X}u)yu>Jh8ViJ8j31X>mw>5p(CRqwtQGl_hYAV;VcX* z9OECfR2bg^46~?U^jvl>ZLUZRAZ`pa&<}Jf6fDNeL<0;zbJ+(jy|rqKBJ8q6NX`^}qF^7?I*Ze6mY;<9V}p>&;R_cJDiDm;%yR8v_854DjpOYjB76Yeq0;#Brh5cC25CQ zOb!)q^vsGzYHCt=srA#d^C!}Yjs+CO=UH#AW32vT>NRQdfmNB~LG<3VwCnv+>_6@o z5=R*i&;Apfnmo?@gKYbuP1}cUY$5NUO%gQ*cvN-UU-C?6CJdOA9Vizv*hRWPzNo60}rVbr6| zOUx{pP$mhaC2)5y&XlGQ&@}`E&aupvMA=|=TK4{(<-4;r)OH894V0e5Ol1Gv0dHVKKnu6fpG+;2?yAEgP|%rUS7<<*bbn72H7uq}ztSFOx~ z0H_h_IsmNXnRtD96-i~wfMheh@LH8?pS>B@Iuq($->mmg*1K;wJIlP`aPyJ+v1d6# zk0xLIixgPBZ^pmBf2&e~(2o|7jP&`9$KbXBJ* zYR<(PAi@5is~bw9Grpnj=DeX~(!03FMip{D>`Se+;)GH!AAfG$opDio@N%IYbU);3 z-pKuW%nF4U22P)Ccui4l30dZOo2eu)0Fj5~Rq(6%2X*;bk|8}X#Rxbq(z}mB3qe0q6jfBP`tYvj7JlBy=$ZT)3LRDV0m)@dYJXTh>m{L_(S)L_aGI zG*5^S3#Qxq5T`iucKY1RCsBqfRVoC!dgM5pd~@dM zO-Zy!WZ!Rv5nFRHLQ<%f5G`Zkz8f@8=n%*cFauTaNWU%(_073o!KW-tWlW-Xpy4SE zC;$9{$b)Ysnu;y_O)&}f$%8I0vAigS+V60%(!PqcN6r|jKjLb;aizh3==fMG)jolj z@ImjDFP7iGXGQ$l+Lm3Haqy^Z5B#0o-b5Ie-U`$wZr%q6sUzVB%d=(5;y7G(6Kf3b zQuQj26I9%hnS6|Rx8R8lX%Nr>g?i@F%2tP`ssLZmiQGG$Wqo8{@mPF6!XrFou!|@m zY}lKfGcVN!f}NGY80>*1{@FO)J{Wl`zuEnrSOkhqQ?oQm8k$I$(*0l(77T{WFVg6U z360*6rpeJK=h%L*1lL(6JV|lLJ=v_{cBZmmNkOfp{mbQ>_x1H$s(mlaoAoD2mYOMm zD4z;M^AyJAmX};&*&=DlVn4R%gCM>Q69pfdS$v+?)SWtIQaw-NgQt(pR$eQ&UDQ+~ zub;outfGBBD3kTTEz_Fl~pIjIle>hmzOmDdbf7@_* zcF=d97tpN7(}GiPTMo9aUGFQ!GY6JuN(Qv|fx={E0k0%zi+`|sop)WR@XyrHlZmnH zHm^k*E3bmIdCAF>NU{16zBj0xdT@z|R;i4fVinDm37!FZXpIRqu8*{kRdGgG1J@`z zB-)5;@8jGY=?R+te5kX}oG-F8dKF9NWIYM)9<`;Kn3yML?JAJ1W@qT*7vtHmuJ9y)VhhQOq!@1f`hT)sPb@GTmQsJfdI?^`=iL!$48DIa&n?L3u_d zab}Ta#MAhU*9nsYr#A+U6!H9l`HQ)eyfWtMs9W3~7|IUEH#Pfwp^Dz}yUK`d! zo)%w($AF7N!@XGXI81(mL#R92ZQ~28ocOsxS@NoFR6j4TbaDsCn!Qr`&F1dYqCbnB z78FGZAfbg&7LCu^VI07r`~KkJ%*)Iq+ksdnd#-l zhwk(@BAPwo0P+*P?+NRg`_Ppub#;%bAw{d;T>1hT~g{9#8u^=XoJG@bwK zN`1)PywBSwyPM_Zve+el6Z!kv@M;&<^Y;N?7sWT`hRUjJXI5NFUcnmH$t<|>t9FbD zC1VxJ6)Uk?W|=7E0ZUy5A92r8lNBUR2kY*lrR&|BVl8Wa`!!Lv5OEL@47zT$R~G7gBDS=D19AuLdXR_ zk1o$kP~`ofHVF}JS2E+o0qa^C3u?>i#M)P3S*SddtCnZaE5pOjt3=V1) zM8Pt!vhG_|c^^-TTBXt&B!=wGvp_?qSTd<%Zl35p7mSs4_wK89PXnWw>4xk)uL_h8 zB-RhZ$lGSYMviXjl7+LY{hHU6n0c!^Fo4S|rWhrct|NhJ=?wLr=82aMdj4wiyDf^B zjnmOxD%Kx`)Z|hbs#3_-O%eT$$o3tQCHgqCC*8H{*#q=_ux>iOIW!i7SigN{ zbu3o6=#PONZ67yhRE&87+#gU}(A;OJFYG=B@xv&TI^oQ{;Q7eZYW1v`XwsyWOIDtU zK`VlEL8A0$$(eZ)$oDc3CYjXtMkWnsOj<22pHd$B5PAY@q^OfZ7bO|tgeUH*n0MCP zi<~_uc>}1&i<~fX6p-Q59g;Lc-Nu?)yjAh-TXO3O3pZ&xA4l;Jp7ZCBH z60#J*j!9Ts(k4bHu|kEx0`an_fU!R?`3%pc7~ztl8#6k-kebNaNSMf}7$-}&&RDQ2xqBQs^cI&v|1$q~VD-{{QomEL(jVaGo}{-ay}B8(;K&U;zK7u_ zM>ChU(HHOFb>le2a=*oopTRQ2t2Nr~lbxVRqXwZqth}D(ZrByQxsJ!vnLOYP7O?NwnL#4%$(77Ocdq{`zGdzhJ@MnwjwZN7Ta=5} z0F;W=f~cAq$fCW)n4NLk|K zz|@L#J3Bo=%RGhaDfeXwYOK5J@^tk&tFBMd&C3nR|EPx{j!cjKI^!{3PnuAuF!Tuq z?%DaXpeB;}FKfMgQezrz9et{L_frz?bM*%7*2gtsApMe*U_I>1gLiq?{!}TceTNbUIr~3E6kN&2K|~xbj=laibANPr>GM1z zxg90<=QkoRBXzL;D#GCvU!X5girt6qv3xowtc)$vPG}g3@u|S-dy}$yk-?Kj)+)C1k;W&NTB55e5r02?-TeM;V zSRkjE2y7*>T3?pvtyyA0p1FSm|1I}7$Mq$9kM)ZA>@UVU|3zO3#<(4A{LT0ILkm0q zfiv?$O!ut|8k9lCEcZn{AC^WhBQFNokEH(F79KAi)Sl;_-FL^FQA{%)JH%kqc8Se% zrzw8fNm|Ol!LLnU_L8bN`Xm{J#i-|0@m3@MiD(zTVe0=B_^##}E(*1RM+ujPnmi7YIfMM#d2i ztD6=m2?)^h4b}SJUi}Ya{r{^Z$jrp?Kjg_;^?$es^)7zIBw#E7XNXlCUUCf;6wkMd zoozQQM9~^i6#+ol#{>xmiGX_*kdYusH;6|Bk%aaMX$tw%2-U?ajqWa+R$TAxJ+zm( zmeo2YH;w(l*%9|BHAHzNpgT5QT2cRH? z8}}x@&oh~(rO=^l<(!pSt_4C}5eX3@^7Hq)SN_sOUWqc zELNrie-ji=!E}|fm>3M>xg_h=yu7GVy;`*@C8eePX1BR%dH1B#vF>`+HHu&5eA*=L zYBuQ|pnjYq6XZ4YPjLeG!E|=8#1Fdq2n9V5`Cghy*gnfSprm^22y> z$}s=L-7`T?M5#PKz!3QzAEA0O%Y-s6$9p!B)wQL}>gu)n9H3K5(SSD1&7Ym#T?v{WpQI2?0MC| zNM*qjuf+{@C#GxS^>)wM5;$J1-o3}Ed2__<0iq5kv)Vi@NH``=I^ugW5KhmXp)(?udit8DghS7%sWqptWb%FQ zJ%)z0BgX%mA$>DdX}E2T6-7PkHb!JDSQwO*nWL5M`{81%%N*P~ecHV^rV8`o_ek}; z`2KWJ3=Y3Awo4OHj&t(hxZMbyc8i18_W)RBHlVizXw;JF>cgcDp@R>ungfwGAoPZU zwj~qS?T~SR4>Xtv_M(I$D^4$p###*oq<$!0c*RauhG#T{wTK@Q0rwpM(_2FT^l_lP z^E!_lXTV$INQnCj>|>%I2=4|GWCeIQ!S*CAafS7_ne6!G(xj(TP&BAmRA#n!Hhwys zWp{BAOV-7u-OQq*+dINBB)_2wJofR-(vXnBTp>Xm;*qO>Pi*cynPY*frVSBOzA08* z(JstrDm7+8v;FiS@hAzWtnNc&SW?to%9=;mR;8S5yjex?J~pI&tgoMCP+=|^+Qz>& z`B$>xcfME=Cq&cQN(dm?HfW6O#~S?>0MnMDa?m>+1`_gaEOR zao%t4sWP#=9vZta$_I(>;0zfJF>}Z#`_fi%xjNV#+)9%`;!67Z6TTyZk1!L|WVx+M z5@8p=)3c57NfwO#yIvkH7?f2p^eaZ zc3$Mk9VDf+j1gjLKobB|A}M&t8|N4M$30)v126B}0I~pY4#ur6rCuy!0Hq88 z;dQ?F)oPyUZVi?#W+6BjoHf=)7zk>&G-C{_FQJ=MKo)NXDL}RYjnqHgMr2(1G4>)C zi0n<4Jw?#G>WY-L_^j*CwF;|QC>95Mpx8wsqzMQ4fm8K?+dDvv%=)g+1*m+sBx^o- zIOgsC!Fooex*kgENq%${&X=UY;4R!n^Tx6%uNSg6g9ae6fV2UoR`XochX*)#9WTQ_ zaP`*D`AXQRP(Ut-S2OWHy6n9B#;m)zksB5>kqN=WtB7K=@|iveM?}fjBdhQ^9Q;DV zHT`@fT=z$~Emw(O9$u@u#CoQXu0yTbS4dlCFB<$ayL z0o(MKwLR_wz_&rmG&B1gO<-huN_*E`UXI_FxF9 zlvqy6xw{AJ_8`R7J5-B!@_#4u=k>d(J3Pz%D3E*9T?U)_x*G`E=U+n`@CL>PfkL1u z#L(}9V4oIC8ha>$J9i)6wla?Pva*9l<-d$=*NeN8yyn?o`n-PMq>9hZWZpWT;y(Lp z?d_#o57GDPOpIa0mJucI8YVw93~)C;HOCh#!>mf@BnLpy!m1aF(wB#%w%i$YQ)y{| zp{$@D^|TRFi6!Io9X+5WFsCF11a$NNSY}lj!s!67>&dynW+)lZ9F&2CRh?E7s@5f8 zFhTF}J;&)9_R(`m9Fro|-7PJ=({W!>O7!)O`ql$Hp2~w3(f8`aERq(hsR__*(7;|>r)q+aqzXypTCXkppa*ub;HxQ z>zAb@8z-muV3n*6QpA<*7!M_orm40c&=%s_In)>8FKtL`%I`_Tf}ukRqiw&WytjsDvC&A1Jp)P>%(akCAn5{W z-;`v-2tiyVB^$oUzlALf!bBjdc#U=D&aon6s{?^*RHel=HyJRxZ1eoq71Bd)76qSz znsY~}Jq4$p)|he`L`C+XN*^W&TPC8il{_vrMZX;M40$8XKOdPDh|-0z1lIp9Gw|cP zOl51F3d@l~UNME-rHD*MF!?R2z^x5XI;2yZ#3s{8cAIoBwGLK89-k?TR(vBWsqD&5 zG`){gFg*noeQtEGezvo{N#(Q)z4QDda~ih`SuZQIL-bjbcf@fGaGY)^iZ% zm5G2x`EL$h1^h4Tm%#hV6ZHvh7o4q@o?YF7^VU)4jrZWOw42&=`yV}5Q*l{Y7S($BxoK<{D zb4MmY=BjC9#_TBRSyNLpdx=t=%e{zYX=zVM#}bk2n|^gN-|2tbnf@a%{D0omnEw|p z;$IjUVkt{$v7tbyGB6NgAVgjX5J2)Cr0##e!So-?po*u1DZRXrm9mR1y&M4}0|UL7 zrIWJ@0S7b3zb_jXQzv>c8$%aU5mRG(6H|H_Q#*4P3j$_##{c2h9M#fw-flzky{kXa zuD#qCdL7S|IpcCn>S|49k;`tY!o!GkTd|hLleA3s_n!wMfRrk#UtR0WdjKFo+i30v zp9ZBIgjR#lb*P1o%tH@d303M-C}Mz#rLQp$WeY9m?m5V*9LflSE{2Y_9$nz735bNF z#x#d!k!utxY;1DCc+o-C$nhSAvWFVvFu`D9nqD{zJqQS_3^LX|UlhX03Ps2W{1oaO z;%-qx$2(3kG_4^arRO=5j&+P&LtGQ0SgKf*f(He{HC`;_PB?&3h8=JWW7WNQ6OzIJ zhhB7CISf@n!!?7pO5J#Po(89!x#>DAJ0XAa60~SKdN(=;}wK>MY zjjJ4}h{|Y5v{FB`|uxnB+()=^Eklz5m|%o%7y*_ndqGy#IX8_uS7VqhA~ilNPb~ zz!YxB?2lnl>q1ciCm59NKJ0t4RwyQVY7+RJKCqeGKd7ksKuH=hv&g90%?qmO^vb7v z^2U(KMd8Iy4bY2n*Y5jKhIe8ax_M(41@l?*-TQ_2!cQYI!ueyuG6f1dfVyt%c407P zCB2BE>02D{MkLi@C}%sRXEnUa@r9=g|| zmig#iSOPa~ZjeQLqZx9Gs?en;i-7Gp2K#$i>Iy-~oA(g_Tjf8p*({ZsuD==5ri}`v zj>6|hfrTGh zhP)|4#RAKj=Y9K&_ELWIyPBeaXyj40Ctp@ckZ0W=gnk6v`0UEAjuS2(I@9eQHj%}y zk>_L2imX&H05YG;ZWdi1)h{{y- zjOEnIj@T$HLQYZgiS;Ji6ZyoOJifH#iVJ|3^mGvUm-Gnn>kb;ko)~%SJYa~HZooH_ zeD_Ex>*Na3e6LAdMb+nZxMZHAu6IG-N^Z#cr%g}~p3(5^a{2i9tTgHO zM@?u#s%x)~(qnP*IoH9MVTCUVDvFLR%4$6OYN%t>Ba~8jm}}WPl|a7;?`m!dYv`JW zw021a**s?k`4?vt0H0n2Wh+puk)(qk7h05?63Q6Qv>N7zr*M-6n9YM^0F)h=46s~U zShgkHyOv_P_JZp7P_tf4SoB%4ujs=HoHWz;W&5&DHKQu{&!V}7$D14fy>0_>bKk`D z?DZ_|fZ?RQKS`9F2RW!g%YoNPU2g(ssQA6JEYQ?g!K=#t{W;p?$PGqI#e zr_`8gU@AiWWQ<>7*uA$jZu*<WBTZS6_1Y3M zB&O8us`_k)Qgh@AjT}UX4U3^iMdg zum0!&=g!iRgF(j}t?d*`fTEb_wENtx^$gQC)Cjh) zIcV71Qxwc^*pHZVi2Ai~^KmA3LRw_24~G}ydf}XDN)??d?P~>v%A(qX{v~V-Cpa;s zoXvHt_-ox%?CKBm^Lk>_nNR(-J|Z+{wWgVKbSrk_r)HgkOm0vDp-T@7a&Ew4vh)PT zZ#~lOmt=9XPr`$P4J%6DrG(g1`qQl{A^S2G#IGeCZ0YmcOdBRI;V(Kj?p`A5xhYDA z*|2VB%OwHFUO|dkU446QyoloaO+;VRivs?8>tyQ+BDmG#B_Z_fs_VYROH3q#I(YUh z!Dg05OsUNlOEyR7@~hn-b_pSFd?i75Rnx-OI-f5WJ-t1}?*QHA^Wy%lT&m3OL3+ZdUm(!VuUx5d| zwI)Q#f!*NM6&}H)=TRe-7~!h)$WOWYW(K4@RNGucU86-;B|7C17aU7ajpi|+tnup< zMVEJz)#bT;_1VbVx9_o3n#slTCeV%r&*_<-ghTu-LcW-a{eEwxcUPogy{JmN7XiE5 zc5%HVnQDDm(-pZU)|e1a zdEBK82S3KK^T{{}gPDHni+n6Jc|F$$m;Gb^8;fOXF1j%lu-ns9iu}3TCMzFO+bFm` z%iZ>^LdgcHeW(2l9saHO5TmMLVOl#GaDKiBZ-(2_MpdR^-DIKYV>JtYC%o1h`Nkc1Q{pH1sEhBSA+J4s!*@E37;%=7_4 zZJ@R~`N5-OvyG%GFl0qTShC)21KsYhL(NMj;pG5X8bIq9Z^H@S#sFH+kz~Xn0GFOgg8GHr!Hpk%8u38t6^AC7U zV~!F@3YO#WV?S|MoSkmFpyoLk^A$pCfX9kG{Y}AK6ForsDA~Cc;p?~WUrg;IQ7W48 zQrTG{w1fGQDbGmSN+`|t50Rd^-LjBT5-}maA{X%d>Tg~8^68lT$#clIQ>7c{w)&jA z=Fop7i}`V9U8W+bqT+DOb+HZHwDC4g)T)p0#mYw)(!StC*t| zDBeQnz{r#PxmQt}S_N{SWb(~4L7Gd>r#4l7g>M&HXo+Yf>=q7BnYn6?k_w}XORm1% z@?alPwwz9fprrR_9QV^+Qn4ABnL%*Lvt$WuF01fVN~}S}ML$FiqQ$ao{t_|tKS2*e zvdalc6k6q(utZJFMbd4SK<&pKTMlu9{VK15crx_MwAY?JCNiRq{2rPFtAlr3j1wq; zFTUiqJ&iC_jBsO8Mp~A{)v=xynM?nRG>3XKplLdT?&s5vv(={T?6uj&>N7gVT#wh9 z;%8!#`3E$1R3N$&eyM(!R7_W71;Dx@D5SciAhM9D+6Z&Np8Ep7#mc1 zinOWr%;CHV`3^`f&kLnv`Wjl)nV}mZkoqmONQ!whS>bg!XT0KbU1iZGac11DQ2{J7 ze&SD^|9q>W|M``d5ucKyQ=YWm$F*J5-9QYa9MKl^u=U~IN8PU{JRracQEW!CC=mP< z#Z+)|Bp?n~Gq_$?;AHY*aif->g5R4?Kibd{P|GH!-&Rn;;=K(I0ZD-!Ky?yU-jhSG%R^ zy6&{2XmgKyDhG7wdj?T5*I|sa_Z1^TEJ(ZWBXI8*m=BO0zVvs4#K0$!gnIkNAiHfj z&~7Z>b@~_T&fOdN>qj-xG}UCvHHvoIqW-69dG!W+iu&6X1}AFOFZBdZo{b@oPkXC} z^aM{ks(~!q)GvrohGW;&_FW{V{y!-fASKN!&I<#(Q7I^h{SW4v89F(O8Ny(1cme-9 zhGLo?&M@BpX5oLOilqWj+`-9S+)-LqLR!`t;0Oc)oSYrSWx)1M(m;C|2U(^6f5KYK z$Th%;3LqsTW@-uG1@cN*{~r|n^nWLuB3OBy6np00eV?=W1_9pBkprswD$kz?@z#;8 z=D)gyelBSG<33#!Lk6dgU57dO<8;2UAF40^{oL*h2SkO*EQY`5)1Xng$#+9%(=R7` z6&W%tdzI`bz-XY5^K7Ny9-NFw;7cckb=XW(UMz~7k<3Q|rl~IMnUx|?o}ur@V@A7u zzrSip72K$n>hh`LwsAO6!a+&V9jOiL!C_Q^Du4CnD5-vzr6$_J4)&G$ldXinbi-8+)FZBp&8CBcJX z0il`J+hc@d12Sl8^Vo_yY0_`|*xeh9{AtIn6RiYicK*?|M>!bnVt-qKPOk%7MUoQ{ zxySq@yl0OFO*7I(1;1_5Wg+Fxe$Z=cdmQ%`GWFNhHqu_I9l7fKfY(DeHe^1=l5FWD zyz$U_7CN>dRfRuwvvpw#DWB^$Aq`3?cd@#tpV|5~1gQnNE;wWvl>|jYou0`rouv9w z&ol?`_%?vt8mi-rU;8y(X|=rD@ie<=o7t^v!N)`T+P75`e}e=+*yaA`p8CA8_kIKS Vc5 Date: Mon, 8 Mar 2021 19:40:33 +0100 Subject: [PATCH 2/5] Ok --- .../lab_02-checkpoint.ipynb | 770 ++++++++++++++++++ Materialy/Grupa3/lab_02.ipynb | 27 +- 2 files changed, 793 insertions(+), 4 deletions(-) create mode 100644 Materialy/Grupa3/.ipynb_checkpoints/lab_02-checkpoint.ipynb diff --git a/Materialy/Grupa3/.ipynb_checkpoints/lab_02-checkpoint.ipynb b/Materialy/Grupa3/.ipynb_checkpoints/lab_02-checkpoint.ipynb new file mode 100644 index 000000000..678b3e268 --- /dev/null +++ b/Materialy/Grupa3/.ipynb_checkpoints/lab_02-checkpoint.ipynb @@ -0,0 +1,770 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Pakiety" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import sklearn \n", + "from sklearn.datasets import load_boston\n", + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib\n", + "import warnings\n", + "#warnings.filterwarnings('ignore')\n", + "np.random.seed(23)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Zbiór danych nt. butów męskich\n", + "## naszym celem jest przewidzenie ceny - prices_amountmin" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "ename": "FileNotFoundError", + "evalue": "[Errno 2] No such file or directory: 'menshoes.csv'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# wczytujemy dane\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mshoes_df\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'menshoes.csv'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;31m# w tym momencie następuje odruch bezwarunkowy\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mshoes_df\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhead\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36mread_csv\u001b[1;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, dialect, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options)\u001b[0m\n\u001b[0;32m 608\u001b[0m \u001b[0mkwds\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkwds_defaults\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 609\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 610\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0m_read\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 611\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 612\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m_read\u001b[1;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[0;32m 460\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 461\u001b[0m \u001b[1;31m# Create the parser.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 462\u001b[1;33m \u001b[0mparser\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mTextFileReader\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 463\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 464\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mchunksize\u001b[0m \u001b[1;32mor\u001b[0m \u001b[0miterator\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[0;32m 817\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"has_index_names\"\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mkwds\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"has_index_names\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 818\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 819\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_engine\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_make_engine\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mengine\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 820\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 821\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mclose\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m_make_engine\u001b[1;34m(self, engine)\u001b[0m\n\u001b[0;32m 1048\u001b[0m )\n\u001b[0;32m 1049\u001b[0m \u001b[1;31m# error: Too many arguments for \"ParserBase\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1050\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mmapping\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mengine\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;31m# type: ignore[call-arg]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1051\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1052\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_failover_to_python\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, src, **kwds)\u001b[0m\n\u001b[0;32m 1865\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1866\u001b[0m \u001b[1;31m# open handles\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1867\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_open_handles\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msrc\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1868\u001b[0m \u001b[1;32massert\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhandles\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1869\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mkey\u001b[0m \u001b[1;32min\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;34m\"storage_options\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"encoding\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"memory_map\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"compression\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m_open_handles\u001b[1;34m(self, src, kwds)\u001b[0m\n\u001b[0;32m 1360\u001b[0m \u001b[0mLet\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mreaders\u001b[0m \u001b[0mopen\u001b[0m \u001b[0mIOHanldes\u001b[0m \u001b[0mafter\u001b[0m \u001b[0mthey\u001b[0m \u001b[0mare\u001b[0m \u001b[0mdone\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mtheir\u001b[0m \u001b[0mpotential\u001b[0m \u001b[0mraises\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1361\u001b[0m \"\"\"\n\u001b[1;32m-> 1362\u001b[1;33m self.handles = get_handle(\n\u001b[0m\u001b[0;32m 1363\u001b[0m \u001b[0msrc\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1364\u001b[0m \u001b[1;34m\"r\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\common.py\u001b[0m in \u001b[0;36mget_handle\u001b[1;34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[0m\n\u001b[0;32m 640\u001b[0m \u001b[0merrors\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m\"replace\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 641\u001b[0m \u001b[1;31m# Encoding\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 642\u001b[1;33m handle = open(\n\u001b[0m\u001b[0;32m 643\u001b[0m \u001b[0mhandle\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 644\u001b[0m \u001b[0mioargs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmode\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'menshoes.csv'" + ] + } + ], + "source": [ + "# wczytujemy dane \n", + "shoes_df = pd.read_csv('menshoes.csv')\n", + "\n", + "# w tym momencie następuje odruch bezwarunkowy\n", + "shoes_df.head()\n", + "\n", + "# jakie wnioski?\n", + "# @conclusions\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Korzystając z przyjaciół przyjrzyjmy się bliżej\n", + "shoes_df.info()\n", + "# @conclusions\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "threshold = shoes_df.shape[0] * 0.7\n", + "shoes_df_drop = shoes_df.loc[:, shoes_df.apply(lambda x: x.isna().sum(), axis=0) < threshold]\n", + "shoes_df_drop.head(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "które kolumny jeszcze wydają się niepotrzebne? \n", + "które kolumny trzeba przekształcić?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# @conclusions\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# popatrzmy na kolory butów\n", + "shoes_df_drop['colors'].value_counts()\n", + "\n", + "# jakie jest ograniczenie metody .value_counts()?\n", + "# @conclusion\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# wartości NA\n", + "pd.DataFrame(shoes_df_drop['colors']).info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "jest sporo braków \n", + "pomówimy jak z tym żyć za chwilę \n", + "najpierw wizualizacja \n", + "jakieś pomysły na wizualizację zmienna ciągła vs. kategoryczna?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "Black_Brown = shoes_df_drop.loc[shoes_df_drop['colors'].isin(['Black', 'Brown'])]\n", + "violin_plot = sns.violinplot(Black_Brown['colors'], Black_Brown['prices_amountmin'])\n", + "violin_plot.set_title('Rozkład ceny względem koloru butów')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "popular_colors=shoes_df_drop.loc[shoes_df_drop['colors'].isin(shoes_df_drop['colors'].value_counts().index[:5])]\n", + "mean_price_popular_colors=popular_colors.groupby('colors')['prices_amountmin'].mean()\n", + "mean_price_popular_colors.plot(kind='bar', title='Średnia cena')\n", + "plt.\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Imputacja zmiennych kategorycznych" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "kolumna colors miała dużo nieuzupełnionych wartości \n", + "jak można je uzupełnić?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# możnaby najczęściej występującym kolorem, ale czy to nie wprowadza fałszywej informacji?\n", + "# lepsze podejście - nowa klasa 'Other'\n", + "shoes_df_drop['colors'].fillna('Missing_color') #działa" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# czy można lepiej?\n", + "# można!\n", + "shoes_df_drop['missing' + 'colors'] = shoes_df_drop['colors'].isna()*1\n", + "shoes_df_drop['colors'].fillna('Missing_color', inplace=True)\n", + "\n", + "# po co ta informacja, skoro w kolumnie już jest napisane, że to brakujący kolor?\n", + "# @conclusion\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Uwaga, to co jest wyżej to wcale nie jest prawda \n", + "### przekonamy się o tym przy one hot encoding" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Imputacja zmiennych ciągłych" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# w naszym zbiorze nie ma nic do imputacji ciągłej\n", + "# zerknijmy na szutczny zbiór\n", + "fake_data=pd.DataFrame({'num':np.random.choice([None, 3,4], 100), \n", + " 'cat': np.random.choice([None, 'Puma','Nike','Adidas'], 100, p=[0.92, 0.03, 0.03, 0.02])})\n", + "fake_data.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# średnia czy mediana?\n", + "fake_data.num.fillna(fake_data.num.median(), inplace=True) #fake_data.num.mean()\n", + "fake_data.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Outliery" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# dane jedynie z przedziału (średnia +- 3 sigma) - ma to sens gdy rozkład normalny\n", + "data=pd.DataFrame({'num':np.random.normal(2,0.4,1000)})\n", + "factor = 3\n", + "upper_lim = data['num'].mean () + data['num'].std () * factor\n", + "lower_lim = data['num'].mean () - data['num'].std () * factor\n", + "\n", + "data = data[(data['num'] < upper_lim) & (data['num'] > lower_lim)]\n", + "data.shape" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# usuwanie na podstawie skrajnych percentyli\n", + "# to już zadziała \"dobrze\" dla każdego rozkładu\n", + "# załadujmy nasz ulubiony Boston\n", + "boston_dict = load_boston()\n", + "boston_df = pd.DataFrame(boston_dict['data'], columns=boston_dict['feature_names'])\n", + "\n", + "dis_data = boston_df['DIS']\n", + "print('Wejściowy rozmiar: ', dis_data.shape[0])\n", + "\n", + "upper_lim = dis_data.quantile(.95)\n", + "lower_lim = dis_data.quantile(.05)\n", + "\n", + "data_percentile = dis_data[(dis_data < upper_lim) & (dis_data > lower_lim)]\n", + "print('Wyjściowy rozmiar: ', data_percentile.shape[0])\n", + "print('Pozostało %: ', round(data_percentile.shape[0]/dis_data.shape[0], 2))\n", + "\n", + "# co tu jest nie halo?\n", + "# @conclusion\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# to może boxplot?\n", + "# faktycznie, dołu nie powinniśmy obcinać\n", + "# ale na górze są outliery!\n", + "plot_box = sns.boxplot(boston_df['DIS'])\n", + "plot_box.set_title('Rozkład zmiennej DIS')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# nope\n", + "# ten rozkład taki jest, nie można go za to winić\n", + "# tu nie ma outlierów\n", + "plot_dens=sns.histplot(boston_df['DIS'])\n", + "plot_dens.set_title('Rozkład zmiennej DIS')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Grouping & Binning\n", + "### Agregujemy klasy do wyższego poziomu lub tniemy zmienną ciągłą na klasy" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "czasami potrzebujemy zrobić ze zmiennej ciągłej kategoryczną \n", + "albo mamy zmienną kategoryczną o bardzo dużej liczbie klas \n", + "albo dużo klas mało licznych" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# zobaczmy jak wygląda kolumna brand \n", + "shoes_df_drop['brand'].value_counts()\n", + "# co można z tym zrobić?\n", + "# @conclusions\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# jest aż 560 marek, które występują raz\n", + "shoes_df_drop['brand'].value_counts()[shoes_df_drop['brand'].value_counts() == 1].shape[0]\n", + "\n", + "# czyli grupujemy w kategorię Other?\n", + "# @conclusion\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# przyjrzyjmy się bliżej\n", + "brands = shoes_df_drop[['brand']].groupby(['brand']).size().sort_values(ascending=False).reset_index()\n", + "brands.columns = ['brand', 'count']\n", + "brands.loc[brands['brand'].apply(lambda x:'nike' in x.lower())]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "może warto najpierw zgrupować Najacze a potem dopiero Others? \n", + "Nike i NIKE to na pewno to samo, ale może NIKE - Kobe to dość niszowe obuwie i warto, żeby było Others? \n", + "to samodzielna decyzja" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "nike_synonyms = brands.loc[brands['brand'].apply(lambda x:'nike' in x.lower()), 'brand'].values\n", + "\n", + "small_classes = shoes_df_drop['brand'].value_counts()[shoes_df_drop['brand'].value_counts() == 1].index\n", + "\n", + "shoes_df_drop['brands' + '_processed'] = np.where(shoes_df_drop['brand'].isin(nike_synonyms), 'nike', \n", + " np.where(shoes_df_drop['brand'].isin(small_classes), 'Other', shoes_df_drop['brand']))\n", + "\n", + "shoes_df_drop['brands' + '_processed'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# można to zrobić też przy pomocy słownika\n", + "geo=np.random.choice((\"Poland\",'Chile', 'France', 'Spain'), 100)\n", + "geo=pd.Series(geo)\n", + "geo" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dict_geo={'Poland': \"Europe\", \"Chile\":\"South America\", \"France\":\"Europe\"}\n", + "from collections import defaultdict\n", + "countries_list = [('Poland','Europe'), ('France','Europe'), ('Chile','South America')]\n", + "geo.map(dict_geo)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# metoda z użyciem dict/defaultdict\n", + "countries_dict = defaultdict(lambda:'Other')\n", + "for continent, country in countries_list:\n", + " countries_dict[continent]=country\n", + "geo.map(countries_dict)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# naszym celem było przewidywanie cen butów\n", + "# ale może wystarczy jeśli przewidzimy to bardziej z grubsza? Tanie, średnie, drogie\n", + "prices_hist = sns.histplot(shoes_df_drop['prices_amountmin'])\n", + "prices_hist.set_title('Rozkład cen butów')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pd.cut(shoes_df_drop['prices_amountmin'], bins=[0, 100, 200, 250], labels=['cheap', 'affordable', 'expensive'])[17:]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "cutted = pd.cut(shoes_df_drop['prices_amountmin'], bins=[0, 100, 200, np.inf], labels=['cheap', 'affordable', 'expensive'])\n", + "cutted[18:]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# zawsze warto sprawdzić\n", + "cutted[cutted.isna()]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# i spróbować zrozumieć dlaczego\n", + "shoes_df_drop.loc[4176, 'prices_amountmin']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Dla przypomnienia - Log Transform" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dis_dist = sns.distplot(boston_df['DIS'])\n", + "dis_dist.set_title('Rozkład zmiennej DIS')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dis_log_dist = sns.distplot(np.log1p(boston_df['DIS']))\n", + "dis_log_dist.set_title('Rozkład logarytmu zmiennej DIS')\n", + "plt.show()\n", + "# nie jest idealnie, ale na pewno mniej skośnie \\:)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Categorical variables encoding\n", + "### algorytmy często nie lubią zmiennych kategorycznych" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.preprocessing import LabelEncoder\n", + "from sklearn.preprocessing import OneHotEncoder\n", + "\n", + "data = ['cold', 'cold', 'warm', 'cold', 'hot', 'hot', 'warm', 'cold', 'warm', 'hot']\n", + "values = np.array(data)\n", + "\n", + "# integer encode\n", + "le = LabelEncoder()\n", + "integer_encoded = le.fit_transform(values)\n", + "print(integer_encoded)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Warto zauważyć, że to ma sens, tylko dla zmiennych, które reprezentują jakieś poziomy/kolejność" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# uwaga! \n", + "# nie panujemy nad kolejnością -> check OrdinalEncoder\n", + "data = ['hot', 'cold', 'warm', 'cold', 'hot', 'hot', 'warm', 'cold', 'warm', 'hot']\n", + "values = np.array(data)\n", + "le = LabelEncoder()\n", + "integer_encoded = le.fit_transform(values)\n", + "print(integer_encoded)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# binary encode\n", + "onehot_encoder = OneHotEncoder(sparse=False)\n", + "integer_encoded = integer_encoded.reshape(len(integer_encoded), 1)\n", + "onehot_encoded = onehot_encoder.fit_transform(integer_encoded)\n", + "print(onehot_encoded)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# przykład z naszych danych\n", + "# kolumna categories wyglądała obiecująco\n", + "shoes_df_drop.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "shoes_df_drop['categories'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# podrążmy temat\n", + "categories = {}\n", + "def split_and_count(x, categories):\n", + " cat_list = x.split(',')\n", + " for cat in cat_list:\n", + " categories.setdefault(cat, 0)\n", + " categories[cat] += 1\n", + " return categories\n", + "\n", + "for row in shoes_df_drop['categories'].iteritems():\n", + " split_and_count(row[1], categories)\n", + "categories_df = pd.DataFrame.from_dict(categories, orient='index').reset_index()\n", + "categories_df.columns = ['category', 'count']\n", + "categories_df.sort_values(by='count', ascending=False).head(20)\n", + "\n", + "# kategorie typu athletic, *sport, *outwear mogą się nadawać na one-hot" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Scaling\n", + "- min-max scaling\n", + "- standarization" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "niektóre algorytmy nie lubią dużych skal zmiennych - regresja liniowa z poprzednich zajęć \n", + "jakiś parametr musi \"obsłużyć\" bardzo małe i bardzo duże liczby \n", + "inne potrzebują mieć zmienne w konkretnym przedziale" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# min-max scaling\n", + "from sklearn.preprocessing import MinMaxScaler\n", + "data = np.array([-1, 2, -0.5, 6, 0, 10, 1, 18]).reshape(-1, 1)\n", + "mm_scaler = MinMaxScaler()\n", + "\n", + "print(mm_scaler.fit_transform(data))\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# standarization\n", + "from sklearn.preprocessing import StandardScaler\n", + "data = np.array([-1, 2, -0.5, 6, 0, 10, 1, 18]).reshape(-1, 1)\n", + "scaler = StandardScaler()\n", + "scaled_data = scaler.fit_transform(data)\n", + "print(scaled_data)\n", + "print(np.round(np.mean(scaled_data), 4), np.std(scaled_data))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Extracting info from date" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from datetime import date\n", + "\n", + "data = pd.DataFrame({'date':\n", + "['01-01-2017',\n", + "'04-12-2008',\n", + "'23-06-1988',\n", + "'25-08-1999',\n", + "'20-02-1993',\n", + "]})\n", + "\n", + "#Transform string to date\n", + "data['date'] = pd.to_datetime(data.date, format=\"%d-%m-%Y\")\n", + "\n", + "#Extracting Year\n", + "data['year'] = data['date'].dt.year\n", + "\n", + "#Extracting Month\n", + "data['month'] = data['date'].dt.month\n", + "\n", + "#Extracting passed years since the date\n", + "data['passed_years'] = date.today().year - data['date'].dt.year\n", + "\n", + "#Extracting passed months since the date\n", + "data['passed_months'] = (date.today().year - data['date'].dt.year) * 12 + date.today().month - data['date'].dt.month\n", + "\n", + "#Extracting the weekday name of the date\n", + "data['day_name'] = data['date'].dt.day_name()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# warto poczytać\n", + "pakiet category_encoders:\n", + "- https://kiwidamien.github.io/encoding-categorical-variables.html\n", + "- https://pbpython.com/categorical-encoding.html" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Ciekawa strona z przykładami wizualizacji (wraz z kodem):\n", + " https://www.machinelearningplus.com/plots/top-50-matplotlib-visualizations-the-master-plots-python/" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/Materialy/Grupa3/lab_02.ipynb b/Materialy/Grupa3/lab_02.ipynb index 0550afbd2..678b3e268 100644 --- a/Materialy/Grupa3/lab_02.ipynb +++ b/Materialy/Grupa3/lab_02.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -35,9 +35,28 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "ename": "FileNotFoundError", + "evalue": "[Errno 2] No such file or directory: 'menshoes.csv'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# wczytujemy dane\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mshoes_df\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'menshoes.csv'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;31m# w tym momencie następuje odruch bezwarunkowy\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mshoes_df\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhead\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36mread_csv\u001b[1;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, dialect, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options)\u001b[0m\n\u001b[0;32m 608\u001b[0m \u001b[0mkwds\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkwds_defaults\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 609\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 610\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0m_read\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 611\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 612\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m_read\u001b[1;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[0;32m 460\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 461\u001b[0m \u001b[1;31m# Create the parser.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 462\u001b[1;33m \u001b[0mparser\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mTextFileReader\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 463\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 464\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mchunksize\u001b[0m \u001b[1;32mor\u001b[0m \u001b[0miterator\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[0;32m 817\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"has_index_names\"\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mkwds\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"has_index_names\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 818\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 819\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_engine\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_make_engine\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mengine\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 820\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 821\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mclose\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m_make_engine\u001b[1;34m(self, engine)\u001b[0m\n\u001b[0;32m 1048\u001b[0m )\n\u001b[0;32m 1049\u001b[0m \u001b[1;31m# error: Too many arguments for \"ParserBase\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1050\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mmapping\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mengine\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;31m# type: ignore[call-arg]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1051\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1052\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_failover_to_python\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, src, **kwds)\u001b[0m\n\u001b[0;32m 1865\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1866\u001b[0m \u001b[1;31m# open handles\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1867\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_open_handles\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msrc\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1868\u001b[0m \u001b[1;32massert\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhandles\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1869\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mkey\u001b[0m \u001b[1;32min\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;34m\"storage_options\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"encoding\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"memory_map\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"compression\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m_open_handles\u001b[1;34m(self, src, kwds)\u001b[0m\n\u001b[0;32m 1360\u001b[0m \u001b[0mLet\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mreaders\u001b[0m \u001b[0mopen\u001b[0m \u001b[0mIOHanldes\u001b[0m \u001b[0mafter\u001b[0m \u001b[0mthey\u001b[0m \u001b[0mare\u001b[0m \u001b[0mdone\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mtheir\u001b[0m \u001b[0mpotential\u001b[0m \u001b[0mraises\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1361\u001b[0m \"\"\"\n\u001b[1;32m-> 1362\u001b[1;33m self.handles = get_handle(\n\u001b[0m\u001b[0;32m 1363\u001b[0m \u001b[0msrc\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1364\u001b[0m \u001b[1;34m\"r\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\common.py\u001b[0m in \u001b[0;36mget_handle\u001b[1;34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[0m\n\u001b[0;32m 640\u001b[0m \u001b[0merrors\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m\"replace\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 641\u001b[0m \u001b[1;31m# Encoding\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 642\u001b[1;33m handle = open(\n\u001b[0m\u001b[0;32m 643\u001b[0m \u001b[0mhandle\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 644\u001b[0m \u001b[0mioargs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmode\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'menshoes.csv'" + ] + } + ], "source": [ "# wczytujemy dane \n", "shoes_df = pd.read_csv('menshoes.csv')\n", From f02c025d7d760b8850dea6aa3f5685975ab96956 Mon Sep 17 00:00:00 2001 From: "patryk.slowakiewicz.stud@pw.edu.pl" Date: Fri, 19 Mar 2021 21:21:53 +0100 Subject: [PATCH 3/5] ok --- .../lab_02-checkpoint.ipynb | 362 +++++++- .../lab_03-checkpoint.ipynb | 762 +++++++++++++++++ Materialy/Grupa3/lab_02.ipynb | 771 +++++++++++++++++- Materialy/Grupa3/lab_03.ipynb | 2 +- 4 files changed, 1845 insertions(+), 52 deletions(-) create mode 100644 Materialy/Grupa3/.ipynb_checkpoints/lab_03-checkpoint.ipynb diff --git a/Materialy/Grupa3/.ipynb_checkpoints/lab_02-checkpoint.ipynb b/Materialy/Grupa3/.ipynb_checkpoints/lab_02-checkpoint.ipynb index 678b3e268..935a22143 100644 --- a/Materialy/Grupa3/.ipynb_checkpoints/lab_02-checkpoint.ipynb +++ b/Materialy/Grupa3/.ipynb_checkpoints/lab_02-checkpoint.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -35,26 +35,243 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 6, "metadata": {}, "outputs": [ { - "ename": "FileNotFoundError", - "evalue": "[Errno 2] No such file or directory: 'menshoes.csv'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# wczytujemy dane\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mshoes_df\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'menshoes.csv'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;31m# w tym momencie następuje odruch bezwarunkowy\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mshoes_df\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhead\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36mread_csv\u001b[1;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, dialect, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options)\u001b[0m\n\u001b[0;32m 608\u001b[0m \u001b[0mkwds\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkwds_defaults\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 609\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 610\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0m_read\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 611\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 612\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m_read\u001b[1;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[0;32m 460\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 461\u001b[0m \u001b[1;31m# Create the parser.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 462\u001b[1;33m \u001b[0mparser\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mTextFileReader\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 463\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 464\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mchunksize\u001b[0m \u001b[1;32mor\u001b[0m \u001b[0miterator\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[0;32m 817\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"has_index_names\"\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mkwds\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"has_index_names\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 818\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 819\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_engine\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_make_engine\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mengine\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 820\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 821\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mclose\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m_make_engine\u001b[1;34m(self, engine)\u001b[0m\n\u001b[0;32m 1048\u001b[0m )\n\u001b[0;32m 1049\u001b[0m \u001b[1;31m# error: Too many arguments for \"ParserBase\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1050\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mmapping\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mengine\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;31m# type: ignore[call-arg]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1051\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1052\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_failover_to_python\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, src, **kwds)\u001b[0m\n\u001b[0;32m 1865\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1866\u001b[0m \u001b[1;31m# open handles\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1867\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_open_handles\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msrc\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1868\u001b[0m \u001b[1;32massert\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhandles\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1869\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mkey\u001b[0m \u001b[1;32min\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;34m\"storage_options\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"encoding\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"memory_map\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"compression\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m_open_handles\u001b[1;34m(self, src, kwds)\u001b[0m\n\u001b[0;32m 1360\u001b[0m \u001b[0mLet\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mreaders\u001b[0m \u001b[0mopen\u001b[0m \u001b[0mIOHanldes\u001b[0m \u001b[0mafter\u001b[0m \u001b[0mthey\u001b[0m \u001b[0mare\u001b[0m \u001b[0mdone\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mtheir\u001b[0m \u001b[0mpotential\u001b[0m \u001b[0mraises\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1361\u001b[0m \"\"\"\n\u001b[1;32m-> 1362\u001b[1;33m self.handles = get_handle(\n\u001b[0m\u001b[0;32m 1363\u001b[0m \u001b[0msrc\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1364\u001b[0m \u001b[1;34m\"r\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\common.py\u001b[0m in \u001b[0;36mget_handle\u001b[1;34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[0m\n\u001b[0;32m 640\u001b[0m \u001b[0merrors\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m\"replace\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 641\u001b[0m \u001b[1;31m# Encoding\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 642\u001b[1;33m handle = open(\n\u001b[0m\u001b[0;32m 643\u001b[0m \u001b[0mhandle\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 644\u001b[0m \u001b[0mioargs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmode\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'menshoes.csv'" + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\Patryk\\anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py:3071: DtypeWarning: Columns (29) have mixed types.Specify dtype option on import or set low_memory=False.\n", + " has_raised = await self.run_ast_nodes(code_ast.body, cell_name,\n" ] + }, + { + "data": { + "text/html": [ + "

\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idasinsbrandcategoriescolorscountdateaddeddateupdateddescriptionsdimension...prices_warrantyquantitiesreviewssizesskussourceurlsupcvinwebsiteidsweight
0AVpfHrJ6ilAPnD_xVXOINaNJosmoClothing,Shoes,Men's Shoes,All Men's ShoesNaNNaN2016-11-07T00:45:12Z2016-11-07T00:45:12Z[{\"dateSeen\":[\"2016-11-07T00:45:12Z\"],\"sourceU...NaN...NaNNaNNaNNaNNaNhttps://www.walmart.com/ip/Josmo-8190-Plain-In...6.993020e+11NaNNaNNaN
1AVpfHrJ6ilAPnD_xVXOINaNJosmoClothing,Shoes,Men's Shoes,All Men's ShoesNaNNaN2016-11-07T00:45:12Z2016-11-07T00:45:12Z[{\"dateSeen\":[\"2016-11-07T00:45:12Z\"],\"sourceU...NaN...NaNNaNNaNNaNNaNhttps://www.walmart.com/ip/Josmo-8190-Plain-In...6.993020e+11NaNNaNNaN
2AVpfHsWP1cnluZ0-eVZ7NaNSERVUS BY HONEYWELLAll Men's Shoes,Shoes,Men's Shoes,ClothingNaNNaN2016-06-14T04:29:57Z2016-07-09T20:26:48Z[{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU...NaN...NaNNaNNaNNaNNaNhttp://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaNNaNNaNNaN
3AVpfHsWP1cnluZ0-eVZ7NaNSERVUS BY HONEYWELLAll Men's Shoes,Shoes,Men's Shoes,ClothingNaNNaN2016-06-14T04:29:57Z2016-07-09T20:26:48Z[{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU...NaN...NaNNaNNaNNaNNaNhttp://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaNNaNNaNNaN
4AVpfHsWP1cnluZ0-eVZ7NaNSERVUS BY HONEYWELLAll Men's Shoes,Shoes,Men's Shoes,ClothingNaNNaN2016-06-14T04:29:57Z2016-07-09T20:26:48Z[{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU...NaN...NaNNaNNaNNaNNaNhttp://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaNNaNNaNNaN
\n", + "

5 rows × 48 columns

\n", + "
" + ], + "text/plain": [ + " id asins brand \\\n", + "0 AVpfHrJ6ilAPnD_xVXOI NaN Josmo \n", + "1 AVpfHrJ6ilAPnD_xVXOI NaN Josmo \n", + "2 AVpfHsWP1cnluZ0-eVZ7 NaN SERVUS BY HONEYWELL \n", + "3 AVpfHsWP1cnluZ0-eVZ7 NaN SERVUS BY HONEYWELL \n", + "4 AVpfHsWP1cnluZ0-eVZ7 NaN SERVUS BY HONEYWELL \n", + "\n", + " categories colors count \\\n", + "0 Clothing,Shoes,Men's Shoes,All Men's Shoes NaN NaN \n", + "1 Clothing,Shoes,Men's Shoes,All Men's Shoes NaN NaN \n", + "2 All Men's Shoes,Shoes,Men's Shoes,Clothing NaN NaN \n", + "3 All Men's Shoes,Shoes,Men's Shoes,Clothing NaN NaN \n", + "4 All Men's Shoes,Shoes,Men's Shoes,Clothing NaN NaN \n", + "\n", + " dateadded dateupdated \\\n", + "0 2016-11-07T00:45:12Z 2016-11-07T00:45:12Z \n", + "1 2016-11-07T00:45:12Z 2016-11-07T00:45:12Z \n", + "2 2016-06-14T04:29:57Z 2016-07-09T20:26:48Z \n", + "3 2016-06-14T04:29:57Z 2016-07-09T20:26:48Z \n", + "4 2016-06-14T04:29:57Z 2016-07-09T20:26:48Z \n", + "\n", + " descriptions dimension ... \\\n", + "0 [{\"dateSeen\":[\"2016-11-07T00:45:12Z\"],\"sourceU... NaN ... \n", + "1 [{\"dateSeen\":[\"2016-11-07T00:45:12Z\"],\"sourceU... NaN ... \n", + "2 [{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU... NaN ... \n", + "3 [{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU... NaN ... \n", + "4 [{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU... NaN ... \n", + "\n", + " prices_warranty quantities reviews sizes skus \\\n", + "0 NaN NaN NaN NaN NaN \n", + "1 NaN NaN NaN NaN NaN \n", + "2 NaN NaN NaN NaN NaN \n", + "3 NaN NaN NaN NaN NaN \n", + "4 NaN NaN NaN NaN NaN \n", + "\n", + " sourceurls upc vin \\\n", + "0 https://www.walmart.com/ip/Josmo-8190-Plain-In... 6.993020e+11 NaN \n", + "1 https://www.walmart.com/ip/Josmo-8190-Plain-In... 6.993020e+11 NaN \n", + "2 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN NaN \n", + "3 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN NaN \n", + "4 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN NaN \n", + "\n", + " websiteids weight \n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + "[5 rows x 48 columns]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -70,9 +287,71 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 18280 entries, 0 to 18279\n", + "Data columns (total 48 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 id 18280 non-null object \n", + " 1 asins 2161 non-null object \n", + " 2 brand 18263 non-null object \n", + " 3 categories 18280 non-null object \n", + " 4 colors 10344 non-null object \n", + " 5 count 0 non-null float64\n", + " 6 dateadded 18280 non-null object \n", + " 7 dateupdated 18280 non-null object \n", + " 8 descriptions 9704 non-null object \n", + " 9 dimension 2968 non-null object \n", + " 10 ean 9690 non-null float64\n", + " 11 features 13299 non-null object \n", + " 12 flavors 0 non-null float64\n", + " 13 imageurls 17255 non-null object \n", + " 14 isbn 0 non-null float64\n", + " 15 keys 18280 non-null object \n", + " 16 manufacturer 6296 non-null object \n", + " 17 manufacturernumber 14309 non-null object \n", + " 18 merchants 13018 non-null object \n", + " 19 name 18280 non-null object \n", + " 20 prices_amountmin 18280 non-null float64\n", + " 21 prices_amountmax 18280 non-null float64\n", + " 22 prices_availability 114 non-null object \n", + " 23 prices_color 558 non-null object \n", + " 24 prices_condition 11675 non-null object \n", + " 25 prices_count 0 non-null float64\n", + " 26 prices_currency 18280 non-null object \n", + " 27 prices_dateadded 18280 non-null object \n", + " 28 prices_dateseen 18280 non-null object \n", + " 29 prices_flavor 1 non-null object \n", + " 30 prices_issale 18280 non-null bool \n", + " 31 prices_merchant 13160 non-null object \n", + " 32 prices_offer 5874 non-null object \n", + " 33 prices_returnpolicy 798 non-null object \n", + " 34 prices_shipping 4906 non-null object \n", + " 35 prices_size 486 non-null object \n", + " 36 prices_source 0 non-null float64\n", + " 37 prices_sourceurls 18265 non-null object \n", + " 38 prices_warranty 42 non-null object \n", + " 39 quantities 0 non-null float64\n", + " 40 reviews 1592 non-null object \n", + " 41 sizes 5920 non-null object \n", + " 42 skus 8120 non-null object \n", + " 43 sourceurls 18246 non-null object \n", + " 44 upc 10488 non-null float64\n", + " 45 vin 0 non-null float64\n", + " 46 websiteids 0 non-null float64\n", + " 47 weight 570 non-null object \n", + "dtypes: bool(1), float64(12), object(35)\n", + "memory usage: 6.6+ MB\n" + ] + } + ], "source": [ "# Korzystając z przyjaciół przyjrzyjmy się bliżej\n", "shoes_df.info()\n", @@ -532,9 +811,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0 0 2 0 1 1 2 0 2 1]\n" + ] + } + ], "source": [ "from sklearn.preprocessing import LabelEncoder\n", "from sklearn.preprocessing import OneHotEncoder\n", @@ -557,9 +844,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1 0 2 0 1 1 2 0 2 1]\n" + ] + } + ], "source": [ "# uwaga! \n", "# nie panujemy nad kolejnością -> check OrdinalEncoder\n", @@ -572,9 +867,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]]\n" + ] + } + ], "source": [ "# binary encode\n", "onehot_encoder = OneHotEncoder(sparse=False)\n", diff --git a/Materialy/Grupa3/.ipynb_checkpoints/lab_03-checkpoint.ipynb b/Materialy/Grupa3/.ipynb_checkpoints/lab_03-checkpoint.ipynb new file mode 100644 index 000000000..f40737fb6 --- /dev/null +++ b/Materialy/Grupa3/.ipynb_checkpoints/lab_03-checkpoint.ipynb @@ -0,0 +1,762 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Klasyfikacja \n", + "Klasyfikacja to rodzaj algorytmu statystycznego, który przydziela obserwacje statystyczne do klas, bazując na atrybutach tych obserwacji.\n", + "\n", + "**Definicja:**\n", + "Dla danego zbioru danych trenujących $\\{(x_1,y_1),\\ldots,(x_n,y_n)\\}$ algorytm potrafi znaleźć funkcję klasyfikującją $h: X -> Y$, która przydziela obiektowi $x\\in X$ klasę $y \\in Y$.\n", + "\n", + "- prawdopodobieństwo aposteriori: $P(Y=i|X)$ *\n", + "- funkcja klasyfikacyjna przyjmuje postać: $h(X) = argmax_{1,\\ldots,y} P(Y=i|X)$\n", + "\n", + "*większość klasyfikatorów modeluje prawdopodobieństwa, wyjątek stanowi SVM\n", + "\n", + "Przykłady klasyfikacji:\n", + "- wykrywanie czy pacjent jest chory na daną chorobę na podstawie wyników badań\n", + "- klasyfikacja maili jako spam/nie-spam\n", + "- czy transakcja dokonana na koncie klienta banku to oszustwo/kradzież czy też normalna transakcja\n", + "- rozpoznawania na obrazu różnych rodzajów zwierząt\n", + "- rozpoznawanie czy pasażer przeżyje katastrofę na Titanicu\n", + "\n", + "**Na potrzeby uproszczenia wyjaśniania w dalszej części labów, skupimy się tylko na klasyfikacji binarnej.**\n", + "\n", + "Zajmiemy się zbiorem gdzie klasyfikujemy u pacjentów czy występuje choroba serca czy nie." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2020-03-07T15:01:18.130629Z", + "start_time": "2020-03-07T15:01:18.127672Z" + } + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import warnings\n", + "warnings.filterwarnings('ignore')\n", + "np.random.seed = 42" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2020-03-07T14:45:39.531710Z", + "start_time": "2020-03-07T14:45:39.518696Z" + } + }, + "outputs": [], + "source": [ + "data = pd.read_csv('heart.csv')\n", + "data.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2020-03-07T14:45:53.174538Z", + "start_time": "2020-03-07T14:45:53.166435Z" + } + }, + "outputs": [], + "source": [ + "# Szybko sprawdzamy podstawowe cechy danych\n", + "na_ratio_cols = data.isna().mean(axis=0)\n", + "na_ratio_cols" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "y = np.array(data['chd'])\n", + "X = data.drop(['chd','famhist'],axis=1)\n", + "y" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2020-03-07T14:52:23.920291Z", + "start_time": "2020-03-07T14:52:23.911127Z" + } + }, + "outputs": [], + "source": [ + "# Szybkie ćwiczenie - wykonaj dowolne kodowanie zmiennej kategorycznej\n", + "\n", + "X.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Sposoby podziału danych\n", + "- Jak radzić sobie z overfitingiem?\n", + "- Jakie znacie sposoby podziału danych na treningowe i testowe?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![image.png](https://media.geeksforgeeks.org/wp-content/cdn-uploads/20190523171258/overfitting_2.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "https://www.geeksforgeeks.org/underfitting-and-overfitting-in-machine-learning/\n", + "\n", + "## Zbiór treningowy, walidacyjny i testowy¶\n", + "Prosty podział danych na część, na której uczymy model i na część która służy nam do sprawdzenia jego skuteczności." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2020-03-07T17:50:27.159896Z", + "start_time": "2020-03-07T17:50:27.154910Z" + } + }, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "\n", + "X_train, X_val, y_train, y_val = train_test_split(\n", + " X, y, stratify=y, test_size=0.3, random_state=42\n", + ")\n", + "X_val, X_test, y_val, y_test = train_test_split(\n", + " X_val, y_val, stratify=y_val, test_size=0.3, random_state=42\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pd.Series(y).hist()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pd.Series(y_test).hist()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pd.Series(y_test).hist()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2020-03-07T17:50:52.333567Z", + "start_time": "2020-03-07T17:50:52.329929Z" + } + }, + "outputs": [], + "source": [ + "print(X.shape,X_train.shape, X_val.shape, X_test.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Jaki znacie najprostszy klasyfikator?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.dummy import DummyClassifier" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2020-03-07T16:35:17.078577Z", + "start_time": "2020-03-07T16:35:17.072606Z" + } + }, + "outputs": [], + "source": [ + "dc = DummyClassifier(strategy='uniform', random_state=42)\n", + "dc.fit(X_train,y_train)\n", + "y_proba = dc.predict_proba(X_val)\n", + "y_hat = dc.predict(X_val)\n", + "print(\"proba: \" + str(y_proba[0:10,0]) + '\\ny: ' + str(y_hat[0:10]) + '\\ny_hat: ' + str(y_val[0:10]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Przetestujcie jaki będzie wynik działania algorytmu gdy zmienimy parametr *strategy* (oraz porównać accuracy) - podpowiedź: skorzystaj z dokumentacji funkcji" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#TODO: policzyć accuracy dla baselinu (z inną strategią niż uniform) na train i validation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- Jakieś inne proste klasyfikatory?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Regresja logistyczna - czemu by nie prognozować prawdopodobieństwa za pomocą regresji liniowej?\n", + "\n", + "**Przypomnienie:** uogólniony model liniowy: $y_{i}=\\beta _{0}1+\\beta _{1}x_{i1}+\\cdots +\\beta _{p}x_{ip} = x^T \\beta$\n", + "\n", + "- Jaki jest podstawowy problem z wykorzystaniem regresji do modelowania prawdopodobieństwa?\n", + "- Jakie macie propozycje rozwiązania tego problemu?\n", + "\n", + "$odds = \\frac{P(Y=1|X)}{P(Y=0|X)} = \\frac{p}{1-p}$ $\\in (0,\\infty)$\n", + "\n", + "$\\log({odds}) \\in (-\\infty, \\infty)$\n", + "\n", + "Co pozwala nam modelować powyższe równanie dzięki regresji liniowej, po przekształceniu równania, uzyskujemy prawdopodobieństwo sukcesu:\n", + "\n", + "$x^T \\beta = \\log({\\frac{p}{1-p}}) \\Rightarrow p = \\frac{1}{1+\\exp({-x^T \\beta})}$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![image](http://res.cloudinary.com/dyd911kmh/image/upload/f_auto,q_auto:best/v1534281070/linear_vs_logistic_regression_edxw03.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "https://www.datacamp.com/community/tutorials/understanding-logistic-regression-python" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2020-03-07T15:17:06.286476Z", + "start_time": "2020-03-07T15:17:06.227772Z" + } + }, + "outputs": [], + "source": [ + "from sklearn.linear_model import LogisticRegression\n", + "lr = LogisticRegression(max_iter=1000)\n", + "\n", + "lr.fit(X_train,y_train)\n", + "y_hat = lr.predict(X_val)\n", + "print('y: ' + str(y_hat[0:10]) + '\\ny_hat: ' + str(y_val[0:10]))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#TODO: policzyć accuracy dla logita z l1, l2, i bez regularyzacji na train i validation\n", + "#porównać z baselinem" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "lr.coef_" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "lr.intercept_" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Jak interpretować wyniki?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# jak się zmieni powyższy wynik gdy zwiększymy wartość czwartej cechy (tj. adiposity) dla pierwszej obserwacji o 1\n", + "\n", + "#solution\n", + "experiment=X_val.iloc[0,:]\n", + "experiment[3]=experiment[3]+1\n", + "np.log(lr.predict_proba(experiment.values.reshape(1,-1))[0,1]/lr.predict_proba(experiment.values.reshape(1,-1))[0,0])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Dlaczego można było się przewidzieć, że taki właśnie będzie wynik?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#solution\n", + "np.log(lr.predict_proba(X_val)[0,1]/lr.predict_proba(X_val)[0,0])+lr.coef_[0,3]\n", + "# otrzymano taki sam wynik - nie trzeba było wykonywać metody predict" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# TODO Jaki będzie wynik gdy wektor cech będzie miał tylko zerowe elementy?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#solution\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Dlaczego można było się przewidzieć, że taki właśnie będzie wynik?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#solution\n", + "1/(1+np.exp(-lr.intercept_))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- Jakie są zalety regresji logistycznej?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Drzewo decyzyjne\n", + "- Jak wykorzystać model drzewa do predykcji klasyfikacji/regresji?\n", + "- jakie problemy może to generować?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2020-03-07T16:33:36.468292Z", + "start_time": "2020-03-07T16:33:36.240821Z" + } + }, + "outputs": [], + "source": [ + "from sklearn.tree import DecisionTreeClassifier,plot_tree #export_graphviz\n", + "## biblioteka poniżej może być problematyczna na Windows\n", + "#import graphviz\n", + "\n", + "tree1 = DecisionTreeClassifier()\n", + "\n", + "tree1.fit(X_train,y_train)\n", + "y_hat = tree1.predict(X_val)\n", + "print('y: ' + str(y_hat[0:10]) + '\\ny_hat: ' + str(y_val[0:10]))\n", + "\n", + "#plt.figure(figsize=(20,20))\n", + "#splits=tree.plot_tree(tree1, filled=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tree1.get_params()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# TODO spróbujcie wytrenować model ze zmienionymi parametrami" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## SVM\n", + "Znalezienie równania hiperpłaszczyzny, która najlepiej dzieli nasz zbiór danych na klasy.\n", + "\n", + "**Uwaga: w przypadku SVM nie modelujemy prawdopodobieństwa przynależności do danej klasy - domyślnym wyjściem jest informacja o konkretnej klasie**\n", + "- Co jeżeli nie istnieje taka płaszczyzna?\n", + "- Co jeżeli nasze dane nie są separowalne liniowo, tylko np. radialnie?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![image](https://upload.wikimedia.org/wikipedia/commons/thumb/7/72/SVM_margin.png/300px-SVM_margin.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "https://en.wikipedia.org/wiki/Support-vector_machine" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Kernel trick" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![image](https://machine-learning-note.readthedocs.io/en/latest/_images/svm_kernel_trick.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "https://machine-learning-note.readthedocs.io/en/latest/algorithm/svm.html" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2020-03-07T16:57:59.319024Z", + "start_time": "2020-03-07T16:57:59.302833Z" + } + }, + "outputs": [], + "source": [ + "from sklearn.svm import SVC\n", + "svm = SVC()\n", + "\n", + "svm.fit(X_train,y_train)\n", + "y_hat = svm.predict(X_val)\n", + "print('y: ' + str(y_hat[0:10]) + '\\ny_hat: ' + str(y_val[0:10]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Jakie są wady?\n", + "- trudno dobrać optymalne parametry\n", + "- metoda wrażliwa na skalowanie danych\n", + "- długo się \"uczy\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Naiwny Klasyfikator Bayesowski\n", + "Jest oparty na założeniu o wzajemnej niezależności zmiennych. Często nie mają one żadnego związku z rzeczywistością i właśnie z tego powodu nazywa się je naiwnymi." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![image](https://wikimedia.org/api/rest_v1/media/math/render/svg/cae70e6035d9ac52c547bc1c666e372063b85324)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Mianownik nie zależy od C więc nie będziemy go dalej analizować - skupimy się na liczniku.\n", + "![image](https://wikimedia.org/api/rest_v1/media/math/render/svg/2d0555690cd428cb6d6a52ea6b6391256125a45c) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Rekurencyjnie obliczenia będą kontynuowane. Teraz pora zrozumieć dokładniej dlaczego występuje słowo \"naiwny\" w nazwie metody.\n", + " Zakładamy bowiem że cechy $F_i$ są niezależne czyli ![image](https://wikimedia.org/api/rest_v1/media/math/render/svg/8898f2ee081f407669fdb7a4f60e390615513346)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Ostatecznie wzór to: ![image](https://wikimedia.org/api/rest_v1/media/math/render/svg/a5978cc50b1c3d745ad304987a750aeb4a27df5b)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "https://pl.wikipedia.org/wiki/Naiwny_klasyfikator_bayesowski" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2020-03-07T17:27:54.549246Z", + "start_time": "2020-03-07T17:27:54.541140Z" + } + }, + "outputs": [], + "source": [ + "from sklearn.naive_bayes import GaussianNB\n", + "\n", + "nb = GaussianNB()\n", + "\n", + "nb.fit(X_train,y_train)\n", + "y_hat = nb.predict(X_val)\n", + "print('y: ' + str(y_hat[0:10]) + '\\ny_hat: ' + str(y_val[0:10]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Lepszy sposób na podział danych na zbiory treningowe i testowe" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Crossvalidation\n", + "- Czy możemy stosować CV dzieląc zbiór, tak by w zbiorze walidacyjnym pozostała tylko jedna obserwacja danych?\n", + "- Czy sprawdzając performance modelu przez CV, możemy potem nauczyć model na całym zbiorze danych?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2020-03-07T17:58:33.491733Z", + "start_time": "2020-03-07T17:58:33.127377Z" + } + }, + "outputs": [], + "source": [ + "from sklearn.model_selection import cross_val_score\n", + "X_train_val=pd.concat((X_train,X_val))\n", + "y_train_val=np.concatenate((y_train,y_val), axis=0)\n", + "cross_val_score(lr, X_train_val, y_train_val, scoring='accuracy', cv = 10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Miary ocen jakości klasyfikatorów\n", + "- Jakie znacie miary oceny klasyfikatorów?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Accuracy\n", + "$ACC = \\frac{TP+TN}{ALL}$\n", + "\n", + "Bardzo intuicyjna miara - ile obserwacji zakwalifikowaliśmy poprawnie.\n", + "\n", + "- Jaki jest problem z *accuracy*?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Precision & Recall\n", + "$PRECISION = \\frac{TP}{TP+FP}= \\frac{TP}{\\text{TOTAL PREDICTED POSITIVE}}$\n", + "\n", + "$RECALL = \\frac{TP}{TP+FN}$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### F1 Score\n", + "$F1\\_SCORE =\\frac{2*PRECISION*RECALL}{PRECISION+RECALL}$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### ROC AUC" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Image](https://mathspace.pl/wp-content/uploads/2016/09/ROC-krzywa.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "https://mathspace.pl/matematyka/receiver-operating-characteristic-krzywa-roc-czyli-ocena-jakosci-klasyfikacji-czesc-7/" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![image](https://cdn.analyticsvidhya.com/wp-content/uploads/2020/06/data-1.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "https://www.analyticsvidhya.com/blog/2020/06/auc-roc-curve-machine-learning/" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Zadanie** - przetestować 3 modele przedstawione dziś na zajęciach i sprawdzić, który jest lepszy na podstawie wyżej wymienionych miar. Należy zastosować kroswalidację." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Materialy/Grupa3/lab_02.ipynb b/Materialy/Grupa3/lab_02.ipynb index 678b3e268..6170211e1 100644 --- a/Materialy/Grupa3/lab_02.ipynb +++ b/Materialy/Grupa3/lab_02.ipynb @@ -39,22 +39,239 @@ "metadata": {}, "outputs": [ { - "ename": "FileNotFoundError", - "evalue": "[Errno 2] No such file or directory: 'menshoes.csv'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# wczytujemy dane\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mshoes_df\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'menshoes.csv'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;31m# w tym momencie następuje odruch bezwarunkowy\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mshoes_df\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhead\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36mread_csv\u001b[1;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, dialect, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options)\u001b[0m\n\u001b[0;32m 608\u001b[0m \u001b[0mkwds\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkwds_defaults\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 609\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 610\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0m_read\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 611\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 612\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m_read\u001b[1;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[0;32m 460\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 461\u001b[0m \u001b[1;31m# Create the parser.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 462\u001b[1;33m \u001b[0mparser\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mTextFileReader\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 463\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 464\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mchunksize\u001b[0m \u001b[1;32mor\u001b[0m \u001b[0miterator\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[0;32m 817\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"has_index_names\"\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mkwds\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"has_index_names\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 818\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 819\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_engine\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_make_engine\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mengine\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 820\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 821\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mclose\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m_make_engine\u001b[1;34m(self, engine)\u001b[0m\n\u001b[0;32m 1048\u001b[0m )\n\u001b[0;32m 1049\u001b[0m \u001b[1;31m# error: Too many arguments for \"ParserBase\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1050\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mmapping\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mengine\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0moptions\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;31m# type: ignore[call-arg]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1051\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1052\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_failover_to_python\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, src, **kwds)\u001b[0m\n\u001b[0;32m 1865\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1866\u001b[0m \u001b[1;31m# open handles\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1867\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_open_handles\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msrc\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1868\u001b[0m \u001b[1;32massert\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhandles\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1869\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mkey\u001b[0m \u001b[1;32min\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;34m\"storage_options\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"encoding\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"memory_map\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"compression\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36m_open_handles\u001b[1;34m(self, src, kwds)\u001b[0m\n\u001b[0;32m 1360\u001b[0m \u001b[0mLet\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mreaders\u001b[0m \u001b[0mopen\u001b[0m \u001b[0mIOHanldes\u001b[0m \u001b[0mafter\u001b[0m \u001b[0mthey\u001b[0m \u001b[0mare\u001b[0m \u001b[0mdone\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mtheir\u001b[0m \u001b[0mpotential\u001b[0m \u001b[0mraises\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1361\u001b[0m \"\"\"\n\u001b[1;32m-> 1362\u001b[1;33m self.handles = get_handle(\n\u001b[0m\u001b[0;32m 1363\u001b[0m \u001b[0msrc\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1364\u001b[0m \u001b[1;34m\"r\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\io\\common.py\u001b[0m in \u001b[0;36mget_handle\u001b[1;34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[0m\n\u001b[0;32m 640\u001b[0m \u001b[0merrors\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m\"replace\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 641\u001b[0m \u001b[1;31m# Encoding\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 642\u001b[1;33m handle = open(\n\u001b[0m\u001b[0;32m 643\u001b[0m \u001b[0mhandle\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 644\u001b[0m \u001b[0mioargs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmode\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'menshoes.csv'" + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\Patryk\\anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py:3165: DtypeWarning: Columns (29) have mixed types.Specify dtype option on import or set low_memory=False.\n", + " has_raised = await self.run_ast_nodes(code_ast.body, cell_name,\n" ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idasinsbrandcategoriescolorscountdateaddeddateupdateddescriptionsdimension...prices_warrantyquantitiesreviewssizesskussourceurlsupcvinwebsiteidsweight
0AVpfHrJ6ilAPnD_xVXOINaNJosmoClothing,Shoes,Men's Shoes,All Men's ShoesNaNNaN2016-11-07T00:45:12Z2016-11-07T00:45:12Z[{\"dateSeen\":[\"2016-11-07T00:45:12Z\"],\"sourceU...NaN...NaNNaNNaNNaNNaNhttps://www.walmart.com/ip/Josmo-8190-Plain-In...6.993020e+11NaNNaNNaN
1AVpfHrJ6ilAPnD_xVXOINaNJosmoClothing,Shoes,Men's Shoes,All Men's ShoesNaNNaN2016-11-07T00:45:12Z2016-11-07T00:45:12Z[{\"dateSeen\":[\"2016-11-07T00:45:12Z\"],\"sourceU...NaN...NaNNaNNaNNaNNaNhttps://www.walmart.com/ip/Josmo-8190-Plain-In...6.993020e+11NaNNaNNaN
2AVpfHsWP1cnluZ0-eVZ7NaNSERVUS BY HONEYWELLAll Men's Shoes,Shoes,Men's Shoes,ClothingNaNNaN2016-06-14T04:29:57Z2016-07-09T20:26:48Z[{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU...NaN...NaNNaNNaNNaNNaNhttp://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaNNaNNaNNaN
3AVpfHsWP1cnluZ0-eVZ7NaNSERVUS BY HONEYWELLAll Men's Shoes,Shoes,Men's Shoes,ClothingNaNNaN2016-06-14T04:29:57Z2016-07-09T20:26:48Z[{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU...NaN...NaNNaNNaNNaNNaNhttp://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaNNaNNaNNaN
4AVpfHsWP1cnluZ0-eVZ7NaNSERVUS BY HONEYWELLAll Men's Shoes,Shoes,Men's Shoes,ClothingNaNNaN2016-06-14T04:29:57Z2016-07-09T20:26:48Z[{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU...NaN...NaNNaNNaNNaNNaNhttp://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaNNaNNaNNaN
\n", + "

5 rows × 48 columns

\n", + "
" + ], + "text/plain": [ + " id asins brand \\\n", + "0 AVpfHrJ6ilAPnD_xVXOI NaN Josmo \n", + "1 AVpfHrJ6ilAPnD_xVXOI NaN Josmo \n", + "2 AVpfHsWP1cnluZ0-eVZ7 NaN SERVUS BY HONEYWELL \n", + "3 AVpfHsWP1cnluZ0-eVZ7 NaN SERVUS BY HONEYWELL \n", + "4 AVpfHsWP1cnluZ0-eVZ7 NaN SERVUS BY HONEYWELL \n", + "\n", + " categories colors count \\\n", + "0 Clothing,Shoes,Men's Shoes,All Men's Shoes NaN NaN \n", + "1 Clothing,Shoes,Men's Shoes,All Men's Shoes NaN NaN \n", + "2 All Men's Shoes,Shoes,Men's Shoes,Clothing NaN NaN \n", + "3 All Men's Shoes,Shoes,Men's Shoes,Clothing NaN NaN \n", + "4 All Men's Shoes,Shoes,Men's Shoes,Clothing NaN NaN \n", + "\n", + " dateadded dateupdated \\\n", + "0 2016-11-07T00:45:12Z 2016-11-07T00:45:12Z \n", + "1 2016-11-07T00:45:12Z 2016-11-07T00:45:12Z \n", + "2 2016-06-14T04:29:57Z 2016-07-09T20:26:48Z \n", + "3 2016-06-14T04:29:57Z 2016-07-09T20:26:48Z \n", + "4 2016-06-14T04:29:57Z 2016-07-09T20:26:48Z \n", + "\n", + " descriptions dimension ... \\\n", + "0 [{\"dateSeen\":[\"2016-11-07T00:45:12Z\"],\"sourceU... NaN ... \n", + "1 [{\"dateSeen\":[\"2016-11-07T00:45:12Z\"],\"sourceU... NaN ... \n", + "2 [{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU... NaN ... \n", + "3 [{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU... NaN ... \n", + "4 [{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU... NaN ... \n", + "\n", + " prices_warranty quantities reviews sizes skus \\\n", + "0 NaN NaN NaN NaN NaN \n", + "1 NaN NaN NaN NaN NaN \n", + "2 NaN NaN NaN NaN NaN \n", + "3 NaN NaN NaN NaN NaN \n", + "4 NaN NaN NaN NaN NaN \n", + "\n", + " sourceurls upc vin \\\n", + "0 https://www.walmart.com/ip/Josmo-8190-Plain-In... 6.993020e+11 NaN \n", + "1 https://www.walmart.com/ip/Josmo-8190-Plain-In... 6.993020e+11 NaN \n", + "2 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN NaN \n", + "3 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN NaN \n", + "4 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN NaN \n", + "\n", + " websiteids weight \n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + "[5 rows x 48 columns]" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -70,9 +287,71 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 18280 entries, 0 to 18279\n", + "Data columns (total 48 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 id 18280 non-null object \n", + " 1 asins 2161 non-null object \n", + " 2 brand 18263 non-null object \n", + " 3 categories 18280 non-null object \n", + " 4 colors 10344 non-null object \n", + " 5 count 0 non-null float64\n", + " 6 dateadded 18280 non-null object \n", + " 7 dateupdated 18280 non-null object \n", + " 8 descriptions 9704 non-null object \n", + " 9 dimension 2968 non-null object \n", + " 10 ean 9690 non-null float64\n", + " 11 features 13299 non-null object \n", + " 12 flavors 0 non-null float64\n", + " 13 imageurls 17255 non-null object \n", + " 14 isbn 0 non-null float64\n", + " 15 keys 18280 non-null object \n", + " 16 manufacturer 6296 non-null object \n", + " 17 manufacturernumber 14309 non-null object \n", + " 18 merchants 13018 non-null object \n", + " 19 name 18280 non-null object \n", + " 20 prices_amountmin 18280 non-null float64\n", + " 21 prices_amountmax 18280 non-null float64\n", + " 22 prices_availability 114 non-null object \n", + " 23 prices_color 558 non-null object \n", + " 24 prices_condition 11675 non-null object \n", + " 25 prices_count 0 non-null float64\n", + " 26 prices_currency 18280 non-null object \n", + " 27 prices_dateadded 18280 non-null object \n", + " 28 prices_dateseen 18280 non-null object \n", + " 29 prices_flavor 1 non-null object \n", + " 30 prices_issale 18280 non-null bool \n", + " 31 prices_merchant 13160 non-null object \n", + " 32 prices_offer 5874 non-null object \n", + " 33 prices_returnpolicy 798 non-null object \n", + " 34 prices_shipping 4906 non-null object \n", + " 35 prices_size 486 non-null object \n", + " 36 prices_source 0 non-null float64\n", + " 37 prices_sourceurls 18265 non-null object \n", + " 38 prices_warranty 42 non-null object \n", + " 39 quantities 0 non-null float64\n", + " 40 reviews 1592 non-null object \n", + " 41 sizes 5920 non-null object \n", + " 42 skus 8120 non-null object \n", + " 43 sourceurls 18246 non-null object \n", + " 44 upc 10488 non-null float64\n", + " 45 vin 0 non-null float64\n", + " 46 websiteids 0 non-null float64\n", + " 47 weight 570 non-null object \n", + "dtypes: bool(1), float64(12), object(35)\n", + "memory usage: 6.6+ MB\n" + ] + } + ], "source": [ "# Korzystając z przyjaciół przyjrzyjmy się bliżej\n", "shoes_df.info()\n", @@ -81,9 +360,416 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idbrandcategoriescolorsdateaddeddateupdateddescriptionseanfeaturesimageurls...prices_dateaddedprices_dateseenprices_issaleprices_merchantprices_offerprices_sourceurlssizesskussourceurlsupc
0AVpfHrJ6ilAPnD_xVXOIJosmoClothing,Shoes,Men's Shoes,All Men's ShoesNaN2016-11-07T00:45:12Z2016-11-07T00:45:12Z[{\"dateSeen\":[\"2016-11-07T00:45:12Z\"],\"sourceU...6.993020e+11[{\"key\":\"Gender\",\"value\":[\"Men\"]},{\"key\":\"Shoe...https://i5.walmartimages.com/asr/13ac3d61-003c......2016-11-07T00:45:12Z2016-11-05T00:00:00ZTrueNaNREDUCED USD 12.10https://www.walmart.com/ip/Josmo-8190-Plain-In...NaNNaNhttps://www.walmart.com/ip/Josmo-8190-Plain-In...6.993020e+11
1AVpfHrJ6ilAPnD_xVXOIJosmoClothing,Shoes,Men's Shoes,All Men's ShoesNaN2016-11-07T00:45:12Z2016-11-07T00:45:12Z[{\"dateSeen\":[\"2016-11-07T00:45:12Z\"],\"sourceU...6.993020e+11[{\"key\":\"Gender\",\"value\":[\"Men\"]},{\"key\":\"Shoe...https://i5.walmartimages.com/asr/13ac3d61-003c......2016-11-07T00:45:12Z2016-11-05T00:00:00ZFalseUnbeatableSale - Walmart.comREDUCED USD 12.10https://www.walmart.com/ip/Josmo-8190-Plain-In...NaNNaNhttps://www.walmart.com/ip/Josmo-8190-Plain-In...6.993020e+11
2AVpfHsWP1cnluZ0-eVZ7SERVUS BY HONEYWELLAll Men's Shoes,Shoes,Men's Shoes,ClothingNaN2016-06-14T04:29:57Z2016-07-09T20:26:48Z[{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU...NaN[{\"key\":\"Gender\",\"value\":[\"Men\"]},{\"key\":\"Colo...http://i5.walmartimages.com/dfw/dce07b8c-5844/......2016-06-14T04:29:57Z2016-03-08T00:00:00ZFalseSIM Supply Inc - Walmart.comNaNhttp://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaNNaNhttp://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaN
3AVpfHsWP1cnluZ0-eVZ7SERVUS BY HONEYWELLAll Men's Shoes,Shoes,Men's Shoes,ClothingNaN2016-06-14T04:29:57Z2016-07-09T20:26:48Z[{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU...NaN[{\"key\":\"Gender\",\"value\":[\"Men\"]},{\"key\":\"Colo...http://i5.walmartimages.com/dfw/dce07b8c-5844/......2016-06-14T04:29:57Z2015-11-30T00:00:00ZFalseSIM Supply Inc - Walmart.comNaNhttp://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaNNaNhttp://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaN
4AVpfHsWP1cnluZ0-eVZ7SERVUS BY HONEYWELLAll Men's Shoes,Shoes,Men's Shoes,ClothingNaN2016-06-14T04:29:57Z2016-07-09T20:26:48Z[{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU...NaN[{\"key\":\"Gender\",\"value\":[\"Men\"]},{\"key\":\"Colo...http://i5.walmartimages.com/dfw/dce07b8c-5844/......2016-06-14T04:29:57Z2016-04-29T00:00:00ZFalseSIM Supply Inc - Walmart.comNaNhttp://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaNNaNhttp://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaN
5AVpfHsWP1cnluZ0-eVZ7SERVUS BY HONEYWELLAll Men's Shoes,Shoes,Men's Shoes,ClothingNaN2016-06-14T04:29:57Z2016-07-09T20:26:48Z[{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU...NaN[{\"key\":\"Gender\",\"value\":[\"Men\"]},{\"key\":\"Colo...http://i5.walmartimages.com/dfw/dce07b8c-5844/......2016-06-14T04:29:57Z2016-07-09T00:00:00ZFalseSIM Supply Inc - Walmart.comNaNhttp://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaNNaNhttp://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaN
6AVpfHsWP1cnluZ0-eVZ7SERVUS BY HONEYWELLAll Men's Shoes,Shoes,Men's Shoes,ClothingNaN2016-06-14T04:29:57Z2016-07-09T20:26:48Z[{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU...NaN[{\"key\":\"Gender\",\"value\":[\"Men\"]},{\"key\":\"Colo...http://i5.walmartimages.com/dfw/dce07b8c-5844/......2016-06-14T04:29:57Z2016-03-10T00:00:00ZFalseSIM Supply Inc - Walmart.comNaNhttp://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaNNaNhttp://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaN
7AVpfHsWP1cnluZ0-eVZ7SERVUS BY HONEYWELLAll Men's Shoes,Shoes,Men's Shoes,ClothingNaN2016-06-14T04:29:57Z2016-07-09T20:26:48Z[{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU...NaN[{\"key\":\"Gender\",\"value\":[\"Men\"]},{\"key\":\"Colo...http://i5.walmartimages.com/dfw/dce07b8c-5844/......2016-06-14T04:29:57Z2016-06-13T00:00:00ZTrueSIM Supply Inc - Walmart.comSAVINGS_AMT USD 9.80http://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaNNaNhttp://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaN
8AVpfHsWP1cnluZ0-eVZ7SERVUS BY HONEYWELLAll Men's Shoes,Shoes,Men's Shoes,ClothingNaN2016-06-14T04:29:57Z2016-07-09T20:26:48Z[{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU...NaN[{\"key\":\"Gender\",\"value\":[\"Men\"]},{\"key\":\"Colo...http://i5.walmartimages.com/dfw/dce07b8c-5844/......2016-06-14T04:29:57Z2016-07-09T00:00:00ZTrueSIM Supply Inc - Walmart.comSAVINGS_AMT USD 34.59http://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaNNaNhttp://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaN
9AVpfHsWP1cnluZ0-eVZ7SERVUS BY HONEYWELLAll Men's Shoes,Shoes,Men's Shoes,ClothingNaN2016-06-14T04:29:57Z2016-07-09T20:26:48Z[{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU...NaN[{\"key\":\"Gender\",\"value\":[\"Men\"]},{\"key\":\"Colo...http://i5.walmartimages.com/dfw/dce07b8c-5844/......2016-06-14T04:29:57Z2016-04-18T00:00:00ZFalseSIM Supply Inc - Walmart.comSAVINGS_AMT USD 34.59http://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaNNaNhttp://www.walmart.com/ip/Studs-Shoe-Large-Pr-...NaN
\n", + "

10 rows × 29 columns

\n", + "
" + ], + "text/plain": [ + " id brand \\\n", + "0 AVpfHrJ6ilAPnD_xVXOI Josmo \n", + "1 AVpfHrJ6ilAPnD_xVXOI Josmo \n", + "2 AVpfHsWP1cnluZ0-eVZ7 SERVUS BY HONEYWELL \n", + "3 AVpfHsWP1cnluZ0-eVZ7 SERVUS BY HONEYWELL \n", + "4 AVpfHsWP1cnluZ0-eVZ7 SERVUS BY HONEYWELL \n", + "5 AVpfHsWP1cnluZ0-eVZ7 SERVUS BY HONEYWELL \n", + "6 AVpfHsWP1cnluZ0-eVZ7 SERVUS BY HONEYWELL \n", + "7 AVpfHsWP1cnluZ0-eVZ7 SERVUS BY HONEYWELL \n", + "8 AVpfHsWP1cnluZ0-eVZ7 SERVUS BY HONEYWELL \n", + "9 AVpfHsWP1cnluZ0-eVZ7 SERVUS BY HONEYWELL \n", + "\n", + " categories colors dateadded \\\n", + "0 Clothing,Shoes,Men's Shoes,All Men's Shoes NaN 2016-11-07T00:45:12Z \n", + "1 Clothing,Shoes,Men's Shoes,All Men's Shoes NaN 2016-11-07T00:45:12Z \n", + "2 All Men's Shoes,Shoes,Men's Shoes,Clothing NaN 2016-06-14T04:29:57Z \n", + "3 All Men's Shoes,Shoes,Men's Shoes,Clothing NaN 2016-06-14T04:29:57Z \n", + "4 All Men's Shoes,Shoes,Men's Shoes,Clothing NaN 2016-06-14T04:29:57Z \n", + "5 All Men's Shoes,Shoes,Men's Shoes,Clothing NaN 2016-06-14T04:29:57Z \n", + "6 All Men's Shoes,Shoes,Men's Shoes,Clothing NaN 2016-06-14T04:29:57Z \n", + "7 All Men's Shoes,Shoes,Men's Shoes,Clothing NaN 2016-06-14T04:29:57Z \n", + "8 All Men's Shoes,Shoes,Men's Shoes,Clothing NaN 2016-06-14T04:29:57Z \n", + "9 All Men's Shoes,Shoes,Men's Shoes,Clothing NaN 2016-06-14T04:29:57Z \n", + "\n", + " dateupdated descriptions \\\n", + "0 2016-11-07T00:45:12Z [{\"dateSeen\":[\"2016-11-07T00:45:12Z\"],\"sourceU... \n", + "1 2016-11-07T00:45:12Z [{\"dateSeen\":[\"2016-11-07T00:45:12Z\"],\"sourceU... \n", + "2 2016-07-09T20:26:48Z [{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU... \n", + "3 2016-07-09T20:26:48Z [{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU... \n", + "4 2016-07-09T20:26:48Z [{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU... \n", + "5 2016-07-09T20:26:48Z [{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU... \n", + "6 2016-07-09T20:26:48Z [{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU... \n", + "7 2016-07-09T20:26:48Z [{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU... \n", + "8 2016-07-09T20:26:48Z [{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU... \n", + "9 2016-07-09T20:26:48Z [{\"dateSeen\":[\"2016-07-09T20:26:48Z\"],\"sourceU... \n", + "\n", + " ean features \\\n", + "0 6.993020e+11 [{\"key\":\"Gender\",\"value\":[\"Men\"]},{\"key\":\"Shoe... \n", + "1 6.993020e+11 [{\"key\":\"Gender\",\"value\":[\"Men\"]},{\"key\":\"Shoe... \n", + "2 NaN [{\"key\":\"Gender\",\"value\":[\"Men\"]},{\"key\":\"Colo... \n", + "3 NaN [{\"key\":\"Gender\",\"value\":[\"Men\"]},{\"key\":\"Colo... \n", + "4 NaN [{\"key\":\"Gender\",\"value\":[\"Men\"]},{\"key\":\"Colo... \n", + "5 NaN [{\"key\":\"Gender\",\"value\":[\"Men\"]},{\"key\":\"Colo... \n", + "6 NaN [{\"key\":\"Gender\",\"value\":[\"Men\"]},{\"key\":\"Colo... \n", + "7 NaN [{\"key\":\"Gender\",\"value\":[\"Men\"]},{\"key\":\"Colo... \n", + "8 NaN [{\"key\":\"Gender\",\"value\":[\"Men\"]},{\"key\":\"Colo... \n", + "9 NaN [{\"key\":\"Gender\",\"value\":[\"Men\"]},{\"key\":\"Colo... \n", + "\n", + " imageurls ... \\\n", + "0 https://i5.walmartimages.com/asr/13ac3d61-003c... ... \n", + "1 https://i5.walmartimages.com/asr/13ac3d61-003c... ... \n", + "2 http://i5.walmartimages.com/dfw/dce07b8c-5844/... ... \n", + "3 http://i5.walmartimages.com/dfw/dce07b8c-5844/... ... \n", + "4 http://i5.walmartimages.com/dfw/dce07b8c-5844/... ... \n", + "5 http://i5.walmartimages.com/dfw/dce07b8c-5844/... ... \n", + "6 http://i5.walmartimages.com/dfw/dce07b8c-5844/... ... \n", + "7 http://i5.walmartimages.com/dfw/dce07b8c-5844/... ... \n", + "8 http://i5.walmartimages.com/dfw/dce07b8c-5844/... ... \n", + "9 http://i5.walmartimages.com/dfw/dce07b8c-5844/... ... \n", + "\n", + " prices_dateadded prices_dateseen prices_issale \\\n", + "0 2016-11-07T00:45:12Z 2016-11-05T00:00:00Z True \n", + "1 2016-11-07T00:45:12Z 2016-11-05T00:00:00Z False \n", + "2 2016-06-14T04:29:57Z 2016-03-08T00:00:00Z False \n", + "3 2016-06-14T04:29:57Z 2015-11-30T00:00:00Z False \n", + "4 2016-06-14T04:29:57Z 2016-04-29T00:00:00Z False \n", + "5 2016-06-14T04:29:57Z 2016-07-09T00:00:00Z False \n", + "6 2016-06-14T04:29:57Z 2016-03-10T00:00:00Z False \n", + "7 2016-06-14T04:29:57Z 2016-06-13T00:00:00Z True \n", + "8 2016-06-14T04:29:57Z 2016-07-09T00:00:00Z True \n", + "9 2016-06-14T04:29:57Z 2016-04-18T00:00:00Z False \n", + "\n", + " prices_merchant prices_offer \\\n", + "0 NaN REDUCED USD 12.10 \n", + "1 UnbeatableSale - Walmart.com REDUCED USD 12.10 \n", + "2 SIM Supply Inc - Walmart.com NaN \n", + "3 SIM Supply Inc - Walmart.com NaN \n", + "4 SIM Supply Inc - Walmart.com NaN \n", + "5 SIM Supply Inc - Walmart.com NaN \n", + "6 SIM Supply Inc - Walmart.com NaN \n", + "7 SIM Supply Inc - Walmart.com SAVINGS_AMT USD 9.80 \n", + "8 SIM Supply Inc - Walmart.com SAVINGS_AMT USD 34.59 \n", + "9 SIM Supply Inc - Walmart.com SAVINGS_AMT USD 34.59 \n", + "\n", + " prices_sourceurls sizes skus \\\n", + "0 https://www.walmart.com/ip/Josmo-8190-Plain-In... NaN NaN \n", + "1 https://www.walmart.com/ip/Josmo-8190-Plain-In... NaN NaN \n", + "2 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN NaN \n", + "3 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN NaN \n", + "4 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN NaN \n", + "5 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN NaN \n", + "6 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN NaN \n", + "7 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN NaN \n", + "8 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN NaN \n", + "9 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN NaN \n", + "\n", + " sourceurls upc \n", + "0 https://www.walmart.com/ip/Josmo-8190-Plain-In... 6.993020e+11 \n", + "1 https://www.walmart.com/ip/Josmo-8190-Plain-In... 6.993020e+11 \n", + "2 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN \n", + "3 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN \n", + "4 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN \n", + "5 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN \n", + "6 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN \n", + "7 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN \n", + "8 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN \n", + "9 http://www.walmart.com/ip/Studs-Shoe-Large-Pr-... NaN \n", + "\n", + "[10 rows x 29 columns]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "threshold = shoes_df.shape[0] * 0.7\n", "shoes_df_drop = shoes_df.loc[:, shoes_df.apply(lambda x: x.isna().sum(), axis=0) < threshold]\n", @@ -532,9 +1218,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0 0 2 0 1 1 2 0 2 1]\n" + ] + } + ], "source": [ "from sklearn.preprocessing import LabelEncoder\n", "from sklearn.preprocessing import OneHotEncoder\n", @@ -557,9 +1251,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1 0 2 0 1 1 2 0 2 1]\n" + ] + } + ], "source": [ "# uwaga! \n", "# nie panujemy nad kolejnością -> check OrdinalEncoder\n", @@ -572,9 +1274,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]]\n" + ] + } + ], "source": [ "# binary encode\n", "onehot_encoder = OneHotEncoder(sparse=False)\n", @@ -762,7 +1481,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.3" + "version": "3.8.8" } }, "nbformat": 4, diff --git a/Materialy/Grupa3/lab_03.ipynb b/Materialy/Grupa3/lab_03.ipynb index 7c4c914db..f40737fb6 100644 --- a/Materialy/Grupa3/lab_03.ipynb +++ b/Materialy/Grupa3/lab_03.ipynb @@ -741,7 +741,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.3" + "version": "3.8.8" }, "toc": { "base_numbering": 1, From 40ce368a518284831ef3d8c2975f235cf77451fb Mon Sep 17 00:00:00 2001 From: "patryk.slowakiewicz.stud@pw.edu.pl" Date: Sun, 18 Apr 2021 01:05:20 +0200 Subject: [PATCH 4/5] [Grupa 3] - HW3_Slowakiewicz --- .../HW3 - Slowakiewicz.html | 14731 ++++++++++++++++ .../HW3 - Slowakiewicz.ipynb | 391 + 2 files changed, 15122 insertions(+) create mode 100644 Prace_domowe/Praca_domowa3/Grupa3/Slowakiewicz Patryk/HW3 - Slowakiewicz.html create mode 100644 Prace_domowe/Praca_domowa3/Grupa3/Slowakiewicz Patryk/HW3 - Slowakiewicz.ipynb diff --git a/Prace_domowe/Praca_domowa3/Grupa3/Slowakiewicz Patryk/HW3 - Slowakiewicz.html b/Prace_domowe/Praca_domowa3/Grupa3/Slowakiewicz Patryk/HW3 - Slowakiewicz.html new file mode 100644 index 000000000..b4abedd5c --- /dev/null +++ b/Prace_domowe/Praca_domowa3/Grupa3/Slowakiewicz Patryk/HW3 - Slowakiewicz.html @@ -0,0 +1,14731 @@ + + + + + +HW3 - Slowakiewicz + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + diff --git a/Prace_domowe/Praca_domowa3/Grupa3/Slowakiewicz Patryk/HW3 - Slowakiewicz.ipynb b/Prace_domowe/Praca_domowa3/Grupa3/Slowakiewicz Patryk/HW3 - Slowakiewicz.ipynb new file mode 100644 index 000000000..ce316d54a --- /dev/null +++ b/Prace_domowe/Praca_domowa3/Grupa3/Slowakiewicz Patryk/HW3 - Slowakiewicz.ipynb @@ -0,0 +1,391 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 27, + "id": "norwegian-concord", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.tree import DecisionTreeClassifier,plot_tree\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.ensemble import RandomForestClassifier\n", + "import warnings\n", + "from sklearn.metrics import accuracy_score, recall_score, precision_score, classification_report, roc_auc_score\n", + "warnings.filterwarnings('ignore')" + ] + }, + { + "cell_type": "markdown", + "id": "crucial-laundry", + "metadata": {}, + "source": [ + "## Wczytanie i prygotowanie danych\n", + "\n", + "Dane podzieliłem na 3 zbiory: treningowy, testowy i walidacyjny." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "endangered-concentration", + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv('australia.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "filled-enzyme", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['MinTemp', 'MaxTemp', 'Rainfall', 'Evaporation', 'Sunshine',\n", + " 'WindGustSpeed', 'WindSpeed9am', 'WindSpeed3pm', 'Humidity9am',\n", + " 'Humidity3pm', 'Pressure9am', 'Pressure3pm', 'Cloud9am', 'Cloud3pm',\n", + " 'Temp9am', 'Temp3pm', 'RainToday', 'RainTomorrow'],\n", + " dtype='object')" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "introductory-jewelry", + "metadata": {}, + "outputs": [], + "source": [ + "x = df.drop('RainTomorrow', axis = 1)\n", + "y = df.RainTomorrow\n", + "x_train, x_test, y_train, y_test = train_test_split(x, y)\n", + "x_test, x_val, y_test, y_val = train_test_split(x_test, y_test)" + ] + }, + { + "cell_type": "markdown", + "id": "concrete-garden", + "metadata": {}, + "source": [ + "## Trenowanie modeli\n", + "\n", + "Postanowiłem sprawdzić jak działać będzie:\n", + "- pojedyńcze drzewo w którym narzuciłem minimalną liczbę danych w liściu na 300 aby zapobiec przeuczaniu się modelu\n", + "- regresja logistyczna której zmieniłem karę za liczbę zminnych, ponieważ i tak mamy dużo obserwacji\n", + "- las losowy, sprawdzę czy faktycznie jest lepszy od pojedyńczego drzewa, zwiększyłem tu liczbę dzrzew do 150 oraz minimalą wartośCI w liściu DO 300" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "unsigned-hydrogen", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.8483645301569295" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tree = DecisionTreeClassifier(min_samples_leaf=300)\n", + "tree.fit(x_train, y_train)\n", + "tree.score(x_test, y_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "wired-westminster", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.8575345055776139" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lr = LogisticRegression(penalty='none', max_iter=500)\n", + "lr.fit(x_train, y_train)\n", + "lr.score(x_test, y_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "failing-porcelain", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.8548875023633957" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rf = RandomForestClassifier(n_estimators=150, min_samples_leaf=300)\n", + "rf.fit(x_train, y_train)\n", + "rf.score(x_test, y_test)" + ] + }, + { + "cell_type": "markdown", + "id": "suited-louisiana", + "metadata": {}, + "source": [ + "## Badanie skuteczności\n", + "\n", + "Aby zbadać skuteczność modeli sprawdziłem metodą średniej z crossvalidacji każdy z nich dla 4 równych metryk. Ogólne accuracy jest podobne dla każdego z modeli, gdzie Regresja Logistyczna jest o ok 0.5 pp lepsza. \n", + "Aby upewnić się co do wyniku sprawdzam modele na zbiorze testowym. W tym wypadku róznica w Accuracy jest jeszcze mniejsza. Warto się zastanownić czy któraś z miar nie jest dla nas ważniejsza. Uważam, że wyłapywanie dni które są deszczowe jest dla nas jak najbardziej kluczowe, dlatego powinniśmy dużą uwagę przyłożyć do miary Recall. W tym wypadku Log Reg jest dużo lepsze od pozostałych modeli, choć nadal z dość słabym wynikiem, nieco ponad 52%. \n", + "\n", + "Biorąc pod uwagę ponniższe wyniki uważam, że Log Reg jest najlepszym modelem do naszego problemu." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "stock-albuquerque", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
accuracyprecisionrecallroc_auc
Tree0.8453740.7196390.4964830.866734
Log Reg0.8518260.7305650.5258950.880104
Random Forest0.8493210.7611910.4677110.881172
\n", + "
" + ], + "text/plain": [ + " accuracy precision recall roc_auc\n", + "Tree 0.845374 0.719639 0.496483 0.866734\n", + "Log Reg 0.851826 0.730565 0.525895 0.880104\n", + "Random Forest 0.849321 0.761191 0.467711 0.881172" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.DataFrame(columns=['accuracy','precision','recall', 'roc_auc'], index=['Tree', 'Log Reg', 'Random Forest'])\n", + "ls = [tree, lr, rf]\n", + "for i in range(0, len(ls)):\n", + " for metric in df.columns.values:\n", + " df.loc[df.index[i],metric] = np.mean(cross_val_score(ls[i], x_train, y_train, scoring=metric))\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "subsequent-classification", + "metadata": {}, + "outputs": [], + "source": [ + "tree_y_hat = tree.predict(x_test)\n", + "lr_y_hat = lr.predict(x_test)\n", + "rf_y_hat = rf.predict(x_test)\n", + "ls_hat = [tree_y_hat, lr_y_hat, rf_y_hat]" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "magnetic-comment", + "metadata": {}, + "outputs": [], + "source": [ + "df1 = pd.DataFrame(columns=['accuracy','precision','recall', 'roc_auc'], index=['Tree', 'Log Reg', 'Random Forest'])\n", + "metric = df1.columns.values\n", + "for i in range(0, len(ls)):\n", + " df1.loc[df.index[i],metric[0]] = accuracy_score(y_test, ls_hat[i])\n", + " df1.loc[df.index[i],metric[1]] = precision_score(y_test, ls_hat[i])\n", + " df1.loc[df.index[i],metric[2]] = recall_score(y_test, ls_hat[i])\n", + " df1.loc[df.index[i],metric[3]] = roc_auc_score(y_test, ls_hat[i])" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "functional-corpus", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
accuracyprecisionrecallroc_auc
Tree0.8477970.6993870.5044250.722758
Log Reg0.8575350.7311230.5269910.737167
Random Forest0.8548880.760230.4685840.714215
\n", + "
" + ], + "text/plain": [ + " accuracy precision recall roc_auc\n", + "Tree 0.847797 0.699387 0.504425 0.722758\n", + "Log Reg 0.857535 0.731123 0.526991 0.737167\n", + "Random Forest 0.854888 0.76023 0.468584 0.714215" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "forward-immigration", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From fa76f3d97a2a7d0ba4cc80281e2b9b6931ae835b Mon Sep 17 00:00:00 2001 From: PSlowakiewicz <56126526+PSlowakiewicz@users.noreply.github.com> Date: Fri, 7 May 2021 02:17:52 +0200 Subject: [PATCH 5/5] Add files via upload --- .../Patryk_Slowakiewicz/HW 4.html | 15658 ++++++++++++++++ .../Patryk_Slowakiewicz/HW 4.ipynb | 1099 ++ .../Patryk_Slowakiewicz/train.csv | 2001 ++ 3 files changed, 18758 insertions(+) create mode 100644 Prace_domowe/Praca_domowa4/Patryk_Slowakiewicz/HW 4.html create mode 100644 Prace_domowe/Praca_domowa4/Patryk_Slowakiewicz/HW 4.ipynb create mode 100644 Prace_domowe/Praca_domowa4/Patryk_Slowakiewicz/train.csv diff --git a/Prace_domowe/Praca_domowa4/Patryk_Slowakiewicz/HW 4.html b/Prace_domowe/Praca_domowa4/Patryk_Slowakiewicz/HW 4.html new file mode 100644 index 000000000..0b2663651 --- /dev/null +++ b/Prace_domowe/Praca_domowa4/Patryk_Slowakiewicz/HW 4.html @@ -0,0 +1,15658 @@ + + + + + +HW 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Prace_domowe/Praca_domowa4/Patryk_Slowakiewicz/HW 4.ipynb b/Prace_domowe/Praca_domowa4/Patryk_Slowakiewicz/HW 4.ipynb new file mode 100644 index 000000000..0b9370cf4 --- /dev/null +++ b/Prace_domowe/Praca_domowa4/Patryk_Slowakiewicz/HW 4.ipynb @@ -0,0 +1,1099 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 126, + "id": "upper-special", + "metadata": {}, + "outputs": [], + "source": [ + "import dalex as dx\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "import category_encoders as ce\n", + "import sklearn.pipeline\n", + "from sklearn.preprocessing import OneHotEncoder, MinMaxScaler\n", + "from sklearn.svm import SVR, SVC\n", + "from sklearn.model_selection import GridSearchCV\n", + "from sklearn.model_selection import train_test_split, cross_val_score\n", + "import warnings\n", + "warnings.filterwarnings('ignore')" + ] + }, + { + "cell_type": "markdown", + "id": "weird-spending", + "metadata": {}, + "source": [ + "## Przygotowanie danych" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "packed-bennett", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
construction_yearsurfacefloorno_roomsdistrict
119532531Srodmiescie
2199214395Bielany
319375612Praga
419959373Ochota
5199214465Mokotow
\n", + "
" + ], + "text/plain": [ + " construction_year surface floor no_rooms district\n", + "1 1953 25 3 1 Srodmiescie\n", + "2 1992 143 9 5 Bielany\n", + "3 1937 56 1 2 Praga\n", + "4 1995 93 7 3 Ochota\n", + "5 1992 144 6 5 Mokotow" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "x_train = dx.datasets.load_apartments()\n", + "y_train = x_train['m2_price']\n", + "x_train.drop('m2_price', axis=1, inplace=True)\n", + "\n", + "x_test = dx.datasets.load_apartments_test()\n", + "y_test = x_test['m2_price']\n", + "x_test.drop('m2_price', axis= 1, inplace=True)\n", + "\n", + "x_train.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "bottom-harassment", + "metadata": {}, + "outputs": [], + "source": [ + "dist = x_test['district'].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "diverse-holly", + "metadata": {}, + "outputs": [], + "source": [ + "enc = ce.OneHotEncoder(cols=['district'], )\n", + "enc.fit(x_test)\n", + "x_test = enc.fit_transform(x_test)\n", + "x_train = enc.fit_transform(x_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "distributed-picking", + "metadata": {}, + "outputs": [], + "source": [ + "x_test.columns.values[-10:] = dist\n", + "x_train.columns.values[-10:] = dist" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "pressing-astrology", + "metadata": {}, + "outputs": [], + "source": [ + "def score_model(y, y_hat, func = (lambda x: x)):\n", + " l = len(y)\n", + " return round(sum((func(y)-func(y_hat))**2)/l, 2)" + ] + }, + { + "cell_type": "markdown", + "id": "surgical-missouri", + "metadata": {}, + "source": [ + "## Base line\n", + "\n", + "Błąd średniokwadratowy ze średniej" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "crude-eligibility", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "810804.49" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "score_model(y_test, y_test.mean())" + ] + }, + { + "cell_type": "markdown", + "id": "extraordinary-following", + "metadata": {}, + "source": [ + "## Pierwszy model\n", + "\n", + "Okazuje się gorszy od baseline" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "authentic-daughter", + "metadata": {}, + "outputs": [], + "source": [ + "svm = SVR()\n", + "svm.fit(x_train, y_train)\n", + "y_hat = svm.predict(x_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "stable-storage", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "826320.67" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "score_model(y_test, y_hat)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "cognitive-closure", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWEAAAFgCAYAAABqo8hyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAS4ElEQVR4nO3de9BcdX3H8feXhJugBUpgQi4F20wrMF46ES30QsGW2DqGVtBo1cyUNk6LrZaiJdobbdOh1nHoVKlmqmNqVYxVB7wMiinoVCkRlFuAlChKYhgS6DhqncEGv/1jf9Q1PEl2Q85+z5N9v2Z29pzf/s6e75znOZ/nt2fPOU9kJpKkGodUFyBJ08wQlqRChrAkFTKEJamQISxJheZWF/BkLFu2LK+77rrqMiRpdzFqx1k9En744YerS5CkJ2VWh7AkzXaGsCQVMoQlqZAhLEmFDGFJKmQIS1IhQ1iSChnCklTIEJakQoawJBUyhCWpkCEsSYUMYUkqZAhLUiFD+ABbsGgxETHyY8GixdUlSyo0q2/q3kfbt23lZe/64sj9P/SaMzusRlLfORKWpEKGsCQVMoQlqZAhLEmFDGFJKmQIS1IhQ1iSChnCklTIEJakQoawNEt4SfzBycuWpVnCS+IPTo6EJamQISxJhQxhSSpkCEtSIUNYkgoZwpJUyBCWpEKGsCQVMoQlqZAhLB1AXlqscXnZsrQXCxYtZvu2rWMt46XFGochLO2F92tQ1zwcoYkY52O6H9E1TRwJayLGGVE6mtQ0cSQsSYUMYUkqZAhLUiFDWJIKGcKSemXaLnjx7AhJvTJt52Y7EpakQoawVOmQuSN/7O6aF9TU8HCEVOkHu3pzEYsX1NRwJCxJhQxhSSpkCM8i03bqjjQNPCY8i4x96s7v/eJYX+ictHAR39z6wP6UJmk/GcIHszG+9AG/bJEqdH44IiLmRMRXIuITbf64iLg+Iu5rz8cO9V0dEVsiYnNEnNd1bZJUbRLHhF8H3DM0fxmwITOXABvaPBFxKrACOA1YBlwVEXMmUJ9mOY+V9984P6Np0+nhiIhYCPw6sAa4pDUvB85u0+uAG4E/ae1XZ+ajwP0RsQU4A7ipyxo1+03bZa690C4yGYfnIM+s62PCVwJvBJ461HZiZj4IkJkPRsQJrX0B8J9D/ba1th8REauAVQCLFzuiOaDG2LH8Em8W2I+gHJnfNxwwnYVwRLwI2JGZt0bE2aMsMkNbPqEhcy2wFmDp0qVPeF1PwjhXb4155oUKGJSzQpcj4bOAF0fErwFHAE+LiH8FHoqI+W0UPB/Y0fpvAxYNLb8Q2N5hfXoy3MHVF2OO+Pv2Ka6zEM7M1cBqgDYSvjQzXxkRfw+sBK5oz9e0Ra4FPhARbwNOApYAG7uqrze6/MiombnNDy6zfEBQcZ7wFcD6iLgIeAC4ECAzN0XEeuBuYBdwcWY+VlDfZPXoBi5Tw22uHplICGfmjQzOgiAzHwHO3UO/NQzOpNA0c6SqKeIVc+qfWf7xUhqHN/CRpEKGsCQVMoT3YdxLYiVpHB4T3gcviZXUJUfCklTIEJakQoawJBUyhCWpkCEsSYUMYUkqZAhLUiFDWJIKGcKSVMgQlqRChrAkFTKEJamQISxJhQxhSSpkCEtSIUNYkgoZwpJUyBCWpEKGsCQVMoQlqZAhLEmFDGFJKmQIS1IhQ1iSChnCklTIEJakQoawJBUyhCWpkCEsSYUMYUkqZAhLUiFDWJIKGcKSVMgQlqRChrAkFTKEJamQISxJhQxhSSpkCEtSIUNYkgoZwpJUyBCWpEKGsCQVMoQlqZAhLEmFDGFJKmQIS1IhQ1iSChnCklTIEJakQoawJBXqLIQj4oiI2BgRt0fEpoi4vLUfFxHXR8R97fnYoWVWR8SWiNgcEed1VZsk9UWXI+FHgXMy81nAs4FlEfF84DJgQ2YuATa0eSLiVGAFcBqwDLgqIuZ0WJ8klesshHPgu2320PZIYDmwrrWvA85v08uBqzPz0cy8H9gCnNFVfZLUB50eE46IORFxG7ADuD4zbwZOzMwHAdrzCa37AmDr0OLbWpskHbQ6DeHMfCwznw0sBM6IiNP30j1meosndIpYFRG3RMQtO3fuPECVSlKNiZwdkZnfAm5kcKz3oYiYD9Ced7Ru24BFQ4stBLbP8F5rM3NpZi6dN29el2VLUue6PDtiXkQc06aPBF4A3AtcC6xs3VYC17Tpa4EVEXF4RJwCLAE2dlWfJPXB3A7fez6wrp3hcAiwPjM/ERE3Aesj4iLgAeBCgMzcFBHrgbuBXcDFmflYh/VJUrnOQjgz7wCeM0P7I8C5e1hmDbCmq5okqW+8Yk6SChnCklTIEJakQoawJBUyhCWpkCEsSYUMYUkqZAhLUiFDWJIKGcKSVMgQlqRChrAkFTKEJamQISxJhQxhSSpkCEtSIUNYkgoZwpJUaKQQjoizRmmTJI1n1JHwP47YJkkaw17/0WdE/BxwJjAvIi4ZeulpwJwuC5OkabCv/7Z8GHB06/fUofZvAxd0VZQkTYu9hnBmfg74XES8NzO/MaGaJGlq7Gsk/LjDI2ItcPLwMpl5ThdFSdK0GDWEPwy8E/hn4LHuypGk6TJqCO/KzH/qtBJJmkKjnqL28Yj4/YiYHxHHPf7otDJJmgKjjoRXtuc3DLUl8PQDW44kTZeRQjgzT+m6EEmaRiOFcES8eqb2zPyXA1uOJE2XUQ9HPHdo+gjgXODLgCEsSU/CqIcj/mB4PiJ+DHhfJxVJ0hTZ31tZfg9YciALkaRpNOox4Y8zOBsCBjfueQawvquiJGlajHpM+K1D07uAb2Tmtg7qkaSpMtLhiHYjn3sZ3EntWOD7XRYlSdNi1P+s8VJgI3Ah8FLg5ojwVpaS9CSNejjizcBzM3MHQETMAz4L/FtXhUnSNBj17IhDHg/g5pExlpUk7cGoI+HrIuLTwAfb/MuAT3VTkiRNj339j7mfAk7MzDdExG8CPw8EcBPw/gnUJ0kHtX0dUrgS+A5AZn40My/JzD9iMAq+stvSJOngt68QPjkz79i9MTNvYfCvjiRJT8K+QviIvbx25IEsRJKm0b5C+EsR8bu7N0bERcCt3ZQkSdNjX2dHvB74WET8Fj8M3aXAYcBvdFiXJE2FvYZwZj4EnBkRvwyc3po/mZn/3nllkjQFRr2f8A3ADR3XIklTx6veJKmQISxJhQxhSSpkCEtSIUNYkgoZwpJUyBCWpEKGsCQVMoQlqVBnIRwRiyLihoi4JyI2RcTrWvtxEXF9RNzXno8dWmZ1RGyJiM0RcV5XtUlSX3Q5Et4F/HFmPgN4PnBxRJwKXAZsyMwlwIY2T3ttBXAasAy4KiLmdFifJJXrLIQz88HM/HKb/g5wD7AAWA6sa93WAee36eXA1Zn5aGbeD2wBzuiqPknqg4kcE46Ik4HnADcz+J91D8IgqIETWrcFwNahxba1tt3fa1VE3BIRt+zcubPTuiWpa52HcEQcDXwEeH1mfntvXWdoyyc0ZK7NzKWZuXTevHkHqkxJKtFpCEfEoQwC+P2Z+dHW/FBEzG+vzwd2tPZtwKKhxRcC27usT5KqdXl2RADvBu7JzLcNvXQtsLJNrwSuGWpfERGHR8QpwBJgY1f1SVIfjHRT9/10FvAq4M6IuK21vQm4Aljf/k/dA8CFAJm5KSLWA3czOLPi4sx8rMP6JKlcZyGcmf/BzMd5Ac7dwzJrgDVd1SRJfeMVc5JUyBCWpEKGsCQVMoQlqZAhLEmFDGFJKmQIS1IhQ1iSChnCkqbLIXOJiJEeCxYt7rycLi9blqT++cEuXvauL47U9UOvObPjYhwJS1IpQ1iSChnCklTIEJakQoawJBUyhCWpkCEsSYUMYUkqZAhLUqGpDOEFixaPfNmiJHVpKi9b3r5ta68uW5Q0vaZyJCxJfWEIS1IhQ1iSChnCklTIEJakQoawJBUyhCWpkCEsSYUMYUkqZAhLUiFDWJIKGcKSVMgQlqRChrAkFTKEJamQISxJhQxhSSpkCEtSIUNYkgoZwpJUyBCWpEKGsCQVMoQlqZAhLEmFDGFJKmQIS1IhQ1iSChnCklTIEJakQoawJBUyhCWpkCEsSYUMYUkqZAhLUiFDWJIKdRbCEfGeiNgREXcNtR0XEddHxH3t+dih11ZHxJaI2BwR53VVlyT1SZcj4fcCy3ZruwzYkJlLgA1tnog4FVgBnNaWuSoi5nRYmyT1QmchnJmfB/57t+blwLo2vQ44f6j96sx8NDPvB7YAZ3RVmyT1xaSPCZ+YmQ8CtOcTWvsCYOtQv22t7QkiYlVE3BIRt+zcubPTYiWpa335Yi5maMuZOmbm2sxcmplL582b13FZktStSYfwQxExH6A972jt24BFQ/0WAtsnXJskTdykQ/haYGWbXglcM9S+IiIOj4hTgCXAxgnXJkkTN7erN46IDwJnA8dHxDbgL4ArgPURcRHwAHAhQGZuioj1wN3ALuDizHysq9okqS86C+HMfPkeXjp3D/3XAGu6qkeS+qgvX8xJ0lQyhCWpkCEsSYUMYUkqZAhLUiFDWJIKGcKSVMgQlqRChrAkFTKEJamQISxJhQxhSSpkCEtSIUNYkgoZwpJUyBCWpEKGsCQVMoQlqZAhLEmFDGFJKmQIS1IhQ1iSChnCklTIEJakQoawJBUyhCWpkCEsSYUMYUkqZAhLUiFDWJIKGcKSVMgQlqRChrAkFTKEJamQISxJhQxhSSpkCEtSIUNYkgoZwpJUyBCWpEKGsCQVMoQlqZAhLEmFDGFJKmQIS1IhQ1iSChnCklTIEJakQoawJBUyhCWpkCEsSYUMYUkqZAhLUiFDWJIKGcKSVMgQlqRChrAkFepdCEfEsojYHBFbIuKy6nokqUu9CuGImAO8A3ghcCrw8og4tbYqSepOr0IYOAPYkplfy8zvA1cDy4trkqTORGZW1/D/IuICYFlm/k6bfxXwvMx87VCfVcCqNvvTwOYJlng88PAE17e/ZkudMHtqtc4Da7bUCftX68OZuWyUjnPHr6dTMUPbj/yVyMy1wNrJlPOjIuKWzFxase5xzJY6YfbUap0H1mypE7qvtW+HI7YBi4bmFwLbi2qRpM71LYS/BCyJiFMi4jBgBXBtcU2S1JleHY7IzF0R8Vrg08Ac4D2Zuam4rGElh0H2w2ypE2ZPrdZ5YM2WOqHjWnv1xZwkTZu+HY6QpKliCEtSoakJ4Yg4IiI2RsTtEbEpIi5v7X8dEXdExG0R8ZmIOKm1HxoR6yLizoi4JyJWD73Xje3S6tva44QZ1vcrEXFrW/7WiDinj3UO9V0cEd+NiEv7uk1bv2dGxE1tfXdGxBF9q3Nvy0+wzsMiYm1E/FdE3BsRL9nDOlfH4BYBmyPivFHqrKg1+rE/jbRNW9/R96fMnIoHg3OQj27ThwI3A88HnjbU5w+Bd7bpVwBXt+mnAF8HTm7zNwJL97G+5wAntenTgW/2sc6h9/wI8GHg0h5v07nAHcCz2vyPA3N6WOcel59gnZcDf9OmDwGOn2F9pwK3A4cDpwBfHWV7FtXah/1pn3Xuz/7Uq7MjupSDLfPdNntoe2Rmfnuo21H88OKQBI6KiLnAkcD3geG++1rfV4ZmNwFHRMThmflon+oEiIjzga8B/zPOcgW1/ipwR2be3tb/SE/r3K/lD3Cdvw38THvfHzDzFV/LGQTOo8D9EbGFwa0DbupbrT3Zn0bZpuPvT6P8NTlYHgxOe7ut/VD+bqh9DbAVuAuYN/RX82pgZ9uYq4b63wjc2d7rz2hnmexlvRcAn+1jnQx+AW8Cjgb+kjFGwgW1vh54H4NTGL8MvLGnde5x+UnUCRzT+r6tbacPAyfOsK63A68cmn83cEEfa63en8bYpmPvTxMNwb482ga9ATh9t/bVwOVt+izg/e2HcgKDe1Q8vb22oD0/FfgM8Oq9rOs0Bh/zfrKPdQJvBV7apkf6pSms9VLgfgbX8j+l/bKf28M697j8JOps2yeBl7R+lwDvm2Ed7+CJIfySSf7sR621en8aY5uOvT9NzRdzwzLzWwxGNLvfYOMDwOMH218BXJeZ/5uZO4AvAEvb8t9sz99py5wx03oiYiHwMQY76ld7WufzgLdExNcZjDTfFIMLZvpY6zbgc5n5cGZ+D/gU8LM9rHOPy0+ozkeA7zH43YPBqG2m7XRAbhMwoVqr96dR6xx7f5qaEI6IeRFxTJs+EngBcG9ELBnq9mLg3jb9AHBODBzF4GD+vRExNyKOb+9zKPAiBh9ndl/fMcAngdWZ+YW+1pmZv5CZJ2fmycCVwN9m5tv7WCuDwxDPjIintGN2vwTc3cM6Z1x+UnXmYBj2ceDs1u9cZt5O1wIrIuLwiDgFWAJs3FedFbVW70+j1rlf+9O4Q/rZ+gCeCXyFwbfrdwF/3to/0ubvaBv58Y+bRzP4a7epbew3tPajgFtb/03AP9C+UW4/zL9q03/K4JjSbUOPE/pW527r/kvGOzti4rUCr2x97gLe0sc697T8pOpsr/0E8Pm2zAZg8R6255sZfLzfDLxw0j/7UWuleH8aZ5uOuz952bIkFZqawxGS1EeGsCQVMoQlqZAhLEmFDGFJKmQIS1IhQ1iSCv0fh6CnQpujLEoAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "sns.displot(y_hat)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "pressed-softball", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "sns.displot(y_test)" + ] + }, + { + "cell_type": "markdown", + "id": "sensitive-doctor", + "metadata": {}, + "source": [ + "## Skalowanie zmiennych\n", + "\n", + "Skaluję zmienne przy pomocy MinMaxScaler" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "unique-projector", + "metadata": {}, + "outputs": [], + "source": [ + "mm = MinMaxScaler()\n", + "mm_x_train = mm.fit_transform(x_train)\n", + "mm_x_test = mm.transform(x_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "changed-mounting", + "metadata": {}, + "outputs": [], + "source": [ + "mm_x_train = pd.DataFrame(mm_x_train, columns=x_train.columns.values)\n", + "mm_x_test = pd.DataFrame(mm_x_test, columns=x_train.columns.values)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "technological-valve", + "metadata": {}, + "outputs": [], + "source": [ + "m = min(y_train)\n", + "r = max(y_train)-min(y_train)\n", + "mm_y_train = (y_train-m)/r\n", + "mm_y_test = (y_test-m)/r" + ] + }, + { + "cell_type": "markdown", + "id": "described-success", + "metadata": {}, + "source": [ + "## Model ze skalowaniem\n", + "\n", + "Okazuje się, że przeskalowanie danych znacznie poprawia predykcyjność modelu, z zaznaczeniem, że przy mierzeniu błędu średniokwadratowego przeskalowuję spowrotem uzyskane pradykcję, aby były porównywalne." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "august-niger", + "metadata": {}, + "outputs": [], + "source": [ + "svm2 = SVR()\n", + "svm.fit(mm_x_train, mm_y_train)\n", + "mm_y_hat = svm.predict(mm_x_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "diagnostic-property", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "360463.38" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "score_model(mm_y_test, mm_y_hat, lambda x: x*r+m)" + ] + }, + { + "cell_type": "markdown", + "id": "academic-halloween", + "metadata": {}, + "source": [ + "## Grid Search\n", + "\n", + "Użyłem GridSearch aby sprawdzić czy jest możliwość polepszenia predykcyjności modelu. Okazuję się, że taki model ma nieznacznie większy błąd. A jedyny parametr jaki zmieniliśmy jest C (*cost*)" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "id": "ordinary-lloyd", + "metadata": {}, + "outputs": [], + "source": [ + "grid_search = {\n", + " 'C' : np.logspace(-4, 4, 10),\n", + " 'gamma' : ['scale', 'auto'],\n", + " 'degree' : range(1,5),\n", + " 'kernel' : ['linear', 'poly', 'rbf']\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "id": "national-beaver", + "metadata": {}, + "outputs": [], + "source": [ + "svr3 = SVR()" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "id": "controlling-pearl", + "metadata": {}, + "outputs": [], + "source": [ + "gs = GridSearchCV(svr3, grid_search, cv=10)" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "id": "dangerous-continent", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "GridSearchCV(cv=10, estimator=SVR(),\n", + " param_grid={'C': array([1.00000000e-04, 7.74263683e-04, 5.99484250e-03, 4.64158883e-02,\n", + " 3.59381366e-01, 2.78255940e+00, 2.15443469e+01, 1.66810054e+02,\n", + " 1.29154967e+03, 1.00000000e+04]),\n", + " 'degree': range(1, 5), 'gamma': ['scale', 'auto'],\n", + " 'kernel': ['linear', 'poly', 'rbf']})" + ] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gs.fit(mm_x_train, mm_y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "id": "handy-consent", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'C': 0.3593813663804626, 'degree': 1, 'gamma': 'scale', 'kernel': 'rbf'}" + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gs.best_params_" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "id": "angry-influence", + "metadata": {}, + "outputs": [], + "source": [ + "svr4 = SVR(C = 0.3593813663804626, degree= 1, gamma='scale', kernel='rbf')\n", + "svr4.fit(mm_x_train, mm_y_train)\n", + "gs_y_hat = svr4.predict(mm_x_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "id": "focal-right", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "360518.27" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "score_model(mm_y_test, gs_y_hat, lambda x: x*r+m)" + ] + }, + { + "cell_type": "markdown", + "id": "representative-canyon", + "metadata": {}, + "source": [ + "# Zbiór nr. 2\n", + "\n", + "Zbiór pobrałem ze strony https://www.kaggle.com/iabhishekofficial/mobile-price-classification?select=train.csv.\n", + "Zawiera informację o parametrach telefonach komórkowych i ich przedziale cenowym. Aby zredukować problem z multi-label classification zmapuję przedziały cenowe odpowiednio:\n", + "- 0 -> 0\n", + "- 1 -> 0\n", + "- 2 -> 1\n", + "- 3 -> 1" + ] + }, + { + "cell_type": "code", + "execution_count": 135, + "id": "molecular-bulgaria", + "metadata": {}, + "outputs": [], + "source": [ + "x = pd.read_csv('train.csv')\n", + "y = x['price_range']\n", + "x.drop('price_range', axis = 1, inplace=True)\n", + "y = y.map(lambda x: x//2)\n", + "x_train, x_test, y_train, y_test = train_test_split(x, y, stratify = y, test_size=0.2, random_state=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 136, + "id": "miniature-dollar", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
battery_powerblueclock_speeddual_simfcfour_gint_memorym_depmobile_wtn_corespcpx_heightpx_widthramsc_hsc_wtalk_timethree_gtouch_screenwifi
192276401.0191450.512481152539134119112100
1622105712.7031410.19741039789120331692110
192156912.5100410.31241138860526511774000
1499174210.5151430.91763735614071921923110
1082104412.8170330.61294134212621816171615101
\n", + "
" + ], + "text/plain": [ + " battery_power blue clock_speed dual_sim fc four_g int_memory \\\n", + "1922 764 0 1.0 1 9 1 45 \n", + "1622 1057 1 2.7 0 3 1 41 \n", + "1921 569 1 2.5 1 0 0 41 \n", + "1499 1742 1 0.5 1 5 1 43 \n", + "1082 1044 1 2.8 1 7 0 33 \n", + "\n", + " m_dep mobile_wt n_cores pc px_height px_width ram sc_h sc_w \\\n", + "1922 0.5 124 8 11 52 539 1341 19 1 \n", + "1622 0.1 97 4 10 397 891 2033 16 9 \n", + "1921 0.3 124 1 1 388 605 2651 17 7 \n", + "1499 0.9 176 3 7 356 1407 1921 9 2 \n", + "1082 0.6 129 4 13 42 1262 1816 17 16 \n", + "\n", + " talk_time three_g touch_screen wifi \n", + "1922 12 1 0 0 \n", + "1622 2 1 1 0 \n", + "1921 4 0 0 0 \n", + "1499 3 1 1 0 \n", + "1082 15 1 0 1 " + ] + }, + "execution_count": 136, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "x_train.head()" + ] + }, + { + "cell_type": "markdown", + "id": "developmental-boulder", + "metadata": {}, + "source": [ + "## Baseline\n", + "\n", + "Ponieważ w naszych danych wszystkie przedziały cenowe mają taką samą ilość danych a przy podziale używamy parametru stratify to nasz baseline będzie wynosił 50%" + ] + }, + { + "cell_type": "code", + "execution_count": 137, + "id": "equal-riding", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 137, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "y_train.hist()" + ] + }, + { + "cell_type": "markdown", + "id": "available-narrative", + "metadata": {}, + "source": [ + "## Prosty model SVC\n", + "\n", + "Nawet podstawowy model bardzo dobrze przewiduję ceny telefonów z 96,5 accuracy." + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "id": "brutal-steering", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.965" + ] + }, + "execution_count": 138, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "svc = SVC()\n", + "svc.fit(x_train, y_train)\n", + "svc.score(x_test, y_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 144, + "id": "bearing-criminal", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.985625" + ] + }, + "execution_count": 144, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cross_val_score(svc, x_train, y_train).mean()" + ] + }, + { + "cell_type": "markdown", + "id": "considerable-extreme", + "metadata": {}, + "source": [ + "## SVC ze skalowaniem\n", + "\n", + "Skaluję dane za pomocą MinMaxScaler. A poniweaż nasz target jest już przeskalowany to wystarczy użyć to na x_train, x_test.\n", + "\n", + "Uzyskaliśmy bardzo ciekway wynik, ponieważ skalowanie danych pogorszyło wyniki przewidywań, aby to sprawdzić użyłem równeż walidacji krzyżowej której wyniki również były lepsze na danych nieprzeskalowanych." + ] + }, + { + "cell_type": "code", + "execution_count": 139, + "id": "hydraulic-headset", + "metadata": {}, + "outputs": [], + "source": [ + "mm = MinMaxScaler()\n", + "mm_x_train = mm.fit_transform(x_train)\n", + "mm_x_test = mm.transform(x_test)\n", + "mm_x_train = pd.DataFrame(mm_x_train, columns=x_train.columns.values)\n", + "mm_x_test = pd.DataFrame(mm_x_test, columns=x_train.columns.values)" + ] + }, + { + "cell_type": "code", + "execution_count": 140, + "id": "bizarre-whole", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.9325" + ] + }, + "execution_count": 140, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "svc2 = SVC()\n", + "svc2.fit(mm_x_train, y_train)\n", + "svc2.score(mm_x_test, y_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 149, + "id": "endangered-affect", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.95375" + ] + }, + "execution_count": 149, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cross_val_score(svc, mm_x_train, y_train).mean()" + ] + }, + { + "cell_type": "markdown", + "id": "constant-insight", + "metadata": {}, + "source": [ + "## GridSearch na SVC\n", + "\n", + "W tym przypaku dzięki GridSearch udało się poprawić wyniki SVC dla nieprzeskalowanych danych do 98,25% accuracy. Aby upewnić się, że skalowanie faktycznie daje gorsze wyniki jego brak, wykonałem gridsearch również dla danych przeskalowanych ale wyniki nadal były gorsze 96%." + ] + }, + { + "cell_type": "code", + "execution_count": 183, + "id": "quantitative-metadata", + "metadata": {}, + "outputs": [], + "source": [ + "grid_search2 = {\n", + " 'C' : np.logspace(-2, 2, 5),\n", + " 'gamma' : ['scale', 'auto'],\n", + " 'degree' : range(1,3),\n", + " 'kernel' : ['rbf']\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 184, + "id": "optical-walker", + "metadata": {}, + "outputs": [], + "source": [ + "svc3 = SVC()\n", + "gs_c = GridSearchCV(svc3, grid_search2)" + ] + }, + { + "cell_type": "code", + "execution_count": 185, + "id": "dramatic-patio", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "GridSearchCV(estimator=SVC(),\n", + " param_grid={'C': array([1.e-02, 1.e-01, 1.e+00, 1.e+01, 1.e+02]),\n", + " 'degree': range(1, 3), 'gamma': ['scale', 'auto'],\n", + " 'kernel': ['rbf']})" + ] + }, + "execution_count": 185, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gs_c.fit(x_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 186, + "id": "requested-tracy", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy dla modelu nie skalowanego: 0.9825\n" + ] + } + ], + "source": [ + "print('Accuracy dla modelu nie skalowanego: ' + str(gs_c.best_estimator_.score(x_test, y_test)))" + ] + }, + { + "cell_type": "code", + "execution_count": 187, + "id": "herbal-termination", + "metadata": {}, + "outputs": [], + "source": [ + "svc3 = SVC()\n", + "gs_c2 = GridSearchCV(svc3, grid_search2)" + ] + }, + { + "cell_type": "code", + "execution_count": 188, + "id": "dedicated-scratch", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "GridSearchCV(estimator=SVC(),\n", + " param_grid={'C': array([1.e-02, 1.e-01, 1.e+00, 1.e+01, 1.e+02]),\n", + " 'degree': range(1, 3), 'gamma': ['scale', 'auto'],\n", + " 'kernel': ['rbf']})" + ] + }, + "execution_count": 188, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gs_c2.fit(mm_x_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 189, + "id": "cubic-flush", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy dla modelu skalowanego: 0.96\n" + ] + } + ], + "source": [ + "print('Accuracy dla modelu skalowanego: ' + str(gs_c2.best_estimator_.score(mm_x_test, y_test)))" + ] + }, + { + "cell_type": "markdown", + "id": "elementary-crawford", + "metadata": {}, + "source": [ + "# Wnioski\n", + "\n", + "Należy zauważyć, że wyniki modelowań różniły się w obu przypadkach. Na pierwszym zbiorze apartments z paczki *dalex* skalowanie danych znacznie poprawiło wyniki modelu ale już GridSearch minimalnie je pogorszył. \n", + "W drugim przypadku skalowanie danych przyniosło znaczące pogorsznie wyników, a w takim wypadku GridSearch przyczynił się do ich małej poprawy. " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Prace_domowe/Praca_domowa4/Patryk_Slowakiewicz/train.csv b/Prace_domowe/Praca_domowa4/Patryk_Slowakiewicz/train.csv new file mode 100644 index 000000000..c86e2fa16 --- /dev/null +++ b/Prace_domowe/Praca_domowa4/Patryk_Slowakiewicz/train.csv @@ -0,0 +1,2001 @@ +battery_power,blue,clock_speed,dual_sim,fc,four_g,int_memory,m_dep,mobile_wt,n_cores,pc,px_height,px_width,ram,sc_h,sc_w,talk_time,three_g,touch_screen,wifi,price_range +842,0,2.2,0,1,0,7,0.6,188,2,2,20,756,2549,9,7,19,0,0,1,1 +1021,1,0.5,1,0,1,53,0.7,136,3,6,905,1988,2631,17,3,7,1,1,0,2 +563,1,0.5,1,2,1,41,0.9,145,5,6,1263,1716,2603,11,2,9,1,1,0,2 +615,1,2.5,0,0,0,10,0.8,131,6,9,1216,1786,2769,16,8,11,1,0,0,2 +1821,1,1.2,0,13,1,44,0.6,141,2,14,1208,1212,1411,8,2,15,1,1,0,1 +1859,0,0.5,1,3,0,22,0.7,164,1,7,1004,1654,1067,17,1,10,1,0,0,1 +1821,0,1.7,0,4,1,10,0.8,139,8,10,381,1018,3220,13,8,18,1,0,1,3 +1954,0,0.5,1,0,0,24,0.8,187,4,0,512,1149,700,16,3,5,1,1,1,0 +1445,1,0.5,0,0,0,53,0.7,174,7,14,386,836,1099,17,1,20,1,0,0,0 +509,1,0.6,1,2,1,9,0.1,93,5,15,1137,1224,513,19,10,12,1,0,0,0 +769,1,2.9,1,0,0,9,0.1,182,5,1,248,874,3946,5,2,7,0,0,0,3 +1520,1,2.2,0,5,1,33,0.5,177,8,18,151,1005,3826,14,9,13,1,1,1,3 +1815,0,2.8,0,2,0,33,0.6,159,4,17,607,748,1482,18,0,2,1,0,0,1 +803,1,2.1,0,7,0,17,1.0,198,4,11,344,1440,2680,7,1,4,1,0,1,2 +1866,0,0.5,0,13,1,52,0.7,185,1,17,356,563,373,14,9,3,1,0,1,0 +775,0,1.0,0,3,0,46,0.7,159,2,16,862,1864,568,17,15,11,1,1,1,0 +838,0,0.5,0,1,1,13,0.1,196,8,4,984,1850,3554,10,9,19,1,0,1,3 +595,0,0.9,1,7,1,23,0.1,121,3,17,441,810,3752,10,2,18,1,1,0,3 +1131,1,0.5,1,11,0,49,0.6,101,5,18,658,878,1835,19,13,16,1,1,0,1 +682,1,0.5,0,4,0,19,1.0,121,4,11,902,1064,2337,11,1,18,0,1,1,1 +772,0,1.1,1,12,0,39,0.8,81,7,14,1314,1854,2819,17,15,3,1,1,0,3 +1709,1,2.1,0,1,0,13,1.0,156,2,2,974,1385,3283,17,1,15,1,0,0,3 +1949,0,2.6,1,4,0,47,0.3,199,4,7,407,822,1433,11,5,20,0,0,1,1 +1602,1,2.8,1,4,1,38,0.7,114,3,20,466,788,1037,8,7,20,1,0,0,0 +503,0,1.2,1,5,1,8,0.4,111,3,13,201,1245,2583,11,0,12,1,0,0,1 +961,1,1.4,1,0,1,57,0.6,114,8,3,291,1434,2782,18,9,7,1,1,1,2 +519,1,1.6,1,7,1,51,0.3,132,4,19,550,645,3763,16,1,4,1,0,1,3 +956,0,0.5,0,1,1,41,1.0,143,7,6,511,1075,3286,17,8,12,1,1,0,3 +1453,0,1.6,1,12,1,52,0.3,96,2,18,187,1311,2373,10,1,10,1,1,1,2 +851,0,0.5,0,3,0,21,0.4,200,5,7,1171,1263,478,12,7,10,1,0,1,0 +1579,1,0.5,1,0,0,5,0.2,88,7,9,1358,1739,3532,17,11,12,0,0,1,3 +1568,1,0.5,0,16,0,33,1.0,150,8,20,413,654,508,5,1,6,1,1,1,0 +1319,1,0.9,0,3,1,41,0.9,107,1,18,85,1152,2227,18,5,3,1,1,1,1 +1310,1,2.2,1,0,1,51,0.6,100,4,0,178,1919,3845,7,0,12,1,1,0,3 +644,1,2.7,0,0,0,22,0.7,157,8,3,311,881,1262,12,1,15,1,0,0,0 +725,0,1.3,1,16,0,60,0.4,160,8,17,1134,1249,1326,10,4,15,1,0,0,1 +589,1,2.3,1,1,0,61,0.6,160,4,10,429,815,2113,13,7,2,1,0,1,1 +1725,1,1.6,1,6,1,6,0.5,119,2,18,609,1307,3429,6,5,4,1,1,0,3 +790,0,2.0,1,16,1,11,0.3,87,6,17,347,730,3169,6,1,2,1,0,1,2 +560,0,0.5,1,15,0,50,0.3,159,2,20,1448,1613,2150,18,12,11,1,1,0,2 +1347,0,2.9,0,5,0,44,0.6,132,1,14,434,967,2484,18,2,11,1,0,1,2 +1646,1,2.3,0,8,1,41,0.2,185,2,10,1725,1932,3339,18,10,19,1,1,0,3 +1253,1,0.5,1,5,1,5,0.2,152,2,19,685,714,1878,15,0,4,1,1,0,1 +1656,0,1.0,0,5,1,34,0.1,166,3,7,880,1456,1629,15,12,14,1,1,0,1 +1195,1,2.8,0,1,1,20,0.8,110,2,14,1580,1652,504,9,3,12,1,1,0,0 +1514,0,2.9,0,0,0,27,0.2,118,3,1,186,1810,1152,8,3,20,0,1,1,1 +1723,1,1.1,1,1,0,42,1.0,164,8,14,202,1791,3587,10,5,3,1,0,0,3 +1054,1,1.8,1,3,1,40,0.8,196,7,10,27,774,2296,16,12,12,1,0,1,1 +578,1,2.6,1,2,1,57,0.2,162,8,8,1025,1433,1270,15,3,5,1,0,1,0 +596,0,2.1,1,9,0,64,0.8,111,8,15,885,1854,3238,16,13,10,0,0,0,3 +1547,1,3.0,1,2,1,14,0.7,198,3,19,1042,1832,2059,5,0,15,1,0,1,2 +1760,0,1.4,1,5,0,63,0.8,127,8,19,1382,1383,2053,19,12,16,0,1,0,2 +1654,1,1.5,1,0,1,43,0.3,109,2,0,546,629,3112,12,5,10,1,1,0,3 +1457,0,1.9,1,1,1,16,0.3,102,3,10,1013,1287,1440,17,8,12,1,0,1,1 +1073,1,0.5,1,0,0,51,0.5,145,7,0,690,804,2908,6,0,18,0,1,0,2 +1936,0,2.1,1,10,1,46,0.6,104,3,20,667,1036,2552,14,7,13,1,0,0,2 +823,1,2.7,1,13,0,60,0.5,148,8,19,822,1449,905,14,11,17,1,1,1,0 +987,0,1.3,1,0,1,61,0.4,107,3,9,581,820,3963,9,4,20,1,0,1,3 +1757,0,0.5,0,8,0,49,0.5,180,6,14,265,713,2056,7,5,4,0,0,0,1 +1063,0,1.4,1,2,1,48,1.0,128,5,4,127,683,2910,15,13,9,1,1,1,2 +1484,0,3.0,0,3,0,12,0.6,134,3,5,916,969,1457,14,4,20,1,1,0,1 +799,1,2.3,0,1,1,63,0.8,144,8,6,361,975,431,15,6,6,1,1,1,0 +1156,1,1.2,1,0,1,50,0.8,159,2,0,322,547,470,7,0,15,1,1,0,0 +1720,0,2.0,0,15,1,55,0.5,168,2,18,753,1353,2148,14,2,5,1,1,1,2 +702,0,2.6,1,2,1,9,0.7,141,3,3,504,1570,2955,10,4,19,1,0,0,2 +616,0,1.9,1,13,1,44,0.8,81,3,17,651,1618,3366,18,8,13,1,1,0,3 +1358,1,0.5,0,11,1,36,0.3,155,4,14,1565,1858,3068,9,4,4,1,1,0,3 +1866,0,1.4,0,0,0,30,0.5,182,3,0,108,1781,3834,16,11,8,0,0,0,3 +1242,0,1.1,1,0,0,10,0.6,165,2,1,459,1225,1050,11,1,4,1,0,1,0 +1166,0,1.5,1,0,1,43,0.8,80,4,1,205,603,3993,7,1,7,1,1,0,3 +1448,1,0.5,1,6,1,45,0.8,138,7,11,570,1724,3378,13,11,2,1,1,1,3 +1407,1,2.4,0,1,1,22,0.7,104,4,4,1172,1217,2192,9,7,13,1,0,1,2 +605,0,1.0,0,8,1,9,0.1,142,3,16,160,1026,392,15,6,4,1,0,0,0 +1038,0,1.2,0,3,0,43,0.7,141,1,5,4,638,3709,11,0,12,1,1,1,3 +797,1,2.9,1,4,0,38,0.5,90,4,6,763,1413,590,9,2,6,0,1,0,0 +819,0,0.6,1,8,1,42,0.9,188,6,20,339,1242,1814,5,4,13,1,0,1,1 +1114,0,2.8,0,4,1,9,0.4,197,3,15,1040,1071,907,10,7,17,1,1,0,0 +1234,1,1.6,1,1,0,33,0.6,172,1,3,166,778,1449,11,7,6,0,0,1,0 +1199,1,2.5,1,15,1,16,0.2,116,4,20,1168,1552,3448,17,13,10,1,0,1,3 +1103,0,1.0,1,6,0,29,0.7,111,6,8,990,1486,1837,8,7,16,0,1,1,1 +1589,1,0.6,1,0,1,58,0.9,85,7,7,319,1206,3464,19,10,6,1,1,1,3 +999,0,2.9,1,11,1,64,0.2,199,4,19,1397,1616,2593,14,11,16,1,1,0,2 +1510,1,0.9,1,2,0,45,0.9,180,5,3,708,1752,3484,9,6,11,0,1,1,3 +1008,0,0.8,0,11,0,61,1.0,114,3,15,1077,1122,2009,10,3,11,1,0,0,1 +1127,1,2.9,1,5,1,57,0.8,163,1,13,928,1049,2048,11,5,17,1,1,1,1 +1412,1,2.4,0,5,0,25,0.8,96,8,17,516,1894,837,15,9,4,0,0,1,1 +1496,1,2.0,1,4,0,42,0.5,182,5,5,96,741,854,16,0,7,0,1,1,0 +1083,1,2.9,1,1,1,64,0.8,178,3,11,1025,1118,3210,13,3,4,1,0,0,3 +668,0,0.5,1,0,0,3,0.1,155,5,13,666,1203,2746,9,5,8,1,1,1,2 +1309,0,1.1,1,0,0,33,0.5,100,4,14,557,1402,2334,10,1,11,1,0,1,2 +1724,0,2.0,1,2,1,57,0.5,177,3,5,1605,1924,2822,19,3,16,1,1,0,3 +1977,1,2.0,1,7,1,54,1.0,171,7,18,1226,1242,1971,18,7,14,1,1,0,2 +885,0,2.3,1,0,1,15,0.4,103,7,0,769,802,1410,16,10,5,1,1,1,0 +879,1,2.5,0,11,1,14,0.7,83,6,15,403,1105,349,16,10,2,1,0,1,0 +1322,0,1.7,1,6,0,7,0.8,140,3,9,177,1990,1418,19,17,12,0,1,0,1 +1137,1,1.0,0,18,0,7,1.0,196,3,19,942,1179,3616,13,5,12,1,1,1,3 +1355,0,2.3,0,10,1,23,0.2,132,5,16,651,891,880,19,4,8,1,1,0,0 +1665,1,0.5,0,3,1,60,0.2,194,6,18,1572,1684,1601,18,17,14,1,0,0,2 +657,0,2.5,0,0,0,37,0.7,141,2,1,476,961,1412,14,3,18,0,1,0,0 +593,0,0.5,0,6,0,31,0.4,156,7,7,1233,1317,1692,6,2,7,1,0,0,1 +1883,1,0.5,0,3,1,10,0.3,146,6,13,836,1739,2600,16,8,20,1,0,0,3 +1732,1,1.1,0,4,1,12,0.8,119,8,9,824,881,1308,16,7,11,1,0,1,1 +543,0,0.5,0,0,0,57,0.7,192,5,4,391,984,2413,17,14,15,1,0,0,1 +1939,1,2.8,1,0,1,55,0.6,199,4,10,320,520,1047,14,10,18,1,1,0,0 +553,0,2.4,1,1,1,8,0.5,121,7,3,325,902,1204,11,4,8,1,1,1,0 +832,0,0.7,1,2,1,39,0.7,103,4,3,125,1504,1799,5,2,11,1,0,1,1 +1661,0,1.9,1,5,0,23,1.0,172,5,10,846,1634,2676,12,6,11,0,1,1,3 +1657,1,2.4,0,3,0,42,0.1,198,5,16,1770,1796,2597,18,1,14,1,0,0,3 +1135,1,2.0,1,0,0,46,0.3,83,1,4,293,1846,3029,19,17,9,1,1,1,3 +1775,1,1.5,0,3,0,41,0.1,163,1,7,1633,1869,2343,19,13,14,1,1,1,3 +783,0,1.8,1,0,1,43,1.0,106,3,4,1198,1471,2016,16,4,18,1,1,0,1 +617,1,2.3,0,0,0,32,0.5,199,7,20,768,874,2213,18,13,7,0,0,0,1 +867,0,1.4,1,0,1,4,0.7,135,6,1,70,1974,790,13,6,3,1,1,0,0 +1310,1,1.1,1,13,0,7,1.0,194,5,14,117,513,3182,8,4,5,1,1,0,2 +1804,0,0.5,0,9,1,22,0.6,153,7,19,1158,1244,3472,9,1,20,1,0,1,3 +1900,1,2.3,0,1,1,18,0.2,89,7,9,1055,1661,2871,12,1,13,1,1,1,3 +909,1,1.4,0,0,0,53,0.3,82,8,0,635,973,3187,12,9,4,1,0,0,2 +1084,1,2.6,0,3,1,40,0.9,107,3,11,322,771,1945,15,4,10,1,1,0,1 +1308,0,1.3,1,8,0,46,0.9,199,1,12,275,989,488,5,3,9,0,1,0,0 +1778,0,0.5,0,0,0,15,0.5,102,3,0,1445,1954,1214,5,0,14,1,0,0,1 +1701,1,1.6,1,3,0,10,0.3,194,8,7,550,1338,2598,12,9,6,0,1,0,2 +772,1,2.4,1,1,1,10,0.5,80,4,2,1242,1712,3242,18,11,4,1,1,0,3 +825,1,0.5,1,7,0,52,0.9,130,3,10,597,863,3534,10,4,6,0,1,0,3 +1379,0,1.1,0,5,1,36,0.8,200,2,7,538,1376,3426,5,4,17,1,1,1,3 +1166,0,2.0,0,3,1,25,0.8,198,5,4,59,1203,2488,13,5,15,1,0,0,2 +1659,0,2.8,0,5,0,16,0.6,89,1,20,819,902,3255,19,14,9,0,0,1,3 +826,1,2.4,1,0,1,58,0.3,88,4,1,179,786,2863,9,3,18,1,0,1,2 +1564,0,2.3,0,4,1,25,0.5,189,6,17,1259,1965,1496,6,4,7,1,1,1,1 +1957,0,0.9,1,11,0,31,0.6,181,3,16,396,1732,3801,12,0,7,1,0,1,3 +1571,0,1.4,0,0,1,19,0.1,100,6,1,713,1398,666,12,10,13,1,1,0,0 +1414,0,2.0,1,2,0,54,0.8,99,7,3,262,829,3799,17,7,7,1,0,1,3 +1790,0,2.5,1,9,0,2,0.1,184,1,14,622,792,1366,7,0,20,1,1,1,1 +645,0,0.5,0,1,0,41,1.0,197,7,10,327,580,2962,12,9,4,1,1,1,2 +668,0,2.9,1,7,0,30,0.2,195,8,12,522,1056,2399,10,5,7,1,1,1,1 +1652,1,1.1,1,1,0,36,0.7,89,4,5,313,1264,2338,12,8,20,0,0,0,2 +1213,1,0.5,0,0,0,16,0.5,108,5,0,226,1248,2700,12,3,9,0,0,1,2 +1272,1,2.5,1,0,0,22,0.9,133,6,8,605,669,2235,19,4,4,1,0,0,1 +866,0,0.5,1,5,1,46,0.5,179,8,7,692,1686,3825,12,11,2,1,1,1,3 +536,0,2.4,1,12,1,3,0.3,182,7,14,1386,1539,284,12,9,4,1,1,0,0 +523,0,2.6,1,1,0,14,0.1,155,8,2,304,1042,1427,9,1,9,0,1,0,0 +1753,0,0.5,1,0,1,31,0.1,134,1,18,1590,1926,1324,17,0,17,1,0,1,2 +1218,0,1.8,1,1,1,14,0.5,147,3,4,229,616,398,17,0,5,1,0,0,0 +1537,1,2.5,0,4,1,43,0.3,137,1,5,839,1131,3685,18,17,17,1,1,1,3 +786,0,2.2,1,0,0,33,0.5,141,7,6,507,1697,2390,12,11,5,1,0,1,2 +1678,0,2.1,0,3,1,64,0.9,134,3,11,436,536,278,19,0,10,1,1,0,0 +1814,0,1.4,1,1,1,9,0.4,141,2,2,756,786,3556,18,12,16,1,0,0,3 +1101,0,1.8,0,0,0,31,0.2,148,2,7,387,1269,2196,12,6,19,0,1,1,1 +1461,0,2.4,1,3,1,40,0.5,141,7,4,1265,1298,3799,16,1,4,1,0,0,3 +1216,0,3.0,0,4,0,47,0.4,199,3,7,1852,1967,2268,13,5,4,0,1,1,2 +506,0,1.6,0,6,1,41,0.8,159,1,7,875,1025,2965,13,10,15,1,0,0,2 +843,1,0.5,0,1,1,56,0.1,147,5,17,140,800,2341,10,1,20,1,1,1,1 +742,0,2.2,1,4,0,56,0.2,190,7,14,577,1359,3557,16,11,12,0,1,1,3 +1692,1,2.1,0,3,1,61,0.9,176,6,12,975,1996,1354,16,7,19,1,0,0,1 +1485,0,1.0,0,2,1,32,0.7,84,2,9,510,1013,2147,19,1,11,1,1,0,2 +1547,0,2.9,1,6,0,45,0.7,166,2,8,583,590,505,12,2,3,0,1,1,0 +1692,0,2.3,1,4,1,46,0.9,139,1,6,674,1925,1394,16,10,6,1,1,0,1 +637,0,2.3,0,3,1,60,0.8,97,4,4,1125,1989,374,18,4,8,1,0,1,0 +1224,0,0.5,0,16,1,6,0.4,109,6,18,747,826,506,10,0,11,1,1,1,0 +1356,0,2.8,0,0,0,29,0.5,198,6,0,1612,1983,3702,17,0,19,0,0,0,3 +1840,0,0.5,1,12,0,34,0.7,142,1,16,311,1545,1078,8,0,10,0,0,0,1 +1481,1,0.7,1,4,1,37,0.6,96,5,13,116,1533,2945,10,5,16,1,1,1,2 +961,1,1.5,1,10,0,51,0.3,152,6,16,554,621,2981,15,6,7,1,1,1,2 +1296,0,0.9,1,0,1,14,0.5,124,5,3,811,1272,490,7,1,4,1,1,1,0 +1193,0,0.9,0,11,0,26,0.5,166,1,20,730,1729,536,17,14,4,1,0,1,0 +1441,0,2.1,1,11,1,3,0.1,118,8,17,577,1071,2317,16,4,7,1,0,1,2 +517,0,1.4,1,3,1,33,0.8,183,4,8,660,974,3704,17,16,11,1,0,1,3 +748,1,1.7,0,0,1,27,0.9,150,8,4,450,1554,2126,18,9,7,1,0,0,1 +1126,1,2.4,0,2,1,10,0.4,160,6,3,1223,1611,2050,7,6,12,1,1,1,2 +1572,0,0.6,0,0,1,58,0.2,157,7,8,1109,1937,2462,12,8,10,1,0,0,3 +1569,0,2.8,1,17,0,44,0.3,110,4,20,45,1942,1260,9,2,17,1,0,0,1 +1270,1,0.6,1,2,1,32,0.5,101,7,6,299,845,3770,5,3,13,1,1,0,3 +1854,0,3.0,0,2,1,8,0.1,101,5,5,506,627,1886,17,4,20,1,1,0,1 +625,1,1.2,1,5,1,10,0.2,183,4,8,635,842,3323,9,1,7,1,1,1,2 +1577,0,0.5,1,0,1,42,0.3,197,5,4,1045,1737,2060,19,6,12,1,0,0,2 +534,0,0.5,1,0,1,16,1.0,189,5,1,393,1199,3926,16,12,20,1,0,0,3 +946,0,1.7,1,8,1,25,0.8,143,6,15,650,1740,2177,7,5,13,1,1,1,2 +685,0,0.5,0,2,0,29,0.8,93,7,10,433,648,728,14,8,4,0,0,1,0 +1949,0,1.3,1,0,0,23,0.1,101,5,1,839,1136,2478,14,8,20,1,0,0,3 +947,0,0.8,1,0,1,22,0.1,197,2,13,1176,1220,2842,16,12,2,1,0,0,2 +801,1,2.2,1,2,0,63,0.4,165,7,4,650,879,1617,17,4,19,0,0,1,1 +703,1,2.7,0,12,1,30,0.3,113,1,20,218,1065,1472,14,7,7,1,0,0,0 +1165,1,2.4,0,11,0,41,0.2,178,6,12,564,831,764,19,12,15,1,0,0,0 +1082,0,0.8,0,0,0,38,0.1,198,8,5,986,1191,2337,6,1,17,0,1,1,2 +959,1,2.6,1,15,0,20,1.0,84,4,19,561,1631,3965,16,1,6,1,0,0,3 +1502,1,1.2,0,0,0,54,0.2,138,5,12,65,588,3693,17,14,16,1,1,0,3 +1380,1,2.1,1,1,1,4,0.8,92,3,13,420,500,797,13,2,15,1,1,0,0 +1266,0,0.5,0,0,1,5,0.1,95,6,9,1365,1698,1687,11,0,18,1,0,0,2 +1934,1,2.6,1,0,1,46,0.1,103,1,17,619,1299,2940,13,9,2,1,1,1,3 +1905,1,0.5,0,3,1,6,0.5,151,1,5,849,898,1545,9,5,10,1,1,0,1 +1831,0,1.4,1,2,0,43,0.9,150,5,5,611,1381,3834,17,7,13,1,1,1,3 +596,0,1.4,0,8,0,46,0.6,165,1,18,953,984,2505,15,4,15,1,1,0,1 +1562,1,1.3,1,1,1,7,0.2,190,5,15,642,1533,2243,12,10,6,1,0,0,2 +1490,1,0.5,1,4,1,64,0.3,150,8,8,1417,1464,3600,17,9,7,1,1,1,3 +1523,1,2.4,0,5,1,57,0.2,117,2,6,247,539,3971,18,12,10,1,1,1,3 +640,0,0.6,0,0,0,20,0.1,163,4,15,710,1179,2844,7,5,18,1,1,0,2 +1526,0,2.1,0,1,1,23,0.2,117,7,8,718,751,2227,18,10,3,1,1,0,2 +1989,0,2.5,1,0,1,41,0.8,94,3,13,1100,1497,1665,17,9,12,1,1,1,2 +1308,0,1.9,0,0,1,61,0.7,106,3,7,59,1215,3355,15,2,4,1,0,1,3 +609,0,0.5,0,3,0,26,0.3,93,4,4,938,1948,1866,11,10,14,1,1,1,1 +1905,0,0.6,1,9,1,36,0.4,119,3,20,825,1542,1287,13,4,16,1,0,0,1 +1703,1,0.5,0,0,1,22,0.6,192,1,0,286,1235,1046,5,4,13,1,0,1,0 +1445,1,2.4,1,7,1,20,0.4,173,7,15,1273,1345,1441,7,4,13,1,1,1,1 +1087,0,1.3,0,0,1,16,0.3,166,3,9,295,589,690,14,6,6,1,0,1,0 +671,0,0.9,1,10,0,30,0.7,105,7,17,852,1182,2504,6,4,15,1,0,0,2 +1472,1,2.3,0,6,0,61,0.1,168,6,19,710,1052,2677,19,15,8,1,0,0,2 +765,0,0.5,1,0,1,47,0.3,115,8,1,1277,1429,2243,11,7,4,1,0,1,2 +1642,0,0.5,1,16,1,8,0.3,171,6,17,129,873,2984,13,4,17,1,0,1,2 +1265,0,1.5,0,7,0,49,0.7,182,5,16,690,836,1362,5,0,12,0,0,1,1 +664,1,1.1,1,1,1,51,0.1,110,7,4,701,1478,3629,19,15,6,1,1,1,3 +1277,1,0.5,1,0,1,35,0.4,142,6,6,309,1460,3559,18,17,6,1,1,0,3 +1395,0,1.8,1,0,0,23,0.1,111,3,1,213,705,2571,11,0,13,1,0,1,2 +1539,1,2.6,0,0,0,41,0.1,159,8,0,1112,1666,2107,15,9,10,1,0,1,2 +1049,1,2.2,0,9,0,63,0.5,135,5,17,199,1077,1022,11,3,13,0,0,0,0 +1827,0,1.7,0,4,1,39,0.5,128,5,16,55,1020,2844,14,9,10,1,1,0,2 +903,0,1.0,1,0,1,50,0.4,91,1,0,1230,1235,711,9,5,10,1,1,0,0 +1987,1,0.5,0,3,1,53,1.0,181,3,7,1052,1516,3117,18,5,8,1,1,1,3 +1154,0,1.2,1,0,1,49,0.2,181,8,2,541,1499,978,5,3,7,1,0,1,0 +1336,0,0.9,0,5,1,17,0.2,194,5,9,55,583,1869,13,1,16,1,1,1,1 +1886,0,0.5,0,0,1,24,0.4,112,3,1,809,1958,1179,16,7,20,1,0,1,1 +1551,0,1.1,0,4,0,51,0.1,88,5,6,1738,1995,3844,11,8,4,0,1,0,3 +850,1,1.6,1,6,1,29,0.5,133,5,19,404,642,593,19,17,10,1,0,1,0 +660,0,0.5,0,5,1,40,0.5,111,2,10,262,1178,588,6,5,18,1,1,1,0 +1225,1,2.1,1,8,0,13,0.5,116,4,12,759,1404,3836,12,11,11,0,0,0,3 +1452,1,0.5,1,1,1,25,0.9,123,6,11,42,1040,2669,12,10,13,1,0,0,2 +1686,1,2.8,1,3,0,38,0.1,166,4,4,397,1453,2958,14,11,2,0,0,0,3 +1634,1,1.4,0,1,1,17,0.2,200,2,5,964,1677,3031,11,6,6,1,1,1,3 +1708,1,2.4,1,18,1,49,0.1,109,1,19,233,517,3388,6,4,16,1,1,1,3 +1151,1,2.9,1,0,0,31,0.6,128,8,1,1022,1560,2377,18,8,13,0,1,0,2 +1578,0,1.9,1,2,1,37,0.1,138,4,19,411,1226,2458,19,16,3,1,0,1,2 +1689,0,1.8,0,17,0,24,0.3,127,3,18,954,1200,2766,7,2,7,0,1,1,3 +1488,0,0.5,0,1,0,39,0.8,112,5,6,1528,1647,3054,14,10,19,0,0,0,3 +1313,1,1.8,1,4,0,9,0.4,105,1,6,416,1308,3791,11,10,6,0,1,1,3 +1715,0,1.0,1,4,1,31,0.5,83,8,17,638,1615,625,17,6,13,1,0,0,0 +1442,0,1.0,1,0,0,27,0.1,192,3,19,231,687,2227,6,5,20,1,1,0,1 +528,0,1.7,0,12,1,6,0.8,142,2,15,574,637,3256,9,8,6,1,1,0,2 +1523,1,1.8,0,6,1,11,0.1,129,1,8,148,1606,707,19,8,19,1,1,0,0 +1133,0,1.4,0,3,0,42,0.1,199,5,12,730,1543,1457,18,12,20,1,0,1,1 +1718,1,2.5,1,14,1,6,0.1,183,5,16,564,980,3755,7,1,8,1,1,1,3 +1330,0,0.5,0,0,0,38,1.0,183,7,1,1290,1441,1733,9,0,11,1,0,1,1 +1799,1,0.5,0,0,0,49,0.4,107,4,2,632,1383,720,12,2,11,1,1,1,0 +633,1,2.2,0,0,1,49,0.1,139,8,1,529,1009,3560,11,1,16,1,1,1,2 +724,0,2.7,1,0,0,44,0.5,187,7,0,1273,1754,2311,7,6,7,1,0,0,2 +822,1,0.5,0,0,1,51,0.3,157,6,20,667,860,3846,10,1,3,1,0,0,3 +1918,0,1.9,0,2,0,10,0.6,110,5,10,1170,1543,1717,7,1,16,1,1,1,2 +1891,0,2.8,0,7,1,37,0.4,129,7,14,169,1108,3704,8,6,11,1,0,0,3 +1373,1,1.0,1,2,0,50,0.2,127,7,12,105,673,3800,8,3,14,1,0,0,3 +862,1,0.8,1,3,0,23,0.4,165,2,15,793,1758,278,16,3,11,0,0,1,0 +1273,0,1.0,0,3,1,48,0.4,99,4,15,490,886,1767,18,15,11,1,1,0,1 +957,1,2.5,0,4,0,7,0.8,107,5,10,1201,1485,1846,12,5,7,1,0,1,1 +1617,1,1.3,1,3,1,30,0.7,105,2,4,246,1038,829,9,0,10,1,0,0,0 +893,0,2.5,1,0,0,55,0.6,183,2,1,417,946,2986,7,1,6,0,1,1,2 +1210,0,0.5,0,0,0,63,0.1,93,5,0,1177,1462,2394,17,9,7,0,0,0,2 +708,1,2.7,1,0,1,63,1.0,195,8,7,78,654,2169,6,5,7,1,1,1,1 +835,0,1.1,1,2,0,7,0.2,101,4,7,323,1604,1181,13,5,15,1,1,1,0 +1450,1,2.7,1,9,0,19,0.6,131,1,17,707,1882,575,15,9,12,0,0,0,0 +973,1,1.5,0,5,1,57,0.2,190,7,16,457,1816,2977,6,4,2,1,0,0,2 +601,1,1.4,0,4,1,4,0.1,154,4,13,356,765,532,12,8,10,1,1,1,0 +507,1,0.5,1,1,0,32,0.5,141,7,11,936,1398,1702,17,0,5,1,1,1,1 +564,0,1.8,1,0,1,51,0.5,168,3,1,912,1980,1074,14,8,15,1,1,0,0 +1559,1,1.6,1,6,1,6,0.5,162,6,17,179,1559,3352,9,1,3,1,1,1,3 +754,0,0.5,1,7,1,59,0.7,178,7,10,1914,1928,1027,6,3,5,1,0,0,1 +728,0,2.7,1,0,0,25,0.2,88,4,1,526,1529,2039,5,1,12,1,1,1,1 +1431,1,0.5,0,0,1,56,0.6,191,1,1,156,952,461,7,3,8,1,0,0,0 +767,0,1.5,0,4,0,28,0.7,175,4,10,344,1517,527,10,0,15,0,1,0,0 +1722,0,2.6,0,8,0,18,0.8,177,2,16,865,1741,3271,14,0,15,1,0,1,3 +1992,1,1.6,0,5,1,57,1.0,100,2,15,1552,1596,606,9,3,4,1,1,1,1 +1876,0,0.5,0,10,1,40,0.3,86,6,14,546,1564,2513,10,8,16,1,1,0,3 +1054,0,1.1,1,10,1,38,0.4,136,6,12,1097,1222,1675,18,4,14,1,1,1,1 +1283,1,1.6,1,4,0,47,0.9,93,5,5,372,692,2698,9,6,17,1,1,0,2 +1281,1,2.3,1,0,0,28,0.3,148,1,6,1285,1617,1129,12,1,6,0,1,0,1 +1066,0,0.6,0,2,1,7,0.9,114,7,18,1242,1571,468,19,13,6,1,1,0,0 +730,0,2.1,1,0,1,4,0.1,89,8,2,302,1247,1210,19,15,4,1,1,1,0 +1053,1,0.8,1,7,1,45,0.3,103,1,12,594,1767,3086,17,6,5,1,1,1,3 +1611,1,0.5,1,11,0,3,0.6,98,3,14,303,714,1595,8,4,9,1,0,1,1 +793,0,1.0,1,5,1,30,0.9,133,2,15,1858,1935,2332,17,13,14,1,1,1,2 +1220,0,2.9,0,3,0,62,0.5,125,4,8,403,1933,2589,19,11,15,1,1,1,2 +1662,0,0.5,0,0,1,61,0.8,126,4,13,32,1509,3760,9,5,13,1,1,1,3 +1281,1,2.8,1,3,1,8,0.3,144,4,19,590,954,1851,8,2,9,1,1,0,1 +538,0,0.8,0,12,1,2,0.8,177,7,13,235,662,417,8,4,9,1,0,1,0 +823,1,0.5,0,0,0,39,0.4,187,8,4,630,888,294,13,9,11,0,0,1,0 +1733,1,2.8,0,3,1,36,1.0,119,6,20,357,527,3576,17,16,9,1,0,0,3 +1429,0,1.5,1,0,1,40,0.9,100,3,14,246,820,3945,11,7,18,1,0,1,3 +1839,1,1.2,0,9,1,54,0.5,200,7,11,475,1493,927,19,10,18,1,0,1,1 +659,0,2.7,0,6,1,6,0.5,110,3,7,1054,1929,2044,15,5,2,1,0,1,1 +1953,1,2.1,1,7,0,56,0.1,158,8,9,555,764,2334,11,5,4,1,0,0,2 +1172,0,1.9,0,0,1,27,0.7,164,1,3,607,1092,1477,12,0,6,1,0,0,1 +612,1,1.9,1,6,0,16,0.3,102,7,7,1360,1891,3161,8,4,3,0,0,0,3 +1563,0,2.4,0,0,1,24,0.2,170,8,0,142,1699,3660,7,5,5,1,1,0,3 +1191,0,1.3,1,16,1,26,0.8,84,1,20,681,683,1604,14,3,9,1,0,1,1 +615,1,0.5,1,0,0,42,0.6,163,6,4,104,1664,2211,7,4,18,0,0,1,1 +1893,1,2.1,1,8,0,63,0.2,134,2,11,637,763,3822,14,3,18,0,1,1,3 +1563,0,1.7,1,10,0,16,0.1,151,7,13,410,572,3922,11,1,8,0,0,1,3 +1995,1,1.9,0,6,0,9,0.8,139,6,18,1830,1963,1203,14,12,18,1,1,1,2 +1517,0,0.5,0,6,1,48,0.6,143,5,14,802,1489,2822,15,5,11,1,1,1,3 +832,0,1.6,1,1,1,34,0.3,108,5,5,311,1294,447,15,13,12,1,1,0,0 +1162,0,2.0,0,0,1,56,0.7,114,7,1,56,997,1652,5,0,20,1,0,0,1 +1595,1,2.6,0,7,0,12,0.3,121,8,19,344,655,3608,15,1,16,0,1,0,3 +1329,1,1.0,0,1,0,52,0.9,181,6,2,1053,1458,1228,8,6,6,1,0,1,1 +928,1,0.5,1,11,0,56,0.7,80,8,13,221,1243,666,19,10,5,0,1,0,0 +1656,1,0.5,1,8,1,38,0.1,105,7,17,506,519,1499,12,8,19,1,0,1,1 +1937,1,1.7,0,17,0,58,0.6,189,1,19,1728,1767,3321,5,4,14,1,1,0,3 +977,1,1.1,1,2,0,57,0.6,181,6,7,63,566,1206,7,1,8,0,1,1,0 +768,1,0.9,0,16,1,56,0.1,113,1,20,418,515,952,19,3,16,1,0,1,0 +1464,1,0.5,1,11,0,12,0.9,117,2,14,854,1168,3927,5,3,15,0,1,1,3 +1177,0,0.9,0,1,1,29,0.4,191,2,8,178,882,311,18,5,19,1,0,0,0 +1348,0,2.0,0,18,0,52,0.3,98,3,20,1869,1942,955,18,11,7,1,1,1,1 +1956,0,2.2,0,0,1,37,0.5,87,3,2,185,776,1109,13,1,19,1,1,0,1 +1751,0,0.5,1,6,0,8,0.6,178,6,20,170,564,2969,8,6,17,0,0,1,2 +1530,0,2.0,0,11,0,42,0.8,177,6,13,454,1975,725,11,10,19,0,0,1,0 +1997,1,1.8,1,1,0,40,0.5,185,4,8,866,1212,1655,7,6,15,1,0,0,2 +1414,1,1.5,1,5,0,44,0.5,180,2,6,44,1118,3490,16,12,13,0,1,0,3 +1707,0,1.4,0,0,0,41,0.8,80,7,2,1331,1388,1774,12,0,10,0,0,0,2 +894,0,0.5,1,1,1,50,0.5,199,3,14,1285,1462,3615,13,0,6,1,0,1,3 +645,0,1.2,0,6,1,41,0.7,184,8,17,741,1130,714,18,2,13,1,1,0,0 +1163,0,2.8,1,0,0,49,0.6,155,2,0,520,754,2768,19,2,12,0,0,1,2 +1126,0,0.7,0,3,0,49,0.9,165,8,17,114,1726,3739,14,1,13,1,0,0,3 +1648,0,0.7,0,6,1,64,0.8,170,4,9,1153,1876,610,8,1,6,1,1,0,1 +1170,1,0.9,0,6,1,14,0.4,199,2,13,474,709,715,18,5,20,1,0,1,0 +508,0,0.8,0,7,1,42,0.3,94,1,8,39,557,663,13,12,7,1,0,0,0 +1097,0,2.1,1,6,0,64,0.2,161,3,8,419,1914,1725,14,5,9,1,0,1,1 +728,0,1.7,1,0,1,5,0.6,101,2,20,584,775,834,16,0,5,1,1,0,0 +1980,0,0.5,1,2,1,29,0.8,177,1,13,312,1910,3865,12,10,18,1,0,0,3 +1504,0,2.3,1,1,0,64,0.9,182,1,2,19,1923,3059,6,5,10,0,1,0,3 +1379,1,2.1,1,14,1,63,1.0,83,1,17,207,1370,651,9,6,7,1,1,0,0 +1698,0,2.1,0,5,1,18,0.9,160,6,20,363,994,796,13,3,14,1,0,1,0 +920,0,2.1,1,5,0,25,0.4,115,7,14,209,1078,785,10,7,5,0,1,1,0 +1144,1,1.5,1,0,0,21,0.4,189,1,11,159,724,3252,16,0,8,0,0,0,2 +1995,1,0.5,0,6,0,26,0.2,129,1,15,649,1104,1322,15,11,7,0,1,1,1 +1430,0,0.5,1,1,0,27,0.5,183,1,16,1132,1182,2832,7,1,15,0,1,1,2 +972,1,0.5,1,5,0,13,0.4,193,5,8,1392,1795,1615,11,6,13,0,1,0,1 +662,0,0.5,0,5,0,20,0.8,138,1,10,1001,1224,2125,17,15,15,0,1,1,1 +1867,0,2.3,0,0,1,9,0.1,191,6,3,712,1442,990,6,1,2,1,0,1,1 +1730,0,2.0,1,0,1,20,0.1,143,4,10,418,1023,1595,14,0,12,1,1,0,1 +1723,1,1.0,0,1,1,7,0.6,126,3,17,384,1361,1213,5,0,16,1,1,1,1 +1882,1,1.3,1,8,0,47,0.2,140,2,13,119,652,2500,17,1,11,0,0,1,2 +803,0,0.8,1,0,0,18,0.3,106,4,1,627,935,2801,18,15,12,0,1,0,2 +580,1,1.2,1,0,0,47,0.9,91,3,1,1086,1345,3451,15,1,11,1,1,0,3 +668,0,2.3,0,2,1,48,0.3,114,1,19,195,1292,1201,14,12,4,1,1,0,0 +1391,0,1.4,0,2,1,36,0.8,182,1,6,14,1256,3139,14,7,14,1,1,0,2 +1560,0,2.3,0,0,1,22,0.8,169,7,1,745,1364,1938,15,11,16,1,1,1,2 +821,0,1.8,1,5,0,54,0.1,109,3,9,253,1786,3185,8,4,15,1,0,0,2 +811,1,2.4,1,5,1,2,0.3,106,6,13,333,1429,2111,18,7,2,1,0,1,1 +1989,1,2.9,1,8,0,17,0.1,193,8,15,629,682,2369,7,0,18,1,1,0,2 +1034,1,2.7,1,6,0,37,0.7,120,7,20,707,1199,3625,17,1,12,0,1,1,3 +618,0,2.1,0,2,0,6,0.3,86,1,4,1314,1688,1051,13,10,15,0,0,1,0 +654,1,1.3,0,0,1,52,0.7,196,4,4,1715,1898,1036,17,4,13,1,0,0,1 +576,1,2.8,0,2,1,10,0.2,184,5,7,513,1438,2938,6,0,5,1,1,1,2 +667,1,0.6,0,6,1,3,0.7,185,6,13,13,1463,2855,5,0,19,1,0,1,2 +869,1,1.0,0,7,1,57,0.6,118,1,15,1243,1584,2727,13,3,8,1,0,0,2 +635,1,0.5,1,2,0,42,0.4,149,3,4,300,1059,2973,12,5,18,0,0,1,2 +609,1,3.0,0,15,1,44,0.3,117,1,16,58,1253,2581,15,11,15,1,0,1,1 +1557,0,2.8,1,16,0,2,0.1,123,5,20,1107,1442,2690,18,16,9,0,0,1,3 +1604,1,1.7,0,2,0,33,1.0,191,8,5,134,939,916,13,10,12,0,1,1,0 +1182,0,0.5,0,7,1,8,0.5,138,8,16,275,986,2563,19,17,19,1,0,0,2 +848,1,2.1,1,10,1,19,0.8,148,7,18,176,1029,3359,10,0,14,1,0,0,2 +1610,1,2.9,0,7,1,64,0.9,181,4,12,1236,1280,941,8,4,9,1,1,0,1 +1828,1,2.1,1,0,0,17,0.9,199,1,1,336,898,2280,17,14,4,0,0,0,2 +880,0,2.0,1,1,1,50,0.5,194,7,3,1116,1381,827,15,9,6,1,0,1,0 +1394,1,0.9,1,10,1,62,0.3,175,5,13,1010,1565,473,11,1,20,1,1,0,0 +1960,1,2.3,1,1,1,61,0.3,86,7,3,205,1299,3865,10,7,11,1,0,0,3 +809,0,0.8,0,10,0,21,0.9,91,7,19,1453,1726,1274,18,7,3,0,0,0,1 +899,0,0.5,1,13,1,57,0.9,172,2,18,788,1331,364,11,1,7,1,1,0,0 +1976,1,0.7,1,4,0,32,0.8,171,2,7,1301,1922,3699,17,11,13,0,1,1,3 +879,0,1.5,1,0,1,21,0.8,187,4,2,463,1038,2927,14,13,11,1,0,1,2 +916,1,2.6,0,0,0,36,0.3,195,4,12,188,992,1470,13,0,14,0,1,0,0 +763,0,1.7,1,8,1,2,0.5,92,8,14,1028,1186,1050,6,4,8,1,1,0,0 +508,0,1.6,1,0,0,9,0.4,162,6,2,1419,1920,2616,18,8,10,1,1,1,2 +825,0,2.9,1,0,0,34,0.8,99,8,17,1471,1866,2915,8,2,10,1,1,0,3 +1864,0,1.4,0,8,1,46,0.7,178,1,12,168,981,2686,11,7,18,1,1,1,2 +1725,0,0.5,1,8,1,52,1.0,185,6,12,1125,1195,1243,19,18,5,1,1,1,1 +1108,1,2.9,0,10,0,52,0.1,183,2,12,130,1706,3264,16,1,13,0,1,1,3 +1011,0,1.1,0,4,1,36,0.2,131,7,18,481,749,2261,7,6,16,1,1,1,1 +1703,1,1.5,1,17,1,55,0.7,138,5,19,1411,1711,2993,5,1,20,1,1,1,3 +1067,1,1.7,1,0,0,58,0.5,135,7,0,79,681,706,12,9,16,0,1,0,0 +1334,1,2.4,0,5,1,42,0.6,115,5,14,1187,1974,2542,10,1,8,1,0,0,3 +775,1,2.6,0,0,0,30,0.4,189,7,10,561,1510,2523,17,16,9,1,0,1,2 +1899,1,0.6,0,0,0,26,0.1,151,2,0,96,814,336,13,11,4,1,0,1,0 +930,1,1.3,1,1,1,14,0.4,97,6,10,77,1025,2457,11,7,17,1,1,0,1 +1058,0,1.5,0,2,0,19,0.4,166,4,14,493,1247,418,9,7,16,0,0,1,0 +1187,1,2.2,0,0,1,46,0.4,145,2,9,1173,1814,3917,13,11,8,1,0,1,3 +1874,1,2.7,1,10,0,8,0.9,166,7,13,964,1233,1246,8,1,2,0,0,1,1 +1482,0,0.5,0,2,0,48,0.2,142,7,10,634,642,2971,12,8,12,1,1,1,2 +1809,1,1.7,0,3,1,59,0.1,174,3,4,639,721,2324,10,6,16,1,0,1,2 +864,1,3.0,1,0,1,54,0.7,187,2,1,127,1670,3121,18,2,16,1,1,1,2 +625,1,1.9,0,12,1,33,0.2,191,1,20,431,550,3801,10,6,2,1,0,0,2 +1880,1,1.8,0,4,1,18,0.7,138,3,5,71,699,3333,17,15,7,1,0,0,3 +1138,0,1.4,0,12,1,44,0.2,187,8,17,111,1138,3475,19,3,3,1,0,0,3 +560,0,0.5,0,14,0,23,1.0,146,8,15,356,1903,2360,17,16,18,0,1,1,1 +1117,0,0.5,0,1,0,12,0.6,144,7,8,798,817,2895,7,6,16,1,1,0,2 +1712,0,1.4,0,1,0,63,0.5,137,7,12,747,1126,3652,16,1,19,1,0,0,3 +1836,1,1.7,1,3,0,26,0.1,134,6,16,408,1139,3097,5,0,18,0,1,0,3 +1036,1,2.4,0,0,0,39,0.2,119,7,3,373,926,2101,10,7,2,0,1,0,1 +1860,1,2.3,0,15,0,23,0.6,162,4,16,1362,1506,3918,9,2,8,0,1,0,3 +1375,1,1.1,0,3,1,9,0.9,145,7,19,475,726,3869,19,18,10,1,1,1,3 +1945,0,1.6,1,0,1,57,0.3,195,4,1,743,1753,732,14,1,14,1,1,0,1 +1896,0,0.5,1,8,1,7,0.4,141,2,13,447,794,3684,9,7,18,1,0,0,3 +788,0,2.5,1,4,1,57,0.9,91,8,12,42,1161,3969,12,8,6,1,1,1,3 +880,1,1.7,1,0,0,33,0.7,173,2,2,30,1350,1414,12,1,7,1,1,0,0 +1323,1,2.5,1,10,1,28,0.2,131,4,12,162,619,1892,10,0,15,1,1,1,1 +1868,0,2.0,1,0,1,42,0.2,169,1,4,347,660,3131,8,3,7,1,1,1,3 +1266,0,1.9,1,0,1,7,0.2,184,3,12,346,1468,2532,10,5,4,1,1,1,2 +1042,0,2.7,1,16,1,50,0.8,93,7,18,727,1705,3215,18,0,20,1,1,1,3 +1479,0,0.5,0,8,0,19,0.6,156,3,10,180,1476,3323,13,12,6,1,0,1,3 +1476,1,1.2,1,0,1,55,0.1,171,4,5,1641,1666,1529,13,8,3,1,0,1,2 +1552,1,2.2,0,6,1,13,0.2,123,6,9,269,1026,2403,9,2,9,1,1,1,2 +1454,1,0.5,1,1,0,34,0.7,83,4,3,250,1033,3419,7,5,5,1,1,0,3 +1007,0,2.0,0,0,0,45,0.1,95,5,2,1186,1529,3648,9,0,16,0,0,0,3 +652,1,2.4,1,9,1,17,0.7,173,5,11,77,559,1974,12,10,12,1,0,0,0 +1504,0,1.5,0,12,1,34,0.7,142,8,15,507,973,2806,7,2,7,1,0,1,2 +1726,1,0.9,1,2,0,51,0.6,193,4,3,379,1223,2239,13,9,13,1,0,1,2 +1029,1,1.9,1,5,1,5,0.2,171,5,8,264,956,582,15,7,4,1,1,1,0 +1582,0,2.8,0,2,1,44,0.5,112,6,13,1486,1797,3890,17,10,10,1,1,1,3 +1478,1,0.8,1,12,0,48,0.7,99,5,17,694,882,1141,5,2,6,0,0,1,1 +1178,1,1.3,0,0,0,49,0.6,101,5,0,579,596,2511,6,3,17,0,0,0,2 +707,0,2.1,1,2,0,25,0.8,131,3,17,495,574,3838,9,2,7,1,0,1,3 +755,1,2.8,0,5,1,51,0.3,186,4,12,315,990,2734,10,1,16,1,0,1,2 +912,1,2.0,0,1,0,54,0.3,161,8,5,329,1053,2330,19,5,20,0,1,0,1 +651,1,0.8,1,2,1,63,0.2,176,5,4,548,858,2244,14,9,19,1,1,0,1 +1483,0,2.1,0,1,1,54,0.2,176,7,2,531,758,1851,15,13,2,1,1,0,1 +914,1,0.9,0,2,0,4,0.8,100,2,12,191,1495,808,11,7,5,1,1,0,0 +1456,1,0.5,1,7,0,7,0.4,105,5,12,823,1104,1587,6,5,20,1,0,1,1 +1178,0,2.2,1,6,0,57,0.3,84,3,17,96,1352,2492,16,14,10,1,1,0,2 +1503,1,0.7,0,10,1,43,0.2,166,4,14,841,1304,2122,15,1,2,1,0,0,2 +1681,1,2.5,0,2,0,11,0.4,158,2,13,195,1205,1122,12,6,16,0,1,1,0 +715,0,2.3,1,4,0,48,0.1,160,4,6,21,562,3709,14,2,10,0,0,0,2 +1876,0,2.8,1,3,1,56,0.4,182,3,4,235,585,3021,12,2,18,1,0,0,2 +1190,1,2.2,1,9,0,47,0.3,186,6,10,1417,1441,624,9,3,19,1,1,1,0 +1755,1,1.3,0,0,1,24,0.1,134,7,2,286,1075,3937,8,1,7,1,0,1,3 +1197,0,1.3,0,3,1,20,0.5,149,6,7,649,1629,1797,19,5,4,1,1,1,1 +1048,1,0.9,0,10,1,28,0.8,194,2,19,966,1975,1458,5,1,15,1,0,1,1 +1887,1,3.0,1,6,1,17,0.2,126,8,7,1172,1798,3348,18,16,16,1,1,0,3 +1772,1,0.5,1,3,0,64,0.7,116,8,15,270,545,1834,5,2,20,0,1,1,1 +1421,0,2.8,0,0,1,57,0.4,165,1,2,781,1657,2775,13,8,14,1,0,1,3 +1464,0,0.5,1,0,1,17,0.7,153,6,8,418,1341,1277,13,6,19,1,0,0,1 +728,0,2.3,1,4,0,23,0.8,111,4,5,126,817,457,17,10,16,1,1,1,0 +954,1,0.5,0,0,0,50,0.3,134,2,11,228,1058,438,17,0,2,1,0,0,0 +685,0,0.5,1,8,1,13,0.8,82,7,15,1091,1203,3210,15,7,2,1,1,1,3 +1472,0,2.8,1,1,0,36,0.5,130,6,10,1452,1744,985,12,11,7,1,1,0,1 +853,1,2.0,0,10,1,3,0.6,200,2,16,674,740,3701,15,8,8,1,1,0,3 +1469,0,2.1,0,0,0,8,0.7,123,7,0,398,1133,1052,8,1,3,0,1,0,0 +1310,1,2.3,1,6,0,57,0.9,135,8,9,449,889,1175,16,0,8,0,0,0,0 +1654,0,1.8,0,1,0,11,0.3,146,7,2,1184,1719,1070,8,1,14,1,1,1,1 +902,1,0.7,0,3,0,3,0.3,134,7,9,675,1285,3411,12,11,15,0,0,1,3 +1448,0,1.4,1,13,0,26,1.0,156,3,16,1792,1850,1175,12,9,6,0,1,0,1 +1631,0,0.9,1,2,1,3,0.1,198,7,12,177,1905,301,13,5,13,1,0,0,0 +1608,0,1.8,1,7,0,28,0.4,183,2,13,1013,1158,489,15,11,8,0,0,1,0 +1991,1,2.7,0,5,1,64,0.9,145,2,13,1058,1325,1733,5,3,8,1,1,0,2 +1349,0,2.0,1,15,0,62,0.3,114,5,16,592,772,2756,11,3,4,1,0,0,2 +1589,0,2.5,0,5,1,51,0.8,195,1,18,810,1743,2612,8,2,16,1,0,0,2 +1844,1,2.3,1,1,0,51,0.7,158,8,3,533,882,1724,5,1,14,0,1,1,1 +712,1,0.5,1,3,1,35,0.2,84,2,10,558,1208,2190,16,12,4,1,1,1,1 +972,1,1.7,0,0,1,54,0.7,107,3,4,681,1050,1900,16,8,19,1,0,1,1 +1406,0,0.5,1,2,1,34,0.8,98,3,5,1017,1366,3915,9,8,2,1,0,1,3 +1289,0,0.9,0,10,1,25,1.0,178,6,12,765,899,1043,6,2,11,1,1,0,0 +932,0,1.3,0,1,0,64,0.7,154,7,2,1176,1224,3817,8,7,9,1,1,1,3 +1747,1,0.9,0,6,1,48,0.7,94,3,19,947,1131,2362,17,2,19,1,1,0,2 +1172,1,2.1,1,4,0,41,0.1,95,3,7,1314,1884,1107,7,3,5,0,0,0,1 +1128,1,1.4,0,12,0,53,0.4,84,5,14,609,1370,2982,14,9,12,1,1,0,3 +664,0,1.2,1,0,0,28,0.9,106,5,5,754,1497,2042,17,15,19,1,1,0,1 +513,1,0.5,0,6,1,44,0.1,186,4,12,619,867,1343,5,1,9,1,1,0,0 +1742,0,2.3,1,9,1,43,0.4,170,7,12,453,681,2610,12,3,10,1,0,1,2 +1512,1,1.7,0,12,0,6,0.7,162,7,17,205,884,2335,15,7,7,1,1,1,2 +1986,0,0.5,1,3,1,51,0.1,165,8,20,282,1358,1614,17,12,3,1,1,1,1 +965,1,1.5,1,5,0,13,1.0,109,2,14,130,998,1138,9,8,10,0,1,0,0 +1067,1,2.4,1,3,1,40,0.6,122,8,15,494,1989,604,16,14,11,1,0,0,0 +1583,1,1.6,0,5,1,42,0.8,118,3,10,275,862,3652,14,10,9,1,0,0,3 +1653,0,0.5,1,2,1,37,0.9,176,4,6,447,1785,3955,19,4,18,1,1,1,3 +1433,0,1.6,0,7,0,4,0.7,133,8,11,281,799,258,11,9,4,1,1,1,0 +765,0,2.9,0,0,1,18,0.1,153,7,0,6,793,1066,11,1,16,1,1,0,0 +1845,1,0.5,1,10,0,61,0.3,96,1,12,292,695,1731,9,5,6,0,0,0,1 +752,0,0.5,1,1,0,48,0.7,87,7,13,164,728,3860,7,5,16,0,0,0,3 +1948,0,2.8,1,8,0,16,0.1,100,5,10,631,1940,3630,9,7,17,0,1,0,3 +1077,0,2.5,1,0,1,45,1.0,174,3,4,897,1304,1965,6,2,6,1,1,0,1 +932,1,0.5,0,1,1,60,0.7,104,4,2,268,1078,1459,6,1,19,1,1,0,0 +1968,0,0.9,0,0,0,22,0.8,115,3,7,861,1259,2323,9,8,7,0,0,1,2 +1122,0,1.2,0,9,0,2,0.6,120,4,14,331,790,3291,11,2,13,1,1,1,2 +1588,0,0.5,0,0,1,61,0.8,159,1,13,1064,1594,3272,18,0,17,1,1,0,3 +601,0,2.1,0,4,0,26,0.3,101,4,18,509,548,918,9,1,12,0,0,0,0 +1615,0,0.5,0,14,0,15,0.1,132,4,16,622,1256,3488,16,2,3,0,0,1,3 +1589,1,2.2,1,2,0,58,0.1,128,4,4,957,1911,3961,16,14,14,1,0,1,3 +1417,1,2.7,0,2,1,56,0.9,114,6,4,494,1649,590,11,3,6,1,0,1,0 +1697,1,0.7,0,1,1,34,0.1,95,1,3,236,1264,3701,15,9,8,1,1,0,3 +1330,1,1.3,1,14,0,3,0.3,83,5,17,980,1262,463,14,6,11,0,0,1,0 +1476,0,0.5,0,0,1,43,0.7,148,2,2,1789,1972,3644,15,10,6,1,0,1,3 +1579,1,1.5,0,0,0,27,0.2,142,6,18,831,1484,1713,16,4,10,1,1,1,1 +1277,0,3.0,0,0,1,41,0.3,200,4,3,902,1090,429,9,4,14,1,1,1,0 +1089,1,0.9,1,12,1,2,0.7,145,5,15,636,1259,2765,13,12,10,1,0,1,2 +1663,1,2.5,1,13,1,27,0.3,169,4,14,831,1439,2084,7,1,18,1,0,0,2 +1949,0,1.8,0,0,0,20,0.8,186,5,4,518,592,1125,17,10,9,0,0,0,1 +1138,0,1.1,0,5,1,48,0.6,109,3,14,233,1777,2048,6,0,18,1,1,1,2 +685,0,2.7,0,7,0,17,0.3,174,6,20,725,870,1223,8,0,18,1,0,1,0 +1889,0,2.8,0,5,1,31,1.0,132,1,10,170,1106,3672,5,1,3,1,1,1,3 +857,1,2.0,1,3,0,17,0.2,195,7,9,157,948,3100,17,5,13,1,1,0,2 +1902,0,2.8,1,6,0,50,0.8,124,8,9,1142,1393,343,11,8,18,0,1,0,0 +1225,1,2.4,0,0,0,15,0.1,155,5,0,840,982,1970,16,8,15,1,1,0,1 +1066,0,1.6,0,5,0,39,0.6,131,5,17,401,1586,2728,6,0,17,1,1,1,2 +1554,1,0.5,1,11,0,5,1.0,124,3,12,395,1579,3635,7,4,18,0,0,0,3 +1337,0,0.5,0,13,0,31,0.8,186,2,20,48,644,2180,7,4,16,1,0,1,1 +1926,1,1.7,1,1,1,33,0.4,172,3,2,982,1157,2488,6,1,14,1,0,0,2 +869,0,1.3,1,3,0,34,0.1,104,2,4,478,539,3864,13,3,11,1,0,0,3 +1278,1,0.5,1,1,0,54,0.1,104,8,16,581,750,1155,7,1,20,0,0,1,0 +1773,1,2.5,0,16,1,32,0.6,170,6,18,1215,1472,3566,17,6,13,1,0,1,3 +1661,1,0.8,1,1,1,6,1.0,109,7,2,594,1337,864,9,8,2,1,0,1,1 +1438,0,2.2,0,0,1,32,0.6,176,7,6,683,1663,869,19,13,9,1,1,1,0 +1661,1,1.4,0,0,0,29,0.3,119,2,0,536,861,591,9,2,9,1,1,1,0 +1846,1,0.6,0,1,0,19,0.7,159,1,2,83,773,1333,15,6,11,0,1,1,1 +1260,1,2.0,1,2,1,23,0.2,123,7,10,905,1313,2208,12,11,10,1,0,1,2 +512,1,0.5,1,7,0,15,0.9,83,3,15,249,1849,2610,18,14,15,0,1,1,2 +581,0,2.2,0,0,0,59,0.7,185,5,6,803,1613,2819,19,17,9,0,0,1,2 +1872,1,2.3,0,6,0,44,0.7,134,3,15,459,1259,1955,9,4,15,1,0,1,2 +687,1,1.3,0,9,1,50,0.6,151,4,20,584,1151,3416,14,6,8,1,1,0,3 +1062,1,2.5,1,6,0,10,0.9,160,1,13,1596,1807,3803,7,3,16,0,0,1,3 +1678,1,2.3,1,11,0,7,0.5,192,1,14,418,1763,574,5,3,19,1,0,0,0 +1417,1,0.5,0,10,1,45,0.9,166,4,19,364,1029,2129,13,9,12,1,0,1,1 +1074,0,2.4,1,2,1,9,0.9,103,6,14,946,952,1948,13,1,18,1,1,1,1 +1832,0,0.7,0,2,0,2,0.6,90,7,6,186,654,2978,18,7,18,0,0,0,2 +1039,0,1.3,0,0,1,12,0.8,200,8,0,1428,1827,1619,7,1,10,1,1,1,1 +1059,0,2.4,0,8,0,61,0.1,134,3,18,1613,1916,3716,15,13,11,1,1,0,3 +1606,0,1.4,0,3,0,57,0.1,154,4,4,1127,1924,3454,13,8,20,0,0,1,3 +1928,1,1.8,0,9,1,19,1.0,187,3,20,691,1580,3777,7,2,13,1,1,1,3 +1875,1,0.5,1,11,1,55,0.7,91,1,17,1802,1942,2712,7,2,6,1,0,1,3 +1128,1,1.1,0,9,1,46,0.9,135,8,10,751,1582,1434,5,0,11,1,0,0,1 +1748,0,1.7,1,6,1,14,0.5,146,3,7,859,1234,3968,16,12,3,1,0,1,3 +1413,0,0.5,1,5,0,51,0.3,117,5,11,187,517,3383,16,5,2,0,0,0,3 +825,0,0.5,1,0,1,23,0.1,86,2,0,206,1917,3278,8,6,2,1,0,1,3 +1589,1,1.4,0,3,1,26,0.1,100,8,16,1673,1759,3970,16,8,18,1,0,1,3 +535,1,0.5,1,8,1,54,0.5,145,8,15,710,939,2674,14,8,10,1,0,0,2 +1780,1,0.5,0,6,0,27,0.1,190,4,11,1331,1463,2776,19,17,14,1,1,1,3 +1671,0,0.6,1,7,1,61,0.1,129,2,11,263,848,2336,10,4,7,1,0,0,2 +1821,0,0.9,0,9,1,12,0.3,114,1,18,97,1803,2430,7,4,6,1,1,1,2 +1076,1,2.6,0,3,1,38,0.7,119,6,8,129,915,891,18,3,9,1,1,0,0 +532,1,0.8,1,3,0,8,0.1,193,5,10,1213,1354,728,13,5,8,1,1,0,0 +777,1,2.6,0,3,0,30,0.9,148,5,17,189,1143,3886,14,10,7,1,0,0,3 +1217,1,0.5,0,3,0,17,0.5,182,4,13,628,632,1711,7,3,9,1,0,1,1 +1656,1,1.6,1,0,0,16,1.0,117,7,2,320,899,2856,14,3,20,1,1,1,2 +1185,0,1.9,0,0,0,31,0.4,152,8,7,837,1642,2447,16,2,3,1,1,1,2 +577,0,2.4,0,8,1,37,0.9,161,6,20,1087,1450,814,11,7,19,1,1,1,0 +737,1,2.4,1,7,0,49,0.6,193,4,16,781,1463,2951,7,0,10,0,1,0,2 +704,0,2.2,1,4,0,53,0.2,186,6,6,251,1013,3653,7,1,15,1,1,1,2 +525,1,0.5,1,5,0,51,0.5,137,8,11,262,1587,1891,18,3,12,0,1,0,1 +504,1,0.5,1,5,0,16,0.1,166,1,9,767,1665,701,17,15,15,1,0,1,0 +793,0,1.2,1,1,1,38,0.6,176,4,7,1226,1815,3139,6,1,12,1,1,1,3 +569,0,0.6,1,2,0,39,0.1,184,8,9,389,739,2811,7,6,7,1,0,1,1 +1590,0,1.9,1,3,1,21,1.0,160,5,18,920,963,1701,11,4,4,1,0,1,1 +707,0,0.5,0,0,1,16,0.1,194,2,0,1027,1508,1853,17,14,12,1,1,1,1 +767,0,1.9,0,16,1,19,0.2,185,6,17,271,1000,2445,6,1,6,1,1,1,1 +1350,1,0.5,1,0,1,50,0.8,181,8,4,369,544,2287,15,1,8,1,1,0,1 +1117,1,0.6,1,0,0,31,0.2,146,2,7,1258,1627,2003,8,7,14,0,1,1,2 +641,1,1.1,0,0,1,7,0.9,192,1,3,417,759,3595,7,5,19,1,1,1,2 +1002,0,0.8,1,0,1,35,0.5,83,2,4,1345,1416,1726,16,5,19,1,0,1,1 +1408,1,2.1,1,10,0,45,0.9,89,5,14,613,1088,3952,8,6,3,0,0,1,3 +1900,1,2.0,1,1,0,41,0.5,190,8,6,912,1596,850,5,1,4,1,1,1,1 +726,0,2.9,0,0,0,43,0.1,101,8,0,666,760,1446,17,2,8,1,1,0,0 +1544,0,2.3,0,12,1,45,0.1,113,8,20,236,857,1300,8,7,18,1,1,0,1 +1454,1,1.6,0,6,1,21,0.2,160,4,10,186,1100,719,14,10,10,1,1,1,0 +1230,1,2.2,1,6,0,26,0.8,123,5,7,416,676,988,11,5,9,0,1,1,0 +1552,0,1.2,0,10,1,53,0.3,180,8,18,430,658,2606,13,6,12,1,0,0,2 +1519,0,2.1,0,0,0,32,0.7,200,1,10,168,1239,2912,11,10,15,1,1,0,2 +723,1,1.9,0,4,0,30,0.3,102,1,7,1467,1901,2339,19,9,17,0,1,1,2 +1191,0,2.4,1,2,0,13,0.9,169,1,7,179,1813,1028,14,6,8,1,1,1,0 +1168,0,1.3,0,9,0,61,0.1,90,8,10,159,1578,3173,9,4,17,0,0,1,3 +1229,0,0.5,1,15,0,14,0.8,191,2,16,120,1878,1667,17,6,17,0,0,1,1 +1758,1,0.5,0,11,1,13,0.6,190,8,14,762,1864,1897,6,2,15,1,0,0,2 +1290,0,0.5,0,0,0,3,0.1,143,6,4,600,1109,1214,9,8,15,0,1,1,1 +574,0,2.8,1,16,0,38,0.1,90,6,17,286,1171,3269,8,7,10,0,1,0,2 +1271,1,0.5,0,12,0,32,0.1,113,7,15,1350,1949,445,15,14,14,0,0,1,0 +1170,1,1.2,0,4,0,30,0.4,83,8,15,27,1722,1073,6,4,8,1,1,0,0 +1269,1,1.3,0,14,0,52,0.8,118,2,15,1597,1920,665,18,5,5,0,0,0,1 +1288,0,2.8,1,15,0,50,0.1,121,2,20,1177,1809,3129,17,6,2,0,0,0,3 +1366,1,0.7,1,0,1,34,0.1,150,2,9,402,964,3501,13,11,3,1,0,0,3 +1572,1,0.8,1,7,1,8,0.8,169,5,8,577,1237,3461,6,3,10,1,1,1,3 +1627,0,0.9,1,9,1,32,0.1,180,6,16,52,1082,3206,12,6,16,1,1,0,3 +1701,1,0.5,0,13,1,46,0.9,115,2,15,364,828,3717,11,0,10,1,1,0,3 +1900,1,0.5,1,0,1,55,0.9,171,1,1,934,1241,3917,15,5,18,1,0,1,3 +1974,0,1.0,0,4,0,24,0.3,80,7,13,250,545,861,7,4,6,1,0,1,0 +1197,1,0.5,1,9,0,20,0.1,129,5,10,214,1710,2885,19,7,14,1,1,1,2 +587,1,2.3,1,4,0,6,0.7,170,1,16,612,1793,2777,9,2,14,1,1,0,2 +934,0,1.1,0,7,0,24,0.8,112,5,12,1111,1463,1017,12,7,9,0,0,1,0 +1195,0,2.0,1,1,1,23,0.1,82,4,9,163,1100,980,13,9,17,1,0,0,0 +1853,1,1.0,0,2,0,23,0.4,92,1,15,202,1951,2775,14,4,17,1,0,0,3 +1164,0,1.0,0,4,1,19,0.9,95,8,18,729,1704,3309,15,3,3,1,0,1,3 +1512,1,0.5,0,8,1,18,0.1,88,3,17,1079,1897,3607,12,10,6,1,1,1,3 +1232,0,2.9,1,1,1,24,0.3,169,5,17,361,809,1257,16,10,16,1,0,0,0 +1813,1,0.6,1,0,1,5,0.2,198,3,8,338,1306,759,9,3,14,1,1,0,0 +946,1,2.6,1,17,0,5,0.1,166,3,20,1698,1771,3720,15,7,4,0,1,0,3 +739,1,2.3,1,2,1,58,0.1,88,3,4,1052,1536,475,7,6,6,1,0,1,0 +704,1,2.7,0,8,1,29,0.2,80,1,10,1108,1509,1122,9,3,10,1,1,1,0 +1663,1,0.5,0,0,0,40,0.6,147,4,15,951,1545,1336,8,5,15,1,0,0,1 +1966,1,1.4,1,2,0,40,0.9,185,8,18,1197,1987,1185,11,2,20,0,1,0,2 +1219,0,1.0,1,0,0,17,0.7,196,5,4,473,1022,705,11,3,6,0,1,1,0 +612,1,0.7,0,6,0,35,0.6,181,5,12,1294,1337,3169,14,9,6,0,0,0,2 +1658,1,1.4,0,0,1,39,0.7,182,1,5,410,522,3483,10,1,15,1,0,1,3 +1263,0,0.5,0,12,0,64,0.3,175,5,18,178,1883,1183,14,3,17,0,0,1,1 +1395,1,2.8,0,0,1,55,0.6,118,3,1,782,1787,3373,11,2,16,1,1,0,3 +621,1,2.7,1,0,0,54,0.1,151,4,20,434,910,2801,6,1,5,1,1,1,2 +652,0,0.5,1,1,0,58,0.6,142,3,2,464,781,565,18,12,9,0,0,1,0 +1175,0,0.6,0,10,0,25,0.1,145,2,12,137,1501,3153,9,4,12,1,0,0,2 +561,1,1.0,0,0,0,11,0.1,163,8,10,492,1176,3421,16,2,5,1,1,1,2 +1137,0,2.2,0,6,1,3,0.9,173,5,7,1250,1285,316,15,14,17,1,0,0,0 +1835,1,2.3,0,4,1,11,0.1,193,7,13,385,583,448,18,17,14,1,0,0,0 +1170,0,2.9,1,2,0,40,0.4,169,6,5,427,684,2366,16,8,2,1,1,1,1 +1595,1,0.8,1,0,1,44,0.7,85,4,20,1024,1838,3881,14,10,9,1,0,1,3 +1719,1,2.0,0,0,0,12,0.3,122,8,7,240,904,462,6,3,5,0,0,0,0 +1770,0,2.3,1,0,0,7,0.8,128,7,6,886,1552,1480,6,1,17,1,0,0,1 +1312,0,0.5,1,0,1,28,0.8,163,2,0,1233,1854,1087,17,16,14,1,0,0,1 +1878,0,1.5,1,5,1,56,0.3,139,5,13,183,559,2711,8,2,3,1,1,1,2 +1871,1,2.0,0,7,1,20,0.1,81,7,14,88,1682,2144,13,12,12,1,1,1,2 +922,0,1.5,1,1,1,35,0.9,188,7,15,1016,1383,1165,19,6,4,1,1,1,0 +1975,1,1.5,0,6,1,16,0.9,128,8,11,80,655,2998,5,4,13,1,1,0,2 +1212,0,2.6,0,1,1,46,0.3,102,4,8,611,1715,2249,14,3,4,1,1,1,2 +1430,1,0.9,0,3,0,56,0.1,179,3,5,569,906,752,17,8,17,0,0,1,0 +1958,1,1.9,1,0,0,4,0.2,190,2,3,304,637,1409,16,5,3,0,0,0,1 +1836,1,2.1,1,0,1,30,0.2,184,7,15,276,1230,3072,7,3,5,1,1,0,3 +557,1,1.6,0,0,0,24,0.5,125,3,0,1131,1315,1305,12,8,3,1,0,1,0 +539,1,0.6,1,9,0,21,0.1,145,7,14,551,599,3597,14,5,9,0,0,0,2 +880,0,0.5,1,1,0,44,0.5,172,8,15,436,1302,3132,8,7,6,0,1,1,2 +1369,1,1.8,1,6,0,34,0.5,162,1,7,553,727,3856,18,4,18,0,1,1,3 +1109,1,2.7,1,1,0,39,0.4,98,1,9,1391,1787,1524,15,10,7,1,1,1,1 +843,0,1.8,1,0,0,16,0.1,166,5,6,981,1096,3673,12,1,20,1,0,1,3 +598,0,2.3,1,7,0,21,0.7,196,2,10,680,1173,3293,8,4,7,1,0,1,2 +972,1,2.7,1,1,0,5,1.0,126,4,2,687,816,3035,12,7,19,1,0,1,2 +1944,1,0.5,0,5,1,36,0.1,197,6,18,1060,1970,584,17,14,13,1,1,0,1 +1225,0,0.7,1,0,1,2,0.6,138,7,1,217,1101,2675,12,11,15,1,1,0,2 +644,1,1.3,1,7,1,30,0.5,114,1,16,1140,1654,2382,9,0,19,1,0,1,2 +1919,0,1.5,0,5,1,48,0.8,150,4,6,304,1191,1391,19,13,12,1,0,1,1 +501,0,2.3,0,12,1,54,0.3,131,4,19,504,1089,2346,13,12,2,1,0,1,1 +1620,1,2.2,1,0,1,30,0.2,185,3,3,832,1033,606,6,0,18,1,0,0,0 +1227,1,1.1,1,0,0,34,0.2,130,3,3,935,1781,1324,7,3,12,0,1,1,1 +1359,1,0.5,1,1,1,58,0.5,107,6,3,446,901,1076,16,8,4,1,1,1,0 +1914,0,0.7,0,1,0,35,0.6,118,8,2,942,1701,643,17,1,8,1,0,1,1 +1645,1,1.8,0,1,0,21,0.7,123,7,2,897,1308,783,10,8,20,1,0,0,0 +1063,1,1.1,0,0,1,26,0.8,101,5,2,1208,1232,3809,17,16,5,1,0,1,3 +946,0,2.1,0,0,1,19,0.2,154,8,0,159,630,2104,7,4,16,1,1,0,1 +1231,0,1.2,1,5,0,54,0.8,185,3,10,632,1184,1762,5,3,6,1,1,0,1 +1397,0,2.9,1,13,0,9,0.5,87,6,18,1308,1991,3137,12,1,11,1,1,1,3 +701,1,0.7,0,7,0,15,0.5,160,3,11,1002,1256,1756,6,3,17,1,1,1,1 +570,1,0.5,1,2,0,9,0.3,111,7,5,1331,1917,3663,14,10,14,0,0,0,3 +1993,1,0.5,0,10,1,27,0.3,147,8,11,150,510,2437,14,0,9,1,0,0,2 +955,0,0.5,1,4,0,43,0.9,143,5,8,1248,1511,1432,12,9,9,1,1,1,1 +924,0,0.5,1,0,1,47,0.3,167,8,6,108,1813,1620,17,15,12,1,0,0,1 +600,0,0.5,0,0,0,14,0.8,112,5,2,320,747,1655,18,0,9,0,0,0,0 +518,0,0.8,1,0,0,3,0.1,178,7,1,437,1947,2832,5,0,8,1,0,1,2 +1063,1,2.5,0,0,1,31,0.9,95,6,10,295,935,961,16,6,5,1,1,0,0 +920,1,0.5,0,2,0,46,0.8,149,3,3,1058,1421,2608,6,0,2,0,0,1,2 +1715,0,1.9,0,4,1,3,0.1,171,5,6,79,1652,514,7,4,13,1,0,0,0 +1841,1,1.3,1,6,0,14,0.6,167,8,8,593,672,2304,7,1,18,0,0,1,2 +543,1,0.5,1,4,1,60,0.7,132,5,7,693,1031,933,14,0,5,1,1,0,0 +1762,1,2.7,1,13,1,25,0.9,189,1,14,300,527,1896,14,10,20,1,1,1,1 +1112,1,0.5,1,1,0,53,0.6,121,4,16,234,739,3655,7,3,20,1,1,0,3 +709,1,2.0,1,0,0,35,0.1,136,1,0,1545,1596,1973,12,9,16,0,1,1,1 +1315,1,2.6,0,7,0,64,0.8,128,7,16,59,575,3278,6,3,13,0,0,0,2 +1762,1,2.5,0,10,1,15,0.3,107,8,11,1103,1364,2183,8,3,11,1,1,0,2 +1462,1,1.7,1,1,0,25,0.2,182,7,18,91,1478,824,15,5,13,1,0,1,0 +571,0,1.6,1,8,0,35,0.2,186,7,20,177,1282,2598,13,5,8,1,1,0,1 +666,1,0.5,1,7,1,54,0.4,81,3,13,58,1353,1254,15,9,9,1,1,1,0 +1994,0,1.5,1,2,1,7,0.5,146,8,7,447,1435,3622,7,0,20,1,0,1,3 +1583,1,2.1,1,11,0,14,0.7,148,7,16,942,1651,1704,17,13,2,1,0,1,2 +1778,0,1.4,1,3,1,45,1.0,132,4,17,88,516,1624,15,13,9,1,1,0,1 +1926,1,1.1,0,13,1,50,0.2,179,6,17,371,1000,3809,17,12,17,1,1,0,3 +966,1,0.6,0,9,1,50,0.2,117,4,10,1446,1754,2574,10,1,5,1,0,1,2 +568,0,2.0,0,1,0,36,0.3,179,3,4,181,1703,950,17,9,9,1,0,0,0 +1897,0,3.0,0,1,1,21,0.5,192,8,2,1311,1935,273,17,6,3,1,1,1,0 +1695,0,0.5,1,6,1,46,0.7,200,3,9,1791,1898,446,16,13,15,1,1,1,1 +1623,1,1.2,0,6,1,61,0.9,120,7,12,1568,1832,1510,12,10,17,1,1,0,2 +914,1,0.5,0,0,1,26,0.7,147,4,0,706,721,1122,12,9,2,1,1,1,0 +1721,1,0.5,1,4,1,33,0.5,128,4,5,871,1048,707,19,2,5,1,1,1,0 +890,1,2.2,1,4,0,44,0.5,198,8,13,1074,1873,751,7,3,3,0,0,0,0 +600,0,0.5,0,1,0,48,0.8,191,3,7,501,1465,3393,12,7,8,1,0,0,2 +1677,0,1.8,1,4,0,11,0.7,124,6,8,271,1477,3771,15,6,12,1,0,0,3 +723,0,0.5,0,0,1,3,0.2,168,4,3,920,1748,1851,15,3,16,1,0,0,1 +638,0,1.7,1,11,0,27,0.5,102,4,17,1171,1383,2735,7,2,9,1,1,0,2 +852,0,1.0,1,4,1,62,0.7,104,7,13,293,1159,2253,17,4,7,1,1,0,1 +1979,1,1.6,1,0,0,32,0.2,165,7,1,833,1630,452,13,6,14,0,1,0,0 +710,1,0.5,0,6,0,32,0.8,151,5,9,485,857,1419,12,11,18,0,1,0,0 +1034,0,2.6,1,2,1,45,0.3,190,3,4,182,1293,969,15,1,7,1,0,0,0 +600,0,2.5,1,8,1,22,0.1,145,1,11,207,1162,3441,19,1,5,1,0,0,2 +1027,0,0.5,0,2,1,64,0.9,103,2,7,1698,1747,3786,17,12,12,1,0,0,3 +1260,0,0.6,0,5,1,13,1.0,106,6,6,165,736,2710,13,1,8,1,1,0,2 +1793,0,1.8,1,10,0,12,0.5,169,6,17,1086,1418,3533,16,14,15,1,1,1,3 +675,0,2.3,0,10,0,60,0.9,144,5,15,192,757,1735,7,0,13,1,0,1,0 +658,1,2.7,0,0,1,12,0.9,103,7,3,1156,1750,3587,14,11,20,1,0,0,3 +1694,1,0.6,0,0,1,34,0.3,102,7,7,377,549,2298,17,5,2,1,1,0,2 +804,1,0.8,1,12,1,41,0.9,89,1,13,709,818,2027,11,5,11,1,0,0,1 +1713,0,2.5,1,1,0,27,0.9,127,7,3,729,974,2406,13,10,20,1,0,1,2 +706,0,0.5,0,13,1,31,0.1,108,3,19,543,938,2419,8,7,4,1,0,1,1 +1362,0,0.5,0,3,0,25,0.8,131,7,9,553,1505,995,7,6,18,0,1,1,0 +1527,0,2.7,0,10,1,60,0.1,154,5,14,526,1116,2078,5,3,11,1,1,1,2 +768,0,0.5,1,0,0,19,0.9,159,2,1,637,991,1145,19,1,7,0,0,1,0 +1314,0,2.9,1,8,1,41,0.1,155,4,12,113,577,626,10,4,4,1,1,1,0 +705,1,0.5,0,5,1,57,0.9,155,6,9,1114,1374,1509,15,11,18,1,1,1,1 +1403,0,2.7,0,2,1,26,0.1,164,5,3,461,1251,3371,13,9,9,1,0,1,3 +1486,0,2.6,0,7,0,52,0.1,85,4,15,1430,1747,297,13,1,15,0,1,0,0 +781,0,1.1,0,2,0,38,0.4,198,5,7,304,1674,3508,13,8,5,0,0,1,3 +986,1,1.5,0,1,1,23,0.8,183,8,3,471,800,2385,16,9,19,1,0,0,1 +1310,0,1.4,0,0,0,33,0.4,105,1,14,806,1016,1301,13,12,19,0,0,1,1 +560,1,2.0,1,6,1,57,0.3,81,3,12,80,1327,2167,11,10,7,1,0,1,1 +1348,0,1.3,0,0,0,43,0.4,116,5,6,204,501,3914,10,3,8,1,0,1,3 +1567,0,0.5,1,3,0,22,0.5,119,6,6,545,1621,2312,9,1,18,1,0,0,2 +1940,1,0.9,1,4,0,17,0.7,93,5,7,112,858,2297,14,6,8,0,1,0,2 +1979,1,2.9,1,0,1,19,1.0,176,3,9,1331,1532,411,8,2,2,1,1,1,0 +561,1,2.1,1,7,1,2,0.1,193,3,13,1055,1294,665,10,0,4,1,1,0,0 +1717,1,1.3,0,1,0,62,0.7,130,1,3,609,810,3226,6,4,5,0,1,0,3 +535,0,1.5,0,1,1,48,0.7,113,1,4,290,811,740,11,10,18,1,1,0,0 +1413,0,0.5,1,4,1,39,0.1,185,5,12,1039,1318,3878,19,16,4,1,0,0,3 +1358,0,2.5,1,0,0,20,0.6,135,7,0,1485,1655,3406,5,1,11,0,0,1,3 +1519,0,2.9,0,2,0,30,0.7,112,7,8,1122,1702,2440,9,5,10,1,1,1,2 +1254,0,1.2,1,2,0,50,0.7,108,5,6,462,1013,3959,10,4,17,1,1,0,3 +1591,1,2.2,0,3,1,49,0.4,154,6,7,1384,1883,3703,17,6,20,1,1,0,3 +977,1,2.8,1,2,0,35,0.6,165,2,15,1502,1862,3714,19,3,10,0,1,1,3 +1640,1,0.7,0,10,1,21,0.8,169,7,14,589,1301,337,16,3,5,1,1,0,0 +663,0,0.8,1,0,0,25,0.6,183,2,1,82,1605,3176,6,2,2,1,0,1,2 +1744,1,1.0,0,1,1,20,0.5,112,8,3,68,718,1205,18,7,14,1,0,0,1 +1624,0,1.6,1,8,0,28,0.4,150,2,10,689,699,2473,16,11,2,1,0,0,2 +1108,1,1.3,1,14,1,2,0.3,169,7,20,208,1742,1229,5,3,4,1,1,0,0 +1188,1,1.4,1,0,1,9,0.6,114,2,0,1339,1558,2896,12,11,16,1,0,1,3 +817,0,1.3,0,0,0,11,0.5,144,3,11,722,766,2039,11,6,19,0,1,0,1 +863,0,1.6,1,5,1,6,0.7,133,4,13,717,1799,520,10,2,18,1,0,1,0 +1397,0,2.4,1,5,1,3,0.2,121,3,15,433,1658,1378,18,15,4,1,1,1,1 +1108,0,1.0,0,3,0,49,0.7,140,5,12,1298,1666,3254,12,0,16,1,0,0,3 +1068,0,2.0,1,1,1,37,0.9,184,7,13,186,1998,1803,5,4,7,1,0,0,1 +1702,1,2.3,0,12,1,52,0.5,145,2,15,1397,1491,2501,16,12,4,1,0,0,3 +808,0,0.5,1,0,0,8,0.1,192,4,1,618,1891,3762,15,9,12,1,0,1,3 +1156,0,0.5,0,6,0,61,0.1,89,7,9,1214,1262,1796,16,6,13,0,1,1,1 +1271,0,0.5,1,2,0,54,0.1,159,8,3,613,650,990,14,11,6,0,1,1,0 +696,0,0.5,0,6,0,51,0.3,197,3,8,649,907,2630,18,8,9,0,0,1,1 +1981,1,1.9,1,13,0,45,0.3,175,6,18,193,1234,1380,10,1,13,0,1,0,1 +614,0,1.7,1,0,1,58,0.2,128,7,2,22,519,3487,15,6,11,1,1,1,2 +1590,0,0.6,1,0,0,7,0.3,122,3,17,1464,1595,1201,12,3,18,1,1,1,1 +1945,0,1.6,0,4,0,21,0.7,113,3,10,280,895,3015,6,1,15,0,0,0,3 +1135,1,2.8,1,9,0,43,0.4,158,1,11,690,1589,3204,18,13,6,1,0,0,3 +1049,0,0.6,1,8,1,2,0.3,172,6,10,39,1564,433,10,7,6,1,0,0,0 +1807,1,2.1,0,2,0,49,0.8,125,1,10,337,1384,1906,17,13,13,0,1,1,2 +984,1,0.5,0,13,1,42,0.8,98,7,17,1036,1611,898,16,8,13,1,1,0,0 +720,1,1.4,1,0,1,61,0.6,96,7,8,1347,1733,2799,5,3,15,1,0,1,3 +1536,0,0.8,0,12,0,13,0.3,105,7,20,22,1634,2020,6,0,16,1,1,0,2 +771,1,0.5,0,3,0,25,1.0,86,4,6,327,922,770,12,1,20,0,1,0,0 +503,0,2.5,0,3,0,57,0.6,185,6,11,778,1291,305,11,8,16,0,0,1,0 +675,0,2.4,0,1,0,42,0.6,187,7,2,482,874,2953,9,5,13,1,1,0,2 +1936,1,1.9,1,13,1,34,0.2,182,7,14,591,1089,1671,6,1,9,1,0,1,1 +1303,0,1.0,1,0,1,15,0.1,138,3,10,229,1604,2574,12,4,14,1,1,1,2 +1004,1,2.9,1,0,0,35,0.2,141,6,9,901,1162,3772,17,8,18,0,1,1,3 +1972,0,1.2,1,0,0,37,0.7,102,2,1,715,1648,2870,16,0,17,0,0,0,3 +1822,0,1.2,0,0,0,8,0.2,195,6,0,172,910,2577,9,5,8,1,1,0,2 +1159,1,2.8,0,5,1,18,0.5,83,1,7,681,723,2246,8,1,3,1,1,0,1 +1782,1,2.8,1,6,1,58,0.8,157,1,13,867,999,2405,15,0,16,1,0,1,2 +894,0,2.1,1,16,0,16,0.7,168,8,20,286,1300,3377,5,1,6,1,1,1,2 +1884,0,2.1,1,7,1,43,0.8,185,1,18,451,819,3619,14,8,7,1,1,1,3 +1648,1,0.5,0,1,1,17,0.9,142,2,3,1119,1238,1184,6,2,2,1,0,1,1 +798,0,2.4,0,5,0,4,0.2,96,3,9,526,643,2965,15,7,14,1,1,0,2 +802,1,2.4,1,1,0,45,0.8,157,3,9,1299,1633,3713,8,3,8,0,0,0,3 +1276,1,2.9,1,2,0,53,0.3,130,2,3,217,735,3798,19,10,8,1,1,1,3 +1331,1,1.6,0,0,0,16,0.5,165,2,7,1109,1226,1026,13,5,20,1,0,1,1 +1620,0,2.6,1,6,0,5,0.9,186,6,18,434,1339,1086,18,14,13,1,0,0,1 +1996,0,2.5,0,5,1,51,0.4,122,4,9,671,1445,2236,8,7,12,1,0,1,2 +1092,0,2.7,1,8,0,45,0.8,185,1,10,1404,1424,1303,12,3,20,0,1,1,1 +1018,1,0.7,1,7,0,63,0.1,155,5,18,856,883,3048,10,3,2,0,0,1,2 +545,0,0.5,0,0,1,11,0.3,131,3,1,381,1452,616,15,6,19,1,1,1,0 +554,1,1.3,0,0,0,12,0.1,105,6,10,85,806,3764,10,7,4,0,1,1,2 +1264,0,2.9,1,2,1,34,0.2,171,3,3,562,849,419,7,4,3,1,1,1,0 +1030,0,1.6,1,3,1,58,0.2,138,6,20,1111,1812,2858,6,2,18,1,1,1,3 +1432,1,1.7,1,6,1,39,0.3,164,4,18,209,947,504,14,4,10,1,1,0,0 +558,1,2.8,0,1,1,49,0.8,142,5,4,997,1605,392,10,5,8,1,1,1,0 +829,0,0.5,0,0,0,56,0.6,129,7,1,91,1916,820,12,6,11,1,0,1,0 +1741,1,1.8,0,0,0,14,0.7,143,8,0,730,1895,3387,11,3,3,1,0,0,3 +1849,1,2.3,0,7,1,15,0.4,144,5,19,606,1123,3447,14,11,19,1,0,1,3 +733,0,2.1,0,5,1,7,0.2,174,7,10,445,1409,1403,15,8,2,1,1,0,0 +1872,1,0.9,1,0,0,16,0.5,80,2,2,286,1484,2295,15,11,16,0,0,1,2 +1853,0,0.5,1,1,0,27,0.3,197,6,13,985,1005,1973,10,2,8,1,0,1,2 +1149,1,2.2,0,4,0,30,0.2,106,6,5,1617,1675,3755,17,14,8,1,0,0,3 +891,0,0.5,1,9,1,25,0.3,196,2,19,375,1724,2073,7,1,10,1,0,1,1 +1911,1,2.0,0,7,1,64,0.6,163,8,8,1795,1958,3872,9,8,11,1,1,0,3 +550,1,0.5,0,16,1,23,0.1,145,2,17,486,1930,302,18,5,8,1,0,0,0 +576,0,0.8,0,0,1,27,0.1,121,2,4,757,1518,1519,18,6,8,1,0,1,1 +1760,0,1.9,0,1,1,50,0.8,198,1,2,273,1704,2549,10,8,4,1,1,0,2 +969,0,2.4,0,0,0,45,0.3,124,7,0,491,589,404,18,5,19,1,0,1,0 +1160,0,1.1,0,1,1,63,0.7,166,3,2,762,859,595,18,4,15,1,0,1,0 +827,0,1.1,1,2,1,18,0.9,160,2,16,448,821,1663,14,0,17,1,1,1,0 +1786,0,0.5,0,9,1,58,0.7,161,7,10,231,1671,2764,9,3,7,1,1,1,3 +774,1,0.6,1,2,1,8,0.4,136,1,4,1713,1865,2614,7,0,14,1,1,1,2 +819,1,2.5,1,0,1,11,0.2,83,8,1,438,822,1094,10,5,15,1,0,0,0 +1042,0,2.2,0,15,1,11,0.6,139,5,16,68,1018,2826,18,0,2,1,0,0,2 +1368,0,3.0,1,10,0,50,0.2,97,7,18,698,829,2496,13,6,5,0,1,1,2 +1592,0,2.1,0,6,1,50,0.1,181,2,17,510,522,2103,19,8,7,1,0,0,1 +1067,0,1.8,1,11,0,14,0.2,146,1,15,965,1009,966,5,0,13,0,0,1,0 +1892,1,0.7,0,5,0,47,0.4,110,4,10,1399,1564,2172,17,14,3,1,1,1,2 +915,0,1.1,0,6,0,56,0.6,187,8,17,532,1448,905,19,10,12,0,1,0,0 +774,1,2.8,0,7,1,55,0.9,124,3,18,8,896,3916,8,1,12,1,1,0,3 +1848,1,1.4,1,2,1,42,0.7,179,2,10,154,605,3902,11,9,3,1,0,1,3 +1501,0,1.1,0,12,1,2,0.2,187,1,15,198,1056,2487,13,12,16,1,1,1,2 +1614,0,1.9,0,8,1,55,0.3,188,3,17,860,1330,3914,17,13,13,1,0,0,3 +911,1,2.9,0,0,0,46,0.1,181,5,1,461,670,363,9,5,17,0,1,0,0 +1520,0,0.5,0,1,1,24,0.7,199,5,8,109,1909,3233,13,3,4,1,0,1,3 +1647,0,1.4,1,3,1,38,0.3,102,6,15,193,1185,2532,16,14,15,1,0,1,2 +1347,0,0.9,1,8,1,53,0.8,108,6,15,961,1008,3836,15,3,14,1,0,1,3 +967,1,1.6,0,4,0,25,0.6,92,8,9,243,1642,3076,7,4,18,0,1,1,2 +1442,0,2.2,0,0,1,56,0.7,145,5,3,1626,1668,1513,11,8,7,1,1,0,2 +1204,1,2.6,0,0,0,10,0.3,199,7,3,480,1482,1724,11,2,19,1,0,0,1 +1320,0,2.1,1,0,1,41,0.6,144,7,2,123,1229,542,11,1,14,1,1,0,0 +1800,1,0.7,0,2,1,8,0.4,100,7,6,400,823,3481,10,8,8,1,0,1,3 +1567,0,2.1,1,3,0,22,0.8,153,3,19,190,1326,3991,15,2,10,1,0,0,3 +1439,0,0.9,0,12,1,20,0.8,147,1,17,626,932,1790,19,12,15,1,0,1,1 +1422,0,1.0,0,15,0,3,0.1,112,1,17,1,926,509,19,1,3,1,1,1,0 +1591,1,2.2,1,4,1,52,1.0,161,3,16,548,1641,282,10,9,14,1,1,1,0 +880,0,1.7,0,2,0,6,0.6,198,4,19,632,660,3006,6,4,3,1,0,0,2 +1929,1,0.5,1,0,1,19,1.0,163,6,2,349,1051,1913,12,7,6,1,1,0,1 +1642,1,1.6,1,0,0,5,0.4,102,5,2,1686,1889,1333,18,0,2,0,0,1,2 +1511,0,2.5,1,3,0,21,0.2,114,3,18,1455,1982,3746,10,0,5,1,0,0,3 +1312,0,1.3,0,5,1,10,0.6,163,2,9,95,893,3941,6,2,13,1,1,1,3 +1852,0,1.4,0,4,1,10,0.7,196,1,18,580,1163,3970,13,1,11,1,0,1,3 +972,1,1.3,0,8,0,44,0.7,82,7,10,297,589,3925,7,6,7,0,1,0,3 +691,1,2.7,1,4,1,33,0.9,108,4,8,951,962,424,5,3,15,1,1,1,0 +807,0,0.5,0,9,0,8,0.3,158,5,20,667,697,1284,17,13,2,0,1,1,0 +1113,0,0.6,1,0,0,25,0.3,145,1,10,1047,1312,277,11,2,12,1,0,1,0 +721,1,1.3,1,10,0,16,0.9,125,1,18,408,1862,1713,10,3,4,0,1,1,1 +1188,1,1.5,1,0,0,54,0.3,198,6,2,1150,1469,485,12,7,7,0,1,0,0 +1512,1,0.5,0,1,0,52,0.1,131,1,14,333,952,3002,6,5,7,0,0,1,2 +805,1,0.7,0,0,0,64,0.1,97,4,14,641,704,418,11,6,17,0,1,1,0 +918,0,0.9,1,1,0,8,0.1,123,7,5,653,671,1652,17,4,14,1,1,0,1 +1320,0,0.5,1,7,0,48,0.2,168,5,16,103,1583,2893,8,5,9,0,0,1,2 +1236,0,0.9,1,2,1,57,0.1,188,1,14,517,809,1406,14,12,20,1,0,1,0 +1387,0,0.5,0,0,1,61,0.5,98,3,0,785,1151,629,5,3,11,1,1,0,0 +1883,1,2.7,1,6,1,30,0.5,95,2,10,531,791,3724,16,15,20,1,1,1,3 +839,0,2.0,1,0,0,14,0.4,175,7,3,564,1391,3835,15,8,11,1,0,0,3 +1593,1,1.0,0,0,1,52,0.7,130,8,0,761,1336,1354,15,13,13,1,1,1,1 +1722,1,1.0,0,7,0,25,0.8,88,6,19,1179,1638,2376,5,1,19,0,0,1,3 +1954,0,0.6,1,8,0,7,0.9,126,3,9,673,690,3438,17,12,13,1,0,0,3 +1788,1,0.5,1,15,1,2,0.3,150,6,20,472,1073,2655,12,2,4,1,0,1,2 +1628,0,0.5,0,5,1,33,0.9,101,6,8,412,643,3361,16,10,13,1,0,0,3 +1965,0,0.5,0,6,1,4,1.0,84,7,9,977,1660,3535,17,0,16,1,1,1,3 +833,1,2.2,0,4,0,27,0.9,124,1,6,359,1395,2150,9,5,7,0,1,1,1 +571,0,0.6,0,1,1,43,0.5,141,3,8,224,783,2587,7,5,18,1,0,0,1 +1808,1,0.5,1,1,0,31,0.5,92,2,16,714,1208,2736,9,1,8,0,0,1,3 +1860,0,0.5,1,2,1,55,0.7,83,6,3,195,799,676,15,0,4,1,0,1,0 +1368,1,1.6,1,4,0,9,0.1,115,7,7,843,1145,2941,13,12,17,0,1,0,3 +1161,0,1.3,1,0,1,21,0.6,126,8,12,308,1169,3336,6,4,14,1,0,1,3 +1224,1,1.6,0,9,0,33,1.0,157,1,18,522,563,3796,10,5,13,1,1,0,3 +902,1,0.6,1,0,0,63,0.7,122,5,14,364,1360,3654,18,8,15,0,1,1,3 +787,1,0.5,0,15,0,11,0.6,93,1,16,806,1423,2934,8,6,14,1,0,1,2 +854,0,0.5,0,2,0,30,0.5,125,8,5,518,1152,2889,5,2,11,0,0,1,2 +1184,0,1.5,1,1,1,48,0.6,191,1,6,519,1577,3315,17,7,14,1,1,1,3 +1973,0,1.6,1,5,1,39,0.8,152,4,6,792,1181,1993,9,0,5,1,0,0,2 +510,0,1.7,1,3,0,35,0.8,120,3,6,382,1228,2509,17,2,11,0,1,1,1 +966,0,2.0,0,8,1,34,0.5,118,2,10,214,1523,3534,18,17,11,1,1,1,3 +1438,1,1.8,0,3,0,16,0.6,169,8,7,859,867,2246,14,11,15,0,0,0,2 +1986,0,0.5,0,7,0,51,0.4,95,3,9,342,774,3165,5,0,13,1,0,0,3 +1907,0,2.0,0,13,0,55,0.9,105,7,15,713,1513,286,14,4,17,1,0,1,0 +1489,0,2.4,1,8,0,32,0.6,200,1,16,172,812,776,7,6,8,0,0,0,0 +1843,1,1.8,1,13,1,16,0.7,134,6,18,118,580,3213,15,14,15,1,1,0,3 +825,1,1.5,0,11,0,38,0.4,94,3,18,540,783,716,11,4,14,0,1,0,0 +1286,1,2.3,0,10,1,16,0.1,98,2,18,18,662,424,10,5,4,1,1,0,0 +840,0,0.6,0,0,1,63,0.8,137,7,19,987,1081,3486,12,8,18,1,1,0,3 +757,0,2.3,1,5,1,58,0.2,163,4,7,535,697,3237,19,12,9,1,0,1,2 +814,1,1.1,1,2,0,41,0.8,177,2,10,1092,1406,1944,16,6,12,1,0,0,1 +1195,1,1.1,1,2,1,8,0.9,80,6,6,327,1001,643,14,2,19,1,0,0,0 +767,0,0.8,0,7,1,10,0.5,107,4,12,517,1995,2317,6,0,12,1,1,1,2 +1068,0,1.3,0,6,1,52,0.1,97,8,7,994,1500,1436,16,1,15,1,0,0,1 +994,1,2.8,1,0,0,56,0.5,173,3,3,491,530,3190,5,2,20,1,1,1,2 +1550,1,2.5,0,6,0,21,0.8,133,2,11,268,832,2338,16,1,15,0,1,0,2 +1878,1,0.5,0,9,0,29,0.6,85,8,19,210,1026,1334,18,7,2,0,0,0,1 +623,0,2.0,0,2,0,6,0.1,127,3,4,144,672,3657,17,3,19,1,1,0,2 +1829,1,0.5,0,0,1,15,0.4,160,5,7,729,1267,2080,16,11,12,1,0,1,2 +525,0,2.4,1,11,0,35,0.8,190,7,20,82,670,1609,16,11,3,0,0,0,0 +1065,1,0.5,0,0,1,14,0.7,89,2,2,188,928,3078,10,1,18,1,0,1,2 +1425,0,1.2,0,9,1,35,0.7,127,8,14,150,1897,590,13,2,6,1,1,1,0 +1296,0,1.4,1,3,0,11,0.2,129,7,4,1222,1382,2552,19,8,10,1,1,1,2 +642,0,2.8,0,3,0,34,0.8,197,2,15,331,1011,3355,12,5,13,0,0,0,2 +1664,1,2.9,1,9,1,15,0.5,177,7,19,1178,1929,1968,12,7,9,1,0,0,2 +1498,1,0.7,0,3,1,8,0.1,170,7,4,347,1076,3358,7,3,19,1,0,0,3 +981,1,1.9,1,0,0,2,0.1,136,3,7,75,688,1539,19,12,19,0,0,0,0 +1236,1,2.8,0,6,1,32,0.3,143,4,18,492,1403,942,16,12,14,1,1,1,0 +1673,0,2.8,1,7,0,9,0.1,187,3,10,65,734,3669,9,1,10,1,0,1,3 +712,1,1.6,0,6,1,9,0.8,172,2,14,881,1234,3612,13,5,4,1,0,0,3 +569,1,0.5,1,10,1,4,0.8,170,3,19,351,1159,2351,8,7,10,1,1,0,1 +603,1,0.7,1,0,1,64,0.2,156,6,0,1842,1968,604,10,4,8,1,1,1,0 +1332,0,0.8,1,2,0,11,0.5,187,2,4,758,1165,1285,5,0,9,1,1,0,1 +1413,0,0.6,0,0,1,13,0.1,128,1,0,1323,1481,515,5,0,18,1,1,0,0 +1064,0,2.9,1,1,1,34,0.2,184,6,13,1175,1569,654,16,13,6,1,0,0,0 +1444,0,0.6,0,2,0,48,0.5,82,5,17,1092,1554,2540,17,2,15,1,1,1,3 +1366,1,1.7,1,5,1,53,0.2,161,5,9,647,1876,3869,17,5,14,1,0,1,3 +906,0,2.1,1,7,0,18,0.1,136,2,11,1102,1793,3412,13,8,16,1,0,0,3 +1554,0,2.7,1,3,1,47,0.7,185,5,12,319,1367,509,12,3,19,1,0,0,0 +1187,0,2.3,0,0,1,21,0.2,122,6,6,215,1125,2547,10,3,5,1,1,0,2 +1156,1,2.7,1,1,1,30,0.9,173,3,16,945,1913,2735,16,15,13,1,0,1,2 +1918,0,2.8,0,1,0,22,0.3,139,1,5,381,1203,1369,9,6,6,0,1,1,1 +841,1,0.5,1,8,0,39,0.1,199,6,13,546,828,2942,11,5,16,0,1,1,2 +730,1,1.3,1,6,0,6,0.9,167,7,10,1096,1155,2812,10,1,17,0,0,0,2 +878,1,1.3,0,13,1,31,0.5,153,4,18,575,618,3497,9,7,11,1,1,0,2 +1059,0,0.5,1,0,0,50,0.7,182,8,1,519,1545,619,5,3,18,0,1,1,0 +1578,0,2.9,0,8,0,3,0.9,200,1,20,342,670,3483,17,4,16,1,0,0,3 +1829,0,1.7,0,0,0,36,0.8,112,5,1,291,563,1475,11,4,7,0,0,0,1 +1132,0,1.0,0,0,0,8,0.1,157,1,4,1091,1293,1950,11,2,6,0,1,1,1 +1652,0,0.6,1,4,1,40,1.0,198,7,6,352,1084,3592,7,6,6,1,0,0,3 +912,0,0.5,1,0,0,58,0.3,107,5,1,165,1723,3573,17,3,20,1,1,0,3 +1181,0,2.3,0,12,1,61,0.6,116,2,16,385,831,2020,6,0,18,1,1,0,1 +1497,1,0.7,0,5,0,32,0.7,92,3,9,1920,1933,1329,6,1,7,1,1,0,2 +1790,1,2.3,1,3,1,49,0.5,100,3,11,396,1980,3568,6,2,18,1,0,1,3 +1742,1,1.6,0,3,0,49,0.8,100,1,9,1134,1469,1947,5,4,6,1,0,1,2 +1549,1,0.5,0,4,0,8,0.4,158,5,7,721,1514,1998,12,7,15,1,1,0,2 +1372,1,2.7,0,7,0,34,0.4,193,4,17,687,937,725,11,3,20,1,0,0,0 +1112,0,0.5,0,0,1,12,0.9,190,4,6,777,1119,3302,11,0,20,1,1,1,3 +1005,0,0.5,0,0,0,46,0.4,133,8,17,176,1556,3884,17,0,20,0,1,1,3 +783,1,1.7,1,9,1,27,0.3,150,6,11,458,1263,1185,15,4,6,1,1,1,0 +1698,0,2.5,0,10,1,26,0.4,105,2,18,485,1819,1656,5,3,17,1,0,1,2 +899,1,2.7,0,3,1,53,0.3,192,4,11,641,1638,2870,19,16,10,1,0,1,2 +1062,0,1.5,0,3,0,45,0.2,151,3,4,798,1435,911,14,2,9,0,0,0,0 +989,1,2.0,0,4,0,17,0.2,166,3,19,256,1394,3892,18,7,19,1,1,0,3 +1983,1,1.2,1,6,1,27,0.6,125,1,11,370,1197,3897,12,10,10,1,1,1,3 +1800,1,3.0,0,5,0,53,0.3,87,1,12,191,1108,656,14,10,18,0,0,1,0 +1254,0,1.7,0,0,1,45,0.4,146,3,3,1571,1956,606,7,2,2,1,1,1,1 +868,0,1.7,0,0,0,30,0.8,83,4,0,276,1026,1653,11,7,17,1,0,0,1 +1205,0,0.5,1,3,0,12,0.6,175,4,6,573,614,860,14,1,14,1,0,1,0 +1284,1,2.8,1,0,0,10,0.9,155,2,14,160,516,2197,16,2,9,0,1,1,1 +626,0,0.7,1,2,1,23,0.5,187,2,9,90,1334,3458,7,5,11,1,0,1,2 +1763,0,2.9,1,1,1,53,0.2,101,4,20,138,806,2066,12,9,17,1,1,1,1 +694,1,1.8,1,15,0,36,0.4,193,4,20,983,1230,3676,12,8,5,1,0,1,3 +1265,0,0.6,1,4,1,49,0.5,90,1,5,275,687,1518,16,11,8,1,0,1,1 +816,1,0.5,0,4,0,14,0.9,198,3,13,149,558,1018,17,10,15,1,0,0,0 +904,0,1.8,0,3,1,35,0.4,168,3,4,42,507,1360,15,12,11,1,0,0,0 +979,0,0.5,1,0,1,5,0.5,164,7,2,793,1670,3449,5,2,14,1,0,0,3 +1531,0,2.0,0,0,1,60,0.4,162,6,1,625,765,2524,13,11,7,1,0,0,2 +934,0,2.0,1,2,0,30,0.7,182,8,15,521,1190,703,10,8,7,0,0,1,0 +1624,1,2.6,1,0,0,58,1.0,200,3,11,1530,1744,1251,13,4,18,0,1,1,1 +874,0,1.3,0,5,0,8,0.5,185,1,20,442,1248,582,6,4,15,0,0,0,0 +1027,1,2.2,0,0,0,63,0.8,102,5,4,152,714,1732,8,5,13,0,1,1,1 +1966,0,0.8,1,15,1,48,0.2,144,1,16,1242,1973,1252,6,4,19,1,1,1,2 +1048,1,1.5,0,2,1,29,1.0,182,1,4,29,1670,2146,11,10,2,1,0,0,1 +1496,1,1.9,1,13,0,38,0.1,126,4,14,501,506,1927,17,4,6,0,0,1,1 +959,1,1.7,0,15,0,13,0.4,155,4,16,87,736,3328,10,9,10,1,1,1,2 +1349,1,2.2,1,5,0,55,0.1,105,7,7,648,1019,2462,15,7,17,1,0,1,2 +1689,1,2.4,1,0,1,13,0.9,168,2,9,521,674,1172,12,11,17,1,1,1,0 +1558,1,2.4,0,0,1,27,0.1,146,1,1,120,1409,3598,9,2,12,1,0,1,3 +582,0,0.5,1,3,0,27,0.2,168,3,10,985,1420,2437,19,2,2,1,1,1,2 +1485,0,2.8,0,3,1,44,0.1,138,4,14,341,774,3271,14,12,8,1,1,0,3 +1991,1,1.8,0,11,0,9,0.7,94,3,12,751,1377,1511,17,8,9,0,0,0,1 +553,0,0.5,1,2,1,23,0.5,119,3,3,993,1517,2981,7,3,14,1,0,0,2 +1231,0,0.7,1,2,0,7,0.9,113,1,7,43,1663,3119,9,4,15,1,1,0,3 +805,0,0.8,0,1,0,34,0.6,88,6,2,1262,1538,3647,18,11,9,1,0,1,3 +764,1,1.2,1,1,0,13,1.0,152,8,2,361,511,3148,18,7,6,1,1,0,2 +894,0,0.9,0,5,1,54,0.2,130,3,15,104,541,2829,11,5,13,1,0,1,2 +1589,0,2.6,0,9,0,46,0.4,84,3,16,618,940,2373,11,9,20,1,1,0,2 +1456,0,1.6,1,9,1,39,0.1,80,8,10,815,1666,3998,6,3,13,1,1,0,3 +743,0,0.5,1,0,1,33,0.3,95,2,1,1587,1659,316,19,10,4,1,0,0,0 +1061,1,2.1,0,3,1,52,0.1,109,7,4,138,1330,999,16,12,9,1,1,0,0 +1428,1,1.6,0,0,0,7,0.1,153,4,2,584,983,1808,12,8,13,0,1,0,1 +674,1,2.8,1,0,1,8,0.2,93,3,0,750,772,589,18,6,4,1,1,0,0 +832,0,1.1,0,0,1,46,0.3,93,6,0,820,1366,3317,8,0,19,1,1,0,3 +1625,1,0.5,1,2,1,50,0.1,107,8,17,8,1219,670,16,3,8,1,0,0,0 +907,0,1.4,1,3,0,42,0.2,151,1,16,171,507,584,11,9,6,1,0,0,0 +1631,0,0.5,0,2,1,13,0.5,166,2,16,960,1735,2173,12,3,8,1,1,0,2 +1584,1,1.3,0,6,0,41,0.6,135,4,15,160,1291,1561,10,5,17,0,0,1,1 +1382,1,0.5,0,7,1,13,0.3,199,2,18,612,719,2073,16,7,9,1,0,1,1 +633,1,1.4,0,0,1,46,0.7,102,6,10,709,1915,1401,19,14,11,1,1,0,1 +1444,1,2.1,0,9,0,38,0.4,104,7,16,624,917,3764,14,9,10,0,0,0,3 +852,1,1.6,1,6,1,54,0.4,147,5,7,538,730,1275,13,7,12,1,0,1,0 +922,1,0.7,0,0,1,47,1.0,157,8,14,1295,1808,1464,17,4,12,1,0,1,1 +1745,0,1.5,1,4,1,57,0.1,159,3,16,1164,1908,2885,13,11,5,1,1,1,3 +862,0,2.3,0,9,1,6,0.1,107,8,14,829,1977,3458,9,4,9,1,1,1,3 +1754,1,2.1,1,1,1,52,1.0,101,4,3,199,1452,3019,11,6,19,1,0,1,3 +1008,0,2.5,0,3,0,36,1.0,109,1,14,825,1972,1083,6,4,6,0,0,0,1 +1569,0,0.5,1,3,0,33,0.2,147,1,13,519,930,3538,18,1,15,1,0,1,3 +1596,0,2.9,1,7,0,7,0.7,149,2,9,169,1190,2493,14,12,13,1,1,1,2 +1807,1,0.5,1,2,1,61,0.1,134,6,6,1734,1968,3726,8,5,15,1,0,0,3 +1660,0,2.8,1,4,0,7,0.8,184,1,6,76,1165,1531,12,0,7,0,0,0,1 +1861,1,0.9,0,4,1,55,0.5,148,7,8,1698,1877,601,7,5,4,1,0,0,1 +648,0,1.9,1,4,0,8,1.0,91,5,19,819,1997,2991,8,7,4,0,0,1,2 +1379,0,0.5,1,1,0,19,0.3,134,8,17,387,671,3912,11,2,19,0,1,1,3 +1910,1,1.7,0,0,0,34,0.6,115,2,0,985,1284,309,8,4,10,0,0,1,0 +1807,0,2.0,1,0,1,13,0.5,155,8,0,970,974,323,9,3,3,1,1,1,0 +1923,0,0.5,1,7,0,46,0.5,191,1,10,767,1759,1489,10,9,3,1,1,1,1 +1345,1,3.0,0,7,1,38,0.1,162,3,11,512,1465,1322,9,2,15,1,0,0,1 +904,0,1.6,1,5,1,14,0.2,102,8,9,56,760,1846,7,0,3,1,0,1,1 +1239,0,1.2,1,5,1,52,0.9,122,2,10,590,661,417,8,0,6,1,0,1,0 +1330,0,0.9,0,6,1,52,0.8,84,4,12,462,1304,3269,19,6,8,1,1,0,3 +516,1,0.7,1,1,0,30,0.9,138,1,12,126,698,3731,17,13,15,0,0,0,2 +672,1,0.5,1,0,0,54,0.9,95,4,11,578,1143,667,17,8,14,0,0,0,0 +892,1,0.5,0,0,1,47,0.4,94,1,18,655,1782,1241,12,3,9,1,0,1,1 +1778,0,0.5,0,0,1,23,0.5,101,6,11,1028,1445,3941,19,6,13,1,0,0,3 +1130,1,2.5,0,4,1,58,0.1,132,5,14,88,1261,1018,17,1,16,1,0,0,0 +1359,0,0.6,0,4,0,59,0.3,86,2,6,1692,1902,3142,19,3,17,0,1,1,3 +1866,1,2.5,1,3,1,47,0.8,89,5,9,358,1782,1444,7,4,20,1,0,0,1 +1597,0,2.3,0,11,0,34,0.4,89,1,14,64,1667,934,16,10,9,0,1,0,0 +1046,1,2.8,1,0,1,58,0.2,100,8,0,259,1040,3863,17,12,9,1,1,1,3 +1035,0,0.6,1,2,1,44,0.5,99,3,3,236,1960,3506,14,5,12,1,1,0,3 +1175,1,1.3,0,2,0,19,0.3,164,7,9,873,1394,1944,9,4,9,1,1,0,1 +1261,1,0.5,1,0,1,11,0.2,90,4,0,858,1591,348,14,9,14,1,0,1,0 +1068,0,0.7,1,9,0,51,0.5,124,4,15,1405,1910,550,12,8,6,1,1,0,0 +1713,0,3.0,1,5,1,20,0.9,104,7,17,237,890,971,11,10,10,1,0,0,0 +1688,0,2.5,0,0,1,21,0.2,170,7,0,650,864,3984,17,14,8,1,1,1,3 +1413,1,0.5,1,4,1,45,0.4,104,5,6,1949,1994,2973,17,8,15,1,0,1,3 +559,1,0.5,0,10,0,11,0.4,82,5,14,541,823,2019,10,4,16,1,1,1,1 +1483,1,2.6,1,13,0,19,0.6,146,7,19,361,1552,1587,9,4,19,0,0,0,1 +860,1,1.6,1,13,0,48,0.5,187,7,18,335,1463,1870,17,2,18,1,0,0,1 +1090,0,1.3,1,5,0,27,0.1,91,4,16,1638,1910,1352,5,1,11,0,1,0,1 +686,1,0.5,0,11,0,3,0.3,91,6,15,1109,1392,570,7,6,19,0,1,0,0 +818,0,1.3,0,14,0,43,0.9,177,6,15,111,510,546,12,6,7,1,1,1,0 +1456,0,1.6,1,5,0,49,0.2,193,3,20,1285,1427,3624,12,11,16,1,1,0,3 +774,0,0.5,1,2,1,10,0.5,188,2,9,1480,1731,2944,8,6,2,1,1,1,2 +1068,0,0.5,1,0,1,19,0.9,197,8,9,322,875,1209,19,12,12,1,1,0,0 +1373,1,1.9,1,1,1,29,0.9,141,6,12,1220,1348,2752,15,2,7,1,1,1,3 +1777,1,3.0,0,3,0,20,0.6,188,6,5,511,616,3868,5,1,7,0,1,1,3 +594,0,0.8,0,2,1,28,0.1,132,5,3,1011,1263,3087,16,4,4,1,1,1,2 +1524,0,2.6,1,5,0,57,0.5,124,2,12,629,635,947,11,4,16,0,1,1,0 +511,1,0.6,1,12,0,50,0.1,175,3,16,140,622,1484,9,7,8,1,0,0,0 +1402,1,0.6,1,3,0,46,0.3,87,7,12,1081,1767,347,17,0,12,1,0,1,0 +965,1,0.5,0,15,0,53,1.0,131,8,19,297,653,3227,12,6,8,1,0,0,2 +1270,1,2.3,0,0,0,58,0.5,104,5,1,1512,1716,3299,13,4,16,0,0,1,3 +919,0,0.5,1,11,0,13,0.3,159,1,15,275,570,1028,8,4,17,1,0,0,0 +1963,1,1.0,0,16,1,34,0.1,157,2,17,1136,1813,714,18,2,2,1,0,1,1 +1977,0,1.3,1,2,0,31,0.4,173,8,6,1145,1356,2641,8,2,7,0,0,0,3 +1881,0,2.2,0,4,0,51,0.3,158,5,7,477,1553,1229,12,0,14,1,0,0,1 +683,0,0.7,0,5,0,19,0.9,173,4,17,954,1985,2622,16,3,5,0,0,1,2 +772,0,2.6,1,7,0,6,0.1,100,2,10,741,1471,929,13,6,18,0,1,1,0 +536,1,1.4,0,0,1,53,0.7,135,3,0,547,705,1211,15,10,7,1,0,1,0 +1694,0,1.8,0,0,0,53,1.0,186,6,0,1194,1208,1653,7,5,6,1,0,0,2 +1633,0,1.7,1,3,1,33,0.9,111,2,19,146,906,511,9,0,7,1,1,0,0 +1371,0,0.5,0,4,0,52,0.5,167,4,19,471,663,3034,13,6,8,0,0,0,2 +551,1,2.8,0,0,1,54,0.1,172,7,15,169,1916,1414,6,1,19,1,0,1,0 +1221,0,0.5,0,1,1,28,0.5,139,1,7,1895,1976,2438,13,11,10,1,1,1,3 +1000,1,0.5,0,12,0,63,0.7,179,8,18,1537,1761,3744,11,1,7,0,0,1,3 +1986,0,2.7,1,3,1,64,0.2,162,4,20,236,1520,1377,5,3,15,1,1,1,1 +1119,0,0.5,1,0,1,23,0.4,164,4,1,821,915,3520,7,4,7,1,0,0,3 +1699,0,0.5,1,1,0,59,0.5,97,4,3,466,1768,3796,17,10,12,0,1,1,3 +1099,0,0.5,0,13,1,61,0.3,146,3,20,393,1096,1699,17,10,3,1,1,1,1 +1576,0,2.6,0,7,0,58,0.2,90,3,16,400,631,336,14,8,13,1,1,1,0 +950,1,0.5,0,9,0,55,0.1,156,5,10,774,843,1095,14,12,13,0,1,0,0 +1081,1,2.5,1,13,0,49,1.0,99,3,17,284,519,325,9,1,6,0,0,1,0 +606,0,2.5,0,1,1,53,0.2,146,4,2,465,1152,1223,19,12,7,1,0,0,0 +502,0,1.5,1,7,0,37,0.2,199,2,12,705,1810,1649,6,1,14,0,1,0,1 +957,1,0.7,0,0,1,4,0.1,160,2,0,38,1682,1898,12,4,3,1,1,0,1 +1658,1,1.4,1,0,1,38,0.3,159,5,0,51,739,2609,12,11,19,1,0,0,2 +1681,1,2.5,1,6,0,18,0.3,167,1,7,850,1005,2265,5,3,20,1,1,1,2 +1983,1,0.5,1,3,0,43,1.0,87,6,10,349,676,2775,9,4,3,0,1,1,2 +1753,0,1.2,0,8,1,12,0.9,113,7,17,387,1595,1445,17,16,12,1,1,1,1 +1632,1,1.4,0,0,0,41,0.1,132,4,1,706,1623,2614,5,4,15,1,0,0,2 +1949,1,1.4,0,7,0,57,0.3,145,7,11,951,1178,356,5,3,19,0,0,0,0 +1696,0,1.7,0,1,0,13,0.9,97,3,2,179,772,523,5,0,4,0,1,1,0 +688,0,2.5,1,0,0,57,0.8,131,7,3,426,1964,3745,17,1,4,0,1,0,3 +1104,0,1.7,0,1,1,60,0.4,199,2,13,653,1413,1229,6,0,3,1,1,1,0 +1122,0,2.8,0,0,0,28,0.6,184,3,4,1578,1963,1402,14,10,3,0,1,0,1 +504,1,0.5,1,2,1,46,0.9,172,5,14,280,1795,2085,13,5,8,1,0,0,1 +1154,0,0.5,0,12,1,14,0.7,156,7,14,251,1801,587,8,3,4,1,1,1,0 +1727,0,2.1,0,2,1,63,0.6,85,7,8,1463,1992,2457,19,13,7,1,0,1,3 +1674,0,2.8,1,0,1,52,0.2,89,3,7,1432,1649,2030,7,0,6,1,0,0,2 +1948,0,2.8,1,5,1,18,0.2,135,2,14,477,571,816,16,2,3,1,0,0,0 +1218,1,2.8,1,3,0,39,0.8,150,7,14,1122,1746,1667,10,0,12,0,0,0,1 +531,0,1.1,0,10,0,63,0.7,189,7,14,145,1903,2958,17,1,19,0,1,0,2 +1057,0,2.1,0,4,0,5,0.5,154,5,13,416,1055,3705,6,4,13,1,0,0,3 +576,0,1.2,0,1,0,30,0.8,162,8,5,847,893,2800,11,6,16,0,1,1,2 +1960,1,2.1,0,1,0,7,0.2,165,7,9,868,877,3773,11,9,6,0,1,1,3 +673,1,1.7,1,3,1,22,0.1,88,1,5,594,1088,2050,7,2,17,1,1,0,1 +718,0,0.7,1,0,1,21,0.8,88,1,7,518,830,1754,17,11,9,1,0,1,1 +864,0,1.7,0,3,1,35,0.3,103,3,7,663,1805,1904,12,8,13,1,1,1,1 +547,0,1.9,1,1,0,37,0.4,154,5,4,371,541,2705,17,3,10,1,1,0,1 +623,1,0.9,0,1,1,3,0.1,102,8,7,1749,1781,3537,16,13,3,1,0,1,3 +1793,0,0.7,1,11,0,27,0.4,154,5,13,586,722,1370,16,3,19,1,0,1,1 +1720,1,0.7,1,0,0,19,0.1,137,2,3,409,646,1222,13,2,7,0,0,0,1 +812,0,0.5,1,1,0,64,1.0,106,4,7,35,1309,3102,6,0,2,0,0,0,2 +980,1,0.5,0,0,1,33,0.9,160,6,0,1008,1758,2268,7,5,4,1,1,0,2 +643,0,1.0,0,9,1,18,0.2,187,8,12,442,1079,2648,7,5,18,1,1,1,1 +1925,0,3.0,1,0,1,16,0.8,175,8,11,983,1087,2173,7,3,19,1,1,0,2 +1408,1,2.5,0,3,0,32,0.1,151,4,6,875,982,3162,19,18,3,1,0,0,3 +1522,1,0.7,1,4,0,28,0.2,124,1,5,952,1191,1368,14,5,17,1,0,1,1 +587,1,2.5,0,16,1,51,0.6,111,1,17,244,1361,2746,10,4,7,1,0,1,2 +1959,0,0.5,1,5,0,18,0.7,191,6,20,65,1055,619,7,4,8,1,1,1,0 +1872,0,0.5,1,3,0,17,0.7,89,6,6,1749,1767,724,17,3,9,1,0,1,1 +1043,1,0.5,0,7,0,42,0.1,111,3,8,716,1626,912,16,9,6,0,1,0,0 +1809,0,0.5,0,6,0,23,0.7,123,6,19,433,1661,2784,12,6,20,1,1,1,3 +1703,1,0.5,0,5,1,23,0.2,92,6,7,134,521,793,7,3,17,1,1,0,0 +1095,1,0.5,0,4,0,45,0.5,197,1,5,179,1247,560,9,1,10,1,1,0,0 +1414,0,2.6,0,1,0,27,0.6,137,4,20,804,1564,312,5,2,8,0,0,1,0 +1659,1,2.5,0,2,0,41,0.1,88,7,18,787,1515,545,12,0,9,0,1,1,0 +1540,0,0.7,1,1,0,60,0.8,197,7,12,704,822,1591,19,0,2,1,0,1,1 +1342,0,1.0,0,0,1,31,0.6,86,7,1,991,1638,2746,15,5,10,1,1,0,3 +1189,1,2.3,0,13,0,8,0.5,198,3,14,379,932,893,9,6,13,1,1,0,0 +518,1,2.4,0,0,1,62,0.6,128,6,0,489,710,2514,16,12,7,1,1,1,1 +1449,0,0.8,1,3,1,10,0.2,144,1,12,1518,1883,1032,10,0,8,1,1,1,1 +516,0,1.1,1,0,1,39,0.4,91,5,7,855,1401,819,8,0,10,1,1,1,0 +1569,0,0.8,1,8,0,59,0.9,111,3,16,1261,1383,3672,15,2,15,1,0,1,3 +1312,1,0.8,1,0,0,24,0.9,156,6,0,115,1791,3833,14,13,17,0,1,0,3 +1893,1,0.5,1,1,0,23,0.1,179,8,3,1203,1432,1482,15,7,17,0,1,0,2 +1076,0,2.5,0,3,0,14,0.2,105,5,4,545,1300,2043,7,5,14,0,0,0,1 +530,1,2.6,0,1,0,40,0.9,118,6,2,818,1090,1229,16,11,2,0,1,0,0 +1044,1,2.8,1,7,0,33,0.6,129,4,13,42,1262,1816,17,16,15,1,0,1,1 +1330,0,1.1,0,11,0,37,0.7,126,7,20,1103,1637,2166,10,1,4,1,0,0,2 +1836,0,1.1,1,0,0,14,0.7,104,5,1,168,1068,2469,18,6,7,1,1,1,2 +1741,1,0.5,0,1,1,55,0.1,140,5,3,719,755,2575,13,10,7,1,1,1,2 +1869,0,2.6,0,0,1,30,0.4,152,1,13,163,874,1375,15,3,19,1,0,0,1 +1331,0,0.5,0,8,0,55,0.9,146,3,15,1162,1531,1732,6,2,11,1,0,1,1 +1655,1,0.5,1,6,1,4,0.1,105,3,12,626,1348,673,10,3,12,1,0,0,0 +605,0,1.5,0,9,1,18,0.9,162,2,14,329,656,2301,15,9,8,1,0,0,1 +1245,1,0.6,0,2,0,30,0.7,105,5,3,330,1434,2676,17,8,7,1,0,0,2 +1709,1,0.8,0,8,1,58,0.8,136,2,10,956,1292,1781,18,3,17,1,0,0,2 +846,1,2.6,0,0,1,58,0.1,123,4,15,1140,1983,2248,16,8,13,1,0,0,2 +1403,1,2.5,1,3,0,62,0.9,90,4,13,217,1623,921,14,13,18,1,0,0,0 +688,1,1.5,0,0,0,2,1.0,89,3,2,271,869,391,5,2,8,1,1,1,0 +775,1,2.5,1,1,1,10,0.1,185,7,14,444,1555,1719,19,3,18,1,1,1,1 +1154,0,2.0,0,6,1,35,0.8,159,5,16,1003,1827,3262,16,15,16,1,0,0,3 +1375,0,0.5,1,2,1,35,0.1,194,2,3,227,772,1947,15,13,15,1,1,1,1 +1827,1,0.8,0,4,0,61,0.9,130,7,9,253,1764,2693,8,3,7,0,1,1,3 +1697,0,0.5,0,0,1,60,0.1,90,4,0,88,1046,441,15,1,11,1,1,0,0 +741,0,1.5,0,1,0,14,0.3,178,5,13,334,594,1886,19,11,9,1,1,1,0 +1672,1,0.5,1,13,1,32,0.7,174,1,20,1281,1896,1267,17,4,20,1,1,0,1 +514,1,0.7,0,4,0,57,0.1,186,3,7,168,1320,687,6,0,20,1,1,1,0 +1375,1,1.3,1,2,0,12,0.1,105,1,13,898,1687,2890,17,1,12,0,0,0,3 +989,1,1.8,1,4,1,55,0.7,124,1,12,46,1069,1737,8,5,10,1,0,1,1 +1510,1,2.5,1,11,0,47,0.7,138,2,13,118,1170,887,18,6,5,0,0,0,0 +1266,0,2.6,0,1,0,18,0.4,86,7,2,1187,1595,398,16,8,3,1,1,1,0 +1396,0,2.4,1,0,0,46,0.1,138,7,1,1191,1347,2389,7,3,15,0,0,1,2 +808,0,2.3,0,3,0,45,0.8,161,1,9,526,1324,3431,15,6,13,0,1,1,3 +1542,0,2.3,0,1,0,43,0.8,182,2,11,346,966,3601,14,4,16,0,0,0,3 +745,1,0.6,1,5,0,35,0.8,102,8,10,89,1538,2459,14,1,16,1,1,0,1 +1735,1,1.9,1,0,1,59,0.7,148,6,0,137,846,3230,6,1,9,1,1,0,3 +586,0,0.5,1,1,0,57,0.3,188,2,5,1226,1389,3646,15,4,11,1,1,1,3 +1341,1,2.1,1,0,0,36,0.4,107,8,1,473,574,2200,18,14,15,0,1,0,1 +781,1,1.3,1,1,0,64,0.2,88,2,7,368,607,3862,17,10,9,0,0,0,3 +501,1,0.5,1,14,0,22,0.5,174,6,20,239,1636,3077,17,3,17,0,0,0,2 +1224,1,1.8,1,2,1,44,0.2,139,2,9,622,709,621,11,4,14,1,1,1,0 +1970,0,1.6,1,11,1,58,0.3,80,8,19,654,882,2372,14,12,2,1,1,0,2 +618,1,2.2,1,0,1,63,0.9,138,2,1,853,1781,2574,14,3,5,1,1,0,2 +1537,0,2.9,0,11,1,46,0.8,158,4,17,686,1305,2857,17,14,2,1,1,1,3 +1018,0,2.2,0,8,0,16,0.6,153,8,10,992,1433,3143,17,12,20,0,1,0,3 +1545,0,1.3,1,15,1,35,0.1,173,5,20,115,1352,3197,14,9,6,1,0,1,3 +1871,0,2.1,0,4,1,41,0.4,144,8,5,275,1966,2727,15,8,11,1,0,0,3 +1729,1,2.1,1,1,0,12,0.9,186,1,6,461,1178,1519,9,4,5,1,0,1,1 +680,1,2.1,1,9,1,9,0.1,131,3,11,1428,1500,2438,14,2,17,1,0,0,2 +1106,1,1.9,0,4,0,54,0.7,107,3,9,614,1212,2674,9,3,9,1,0,1,2 +635,1,0.6,1,1,1,50,0.3,97,5,13,193,989,2107,13,12,12,1,0,0,1 +618,0,0.6,0,8,0,16,0.2,143,1,14,1105,1602,2262,16,15,4,0,1,0,2 +1671,0,0.5,1,13,0,5,0.9,179,8,18,398,1263,815,16,6,10,1,1,1,0 +1562,1,1.2,1,0,1,52,0.1,105,7,9,480,728,2829,13,10,3,1,1,1,2 +1975,1,1.9,1,2,0,31,0.9,151,1,17,775,1607,3022,13,5,19,0,0,1,3 +831,1,0.7,0,2,1,62,0.7,134,8,9,1482,1490,2573,16,12,18,1,0,1,2 +1524,1,1.8,1,0,0,10,0.6,174,4,1,154,550,2678,16,5,13,1,0,1,2 +1528,1,1.8,1,3,1,55,0.8,129,5,6,454,1762,1282,11,9,11,1,1,1,1 +1447,1,2.5,1,2,0,9,0.2,155,8,16,737,1455,568,12,11,8,0,0,0,0 +1344,0,1.5,0,1,0,14,0.5,190,1,3,419,556,2074,8,1,5,1,1,0,1 +564,0,3.0,1,1,0,8,0.7,130,2,3,853,1737,2227,9,2,14,1,0,1,1 +921,0,0.6,1,1,0,60,0.1,83,2,3,1211,1229,1080,10,0,6,0,0,1,0 +1413,1,1.7,0,2,0,10,0.2,200,6,6,314,1606,2867,5,4,15,0,1,0,2 +831,0,2.4,0,10,0,55,0.5,86,6,12,172,1239,1075,12,11,3,1,1,0,0 +802,0,0.5,1,3,0,43,0.6,153,5,6,527,734,3063,17,13,4,0,1,0,2 +1923,0,1.3,0,3,0,24,1.0,86,4,4,874,1264,2479,9,2,15,1,1,0,2 +1193,1,3.0,0,10,0,56,0.4,196,3,17,674,864,2394,19,11,14,1,1,0,2 +904,1,1.2,1,10,1,31,0.8,112,3,11,657,1014,2814,13,3,19,1,0,0,2 +1285,0,2.4,0,1,1,51,1.0,140,7,2,475,500,2094,8,0,10,1,0,0,1 +1635,0,2.6,1,0,1,2,0.6,182,4,0,1209,1411,2315,10,1,2,1,1,0,2 +1923,0,1.0,1,5,1,14,0.9,154,4,6,15,525,2519,13,0,16,1,0,1,2 +1851,1,1.9,1,3,1,12,0.9,198,6,11,293,1967,735,7,6,14,1,0,1,0 +727,1,1.5,0,0,1,32,1.0,131,7,1,813,1377,1891,19,13,7,1,0,1,1 +1396,0,1.5,1,0,1,44,0.1,118,6,1,173,1843,1386,7,1,8,1,1,1,1 +877,0,1.3,1,9,1,46,0.8,135,1,14,457,652,3260,14,12,6,1,0,0,2 +696,1,2.4,0,11,1,35,0.2,103,3,13,533,797,2022,14,11,4,1,0,1,1 +1009,1,1.0,1,2,0,2,0.6,102,8,14,912,1043,1716,7,5,15,0,0,0,1 +1526,0,1.1,1,2,1,38,0.3,116,5,6,798,1418,3317,7,1,8,1,1,1,3 +987,0,2.0,1,1,0,20,0.8,192,7,3,412,565,1454,11,3,8,1,1,0,0 +1414,1,2.2,1,0,1,49,0.5,101,4,1,130,887,2290,13,0,12,1,1,0,1 +1732,0,0.8,0,2,0,61,0.3,172,5,3,201,656,3940,17,11,20,0,1,1,3 +1587,1,0.5,0,0,0,50,0.9,148,8,15,299,874,461,17,4,4,1,0,1,0 +1097,0,0.8,0,10,1,21,0.1,160,7,15,1277,1352,2219,15,6,12,1,0,1,2 +504,0,2.8,1,0,0,40,0.5,178,3,0,626,1195,470,6,0,16,1,0,0,0 +1159,0,2.7,0,13,1,28,0.2,80,8,18,378,751,2495,10,0,9,1,1,1,2 +1910,0,1.4,0,0,0,29,0.6,146,7,2,333,639,2944,8,7,2,1,1,1,2 +865,0,1.2,1,8,0,59,0.1,159,3,9,805,1804,2361,16,11,19,1,0,1,2 +1930,1,2.0,0,11,0,16,0.8,186,8,12,1901,1920,1783,17,3,13,0,0,1,2 +860,1,1.3,1,8,1,40,0.7,170,3,13,1573,1581,2832,13,7,20,1,1,1,2 +1268,1,2.9,0,9,1,42,0.9,182,6,17,360,912,931,11,5,20,1,1,0,0 +999,1,1.8,1,0,1,27,0.1,167,4,1,20,745,1344,17,10,5,1,0,0,0 +622,0,0.7,0,0,1,9,0.3,127,2,0,98,511,3916,13,1,5,1,0,1,2 +1250,1,1.4,0,8,0,44,0.2,182,7,20,703,1011,1882,14,1,14,0,0,0,1 +763,1,0.5,0,9,1,51,0.3,104,5,12,273,1278,2865,11,6,9,1,1,1,2 +1100,1,1.6,0,12,0,15,0.1,112,8,14,919,1344,757,12,2,16,1,1,1,0 +815,0,2.0,1,4,0,51,0.3,85,6,12,982,1291,3469,5,4,6,1,0,1,3 +618,1,0.5,1,2,1,57,0.2,88,3,7,879,896,2399,18,15,17,1,1,1,1 +553,1,2.2,1,0,1,18,0.7,136,2,1,1287,1892,3300,12,10,20,1,0,0,3 +673,1,2.2,1,2,0,3,0.4,84,2,9,1109,1247,2719,19,2,9,1,1,1,2 +563,0,2.0,1,3,0,47,0.3,115,7,12,211,684,3012,14,4,15,1,0,0,2 +1590,0,1.5,1,12,1,14,0.5,187,4,15,1058,1109,2836,6,5,4,1,0,0,3 +1031,1,2.1,1,2,1,11,0.1,121,2,9,532,1247,2385,11,7,16,1,0,0,2 +909,1,0.5,1,9,0,30,0.4,97,3,10,290,773,594,12,0,4,1,1,1,0 +1880,0,0.5,0,0,1,7,0.6,104,4,1,890,1019,2968,9,0,3,1,1,0,3 +1479,1,1.8,1,0,1,24,0.1,146,6,0,327,645,3762,12,10,5,1,0,0,3 +1271,0,1.5,1,0,0,2,0.9,161,1,1,1260,1788,892,15,13,20,0,1,0,1 +709,0,1.9,0,11,1,13,0.1,81,8,15,570,1422,467,17,11,5,1,1,1,0 +1744,0,2.8,0,0,1,62,0.7,158,1,0,621,1558,345,10,6,14,1,0,0,0 +1314,1,2.2,0,0,1,40,0.8,116,7,1,328,1858,3033,9,8,17,1,1,1,3 +1136,0,0.5,0,0,1,9,0.9,150,6,2,1307,1767,2110,9,5,16,1,0,1,2 +1039,1,2.7,0,11,0,56,0.3,125,8,13,497,618,3105,14,8,5,0,1,1,2 +1300,1,0.5,0,5,0,62,0.1,156,6,7,219,1037,874,15,3,10,1,1,0,0 +732,1,2.3,1,7,1,39,0.6,188,7,11,1163,1554,3681,19,3,15,1,1,1,3 +511,0,0.7,1,1,1,52,0.7,180,2,10,24,759,3865,8,3,7,1,0,1,2 +1092,1,0.5,1,10,0,11,0.5,167,3,14,468,571,737,14,4,11,0,1,0,0 +921,1,2.2,1,12,1,10,0.1,170,7,18,1272,1469,3153,8,2,11,1,1,0,3 +1030,1,0.5,0,4,1,37,0.7,147,1,8,503,551,2800,8,6,12,1,0,1,2 +1130,0,1.8,1,0,0,27,0.9,101,1,8,1495,1579,315,14,5,11,1,1,0,0 +1299,0,2.8,1,2,0,60,0.8,187,8,6,1333,1838,1412,13,1,20,0,1,1,1 +1009,1,2.8,1,7,1,2,0.6,115,7,15,267,1841,2286,19,8,13,1,0,0,2 +1735,0,1.8,1,16,0,34,0.1,140,2,17,149,876,2392,17,15,19,1,0,1,2 +1129,1,2.8,1,0,0,49,0.5,185,2,2,1070,1079,1857,8,4,5,1,1,1,1 +708,0,1.9,0,0,0,26,0.3,116,7,1,206,620,1419,10,6,16,1,1,1,0 +894,0,0.7,0,2,1,58,0.1,123,2,3,158,747,3305,12,7,2,1,0,0,2 +530,0,2.4,0,1,0,32,0.3,88,6,20,48,1012,959,17,7,6,0,1,0,0 +1481,1,2.0,1,0,0,35,0.5,105,3,0,249,522,2635,17,16,4,1,0,1,2 +1068,0,2.7,1,0,1,45,0.6,194,5,1,935,1499,1754,17,7,9,1,0,1,1 +1487,0,0.5,0,6,1,57,0.7,84,3,12,140,768,2563,18,4,14,1,0,0,2 +1524,0,2.5,1,11,1,41,1.0,96,4,20,184,740,1936,7,0,9,1,1,1,1 +1093,0,1.9,1,2,1,22,0.3,196,8,14,238,807,1869,8,5,4,1,1,1,1 +1816,1,1.6,1,0,0,50,0.1,186,5,2,800,1089,3637,11,7,16,0,0,1,3 +627,0,1.8,0,2,0,20,0.8,142,3,8,211,507,896,17,6,14,0,0,0,0 +989,1,0.7,0,13,1,51,0.4,132,3,15,670,804,2349,10,1,20,1,0,1,1 +1895,0,0.5,0,2,1,5,0.7,134,1,11,725,1335,774,15,4,6,1,1,0,1 +805,1,1.7,1,0,1,58,0.9,168,3,10,81,1544,3397,7,6,2,1,0,0,2 +713,1,1.6,0,7,1,2,0.4,181,8,9,1211,1378,485,10,6,4,1,1,1,0 +864,0,2.5,0,10,1,24,0.7,148,4,15,1362,1378,3964,13,8,12,1,1,0,3 +1177,0,0.9,0,1,0,11,1.0,181,4,7,945,1923,1887,8,5,11,1,1,1,1 +582,0,0.5,0,8,0,32,0.7,107,3,11,1043,1702,2977,6,1,20,0,1,1,2 +1898,0,1.8,1,3,1,56,0.2,185,7,4,444,739,2114,10,5,19,1,1,1,2 +1158,0,0.7,1,1,1,29,0.7,123,2,20,311,1796,1542,17,9,15,1,0,1,1 +1451,1,0.5,0,5,1,57,0.6,181,8,12,812,1456,3038,15,7,18,1,0,1,3 +1820,1,1.4,0,5,0,51,0.9,163,7,10,202,1884,2481,11,9,11,0,0,0,2 +984,0,0.5,1,3,1,9,0.8,140,3,20,531,707,841,18,15,16,1,0,0,0 +580,1,2.1,1,0,0,24,0.4,135,4,5,404,898,3565,12,11,8,1,0,1,2 +1263,1,2.0,0,0,0,5,0.4,146,6,3,954,1609,1958,9,6,4,1,1,1,2 +1237,0,0.5,0,2,0,27,0.1,87,8,5,274,603,2454,14,0,8,1,1,1,2 +514,1,1.6,0,7,1,37,0.1,172,1,9,956,1723,3392,12,8,5,1,1,1,3 +1515,0,2.6,0,0,1,56,0.9,184,3,1,1438,1593,262,14,4,20,1,1,0,0 +721,0,0.5,1,6,1,6,0.4,194,4,9,1446,1988,530,8,4,8,1,0,1,0 +603,1,2.5,1,3,0,35,0.7,126,3,16,692,1057,3703,13,1,9,0,0,1,3 +1426,1,2.5,0,2,1,55,0.4,109,1,7,777,1032,2562,5,1,3,1,0,0,2 +1820,1,1.7,1,0,1,64,0.6,161,1,3,1157,1951,574,10,2,18,1,1,0,1 +1215,0,1.0,0,4,0,16,0.1,130,4,8,454,1473,2632,7,1,15,0,0,1,2 +697,0,2.7,1,5,1,20,0.4,173,2,6,478,1477,259,12,6,4,1,1,1,0 +717,1,0.5,1,4,0,10,0.6,198,1,5,217,1106,688,10,7,15,0,1,0,0 +1348,1,2.0,1,5,0,36,0.3,145,6,6,468,741,2554,19,1,12,0,1,0,2 +1164,1,2.6,1,0,0,61,0.3,88,1,6,1107,1656,3859,11,10,17,0,1,0,3 +578,1,0.5,0,9,1,62,0.3,170,5,13,626,1134,2977,15,12,5,1,1,1,2 +1971,1,0.5,1,0,0,40,0.3,186,7,19,485,922,571,8,7,17,1,1,0,0 +1794,1,0.5,1,5,1,55,0.5,86,7,7,43,627,402,14,7,14,1,0,1,0 +1558,1,2.5,0,2,1,32,0.1,114,5,3,322,1385,878,16,5,17,1,1,1,0 +1597,1,0.9,0,4,1,4,0.5,85,1,19,880,1145,2130,8,3,15,1,1,0,2 +1240,0,1.6,0,0,0,39,0.1,146,2,9,1511,1756,3260,13,1,17,0,0,1,3 +1994,1,0.8,1,2,1,7,0.6,88,8,4,667,711,454,11,8,6,1,1,0,0 +1221,0,2.3,0,7,1,35,0.4,152,7,19,765,1899,2638,19,16,14,1,1,1,2 +989,1,1.6,1,11,1,24,0.6,156,8,17,614,679,2819,16,13,5,1,0,1,2 +1180,1,1.2,0,5,1,50,1.0,144,4,20,925,1252,1464,7,3,20,1,1,1,1 +718,0,2.8,0,10,0,59,0.8,113,6,13,1185,1387,1824,11,9,3,1,1,0,1 +1670,1,1.6,1,0,0,47,0.8,139,8,15,1706,1886,876,16,0,5,1,1,0,1 +534,1,2.5,0,1,1,21,0.3,164,7,9,347,1477,2706,7,5,18,1,1,0,2 +1566,1,0.5,1,0,0,20,0.5,126,2,0,1603,1930,659,14,9,13,1,1,1,1 +1935,0,0.5,0,0,1,29,0.6,124,5,9,806,860,455,9,2,6,1,0,1,0 +504,1,2.8,1,2,0,54,0.4,163,2,10,1207,1539,2378,17,11,2,1,0,0,2 +913,0,1.7,1,1,1,41,0.3,103,1,14,431,1144,2278,15,3,18,1,1,0,1 +1317,0,1.8,1,2,0,43,0.5,113,5,3,179,613,3436,16,13,5,0,1,1,3 +917,1,0.5,0,1,1,31,0.5,88,6,2,423,909,3424,19,2,13,1,1,0,3 +712,0,2.5,1,1,0,49,0.6,99,6,3,1131,1743,401,5,0,10,1,0,1,0 +1083,0,1.0,0,6,0,52,0.9,126,2,20,925,1469,681,19,18,19,1,1,1,0 +1039,0,0.6,0,5,1,6,0.1,136,6,8,62,544,3212,15,7,7,1,0,1,2 +1747,0,0.5,0,4,0,13,0.7,185,6,12,800,873,3105,7,1,10,1,0,0,3 +1449,1,0.5,1,0,0,52,0.6,105,6,0,211,947,2036,5,1,10,0,1,0,1 +1872,1,0.5,1,14,0,49,0.2,139,7,18,81,1389,3153,16,15,5,1,1,0,3 +1796,0,1.6,1,5,0,7,0.1,101,4,6,667,798,1642,9,4,3,0,1,1,1 +1097,0,1.4,0,0,0,60,0.8,181,1,17,405,519,509,15,12,12,1,0,0,0 +1562,0,0.5,1,1,1,20,0.8,172,8,10,678,1676,3465,16,11,6,1,1,0,3 +1433,1,2.3,0,8,1,27,0.9,153,7,12,1619,1651,3900,18,16,2,1,0,1,3 +740,0,1.8,0,1,0,12,0.2,123,1,11,935,1147,1105,7,6,19,0,1,1,0 +676,0,2.2,0,1,1,39,0.2,84,1,5,864,1011,2064,13,7,6,1,0,0,1 +503,1,1.8,1,1,1,13,0.7,131,1,4,1495,1688,3117,19,6,9,1,0,1,3 +1020,0,1.5,0,13,1,7,0.7,96,3,18,870,1613,1142,13,9,8,1,0,1,1 +896,0,1.0,1,3,1,4,0.3,111,1,4,1379,1469,1060,12,10,4,1,1,1,1 +1824,1,0.8,0,4,1,19,0.9,143,2,5,1055,1738,2381,14,1,5,1,0,0,2 +1512,0,0.6,1,1,1,54,0.4,134,3,2,220,1838,3366,7,3,11,1,0,1,3 +1053,0,2.9,0,7,0,42,0.9,126,6,17,419,1261,1339,17,0,14,0,0,1,0 +1944,1,1.8,1,0,1,31,0.8,87,4,10,1111,1362,2560,7,3,8,1,0,0,3 +1174,0,0.7,1,1,1,25,0.8,91,2,8,1097,1461,285,19,7,3,1,0,1,0 +627,1,1.6,1,3,1,12,0.2,131,7,17,447,819,2476,17,1,10,1,0,0,1 +1602,0,2.7,0,4,1,46,0.6,118,1,5,273,1062,1862,16,9,2,1,0,1,1 +1733,1,1.5,1,4,1,6,0.9,170,1,15,590,997,3488,6,4,10,1,1,1,3 +586,0,1.4,1,10,1,8,0.5,142,8,14,116,598,3178,9,7,10,1,0,1,2 +1528,0,2.4,0,2,0,37,0.2,156,8,3,306,564,733,15,0,14,1,1,0,0 +875,0,0.7,0,2,0,23,0.1,110,7,7,300,1316,756,14,5,6,0,0,0,0 +1602,0,0.6,0,12,0,58,0.4,170,1,13,1259,1746,3622,17,2,17,0,1,1,3 +1426,0,1.6,0,4,1,12,0.7,174,5,16,1573,1694,1277,14,9,5,1,0,0,1 +1370,0,1.4,0,5,1,6,0.2,158,6,8,1392,1783,3703,13,10,11,1,1,0,3 +609,1,0.5,0,4,1,10,0.1,81,6,6,113,1524,1905,16,3,18,1,1,1,1 +840,0,1.2,1,5,1,15,0.3,178,6,8,526,1728,2636,12,2,6,1,1,0,2 +991,0,2.0,0,2,1,12,0.3,158,5,6,1209,1678,2014,11,9,10,1,0,0,2 +1724,1,1.8,0,0,1,9,0.8,100,2,1,655,828,3056,18,16,6,1,0,0,3 +584,1,1.8,0,0,1,19,0.3,168,3,0,1123,1622,465,12,8,4,1,1,0,0 +860,1,1.3,1,1,1,49,0.7,141,6,13,692,979,3869,16,14,20,1,1,1,3 +1541,1,2.8,1,10,1,28,0.2,165,5,15,796,1052,1108,12,1,7,1,0,1,1 +615,1,0.5,1,7,0,58,0.5,130,5,8,1021,1958,1906,14,5,5,1,0,0,1 +912,1,2.8,1,6,1,46,0.4,84,4,11,995,1310,851,8,4,4,1,1,1,0 +1278,1,1.2,0,10,1,60,0.6,172,7,14,1244,1504,3142,11,4,19,1,0,1,3 +1365,0,0.6,0,0,1,31,0.3,125,4,0,293,970,1300,14,7,13,1,0,1,0 +1702,0,1.0,0,7,0,36,0.1,177,5,9,1240,1931,1430,8,6,10,0,0,0,2 +589,1,0.5,0,1,1,59,0.7,146,8,4,759,1858,362,16,10,6,1,1,1,0 +1347,0,1.5,1,10,0,56,0.3,95,1,19,398,1528,2456,13,0,13,1,1,1,2 +1644,0,2.8,0,0,1,44,1.0,137,8,0,358,791,2360,7,4,19,1,0,0,2 +956,0,1.9,1,1,0,42,0.1,133,7,11,403,1614,3700,10,0,7,1,1,0,3 +1089,0,1.4,1,10,0,2,0.1,153,7,20,211,1409,2620,7,5,13,1,0,0,2 +871,0,0.6,0,2,0,52,0.1,178,3,3,194,1437,437,14,7,17,1,0,0,0 +664,0,1.5,0,5,1,6,0.9,164,2,19,1076,1472,3774,11,5,18,1,0,0,3 +1874,1,0.6,0,1,0,19,0.8,192,2,9,1238,1418,1218,15,10,17,0,1,0,1 +1928,0,2.6,0,5,0,5,0.8,162,5,16,229,1004,696,14,12,15,1,1,1,0 +888,0,2.6,1,2,1,33,0.4,198,2,17,327,1683,3407,12,1,20,1,0,0,3 +1077,1,1.7,1,1,0,58,0.8,86,7,13,135,1892,3902,9,3,3,1,0,0,3 +1023,1,2.3,1,5,1,30,0.2,80,8,7,5,1744,2086,10,0,19,1,1,1,1 +1426,1,0.8,0,2,1,42,0.6,84,3,10,715,1163,1356,15,9,16,1,0,1,1 +831,0,1.7,1,7,1,26,0.7,177,5,11,511,621,1704,6,5,20,1,1,1,0 +1496,1,1.3,1,0,1,6,0.5,85,3,9,549,1383,3571,16,1,11,1,1,1,3 +1433,1,2.3,0,2,1,5,0.1,129,5,11,420,784,2132,18,15,19,1,0,1,1 +1095,1,2.6,1,0,1,44,0.7,103,4,5,838,1066,3209,13,11,8,1,1,1,3 +643,1,0.7,1,3,1,23,0.8,156,1,9,314,1400,2096,13,6,2,1,0,0,1 +1142,1,1.1,0,0,1,6,0.5,198,4,0,739,1766,1273,19,0,6,1,0,0,1 +730,1,0.5,1,3,1,27,0.1,112,5,10,62,846,3623,9,4,15,1,1,0,2 +1901,1,0.5,0,5,1,41,0.6,131,2,17,3,1662,368,5,1,12,1,0,0,0 +1510,0,0.6,1,1,0,32,0.7,135,3,8,963,1520,854,8,2,10,1,0,1,1 +1924,0,2.6,0,0,1,59,0.9,136,6,0,1438,1923,3646,10,9,16,1,0,1,3 +1825,0,1.1,1,13,1,17,0.1,157,4,18,1621,1773,3130,12,4,2,1,0,1,3 +1275,1,0.5,1,3,1,5,0.2,152,1,9,19,501,3784,13,4,4,1,1,0,3 +987,1,2.3,0,9,0,17,0.8,124,7,17,887,1274,3885,11,0,14,1,1,0,3 +1538,1,2.3,0,6,1,13,0.2,121,7,7,567,986,1494,18,10,12,1,1,1,1 +1965,1,0.5,0,4,1,29,0.5,149,5,13,584,676,2973,11,1,20,1,1,1,3 +808,0,1.9,0,7,0,20,0.8,185,6,14,496,974,1471,13,4,11,0,1,0,0 +712,0,0.5,0,6,0,27,0.5,86,2,11,1245,1309,2001,11,10,12,1,1,1,1 +1507,1,0.9,1,0,1,42,0.4,123,5,0,682,888,1486,15,3,19,1,0,0,1 +912,0,0.7,0,3,0,47,0.9,182,3,6,724,794,1321,7,2,6,0,1,1,0 +769,1,1.2,0,2,0,17,0.1,95,8,4,1384,1454,1877,18,2,11,0,0,1,1 +948,0,2.3,0,14,0,22,0.1,173,5,20,257,1654,3499,11,7,19,1,1,1,3 +507,1,1.9,1,0,1,39,0.7,142,1,0,17,1084,2124,6,0,12,1,1,0,1 +1384,1,2.8,1,15,0,60,0.1,82,3,18,983,1210,1221,18,12,15,1,0,1,1 +1766,1,1.3,0,1,0,29,0.5,194,8,20,439,1306,2316,19,2,6,0,0,1,2 +1407,0,1.8,1,5,1,16,0.2,170,4,6,925,1206,1068,6,0,8,1,1,0,1 +614,0,2.9,1,3,1,24,0.2,94,4,7,409,603,1930,13,12,4,1,0,1,1 +1972,0,2.9,0,9,0,14,0.4,196,7,18,293,952,1316,8,1,8,1,1,0,1 +1039,0,0.5,1,8,0,47,0.2,130,8,9,384,1878,1742,18,12,15,1,0,0,1 +511,1,3.0,1,5,1,34,0.9,125,8,13,149,1285,3265,14,7,14,1,0,0,2 +1811,1,2.5,0,4,1,5,0.6,98,4,16,447,568,2700,13,7,8,1,1,1,2 +1159,0,1.5,0,3,0,36,0.4,104,4,8,717,1206,2115,8,7,18,0,0,0,2 +1848,0,1.3,1,7,0,12,0.1,178,2,19,195,533,3915,9,7,8,0,0,1,3 +1988,1,0.5,0,0,1,16,0.1,94,8,1,153,696,3144,16,2,14,1,0,0,3 +1469,0,0.5,0,3,1,58,0.5,150,7,8,1699,1850,1571,17,16,2,1,0,0,2 +1423,0,0.6,0,12,0,44,0.8,131,5,13,501,640,2253,10,8,9,0,0,0,1 +1974,0,0.5,1,9,0,10,0.8,145,6,12,530,1496,1433,6,1,17,0,0,0,1 +835,0,0.8,1,2,1,42,0.8,128,5,18,396,1378,2583,15,2,13,1,1,1,2 +1429,0,0.6,0,8,0,42,0.9,151,5,9,670,1552,1817,6,1,16,1,0,0,1 +947,1,0.5,0,1,1,51,0.1,144,2,15,193,887,2915,17,1,6,1,1,1,2 +1446,1,2.8,1,0,1,18,0.3,178,8,1,351,1769,3340,8,0,16,1,1,1,3 +1332,0,1.3,1,5,1,7,0.8,168,7,19,846,855,2790,19,11,10,1,1,0,2 +1498,1,1.2,1,0,1,14,0.1,191,4,1,111,1167,577,14,12,12,1,1,0,0 +1576,1,0.9,1,0,1,14,0.4,173,2,4,1213,1386,3220,17,2,6,1,1,0,3 +1398,0,1.6,1,8,1,26,0.8,150,1,12,755,1284,3488,14,3,11,1,1,0,3 +1885,0,2.4,1,12,1,14,0.6,92,4,15,1406,1517,1277,9,6,16,1,0,1,1 +798,1,0.5,1,7,0,2,0.8,148,2,15,497,627,3593,14,9,3,0,1,0,2 +1436,0,2.5,1,0,1,42,0.9,124,8,1,1826,1836,2736,12,5,19,1,1,0,3 +1998,1,1.2,0,8,0,31,0.6,196,8,19,50,1356,2311,17,9,18,1,1,0,2 +1321,1,1.3,0,0,1,63,0.4,109,8,9,817,941,1464,7,6,16,1,1,1,1 +1021,0,1.3,0,7,0,9,0.7,192,2,12,901,1793,1355,6,1,14,1,1,0,1 +1339,1,2.3,1,0,0,40,0.1,123,2,1,212,1269,2382,6,4,7,1,0,1,2 +1210,1,1.6,1,9,0,57,0.5,111,4,20,329,1039,1886,16,0,17,1,0,1,1 +1949,1,0.5,1,2,1,31,0.1,145,5,9,837,1182,832,7,3,19,1,0,0,1 +882,0,0.7,1,9,1,28,0.2,151,6,16,248,884,751,19,11,8,1,0,1,0 +1549,1,1.5,1,0,1,27,0.4,113,5,7,632,1162,436,10,8,11,1,0,0,0 +1991,0,2.2,1,1,1,42,0.7,82,1,13,366,613,722,6,5,10,1,1,0,0 +796,0,0.5,0,2,0,12,0.5,114,1,8,174,518,1075,7,3,2,0,1,0,0 +1012,0,0.5,1,4,0,39,0.1,161,4,6,882,1195,2802,8,0,10,1,1,0,2 +1318,0,1.9,1,0,1,11,0.8,188,2,15,688,1591,1780,12,10,2,1,0,0,1 +1708,0,0.8,0,8,1,14,0.9,197,4,16,263,1345,1247,19,16,16,1,0,0,1 +598,1,0.8,1,8,1,62,0.1,117,8,9,118,764,3066,11,2,19,1,1,0,2 +541,1,2.3,0,4,0,51,0.4,200,8,17,1012,1226,403,11,2,12,0,0,0,0 +818,0,0.5,1,2,1,23,0.2,192,5,17,586,1552,2518,19,12,3,1,1,0,2 +1414,0,0.5,0,0,1,15,0.8,168,2,0,294,1233,1069,18,6,14,1,0,0,0 +601,1,1.7,1,3,1,6,0.8,169,4,11,818,1827,2651,14,8,9,1,0,1,2 +561,1,2.8,1,2,1,40,0.1,99,7,6,426,865,2974,15,12,19,1,0,1,2 +1616,1,2.3,1,3,0,52,0.1,100,5,8,151,1133,657,7,3,2,1,1,0,0 +1263,1,1.4,1,1,1,32,0.4,103,2,2,409,644,3372,18,13,10,1,1,0,3 +1604,1,1.9,1,0,1,63,0.6,93,5,2,641,1156,1464,15,9,20,1,1,0,1 +539,0,2.0,1,1,0,24,0.5,86,4,2,958,967,1326,7,4,3,1,1,0,0 +1071,0,2.6,0,0,0,49,0.3,199,4,5,1328,1970,3393,6,5,7,1,0,0,3 +826,0,0.5,1,0,1,57,0.5,135,2,0,354,530,323,17,3,7,1,0,1,0 +771,0,2.9,0,2,0,62,0.7,106,1,8,1709,1781,1628,9,3,6,0,1,0,1 +1811,0,2.9,0,0,0,33,0.2,132,8,2,1099,1553,2610,8,3,13,1,1,0,3 +1842,1,2.2,1,7,0,56,0.4,179,4,10,783,1227,3721,16,11,4,0,1,1,3 +1420,0,2.8,1,1,0,50,0.1,100,8,8,194,1393,763,17,1,17,0,1,1,0 +1763,0,0.5,1,12,0,10,0.2,184,3,19,238,1893,792,17,12,13,1,0,1,0 +1163,1,1.9,0,6,0,2,0.9,133,5,20,919,1076,1568,14,0,19,1,0,0,1 +1805,1,0.5,0,0,0,29,0.2,182,4,2,758,891,1276,19,4,17,0,1,0,1 +610,1,1.6,1,9,0,52,0.4,90,4,19,1039,1273,3472,10,4,12,1,1,1,3 +1533,1,1.1,1,18,1,17,0.3,160,4,20,1054,1393,2520,8,2,11,1,0,1,2 +1924,0,0.5,0,3,1,63,0.3,111,2,10,122,686,3423,13,3,19,1,0,0,3 +1801,0,0.5,1,6,0,52,0.9,120,6,10,100,1708,258,14,8,9,1,0,0,0 +1726,1,1.9,0,1,1,42,0.6,106,5,3,1221,1804,1868,16,7,6,1,0,0,2 +794,0,2.5,1,15,0,14,0.6,197,3,19,312,1376,2171,19,8,18,0,0,1,1 +1686,1,0.5,1,4,0,28,0.8,182,5,8,599,1073,780,11,10,5,0,0,0,0 +1444,1,2.1,1,0,0,6,0.9,103,1,1,1274,1340,712,17,5,10,0,0,0,0 +1004,0,1.6,1,0,1,30,1.0,160,8,1,62,581,1012,7,4,13,1,1,1,0 +1242,1,2.4,0,8,0,28,0.2,166,4,9,315,1796,318,11,10,19,1,0,0,0 +539,0,1.5,0,6,1,26,0.2,137,6,8,1123,1709,3948,18,11,15,1,1,1,3 +717,0,1.1,1,2,1,14,0.1,99,8,6,1878,1981,629,16,15,20,1,0,0,0 +1540,0,0.7,1,0,1,29,0.1,157,7,1,318,831,1161,11,8,5,1,0,0,0 +672,0,0.5,0,7,1,35,0.1,99,8,17,574,1267,1403,16,7,6,1,0,0,0 +1325,1,0.5,0,0,1,13,1.0,133,4,8,1353,1915,3707,19,3,18,1,1,0,3 +950,0,0.5,0,6,1,55,0.1,124,8,7,86,1681,1305,6,5,4,1,0,1,0 +948,0,1.5,1,6,0,18,0.3,119,4,7,340,1728,2926,17,13,9,1,1,1,2 +1328,1,0.5,0,5,1,27,0.3,144,3,18,602,1156,2674,7,2,5,1,0,1,2 +1447,0,0.5,0,3,0,40,0.7,184,2,5,963,1062,471,8,4,20,0,0,1,0 +1973,1,0.5,1,3,0,21,0.8,95,8,7,127,507,1724,12,10,8,0,0,1,1 +1731,1,2.3,1,18,0,60,0.5,171,4,20,142,1039,1220,9,3,20,0,1,0,1 +1617,0,1.5,0,1,1,63,0.7,111,2,10,274,1079,2754,19,10,8,1,1,1,2 +1791,1,0.5,1,1,1,33,0.5,110,5,4,371,682,594,17,8,16,1,0,1,0 +851,0,2.3,1,7,1,54,1.0,101,2,9,788,1007,1005,12,2,14,1,0,1,0 +856,0,1.9,1,0,1,14,0.6,115,1,7,395,1027,2439,6,3,12,1,1,1,1 +714,1,0.5,0,1,0,30,0.3,145,4,2,643,1527,2302,12,10,10,0,1,1,1 +951,0,0.5,0,6,1,15,0.6,81,2,17,854,935,1083,16,11,16,1,1,0,0 +1303,1,2.1,0,6,1,10,0.4,109,8,15,1335,1873,2219,9,3,15,1,1,1,2 +1550,1,2.7,0,2,0,32,0.1,126,7,5,1541,1619,1571,12,3,14,0,0,0,2 +1759,1,1.4,0,10,1,15,0.4,101,4,13,382,1163,2107,18,5,16,1,1,0,2 +1448,0,0.5,1,18,0,2,0.2,100,5,19,846,1144,593,9,4,18,1,1,1,0 +1987,1,1.9,0,0,0,50,0.7,119,8,18,960,1925,857,12,4,6,1,1,0,1 +908,0,2.1,0,1,0,44,0.6,95,5,2,154,941,3518,16,12,7,1,1,1,3 +820,0,0.5,1,2,0,58,0.3,160,4,4,468,694,1284,17,7,17,0,0,1,0 +904,0,2.7,1,4,0,19,0.6,147,6,7,1094,1496,545,19,18,16,0,0,0,0 +667,0,1.3,1,4,1,6,0.1,149,6,10,272,870,3566,9,5,12,1,0,1,2 +1109,0,2.1,0,1,0,34,0.1,173,1,4,165,1103,2821,13,5,17,1,0,1,2 +1333,0,1.4,0,3,1,59,0.7,183,7,5,394,1301,3442,18,16,5,1,1,0,3 +1352,0,2.4,0,5,1,6,0.9,92,6,9,629,1299,1309,12,1,14,1,0,0,1 +1600,0,2.5,1,1,0,19,0.6,88,6,9,831,1713,1179,10,3,18,0,0,1,1 +1454,0,1.4,1,8,0,37,0.8,80,8,20,903,910,1713,16,0,19,0,0,0,1 +1489,0,2.1,1,0,0,9,0.4,169,3,1,923,1759,1663,9,3,14,1,0,1,1 +1823,0,2.8,1,11,0,10,0.6,81,8,19,362,1250,1812,5,0,19,1,1,1,2 +1581,1,1.0,0,9,0,41,0.4,172,4,19,693,850,1384,19,9,2,0,1,1,1 +1672,1,1.7,1,1,1,44,0.5,172,8,4,1250,1435,1348,11,6,7,1,1,1,1 +1283,1,0.7,1,0,1,27,0.2,80,4,6,1135,1923,3957,17,15,6,1,0,0,3 +630,0,2.0,0,9,1,14,0.5,180,8,13,66,1448,1212,12,8,12,1,0,0,0 +659,0,2.2,0,0,1,24,0.7,151,8,2,924,1877,3925,8,1,10,1,1,1,3 +1811,1,0.5,1,0,0,32,1.0,115,6,0,204,1132,348,17,11,18,1,0,1,0 +688,1,2.5,0,9,0,40,0.2,109,5,20,376,1957,1382,12,7,8,0,1,0,1 +514,1,2.9,1,5,0,18,0.7,141,2,8,1083,1492,980,13,7,16,0,0,1,0 +1933,0,2.8,1,1,0,16,0.5,154,3,9,229,1473,838,14,2,18,0,1,0,0 +915,0,2.0,0,8,1,31,0.3,91,3,20,875,1316,378,11,6,9,1,1,0,0 +1006,0,2.2,1,4,1,22,0.8,135,4,8,35,991,909,18,4,7,1,0,1,0 +1134,1,0.9,0,2,1,13,0.4,92,4,19,18,903,3632,17,8,19,1,1,0,3 +599,1,2.9,0,0,1,64,0.3,186,8,1,103,646,3396,5,3,7,1,0,0,2 +973,0,0.5,1,5,0,53,0.5,196,5,7,105,588,1861,13,10,16,0,1,0,1 +1180,1,2.5,0,0,1,27,0.1,90,6,1,168,540,348,7,5,19,1,1,1,0 +1237,1,2.5,0,7,0,13,0.8,98,4,12,18,1004,2528,11,8,16,0,0,0,2 +659,0,0.5,1,7,1,5,0.3,169,8,10,659,730,2190,16,10,16,1,1,0,1 +1142,1,1.4,1,6,0,6,0.7,190,8,8,534,855,663,12,4,5,0,1,1,0 +1002,0,2.7,1,16,1,11,0.4,185,6,18,285,512,961,10,7,19,1,0,1,0 +1392,0,2.5,0,0,1,44,0.7,113,4,2,482,1098,1280,8,1,16,1,0,1,1 +602,0,0.9,0,9,0,50,0.9,141,8,18,1571,1717,2189,7,5,16,0,1,0,2 +1249,1,0.5,0,3,1,55,0.8,140,3,8,605,1193,531,18,10,13,1,1,1,0 +531,1,0.5,1,0,1,12,0.5,121,4,3,158,1657,2331,18,12,20,1,0,1,1 +1450,0,2.1,0,1,0,31,0.6,114,5,4,1573,1639,794,11,5,9,0,1,1,1 +1342,0,2.8,0,1,0,50,0.1,173,1,8,127,620,2644,7,2,11,0,1,1,2 +832,1,0.5,0,5,1,22,0.6,198,1,8,343,1431,1666,15,4,20,1,1,1,1 +867,1,1.5,0,0,1,57,0.1,159,4,0,289,724,2157,8,6,18,1,0,0,1 +1404,0,2.1,0,16,0,44,0.9,151,1,20,1703,1880,1196,10,6,5,0,0,1,1 +840,0,0.9,1,6,0,33,0.7,150,6,7,1482,1591,2072,10,8,19,0,1,0,2 +1368,0,0.5,0,10,1,42,0.2,91,1,20,907,925,1590,12,0,14,1,0,0,1 +1927,0,0.9,1,3,0,11,0.4,190,8,12,491,1506,2916,16,11,18,0,1,1,3 +1714,0,0.5,1,7,0,31,0.4,120,2,10,287,627,3707,5,1,19,0,0,1,3 +1201,1,0.5,0,1,1,10,0.4,198,6,5,1151,1723,726,11,4,3,1,1,0,0 +1796,1,2.3,0,4,0,44,0.9,184,2,11,1024,1363,3577,17,7,4,1,1,0,3 +1147,0,0.8,1,11,0,28,0.7,158,6,13,1085,1134,2627,18,3,15,1,0,1,2 +776,1,1.7,0,0,1,20,1.0,146,4,9,991,1803,685,15,11,7,1,1,1,0 +510,0,2.6,0,0,0,33,0.1,110,6,10,1052,1897,1693,6,2,5,0,1,0,1 +1045,1,1.2,1,3,1,40,0.1,175,6,7,1078,1564,2137,11,8,12,1,0,1,2 +1497,1,0.9,1,4,1,10,0.1,153,8,20,98,977,3696,9,0,3,1,0,1,3 +1425,1,0.6,0,0,1,33,0.5,89,3,2,396,1648,3771,10,3,9,1,0,1,3 +726,0,2.2,0,0,1,40,0.8,94,4,20,323,978,1342,16,11,4,1,1,1,0 +1576,1,2.0,0,0,1,20,0.6,148,3,0,410,1551,1379,17,1,16,1,0,1,1 +714,1,2.1,1,5,1,11,0.1,197,3,6,1750,1857,1164,15,12,19,1,1,0,1 +1595,0,1.9,1,1,0,63,0.9,88,1,20,1475,1988,908,18,13,6,0,0,1,1 +541,0,1.0,0,0,1,10,0.4,127,4,0,1836,1873,1019,19,9,15,1,1,0,1 +1617,1,2.6,0,14,0,29,0.9,113,6,20,283,676,3685,13,1,18,0,0,0,3 +1154,0,1.1,1,2,1,5,0.2,98,1,13,539,1240,1470,12,0,12,1,0,0,1 +1638,0,1.0,0,6,0,2,0.2,189,1,11,440,563,2299,19,9,9,1,1,1,2 +1150,1,2.7,0,0,0,39,0.4,151,8,1,397,800,999,6,2,11,1,1,0,0 +1254,1,2.3,0,0,1,44,0.2,149,1,10,204,1021,3011,7,4,12,1,1,0,2 +1806,1,2.0,1,2,1,54,0.1,117,1,11,347,727,3142,13,0,6,1,0,1,3 +603,0,1.5,0,8,0,12,0.7,114,6,20,1003,1284,1543,7,5,19,1,1,0,1 +1834,0,2.1,0,7,1,40,0.1,99,4,11,0,1987,3692,13,0,16,1,1,0,3 +520,0,2.3,0,0,1,31,0.8,145,6,14,264,519,2753,13,7,17,1,0,1,1 +565,0,0.6,1,1,0,50,0.1,158,2,8,543,703,2156,13,6,6,1,1,1,1 +1689,1,0.5,0,11,0,9,0.5,150,5,15,467,675,2637,8,4,3,1,0,0,2 +742,1,2.3,0,0,0,21,0.7,104,8,1,875,925,331,11,8,7,1,0,0,0 +1143,0,1.2,1,1,1,22,1.0,125,3,6,1116,1724,1214,12,5,16,1,1,0,1 +761,1,0.5,0,9,0,3,0.8,196,7,15,1325,1945,2248,19,3,15,1,1,1,2 +959,1,1.3,1,0,0,36,0.4,196,5,14,1313,1331,3073,19,1,8,1,1,1,3 +772,1,1.2,1,7,1,8,0.6,134,7,8,552,1802,422,7,6,15,1,0,0,0 +1015,1,0.8,0,5,0,12,0.5,102,3,14,335,679,2293,5,1,2,0,1,0,1 +1824,1,1.9,1,9,1,2,0.7,103,1,14,50,1105,3958,12,2,19,1,1,0,3 +1130,1,0.5,1,1,1,29,0.7,130,1,14,593,1327,432,6,1,10,1,1,1,0 +1183,1,0.5,1,3,1,48,0.1,120,8,12,268,1010,1152,8,3,3,1,0,0,0 +574,1,2.0,1,0,1,26,0.5,118,6,2,382,1364,1303,8,4,2,1,0,1,0 +1472,0,3.0,0,4,1,20,0.3,169,2,6,443,892,797,6,1,11,1,1,0,0 +1868,1,0.5,0,2,1,40,0.9,179,8,17,576,884,298,8,2,17,1,1,0,0 +1375,0,2.9,0,2,0,20,0.4,147,6,7,596,679,3847,8,0,12,1,0,1,3 +881,0,1.0,0,1,0,64,0.5,160,3,6,115,636,2110,18,9,6,1,1,1,1 +1742,1,0.5,1,5,1,43,0.9,176,3,7,356,1407,1921,9,2,3,1,1,0,2 +1225,0,0.7,1,6,0,60,0.1,107,2,15,10,1567,2423,17,11,6,1,0,0,2 +1970,1,0.5,1,0,1,15,1.0,132,2,0,1399,1684,1658,15,9,20,1,1,1,2 +1186,1,0.5,1,2,0,21,0.4,160,8,4,68,584,2361,17,8,7,1,0,0,1 +1762,0,0.7,0,7,0,60,0.1,157,4,10,643,790,1380,14,5,14,1,0,0,1 +1731,1,1.4,1,4,1,4,0.5,163,6,18,809,1988,3892,5,1,4,1,1,1,3 +852,0,1.8,1,5,1,8,0.8,160,5,9,683,1349,315,7,6,20,1,0,0,0 +848,1,1.5,1,4,1,36,0.3,151,4,16,56,527,2289,10,2,19,1,1,1,1 +1575,0,2.5,1,0,1,11,0.2,185,7,20,492,818,2182,7,3,17,1,1,0,2 +1554,0,2.8,1,7,0,23,0.1,105,6,18,699,1492,2184,13,9,20,1,0,1,2 +1972,1,1.6,0,0,0,48,0.5,92,8,2,290,804,2872,7,2,11,1,0,1,3 +827,1,0.6,1,9,1,35,0.2,87,6,17,23,826,2367,5,3,15,1,0,1,1 +1063,0,1.5,0,7,0,3,0.9,155,4,10,394,849,1919,12,10,20,1,1,0,1 +1695,0,2.3,1,1,0,34,0.4,84,5,10,713,1742,3296,17,6,14,0,0,0,3 +1343,0,2.4,1,5,1,14,0.9,81,8,10,1063,1205,462,18,7,11,1,1,1,0 +834,0,0.5,0,2,1,27,0.2,123,1,16,1421,1463,1591,11,9,20,1,1,0,1 +595,0,2.6,0,0,1,20,0.4,122,2,18,623,816,1593,19,11,2,1,0,1,0 +1081,1,1.9,1,13,1,42,0.1,101,7,17,83,816,2456,7,4,7,1,0,0,1 +911,0,1.4,1,3,0,14,0.7,199,4,4,1563,1692,2933,16,3,11,0,1,0,3 +844,0,2.2,1,1,1,22,0.9,197,7,2,777,1995,3154,14,11,7,1,0,0,3 +1335,1,3.0,0,3,0,60,0.8,180,2,4,83,559,3615,5,2,9,1,0,0,3 +1883,0,1.6,0,9,0,24,0.1,87,1,16,203,915,3563,17,10,3,0,0,0,3 +1128,1,0.5,1,6,0,33,0.6,147,8,7,938,1226,1440,17,15,19,1,0,0,1 +826,1,2.4,1,14,1,57,0.6,117,2,17,1077,1183,1907,15,14,5,1,0,0,1 +1650,0,2.3,0,0,1,38,0.7,89,1,1,773,881,324,14,10,2,1,1,1,0 +1162,0,1.0,0,0,0,50,0.5,104,4,10,332,866,1404,10,3,15,1,1,1,1 +1517,0,2.5,0,2,1,8,0.8,169,4,18,570,1645,2738,18,16,12,1,0,0,2 +963,0,0.5,0,1,1,60,0.8,156,3,3,742,821,2722,12,6,16,1,0,0,2 +1837,0,1.0,1,5,1,12,0.9,103,8,6,1420,1539,2294,8,7,20,1,0,1,3 +1028,1,2.8,0,1,1,30,0.1,193,1,10,1801,1923,1424,18,4,13,1,0,1,1 +1831,1,2.2,1,4,0,55,1.0,189,8,9,1693,1790,1133,14,3,10,0,1,0,1 +571,1,2.0,1,5,1,58,0.6,101,6,11,31,1536,555,19,10,11,1,0,1,0 +1770,1,2.3,0,0,0,9,0.6,183,6,5,1098,1373,3785,13,10,14,1,0,1,3 +970,1,1.3,1,5,0,59,0.2,84,7,19,1765,1786,3675,12,0,12,0,0,0,3 +642,1,0.5,0,0,1,38,0.8,86,5,10,887,1775,435,9,2,2,1,1,0,0 +622,1,1.9,1,12,0,11,0.8,193,8,14,760,1964,3183,5,0,4,1,1,1,2 +600,1,1.8,0,9,1,6,0.8,199,2,15,486,1032,3495,17,4,7,1,1,0,2 +1412,0,0.6,0,9,0,57,0.2,86,3,10,2,660,1853,15,10,18,0,0,1,1 +733,0,0.8,0,7,0,16,0.4,138,4,12,202,1787,2648,12,0,19,1,1,0,2 +1070,1,3.0,0,9,0,19,0.8,160,7,16,90,1614,2647,14,13,20,0,1,0,2 +875,1,0.7,1,1,0,30,0.7,146,8,8,469,853,702,19,15,15,1,1,1,0 +1994,1,0.7,0,5,0,5,0.4,189,2,7,86,1546,1836,12,11,18,1,0,0,2 +823,0,1.0,1,9,1,18,0.2,182,5,16,1180,1350,3894,13,10,9,1,1,0,3 +1908,0,0.5,0,9,1,30,1.0,111,2,19,140,1046,2944,19,17,17,1,0,1,3 +790,0,0.5,1,7,1,44,0.1,89,8,8,1100,1437,3424,13,11,9,1,1,0,3 +1330,1,1.8,1,1,0,40,0.5,177,1,5,194,892,2678,9,4,14,1,1,1,2 +1660,0,0.5,0,2,1,15,0.7,100,8,8,440,569,2424,12,5,9,1,1,0,2 +1776,0,2.2,0,2,0,20,0.9,82,6,16,1563,1803,2671,15,10,12,0,1,1,3 +1611,0,0.5,1,4,1,27,0.9,199,1,10,163,1011,3078,15,2,6,1,0,1,2 +1410,1,0.5,1,0,1,15,0.3,92,3,1,192,1311,2304,18,4,18,1,1,0,2 +1772,1,1.6,0,17,1,45,0.5,159,2,18,837,1405,1146,6,1,17,1,1,0,1 +1280,1,1.3,0,0,1,39,1.0,108,7,1,356,588,2335,6,4,2,1,0,1,1 +1712,1,0.9,1,2,0,23,1.0,155,7,19,155,663,1422,5,0,15,1,1,0,1 +1562,1,0.7,0,0,0,55,0.1,140,8,1,1032,1776,2096,15,3,3,0,0,0,2 +891,0,1.9,1,1,1,18,0.1,153,6,3,40,1435,1303,17,16,4,1,1,1,0 +1957,0,1.2,1,18,1,36,0.8,151,2,19,1194,1727,1115,16,2,18,1,0,1,1 +1110,0,0.6,0,1,0,42,0.9,192,5,2,1179,1262,456,12,8,18,1,1,0,0 +875,1,1.4,1,1,1,43,0.6,104,8,3,902,969,3396,14,2,18,1,0,0,3 +1211,1,1.2,0,0,0,28,0.3,130,2,3,58,963,2750,6,1,14,0,1,0,2 +769,0,0.5,1,12,1,54,0.2,112,4,19,1385,1780,941,15,8,20,1,0,1,0 +671,0,2.9,0,7,1,2,0.1,95,6,19,614,1617,2278,13,4,2,1,0,0,2 +1872,0,0.5,0,5,1,26,0.5,172,4,10,672,1088,2273,8,4,8,1,0,1,2 +1076,0,2.3,1,0,1,14,0.7,191,5,0,1088,1718,2355,17,16,2,1,1,1,2 +1325,0,1.9,0,2,0,50,0.1,146,1,10,499,695,2328,17,10,2,1,0,0,2 +911,1,2.2,1,1,1,28,0.5,182,2,2,157,763,2638,8,4,13,1,1,1,1 +1273,1,0.7,0,1,0,23,0.6,178,6,14,485,1399,558,8,5,13,1,0,0,0 +1062,0,0.5,0,3,1,39,0.9,124,4,4,571,817,1345,16,0,11,1,0,1,0 +1317,0,1.5,0,6,0,12,0.1,154,2,9,431,542,425,7,0,11,1,1,1,0 +940,0,2.9,0,0,0,16,0.7,115,4,1,499,1090,2192,15,13,9,1,1,1,1 +729,1,2.0,0,0,0,14,0.6,135,6,2,563,1055,3397,19,15,17,1,0,1,2 +1494,0,2.4,0,6,1,3,0.9,93,7,17,944,1003,1208,14,13,17,1,1,0,1 +1546,1,1.6,1,2,1,27,0.7,124,2,6,1138,1491,267,12,10,16,1,1,0,0 +1253,0,0.7,0,0,1,34,0.9,113,4,10,161,647,3518,7,3,8,1,1,1,3 +895,0,0.5,1,6,0,16,0.3,164,8,14,126,1575,3122,7,0,4,0,0,1,2 +793,1,1.9,1,0,1,43,0.3,124,8,2,15,1196,1050,11,9,3,1,1,1,0 +1628,1,1.8,1,11,0,56,0.1,136,2,13,500,1713,3358,17,11,12,1,1,1,3 +625,0,2.7,1,2,0,42,0.8,138,8,3,203,1771,2929,10,4,17,1,0,0,2 +1110,0,1.5,0,2,1,12,0.3,153,8,5,961,1950,624,9,7,15,1,0,0,0 +999,0,1.7,0,6,0,49,0.6,132,1,17,608,1970,1598,7,0,8,0,1,0,1 +1856,0,0.5,1,0,1,24,0.1,155,5,1,277,1155,2052,17,6,10,1,1,0,2 +1715,0,2.6,1,9,1,15,0.6,120,6,20,114,1849,1249,16,2,4,1,1,0,1 +1897,1,1.9,0,2,1,54,0.3,154,2,7,630,738,412,17,11,2,1,0,0,0 +1202,1,2.4,1,0,0,19,0.1,122,2,1,404,1742,595,19,0,3,0,0,0,0 +1171,1,1.7,1,2,0,19,0.3,167,7,19,248,755,263,6,5,8,0,0,0,0 +964,0,2.0,0,0,1,22,0.7,86,8,0,225,1234,2577,17,16,5,1,1,0,2 +1973,1,2.4,1,6,0,46,0.1,193,4,10,699,851,639,6,0,3,0,0,1,0 +1992,1,0.6,1,11,0,2,0.1,141,1,14,649,895,3206,10,9,10,1,1,0,3 +546,1,2.6,1,5,0,26,1.0,159,5,15,416,1658,1550,7,2,3,0,1,0,1 +1093,0,0.5,0,1,1,31,0.6,171,2,12,1310,1420,1646,12,0,6,1,1,0,1 +1880,1,2.0,0,11,0,35,0.1,200,4,14,930,1983,1930,17,7,15,0,1,0,2 +1765,0,1.1,0,3,0,11,0.7,87,2,7,835,1175,3695,6,5,18,1,0,0,3 +1640,0,0.5,1,1,1,36,0.9,87,8,11,664,1806,3235,6,1,10,1,0,1,3 +1830,0,0.5,0,0,0,7,0.9,191,6,12,460,1583,2334,8,7,14,0,1,0,2 +826,0,0.6,0,3,0,62,0.7,187,4,19,778,1615,1998,17,4,17,0,0,0,1 +1864,0,2.2,0,0,1,7,0.1,142,1,2,225,1545,2258,10,1,10,1,0,0,2 +586,1,0.6,0,16,1,42,0.3,121,7,17,785,1118,1869,12,2,7,1,1,1,1 +1206,0,3.0,1,10,1,30,0.6,127,3,13,1581,1713,1825,7,1,4,1,0,1,2 +832,1,0.5,1,1,1,5,0.1,165,5,2,9,1944,3946,12,5,14,1,1,1,3 +848,1,2.8,0,1,0,8,0.1,103,7,3,7,1294,436,10,6,15,1,1,1,0 +1851,0,2.9,0,0,0,53,0.7,112,6,2,174,1175,2678,6,0,8,1,0,0,2 +1166,1,0.5,0,7,0,59,0.5,80,1,11,437,638,3887,8,6,7,1,0,1,3 +1776,1,2.1,1,10,0,35,0.1,172,4,16,278,623,1813,16,13,20,1,1,1,1 +1254,1,1.2,0,2,1,27,0.2,134,2,10,1288,1372,817,14,1,16,1,1,1,0 +1494,0,1.6,1,4,1,24,0.2,101,1,17,979,1190,3614,15,12,9,1,0,0,3 +984,1,2.2,1,0,1,39,0.5,119,8,18,56,1931,2013,11,7,16,1,1,0,1 +1179,1,0.8,0,1,0,5,0.9,154,5,17,913,1429,543,8,7,18,0,0,1,0 +513,0,1.9,0,8,0,27,0.4,174,8,13,282,710,3400,16,6,13,0,1,1,2 +557,0,0.5,1,3,0,17,0.2,89,6,4,322,710,2623,17,16,16,0,0,0,1 +744,0,1.7,1,0,1,33,0.5,105,4,2,1252,1963,2700,9,3,19,1,0,0,2 +1129,1,0.8,1,9,1,21,0.6,116,2,10,1128,1702,1400,11,0,13,1,1,0,1 +1148,0,2.3,1,0,1,58,0.3,170,5,20,606,688,3127,10,7,11,1,0,0,2 +1793,0,2.7,0,12,1,44,0.7,175,5,17,655,1459,2803,19,9,6,1,1,1,3 +1310,0,2.3,1,3,0,15,0.2,150,5,11,954,970,2518,18,17,5,0,1,1,2 +1604,0,1.2,0,1,0,6,0.5,191,6,15,68,1042,3564,7,2,2,1,1,0,3 +1676,0,1.6,0,2,0,37,0.2,145,1,3,134,1197,2515,14,8,4,1,0,1,2 +1001,0,2.8,1,1,0,40,0.2,117,3,7,922,1836,3654,13,9,10,1,1,1,3 +1086,0,2.7,0,0,1,24,0.1,135,8,19,1874,1976,3930,17,1,18,1,1,1,3 +1986,1,0.5,1,7,1,39,0.1,89,7,19,251,599,3476,11,8,17,1,1,0,3 +634,1,0.8,0,5,0,41,0.2,192,1,12,1362,1853,3242,18,11,4,1,0,1,3 +502,0,0.8,0,7,0,52,1.0,82,6,8,281,1159,2666,5,4,20,1,1,0,2 +1641,0,1.1,0,6,0,48,0.7,97,8,7,224,1994,1695,13,6,17,1,0,1,2 +623,0,1.4,1,0,1,15,0.2,189,3,1,778,844,3510,14,4,18,1,0,1,2 +962,1,1.1,1,3,0,17,0.1,161,8,20,546,1424,3438,14,3,20,0,0,0,3 +1057,1,2.7,0,3,1,41,0.1,97,4,10,397,891,2033,16,9,2,1,1,0,1 +1862,0,1.5,0,1,0,62,1.0,182,1,2,386,1046,1017,11,3,9,1,0,0,1 +555,1,3.0,1,5,1,38,0.8,193,2,10,214,1970,1686,8,1,8,1,0,1,1 +1000,0,2.7,0,1,1,58,1.0,135,5,12,461,833,862,7,0,20,1,0,0,0 +841,0,0.5,0,6,1,11,0.3,81,5,14,125,675,957,6,5,11,1,1,0,0 +865,0,2.9,0,5,0,16,0.1,89,4,12,335,1009,3494,13,3,14,0,0,1,3 +999,0,2.6,1,11,1,56,1.0,165,4,13,342,1641,3083,8,4,11,1,1,1,2 +1232,0,1.2,0,12,0,30,0.9,131,6,14,625,761,1656,8,4,15,1,1,1,1 +1194,0,2.3,0,6,1,34,0.2,165,2,12,494,509,313,15,1,19,1,1,0,0 +612,1,0.5,1,1,1,20,0.8,179,8,6,1145,1487,3282,16,2,18,1,1,1,3 +1362,1,2.9,0,0,0,47,0.5,186,6,4,600,1042,3629,19,17,5,0,1,1,3 +1469,0,1.7,1,11,1,44,0.5,169,2,14,484,711,1687,15,5,5,1,1,1,1 +986,1,0.8,0,13,1,28,0.8,182,4,20,199,679,1149,8,7,18,1,1,0,0 +1843,0,2.8,0,1,1,62,0.8,104,3,7,21,832,3899,5,4,6,1,0,1,3 +1561,0,0.5,1,10,1,4,0.5,134,2,13,885,1811,1783,13,12,10,1,1,0,2 +1695,1,0.5,1,2,1,47,0.5,189,5,13,308,1208,1629,8,6,11,1,1,0,1 +667,0,2.6,1,3,0,8,0.8,185,1,7,1015,1947,2528,11,8,8,0,1,0,2 +1768,1,2.0,0,0,1,2,0.8,88,7,2,1303,1814,3256,9,6,5,1,1,0,3 +1269,1,2.8,1,16,0,41,1.0,180,8,17,406,1036,2341,10,9,16,0,0,1,2 +1109,1,2.8,1,6,0,57,0.9,151,1,12,124,833,2785,15,10,16,1,0,0,2 +936,0,0.5,1,14,1,14,0.1,164,3,17,150,1677,3761,13,1,12,1,0,0,3 +1713,1,2.0,0,9,1,5,0.7,199,6,16,108,1963,1513,15,6,2,1,0,1,1 +1175,1,1.7,1,1,1,45,0.6,167,2,7,90,557,2240,10,6,5,1,1,0,1 +1940,1,1.0,1,0,1,5,0.2,194,4,1,588,1809,820,19,18,3,1,1,1,1 +855,1,0.5,0,2,1,59,0.5,159,2,3,1028,1196,1875,16,8,8,1,1,1,1 +771,1,0.5,1,0,1,33,0.1,157,3,17,776,1247,920,16,2,10,1,1,1,0 +645,0,2.5,0,10,1,63,1.0,174,4,14,278,584,3615,18,8,13,1,0,1,2 +1307,0,1.8,0,2,0,7,0.6,88,7,3,897,1103,1412,16,9,5,0,0,1,1 +1948,0,2.9,1,4,0,5,0.2,136,1,13,651,700,361,6,1,10,0,1,0,0 +1509,0,0.6,1,5,0,50,0.3,81,4,8,1010,1684,1540,12,8,3,1,1,0,1 +626,1,2.8,1,3,1,11,0.8,109,2,9,737,1759,1077,6,1,4,1,0,1,0 +1190,0,2.0,1,0,0,40,0.2,93,5,1,1399,1646,3610,13,7,9,0,0,1,3 +1727,1,2.1,1,10,0,57,0.3,158,6,18,376,1288,512,5,2,6,0,0,0,0 +1670,1,3.0,0,14,0,62,0.5,114,8,20,1117,1330,3024,6,0,20,0,0,1,3 +1150,1,0.5,1,4,1,27,1.0,134,1,17,234,1947,1610,11,0,16,1,0,0,1 +1208,0,2.9,0,5,1,16,1.0,175,1,19,691,1028,2201,17,16,12,1,0,0,1 +1812,1,1.3,1,4,1,42,1.0,162,7,15,380,1550,3338,18,13,11,1,1,1,3 +770,1,1.5,1,6,0,61,0.2,196,4,9,603,1483,3473,7,3,4,0,0,1,3 +1559,1,1.3,1,10,1,10,0.3,114,8,17,117,681,2203,7,5,15,1,1,1,1 +1902,0,0.5,0,10,0,13,0.2,155,4,11,766,877,940,14,10,15,1,1,0,1 +1751,0,2.5,0,1,0,4,0.6,146,8,9,1499,1952,1155,19,14,12,0,1,1,1 +1416,1,1.8,1,0,0,20,0.1,93,4,0,1175,1578,3872,10,2,7,0,0,1,3 +1288,0,0.5,1,3,1,61,0.2,115,6,6,988,1503,1882,16,6,10,1,0,1,2 +1003,1,2.9,0,16,1,16,0.6,119,8,19,190,1905,1798,16,7,10,1,0,0,1 +1715,1,0.5,1,1,1,18,0.1,96,6,3,674,1375,2598,17,2,3,1,0,0,3 +1967,0,0.5,0,0,1,46,0.6,199,1,7,518,1374,1567,15,2,7,1,1,0,1 +962,0,1.0,1,14,0,2,0.9,125,1,20,1618,1916,1491,16,2,14,1,0,0,1 +1487,0,1.5,0,5,1,42,0.8,120,2,7,857,989,2003,12,4,3,1,0,0,2 +1569,1,1.6,1,4,1,54,0.9,190,4,6,371,665,3905,6,2,4,1,0,0,3 +1146,0,3.0,0,5,1,57,0.4,111,5,10,73,583,291,19,9,11,1,1,1,0 +1379,1,1.5,0,6,1,9,0.8,118,8,13,98,755,1693,11,4,18,1,0,1,1 +1504,0,1.9,1,7,1,25,0.3,152,4,9,395,1853,1788,13,11,13,1,0,1,1 +1945,0,1.2,0,3,0,26,0.7,112,6,5,1064,1540,3322,18,7,20,0,0,1,3 +1630,1,2.8,1,0,1,32,0.9,80,6,1,712,1726,1751,12,10,20,1,0,1,2 +1125,1,2.7,0,10,0,23,0.4,117,1,14,774,939,1641,14,8,12,1,1,0,1 +614,1,0.7,0,4,1,51,0.1,178,7,7,1012,1040,2854,10,7,12,1,0,1,2 +854,0,1.0,0,5,1,17,0.9,101,4,9,730,1148,3115,7,0,2,1,0,0,2 +1470,1,1.7,1,6,0,45,0.1,121,1,9,777,1090,3259,10,1,14,1,0,1,3 +1826,1,0.5,1,5,1,49,0.6,172,8,6,973,1633,1612,17,9,17,1,1,0,2 +807,1,0.5,1,0,0,37,0.2,127,4,0,245,829,2319,5,4,4,0,0,0,1 +1996,1,2.8,1,0,1,7,0.1,138,5,4,937,1083,1258,17,14,16,1,0,0,1 +1083,1,2.0,0,3,0,41,0.7,158,5,5,937,1164,1543,18,3,10,0,0,1,1 +1035,0,0.5,1,14,1,49,0.3,178,2,15,574,1171,3991,12,4,19,1,0,0,3 +1521,1,1.6,0,5,1,62,0.3,143,1,9,678,1630,3555,5,2,19,1,0,0,3 +1314,1,2.8,1,13,1,5,1.0,87,4,18,82,512,3411,17,16,18,1,0,0,3 +535,0,1.9,0,5,0,24,0.2,190,8,19,398,1775,524,9,3,4,0,0,0,0 +673,1,1.9,0,13,1,35,0.4,142,6,14,1096,1570,3541,18,17,4,1,0,1,3 +1219,0,1.6,1,5,0,4,0.3,169,6,7,1419,1698,1998,9,2,4,0,0,0,2 +1606,1,0.5,1,0,1,33,0.9,200,5,0,157,770,3437,11,1,2,1,0,0,3 +1603,1,0.5,1,1,1,17,0.5,114,2,8,430,1207,1637,17,3,11,1,0,1,1 +1958,0,0.5,0,6,1,52,0.4,153,1,14,1524,1848,3064,7,6,3,1,0,0,3 +695,0,0.5,0,18,1,12,0.6,196,2,19,1649,1829,2855,16,13,7,1,1,1,2 +1441,0,0.6,1,0,1,53,0.5,106,1,12,254,954,1393,9,4,4,1,1,1,1 +1470,0,2.2,1,4,1,33,0.4,138,7,10,1790,1988,1633,18,4,4,1,0,0,2 +1890,0,1.1,0,4,1,48,0.5,127,4,5,1438,1832,2392,10,4,15,1,0,1,3 +1152,1,2.1,1,0,1,26,0.3,82,2,0,1304,1673,3284,15,2,8,1,0,1,3 +1619,1,0.9,0,3,0,20,0.9,117,6,9,813,1180,464,7,5,16,1,0,1,0 +1002,1,1.8,0,1,0,45,0.7,180,7,7,948,1007,1234,19,13,18,1,1,0,0 +742,1,0.5,0,0,1,36,0.7,139,3,1,1161,1288,292,8,0,6,1,1,1,0 +1306,1,2.1,1,2,1,33,0.4,174,3,9,867,1258,2521,6,5,16,1,0,0,2 +1424,1,2.9,1,0,0,20,0.6,180,5,0,181,1199,2658,15,0,19,1,0,0,2 +942,0,1.4,1,8,0,27,0.5,91,4,9,754,1532,587,6,3,13,0,1,1,0 +1934,1,2.7,0,8,1,2,0.1,118,4,16,242,1127,2190,18,1,9,1,0,1,2 +1290,1,1.4,1,19,1,35,0.3,110,4,20,405,742,879,16,2,8,1,0,0,0 +930,0,2.1,1,0,0,54,0.9,80,1,13,1569,1763,1743,7,1,9,0,1,0,2 +1699,1,0.5,0,16,0,21,0.1,156,4,20,105,1099,1181,16,0,18,1,1,0,1 +1849,1,0.5,0,1,0,29,0.5,181,7,12,978,1986,3330,14,4,15,1,0,1,3 +1922,0,0.5,0,15,1,42,0.6,153,8,16,725,1882,3564,12,1,17,1,0,0,3 +548,0,1.0,1,0,1,56,0.4,146,4,14,657,1657,562,17,14,8,1,1,1,0 +916,1,0.5,0,0,1,47,0.2,82,4,1,1147,1393,1659,11,10,11,1,1,0,1 +1783,1,0.5,0,8,0,14,0.6,183,8,11,910,1566,1816,12,7,7,0,0,1,2 +1083,1,1.4,1,2,1,49,0.8,156,5,9,295,503,1338,16,8,5,1,1,1,0 +1698,0,2.8,0,10,1,7,0.8,131,8,12,26,508,2992,15,3,17,1,1,0,2 +1969,0,0.8,1,5,1,7,0.2,85,8,20,332,764,315,16,7,7,1,1,0,0 +869,0,1.9,0,0,0,2,0.6,197,7,3,519,533,3249,19,0,12,0,0,1,2 +1337,1,2.7,1,0,0,5,0.7,200,4,1,161,1029,3242,10,1,20,0,1,0,2 +637,1,0.8,1,2,0,28,0.6,194,4,6,1080,1289,2725,15,10,7,0,0,0,2 +833,1,0.6,1,0,1,27,0.3,145,4,2,649,1290,586,19,8,19,1,0,1,0 +1248,0,2.4,0,6,1,9,0.4,89,3,8,71,1686,2454,9,8,13,1,1,0,2 +1174,1,0.9,0,7,0,30,1.0,147,4,20,744,1244,804,17,14,16,0,1,1,0 +1831,1,2.3,0,3,1,44,0.2,148,7,14,437,1113,2460,10,5,18,1,0,0,2 +1002,0,2.6,1,7,0,27,0.1,146,1,10,115,1111,1295,18,15,17,1,0,1,0 +1010,1,2.0,1,2,1,8,0.9,139,5,3,547,957,2625,15,11,12,1,1,0,2 +1117,1,0.5,1,2,0,21,0.1,177,2,19,495,1035,1999,15,9,2,1,0,1,1 +990,1,2.7,1,3,0,15,0.9,153,2,7,1466,1717,2698,11,8,6,1,0,0,2 +1564,0,1.4,0,5,1,26,0.1,129,6,16,117,1115,3742,13,3,13,1,1,0,3 +1065,0,2.8,1,0,1,21,0.1,158,5,3,760,1722,1193,16,13,20,1,0,1,1 +1982,0,1.1,0,12,0,24,0.1,129,7,16,764,1873,3511,16,14,15,1,1,1,3 +1607,0,1.1,1,6,1,20,1.0,192,2,8,776,1005,885,11,1,14,1,1,0,0 +1066,0,3.0,1,6,1,5,0.5,167,5,7,53,1504,1044,8,7,11,1,0,0,0 +681,0,0.5,1,12,1,17,0.9,194,5,19,371,1702,2548,6,1,5,1,0,1,2 +1163,1,2.1,1,0,1,19,0.9,132,2,1,728,818,2940,13,0,15,1,0,1,2 +1285,0,0.8,1,4,1,11,0.8,199,5,7,1791,1896,3966,17,15,2,1,1,1,3 +753,1,0.5,0,11,1,48,0.1,121,8,20,606,1316,3484,11,10,16,1,0,0,3 +1779,1,2.6,1,2,0,5,0.8,90,1,3,1225,1717,1246,12,2,20,0,1,0,1 +987,1,1.9,0,4,1,52,0.5,83,3,8,419,736,2757,17,12,15,1,1,0,2 +511,0,0.9,1,15,1,24,0.6,136,3,18,367,1264,2378,18,3,4,1,0,0,1 +1044,0,1.8,0,4,1,12,0.7,104,6,5,1230,1263,1794,18,7,19,1,1,1,1 +1855,0,0.5,0,5,0,32,0.6,187,8,18,267,1161,3933,7,0,7,1,0,1,3 +946,1,1.4,0,9,0,26,0.1,186,6,10,273,891,1637,7,3,6,1,0,1,0 +657,1,1.9,1,2,0,21,0.1,110,8,8,705,1905,783,6,1,11,1,1,0,0 +1673,1,1.6,0,2,0,42,0.5,182,5,6,214,679,3094,12,4,20,0,0,0,2 +731,1,0.5,1,0,1,28,0.5,130,8,0,424,1032,1774,12,8,10,1,0,0,1 +926,1,0.8,0,6,1,59,0.8,161,7,14,84,793,256,18,7,2,1,0,1,0 +1261,0,0.5,0,3,1,52,0.3,86,2,9,605,1429,1365,9,3,16,1,0,1,1 +618,0,1.1,0,11,1,45,0.2,188,3,20,1175,1586,2339,19,2,10,1,1,0,2 +936,1,2.3,0,5,1,57,0.2,129,2,6,657,938,2049,12,8,5,1,1,0,1 +1485,1,0.9,1,0,1,28,0.8,158,5,1,371,1023,3241,14,11,11,1,1,0,3 +1339,1,0.5,1,10,1,21,0.5,80,4,11,833,1441,867,8,3,3,1,1,0,0 +508,1,1.3,0,1,0,50,0.7,82,5,9,102,1195,2175,14,4,14,0,0,1,1 +1938,1,0.5,1,5,0,44,0.5,121,2,9,1299,1935,3497,18,10,18,0,1,0,3 +995,0,1.3,1,1,0,10,0.1,104,4,3,258,1889,609,11,3,5,1,0,1,0 +1086,1,1.7,1,0,1,43,0.2,111,6,1,56,1150,3285,11,5,17,1,1,0,2 +1322,0,2.3,1,1,1,35,0.1,157,1,3,443,708,3684,15,8,6,1,0,0,3 +1864,0,1.9,1,2,0,57,0.1,181,6,6,1279,1793,3586,19,9,8,0,0,1,3 +1944,1,0.5,0,1,1,26,0.5,92,4,9,313,712,2322,19,8,7,1,0,1,2 +581,0,0.6,0,5,1,56,0.2,180,2,10,523,565,354,10,4,13,1,1,1,0 +1020,1,0.7,1,3,1,27,0.7,128,4,4,919,1482,3204,18,1,9,1,0,1,3 +1936,0,1.3,0,2,0,44,0.1,139,3,3,570,1021,1400,17,7,3,0,0,1,1 +1329,1,1.7,0,5,1,23,0.6,198,8,6,380,682,2308,11,10,9,1,1,0,1 +808,1,0.5,1,3,0,46,0.5,105,8,15,119,529,1082,15,5,10,1,0,1,0 +994,0,1.2,1,4,0,40,0.9,164,2,17,296,839,3104,17,7,11,0,0,0,2 +1811,1,2.0,0,3,1,22,0.2,82,2,8,358,614,2847,9,2,4,1,0,1,2 +765,1,2.5,0,3,0,44,0.3,88,8,11,1364,1851,2256,6,1,19,0,1,1,2 +993,1,2.3,1,0,0,16,0.4,106,7,13,424,1639,1113,14,1,6,0,0,1,0 +1136,1,1.6,0,15,0,32,0.5,150,6,19,961,1030,3210,10,3,8,1,1,1,3 +719,1,0.5,1,0,1,23,0.4,113,6,9,431,1727,3990,14,9,12,1,1,1,3 +733,1,0.6,1,0,0,63,0.3,105,7,10,950,1739,984,17,4,9,1,0,1,0 +1946,0,2.7,1,8,0,8,0.3,123,8,19,647,1849,3117,6,0,2,1,0,0,3 +1230,1,1.6,0,0,1,48,0.7,111,7,2,1960,1963,1622,18,17,16,1,1,1,2 +1577,0,1.0,1,0,1,64,0.1,105,3,7,116,1432,2967,7,3,7,1,1,1,3 +1514,1,1.4,0,3,1,12,0.6,138,3,4,306,538,1037,15,3,15,1,0,1,0 +579,1,2.5,0,3,0,7,1.0,89,8,10,808,1517,2908,12,4,11,0,0,1,2 +574,1,3.0,0,1,1,30,0.9,126,2,3,94,1334,1167,5,3,19,1,0,0,0 +1072,1,2.2,1,6,0,19,0.4,114,8,16,380,877,2715,15,9,16,0,1,0,2 +843,0,1.3,1,1,0,16,0.9,119,7,4,593,732,1734,17,8,14,0,0,1,1 +1492,1,1.5,0,5,0,11,0.9,85,3,7,1684,1746,2259,14,12,19,0,1,1,3 +1807,1,2.9,0,0,0,16,0.2,125,3,0,1221,1415,2921,8,5,17,0,1,0,3 +909,1,0.7,1,7,0,47,0.1,146,3,9,410,1643,1244,14,10,16,0,1,0,0 +1876,0,1.3,1,9,1,64,1.0,98,3,19,600,1211,3132,17,0,2,1,1,1,3 +1436,1,2.4,1,3,1,23,0.3,106,5,4,189,1411,2488,8,4,8,1,0,0,2 +1251,0,0.5,1,10,1,29,0.7,133,6,16,308,591,1052,11,9,11,1,0,0,0 +636,0,0.5,0,8,1,28,0.9,152,2,15,148,742,2927,15,6,3,1,0,0,2 +1354,1,0.7,1,3,1,26,0.5,136,4,6,297,918,2090,5,1,13,1,1,0,1 +930,1,0.5,1,3,1,34,0.5,190,4,16,1050,1726,2131,7,2,6,1,0,1,2 +1830,1,1.0,0,7,1,47,0.3,117,1,11,1191,1882,3362,13,10,11,1,0,0,3 +1424,0,0.5,1,16,1,23,0.6,80,4,18,1399,1663,1053,14,11,16,1,1,1,1 +583,1,0.9,1,1,0,51,0.9,88,8,2,1658,1794,1799,16,9,7,0,1,0,1 +648,1,0.5,1,9,1,54,0.4,109,5,20,1153,1817,3124,5,0,13,1,0,0,3 +1203,1,0.5,1,0,1,11,0.9,109,2,12,35,510,1672,17,13,19,1,1,0,0 +1777,0,2.2,1,0,0,15,0.2,100,4,7,553,874,1552,10,8,10,1,1,0,1 +1299,1,2.8,1,0,0,64,0.5,83,6,6,46,908,1938,19,8,5,1,0,1,1 +1494,0,1.9,0,2,1,47,0.4,129,2,9,207,1177,3202,13,1,14,1,0,0,3 +527,0,0.7,1,4,0,53,0.9,128,1,11,67,1924,1302,13,7,13,0,0,0,0 +793,1,2.8,1,1,1,64,0.4,179,4,2,818,1006,2296,12,0,5,1,1,0,1 +873,1,0.5,1,6,0,8,0.6,152,7,9,1257,1411,575,15,8,7,1,0,1,0 +722,0,1.1,0,12,0,12,1.0,93,6,20,138,1371,2359,13,6,3,0,0,0,1 +1250,1,1.5,0,14,1,20,0.4,167,5,18,11,1020,3314,6,5,6,1,1,1,2 +1358,0,1.7,0,0,0,60,0.6,147,3,1,889,1635,440,14,10,13,1,0,0,0 +1035,1,1.9,1,8,0,11,1.0,173,6,10,831,1709,2002,17,8,5,1,1,0,1 +1289,0,0.8,1,3,1,16,0.9,161,6,17,713,1854,3167,14,8,20,1,1,0,3 +1445,0,2.2,1,2,0,37,0.4,82,2,6,527,1393,3480,17,16,17,1,1,1,3 +1702,1,2.3,1,12,1,47,0.6,107,2,19,1284,1643,595,10,0,19,1,0,1,1 +534,0,0.5,1,4,0,2,0.2,85,5,16,911,1220,2466,5,3,18,0,1,1,2 +628,1,1.8,0,5,0,60,0.2,87,6,6,1047,1534,1337,12,7,14,0,1,0,1 +713,0,1.4,1,4,0,53,0.8,98,1,17,123,1477,1462,19,18,13,1,0,1,0 +1207,0,0.5,0,0,0,58,0.3,112,8,0,406,681,503,7,3,5,1,1,0,0 +683,1,2.1,0,7,0,30,0.1,197,7,8,927,1135,2066,9,0,15,0,0,0,1 +594,1,2.6,0,1,0,27,0.1,196,5,2,407,528,708,17,5,17,0,1,1,0 +537,1,2.0,0,1,1,55,0.3,103,7,2,1041,1430,2029,10,5,12,1,1,1,1 +1565,1,0.5,0,0,0,38,0.1,121,5,1,781,1364,308,19,17,7,1,1,1,0 +1052,0,0.9,0,1,0,6,0.8,195,4,16,1191,1839,552,6,1,11,0,0,1,0 +713,0,1.6,0,4,1,63,0.7,89,2,8,103,1760,2082,15,10,12,1,0,0,1 +1766,1,0.5,1,1,0,16,0.6,141,5,7,125,1227,3314,9,7,17,0,0,1,3 +584,1,1.7,1,1,1,19,0.4,199,4,4,919,1343,3996,12,9,17,1,1,1,3 +1541,1,1.5,1,6,1,5,0.5,109,4,10,536,1656,1795,7,3,4,1,1,1,1 +837,0,2.4,1,1,0,51,0.2,104,5,15,638,1831,594,16,6,20,1,0,1,0 +935,1,0.5,1,3,1,58,0.1,155,5,12,639,1087,2473,10,4,9,1,0,1,2 +665,1,0.7,0,0,1,31,0.1,185,5,2,496,1804,690,5,2,15,1,0,0,0 +680,1,2.4,0,13,1,34,0.4,157,2,17,686,1418,3845,15,1,4,1,1,1,3 +877,0,1.5,1,0,1,17,0.1,195,7,0,1064,1985,2004,11,8,9,1,1,1,1 +1493,0,1.5,1,13,0,53,0.5,102,5,16,240,1414,2083,19,15,20,0,1,1,2 +1762,0,0.6,0,3,1,26,0.1,83,6,14,525,704,2661,9,7,4,1,1,0,2 +842,1,1.8,1,4,0,57,1.0,124,3,10,348,730,1903,8,4,14,0,1,0,1 +925,1,2.1,0,9,0,56,0.2,196,1,14,1262,1520,2466,8,0,5,1,0,0,2 +1692,0,2.1,0,4,1,2,0.9,106,1,17,1899,1904,3779,9,3,7,1,1,1,3 +1576,1,2.2,0,8,0,5,0.7,139,3,17,258,789,3904,5,1,7,1,1,1,3 +1065,0,1.7,1,4,1,48,0.3,162,6,8,1188,1948,265,8,0,12,1,0,0,0 +958,1,1.6,0,9,1,60,0.4,200,1,12,730,751,1417,10,4,19,1,0,1,0 +623,1,0.8,0,6,1,26,0.3,197,7,12,484,1238,1769,10,1,16,1,0,0,1 +897,0,1.4,1,1,0,17,0.4,171,1,2,547,1852,2948,12,3,5,0,0,1,2 +1110,0,1.5,0,4,1,41,0.1,152,3,16,800,1455,2572,16,5,16,1,0,1,2 +616,1,2.2,0,3,1,21,0.8,150,7,4,347,513,3267,17,9,19,1,0,0,2 +1680,1,1.2,1,6,1,37,0.7,168,4,7,679,1231,1459,15,3,2,1,1,0,1 +1715,0,1.3,0,0,1,12,0.3,94,8,6,1224,1676,1633,15,10,5,1,1,1,2 +983,0,0.6,1,0,1,45,0.1,130,4,11,948,1205,2052,5,3,6,1,0,1,1 +720,1,0.9,1,12,1,14,0.8,165,4,14,366,1234,1086,14,7,3,1,1,0,0 +1660,0,0.6,0,2,1,24,0.8,169,2,3,223,1777,2402,12,10,14,1,1,1,2 +1564,0,1.5,1,1,0,42,0.7,108,2,2,1619,1962,3376,7,0,7,0,1,0,3 +592,0,0.8,1,1,0,52,0.9,103,7,10,332,970,1507,5,0,4,0,0,1,0 +969,0,1.8,1,2,1,44,0.6,158,3,7,167,909,641,9,1,8,1,0,1,0 +1356,1,0.5,1,0,0,35,0.8,131,1,19,782,951,3451,5,2,17,1,1,1,3 +504,1,1.0,0,8,0,14,0.5,189,7,9,881,1129,1607,15,0,10,1,1,1,0 +1546,1,0.5,1,3,1,6,0.2,101,1,4,91,1317,3521,15,11,9,1,0,0,3 +689,0,2.9,1,3,1,7,0.8,147,2,6,487,722,1241,9,0,16,1,0,0,0 +1685,0,0.6,0,14,0,16,0.6,137,7,15,120,1429,881,6,3,17,0,1,1,0 +1792,1,1.0,0,3,1,62,0.3,170,7,8,1626,1913,2563,18,14,15,1,0,1,3 +1786,0,1.2,0,11,0,61,0.1,123,3,14,74,865,3033,14,11,17,0,1,0,3 +1944,0,0.6,1,9,1,59,0.2,132,7,10,634,1079,769,19,13,3,1,0,1,0 +1077,1,2.5,0,13,1,49,0.6,131,4,14,334,1079,3454,17,11,2,1,0,1,3 +648,1,1.8,0,1,1,60,0.1,195,4,4,931,1811,819,10,3,4,1,0,0,0 +1702,1,0.5,1,8,0,2,0.6,185,6,19,921,1351,435,12,9,3,0,1,1,0 +1571,0,2.9,0,1,0,30,0.9,150,7,3,805,956,586,10,9,4,0,1,1,0 +856,1,1.1,1,14,1,19,0.7,125,6,19,1057,1931,650,17,0,10,1,0,1,0 +1786,0,2.6,0,6,0,14,1.0,115,4,15,616,912,3038,18,0,14,1,0,0,3 +914,1,0.7,0,1,1,60,0.9,198,5,4,740,840,3736,14,8,5,1,0,0,3 +1615,1,2.8,0,3,0,9,0.9,117,1,13,542,678,2948,8,3,3,1,1,0,2 +649,1,1.4,0,4,1,19,0.8,190,7,12,344,1551,739,18,1,2,1,1,0,0 +1646,0,2.5,0,3,1,25,0.6,200,2,5,211,1608,686,8,6,11,1,1,0,0 +1189,1,1.9,0,5,0,7,0.5,164,2,20,79,615,841,13,10,11,0,1,0,0 +1043,0,2.7,0,3,0,29,0.2,83,8,17,887,893,1183,5,3,8,1,0,0,0 +1920,0,0.6,1,3,1,19,0.5,131,3,8,670,1152,3943,13,0,4,1,1,0,3 +1220,1,2.8,0,1,0,54,0.7,109,7,20,383,1249,1037,6,4,15,1,0,0,0 +1748,1,0.5,1,11,1,53,0.5,114,4,20,718,1109,2633,16,0,9,1,0,0,2 +907,1,2.6,1,7,0,44,0.2,160,3,12,144,896,3911,13,6,8,0,0,0,3 +1193,1,2.3,0,7,0,20,1.0,158,7,13,1442,1904,1958,7,5,2,1,0,0,2 +1766,1,0.5,1,1,1,22,0.8,122,8,4,291,1318,3297,7,5,16,1,0,0,3 +1278,1,1.0,0,7,1,24,0.8,170,3,16,1352,1775,3141,6,2,11,1,1,1,3 +1234,0,1.7,1,8,0,17,0.9,174,6,15,209,725,3351,12,9,19,0,0,1,2 +1961,1,1.5,0,10,0,55,0.5,100,7,20,861,1888,2355,14,7,6,1,1,1,3 +1745,0,2.9,0,0,1,3,0.9,105,3,0,426,1629,1308,5,0,2,1,1,0,1 +1442,0,0.6,1,1,0,27,0.4,127,5,8,266,642,991,14,8,7,1,0,0,0 +1083,1,2.9,1,1,1,39,1.0,173,8,2,523,542,3248,8,6,6,1,0,1,2 +868,1,0.9,0,5,0,5,0.4,137,4,7,40,1311,1519,13,0,2,0,0,1,0 +864,0,1.6,1,0,1,53,0.3,88,6,1,262,1436,493,18,9,10,1,1,0,0 +1142,1,1.2,0,0,0,2,0.6,114,6,0,623,769,1747,7,0,14,0,1,0,1 +608,1,0.5,1,0,0,64,0.9,94,4,0,4,1351,2517,16,8,7,1,1,1,1 +983,0,1.8,0,0,1,53,0.9,187,1,4,1001,1176,1389,17,8,8,1,1,1,1 +1720,0,1.6,0,18,1,2,0.8,188,5,20,334,896,2522,10,5,2,1,0,1,2 +1802,1,1.2,1,8,0,27,0.5,116,5,16,453,963,1885,10,9,7,1,1,0,2 +591,0,2.1,1,18,1,16,0.5,196,7,20,952,1726,704,14,5,4,1,1,1,0 +1205,1,2.7,0,5,0,10,0.1,163,6,10,321,1870,953,18,11,20,0,1,1,0 +1369,1,1.7,1,3,0,28,0.6,108,1,18,1451,1469,3206,16,15,4,0,0,0,3 +713,0,0.9,1,0,0,42,0.1,94,1,14,1048,1123,928,12,10,9,0,0,1,0 +1082,0,2.3,1,11,0,2,1.0,101,4,20,398,724,2177,12,2,17,0,1,0,1 +1719,1,2.1,1,0,0,52,0.1,187,3,1,417,520,2610,10,1,11,1,1,1,2 +1544,0,2.4,0,18,1,12,0.1,186,7,20,470,844,489,9,4,2,1,0,1,0 +1090,1,2.3,0,1,1,8,0.6,128,8,8,1217,1670,3839,17,3,11,1,0,1,3 +1991,0,2.8,0,3,1,15,0.1,181,1,13,298,1037,1861,8,5,17,1,1,1,1 +1367,0,2.9,0,4,0,56,0.8,176,2,6,36,642,299,6,2,10,0,1,0,0 +1179,1,0.5,0,7,1,32,0.3,182,2,12,85,1451,340,16,5,16,1,0,0,0 +721,1,2.7,1,1,1,15,0.2,102,5,18,655,1255,3606,10,0,5,1,1,1,3 +1549,1,1.8,1,0,0,62,0.7,91,4,4,167,990,799,7,3,9,1,0,1,0 +1349,1,2.1,1,3,0,46,0.9,134,6,12,212,623,2367,11,7,10,1,0,1,1 +1799,0,1.0,0,1,1,30,0.6,123,3,9,617,1386,445,10,8,10,1,1,0,0 +1075,0,0.5,1,2,0,11,0.2,122,1,16,271,1769,3927,8,3,7,1,0,0,3 +684,1,0.9,1,3,1,63,1.0,157,5,9,159,1738,3756,17,5,12,1,1,1,3 +1837,0,0.5,0,9,0,36,0.9,162,4,20,786,872,770,14,1,15,0,0,1,0 +1619,1,1.9,0,2,1,21,0.4,138,1,9,46,562,1641,7,2,13,1,0,0,1 +965,1,1.4,0,1,0,13,0.9,197,8,2,645,1275,2343,17,12,15,1,0,0,2 +730,0,1.5,0,9,0,9,0.7,122,4,15,1371,1677,2787,10,8,7,1,0,1,2 +1361,1,1.4,0,1,0,47,1.0,169,5,2,881,1382,2495,8,7,16,0,0,1,2 +1494,0,1.6,0,3,1,45,0.8,158,5,4,449,790,3208,11,9,4,1,0,0,3 +1027,1,0.8,0,7,0,18,1.0,146,7,11,338,534,1234,7,4,14,1,0,1,0 +1807,0,0.8,1,0,1,38,0.2,97,8,0,1332,1814,1069,7,6,7,1,0,0,1 +709,0,2.4,1,1,0,11,0.1,130,5,11,119,1531,3568,16,14,3,0,0,1,3 +689,0,1.4,0,2,0,45,0.5,103,5,11,256,823,3585,10,1,10,1,0,0,3 +955,1,0.5,0,2,0,2,0.6,155,4,10,428,1254,1974,14,1,18,1,1,0,1 +1872,1,1.9,0,5,0,35,0.6,111,3,14,1546,1879,2419,15,5,19,0,0,0,3 +1259,0,1.2,1,0,0,13,0.5,97,2,0,1210,1989,340,17,13,4,1,0,1,0 +695,0,1.2,0,1,1,41,0.4,169,8,8,789,1211,2282,5,2,17,1,1,0,1 +1969,0,1.2,1,9,0,63,0.2,132,4,11,390,756,298,10,1,10,1,1,0,0 +759,0,2.5,0,3,1,39,0.3,162,2,8,110,1317,968,6,2,2,1,0,0,0 +936,0,1.0,0,1,0,18,0.2,153,3,18,1330,1686,2391,12,6,3,1,1,1,2 +1176,1,2.1,0,2,1,62,0.5,168,2,10,674,1455,1534,6,2,17,1,0,0,1 +1802,0,2.7,1,0,1,10,0.6,101,7,9,253,590,696,14,7,3,1,1,0,0 +772,0,1.0,1,0,1,23,0.6,97,7,11,317,1805,2782,7,0,17,1,0,0,2 +1318,1,2.4,0,1,1,45,0.1,136,2,7,183,661,755,18,3,9,1,0,1,0 +591,1,0.5,1,1,1,16,0.9,90,6,17,892,1603,3746,5,0,5,1,1,0,3 +569,1,2.5,1,0,0,41,0.3,124,1,1,388,605,2651,17,7,4,0,0,0,1 +764,0,1.0,1,9,1,45,0.5,124,8,11,52,539,1341,19,1,12,1,0,0,0 +1056,1,2.1,1,8,1,37,0.7,101,3,11,914,979,2651,15,5,3,1,1,1,2 +1982,1,1.6,0,2,1,12,0.2,80,5,20,287,593,1824,13,3,14,1,1,1,1 +1830,1,0.5,0,5,0,14,0.8,160,6,6,773,1353,1905,16,3,19,1,1,1,2 +1122,0,0.5,0,0,1,40,0.3,156,7,14,675,1163,1456,9,3,20,1,1,0,1 +1023,1,0.7,0,2,1,63,0.7,153,7,8,367,1985,3155,11,10,7,1,1,1,3 +1283,1,2.4,1,8,1,33,1.0,93,3,15,510,980,773,17,7,2,1,1,0,0 +1602,0,1.6,1,0,1,35,0.1,99,7,7,1325,1800,1829,18,17,13,1,0,0,2 +732,1,1.3,0,5,1,32,0.4,163,8,7,1661,1836,3883,12,2,5,1,0,1,3 +1854,0,0.9,1,0,1,33,0.4,195,1,0,665,718,1675,14,12,9,1,0,1,1 +718,1,1.6,1,1,1,30,0.4,93,3,12,662,997,1601,10,9,12,1,1,1,1 +897,1,2.0,0,3,1,2,0.6,154,8,10,0,994,1958,7,5,7,1,1,0,1 +1405,0,1.7,0,0,0,8,0.3,107,4,7,284,1036,2376,19,6,11,0,1,0,2 +798,0,0.6,1,6,1,21,0.5,110,2,12,661,1951,1647,12,2,3,1,0,0,1 +1035,1,2.7,0,1,0,40,0.2,157,5,15,757,1912,3548,14,4,5,0,1,1,3 +1396,1,0.6,0,0,0,37,0.7,134,4,15,560,1177,2694,18,3,19,0,0,1,2 +1749,1,0.5,1,7,1,49,0.8,178,1,8,470,775,2195,5,4,4,1,0,1,2 +1588,1,2.5,0,12,1,4,0.3,148,5,20,146,822,2506,5,3,11,1,0,0,2 +1600,0,0.5,0,1,1,16,0.3,94,4,16,1315,1710,2073,9,5,4,1,1,0,2 +1522,0,2.2,0,4,0,21,0.7,162,6,11,533,1696,3767,15,9,16,0,0,1,3 +1279,1,2.5,0,5,1,7,0.5,105,6,6,560,1633,1150,7,2,7,1,0,0,1 +719,0,2.9,0,7,0,6,0.7,102,6,8,405,1141,841,9,1,2,1,0,0,0 +544,1,0.5,1,2,1,7,0.2,129,5,15,227,610,1675,13,4,17,1,1,0,0 +1007,1,2.9,1,5,1,21,0.8,185,8,12,479,831,1301,8,6,12,1,1,0,0 +590,1,1.2,1,0,0,32,0.4,141,6,1,227,509,1817,10,0,6,0,1,0,0 +1788,0,0.5,0,0,1,6,0.2,141,6,16,149,1022,2321,7,5,20,1,1,0,2 +748,0,1.4,0,0,0,25,1.0,110,7,14,88,709,1974,17,5,13,0,1,1,1 +757,1,0.9,1,4,0,64,0.5,157,7,5,114,819,3433,6,5,10,1,1,0,2 +1561,1,1.6,1,1,1,27,0.8,174,3,10,662,874,1205,12,7,3,1,1,0,1 +1327,0,2.8,0,10,0,23,0.5,89,7,16,441,1721,872,7,5,4,1,1,1,0 +797,1,1.5,1,4,0,18,0.6,81,8,20,888,1466,2052,9,3,14,1,1,1,1 +727,1,2.5,1,0,1,64,0.2,193,1,9,664,711,3654,9,1,16,1,1,0,3 +686,1,2.7,1,0,0,36,0.1,194,4,1,64,745,1503,10,0,13,0,0,0,0 +1515,1,2.1,1,4,1,24,0.9,176,5,6,747,1247,3104,6,5,20,1,0,0,3 +555,1,0.5,1,2,0,17,0.2,163,5,12,956,1010,343,19,14,3,0,1,1,0 +1589,0,0.6,0,0,0,5,0.8,112,5,2,776,1397,3430,7,5,19,1,1,1,3 +1976,1,2.6,1,6,0,45,1.0,136,4,19,652,1933,2470,11,1,3,0,0,0,3 +1884,0,1.0,1,3,0,24,0.5,149,6,4,1168,1179,1396,15,8,9,1,1,1,1 +1063,0,2.0,0,0,0,27,0.2,86,6,7,201,582,2668,12,5,19,0,0,0,2 +672,1,0.6,1,13,0,61,0.1,194,5,20,724,1127,1457,14,10,20,1,0,1,0 +635,1,0.5,0,9,0,16,1.0,110,7,17,599,1299,2452,19,17,8,1,0,0,2 +1906,1,1.9,1,3,0,55,0.2,113,3,4,3,629,1871,13,5,4,1,0,1,1 +1753,0,0.7,0,4,0,40,0.6,191,4,11,1652,1983,1112,8,2,15,1,1,1,1 +659,0,1.4,1,2,1,3,0.1,85,8,6,190,657,967,10,1,14,1,0,1,0 +1583,0,1.2,1,0,0,14,0.2,148,2,4,1171,1673,2498,13,6,8,0,0,1,2 +1783,0,2.9,1,2,0,42,0.7,104,6,8,1081,1979,387,14,5,3,0,1,0,1 +1667,0,1.0,1,0,1,21,0.9,138,2,0,1211,1396,635,17,7,15,1,0,0,0 +640,0,1.3,1,5,1,6,0.6,143,8,20,976,1353,2711,15,7,8,1,1,0,2 +1913,1,1.8,0,0,0,29,0.6,111,5,4,675,742,2023,17,13,8,1,1,0,2 +538,0,1.1,1,0,1,25,0.3,163,7,7,455,537,2215,9,3,17,1,1,1,1 +1191,0,0.8,0,6,1,46,0.8,89,6,9,42,807,824,19,18,7,1,0,0,0 +816,0,3.0,1,2,0,9,0.1,117,1,3,1196,1651,3851,10,3,14,1,0,1,3 +915,1,0.5,1,9,1,33,0.3,199,2,16,503,986,2156,7,3,13,1,1,0,1 +1157,1,0.8,0,7,0,27,0.1,88,8,8,1694,1798,2885,8,4,2,1,0,1,3 +1201,1,0.5,0,2,0,10,1.0,99,7,7,306,558,495,15,6,14,1,1,1,0 +1379,0,1.1,1,1,1,18,0.2,129,2,16,838,885,2358,10,5,15,1,1,0,2 +1483,1,2.2,0,3,1,53,0.7,169,5,11,291,651,1744,6,3,10,1,0,0,1 +1614,0,1.2,0,1,1,9,0.1,161,3,2,173,1219,1832,15,8,11,1,0,0,1 +930,1,1.0,1,4,1,4,0.9,144,8,10,1017,1289,2016,13,10,16,1,1,1,1 +1454,0,2.6,0,8,0,6,0.4,199,3,20,698,1018,1300,10,0,2,0,0,1,1 +1784,0,1.6,0,4,0,41,0.4,164,6,20,610,1437,2313,14,1,11,0,1,0,2 +1262,0,1.8,1,12,0,34,0.1,149,5,16,223,737,3248,13,3,4,0,1,1,2 +797,0,2.2,1,0,0,37,0.9,144,7,2,206,1167,2216,9,5,6,1,0,0,1 +1829,1,2.1,0,8,0,59,0.1,91,5,15,1457,1919,3142,16,6,5,1,1,1,3 +1139,1,0.9,1,6,1,58,0.5,161,2,11,742,999,1850,9,4,8,1,0,0,1 +618,1,1.0,0,9,1,13,0.1,80,4,15,591,724,1424,15,12,7,1,1,0,0 +1547,1,2.9,0,2,0,57,0.4,114,1,3,347,957,1620,9,2,19,0,1,1,1 +586,0,2.8,0,2,0,15,0.2,83,3,11,241,854,2592,12,8,3,0,0,0,1 +1617,1,2.4,0,8,1,36,0.8,85,1,9,743,1426,296,5,3,7,1,0,0,0 +1882,0,2.0,0,11,1,44,0.8,113,8,19,4,743,3579,19,8,20,1,1,0,3 +674,1,2.9,1,1,0,21,0.2,198,3,4,576,1809,1180,6,3,4,1,1,1,0 +1467,1,0.5,0,0,0,18,0.6,122,5,0,888,1099,3962,15,11,5,1,1,1,3 +858,0,2.2,0,1,0,50,0.1,84,1,2,528,1416,3978,17,16,3,1,1,0,3 +794,1,0.5,1,0,1,2,0.8,106,6,14,1222,1890,668,13,4,19,1,1,0,0 +1965,1,2.6,1,0,0,39,0.2,187,4,3,915,1965,2032,11,10,16,1,1,1,2 +1911,0,0.9,1,1,1,36,0.7,108,8,3,868,1632,3057,9,1,5,1,1,0,3 +1512,0,0.9,0,4,1,46,0.1,145,5,5,336,670,869,18,10,19,1,1,1,0 +510,1,2.0,1,5,1,45,0.9,168,6,16,483,754,3919,19,4,2,1,1,1,3