From d88d9b56a08056ca8e8cbf72196ab22f3ab4ebc8 Mon Sep 17 00:00:00 2001 From: Anna Meyer <annapmeyer95@gmail.com> Date: Wed, 19 Jul 2023 12:09:35 -0500 Subject: [PATCH] lec 14 notes --- .../13_Copying/lec-13-worksheet-solutions.pdf | Bin 0 -> 189225 bytes .../13_Recursion/lec_13_recursion_notes.ipynb | 865 ++++++++++ .../lec_14_comprehensions_notes.ipynb | 1342 ++++++++++++++++ .../lec_14_function_references_notes.ipynb | 1420 +++++++++++++++++ 4 files changed, 3627 insertions(+) create mode 100644 sum23/lecture_materials/13_Copying/lec-13-worksheet-solutions.pdf create mode 100644 sum23/lecture_materials/13_Recursion/lec_13_recursion_notes.ipynb create mode 100644 sum23/lecture_materials/14_Comprehensions/lec_14_comprehensions_notes.ipynb create mode 100644 sum23/lecture_materials/14_Func_Refs/lec_14_function_references_notes.ipynb diff --git a/sum23/lecture_materials/13_Copying/lec-13-worksheet-solutions.pdf b/sum23/lecture_materials/13_Copying/lec-13-worksheet-solutions.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2cd79bf69b38e9871d7e64fa6a069d979f78e283 GIT binary patch literal 189225 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%0Aj(8 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%0AlpSby2m-bH&a{fns~vNUZ|{PokZ} z@Cy<Lif~<2#Q_NhaJ;AreBTV&Fz6r^>!K6)peZOM3xr9e0+?9K{1X*NQR5EuV*Uzx zyLrp2X?f^6g${bz`2}&G)=gXXK6(z@XKgHM)$rQx@o4{7XY3#Wd*bRDK22I3{l<O! zbFsP8@6FibNol*Cd!1!Hzpt>3oz~iW2h4#ML;Fm5V9?%b+YZoYwHHfp>wpwQ2n5?I zAQON@Fkxy0jRMj^VB-ovGCxscTMP&Ss;*5TnjxNjl~V!4M>?kg#_<S!iD(U1ULuu1 z{TWJ#zyqv7WNe@u{AWA=ypH-pJ%Ap7g0g@#L=boc4*_AoDDaDY1#*k@4@beFk{Haz zp3#pH72$?W=o0#f4%!P<kh+2%&@U<nUw|eBT65Y;0!;;YhiCU4F~*BZT$`MzWE4B! zfoJzrfFTm8EyTd7N=wIP)WG^g={9)OW@@3iybTqY8;sku%DD!7v8;3S`abQWD(9N% zwW_uWuI$rPs{F+k{%KX(eS1eXHF^ykfO1)?pnuLCu`;c_RqTl>_BC(~%qr<u0Sk$1 zW5kI&7^aX#KgX5@g2{Rc%6cXR9ZQALVW0v4pj*)=bHF}e0uc!qmGd<ijfT@0R%EG< z5bnXb*vp15VSF>HFre*{F9Hy6I&(M?9!^v^b~vLyjJplgUSMtLEZXofaCQo3;J|<| zeuOV5jlmKfFu6^JXnxcIssWY)Sq^^?tVxw~9T8LVAO+xGpt{gz2S^F3>zs5=Y;Ohf zI)KTn&=7=*Z4iB4?X7mK^-S^yOM)=Fii`-omf9Nt=zucLNdZXKz<vdaq3USh(?BL@ z9XK#xM%$Lv;E$6RgRa=lz#8xiMh>wd>bAkTg$M&|pguxiz+@4+1*)V@uqUTAFa=O6 z#5M=c=bvIvsyY^XqTU!tdjX@r0({ki3fNmiXM@5;oB?_So_SIWTdqx21GSw6K^q(k z6rH-Wx0=SDJ_vl&8<bOR+YU6CDbsdsxEReZAXd$&Oa$=!5yP!tjiOS2UKd%7z6Zj9 zln4JbXw+yTunc@FvaKJZugxI%*kc64fhZ8oC=e~cLpwkQQo^_g()I|6CZcf#t>#>c z12}IDplE?h0eI?*RE$t5_Q)@w7e`<Nf(qz@Gueno>!YvsmLN()pCHSqFAmk$CMsNu zsVjhH(8#DqBm#RYTx*4jBaou#0G0;y!_%nsw44gttG2~9<}F9pKuVArH=jZhzxoO( z!-%N$W*~61zZgCjYLGwzYxmyEom8s^h&pVjEo;-NwzWbj&MJ<zpPS24$EZn$#Ayvi z17v1n3)Pa~CMEzDt~GinD^x4g;9OYPd(1!j7%>Q#iv<saQf#j}&;c;dmO#+w>YCvB zLP_Tq0)P%MW9A7nebIq42f?!45!I%rFhFe(XHb4%04;E$2EAEB6hNa(VcdgJ^csRU zWZMpn7290I93JANwrw#!#Wu6n`OcjvpuV92TVCGA2AB$SSSsi&92Hz_j5Yw#MM(Cv zE>=fR;qW9?7Fg#I=*wszeiBhs)e$^>;@%2JFtX2pSkcHHsUj_J4l)BG3+M-%zz_Pb zk^zk}Fi#9|J~-j<j6*8K<v=@B2z3OE4>asYmKdC1j*nRJ44$#UjT2&nPn!utT^HdP z^mXV_p5uD}e?z0}k02b-0G*Av4U->0A*ZpAAJ=uEbOk-7AHD`J16&ON2Km~+$Q&;k z6cpePv_0|<qA_d&Ky)^69yk(j8-z1~I|W$l0bpk<9oZ4`<_IZZYc9eopn>!9^Lpwu zGN8Z|K(Ob)QQ(ro<;k>rY9Jh<@{{tTm^lHdu7&~tk%MCj9mEzXgTWw?SD2aa4Meb_ zK}}SiYZqz<2%z>p1(4C|Gxv|mPu0+>YFukCwg}urCBS<*2N;Tw1(rw>5J&I_z*yEs z*D;v{O|lntu7adx5+L|g?TQ-2#)wFcpnN=aA8F@xa0F&FwjCotHixTr3ja|H`EQ83 zIS-&K0>*u)9H+)JtiW@i(dat*F9Oz-#s;H{(G760zE5S_eyu|Z43^W#yTf=2h?GQ# z#ymF60AfC4yC>Ldgk|L3fu@VTCbm5Wcrv5HNCBZnf(GbBozp?SXq6y?zyg!<GcfC8 zPu0;%u_}mSZ08kFT2uECo+njcDjJ;%S+{Gcg%Szynz#;Hi4CXuY8V}$xkuN<?jN@; zz8Ebq#t*6(0a1Z)h!_xge)3@QsLe3OGoZ3<M2e~M)LKa6%|A9#<8Th-BNbe;V$Yw~ zEO95M_TE!^bw=P!ka*S1eHdsoF-@%6S*^yl1(a@-c}prWXa@BBxfC<d<DN;^M71p) zJA_!pVAN--O6%ZR^yA5?TKfve1jk}<LYu*`%FooGvP6&xn1>+C@@lt0t_rBlq@ig| z##M9hAsd_ldFCr0Ux~vU4G>f-YYsPH2?5PN0`FZ0orr{|Shx?(d)QF;1&mA9yf<|W zlrBhjKMhGKs1W3Wzb$sCH3!!mH2ddA_<^@n0me#@bMqvDNeytNC&NI)g6c!|Q3N?! z$hSgj1ms}?TBFt2vf<Ma_@bFAD*}21Ny9U9<bR>L4mJnCcns(VmI)aa#L|Fp=nPSG z6m&FDC&jiM4aT_{*hpj@)GHVOdM2XOQ5Z+<X`o~?bxbG)qzthGpco$Cg@HQ5-xSx} zv8j7VkHGbFQPe8)s)*jS8&=Nm`4tc#mqBzLR@Y}h+?{!B*{3yJiz5mNnYAJv1lvq@ z#QOmlRZ;->5pk7_X0Xvp&ML@9e+6cxLB&jTY&7W}2x8C~@YT-c!d2>a)NB?mmcaQ( z^a=5fjEeB_2uANhJp+k`WF0d4d-(9dlRhDSQT}8KJh3Bw{yA~GppLelfsT$2JcZxC zy!Q$wh7<Mmbqug?^b8F-Md0y4t6*L7(NN;)f8QNy9P8G22LPk(CjbCFBGk*?C(7j@ z{ip@B;o;|F?nXT5c*---$14iHN6n(%>;O3Uw>^SGe>ULoRhZ8~I@BY=YlKfo6j>J) zCmyu(i42X7@bZZyqwe5=jgNPLhk57)7X-ACu^ySCs|S72LPMgUS|k~v1=S0U@`&;w z>lx|%r9)%*ZX0D-huZ)W586k2Mj;3=(1{1n26zKH5r&8dEqwy~{G-SSOT>fb0a1~3 zp9orLa9C&v1|{m585&_9=HcaY@TkxE056~85guO=4_X8;qkJOB2Wd1b2L}s}3rBst zLcL*loWC&0;7BrH25LtKheTqXkpb#2BeAXkNjp?MWN4tP{}-x46ck&1`yWT;{xb!& z8VGneJvp1mgU1oQScE<Q-!}i(<-&gj@W*-I3;(~5+v;$l<9{sU{l8me_)o@z|K(!f znUej!{{PJy?7u?le`Oe)%GX@^zYM^x3$d4Po&0|YFozO$jU<`=%c1|f)n^zvU$GDF z=NLFuAAM_AF%#AoG0Ge+D@cT;hyQQ^M^5wPqk1kb#iIk-1*NeBe&yCKSW(D!omKze z%lrS8Wctf0{r_$b`LFF-H5S%|=5jj!``7=O1vc&vExf4y|4f}f*{Ri9M9>;1&RSyy z2=NLPxcA$@3Y>3^d}rK*vg!DMC0^RyoqNOqpKO)fL?#=yj>G;6Rl|Z^d<?TNW@zdI zQwtUu*JN!*Ut;o0;=7!3-F*#`V)+Ukh!!g)wgW7FNlQWfXd}X68P4g>Q+h}lA2SZe zzL~&WbTtqzN`=-O#cjIGidpXBdJpuZ<9M7Nh~S!zapf=8NVy#{&~w<8ypil45+Y(a z@;Fw&z*5RhNbtZ5TuGF!5K)qc^nE|6?^ubGkuCA=Gqe$euPZJxT!+ppICp?=k~{fW ztg{h`U$75t3ZZcEM26STs!B`hNN3>tj_DjRDiM{Q#%WG)l{gqk$8qs_6le9AKJfP@ z@`&M`{?6qAcQB6}kR0qWeppXdmGCy?7U20z-e1*HaAZ+(<Y%0CV7<Ghgb{(H&Vzqx z+Uck>;2_Q0<Izy!EA&805ccc^#(L2A8EFgDaKC)z-d(9Ppe;E_Gj4P=Vh{zNz;>ay zq*(W*Lmte1MoxUwX6Mc5?xF;W6aJ}3J=&b5El`^*xK5Hx7JN+OH~pH-5-B4|@4?4~ zJqdjZ-wOFk7>(}tN*0{r!N+bSKsrKgW+kt993FPYj>Ucoi;UuV!zDP`we@r()+~u& zxsM`%=k7{?t@VLnmuKZ4av42Me&+tE)8c4c0=cVRRr{VmQ75h`h<C9|@YnrOyheQR zPEsskV^U_ed7l$W`T=|?+!QbU_A-kQ;>_O^ug60Q;TpLX7gZ7oJLQWiFDJ_^cNtYi zM%3G|2m|E(R|rhHkiP`Q04E;8{!k+Sb;^=y^8d}&o4`Z4wt>S8BW4j9yULVh#xhZi zrF6!cy|IQFoiUcskiAao9Ag<-8%t7yGxpsvc1p)KLP$bG6eS_8r_?!})BD|z&inrV z-|zc=j~`>6`@Zh|+OO+=f&E-_P_@r#%A~pL_@asc#2NJLS~8!wyPL;!8WT41inAZw zN?04<a{8kERfU6C@^l#IX3Bg-)w9*3f`o=^yPhPl21uO3oww}$bP<l?E&-|PS!o<f zTZ8$T9PQWaR3tSIBB^S2H~TqdCcgG^i`2VCmSrb6RU;T;`~6ahz-=)U7Uty^z`dn` zS#%`KzynkXL%WE261^fEU9ino;vDfU0^bTmI8i=ephbnypGvfqk4+_lSf()8R-aoS z`xXolE+!uYYk{g0HK1<lBp``QqL|b?jWC?3%uE(2*w`h{>s5`3Y>}b^!Lb_G7*6Eu zNfrp)qJ`rOr1KJAt6I{S+b9zrPN+3V#@`Q}X65aiGN4>2!E0_Pkf)iWnaK;yRYPDS zzRSSHn97MW>ZEC)K%N9oFS9^~=I4|Q2Q3VNxDNwPzNoi8jWx#f6sKal^*9*mT#!uy z+uV0cPf7sNSc>IEMr7C!q~;wDJjfR{BFoTA6;(8b5|uS2n)O&?pp6x|aVoZjZQY6! z50@hFEn1Y41%;NO0{}`3SEx1Oz<j<a5h>mgh(-4&3%YD9U5Hvz3tWz}IHN{LXHgnA zW<^AZ=R>d4TG*^LKcWt{qm-xtniTTx0Iw~SVafJ~xvXa}Mg_LJkRvZ1#^qqd8C60$ zkEM0et%z{&+d}z@OdwtPhUh%Wy0O;}Gy!bn-pxDjMa2uOEtE4QTAG<Z^+G^+Fb35! z5Nwn_mX$k}7tFHMl3Ft6=t?c&G{zE@RW$em%5bnQqK6f2S^P3Zge$fulIVl&A#=3F z!$=&wlt4$wy9rxZd4MA)9)!1LeM)O~LC+;Jnk_>`=WQ)%T;ZTD79Dib6KkL!jG<zC zEf^Tf*irzbU3A`y)lY&=MD781%a2?VG+59^bU*<(+(T+9*eOvwOrPj!Iot>4R>dk| zL<`F!Thpp=poGjT_{@-zw+t;&`2y&z00UgruCOsFqC~v3Dn2dQXv%sQ*9alCL~}|( zggs-lS<=YDLD>gLZZcAW3af+)E$p2{d5j(bf$ix_9teXe(>QR<4w!TrW@w0r6L-Y$ zt&FD3VN!}DCVJFL9Qh{TcvvFnJB=h9bn^-g!-o@bQhloLfW3A-O2xl)#RWYmMY0m3 zsj^lRMPY_YY?eS{AoG$yO31saOhHt|_{;j`hn=YwWy;93c5|meDVkf7c`zs}FZNOt zA+^9?L{Z&#pr^I#qf>?!xU5z2A~WG7Nl7nkw`!u$?Lnb3WfF&(F?a*$eOsNZ7iy{o zo`sPuqePuCE8++*d{0fHh&D69avzatBqA>*XoH%5?S6M6g}+e4T16CDz(TRKs?9PK z>NXl)#vyT9aG3v=a`TIftHXA~sxkUD2u}bjNu)>RnApGrry{2njQ%{2Ce(@+-Dz`+ z?G^=h*5eZn^U$-R&Qi~eaXM0hsQpi*NgQLwUP<B`A)P^UV%^=Worc$?O@j53J+VF9 zYiZmw5ic&h`?L93_%K;x5)EY!EDY9|wI<5R1SE2}RxfJ?P&JmZ=585eGf{0RL8RN5 zl`COg$?4yMRz%r<3)X5MC`Hf0oefq-6unr3=|vU;c>l-7hMk5&a(-Nnhm^qGDOWr^ zQl=!?F`aMZE^9n2Iu&ShjA2~cj}Wi$E#I+ACS^mBOoQfe_W0%+j+)fsGtG;+mfDyl zviqv4{gnnczwyh)dN}I?3^gl|K`}@P*<y}Pv6@$9y_7yWla}LEwV7D0N1w5#b0oDQ zrij*RKQ!ma0F+)BOc=G^>8x^*%T-s~Ksu*3&09n%S{wU^zl&Q^#9_RQ-vQ-lurUEl z7pD~Kc^vB{#(ySP5x}H-l7@@YQ;3Gr#tOFocjNyp2pR_kS(_G~p%NytAPcJh=%B8* zEV4NV4N@$&qT%y65L~g9ZyBAgziEeRaEsN~Rt?ZgPYw@OO}Hm+ZL#&g@c@ukaLX$j z!BE*5`;ncphN4AKS!{xUnqK;3z{=?^G^@ANF#>lB_Lw_n38rag=PjEaUZozy9a1D` zO^7O^o{QJ`CSUo!ri4*ZqO6pc(m;w4Deb<iCzv2G{u=#c_k+>q)}-_is3_<A+}mQC zYZ94t;`km>XCJotH3(_|DrBU_W{q`>fSj>*jQ2YL<#yDYa(V^_3u~?#rh{2zx)qcY z@MPA%vjw_~_wu*UlK=0tO7O-pU{_lu1vj|Gh!^>a>A8aa3U6R$nOsX}gkpnL1KbJ! z9U4ca-<l|o36{0DGE#Ma7Hm4CEwx1U8K(MxP2lfh!IZMLG8GWNZ-Rdz3o((27^y$I zVVU9zpQM_hZOcx$iE2o-8Lm1er?ToHxs7@Ng+N!8ZAHWN|L}_xN>q^IT1LU8FiZ`V zHmE|DaTHt|BZzb#98b5Jk2)F-Vx^p{1#1X=a~Dfg8AF9iD;NhBTnVr7-{3b$Ju3jK zeW2#Y17#pz^GRq{3}$?@X=NPb6&gKBUTTpkDi)7wHg}q}Rv;t{X^MMdo1f(-Khu(r zNkzSJT7-JTn8~mr%1iYlrJ7kQS5UJ3qDCIl#>wK~9Q(KW@x5ilEADoZ&ZCULj=!1K z>I!fy6?+(mg>amzR^pZLI@P{AdxX1b;M}#T=h$)z>4TksM(>ox2r4WB$N<l+tCAiA zB<ya^ydm7&X6eVbmlLmWnv#JT^?{<v24Mg456B$O#fYEdCJ%bpT1L58iFt}eSnemr z9Scyv%b(GoqJxm2plmF6Y>0>#Zy3uYTVA%(Lx(0R=U!1oe$hkVTdxF2y5b?^bV6#% zA_twG>=|f-!`>;A5KeRfn45r}6vtp&uLOy^T9(rRu&yd5e2Azm?R`yw%lae^H2ZhQ zA#f<7)B!eY((<bzf{caWQ2{*yM8_+Ayk=;~sKE&gyG51c|Fh-V9O16`|H@QofYRxx z|5N5bv(uF2SsDK;WQ|S46E0{mx!;jtNq>NmHkS}Ja@GK|?JXr?`Xo`AviCJ#UM6<u zqPyk;&2Gv7XRBJ^uvql4M9Ty89A7}LS|lvfSAPI08KZ>Y9GEs-pND3Ok}U@JNG;Nw z3dF-Z06gLf5knZnM7*97(h-PrF~iA3kl31D0q_|Kkm~=IL1+vfjR*r}9z#3=ELj}K zF84#<O9qrWh6hM;r$n<0QSotWI9PUpQ+_hwM^LI#iRS++;)QJ+5~y;p|C#6pOsgM} z3>W~M-ik;XV0kpgM2!whv~XDuWdbXHXnuN}QzYcwB|~39=O>E7mmnVu6d1lZ^v(Ft zJlQf->f1e0!TE<AkYMaK;HS{nM9Io@bM$PopvEm)kAo9uL=rt^{GNOR`45BMIi)8P z-Nm`eRyzzFDU(&k;9_|Lj2fqniN7J9|2-hc^X^&+k7UHd*&0Iwhb3j`{b;sKAeN~7 z^)bk=Xf(iZw4{@h2W{Q)-3gpM;v*|WEo`&@{&~y2Zz)eF)`fKD0e@*3n7|S-pklkE zoU)Pw5&(-8#&yaNebV{lG3aS467YNXu%!3>iG5Yeenc_Z+#vziG7QG>()iT-2h`Om zjlM*VE_{Jh_1rv;rmZ0=U|WVJGRUc&Zm&4e5T6@I!vYRDPZDs*A+VMRrz}xog9cx8 z=}a~>u{R?CXFZQ2%<MASgKY8h)&Q(3Ixks}r?Or2I-9r-G2pLBZvLvb#4(FxhymyN z79to$8p8t&^FGg2A*7-3HVV(<`d&wb>+BC4Y#|e-;Y2AJe+!0Um(2>m7zwusDuSuw z!@G>+kv!pfDf!R=j)(-f9_Y2zvrdq3q%?IQV(oeAlHbIRSV0=tQgx#-<Jg4RnlK;` z8j-%%nB0b>i5KRd$#G5=TV2tC!f_3Fo~lr5>~0_kECYdNvHAE%$x-s<Oi4xqVYYBf zkPqaQL`K5eH;EpYaw05DcwPpyQ#A_PQi!GlLO26`KMrJ{a18i#7`40Ck|PWU;>$fD z*hItrOOoeEmzS|UY>h8_*`(uxk_<8Vkijigd1%tBcP%Ax*t>cC6SKlbw9Iso*TNI5 z!8gsf$Z%-c%7lr_Yk!HMn9;H1%h{464KmT9#66+{8b@4A8G0`wW}b9$5J~Iq>GRW( z53rTEy^DwuT@cwS+yQ?bJ~t@#TsSs?x)iL}fou_m0r4$`2_`~E11w0e9xWe8tB^Fi zLF!i}j1VE=4JZ0kWNS}2NvPEwwwci1lR(3X8yyzI^s~(M2E1s3n*9;Gn`?W3?A;)a z5HqxSiFyHq`3M@2mu2B|mSTMFSC##tZeYt86rRyStu323lZl7HO$caI;xdql8R80u zQDLso@C(tfQtl#yD4Z1Mj8639v1`PUV(7&F*yiC`Ww7@R#4!qDYtIsBq`<>u<w7_r zg=-!x#i&B&CMl~yC$OAErK_NnGm^ZP=SCD1Vw58EMlee7L35s}UKR2+9cm;^#A|sv z+zYjJjk%HIsGP+b3}mZf#21F3<A)LRk05IYNTJ4)x!gh=kpc$u>seip|MaE~JZO{T zJi<lH%O&Y8Pced&;2=6A3wlKmU0dZ=jnE_&QGM?gmj?Y3Tv`$c5Iik0x0q)40F0RD zDcIm8*qb&GMdFT721uonTQg#Owgtm_e28h@EA*+QnY;ux2m<XfOWyc2DAqwD&jyl| zIV>ba6rBa>5(*6o^=rrP)I>~<w4hP7{nRC69ft13Sh2-~9eoY!ZBKWhpQK96m?)aH z+*jfP61=t7pH6kUDVEcn5O|&VQb?|O52NVt1YaclMA*8Js&U2LpcV64-Jp*^QyA`p zKHLN*NO*g*aOJM6ixC$nvaxBsLO`>Gass7~kK}Yh-yN_4BNN#wDF$Z1=fLX>U?uV0 zEf=62CcNzodp!w?jxI0tKoyUJYijl$16RlVe|*|UJvX30lWo#KXAMwvvX^gNhAQ9` zK>{66|L|VPMGgq|xSV??9K8cd<F8?GEgoq1ueF`Ozs9fa^yAmdCOdsR{`rrcjzkxK z|9koE8Z@kcuTP2p@4s&WPA6T?dwMKvr>93ozr)SL`Dg7kgo}^{iM2(xQi0A2@*=k| z*7yWmvs+FXN&Ww5ip@-8>j0?{-aZL?4NcPMvhPlJjv;p@OOv%rIU1^s3mbuY;|Wr5 zlP>3|?F=CeY-;dI0c>3`1JDKpF)tcBz19D}r+?4)5&R8#m6i^FpM7W(fl)9mV|Her z0S;)wSIy_0*okf-048~R75ZKVj8T^yyf|v=I0)7!H1kMI`TstZozV%y%7Am_?#HQ= zG4X3-fo0Yuhp=al6v)^HfOcRVj0_!t8r0$k!y~jjsJkOG6U+{v`>MIJINCmTqm>y4 z{WEA}Z_o#>@`%`J13)H*6#n<W@-w>NKcnyjVPOi<IzNm9*)P{G-{Hb0Y)10->iAc! z)pGk=bUK*ec*>E;O-FPO(wj^D9E=RVoz$5|7F30HOyPud21W)kENgS86lTBhm}RkK zMcb=@CiAF!x!2Sx!d=5)39xaUO#KrS9Lm<JM>w&WMm@$C)IZ7Y;Mo#<Dk@exHM1U0 zz__4P8oRtPgSp4~5%&xp^{oFAVd$P;PZpg`ZMU<}eS8uz`eNuo&%;ZXF28?20I|Mv z^CFr!jK>T=MMbUNaP7Dv=?neY1&yH$zmlpQ;FXNZx8BEa5AQMIIRv;2DTdYG2#GL_ z(nF_2#Bn|fHGfCdJo;dQlpgWQw!G>e*gR~m<BBY(#Z&NR>znlUuxOzV?m-74ueds= zQe@E@Yh2i5hr2XY)wov5qJhZpTjysUkvntTEM0dUKkTj&trBGmO#YV1t~qx0^LB4f zxXHp^<%y|PjoZ&(aXrcKQi3vbnNGFIQj1jFV=&~8L8JQ`$RG7RlRm5KAG1gpXOqU2 zQKK@VAOW@IS7ozxKX#40uh*G*%HrW5XIsA7Hh&;n4Gpq=Pj=wZlo?xk*|^JzdZNZA zJ-bS4YQxSc`;uz2!J~|?o@iCtRI&Xa(caP=!Hk`~n%a`LXei=2%Pw!4H!to4F?bHO z2>tOiuSprK&0Cm6&wNWK759psBfXf<DK6Y{S30YIWC7fpE0)8qY@t0=#|G<@2|Y>X zjLJ95iFt_#+-AJ|VKiVWio>I=8l3k;lt;H-aGHBj|6|3L(;Q#zNN<+ehIh70dS*<t z1}U%|)&m?<z}@ks@AP+B4wjC`9F>;n%@ezUml#0wXT^#t&pX|s!}2ncF{=0J+l>(5 z(AIKK*#UUN?qF9%2g@Io;xsksVQ9I&dw~P8B|K){zS&;C^9^)NM?+G01<yoa?o%6k zrk?FyBu#M^#~H}+i=6-^C=PF}Xo`s8rZ}1DqJL&t0G@T~0Rz>6a=q&=s@li#+)OEU zx#GHzGzXT<UJ||H(;X{Wty;&uDpN0h45zz`7uo?1+hnKT*Hd0@hjm!4v%gJ4U5P}? z4PW&W?`Tp&L|o3R{|+V9qa|-XqB1y^+LP+5>cVwQ%Yjj3WcY%%5^&bf_+0u$yV=r0 zhh;Oi0&*&+4ISxLmky&6(G>ktNRMId9f#V7_3`A*4%c`wjfubk)7SaBU+&11(Z`+X z(IpbRkYhWY`H6DMF(|+rm33`Y0N}J4xKc1JO){t@rpLf+WJ1_N`mI3C=9JFs5}F<4 z&weV{4}LoK^n4ZN$8vcSfFFGob6@Ssv&M`Om+Bo5O|scjt8IJU`*gV@x5As`>N7>c zXG|-%IzFtZZIA6+$wuZ6CLuxxp8Y!zN{tI9!;#XeQYI7I8W`T?GQ;<8?aivDOt(hI z;ZI?Nl`-`xb<c$!x64Ltn_VUBImsw}vySj4#gq~$o)F_S_dJhpaY_4e>)v#a?$Ads z-DEE+)R!L>Ja`NCBf_+-pXj>zUkGnxq*|oE!`LV8xrJqKOMHh>hKlpi<=L3f60e@p zb^7I^LM@wq_vK;1<0qNXEAYMUnWm*@JXAG3S}J>98ASpdGGMv^`&}{c`4O|k9u7dW zri-M6vRjxv^z>epcEi6%^!?3|`SNMahXr&pz1=;b4ytcjAE?=@c~oD}Nb$9H`^(-U ze@4lhA-nz<@C<V+f27N)xSvs|<-TzF?QkLg-jMvRWsZ^=OH15ibJgz^vN!BTX&nRs zd!H}cu0Fe9(v43~cGc=D>>!)u#ehBt+LQ{-T~YkhM2;{kDsQ=LWo?hSKZ<|4Eup0O z)*M@Tc8mL&+on*1qjDrGn>Bf`zdd!{pPra_oiD}$Ok!-Qq<vYsT!YsU4q6y~qTe3o zl3h{f!*gTfU*((qB-|U8U-D5&+#N$;ueo=KZlkDybblG{>)w_GEFi0s9a>8Lh>`}X z0#ODf_lH#Tqrut?6S(1Z)sAja#dH>bH0gqKYCJ5StV1dr!kfIirG+vAD_Bi$xljQF zc<rcD6uBtGS%P_3)NW5LC3#yV3M^hjMaP(%x9^@vCt&+)Qj{(<s4?3&uWQ9Wm>V;J z-*Zm{mou+;M@>DP&x~yq#tb0Pq9C8&gca`LtD=eNjEnv<SfzhU<P_GGrK6IJmW6|A zD~HFIa5wJlzGw$3KdMWSnBKOk!1)~c84x^Hc)|R=lNasY$8@Q6alGlN9?jIt5Jy8f z5?CK{mi}P|_o~BF5@LNQL8A^qC+WG+H?Alnln~`WKv>8_&oV)sy#@Pzpl~rD+0&vE z1A{5b(J49P^s*6Y(_nbeT*M+ozE$nabbY>M4#E?|T<(#FQkcT#tFE#=my7y81pzi< zS~p}P`0OVtSyXn{Le7XD-GbI1d<aXsoLGw<U)%qqk+D!4Q){u!@Xr}OKN2BqI&W^9 za39+|>8`k{fnqeQ8WIeSM4kE!cnmqVT1i3U&-HY^g}kx0S-y!Bd9gyw$Ul=CeittR zQpTtxEG(N(%pSS~4wVln_rkm{RVP4!_s4KIJ}{hgCSTF~aT5Ch^+iiw0kbq(IIG~u znd)eOi$Y-fQ{aNe%kwQgUEb^TrZ~gVACE=peH+%f>^*||&^qtKrY%L$Y{uqWcLe1S zm~eDpY(#x+dXMMXT(>_*247}+|8ZAUbK7uE*kW^dD{9`27!L`%x~il@x~?DnnGr@5 zObl=9$Gx_1pPH!k{(<=!)cT5!GWV5CJ(>N8{1c!i9J8Z<CzNBW%7amg<w<tnHv9$M zV^^P=$V7Lin=G#8d|m6t5<GwMH-h&<;`p>E<nO+!_h|VnK*HGtW*L}T*T1Zu{+@#W zy&`AwEB%e_*@8P4Ci?da!l1s`np!CR4Zn*iI*f_w*?~N*>H5Xx>tA+SKQgGRKSe$I zd?ez;e;`hrtzL;uyJ*^E7%}2mImdrkyRY(N+QVNE?ssxeynUTfRP#u;`m$PYL|LaO zw8*0ES(zSpLRZ-J#nYQ@Pa&|bod1DcINzJmyXlaa4eKO9t6d&&?R<O0h{xnctk3mn zO{c%{u25M*-6P$qZ-QG-5}OcY>77ki7c{iF0q!jK{wFKe=iG)&?Ipa^KWf(wU01uV zTOGes6cceU0tE6&cmjG`_Y{;p{dFIIG5ck7j?vM=^5RLm{l8yV%e$9c?JT$@@RLVy zJ^xBT+U{w*XZd5X`?FZb(oefulCJH)Z6fpYpXpEj96eY(5p{yvWgoMlbER8re|Qnt zO4q`D+W%_&>iH>9xHWLs!QXjc?G)O7C`zbZ+$Ka>gVN`_b<)QagxWHEz|B_woO0F( zP-w=@+l{;}!ekzgqu(zEWd+;hr~`FW^`nagR)MMjY~jefukV^;jYZ$nKzpAbQdJUu zHNu{s7$co4E*X=w+Lybs|0$#Nt+}_QkX+%`yf0;qZ9erZgOxH}0%t#5E_>M@Aa+^O zEWhXqN;36q@-NZzmQTv59s6PpB>>Y<b(E+%_h%vM+1lbuzW{@Gc!$0g<x8@$351@E zEwg;Hx$8(sCeS_NM)abQ`Ypqgcxq~KQZ-v@$yZ^77WgCbU#;Mh!U#xGd}wGA`uGdh zZNZIwZWs1Ml5U(%%4tN8K;GAK`Ic7DBqaa)1U30^E{apaaI0wB`Zf9YBfiVqn2OX4 znQDi;V~B7JZW#z)x-RJMvIUoxO5K#A>_?&(q!!0HEbuKrSPXCh+P%cv(m9WT8m<nj zygPH7TzsUU=!!#%msukA4?iGj!P`zN9x>+}xJM)al0z|FCf7H1*c_pSL4xk9>9UWb z#)FvH_GcS~l8PLWpgth|ArHSv1kZJB6HkGj;7@-W`X+tS+;zc-k~iEp-%JF<8}H1- zKSx~P|Ae^tYL6vGL|H!mlwZEYfqoBbHn!==-=|L=Nr8llz{P>4#3%YEu%11AA?d=G zGYV#WF}reXtyNoe<U>>2cPq34x64hb*G0NOylN$^6V_y7v{rFv8^j8^^7H1et*5#) zU16eI6+c8N?*<nmrDl2|+dv}38|Tfzqi<7EP!rQL5|VCqGEn@N&^IZg_x9b>D~lS| zarRmjm6#hl8M;rOMqr>#bAI`xcFt?3iFLxd&q?LtY-h#07EM*XOUV7l;<ah1_Z4{0 z@3xHKxbMM*nWfL=V6SQ{<i@BOOK@N1FaPbEuII#kmA~n4I&S+SO$6~;haY}bsQu?^ zAOru$aPMvUI1rB^PfYaz(~_}$A1$AESDwn0eQxwlILLPjdfG~ij>SdeES28J=&WsR zy9YLfkGo9FZ`Jhwc*}6*xm?}Znpm*aSTbVOF|z*ut2gd>Qn{pD(mq~`aw<k=!++kT zpvQ~9S0`Re?}YtCJTJqeeZb=}J|3l>jO;=5{9A8a3k=l3vxjd~PKlQ{tLc#g7_}lW zyFmYh!@jXh>FMFyKO&);-MSLO7H<+8g1!mq-0MMtM=o!A>XBEq``k%7zg^y9{67>t zrg3`RW%_PQPC<_^qg1k^@j2zX#3?(*-_RO2L3c)7k48XMfhRE(l=t$k_Spuvx<GMo zL2!2JKK}hsLP{~A1AfQYZ))8M!20zSy?<=}TL&TD<>&lIyH45R-#<qDpWaXTj=Lk5 zU!Y^tV;uowS^C;{s`ZDtS*8e6Oz~UFUP1?3iM2!kwaM=r4F~jBKt2w&v_qHr!~g9} zj68UB;O~NlV>VaF<U78|nH~XYa;1pxQ0ny`3R&?kOz8PMg9_H#$FM)idHBi4s&DZB zwh!ixu<nIip2(cl8Yg28UAK7iD@9zCCYAGW-Q(daKcNiN+TP>wc#0-y<B>QzUL<~+ z^F?l5YaQH&1$O5-)mx=!kk=0>-d=L_U^%>aVEMH%2|kIEiSCiBj%`jjAtI*o<~p>U zo1~Ps#XeUWz0;lYn49hZv?Oo|4j!bdoYTq-J-fOk`G@xN)<%MD)KJ#JuL`YS_x0x{ zZw&k0-?(r`PV80vMeLRtvv<R}2pJ<A+YSjF<F~lrDQv`gE}nOjjqS}S0mtr6!!|no z$nFOEX94)2r@eJ{Dbq{2sj2BX`_zf=jaNZO_TR=a#5W%et9kT=jI!Klm3VQ!V$$dc z_d}Av2G{q7w^g>#In`cDC_DL;?O_@Lb$#ytppKMUg!1`|N)H9M7H*YBxHL1sMK#Yx zBIcWeaDCZQe-w=E4&9>9hDBUE-wltchJh2ts95}UU-EH~g#Y`=ws_F($DLaMrvyQi z&am$%br}h4bVd`i^7qXgPpMm2(b||sR9}(>BW_6u4qt|b+{p&#E8Oe2Z1AIuQrdh= zaJdGW-+yOzV48HUC2!%D(qpP}9cMnZ7ylIQ3!0=VQGg2!z&Q{?Fw#Z65c0jyBOeYN z+_5Cp261*_@Q+U&!Xjd0UNg-$;sIikjpapzd~XX(Z)xzNlmZ@(T$<`t?P#^L>w%&{ z2^mU@UG_cag7$s9aKZ1C`6-G#>Uj!O=U<Gek`nYy(jC4{-fny@8wF_$3<r)E*hPfb z#SQmvN{B!QKya%T!iKuf5#1@rQo0eGpHg(t%38YM0D~IT{K{DYKcQ!3@5!RX!M=n} zsF7HR-3!8Rp8cfO9UY#$F8dm{deJ;;R$V*f1i-S*INu*BFV$6>RiTyQZ$eAuZW$i1 zoj-4Wxw2&D7`?AF!sCs7(%+W|>sqhqAASPlp-nQVKqXu8kv&Dpxx-fpOc}s~RRwwY zMfODcV#X5eHozD7QesK2-7#&=3V*5V>RB0*7KFrxcv1cB4UkvKJ%x+!qBM?hP9h9G zX4<_NJwl%g(|i31;<xWG#mZ65PKiZVJy&xZ(`UOC@+M&GkC}166kwYV?#1G&Na~H5 zZ+p2K%jf9nX(`@~()U~lWR?P&R#7Ksz3@^DWi`T8nD-t_pxX&`aTRhB4)LOcZi)>9 zu_m{WZmIMUwW01WkNT<=MUu}Y5wzf|G~^a_zKWFy^jaZ!*xI1wN(D1n4rmIa$cGLJ zQOPLVK6ycRi%w&q!!<=Qh*3lCLkYwut)8t|U&R^D={no!I5(%%gWwF6RZ;l%q3jB# z@kCnhb@8t98Hl8tTU!uq{cd&}8`pjYY>}^~{a#0(+7U!;lkJ`%B01h!vMUc-+_n@g zMb!Mk+4@-VEf2tN>rxi_Q~}EyJH3zm>bjbQuv4O0wV1q8EW{IIPpm0lbNboLhgYP| z^Eq#p(T#qrzDuH--hS?^P`cK_YEoa-i_+o<Q|RnZ%lvS$JNWD$jWu%gOSqR`1>Ga) zt$dXZpALIT34-mVh@cn#D^0sJIiR-|;pa{P#YSwquqt+{zIdCTP67~9vI0ScJ)q*- zr#3HwqNs?IKzrGiytw4v4#7=@&uskOL5PBxC~-Yowp&ugeE?HuX7r%jg>|+NQW5B4 zjZCZ6Hh#`)$H3KUFLkTR=LC=1o1de<JoxYzWqIe$`q?J>e}THRbW&Vs$@x$3)iHlk zfIZ`$w$T@?nySRho9wSN1}tlKRd=czBy~u1&km2RzP5f=H*?3=9Rt=%7QROW_A1w{ z8ZaOa9ufRzA?YXu-|G!vf?y<BXU^9^dt0#&dI&i4HjCM_+KwOQKlzx~KK^}mF;$-` z-F_@)P~EYoj+XEz-TeyYrZz@NM)G1G+8UIbcoUOE!sm+OCR(-=V8yT}h&v16O>Rv& zcL@x-y!JIs>fj8&@#I+z6YWb4zWKG%u0`Q4sOvDPh^#57hK;q>!ncoy`y<mI^0v6E z7du<X5#i;S*nOks5R)KzV(lMJzNLC!643l2ZQa)<Ur>G=PlC%S)W1B_lEhZrVyhfb z;K#fT;BIO?;ZL4e`(}h^Ib?~TfenFO({W6(S%x%_vN!#A?ql|LXLc%6z5c9F!d3d+ zgHQhC0HWmlNO{*eXu~mU=CK#j&8<%+8evE94c(@2u!ctm2Z>_P0C7ZcU@Hh{jp5yi zwO4e$9E?#(ym^mJp|W2KCYZhJuNY}G*fdTo$$wYBhb?vMz$?;ei_qXGbv(R%)UuBS zW;K>*sVW=-;)tPux#)t%n9~RD$zLGclRN?6qX*}cZf9b5g71$TKT_Wf11mPWIgd(! zSAA?FF3+F1+w68t=ytAfB+W$?<QKlC3!_bpWfDh%gmjH6OFJcO9akgfRrSJk5Ncuw zA~|X*YtBCT``h~PQd{y18&kISewDk<>3wMutch#NBzjjSD*<*>2B;U@^NVm4H=_0R zo<5cvS=b5T3aK2<h1iU=Z0qTb84D#OglOj$O|@)OwL!u$_X9=_&K(*z_jK5sB`XsE zNBn+z_;|BJ=GnPahy0SETC|3BJa(H2%!88BjtAJWn`hUhBi#gfY)lDNO`pJHhLO0! zXAE}1cZs47l{O^|JUhd~`M!3U<4bLXNOstHu4=?j>l?xn;6>x|Ixs|E%HY`|1*+|~ z8sFCZHKj4F&^Y+sSN-qB82i<aA%g(#TFHvyPP!kw65ep63D=>CMEQkz$;&7V!mztq z!sc`=yCq6KW>OAmR`^wbi*(^Yf2mVteeeSwpVPy<5Hyd>G6^FoV3eX@*pzk})pNn+ zEoplGr(@c>4o(LFS=7xws0LK0xNM8HMES$0MJ)GmgBV$=_FgE!uI-t9?N`BvhLgF4 zA&lE4vS$xJgo2L%v$qq;)LR(;pn9xdO-Ci719G-0W?a!fUoK~+*mVT;xK6~JDN`~7 zW4g%PVA|}P5svisRo8>s)_VA?F~DHk@9hZ+9%bu}oQFK6VmoWoOITW)XN!M(>!}mv z5nrR^DC!(9A!adv3IaYp$^KAG<uj!HVm`BLCGIp(@UM6u(^87p13Ni`^^*iMp17lM z-=sHHX?s383QjmV%H3=ot?HJ0zB#<cJKJB8xTe3QUN3*GTTA{b-3f}&oE>P1!)wx+ z)vDgd2)Y?qy+c9JJr{GEKzApbcdzKtU5d;e`!l_}ZFIe>JJ2)yV66pvL??iET9bkL z>{7aAi%bVSIV!tH>NyCR|3S6(sGJriIiZ&WJgUx6@&?)&o+k-$zncmQbKT5X7YDZY z#?7d0xwbUf0f2j&<kB9Cn9YVTzJobNjxkZ!p8~#on^=F;{4Ovr-A83Y1V#FsOqK=R zsMDRWRo6j59M!5QkoCOh=fx37zxAp22P+FrNSx(-=#vDh_vTK`suE1difusn0Y!-` zPnO8N{Kgi6>$5rAckKWIGxGg?+KJx1C;c6PMJgZb4aj-Q>#+RZbuswq#sg3QGx)w5 z1lj@Ln=?KkD>lVxgNj`v0U8J6>r<Y}72NZ4xM!#SqOwKcuCyxms>4uhEa2m`-7#JF zZSrTX0w#8-zgYn3ZEs!xeKUC9b>(~24R+i;Kl=cc-1n)B4p}rF*0w#|cz}H<i46ae z546{2>uW`0zF}TOWhF@6S|Xb_kaetk;U84WE_F*mEW?L8xlKX1s~Kbmq=L2$Di9AJ zE49;?e}s#}-;uL#0h#dPVMT|=da)&D=H-=#kVqQa2{>YXZvf`+SM*8%1}vZPTD%yr zU);6HHQBqRRw4^B1DUd^C4yOZ0)Uf1=Zn9pXg`ZFU1(+q6d=Rs8Op^%NSk%@B_N1R zqVeci<Pa*xcv~7+FOUIr(wFVB#`MSbW*eFvhNqCimy{9?B__vC`?S+P#5G~I#dgg9 zb59z)KGHuqMYsR6`AFn0Wv)&>Sd1vWu5X(_8zSj9XP3)%<i}5+WP~=Rk4ji-*sHy9 zIOM6T8Ty_=BLS-<yco~6*h<1(JQ8uvbII-%5-r5hK)~&UmaQU&XL%spwsZ)B@L*=! zP%|a4Hslcy+d3PmI<G=kPSR+lkeviKsUL03A6X4YvBPGbG`PF(T4*NgSnYx-3U51N zkQ4{Y#!YY!MBYHlOxr794JZeLUbuZq-~tp=t(Ctf%l{xwIEGmwtvSuyx23kp2Z_+S zgK<+I<%5K~Zr@2Q7d&o~EvT&aZAlVDUGSJ09XRJ_1K6s`fJ+$a7hH3&k*DJ0x^B2w z)a}^QTCXe{v&0f_Ty{(nEEcCbxIUiUDt&8rOy^U;io=e_fl1Cgi=^cg)t<i$Cs72o z_?cBC!RNJUjKm=q#}0eGdM#rxiW19nL#@^UX3TrS6g%~2XxZM~1tPzFN5VZtOr;mC zQ7}ousH3Y-Zq_dK?xV5>n6x0UF+!)TU!7&|jdTnD@FLq`S5IG7Zec~cI+FgIo1977 z0Xs-x5^#N2_VpSN(Ylo$Q?T1#c)OY2GE*RW$R*>~<lF|peZe~7rS_k7^z_MOUM?_8 zE9`#ftpyk&RqZRW?Ymlkp#Q|xxOaN!O4WNcJHS&V{5d4h7I3H%o?)QO57;Ms*JV=I zbBNc`#mhuFWLj6Nf>hmM)o}Erkj~u$E{R{S)`Gi5GY_*@&V^R;gee!3;sCenR}<0v zBI<(l^J~s_ku0);u1x5ewv{yGo)^Kf>PLcZ>=cUD1M7p&>$|E_XZgVatxr>}IX=Vw z_K>+}k9b#C3&KSHKk&Ow@G6sRX~1F^jfiW*5Nhw#AGG^bX{oLNMRN{2m^~HCw-}N7 z{M#+wwba9B-BY}qS-{O<vH-Wi$IFSz1L%tF=2cp53f=wwx#Xp66XB%izFt395IWr+ z-wwnkceJc(ZEMzIXEGrX#MFB#-Er-ZCUc+7EQ<~7FK<gs)Q>l;ipE`dM0WOiq#mD9 z#`e?lNolMs8RC+1DPWp(Hf+o@Ziwk>G6`Ar*+((dkM!y{_vx=fo(fiJ|I9Z@18!QU z1b!LGO6d-ji?@&86G;0&0o<<l+<hCuM|vMs?ygo*?(^0{-X`By2k1rCzr9q;4xflP z^JXH-?wG8<Jg%tVMU8ipx~vEs)3#F+$nZ0KQkVKnor(HPfc_b(7Nlw3GCF!gFKi*z zLD7P(U72n1>Z0B9sVUxztWckniVrJ%Y?0T!l3CyYAQ#)yq3sC(9E6(Q^wB@{KLF2Y zkJ}{+^vy@wr|)8qJjuPFweJ0i<*ImBf$IXaN&7`&+egxOJ(mR}8`^=z;XA}`<^5d+ z^+^vC^@nxz>>af?V3W@e^>>EuC8WS}{6S~V^s2q{$n^MUoO{G3$zZ5><N-k9Pp}8g z(=)ubtHI`LZ8UgSeiAWcXq3|)vsqXH>9}(zjNb2zs8nCg>;9*IJLK`tyDkIaBzrrv zmejVDLQ%g$E?^428%O~<f7e)18BMG!cEiN-Y<{WLnYp96lims>b~)dU`i}+OmN&g= zQL>rWf6AimZ3?qOT*=Y&3IE9}v83IeIBAnD2@9YEG>th5Ayyxj1$)GE&b5VD`?WUR zR8U_$Q$T&2Hc&8ow?$@;HE-)|-4sNQ-e4U{ea`bN&>6_FMJ(Q|CFx1RwBI9Om-e6E z@zt4ZN72KMX@?FpRZ?<p7Q3YNteiR7n9;l8`lSdTMk$^u%+-zgi^@hW4?P9B*#@#3 zd}on%i*tP?A7y7WEqQ>eF?dA}8#QYc+QGFU)xZwrS(~`{!tKX8L8I@n!LN-OC4<p- zG!YcfjgJ~?8NSD_tHHkDil-Wn3d-x`>QfSa$1rz$`8W?P%AN}mwgfIy-)UHTg!Y(6 z`=8(%^ix~>ZL^G$kG+2YC>q~}aXL(uZxy)DT={;hEjsAcH6T4^2xqEf_>$WW%UpOB zZ;J*VC;##!^|b4*jlWG+=?q2(?e_#bdBb_l8Pk#TDU%!p|HYqu<E_n3kom*EEv`c| zAG&gisw1Z3EjK$bHR815!3fz&Z)I8a7dVQK0cJ03C=u<s76xpgw=B!`oc*r`?!Net z_eKr~r4}>!Z+Ih)pDRRD-lT*);cKmgc6lM+ZHsnRQgu<uPxrdC01maWr?4HsS$23H zz*5XWCY5U-)H=SkvZol-8>aiB*rjhBBHpJzydw(?yelEtu!B#oMSyYr>|-+uY>D|F z>1*a0cFPXs{$l3oteed)YUS&ZBjOlB1IE?^kgi)jvcE)wy1o(ZZJoVZE5QL8YgR`B znuX8UAG~3%GR-}aDd=~kmsT|pZ6}t!g_B}OlVay|m!|5!7B*6KPa(}J%{EQ}qbaBK z!2D&f!Uv%(=dkyRt9B`$vNN0JC&YD>0tA5Fp&;UG-`SzXV#mc&<{Fo#S~thNXOX6* zXG6|i^ca}z(3mvo%@o^(f{qg4%$u={{(UCykGN7~C9Bt!`!?g$l5f7q1UWd4AMf$K z)gyP=m|sk8t&_X{U>4cyRZc1|y~|6O12khY2w9N0VI%&2tg1%@jt+c{`|Q>~;?(4| zYX7;h>oW2<!X=dd+N+gn<WBggZ=>K(7j6WoplC`3BQ>(qrmBgX4<Pivt;b@$qZS-? z^@1Va>PtD~<@*Zhu=y!vR7}eN#^^Ex(sAo9@hYilgqy4LqZuG7hB)1JD46y#+X&yM ze?C#xuz(k)Yx?9jFYeF!E-V>8jE?jGR7uxB#BsT;VE08zYGzr#gHnHPZ>8DhCu_eV zYP(tbjnVEtQTS!sy$?=~%Qm!7Le9k+at~NknRglsRZaVA#H5|`-Y)p;W{<M<UI!># z*9Ent+nIK(%Q0ZmVEfm@$OGwB&^*X9%f%7rChacl^U}#c-vSnQyR{JQy|#6bs-QK+ zMyYEMyp3eJN*u^rh|UQx-4D`{ylkm&OdH*h=m@DO?kohw46-P;eDX$QwOZF8a2?`) z_5#;+!k$$gi{ArV?lj9+HkkYl@30(HGH|#kcQuo%fWLcpy~F1-Ii@sD3(il}y$u!r zZ68ooK5VR90hx<^h@(6H6Bwn?K}Q!(mi@36ZYwfFlowDSF{LWa;}W#?hQ6ZHsIt%J z&9}OI8(RA65^Wnf$9B9o5NJccDs9cI`=S`HrYJcHVYPf`uQ8@gUm=tZFETv|DEol? zka)YpJ(WU`XlHp!A|$K8ZD&fucyteB=8WJz)KIc$xv=;?qAYc`u%=*--N}-}?6C#= zDy_H+15F*8Q863i_~$u=`Ym2H3OewCq^<UmIlWbbO^9r+kdl}pn*&{EVzf1{AI+ue z8P~te^lCm1%oIPw(N}J?1Lu}s{1O+p)!hf0DuQv(!aVXJdDBZ_-an_oZzSY96xZD& z2$MfCb}uGZuWL%h;hopC{&^0OLi=%dtT3^xF|GTS9uQzn1=@EH9=NfUi^CPA+iXPv zB{>}SoHuD11nr8}loP>02ip#(9qV4q9bxLGbuaQmfN3xuJw2>tfuylHm6>ucd0HLF z*p}*BHNj^2YWmS*;?$-@Eghw0W;K@QYpMeL3B3o3Rp&F`F;1T(oLA!o$tV;Xy=w&K z){?;(Ub<4!yuVBgFL5c14!^KXj_*8z-Eu!7^s5*Dsn?i2t2;Pk#P$f}&NT3sPfM(> zS6d17jh&yK-9Y&Hfli>{ibt1>xa7s_=xaJ~DJ7#cO3B#nxW7Nf?*Vk{4ZZr&;qV~K zd3sJw$cUpj<WHO8-X5^{=AR6^H%I(Q;j+L=>vTW&UgcD|9iw4rev292Vc&lm_=i3I zTrUt96aq~4OSHz?$9P<nVYablwzbe}XqBtqR5cY-WMN;9_?z_0YW;|C`^7HQj9oz& zkO&$ZG05lzZa*O&AD{HugV*dUcve^)kEy=oG_ej;%4k#h?8&}K>fSqC*d*p#WBo6H z>9~Vn1bSKfoLjLEzf@3sJmsKVKQq#6o772>0UI2TcZ;PcnfZmD=h>fcKeyyLw(k{u zxO_+ti|zy33H(14&u@+C%u9;A;sKy`!&H6CeONpNdZS0y+4zWz76@?2?h*XNEF)wV z>DHUp{baU#mV%3)A_}{=g$ScTjIZeuMYf*a5NB-uO(k<NcO%Q?D=>C{rN8VAy^OHi zHy{#u<|r3znWTu${QTOU#w?G4nT>(`jj@fM#%qn-!=n!`4htuN-072@p8QZj1D!hi zo4Li}8+!iJ$8x%xfNGBRCSS2+xBfb%J2%wd<vVvz?gOVzFiX{S-qv^-@A=QnY8@JZ zpFJXUXKw0QXTyK#=XIsCT)TnmcK{$jgf}ny%jyL-hnLI!@*Lj1Wj~czVwS(}&A)(( z@Xkd|oVr}D@y68h^2V$_*QrrVnFYL|!mG4C>3c_3Y(((CxE5!6y#E7SOB`mhx~ijV z@!FaqcdVg5yhGCy{Bn)&G%EkzExhw~Q>BNxYP;y6_}Vo1LZ1}y`rVN#XESUz>6VyF zTl}UAu0C+s%2O2?T644Nb6^)JrhMPX4i5gY5$#6>l}8skfrHWR3pjHtw>o-a812Z8 zT&6ef%c4I3(Q>>K<B=JhYuOH@#fl?DS%gT$t;Pltz-n`UPMbr%TEAS<cK*WQJOEBY zBDVPS4jr>xRBR%2LMxR}+$ms&!9||xM+mEW>m)_>={I*dV&J#q)tTWHRi~rP(mV$4 zzoGy3CPYOLH+Fh?C=*e`zaNks*$I)v{E>=vi}yVviT7doDLl0nQM}mY6gD^5t!G{v zeqpsrDsq<uuhad|WtQ&c3G77iR_z;w2EUoH#<~&~L=6gX>yZdc6RWO=RMoO-x|}F4 zju8Lg_28BxGTqp@STZfVqfXDERts3}ipjS&$9+Eqi5@$oKFigr^6IGD!B%UeewrTn zk%-|eyOn3|5L(@f#|uX~M8@(!nC1Je#&Ft0UT3-dB~0lbDm2nexAxR3@q0zT1X90y z*F)cfxYMbwI%XTTI>_|LsaJt=1rK5Ol^eXyCf9d(^JN!qD3v{8B4G!iXulc{)y6^R z>$Z<zmS5)#EE`kA`s1P2!sQ^NvO$^PvCjpm+GTUqU|-s#>z*BVy1R<l!|>s;(=(Mf z?ahl%{U=b9=RkJ~T&}z-D!-G)GkQPJg-5Ag&`DnX<Dw9P!J&5KP7B(38tt@x9mUF) zq#Plu6gB8om|C}gxY3r2?QA%3>1czmYQ2Kg{G~F4u8}1f3*Z6dE`dEm1+zPiTlJcl zzVFxe2l=M2j#~O&h?~FB&>rTKb2dD3q<LGpaikPU^KMBtJ>y&<{t+@SMO4u}$DRJ{ zd}oI#`G|VnjSx3dh?2kSs!M!6s86*S@w9~;VIrz>>VpnEkZ&|S*Pn*L&TYaz>=6~o zG?7TjacS}ciYc$45igZU3h;j$xM|avcbFSzEoAXZh;B*hXEjQ$5*2dHU;D7X)HliI zbxX7|V9IPjyrP)(p<?a|0b=@s=e{)LNU*rAQj{|Makj>E=_v`2B#G}ElcJKGpJEQ# zkBr^9t`X+;)+(On@aWuE7;WdG3Ik`A!jKV^0ij@bdle3-qq|hMF{@{VU1cHlcx#Hj zum^u2Up{wL<IClhCfm&@kz?FZR#8IwOZDkNW#CrKrMe>vcFmuKh#^(`G6`OENJ^!s zNLtg<yot5+^jH+ejP)u?@3OzAO2nioTk%CukDxq_M-~8fg49j+i}0ie0N>+*V)GN% zdWJ3(+bH{@Z$0cDvF)rX-imEGw`C|j8Hg=^rS!`B1&>6=EdechWI8j7>l@*9<FFDK zmA4eZY7`dG@b|}n{uZ~hUuIR_M9G+?TLJCJ#^TJ0;3%bEq5;!ys<fL<;(BZX#RX1o zxJ!*oA6ZfbBg|Ma_0&vW=X|dBRCe9|9iZXAEaLdy#;yygM_))UFD7g(0<|<mB^j|; zA0V)fq1L(?D0AvfBcPOx;1;SI`q3;`H+m{*3ydObBj9`mDP~mO=DW8?!KyD~k1Xyl z$-+wd^WIOrgYsLMDjB8$RbtxA;eBJ&EI;Al@#1D2ltT*&I5MUh6UcYP;EPMH&0$36 z1I0#v{Bj_ovVHf{F?=sI)8whG<L6y(Jsp)D%~*3j0CCP+<}?&ZxzxnNATJ!9mFQG$ zu1TP2Hx){}2vT*uZ;8Zg{^&5*FVy{gNSMtc0EXc8&#Vl(;;LVJK_f&Y<1>GBz9=D8 zeu^QEgz!{~7d9|a&SZAzy}jGncj+-tr)A=&FbcdVi<G$;_dDcojljd{byQDyttwHW zL$TpIja(jDhy=zs<Kkvj$lYfW^ToAupujEGe&sX-CH7E-Mm!2cw=C5}-*IuSS<S8d z@FG0ChNEJLGGm_=Yy4Wrb`j2vG`1TEqx>tc%1^mAJlCq)Ona7J^=Jk2^mhPa3b%p+ z&a@^^5gy%Y(Y+(iPuybd^lgXQ;C%A(^YkW8?Fhz$o+-9&k?RoX4>2J(5EgjM#zD@s zCc>5T<8aMOup_pNYAeK+>U;mjd#>h8{$+9I7HDN4=Zb|au(nY-pFPyEqT&Zs^s3c5 z#G(6+*AgeSWS)hy8AW*eu#1Nso|qua)?Wnx?ZU<)Un|=N53NnilB?q>ea#f}t}dLN z(=4Nuv79P;$jh2MEjS251A-(qtjkt&CQ1wWE_Z(0I-9#8$bEs3l^d#E<nOCKh=F$Q zW6rc4g5<#<g9x8!S*^x=vni!Ss#Z-1Ll&Yys<uq)H0)2~^D@74Ib}Jip9<?|M<o8q zwy2$ZJ&mrQN66Fxzu#8X5S1q#WBaBQ(>Jon1|1kk^H-?)j*Lx6V#Qg#%#7@`%t`$t z(|yoH_=ko^qA~0~9#ygqa3oDtPSex#4gwmrg4{eUfJ}@*jt2@!sv*?Zw~qrv$vdH{ z*>61oS2db?PQ_e`HcQ{fZYWN-n>Qj_&O0oTNUCjol_ZF{9!#&pDHssqp6nN8^R{|o z#UlfNr&dLmH~KiDi)^qJCW)TAc~9eXjNycphkRkNt}@Vm=_RUTo5!iIdvEQr-qkB~ zJK?IR7V3lYr9BpJe?}iw5<%()R$yYDb!FT{GMq+;V4IDj=6q(lAID!X!ITWbJ}6zl z)AX@MiMG_wdclGz1@E&ueFmL|vMcsJ6QENQfwiI3^_Zu3ENkUT|Jg*Zs=rT38gW@( zb&WTdR3aLPN!Zc)nAP-+nZ#W(mF3~zgpfzPLw#<rP>>f>Ojnm3<`Ag5kFT3$$R_B( z`})i2Z|sLKQOOsrN**R454X3tkHgO90!K3s9>w1&0GZB=Rewu=V+WUsr@(fFN5LuJ zw!x~j8p8ZlMo2?aWCXcmo3JWMzcbA&1^0BjTN*jU&mK7<$n^nnSv=h>-;t1!V8|<@ zMP2tpKx0!&!c2-&RmI%tkB^JLzi78I9D5+0iaiout&pD==^uWqU0Gq($Rg(NbGxsC zXx{*eW8K1EfG`EBx4VHdfqs-U<;WMc?1@J}hHSUebYP2%P3uQ++$>+uD%rS8E(UK) zO^jpzII}~GGwcf8k%d4v`Ymf%@I9|Kl>Io)71=3bb_Lmzzo`3No?}Re#W1V1BxZ7_ zpZQf06eq4(D$7>1Y4m%y&Q1VbZF=ukzu$mLh=`;6*89=$Q-_#UKu<nTme;jv>f$lj z`vV)fWFc?a;EDXQOI43<kke8C(U3iU0cdepv-g%mGNi}nZ4EFjc1JNXSGXsc!j}t( zAf6^b-Daqz$L;K&tkCDb=2&uC1>JA$d{rw<RR+V0NljRDR#Z$Ec5#(F8t{(mAmycg z#a;9W$UwzbYrMDc?V@4ig2JuJtMr%63mv|Y&h5Je513`ar!YsAG|2$+#eH-7Lu|_@ z)z=Dn$(eR5qyi~-^<<nfZ}bLPs6|Kpbwh8h{bDaL%{7&yGfcgJ)Hdz;Fe!Y1Ig&j! zw)bQJcSQ!+=YaX4n%toiKlRtJ4s8M$RrbN<_QB<~xi@YmAP-cTo))tu43x$6n*LZE zX6;}DoZ19EvAuy|#>6e0N-9xV&a`CI{G-@X*1nHGQVLZf5p=#R^Bp9{y+2(IG~U>m zy~yb|S~a&2X~VNU3+d-PwKiha3!LWAx7?jm{bs741J9=hSTOpQ5~LWzh0f~{bmP}O zz5)g7{XjGXKyJ_X`mLd$52jU6{Th(25$J48V<(%#uHk3(Pf_N}XOsh~oxix`1@v__ z8co%I2I{1eF=Y}U9*tLOz#te4)f5-!#`L>?<xUwsLb#UyRgMYS&=i};1H^5Rqc?R- z8xjWp#yfxJomXqq$=b1xTI+G(V%<@D554IqE2iqajOCs0wY0Bsy|#arcY>1p)0B1E z2L54hTJwhkkz#KD7Xax1JO{FeO<C&`F-oq(z@Av?lHPNfLH*1P@j$p%ns(qGPM<`$ zx<-TAtA-Jbs$yd|4v=8Bdul2joj8g>CKJ?^ZQ%?mS$BXktTE#U-WK(9Ig~^8VfB(^ z>Z=sphSE>63^b*2^cbEI^42G2g{WfHG>6-8##BQ;zV5DF&QKztSf0m;=B^my6HxHr z)Zg8|f$$>tvHd%{0+FJdlIr3P+*E>W&o|&1!JjLS3OJGnPKEO8+)_;4Qt%J2dq~w` zvN9n{RGNcdWHWw~ehqjShdV^L;~6*=b&71PS#Ht>0*I&^K$sgbu-`0fH;t%#69HtO z%`#bfHxDd>+}zA_T6MkbMMaY8^W4SXlahgXZuT{8zpX2X39&yvkePJ!)G1`l9ZW3{ zmVsY$&X5+!ow+Fuv^K!MTD|}BO@$yWzrto*?&9sK6$>*j9xL8!mzt}4b+l|Sz9p97 zS^VxdpjtTkgr9vvsz#ZpBi%~^UffxU3t~FK`ZO1{+Q>9>7JV)9wJz{1zV>@}dNKUD zrY7(b;e($ap8&KMiD0(U6CfF%t&a7LE*g@<XHpFqzwJF|(}gWcM}Xk>9~$`gnY+}o zyF6A_((hcL|MtWzA3JkJ(TljnfK&`^Ogy4}{bwn!Bl*gJ=V3^FuIR!?RBEoEnLj$~ zNBH*du@lsH`paH;m-1V8Q}aFZR)4=8e<=xD^7R`umk3(b!u&a>2;fCPmF_+odk5jV z+t1NXP;)`b-7H<}uS6pMEWLdHrAR=2+n6Ru!^yv~BwFQb+(edn;^P4$jriJSi)Ke@ zr}R`N+_Eq6x5DQ}h@D8T79yr4AR;;-wWmZ}T>XHhoJ1nfjKNFbMhG)B5G`6XNVn8e zh%mF6cOHi>1d5bt%LO+sJ6-#K==$!krn0VIy0ie&A*l2Y(hNnJ37|-qE)a02p_l}u zSx|=>1Vw2g7;r#(9cn0wLudjLM4F*0iYO2)qcVjVpSw=*eZTuX_qqOOIQ#5!_Fj9H z-}<e#P~^{CT&S{VJws_7<%~ym@v2W`+D5^g5|I;&mhGbQ((fVux{l+9vDD|9R_jk$ z(53q_Jua&3!C>_uK(_G09WKHfGTo3R#m8-Nm*5hpQV7x~&?uK;2^hk(DdM{uKf+%j zk<BY2E>c^8e?=1?B&iavt6!d9My#LWNfGq}*@e1Z(we!3=k)s2mCm&Vd*de%gU~?A zp_G<98IUcFBp9w%kyOED%S^)o)`7?D{sES~jJSZarJ1fdFUL4-mI#KodEzZIjx8%; zk|rr&>`bMt=HDW(5HH^5^{ug7t!zVemoDEl$YGFamgktRr;IsWrCqfTv66aRO2<%K zFBZN96xNah`<9{}=n==Csw+gBQaDmuFv^?JdTQH`g%#U=2SqCsr#J5PCBeCZ_w4R$ zW+7hpN1goq)X7(N<y+F-*~F=X1AOf97=XU1WW~r2X8wZkoW*t4OPUJ@@SlLRr^52t zd?WMQ2meJb1BB(e`qa$~_BZtaG@b3VNto=?9qxOW%hi0nkzG{F-4U>RtO&Y!3NJx& zE09Fh{!&qas!QDEnHbYp8uB|85dq4K@J-<$Y@jW7^8<~?u7WQ82B4WXj;@||W9Y>M zKF5j0wVbZc_QKQwkJh^W>7#{>I7W{1ns&mo-FE{<9KY*bU7|X#SvU}Gf`7#kObDuo zG)4o-zth~TkVMsMJPqVpJ>mNyO*SDY@MC?0+ZE;g8suosAC5t@WQ$f%9-%jH^NxTF zK9#>^_`ncrg6>AJ#qyQ*tJe1zjE9PA?JovtlA8CE7fL?d8(PZ#Vk#jP3qGdy>HgO9 zt^T>3XTKQ0I8Wjj-S1cJEV)*><vye-6bz@XN~u&ksS0X(^uK2K8Sg-<hr;HXHt&l) zh)0%rvwZ9S+ZOzIRytXH{krx}#r{$rwyQ4jQjY)h)Yp!<OOd3%54WXEndkYtVAZX_ zEc2F_<^KFsNN{w2Bu>W3ilt_kuRL6OsdwccP1XL|-|l$CO^LHi<E`jR;mY?I*=sz{ zH;(>yz_uDf={ONJUiG(^)d3R$&C8f(`Jd!>@2RWyZ-CeZ+nV>4F?^Ov54Vh-dqcjd zxqycVg&1D%^|F80G&JGUJXEhQ8F#6sVh-~uSgjN<ty&m=ta%{t?i<|HN<B;Dku@Zg zpZ_HWc|m#L9be6_flWOYQ57}9t#1sZKz7zAprsxwxG`d1^uLDY7zwA6mh(!ZOXO?G ztjJ5S+3}UeoTJFT)&5Ex*;mm1KCr2}1rw8Fx6=M0)6s=Djhpe4UHs6}EwyM_7RWWW zt?Zu70Ot6*%ylD??stnb%5^^nNnUF6$GtG<c5)ixX83`W{-5XL+D)2u)vQJZUq^0V zEE@5Br`}ykbzUs`tvHZrh~e&CEr9z{H^H^~N^81O`xkNrB2vs4;nJp=FBU#a@wkGx zy=tCMi7}?x@uw2RNnSYF4h`wv&%Qa&ZAh$0LL)gR`DNp$U$GOeUgEy;ub4H9MUQyh zO{_APXdj$Es`m9gym9Q<kx}8(3f-&_0#z1!l7{~5`;vzHn8r3dM(-|qX<0h4#QR6h z1u=jB``BPp>~ob%a^yAEU=|O2hgku@7?cyC!mPi{{Mgef-ZksD4!&c|zN{=Ah%#KZ z&~{8pxro}AgmD|?u^6%28{2rL0)|(7*{NTEi-bvVGSkT*U*zWoU)q{QafJ#ZOTFjT zU1zo;j*r;v&u$rYb~rdDckQsK6^Rv-={zzFRFaxGTJu`jp|oIDECGq%XfGVki|W(? zdnfN1h(AO+w}p#V*{>_7rduLu<Ja&T_z5qflFL3MGiiJ<pHdxdU}e)DoWgLSa4S?S zE3~JxHZX0_V}G{EfCd*o7wN1`n@rvf%o;sM105Cc2n_2m2!o7V8&KzdVi7l$n&XJ` zoWiU<4Gdd)fGJeE0#bWiN{2^ALs{Q{!jtRpD~Z(X2aWZ?<4`>G27Uy62^0%$!`n%M z`6&GWf7dcUp(8JOC4^@ZOB}tzDR(=DbPF2ukv#QKd-Ze~n?H%`YX!1_m6qyqPeKj{ zv14<DAgzsimJEfOeH~wWCxA5DZy*8~gp;=myX7dKMzxKG98#nLATkg~cAkEF)0(ZP zdD{302x!^LtO(x`Ej7@!+&~hO7k6{L!ufl>THfvG;${r7x0dgXPkzMeHJGfn^jI<O z=~M&lidRx(Wo>NfMQQ!jZRfpjzgt+lx%fHPH|EpzUI!1zoHl=_np_Bp9Qpe#ZVHNp z{;1Pf9aNljZ?Lej=1M)}aWK!iZut*pq~MT!ytoTEB_{BOv-EN6$2TVeC&06_)*dpd zRCx<jbsdy)e0oReMNac-!8XaHteS(|{8w~vTCS6Zqh3c42T3D@Yx5R)P~_=bJVSm2 zm$|jp2tf+c_~o*z&Bw^I^1t&WG#I*Cq@Z~(M+JBq%$Py-umk;ZEozGVAu9fJh<~Kh z=}*s7gf0xlsj^&xY?);aih5pb&%(4^vd7@k_L(^gDJ`D-98SPc-Tz}!>s^f@#t0<& zsINKuK3+u1{Lc#jXTW+v;h^Kxrqgwwp2*W}R=&-$f;O55Y13D@y~fz9{Yf^L<Wk3i z0h==RYxV(qM#a7PC}RHPKe^z!w+Yq|OptWytO&F{IA#&u69;PNyP;qMX#F$C4{5aO zAopvRy7_2SBt5q0d<&+8Y1PhcN3z{RNsw_;=IPS8W>;)<J-^k^lMZ;bl}|CuVqfB< zyP>>ByxEngPPgpa?#QS+T#Gf-sAt404Rbxr%EbWN@FZ}k`L*cDqqW>)FJ`G5B3qYc z^*s~p{WqqQ4p}~K=+<f+A+gZ^jnloEwkv~{53APjy)yu1067k};b@!04;2x~Wj@rU zq7QZt{lKO56Qx)nNHWeo7v$>qwDppY4fp0RxME~H2baHpF@P)NCaVuyc95)U)y+5D zhe~v=q*Oa`T@mnjk~^S*VmYv3y87Pctsg50B{OgtNW_`yNE>oq37S_oF@_*cf|sy- zdh>GBgObM9f0kb2$|4?w=$<6I%Cgk1tyn~OBaIDeGkd+-W=9Er$7L^?>_BGxOkl^! zR_C~}y21w~mCaW)Rz3CqciTv&zS}dVqNH{I!3OsM{UE`$0+~|(7iZ;@<R{lOzk)XI zTUVQZ2tLxvHvsoQvQzXigX|erY}M|Hg+LL{i|NXL-vtiFs4EqW6%6w@Pa5ZyO(i;O z2i%*>UX{|U3*j7&VH|y-SO339y>Tizzl87M!Z#a(Bu1JNE#5W3iF-KdVIr;DqO_7P zx~HoG_k&LA<&XVMX?1T#{YX|$EWw!nr-E~N*<j@Q!?7TBgjOa*rS&DYbiaZ;!_^HP z_2Z>pZ)XeImHPOP$xUe`u4_%53e|{<Db)UgNCR)AbuW*ZoMowhGbAuD@0sRzbF*{b zznL!4wg1D(dTowf)q}(Qf5S&@F!xQpmxVy}bY7MwK2S{bZ<iB46q4!VDv(PfzYOg? z)1^*Wz<z|pj$Zekfyp)Hld9l_kI~`-X<q2Bu2^_tsyMkQJD}^?htn;ztfbTyc2XKR z%zUpI$)ye+5K;ozx!$-ZR&OnXXy!YW?HeY}$o?ac;2vXDsa1BqZr*#8+Y-VyplTAt z#jx`90-w!W(%sv^Ytl{1X^CWDc0&9(1crUx!w})KP8La`8eEZ3+!MJGBD9yq=_7(R zBE&7o`A9LwsYVZk3L-+$-742dcE^_BJ1<_VjsBscyAE-`NtT-Cm7|UaH1y_Iy*?W! ze>BL+o@XRKE7=kJS+qe>ysFcUBm2p%&mp#QyCbSJ*<q-q2cBqMY_#KJ>F{!>iUhQE z|1<J^y;0lPW{OnAs=P&24wKkchuPBZ%6iA9VEYT!m+$vj%h;ogY2K_HE!o6r4~e+u zE14aF1igLI323yc%GhFDfu0udqqv3&^6JSZ$m(-zbgR&~J!K;TFuKu`Qj7+(xUuKW zdJ}=3=2@x62E1JlNFAOMfSfDQz8`G^Eo7tfmvUdNy7Lq|s}4<AWI{%R7*DA}fRLsw z_5oVhouDI=LJ=R<;JmaC(EuwYCT%(GgRGoPFOF)8NO&C)O0q&rnTojSWTe>ach1H3 z6G(CzLbfXZRwl3aGY7H_OFh4`E*BXLpnL}9PUB?vn?6~}UAEX4p>#)3<Y@2p;;aZH z7BJ<1%^<4JF>6lby)Ei;ZeL2kg@J5+hUY67Eb(7D&UAc7Rek{TT2T4O{`v7{^Nz8l zapM*$;v0Ib|B1mIn9Ym3c9gM93$<1FHTQz=Wy1jfzCU-t-hXe`2h>D>N-LrJ#-C_0 z9S_2+PM*ql4;Zotwb2yM`=ytdVRLipfQx~=vU%1DUw*FaUuuEF(Z0ly8Ka7Z{XK9V zaMhQaj-eTO(WlT+_I#$`3(}R~2PLwEzPV$pcsyrr_PT``WBSji55{8DvubHKFkOpC z(7n)e1IAA(`D7OVYf#*6!XkTDhjG1xM2wfK)A}aW=$WF;Rz!cF?IQZEm)T|#_X+#F z{_1+)aOioBODh&GrS`X%8z<@*i>-BcOjRa$J)CMYCFfRt7tibNJu|#!lM8s?$c{`% zffjsiF&F$1F49V&5~A(MoC(vLpMM##X-r>e{p`7O<eZ1ST<#X{X{RP}oyL3b;SIBk zvSB&O;ctjEOs9x_K~j{wA3&dbwljI8TyIXSIcp*D?Dn@#5MN-1e+su3vOUj#I-zDr z;H=7n5(ID!svanN8w=-+JzBc=FIe9@?N6~!F;z~GHyG#Sj|Lz$fq-t}JE)jr!`cVa zCBJumjSO;sdQv;uzQ&*foItvB!ttourOn2yc4RUS9=CTH=2|V$8v4u%rCzzHC2$B< zKGF0smEcAqV8}gRpCB8fs1a}G`zmc#y7?Ma_m9Md68aXw?s$A)lbUk^F56Vu{7-j< z{-k|w0ClrHI<FVbXpK|yiF3csiG-fNzvSjg{Lo;r>Q)H5`G`8&+Pysi9d>ivthUc` zJMd$xO#+RJmuJ6&pjRp5Nd)bHncShko7U}{#Yr4{3P*S5Y;Ts~t?_wm*O2Co8dXzn z&alTAG$TLVnmgj(EP<mTr#MDXLY>L=;({J}0IkmJP37})%;=V#u8S6s06_rzdK{D` z*=szgj0{1SO&S-uJAhusbh4^A!n480S1|mcSo4jtk=5~PWfjqc0B&C0!Q!mQ`e=6~ z(izveqaRw&m@n1WcydELUj2(+***xto?9KKs>%PGB{RQjL1IjQJn=-jC<79`opyW^ z(_5;Q&XB5AJP~b&`YjoB!r_s`-^+dd&$(IDrb9AS)LF)2X_KCQRBT`$MfR#hl)Fo2 zr73{2yHUAsI*8c-t+%`USTV(dX%mp4)IqzZ`J-%&<MrZVSt{nLAUjVH)-Q`8dP3)F zLCL9*)$pj3Zb&$B>J~@-EpA4RhrM-|#fcQNz6VmKUPc6)Vk35Pjxz;ater`}T(EM3 zp;_B11d3}UmzLo6yY%O(fiL@An0{vY1BV0sv*j7#lEOj$xm-tn#~Gl`olxqb$ix0D z_~?xF%dXAm5u{u)&q(hVLjfF_;mv(;wz0tWgnkodExinR>$<0imy$w|CV$xCJw_=O z7tot^T?Lp)Px<FM-&B0%WMhEJ0ruJ8{n=tVI)h6)L*u$D1;g}5k7&Wo3g?U!1=mJi za?p=B4jY0d4N=@1xaW+emCEL>alNkc98Q`yB>#iM$Gerg?cBe2(=jR>GTN+PTnxCo zwds@APy8RK0-v1G3rbXR8mhQ?euOLdC3~nq-~9{XW5)st_+Mn@TePZZs7d6)=aG<( zn9s<M&$-QEET^RdIY3CROtD5q#DX<EoS(c^#3NgS@J~&MukLw8_+_aM^CxfL@HK48 z=Q2XszK&(GXtX8(492j)efA4<R_}TYcu8Fga(q&)d56Op#;cK*5nEdiWJjlwbE$&X z|2+4)o+hbPy5sDMUG6qwpY5$}3H9~lU83sS<RY2@V8qTvHU8DqBFH82Lj#Z>SZyw9 z3STmYY{QfViX>#Z`d0ZqD~$F)jJAHJr~c%tBwMf}{Q_o0;x)fL1|+}>#t#0T@oPx@ zXxH@BQOjgYCU;i^jD#89T#59D`AodSAFw>pd~K=b8lRx&9}~x~u>=iLI0?#y5kC*i ztDC*5xo}=Sy_c=qS)_TW;$s(8{ekoy?TlhFtrCJZCVtk(xor3%{YU1Bw{E7U6*{Fs z7@D7FQu91`YLj@S#uC9Em=wq-_j~!A5-1w+o&)FSS#?P(><o|<hYHm4O!2+C(j0)g z&7LUV4CGHG6BgKofQenmaAQj@dqR7ziRAZ8XFBt6Ot;{XimKE7!+;9~t3Jy=(1sw3 zF!ZiE#W%{I7Wqa?p-6J1CNAk#eo0PhA1K+GD;pLR7r1_y%eQVepHoP^6c0It)n%EZ zNb>*)p!9%P-IRV8O^SfG#BSavMEw-l_mF&dM<zmz%i}7-r@<MX8M&b@*kYk9d!Pv% z$9Kd939^FhNx;e#w+L{pyp&PTVI()G|CiYg5(l$EUmnx-a!QoOhwy^@5mgab`Q>_w zb2fR{BdX<oKPOKfn=b&!gMWXMUYcX;@#Q~FBe@y!%83i>rP&Q4y|0yPue1a%_vd8Z znG!je_}bD~D?uX7|AQgN&0k`f=aP(};HEP`UmHrAJk7WstKh1T94DzOIM06)xCP{m zmGm-zruxXqqX2(<FMi|4pKVQ!ud)r2JQKvz4&J$I_3XMu>mA52UAZGJmK>AYn8hMA zn{5r}V2W4;l)3X`)Nv(WlFMucO1`A~WR_ZS7;BklS{Ae~ob)^#Hm1yUhI}){I3?%T z*SdFr;TK?C8j{!IS`09p@(LLOCN2|i<!fB^-o`BSMGbQqay;>klTUB4Ry*sGR~I<f zaK>qf?Kk0I_yz-lx4|-9#%W1yXUa71M`dRh4n<yw=1-H?dI4J~dvLt(&C9L3mT~U$ zW?epYQh6;{{gioQC7*uVFe1bq%@${#oOlxWtoh*K%v9L-kUe|!;2itN(5E_guo6!3 z`}7>&1bDLd+z{I^(j!UIo_%o>T#1pM;@Xb82aE+>81;V(gh+4N{Or9Qy#Jhh+!z?P z8wb_ghw2yrJPCdhu0N9%e)D(|8PFtVZh|u@o$D{0?>|juR;-=>oZqOcn=TPuS1umV zHn_POeoS*Suq|pR+c^}8z*p|4yDMGAeC5^tQ+4d7&1H%FRI`;vB=hmy2_L~vFeT6f z3L9Ry0B$gS$r_Bz*p`<S_dC~@{D*G#Gi%n;X)-qE@A$dNX6Kw|XCc`@dq6+DH}GGD zR#Ri}Y*v!v?uW?gpAXb6U@EDH_Of?l_2e1>yUwUBO{2uVTFhQVJTh%X$s5Fc;`N6r z<145;ZYxQp4N?mAmpZ80F(RG|xSVtQDlnIjQ002!dW?Gh^6B+S?QJs;;d0fl1%=&F z7PxSd1?NaOlGW^;k~-forZ(bjh*GjRJ7r!v^fWosywX(byOU^Egg!+t3?*d$VWn|Z zzOlXiN9E*^i2pe4+wd}rDhWp!izNRw<Nx^Xz1s?8KkwXFS=#frAr=G%Oaq&>Bghk2 zPkK(cP=)cxo_|gMNWbc<by8fjHQ_yCdyUI!`RdEe6wqYaS;2+k$pcMMF&DRoJmD8s zV(&yS7dpt;-Y`hs_eEpAK%1YVjf5E{nYDgJye8y1`qZ^~bwkRV7H2C}ACW0z0am)M z_C|;ShDs{Hk6O`ih33~dFzN!82F<ZlQiTixyPwM7A%g2`N20S#Zn4mO4vkS4R5>Bv z?@Ou@=oEy%-^(f;ZSvt2=WCuDXW*9=-j}+xv~+n?xysCK=f5rwPY1)Ot?^!i1fk3a zi83OU9WOp>wpEv}xt`CNoU+Z`(KfkrKd0=2vr9{B4_}1(AruKXWfX)vA(9SILucs) zED<AZfR!igKZlKSzEY|?df-$5C~!~<(uYCWlAUo5RjCirLBgAJ%MR`sA{H~scXhvw zKoX}wRx&pSk!{y4&OB9U>1~Jcj*JbSU7FBrB(#HJ<%^P>22->`XjH(kBv}-42{5yF zBnz^)f;rLr^$EPv2aJaW_}33Djd2?BZH}>*2imf_S^GF?#KcAj+Yzsdh{z@;?bw{H z<k;m3->%_75AX*PRgSLuhwE(yzMLd!L!tR<K(!%gIY?*Z;5uLyb)|Yp!|~UC$$j!B zB7V7d*ZnD6alLthwl;rMNbm#LL_kPnH?NE#)+EVudlag&XZAfnTwBvlQ(O(In`sxJ zt;98XtR6)fvtEXQ6hICE6+;F=Q~ZY8BMI|>@S_s)@9k@of0tz8hPI+F%9n93dsPsM zEpu#dgyDxRnG)4hBjx<3mn@u{0!x@K$XP0{n|D;^8Rch>XX%5!4)}e|t2PY(v1@`s z07;aK2!Gt1*6az6_f}W)4MA&tn;{5G`f5(Mob+hDb6BvO4=Qv%7Kuf?K-A5Mahn}E zb$Z^7+Kj^DE@>0>A7&2HB36b_k8EH0FF>EJO_F5G+wo(*U9!sJ2nGkfb(17jPHW`v zE#6B0%HbrM#f}q0tCs2AIo1tGB#6S+r<G+_`nBHC;!1rNWy?W_gz(tvatsgyB}j5{ z@AKPNj^VG*AWzu=w71L0X-IQBzuUyF--ZRQsg&8<%Dm}wBEPRTk27@ZY*1v47yLk% z0VI67yy_Og0xWTJfE!+!Z~X*+4#Gh-U#=r1xXogXzO8FPCIv7aMo)3bU1vEPy`!u` z!RxzpoAh*$l>JAII%9fQ(6dRZF0iRKx*x3}iRjibN-rDFJxPXG;-mnR_!Y0cnYIGC zzEs!rwX@e<b%<c-uSX^ydHJVObZ9Tzqv03a>K#a0$Sh7{kDW+w))Cy{Rlm83Fht-D zA6?TMoZX}!%)v3?O$R@Lj`Ou;9Ya56&P&TXu9|{xgmJ9Xz)~RF1Xo56^17eJTG(!f zxAU`H7j~)vB^}p!e5O*kiG>(ea)S2!6X9^uX&G)E0<D=n;!f7oqG|ZH&ac~!hFpnU z+=QJwXdOp{c{EvBq5&mDfvh6nB4zQN%BBkl(Z$fwiB)5*2|?bm%SvJ5Flj6;Om}JH zS$8g@FKftxp1-y;T=6+J3pqaHiOJ1Mf$gdDJ>DOjzftOWQ2B|EhAVbxFP&ZIHIde_ zEpnDQa*i3rsYUP%_A-%1j`43k+yZHp%t0T;&1=FeOJFS6)m<m6(9R9N5!x&C6de_` z+Np=Ea+m;9F6TC9law@p3@Sr@Fa!n@(0ZYV@f(qs4jse1;$4S81@>@D>EY&plaC)G zk^FZt8r;wMZ<r$4i`pBfAal+<>j<g@M`<G|kRhu0<!Yl4PL^X=S2l$Gmk=lG)|1~& zAIQ0`ZmBAze<A)gHGE3qPVFXf^xhXREQ1DKr!(}Xfo<bfh+3Pi*IGS9bs=MD^|W8J zp(j1BNPh8k<&9#E!)~<{4iBIJJ=4!qSc^-Ux6f%1@fL@&me0MAf<{PW?<hme=1s=b zw<8wHRV9%p?e9lb^m-5&qK(XmM&<*PmzL?@%=5cthx!5GkC424ZzHUD=g6NY^p&d; zP`|u`p6XAbA28(ZaXF=x_sBT@apZ|Y(wZ^~wFIJb?PEg;lP_K2iR?d$tZeOfzpL?| zc$j+k!t%<jbeBJ=T;cj}k9=Dj<iG6c#b!$-87&2Uh3CXue(l%DP%&J|`Igb2eORF; zc&Ui#uv0U{8ITS*mv1}W-tUxM(L4q3k>KW0@x0z7y*1OIpHkgK?IJIAFU__v{`_-w zAAE)CJ99E{PDFL;ECceLO6n!6{%Z2n9()Uq#I<F_>mtK%yPed$phP_Gw*NQxzg1E7 zTY|*ddtW$q-SzasUBI6)T}|*CnNj64vvTT2%wm$$kn#tAhm@n3nG;~Q?B4fZc+_}o z>E4gM?AF7Rt0&Xt^#;mlwBO?NePXw-cgvDTIn4HC^)byYs?nsIVFcO6asBUM2lVOL z>Z~O8M}vvoi5*-bkR$+o`R;^cFLEQn`|nZWEW_)=gyO8SuRQ)}sk%lAhcu+SoQqfH z7vvXlk(zDsi9~vt6SWINxDO|&z~ecygSjlL!d%vQ-^^IDLiU1rR!R&Pm!VJ<)Ou~L zRKleNJAL1i38LcXx|AQ%r*2*1Aiol}CJ1=$7!4=}WAK`c#-j^w;&?`#L1U8PaSjDH z8pGR>Qh9HHXS-j9XIbHcLr6<q`Dp>`0}dX$8*w?_Ml4ONQmNf!N0Tpkgt@H!2e>^; zAxA?v@RomcLJ%PRzpeK;Z;aRk-H5(?Ar?{N$5Tw5_qRml7Y#2)m)_Kh+1Fwp@oP|| zmE@y=dAn?yKET!x=3dimJs&|rZCje-6E^b8lP!h|<&1gAcddtQDkv&PPGZpu-vt$* z4NHlhq_rq^L~t)uwiud<`yL8WQ{d=TXg-TrEVTYwu1Hs71FOa@V{Rcr4fjq>f+!@g zebgN*&gafv=!h78cljcs+Uujk0O5UUd*;Txzc|50oZ!r>d13!=87httkK0q(@TeVS z?j22m0xzXlAv+3qg1;+bD_MU4yu??W;432fI<j`u^Ls>(Sls?c`9f*fd>ENF<pHu< zUMsX$r;fVnWaVVn2Dh?7#nYUOy9as-MpaiyR+lqWVJAdA<d<AvD;HC379Y_v7BKXW zfd@_8^oEo_U$v@Q&$;e@Hh{x;PH%q3$~>RNN)3Ot8S*1O!mI~8ew@B<K84X2zuKNv zc1j|TYJqI7sOBk&Jo=xDMLY#llEXacY?+|f)D5v{FW|DHT6rQq7)i*Ly7(J9Mt*8O zW!c{<mWL7@+LKrIb;?lC1uAftSdvM+d*l^AyhAuGbEkrpQNRoEBCl#apt6l`Zc8IC zh766G`~7!R)q3-8SeE)Oi3or_KN=dW!fz6GfPZv7qiiVFgj!}(Z7R1oX|$MUP8J<x zFzm%56!Dro7+rd?IC6)kJ^oQK@o;liw)(qhx2k|{&14dg2Zo5}E6jbB>}Q54b2Bg^ zF3yKr$pnOG9gyY6k2`bkh`5DVsT?V=%J$x!%Psxkt)l5RVSn`f*K$;&V*<_D`rN*1 zkOzTNHw+lC0!qhXjc3_IeUE4<BTi?6JY;klTkkxGxzw$Z@}6|#`dRGO?Unc)qpPHZ zeS$)on+fXp*(&fKoA@2|)aEt)vDyE4;sS`e%%=K~eO=H@lY<neb8yb$x#rcs8Pk8v zJ!yX>3=_t~(n^6~88lDg_?`2}#}oPzex75(QR`o$?K|xXem(2_YD954_QkI3)xXuQ zZ;b2Z2!t={>4Du}JvT(uNlMv1r3C=#KuyR1ej2sDNulq~z_M*P{@ZL8`4z7^edAS- zPf-#K%<T_1i4LmKK}*}K`yEc4#Lc@dchAz-zcqFOcS^}o|JaSO5y8BSB=d%ju~o0- zFqSpmf;-)!fXW1U2ysgO^{>SL>-iUBL!Rn=kq^wT_uiE*8WB{wln4S5sHe;`ZZIlf zBC?mTO_81}#hZ(<g<F?mVyOF^inA?}xSWK41I{JcY#EzAR!ka6Ls}UUWYl<AcpM;E zxUaNlh`ft6WuCxcbZVU#hwRQJzTJ1&%hLI9%Xx(%XYCv82w4x31FlBZu|fT6sA2%H zk_RiM%}cl0cMKZ0{mtH7e$ks`I-N+XL9g1fJsOiMRy?Q7C5r~51GISX^_JP7It}9> zO^LZaIV+xJ0nM2C2cqxZS(M#KKno7V4%eZcyK)sCyCI|o4D|wL9*~E-{tt2d-mfA1 z9v(I=zHPCiznP!{2J#<IgHHbz=wAxSD$YIGMk8U{^N77zX)X;!(*Q*vC#ajhbQw5a zkXQEaHNB^2<#TxwrjSOD0$(DK=QHG<nvfCVS5{O?ebVw>ke`lYr;(=Q*qMK1Dc6F< z%WM=rShWo>W<L~pRV05Fk2^BTemwO<H{uGbypu&(P}Rv$aSkWR*Eo(J{K}QYB+kzh zYH)!NYdtSdyC~qc_ar&CYBEvLp8f7pS5rDVN@=C+rDN8<7G|@>!V|`W+ZW!&DL!Ep zNLj~P&Kt=~ouMvCL-hzafRh)*Ldrbv4b8VrKSCU9M*9qie+g5tsx+NUdOx^?xmTGs zDo_?q^1sjEg~ad=e#SFYX{Q47;@HSf)H)RYKD1CeClI*tZ0|Mr<7OCn`qYi3bGXbS zBd#fu9P4k|KY+Qqr&<=sbP(JHD9NnRcUUULwr>=-)4_S+Oyd8>V(Y(K^-!jH+})7b zL9uwly6>ct95zJXr!Uqy_C0HzUT~q9`kEkyX8&tc$q6NF#U1-C>7p5&J${bG?>Zqq zZdn5=B}Rte$HbbI4|fp;Cw^VPVFr?rRJ7G-Yb|3NdLHooZSjb&m|qtTbW~#WM5s7p z{)PkPTN?Ol_z4v}VfB~5w>>Flc~1h%Fqj$Pz~m9#aQyl*BB=C|Ge@`ch3sUSSKA;# z&u(=XGM5~F7_Q`CI%p@M8jPTqsKooN=UdLnNB|pO<J?6H?qgI{;aef|Q4~?(P0Qgq zS&+|N{^vkR>+%GKZ2OaQdXS=9a?kuu>OKbJv39h$VMv(?)sy9Q)!9^PfrvBtb+E{h ziN98pA?^0(0H#&Lp`g%o{1`@*189C@C`f=TEtdl)p0}tTWf<|yjziJ9Tj)HJXlnYv z{F?mWgP_P|iaMh}EJT$Ux`yP^@r(6CrYqI?WAyB(`jD)Jhw$0ROVi!Z0UE#)*fxQJ z;Sy~^c~IZ3I(`oBKe&>-Y<O8s{)rY`%eOiXLZ`i)K|0^pi4#SdIEcnWle4$`ccTwI zz`v}dp#j#{ze<b4Y)-$w_lohfWS_FBj9_6cmwSSpIr;5nNHHT$Z3VJFdg2F@PDl|o z&+{y^srqAlsr|wMBwDGPSdsYCzLuK{{3lIic;yw6Bo0p93g}*;=~9(9;#yDxOr2jg zEknDcWg@YJc>|T+e@H&-+boYVLqT4O7JqM81}(21&^HJ@I(3$peAIf}qP}B(qd~WS zo(cIQw0fyaDfrpUddL51`J;@ybW8lb$F*pAS@NKJ_)Njlhomz&vDm*E>B-wpKTcSl zd?e!UxQWI&D^>!&4Gz&2L{m?DE8&p-7_yRn9BL^ryT(YQi%EE%vJIK|6Ttx%nBS-| zPkY>&-MU0m=WBmC-w~+k_A|kcVs1PQ*S%?Bjb*d!eEhq37Uh7K^#Xg6ORiaQLG25U zhY4b}Ut9F!c{e`$s>{YJrrl5D7wfIx?^<#+kU78c0_hxeVn>7MZd5rE`x`kq&#Nv$ z9oJMc4jte887CnbKUn<jj+<a_$`G+;zgzk4f1Anq1{Ta(*?FBU{$Z>R=o-FU{zxMw zh+hd}G?x&Zewo@V{V72Ir-(uKYA0hI7De=UOP~a`4i){H6czyI=*!REX~(FVK<taX zLvZ|>6_*$k4h@Dps=h&k&q&NV>KrbjNocy>xx{`kMh_?mS8lzP_IMhY)D{vbw4-{_ z!p338*Dne5!r^+S9TF}E;djA1$TxPJCSk+73#9-}*YgXvKo6r(eLn0;26>cUF1O4+ zTt?@^>!_2rkg#^)xf8@X#ynf%!-5xFt`~NcQ9F{V!?fdRLe@5?bIv~%4iQ{HO+Xet zccBIUqDS+*Ap1p?WBZ-90t3n;l9>dIO&MB+l8-#bv5F`pMj#1@*#keFPOgKr_)wgk zc@{a|C2B`^XncWd9gYwFEI)k;vwpIpvwcSfHkI1p1T>+djNo|PkZ_1T09=zTZPfMn zshcNe{>_l9CJ<X2_>w8Lm`%tc^uffCLbkORdo^*g(O!l@3T>j_70dVO2-yIpd6Es} zV~o*=O+_>DFo3kcq@I`b?o8<f*WXpEHWK$DFdW~nZS|vgv0SPr9jDtOR>si2wG{7x zXe7HxCY5A`X=Hi}5#K4k$*8IL#Ja*nY3NdVU4oSAXD(l7?M#Xh{a-q=eE9;MWfTuW z#p0g<=j3h0Wje(aDZ3Qdmih#jK~gHwuXXSREv*l(p1Xhdrlkk-|BPsacpY(iDIY~c z3Khd)vZj6Z9gd58&6$1=DNG}vCsro6z$rL1`8ZlS?8uZ<PAiSj&YRs$5qA0u>C$IC z7_I)U62)oxnd^?bf$ZPzMl!7f40*sz6n(!=WK+drE}5qcfdk7xGw=qlY&_47wy^e( zdMjgdLvjqld;qh(%9Ot?wE8ll&=zp9|7K3S6G%Gq{L^ibXVN_TxERlv?gzcDeoYVq z9r^P!ifC_vC@Q-Nsh9)l0qT1H&JrGoMSuQ@OH)Q4d&@pVtu_DMdEJ;xy;(f;8qo3h z?PqqpzF;itk(xS^>-)R)o~S~bgOK)hRiwf46+1Xxj?Bp|dyeyX(z<(nQ|VXEj6L;q zGzeo|XranHx5bw|X|En;-&qylAj^f%5?XXy*S{vHqR=Ain-!{OH+MWYA!VDSeSrz| z)84b}>goKb-8zPeBgIpsU3Pfcf#EXIw9tI6FRMBx&Q<Kl*95J&4m<|OiJv@eir`ag zuj$EWlIs0w&GRNn7I#%Qv(kK*J^Q(5bT?z-tOtJ$AyFILQy9~j*2Kn1HtkI-PxZ0e zp0tzzNC!;ptFQA@JYZkE@~i(4kLqUCW>&@-V33qA9c0W?y!)&Hykg?qM=k*rl`p1p z`)ApjFm;4~`FgT_Z7=bTOwtFRNKb;@&S^C~$2+M&!eTK$Q~(I&*T<AhO);>9{Dsd) zN-aB~a0jF2ST}tGV!4uEVlG)f5e|ut=aRL4`49zp0uxf#UmuXw$@7IM+s5>-PL+nF z5MV}2kl1%eZs8!U|JO@q7Tx?$W}us(fV-qt$_+M2e@J|z?2_<bK^eOqlzOLl0{^Jm zR>-pI5zM&D!Jz0a>_Kt$S3>)H#bS)>ef#tKO`6gruGmk6D!Bc0y0z0y5_MxNk-JbF z<#_NbzW?RSqq5SdR@MTWd)xd#W96@K(8})L@?})Wp01G%*1a>!Y<U+gj!DvE$7_&- zPRO)6<A3!sLc_L_;a0FlYWB=Hej|k?coRQ4n#Gzn6&pHcoO$Aul3kCusUpyqG3&R^ zsxB#a6JX7J&L|l{R97()yobboIQZgsW~e@wB`9#R$du3E@ZUW0B%JT=-}h*TxbblE zZ6dRaD3-;?%<!;N#8m}QIU(Sp<K=%9yBDD?y2ew9#ug$JCPZs+(yuwp5)lU)ot+LI zfUI7wg~j>6*!dbT%4snqaDr)0Zbc+g0JX`d*!}~emc+<U5b>n^h^wR5Eg1~`*3&Ki zgPDSh<dF)2n@5R{5&NIu7HPc>{7tJE9xg%-(@P4DG&UYvy2k}LHNG}2EzG{-Pm+qD z4p|*byD>i?st$DSOjdaw7c$Xk&7?eqS>(svdYf;?JX74sRnmHr%f^plBGrc2?;EE) zryKs%DVTlK0%R1JhToGh+@p<2g0ZhgyeUTy!M_8yzLOxjsqxbvJCN(o^JAS-ikM2f z0Ofhs5!rz6%d(m`D6{cE9GGT{O`d@#dll@?fU$p`-&$7iL%^Y>9SrKI^S5;ZPAdVj zvLg^Y#N2E)q>HG&StsQubh+wHh9&HC+6}VUXI1t`P<6s-CwN$l+W3xu1lX2J^2FsS z&oa6%QYsHZEYV^R#|ICeI^CjqeoE}fr+RAH%zQPNG+n{jDgo!+HAZ=to<%Cy49cBo zCY|q1I!GNX{s5<c&5^0pBxQy+Xa<-M8H<I|L@7+Xmf_5{S;yIYZFsNwotQ_AS--va z{%%W9F3G$#H1B!<ZDIo9k%Nfx4h<nqU!?e{7p5@fT7vG|1cq20Bd_GWW%$%z%2ZLO zA+FVUSNs60a23Q9L<JjDc!n?0+W#{eGf)y=pe4x#v;hSRJ;(f_W~8PU%NNG}XofSm z7F~qvBkGHUQBf1S{-pXqr}J%reNzmRV0AS<#3W}uO`IDVK<lAecfh^gOw^k&Gf%C) z(hT4nv-874WtGiQBhF6ZOX4n{`dP-5hrtYR!OUwE^|*XEVU%`_IQbJah+)jSF>W8- z;NSWfPLMMY7fUrZ#2^vC>iXO?{@EI*GRrii$;g|er34qJw=H$mur#K8cmE>f%JB2` zx5^@^(`GJYdXuqzwERJKOyj?RJgH~o?G~rfFH>!{0?R*n9|UhrsJ&rM^W0d?Ar5BI z*U*+u<PjlD{3G+ap2F@)s{3BiuNZ}!#h!(F4^_v15NJ`WXHYizEy<5?DsVN(G@HUA z6^|IU&la8yicDrYZZTaxy7}XRt7Jx8C|n2z0nS+@_{I~C@wHejl)bd_uMe&OVSwRd zscaS~*0Fpj1r-E-<v?@eybcK{rV>PvtJS3HF_bQgED#Qn96czYnE%6X3EqOts>X+X zP{@E%Nl|P}Q!K~GNe3GtH&e~=IUU2$eZc}wjThn7)a#fqD@=1M)KNgnrr}QH9r3{c z`zt2O8Jvg<TErZ3x8*`J3DCc@htUz{`Hs<5gw?Vxe-6S~iVmJ8)5^j0r9Vb{{RH3# zh$XzP0`tgh@f5|h^Wbta!Iz%J*(tiv4}zPzg&&~4?!B9WmV#KKUzbd$yH)sISY0TE zFtPYhUxIU}B?e>9flfll*$gSfA|i5&M1A)A1+PO@7EzN+v`#m?T<Rh#R}j2Kvn|+E zhvcD{yeL(`PDhKeKql08C1wZ1itmX@c`Y3cd8&m;N~+wGwp;$b3#uQ~()KmBl9#<y zhas&lxOm<OrNNKnf`;NaMSqp3Twl6)OkH)<u_y7$jh`X-uB4h&tq{x_iGQGnzVTtq z>(N#J2X2^68pfdHX>jT9yp-G&=MC00#AD5()096_?oiHcE=^8eNv6bwMLm#l+C9sb z%R`)1`X%cw+`)~sZq77~1IAH@Q$!`QTLEOzX;qw5ocrmgOOHb_;cNiU4qH1TPXEI3 zr@lq2gz3s+Jy4e#_i7r*rBPUOU+Ct&Stf{IO}Z@ZKuB{sPhA(!Wl&ab>&T@!mO6lw zW3!md3C@+Dcz6zE*G}w=oRavX(X9IWGQ`D_ISIX;7Zs!hn#(cXF}<x?X~Yeu+7TC) z2wcYHMiF5KZ%TJzmXoXT1|^>r?GRRg(~&+`h^&dmO*x@*i#iW_OP%Fe#{Mwu_GqC` zIoVVt1^?yh=AO{Imz{QPbGBBExZ)*+3tUH@`mvjte-Jxi>p$O<zqzR3lg1l2`UrF} z*cWq@hpoCfy~%{2U13;Lo@hH%V@*9F4fq@7JP~9@ryB8)cKR_An(_GSy*UeIKs2ME zVpy~|ey_xMiH0EYkP1iai1uGMO@CAjzcgLr+(J}>Nm2F+hT|K{U+bMO;{Js@jPp`) znjj;J<pHJ(GUAuFyMhAO3DgVwONnq}<DcG4e_Z@H=yf#(e9d|W7`er}y)Um^FKTt8 z$#UID3HIJAfGvaU@TEaUH$~+b`kb;E=7?dQ;<y~*$G&SAY8Y_~-Wl>`$(f#Y;+%|R z={ihfmN$!Re!XnkG@K%vBzQe42B>U_k`9x2g2`b;GSMArj6E$@9wrRubxsJbIC=BZ zR&7I~Khm1>_X8A<eF%L-O-dx6S$1ue=u6gHMTn2{ro;?`l+NnV=tw#&k-`c4lu_AU zj<Mh0)lCtcmt++p55?hWVhQzu)Tzn8TAe*#4KKUu8)zG-A}dUt-WKC{)tD0|MqNks zQ1sT+)2(NX_NafihzGfcf<MdGng)>qggf1VfTS(rW)`dd-QM4}vz<RO7sLi9EXhQd zS8_<n^{wc5!n@ezzAiw|A16@%eI0g6UDA@U&~j1&X?XiI+O!iA8&VIeQFZZ8oZ>O5 zpQ0MBE0B>$4m5?u1+>bd6y}d@$Eo3EMW9F!k;n<tW5sGtLE9s7{Zk2n>nr?0jQj+h zjP_`C%;xO?@`+OGkBHpp%<6F^eFctS;Ay4wJu=T~W9(qu;Dq#)y;F9`xUl{L9G2?h zQ45-BUN2uiQVLMG;F$Heg&B56)RMgH9LsmplBE#M^$nx$*Ff<MdTJ^SgMrNI$wK8c zT%3i8?bM#g$>;t^l+ec>PNtyv`U&8q@DI?lKAyM?(tlDFhC+yXIzX~ZckH(;4IG*` z+UQ!<bIfpuo*ee)D4PV@5qqW%uqw39%^Q-M7gGao>=6X}?>H=W6{-#vGZQ%Zk`0s_ zloa!H0Y(if1wmx-mRex8C}V%;xeJaN(|^IsL{ISbRQ9)Om`$#t;X0X{Z#E>E<AAf4 z`0}cG=5i3^=_#k7dMfo>xo4A+JEgJB|61(w<_*t<GiH&5w=F?E0)bYaM%-b;26J8F zL~h<jI-5iMQ8^3m90Ho@stD?vNxQ2Aaju9h3(VFy>ZHH8fWvicSvQ#&_&K|%)7vy1 zsS5+muuErxeNb84ii^n45;QcZ;c-;Lej!R%m<F|=1g*mppZv^k#Ie(k2c63Lo8aQj z$5sdd_PbVa-sxac<eACXZG`h`5yL}#TySr0d_KHgmUl#3qFWE{WNR9#>-SmM<32>1 z!=gp2I6pA6bR0*Y+t8M2omo<+*Qr`&Z$C-o<)5c`u4$pY;$O3YaZHD7y|zd$04}j% zFAOOdVoFat0=c|%M)oXP$96r;njozNi|lSeInAt~7gTKD6~#;*-TMU$4g3?=iw!== z69(LvG79S#YZgPxQIf-gPZnaYn#6?DmmHL<TT?JT9NVK5R=v=PFzGO?{r+$YM_C#W zoh%i#YPW@;;XS5>BG0hd5)l}#4&he+pTbWl5_3Yn>jde8ljmN>kqNv5`xdAhlYfF| zoTy$zEBdZa)ZmvW-JfXrWc={-g%sdB-b}DVo5r)$f>41N1HpNE*M}D;*eS3Vj$!vV z-;NB&&!DYpoVs5{vO!qq>KFV3@p0APk~}3zlymcAA<fYVc*hzpnaAm>a1K{VkzVkI zFE9E_pS6^ej*+eAgBH9;E!rH}5y}Y@9AyrZYDW69(VvQ*w<jGvieff0$8uYNB-iRZ zI4(QQYVV)#?!Q^X*njUCvu1~9v|9^vqJYRY38%PNXScRJ&e+8DR}BBHupMXfq^uK) z1V)stL{T&I$|uI3%*z*95J|h*@{R6(QWXJ05L91?z*}x-_l3b;6xw6aBgMH;RbS8a zW<nl|6Qz6N8M8}@F?lXeu~}cilkgr1)fVea)PW=Atm8jWE>j)z@ohLk+L%##iJ}O# zK3g#tS&4*_>tC~q7w`V|Ge49PKs}U#^q7<@*VCthby0+5RuPY4ovA5I3d#IKVWZo; zMQ6)vQzlxF>MHl%j^3^A$I%wW<~>uQDAPe-`Gc(GzT>+1^5dV>{WCkB2V-wjqAl#N z(VN*Z9*dQ7^NSV}!cdlwo<AtZ%dl&k4?7d>Oq}IbHDz~1pt4o!8&Am3ur}iG$Zbw7 z|62hTfjO9E=iy9SnRYe7paY!<vpY6Ctn`8iR4*M&d=YRe!k>8?A~8i2Ary-<-dXmp zy6B+9rS&HYzXY6Y#Wvi&e_NSM*t-s+v0<3_l_8+HYbSo;V))4Iv}&2964~aE>ub)f z+6jr~ZA`ZX(0^02tM16d;JDHDn6gA?6NGP}s2;f#%^QkZC#7=gaxhbqy~c^`cn`D? zJ$<Jg{{&msV-@a+_$Y2W24NXXybHGLZ`nkoOFFsX^Ak{=z}7steb)=$2k}P{>3jHs zy$xLl5rM2G_jGHTawAfO3;D0180+YD?iU!=Da1t2O-V0~v-wmmo)h$eg!HxoH0yB9 za|J%jxNFg>qvTHp{|@|@Rza5sKiFOg-Vr59l<ILx-0>y4Z5TZr!7k}!TWiZYq`rx< zIIog|kwZd@9rjgkmq_X#MZyUJ2XtG9&O8}g`FescdmwjwFO*o=XpF<`$W%!Kx5MOX zz?*#=m)+9#U_Na8V68dN*S@O&E;ecK?)JCEwMDW`2E5yGJ=@T7y7kl1OZumk_`35; z+QQ&i;W3VLSr1ZdGeJW5g=F^L$yj`r*{zOQccRikFsEh7H}c%SSz<;uJ9L13c2V2D zp|FVg(2<GJTq~tij;@FIahKR&liP(Z9jPLy1Ekr#G-01ug5cnU9jZI8am10O$(7nA zw;!#;Wu;+na$rzBaH-S)sl{WffeL^G0~KsPDO4>Q)P}NYBz>YzI@ToM{^s39j0A_g z5kdOM2don3QAL{&kdTGeUqMW%8=-}b4?NfDz1}gEm@c@>D~p>n><SImSL+q3Xrx>S z0GnW<RmOUPNcVFjGQFM~pmg$3I-6W3p}~4QdW00L6@1hZ0-E9tm$!bf0@I7~QCTNL zA4I-cEc5c^Xa*eXg+ruZcsP;8wNN}Fh51a1*h;H=8aTZ43JN88*-AhdT0gLrU3dsA zGdw`bF|)>(s-TuwhJ6TTJT1q&(|}VNgH@78_MhjpUPO~*Fh2pReNpkQ+L(2RA{!-4 zdKqj%s%@`VvpU8b`AanaVv(yie)21X;dOE&J+=8!1!u+@?_#h%_NoLH>uAIsO82{= zq(@^_tG&0)i>TPsD&#%sQYXLo;JFkEtp(LB@mblD!G?L%&xn>r+78$z&<m)Ww$m}H zBO!ZuP1J)To%V7l0=@30KtYO%N2EG#=PnvpRYebwg69QUIn!aP<J?x2ZKU9}W_k(2 zwv*UoDp9Kj9^lYA1Sw$tPl3by3bNH_b<?faZKr)JDHh0#eeMe`t536ALR4N0tXp>r zAZ!Y6OH<9MA+TTvm~RJ9s7`oAb31Gd97Qk+4_~B+ssmg!+(Z{DdJ~e^QHtv$t@J8{ z_HtfNR@PE*p~td{0AgOA4X4VlFmyH_iYS5SsKZkA<3;b0(+7^6tk6WlPp}L(uLNb6 zb)2lwPDjMpEGVW3iCSBlQpCDt%RU9996B<j1OHA~LOwHoc0A1=@dwnMA$|E!p>Z=S z$*Y`HoK;uE&q5^zmmFPpUBeKki<(!9l=kl(<x#Wq<E6vdp0Cj{*zg=f%;gK0<4s`V zIL)OGgwjDCEz88PTr13eaCgE8Uw5ypX=dg3Z%UM5bxn@t0$yToRgM4wm<`BQ+cMl- zjwNOva{Lk1VP#Dj#OdTxKPh;#2!$Xn;4_*ZT}lPuhoG?yalFJ$p<-{@9al;wEN{$* zp*w+5qHf*F7G~1w_%A)*{Xo}zr$K#%4w{R&j%=qbjBEP_<g|sHwgF!O9ky8hts2$t zOUS|s?d^cokKO`mj##_@{&WrV{(_`s)eKjhLt6I7KX<EHwtGsXFjsbW2m1jx1uvv_ zLc}%9$B*9PXw$Q#P!9u%WHO{H)?WF|%T<f;CUt3aYwsr!i8gS4!gx$rrO=x&>o<>+ ziTqMk8+}~+s@80X9R3`f)6vR^vohiuLJgw5_x<o2)*LK*!`Kc)FXHv9y|4^`J|uRj zlda!Q&S>Ca)5&A^!4eiSv5nwB#A$H;eKw0vu`NuDO>zwD5G~<oiM=S!+Ay%bW5VD! znQ`S&cK+`UxyoEqC1RT==ty1)s=IdLv4Q~<U#Igh&$T(T>9}rpy^lBLhaE}^`@Icc z3Lkn|m#8_~o%6aayY2uQg;+eTjrWG9oPdYmFEIG_esMC-YSQ0*3(`v#vEzb^6VSdv zyGyC#j0mu+bX<6r&f9}C!C92@w`ETA65M;xd)NB{Q$Dn_Xo=~aD#TtBAuhvk6k#~y zwZ9cz+H1JH^sPb_2vU~DDnB1~M0yYS7eCdoSmai1a~gwY^~U!GKjj3w;wKx&@8jXp zA3xWgRJHE@!j!M5c?SB!DbuWcAHW{M6aG<m?m*hPKU}6gOrtnU?iQzs{MD9%0|OC0 z@oRF10L5A2^YDl}>uyI*+G7BY<^;4AP}d`ORV_;qYnC-BMK?sWL>9gd*5aWebI?t9 zTpoo7(J?1!G6EL00B54wQnR}|jV_2<G8rVKVQ!2~Wv9_m(Gxs`BVb@2_?`WEv$y!( zFnucLdvFmNwY8FM0o~BJ<2bOzbUfMrea%4J6g?5ywHZWKuyXN|&<QfaR3HW;CuF6E ztE;Yu=Ocf^$p?_Ltw<q)6{`3FH{`E{g4-(L$aUpFCnKvpucvhFInNecNdd?pJM8H% zV>ARXrSj6*72tt^*)5N!fOuiYK9F|>BJhpry`wDm#gvZ%(rZMZm4k=8cVds$jyS+J z?JiUg*5TQPL+JYXeB9nH3jT_*Y}Q@z=a^UBx@$}C&Z`~q#3VW+T7#O}T`P2q8ZMiH zNhUeKPFuLx<h};urNpp-_sjUapMv%5dDv11IyqQ^;n=<Gq9Z4xC9R(tbM8qB9EiJu zYU^2wg2R&F-j=HVk}qZ&ggJs>wLx!K8*xJ(9y{4+3bBh|9vOaIlsv3Pdkpa~W*vJU zWWs0G4@PE=nre>YNe{s>zWx#m>+{0_)$S#A=X4GJqIM!M3fK8{${AHOcCa4==ME9S z1VS0k*npiKs)l!qke1Yf$X3`ZveCQ_Z?0XQKN_sTiGsy|%^x+Dn-Z#R7`&ZbfuOKh zI|A*wrkz#1_g}hV3Z`LAm0ou9mxFSiu&AS^6<(CPYLC+&KbA|SgPRGbD&`AR^3Drf zeJ~J8CACyuD!XCtLqU)NizSUkupq=PJfwVwH(A|zYhxL#0fAOm+`L$Xafi?v7-x|0 zT#M*|60N~rhG%*91yRn!f9?i*8-@way+=xUjL*|5!Dj$lnLahS>syCmRVkbm0r51$ z?UY_5iF^IJZ2E)nEhwpj$glgM+>YbPUJYqC5#^tyMj{<@CEiFQ!7pG0QYte7WcZh3 zSOe%Z_|e#u-!QD6l`Rq8P5C1~4FxmACTsvXBWr$Vj136)-4s6jY~zZt-UVu#z0SF+ zz6Eo0LBc2NP#6|q;CPRxl|BFf8L}j3(|}F`ctl%pdy-A7RyEnL)qzqu{j-4tdH5}x zME^(GV&uOz4)oGV;so64GeDSW7^(+xR<3<LC1xNQK6tV&8~PL?sopBsENH?~!JPyG zxm4*bJ-c=eQHPOBzvu}%=IA}Nf;*DNkE}v@s19*_Bs$5P-;ekZ2@6w-(vp<5vsesJ ziH&(NdQ@!?hv#vTdhG0*d~X%3Fb7W|s>UbreE8Y-KOMt*r`P}Ioetd6c;pYr+E4f_ zSXV`})QY{{l$=vik^kPYUeA~|4QN$SA|NxD*TREF(IpKDJ&8@26M2|IsDjKZJQ9QX z;TQmAI_%qG%g^TTT@fH#*s}if%{n^BiF<o1df+Sy*(-()pFT~O&DJ1a>NHw$lp@5v z$cl4A93lWFxo^#M?<YiRxpZ(V_*jd)TM&77WpecZOpW!Kj&R*@m=~{tWF)Zh;TxSL z)#xb(dqARqjw>K#+X}?uEZq4=Y(S}i+?j6q<EzS;tR%?pk=M%V=~Jq<A}jN-JpLjF zqr$RtD4?RUi5zTx0s%Kp<i1DtJ8b_*g;+D+MnVVh=<jvQkrWgCjV8ttTC9FCYa4fc zL1@BAK|F(w$Oa{E9Ikt}>r1bL#QZ)%XC5gdHjzWw>jYD*wD0%HuC3;G!*uM2*Budi zY4XD%@V)Qby8}r1{z}NTft&+vtL=bN_#pTVVsZ1`K7Z)I(H}myFX6fl+}7AwTU{g8 z?f<(RYoC8N!2Z9tf2<iCgg2>koNz+hf_?6C!(lqts*QZR#DCIR`okToDl7Nr8voHH z%7cp+n)gN%{My&$2=YadUh*=|QCSK_EGewSAi<Y_jE>Wqey)7)wLDp}uWYX51jDen zc(N#Zw01t^egqBKr1UXbkNh7&gWs~Kn|Iwi5=zn7=Rdh`Aj%1RNp<?DmERRU&`{*% zMRxWHWuMIw^8%+2R)H!0To(2rs3;;Lyb0WAGpqjlA1;jlepXKpjP3FL!v5rOPM9QX z$k!MF)i_mR{rA2C()~J!=P;}}#FGl>siw)hJkLc{o1qYQ&HfsPB@CgvN!j6gIIOde zmq3R&&l%d?S47r~xGULPYMn#2724PkQR?FyRL4J4Dq_ay{{Dm2z4F{?7{Lf|B;)z2 zAV3i=G@V}n$DE$+oS;K&Vw23Ny;IQ)r;wn)tnnB^dxf$2SU0FBx*6LU2JCC`XY{a^ zH>cjEU0cn%UpO!^APPUy&QiOkj_BpNLGrPYE||!U$N;RX$~t%x(2_zlDd`de*7s~r z*9%cOPUlVFI3(9^XoP&va3L%1+;Zq3@B^Md)I#Pi9kl$Zb2HkvVPIM0gHtke4yp&1 zyE6FyaP{4BO<&!^%&?LGg3N#kOF%$Y0zqRFg2<L7vb4;w0zwdKjqL*j5@i{tK#&p{ zf{cc+v064^1W^$Zh6Myf1huVV`?ODg?+tzWt`Gl_^F8<8bIv{Y+;h*!;9dYK0b_CC zF&729F6<W<)`*##9YYQC%2*AZ5$~hcW~{z%X3eSEREa6LXA-?LSU#~%M?NY4NGDD2 zgKUsz6*2J$4I$O%9FaYIGQ@816&pk~98SVpJ>FYk|BEKOqySb<J_xQ73Gg$dL4gV; zvvT0yG-66}`o^XQbx!D5Tp`xgwK$$sN?K4E(Ozs-PcoCTQ@7M#jVm=b`FsCscFEK2 zS&J6RSMyRK`(qWQbJ4|O3jPo6-1H;;ng<(Se$Kem_mE@^OkW_W{DR=GXqeZ1(8i7Z zidr$eV_)P3=G8JieeHI9DtMgf>c%t-AFJ%e4f;G!JJ+o*vVx1mXe`eJi$D3FCOn_j z3?DN5vh=3g;k_-@<KZtP2o=0R0rCbK7cbkn8EpsJjn2HNBLTVbmfq|ly>VKZh7faS z+U6>&#mtY(WEyY*-&dYMG?p?i8k7FAlbsn9kHgoimV584Ogdm7ikz^44d<kkFkyw5 zx$(G)kNr1yU<w7w{a<x7i=@$w-(=~TExTc1%bzYEED#BR6TeAMCy~I!WU|kBHHAnX z&c`6}!ttOk4d`m7XoGiw1eVGHA6BcwBpVssc^XI!qRay@ell<*)<~251T2-I=M2)D zHXD(PveT*IM9~uP{<l>0>(a8679nR#{LR2W{4TiAwYGSic}>|B7+kcy>chJ)z&k_r zj+tAD6`J(Z4#{?_$=<UZ=lY{YhGh~{q@C)E4y7js`o{^Af*-4rr@?(p#Cq4sF#a=P zN0Wx2Ps!oRZ~soNkbUuALm(+iO=*n<%Kx@_<<4^F69fNyc5a{b_H2RV%v*Q1KJRJE zkPjQUx@rc}$QU|~+4e0>dL^yn+G*OBO+Z`FnFmOx?E#wU#9Q0#)w9P%lo6NEP!Ws| zOqn{&vO{Q*e;n=(aY-m_-yzBDd3lx{1Xrakx+8<5t!LGwz<C;C$yDyMDfP9eJTw#m zm*0}(SVt;`bl|cpsP>ZsYBEuvCS}*r-^~Gy?Ls0w1bg+P67=1rjZA0SDb%2J176Ra z3|hUo>BR}Vq4m>r`WuakrcHmS0Sw9zQ!9t0EE-ic%|n;6y~D-nZ(wKaH74|!v#l6w z1kgW9S5G^11jlD(>ql}+0+jnoytE!751`sKHI;%QF^OlEn5w1}P3~lc=af!(8&@%U ztl}Po2LuBjV`$6oFevETTh<r_*6Z7jQ9(?Hl*aQCREBsQ3~K^bn8@fvZ?2?b#+!OC zbVz&eV(>`tldnIJ(j*Q@0pfEOjV_cq^P~<B$8yrxekLShQ%GQiw|kV7H;VpG=z8PI zx+`7DRa!rg(o86^reQ`xEAQa6ks4y%a#>q9f0C5G^|YfYdT;QeOeo9PhK!!9uz_*K zGZeg$#&)I>+rxv494Gr?X|J4{f&52P<~J=#+EIYmwU*O%YS58z&h(G*bw&6v*SyN! ze(YX&w)G)y1%^%`V#V9WGh-s&Ni}=u@phzVU-O=$IW8X!rSrh`mH>jW5?Pv1TYEy| zYMcv-=VIMU2i$!69@H#~6pRG$$QgKv88fPjFHa-GnH-(1DqDF13!{_PUSz@sYi6}E zJ#HIXJDzVrQ-j3ra06Q#NK!3Ht{Aj(;=z^ksyK72`m18&3!WjU_O*Q;fV#vD2Yv|6 z0ivZ)rJDY;xRg>ylWOuvnqn%HUtHCrT^wi!3^I~J%_MV!=Y~-wwq=uZV+=d|n4JMv z;Vb$-<*%^}&}5pBCbYCdrFGPbljNB}@SJ0CM;C$jfwHwJqL>${9xoJMzG<U**;21l zn0g!%5)cxg*|sJYltq)0(q@u-5@k%ZTuE*7`YEtLdR8{>j%`iOlkl2nFtGv<-xJ0h z63?)w-H|7|kZ69+Q`7Op&_(NbXxMUo^bk!?mTG}7l<B-3XC;2oR!l7`XyKzQen>JL zqd6rGijr0`QIVK=bwS{wEt*WQ(|Aq~p1&t>l#*GQPS6jX5errw!r=d<s-)0#9cypl zPnwOx_xrFs6!ugpW)r=B0n;T{UpLvBQ~i<N57~*acWlJeGB}YjG95XJ%ykLeWxgcV zm4$7~lr|v8!zM!f<WR|jEH!I#f3MedSq)c-{MIwuxXQPc847ss*j4d?a)&v`Pv=RI zI?h<t>D)*4Xm*%m`O1uSkDA(9WS>yJ5)-<7-*U{$%69jhM$<R76tuhOTcq7fb`I8l z)S+gkK<X!=&?d-Mxx+hU=pa}QY(9u%qbDtKToa-+o>kUXp$fI?%m;NFVx>$KBP2{V zq|XN&lz&Pb(S1=hw9C(BKNU~+);$|>#=e#uILV?sCt77fq;HcX=?vg*#UBLSwrdp& zR&e<uT*Bn+#HEm>kQcqso~yvP-JLyB*UZwq)q!_aQ=a}dPCMC|-laLF7>RG@Oh;#i z0FRUOeQrjwC*eZCLFwCwHz|Hg;`K-8r;0eBLW=I$D9!i6TYac|L9nct4&;l~7%nFq zq|VfGdMt?9W~GX5olDDYdEKLTojI@xCFS{u8DS9FMT6PD`*~ctSIXAf7b}kfF+C^3 z6`~1uLFjC4_g>(is9>YuxcvqP!NXA356YbvV&vvRYt;0kqdP4191HLN80MGkOf#^S zOYR8k@kjo)0q&t)phCJ^rhJ2>-d{D(>VXd#QjP9~bR5sQDX1jZA93_e56|P6^yw2! zYYLL_`q5EY;PL``-h#Re$T8EhimM97aqH=iGa7n9w*(7*zS^`CbEU@8u~7!h66U15 zyC?<01ctM|&QL(HK(R27x2l&~3?PO_6Di(yg6)pu1>00<1igMA1yZYKGNm*?<)1sC z2h>E%;W)U`^6?phsuN%Amw|o?p0Eh1;d_S9^LME7SeWaYz8Y!Ca^x-?c{&P{@Yl{& zd(Se5<$sB(5s5;dy~ONj;~T7sh`>(?56VdP(R-<ZY0j^4IsGu#{XZ~IcVS|id*sC? zm568QKMhJV=fIjIsc#I!oH#t|(gA4rnpLO2{n-)}i%C_ex80>4pof$E(;&VBJ(z@f z#g2fQD{B%wv!R-4#jt?w7xYO);Z)VfQMFNV`TA6l)pVRw$JB0qFHlO~7_ZhYDe1sn z2RWA5Q-@!LJ&Cl8=BCe0vxm04eTLyk<#tfsQeHKyP`^W<%z{12LC|Y%r$!CYH(HVQ zIw6-le)GIVH2O=-ENeUTz{Weohis*TS8`xxBuFF_Ji0F_j$a7lXV(n55lL51+m7+^ zF-gXQb8Vpmbq<IF%-h62#e$?~`u9)Qs=usxD=pb?4B;3!gu1@t4kM6Abf##!1RnXK z*D0^NP*kKWXq<Kg_i*8o4?RS?g*7AkSo2+H8yvQ2tURAhbM1Sd_TwoK0?VJkl`EiX z6Eqyhq0AF0bt{$vZYaZt3~vUvFs_0IaVa?f16pc>P$kEYZ+^hdZ{IM9&`|^dA4E3j zQ}~Y0caL^-A=}ce>ClhbDfjzy?(6D9`j;pIl?9-1qhugqPvVAx*go$s5-WtKJ<H@! z$OIe97#}-HTp=tRcHR1Qrz9w0Tr0*^x78pDGW_jcID{r<MJCZH!eET-v557}<Bw12 z+`e6iV$&QZ`;?o_C0$V8dlCgow+qjB-2sY{ATc+rHmZG}`07<=>h-EuSFYO>ffDQe zMGk2Y`;#5`k!#^vlqBifSsLN>Y>QiZ!i;!uD-4p7K1jJHB%;Tkgm>odDnvt8&1?^h z6?(^^<0`2T*-wz}G4ob>@phO5PcOOdJBe^EJ)vYmv2z0Yhl$Y}{PT`_d!;^Y<8UaU z*Co2G?{)%y0o*XTvK&kM7+O@5sw(Q)+Ti1V<COxX$L9V>wVW0Rl=_PDICSK4g;fem zRO#GHL`LwKgS7yUTsiL`3!eDlH{q-wc+%7O{*H)yDOUta7p7z{HCfSDhH|BrjKH-f zN~RhegqBojqg~#ZGd5PY%S>-`HB-p6rq`CRQk8bI--!Kz6d8X^y*Vu*0Bp^t+kZ2T zGRaK6rre)=vcD>;X*qKMQqB|EWl`#<rJ)&)<%S<|aET=Ir`~>F=dR$@SNQl(iQ^r= z(_EZDb+;EvmD7_<&=*1BZrmi(v#fhA_&bHZ1L%~8Aa*%l;*ZJ}-OiM{if98#iM;5H zrO74$S%GB+o1kaYzAMCg)E3YS`bL2SrC?|-p2IU4$XKXb#w3z06Zz^D@HK)xK~`;O zF-~}<l#0lx=+}m6r`TvmL&BWbD&9CCj5XAYhKljE;Xh_5Ap2RWIYqFv(EjAlb{+Z6 z+H#nUInB~e@#V4#0)BGji2Z8tJso(AiG(=)aI=w(rCecY9(^&ZbPUlBYj-rv$$J=N z>o&GVw_YN5990GN9Dr^EcwypS`?TMuNnqAHuaaIHZM4D^OS$XiD?as>f&QB)_@@6| z=baQ#W{j)Q87a;(>7M@(HogMAlK(Pl<<h%+JgHY@Vv>161uKaz{i3TMq`C4eNTb6L zgZ{kkoh-?B5C@$=qhHiXgHbEBpD~tN7v0BTs2nSO=II-%+8{QyrN<w5W`gAPqa`G9 zt$Kc;KKn9Fj!tg;j9dMFD}te8Iu4oIw?^ves+;A}Vl7;eYmj;Gk{`klM|XPpLi%H1 z;=Eu;-05S0`-8UJn=8!~#4R(z@x(DtR1Vfqsn2weE!xwn?&YY#N3YsypXm+{zdDgP zpWm00NijtaGdc*pmRXhVO3MvZM0tw4RdOnumr4^n6e)7!gj+<KzwT_DVtDvoL56_f zMq4j89Fh_++nzyNb2V=Dmpa__0pnES>teWckv_g3>VggfI$2(di;;{U_mz`Of*Os3 z(hP<j`o>lT{Y5|Th9?VosL~FikSJ2B{&%$D8mmKl9ed`>9V~Gzu1PW@8M8Lg!6}%L z?$q|m^>A9@{bzUlrtzjyZ_D8~Gyb@8T+W#r{EV9{lW$Ubl|r=SS7eVU#9FDO8vjey zMpB&}S<HCkAp}8wxeV?E=l<u8^i}Vujl7?%()(Qw!cL`d8PQ$Vf27*18#zk|^RULa z9V+B9Ye&p%j0jR7j{avaaJd-f<m2^Q;2m|{VTg9_nZAScm28Kr_R$ez*K9r{F^}+5 z{a!LU#I1q5uJfp3G=l>g7DR?V;vmO-&YoJ2xO8fc>aEj%_I<^XtNzQiu%UkX2;_CN z{<%lzBPEwb`6Q-~%0U?V<B0w1Lk0I?wBM|*f7L;H6oKez4cO{>X9MwFu7xYy6{E?N ztL6*6%%~c=lYsdZ52)y=+hK)YO}A!#!_;a}eV<$WDf?&E8?WDnRC_k1GZrnPBr|_X zE!xsoF9Zjc&O;;M3H{c*w1yvFK@*st+FFpbNrhSclKa(kgY<AHmwES;kY<uNBHOAi z`$;M3kM&a#3;A)S{;Gt1>?<x1gBXOx)Ope)qQ-&zU%#i(K83N?;-&sYy<}|jy}w62 z+Up?P!8GxsY~1bQ=Z^|%#=?fBRD)&+ijl`wL_XIeLj|Resy-c$)EyS}2N+lTGhJK! z%T+tH%;nAiU&()c)7kT8%o?5dJ~E~w&@vNZv8@y-nEI;cFEMj@m#gb}HW)L~6@oJ^ zXEjy*&Qluh_c?X>Zz9zbT4WzZwNfM>e;&YWNV_rIRsSdQO2kv~3l$G52)83mUM~M8 z)}=r@U*{4!vwv2DDsT0?;+1;B&M@u|i!yCCkD{JXBKydh37SZyb$JdIn6&!6b}JH} z*XWorkLf7;0vx@;(u3n8Q&9e{qheS_ZRp}$^h%4g#CX5u*%8|;p8OvgN3LEBV1ROl za#xNS-cK#l1J~Wo+UvI?PTsfsARcQH+2YlsXl!HW2RV?Hm)H9D&FZZtV|Dbr#`;A< zrh)<ejo_6;bUM4MPiU?+_8IGoRMJ<&X8BW<y|%$ls<>G{a}Pwk7@H(4s0Uw=$fEZ- za*DTlt=Lhusv6c0@&2LY@~RuYe>CfgK6H?7I=FoIS71d&nBLnipK-yJ)5l+BFP7J? zJ}i?ix3Sh%!w=z=j|NNJ+i>c<z3X_sg*co(c26?fD$>5JX6V=c-Vfq2G7p^Oku!Bi z6r<Y)vK?B=JO@&tK|~uA$^fY<&g}_=_f@u5ghR#<6DWN_3sR4ERL^Q|Sa9l{$Wj?a zyNXNM_AqCu=B&)fGEicodEl!+E_z~S<}rxSzz0ELtf##$?vM;T(%XQlij!rjSvd-b z<D1}>iRUu0$!;E%QhK&T#PT}YH48PV5|;Jli|5sK`OukJ2BaAp<J}vQ6y7=@u`S+L zx#v9u^&gYrWWjYn0C$m#t|QEodGwTfoEH3S!F5Rce+HnJ%8Ea^$#m-5oQ8c3?J=~I zK+`HXPDA*6I%NN87ymJZaB-r@!i`7BGDrNnm9cG|Fqz{yOCMq14B94HrG6QNN;Kxf zhI$;W{exMI_yt9VbwK1u$D7#bdeew#P6k_~j6<#Ox-~Y(E1wD>Y0f&=TP)UFIUEy; zS2+lq^R)i`>TGwNt;9Q;;oNc?&ZAr>92vHfQ5mOTWwnR21CIbv+R|`_BIlO({A#4e zf{@|36i5t1P79kFT)#;<4!)K8(kYD9I#4yjoy+`15)2#}u}=i$<Q%d=R#23sw&coz zqCXl_J*xHGa);_JPlmwOHKi{lED6OcYZu!<kT@d*b+p=H`g(|}^{|?y6{bB&O3dt* zxQyGA=ykfsykJJN%|<b2i5Dh_tyY@RNo(lt@X+OZUZ+bfx9X6xFW&CIkE2sntl7CV z$&q&q2&P1YfDXYNz%|_XF4M5689N28_YlYXY;CB}U(eCja86YSs+TtI5lTBc1(l`w zfk!>d!Qr5A6nCfOrqX<ceo*`f>4o@^W-pY9=vHKTU~PoW-{VumvhTLqWmY^uj6aDW zp$8Cz<cpXfF}1+M&xU8Z7S7}OOBKi<*0uS};r!)WGnIR(Uy7$jlOqF@hB}a0c@g;) zWMhbDIR=;k9O}vAN~jz#*tc3Nf2AUpcUG3Ea*wK}T`zh<nxC&R&WYrZp{IWsiKGX8 z8H|Xe7vvQHYr{-;`o+!K;Th%DiuE=wAwcWXaY@Ox3Z#!Kbon-nus`b@o|(Q<I*u;K zKA;=EUT@*>M+FtmV8osS)PiZJyk!7adcv!1-z>r8I?bH~1rEpGd%i%+^kOx0OpP{M zBZDHDrU)xjiN+ZPj-|*H;!u^|9t}}I#}b32CoY6o%fIPwvP+ZUSWC&1%m19m4e@5e z8dsR(=n_Qk+}f5)S_g9K*fC+?L8~QrWtzScp%ZB|To7v2n(HNGT7c(Vp{s<%_Ov2T z^PRl2lj?G-RysH7EMfY5B>o5U*4q){bdUfNg3B){c9wTrC2<E=3cS}qhkJf0Gth$k zV0);1ZIfiYBM5!oeP7Dkv}g~CNF<Ycy~9Cf*>p@tK1piGQ@^b((koCy{f?1bM}&d& z*z-Das`cw1u$mB9c4235y5lQ9TxPCWh=lp>(Y_4v=uW|;Pgd1ApTv+dr40qGwQvkZ zZwWz2Pb?%Mdka#AXpz!BZ92JcA;=(Ez07nb6_k|$CYn9xz^Yl}gv9ll$!ezY!%!Em zkXFQuPb#MKS1*g7zt8B?N-7QR?p#Yk+V2Ki7o|&uKw04J!EujsV0}Kb0+oqVh?+g8 zbgA7K$0TNIqcu9T13$b~zp-ead_4X`NlLb+;TNz>$=j1*monAnPNV???o#=q{IpJp z?BGo1Ugh*i-hKBxwOQ#ITHdR=B;_XrJIv#(Oi2k?-!T5!cl5EaA8wuF=nKUPo&!~K zjc^kO4wP)!!6)LFu+4bz*kt(`pH!}aQIMVhw!hS>*1z**WxX(Oh6it55$~Hr-Zf=# z^j~H?1TkOCACRNE&j)5IvpCiWb%6?C<%+&=FozQ=jM6&zIvLbLy*0jqC%fBA$onyi zraA?h?`lPXLCnX<>6*8Znl@50I`I&UEj3u?>T1xw*jxOox=72JB&d3Two2|w-^mWa z+E6Sl#^5zaPmm!JyqupQp`SxEUQ~F;CdUhe`>}ctKohnDjWp)=U)tI<D7=iOmJPBv z4)#)9rL?if%`<ghuqVMLL4Did4u*sgawKZTE-yH97mun(N(X9<VA={9o`XXf)?E%s zQAT@bZ5<G&%iY7ybxVpY%9HU*gm*ob!$)cpf`zX8VF~8f1#3Trjk~x@B{uh}z)xtS zl9GR^I9)tVQjDJ40Ox4bNq?pAcRi?VeWz^)?4IfYSJ``U9%QjiN*m}WhNKX(#{Zqq z(FmmoX)oFIUjgSog+p))qnZ?9ssObgtNa5b;F+c|GWcpD+fG&Egxy?p#@qG1p+vEV z;E54+y+cX_oGP#p0A+6pwvIrvl|3ZmJV{#d_jwx5Qi_W_q3r4!L>_vdnGSMxP+!|m zKblW!v6AL6xX*+Y7X8c^fu^A(WZGyY6zdMN3xW4coUL!9cvCH@gU)Y&+WVn8^U=IK zqDA*b&9n?^NV|&toUufxl4Ko$^?N&%B&jiA3Z!7uqDjKu(7W-~KyWLL6Pz2!coj7r z9a)yG4g!TZnV9vn!fwcls%3EEG|?n6i(!sEfvcbn^?Cy?3ggNnYF#^}x$Nn2i$zuQ z`%*vUhw>W}Ux-g@Q#el(^a9irANrzk6}Z7=usQH4ar<Ai+LOq!2mWTa6|^=Q1|S9O zJmqflX7<nPBZa=E^0tMEQyCdTeSaBY6OFUj8WM0I^*Kx=<4F6igFw(AI3k8ya;)ga zNNDK6+L!Skvy-?C81|@a_}p@trhQp4twG%W&B6{K!iT!Xe~TS%<lut`At1TI=&u8N zJ7GZ)K7q#>%uhwIwL{$&2x=KW%eY<%JAYN?s>mLImDNmNo>YhcO@*%5bqswKVoA=O zH=RH3UmuV$MCfvAEJc=R$YkXl=Nt#laA0W$Nt`{)UF3p@<J&wd?Vow7<i-bXP2X~6 zlH$xdt+lN(uGyC9&gg!G1LLa5**8Rr8i>ow>$cY@__O{yS$*t@CavWL_mhzu&Xx!R zD~D^z3zAd`YO6@E=UQh8PApCC1>H{cV7N$WC*&#^Y&)Rfs&QPHiOFq3?FZ+#u8I3v zbfo7JLTkb+J4Ax2#1J`Pj&6*AFP{rIEMF;Igc5mC`-r1NA%g+OkZGZr4H7%S*orEQ zW>SIY9zL$H2~bN$bX_|Ur@|f;_$`54YsNvnW>#COSh14kJtv+NMQK;DX@vB%Ttov( zY`IgW<54QuRsqS3RV9Ue*M0JVvC;hC;KNYlNo07b8EMKrx}7L_yU*S^)h<0O!jT6> zpPLBrI)E$!NATJ3-fp|@dxF}B2GF-vkgpA3khKv|4Ajzk@-B4sCF*&$4qP`mGb&h% z)^>LvdH6}#a`(k<uAma$({mzaBr1E<&a2v%+`z*}8#rh_q<2f-LzvhZiZ}OBb&R#P zGbDH(S`$=5P@5tbDwxAqx6%Tpyd1^*im~k>Q=CP6k~kt`nLX4H%hzsG+7Kn}I5A^W zbM!BEbqXr@1>!OuEy$-Yr@Y*h){knva=CiOzIfht7g}q>)IMWx3(pePo?FoY;qL^K zed8VjEbu+Jmv=^pjV{a=B-8uwK99`@3-4ZQ7{ard+7_^A=$wtVK&<OX&9mu<v&hcS zf3G_yT7DVk($>yyheDG^1;29e;r|K?dxqgln*1oH;5Z^IB9kc!;B7H+m>go7Fbe~4 z5_j?R+$~#&W1$$|YK0OTd=fZ>=Qvb%^MXPGcza@{<h70ZF0xSVO4hk!b5?z<SALRm zPm-%e&12Znd%PZuC#s=hV_&v;Z=qc&;g8LYb`?j2i3@%;uaC7H<fScX1ELRNgQzyR zf)aPv5%+LXTs#r>uOx+bU!}lTPk(=BehZQDazYxx&lnV8oIAiInq;*PKOyyGTP}XE z?DrlE9H}HzBhDf1Ix|xbk>M)K#|s+5Xn!&K6${nFo#G&lu&*<7rszhIa0V)psr|Bc z<tiC?&edx8ijhf##QrPhTA!@z1VL2<Chbc}G^Ornq!!$9o?bJ3A4VSmO96H54{RyY zn61oDUUvgoN6>ExqNysW)m<KT=(10na`DNxwYfrV2sFlkutl}%g7cB*kc}&xqX!0_ z6I3Z1BSIk#c1<1MlE-Y(7$FG`z6we9PRx*)bn<PO(DxH)g2Itz(uuc9QeHkSs4PJZ zjwA>MWJ3KT_*jN^q;U2=-g`x~^QQtf<EfHH1n&flG;S_qX0o>SCVI`&vE9Igun;~j z`0Us`udUq%v`~=S3Ims^f+GEqrEQ9<rWcqqlby6asNh>NWlT&fk{o07Wd?MdYqfh7 zfS$Zpj)eof#Vp~dL>zd&;(v82I45+F!rqOf8yHb64^o>8h?#I!DZuPAU0r=3<@`>l zaCwJV5aJ%rfG*zD$g79Ts)b!9#uzX<YZ@)2mu~@3zdQZFlernZ2zA&f=x=_PnFHy$ zF7@<#s779slme_-&KF>w&lGz|0g6zb@@q-W4E$`nqai*#ML%@zGd>j6R&#H6k<M=S zaA?BV+2ZCtX+1z-?3BdJGVY(mV)v27C$PsS=4laYq?P%F3-|$g&+~x->fLr(ome!h zN_Xcv^eJ4YZ%{l+3hS|@7&YwDF~wDoR>(ZEP4C=Q$VS(x8UCWv9srMp@tZ=}OcM@M zj4Od?+LGxGj|!--o)~hfU6k}<RaNn8!$X3sBEIZJPl?-sIMaA4+rxwdRG0|*N}Pn9 z=>?eUJpMU~A5DjQwpKJ-(EITLe{Htyy<VdagXPIm>cCY|b|use=CX@|G56!=l!IC& zGM}?Q2Pj`fPdUG27|L{3Ltr_0X{OTFxf3`59B3h1pH@Y&gE8qvu=sgzeM9N=XgEP3 zCRqcc2KaVPzaJ!^6{}H0;2Wko&X#w^9}U1e$5Vs5v-6opg$%3|u6o6!1Dv#?Y2J>A zWVS4M#~P*`C4O0O?TkY0hwTL4$|K*Q=5{mL^%hh@p{jr*79@^fZpCz1@qBp6Z;!L% z^?q|7`QRkS*zPttG9^hYNGZ5`N)XoH5eu+lQPYYML}pz{c8H!LL7jE^Cy8Gba_HRo zTLbL&*n(XgU6Y@iA<gXCWSHS@$*$DudC!h0t)3dx7yo^|mBUSHaxbPqel@3S!E(X6 zl_%kWRFw&%4R%h4*_`T1^h8!*`+tP3oO?+wi+<ADe>uKJF*y7o{y)GWM^;z`H#f}1 z;ZW^6*LIAzZqLG^vu?+IT1cCRgn4vPRI$f#JIS(SUm!AtE|gb-s;nfb<MO32=XG6M z>Cbi$?vO%+bf|GcKBPbpB!?(@v<qeoj2WfPuTD}`*6O7WdQjt0n(hmWQ!lglGb;;0 zAXzBy7JEb?U;4n(Ec?xI+^zyk0!X`lG2({<qt?x^gD&Gp8|evmn&G?NrpMnVF9f-; zy!F<t1_$1Z3N6#u+Mc9kX-k7IP`r1SsV1Q9Lu<vb^>O!tBcDU&j$>I>BPJ?wQkU$b z+mTd>Yl%Z4HE-p~^<V)E17DWV)m49Kh^EC`Jc@qz(A(vVaRRjVQi1#<LTNum@M3#~ z!@%Wha)Fmx0#W34CE9sKJ0L;QPW~QrPbF7qk|)<;b#dNcGC5|zs&tt$@)hT%FbuF9 z?n3!h=$E7-G3l~mK1v9qstHYQNelWGTY2c|nm<SVu;Pfm$R0Pq%Vs#^_~p9}W8LRW z9+hc!#A!D_MK)=fO?p7jOyz{SEGm88zQpIrZqX1zQ*h3q20u(+eS5v%<G`Pv2VD)g zxtXC~c_KhzPwB#VL5j@duqP`Sg#q5e6Jly!l0(sRZ=ULxK8f~nT3YX(*80y`>!xG* zrEg&@g`>$fp@jE_NlAErPLc?kFoKlTDQpw(_t|Tn3~ER8ho3Axtzk7YDS0s=s!zE+ z^mA3`t0Yq|kFpH8fu_1FhA6XSC(YT@A&mzzOwQO(NDRG5^2e1{mvvsf_vP_ZdNcz_ zvsOVWXK8Jsx9q!~4H|+h`nLA*RL#zJI&gVndjnDEIvHZ;p72R5$E?)4!TNF(Efh(# zulzO1*vDE{Ooj6BzSDh<?aqzl<vY4luqu;4#~wG334W|B>c?VOTG%W0vsR`R5^Zcx zRgxt)i5YFBuN*vJ5a~^C6OMDs`Klb>&Y(>U`nOs47Kybsq(MG{ak|G5VZ$;Nlk0bW zo4&c;+--LVI0Q?TdW@W;goP<hGMLJ|`QHmoYvZ*|fnWtqk=EvL9bbvyxYFps$?M~N zc)q#b`YrM50(Wt7LYL4R94E7W*HI%jk>|J!LvWlce*e^@9pk=(9-_G*U9)b%d=U!e z^m<J$&~heNUs(o}{T~|Dm=eH$cI(D1&lJ5&675he$C04ET6J^T!)*WB#Y!$yjAh_! zK{>G1qTLVa1*k#%qx-S}dQ2|W|IKi_QVDyh!WPb0&ZEmg3`kRW30^(rz*mc^v&R-u z7X8Zw!!b9fTK3iQU1``5u?+-31KH1wIhi%Lw$MdYCufPL%)Kp1bAFIeiYUWBOd}xp zGn!ynu1R%&1AA_r{mZ$IbY8XX_es7lV3eXs4+WMY@U+Puj@7hv@TX0o^~52>`y}uA zNy@$AT9WlqL>t^<@a6acNNv(%PwS3~E9EFg%(^}0T8(V4-1F7iYB2Oop5=K{t)YKd z@=Jkj?Y*@ygBl`^fTuz~TrLozu;X3yM;v@!dGR|2oad7m1x-Y;KwOz#%bk!T$qX23 zcKKI7@4H%96%weOKS|A{wbv)i1iX#w)5_4xBf<KEfBGBPz^hu(?mvpR?I(uOvDeiW zf;cKd>&xrOX)oaJCJP|y#7>DJtu18}4NT$-l--M8KYlZoeA@Plu;<;*<gkOH@AJp) zmHJI4!#*0lJ@v0XDB0|A!v0%H!5T}Sls0bP9zZC{U^aob(hb(vGG}wny{+_?f?pDs zVoYqi1D(J<s1$Mi2sWhrb~t<RH{noSIBDg=F9^^df?|-SwdOd`M<vx3tKxPiE-FsQ zdy}TX5$8f-m|vbTh6KFIgQ}u2rvsOBX@P$<{+TdyM^>{D??itR-mh{vX+r?17~yQ6 zxM$)vx08HXmV@T&jjsgSl3}jo#a}}EY#SuM7OxqpXNo4yESo}fQ?;$dTf(m-5LiXw z3*RA3>I11pi-VqdzQKmSEkZPOMa3rA&jK}=$GC7;sOU*V&dYmKbC3K9QjmjdgT!bC z*gEIa0;mD*LUL<;SHil5lJU;Jz734L*&oguI^@$xNp%-h5-nC2em((Jef9SzvBW>n zQAc{aqaNeRRm*4H$kvw(>^sP*zh+)Mfz>!%N+4K@?%+(UI=IFxr`>!gNQmr$g$OaL z{`KXXjWJqVtux!#&{OBbU6c-)5I%+IqDo-4V;<Q!XZqV*edip5<W}TmX@xTE4DzCM zrvv|%nW4#*E~=#`U(?B$<S8LV`qa($B3v1^P)$gbd2JXo@V^14OZsCE!j`KvolIw{ zB<|RJ<C*GPJa=}!ARf8B+4>p0^JE=vVYB{I<+tPDj&4Mcdq-`1G8$eEmZa%lnss6? z`lBnXUlr3<b%!+m9(<DbmAUR@b@oazz#2zN-cXERPBVH`T_&!60bOCWJ{hc&#Na+Z zlt4Sl5Ti|iI)2JA$@y>ahL@A9<hskV1j0qPgfq1R8x#M)YJ~&<SOzBtb<Tk9qhQ;E z&k(^j{)osES9edq;os)fOnWE;Wv8I`l=otqC?GOhis%+&1tv^m8zE-JcyXi1MQ=MX zrd2s5RhS@6n#z#iby3iixdSM_BX8g?sVAIC6s6VseE(XnNc&;X^PEujUe{0%7d&5^ z_iOdXQZ1YX5iidAwAEDF*nx_nMJ{b?3t;`km6y{VM-PWyE@~-f{1BztYZcQpP_=x* zCYgU7k*RVGUE?nEBd)yS1jZj+D|_`Xnk!!O2bp*pRu^kMVX;#;S8Ogb3?EU5L7N=v zufn*j&S>DgcB9%-p1#kG)?*+)%y@s4*KD)qE;+9pZKoB_53nunC&h4||GkjXgV?RQ zpVUipLzz(;El{i!H(FmvOOjnAu(DwNmH#Zm5Lbnb{XF(sucU}aQw`6aFAwB+Rv4`n zP~c}hQ>{WO0S*6Nh@Y^o{PwlWzNQo`J)*p>soaBnEG)4P)lT3wEe6Yy<G&{R|4o{| zapr8VMvYk6HP54qtFCT4aOSS~eMv0(_8v&>u;}Wwo9Mu(^2@}ei%j;O@@!rnD@iMX zjy|~%m?u`BRK56=ch-m9&Q!JFP(QyCJpDh5hkj;^u2f0lG%7P?f*`~c*f(CTtFf8w ztqSb`)GA$SxKhL&(G(z5?yDrv3IIyU*-1tjtKYbhQpoVS3j;MFlt8{a_)9+n>Rczk zq65<z<Rr6y{?CKzlEH9wZ%udA@+aT!AeGxJ8^OtHb}OB45=-rT#ncyu;F@<vN0I`2 zF)Mnyp!t_#p{CO2?!q?Zd<A>}Z|Ul4o|M0S1QwoS^Iv{7u-_@l;~CtZ)TiLXOV=j{ zBn^O<Y^tv!oRV?Y^+(HL70nY?3x~9@5H^@ACW9s`)Dz6>8e|Wxb9XG<TTyc#)~;FD zPk@FDKhN!5{X!NP9J-KKY=&w5yD7P3pJvbPkIJZGZj7HumYg1vO1p4C5t;0@6Lv?e ztd=(WIzv0)GT<eGYUaf_fBQC^n7MJg(6@PE?YBG98lmSyIlD@g#n#a+hu`1tv@_RT z`=2DVeO*l>A&;Ch<Z;zOc9ZSU1rBEDvw^zQx=^#>Eosy8$A3P*Sv#pkd~qo0enM6` zqZhM<`pyr=HIaCDk6{Qp9@rmSs+?E-W!K}RtU<=@8<7%H=m2Kd;a)2}AZ^txvnaJw zl}Mp{W=CAR)>Zoxg*|3*<NfTMv%@a3pJ(ut?FTcu`63(RNDZjSi33iyoNq?#H;GY@ zN6z-q@LuOW+D8Wj=D_2v);9g9tfIcm;|TF_t(FF#oxkPlf4Jw&6-f=CXhQ$|h%tSI zRTP0})w-K_DwL4z#efJxex`e_46`Axk%j|SVq?w^wuApW;CHwOV2`7*hPqRm2yrRQ z?$lXAm4l!zv_JPgWaw$Fhw={^{?#8A)gxddJMj#wo$$Xm=`~z)e=I4-pqJZ7t4Ll> zi`HZMa2NVh6^Qh?H~tvAEcq6TguD)!ux#{2D_Kk7p+5ORCEhDolO0mrBJ?9LaoUum zvzZ0W-9wedH<F*}s6puO2v>X$`W`A>)2MvVpM#|zt}bzn<x82H8A^YZ2r&>UUD+#Z zhaO~~wnrDzhv@Gtdz<;Zu^%H8M|9(3EI<Btq!pw2>Mk4nNJ<agXbHXup~}D+u&`@y zp7(6uYqsRQb9!=P6fyMMi_j6>s6#0ZzNQi$V-B4I*{9W`%Y>zM-7!K#pORh?B8Fl_ z-A2yJ(I0FptScSPDEh-ei@Tq&Sy6E^oLoP52(K8{Je0mUB7fhCx#{tF<{=V6xsVFw z9-gggU#h(b?Z(~a@%QTIS(L>7gisXgCQLylT(%z4yY~=kYx<+cdM#bF5A*C4<J*H- zDKDoyU3&vOr?qx9`v&K@(AY(_=qLEFqTlgK+9DYyTx{Foo-<{o0@tPqW_Pkb@)Cg; z$GiMe5)$_B={)XhZ|sR*2179-oLTicueldZMM!1MmP-<+gLmP?b133Zy0b^qdP3hG z{l#y?-t$oB%ilUT2GGt3I9a!9_tRvM)=ajGp`Me&Pu%Tll9Kj@>Y-el9skk17#lzu zqnk3kS_5d^FZyAiu1(bI$6<mjP{Rx5EE+dQ?~;x11bYf9=q^Bw5FNF4Wracx?I+7* z>wuXvRsn}F5nm96sNaea{JcwU;%#hL8i^baQZ8-`aiZ>7-iT-w?F$7*?*q4Qk2p83 zyx42_&9v8Yxx9O_XFHn=TJP;4YQxr!&jg7!DAKqKSNxrHQFD7N)kGqF&3UCKl$8`^ z(zgtG!K8=%o_Bb*OUu1akjdPPPvl>oBAS7irY6}HD64$Bgd#~XvPr?fU5H4#nZQE> z#N{%sxJK@T2$b-ZPp>;>tALUO!n!5xRKs3Lwo9A=6<&e$q&iAl8d;B~lLPe~L;G!t zvdZ(uiWgB01D45}@q^!Wq>~$gRn9JGJ%i}u=gHMR3$5hIZl(-!L$DgSUu9rwbZM&k zp;_oA*UcC^X%iu=PVdL8a5Rd8cth_i?8#A<`r8(VQ;ITLxUAZki0>KbObS%wFsHA- zdgemihN~D@+U*4$nr4EBfv2(F+jk5}Z{nUOJBtt<i{@j=Hq0Zd8utE8gFjWYVElk0 z?Ob|3Ql?mtM#O0M)UrfG-72}oeaB%D+P#MzCooc}fB|5A(6+W8usZ7&5BT&aVUs|9 zS<EA8=8ojZ)-$t<CgFOFJ=k+K(fsFn(kX2G;sw%3G>5d(-3~7J^%_RIX%IVNC_B4U zpsnx^6jrdLs`+F0WWR=qQnJOzZe868c)vf})KdR%ko$l18tAGxX4!2Ibb|ZZR@NRy z<F{v-Ka|z{C4|Zj3xUbqWukkELI|=(x!8!Hk^-;l@?wsVI51x?>gTS15UHKAryxHF zjm?@!zbytNPEAU8VQ;1yfLE5!?_(^D>P1AYHM_R5NeHrNTx>P_p~tFMDxn3lb%nTu zkWhNzh_s20P3wPjPcq&E&?5LKe3)n5dC6t5^+;$)D<Ikn7UcnVRq{+#v;Ug*_btL1 zxn_~E8+*Z64mp;3$@BZbh=9KVt23&b@0-u5|75$bvA+0pUrF2dkQ^>V_Gr08&iv9R z)~yrf3(Hy4O<3{j#%$dk^_WPlt&=ffiLN5X5|AGn!Y&neL`x-|0^41-9-S!7S%>3Y z()u}}tpCnW?(D>IXphsz<jm^QI)a`rSUBl2^nNK@bmxSL3I01I=QJgGI!eQ=nm=*J zo1B$TEGGWcwcdov>^1_jYObKyKRIHaX3$s5Mcbq-t?`)w7Msk^4z&wPgG(hM*~zJO z4UD#^UsOR9oWG7)1D<u>33ZAkBc#DQK{o8~OB9=Y`lgr0C0FpwTBSPzOfHZ`WjczU zx?DSd%3@FuB2r}8wOl3TG^4%_^4tNzPU?;<MT<1T{bkF7BQPEmXpI~IEnzMfZqU}= zxTtPkSu>J26udP{B#}>F4sFOU)6hmtD9^2TicXl$suD*bd4`|AHB?Q%DM;5V%63@Q z-5JdMQe-i8RuwqL9x<=f?5OUuVG3EN^+ZPO&Wyy5q9ZK^k*E;esgJQvxPx(|TmSu& zJZK*d*K`t{5HY~7XdxQ{I(ZrO(V|T0zAjYOs)lmT;kWd@_&4V0X+_fcSTMT{Q2Ewt zvk2aMZotwA?1~JDXY(3G`k`G1<<wJ2@{3ABg_NqTfStjr5)lE4#JO&5$;73QRk=R> zP$I~mcD3+J%9qO#O}eYkdh@}elz9WLdN~U{>Z@uKLD|CW3|1WKJ9Hu(BC`soTySp& z^}4Tmv9h|y5g;w~F1Q=v_?ebH<Od*l-E|~v*Qqv?p5#q+BTagy6gtw$MXsoKw^PGB z%vq)x3V2T3q>B=Yl~?nulDiD1P=~RsXMR4{&oNTtm*J&r{n4B9mil(axHj<nC2VJb z?#^e76xf4JVqNl_n<@HV5{v6Dxg2y+S-||(Aip{{fX3Ic7s2umzYl`FYT61$DLR;7 zP0{l&7he9!%5u-ggz1|=iUcYO1-HbcYrbiYN3P*p03OeM^5;>YJFIvYx^4g~_Vo5C zkfA9*=wZSF^_x$>ISyfW0x%CS+`)=+d-bMiA_59xP-KB++<_G9d^*K0{6f}%KlLQx ze2nLi)|*+!MqW=(Mt~0dE>uHRjSq%nUzXqUY09qb5897onRP#}&hab?J4iVPcQ}S1 zJZFQ&iBNT&h`w(gRKzONU8v+vU+#=Kg1h^E&E8xz563Jslh~R3mDYnUe!12smVMFQ z`)_9e$z4E<+DzA`W+kF@Y4di%`5S<7Z^;`s)4FhfSPlzCXpQxrGf7btzl3638}8>` z^MnOqZu);JfF<q%jtTK=1oqEkOQ}*=2<e=merVZ#^n1Dfgv)izhp~5m%%}(@yMeQH z$UTj7A34L@Y+N*?22)3pf)|@MEfSAi5z^#Iqu`!r=_uZEy~2k_C-H}L7izXyS?FD? zg37t&-{f+}M{5B<RuUuWZp=Ww@g~h0v)&A|N<+uVrpbYNg^di2H$RKAh3D44yb6j1 zfC`2V-+VshIn(eKl!`k`Thjggzq7qH>)fbHAyjH@5NwhKSa{@p5XQWH>e|&E(3eJ} zazHJ>%iUggV>=vCpw~&&)iYS|(mBC^W{{Ig6L!fPj4qoZGpXTM5#Hiat()=jUM@EJ zp=21iz<uA`nX5aueblESoGf691)ZQE=Bt@Avu^qIY9o=eT1h7=)?U3D8M*%x@ECdn zlVBH<;_o1Yhvj;VD2PZf>BCF)#d?drsI?~I_dv;a_+63bWA4quJZ`<$EMcBJ795_@ z7@pG^0j{3SlYEygq7CIj#G3b+9lpcWw@wZrfVNplfq=H&OD3^OY7&3X#T3kC*5Aga zxXu_BKI`~>!uj;XX{}FKRTZb*ta2OZp@<lI5v%ITpu9y%=+o)>oSKE2|Ja!)>{5)4 z&Xzg|D9Jg=Du2(jnV0HMVOMIs!ml_oA1+N}E+p)3`jhiyxEg~wmj4B6DFMhdE8A_A zc3rO|m<ca@&+g3A<%Nx^XH<k>48+tt{~7K`0((E2W!n7_lM*R};qT4;zZfPjD7JGC zxS!vEbKE*co!Ca7%ry}|lw7l_e(VFRPi1vk@Y|CK0c)&s^oWT>qDrwWX7K+WM6+_z zdohR_bVwRxeL(e+gM<=I2PINDK!gF7=ISOu_qMb<-7U$$irrMr9gQ7_9GCF<e?ewe z%z<=2r!4eO=y3`(Mro#Gxn^e(@4#{^r${9Je9b}-mp$pHWR?d_=QVz=I|6OyfKwaj zrIL#%zW0`mwN2Xb?nZLsX4CUL<ONuf$LD%mh1q(@e5J^-AHRvs99U_Jxb@j}X4O?h z7acdpv))`k%vt@HMV51yMaQPUSP+_mn2|<J(Ob25C<Y0wk6ItSbVv%^t;YoC84{!X zdRx3<qj+!(1AS?9U*FGL%43TN(Iiyg(gKt^-fOg#^ngg54>GMtHLde@kgxd%Emo@| z<8q9tR&pG2^T8qBA-faTpJ|()L*9oVrkY+n$a(O8U>`~1cPN!p^lB{^>=E?B<%P?8 z%Vm!c^l3trYI2mvgZ!@RmY90cnKIeDH#aAL0_**pK4A`BF#`;ZdrlcAxRARLS-H>x zrf1@5SraI%S#&~0{R2F1m1?JeYwe6C+HYd6!`;q73YZ?BTcou#wEg}!R@n3ECX#cK z8qjQInjokXN^y&=l)8PL!;T%~0}6;K7@jB52?Guq6l|qtUx-Lx9pJ<mwyQat3#<7Q z@A!u#+DK&Gm-(X6HbufpUWtx{8#RbDb>E6drkQAJE+fkZs%n4Fth8<u;WN75N%X@a zW(u7OC>Oi$|ByHxI_2o}1%bz#B|qpuzSFXtTmQ~aWOlgK@L?XC=_JYp^rT|K$!ng| z#|nwzMp!N2^Ka$Y(N{)J28fL9GF+8bC2wzL(`E63dF!KfJF{<nkI20$I<ZZkYB5*( zusq0b7MWC{l{8XL+1MnX>#qChxaahjrP*1@n{I(~!VA$IkX3pXS!4j4Qf&_x!UB~P z^M&E-E*?g3cj*EM51rIgRyaO84qO&eB1^LPa3wmGmHpv~vHWsf)$HNH&91vCwL-Dm zX*TwrD*=a4jp6pRTO7XUBy@&9t(f3U=6={TLZn<Ar$tHN=BGNCEWi%D#H61WjEbBu z1Uj)u|DOYPuigkY;r<XQ6l=SmdpG$X$X44PLNkI%I;ZE{7nB(Hj=plFlUW<>GRMPQ zu-~g(l<UTb-UiBS*Iu#5@)mxZFLbieFK%vEqXy$<SXp)^@(}-9O8=vgSmyZ~zOcy$ z2o4emPX6frdNblC$;+uN*>_0@&?@)yyshiqZj6v0T%pm@tZaZ0E1Ieyb;K8|1dhbo z9{(=$yLKRL5HB?3jy&Zy3*e!ja$vxQ1)}2_`IA-=j~>OJQjB)a!q~{6y!Bk8pE&cF z2X_Z8ke_mbOE91&fm_wY4`_WRc@mf<Q!}qHwrY+WCvPo23PIT{eI=Q46Bix;O!o}w z;>M2mFqciuhR&1-p%3t_e=WglXt&xG%GHc}2Sz_}xzMc10dKng3plV2nr*LMK!3I- zx%CH6=5j&yFBn?~7V1=l_IH}8uv}nONduAaj99G*a<Op-J8-gcIy%PcD|WAzOqLxw z4aoVi{~IvozksGyyA#&J@DHpxRsmf`Kf>vYiI8aD+7Hte<e;3&zlYad8=ei;ECGDP zcT&yG)YDW_kV1o-DHrE|drN-cIRUBm7IgZOhQa_TgL)xql(}a!FWEN^WCJXo-}eMH z-W%`2H52I9;<kpLaz0A<Bj{$p0s}8O7tJ2^=Kyzy(G?$$1Nn554yJN<ZPX>1{K!yO zI0I^7d;lLDV8HT#ZWi%>`ec&G)iKH1^)t`9TlA2Q;b=YSx5$25G2Ukx7wU0vY0XJu zy(3cokgK8GgKbscxtYqx4O^T#nq3vbX!5M?v10{Kzey$&zr-(wx*WhOkZWTeLBJLU z0@EH0N-9(4pUpZIB*%<(>r(_yXI4FWI_!E-`(~@~p7jUYeRYBg((#CK)kFUE$L*!c zW8;B<6;QTvx@`~#ZN2_Bk(f($g1%_;O!=qXl4g-=;bfr;FaZ)yMppPt`-xaHeYgCD z<9<-Df4#+>r;5K?q^pM!>N!RWhVvt4#QzW8%|rxW^TLr_shz9!;LCIQ`iNsuBNyV- z+}%{ot)8u)&3w^8QahYa50{FzyjPyx<7<#`#~xQKwd9;+d?ICbDMLSAQt|=wH2~C% z%<V%x*Aed^0e=XP{g7brO|Lnm$NAsdHIt54d0qOcemzP@7GC5U^q5X%6fHd4FDQyU zYUzYM+yjYmd-KDygxoHh<e8L0s=PXc$JI~0n2$Fa=Uo)A^D^Ppwmqd(NlRzbQ5shC zx)iWb!}l=T)L0l#(uftH6bD=L^m?)P6*^)s3+hzmnW~B811Ws|g=`2-#D%stTvbI7 z&nkdn7|@^ml!JfLaqDScr5$QP&Rlm?z`QrQk!XA%MN(lug<jav8V6VRzZcQTjC3<G z?H;0kQ=Xs9QX*|ctuUJQ!P7!ffu@g6qB%MCBcy1?;|2rrqiE&4nqV8EF9jOk<7=1z zim1vf?4ei%AdAs^_X`Sa&wKpdNGSUk#8Jo)w-W<`XWW*SZPCY(<2zlhn&^4CZv6PX zW?zvR`_oR+bsfY_+^w1s^wfncrT~3HKde?f>b!ZU2)*r!b)`EU)8=4z#IXE_S=|P^ z?gw=O_8z9+J5~n{(+{tJI1ko>C4`XZ^%T6WHunyE3fo%s(JoCI(c^|wj9_q99_>L- zurq62Y*m#xND)Pa?B;%?f~K#Eh1TTv9#>xnT5<8&YGWF8>e%o-*=$-aozf>z6$?_C zzCvoO-^>V%)~-x0_xvU>BQidmhs(7hssTWGV`4=gwof3&JzoBj@98=zo+<Zi4b=Tg z>bdJ6cxu+YTPmq7Z8s5%%LSMzyH1(soHs<23!$RX`bERV&w^~Ob|x8t-Tlxd!Qe4R zDKeVDSB%IHF(!@I*@4Ivr+pwU^D8$KVhqcZN<ClPhqbk!OG4kGke+XwQke(F5&Z;~ zBC8a<ho*NOobsc<3=5rFSIw4hO5?H(OF}o~vi`u*uoKj4&@nw4New&~0XS^4)@u`U zQFpL`<UtLVY=ZM633)q(0n0?$?ch&HebwC14qJtPV7uoMvDxNS0M$RLdc){H*|)u? zFK1O)VQ!3+A7&4FE!0e)F#~e<vnC;3v71rVV-FPnC3W>`^!J1#8r7*rTO?6I=UX7` zakG9AxpXb=@>_Hr%Hot-jPB30m{e<lW&Mns{fp|_!-U1Cu7lS*X^0aj$N=0afAyq} zouWInxvl$C#NMly_$8CdNT@^SkwRBQyQtv@p&)vnKet|Sx1Cm`FY31aXg9&BkIbf1 z=||4mnA4=ZBU2zno$}yyG%|>qywJKx1aP2834n7RfcSo-rYqn5z1(t0RbyV;QkWAa z!Lw?8)EAqAxCFb3C<_`0VtIdVZqwS)blo{PB|E!4tr3<Bh0*tKl7~6sQ5p-E*T!!X zL$~K1+|@=L0_uT22fr}RZ3cXlZyntCoQb@1n6N2=937~7jj5~olt3DQaz0XZy?3^w zulUGu?3z*vy+t)SL}L#<K+i1|0#sEy)(e_@UthAREE|~H*Oy3>(b$5BC`r?rUeT(% z1ew=)?-zoei*A$dEj?OD3YgEATTqQG6;;sSLK99VyEzZQ-74Nxef7wbyy&F*r{|+v z&)+f5!=aw#Zlv&=s>Cu;AsW$`!e*@<tSP8qm`HrtX1sVx{*+4k1T3yHs&U4Wjy$A_ zUJ$j@7aRN&0u-$w7c^2|G-$mpWo5sFynu3jZJ=g<lP)*%!OOkj*^5`;Zuy|ZNh5Xc zS;2Lsz%##LnxYe3o}u+gM>7<VH#JDFRx5nmbU!Q|RjG@7wDXMrb*}2MZw>Ez$-|?` zX2ocu88g7!ql6Z<4@2jUQ(whv)qISL>B?aCF!8kyEAu6c&ytPvEj!CaC6{=pYFoz9 z{q?L;_WOdSQvy;s)kqt|eynCOH!njdxAe7~ujU-e)>%swq3|<Fp3?gmQ~N%=Drg@W z4Qnu}SBbK;-LWwXqgf7vDtsbF{4b{7JD|yAiyNj!gai-~lTbF1A|SAVKp?oe3q<L# z0Te;dO(>y-76e`6?gD`z9YT@NE=UoiNN<V@gf2mpVnVYaiyBZ@jk<ex?>mY2{l53_ z=giDAXXcbSbLMx@Z@n0o$mz%Wf7b_fUNU%jB1A*=2oqp-+W>^wwq`j#&F~(A<O4N) zu?v7;{N=tQ-%1*FJrlbQ_KcUNmk{el$W});uxui2xr!=XaHB&7uT%kIYme=fI1FSI zGA9Qns8SHH4mWb$%4wK6UD3el)!|Z|(5-Q&E_mB8i1HQ-HZm3ux~1*p3y6OGR7LMW zzw3LhK)QKNB25dtk|Bh2<oE6}qtX=AgA#=~MbM$zJ#l|8q)!Go+{D3zObfi)(J5HJ zeevebSdJ><1i$Gx#t{6iRmK3ur_@y@t2;6L=VE_AXeB)4<avrPH~!~=>tm<QQ9r2y zj>!p*tj=}E%&EU%Ctqj9Vo0-wA|lpG`1I1TyZ{m8sLC%h2+Vzy7@G(5nVm$wVUjAZ zK@}l#uE&O8vF8OB@ON#FDVMrqme+ZwuR;D;k}SiC4)GdH!{dF}E$5_GhTZwU_W)|> zk6Qa@^SMzM^qoj>c9M9jr|SRv66iD~T?232yMT0iwf6e}p_Ws=7n%{Vm@<m7Ufu6) zXGleY3jnS@qgx&y0!0nZoNi}A;ei&h*-4@V%c#NC!?yXVPn_fQ_|zsLPMI?x?l<E$ zV1V5O2ut;TaGd~;JV*N{ZZq(p>vvg}!XXfLf;?}Ks#sW-x^0;(9df{g@LV1r3^@rr z0*0mxu24C*K-_uWr65|cIx)4We1qBq#rlBVJ=yUoNBu?aSrcshnU3U#F(wkaw`n<) z=31_EVux>&hHJEhV{R&!Mm_yTCUMkfw-O<P9johv$`xPa^Se_HEOSmRHz1hW=&di& zvG5fg;8Jo+F{o|CK(|0@Wb282$2S8E{LPZ`?N;@o>K)`?kma8w5L7_;RW1c7Q0~DO zj`V{fg;9br<rLug^XD!+{+laUZT4@E9LvP-+G<&e5&|{8s!_@tm`&z<;3PLq>|mW= za9Ekd{dZ4iCo(-l-wCIo|3i>{ldWYmT1u=i2v2XQQ|^_O(SHZsN3=6zH=pjYsC1ui z@HZUBB1NY(BdHJJVnxN>M8-R64Q5|Ofzz0&)k5^&F*-ZcFnx2{cF?FL<23Ag=~u#u zyXH*Q7jyL|Bt1?qzghdKjk|%UopBGqbL_meDy@>&Tx`U8P32O=IGoNk*66m@z$^2L z+D7+i3tRPi+R#??ypty~boE6yfRyTj#@-Bg?rF%pW-)pJ8=p`h6nx)L;FaTzGWR(u ze6yY^OWMH=`inu!P?LW)+%-=Nd@-j=;S3B;C(-`BE}>M)nf@LRy8*doH7nWT5bI^r zcUQ^tfuoN0(<SW+Ajx>^<(<E|>jKV<^MEK)XFXfGnJ$50vd{hKb|v&lUf|e79h(~n zvd%uG0p<hBX_G6A<hsgC>6)M8^lT-}FOH1;C0Ku-86_xwh9c?qdF($=_h@rl8iAMf z3&z<`xtI&Q0N@VnSy}&P&Vs&R)vL|B!Qz~BeKrsN`bi~$8e<>2%?yw`&vm}Q6DxwE zS<s~d;vTZh2^(6k&afo>abfe9C!d78X_M^*7s?|hPuwTK=Q^?b0`!>%eUVE#jPoDM zr?SBGb^hjPrDpSEgVWAEy&5;iz9)v3`bwF4jm|y259gP<$%6{Mzs(SZ&=v6=i*5Xt zyqVf}BX?3ItU4BNH2mc%BB6wXLU(~m^5N8(zt<jjA4OfS;G64(2VISuEwmRi|Hx0P z6^}XbSMmPrboL^9!$(H^uiwOepY%yMy`|toNIR6^>z5&`rY1(bDxm&R_gK{dPVe^L zuYXPNme---a-Gj>e-AK3tz=KT8(4w)^aD0}<Thpw<n6iUUvX6kE>@fNH^G~(%9BLl zjP1?pr*Bp})$lU^F3nuo@wUXGFmw7KMVMXp7-7Eh0#dAYqTR)hoTW2&|B}Z)>x92Z zhy15i|8tqJaLtO5Y&HkZr*`y~$4H0Pt?gnR*B<uUy-1zM0fhIl$KyT;QAhew#HU2l z&yTDKHQ0NLb{$e(vL)v~&mD5o^|nx^H5~9EiN5Qj&g^m@cO<{kO3~Thyf<bR$$)3T zG~FbYNBMOBw%ln#IShnei@6m>s1N!oR1mX5#OVB;woid>YNOP$E@Kucs=-B*CF)e` z=BG5s+3Go_W!s>pJf#zhjd15X4KONIF$bo5rsVj^=N<DyxQ2-xKH_Dxqqp5fcR@v^ zns!d|sDAwc<^YE?6PrM6eBZC~%b2W;^2yq|#B^pMM>z5pD{L085<00RHpl&{X@jg@ zQk8PdaU*%W>1e@L8^^Nlam7!6-4-{~%C>j>pp>C&-C^-IW)4W;;Y=N2P)Mqv$P9Xi zE>90&%K6Tfd%em0Z7t(Bigb$d$(nNtKbx4W=iDa;qis~@fSUbQEuh2B0`DB5jNGKl z(F1yv+c+*^zv2EHv-x>6^%-bF-tI#yJH`fwVBlev;C0s@xo`91pm1CDEc+YN{Pra@ zuJqyNc9nJ20HZ<yu1YtR*@?23#UlurWtKK(^L-$G{-kW{{HE&DnaX*)nxHh=X<y4+ zGYo5vA9}kVr>ZqLtv*HkPsUZN6l1*paAske&9@zEVwXyRBBRisPQHEf{=92SB@<`F zI_e0Et|!y@CkF_BDJVc6E!*m=6WIa$W>|{mb1|#!p{UE7ZyV(|$maT;#@L`tuLg?{ zfbbG<J0ViW5ceKVWDA6+CVW`9?XT8Os)X>ArPy*6uRdrxn`_jf&Rt*oX|4aa$QgA1 z(;_?okv~8pKa?m9wPe@ox07h@>3I1g8Tx}>4OT&V3{L-llRn`Jr7NzWj_UV!Cdd<+ z-MPRxX4=&aRlm(-Iy{+m*mI-Txkio~F#d@BGwtlBT^jgrZ*u^gD6j_xYADQCY#wFC z+TJKQtDC9Tn{4$ht)6m6TMt(JI@;AgSpMKvb9$#P`<}ps&4fM!G8yb^xBGUY;K}PE zEXA?$VR=W^{cw-pbJW|{c_ELMQfqzKysjd*ePOLq{tyeA=3}Vp>4%7p!sec4RQ()3 zq!N94$f|MJQAw#dGrB})-9d~n2^{+)q)%JwQ7MRyBA*Cvdlyc}%y%}kIy);K@mGxv z@oK{*I{!8PY8#i&zcfNVaim$22ewP3kwhFkgD6uRQ0I?(r(T(<GkZVM@vGn5BH*;k zZ5eF!-E%PQ)?Huwm9_71zhhVQGh@8*a7p#jwisFkp#}no+sY1}ZnO^LH4DPr+6PRA zIpac<<A%U%#!J{CNCBB$_?ud}9tr!<{rY{rhm1Hn|Ec(Zshl{!vy%I>pI3=i@#eh% z3^-~Yjcg~fx3yU7rThVk5r?qwzs^FNmtjBqku38v><5k3OmW~zPKf7nV9g_E>WF)| zB?7CvdhnO*j6;k%({GS}s*-RF@aQCpe>PllC_FvOyO6`*|Jqgy3l$XM5VDHKpB&Gc zA^$A%ixy0q3VTF~5?xYtbCA+rSOGseMPx=)SYSimVp8v4uy`O|@>8$@ygVV5kSYc# z6#r*nR1tMjHhLUOb);1*pt?7p>T%KculZ)k=qZX67;<0Fddte^ql)M<^Z>{WC-ny$ zo$ZQ;3Wm1@d@p<OGG|Lcq$pCdR0K!IpH97S9O^F2(5s2RE@%;RajSJ!XMSuF->;~G z3LrPm0S6&-wXS4;VvM7*i<cK|nFE56Ynz0sW@yreyGeF*I*vRd=89I6)shz5YSxX~ zI{gV7oAgDv>u&t#aOVCaYZS*hPf0h$-1c)7U&MVpu#GMKa}`;0@`GuX^2yS%HFMxL z9F5HLS+{*D_)TYu>MkJM?PJ|M5O*)AuJBw(w?I;;4E#!I%A@9rce~FGXw{p9TDIcd z=9P)5BQ23mU3Fj0pT}&+NiOz^X?Zswc^qKRh7C=#jTqhxAleaPT$;)HtxC+0R!Q%y zTX0YJ`Wk~V)nk>?uLOYGMfD<Ifr}RzI3}2Wv~>FXR&Bd?fOf<1!WtKh)^;$?PJj;U z)un<0jZ6ij>0#+dzw5*3b^KiuFlUV~!p!if!n{6rxK_Qfs8Ik=&rvCEfypU{nFWp@ zvp=a6$bR+}5v#}echfW(RK207k;VhUX@@2j@Q*z2W)N<>5_q<;;fZ(qG|wJNs2*i% zc^_n)k`N)|>~#y8enLp7sLO=sd^$gSK@_Mhk3QP#)FnoZHDO67D4&$xD&;*9?HclW ziGNLXtWKX^=nK?s^CZSb-U|Av!tCs}0mjesLeh7o{&#dX8nBVo?}T{T6z&N{PMuY~ ze11aWAIRIc&7VyEL!S<LWDNd{Q74`v^Q`&IV2V0;$~L1jA(6#nkU@FbnbXs^*|SQ7 z!8X9G;kyiU+knAKsKS<<$XSpElpBfa;;!TBd2&6|FJP_w!5(X4_q_npmE^XXI5ZbM z%@rJ@qClFn^qo@K=|j`E3(*;{;lVbYo#@TS0kAe5wYQ9=@jMrunE-R(-1f-1&`h%3 z`Kk6Wohh5(nr__k8<h~`%sVrDtao|bf=w4lND`66&Pbt&xh|^f7<F7trihS-2x3LI zY!X;eN4ExkAGX^(z2-;Ak{qzZwG&8PhSYJS^r7l0m_<l*+g%29#gjVla^<ybW>j>j zP=W?t9G5-duY?UjNWEOq;n|ZCy(&(}R)2^(N{oTx>@1zFd#`m8#T)U=fnU@d+KE~v zIw_Oz-#e#w;-c`v-P>!gFC%9bDz5Fr=-3apR!>O64)Tjx!!ph;)4^=cjuu5(^zKre z`9ya`{NI0VvKLWnX`bm0)7HI>VskBHxivu1gKU}4c)U`#R~8u~F(OdJ;ckCx&$JOD zxUGCYYICK+B3WkoZ0N^V`%%V3t>O)bwEbN*==<Tg?Y=K>e7m?t`qjLBraCKY7Gyvd zRU*fBJ^96GXs)b69;Qi*A^g_g%&tz?yP@k{dMhe6NQ|rMujD~rV3T-_i#6sr4X7rV z^v9@u%`P+%)ue|JK**Gw@y|x3??=&Aqn$l&%4nX6-F>y9e4V|x>Zf-VkmO2qm`3l? zcmXSVyNSS-$F)Bu>_qMJxAucNzln$qriu+fdRroi{e#PKcI8b%t5V0i#rWO7hhgN! zqC`@jcin0LUm)>yqRx^1&j6|-J=3<~ov3oc`_0_YtGHLG?_6W49-I;J#9A{=wOa5- zCmIJKgLPo2kjB8Z=Dc(>h6QaNcqJ=CeqHF<etiSisDh~SfKS87(Q8JR;urq99&4Ho zlQ&^tX>)*V@tlc^c141|{z8?tRsWmIR!oR@+>*BHIz!%68Mvzeh}I;%aj=YCf!lV) zd6@pS$#SJAI@Vl@?Qm$?dPB_*_7EQ=l{^NX-Q)CIcy&QOy}67y=F7msM;`IfP&{%F zIh-O12x(MY((vPTva_a%>$^K4EO$|<d5_IuzR@+1P5l28UC|)D@L?C}AG&PC)A{=i zQSV4>#0g(>kUU&*gP0vGC@OeE79;j{X;l2GK^#0qR|>iQEjDm|eUoe9ZNNBdqyZ^? zSXtE#1WsD>va)0QX}pnz*I`b3SWGO1V|0+vhA<WwMhV%)xDX(^x-lt2-s}xjU&n!8 zt>&s<(r_IvDp3$EW09+3g;E2I10+&mjYVkariC;f52@QQWi3=Gr_b%*B~M$0W%Q<i z*ePssw`x|?0_eJ)wH>n+L7xRNA*5nMXCVnDKc^sa4zURC25F`viyK<CLJ1x=N;j5t z+n>sx*}tZ@xg%m~;WC^sx&mET{WnH(P-%_7?}3_0Vq7#++{>xn40M*Od#`(?;9r8x z1^M7I#4d@O1K{%FbRQ1}uSz7+VKD~9IE_EG)i`UHVfC&(jP@p6c0o*-oPkEwgx+nq zPsOExGzYop(fr7m(}PBxBti5Qt2ywFT1s?FoBs2{lR&7b@dG&&ZEiQQF_=IFMoXh2 zj=5R{ijR>;I#VF$%0*Ee!b8ERyz0}y$?B!eobcd3WYohM{bo4w6ET}wbhyMY<INSO z3G~Ah>`IiNJ>-*hce-g(@DGu(jySawV=$$DdIeQkys0)&BERTqm|liLT<G)j2OH)# zU&f@kK*L2Empg0NBn61U6un~g#DWQUPnSEGB5Yk-FiUwTGq+|y;O$W~{x2cK1cs^r zPk~n@9#(qeI+S5(@XwJhXT^OQQ%;UE`3a1&Yy+G~<8?R@wv>{lr3Gi@onjbB+!KYh zT$P~h$1>7|<`iR1{bAl-kV(M<q0!31E4l%KDTBbHcfX#{bz}4bH1JS{oVt7DRv$R5 zFv?n}IFb5mTaES;T#Oyd)0uHp?029e`qe?nV-}$_$FHxpeS5HIeRDp-5yy~EtWr9o zmr{y4;xz*+14cGEcc7W(T#pf*vbfQ^ugfh#f3A94<X9RU*5O;Va9JxeBT+^{v2V-1 z8(?jNjcO90X+l3P@N$ifZ1~M;Zu9TyZ9S3V;$Sx5mZc)b_Fidj<$`$E(^L5fe>0Fv zAuQ-W0hGg_dyrFyqxt8d{rZ>VqZGSd)JYC5i!t7WvhR?uh-{S*Chq+v-rdW(!x8h@ zLB`q8L#AYhzPuYKw!47){xO&^<~eZFDJ-ULGP<v288A$Pl*ekOh|OTX8u@T$Z*;K4 z3J%al2rv4T8b2kL=10lm-mg_QqJZD1N@On7_ZZ8R9LD>K#DP7rtfU^OeWf;KOvuu@ z$?(^iik>12&N9^*rlH)E%8n=E8i@URZz3hS1EAqKQZZxx&ToRk^xi}fEpdAy{PdO~ z!-UMu``!qtOi|35CmM*62TXBKLqd!|t$HT^fphSx0I7MYFVfpSYq%7X>i2oqdHRZa z)9y4e%mSQ49XFh*A$INFXd!J2y=$1myMrYbqJ?c~-(=YUyqQb?FQq#*Xu)f8z-#*U zsz1WuJvHpenXWq01*m=dYnkGz!Nas|JFy7dEUej422_Y$6Y9#POi#CcT}6g+-RBS1 zjulsGWe=zQZ{M*CYqk{zjAn=ej;3Fj);wFQw0hRP$+Y(46S$F0{dGQ8Y-qtBl5_X% z&cxNRGrB>w-&HgES%y()>Mc7y$#bh#I4Fr8q5J)H%}Ml|0w%j#P}>&V_>bahacO=i z#LsO`v$zs($bd*VexN@9QMTi~Eab95+{PdGU-|`GEo6bWE5j(NRhpifz-G;tiq~+6 zG&hAUaq0@w%X4h(iXJbjU3fB~=<-9TsgaAJQt`pTW3-oK@oYKJ=_}sNySjzU!sb@Z zIJ+N=5QOaVnVE2VuFMvGMmNk=Jcsp#oQx2_ll{{P`cocDsqdU;gte`erH=OM@STf# zxm6$_ERE>cDmC012q@4j*rF+zsps4e;)T?AxID0%0?*pdi%*<(j<l^(<$-hP8%MEZ zFWOc(<8WzZsS7QGF3W&_<twk1&1`RQ4&U0QDH=WxTo(GbJ4c*2UZBb6e&uI0Ge8NQ zANg`W9^Y#4TIzKk<4{y<1TCRpk^glA=d5Ma8Ea)%FL|rcnWu2Cr5`2mdp1r5|6|fZ zdo7+cuhE_(Uf+{w>!Vi0n65*YKo>5FjW49w%iV3jE7rx~QP(nhFQl#4-qcL&yp<o+ z7XC=jeDuyu&I;J~s=PeggYiQSF{H>#F9#cc)0sd%Xm5h4HFviGF+YYwHF`{f2VHGl zoUdOH-l`%C$@G0`@VC*E&5HPdP%J}z%FQE@bYCw&LgLO!`}Z-&Vl1}|U%&>w9dN4@ z8LXwV^l+j|$;uz9ICb1=Z#B!IofPSE;YR0j!xy1Pzqb<Fsb^avwygrZz1i;_#p!`H zOSy>|oeMiZ|H3#Jy)@?R8+I0O-j{}{0gM2N`^8qe=ct04T91D3{O-a=R6);t57;uT ze0#jv@zuKy^CZxoX?f@h<6xBgx>t8AV8}6?8IdjOYcFUih6kLBC|A6zGhY6nBC{{C zKsrRR9oKX$uG(kIV-_}`YZ=@t6zQ#S2I^LS5_@LSfrwuFfNPiT)YnQrA7BtNgBu3c zz4p2#>)AXRO>%rOvuAXyAzIwJTqM#HKsH}XjHjY<wBJcy^o^sR>7*A>Q(G`Je3!vc z3yS>Yn-ToEVnSEre}oD&@P2o5azB&ZZ%CmI-Ls5|;_^#v6>6;3$_Mp0D|Ye)hD36Z z^PC8E$=l!s)Z~#rm9=|`klXX5ez2|(Uljs^ed#z~lbq@?9W6GVsARR`U&lPRIbKF7 zv#IOk_Uo|w<~yWJQiwQbJYtO$N5_2aC1YQYDSJ5g`7I(duS!}g`VEjlK$m>I0%E4P zUiK55&T6`LmYR=zUOl-EQPfQMgY@aER%YUsj$PeAv1RBWEv8(%eEUXc2f4TZdwrF} zKC$Z{hv-W_H)J0o2X=(6<)x_d>d8s`O@sGz(kCy8mzmzg>y=e=?IZh3KNNSNqm`=? zOk16I)p;dhpG!D4+HSmbb0h<0OB&-PmWE%UV;O3RldvH<cE-@cOYs7!A>?S)argD> z_y?R}GkpK{4pAf^BjgV8?Akt?u-#uv$xIhq&<#l*FFik*XBR^(^Kb9sY0W$S5ajo& z^MqW&xo~r!0>~iIUul~LQR;Vbj+jnRnsRI9)bgfhgf3ULDS?laAb-emR)B}4a2`wP z7##{I*k149X)C)pbsC^N;GcJS@pj<_4MUPM8&U_+QHCB0C~WSR!xC#}Xd=DQt0xzq zH;h4Av)Yy<n!@rsEG3Th(i6PvP~{<&-9SI8=>J|*fce%de&r9UfXuJ=SL1C67nT+q zR@~<b=zfIE^5p6-xBL!k+a~I_eC6{&Ih+Yz4LooG$zhNDu#TGSQK47S!GF80XveMD zj!1PWriUKJJs;+<Iqe<PusUF1NON+`S=E;bVuS`TaYe{1Y3;Uva})U*LcKg_Je-X& z*ZL#jJpGlXxV?r!xR0RFxc1>|_Xn@&K7?%Zjw_W9W}@3`yIZA{oLen3c+(6E+$(q9 z3f-G=c*-G#o<L-ew%6|U0ogW1J3eijj5#hS?DwXI`A-{)%qAR0hqP6<Iv)9covE{P zdtAhGYb$Xlw7JE~lplhGe#d$~l)@5|Bmxov%K_Ou{}C0>gF5lt+II^(S3rKPS)p)- z-Mhl!<ltop#TLm-Neh*TH4x6}Va=I{ishIso*?D*;q&1Jj!}Ep+?@S%hlrFhYY*}E zivsEtCG!wzg%z0C=)lA{&KXa(w7Yfnf#`6q;SW{MBK!iU>%m_Nfc({4E~`Y62VO3y zCE4fzugqixmRL$9&!7Au)W8p_Jze~WB<WAqipVFO>bYQJ;i3{j?Wi*AnVUm6HwbTN z%gfeI7d#>fR+8oGA(0s!_Bi0WYwDfsHdrs@lrswkh4rJ-3v@lJB|?sPi#(LII@2|} z8>LeSIues~7jz2(4iZ^BtxOojIsB_?1zp_=J*j&dwfS%@krfg$Z}(tdSDzfB9IuAZ zW!noWVo`I3v2|uu+(L~{-j8rBy%s=qEZ9O<2|KS6Sv4^ySgv#u;hLnJ1|;%EXTpNW z3pg(RZOGT|(+|~)N_6gNlOJ&HXHK`)zC3&Y7|XMERA-U#+3LxC1)8e?0ah!V!W69* zBY+@ITCmlQbiy0=w4a;^bCc32K(Gl}Lz^FAY+q5x3NNuSgnZICE3AvV<h7vMLqBCX z<TCz$=`yRwxyE+)BdDd<T&a$h^rc3I$<)k=3U+PLc(d;@e1TL?@?4?NL+FkLB|v%o z{!~YtHxv+AknU_Xg}gI9t<-x^TuKF$<`v->2O*ih0T$6Ks{!hGR02aTq<P`_l)mo| zYV;+BB-P-dti_qmI)00`^0Zd3DW@W_v2+4rL?ivekehNezuvD;Jer9QH(L@rfITeE zG5&+A3=MpEfTh)Nf<b9ey<UKtQS~S?88tXM<JH1)#zO*}#m27Qa_0QV+@R2Z+M=*| zxw!mwv}tw$Uu21|9t9Oi%*Dh-oOx$Wb1`X1Mu!1ZWK2iZ<99+KLxQUl9J`STzUmG` zE@HH<bLlVosmQJ8oEbTAHxL0spoROH;3rh+3DBVJAs<h}A|p8bHpW(G)ckLU{5&}d zYpZE_W(r$4!vPye^TIuyIYPM>lOA6adiG_s4U>AxE@&4`5-DC*Azi|(mmmjiw&^v3 zQXr-M?wz}6;dH(ItU^k^VPb}?#Tdq5xs+HsRu&R?tSrVgm+1LzWg{V1qMI#wtjg8f zPCXgDoqDMyU6A#L8;X$7I%k8WLuvc~RAx3fYFyPlbM){!Xdy8NZitS9^)+0EGs90w zPkj)Ad*S34rz@vkRsr!lNQs7qN365StE|c&=^PqO%*R5SQJ0fr%`~AXa<@q7h!T|@ zU;4VCiZYU;elkdiAbX^DmkEy2kETUx2gTpZ=){Q~iL9E@E+R+PLM3vw8*X?LvcK2Q zP85C`+WN>XF%^#KR9EVhe~LSl*Azspn(=B%OygeD#5@6Bl_D%hi~p9161BD1ax<%w z|MH8N()D_Ek~I|2YIC6Zs_MBL-^%fIIjgeTPWrgo6%9o{+Boo+?%EjY;4r_$Dun1P zkI&bP{pz4?^KDOED?Q#BL1`~tOqa1DrOIuDN==SxaZ?l!GagNe`<NxUW#Fy{QU#tD z|63D|?+=D%^u`(1)lM~HaJ1=Oqn}XOq(8SkYyggrV&%CdM1^UBoby32aN8>dyz5Mv z9mwfK)YX6K(0tFToM!mm3sJp<al!B4Nf)BW%HwJryL4(Vf|@59Z_nA0=3S!$mMmSB zLSf=iiGuvpRPc2gf0QR!3L!LEOx5cIUsDa$Q`%lPe60Y9qI}f(2yIJ04?U`Ie0j#B zs0XIjEs$JPqQ^8QM`FUlylQs?OfGl-p@EsT&t$Ee!BGf~jA}p=Tzl8!-Ir6~0;s}( ztC_YsYcH%9FC;ri-VwCRXs!{}wp=E7UPyP5EpZT}-f-i9yYYN#&3n@oJo4@Z+X={4 z<4liI5UrFb2oSqhKOie<knJn><th|dz=Kx_bae}5mkFk#)m+(_8YAvrpzd~(I%rcR z|HmqiNIfNGQt1FnLN9XW{Mjmz$ZqJzU$%_H@rO0byxK!nHs30>A9z}uT3KA~@HF&4 zJdU4K7bP3>o^k_QQ)a0%hU|W@v%O__%1BNQj8MKN;O4nCU0Qf(3mVvuu&;Bv0hWxL zIUQWHY=_Gz5YjA?>b0%W#99}>xVpfZwqceD@|AWulE}HuE|QVo`c)Emx6jT+bSzdt z;V6;nC?u~q-7{1#C7{`=e`rPRm5!w)%LcXQ>JC+NzQiz<#8l^Me73osVKp{k9c7=r zv~>z<f0~9mKDpjDoTk6@ozd+;By-TnyoQZ>3*r~zOdWiQ(g~X0e_koo3eoAQAL#1e z<M%7B*K3D}pixa%h_xe6*Ne*vw(NuXx?-jhy-mK^=7w!oPMy{nL)h2_<?MF@)m7`) zYt)T~uOVM;%FF@!>m^S4WXXwy)u?!`V*mFbMgVDDWFCwh6_qA=YeYH@pe*HeUMmh_ zY|=rzj9vSlZw&5c4ki$lOn7O{9G_LD?`7~}awNAwODii88`y-gO}6XilV8_E`@P20 z>E3i7Guo(>OiXy>$)7rk-WxMWk()Jk{}IGJ=<Sb=(+#ZAiH_Kn8hR-;u-H7~GUNWG zTPb<}Am^q!b<C62ylY=(f7MoX61K0mh&6y{H_>ACe6ph?$h~IiT^=;T8~sKbdm<A< zjZ6pkXYY-{YIXTe+UAGcICwNOz@IR8I8dSZ{u%wF`nsPw8iDFC*ruu(#DASAw6i{9 zH9>&B9Wn~BDteq2c&d2A)78_}X;)`l>|IoFI+&zbKpPs?!8)U7`8IX6_I5~$Qu*kc z3{>@N#_#&N1zx-=p;(W}t@D@%h&qA2(Wn19Cf+kw6%n$8=1O;FR&8tbKLAW4>C24E zw8`&B_!VGz4kqZDDWj%%Y5(r(?}c(oIt!e7ox<^#b1$S8Suq1?jP}QPBdydb#C8bi zdV2gDd8iNNsIYC<zQv-?oJnXNTK$OJnk26vpV)u$ISqo350x(D35vuWt0u_(p@UQV zJ}W;Gf%BWhg!N*fQA<%RD6C&p(Y}pn=Z|!sdX1fJL9v8-8d^ueo+30c>foc*OViK3 z^}aCFg^V(dBUeC{^3Uj7qi(oTLEOB817|K^@6rq+GkR4n1fjxu9p18D)a$LB{V4O- znY`k!q;B_v+JOG?n9Cu;RS+GV=IUimglzW6=JE+GqXBf5Rq5cule^$uVAEFpmSSRl zka+VMY}1Ge`rBi<?xMEReLu*i>CDLD0dX%gaM>=LU-a19hpu=zyVFO)IUG6*kUICZ zE)Q(OS0IywR@rv&nm-#kI^$t`!NySF26%^;$4m&sG0TGqSonl4#j!rXcP4%NsVoJZ zABBG88+F5++C_H;MJa+=jbm+3!P*$^9N>tjSvF~;sR;KMRu~*^&V}lhPzMg&^3U$Q zX6gfKJKhQKql90mW>*v#zCC79BW;Z}&+*2oW3I2d=xTK?T!=(;fmdC{$a{k8+O~1D z-fyW&M6j)=4K1+;!M3gw{|ix(P>=cUVy-;S6L-pOB^1)ZIOeHXSzlPB$ON>)e<tj6 zQyWvr($<!iLUHFl{DU&2&kMgiv?e~EYccR%`61Ya>-ELRO6t!14gI6te;rooHIVR; zRh8v9#yV>@hp~J!moYb@I@=iP5h_$r=&}8=4D(=SImY#eFp;;&Rjg8C!Xx<gG{f=5 z)W0wz#dyxXXg_$Ue5hlWsKz|vGJm8LZ4EkqomnBiI7RjdeQ<}Yq$_%I{kgRV0u&Ie zN!35MEV=<m^?~@t$`BZlU9_P;A@-xXkX1Av@ZXC!V1)We-ohR;(H0TEWYmcbWcjWr z1?`V_@_U8JbNwM98oZ1_H?NF8rx3SnjD=j^qy?SVEMyOj{K&opIZCr{H-3c%?|OZ= z>ObKgf^a<O*%Noje6;EJ&c3$0$Ds;I7C3*98|v7>FmubYEyI)y$`A8;n!r8Yjevu> z>C!br{0ih@yYpyH*XoaszES(Swg%don>6}S{eyh~x};!faV);0=CGhbQ=9y}GxK^* zXKOX6#F$!Jr0s<2)}K;>#XE|94(1TQl4c<12BpEDF!$DSW&4#vbEBjE+YOCY9nGgr z#>|N8h`dLj${;uuYu`wFPQkn=9eHZU6Ro2nhhp|=3?8-`e>b(=xTTROQ;B?*D>l>n zY|B8Ws52e7n$H&7YdP{q1FDCPtjH-1{rq=I?>P5E(^dmR3s)8SNd2o3SOTm<s}HAG z?b{t;4zsSsahq=tYe#D?xI0jX5tJMvt9?#q<|Mx^o^lg!WG(kilA@T$sNVyRYVK!) z@O91K8R4RnJ+&HR*|l7=lp4e>N52r6yK_3r#HLUDm*ZEXJhvK-UzuJ7?{=L+a`^7c z=O0>K;A^hx0H|7deTc(080NE)P(joL|2DP~qJ7MEy*Oh4Cq{u0n9)qxg!&+GZJ`p9 zJZKandrEIm;D`I}GbpmhI3+($cs?=@eGQI}pwy>0@mjaM#oAd^n2j+|%s8<*#-tcU zODznv7(?313C%fiOr3XgaI?fgBf`6OLy3=pY>lA^xf)dXLYS|}pehfkmLGXAC%)Ze zHsyA6!fM^q9LAL0e3i-#Fvj*kt@u==XXUrf6|hXGx>6eftExM3tCrYE4$0gU?yWUf zITyUCEo%oX`D5fWs(6_TmV*;isK`tx*GzNY#zBh{HYO^2(AB<E@Dlf)14dtR7~9G7 zCSW`A;{C;u3G~g$mnu{^5nrDMAsr~K9W7ZhU1FebB0q%MhoELt(r@!K?p{uP*6#Yl zl~pGx4QDH7@$aZEJhXgTDi?}+XxrPx<Wn1?9+d1yQN2~;8+=Y~et89jWP@qHkI<6x zM=k4K$moWm3uZb~0bsla)K<U|VtuUcYiJcC+?j48)nAsNs$wqvKjaWn<Z4=FW+#Tt z5n7yftG$IaV&>Fod|3)kM~N3;`yse^2{=XFx=(g*XbG)v14Y?Y!VeAn@!sO!eltak zset4gU}3BO43u0<=$BW<6o}+zJ&30IG-!j5U_9oJ_g2F`-*g*%%IhChEfS9&D7oHc z^E|Dc88V?BL=$8mxxQ*|;py7=o%^AbO3vPD!jr9+M#Im)c4}Z{!}l<$9w~EbQJ6hp z@KB3o*|E@b4SmbHt7g976OHo3#!27$Zj|J9c_!DTVt+#s|G+idvbWQIc&sm7b%h%= z)1Gu^b2jJ7m82c+1^{Cj$<VjH!)U{5B+C~ei*RbCDrDN=tNksS`(!AJCs+A2f2;XN z73_@LWbVl2_2SKUdwt@xIQK|*zN;T0rR(>mf8~tW2-5I}Eo(^5QB}9F1x~lgW1r*Z zU1KkO^6%a+1^O+f9c`^15jdM^Ix8EDR;HByhyh>;$Ipj#{}{UYE)5}FtqiC|RrgMb zua(Lu?tD)_2GTrkp5=})xL27<U}+~f-r3~+%<M0;tqB4b-0yaemx}GCKW2>6QQalN zO)x2|b|Xcq43r0V!~T(56t7gHHCj3Ke$qYnxOVy}!rJOZ(*Uuq1t3Kf@J1s#D~BFm zEi0!Pq!P^hIZuQ+^3vm{u8yf*>B{E47Y$S0r+WcoJn2xe92G&;d1=pl_-m@u$B%1) zJg!bwID#715mf3{@TkHB8ms{MMvXDBP~Y?^|8gzYI!bb;z>I>4=o4}~As2s_tvGDn zXkHG9DBSfwgxqrDrKk5nEv6h|FDiDV>pR_H*hF;$;WGdazKztX$IG|`%w_WgWW?M8 z*1h`S0he~x9p0(9QKntdMkhJ}T7UCX{x6!e3GhZIN1c~`#D`x5pPyG3*5+Eiq1JXm zXN050<y&rZE8kJ1Yohn~3ui2qU2k0yJ<YHoGLwS9DXUu^OK~n1>5X5P(JnS`tP;jO zxJ^hwxN4he{y4{Lf~4HIO(rur^7?1)FyakAKxw981*Bir^-VYKQ05Oo?rsa-M_AUr zfZ+n6!Xy8vFPyH0nxuCrEV|+ecC+@Lad}*Yl2{4P(4ZK6g<_ZZ!I14rr+rG5)3DP3 zA*FZa>_60KXCIZMk(7(}#U*FUTm#aot{o;fO7u#E)L=);(s+IlE%sp0ww14_vhNKU z1cA@f=9VT4_xP$)#FCRoT%5ljP9sls_)6MPWHJ2HJ1B(EBj>_6e=yg!dQyY;135ae z@iz|VrW)9pPV?6bO*Hl&r@$Tf#@gbWK|Ms=q#W)LB~8XOv*&krkL=EVA3l@+29$z| z%J>!+zU-m9(V_diY0FK%_!~l6B&-bFVQWn)RAxAi(J;wjow&-EnVmt%%hlsLydS6v z_1BJ^r#)a><|mEh=X)2LsBiztCn|_t`swY;9LKRA?4`if!|_IgiJa(HBA9SVR1j(~ z5dAAPr(kAy9dhM};)#x9wQH*^RSpx_i1|KiP1vvuoRBrVZW0`Orh^(TYIW!t_V~3g zat2zlF%mY0+Uk_)zRe(!XUZ^A{@OW{f{wKXV<Nw0W2{l{BLgCeWIzri82w7kJ(VdL zLD@|eUCUi%LKyNAD=91lHR)vP30c+8)Zi7%!a?D(&@OTA#oy&t<}Slr<R#415x+x) z#MQpQK1H!S6bf{4nm1KPh5mc`QUetrBS;ka$xk=I|JTUTCAi^<{J6<H2ps$tLY>eO zr1W(~^CDaM5i1y7es^2ysC2wjiy%SJB4~aV7igq%tL{fm9RFNtx(tJ5>3O!YluSh5 z7T_uwik{`-@n%RoR{b`Fp^*qbW~P)ie12Sm7oCToQ19mcVxAmGDaim0aj|(Vc#{#< zNtKXQIu+C^b=Jq?WP_nFq2EW0FY2(yWt~ar17Vz5Q`F9*ZOnOM?F4+n9+agEa`+SP zLY1@790q`F;_SSTCMuW2lp$mj+z;iz&$XO2mld?EL+Cy~I{s#!*X21bYge?s&%o~j z-qfxYzqwNtamsxHEO0TE>rclpG$IxPQA=&GkOLrB*MJvz)#~H5Z40y4L9!UHJ*m45 zVMO*!DpGU!?FoWXWQ84glCC3<CF4*zIuq5;;E_qWG$c;QkNL4|67?!bYLK`Nsg!wd zWNPo2xhXWChz#wO?Dk>|5ht6%Ve-4zEqA>iG(1oFnTyjbsPCJEk1ePD8&m|7W3X&2 zNL&5#h_&Gn>PcCFk;K4HtMZchso*ymtjZ;RY*Gd^7SXZc>PEBoO(f(nlH!)_T_Vz} zpcnh04>eZAC%Z0ppvqv^u=_eM)}~u-H*y)*b62(>9zAKVR`BPai+EFu7hX#u^Ieb= ze$U<|#v9+y(7K{D8!gt*N98#knr2j$pf^NCaD`w3Ff2ny$43*HKL*UZ(GZbf$o>N< z=afzN={440IZUmCI+96JT|anZ$-1iK*ia3Y`XUR2l^nEP;UlPUEF1afUA$=r6Se{d zd{S@wG^BXxzKn2bu>xZv<^L}q>WCw1BtKN6Bft}?)UiRqg};VuOApoFYMapSt8qm# zf^{|(kE*$NxL3x~5~!c0x;%Zyv1Eh5k^4cSjU}XfSu80yDyB2;1hXb9^YR{E--<%W z$x&1neKyuQ%nnc_rtXO%w+zbVfysQ5dK4SN5;uJl8>s^^=3a*6whraWv?RiY`QEM( zGUxwg;j4UB^j#pXK4kQ&?KeM<-XW9^?w7>=Dgz0Qw1RO}gz(%hpIjM~gG0ofV-Nq} z?FBV>N0~9rmAy)lPVMjZt;B7GPs+3gXl?09tPwvYFA>q@7znE0+>hZV1qRV@TJYPa z31<`bA2xWt;_Vhpxz|CdX%PNO@(o<hk@o{|ZZOHI#8Y*@SA|~a98F}x#q<%Mb*VE$ zPM0pL_;`|^geYV@vO4Qaw+JRbN6^a}RAQJg%EF(YCuJIj%PZ3gBo|9Z737+DYzv{Y z$ZXomAd5UuSTJ2wx^&+cot9EanO?Z>?>tjPWL*#r*D4J!8IBLIOsW9LM{jsyesF~~ zc$*!U{E^d%3j}&y$n*|xf*)jt2dhMe`M^W@L=!wxWur1j5O=TbY9hS1=Z_b+;zW3C zoRq)8<UUVcX3yts1BM2r*Wl{Y34a*GeAi=TQah6G=ts9acnpuU9c}D8?-`UI+4$Qq zcdf!&N}f%#JF!jkSV3`w{=2J3<TRM!L2%XEFwiUt#qzt>X-b)X*oyS&gi<mA#O~jF zI#0GB;)P`wq{v}|Vmjr(!Up%a(XO)270C%!lPX{Pjh4R(ntNn*Q+?;cK7}Bts{noL zP28t2l=whtQXB+DR2;NWS2ScCW+eR-1FOAO!qlwrOstBkp$;{Dt`C2e`s^*vnpS9g zJ~r-Cs2)qwisDFfe}Yrgnb_Ps(Wa~tfCkN2Kfi}34n4Bi9%>qh%8xlB)Uwu8{-gpf zIwd;$l4-?3SP0-^n(e8u7TH4<NW@RXn%k48k5)8_nX`%7_N{o?(5C|e@S;H3RdNA$ zT%I~9bv-s{7t;9macyPfpIr#(i30_MHM6s}dx?dVTjqo9qGymGs4`A_Pv<{0E;yJS zSESC!psYHDwUtXF-M&P04n?PqFGN6IH*(cG9+lPgZtS60n33mU{VEp>DB$h+5qWG# zdUIR^Xfeir(%FJ807Xjtc=|F`E8E;7i|11wT^yh&_F2&i9)VnZd#qZre4(lj4)f}W ztaT{NB|uB%V+dw`@C1fR@2GwqK8+y;K0R}BAd;UZZc?!}TyqRlEak5{>fdpQ^h)M0 zqx6Hdqc<yRQ@S0A(0ga&y#>k7dv=cmE*#nW1k-E&UmLZvl5-|H6-(~C3ez--Sa{NO z+)za)hXtQqYm1*TN|AZVCl76>-b#9!t%q(2$-PXty*`?$Dq%L!6icqPPti0=c!Jyc zG|7Ueo7lC`6tFx0QR=rs?tOxWTS{ZY``%na>Pce4C|YlYyrTOzp{S*AV^<MU&sqod zF_)eMT8|bhUTcb)7>JM>QIFQx*yDyUB?D-hQb!$9()b;;Qw$NyP8D~L?E{BNSFp(F zTg_%~;zn8FT7Z6cbl;(}o8Z2h17HahafEDQ(G6mG%VSFmS(`Q0h-e#2R*W?%gV@0Q z(fhpVnkV#MwgB-HBI>$!d~LYA2uMT$_869YC&@tMx3hfyOKl+;g}6GmL4M$K@s8E& zYZ<p&6x;yE>HxJ^TE*0%#1hX!T`<JAP(4CUVxc1X!<%rchl|Z}jG?Zx3_YtI(QbUm zOR=iA3;|gdr$8!E<R>2VyQd@hi9@SbG-D!^<y?*%s7EYC_|Cw7g*pK6aD_)2;(5>1 z;Q^pAu_Tsy>&gQ6gDUh>3!Ft>qu1L+&-S$*cAkui4PpJ3+JlOYmmD@zI1>tvvw1F? zQ~f+B0iTkmu`}@`dN9s@)bn&lN@c}n>nd!N6f)2$wsR=zr36@9<7|fBhi3s-7A6wI z<IXMoGZhNQ#?~0;gCe!|gQvz6pN<ihH3QzRCSB}}be60IqE;E70-0?meuL26v^e4^ z-NY+KWpr1TGEIJ3V)KbM$-A$3U1mg9sLmLU>?hTw>Z!>3AGxK4bKFA<hE>Q_`x%nf zg#i|nt4iGLTk+m<nE9`^&S+l{kPuaXqi_SApHujz{D{31vBeLLWmrWHFbm0)I0M*< zdH!Vr8@UtNtP;9r4!EkS=s11@otGK(*g3LZ9x+_r8)!d$>Hz(!uBXf9$3Ew%TH*3u zXZIoCEXvt7O%a<M-_j4z7*`$`YfM)2&bH|nWT#?sh@PM71nBmY-Dig7N+q!rg*3#F zvV#uq{JZO?`V2&o%Mr%8bQk-a#IEt<vVAUj*I?y@0*$Y7bBMY_Hv`L>v+K>TkWs9? z`OwFdTM+Qk>nNy(j@n<5V9BuA!ibGi0f{#+A<b25=)@JkRVQql<q3QjnU&WXH+)DC zDNg@n{sj#ON!&}ZJE1cBj>VZfVUe*x(S9_~$@x~wwB`m&&-dxo!^Gtk#eEZq{+^Um zgaz7ojdaK%>Ib~+af}5b7O`5vuOP|4qSQ`&qvg8w`;mYCbGR@-hoqL_)2go29UD2C zq7tTQP6M@#{fCw9waZjp+nyiyCS-P`!9U_tQrHOv_kOvgm*rS+cp|XUV!V0=_A@GZ zv%lwHV)3*M$PVEAR-9^1`dMeUs+o|5$?IBpYmxm-tA$Zfv*o3dBJ*T5J`e{7yZ=Lw z?6EUlu%X!y5PFdJzccR&Z!#lpboU<ZblPTNK3qba{Gv{%t=uBHE<CNgV*u3yjXtIw zl6eiV7c<bq1xw;)zZI8sVxQLTt?I*_I-OFz%_w&jY_;&eI81ecQYz0_8ITlc>xt4C z(#y-W=`|_CEV?IM)13)6d5iV?LY&@0ct1@DpVXNMl>gKwM>H_kN>{mTKd2-<z*0Q% zJkoZ?X1WjI99*#a^)G)@&%7PUlXpvca9GJp=$q`BXl;Q=ML@lwpUyO($!ByRW4sfz z3?E1cp@42yf4~A%3`uQ$oONQOD=EWzAS_5$dN|vB(&k;xlm&u$z?Y7vMNj*7kT2Ly z8jtaaxZ^iT3qZANfbDR);;Hil#A9ds6Lfdij@c!*;m(-lW6>$*%5^0=6A_Bs@bilL zNi#kTuX{6l{=aqpOqZ#d8CKbRT8Rovp)SBz<^C9SMAVxf3Nz}q{C4{6<Ixkf!h%O_ zFAv)4Y#%cRscQ1j%~`wCwGW+Iss_Roi8goVAvodXG+`r#XgnXtQ1>=w>~uIJ&A={* zz%~EEr)Sfe;(H%^-&lDR&fvrM{m`e=OtWyvU!9(w6RQrYTOfXuq2VC<$4J=|2u@Xj zivQdvirxW<YN@RlosP&liy!75PeAYd<eTC7P100B+{Ck&;|D-}iR2>=_peOY&kVDX zFIT0rDmT|nzCOQK#9lIjnLFC^_VjE*2<N&&@2WGCOct3}L6NQ|=pX6~5!7PNadZfh zt1`z^Hc6H^ZHm~7M*B%4<;pZlzB=}H2s{SVFoVC_r;-lYRfa9OEH($M)g+InSAV%C zE9=!)vQL`$JvGQVLh`4aiahUwl_Q+l(qy~(3>x-H=}7iP<q#X_Gi9l<46j+!$+`)Y z+b{Q0;v1uHIh57@1^~7|+;~4{uxZO+BV`EjN;<{hVva@Jz{tILn{7m@Cd)gkyJ&cF zAn9)~obOEN=ptfT*V6qVFfJZoF!h+p=5iyJ-+D&A9k(^uX&?@ksw``$?>~L<_BC|o z)xsv3C%_KG{WQmfteya&)*>8Ik6F+%7y0~185QPy<%3+Erqxd;N1LFZ4~!{9EH)#D zw+5k51;}ig3$RW5v<ptIKHC-B8#zvgYTB&BeOcw3>khgs(&F*wC{-bC=6c4H6LP+h zlSc}yZ$}k8l#V|@ei)!<HKvD|8*Dd`XepNpX+@9ehPTuKOp?2Ov&#CYWia)J!$Hv6 zBILy*zk_DWsWwNF&V~p&4zPld&$buzfC#wrN3!NmeyjTAo-=f^UUBQmusf9PFsFH# z3OinS@wU}8Mdr7Zs1$c_Kg$jM-%mp31SmUZ;i)&=@J|%@q7C)hWfm9S4GEf4cx}5m zxB0G2uAl{iughyxaD7g;z+c0$0VkvT4|&!Yel8#}3j=p;<M^My?ETIn(_!yMmxqaV zTE=7W7TLrqr*7*z5hHif5ebf|%c<o9{P4z;YtA6LgT%e!x+@r(hxi|N?Rrl{7VOxC zHDRn3d!eUOhUV)8MUO3IPo(=X(Ul*`X|(`9+3dLb?Fb;{OvlZd)4mEQ7a7loRg2*m zJWTb$in89s+2mw*=quZN>JOLZ5p1Ji9ah4FRJGe7ph}OK>Z&u4qsGUeHsDxt9e7J4 zT;9Oe=ALjSQ=zD}Ly^+^yJg#QM5UkhQm!3oG=Fu0fQUE-wBW4$lGTLdcqv^G$IZl$ zOJtl)g_mEcl&zm2%2+aG%^hnnH8Z)#OJc7qAm~OB8^reyN^<qPh=HwW>)+}nNjxac z7)_I4*;<<**ZkmxZ8?|)O2Cvs;SBGwlBul`^QYI|>yA7?Ct*F0W!D{62*MpkIt{3u z_&RLgpP?CkX5ZO-tAC^ObrTdeZUNIpq6`ejW#d4O9sW%0e9c=mhqmufhgZ~~@Z4>l ztePZdTcEJElkM3N&;2f^b~WJA(-fO*qQT@GEVJhc`L-GQ($K2U<6+V>5?!NcO!knY z>XQMjSX>A~kO}Uk$!iT&<bh{H=jGjEw%;kI=c+h*WMXgzuOV9Y`F5ih{dbMt%u`+& zDVi6?eH@h@(6p|wP@5?O8Ne*qkpGQ+=WE@YhSMzxXZ!R<_;pPkZ-bH2iHAaa`+vKn zg_!n6$SMT}S}F$U6C3~R>9+3{yVvM`3-jdHucmUEE>S#`8*4Moo4j6~zv8k!lCIpn z>T}w&H<+camG%^2sb&T@Wa#1kwEWG7Y6?oXJV?Q9Q)`a=8Ibe_YE-*I<`<@PTDRaS zHxeL+x?V@Pn;1#e3{Jc3#RF_3=jaa+r=8GZ-@;=h6Wx!sOf@^%AGe-;Xxuh+WpWyp zISiARZToD$uvijDveit@^>j$u9!C}l(ESe@P7gxG-d9YQW$s{YisF#z?T#!j6+1Ex zVqT|q88f>08#>HbKvumNvG|->;H}1}P>pndym~HxogluoOe`$I2K!oC-M1CA1sPeu zDYa0AAa|FS;R@zovIoy-KoWYMDtoK<<IXit{uA+Y3{mWVRJ7*$S16BXUM6-Q-|tm0 zEx(Vgpf_G!Vz0Cqw0nH@)G14+2rl16F`&YXLVGL#8DgeV`-i5N5Z#^VTjuVYR=!%v z=2!)FkId1ban<dhdB9Ag%k`E|&O6*nAkW1YV}HS#)kzvXkkbt_xA<|wGN+8bPwLJS z%E_`K6|*rP^Dwa9#XWf)=IE#d@<@tx7cnNDb2GQBN6O$e70PR!fc>ie(1J2__)tC~ z?z+$=LuLrx(kd#Qedt)JIemRy5Eo-9a*m#N%=+Iz3YwS8i`1?D*_d><cG(v?M|LRH z<EGw(gPcE6=_n!z1ur}|M3gn$FDzJ_J9lFX4a~&;AwiD8%Q@35wZCIl&(+o23!cM` zXnNd~bI=P0TUDis=4ty;e)sDuwMW$g^l|SGNx%#aCf30{7OyHy?Ej@d+GywH4ly4| zmk;v2YWf*<ke%eM9_;Kb&(2D;&sXr+4YjU$WGq?Xp2XatxQ0dpw~u$&)p<#^Uv6L; z_2&M~lv`&xJl!{GnU3-&f4ll`<=~^5;aW}Cj(u%(IcuG4M?7ft&!$^gT@~qk#GFwk z);gt@STJc!MLHCixN0PU3PmN|A&__n2}}{#y)4~$xyEtcPk+sX_ue>qu!`ESAFJCz zf=yGhFa`znO2%m?>+SBk>V`ll<~=Q77uDJ2j+VvMX}B#uK2g{FAIvYWtqgE;8|f+1 zg9?nkR)3jZbYc(l;QkY|l%Y62%C`jU*q#dqhM4wQR-@4$Tx~1=*o*1*4yN%&2jAWs zR3LCkdMSRS#g4y;wpaN~8|qM8t{%w0=(%)Ykd<WeNWTApk?-%Bwmg?yF>FOa#*sG{ z<@Td|)q~(alSdqBdPtsxJnp~%;z2eT;=P{n`qO^@W-g64HHB5(I=6?2`$L{`T1lWf zk_hDoBFl+VavS06j?cp!YajIcg|Mm?H6vCl_2w$pFPP_@ydSfe>TH_+t<v0g1E*<x zRi&OZu%#D{$7AbAJ8P}8K{qZ;@+a}7=6xZX?>RYii0F;1v8#8v);DFBdn|b+L>Nju zW$l6PI#L4ewOZNuDF=5l+D(({`8}R}5fvK~%nB)ffvO#S?bY=VfU8=HD?lyi#``9z zZbz@6I^8C6ZOqIj1x0zGGUD#HZ9-?f71eGG&ZTXG@IggeMvU<V%6r@Y)7qEEHFc$b zhY%u!1la`=G=Lzh-Yg^p#Rh^12#A1`t!+XevV?#Elos0`2@qTW!y+XFEr=i}I&6l; zYT1;q78M-=K|#P$1Y4)AwPUBB_gtLm_-p6=%=^cC;giqJIp1eF=RD83C-<KFJhbPK zeZDHXk#Yv8vL3v}YzbFnHCeu}e^cpIlz|6;&yt)Gf%kJeO^zhI$51?nh&fM(f)h-+ z0mG|$R!W<2g3gMmck_+L&UI<^7<jK_Kkeyd7USsn^-I}VEkvL2pLDq<FqnWZmFN=& zu-hvltaqf&S}`i)5YGLNjtLj#G4}eOCYI+1kDBoqM=_*^xaTIUQb`QuY6hzGfqMN- zoSmBZZ6yYV7kB}<vF_~^g}rv*IoamTg@=mn26#bBwI>-T4Zh!A`uLmF#dNQo=7oK1 z4W4NSVW@!C<&@!;B0Pwz9YCqLRxcNHTDyju7*1SsP4xG~RiD&!aogG)-#smnhsn`} zIwn8c!?<x@#LhIj9CXc%S{Yw>nj`X|-k&KeRgfF=_Oj}KQ$M{|$Xm*}D-tdAsl>fV z0Y)w}*NR;jo9!WRMGKYaQL}`3adTq*jUBeU^N$8yS3BJriORVE8WAE<FbI^oW469! zxIc0XyaHN4*L-Og@i5<%8|c!+FiM<Ikp2?-q<=owMmXihW){Og$>`1n@_I8iOE#P4 zz1J<#J=fukIZ12!!GWY8@9F-Bg~?MtuLaw`zAFgPb4Tw|#0Dee<+9eM6_nnQlt=%# z=*<2&)FLs(Pbt^;h+F^U!f!?<HgrR+-oo|Da)jN}MVjTRA=0ul`qfFroEgm2&#X_g z?8a*LtL<#Q+BdFf19nlqyD`QD*Yl)<+}YkjtC*@TrOvPTsrr3K)Gul1@xlD<8@d{r zce;<}vjm;%*f!NP-t2T#S?T^pdibwfO6R^xIukCiv##UWB6PYY8y>U0f5&}4x<qPX zY=?S#_s@G*q)cEuK+3LQ#h5?XEQ6F=iCShezlz&eG12=3*)daAB4P5jWD#FK9p-%Z z^j>Dsh!>IuH@i%KT4FqV?Txjw;+QMjq={k1`64&3Rmw2*_%&>ck08Q|yCEBDn1LGR z1T*H*b7uH<D|fIh=7E+F8Rvo4Utbj-&VC)^!dDx|r@$>AyyV{GW_5#aKYQ((bmZ~Z zxbTr&=SZc_%GFb<aN*(3?_25@Gp)+;;P+ABDUBhPWPpPPI&5Gys{Q@?m=B~z<h0D{ zb1uK`?5AXUZP`%OQHeu?w6e6!oAIefB$pHmwKh_N`Yx`X|FPeuzvI@$mbPi1w`@1; zMX3(Sohu#W6HeK?HA`2~;up*mm%c(_X!f_9MY_`#EVF_Z8-b8J$l4xYct4zeJkh(< zd6BT?ni5yv6|3ie@Ka~Yc42GQbM)F^iv}%}H_HDPvzL=OF?1rWV*MoNv+=EekJ!yy zj^7`_=b0mP+T^t8*rc7jAI`X(7j-n$Sn2_(swwDl`+-lL0Zwu}Vn}a{f-s7w@fE$f zKhUcq`D=OyxUqps?EMQ{#rYmp9!o9j@(S}gAuTy)gI`?V3EmI!$0mBKqK&syODg+( zp6GKi+0^Xe*t>$LiRZGOw>aoQZJ!V2<2HpG-_rfddeLy!N=&OV@sS?qwG!%V_laz* zu)I58us>#e3K3XdsN$<#U&_Z%iKTTQG3X`167?tSs`?Jj!J`Ti)NOKh<IP|G<}J1; zg-*pCIkZTZTWtoR#L|vvQgANk<lQ(AjV>RNVRaF^qHdQn{_ev5+=G-1&^VhYx$KK( zu#>;f{L5L<LU}9_cBDiJBX6g2({`b&*o?b@XZL(82m7=fTovkZar?&-HMD&tO~@ZO zFytS^^2wb#RG9O@*bU{wJSvvZ!fnqa9>vp{8nh7V`9rfA?OH_>IM2461#=1PR`!(E zJko1k1;e66l6%OR&Rga5H3)K${7Xq+vvvzA`naE%M?34^gy2aj=Nm4X+>-1hbWM6% z;m^IhdXeIfK&gDEuoOn8KfARp<i0ce(g&5N&&Fh2TEY_6JPXq>I)s8#7jJRC6twW~ zOMyuw>3Y=(%Gre~Cq3t+02aw)>oq^68Dm0!es$r_6NcXU-uDtG!&;oIJ<aRjA=24F zn9WdVkC$FFj}FbF82BYkRf{C{T2ngh-FoI(r>ze~8Y3xzOq41xudFzwCmO{Y=D*~I z?Ngn+w3-ye{2DtSLwv=O&e!V<THcN@xT~z$!ZUxDb73+6+KVC^2lql3CH^UsAN=!G z>5GSneNp(<d%!yCr66+9hVdDh?ZU&V6n?GZs%LycGC`QjvnLnM+un+~U=ma?q}h9u zNcyE6n*(&omFV7`a}iUxtY;A*P)qswKtH9`bZ%}M9e|@ioTFDviDc{mY}0yXb{lMm zvPQRlYZSjfG(@Ov(SK}JxK+I;_?jN3P~>8_;dCu&z1IWpPutLs^IKn((88j?q>q?# zH_5(IcI(T40_<I8#m4+O!Y4pOdTQlp<gLG&dW@IFTdz!2pAumzR)v-?tW!mzVX19x zyD9MYfYIRzWG9(j_{9DUEZgQ`69b2@s+$X9-MXt?@FD*+p!f!kAd0izyM=E!c- zVdUw8t06+enyG1zyT(heo<{IbZ`R!4c<A%Y+a}#|TqW;U2kxBp(cqteReFWH?g+Mb z6dvz<6xkCUZef0kiR3rL&+T7Q-;;Q&zA8-KJ!i{r{N%<CtIj;*l>%&A=Z@@8<K^`j ztYwuOLhcA<?)RO3C~=gek~K53FM;HIbs<9h3Fco0s5gcmKZ)Rd%MCV>BLGwO<K}64 zP0nJv)X1a9f6-v@UekU2XUwx2Z!AG7-Jn-5o#+Q3t9Cwc<}v)__(>0BAtk-i;NA;i zSKnBmMVWL~Cf=<ZS;5#nJJ_rq;hjV1w8`?~%v+As7Q2tlq1h`xGh(DGc4rN^(%ITx z&&#FlPQo*(hKfFLNpPrSG4SY52qpn)v2R9pb?qg0ow_eul_}L!vsfO;^fvn(*Aj-X z8!7S}%W0UuT>DcfotUVXnqKaMeTshJB*Y&<FHP4u)tf%vPV@AT13zqhcmdl-M|pe{ zCF@2WN=i@bO!JWz6I02ZR-H_!_LMBTZ1zOC3Oz1o!(j0|OAz(R7oW(wHTF(ETbykv zWHSbFKOXi?8KY>lQk;a@sij8NIn9rO;rU4Qu_>bm!)wNs)!i$f&8;0XxQrz*pJ42l z=mCa(x~;9}x;;A2`IRsWRlr~BAbq}EytTnVUbT{z#i{<rqpC&P+c${YJm%@h+P_G6 z?Ixj;hjwId+itfHN#TKJ7Gm>GbvaD|FYx?F0ndCwOyO9KW#rsJ>Sth3OVktLAL?@< z{np{fL&G>}Ww-$JbsgTTL2dsNRH&YE`qIr~^K%o2T(o;ynI4NN6tMPxJ>(TMDxNP6 zdiD2OvW6C~3m69o^N-1N#j2;w77J?Mw3=2zU*r1I+$}wg8Mtj>me@Ei0$yBQkiG4& zou`#~Lk;MspCxMJIrmx=Z&Cc4Afw>D6ON<c{{I=n0qw+oO`*mA5YrRqz$0em@z$S0 z;!N<+Bq9*(QR;NT_DWI_KhV>4z8loflVyF<cXXg@$N<~rS<E_E$$fTyl4i)zd$spU zfOueIj;VW0TlQ>HjXfSHe(jHXcC?g){S2f$9VDbVnlaCH<KFAg7Y0q>O=5s{VR$P~ z3Osj&JfSTU|3XWh_ts&4q3`NrbvD?7pD;9>cTbu4L!;$xEX{%8(diFTl<)_L8nm$N zcERDrB{wRUUZcO)ZDj{^CnV2oEoY>!=DwDdGV#}HcM!@;H{YW)EIXrdNQEf^_a5v< z&K^tYKhNZh&1qB|{cJNqJUwJ8aU%_|AnoH;m-jGpEj*DIhL29H_qaqjSw(`|4q$EY zV!Z3n<?pu;#s{>9jGw+?bR+u-QQ|@ibIH>{W#YunAup>ot?cL>3T@ps)3+-Rk6D4~ z9sPyC0c`CA>f244E|T4!(2>MYS%LTm>4OHX;`3Ig%xq@BR*_t6exdpr9(Iqj$7b`v z6EVq<o?GmuwQq8r^1^?_kzVjN4;EN8IP0u|xU}~NQ6OI!E7YF1>^oBf_ku$0Qeobe zf##kW`)28|_D4w;ug5G=Tcxw6sA~Itim^M+JRdh!y5~MwcL=Q!9?-SfeDdAYdQth) z9~hG(=BMij7R_Vk8gbOYv9z*$?N;Sfh$5keCH!m6A)m2m;4%Ae(iQ@m#|KWJi6<r! zPMb^4ySesNdZ45a3`vCn@g3D64G9HYkZ~k|Rax?OIs{$jaIXE+ZK8s0l=J+QN>M(6 z#zMM-c5LUGP3Dx>gj6J?jgM3v=O@U{z%KlA5g?FtgR9oj9~iZI)e@N`#u<Ga+Cg<+ zP$r%-yDN2bk}m91Nf+ejNX07A+mZPWpB5g@Tezi3S?ta&YR7g(BP~Vp+JQZi%G$7p zx#I3UZg-08BY4ZsHx<o3@bc9$`kC6K93#LtlDp5(voq)#`}$u)yCIyRMeKLsSjco~ zx9GIR2*H=PZ1=&ezU79|RQ%GZ6)PGa$jt5ia$;UTQbb;`H}6MROQyTO#bO=1J&>nl z_Pg7KWjd^>w-?O=AU8@26r-j=mV<ZGh_#}9{WWI#7WeV_cP%4!`Y!#91<}QB(jAlV zGr8?J#D?|HH&-UmaVJrP9s9LLDvhyLh+FK3#VjA^sKZDXhR4$)a`189vbVukjp6WW zul_b|xdFQ+7m(n}j-XuF!B7=ucQbJnw_7@E?DFBoDu#!rsA}@1{9K{uttLtqJoewu zib)#9l(eS{=Z*WdfDq#T#(UUHwAlF2NyUqU#GImptntx(IL4lFU)Ul~%vPLd7f?R6 zUa0==P8eG#4*w~(Bd@X~{6~+0vO(-Xv@>sBB*RmC;R)#nK~x-C6C_I!6<eC3!q`U{ zk>Cvy9g<DZz)nBG!2~}uL*JP3{+!$V2MBn`$Ga12T;c=-Y#X6*t>9sVk!`Xbi`O=Q zHjTM3l?2`b+6Go}ljGpEllc9&Q$~Z>r^eK@n1qaL*UXG;D`N7hMu}9zZjaz83r`e) ziY@hI^-P%YdN<fZ3OeR<qIxBnuV<UQ(<_iiG<NLX-CR!5NPaIx3|8sj3AMUq%`um* zr<3&A+_e_BbIk<FIH%es_X=YVB!-B8|3c9h0b7h*5Fs#$lz(fwH`NvbFow>k^V0xp zd0A`jPBuGl+gq5&8$pB_k_R3aZyo0}!YJ3znU@U9%KEi-4vOs3|1FfDc0}3pc<5n^ zQE6FZy44t2S9pwhB(u&0H6Z7kz!#k-AhY7L)!=AJ1uLMW`My!|&Qu+g@zM)Xy=3QB z-C1@sJebdB%M0kCWxb&tZ5DAw9A#khS0{EzqszWR_l-4fse8*wJuA$4wwlVkGCRz& zI2AP@l}BC<plNmQUf2}Gl_VyFZfI}(6-aOtV%5{k+!ZTz1i{V2TbAq|5f*bdfj9&w zGFm+Qgp)sRw7|g`MpA^4i2I(l`fC5-n0$+YY9`~3q40Ro=1sl%Ils+n0gn#Z4I*~g zoA>lHU+S4FsTc95EC!@?5$PS=zI+SeaoMJ2lCI~O4VI3Uvvq>^$qXVzdcV+rd$OKa z5of~4I19V9#**oeMl2K*jfDE9Y0yxD#5i}wm=-kPX{f@r`S>q6J|ZmGg)FUcsw<|~ z`^N7?`}Lxx9SOtw3zpG5q=!b2?M1`5(gEq!h_gkqK>Jt=ow%VB#_GV18n6;lI_Pco z8AEmG#9Bv@XjdK)@}mZ`QXPd7Xu$fAy}nwI$OgkN{dTf4!J21!MI3OX0)%G*0dvCr zCl##neUI~ehcdJU)R_q2D%bk{POwPg_fMJGV*fUL+BLk@H)43}6vO+2RaZ~q7CJIz z7qH`~gtUjgs{BULen)Do@_)RHlbX*dBTE;rH40DOikO<7SF81WX$kQ4y+<y7T2vWU zP`sNVQ#qWz5y=6-TZQ4v2FI$)bDh-~JCiC$AXqV>$`4pv{M#O1uWRA9!Y!Pv`35h$ zYa`a*i^Q5)y!nupV+oaj->viQn3$1*rH{k%tFCSr+DoQ17HTq2o+ez}If%W4e?v!} zE5}vQ0LQ-^;rD+ouK7i8<)LrX_PAoNb>>#o_sa%ZRv3{5CCyp(vfT$Pjt{S`%R;od zdDv&)I_lrto>aUK>U~rwO!NGib@|}gVvASH1|NIspg)c5G7cPX_W@VZ!)IcP0Ey0_ z@$oC>-Ul4Jjoov4SJtk!JnVE5ttu0;++|(H0nv5|`as{-a647LXK3}RKQEMTplrYz z*f^x#^z9y*|Cp@V=)Ra{*X&fbG4Zs98u9yEKYy>uq3tTWcpnZ~ESc^aC0yTB32hf2 z#EUxS?~F}?CByc7U%&ROe@ujsuf|{B=e%eVTZ>U&*Ul-tRMwtmgT+7PiNI3qs)^Yw z@0Xu^ok!Lyx{Z6txyG2V<q`+oN~M~A=x5~Gy<nJ=w<ce8Axu1WU6owo_r_t!tF5f! z0LqzbbCfuC;$wJV1`C6SAO|@)x7rxIMt*(YLG$RD0_O_f56#90MWP1{Nm7K|ki<Hv z)6Ux}bujff*KP9U=m)83%cb{p7tOo6DIvg=OHSWR#M4BHNLjKfx+FR*vtmft?R<w* z)Di+qIJ{KS9%LwWLS;J%9bNt0#tE%5vj&m^!-Pq1yQauJHzUn#+lH(a4Wlx7g%1}m zq4oK~g5RfTt8z|im%!B{`$`+!gNq1lswUhbo_z`2W#PQfLaXxYb`&6?_uDR8D;i(b zj=B^>d$@e#9GzBY#})Q0)Zx|~#a4`{&sfMo%R14U3VF}7sU3hiqR!ipheR$OO2%Y6 z3Z0V9COKr@ByK0k>+KQ~fb`agD4v6O>FFcmS7A$$4j1|vnYST@;9UCw1Zw)+X%cVD z7LD51?6B6PYzrNV1}WBGi)B6G<IV`9*l_zh;0`M{;zs_~kwnvx)FeWWddx&#-vE27 zVXKd`s!n2H+S1wfxwYbQvEt(A9+Q38IVT>tf!pe29J?;>+wazAYcqYbBsnBod->61 zd>uVn1z$M)@0i`>NwKCk;7YEpN1pI`oPj@q_uQolEYC*u>$dRcLM5V?ic8TZLKhA! z*^(~_vFf&OzMrE(i-_fa(C(SbZK{m8X$0!Co^$kKvT<j$1uZ63&VYe|uJ?QVi@Zwo z5UW&5pB}P)Wctcr^ylb@n0&e|igy}J`~z-0V_L#Rg6lBi_K&a(4xwk;OwAB)NhC=C zcR!pdlFC_Le(it*n?k2stNdpQc78Ea!lEBGJ{oxuOuMa{iY>VHDOCzxnP3S0#!{)! z1&x&a`j7HGyw%I%c5mQ@vBv1-S>H_EPsDkbt-%l&j1sc!?tI2u?HJ@00S_2(LZbtz zIg^;BXsug$!Xe9i6_*~CVNivJdm)P8c<g}@E0=k-gm3x^yL^P8dDWu?f5q3J3I*!1 z<z)(41hqIfs2GsXYA+Yy#f!+bXM%<a8>%)Uu)^XIspFxh@6lo%YmnyHrh>pNnp~VB z^%(S&o2hERFtnzIKk!HUnR*`N5L)JgOb|ZLd{)C7#*twD{Jdp0WOCsuplqt$?`&^A z#QgfUc~A9t2&gMl;TqGDOX5sS@{NQ8ZNvsV9f@xmdk8!~%A>^9ktI51>KWX{_FayT zGf$&aQS?yR6(CRX%6kfpTY4YaLUlW0sl(tbBm`@XiS@>(W~t7INWGc7zEdVpWQ3Wi z@SFU`BLw#d#qU))%)dFZTc8Bv`tOQsK0?}B+GP5`0jgPw8mXTN<b$=iTYc4CWM|-F zCBK5Ff|MJ2GvZj^rqf@t`<@kOqn9J6>^XFr;0k||33e$aVRWq<?A=aX9>nU5wAR?i z3JTRyRecRod2GsraJsVctRYrD^C8hCR}yU{FD;`s!wmB=`<nS%Y%Mys&)@f4lL%U9 ziN1(7%Nv8FHp0Hr;HC4$=0nEcv|-h|`XVpR173gCzxxF)LDY?HF+!(L^VRxY{CjL5 zKKUf~{n7wzUpKa?$20g9o{n-Ts<KBo7o;4;Cdn>6_mmyCDvJ0Ou5iRv!TUsMT@u$r zWmn?JFId*GFV|=SZPsfiD%jIt4@hwL%AQlrPJ3A}xt#Vi=JYs-vg9X^xv81qY7!?Q zDZNo<j|<iMRLVZ4R@w0N5Alsjj>>{aB}-GcN7iMp4_1DrL3Uj<^h%QB-Gb<nEWX_; zZ^2WN$VABNn~JXM0RmDUToI6cO@3uZz+|un{XmQjBMGFjT-B#lAIa?A5_>jr7VK^d zy#FviIai`q5+JxVJ1S-4MN8B_%MQ9%i!MCEwE#DL##~R6o+EF<>c)pkDKi6n@LqDy z^v=H?(s_@V;>K@McBgO@TD_<_ws!K>yeB{mHGHW$uvE^DK?F_>a6i~?_gd7kaIw=` z)2Z+FkF;KJF(3EJt0B+Kr`7eNAIS5~mU5g`<1IT8c0Yoof&<O0%fXmUfk*w1x@+46 zWyPzdo8GkZjluJ*oW$gc2r|dZ(ucN`qqsoO24VXPg3zYpC3q^hq@SvN6I8WY+zZ}j zwbwIPWeL1(rHL+ftg-uSWR+2i$>;@%?Jj1ry`4WT5z+|M*{c;C=ZU-VoFz$E!Sc&x zO$aUO4g%iTK<Rg#O)(PVn=!}6?GO&Nb|2*&pyrcKx!&pR{eC5lI2X1JR~3K=^*YK& zMcB(@4D|3mtDZIKyfTFGWSL7&pNQ6NpN!AfkR&mI9Hw-VedxNvf;V5lT${>4RvC({ zh~o9`D`_Ki7fv4U5}+#A!C)_bn4E^fpF1Bn4gsO|hI4^EX${LI$KHN5_%3`dijIoK zRk4BOV4KI+WG~Zsl`yStDu}d=hJQr>)+sBh+!QeN01l>)iz;dG90H0z9N_mUz?=c# zm{)inZfp|n0?+UPnK+b+g*krIhKKxlq8v<uze>*23D^KcQ(!VpxLv9;Ky|MMP|cG0 zece@5AYwN!6wnkQFbP33(L5cy1Sz5+Z@s=_>}^RvFZlZSeiaY&tV4=J1FU()|I1gW z_5THSN=ezERXm!3S^fL#(l}5zd}bCFl;3eo5&VD#wBpY{;c7O-0AarjIHhC1E$P*w z?y8}-I%;H$0{lmi`NgKbda@g!c}bkfL^R6?FqXMh>wyiZuXRK!=lkQ*Gy;vc*AsSV zndV~c_9Kj^^-p~cK2<;y=BJe*2;$x`2Za8%>7w&)h@3ajrFTkA!Zg=bbC8;A{Zb8$ zR~+9z*6VNM8RzK6)w@oWQ6UYD<!t!#DF~SLAA#DN+ra{6lPaJ1UpW4M0}{(pnh<~H z7ImX9M|*SI)aTlu@uOEPcVa=CD=u|0|L={|M&!Kx$HWWb(ldndoD}#hH8u%Df`||i zKH0NpS3tbrNJavYL;^)2n7w;3|Aaz2$y5k}f#C0*b8ZUeD276Ts2eq8SJ$@?P`t}8 zg-rBL#T@z%0%7j3Kv%}^I*|Wa1at@%rgB5$Gop6|d;0(`oFnmGA7FMx9E?qh=VpL< zm@xyuLx6hV|6i>D83q2;im;E<;&%lDLJas6#tSltZ`-pgBtAVgQ^<`^Cz4=+A(&l( z@o|Y9uhc9MH5?++8Dt`jL<Z7Wse%kZ2XJsXz=fn{a5CbFWIFV&%>N)V9VX5MBFUIt z2NL7bqun+b5H}7ItYipg<NSkn7`>xA3k*$0VyeI!h_m;0CqrZkL?<yw;DpR@fn0Y$ z&<+QncWT^!L2NKe721dRu@3qY1A~bysw+eRq@aJ}GP&`8uK9OozB3vdeaYfvaQLZ5 z;O;yEciu)T{tdSc2?>En5EoWGJ}r*t2tlNs5U>*na{T=u0sFyZ3FCPfh)4pFJAXfj zG?22=mB=G*l#$%rsBW&rjas7M_cA&Jbb^m}%3NJR-@aQ0pOgMb3;K-$9>2efBY{q( z(*ImW`!g+-0u0~}w61XWivLyS=0>7}PWeL_*$ueGAId1upJ^!|bmH&03?V0xA1{QR zF*Na$c(|)}`3ZQb#J8pc3^5hh*2Vzr^7AG}@1c;%ac&$^9F-hT=frcMcy25iiiKRc k)L1UWAiM7U?}!akOwZs5Gd9Kt3;~@%!r0pGJLrS?Kj~f<g8%>k literal 0 HcmV?d00001 diff --git a/sum23/lecture_materials/13_Recursion/lec_13_recursion_notes.ipynb b/sum23/lecture_materials/13_Recursion/lec_13_recursion_notes.ipynb new file mode 100644 index 0000000..4367f61 --- /dev/null +++ b/sum23/lecture_materials/13_Recursion/lec_13_recursion_notes.ipynb @@ -0,0 +1,865 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Recursion" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Review 1\n", + "\n", + "- Why does Python have the complexity of separate references and objects?\n", + "- Why not follow the original organization we saw for everything (i.e., boxes of data with labels)?\n", + " - Reason 1: Performance\n", + " - Reason 2: Centralized Updates" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Before\n", + "After\n", + "End\n" + ] + } + ], + "source": [ + "# Reason 1: Performance\n", + "# Try this example in PythonTutor\n", + "\n", + "print(\"Before\")\n", + "x = \"this string is millions of characters\" + \"!\" * (10 ** 6)\n", + "print(\"After\")\n", + "y = x # this is fast! Why? \n", + "print(\"End\")\n", + " # Answer: Recall that assignment just creates a reference copy" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Reason 2: Centralized Updates\n", + "\n", + "# Try this example in PythonTutor\n", + "alice = {\"name\":\"Alice\", \"score\":10, \"age\":30}\n", + "bob = {\"name\":\"Bob\", \"score\":8, \"age\":25}\n", + "winner = alice\n", + "\n", + "alice[\"age\"] += 1\n", + "print(\"Winner age:\", winner[\"age\"]) \n", + "# what line 9 will output?\n", + "# Answer: 31" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Review 2\n", + "\n", + "Assignment creates reference copy immaterial of whether it is into a variable or into another data structure. Recall that references can be stored either in a variable or inside object instances for other data structures." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Try this example in PythonTutor\n", + "\n", + "alice = {\"name\":\"Alice\", \"score\":10, \"age\":30}\n", + "bob = {\"name\":\"Bob\", \"score\":8, \"age\":25}\n", + "team = [alice, bob] \n", + "# TODO: discuss does this create new inner dictionaries?\n", + "# Answer: this line only create a new object for outer \n", + "# list, which directly stores references to existing\n", + "# dictionary object instances\n", + "\n", + "players = {\"A\": alice, \"B\": bob} \n", + "# TODO: discuss does this create new inner dictionaries?\n", + "# Answer: this line only create a new object for outer \n", + "# dictionary, which directly stores references to \n", + "# existing dictionary object instances" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Review 3" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n", + "False\n" + ] + } + ], + "source": [ + "# Use 'in' to determine if the given thing is in my_list\n", + "my_list = [\"meet\", \"me\", \"after\", \"2:00pm\"]\n", + "print(\"me\" in my_list) # TODO: predict the output\n", + "print(\"Meena\" in my_list) # TODO: predict the output" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "False\n", + "False\n", + "True\n" + ] + } + ], + "source": [ + "# Let's try a nested list\n", + "my_list = [11, \"meet\", [\"me\", \"them\", \"us\"], [84, 19, 22], \"school\", 2.54]\n", + "print(\"me\" in my_list) # TODO: predict the output\n", + "print(84 in my_list) # TODO: predict the output\n", + "print(11 in my_list) # TODO: predict the output" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Warmup 1" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[11, 'meet', ['me', 'them', 'us'], [84, 19, 22], 'school', 2.54]\n", + "True\n", + "True\n", + "False\n" + ] + } + ], + "source": [ + "def search_list_depth2(target, some_list):\n", + " ''' returns True if thing in some_list, False otherwise'''\n", + " for thing in some_list:\n", + " #print(thing, type(thing))\n", + " if type(thing) != list:\n", + " if target == thing:\n", + " return True\n", + " else:\n", + " continue # do we need this? (answer: no)\n", + " else: # its a list\n", + " if target in thing:\n", + " return True\n", + " else: \n", + " continue # do we need this? (answer: no)\n", + " \n", + " return False # after all possible searching....not found\n", + "\n", + "print(my_list)\n", + "print(search_list_depth2(\"school\", my_list)) # in list\n", + "print(search_list_depth2(22, my_list)) # in nested list\n", + "print(search_list_depth2(\"house\", my_list)) # not anywhere" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Warmup 2" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n", + "False\n", + "True\n", + "False\n" + ] + } + ], + "source": [ + "list_3_deep = [22, [33, 44, [55, 66], 77], 88]\n", + "\n", + "# let's try it our previous function\n", + "print(search_list_depth2(22, list_3_deep)) # in list\n", + "print(search_list_depth2(99, list_3_deep)) # not in list\n", + "\n", + "# write other tests to be sure that it works\n", + "print(search_list_depth2(33, list_3_deep)) # in nested list\n", + "print(search_list_depth2(55, list_3_deep)) # in nested nested list" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def search_list_depth3(target, some_list):\n", + " ''' returns True if thing in some_list, False otherwise\n", + " NOTE: Anna hasn't checked if this code works (it probably isn't perfect yet)\n", + " The point is just to illustate that as the list gets deeper, we have to add more\n", + " layers of nested if statements\n", + " '''\n", + " for thing in some_list:\n", + " #print(thing, type(thing))\n", + " if type(thing) != list:\n", + " if target == thing:\n", + " return True\n", + " else:\n", + " continue # do we need this? (answer: no)\n", + " else: # its a list\n", + " if target in thing:\n", + " return True\n", + " for thing2 in thing:\n", + " if type(thing) != list:\n", + " if target == thing:\n", + " return True\n", + " else:\n", + " continue # do we need this? (answer: no)\n", + " else: # its a list\n", + " if target in thing:\n", + " return True\n", + " \n", + " return False # after all possible searching....not found\n", + "\n", + "print(my_list)\n", + "print(search_list_depth2(\"school\", my_list)) # in list\n", + "print(search_list_depth2(22, my_list)) # in nested list\n", + "print(search_list_depth2(\"house\", my_list)) # not anywhere" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# what about ANY depth list? \n", + "# that is the goal of today's lecture" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Learning Objectives\n", + "\n", + "After today's Lecture you will be able to: \n", + "\n", + "Define recursion and be able to identify\n", + "- base case\n", + "- recursive case\n", + "- infinite recursion\n", + "\n", + "Explain why the following can be recursively defined\n", + "- lists\n", + "- dictionaries\n", + "\n", + "Trace a recursive function\n", + "- involving numeric computation\n", + "- involving nested data structures" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<div>\n", + "<img src=\"attachment:Droste_effect.png\" width=\"450\"/>\n", + "</div>" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Announcements\n", + "Quiz 6 is due today\n", + "\n", + "Project deadlines are unusual for P8, P9, P10 (use the extra time next week to study for the exam)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Recursion is defined as the process of defining something in terms of itself.\n", + "\n", + "**Good example:**\n", + "\n", + "*Hofstadter's Law*: “It always takes longer than you expect, even when you take into account *Hofstadter's Law*.” (From Gödel, Escher, Bach)\n", + "\n", + "**Unhelpful self-reference example:**\n", + "\n", + "*mountain*: “a landmass that projects conspicuously above its surroundings and is higher than a *hill*”\n", + "\n", + "*hill*: “a usually rounded natural elevation of land lower than a *mountain*”\n", + "(From Merriam-Webster dictionary)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Mathematical example:**\n", + "\n", + "A number x is a *positive even number* if:\n", + "- x is 2 or\n", + "- x equals another *positive even number* plus two\n", + "\n", + "<div>\n", + "<img src=\"attachment:Recursive%20structure.png\" width=\"450\"/>\n", + "</div>" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Term**: branch\n", + "\n", + "**Definition**: wooden stick, with an end splitting into other *branches*, OR terminating with a leaf\n", + "\n", + "\n", + "<div>\n", + "<img src=\"attachment:Trees.png\" width=\"400\"/>\n", + "</div>" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<div>\n", + "<img src=\"attachment:Base_case_recursive_case.png\" width=\"250\"/>\n", + "</div>" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Term**: directory\n", + "\n", + "**Definition**: a collection of files and *directories*\n", + " \n", + "<div>\n", + "<img src=\"attachment:Directory_structure-2.png\" width=\"450\"/>\n", + "</div> " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Define recursion and be able to identify \n", + "- base case\n", + "- recursive case\n", + "- infinite recursion" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Factorial of a number" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Goal: work from examples to get to recursive code\n", + "\n", + "#### Step 1: Come up with examples\n", + "\n", + "```python\n", + "1! = 1\n", + "2! = 1*2 = 2\n", + "3! = 1*2*3 = 6\n", + "4! = 1*2*3*4 = 24\n", + "5! = 1*2*3*4*5 = 120\n", + "```\n", + "\n", + "#### Step 2: Identify self-reference\n", + "```python\n", + "1! = # don't need a pattern at the start\n", + "2! = \n", + "3! = \n", + "4! = \n", + "5! = \n", + "```\n", + "\n", + "#### Step 3: Recursive definition\n", + "```python\n", + "1! is ???\n", + "N! is ??? for N > 1\n", + "```\n", + "\n", + "#### Step 4: Convert to Python code\n", + "- **Rule 1**: Base case should always be defined and be terminal\n", + "- **Rule 2**: Recursive case should make progress towards base case" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def fact(n):\n", + " if n == 1:\n", + " return 1\n", + " p = fact(n-1) \n", + " return n * p" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### How does Python keep all the variables separate?\n", + "- Frames\n", + "\n", + "<div>\n", + "<img src=\"attachment:Frames.png\" width=\"450\"/>\n", + "</div> " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Try this in PythonTutor\n", + "fact(3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<div>\n", + "<img src=\"attachment:Factorial.png\" width=\"500\"/>\n", + "</div> " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### RecursionError\n", + "\n", + "#### If there is no base case what happens in the above example? \n", + "- recursion never ends......infinite recursion\n", + "\n", + "#### infinite recursion can also happen if the recursive case does not move towards the base" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "ename": "RecursionError", + "evalue": "maximum recursion depth exceeded", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mRecursionError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[2], line 6\u001b[0m\n\u001b[1;32m 4\u001b[0m p \u001b[38;5;241m=\u001b[39m bad_fact(n\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m) \n\u001b[1;32m 5\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m n \u001b[38;5;241m*\u001b[39m p\n\u001b[0;32m----> 6\u001b[0m \u001b[43mbad_fact\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m3\u001b[39;49m\u001b[43m)\u001b[49m\n", + "Cell \u001b[0;32mIn[2], line 4\u001b[0m, in \u001b[0;36mbad_fact\u001b[0;34m(n)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mbad_fact\u001b[39m(n):\n\u001b[1;32m 2\u001b[0m \u001b[38;5;66;03m#if n == 1:\u001b[39;00m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;66;03m# return 1\u001b[39;00m\n\u001b[0;32m----> 4\u001b[0m p \u001b[38;5;241m=\u001b[39m \u001b[43mbad_fact\u001b[49m\u001b[43m(\u001b[49m\u001b[43mn\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m \n\u001b[1;32m 5\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m n \u001b[38;5;241m*\u001b[39m p\n", + "Cell \u001b[0;32mIn[2], line 4\u001b[0m, in \u001b[0;36mbad_fact\u001b[0;34m(n)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mbad_fact\u001b[39m(n):\n\u001b[1;32m 2\u001b[0m \u001b[38;5;66;03m#if n == 1:\u001b[39;00m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;66;03m# return 1\u001b[39;00m\n\u001b[0;32m----> 4\u001b[0m p \u001b[38;5;241m=\u001b[39m \u001b[43mbad_fact\u001b[49m\u001b[43m(\u001b[49m\u001b[43mn\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m \n\u001b[1;32m 5\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m n \u001b[38;5;241m*\u001b[39m p\n", + " \u001b[0;31m[... skipping similar frames: bad_fact at line 4 (2970 times)]\u001b[0m\n", + "Cell \u001b[0;32mIn[2], line 4\u001b[0m, in \u001b[0;36mbad_fact\u001b[0;34m(n)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mbad_fact\u001b[39m(n):\n\u001b[1;32m 2\u001b[0m \u001b[38;5;66;03m#if n == 1:\u001b[39;00m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;66;03m# return 1\u001b[39;00m\n\u001b[0;32m----> 4\u001b[0m p \u001b[38;5;241m=\u001b[39m \u001b[43mbad_fact\u001b[49m\u001b[43m(\u001b[49m\u001b[43mn\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m)\u001b[49m \n\u001b[1;32m 5\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m n \u001b[38;5;241m*\u001b[39m p\n", + "\u001b[0;31mRecursionError\u001b[0m: maximum recursion depth exceeded" + ] + } + ], + "source": [ + "def bad_fact(n):\n", + " #if n == 1:\n", + " # return 1\n", + " p = bad_fact(n-1) \n", + " return n * p\n", + "bad_fact(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "ename": "RecursionError", + "evalue": "maximum recursion depth exceeded in comparison", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mRecursionError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[3], line 6\u001b[0m\n\u001b[1;32m 4\u001b[0m p \u001b[38;5;241m=\u001b[39m bad_fact2(n) \n\u001b[1;32m 5\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m n \u001b[38;5;241m*\u001b[39m p\n\u001b[0;32m----> 6\u001b[0m \u001b[43mbad_fact2\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m3\u001b[39;49m\u001b[43m)\u001b[49m\n", + "Cell \u001b[0;32mIn[3], line 4\u001b[0m, in \u001b[0;36mbad_fact2\u001b[0;34m(n)\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m n \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;241m1\u001b[39m\n\u001b[0;32m----> 4\u001b[0m p \u001b[38;5;241m=\u001b[39m \u001b[43mbad_fact2\u001b[49m\u001b[43m(\u001b[49m\u001b[43mn\u001b[49m\u001b[43m)\u001b[49m \n\u001b[1;32m 5\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m n \u001b[38;5;241m*\u001b[39m p\n", + "Cell \u001b[0;32mIn[3], line 4\u001b[0m, in \u001b[0;36mbad_fact2\u001b[0;34m(n)\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m n \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;241m1\u001b[39m\n\u001b[0;32m----> 4\u001b[0m p \u001b[38;5;241m=\u001b[39m \u001b[43mbad_fact2\u001b[49m\u001b[43m(\u001b[49m\u001b[43mn\u001b[49m\u001b[43m)\u001b[49m \n\u001b[1;32m 5\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m n \u001b[38;5;241m*\u001b[39m p\n", + " \u001b[0;31m[... skipping similar frames: bad_fact2 at line 4 (2969 times)]\u001b[0m\n", + "Cell \u001b[0;32mIn[3], line 4\u001b[0m, in \u001b[0;36mbad_fact2\u001b[0;34m(n)\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m n \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;241m1\u001b[39m\n\u001b[0;32m----> 4\u001b[0m p \u001b[38;5;241m=\u001b[39m \u001b[43mbad_fact2\u001b[49m\u001b[43m(\u001b[49m\u001b[43mn\u001b[49m\u001b[43m)\u001b[49m \n\u001b[1;32m 5\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m n \u001b[38;5;241m*\u001b[39m p\n", + "Cell \u001b[0;32mIn[3], line 2\u001b[0m, in \u001b[0;36mbad_fact2\u001b[0;34m(n)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mbad_fact2\u001b[39m(n):\n\u001b[0;32m----> 2\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[43mn\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m==\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m1\u001b[39;49m:\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;241m1\u001b[39m\n\u001b[1;32m 4\u001b[0m p \u001b[38;5;241m=\u001b[39m bad_fact2(n) \n", + "\u001b[0;31mRecursionError\u001b[0m: maximum recursion depth exceeded in comparison" + ] + } + ], + "source": [ + "def bad_fact2(n):\n", + " if n == 1:\n", + " return 1\n", + " p = bad_fact2(n) \n", + " return n * p\n", + "bad_fact2(3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Self-check: Tracing example" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Tracing a recursive function in the Python Tutor\n", + "# do this on your own\n", + "# Example 1\n", + "\n", + "def foo(n):\n", + " # I always start recursive functions by printing the parameters\n", + " print(\"Starting foo with n= \" , n)\n", + " if n < 0:\n", + " print(\"base case, returning 100\")\n", + " return 100\n", + " else:\n", + " temp = foo(n-2)\n", + " print(\"Ending foo returning \" , (n + temp))\n", + " return n + temp\n", + "\n", + "foo(13)\n", + "\n", + "# What happens if we replace < with == ? \n", + "# Recursion error if the original n is odd" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "in collatz with n = 13\n", + "in the odd case\n", + "in collatz with n = 40\n", + "In the even case\n", + "in collatz with n = 20\n", + "In the even case\n", + "in collatz with n = 10\n", + "In the even case\n", + "in collatz with n = 5\n", + "in the odd case\n", + "in collatz with n = 16\n", + "In the even case\n", + "in collatz with n = 8\n", + "In the even case\n", + "in collatz with n = 4\n", + "In the even case\n", + "in collatz with n = 2\n", + "In the even case\n", + "in collatz with n = 1\n" + ] + }, + { + "data": { + "text/plain": [ + "1" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Example 2\n", + "# The Collatz Conjecture problem \n", + "# https://en.wikipedia.org/wiki/Collatz_conjecture\n", + "# run this in Python Tutor on your ownn\n", + "\n", + "def collatz(n):\n", + " # I always start recursive functions by printing the parameters\n", + " print(\"in collatz with n = \" , n)\n", + " if n == 1:\n", + " return 1 # base case\n", + " elif n % 2 == 0:\n", + " print(\"In the even case\")\n", + " return collatz(n//2)\n", + " else:\n", + " print(\"in the odd case\")\n", + " return collatz (3*n+1)\n", + "\n", + "collatz(13) # try other numbers\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Trace a recursive function involving nested data structures" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# Write a recursive function to search *ANY* list of lists/tuples \n", + "# for a given word\n", + "def search_list_recursive(target, some_list):\n", + " ''' returns True if target in some_list, False otherwise'''\n", + " \n", + " # base case 1: success!\n", + " if target in some_list:\n", + " return True\n", + " \n", + " # Strategy: iterate over all elements in some_list\n", + " success = False\n", + " for thing in some_list:\n", + " # Because of base case 1, we know that thing is not target\n", + " # TODO also want to include tuples\n", + " if type(thing) == type([]):\n", + " success = search_list_recursive(target, thing)\n", + " if success:\n", + " break\n", + "\n", + " return success" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n", + "True\n", + "True\n", + "True\n", + "False\n" + ] + } + ], + "source": [ + "fav_stuff = [\"apples\", \"peaches\", \"oranges\", \n", + " [\"A\", \"B\", \"C\", \"D\"],\n", + " [[\"sedan\", \"SUV car\", \"minivan\"], \n", + " [\"bicycle\", \"road bike\", \"scooter\"]]\n", + " ]\n", + "\n", + "print(search_list_recursive(\"apples\", fav_stuff)) # outer list\n", + "print(search_list_recursive(\"D\", fav_stuff)) # list @ depth 1\n", + "print(search_list_recursive(\"road bike\", fav_stuff))# list @ depth 2\n", + "print(search_list_recursive(\"bicycle\", fav_stuff)) # list @ depth 2\n", + "print(search_list_recursive(\"pizza\", fav_stuff)) # doesn't exist" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[\n", + "A\n", + "\t[\n", + "\t1\n", + "\t2\n", + "\t3\n", + "\t]\n", + "B\n", + "\t[\n", + "\t4\n", + "\t\t[\n", + "\t\ti\n", + "\t\tii\n", + "\t\t]\n", + "\t]\n", + "]\n" + ] + } + ], + "source": [ + "def pretty_print(items, indent = 0):\n", + " \"\"\"\n", + " prints the nested data structure with proper indentation\n", + " \"\"\"\n", + " # base case: not a list\n", + " # edit: moving base case into a for loop\n", + "# if type(items) != type([]):\n", + "# print(indent * \"\\t\" + items)\n", + "# return\n", + " print(indent * \"\\t\" + \"[\")\n", + " for i in items:\n", + " \n", + " # base case:\n", + " if type(i) != type([]):\n", + " print(indent * \"\\t\" + i)\n", + " else:\n", + " # recursive case\n", + " pretty_print(i, indent + 1)\n", + " print(indent * \"\\t\" + \"]\") \n", + "\n", + "#data = [\"A\", \"B\", \"C\"]\n", + "data = [\"A\", [\"1\", \"2\", \"3\",], \"B\", [\"4\", [\"i\", \"ii\"]]]\n", + "pretty_print(data, 0)\n", + " \n", + "# [ \"A\", \n", + "# [ \"1\", \n", + "# \"2\", \n", + "# \"3\"], \n", + "# \"B\", \n", + "# ], \n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Explain why the following can be recursively defined\n", + "\n", + "- lists\n", + "- dictionaries\n", + "- JSON objects" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### dictionaries can have a recursive structure" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "person_info = { \"name\": \"Meena\", \n", + " \"age\": 250, \n", + " \"family\" : {\"spouse\": \"Rogers\", \n", + " \"child1\": {\"name\": \"Viyan\", \n", + " \"age\": 2}, \n", + " }\n", + " }" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# let's try to search through a deep dictionary. \n", + "def search_dict_recursive(target_key, some_dict):\n", + " ''' returns the Value associated with target_key if tarket_key \n", + " in any level of some_dict, None otherwise'''\n", + " if target_key in some_dict: # base case\n", + " return some_dict[target_key]\n", + " else:\n", + " for key in some_dict:\n", + " if type(some_dict[key]) == dict: # recursive case\n", + " return search_dict_recursive(target_key, \\\n", + " some_dict[key]) \n", + " return None\n", + "\n", + "print(search_dict_recursive(\"child1\", person_info))\n", + "print(search_dict_recursive(\"father\", person_info))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.10.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/sum23/lecture_materials/14_Comprehensions/lec_14_comprehensions_notes.ipynb b/sum23/lecture_materials/14_Comprehensions/lec_14_comprehensions_notes.ipynb new file mode 100644 index 0000000..1c61d62 --- /dev/null +++ b/sum23/lecture_materials/14_Comprehensions/lec_14_comprehensions_notes.ipynb @@ -0,0 +1,1342 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Comprehensions" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# import statements\n", + "import math\n", + "import csv" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Using `lambda`\n", + "- `lambda` functions are a way to abstract a function reference\n", + "- lambdas are simple functions with:\n", + " - multiple possible parameters\n", + " - single expression line as the function body\n", + "- lambdas are useful abstractions for:\n", + " - mathematical functions\n", + " - lookup operations\n", + "- lambdas are often associated with a collection of values within a list\n", + "- Syntax: \n", + "```python \n", + "lambda parameters: expression\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Let's sort the menu in different ways\n", + "- whenever you need to custom sort a dictionary, you must convert dict to list of tuples\n", + "- recall that you can use items method (applicable only to a dictionary)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'broccoli': 4.99,\n", + " 'orange': 1.19,\n", + " 'pie': 3.95,\n", + " 'donut': 1.25,\n", + " 'muffin': 2.25,\n", + " 'cookie': 0.79,\n", + " 'milk': 1.65,\n", + " 'bread': 5.99}" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "menu = { \n", + " 'broccoli': 4.99,\n", + " 'orange': 1.19,\n", + " 'pie': 3.95, \n", + " 'donut': 1.25, \n", + " 'muffin': 2.25,\n", + " 'cookie': 0.79, \n", + " 'milk':1.65, \n", + " 'bread': 5.99} \n", + "menu" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_items([('broccoli', 4.99), ('orange', 1.19), ('pie', 3.95), ('donut', 1.25), ('muffin', 2.25), ('cookie', 0.79), ('milk', 1.65), ('bread', 5.99)])" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "menu.items()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sort menu using item names (keys)\n", + "- let's first solve this using extract function\n", + "- recall that extract function deals with one of the inner items in the outer data structure\n", + " - outer data structure is list\n", + " - inner data structure is tuple" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def extract(menu_tuple):\n", + " return menu_tuple[1]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[('cookie', 0.79),\n", + " ('orange', 1.19),\n", + " ('donut', 1.25),\n", + " ('milk', 1.65),\n", + " ('muffin', 2.25),\n", + " ('pie', 3.95),\n", + " ('broccoli', 4.99),\n", + " ('bread', 5.99)]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sorted(menu.items(), key = extract)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'cookie': 0.79,\n", + " 'orange': 1.19,\n", + " 'donut': 1.25,\n", + " 'milk': 1.65,\n", + " 'muffin': 2.25,\n", + " 'pie': 3.95,\n", + " 'broccoli': 4.99,\n", + " 'bread': 5.99}" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dict(sorted(menu.items(), key = extract))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Now let's solve the same problem using lambdas\n", + "- if you are having trouble thinking through the lambda solution directly:\n", + " - write an extract function\n", + " - then abstract it to a lambda" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'cookie': 0.79,\n", + " 'orange': 1.19,\n", + " 'donut': 1.25,\n", + " 'milk': 1.65,\n", + " 'muffin': 2.25,\n", + " 'pie': 3.95,\n", + " 'broccoli': 4.99,\n", + " 'bread': 5.99}" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dict(sorted(menu.items(), key = lambda menu_tuple : menu_tuple[1]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sort menu using prices (values)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# same as above\n", + "dict(sorted(menu.items(), key = lambda ??? : ???))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sort menu using length of item names (keys)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'pie': 3.95,\n", + " 'milk': 1.65,\n", + " 'donut': 1.25,\n", + " 'bread': 5.99,\n", + " 'orange': 1.19,\n", + " 'muffin': 2.25,\n", + " 'cookie': 0.79,\n", + " 'broccoli': 4.99}" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dict(sorted(menu.items(), key = lambda menu_tuple :len( menu_tuple[0]) ))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sort menu using decreasing order of prices - v1" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'bread': 5.99,\n", + " 'broccoli': 4.99,\n", + " 'pie': 3.95,\n", + " 'muffin': 2.25,\n", + " 'milk': 1.65,\n", + " 'donut': 1.25,\n", + " 'orange': 1.19,\n", + " 'cookie': 0.79}" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dict(sorted(menu.items(), key = lambda menu_tuple: menu_tuple[1], reverse = True))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sort menu using decreasing order of prices - v2" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'bread': 5.99,\n", + " 'broccoli': 4.99,\n", + " 'pie': 3.95,\n", + " 'muffin': 2.25,\n", + " 'milk': 1.65,\n", + " 'donut': 1.25,\n", + " 'orange': 1.19,\n", + " 'cookie': 0.79}" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dict(sorted(menu.items(), key = lambda menu_tuple: -menu_tuple[1]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Iterable\n", + "\n", + "- What is an iterable? Anything that you can write a for loop to iterate over is called as an iterable.\n", + "- Examples of iteratables:\n", + " - `list`, `str`, `tuple`, `range()` (any sequence)\n", + " - `dict`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## List comprehensions\n", + "\n", + "- concise way of generating a new list based on existing list item manipulation \n", + "- short syntax - easier to read, very difficult to debug\n", + "\n", + "<pre>\n", + "new_list = [expression for val in iterable if conditional_expression]\n", + "</pre>\n", + "- iteratble: reference to any iterable object instance\n", + "- conditional_expression: filters the values in the original list based on a specific requirement\n", + "- expression: can simply be val or some other transformation of val\n", + "- enclosing [ ] represents new list\n", + "\n", + "Best approach:\n", + "- write for clause first\n", + "- if condition expression next\n", + "- expression in front of for clause last" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Which animals are in all caps?" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Original: ['lion', 'badger', 'RHINO', 'GIRAFFE']\n", + "New list: ['RHINO', 'GIRAFFE']\n" + ] + } + ], + "source": [ + "# Recap: retain animals in all caps\n", + "animals = [\"lion\", \"badger\", \"RHINO\", \"GIRAFFE\"]\n", + "caps_animals = []\n", + "print(\"Original:\", animals)\n", + "\n", + "for val in animals:\n", + " if val.upper() == val:\n", + " caps_animals.append(val) \n", + " \n", + "print(\"New list:\", caps_animals)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Now let's solve the same problem using list comprehension\n", + "<pre>\n", + "new_list = [expression for val in iterable if conditional_expression]\n", + "</pre>\n", + "For the below example:\n", + "- iterable: animals variable (storing reference to a list object instance)\n", + "- conditional_expression: val.upper() == val\n", + "- expression: val itself" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Original: ['lion', 'badger', 'RHINO', 'GIRAFFE']\n", + "New list: ['RHINO', 'GIRAFFE']\n" + ] + } + ], + "source": [ + "# List comprehension version\n", + "print(\"Original:\", animals)\n", + "\n", + "caps_animals = [val for val in animals if val.upper() == val ]\n", + "print(\"New list:\", caps_animals)\n", + "\n", + "# final version to uncomment if you want:\n", + "# caps_animals = [val for val in animals if val.upper() == val]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Why is to tougher to debug?\n", + "- you cannot use a print function call in a comprehension\n", + "- you need to decompose each part and test it separately\n", + "- recommended to write the comprehension with a simpler example" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Other than a badger, what animals can you see at Henry Vilas Zoo?" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Original: ['lion', 'badger', 'RHINO', 'GIRAFFE']\n", + "New list: ['lion', 'RHINO', 'GIRAFFE']\n" + ] + } + ], + "source": [ + "print(\"Original:\", animals)\n", + "\n", + "# non_badger_zoo_animals = ???\n", + "\n", + "# step 1\n", + "# non_badger_zoo_animals = [??? for val in animals ???]\n", + " \n", + "# # step 2\n", + "# non_badger_zoo_animals = [??? for val in animals if val != \"badger\"] \n", + "\n", + "# # step 3\n", + "non_badger_zoo_animals = [val for val in animals if val != \"badger\"]\n", + "\n", + "print(\"New list:\", non_badger_zoo_animals)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Can we convert all of the animals to all caps?\n", + "- if clause is optional" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Original: ['lion', 'badger', 'RHINO', 'GIRAFFE']\n", + "New list: ['LION', 'BADGER', 'RHINO', 'GIRAFFE']\n" + ] + } + ], + "source": [ + "print(\"Original:\", animals)\n", + "\n", + "all_caps_animals = [ val.upper() for val in animals ]\n", + "print(\"New list:\", all_caps_animals)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Can we generate a list to store length of each animal name?" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Original: ['lion', 'badger', 'RHINO', 'GIRAFFE']\n", + "New list: [4, 6, 5, 7]\n" + ] + } + ], + "source": [ + "print(\"Original:\", animals)\n", + "\n", + "animals_name_length = [ len(val) for val in animals ]\n", + "print(\"New list:\", animals_name_length)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Using if ... else ... in a list comprehension\n", + "- syntax changes slightly for if ... else ...\n", + "\n", + "<pre>\n", + "new_list = [expression if conditional_expression else alternate_expression for val in iterable ]\n", + "</pre>\n", + "\n", + "- when an item satifies the if clause, you don't execute the else clause\n", + " - expression is the item in new list when if condition is satified\n", + "- when an item does not satisfy the if clause, you execute the else clause\n", + " - alternate_expression is the item in new list when if condition is not satisfied\n", + " \n", + "- if ... else ... clauses need to come before for (not the same as just using if clause)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### What if we only care about the badger? Replace non-badger animals with \"some animal\"." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Original: ['lion', 'badger', 'RHINO', 'GIRAFFE']\n", + "New list: ['some animal', 'badger', 'some animal', 'some animal']\n" + ] + } + ], + "source": [ + "animals = [\"lion\", \"badger\", \"RHINO\", \"GIRAFFE\"]\n", + "print(\"Original:\", animals)\n", + "\n", + "#non_badger_zoo_animals = ???\n", + "\n", + "# # step 1:\n", + "# non_badger_zoo_animals = [ ??? for val in animals ???]\n", + "\n", + "# # step 2:\n", + "# non_badger_zoo_animals = [ ??? if val == \"badger\" else ??? for val in animals]\n", + "\n", + "# # step 3: fill in \"val\"\n", + " #non_badger_zoo_animals = [val if val == \"badger\" else ?? for val in animals]\n", + "\n", + "# # step 4: fill in else case\n", + "non_badger_zoo_animals = [val if val == \"badger\" else \"some animal\" for val in animals]\n", + "\n", + "print(\"New list:\", non_badger_zoo_animals)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Dict comprehensions\n", + "- Version 1:\n", + "<pre>\n", + "{expression for val in iterable if condition}\n", + "</pre>\n", + "- expression has the form <pre>key: val</pre>\n", + "<br/>\n", + "- Version 2 --- the dict function call by passing list comprehension as argument:\n", + "<pre>dict([expression for val in iterable if condition])</pre>\n", + "- expression has the form <pre>(key, val)</pre>" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a dict to map number to its square (for numbers 1 to 5)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}\n" + ] + } + ], + "source": [ + "squares_dict = dict()\n", + "for val in range(1, 6):\n", + " squares_dict[val] = val * val\n", + "print(squares_dict)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Dict comprehension --- version 1" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}\n" + ] + } + ], + "source": [ + "square_dict = { i : i * i for i in range(1, 6) }\n", + "print(square_dict)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Dict comprehension --- version 2" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}\n" + ] + } + ], + "source": [ + "square_dict = dict( [ (i, i * i ) for i in range(1,6) ] )\n", + "print(square_dict)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Tuple unpacking\n", + "- you can directly specific variables to unpack the items inside a tuple" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "('Bob', '32')\n", + "('Cindy', '45')\n", + "('Alice', '39')\n", + "('Unknown', 'None')\n", + "--------------------\n", + "Bob 32\n", + "Cindy 45\n", + "Alice 39\n", + "Unknown None\n" + ] + } + ], + "source": [ + "scores_dict = {\"Bob\": \"32\", \"Cindy\" : \"45\", \"Alice\": \"39\", \"Unknown\": \"None\"}\n", + "\n", + "for tuple_item in scores_dict.items():\n", + " print(tuple_item)\n", + " \n", + "print(\"--------------------\")\n", + "\n", + "for key, val in scores_dict.items():\n", + " print(key, val)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### From square_dict, let's generate cube_dict" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "square_dict" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{1: 1, 2: 8, 3: 27, 4: 64, 5: 125}\n" + ] + } + ], + "source": [ + "cube_dict = {key: int(math.sqrt(val)) ** 3 for key, val in square_dict.items()}\n", + "print(cube_dict)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Convert Madison *F temperature to *C\n", + "- <pre>C = 5 / 9 * (F - 32)</pre>" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "madison_fahrenheit = {'Nov': 28,'Dec': 20, 'Jan': 10,'Feb': 14}\n", + "print(\"Original:\", madison_fahrenheit)\n", + "\n", + "madison_celsius = {key: ??? \\\n", + " for key, val in madison_fahrenheit.items()}\n", + "print(\"New dict:\", madison_celsius)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Convert type of values in a dictionary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "scores_dict = {\"Bob\": \"32\", \"Cindy\" : \"45\", \"Alice\": \"39\", \"Unknown\": \"None\"}\n", + "print(\"Original:\", scores_dict)\n", + "\n", + "updated_scores_dict = {???}\n", + " \n", + "# # step 1: add for statement\n", + "# updated_scores_dict = { ??? for key, val in scores_dict.items() ???}\n", + "\n", + "# # step 2: add if statement - but use if/else to handle None values\n", + "# updated_scores_dict = { ??? if val.isdigit() else ??? for key, val in scores_dict.items()}\n", + "\n", + "# # step 3: fill in \"if\" and \"else\" values\n", + "# updated_scores_dict = {key: int(val) if val.isdigit() else None \\\n", + "# for key, val in scores_dict.items()}\n", + "\n", + "print(\"New dict:\", updated_scores_dict)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create a dictionary to map each player to their max score" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "scores_dict = {\"Bob\": [18, 72, 61, 5, 83], \n", + " \"Cindy\" : [27, 11, 55, 73, 87], \n", + " \"Alice\": [16, 33, 42, 89, 90], \n", + " \"Meena\": [39, 93, 9, 3, 55]}\n", + "\n", + "{player: max(scores) for player, scores in scores_dict.items()}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Practice problems - sorted + lambda" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Use sorted and lambda function to sort this list of dictionaries based on the score, from low to high" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "scores = [ {\"name\": \"Bob\", \"score\": 32} ,\n", + " {\"name\": \"Cindy\", \"score\" : 45}, \n", + " {\"name\": \"Alice\", \"score\": 39}\n", + " ]\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Now, modify the lambda function part alone to sort the list of dictionaries based on the score, from high to low" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Now, go back to the previous lambda function definition and use sorted parameters to sort the list of dictionaries based on the score, from high to low" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Student Information Survey dataset analysis" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def median(items):\n", + " items.sort()\n", + " n = len(items)\n", + " if n % 2 != 0:\n", + " middle = items[n // 2]\n", + " else:\n", + " first_middle = items[n // 2]\n", + " second_middle = items[(n // 2) - 1]\n", + " middle = (first_middle + second_middle) / 2\n", + " return middle" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# inspired by https://automatetheboringstuff.com/2e/chapter16/\n", + "def process_csv(filename):\n", + " exampleFile = open(filename, encoding=\"utf-8\") \n", + " exampleReader = csv.reader(exampleFile) \n", + " exampleData = list(exampleReader) \n", + " exampleFile.close() \n", + " return exampleData\n", + "\n", + "survey_data = process_csv('cs220_survey_data.csv')\n", + "cs220_header = survey_data[0]\n", + "cs220_data = survey_data[1:]\n", + "cs220_header" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def cell(row_idx, col_name):\n", + " \"\"\"\n", + " Returns the data value (cell) corresponding to the row index and \n", + " the column name of a CSV file.\n", + " \"\"\"\n", + " col_idx = cs220_header.index(col_name) \n", + " val = cs220_data[row_idx][col_idx] \n", + " \n", + " # handle missing values\n", + " if val == '':\n", + " return None\n", + " \n", + " # handle type conversions\n", + " if col_name == \"Age\":\n", + " val = int(val)\n", + " if 0 < val <= 118:\n", + " return val\n", + " else:\n", + " # Data cleaning\n", + " return None\n", + " elif col_name in ['Zip Code',]:\n", + " return int(val)\n", + " elif col_name in ['Latitude', 'Longitude']:\n", + " return float(val)\n", + " \n", + " return val" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def transform(header, data):\n", + " \"\"\"\n", + " Transform data into a list of dictionaries, while taking care of type conversions\n", + " \"\"\"\n", + " #should be defined outside the for loop, because it stores the entire data\n", + " dict_list = [] \n", + " for row_idx in range(len(data)):\n", + " row = data[row_idx]\n", + " #should be defined inside the for loop, because it represents one row as a \n", + " #dictionary\n", + " new_row = {} \n", + " for i in range(len(header)):\n", + " val = cell(row_idx, header[i])\n", + " new_row[header[i]] = val\n", + " dict_list.append(new_row)\n", + " return dict_list\n", + " \n", + "transformed_data = transform(cs220_header, cs220_data)\n", + "transformed_data[:2] # top 2 rows" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def bucketize(data, bucket_column):\n", + " \"\"\"\n", + " data: expects list of dictionaries\n", + " bucket_column: column for bucketization\n", + " generates and returns bucketized data based on bucket_column\n", + " \"\"\"\n", + " # Key: unique bucketize column value; Value: list of dictionaries \n", + " # (rows having that unique column value)\n", + " buckets = dict()\n", + " for row_dict in data:\n", + " col_value = row_dict[bucket_column]\n", + " if col_value not in buckets:\n", + " buckets[col_value] = []\n", + " buckets[col_value].append(row_dict)\n", + " \n", + " return buckets" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### What is the average age of \"LEC001\" students?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "lecture_buckets = bucketize(transformed_data, \"Lecture\")\n", + "lec001_bucket = lecture_buckets[\"LEC001\"]\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### What is the average age of \"LEC001\" students who like \"pineapple\" pizza topping?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### What are the sleep habits of the youngest students?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "min_age = None\n", + "\n", + "# pass 1: find minimum age\n", + "\n", + "\n", + "# pass 2: find sleep habit of students with minimum age\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### How many students are there is each lecture?\n", + "- Create a `dict` mapping each lecture to the count of students." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# v1\n", + "{}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# v2\n", + "{}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Find whether 15 oldest students in the class are runners?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "students_with_age = []" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Compute median age per lecture in one step using `dict` and `list` comprehension." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "age_by_lecture = {} # Key: lecture; Value: list of ages\n", + "\n", + "for lecture in lecture_buckets:\n", + " lecture_students = lecture_buckets[lecture]\n", + " ages = []\n", + " for student in lecture_students:\n", + " age = student[\"Age\"]\n", + " if age == None:\n", + " continue\n", + " ages.append(age)\n", + " age_by_lecture[lecture] = ages\n", + "\n", + "median_age_by_lecture = {} # Key: lecture; Value: median age of that lecture\n", + "for lecture in age_by_lecture:\n", + " median_age = median(age_by_lecture[lecture])\n", + " median_age_by_lecture[lecture] = median_age\n", + " \n", + "print(median_age_by_lecture)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Compute max age per lecture in one step using `dict` and `list` comprehension." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Practice problems - comprehensions" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Generate a new list where each number is a square of the original nummber in numbers list" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "numbers = [44, 33, 56, 21, 19]\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Generate a new list of floats from vac_rates, that is rounded to 3 decimal points" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "vac_rates = [23.329868, 51.28772, 76.12232, 17.2, 10.5]\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Generate a new list of ints from words, that contains length of each word" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "words = ['My', 'very', 'educated', 'mother', 'just', 'served', 'us', 'noodles']\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create 2 dictionaries to map each player to their min and avg score" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "scores_dict = {\"Bob\": [18, 72, 61, 5, 83], \n", + " \"Cindy\" : [27, 11, 55, 73, 87], \n", + " \"Alice\": [16, 33, 42, 89, 90], \n", + " \"Meena\": [39, 93, 9, 3, 55]}\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Student Information Survey dataset" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create dict mapping unique age to count of students with that age.\n", + "- Order the dictionary based on increasing order of ages\n", + "- Make sure to drop student dictionaries which don't have Age column information (we already did this in a previous example)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Find whether 15 youngest students in the class are pet owners?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.10.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/sum23/lecture_materials/14_Func_Refs/lec_14_function_references_notes.ipynb b/sum23/lecture_materials/14_Func_Refs/lec_14_function_references_notes.ipynb new file mode 100644 index 0000000..63f982d --- /dev/null +++ b/sum23/lecture_materials/14_Func_Refs/lec_14_function_references_notes.ipynb @@ -0,0 +1,1420 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Function references" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Recursion review" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Nested data structures are defined recursively.\n", + "\n", + "# A Python list can contain lists\n", + "# A Python dictionary can contain dictionaries\n", + "# A JSON dictionary can contain a JSON dictionary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Trace Recursion by hand\n", + "# Run this on your own in Python Tutor\n", + "\n", + "def mystery(a, b): \n", + " # precondition: assume a > 0 and b > 0\n", + " if b == 1: \n", + " return a\n", + " return a * mystery(a, b - 1)\n", + "\n", + "# make a function call here\n", + "mystery(3, 2)\n", + "\n", + "# TODO: what does the mystery function compute?\n", + "\n", + "# Question: What would be the result of the below function call?\n", + "# mystery(-3, -1) \n", + "# Answer: " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Learning Objectives:\n", + "\n", + "- Define a function reference and trace code that uses function references.\n", + "- Explain the default use of `sorted()` on lists of tuples, and dictionaries.\n", + "- Sort a list of tuples, a list of dictionaries, or a dictionary using a function as a key.\n", + "- Use a lambda expression when sorting." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Functions are objects\n", + "\n", + "- Every data in Python is an object instance, including a function definition\n", + "- Implications:\n", + " - variables can reference functions\n", + " - lists/dicts can reference functions\n", + " - we can pass function references to other functions\n", + " - we can pass lists of function references to other functions" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Example 1: function object references\n", + "#### Use PyTutor to step through this example" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n" + ] + } + ], + "source": [ + "l1 = [1, 2, 3] # Explanation: l1 should reference a new list object\n", + "l2 = l1 # Explanation: l2 should reference whatever l1 references\n", + "\n", + "def f(l): # Explanation: f should reference a new function object\n", + " return l[-1]\n", + "\n", + "g = f # Explanation: g should reference whatever f references\n", + "\n", + "num = f(l2) # Explanation: l should reference whatever l2 references\n", + " # Explanation: num should reference whatever f returns\n", + "\n", + "print(num)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Function references\n", + "\n", + "- Since function definitions are objects in Python, function reference is a variable that refers to a function object.\n", + "- In essence, it gives a function another name" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n", + "3\n" + ] + } + ], + "source": [ + "# Both these calls would have run the same code, returning the same result\n", + "num = f(l1)\n", + "print(num)\n", + "num = g(l2) \n", + "print(num)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Example 2: function references can be passed as arguments to another function, wow!\n", + "#### Use PyTutor to step through this example" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello there!\n", + "Hello there!\n", + "Wash your hands and stay well, bye!\n", + "Wash your hands and stay well, bye!\n", + "Wash your hands and stay well, bye!\n" + ] + } + ], + "source": [ + "def say_hi():\n", + " print(\"Hello there!\")\n", + "\n", + "def say_bye():\n", + " print(\"Wash your hands and stay well, bye!\")\n", + " \n", + "f = say_hi\n", + "f()\n", + "f()\n", + "f = say_bye\n", + "f()\n", + "f()\n", + "f()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello there!\n", + "Hello there!\n", + "Wash your hands and stay well, bye!\n", + "Wash your hands and stay well, bye!\n", + "Wash your hands and stay well, bye!\n" + ] + } + ], + "source": [ + "for i in range(2):\n", + " say_hi()\n", + "\n", + "for i in range(3):\n", + " say_bye()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello there!\n", + "Hello there!\n", + "Wash your hands and stay well, bye!\n", + "Wash your hands and stay well, bye!\n", + "Wash your hands and stay well, bye!\n" + ] + } + ], + "source": [ + "def call_n_times(f, n):\n", + " for i in range(n):\n", + " f()\n", + "\n", + "call_n_times(say_hi, 2)\n", + "call_n_times(say_bye, 3)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Wash your hands and stay well, bye!\n" + ] + }, + { + "ename": "TypeError", + "evalue": "'NoneType' object is not callable", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[7], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mcall_n_times\u001b[49m\u001b[43m(\u001b[49m\u001b[43msay_bye\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m3\u001b[39;49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# uncomment to see TypeError\u001b[39;00m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;66;03m# Question: Why does this give TypeError?\u001b[39;00m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;66;03m# Answer: when you specify say_bye(), you are invoking the function, which returns None\u001b[39;00m\n\u001b[1;32m 5\u001b[0m \u001b[38;5;66;03m# (default return value when return statement is not defined)\u001b[39;00m\n", + "Cell \u001b[0;32mIn[6], line 3\u001b[0m, in \u001b[0;36mcall_n_times\u001b[0;34m(f, n)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcall_n_times\u001b[39m(f, n):\n\u001b[1;32m 2\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(n):\n\u001b[0;32m----> 3\u001b[0m \u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", + "\u001b[0;31mTypeError\u001b[0m: 'NoneType' object is not callable" + ] + } + ], + "source": [ + "call_n_times(say_bye(), 3) # uncomment to see TypeError\n", + "\n", + "# Question: Why does this give TypeError?\n", + "# Answer: when you specify say_bye(), you are invoking the function, which returns None\n", + "# (default return value when return statement is not defined)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Example 3: Apply various transformations to all items on a list" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "L = [\"1\", \"23\", \"456\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Write apply_to_each function" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# a. Input: list object reference, function object\n", + "# b. Output: new list reference to transformed object\n", + "# c. Pseudocode:\n", + "# 1. Initiliaze new empty list for output - we don't want to modify \n", + "# the input list! \n", + "# 2. Process each item in input list\n", + "# 3. Apply the function passed as arugment to 2nd parameter\n", + "# 4. And the transformed item into output list\n", + "# 5. return output list\n", + "\n", + "def apply_to_each(original_L, f):\n", + " \"\"\"\n", + " returns a new list with transformed items, by applying f function\n", + " to each item in the original list\n", + " \"\"\"\n", + "\n", + " # step 1: create a new list\n", + " new_vals = []\n", + "\n", + " # step 2: iterate through items in original_L\n", + " for val in original_L:\n", + " # step 3: apply f to each item\n", + " new_vals.append( f(val) )\n", + " \n", + " # step 4: return new list\n", + " return new_vals \n", + " pass" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Apply `int` function to list L using apply_to_each function" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "34" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# what does int do?\n", + "int(\"34\")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[1, 23, 456]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "apply_to_each(L, int)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Write strip_dollar function" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# a. Input: string value\n", + "# b. Output: transformed string value\n", + "# c. Pseudocode: \n", + "# 1. Check whether input string begins with $ - \n", + "# what string method do you need here?\n", + "# 2. If so remove it\n", + "\n", + "def strip_dollar(s):\n", + " \"\"\"\n", + " Removes the beginning $ sign from string s\n", + " \"\"\"\n", + "\n", + " # Step 1: check whether input string begins with $\n", + " if s.startswith(\"$\"):\n", + " # Step 2: if so, remove it\n", + " s = s[1:]\n", + " \n", + " # Step 3: return the new string\n", + " return s" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Apply strip_dollar function and then apply int function" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['1', '23', '456']\n", + "[1, 23, 456]\n" + ] + } + ], + "source": [ + "L = [\"$1\", \"23\", \"$456\"]\n", + "vals = apply_to_each(L, strip_dollar)\n", + "print(vals)\n", + "vals = apply_to_each(vals, int)\n", + "print(vals)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Apply upper method call to the below list L by using apply_to_each function" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['AAA', 'BBB', 'CCC']\n" + ] + } + ], + "source": [ + "L = [\"aaa\", \"bbb\", \"ccc\"]\n", + "vals = apply_to_each(L, str.upper)\n", + "print(vals)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'AAA'" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# remember, these are equivalent:\n", + "\"aaa\".upper()\n", + "str.upper(\"aaa\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Custom sorting nested data structures\n", + "\n", + "Examples:\n", + "- list of tuples\n", + "- list of dictionaries" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Example 4: Custom sort a list of tuples" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[('JJ', 'Watt', 31),\n", + " ('Jonathan', 'Taylor', 22),\n", + " ('Melvin', 'Gordon', 27),\n", + " ('Russel', 'Wilson', 32),\n", + " ('Troy', 'Fumagalli', 88)]" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "badgers_in_nfl = [ # tuple storing (first name, last name, age)\n", + " (\"Jonathan\", \"Taylor\", 22 ), \n", + " (\"Russel\", \"Wilson\", 32), \n", + " (\"Troy\", \"Fumagalli\", 88),\n", + " (\"Melvin\", \"Gordon\", 27), \n", + " (\"JJ\", \"Watt\", 31),\n", + " ]\n", + "\n", + "sorted(badgers_in_nfl) # or sort() method by default uses first element to sort" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### What what if we want to sort by the last name or by the length of the name?\n", + "\n", + "- `sorted` function and `sort` method takes a function reference as keyword argument for the parameter `key`\n", + "- We can define functions that take one of the inner data structure as argument and return the field based on which we want to perform the sorting.\n", + " - We then pass a reference to such a function as argument to the parameter `key`.\n", + " \n", + "#### Define functions that will enable extraction of item at each tuple index position. These functions only deal with a single tuple processing" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "def extract_fname(player_tuple): # function must have exactly one parameter\n", + " return player_tuple[0]\n", + "\n", + "def extract_lname(player_tuple):\n", + " return player_tuple[1]\n", + "\n", + "def extract_age(player_tuple):\n", + " return player_tuple[2]" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'JJ'" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Test extract_fname function on the tuple ('JJ', 'Watt', 31)\n", + "extract_fname(('JJ', 'Watt', 31))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Sort players by their last name" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[('Troy', 'Fumagalli', 88),\n", + " ('Melvin', 'Gordon', 27),\n", + " ('Jonathan', 'Taylor', 22),\n", + " ('JJ', 'Watt', 31),\n", + " ('Russel', 'Wilson', 32)]" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sorted(badgers_in_nfl, key = extract_lname) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Sort players by their age" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[('Jonathan', 'Taylor', 22),\n", + " ('Melvin', 'Gordon', 27),\n", + " ('JJ', 'Watt', 31),\n", + " ('Russel', 'Wilson', 32),\n", + " ('Troy', 'Fumagalli', 88)]" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sorted(badgers_in_nfl, key = extract_age) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Sort players by descending order of age" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[('Troy', 'Fumagalli', 88),\n", + " ('Russel', 'Wilson', 32),\n", + " ('JJ', 'Watt', 31),\n", + " ('Melvin', 'Gordon', 27),\n", + " ('Jonathan', 'Taylor', 22)]" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sorted(badgers_in_nfl, key = extract_age, reverse = True) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Sort players by length of first name + length of last name" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[('JJ', 'Watt', 31),\n", + " ('Russel', 'Wilson', 32),\n", + " ('Melvin', 'Gordon', 27),\n", + " ('Troy', 'Fumagalli', 88),\n", + " ('Jonathan', 'Taylor', 22)]" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def compute_name_length(player_tuple):\n", + " first_name = extract_fname(player_tuple)\n", + " last_name = extract_lname(player_tuple)\n", + " return len(first_name) + len(last_name)\n", + "\n", + "sorted(badgers_in_nfl, key = compute_name_length) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Example 5: Custom sort a list of dictionaries" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "hurricanes = [\n", + " {\"name\": \"A\", \"year\": 2000, \"speed\": 150},\n", + " {\"name\": \"B\", \"year\": 1980, \"speed\": 100},\n", + " {\"name\": \"C\", \"year\": 1990, \"speed\": 250},\n", + "]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Extract hurricane at index 0" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'name': 'A', 'year': 2000, 'speed': 150}" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "hurricanes[0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Extract hurricane at index 1" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'name': 'B', 'year': 1980, 'speed': 100}" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "hurricanes[1]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Can you compare hurricane at index 0 and hurricane at index 1 using \"<\" operator?" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "ename": "TypeError", + "evalue": "'<' not supported between instances of 'dict' and 'dict'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[29], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mhurricanes\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m<\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mhurricanes\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m]\u001b[49m \u001b[38;5;66;03m#uncomment to see TypeError\u001b[39;00m\n", + "\u001b[0;31mTypeError\u001b[0m: '<' not supported between instances of 'dict' and 'dict'" + ] + } + ], + "source": [ + "hurricanes[0] < hurricanes[1] #uncomment to see TypeError" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### What about calling sorted method by passing hurricanes as argument?" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "ename": "TypeError", + "evalue": "'<' not supported between instances of 'dict' and 'dict'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[30], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;28;43msorted\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mhurricanes\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# Doesn't work because there isn't a defined \"first\" key in a dict.\u001b[39;00m\n\u001b[1;32m 2\u001b[0m \u001b[38;5;66;03m# Unlike tuple, where the first item can be considered \"first\" by ordering.\u001b[39;00m\n", + "\u001b[0;31mTypeError\u001b[0m: '<' not supported between instances of 'dict' and 'dict'" + ] + } + ], + "source": [ + "sorted(hurricanes) # Doesn't work because there isn't a defined \"first\" key in a dict.\n", + "# Unlike tuple, where the first item can be considered \"first\" by ordering." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sort hurricanes based on the year" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'name': 'B', 'year': 1980, 'speed': 100},\n", + " {'name': 'C', 'year': 1990, 'speed': 250},\n", + " {'name': 'A', 'year': 2000, 'speed': 150}]" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# a. Input: single hurricane's dict\n", + "# b. Output: return \"year\" value from the dict\n", + "\n", + "def get_year(hurricane_dict):\n", + " return hurricane_dict[\"year\"]\n", + "\n", + "sorted(hurricanes, key = get_year)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sort hurricanes in descending order of their year" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'name': 'A', 'year': 2000, 'speed': 150},\n", + " {'name': 'C', 'year': 1990, 'speed': 250},\n", + " {'name': 'B', 'year': 1980, 'speed': 100}]" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sorted(hurricanes, key = get_year, reverse = True) \n", + "# alternatively get_year function could return negative of year \n", + "# --- that produces the same result as passing True as argument to reverse parameter" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sort hurricanes in ascending order of their speed" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'name': 'C', 'year': 1990},\n", + " {'name': 'B', 'year': 1980, 'speed': 100},\n", + " {'name': 'A', 'year': 2000, 'speed': 150}]" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "hurricanes = [\n", + " {\"name\": \"A\", \"year\": 2000, \"speed\": 150},\n", + " {\"name\": \"B\", \"year\": 1980, \"speed\": 100},\n", + " {\"name\": \"C\", \"year\": 1990}, # notice the missing speed key\n", + "]\n", + "\n", + "def get_speed(hurricane):\n", + " if not \"speed\" in hurricane:\n", + " return 0\n", + " return hurricane[\"speed\"]\n", + "\n", + "sorted(hurricanes, key = get_speed)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Example 6: How can you pass string method to sorted function?" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['A', 'C', 'b', 'd', 'e']" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sorted([\"A\", \"b\", \"e\", \"C\", \"d\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['A', 'b', 'C', 'd', 'e']" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sorted([\"A\", \"b\", \"e\", \"C\", \"d\"], key = str.upper) \n", + "# hint: to capitalize \"hello\", we call \"hello\".upper() or str.upper(\"hello\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Sorting dictionary by keys / values" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Example 7: sorting dictionaries" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'bob': 20, 'alice': 8, 'alex': 9, 'cindy': 15}" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "players = {\n", + " \"bob\": 20, \n", + " \"alice\": 8, \n", + " \"alex\": 9, \n", + " \"cindy\": 15} # Key: player_name; Value: score\n", + "players" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### This only returns a list of sorted keys. What if we want to create a new sorted dictionary object directly using sorted function?" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['alex', 'alice', 'bob', 'cindy']" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sorted(players) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Let's learn about items method on a dictionary\n", + "- returns a list of tuples\n", + "- each tuple item contains two items: key and value" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_items([('bob', 20), ('alice', 8), ('alex', 9), ('cindy', 15)])" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "players.items()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Write an extract function to extract dict value (that is player score), using items method return value" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [], + "source": [ + "def extract_score(player_tuple):\n", + " print(player_tuple)\n", + " return player_tuple[1]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# FYI, lambda version\n", + "dict( sorted(players.items(), key = lambda item: item[1] ))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sort players dict by key" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "('bob', 20)\n", + "('alice', 8)\n", + "('alex', 9)\n", + "('cindy', 15)\n" + ] + }, + { + "data": { + "text/plain": [ + "[('alice', 8), ('alex', 9), ('cindy', 15), ('bob', 20)]" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# we'll walk through this step-by-step\n", + "# step1: \n", + "# sorted(???, key = ???)\n", + "\n", + "# step 2: fill in blanks\n", + "# sorted(players, key = extract_score) # --> uncomment!\n", + "\n", + "# step 3: evaluate the input, is it right?\n", + "# no -- what's happening? see next cell\n", + "# We want the input to extract_score to be a tuple, not a key\n", + "\n", + "# fix the code\n", + "sorted(players.items(), key = extract_score) # --> uncomment" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "o\n", + "l\n", + "l\n", + "i\n" + ] + } + ], + "source": [ + "# when we call sorted(players, key = extract_score), this is what gets compared under the hood:\n", + "for item in players:\n", + " print(item[1])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "How can you convert sorted list of tuples back into a `dict`?" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "('bob', 20)\n", + "('alice', 8)\n", + "('alex', 9)\n", + "('cindy', 15)\n" + ] + }, + { + "data": { + "text/plain": [ + "{'alice': 8, 'alex': 9, 'cindy': 15, 'bob': 20}" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dict (sorted(players.items(), key = extract_score)) # --> uncomment" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Using `lambda`\n", + "- `lambda` functions are a way to abstract a function reference\n", + "- lambdas are simple functions with:\n", + " - multiple possible parameters\n", + " - single expression line as the function body\n", + "- lambdas are useful abstractions for:\n", + " - mathematical functions\n", + " - lookup operations\n", + "- lambdas are often associated with a collection of values within a list\n", + "- Syntax: \n", + "```python \n", + "lambda parameters: expression\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Now let's write the same solution using lambda." + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'alice': 8, 'alex': 9, 'cindy': 15, 'bob': 20}" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dict( sorted(players.items(), key = lambda item: item[1] ))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### What about sorting dictionary by values using lambda?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# same as previous example\n", + "dict(sorted(players.items(), key = ???))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Now let's sort players dict using length of player name." + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'bob': 20, 'alex': 9, 'alice': 8, 'cindy': 15}" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dict(sorted(players.items(), key = lambda item : len(item[0])))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Self-practice: Use lambdas to solve the NFL sorting questions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(badgers_in_nfl)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Sort players using their first name" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Sort players using their last name" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Sort players using their age" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Sort players using the length of first name and last name" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.10.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} -- GitLab