From 6e47732e5227c21622ee7d01fcc4115d506a0717 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Fri, 22 Mar 2024 15:27:20 +0000 Subject: [PATCH] markdown source builds Auto-generated via {sandpaper} Source : f2233ca538f73b14aef1cf7efac515062a84f324 Branch : main Author : Robert Chisholm Time : 2024-03-22 15:25:12 +0000 Message : Add guidance on using profilers from within Jupyter notebooks. (#24) Co-authored-by: Neil Shephard Closes #23 --- fig/line_profiler-worked-example-notebook.png | Bin 0 -> 50501 bytes fig/line_profiler-worked-example-rich.png | Bin 0 -> 40125 bytes fig/snakeviz-worked-example-notebook.png | Bin 0 -> 75758 bytes .../line-profiling-worked-example.ipynb | 65 +++++++++++++ .../snakeviz-worked-example.ipynb | 89 ++++++++++++++++++ md5sum.txt | 4 +- profiling-functions.md | 47 ++++++++- profiling-lines.md | 37 +++++++- 8 files changed, 238 insertions(+), 4 deletions(-) create mode 100644 fig/line_profiler-worked-example-notebook.png create mode 100644 fig/line_profiler-worked-example-rich.png create mode 100644 fig/snakeviz-worked-example-notebook.png create mode 100644 files/line_profiler-worked-example/line-profiling-worked-example.ipynb create mode 100644 files/snakeviz-worked-example/snakeviz-worked-example.ipynb diff --git a/fig/line_profiler-worked-example-notebook.png b/fig/line_profiler-worked-example-notebook.png new file mode 100644 index 0000000000000000000000000000000000000000..76de6bcbf658a34284559d13bdbd0156698c46bf GIT binary patch literal 50501 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�%sCGtQ+A%eS#4-QRxjIAVA+@H2TpBt6)h$wpv{gi;nYYvXxHCMqY zMuXvKcD+L{ z3t+bl&zxr&Ed*?Yn<3Fob9+sH*Q+v^>0j(TcI3Mv(m6CdY+^CH*Cmx|^6-1`=k*jS z=G}s9X7otTzcQF!v$~i6!G!vse6mZA+xC~wifS%djr}_?fP*!Z2J7P8tsr z-+l-B{AU- z!Kt9d0P9K^*%*cZm=KZHJJX=>WP}vx3 zz`WYLX2eO>-xfps+J+!zvngMrIM$j; zGLgan8Nmtjtvqw~Oix~JER=krA@4|2?O#*n9M6a%>_RBI`S7xcW-!ep zq}*Tss>V;p$%j>ytQuW|$mZidAsapoQF3+cEX0}CJqrJtBcv#?Z3E6*R(+voIayFx#9E&>6n3$@7i>-lD)!W$(0VZb?Rw4dK7$ zI!XV689#0HX4Az(%_q?HszjkY6uJj(V&xak;hzIfMFyMxEq!pp+Gw1C-}kd>+8k`r zFiw{PKr4O1ay9|?IQS=Em_U_Yhp!DT9<)CL&g(ISBt>|U>(Ol5PH9VnYjRr#O{)5l9cB(}z|kK}Z*_Rv{EdO_bs#1O=O5f5=-+_gO|L=lZeZGD zov*w_2jzv??8)3}Pv`-PQ&+`Yce_%B&lJHV)#*sBf3;b)ipi~aXIReRx3m%mh!W>) ze?Q=Rm)C^u55tx&wke+N&xF2*x*o* z&9ecG^Z~9Q8-AF~iKdIW2S1V?k|u13E60&Jh2G_L!E~~RGCE$ZQ|bJfs9DnmABw(^m%OfN>4hgjf1JDz%<`}CX8`~i=`5X-pA`x-Of44)JShiQ$V z!qAnn&|7tCztK`W1bmG(<<|4+yA<{oz1>hCHm(fh0&w01ZP;ZK+0SpYWCBAix+cbcPf zp7r$mvrwW~o&)Zo=ys8GDU=cy_1AEJlXvEMF#@@C$qd^DHd^uzgMz^FI*O%85)P3_ zpW(YYPddR@27--FmKS9qHXlE@V>#9tS_2NY%r+Ofr;K%#r z{|PUeO+PR`*Bb?z+2^L+yf9|9M^kJy{mVAl0Qf(onQ-{v7Z$wzg^TTJ!d}EG?`X(^ zccmf#sSc}j@=0kDV}LP_>qT_0%B~<6YfFmHGKum8+G#ozmYQT@7p^h)2F_?E4DD!$C%CHHgg_ZGabH8i=pVCQ^?shl<}hnhu>%8?Fywa$FiaA z_zO7b(Jmu`-H+e?eC2(@Nt%5|p8%L6n@^{+5PsK+f*c)>H+p3rGe;ltU0InrUv##= zq2Tvfhfmq9JM;b44n0RQg)Oj*bNeCg4AoA<7k;_rYEP{2JQ;oM+66f-YC&J+h8OyMrPCqvn+sTejNXY%^i(RI^IEQuaYH>tOAAn%_Bx#8c7$zNg-VAFH%2ubP7ITa*OOX_n^|U2o$3YM%3u0e|89lB;nrC{fZYU=e3L< zAW5@|rX8fTBpAJfcL_nfjk|)+3HP~^NNl5RnhPetpV!iC%nVdG+56lAkK zpKDcQ$zxCvqmvNoIMw7&&Xjo>A~a&MD449(n>v zI-oKA7yQJrm{MTfEclA_?zMFYS!YyS7kGG-;agb9b2FZtP*xn0PG>3~>ljS^HsDB@bO;5-URn6;I05F6 z0Aawmt+dzC;Tj5e&D1bl+0XCjUeMAK`5_fw(sOPIPJH6{FiE_62+2FrXDb^$d-qzN zoyZ+6qY~>1aYX-|Ez@{n{}YS^CRSLIZ!bCq zssEU!u%!xMBq~LZ7VAa5^l>dlvv7@@L8a;d%+F@;?G@F|9P zQEbUMv%gx*wqtR1Fm|945&CI*$JXwuLkNKD-b5~jjS4x07JXsZ&WX(xx_0+U&wR|h z=Z;w$rEH7Dj}hv+7g;6MH;01j(s;5wXG!JmwszAVu-f8FIT|7-UPoklPw-PeALPlu;$$`D=+ zR1A9?Wr)Ffvr_2yC1Bm_C)3QD$Ew+To7XSXVFr^;$@CFhi;ryXs6{LWmz9o3AbZ zba{U&I;ra_Hug=hwL-K-+}EC9qNn#_jFVF8j@be}7K4`2#Y6{2G)^XxG}o&xD~OR- z?U<&bk}}qoaW0mE&Tf3zmYQR+uK~_Me+ImyXCn;nc%e8(8}Ie8FmQCoUgzOg}jsXD~E{xTX1H%m0ft=~}u%HKVab26{myC^{xOEs! zmNBX>VT}PTfohS;C0tH<+0_U4qaaBSeOX)Ynr-bWa6 z@SfN}OSM}8(W9mSQKLfC;g&F8|<`tf1}(e})&oS4+3 zGSMs9b*2VrF&^!pLG`ivC%bmL5-=;8ABH&(bD6jJ5M7Q}I7}!Vk;o{eR0G5glFE7) zp4>l|Pi=s85Rzr__%ff7LiG=LN1lN?Tf9dz43S43fjafaPMJ0_Z?!<@E2VUpBKYzk z@2#2Ml?SLx1rh693-J{Yl1FUMcPsaG|JZRn2#Z(sgsVf@4^t)RZ(x+%@ zIRL38xer2}#z+5P8Yu@a(~rfy<&V3fJSx&BZvY)rx0(lEhRC#Zzs)F?BdK_kdSmBj z0?$@MWugnt+S=JQw``G88ohbeWx$Qx3j=j}l;eBi5pNt{UsiZ4yJzKX3y?QF-Z0Z%& zC#n+VrTwuA9Z$_@S{gVyRJP(nnRP`>foEc~Rh6jO*Pb<_;@aXuPw_XyL;U3Q3fn5R z!_Ie~-a4}wC6-PueqUxC6#Egu)vj>|(Vj0}x-LnWY7EkuMBdM&!XE59b|;_gCSySk ze|$TrB)Bk1sp`Or(}-m(LzG+!dsaM&P_;MG@U2@JY$q!ZiW`m10+^ez8#kNjujxVs zPVqFqU>T8omAEzS(HsMjDCV2M8Lw9I+e-$Z5Vn><#K!`)+sO{r zQ_v2E!^c3kOVucz^F;Ja%Yxp`Tf@D3e<|>M5?>uN+zU`6dT4it@11ak5hwlpZDnf{ zPg8`5u3GkLR_YJZ<>vBG(5!CxA0Pnn~EN#OHV zUl*UJIPTW3r+dme6EG)4jK&hc$P&!XR^nq@8-R}pGwU5WP%EEUUR8x?XDXo&tOR!? zMK03j@fSY$@L`QxM5UtcPiK>RkYLVrP2i^tVnEhl^I9pKv}(}vCN}+AP$YF=pCO}M z0jFx~1R!oqDY)|TqJC2|Z4F)#T-@r+pkXt(WuLF!WV>p5seNal)>l8GW97?5KM>A7 z@3HDjZCsSA7B}&GdgZ3lx8t_T3Ql=(SL%4Yn|~zkVRX>ltq#BpsX*60TaD&;c-kkt zAdxRXlav>3zfhRI!;g^-Xm_h1y@S_*`-tN>h@U~lbZI>oX!F6JstD0aXw3zw=>1@17?`{A&+two%N54HnQr5%`yXz_yzX5vKbz`0UhNGx(~t-o zTlY!)ow3^c0pbW9 zJ3AT0GkG}*mA@y6kJQv`Zsi`lN|IbIfoG~9qY&!_nQz)GDXEDYKV?0)y*Uw#KSnzq zoL$2ESk@|?9&KD2MD^GmFf^^jKT@?Tf{L`XrFf6r?k38Jput3xpu7SoH}tL0UrppR zDqifewYBQy9_g6cV!Vy*kPWf7N2s;ArRIlw93)wLuJ5~*`(_p{WBUanf-QUWyFEeT z;&EOb8#jexBrF(^_2TwMUITn>y8tb??%I&ws%6=ZMkA!+U?Q^J?PyAF5+Rtfwj3Jh zcN;)^csJLzUK?m_MCC9N>3;id^|3MGzEFY+VG7osgg?cenfI&|jHZ4M(5-FHNFV2p z$j_4H3hSG$DeOkO74ZMilera0NakM7m;gun5Ab zMs}5c1|?I=>u0_Jk~E^8WDYLfXERRVi*<^PC!Zb$0r;&A zue~sHmjYX3-$q=L6vtj^ArHEkIJUegL616^!Ff*OPcNpn*_q#g>HdWLMTJ)7UzQty z6Ld)blX*YuKHmFKY(n-Ii!;_;z}Ux&;-XnIWPkXq^?!J@hDC&bUZ9KkZu#U1b$@w_ zz_q8#0;p!@2e++>Cbz8|D|Pv`t#cJfS?X#OzMk@A%j>Cz>oNTN!~ja7qM@8U=kUq0 z@<^4jC<8c?esM!_WLBi@1n3S25xDi}3pGNihcdh%g57wmq+WhfJZ;afI8`!Id7irW z`ssJQATq>PN`(I|>bOSPdx>!vdxa)cIEy>K*K&_-nb4u5DB|(<01aFf;!Yu+zVnjc z!zfd9(pTHDVdfoxIcfUbLbSwwU3^!x)~na7$8_z>v(^T$Ur_)4dM<(Hc)O$6rq864 znZd$8YvrJBKzt6ZyQm3%C7XudGWWMB{92af@>lu`nLUl3*#KJAPvwC7?!tgFaXch? zsCAGn^&Sd;e_Sz_ZQA28?wSPuqdc?y5PaNJZ_?a0msV@K?(2=h%IGay@SZp0o zYr-6*L>6tgggtkEAn&Vwtg)mC{o(ntnxgmq;{|tatXIWj9X7|FbJ^PGB2Gi4cST-V z>1VzIBr@g1bGl7cZ#zlc3eS?&doj#)KW#)-^3#^##jO>g&NDJ%dAw&y0|#yhyGeLU zZZ_zLzX^-j=Sg3#xulZ82(pTsRPJ>R4ZpFQ!xRtELz>ss{Ng8Cu>5-e2?u6%JM0gv zrImH&^PV$&&u!FKV6WcMRG&N`&<~Aj9xaxmYgrD!2Vi;KRVqFwF8lFgi6N&Y0;$Is zwRw{zLFv%umadZ@@D+9TePjq2x);(|e1F^LcbnJK>!-?;o{Kt+J?!bxdkDW<*Ddv7vTAI$ zpw4QaasiCCUR!K|R`fKrYQcT1b6@akdtdM{S2H%}lOy4^!83ygf?&$YofJ>m%={Gh zoi7ad`!T_G4c%rvA4`83$2ew{f{LDq4l`phNw$R&0J9XoV9dNSi1Eupoy;>C#n;w} z3#;0~M4fD#zG8R=P+qw5nwPNjR{e`&g=NvyEF(?i)fs;G zF_k~g-R0*Cub=V)(89`9oyh`LX(BgURsrrUb@Dvk=9n$4uq^`V6mmlMow(l7mcgFN z)TQIax`~-TF4yP=%|z4I=(PEbrV{;lZv?%HHxQs03g@gj%==G)^$c{U21;NzZd7%X zN{krQ?S9r9^x)idHeDL9jE7y7fF_@Zv^lm#@7-h-{o*SEMUH(}j1@0wMG1WL!sH1M zebf92rNY=N@e?0i-xFIO`=oY#R33s~K6O)9UPy?#I#4Nd0G1sTr@kzQlRp)kITbi> znj#GGG7|v3qwQVC=SRA$PxuVgma4fLXUea1zfVzdGe^BEp~l-~O5n5myKB3@$^^>B z1X5$I0ASZtJE#drD|XMIS@u=Ge+%z-6jb2fgu5{u-z|W|ozcvpGwP*eN(+|K)joqLrdQq@8TqM2ciXeyr8 zNGSfGp}9yADk7gRvy}|0^HT-*X8@0D;pu|&aO@Qr7>f6Ki+yhYkS#$6*(m7;Id7k7 z%22QMFdiqmpZ88utxzgXZhGR1^5m8 z{QsQD`84sRvweJGfY8}@L<}JK%0)y8I?0U%_7qxoQwj>0Dzi0ULR+^QPH2@-W=FN) z78F;1u!dEz!LSC(f%Sj8%g%oBP8LdJ5mGMx^jYJw5_VX5uLw7?%K&0hJ`M7YW77H) zAc+#dN@^`!W-FSDchk-_!G%d+>e7L4Y8RETf9i)oSGIg#j}Oi7gV8YJBI=?_tLN2N z-%w(I)UgNG8F*sDy2`dcV&8CwcmS}b02j~v35%}^3GB(VkpZh zvtm3X1DkXmvXhH71(Pq_ZJ2K>dJ{$9t0*72#me73)8=H`aHn(kxEaq!UUyKwALuB{ z{f8cyfD&3M3k;3I*jmpfCIKq3AC`R*aaIg-A5UtndQNl5c!0-5&ehgOH8I=tQKFK$Q4Btm`* zHT*3lb1Jo(6|rAG{{8kmgg-_KAWzpFBzLnIF%8W11nDuBX$A&0{g0BM zdXbxy96>q7u1#aCZeF*KOoxWyHV$_~w7Ws6xLJces?f{Imp@jl_CzdIDGIz$mF+W% z-ek=)tcd>_Wlu}mRMyHPn5Lw~=zatqqy;i$?Wy~l)vpw{qWRQ!T!F-pp+N@;rZ!Wh z`St;kYMT$m@f(EtFdjV>=v(m<ofXO=Vts?r0#`a*GhzNq>Rf zMaZ=EXUV!`>g|VXw#s{}^S+E}={mnxwfddv{^6bEy90bt?&X#Cd{>p*S}yCoeV*m0 zsY#wxSD<*7+Ucl9gURIIv(1k#+0!woq)>F=ulElaZ0)tjNVvkah;p@`A78av33kqS z=qwpF5U*m`JWxh<|Gh&@)m|dEJ$V2Ds=+3~usk#g-BL`DKTa5^ExkYvlx?beFrsQS z*Y`%B6t<$TOZ3=qzYHwtrm-HbZ^ls-;L&?*U2N9;Y&HR-&%fK zrZ>r_7pb~xS!&4k1-CH@tJC6MO?gTLQ=?I;xS-uI^wG<76Ct(M+v{ zG3&l+}rxNQb6jntvzc*~iu@?-pz4~_v8?&$J z$_<%sWI-ivuf>PQErn@bX~hgROa=D_o!^!+7aa$( zTCyl8{rqAn)nk5DEg;_|*I8>rb8q3`X0Yg^8d1aKUOW$(@XK)(m;Rfq>JH`oY`zED z<4ZsHF3HWoBg=Z9Uw;GY&4sHM$tUuR@^a7-49}y=QU{ZU1LgP`iI_<(2f4O^o?v!rXcl; zx*GrjR^=txgqRSTnWWW5_e+!qE$FjBo)?(?)6RjxKmFiV$>EpB6H}xPrj5D&83Zv; zQf_PNbY^8UmsvHaAlZ6&r4^Al@fbEFJ~UOFVo^be-PjVc&+b+gAm+PD=#`ZQTwILP zw)0mtexy}?WaIMCsIa8BCV=hn@ROz4e|6Y7@UegQZkvWvg{~Nu=#T{eG>Pt)#8?AyK5w%HF5^;J)9G>v3Y3)i=>pH7V-ti*z2 zmfZ%GN9Oi^7Rn|SC|l7t?j9|vu)71NIiVNVJ{MN`2wK(oy&>W~ziJAASqp&@Mf5EE zn69$7!eGT#odDxx@XZRw-JOaWX4*@JG)ZB;G=I7bsoz%C-Ay0M56T1R-S!+?SV%IR zKW&=Jop~ofQu=r8XQbICxy5CN&`Os=X@qLz$47T|JkyTkkR1Wkd9xX1waoIv$M{it zU5&SWrbPYaykTM>%2^2I|Lc=ICGbBD=o@qQSNI>Rq^6bf?0i_&&`eoQG#&6ObdFvd zEeampzI-0#FqDYWpbSziO4mn`$BuRE9vWP$dyBEQ#2aPm70%Alp6)?)l+$z=d6b6W zu>o5rD^QN|Z2tQx=I;uJe0%rxsx7)&^Jk9NQD+lk)4@JlET=PwX*L9V;`f4 zL@0ZV5i)k!8CzMu!i*TkHk83+#t=eGxUb>c?|0wNbN}(Yp67Yp*B@S(>zeEOd_Lzo zpZ7WEea^X+q%(e>d!sIXzG8?156q3=r?&+^+K=pOYfAYNbN%!ul{*Wm@f_4Cu&al@ zRkz>vtCprq?+oCjZ48Vvys4~QPYw_!h`jQ*hrw2u?nZK_QV+wo&Z{JnK(vFG_(hLc z+fpfmz(hd~%Mhz6;z*{P0X6Ueic_l%?&oyvwg?#Q=Pg!3a_#txV=v=+8Q&kY-%vo= z8eyEmBBdaMn9#Z%5gLMZ^+(Te&ll|2>(s8lR;hepNIQx!ES0aDNO^rWKM>jbPOy{~ zTFld(DK^2bjhNb?2xO}+ItCwd*-Rxg`ljLQeH3?oYb6(=#~zhzr4Pe&c{{bL5JmPD zu`{b_pB#~vGjz#8%yv*J5&bV!cU4Qq-vN{|4w9qa#?YL~hb0zuw1CIlr#(!lZibKe z8YvJGOy6Q3xokKTv$R%)miI^|9b--c-uM#8?<^ zYdD2u1#{`8bzfTdd@3$(9y71+0&`9`WS0KhvbCw>uIaYx= zc;A20sDyEh4+x!CkME{2QfLSV)Q7UvgRj1tmz|c zPdqOXnrj*Ajd;3;>ldjqcc6DS6D=3w5B5%1_HFw#cx!J`a8+(2(V8$-e{}QY+|{e# zm@nHplY*XCKV%Lhbs^%`^6@zpJ$5%O1cb=w_QBfjMHDr|9O&ryf>>`ANOtQ6%HX}_ zK)dr2){Ru4Wk}JVSAhE~?b#|4us6%!fg;-1{!SIcqd+%ZzXyqt0F&fv&z^IHT-n?};kIduvvF6;GI%6@ot7jEMOW@KNdKKE zic?)?^E02gFt5lb8XNoWYozRz^? zpYNwUsvi#)%_)g7ILH91+w9~rQ~}Wu_(#!N%jPe!2PEf0PH}e(Ub#nN`&ReJ=2oN4 z*%zid1(-vwbFcz5Z~TDrj5Qie>(scGd0GS&NBpJ%dX^Kv#`=y89Plhho?PQ?JLG00WO*gALa{-;md{q^euNP{W-b9@x%bJt}Wsd?Ml`cjhX4}YK~1exps zoA|WFZo5G-g*R7r`!hb%U#;@}*6IrVq?kiwA|=sXq@k;G`J z;IBW|^ss+6(#K9biglQj{%-SF!s-I8Qrn+#l&;OF>kLQqNe2K{UI=VYl+SRB^;2F1J@J`f4K08i z{dT_;TA=9w{?gNF+$f0_@MZXY{T0~qb4kw$Nvc+v76+|d73+Oit9wMCu=-S|dXv>D z{YUN>Nu}Mix(a~MI9c$Z`ja0JR^}xp)1>v2Cb^b=ch4+P)K~f9kQp%qII{{wo6;i9 zUJ@|(54__>GgrY^YrP>x&s=mp`8nsX1PPWwDz*M*vbLc+;*xgw z$%d!8{mz0afrCp-TA%2X?&Cr;V203sSI9c61>m~n-KD@+Mj2-rJ^ALO^Y5`ZTGZyR zV5UbP?N6Z0B@HN3XAuu64xfuYkOX{Uu&amw3#+=<@(`T8K&<G2Ra3O+}@>+a<=Bg*93WbTh@X~MCi>y6@8mP(=AVNw2GqY z{i03Gb-iGZm1U>-oUH+^P3ObUp6-)lKd=^SJK2N9EC+g8PSSZ$*8uhRMzn9l{(YRC zSsTMYG*dFk^{0DlPo`w>kTDaj26Qm;e$|<0u8fo&Cg-kf_$_R^0?sDNUwf94gb4ooX=m^7h^FI@~X96;x%fg zZ4-FIzMkCWhD1EZ1?mzxxX=0P_8(HG1impkO5H@%4xdX*(LC<|QYzo-IN4qReNTx4-%v?yu4LfYk zUIbqnj7HgJCO~cywT6i?#ooF!Jh~foxrmSYslk3^`Q`H~>(`&mxts zi7Y^DTg=fIuki_g&Zs(Jqs6WYuc2)bBi-|a6g9?(EN=pWCkJi! zPRNH346c=d;ek`v?2w%4RBrf|PjZJhqBl1z61a23(_ORnSiGu)N9NOyuspGQ+6)cR z_zJN!`)8tBv=pt&g^?bQ5ppHr=yJ1!^$v62Ni~i+C2~QPOfX;4Gm4HM|dqwF|#f%Ipv8pYx_^g^T!khEQ39IRI>)wKD+I>OvJb~ zTh$K~O{jH@)nX&;s)RxE?c}K<-B@%T002$4@L37ei5`eo0j%mMRq4|M@a!p{&iS=a ztPzODxX`Ro;Ass+7zF-t^xXl;&Cf=LtDUVzDn5>aUW?XZA?K9K)G4!yi$!&7&R^YV zD|>6hrDZM;GI{Sc?~JCvwMQC2&oRzxi3)Z}u01W`GmVCv!r_r)7_#W03*>jlaQv|7 z=;%nNc^+`!l%FfOG+^CY-$%a)e4cvz12XnlF>_zB+S@Hp$A6VP&z=3QYx3b^Aaw{e zKKu0E=Unn-bO=!xuL;e>NCQc+*&x&p+J}n~ui;~u2#!_N+WAm6@(GMa!z^*(I=NoD z&baqM%-GKi{X#G_ZFL0k*J2^id+#3z2>wj=;IIZf6Nl2gX4dUYhiX;Ufy%iZR6u)w zh}hF0XSIKMpJa{jk%naoe= zAn`ScVzhxmFZBCke$hSzvN*>jIW`q&s7ks^DnDURoRv?w-O|7ch-)tf>B!w2Tpmrn zg=xXAH94)*kZYW;s{Rh&d7YV0`@DTEJai-6uaqk>Hu0785I|85+1iVt9m>BI=6&M& z^6imS`wO~vLz64+$?AdJt!4FG#RfMnr~viUluAZ}b!eVf5mvG2g5FLC4N%a9v3Bcu z!~-L%Nw<`KX-_MjIj|m)#x>8=cw8ceC>Qru+J}8?`soA6Ss?QCWaJRp_LfCwD7M}I z@Vd|yv(E5O=Yf6o(jHI`J=qevJ-|+RT6XoZc$k7(TO@Uq%}ttZLE9z%sv8+*WEFvf zVYJrP!;JXl-8D+lYv4R{Ut~1N>|g+0yMt$q^QMK3xEBAFv=-Ppu;vO6_trcm=!A;g zKBa8KPap3dKQ87G2ug5?WTO{}7Ib&H$Qdi`>rR025N#h1JzHpN2ID-ARB9N~t*T%M zWh%T8jNc!+gz?i!+dLCvg$_vT-!iI_km}xqxggWQ?_o_1#@sEX{c;;Ai<7Jyl>7I@ z$G%Q}V1t9OyyVSyONz#FuN1cNpPC^|d*rHEUf?8SLf-5qi3O;~QUx%%VjZ6qthukG z*Ra9T9jaZeu<0KX_b18R;pyY3gz)n>YC73Zx_CDDm?wr}tMOx7Yjul-k%0#I?a4}0 zVoY@dgl#dpOZM9*$9`9&^H|30rqBGEUOm#?#m0JBYZ7@_XM1C$&e-}J@o$QbtR&E* zP! z81N1QHD7nL+dfv0bZ5HVTs=Ad6cTA1^oEJR@qbdlq<-X>CoUvw2ar6&NEi|+Ed`XlkGy_6ax37}LRUW2W@fB?rv0>n$-a$ic^zgA_LuLYO@Nwb zO&T-=)|Nz0tl`V4^GS^F^w3W()Q}0SK>)R>u$6SGWjq!swk8Iw@V-6VFmO@(D^97` zhHAHEXrY=f9s!GB*bKQhD8svea=Q58V;z z)$RPvLN@qlQ$4Dv^@x97nv_X20>_mMq~l4ZEhrtJoP5xlDF+4ta$JkY% zK@bqKh=^VMp!H3GyR7xSP}oVvH*<(KucO%8-Y0hk?Kcc`yTL^aKVw}J)yVimJ`|ww zECb7V;1u_-wD%uoKBNpBrf>0vHdd3`15cl(1h z0wzQ=M4!j-Jd;H{+=>XV=CnotwvUJ0KU;7mR0>tkc3b%N%lLZSboIpSZ?HCRervY= z@DSJILm4+BOE{dVE8f*Ki`dqzNyy3zhS2hG8fp8oIbVPhw{=^vsnCnq=jyGt{LfuE z(&o)-Y>m(WaxAOPJr-nV1Q)!*pG}ftJB{B${s5MpvX=?=Kx6agXaDo)+iSO;{+uiE zx(~{n5xyboHWYq!HLObLETOY!eQ^!hxF{TPz4fNi<8x@Quh#CQUwNCk@+IXSGvnJD zVH%9 zUkP52zi=5T-?ef$As3YdwNr-5_^u4rc6Hx-I^K{e*(?|_y1sfKXfWn;%P{rem0oV! zM9gVvfiyOtMPv5F@b~#EZ7FIzha?!1jmSF-GhfQzs(8O`*$m9Q0jHa+w^2_U?5E9F z1aU2(ajO?A8{N>?fOr%RsLb>~n|AxLiP>@4V`-|&qyFK9=+bbqJJ=!V7BdCTtAuG@ zw)>YZOcf2}k8Xeek|oDvERwL{OgqsCplEwM*uw!AeM=-nrC{X*zt8c>1DP2gtKxI_ z!}`5B8FnL5ARuFq(R;|Xd71{KCH%-LlG%s4q3Z8GP6jWoLul#Z-MPV zK&Nv8eI|g6#nYlX$NM$)(?6z{M#5xonrVf<7rB6 zNh?d3j3v!%dN~`{HtZ|Jzj(KT(qcNms`pZyj~PG@Bt31}7sguu;qgW9PnO3a+$AK(4qsc( z;;GsP<3g~sHO;CSg}f5y3UIyD6av06tGARgS7z+fsj;ajo45d8@^Xgn%y!bmO{|;E z(3-Xek)6W>cwnavIk78FA7W;vDFVI_4%R}L_|Z%8TdI#` zpHALVK8k3ni3SSOM2(;?MG&^VdPa^>u@rM5fXwc=n-K}j@W-w_=TIn6(@cqN*h3$2 zC{NVxeEjEao27=U$E#yw9SvMuFL-vR0C%9;|t;S;DC zmlFnQTsd?~dcT5|B_4GUKH{&`R=)9RXn5;PcM_$vBVgS!W|e0PA{)3d90UXstPG$15FM~z;{dZVU(ojy~4-db#@NFsQRGkA>vf2(YH zXH4(;5ABhxm>S;Ihe^q!ub&6Bm*+>X3Ih`%_-`+n_N_A103)6=;vQ&LXfYBXS%t*! zF@*s8MJ|w!Ad#2RqWnYb%S-490MX1V{u_-EGbK;Zd_F+4+cEnamyZIk_3?lFXuxXz zuVl8_1Mp7RZmE%fY8Zr6MEw&)W}f}uTd4|o6(EVj@))nwon5`;#Im!qworn3b!8v< z*Wrinp8|A!Ba<&{=kBq(fmJcP zd*I}e=`6h*o3w&N98Sg^EaT-OWGP@bzXJ_O@avFU@$7IA?2rR6{H>GljCXlzW);~> zUHoDmEPZ2V>=KCnz;k-DsiW*KQv3P`-ttvLM_b0SKjjOsWUlKn$wrxhoTdcC#!RvV z8QU!N600D25-#$-a87chDt$t*T~mO?@Jq$gW7<(iqL78@NqFj&!o$5kepUE|f4^2d ztEmE6sRx4VEL-2Nnh-XUykGwLip1t;lHiB@s8{Z+ECs?l5y>q=Puh$CrwOZea0adE zB(o003xV7`gP?m#?Y!z10=zG=%b(4k!ty(K;4Hc~U)^7#)uOy);~Teo5$YDp!!3iJ z--Nt8@qA&BS>W1_GauAZ{rNctL3)IC*t@*Kqo}qeKHy5(%VSEs4hvb5ueZO6)+y*g67yU061--;3CMK$N?oGyC(TtFZ88bq0 zaWUv}(?#l3?e2;JSN@dzFIWD#-RE4GW8X2(n74O=7#HX2B0ACSHBX?FLJ~@u6Ocy??thz7jZAvGmQGl>I==xgvYSKN$;C z^6#1ACVGSLgU<|%&1hxulRnSmtpXW588ubkr&V?4YU&WbZJ2#VimQFUw)meI(o`OI1ue}OD!9Z`c7COw|Ew`K4aay5+pXb>A&tJ^`AO#@fGpJ=S6%o)d9YL{!yRp+1`Q)AGoA#B7`f ziAx=I-u4nTcw>gQqNyq45_S6*Io3l=)MW6rTdv!kXWR*|?|6+`N+|d@J#gRN8BfVK z8`u>77Jv~8y6H)?Y#vUxcdxg6*~k&@92mnm*{PGDDwC_P9$Qs2hI`;~0{o<7-jybk zJJmTju)~#B7A{+C7&(N<$(@NJUaOdoFpurHyRz~5tp{H`oa;nG@O(Q^P4|NJC6(}J zTkcR=!q3`@jQ9kpFTqDU)^%2Vu(9N&*G+EUeS(onxgw<+UF4VKJEa=E=+sv+-Nq{k zziM4qOqfP4^0UbTxZLa(xW()48;qFsQnCG&LtJRgU-Yp`Lbh zkt4+7I_sy(3i+A=#{u5*8ioXY2+5conV6J2!_AxPHDDHvT6a&O_aJa@`OQA<)VQTo zu=4hLE8%_3)gfXl4bRaANiJ#pi#4O78Xp9)NH_i@RVDD7GVX1NjGe$(cVf%%QjmaR z(#aTSV3@0|_C3lA*0JY_^d4tzrQQtULhYPN#^w|}gE_XG`~Th0;<9j(b0@7%0!Vsc zve{iw#qan+TyL*-MSVTLWSU&1sWJUFqVMdSU2f0wuWcJGu^W!|J%g`)t#ufAbu^LO z9qYGC=tSocX_JUUJ*m!Sb#pQBouy}dr)wYOz8On(_TclRBp9q*U8z+ZTjMfbdVgy@FpjyB z(-+_TRHFJ3R`XW$*0VY9TEr;{!_^px$UVR{95xs?kN22tan_V?@8W)lji zC+;>{J?vHk-sCvybXx3$^kQ(?*K}W(RK|D%V+h$RU*Zoc|IuDQTO8X2!=2xq%V53E z>=F%BELI49gZhlXme0Q|K{Xe#@El`qbIDy@nqG?&jX(Iov$L};a&Uit#UOOKT)9t1 z(sSl>4*vZMsgq)W9z?Cg$gJXZQn`1269}LcQ@c$AFKSza-MDNl^Sm%WbyAFyAY7Fi zMA*t>)#uI8xl4+J>Jdu-fUv5qx4zCLq{ObIzGB|Av(2b18o>99#5x&Pwf^iC`rOj8 zpQ)TKzqzurndTq(v&3rxrqR8&Sh(QdJ}!HH$8RiJt9JG;=53BoUf7Dk3c|tEV8T8T z5ft_vfG;qBTnx&qlV(yU(``|?jv3uGlfnE8agmXcKlC*kr5*~M%X9zThc~X@(}KII zuz>%67qQ^fuq#cQxx4ABz;^XHdKX#%zg^t-at{x%WFELk1^xjXAty5boOmzfUnf4j zcM8tW&;KuoaY<7Tvk>*?V+GMaAKYO3gC$r*Zu|pPSQ1$N;1u2ciI=H9zPEVxkoF&6^T$b<)Iyr6~c(gGd<} z8TrpAyvJR+L?t{2AoKmt*qpqvkr6iDHKG+#mP=6Og~^`dlqF9NZb5AzAo5u&qLk{d zc)=YlB&Z2NdYJWTCt-Pcc|h-8{xj5oaI7TUlG;Rgx)BUUE#HY!QfFWPIXCdbOlpWo z>}_ee^~?1%H#hg}P_da^P|)~zga3eeb1=!g-lx~R&U05xcSSucuKzYF5qkyxfLcy) z%pcS5eE(;#)Rs4vMc36W^oJb3&ExY2h=aJ^-c-i=Vw$q=Ldqgwh6Zh|5@*-wW8dzb z*p;*0ANtjK_4*O-CGVq>uo7@{Ds~=^x&KnB{=665;T|zcsa=u^eB0RQsI;@Q^X#|Q zh;Oz}H#bd-2?Rnyo$q2sUEsRgnc}NV;ogX;VBq>S2&8W2mc>aph z>V|j8f_N7{Fh|o~)SrWuPN!CbEs8@%JKEdTWgrlt>R8h{pl*7d^-t|H|NgQt0V8ve zA(&c1c%0v@k9qHQAC&xOF7w$d>aUsjCQZLO3BOl_;1EgS;NTU*N&2?=fozEEf<#PO6JQCq%+H;0y_vU82z`*O*49}~s3fsfOaROlT z?P1U3!eJ?WzuPV1;BeThpDt;^g!bP{iKCz9KL?!s{br%K)NJ}KZgqv>-8~m!z?sfL zdPJtv#cB*cxjsaT+!YO{3#cWsX#eb)(KNJUmkrqy@xAL0$ESP!_U&LMbF&zYfu{=h|B2|4;bHoo&AnA4vkUQMehEvT(D zo%ND$RrOKT6w+e)tyOe9c?mdghWp%ZB?;OtH_sTPTL1YDJo`(}5@x5u-N z`(q)`pztsik_{ zg&FHIKxSXtrYY4VYaCWZ_U5Z{+YOqW^B;~J{HI)hE(8&04WZYGwrBl0eSApcwfo_H z+{B=77m9By95eG6moRpGZ*X>Y2J$#H8d+Pbt#!G1chlPc@WsJrY{>0o{!s*^%t;HW9gWTR|)x^J1*njwm+i^5EB8h#6w?zSQyCp6?o#kMzLh1e( zuHF?G67gszYq^8jvXY97^ph?6@8mh{C+;hrg;*5)$}-={^6SJ=>Ki_lXm~xPjcsdG zo>$mL&$rRM zxHnr#hOb|}66gAz@b=RWC6QYx#VnCB(aihnlexE^58=6GH}!T9(~(pj)f@?AY=dEE z^>veFWXzY-u4{e1x93}er8;$TIMgDg5L1vECNW#Q|Kow-c^|d^uGg6#IiLMBxBcbr zgyi49e>az!z<0NJEXLlkXL`*p#SeD}6`4M4rt>j5Wh%L$$6P*&J~HwfZP3GoT!@K? zs0jPy`o(C5kY>^?8MkFj`TapfNBxf8=AS30`-SD!xyS3(3agl>j_1dUD9$ziVa`80 zT?Yc-?cLf1&3WPv2ZXydEyDgwwn~iltIX3)>!BA9P1~t9-GZ=@kD*G@xk&j&$VB@_ zEA%OzIIUp|W< zF8N+B-?j61^bj3-r$Wj_rKF@5UKxRlk01>PBy}V=XA*ms8@=E2JNtn~ zkc~J0i;DfGn^8JV#J9OX+^Z9pZZh@P9Ydyv#LfmP{?SgAed*48m5CsA#mE;k6h97? zzhSOMq`g{E)Z>njbz)`>`Lx93tL)#EW>$gpwO%iWU`fW?ip!1*Hc3IRhtpwaA(zpWvjLzf#DR`F{B3*rQE2 zC-|;Cm$&zp)Nxr-hN2E_;ng^FO>i43M6%z!4}Ew=OFM`IAA}WO4ljqJ5*YqMdit|^ ziH5??{ZMjB0g6^Awcx`kJP4K1j;oU5DClD%i`AGDs_5NKj?_#C=_y_05hn4%#zqux`ZMAy zSWK20WK8JsY#OF~5;FV_#6|7@P?aw1tpSOm14mF-Lvo4q?C&AG9oAhmf9v@Gb z0o5O?n=>dmNk~pEI{Ee(G8`K_^SA-6ku19Iu2HZ2ej`ufb$!g5|1oJ6r*k{`um9=7 zndf*UVhVj;*IAdhV1v-K1+ME;;{sK~sX>OI>*Up~cZK69Hea>Z(^`~coz2{=RU8gt zls>=J>9TkYRVj7G#DoCZ6al^b2O$mns6DQ+cLe8cOL?5i-`oz$8mtYGR@Z2zub26q z{stHPX^I3>XAKzkiq3nJc8$&$L4xRg1$-a>Z6NU=EYqJc;+@Nyc{GpY?^# z5sn#yR25k6r?Q^%PQr$ zrjvQH%@mFdl%*Y>7u$=$=p$t@uXU+jtZU4HZ#BSA;I;}MXx|h6lyMVGQ9%x-c7P5G$v7x zk&h>7T{u_1e0UEuViHC{sVQRa2^dfVnMyFvJakPcVQP+=miFf%-l+g-?C?@yW(IWx zts(!ayXo;nBu*U>z0oCE1rWUBsgZpD^5LuGNj_sB5uLPMXQGf4ed;fV3knZs>@bQE zm%1g(j1GVw`95CDT+=Y{2Ds?Ab2Bj0KR`DqQabQIpxys^;7MkRMJ=*46X!^$;`ek2 zBnl}h#Y|*UkA2515nt2a;rP(>2fAsCzMdA6FF^jrSMkF?Jywl=cOLF?Fgubt*uUEI z%fNGsXrbEdTPt+Y26p@BGC%hKtBL+hE0)k1YXg@E(#%sAguQ&S|xk4bDZU$}tqeB5#( zQa0lxA^2{+(WEcxjshWF$jQkGstOyMuTtfiaRCJ)9%2a{iMhl-;Z}=$m8_aCXI0SPw9#8_GsiZ9MR!3(M3g_I5V{l}>3@IJ0CHRt!+yQia?(C^ zd$UR_{nau;7?e!!As#ww!|23r*xqX2uwW2BOr9gsqHS*-D6fO1wOs;SRIu0E9HpK! zUip53)fDRgaQ5E!`ywV19zQS9TlI0zFW2Hn$Ow@o<;`-@_y{?UuR1%Mm30G6j6;c- zHRhRs+YD#q8*q*Zh-8&pmP}}+3krW>C+1k`d++9JmmN=*;uPO%qEBM7YzL{I5kpGR z8h&3uMEWWIb1t{<-R0ihGnzrGMyVF3=idkh7hR4}klElaiG;6P%>xXB*iC*uCB{o$ zj6Y<_z^%`M4}i1wLcm_LeE};Y25QDc(q8)HjD-Z41p2-8zlW?|))4S~ z8fkmQwPF6_vUaUyY!tpa z?FVr?d2?&2e}iGMnM#AG+nO9|+u8m*ZQsY47RdZ7-JE60(LpirtlHJ4q4IW$wJj9@NPT?k z-NfWO7S;Yn(cs9Uv=GSKP<3l;^i;VV?Q{ZbP&&tVdWUt1?7$ZHbvA=tNrZw3VqlBm zZ?Pd`5VO6T^`pcCt@n?!8n)}z+b>&>DTF|8J=lU|gRov73kF-|@m!qUbp{~bdF@XZ z3zlownCqYmt~F68q;kgsMU71;QN{Dk2Cjh5O{MwxL{>H|nd(_QKRu>aE!S8?Kdv4d zx6N<={w>8C(sw~Fm&C>jL+V%Sk6xF%IaWKvDY+&jKw|WZ0;)cpLP=jY#H<|f&gi0c zn@*i|>Ptu^EX_*4on~C}Iw)I2MRp&WWmb2F@6pNHLfmt*0devX_sAeNM$0|`4d@;gjv*Vfme%Isp<(;pQ@Vo;o%a-+F z9-J+Q!J?qco|!;D372`~lFO7rGX)-8@-R&xdV_dx?|1U8%e|>Z?HeWkyEwM@C{!sQ zOdnz+r0EwgQ9GSY^D@N0=yp8al{`5BbyD3ec0If}+%^%TvRDurpSVoXn7z?GKL6Uq z-wWf1`;!hE>_7t077S0_w%;#cb2CZwt}f+ckUF($y12M3?x59WElYSI;aWBacf#Le zXL$k@h}+j`U2M8=amNtuB600{+Z6d^jxNP@oMV=d=RS+BFWX?Pu{_zhLqgbt#HTfS zDWbsU89!FH>DLC|zr!tGED&s2hWD%e|L#DKM8v1j#LCKAp@w_}_pqCKnB{cRU0>3T6Ndf>g8Xfw_{|)mzcy@5aW~uafe~xoBZ%GK{78$0E3x2iFK!w4Q$jmY}qO z_Yse`;&I5>3{dSyL`1|&hT#lEl5&}D52rv?ua`<0)X9)68&uE9WW< zMXkoO1E@^=`-r+|qMF!u1T0rd0J5T4cwk_l+Ir?KDW82h8!F!cfWv5imNF|hI<8ki z4_v+yv$HWMWyY83HVnqnz0U*Uc(wDE+(M;s(5NKJ@#%Vx+y3}syCtEzo<>6}15c08ycoa&5*bHnn@3+^@7o$RTvu5kvA?FqTj~@pUm>GnACV56(fz?J`2)-3RrN0gG%<0josHjxC9qA}+ zm<#_~!>;f)pmce3$LtrYMsF4idON8titB3PNe|}h?b7~nB6IEIdT(oZNbMW?_?8P4 z(qNPhbo$Sceyc~7%i+ArY?&^@`)I0}x#S%d@#|$#L!Yw{pnCpe;DvwZN3)T+@Wb`+ z0>I-<8&N_oWITvyKk-QJn7eR)uX+Jjqla-Hy1>I0<#+mVaXfCPIat%LPGh8SoBN}b z44_$bWSeg+SY#y(#4!|Rd`r=e7QHDALd8u4=4{UfF>7_z2|#7EgAUb842W+Q`y)>l z>ppUYI|4O`RVWT{QhthHyaA#?8vIZsrI6e1v&jcJxgQ#3Is=B!cbeYC?o0O3vSI&{ z{T^?wEFKgdG>pcLMNrD3->g1&b=0sr2t?+5ht+nsuiun)k+z1C=A0U1)*pcZzv2Nc zpjlQb{7c*R|E6pd4)L>z$&n`UZ2@`#tXvo6ToZm29}fhdccD^G8;v26DB8~wU?E^p zsHGQfr~j$^{0Bn_8HgMzPl;PJh@{r094dp+FLwX218MCz{Zc=tZ(xb}`<%I>Ima2< zbF?vl&~z5RW98Q5&10_HMyF6?fl`b9z{P(C?o!{7obgCTENCpm)i}~McOi;hZ7?%s z($T{Fwzx2JQq{+_enOA&)vGRp7dqKjUtr7ZDf{+CcEl(C@nQ5|niXsSw>0DX_4*Qf z8gKq*0g^aH>P?PpRvhFiIPf_Hoq#?sqh`DD1uW>HilcxMEEi2_azkDm{dn_n5xgWW z7J$VJiXhRcwamFtusCVO5PxB9mhRr$ZNaLV7oI`erYx>N1CTG3hWal1(@ggX-uAO` zDc2H4f%GOt`e=MyQQ1i1EUD(kJ^&oIHu8q0eI`}o)mM#_Jl65B5<7@jEf>Xpj$ja2 z(k_wa0sNXObb%&vu+?1b{09t*!S~?M*r6GpG${nK#&@e4~+QaNK3UH zvD#(~mx(&HC@p=SMkn0`_M}Z5jj154yk^oUO>TXDy5F080@mzg6WD@PyIi9zwH#Jq zd)a82qE%rv(ERyQf3IoanZI&QIMw*(*M(aXK+~4BYkvOxvz`5kn6jh?-_{#$#9O)M zvxpGrXJgung0rS!pH>mawJ+_x8R;C*HXgQ2zChQF`p*9F4W5zAEH>zy@J=?(hW z?|~}DwS}|SdmUN{Acj##78;~-`l5vz2xs~ZlaMjycmds`0AV%&i*7bZNG*ii6lsxaiV$r~zj3c1 z?GlW5_bOTbP5p>nOqJ7yjDYW5ZF^tV(6x0DyS?+~0X5b>| zP^eWCVCd`okp&IN`*%&m$S!xp;lkj0n*KdD459F4AuCKKvg*>u(JNG|!4~M215k&F z!$v@AQ=@$MM&aLKY>@bWV2kJ1{|^U)Q#6RUQbU6TCE$_|k9z;Eu+UWl{80U1sxUf| zgtI#{4kP8_f6D*volro>;Ig|v6-Y<$Wn*u<-A)sP-4DKWU^Xxj?W1sA0yl|=6@Xn+Jwv3$I*CnSuN@)7Wp6Sn698~L$-l%poW4&!3Z#^lZ!Nn5Xi4j%zKaqheZoI*e34(u_Z!UG;#V zWGN4RngpQrXh0!V zta1b$9o-6o3WIUerP^F}RP}%mAY(O!_V=_2Km^+jpHM;;4AEW zcWHGby3YO|>Q!kdk(Ec1>ce+3o+)mf7SpW-apU{?1WS- z7Ydm)zo~NS6xp5HDPW!EyxHlG1av;Jz7qfm+F0EH?_BsCUH|Z8EfQ0VvLwRO(s-*^ z(19kmpW&;)Vb>^&X#Tj%5YUc|D{_;~`-w~BZkH|th_d>1@?0P!n{6CL1AE-y#j)M@ zfp&k~OeignLv`l`jnh=>fs5g++;X54x~O>5IPB5Rp(q^N&uQ#a~* zAo~H{mjh3|^?JqIs$n2Q)W5wg{@*W2gRll)TKa`pm}WmCr@H0HezI@>NCFFgo?#>T zuv38I@c)H7MD`^yG~n~Oab)`ROFcAfc*`~Ru8Ec?8pbJX@p+ch=K^8K%X?b+^!M?9 z$-{>No;|tIBEN9y^{P!HaBe6RN5?`KoGeh^A@;mOrJDqVM})5DRFfe1KIY_BFDe** zGm{<%0H=aQ=%9e1EFQQtKkxI z+vM?a{xs!+p$2{th}VT<&z);B_5!&0hpm95(M);s^!WiMIDdrkX{|(;FYD1jFclEu z&{4Oe$89sqvQTRkC!7G5muUs+HE4Q&09oXJRR@OxNizIO7o#@Aw^LOneJrR}--y{~ z8InbxA105% zjr?I?+Syr(nnG@R3`bfE(0F?`xd1?(tg%p%{qSMjDjp6-rs|N{g2JA%f3KQe`b-Hl zjG*r=HaM_za&kHYf^`a~NvQcbb^`><5*$s>IXae3I-fK;_IL9HybSE#J<#C1IXCM0 zmR=!*+ek!+s;B|rQ*R-wPX+fFOH}Uc^?leEPhaeofX&!^3 z;zC$c1v7T06OM;`Oys^)KJ%TxvZoTT>^4KPDLcFY>ShBbYtCnh2cZnC_k>MNP8X?2 z0wpH%P!hY6&3@2TwoIN_07A9-2$_KYQ!BT_ie6eN5F9k7XgV8D+V3|TR{i3D8e{+{ zDK8@?05LZ%TJ%Y4bt8=0FD4KfQ!ZaFft%~wb?28!Z5C8+9tpwWJ~#e`kw&06RHMK#EJe;+ z@M~dZ-B9D04ainrdYhz6T7xd9s?u z1Yk7|T&BKi$#x5&`PAm+>iyPLzi64?@1aqc!KW!lisT+gp=jLTIVX$?LkmRp7A9MQa*NE+ey=)> zl^>mjEMiPow*t#phb!0^;0mFt&(+RP{C|3T7b~h!p{UmLFddu+-&`y^hG_l-7V8(@ z3{iHZaa;X-(+^NdIzs`&-g}ezbwR9xthp|Wt6n}rBecGN9fX?|RBA~Zh*MK%JtH@l zLPlx$PqJLGp7~`(W{W6Tg&_B*O1OXybQ~EB>HfUvf+15-=6W!DM|E{DmjpyX{jWsK z^d}w9emZ1)5Zi3i+gV+QD+tp&iY~zyEw_4&y2?k3b*_tfJ<6>fXO)v{HFQ%^SBBsb z9%q2nIk*f)C%E(oOxrk~fd&U+agCz4@}byXBxo8i!9=tMVZ8kZ^gbZpr`6*+vKhC* zH$K%SV&XZxjK<6pPbetu*9fII(eq`B5GSv5dGsSPX1+2B}A zO>=wfR~IORZ+MnkMP=bS3Ai4$?Z5z|GA_Mg`j?$E`~a6*?kzmx_lH<2of;NSfXI(8@@*1p>Mn= zd!nY?>?srPqO2Q!Ho?*s*nw@IKy)wn|44H`9X(eV01*#(o%5lP!X{X1lj;9o2gUzo z_!+GRlEcSh)qGPxREJUwj(D`v;znDIuKD4xsb1qo3*pClXU>@F`CiRT7AjGba()gL z4s)(i?kfRM#AKa~ruWx#1V2zsMJ2=1}`!{h~oCdl8b1rw)^tXQIV6E^u6r51#D4y zzV}ca0x_w0-Tzqr4(CXdUt}8hgzn8#$7jMgY-oHxP{@Gt_zo5Ty%I)}8nPR-Y5@XA zVFh+6Ch=f$GRer7?BAAv+6kQ;S9W%v`J}lAT|;4BJ|G$G$z=h~ua~o&bneQ|5s}Cs z!uB1fA`|N;;#C2k=NPMZUYAAf&_^nf^M1O!jDbVo)V@HjW<^s~7(u1dLRMN*RJPiliwh*kpN>F90#g z##?c}z0Z#qHlm;*%$F=h_c$r&d4DPaDL?@iP_{a#*joWB#l0b=N#_}tRlm?bzCC1P z4YJ2Q&B^oZ{r5Mzu!cvQ?E)wwDr)v5=hk3NC|urIqdmy}HZw`N)>37e*XN~=Oq>;N ztuRc!dH|NDj*kC&H?pvy=sgGTLj20|2^g`d`S|;IC8ZTGcRazpMMi5Sw#^m3=7Bk>5P zZ8~tsq-VVO&pbCkmu_waAiAL2&~;0Ye5_j0qitf?-SH+Ng^3<2uo^1v(ej7U7CERx zI7d|-*n<~ELr*-z#U=(;ou2m!vz!m#U2Z|aW?Ou0dT1m;;xXShzL62{KyRLKP$1^3 z7oJZKw^sLEo+4>uSKXNGNRN6R6%1KElQZ5a*Jr-$7cE@I-AMY;r0G`SjMx2DJEn(= zb<9WaM^>ZBe~G9pnhRDNi}mJwh^2MIxK^%?P$lfdwJpMQe%&P^DGU77r$GaN@Q#g& zEtdSm4>GgGO>gkLrF20|@rcXm69~SR*`Cs)?p~&H8Adkck4cf(rlSzJS{{&{M`e7~ z%Y$EUyFd%`7yUS18eDa%&~31<&j>RZ7+7soc5GGoX1pd8aKx-#ohQuj37ETfm>!d?ie&!v8&lyf~56y@OI zHy1-Uauah5P_2d)0;8G2B}Yz96Yn7ogDnWYs5OWn271ZpFNiyA*1hS@&fb78(zDHl z@Sb>8R?QoJwhq-ReS9(N+a4jPbzvcCQS&t785?mxN!>OxG_*3Q|}i&cD$>B4{DFGH3bJv+!s}M z3v>%bhv+#rS9E4*7CK{$faD&peQ3aFJ)=(%Kv!pg+y@T&gz?x#h$lDrumk7<`^A)P zzK~~<@Dn>d05(VaF?7T1iv=Gx3-B*T(Iob#V?6257|ITn?r>^4pNNd0J(p1L3O>tm znld$Nwl9qr$ORdc!<`G-qlWK4>hZ&{Uqi+pWc-SWh+(@hwpKp2*4@LK{gMi6M^2Yr zWzXlw>#Lu{drK}4Zs1n9d&>JN0J&QAQTLeu8gny+JAwpJlK?eL>wXj+R~gHDb&|Xh z@_6u05pO>^_1438trOn&yJ9`b9Kd-kW8+ufQMwFWw_?4XhtkjmLe~J-?hLtbwiKP);N7>N^Y=Jz$ptkSU&DyZ^Gvh!dEua%8!?|af{$io+9WJES3M@O;(|Spc zI_pqhYrm{h(b2!OA;X}hG?pnmwSsw}ka~A@Fa%Jg<-WA1x+KTECimmN+2(I4_Q5IF zsY34MQLpB`jazP8B;&6`N(UTytsHSs0E9mob$70M@nRw;kBzS#x;M`I7~PAC!dgV~wzRaW|F{)715 z{rNw1K;#PO&W4qSg;M}Z@;t2SJ1mYAblF{#O@;BkNo@MgufJ}C` z`vwl<)`P5)>G2ATQ^l6@1_o>>E5hUnKD;h`^>Zo27v%HbSNQj?@^N4wXt^6_VZk^@ z+H=Bt(|=5RY$3`2frBmakkAOiLu(~G{4J0V;FZHyVN<(-k40cDqux_3p0db#DbVrm ziigmWS#=Zr;E#6fCb{Ykd|*^J?jk`V*zoHE??5IE?Vvb5v8lS{oTByB342wY&Bw0K ze>Ru)rm7wOU})doY`9?n47hs8ofawBM$G)FTZNgfV}H_O5Z{Qf)nGH4b+(enb>)Ow z8`8iIWD?{P-BAOM3N2!~6kk)4MP|+$N=+a_^eD`GfI+_+X4P zmdjliQr}Icp)*zJq9VBSQVVihCTy&=hnH-`cqv+J^5{?dlj7ysNWOB-g!x}7?dScH z>f6Wbqb9%`vMT*Nau@g6Y`ag3^jxTPZh#iKytY@m%oF!jNP@ZZ{!Mh72Ha$qU)$o> z_ocT*+K#+RcP2pzISqjX(@`I4iIB9qh8)K7*bvKdb}ic~6LV%am-=Wsbb~5Lm_5+c z5sj?{u%_M8o5nIvVVw!a-tCq3J8jcuQc~JPPCTSC#VFW$GFc+3*P}va&#=ah7YE-W z!gqgm(+GqK)jPb~pt?K6Djlj7A z6r>{8PQg*d${pabql9!xpHbCN8%zKE*^_9gVBc z0Ii!A)ITp`lQ?WUA<^!4V=R#LgLXtFdbSgYIcRJp$%3<^)0T_1@2;+>A*wqP)`^>z>MrE8vINUu&~}Rx6Cf+2e#u6-e0=8_B6gpj^i9 z&z4Of#e0o>2gq#eUw3y*Uju61$58C4IWyh*X-*)_X$Rm~gAC+Ev*|;_`!VsKIogw* z0XrK|-xjmYyW4cL8g4~?=n~CuZ!h)Q_bD8D3t_iST3;ZVeGW#fd#S>6h>n?RljA0N zZ(y1`^!JchWZVU_jsOVwFBOV9jLt@i|5IRY#{w}?Ug z!$p>}&xN@V5x_%R?0)zjHL+XkyY6F69U{?oINb1O;Y=4p+vM_7<1pEE?W7yt?S?n= zh`(wOvderg-lwIzXUW<52^C0qGwqcyMs4*|p_{enx1yi49ZC(eTb44&U4pi`H68(8 zvx4K|t#v#br94{jxCOp*YL#(39Z^>z8ZqkGDLi^MWfvvWW-3~K89XP0({?Q^udeC{ zE9)P#>0i+f{s?agv4bQTCZ3l$Z7H}O7G{}VcRY_k=3d~d2uc^~knRg>P%XEIu!81x z9q>Q>{T$)9$ZA`L)!O7*dhxQpy&*nCtRdm*@5}mmsw1KGu)Q&38k#P!*sxlUuS0PO zF72T)>-+B*T3v$+#9C?MQY+y%JFq}|8zk?R(^4Aw#Grvf(U4IWh{ByRIl9J6U~2k) z$A;CuD zzJzWu5>m%f0A={iXNKHidX8j6!l3{lYN`?aynktt&T@s}4n+xoUHI+I%zMl-Y5mqe z?1SHNJXDPsSoWwjIh8E0c2rty5)^qh0^K>L2}D@+fVVjmhw`n>Y-v?eGnd&Q;bRBT z00whpZ2}xvEWoWTevIg62C_}|G#c^k4<4IEnE9;Qa3PU(YjZTC+Hssl`{Hs+@b$^6 z1G{U5*hl8h4=)6`^fnu0i-RthHhWXT%4jweylJyY0KbWpwDiE~`t0by&o=MtL4eqJ zCH?K?Om+~UY&eO_=mnt&inN=3ivphMfywOAz$KGc!KTHV)qn*X5LrtpN&(~bw6c-F zWDZk&!9}j6Pb*YfAV)(OsK>b$~yM0hm?FQ$f6G z>%6?Y4*P!rMcD%7RzGy})QfBP9Pdo@W;u9F z>_Iz8fArJcpnd!e%9{;Is$pWI70vU*7>L%=Yu(4woPYqQGV5lfd+KMI>Z*--z!iFX z31)97{BcDd{Y2OmUmXQMIZ}rpf%F=%WlfK+1OV=}_s@MSfbcI2iX{{?u5Hge0rXg_CHxv9s*<=YoW{^{_C^xZ~S_D{bK+?@YCqzI6H!xyV zUG2+u{gieU2#iW$)!BvHJ+vzz#-S*>SQ6V7yltL_S59>(7z@@08|_jS-D#z`GII!U z^=9tTsgs%BWIT1cxa=P|dR7VBXPb9(7h+78zNN5Km6lrnRz%aI&13hgL;=+?(qs_m zg8)X(K8GGrAwL~4RddU{zm(YXH^z&oujv_oDnD7XO46tl>yu2%UK`}<*(!bEu5>-n@NEy#9FKgf zE{f}RM?aVzjsY4kpH){&gMXv=h0~7&*syr7v!4wTj+d|ORd)OJF^{f&kJ;+BvYw~S z8!1`fS^9jxy0uxZ@72KQGAUB+*Oo5iyJ(P#LD@am zara9~mlPsHCzI#88-?S@_wz7RacvamZ-25-VZyS7#EF*cNXuh4cSzbOyR%erBJ_qq9?e;VaM)-qS3v7M5IwE{)3^SYlblnw0jGuV_Gm(TiROWFj=qq$?5L!9gJFl?9b9Yau1<40R;jWy zRRaR{AR4LJJAIf(%J1pcLIAL#wFOIb^}MJWvz{(`MeTcuk65cm``6xB_o|otDx$Q# zy{^3xVlh%(cwV83P4=Pe=`r7BqZfv2+=f%=Y%={84ZKt?7_#E!fZ`6QPhM}0zgjpS z^WTqiz-~CmDHZQUxEH8*vlD*lL3Y+o#B92?5e;EtD~NDdR4;r4`baNZg05r$c3O2S z=|r&zyn@Zw$E@nC5<#o6rj0iejo z?_~L}7?3Rh-Ps<>bkyF3<0&z zgYmJ}e9N!<_#6`Bgxsyk_<%vNu`-)vV^;s*rrYdQ&+ft=?zP*jGa+|W2ns&x> zU!BsSVbnd3v(Kg@p-Dl&LpiA_XO;3G`ET-0!%0-y|2#^1d3$ux{V6?RW?f(4n{hey z_Q#&ui5zoDl{9>PjG|eD-1;+VHvnxbPA=iC)fcDpO$m1rsqi^~vxd zdiytttUCKW z#O$8XIm0=Vvu|x3{z6V?5^a}H_htsG?N(N^x}q8}^K~UrJqgquLiVGcd`lD+AGWS| zUWpp^;O9{;RElo~K8KR9`?Gfm z=om(YatdKD?1xv4jx6GRa*>wMvxpF%#!9D}aKw%fK~-9z*PJI|kK31k3Yl+*x`Mms zv;Nqiwd0fh<9eaS;v>NOZ*no8j@sYI=K%k5KmuEdKg$W3eFI%<3yEpI;~q&nXqoHJWJQkC*?9rgZ`k(H?9%R`}u#;m2fk8JLG!ONv#tw9Bh z{Vd$RmnsWwj>gUA@7nulo7I`_KW%UJ!4`!GMOTz&-uYc>%<8CQIu{xqhZz2Ww{1a2 z7WEEMs_OcKR2;V@_h+fa=bTy2Lbm5GZ==bcfjJs^*I01fDZdT4m3 zjb{s8Z6Nal6w1H|b_&){KTT@uO*V=R^L6*m&y7CYd0SZmy#Kfztd|CAvulam7RR8J z_(vlqWR70#HpsQy@9YmTXbxjMX2I6#C>PKtl#>J!0Q_Q29D@T7H@l97XW(-tU98ts zeaz5`n@C&-Z6Zj_@$dA1x}aXJ2mG#s`tHkbU_PV_TA~$HUkn782j=muMeyCB025ah ztC+wF(Qmc|gr94UJQ|hzdb7y$_cGcItRb=PNqwT)@U_*LuYtF{w zYNf4?{p((|YP;(}?Vgup=`CchUtip*q6xEEbzd<3*Clt+uBiS zq$W{FisfaBlMP@X(RmyBido~)ORC^xwM>%Z55~***t93+-1^ca{8^H}n8XuR1FP&Pb&5}P~uR4 z?s@8I4w{Sa*IoCwfSR5Ft?3l3v?HOLvQNF()aVjvA#V&yE{@$-tN$@dZkTJl*cy3- zDS)aliFd01E1O9)q7iU2l>qU;<^o?Y_}N51-ATOM6JqCvfl=_mw)AoT=fn6k9iL>V zaY4ew-Q9ZFmY&>Kb3udz8QPx6(ILh5r{6RI?Xjr^$MPXPizev?*3uibIBv;?)!=k;=IH!E8xSg=FT-(v6^uxxWh%kE@~IV zL}$>$B$UHV)xd8zT@=f!)E$!|@4~MfXPlam($z4F=!-U9ETBsBfxAvK%^m)gQ7EP{+tsw`Jx&v=hh&sunhInyyt6zjeWBo92{9VGzz&K)Jr1u)ChbxQ=`YjXDVJu;2n(QKjxtlFcp5Ps^@4DdSEfQ3nN)e&pOWR!+H( zhBxZYYgj@w{+51YlWXIcKAcl}>%RZmJBc+;_}j~c;&b*|9;MbNuZS{DrLUUhEX1Q( zNsTh!Uzhtm*6P~6EKwF8Y_OvHGnkY_`{tvZ?*VNjb=Am8TVcZ`(!XSPe%hn@Q-`PN zr}ZZ$NNW>!=9WJrKCeNZC+LJ#3ex^iJx#^YdBXbX;=;Xe zM8E+F5+)w4iQ~RBY_+aO&@F;1IH{Ul1KVsBOyMv)g*%@(`OF?=2;vu;6hQ%p$mdoa17N64H*d>+ST1 zNV9(;_dS;>FDDQJm6*(rxGsfY*7i+n8~=nl=mbE5vvoY2e{2@QRj6~o$AMXjp@la~ z&D){ZlfA~JwJvITS6+Cdu}s)V)P z1CHP;uJnd>!>h6rpcAJKl-IXh_H-8QkEEx`7*q}V`-cYjiSK9^g4 zZTnStuFX+IDBB+^Q6Zgw!XZ1LC1M#cc&oO0IIaBUO_N^gxlwkWzpUze-R`te8)kf@ z-O8`oAUPtNQK&FA`lbDJoWY{SFg_C1n8G_x_%9e&_nV@t@be&<)JF z=6vpPkMSA2vp)YH>CbIK6j7VaGT>TlocNeBy@TW>N$E zZH+dT8Aumh>A3#!TcNxA9s|&3#+kT^q{m9h|TG#jZ@>(!6ZcPFl-6AkAbaCdfh zo4orJUgz%2<1X7V#3t+hjPxdWO^>3nknaF%JnM)-enklHr4=w=35X_pan3o3vQ9Qw ztz~|2D3xp74zLOd!(o|w$l?tF$Ou@j%4!ug`6kJASK4unbwr8c9Q9a9l-YQ|tk+R6 zq7pn)U>Wu<<0^G5Z#4MlvDLO%aTg1!HPl82c%Q1g?je^m^kr#;^=-R0F$N-`;inXB z41ELS~H~(JN(8?L9g0R1i#RZSs`Mz1B`WxDq5@Vb&9G}0|8n1uOwnYEl zl)Pa4XBheW54oRQ@yTH7SYD?nrt~0-J_}z03-1CqqEox50qHZzu;4X`xt5T5*!QaB z=dhE}8_3jEy{rd2-nm*x^d>urbXAySDpCa$k-5JMk7gVmw^%$aaO#6k!tu)1QPF#e z`OeL)`?4(HMNOOS)4k6VdC2_zcso}SPmM=C6sANEci43zl z5=p`N3!=D3qS7RK$3P=MM$~nXYCZhcEw(6LyW{Ppz)klBtY0lwFPKw;Ks7 zXDDl*JP$1xL&jIh3VL0;L0v!%b+?Q6FDX0%x#zjtNkg!znJK%eoA0XP={IERyEp|_ z?^S##&Yt}XDsk+BK;s{WE364m!`kzXsxzZ<8}gMXCd~_wu8M^Q)078ma`3?15wwpa zR$X0Dg|(lcT^&BYFZ&Ss@s4wTLWO`GvWx{=B|I;FAV%zn)|kwr&xGE8r7HBfN3UvE zF^A6lALP>)%wfejXxHum1?)Gz;e+uKA(wsX|iUlbu_G|PA z_1BaHhd91Fs)>40RMf~-rzl}@S=4~IeFiPi^_=oq7VPUTtLI%#>Kbh=?A$+`sT$zgW7m!GqGZIWJ++JA z{7+T2vQ%0g^&GE+4D!snqc42|$mnENt`9KaGeafwaWF%rMY2wSG-Tu4_Js!%c0rE# zwFWa~CW~GS+0LPym)P_z-7VCez^(Y6q;0&(IJ$Iezm?pP8kQs*ZDJH;JF&Jkw{Gp_ zR^-;5rb+Io#Gzg%$73;Qwn|!Z@wxxy9kfes$rTr)tengoAse3smEfbEk#^y*m<3~U zO6=0h(alcvlXz*j)RrkdY7P6%kwN7JFa;_-VbUU2JqnM4e(k_f=j`})&u5y=f@0|$ zn5n_;RNM%=w7VuGHQkQOA>)}Tx#x$N$6{qnZzSRgFTTJgrhLd3yNU6K9Hesj=1h;# znZN(kcwxCcM_sftL&+$kw_CftQhgxfY5SA{XH7zO%MnLDlv&3k01i4kf4~9zU-{Wu zyv|h?hl1n}Pu~}Cldpqa!`MeLXj^7C@k&7WPpbvVCT-(%I_I|Q2ZMvkAfz~{Ctlm( z+dfvnz^Yzm73E(NK=)pQ&B;p5peN6^A?5_`OVA1D7y?eL8Sz^5QoHfIx0FDZi$LS~ zN0TFJ%s#`T*$0u=l<5_avFC|>m=847Sr~Q_$XLWero6~k_(on6PnXeY%KKZ&2dEUQ zeN_SjEz27<^sJwRFPPp*$>6<6Bbcc?10SlEMKjmN&dcp&aJv?o+kOpN0$88)X*_dH zD38N-PC0(Z!>3A{1F1fVEN&e^m_VK4@u+=PzyZfj@Q~c%{FWgx;GV^YQVipATt=Cn zomc4UU1b?0EVnVimx7wIF%ga9#)J;?{wfw+oB$43DE~E7TJk7|YpW73_T0*(+9o{L z?+O^kG?R%Q=4Z>repJ-g5)+_-i!B&cU40k}XXh>sZH}v)HDJor`SKI^n_pb+{6xNb zL(gg4;o5_5>$-9+;{Dftu z!%5}bJMqYFgW}WA>O!w`KUBhZaT`5|`0xFwU*#zh52G<(+im(De^S(L*?q#Y-Qfw6 zN-{7T(S4)`UuSZ}K4VX5|J-;@ef2X18B69GOG;<`-S?nA%Qq|v(DsmJ6=UImQo6^l z>EhH_i>WR$LMTc}3hKRWb%T-C5HHzb8NGPYKf&MLCg6AZnBAdiWpR#TZ{dWcBP51M zV05bE9;!qcs8DQ#A)LxBt1-wyCioiKEl7wPmbQ?u`&kPscSYRczJ*|K_UCI zEN6J{C-5ZMr@Q4UVp-cf$<|waRAZQrjBMGG(e5F{>?TO|h9=i*9HSP$_#~vZamgI9(s;&d ztbw~9J%MR4fhZO$Oc-&>kLLs74O<6Eq&JkkZesFbqD~;qvy5)D8fnq@0XJW$k!jJP z1xj%CO&Dtln5y4Hgb-paX1uW-^ICXd`w&;-Wt1~Fj0()eV$wsV0fA%JKGr63Jf*l0 zxuZMj*PpxlwMIt)Y~i3FEJdX(Tdync~_<#<06Y8rLmLqYug=- z&)6r!V{P{;McI9-`Hi^N++a)JDLBOQ`b_#cq)LhcPN(9LtD|Ig^f;xR1m1B4tm@*u znWX;a(+?2=WMk70wO^Hgk2IgtAe@0zj?pf1V?s%&w8J`j%iA7SV9tUg80&yW!Ew}E z8M8zl<;6JDV~Iy=9#`_&kVd@oKH~Wjs$u9uOf^$o2oms)Q6}bZ;qCg`?#^&0Vys2~ zFbdaYsq!d%EuWVDBBI1EeWm97u;g^v`n|(;=nGVYon4#)(|ar*C;TZy{iQ(CKp$u# zC15qe`^IV_giJB0UB9aOQTsnG$d}kzgUIy3xtPb-PWnKi2GLOoTW@p!_g3j#YLiyf;yWr~l6t=25 z-{TkR(&IS0jAo@*Gwax^)q@~T)m!|unD)*0NLWH|s{elF56#WP>;B%g_UvT$@AAz+ z>UyIprUA8#^yVg`^~aWBBRNQe`}k~~&peL9>tJPC8k6d?8~%J|Km(Rn%6m*-+rFnb zL2JS(+>xcRk5cpqDqF#KAl93~Kljju`>R4hLPs<#jtwJdFq1jhxs z(!Wszx2V_Sybip8Q@_yz-ihj0;KN>K@NsdUpVMD$&40Q)<;emFnS{f@oBTOg)8_zX z3S8?nm23VnmBqmmG=IEjgPB-if4R5Thd%tCiNwT`{tQR|Cx5uWPC{N79S#<4zUoO9 z)K1RzMC#Gc{@jlq%6nN^p8c>rge32Z6f@p*uCAItrsU61)a4jD$cahP{ajCV7M`wS zLE#&-Fi795fSo`z9MX*70guLPjTW8bts*ah;O-MwjAlU9w4WabAu^DKOgFhSjFR2ijxyLKp;NOtht zY4W9^f`9gkD)4g+|Kya1Onq;pc@0}E{hWo4x@ZvZ7GUiW=1Vhy~30J9Ad5tg+1j%0fQzdu+K%t)px@)>Af>ZPTqF zg1B}xqr!kvqxu!Y?OFlfZPdgX^p!yJhP)6);*rcB=$!L3g7m z?l0a;*z*&jXu zp@Y*bk1L(?{mf|C_Fr_~qo^DY6$xYH267xgwvCI6($}j9w)NKJvU`o%UV5#kG!FON{qxd+8i1iexx#n zsRQKFT*%eVlwMmT@t%581ED~Xbtz^&O32{IW`{reB_Z@4!FEKgL+6SEHLYMr^wB^U z{PM|BXx*!>%iHJ|nraeXNf`moD=K>I;uM(M*GoX~di@%fyq*sLM%Aw6&ItX3Uu~CD z$B9BXG#Rar(B@zmx=VqF*u@y|FLcJdsFifa0`7Mw6k{ACSeZimL{$;b9bLQX?-CEm z%z6AMLd63)v+@v{U7OpJUmyxu3<3ZCy~Zaq{}PP>LbQsaft&y{p)%?qMZn{X&mY zrOPS-KcbNU!g>+z#xY+R^t}LPft+SWazG?E$ne6_O^lx zLUi1i^EsdmcF8i;KLbdrk{6bF%8-lyriaG398>x#L^|rH)B6gyh&q;w zUnc|dgtRJIz8qmKp62nq9*Nu2cX{t5hqM3$E8`D&D`211uhA?)pQ=S5BLYwoHS@ZmAi z8Oob~=4#=RI+UVouhCX(f1XTXDHUiis&@*-H28iIhBxhV^TdQqx$nz5`O{_#`W5@n zRGA{Bk0M@)mOirE7qi7WBxQNG4xeOmUL1YQvxv{d+7rwD#3$hDAn64++oQ4~6Pu}Jh593s!H9dGx; z9KW2G>HlQAG!AtP-4K~}V3QQ>d?E80a-vzU7Qe=Y!29G@##eUid*;%SVc+@$m!Uk~ zm(M@452-n?m^Hj)Mqk;GjTfi#M_taXYkRsQhJ~zAtiT^zT8XTZ#GcDCPPEPf@Za}- zgAR0hRazJE8AkMF9Cx{Zf`HyG3_QEKbzEnHe@b=9SG zj)MC_gR2}*#aEbjL1tWwVOsD?4#OY~@(khacXvpAuO1M^GNn4hl}oh+b7yiRwlyo{ zPM@pkWvA&3JclP)*WDV8_!Y&_?RT_BRru=Z=hD*xZbMhFuyDwcEOz6elcuk*Oy+nt z=_r;vP*L#ny|L2AAc~0}Mqunzc5S*xr<9{qvxhL2Y&C0tIR{n~5g#AZXB4b8RnD(& z5YZfed05I$X95)DMG#)(r^@X7@G+pxRWv|q)5GC{cJ!2TH zBEmj|Qi|JgH$kBY7IOcl@C%^lMqlzB4~S0PzqZ|~F@wRJp6wC#0@iVBo57hKv$M9B{#2i z0N-7{YT#`)Sc0%v{}MwaoTN=7ZC~>xd#UGrVO6#5g{`&*SE}S4n1uyU+%}mjO_OyNOvrPw+xdBr&ebC&({M7fcIZ)PNqqI_a~3~<1s)%-s>MkX z^b)|Svd@pTB&Ri+Z>R^mi!EWOl}C^0NslY{9bRR2TVj^mmBT`a3g^6AslW{S00BvJ z$gs(lTFA;0^eg7%;tbi0>JwrA>Noj<&7>2CajFP1KD8XFy6jcbKDE-^WbH^*>BBgR z9?!LVWYIGo9rK-9Dar?AY4yurYuxT7y4n$pv2Wix=AU&{kurA=T2Ifrda=rLQOn0= zD7s*tT8SM>{QSKGz~z=}Zv;3AHJ{L!6z4twILK*6H&FoT(Acq;i8hGd&9&PNnpFh{ zp7-I7+4aeO|E0*Sl@;<G}GO)0hjSZl-`pfrZJ-_zouP+l92^Ee^{>O_e ze#~eFiyMEUUHf;-6Ih=p{{Am%#9oFO@Gc)4#`pQ)kCgZ+yPUUwvzI=I77qYv*HuOj zn!qhg)}aO*PR6X(X#zS2!yzO))dY)P(Xb-}4YYM!RVTdc`F=#@D=d6z9l2sJ`d zmAn`?(=YEJt0W%T+l%P{r(e6^?O3Uj(Sq5$Xuoy*xqcN&J)i;r0{h2HYByK1##`?e zkT@s4R!OUu7|7EleZwCc-i5HDHtd(JNO_o)<0)=RP@_P}8;n&F`xF(g5t&XYiWZ%b zLLPhHH!`>p*lsE%6CuvVuxy}fw3wy8EB8kCh!Z^UeZ4WMl3a1ORbkGvC&}=xqi1*y z=IsL6%Sa?rr>3MOg^zYYb!yq4M{4VQi7$8Z`EI(uvg}!{CUJP2jK1wIsGR$bxd>ZH zEHCRphK_;5Z5y|G7=|!WTK!g zlrtqU>6Fuax9?VocpoDSyC3R(F3?o3P{YG5#l)#~i2AtFEgKF=w$aNXL?VFQFvkNECltxR`eWPi>zvrR=&`m@O>+s^$h z$!%~_4Y%0`{tYhM>;2Y{yS6Kxs=ANj+@PJHq^0XvoaLYW#=wyPNK)oH49mN`&=sut zV}ZKcX1&?{cCuaRZC44UEJCTmEI6V~fOMET%^d(2)+I@^lE=CdH}DeAZ$;ps$as@L zv%d0C8e)(|Bd8XK*neoc(rdp`^$Zkxs&Pg$63Ox7fW;WvkNvjl)6667S96oKvs#2n zV2LXW94P9RVMeh;FSwO~vw72O{+ct=eSKEkZ($Hm?P@DYnGJo|SBFcG5u*;Cvsn7=v+Wgc)A7y;+W*vHvZ zo9oMCT3X(4#m>9k8}TP3+~fzUDfby=e|DC#6K$AQf_@WH0uHlpuyegn(EBlN^z4?0 z371iM&jl-YsMQ~!SqxX%-<*th1E2Zw#ai;XIjNv~-B{DidNvdKWxbAI=^p9@j&G${h1~ky+KfLOG527;s9E(C;2)ATDf>m0JHGW`aFi*r9Y)ePH z9^f?vhZgHct!zYpVv|U1V|oEU>9qNlK&2q5?oDItPdxhk-rSZq*$O1Rp9Ierd`c#! zk{8+d)j%Bx-w%7AAY^8kB2{;y3Bw4Uu*bQkR^xhypgg8u=gakk$ z{BF0GG?wJJ#Jjf~&oQVal>3+kX`b&g#{kzV%+gq2=ZBynINBO3VZULfmXI~SFNnAu z5eDhGJsAfOPoJE&Pa%P_cn=NA$;97oNj`!)g`8-9(c@~It~*cT=%sr^!WhNt7%i`o zZPMhg#&6qa=--*aNXW;f!Y=FVx7+#|=j8hMBiSKg5^u`tgYwbt!R$p56V?0U?ra~_ zS#p?rkB8M`iNxIR^$$7jIFJqtWsFm{WYXebdyj?-$aq1{zl!JZAEsO!hs_o%DQ z>%+^yK|za+h19KOs1mkh*9#=zguaPR5UwgBlA6lT&Vo2=*gr<*D*?() zgpppHB1WhG46{Lk$Is~$GQg0}8rY~hj(7b~ zpYk-_V>$y*@MTO~LZXg|Z^}njJkNO-dA+6@BSG?iCW;Z; zxf~NttCiFI7yC8#*x_Ivt9Z6-WS z8VvbO&VZ7732?I(D|*Rj@M3t|Y78^?QJcezr~If@#1_HOo~~D*#?v>D+!Xf$7ss8b z>l%$fRgZW;wXrQi(If(4W(Pqo+cMHB6&VvTlJ7x#mNwD~aoGonT6?%*E`!@DI;?g^ z+c55+V{9ilcELU(BJ$Ee_xoNZTMu?bugT)vL25hPX*hvdaR2wMSiA5|0@~hnI$3&h z)`aGj^geYw^s79#viM3pVJj`IXNknfkFUy5hBFRPI*;S#dMB}BKy{y<>nV-=V)jMuKU7@igb1z%pb4055L%dg`}s&aJKFpyh1 zR6f3G{thnlGuwpYAN9V9geES~++S0Tdi{9L7*vnzu*K*emzjKW9AhieXLcLm z4mZt~q8kiFaoYe zKqCmY$SAtg$c+<|)TGu&mF%`ZSkd3U^&irlkhO7A+ z=SqGcsyFIP9Dag1ouBf1|sPUcfJ>m*?uCQ2! z`R`FlM@D2{8*uZI-IQZ^Q=gy+Bl8#`@+jCBEMV_dc3s|GA0{^2J`d%VAVb-1?FKH* zra}X^!#mR3$s6-};AW?)FX*2GSTy6oG(YfT zy~Wb`(_eCxuT`%Ghi3Op61oSvLps17{>H+VVaqYw%U;3lu#=|xw3^IrLu`5W4@Yl( z=rdT!|Bl8DX8u3qz7I121b1ZuC+|Suuh874C|v3A&o#sjlAGx%m6&$GUOp-P8#KOOfB9NW_%eUI{va((XQ(x!R1jT-*9P-J2 z&?Jx06zL{ikQv5-#KZaly?Nr16XiLG-0AfWD{hroeOn?`uXPZEIEp0pBc8G*sRs9x z(gqW070_@3334{6Kh?=z0H@k3&JTFKyWlYSbo!C|)h+8YW7oiYf5MhUgq)@O5`@Ld zWs>jh_P6gP$Fxc+O4s&zL_KxAqY%6;lhh`Xz2lc49LY0N%sgwlyApKXYh5{g{rw_Y zkebMSh7nWn)QcbLDtL2-z-_mz*JRE?ubQ7z4gdg&(@A>iG;oQWx}Ec$gYU^ zFvXm#l0OhncBL=zBp`XlnA;*jOdZb$oCY=p_{v=?*$7{Xcw8sK!WIVidOYRmSjfMF`QhFKHXO!4t#{d*Q@-8ITj^PBJx%Dz1t~Gy=W1*_wYD87 zX8W_oPJ8tZU+QvKCVo)#8@fqs8)`5m7#H8QE{?j`#CwkW`lIjQ;vw)R&+c!!QQM@0 za7!!(^9)EpMuq@jXrZo0=zGkSg=X!QCB?Uf_#75p-;DQ$j;hVjnVWh!;Jm-UTzg;C z8kxZGS`KcnN3VntO6y#}0d9GAvvW ztX*k7d=vNqb_nlel$oL9gGul=X8y}JS36Xc)(#T*#t)hs?qEp%fiU7l2fW~1fYaBVDTdH&lMeY&X+ftUgMXBvM{(YCUwC&f5v=UGPh{tPbTao-9z(1BgX7$q@BG&Le_9gA-uMCCd$bHSo?1by_ zi_?Ow8ykiK(s}o#ryS+JKWpzUS&3hc>cm5RIGb_b%rM71>l!x5rtove$=QQzd|9Z) z7`)r4EsH(q;n@-pgv0YAO^jCwIUUhPmD=RD;%);MI|GXju;Q|*T=s`j5az%%chEgn z?M9Ep+eu-SFq!7(cC+7V1B{5ghm`xDaBut8D1ZFmap;o6d08|TF^y0|UB#XJxdbJ1 zQK2?}-m&cD%n;=BcqFpONJ?9GFg?#$YihYt?RUdK;ulV(zmN?6KNRm?)^hX~!pRs>}EIG5E%G&x4ka_E(7r#Se=QG0t@ zcH%{xwY^&WP_s`zetEQBHl;Jcocot;BvU9=WXjiMZKfIoNHU>o$y@GX3syiazta0g z(Yf}5*vL|IW6D(j$}qXJS*}d9x1YYuJkLw))s`f7WYl?CB~MIpvSI&R6@JFp{+nQ%GDa9ZiIS-f@zA#AB%o8$dfa#Mej144~>4c&2k z*Ts=Js`7<7YHzyK1izv0HmFyk_KR{gIF}~U?`^zvb?7*%es^)G+#pXxf=BmWc@vZ5 zyZk-Q#xpJdeo`|skZPdVci}JxYZQKqLS*B$Qv1Gh-sD8@omQ(p!!GRs>sn9}Vw3(j z&gl9AxkMQgqq>Bm`~@%&aAIIL6M(z@cfVlSdLOBLRfyvd0TG z^Ni(a4q$j!d>Hp_=iY7g355BDMin`%)&y3q8OLEx&pBh|qhWeO{cBhCpG?5c%Pq|D zM8~p-oE+NNL#+k(uQ`ya8gX>v8D`-ct?_r^5&d1Uk@I#gv;LZK2CGOcoOH4G(}zrcaisz%O?(0p>2^T4P;d zT2(FW$Z*)3)6`ztRdBk6zm!`T`(e=Fm6B5b7>)M>|2qEeSLd80XQs8gU#DeN!;zNr z7&F$Juy%uh-upc1PbaL^%pn2AZUCu9!JBa9Gu=hmv42*~`*Z^CN^bbOkg*jWo!v1a zr*X?mhfRlm=tlwUi~9YJ-j>7zqzHoVLIR!sIP;oeS=8W`rulB9=+ zF?eGd+Rc4``}pbZU{!ZwV%1t&7%XUPqb6hdv16a~R#hvVk>e5oHMI+v$R8ghM_udw z^>xqS3B)dt|MBLF&He4oC;8iw{~xf;$fx^3kqItSyh;5!q~9gQxWAG#0u7zkY;`fE z9UMr#1?0*^Y8{3EMhBv_lug1rWy{(E$JkwAma7;NP*l+L%=rBRjpmh)dRxQEnEIt0 z3ZHfSCmXFK6c!nFBl7agvlw7b*=nO1Kw!j9u5zXOcBA=6@TRr3tP&1C+w0$N{bdSF zE;b&nKYO{ql38T@K2ew2^l^IpLgub>uNUx}oF8s`8jClM&h%AWYk8%dv-JeZLl$wi zQyQae;hA0c6yMX}tKbXX{p|p9VMIHpBl!#PoVh4^Yti0@nTnZnue~h*zzydr|cKE*-#d!)|M5a%N%7_R;tDJi>M2 z>%TZw*lmem;6Ap;?(od>XtaqU?cVqO9cL1b7@@%t>s4HU2VqiUOB!2dwZQAWhrwch z5&RY$Lqo*1aIMJH2%@Ym>Tlm&McLr#UB9}Ar9kl$gv=fw;(Mn2L2H0Mym!oc)J>i* zG;4fGbeis7=TN@+_#y_c!ZKVF=rf%rCp%OCxCbRO)%oBL@R5C5;a4f2CqX|_Q9o64 z1vM2_C&0SXyj5=mEQ1ae;r0qefkArJAUNsmIZY;|D(1x&SOT~ATD6qLbQwdYcngj2 zSwO>`mMK$D+wD50AgGE-jqJRBxbQ9I_;A0*{#5zUJKolPdBr-3Zf{ z-9L^O@;ESH5G>}>| zqsK7OICyDsDbk3yZFmZy@Hl)8@Zpl}&R!yP&t!xY)U>0!8B|A{an;i7y@Xfq#llC@ zFG|k8#|~V0Ko!{MN%=z-k7Tc_ZM4xj3?!{N zZ?Bj~P6BK&yx|OYM!eqSvE9oDh7=&mD@l3ZK^HJXm_k?)X+J_Nd+e&pKd%S8bU8L6 zVL_G87Fwp)`njc=uLdP6(-q|^RX+1**B&Vk(AZGfp@ikR|FA+5 zyAs(=$2wqy`HuV;2aD*hnA>6Ws?64#GkZ49%_2jU8v4%WYfmnY+Aa0hV)c0SjbLQZ zmpsXD3)J3#RuXC$)g4y1xmN3S7T@6E*wk!J$eD0|Kt+*1bK1m&4jUWWZhIu}Efe}W zF!-7FQ`FF=c?W?rpY6C=b1H`=<9rY%!j{!DLRQ%t^(d5 zn&tEbxj2P52!T(^Rh;0OQA5}ftF44hyL#E;x;0V$5`~TD(atwUkTA|iNqt3;t^YR#M`h!)i=Pk6<5m4P(O&=**etqd5JUG6K|stkzJ4bX{}|Y}StN{3Jxy$`7tSL*Pglpp>4s!YZF$)kg`i77@jbc53@Cjz z#iqhc()6-jQ;+hEg9c}b&GSRbqO%WN<78c0Ii1Y%i9N*!iH_TuVaUCy2AY!+7C%gx z?%l9BBuGcQ(!Y&KeVn(!#|ipTGJL%5ErCtYD7Ex&5%{>dN(aG(xv$3G9V0?(g(!Zsi0+QfMfXEZAn5e@tW!b{M){IQ`xsCFWvm4l)eH=GlW~IzXA3 zI^e?B^Mn{@TLzZKilEnKpzE^5f6`mj;=JAweR%dx47=!*!q@gDb=yamkc5a~+OS{2 zbk~qkFM>cfpB0SDpsn>K@;M#MOP$3Bywr*zmUH>Wv{lMuw_*mv+pT|l zvx`nz|9G?M%OVQxcFId`O8WtR*%{*@D3Cyc zr?Hdob~qDH`8loT7BC!RZyFXT+|2XOEQc~a+m*Oi?lU(4L)^wOX!hQDow`_!-Fr~My~5gNc7gP?(V4wsQ%s@4tcQLG08ss`?0dv+7vc_Nr z{hF-+Pdt-l4Qsue;)GiQg`C}?6rvd=Cs#+nwX&sIk|1z%tYVJhZwI{aKi04_yHqfj zTFv(cNJsE^(in-^q^4~i$Y5VEH}r@i>kUImBhFzEbc#5Jl-YbHy(gg*VAob6Ibb_y zkr(7JfHb0L#C0`t^ZP~Ky4>U<}I&8nY z$#>Gx2E_iI>c0#ZX>Lda5I!l3o^LNt6ZR=UQI3?bziW#xGBybbBPa$bCFZhf(!#EG z*qzBuE(bpC!$C>1mB6MiL*3vq{NrW@Jw)P5OZvcdL6C&9NsW%M=0Nsqqak3tV3_7~ zwK7}O^}b?9n|sJ_mJ2_{<(*DPirAq`&RR3S3X5 zbpL3iyJDM;hPhF~=;g^cwe}Gp%DQ9C=8(Iamh(2ap#Q;09IY*XUEG6i<9;&j|b;Vdga;ER#x@^Tf&1?E| z*<1hi8xYUm5W^(V%`}yn+u6f`*@{e5Ct}lQ#-T!ZbD2G`nF!*h-jNt0HgR;1hvcdqShV!(#<008Y zknGz!1el90CqP$;!w_Y5Dgr3@tt%b0tg)Z@O9QDRXjSjY5TBz0jYYCx@zc%aC$~}- zT_xo#Ib?H6zx(&0GZ$NW^S7YKV3+T=1)1VMEXaVT!{)hzR^A)g__8BK?lWNM$xe2H z2Enx9mon~&RMj2ZV}SCsBNW(IVYC+F2^Y%^7rO$}LUC}|-d=nyCr;EiopXp!^hWcz zsskUXbKj62q4bmPJNxSrc{ zVOL|P8vA->f3!{VdG|)m{}4ojg%SOF-ya5|!6Ob2KGtR1qBtwQ8<=EY+5b>b&0I|O ziZTf8$?ky9?StRegbL@3|_6Vi{w#4tTb5!2-d()Ft(rH?bQaBM>kKdwV=ae{-@Vi zzUl#j4{kNSp3;Qen(EBSL#ilzr6~-2Lk^X&dGg`Uw>T3XIk`gezABw+<#ukjJ+XEK z`L<(rso(HjWis|QN2hwA&ZyIrpm-jt?-Aex^*T=o}W>YU3+KMfC@$w0=7i}jo4^gC>Tk-`*q+9HusHl%)?jLVwUyC~P$=vQ0a z*8OBRd1eg|;=;A)8S!km8aa?pAHbeqSav zjBl>({+>4s4;&_2&tOj?euI9Dn&i~~6gY2Qax|VL5zp7XAI1lA@G}qC+oy_77#Q}J zzkGj_nIE-i0;shv0>23GEY2u=FSV3z{X(W;m2^Y}_sT=54 zkX2@g&j&ITR*8g=@^5nL2J(uO|7h5Qb+9Xpm17Hcf%T4^3#=WZ-3~jM$NqcBB1nb} zVJsx8ujN=bqj-WR955b_Zvqrb7doIp!1`0?X1j8<>T5JWeNPR)0f7G;g*Yf@9X}q* z`S4r3wAisNKd$)^dwqN5Ou+AumB1HEIqs0d^#AW3*8g`IbhCyzlK#EinE6EJA44%` z)<1^g3#lX*d~Kjrl=YS}&HS=mOc7R_dd$|_P%ZM>-$f_cD~McX^oArGy!nsC*L0JS9upb}!pZc{@&z$X2pm7A zn@8nbLwtZV@(cf6#nt>BhAUak1^9jIS+EDnnE-C#3H$D@@0wytKfDEr=_=7flqvQ5 z-*Lu#LKbho1#HHi+1xT&CN?Xta?L`a@;*KUg=7<1=JbHdGDB|B1lH6KQW%2J3_OiWVW{4bti zRm@XnkuP%KB?$u*UU%wU^V+Saus;McCo1H8F@SI;WmOOOhKxyupFZ|3s@=ZzsS4ir zydSgM>}6;C+W?%V!Ni0_fEZ^2!~r=|fI!Hbu7j8F`-^Du<-A|!_KyWvg9+OkE$!O( zpN7@SVpvi2-xlHj{)ZpGOXU4}`OJnUUK)nX2Y6z?x{U;fZoZo;)w^5e8f#rTLbAOx zZ&hF%mdBYd%T+*fwP6DO2Ym&(Y8&MWeObutHh9G$CEYXuCD_dQd-ZET{mQ%so?AfH z+u`!_IeI@N?K?UqmR%6tx9rf+yGz013mE=BLn=Pp zGD9(vI&FqQ5rII`+<80PE!^EH?l%5z4RHPR0oLF9=$TY^&^BO~(zF zfs%W@3BARRlPtXAPJ3@MWge5zP*ZPy`(%^-sj>ET8wQD8o$VYS2`B`3WwdVjV=vxP zuUGr-J0sk{{I3Z`L1|FmvxB=EnWLo%&4UIH+kb0*PmAB@dIGBLU@0n4l2*R<=#>TT zpfDnj*W1mBR}R0W6<=WXR$fG80OC+|L!N3TyY(0F8bx`+Xp(JZ23K7*E)F@@LkCAX_{Zx+@6#mEVNPb0Ck)hE+7R}gzORdQcvvgwSZ^af@O-0q zI9d4-0S?S!X>v`B3+cML`d8bN#*Sevk7$RrpGlEPl~JGX{rp^_H^Ch1F>TJ%KZ#2} zbM`UYGHs>^)){&vmo715OnGp*MfD%bLDl8S$^tlxWPz2J>F3VQMBWuU<#52x7ciGn zt9d;PP}i@lUd3o;CI0Bvu#dt88>fFA+`(I+OeIsMYM1A;>4XwkYYaL#RyXwES?#5$~nWv%#Nr_vr)0g2$KcjLmH98P&4A7?b+=^kPY zEH8=4N}+3!ZVR42wVg8&3D4{K54xF*g(ZMgpJ|h=VBFZ|Y4B>E|0=)1-)b%o^mz<5 zsrl>Zf~Wkc24$D|A+Qd@KC+Zu^^~_yD!?ZM@aIea?|T(qHLw{EWe~f%aLpOQRswb# z${V1tm7lX-X!;1WWp3O-E;q7=ev?pN?Y93nixGi4r*IeWBI*C<=xg(;cxMvG#<$u4 z#;^!6(M^y#K4W^NMOR-=a7ez(N2;gaL*kDn%Je z04YLZ5J#mM%B2dpq)3s_2?$~6MWs7ZhFl^-5NW{yF#?%E*C@Rgk!aw8(uoobHRS$3 z1YGNub>D8D@|3rH=iBG({o9{9GPSOvd{xa7O5^3sZY{jCB-^R$;?`^D9cv7sO&uZD zux!Uu6fs-mSIIvay3smI>u#p#+BO-xrd^EeC+QIar!#J?O`+VGVEIw&2m#-qokrMP zQwP9@g#{$8wENKJWwbX&Dgj(v=~unb0etR=Yv$;4ihNj&5UeS^W^2%vxk)Xi@&3C+ z-UPfnz(I|NRI-8nu1cPBdAv|&S5q{!6ViS6499SeIB2n$UFwbam-H>j30jgpEg%WI z#U%}FwoqCZ;JAm)(O5{wt~?Y6z@p1>8@f8$Q%`KY9MU8edWVF%NM%-E?Fx3Ja2|Cx zqDu%hJ#yW;CQAP|aEK+y`FVTct1ug-FTTE#@kTYoFl9F28(nM82ZH6$WFK&A7_4+f zv5V1n#1DU#yY3o|cAo1iF(JX=^-zR-0`ytU>EvQYhXG0Cg;A=6URU`8hrCV9#?8^v!bDm(_GBnSMFF=sfKOU+@a5HMkp*s_ zG2vtGrELwdPDjD7V%Z=Pym$d_=h6&LPmNeY)BUA0%UAyVp2QuzG=uz>#N~#PxCE2j z|DbS3vi1}%!<^`_e;`qZL#MNJz_W2TK+F2Eh^DkR3M7n`ES|jG(Ur>F?eR~4a`f&O zg2x!&pcJx$f~q`hzs-tqU3WH@=+(;^5T4wu)KuU#^<#TTfh}bOg=PIN=_w!V_KFXm z%77!r6>tk#?F*(DXR-PGvA>W;{xSLdH_tz8CLSX$JVm4$l~geNAo>Deg(7fZa(NN5 zRU1FYsyLFb$8^ylASiwh2zpm+&Zi%@FYosMh|rcE;6bOXxzv9aufZEp?2SSR{jxNpQKow(jp5(VE~OM1EQpLl@xnkGIUFBm2#ts3P@L&nf9EV zMcI%vfXAT>!fxKNrgc+<5HF^K?>UtCn>@%oUeycsh+~(?F;Qm^=*Z3Fdbo4qEl-{u ziVCqP)|6R}Fe4*uslz6FuhY6faD1fG$yttQnV zHK`CvmOtbI$S{1y)CX`$QniJI=t1A2pnV9JF8B}mk;Di4%+Q;yxNV@gRv zN%$O9&2+<55d?kJ<-WWsr`=`p?WaylPE`YNx;fgg(j~k4a1}D#&&zlXQK^l}G@n>o z;rS?yb0gMwmeiID&mUD)u%owVxv#dXeEN%syz$^$FuS`gstu3{rOR}%^&`+th zcW50K(bjT%E~TdgEZ5~HS8&S|Z_LVkR zPr-@*GR}$b`Gg67GqEn0-!@ZMs^a4s7(;z$Y2{l0Ntd4(TMp$uwLFO%0v9@?*vqWi z9b%?eK5-+Q>0y>#xIF>-p#uO6iE!Ohd0E{~#=CBnLn5c|vpCTlGcfy|{C4c|4!XnZIZW} zN@V7b4I(vr=#PM_yp7e3%N|Pg1`c_-@|?x?FjbKnrpI48Rk5OY~ofoCVamL}=@MF8UX& zQ&1|un95~PoAps|ZXE!6ttjJ(l9LW|jeotbyf-^o-mW!#?a`>~5M$CKqM)a{cu!;9 zFaKDU^d$szKLFomU8%}TUu`i#iDKW-FB1t7Y{_j+^vNmxWpv*#M#y~v)N)Q!^!$lb z)@cFbJQzA#N`WUy3ro3J7%+D01FR)kTLP*73MSgSHX2^u*GN*uUOr4LD;_}+D(~?i z-cSoRM!+e6yG}lnrH0fV<^faeh__5E<#k6L!Z&^JlzSvnZL@x^S3tJHyQEc7}mBXfUT4P}Q z=T9w;sW^B_Cy;Ky)fB6t8Wd1Ab32?OAE$`=PE-l{*7Ld~vg<+lKYYn(;p|WFuTa_4 SuovM1pDP#5jj9Z<$Nm$UFh1@8 literal 0 HcmV?d00001 diff --git a/fig/snakeviz-worked-example-notebook.png b/fig/snakeviz-worked-example-notebook.png new file mode 100644 index 0000000000000000000000000000000000000000..7e65991aad1cf598c38977b4b39dee2195e726f2 GIT binary patch literal 75758 zcmd432UwF?yDsch9kDkYQ8GFfl#;5F;=u5EUeY z7?44Tw1kqPNQi=f(gFk$Awq-@LI^34_P+s~+27v#?DOq&opb(^>q3*P_g(KQ&vQTb zbFa0Ma^|$d@}--WE?Tr``N95 z+Se&;_M+{+ubU5lTw*3OIdSXruOI*TLrGxDPyaalx!Lg>@7_G6bkon5R0WBAx>V=I z=ejgA_H7Ow7gVlsBwDdc7p$%}sI%>86vfuZ`u1^K3+b~18 zx*h-0fT3Yd_6IOlVP+C}-?Z84ID`0HUCE>=SRG}p8)qzI$m$SF!Hg-#y5|R4Uu2>Q zs(wK&p=V93DT8-46q|8hK-uY;u>k?Q0@K6cLCV%snf$kpYbi{ zixg?m^nLLnc7l&`l%O4*$h9hKPz_MjWs`{zwdsXW&zxO5H^hQwUbUG_e;PBn2}3sw ztLJc~r>bSqgrzzmbY^DKP^%y;!w$7TH))mGxl6FqC@p_7nIQuuVs+Ur^$cAjc4J6F z8`OX?RgX%9AyO~Am%aHh6D`&T=*&!ILzyvt{_x$cM);c3GtU>>ucAwg7?!qLCI9bH zSK)aYU}O>6IG04RwhXb1psL5$^DsjJFJbC7=!5lW9ni_2l+g^ymcf;nm(V3HS}0>P z9CNHFdeuoN+NilEZ)gI?(+P~K>czF|1V_)zV!l*-$1wTceA+jb zjjfC_k%-5bj50$3Ergl-m$9wbicr$P$_E zNij_VN`fk##mjVZwoWsN(#UlC)Y%BtkwKMi)FBg{oaNrc+(uHbxrJPVpP}7_SP837 z(1msMVo7fshFn+J@>XLB(kWTlfzZh>pl=5{3K&q#eyg2YNbA~WN}h~4I=a_?NHgju zOJ5BP3foA>A=Q!7+-I4A8fvJWpK2X@bs=kJNPUD;MT#A3fz+o$pj`uZQfH=Z>Vr{K zD=NQZK=e?MIGIMGj<6no%QqUdvF{w%FlU)HLn+u5Vka`vGcc8v(vm5^6vSLa^gG?bg}!IkEz{CwZ7FJ!JUbH-xL8XjS`gwiXoJF$Bap|H|o z7e=o3CRMpHbc<$oHuAXtXZWmG{~ALl>V6HmPK2WNm2W`-xj39}`W1G;IyL980EH>j@1B~dpbwq1gimq1r*i{r%KAZ94ME!t-B z?7K-syx{Jj3swbPs%wR)e=B`!6S9=b~{_j_IV|4?<^42}`h3HoUdkmttk%AT&mr zo&=Q_?BakMm06$_IxR%U8(c{r^l{EJ)TMECq}|h)AJjsUu5NIpI#X=GQ{+R}!e`%b z4l8B4-PaMSzE!!pu~qhpFSb&tv!|1abAD4RMfoSpo;@mmzNr>^`AH`Z#*j64HIb`J zJ%540Q`v>!k*3cr3J7j-Irps1|0IGZ+KXlFhr_NsOkM?I&@N`6@dQ)vF{XeM%&V#M zR3%2!<*u!n4yw4pqRB1z+0Apf+)HR+JXCxk)(uY<>e%idH8IMSI(&38R5Aiujlx}4W3d}1bzxnxJ+hq<1%~^jl7KNwa8tK+rR{;DPA^1TkW-(?L{VnL%1W;|G~qOC=`#^$iK3)A3;Zg!gmQ=PMg5t6 z?pu;`^YY8BuB6TEdrUr~#%E{R3z@mBuPjz%!z)vYdn7lcqK`2tdN>}B%~g#X)+1)M zD@&KsP`X`%>D*WVDGS~P&yAeO&@Up93)9gi7i-595Iuy-73JC?EvBa>~7 z9|N1a%^DsCMsIC>FLr&sK=;!UQhZrlWw8;Fn>A`sTH{E|+gr+DfcqL9>+Y3}YAUO@ zNCaD}ioar!6Fg@j^w&nZl?e`01vRG2Z^m{TlqfITfUEo3cVH{1W}XkG{hiO=iX?Ug z8P(3rhUMRwKSf zcOy18%PpHNMaH{mq_~`jr`;^l-p1cjq@@IcbC#;p6KY>#ZKa8I&8E0`?*y@IMbo9# z$nJAjVPrdIc%IR35uO#!n(6=+&9u=z<0)xlaXfZPbVA{mkgXDVYAifU7IaT7-Ulk46$P?{TL$Rs_?+#$!m;p2W$sqS>0{D-@>Bg(ov@gF(h(-3wG!Q0x`GhDUESaS zU2PB0h}G}}tx;dGG*>0oPuZ6G3dFbdB(>pIb)(|?np$(v4RfT>a&HwA=MGC(J*Jvi-Axq0E$2c!7>zO)xXxg+wa z(3`^@EJw2W2!M$BJ*`tU0}mZulP{-VcuLyR+$FL`VRKlN8au1uvQ5yP*^Nd0a$nwY zid}2=DX;AzD8~4EX>FVDKr<__o73hs0i&e$meqZ<*3Z+8>yyn4t<4~mq2f-0s56A? z`j}7;njwR}!G83@SgYTmXdtaTJ>Ep!iqiNl(M>rVR+i|#zs{RbcZV(^=w1LJK+be( zLwQi6G|gLcbj(%uGrXj0@_-{Ta)$R)<>e)eX;AWHFfZ1eZg!-I;_rL=f@zy?&3Z8@ z6P++mLOllc6@?AO*!4C}UNng0%jWkK`S~ z&Nb_d#%Nle8aHfN0U-xYv5N60X2M$hI+xxKF=|Gl*fo6 zZzf!gcN5~8iGIC>J_WQXGf;B%)v~r0>qc3ZLE*GzyJ$0KBcz228gLlIevoG5D6btb2EMci_NChMG{)bSG>dvp1 z{_rlIa0<0=*e|`HD7FSS`%~-|FJ7yNOQ_>ax83CiVex)4PFth~M2la)W9}+r>6yccHv$ANq0n(?rk3X)msBDwK^DBRQ2KjeY4F z3WG<#Og&EU5@|p18Pzt%im;jw^oa4S*NrFj$<5qm`@Y0w4)jMP|$aDAnzdBmsB4icc$2Pj64x(ztpYuZq z=+&L}A!sc1q2Xc67VBw_o#$AUs@iR0yGORMqQnakpEFxt9A0~hffV|AO>nj~v;HK3 zOY<4vfz~plF^4>Oo^0McJKfcDwNEbdyEg%gGGn`z+Hfbx`C=bjr|TAPRS$u_8C;9CxDHmI($l}i9sn(mV-(gMFek-pVJ{6C zx;B?RvY?c&+&#;g1iv5Ih8RiIgUXFgPE~L!_UT*PC}{+jPTM^!XCj@}Qnt2sxQJz{ z+m}mS!8_@@eP{=7p*(|8k2tCh$WZX`k#pX|sJ9)F5Y#Dl_d`|Iu#FEr*&@hmiNl?|Wj4U`F^+8v=|g8+HBsqZJ_lXa-zHLklV1xbBNrf zsA!p;uBLI2aS~;VrOyC76=u%lUuNZRX`9ONE-k*Vc*OrsuXU`cHzmre6=KQYM*DPdPT{@h5_X50``V~34zi2331t$R z%Pr`_9DE0;Wks;?`*!icf*jx53wYa?(E5GZ#r;NctRKwYVf|wN8;~gk< zU8RZw-*{eJjP#NpXE1yw93U%(r*I-qWB^6iYb95hFWa!vKS=1Y-6p*@wuw*er-#Jd z9o1MOz%D=-f6eY98sVp_rv+|glty`BB0FkD_nlip*E&S8#ydtjr0kpkSs$MvKlZR& z=~--v^ZVTnGDI)%V`rXm>hddpYu?dM$=PKm?h`cHaPL0_Z{Z(HQdsg@ODHupq%DNO zvXoJBiFLZ02f>(fU?8as+17ZitSwZf61`>>--+lQ5xeZ2>P&BrOc5gQ@JCp6A*zKU(>u(!46hQ(q&~?ty zGE(tTeGe~{Hn@sAB>YMpa!G)s`3JaBJ(#y_aP0v8r}!bpl0gU^dc95ken^hpP#>Uk zA#(GE?+4_5(+1VWEAhH1gcU^<2G-m_B0f0pmd;LNDIqY}M_Eduw|BI<9EaO(u@+~S znEPt*XwkfGTJ8_m&{n}?q+`uLU}m5#jAi__*qzsTGbyXI!!8yhGk>nasO)fw@IX8* z>0q_1IKX~t-=K=FP;HV3JbhnBujlj0+ma0zguGYe*n`)3ntv=2V2N`vU=I)jQdZf^ z9gZjyl_E0M?0SGM86d6)wyMXn0W~H_4&{uzccjtZ3g=Q!y^E|rsjkNv0oRRTsc1b(QohoDYoTjR(;37)pXmI zs5DgiU$W}a(onLDQM}n#2P^`Rm z*WKGl$71#eg-?)$aAQ_mg$QHG3bW=YUWB9C_Dyc~vEhDkc7A$aU3h&Y6WtQ`fmQD( zIsAwj*W44GVYq(S-$w$kB#=C!qY+ca6&|pID11bpAFBAO*J>iyEM;*_c#7nNBMk{c zUE@0KktN+E;I2x)KiNMqeKOjEzt1lAbw}3k(h#1123lk-817%|WtZeiN?jPdQb%KY zXESeCS|)lXu88`@34s^Ghnn6(CO$0ao#fD{cWJ`n;BCp#Q6zuXuZE0-fUxbG?_VJlz{Dra9l6`hC)yyp74vkgs z@>oTGd#hzC-UY)ABY;#_F!r4+KZo6|GW+3!kcjwfRUJpuHbdWkS8u*YkIL;=BF2Wr z;B3Y5VO8M-Ena0@ti|kqhzbqX*u})FL(nrDyO5@jIwNHKwdsHiwOR+0hc(Ox|(%+GY-+0%2lAhCm4&(#O`6=!_9bd71cJPJT;N zf#9g+3O~U>qWmDJBCM}<-(-A9dNc*{Jqt2Gk1}hvX%akL2H)c4!nEtM0OHYS{VNc$1o{AkPLgRvc=v2H}xCdV_7*pGiNEgJt$l*<2Ix5itfnyq~3AA5Qirz*;xCGxh@_F*!mg{s&W2_a(P z2!fNgC7?zuw1T?y@z1Gh+WM^Lacewq#6s4-UmDdhHM2+j`c6jr*#Yu4N1DeS{F1aWJ6QIu5LC(gv3-D+@+u6P+$yyQR$a)|jbcLj1-^_uQr4xm zLLdK&P$}Qec4E}3i!9#TdTc)KG`}i!qRBOIv))I{%3U3b)PXqR@bsmGmf9)RP+ajC z6}Ml^tPLc^as0XzcLOuf6_=DP5uPTOP>+juy-VBY9#y$ZIJP`Kdg?N#o8T^b9T$s| zb7YJVON@u4{8e8M@z|*>^3~nCEbf@xVlAk6>hUlm@c}a^Hu&eneGQF5?KlnvA#$G*1vg$mTHB&P}YIV_)aCjY^Dd=%cZH>KxWMzgJP?onw4!YM!5Uzg1Dzfl0AfXp(Wv{nuJkHm)Nfb=Geqh@_2=xmPK8Jtpa<9O%uO?g1CdRONjWml5q6>U;Y_ z9wr-wpr<|Do{+Y4ce>)O1W6`&(KRzEYVQGwWX;?()I8Nkw8idYDX*$dnSBN>8mGT` z{1suYW3Td#6;T*K40!d~V_FcHv1jUsh4tv$M_LP^n$bxjIH9O6^1xaJctQYNylY$B z{i*ztWY1f>=U2Bs{4Pxd$LH;)4rN}2UFc_26OuRlwVrw7)i3&67G7Z&7lMuc(VN}> z4#V3PXBmm(c&g9mS%UY!bj!c|l=cr51kLy#HB*vwtZh6Wg7N!aYqrp&av^oH-e6FG z)e4Lxf+MM}sPr`kl`IgJY64_1 zB*PuejP>i4Jxd{adc(|mlDxaS(4ipJ8n9jNs0cIL6Z4AMj`-!aZ9NhufV)fvR6ZH`~jKT!2;X zgsRopGzBv-G}l_3cZuXgv;ISK!SjFyeCOa&g4Pmjs?koTFwO+S#$}8vd~Eb>L6)Wgrw6)E(DD4O;WGOYTVWBxPkinMSC=oRNZ&ee6O1w78RXwDh|(> zJDCKzPMEn*7@eq5PYcF>Z+5iBoYm#r)LoGad~`jUN}uhG;&fY##1UMd?GtTQJ6v-F!%GVVncQ@qPa7EJ8U# zA|7U@vqQ42QQjk~$`wTJG4IPm;NL&)U2Bl0#Yd`%>lM4TzBmPo^R5(tWpLaOmgV?x zuE#u}$B55;j<>slXU9m|vB|s8nY#m>%_nDL4&ZNBbNk#26S;3~&vk$(Cbd%s3RMWS-sgsv6R9`FEhtPlgy`%oN2u7^s>^*M4&|i+t5XC3Vj=?}Uj^j&-BsHT za4F4xV8GGCPNXFM;)4(qfw+I}7gC9dssYR-$X$-11KcGi2R z-3E!kCo{lrhKW!!hb6ak8UySgc$qOTMi-3{L?`i7G@fuGw))gTLe%|f3E!TXz=`r2 zf^Zt80oldVv(qr)mU_z29@*Dxc<<$m6SIh&qhS2Uy}U0K$Kd@WWpx!~sP2UNt95M9 zTAdBqWt3WXqMw3n{Gqi%$mbNA$B7x7P?%6JqVeFm-gjTUo{p zSTa-9zIQhlWN-_legX0>g<718Yso3iCqN3oKVsA@Z2Uo5KY6c2_CEiVj{6;*J+T%$ zA?8K4^EY+ikAYM@tOsRdti3zaq(X#lc2b7W$(qY1(tCRju3jrRNqXi4s_+K%g|8s% zy+RW-GwlR}P;QxY+n=K799@kd*Q@mVouyE_0KQ+B9IV~k#s@4edNW5WQOz_dLI!(jZJJF_^>h@Q)gEvG=Hm56yL?1#7;(XoG zX9RLv3d?!|u@39@QBN?vshv3gBT&1nWxy!1SJw*lfJ1gzjGbm~@-p zR>gi(w)rIcouTC69$-Qz)5ZWV%|hLo>6A1<%tHfG~+GNmt`S-69raC-BaA z+>WDWJ7!rX?7JaH4x&!wFtE4s9t&@@ui0Ke=I)n74w7qLQM1<|2nFKRL&2RfHe(3V zaY*Qb&ZIOBPRs|$A+}G z?BE3JHvcU=;ncBjLwQMQK3I%sRy~pKg*8@u3;1i1k2C&qQzlvxg&30!^S18PXo}tf zS=Mb~ZuxgNjy0S)xth0@xZ~6*gl$7c;&Dc9`I{S3R@lxi>~wh!WM{&y{h_(;<&M72km14=+c)}`_gGTk$eP7-UGbjbY{(~ zxZ6H-)F@Ak{JyoW_%W+0%bEsKM2z$Ij*67wwYk&Q4UyAd!3fjVx6JEy4@b#%vsddl z1Op%|Ymz=9^E6=+K6jMm&)=Kyjl0u9w@`X@E{5YfWGk`cCmd11LliyKDyld^9NbDk zmUatC?YQR6hgbaBDKtoVlC!}Fh?D6)+Rt~dWk1|tDiKUchO#G{P2{tk#`~N%D}3xj z`qPn(`&+|3SPCC88WuA%jIZ;8*+|qycG2yKa+sy$CUyGz^3kr?Vb+z7U%@+ltSs;t z71G;*N+Q6slJy85wlRg2+~K=}w#DhU7}*)D&1oU&2`=TB9nrtmY36?;RM z`Tew>$a-W;mIxy3Lb>#7W9df@VQbYr<^H~T-G(R)ns1+x($Vz!Q^o+84ZSR)-jHUf z9+rM@e|dKEjpoM4X--zb=HjWG)D-Eo3NT4lzRRrA5(q!4p!9HgR=B%r%!sr z`tjO5ueNHmO(ARA^0fDE>az`RcEh%<7%B-|KifdyCjjf81=FZ0zKZC+vtiBmr(K#; z?Ilqq&v3#U&C@#^bV{1mawyDSvKoIbv1=)o4|j3dpk!?n*8bS2J<`+48T~Y$ zzNC0ZX$8TU-DT*jY0GZK#UN^Y0*ks)PP&buTuj2SW>nkVDzbKgVi9}g!chXEiseE< zWjEkrhxSU;sUTA7S8(;=TL2h|aUDap$q|EXa6FoAE-`esJ=k#<)7rpt#-3$2AfDAZ zBG!c*`D};YCbp#?;$(bN7E}H4!qIZVNrS>8O>YmnXZaoJ6=>2_>lDZi`(-;YPpz~x zYPs-+VoQ@lNQa4RyAygnZ1?E}F{re+pwp&v+li^o=z~UWFQ>c*0F_RmDHX9Z8c<}- z3=o7Hx5hV%&is|yd0l$ii8}^Yzj|-6ba8A%ioctB$rVw4S8{Hdt9XxCaUtz*8TG%~ z3jMbp`|oy7hw&4{aR`0hxM&3{6)}^En3tDr?Pp%QoR;^8wk7F|4Eb!XyH23r6AhkVbI(Ptg)^zZMT zEqPpLLNwODfAhqx-6z9!rT+cp^QNP&Se;m>8Pn|kyIAI%$1Zjj|6QkrqXEqs*pBgZ~tGE>WMu+R##a0L5QQ#`?HICY;L%c%%*4e zlE9Ng&#|)|gcXF@&caOsfxxNFPO({k=|QwfT7aZl(=ZfVYYPITR*d5UGv6y>$fq#vCd|fhua(tx7k%kHA0N9KTS|V+dNZ$~Y4ZCW8 zns*T(4F;^-?!tJnFKWH2xW_M(2tO};QP3xJ1y96yjxnLO8@<{B2nkl|da(L1dzi8880ag*vVwQ zXw>l1G>E48=m70oo~;Ky{p(e}(|FNr`ulGB5BxqnnxLI7e7Orc^Lp~lzP9Uy1Wc`w zl|FyhzivC=d(JWGd*p6q4A-&c8EE}J?w1bsQ@8)aWA_lb8;IOwsCw|<6%jkVo&cLp z0AZ!P6X5^$1%DlIxJ^4TUgV4D!lTPru44-V5-_-z((^loe=q5LIP>Vg`SDgJIv^n6 zZ;q`Td#J@cAgn)F`9G!f1ECY0NEzjWDZQi9BJQVpryx) z76aG)es0Y9kIrmhbqVo|!8fJp?XYA^4(+DLbMPv5F^~Iy;Y>rQ?;eoH$DG`aUmxw`VXaoEfR%;5&%s&fvVK#smk*IGfy@B+zkfex z4<&o6I_plzt2%>8lf}Ix*EZfqz*v4R23ETP`^YpsHx|juLbUNXi9jkq5uh%DJ1L9B<9Wyhr zl+hF){NQk@?#cKVZf{?h#mo}qx@OvPBHY`GOR#{rZPJI0T~q)z>P>M)jq|IH+^_XE$Df-s-OUz&wXlmi zIm!P^CZ9T2`FDl?7rg8L!AE5SiwU6GwIS5eqi#5$snpT|_D z6csFsmSoXI&6zVv%Yf{9548om4~+RTS{-B$^y2-W3z)moXDl`0o5t&|VEFxLeiayu zdoeA{;rb4AO2WtJR zWtE*?SF|B;>NeEi$X!-TS8VZ}QuU)-L*fzV8Kr0!d<6s#q9q*I3}Tc6CnaWjCh8w5 zNF$PC-|7e0Y60^LT*ZzDZN8x#xBt}$ijIp=R32Imlvmp?lvnMMZFn$L8pRw)s@Idp zzY1PtpnF+iPNeILtNg!ysvDq+v|K$sy=J#C@WQCMfqcI6zZZr6RX@q5%^M*v;`{z9 z{mWQwZX>-#(raNVlR4At8hvTJnT4dTH9lY9V=me_5cj85$aP5GQs}I~OO6JT+al60!;YwLY zYrVva$RDb>P;N*0fuA$UlB`vp!f{5-p1<5#6j=EOx)8t1~?| zesOD$DBn~c7<%?C7&OC?HsMDh(w7MxE9tL-o9pP+!A>+I6z$uI{r(pzrRKQGD`O7F zI3j>Zg~s)zuM%($m74S1n4Z*!S<$9t>zV~#>my@Vv&T8*?xv2l?zKdf57)wYm-IFN zT7^z2;w0N!Y{4Ve-34eiBC zjf%^kdRx$ZfFnqO$Zy?Gke+g;48RZ4d2TqGGNx+ITjY1=YpMw&a*xE^%~PSa~$efC!_S(FNx;5nqHWr6`KLRs3%R~Cx~#bTgX|ZXuXB( zfp5r#v;&+vfBhcuDq#&w7lZWsz^9}Pn#z*06cR6B+&(??;A2;C5UE>8+|fJjN;0py zQ`|!~doX*)vIDB!k)XCZ?Sg$B32A-#T9kiHT=aonIFXoNSNPf%c=mJpnFXFnOE#1F9*mBtyavwcE&w;k*h{I+ z;I(=lxqE&DfE7=4O%&i(a}+b%7xhP{UR0YI#nYdLnyquDWtQl2;paw%n@4yNLfl@U{Qas=RdILVn7sFyF%n05mth1@v`96_ zhV*3J0ujFB;&2ePiZQI8vGK3wZ8g8s$PHr#i7eY|fmueW-X?y8Xw>udH^)EqKwr&& zljZ*xlMU=!<(^a2zk7GKT5;aLFQ*l{F$6PwvU)X5^4s83tF|47XmNV%A)PKxkwT{| z^#J$90>H`3J8{GTfJ(!&H;9~y*s9660I;l8%=KVB_KTZ}A&naeh;Kwbqp{(kj>ZK*Dd zF->2mJt&^s8|_jz3ZyAfSS*I=K@AgiYwkwPaCQyuhrcE(V`Y-g_yG>~s_fjLGIhY= zs*!m4%BEQ0_|!DN#vt0B+EPg{h#vB5h?I9Q6au$q^Q*HxqANx0)V%aTz*e6BumBqO zU}GiNTa`1`LE#7(cfbxQ4qp1g{Sr}%r#Li(m6&vOpLe2_<`i?e`$gM55LC@kYkRQ( zh>3h69OBmeXdTd1lZA+5dSUFqv96%LDf$Ti&*I`~w3kl_nfl1Wd~j)%E11?EQe-M< zEGWs00VgfyWy4<^D#YAA2h_Q2N8081IV}6(#QgkwXS<5?bZOqvU-_J^J^=J8&s5!5 zFem!Fzr8>`;yi#oEUO!uzH*|C(4Dakq=x|=_!A$#@+x#2i-ajlTIvElJ;n}53t-<& zjPNNOo&M(z7FA>Z#wY_x^LJUGOdt4#?)9kq!0}ct#XU;&eYN6d`!o31Lp$wJt!3}@ z(z-rC5)LEf(7P(NH=lE7Gk-aP$at3#i>kRD$NJ6J9+9Cp-RuQ&kYFw=CCSoxrM)pb z_%~8PNPX_}$$e40t7pf|_rtcrt8=`3nC^rXK;h9(jz&R|O=XXimi@T+Tk=OzzzCm5 z0=eb?iS)Ra;wn~aORniz5fXMgEY zr{9<{6q4`w3q@PTX%DQ1$Rt1oKbszzpZ9U##FB%&F-N za6UrzHoF4H4~Eu9S22Epj1*1 zo+Hia!p!mh&OQgMzK6jl7i_lJ6_vMpA_$w0Ix?sSJ8#hZ9U~WkT$|NdE^ zM-yU^zDw-i7J_~VY%b-y3hZC}KQY<=HtQVuFHrJ-x9sx&+oLSbk0pFO4P-V(gRRMX zI+7xqD*@f4Ds~N!5hWS%;@oq)@Tw;TEoe%PW9BUW1Iizu~ zSovcDn)wot-V*ujq-*@+OCafpKTlyTb9jvPX(50sg!T2Ftd5KT=VU1WmtDjL1TMV- zRnzH;s?SX5Z~}fD!Ul4-0-nejn=^pB0`y22;-Y#=;}NHJ3G| zw{6%l@Ef05saKCKYfInbD5l3QMo3>*bk#224;woG>)$~EM+|e%6zRRI*bqDKGp84P z#=R(7{-Na>-x=~!QZbO=QKa~;f45^@WBCVD0k73FMUjGk*}|q%Jq5>)5aHCNC@Jp^ z4)kIR^qP}xW#4yP>m$nZ- zs{BLx&&fRi(|BUd(re1^t5@pYA@u#;^Uu=?FePdZId4+$lBFvb*v=0`__^8=ER_r} z&k&7x1gTKSf%2b)3xw61Vmc=eS}ly>oNN52lJdWbZP`NivHywY1kk3353hRxaqr1l z@F+kmmpV{f>SIH(b>p;ao^xc<8~9-hz2H3pxYtZqRM%9(YN3f{JJ&9QF~=4EBmX?Acgbx+v$Z*6#g!Z6{gt z5e$s)wVnl3;AW!FhF1+71AbHoo_Zq^qsGNMaVc%{V!`?2QfP3;`}VL*(j(Jk<4T`H~=OZNsdsK!Hlk z*Sl@Cj`=@SSFf9@3h;BWxb!CVvK=YmU=C4w^*@ESR3aQ(<>PyyUBAdu&~Y=JecDVG zVvIewnGvPFS(o~tSPrC80eZyixF&ugx9nF+`txVk>rwQ1<^o+j4s2QDR~$R3cpqaa zDq#(DUGsTih=SdG{&D1PKyl>CE2YosRs-_mF3K+N8VbEX3JW2@)$^Ikp#>E2BXWE1 zLSCjq1^_WHO5v|xN-8uFZEC(l%E8(M`+HM|O4S=hJH^-?{U)XD!K8YQ8X_HXxW*!l z%o*~bc|(@IC31W47j194k~}}ouRUE{00uzJZFZ{Z;Rb5u z^4O&P&29#?E2?xJH||d=kA(s}>;0$3XjKWZ0NrZ3qb`H zvEzR{9w1~CDu%D^@+rN$;a9qezCk@n3tasCn9pwgLendUYkUV(`b4f<;T*9|UZ6n0 zy4&G%{avNioHKJog}qR45Lkl6{B(SnUsaOF$cIt1(NeN1E>1u2vV|y6%9&p@Tga>a zH~3Wxkcztu7&y!&7@2|LhjbUKXEJvU9-nSpnN-ndi~smZ0V>(qs(Z!Kv;Gx7FZ2}1 zI=G!>gD_=u05uLPG9+!c2`a5`?za;a5P+2mjb>(j zfTXF)OX1Qt4CG%OF*`Uzf-crMX(UQl*5#7OheUzOkW`4RiQwBkvi5X=MgPpCRR_kR zKP7!NyVpg>C3u-ro{joZ@`1!X$v(*dXx_^OSpErKMA2HdkMN(gB>2QeD=KNE-Cz3M z&IDHOj8`{TJv#4o&RkX-R*H`6sJweAK_Xu}sH75rIZMZ*2i(nZz^@H1`s49@s4qQV z#9nuyIIvmuAicP>v|Wgdtm>P(SzCGCv=dM#9P5asIY!xJw;|d_<9HN$2cn-57Yw2~ zBlpN2NG|B}py%H$;5O2cmaMf28(1H4Y_NMHa15?=(kQz?kL5o*d zV^mg}EwrdyXT-MKhF2eY7O{N>DOTbF;D{IdO*VW-b$0sy$KIRAHGOXD;``KX-Mdb^ zbwJD1)>)>4G9zhgDGCCL%1o$6P=+KjlR%Pfty)D$Q6S7z5fBkDKoTHR6(K@^C{uty zB7_hjgefEeLc)E6bPwmA^E=bN_uTvW-TWm4lkf0;*Lv6UJnLBk#ESKL?c!frdolrr zVDi%Jx)1hT9O}HUH!V19JrpIl*iXX0QkT(Wm|>9{n;x~~)wN{w zL88R_!!4LI-<=(!i@uxE-+E^;>5O(i|62tI=t(N07lNgR2s7^PvBK7BnTfUii3=T5 z1KLAg2i!;)jzYxlfMM*wn}0>q82w=XGs3!RHfKJN+@alOaWmd8!vEjZasO*Y0XJOe zTZjH=%?C8g;_2XlpAp%;`7^&*aoYY3IOOjV86)~XQx~>oVD4jV2kW(&gQ5)qywii0 zHw6E@LeT{zbQtyJlSlR&SxC3i9fno;eiN7x(N)=ZiA_U&=i_4=i}_0|geyQE&q!f) zv%-33xzRFMGJiID&xiBxW}-!`%gOhqp3hz!@W(g$9>ICfH1RUN__ASf6!=vfZ}?`q zLuJ%Owm3HdSH{aGnhM|V^nNSByZ{h}Ix?8h)qZt3B0k7#;@BVJ?{roYjTc)NDbaDu zVRf_cph|aM2Y{OYjl{J|WdC{HTA*llq0`d+)oR*uoaa)CDYF=WbX7Nn9_LEnB2X11 zPM6JLR~hs_OV&1S;9NGg3)+*tM@strJ`u z3~dNV*TC11xrjAzDdMoaG95(V@XzW zRmNSe0JS%l4E^KQF!m;&6)K9Srfc;kZ_&S%9n$y3g4_F;`VZK|jeX`y*YXblcbhJ2 zt+ma^eL1+?djIMkv~WYCFTB7t2CY0e*norPlg~!drVDztx%bx{YnN9GTkq@qmtpJc z@q>S`=69l4*CPgg*(&fg>8h6vCl&O6^es4}zIAK02Kai+k@&LsxK9xJLmNw*)F9Di z??4gXQWvLcA_|`POwiQ{jf%p*Wi$dz)=Eae#rf#zTY3)%XBw&<0K}qF$$mHlt&fvv zPEwb_VSQS4$$y#F&|n;-RCwoO4(lJt3w0OyANtoewY zYFwa-E*I^b@NNeSkRNqK4`)Hgz>=#G7s@@WsCKVeSHaoWefT#S4cp^$*2Yp9D;gT= zdi3L+;P35lsKjrLxpzF_ZlrEWYyE`Ot;_wMyou-WqfmzBUxTlVM%FE6+Dq+n3XwO3 zTMsBx4uSIY+|1^HRRYT!&^oKgjwdK1-&T~EOoz8V?m3U9S7`PN{=ZY43$d4gcKe!; zndqO6&aSz-tk7MD!z14kwb|&-S~lXAbSJ)JzTpOb?Y$k5^1u`M?jt5K^sFm=fCZ;4 z`@qYVc}YgAtE_UZv;jmdzZs8$KI;yj;?2j;51_0tUpqse#fAX__l97AmRka(az~Kp zjJGq+w`69`SE}mRps1#Pgq)wCll7h=cS!?-3FwDFFeEQWJYYf5Pf#bnG8O3s~ z74g;B-)JyCqyHfQWh!%WXN#USdT-D&6+M4Zh^a!To@RHPcwU0Hs%IlQgoQq>YJmIG z|I3d55XoHq>Gu*eppvsUd~!;+)1<3mn?d(jcK`U$s;nzYfU>E_0GXLc2A1vbxW94M z-Ja9^!mCFzQLL>KUGdUwX18(y-uWiMQV(|#Q}7p@YH(%bUj<6F36Z`%HHdn6t|K*Q zvo%x|W#cOD|MzFbVDG^jS7i&uOG&VtSlT@}=RcGdspZ2BKbY|=w_ke$L=RpPgU%i3 zcz#fJ+&{HvpaEVy$^f7jl)kVk&H6QV4W|bgtmc500Biv2Jn0nMg}!0f{mg)6=Dr}? zmAGDZ-5>cYE_G)Din(j382)W)Q2Q!15W5y*AAnv>v*!uhi=m{~$*bF)Uw=33~VL;2;3D;O=6>P1el0y@NmT7oK1B$`yaIhQN83O3&#{Q%mJq zCDzsTYe5M>pcik)sP^V@OPo}m6LQC8e!nXnEZZlr`M3JOCYch$pZzS?>fL?Ta0v6% zyh2FAWLJCz)T@6L!BltitfL8NZ7mGsEPjJH#Z<0un$AW>?zAI&tbfv2kEsSywBb1o zfEu)d79*{0>^IfoYQ>jaR5W&&);3pE_@4EJe%WNi1)Ov!frJ(Tl2fT)Wm3bD~#LQ}ClLv>NdjM{syt(JekTCSDaTVyVDd3kfr zi!!ZZbE;tfzH`Rwx)#~IJs0b}(!;`^0LZZ8JQA4`ckihgANz$~p;ERbB2o77z~7`w z`0D@>7YH_HCK%U@wAA0*Cu?cV`$>2BN3@<=5yovdslla+(jyr4hn^v1UcKR0Mu3J= zx-+6-UA-ERK4RGU2e2a5|sY2ym;uf zpt+oY9v5^a|6iReLj zzk$x6@Q;!{rjJxcK6nU!ubDiw^ZI*ygZmq2OaW5Kgvq9=0^P%MvWkkzU6r`}Ma2kI z7o;15^inUS6x80{!$Z6UfWHafqj>1wCIGG+ z(Sz`Y2!J1ak^itZ+}M>7rGeMp7zBddDPG`z5i-c%Ajn+aOjk0i8<}MkH48a?>^y&3 zNCA(})%>*p@dl_e7O5!E-+3d~!@$~GT;b9%muzu|nQQ%^Tf%H2ACip-dXt;@UO+xM z798}9_%l>4UX{508NT)zZpHkJC{PBcB>mnRJFj^6&q>tq^MI#r3Y6ZVZhkM({*7I| zen{>(8&&6`%7Q1Sa=R8cG`3ec{L%WMHTKKA zp0WCGOXKk`Dpca0Q2QM$)l?`(%Lxa3{nr}M=L@aMofP_pk&dQsWyUL33pO4kW;03IjNnA>poAU7jE-sAo!hcmB@ zFN>rf69bG~NR~aGRYu|`6l*v8lb|^l@^LChh1x(?Yj=o2uPh;gO)NwADPA++N#1?* zwf4Ni*3JuPsd7F*TEbC5XTPh^qT_Pw#Z2$+;(Y-Rye5jh2TWo`gMGE6Po|q@-X?Y# zEski;-yt!&U6bo;-|?DDz~}wDAp_V+N+VuySW9Tvnf`Ulq6-;AJ@>4tM|KI`gp2#< z*XyI6_m*X#hjw7YWr!RvAgrK`pZ}rJP``t@O9(cubRfM~FrJSf0D$foW2@~kRISmn zlfh+_KQT95Ts+fXl9jBCZ}KnkdYhp%$qZEe0pa^8@MWrD6}|#?=Fkh?s$Fousf;d4 zPH)i1ef~^~XBwy7XMzSuz0Ae9U%JCvX+2RXtvj&&3EHB6$C_~9?|^i|h4Y!cr2zi_ zwP%elP6yh`WblC3hasBrFSZ2fYjwunYpU!sfO7$Dg$H-S{V~_48}9@KjKH*^Az;t@ zb^h<|9{cy^ihlq_^?&nM&FRUvS%Rbd-N6XmVkm&f zks~LUMv~3IlKb83wQ}X}D$9Q~Fni9!?-VC(s@x0T{cQ!S zEhI16kC2~Ag?+WoZ-0|&N*_qstAa^=aIjbNUFg~_Z0$6ql&wi`*9{jFpc5r`FHb~~ z4$A$uo<}!HcMq_Lp+`JdX*C6i0oq2h$LXq9&W_c_QzIObwnfpD(rvG|de* zfeuRB!q}L|mlcdLEbt9Ln50|Pai^;RpKSo3VD!$(*Jmsy_-{@e41u%(}KhXNWZ#S>st%2sE_; z3jUl;Gc3=Lsn}KPElSbH$M_*hP;fu`F0VeOlH2PAM>q~$Lw>OQ=su>R0i z|B2#YcUpeNsf{F~mrEa%t<;6U3nEF<@zy5BKg zC=h8Z+1p_{6!RhFd>rtMWIZi3EbF2QwN0Sk7p|sz(QWSuy4Go;xuh)#DBLE(=nj5H zv#n8AEJ!~%BXFgUeI&~E^0*z+UmNVF9A_QI>?b=jb|V(9Y>v}>ep za_8YE@XOuXp)Klgm7Ww7HGaI_S&Sa97rTtZOoq$+FC(W|-@LD!Ec05v1+3Yl}?=lwP9z@ZDSW*s{bx%KirhoDeA2{#TNTcxf+Wy*`y%P zGljk5u1|@fMa|^c2t%Fk$d+cFDpnoEc&<5B6ty@>EFubt3_}T98|JaA^m({zJ+O{* z*yhUcQ50uabn9N7HJbE8J=d06&w^GH8=2E+YWTPERk-2%7Og3O@zfze88$nRoF09a zP%gUg{`oEkN^@<)uj2E6^z;7mzE%_e=RxwBiP*n5Hhd9v@W1uP&e0VfE)pCoyrGeibwd{hjgt}pnrrhiUP)_d)aM{D~UaO3*t8a%v)nx;>$PkJ1&i(9s@(+Zi8f!5)43(a%% z_3(lFQiq_-MYn1doc_`iIf~MpR+%pj+WzcWrBV_#(@_pk-QFV>Q$6Cj5_qyCcbOWT z&}Jr!?=_7+$jdJ2A0wGhr#i($14kF{)4gb~d}25~as6_^ky|!oVE%$xZKhWkp@5-~ zaR8@W{9(<5q#R%o8hlq0Oh6Fmnp?N6owwdMxpR-+Qc01&Nk`wZ9J7BlDxgYO2OPQ1 zxUGTnN=Y+3c?Bxf=-H+Vd^aemv2PPX#BN78nXIEmvBJeVX*gkIumZu|lVq|Nd?^?P zW(T~AU7((|W|f`R8~a!6{b?t!K;J349!@z0Eq-9b%-2AgBxVPNLf~AiaDv%;EPe1L z9n#;i@J%EU?s1gY;3IYxZe%raS`=HP&Z;kzw_AlGJgHW+Q56-@EBNzf+Rsv`Ln$w} z<4BT2tJDN)V{KN#Ewz@g6=i`OFSBRt*b>R1QWHvSV_gY5SjF9!>QNm4sqC*au4w-L ziUV&`o_AntthkFRt0z~$cK6|z0}#bL`#5MYrv|HcU;3obK0`QU%u5-1H~UzRZNj=R zneZ|cZ&Gl-Nc{YCr!?>&KG+^Bx2|p%dT~->G$V1d35(H(1e^$n>70Y%^0EFQpZx{N zEz`_{n6~G{+p1a{{EO*`n7e%$HRLRmS z7Ex1=@Y!mFRDpZ9*bs-^%SLFdAG+40j+(<7So%H>hqzJb1`|?fvZ@y^JRF%=&hwdq z*^!UKpr&0XxrKNS;>z*au$sfyafjy@*nP0D{WGmW1dJjp^luv4tN zjju;(u5mx}zeJVm2+1cPnsB_YeGqWMP<*-SdBD6!w+V-SUkSb1tn>Z&M#_AgY{VG# zaV8_d6_c0*pLUQAEJMmDl;JbfHw03$aJsBOnSQ0cP5c-FrMTY7Zf#QdC| z4`*PO?WrqElZB;?CAoAA$>kIYtfOXu_i>2Z^-(T{h_L<+9BtVEYeMCD@2m-(Te5Q2EDIpsNQqLk)tVKvsCu*HER z;hlM8=YcZa52M7nzf`|7WU5i500zED^(F;{ReiwpIIMbOu+n6AFLvv(=~kj(Y%sLr z+T8M#L3y5aiSOmb<#&{Ne}paFA$2^NZ!NbY zR3F4xR&>#PptzcJhK*U!V*-WO9rUs%XvU0@@3_cP5V(3D9-MnK4Yy+mtg*ll(& z-gio}w99ID5^Yxf*xj&?HP@7+SA(_hEVM56MUpp%j?A`G4%k=bHphOC#xcA&X-*$< z3ioH28`@VL7Qb6qqHx|~x3fZ|idQI-gTeT+n^nGjBt#WFLX&XVZY;?-<$Pv;R_mqp3e)RYHPS;4j}_NNBREY$jm~C=#%wMT@>6 zji|G{F;Uz;2^6wnLgm*1^oti;T2U5BQ!iPEQja%q_HekQ*i2cf13^|RZXAfz*X1R< z8&N9Ag5*u9m(lL$ERHgcD_N`-R>6OwqeY<|7Jo zM47yy4vHR=1i$UYdyW6vmY=&#Sxn9k{jj4f<&fgS@d24=JR*C*w!1PuVOjgw>|1+m z7{7)EeXB70kOjR&GMntw`Efj1Hg^M!qPnS_V$|yeU(7Zwz0OS^y|Em%D8dNMc3LAO zeYr)?)6KHNRSk|e-99u#CaVt$<~Ql#N!E^R*5FwCSNqht_eW=QqYt6lNWzBD0P9mo z#UaO#hM?q41rWExFvmFP`BdJ*l34*seGu;!m$*!uz(>mj5rxg1{H(g5cJ!@g*l5B_ zR<6~4x%eyFW?m|axv~{lt@hisMt`r)yHc&t>-%ynw_|0$bm67EQeE(qFRyng!OAz+ zTA#aw;#Xd7#HNeGv*C)GKJwZH_?s4%LIB z5+j1X+aMukQ){~L8GJxIxP-FF!}7fGJ(Vyu(YYfSc+?yNvQll@y@W(J==`GISZM=) zm-6+I3S3%0Giw@g*(^$>Lkc%LAu)Rxj(jmtYxZq<*FBv%wkTP3Q?V!UpBN`l_JN$< z&`e*czv=~fkb6ysvIhxv1O`ANhy;T>1h)`=WDn`a2^Qaqlz02KM9TFA!y7xUMGS!l z;F4bEZOOs0-Hy16VKB!i=nmBz=GQG^xVXQr0(Meaq(=Y|Q#OOjD4;Gbz8*5*HP=lw zEl280kaatE+ZhZ+b$QwwNLW{wv-TfqF3ntuHg_8=i9sh~FEO`mAb1q68=@VDG1?c0 z_90|5i`fWQj6-fZ?EX+HFVLMA1-XObR)?bRCqXh<_P%jyy)5k1BhLNc>e*Laleooz z2_!*9;2Wsu{to;FRCeKY-w{}M0S+eihWphU?qRdkRS4Jn%eJpe?Z(X4;k!~!R@w*)4b@>VNP=f*iC z$8uAh<#oLrU2sn@Yg?h0I{D)pNnmq|x4)lv?8cOt-5b zFrOJD4foMM3pC-<|8NRwV@lvaPi>iYUb=X!gr?s`yE08MDcQU)Xzcc=lVXYdEjv;l zb;J_wP)+o8=)FIlRm$5&fvMNWsD4O#oAQ+Eezh zg()7Fxf$jd18sWLwUf7tbtni&nW_+6ZMr+@9LG2H95isOYJk-_jHw-w*e$hSOR!NN ze-KhNu^VC_GJk5=b!|J(-;~mhf@-#0A&hf%ATGUTOi@;E3H}&|ZEk2w31c}3ZtiVD zd&}TxXv(BBis9vnDbP8ogrR8nW2-u@jf>sUdW25tZio0gtW$VaFNbSWvN%1|Q+s2i zKF>|}Sdh@}{>_5INe}1Md>PeI(Hz?q9pw-S2^XGE4c&9Bkd2Xe9!p&(d#cv7D9nRG zvM2L^8F;^7b(dD2z3fz_=a(ZCJCR;};dG{&Yx@YU&pzLeUp%tHq{C-xy!eyH?|913 zT&@TRCnImlk~qy591@cpf#K=))#|_-I2jywPdxu;ogT3Hd)8lWQEpOR4Y0Z}c!AVD zeWj=)-1*~=Z6Ce=zTIYRTg=tYaPsn%`(WG52oY4C4kwqcybC=#-Sc?Xl@xTSZRFMn?UvHWA}bdhL$sXx--6&W-&}-w9q$od*`}$bpbU zc@3~P8h(AB%_U}yX+wUZEb)NBiu1DGpdH~^1!2Md%EB_HPMx)6KYpelng=1sI)kOQ zyOkGWj=@$6VkL|dWn5#~pO}UlSj!)4sEH5sLdv)f&WFV<#w#Tb)d5qsmU3msf-Kyj zef9~%F->oe$3Y-_l zMtWSf;e3A?t;5E2(8fRyV193+$cQe~<03T&&7cL3p;p-|{FSZSlpY{g& zBI_e4jHUV`8f0MGO#OXR>d#;>;>vN3%;{z!dpyf&TqwGYPg^Mn=lb(0E>wCrCwD%; zq@(P)u0x8-d zyZ1!1qrLb}^nqNfs~x>(A)3V{bh-I1$c7J__a}Ckkco3>r15o?%~F7Yt}IEQTI_^* z>dVG#cEI#Fk_a^MRN=@nK1>{5VP^lH;;TvBCB z8n%u&eYc2DKvPk~pO=s4FcMCzmMvu~LOx@mC1{?6-yLLAEIUA<>OdkHqPcdA6x}IJ zJ&CmDk$uRxugQuR7Y>;10&~#JykHY%Kd5xV*{b_2Lmu9uzZRr53#)#PxlW(J#w(l$ z`I&^WKIR^aMs0a|S-KEhma+&oz$c;|cOZY7)0Qm@wiYuZWLr(k?7`H)nqw{VF^L1A zY8nX>xUYlf5niyaMPW^$Vi3K)jszpsKpTNCh=?C72!JPcvUJ-AP}Dx|*ycbBsP5U_ zO02&MUiUWo`y~ECLJOE6!g}CgYp^JtOL9A_DQE$QZx=PSDc=b5L>2=htW<^?7NKZS zkR{?_mV+;XI6A8SsXxZCVwyFv%aUy+27a--!~-Z|PyJb6?icOYbDVrdeeTp*yG*G@ zDPb3i`*$fR8=AjxcQu67o1KZJwhHfsEGymM_H*hh$jiK%R|8g7yA!v}m*E#@;xZ+J zW99=#RpebYle;1;$E4(LaUdLro|K%#yDr=IGe?q)Sx2b)c$~Zrd7l_vG;~WY?34P- z>jzWa8rq`t8e~V^{Y?winq4h@jtVgj(p$8$<&lbNSDFJ0GCpE8CaO!P~9^XE>5()5!pJ`Wp|56vZnLWPw34v`;Gsu;jM_4Q* z2vukD9iQPv8|gM7>bOS`q)QDyLbtOPY1%1mNtKjD>Syr_tB#v(+VFREk=ebaMMKun zARMC|h7WRQBe&|~<>tQmW|4lxl&1RoCC3bVm7z!5WtZ628`Q8;_T31NV;PZVT%z1g z!kYP}EKe+wk!bpO$;86G(B^%R=3JNij#8q3TM))HzU>B*|b?%Ji>sR`|1b+h2q+>KK>&EUdy+JGrDhM~ks_s$Nht z^Ko+&P-?8fQJKAo?!V&T&hYj~4{Y@cunW5h) zhyl*1#H(%hBTYC0H&{W6e{dlTm~tb=e2oF%bzP#@_Ih~;yBB{x(H-edEf^L{uinHS zAW8DBcHH^t6fi5&?)x8^JsHqxRYTsvR!);wzT8Sj9b6$+tq2W+9G+I;W}Kjkkswa!WPGG3KY1rdx9S!Sih6d^}0Bs%Udmla2KWQg4f zA?k4(E1AiZ(IuE5&sxV;Fd#m!u*vNxBAsid50+lT1bC=-L5(G_0LLJ10W+|-U|po~ zVVV382OpLL^SnE2!7JRVD-QHG&0hIj3A;k`Iz)lT>Up!hQsL47-o#*8{sEZSJY%i)ia3!=s_eKTYoc4On^{27UQdGmL=hZCNfFIwe`Tkh*e$rStQUbn-?7r9+N; z*`?!DewX=5H!G92@Pz(KmxrHQkCLxnx&hs8(rH{XKnckYSNWmRwjY`MCR8GPlhQL6 z7oD_(c~=sw>Si27Pr`#A#H2j}BhoQOobuIzEm!Amq<)h_quApVyv@0z{32vP=+nXL zsEPFFdh#-zs$rxPk%8pZQUK}b&ymrny7$5GRI7MdJ9K&0uE{>o+r3{ZZNvcHV?nh=+#)!t(GI(~~kiWsSRbo(zP$vHDZnhKGUg1&mJK@;hHuAGzP>ES zBa~Ycid1`qqGT?@PZn7}QOlojdO4F!bIQ^28jl*^Sg8;%CDVr02ZJ7`Q(!qd!RqR! z+6SX-P(_~h6J%botz2jJcHpiaJ|bc#UVh1LY+UhD>Vx~ZoALMwGpqdabh~9N%w{tkEPH zN>tpEyv!kkV+JjC&FY_IrkwnXlXuj5yn^9w?1ps7_?WLQHz|>fn;d|}!E)7=K96X} za^?mP6C?)l^UCkQz|@X$vS}|t9}lW^@mGt>C!3KAJ{1s1wKyvCqQ5gMY;&y>W3%3CQ%i19+RAI(FVp-x`=|gTZuINNe(j{=%ay&c;1y&i9Tl zsZr;#T$OcrSo6j_*A@e2q@Y~(*b`wH+^xqe4d}1g-ZVol%R8>hb)KP~__h+GEfe`Y zcdbv{%2TXdkiR$qe1uh#J>i98A63@=9O{Z6E+3A|1)W0uS;IzCR;9M3TYvdQ&N%+9 zfz#T5#RY6NFUOy4lRpdsK9eN-D>H$C{5-W>H!UP zXzOZA_Nv3AmQ<}sPZrL=APSgnGWCJT>>g-fVDp-iTma_%y#N zyCCVM4Jjb*x=&1HrvKe8-$dNtEzk#jPuik14>BDh)4CIRHNmP&#(5w5yaY&J_!O9pL^FW`+=xX>%r{89Iyxm>aSv-y*qB4xk&F0PcEz7 z73T8vT2!UUuLG#u*nR8YE;ZbG$vQUKVFsNZ|1<3pGO|x)i>NT+npPg zXeEVtZShKd{$c@Znz{SnAuTiizL}rBt+WXh*2K4BBU_t+K<$n@A^0`gw-&lRg@A5f zK8dRJ(|qnq-+bd-0Jnm-2rKO(qw}7e|CozRtY=Kdo$c7?^nJ7n>IJL_pQw>uzaR!# zb*CtN8-9j*H=lEL0=oQR>7kc7KZF9Af$^g`-fSzg zXE_p6&g-w$AnE5_AA3>@<_^Coesu0B#@Ld1?`lrZt_u9gIBI`Y&n_z!%?os$@-TiG zdAbU7zo+)@5W2tFyIy?Hgr@eCwlQ9^>KtjtNjH+m$!B@A<%w3xqjO;&J)B|`2Vbbo zfiQ6o>Mbe?eqay_SWmyJ zOZ`_A2ZcZdT7j87dLH}x9pLZ2*P1qPE4n3+i-~Db2%yQSTYV<9mdtPMGSI3&ttu4$ zOTOlRA7n;OYNdH!A$VGN@Ys9jd4LxFOP1{aP47}o<$QS>=N3-RgY48m1oLJVvkV() zgBZ-D(q7wNo&oV#J`mB6zNykF4OITUP5k#<5OUgF1C{?MLu`kS1WJrRhcQvk2z#wo zDa+Y`H$5;DXNNE26qn1pOwUf*I%;O|-lc&hef8gxLTmpfwEx-p^PTZH2~u4#!%)(z zo{-yue+q^UW+E4EBC|**?k?Rcwvt+4v~v-Qtl&B$Swzz+BW7zp--K*E)fk)#yd{3! zG?EcXyfmJip>e7ITr@}hgd1pt36nu@GA@<5QBNTg8g*Y-W4f%*mrB3UW5oneJ|>h^ zgx_)VzV=;Y!9evf?ecsAMhSEcZyj7L>s2l%EkwjCn?Vw|NAxt?=>pmolF8K4WYt<4 zu$b-uwv1+}!Dq5|uDV}3MdP9!=2Rg5Y;p3NkVEkO!NXmWjr7_--+?$s??}Y7c;=GB znTl}cPQJV{{>F+FrxLu-4y>>m;XoFyL;6mYn;bb0NhO6^>g3~e)jJB0hq1N3nE_N! zWNmt)Rg%&tk`lStUVoyDLJQ1}zig^<`4#gzJz49Z>OXm&RhxbJ@mI${ckyK#t#24% zuZesq%4DaBT6%8f5!gJ0b7oS$&lNsUsqQpWdq&6dxk>HZ zADK(uD`5$0NswT9*+ejB(q21YaaIoV$@PkUvqa{e33^>5XR*18Zs^5n!}QdB)iPh!`ScyFGZt!VO+ zJ|WK+mCuT!vY|B*)g1#4v3pd+jA2i+A;lBPX)F*TdV5uLySh>Z>LEd(Mvu*iT53GF zk)9Cbcevg6{m};}Xcon~YC*RI$sNOh$&x*qIH()WAxx5UxH9?_JUjh;-r;CQLl@Q^ z;H2uruj|SQp3b|8qdD=cfvH;4+##s1*PtNqIbnz!>ROA^;* z+~kX<4mJ;1AtP__MrKQ~4%R$;MYqEI4$pV@^eOlXxY}D9eSm)d(?sof%$VQLYUe5X zJjP?P2GN)|wX>GJ@V zbxE9+Mlj3MEnC6S^h3h!u7P+n+xo2fF&JNP&=CsfAG-LpQV7uq-5z{G#cMQ-OXEmZ zXe8sEg)1GW;jEy#D!NMoOD-3nLd1r0{Z2ys+NwP$A7LTxe}nj@EIus)^c22{1wDoQ zX=dI7FB_8RoZmBGmouL(@0#@Bm~IZE45VLwL|clWGY`Hc3*l8c<6C=rYRTR4?!6n|0hn)2y_~*IVT6 z{fEqA{)o8xsHAGsQ$kcl7d0|bM{2Q6u>{C4hzBke>M%w z;A~77Vw@~jFc`CLR&oB2{9$#U#5Hq4R=JUWaO$ic6}w_JF0QBu*U`=uJsQ+|284vj zpyuw(lUik-q8OS@M15Eyoe)w`=G+XgjljQb2qSX#V7btHSaC)EQo_}9U^GnqWKmuF zjwE&U#$XiJjgwqWZewSHy;}K*;eW@n3Am~DQ1Q9nvIw?U_SaiPF@UM_D2wZ zHNt>|6m&#=7}%uwO$L4ko+cHk!lq-ENs5(zv-}Re{09UGUMZM$NQbKTp%Pdu|EZV{ zeS*o0AO9gZV0jlJ&Ivjf{MmRCxI?!NXU1Y4938btE_rOWJse~-!Hw<`={JL=jAy*w z;MB&g>epLu2!+ClS|D%BeLIkWR_j~{c$Amh5U_7m7y11b;;-~JBhz?ba{8PE zr`Y_n2{>T%w@ga;Z9q_zFThg3SND8Ghvx17?Y9<|F7%E{5YDm*?}t5u%~bZM|K}E@ z|6NrxrEszBe$_@irj~lTcMEdJzOS|+N#}eqK4zu6H$KNN0>a=tX6L0xpy-zB|mW$C( z?Jsi+;>YVDp-H!7^Sqss!G2lM5QQkPrt&rHmOXv=vA$9!*A!Bu`j}H+u1SoJF;t3_ zP6Q&3vn3R=CDdQ_2nKnEp)Te>yRPN*~X zFFJJKM_1;bIGUA6osWd{XHiV!nI(9XT=~-d6E1HWSFcex25fhObq|O2sXOvej)mP4N+HndSfGFpEJppMqOfg#BJ4|W}AQJ?efK99<8 zH2ab3i8!mQ19WN2#`&mvY_645_(kNTR~I?)jo_~G{!oJsudiy4{f10Q0FL$?M(UeT ze3UN_ZMPFBzO}%plOCH;T=FhoS-DvvlC*Pr=FBO(sZrVPQCJZRMvXoY6oToGS$eJ8 z7MEmHlv$amgBq5{= zed{|ywgT$+byx87?Dp54;{BCM1w)VER7TCCDXh6ca(oWWru$ zm75L_G^M4fH5*{#{Bil zv(ktYg3)=E<#K|QCh2OhwhTv_!ot8mPOw#-JQ3883!_3RLqFKG z!BC1}&zfN=O`+Gt?n;M1cO*iIKSst6p_6&#(cdrU-6@kg7cMPs=h{Al!&K&06>~|t z_FLI-{zP8jBQivenf!!8jG7X`@*ee<&IhCl??;5oX#G>l)AG7a%g{U7)!_D6W%9P; zBhf)oRQuFf;)qqHCO;G(oG1wEAMkPG^$x_5C1HkD`jP~Lqe@Hh@pwTLX56kp{M`x; zYk4oazU38cKd%l=bGk>oa!Cgm_#p$p@Ww>TS&t?v|?T%jP{kfM%ZJ)&%l*-`d z1(BLG480E<1EY}j&2>9~K;vLGF2>M0LU_~sif2DQI7}RGj!Rk=EwL1^F2|j`p9`ne zw$JWO$(EvvJg6(ayt5 zA|(pnT#h*fl&qJGSE2cw%Z(dbNjggyE7~8!sxJ&RBH!&Sqy4cp=#s}NPy$@YuSi^2 zpP1A(=Y(qjQt8)^64!Y$el~m+rEck~FgU{SJ;A-t%sxn|D2US!tv@|=98FzB&9|RD zwOF#>E!c06^1!+-oP~)P$~f1NtJrmpJp2LjQ8O!Ua&r*8?J%$AdO9o2vpKbWAkI70 zO{Dw=;@BVki(OFR>}){EQovNy1NAFBav9JC-l^x&Q&01qTb7Gd3s=SGa$Cv!Zc97} zNM-qJq@WLQW~_^O+-8g2*P{w0OpgZDefgGl?jDAKY`cltK=9w|uFGTX&xmx{ zMyP*AzgW9ML_UYLPT+v%~;h)O$(lgtlIBhc0KD_1#j` zU_NKknEi#Vx`l3L13I^PP<_@HZ0U(+Qzp`~S(@+^vDKj5WrU{IO`o%QL=h&Hhei(0 zSwDlfT3d#Obq&bRQ7n0^xMi79snw;od2A(2tth#Rm-gv0E6gK#AC|I21eK=)q!%G>DOfiYU8b=S3bPMPMXTdqC{%Ac>}%oe#82(wTV*C{ z%$E)LCYYC2Z+a0@4fIC^u;ZLY1kZYk^=s|C*l9p;QcY`Ge4XM<_Gp^J%$XxOk_l{x z%4feLmch9W8;J0?K%(psm+d}eM-cJm>s0k^>y<_Aug&$rVH;)&PgAQ}UPaHm;Q0k{ zCzK;$kT9j?N%E1B<@^S0KscVqZPWrZaj(Qf@BqLNOdl}C?I=K z-KZ!xZ39ZyYP{w;=t56#Vf^vVc+mFvUg*r0r&NrP;#YZw@!EYK^0OQrQA_O`9X5O3 z4C_6?8}RUe{&JZo^GUc!l#+B*Y6o_x2z!_Qz_nU$`qE@4>}SApi*}a7_3gdFVFk3b zLxRtODeTDGxJ^m6NY%}K{>a&o5=VGi1pUo~!%2#qh$kbfGuiO8q`R5n?VM{Sco0te zDhs{O;1DSV;*4Mka+g_7)L=4E(!qYix+B|^>aldwvLt~v>M#J*RC)YVH;k^?mk6Cc z{M>>StFo^^4j$uC2ZV*ihcFIz|8eI1>U7o~H;dFB;+0Zs-j`%USeI$cU9%Zg&7g8p z>7H}R(C84363o_%@vN`PfC(n~=ACTlK5PGzzh(9!yI{ zT*l^gp6ctpcz2|`C#hWhYTA`jI>=e3^`j#?<;}uBQObSD$2#P!^6BVBpC&00@aR#S zOf#{YN{o%bmA720b1r2ZTHok6_GFTk@SSo`=FXl^%3k>pzpRhRI#i^xIX5+V!C)2} zVVvC+utauj5cWD0l2IMn@uYk3T3rVipjzK-JL>5XcMr_OBNRA;0W&Op4desufKcXd zwNzzfI-2XqrFQ#+Iuh6X6?oIiN!tMdq^YZ~R}a4Zul^XAk~G%B1x;x14FV6FCAV7{ z$VcI0kWu8_aHf0;w53_c=PjiCP}MKDcJ2UKJm1?8^K`NISN874dgl5w;E=#eacoud z!0Ftvw+!BTPvSX2+SlLI9OBRgX2{TjR$g8lKN^`d7ps4&Oou}ysn1Lti-=Ruwy&b$ zX~C-$WkK*S0sZODUK8zE>_aE^L(8~#&zkSth982CUI4Q_QhqBo=T>F5$JnRMx4S-S zQhOZr#%gPnH;S+dEZ@g~Hq}y^`@<9Z9TT%}a-ts8Lk_!8r&_C)<`ok)J+(dPuJW-~ zPhen*niKv@2pvGV>LmhRyb)w7|+y!2@tI>R42A(s_}%4~(J6J6w|d{&tSOKR4GiKYr_W z`*p_eiQBKZ-eSGzYRAA^ItgcdZF>m7HR0rgv>`-qTKfJLJ5|&^GxOHD{bo%|wY)w~ zE~o31Kf(i^f800YSh(m!(8EV62cL9O@F{z77%#`%DD$?m7@xuK5F7U4-$;MDjW668 z%zI=tHqOTrF!Z?>>C(-iz;jZT2cFGB!l| zQ3}Yl2V=UPu;ooJ2gr}syB7LAPmh3sHiDXCY*s{an%~Dq@)YJ>)u9!q4RI`+a{I?8Pt6RtU-16s+kZ+8zP@?ip3@PI++9^W zw*ApQt^JFU-(6^T{+t&%eB$?qefoDL-uNik{KMieiNAh-_mJ)0_mZMd61Zic}x?2_ho|xo?iu z9CMR+RIR+w%ooZS7;S$$;L(P@?%w!`y!US9AJR8&c~h%D`<3hkx;DxCC_6RUW_+`8 z$l_zd&3g&;#Xl*{_(u+80`*iEbtL_e0*iUa1Wbq-FgS9s}(k1;vz z!sXi#Gre0J)<`5=y3#w#Vm(xMK(}^5tJpfd%&!FU!Pv>&pHCEv&3@*4kBdz{jBu4q z+v7uq{|9?-9+qVK_Kmkp<4jFjV`b&mGG(@Cmb;=;YF28DIi;yU1r&(A6Z4h?~#EvqfcRCJV$3bwq9ok0dWe z0WT)EuqLc?gg2hqh?2gFZZg~w^kZzkms|SQwaJ&04G-CHNiny=&=)W7ttxj}h7DzV zmDarM4`(KM#in-Gy?o7lr&rs+sQ1-PSl?29=75E+8d6-N6jxWM?zgwvBvcyWA9~u} z%nY=2_X7{}GW*p<$BQ|syi~6KmaMdf?dZ&W0xJQqyF=fg7GwWwCtv1s3z>C0)!>`EBTx^!du)R=svn zb@)lXD_MU1apm(r_(6x&_+45>&%xVfR%hP4?R(`4a-7yV=Diin`ux|IJH7W22>Yk2 zpYj`=@0|XW{73n9+-Z7EXMO=#VeMu7i`Md^ai_126;}~^GBp1F)pzlKV|RIb~iw zt#}z6(%Um}cEZ>c+1@j;8+6Ne$Wiwu_2|mQl+0MSUgk2q`y<~(Dm|J}TNJTud4a5b z>LYO&Md__WCu@Ld_%ld^(6b>`=;;!wAJR8bN}UY#Wl!0VRr*CHq!CVkK=u6SKG!!B zE{FsVCULW4rSRd5R@g6`9z$)h?01qRGs-fpsXNMgElTo>pSV0fIwTa-DsldE?TV8t z3tH!u641Zx)a^k8(qrYfg0{n`22V%hAvu zV~S+WiM2YnucY4XnacMHSncJpw_~4}8=|J2FH;){u->x)#Mm+3w<$q0uKGelT4(|Z z?sF?ll{Fs6jQlx>pt9lJCvJ&DB&pak4McRKi?`sQON7pmI%-)>4snUOgzVFa6taj> z!>pz7l6L09p*NU29=3$gg5jxwV)L51_bU8V39xFW84~W>qNi(JuTLyx{?-Lf%S(C} z5EdQLGln0;16F%KKe)P1e)tSv0LP}6D){8KbwNKW6mB&2U0%0rIdT+5DIo^l-Ei2S zxWM*#)0W4N)7PtLggg&4V+Hu#O58T`{J;;LCz<12X}qwCvX%V@KlKDuGuH)LAUb*} ze)PgD_N`Zx7fbC=K+Fm%5;s|>^z{_aZzfk27g@p~Wo})PYaX|wM^VhcT#^L_-41Nx zPECqOlyjd3u2Odfw{b1j`Z0T$fpzHC^2FY>Wx`16Dxe|Kq0CY^m1JgJ6Kjo9P~{T$LUBA*{8h~S(#l|d=?q3UUzI& zl5$J%Fo?O_tzm#7KOG;C_|Kn>W9cssjNgwbNd=li32Gy|n6ItYE?8v=msDBCZ`Lc% zIhWvWyq{7&VFH24M5OeAQek)cW<|9fF*%eB&q&2P1L7vm>(bjEzc3^FjP*xO_tNl| z(FdPe|C-e0aY%4_aPs;wwL6s-BL?;fmY~rXpPT4BpreS9DnW*#1Azq&O^6XwA9oM$ z72i&v1{^x~k&_=2_`I=+U(>*cCZg#beEv_x4IJaoTHiSBq4V|1kv*Z(OR!gc!huWp5MzLR*hIz3^e zB!uI`jNaUm4RT(>B@OwNwp5d8w4Sh#&Kmkp-H@#r+eg{$Di1%7&etsh9Krz#8?=~A z7H@Qgt6sztV#JK?^(HR&yN$4%)d&VK(56b&pS!TUlwz^#+PsKOWmpJhU3poCpUy*a zkxq}%lDbM`WZjr<04PLCkRN6X)K%@Lo%}nLea^8pZm)b@p2^SV0Iu`vr-Q+LqmBCr zd%*J7<;ky?yZ-*GHDQFJRfkxxY~~-wiPQg>`31P`SFz(I{*4XBGk=kz?!TevzDoIE z@zav80uXnDN@`NcDtVllQ4b(QK|f}YpSMrT`|nWqF3vs3wcYj02c8eV6?dq?b&1@= z&rEFIyq&t|TD*?=OarIC$HlPGF|C1yQiD5Lh2K8==|yy7W7)TV|4WT`@C5doaXIM> zcJ_>a`|-c0(0j~eTEXds3i4nQ??4fcwexfw zJd&>3s26Jp2`^>%1^Z%78Tw_ZD6~WG5(xT08GUNDG!5jp;hty5ZJuV+9 z?JiA(o!DJh=ux-oVk-KLok<|$-RnDu#mL1`Gk2QD-mhc2!)M2|bKyDSTghPwhapWn zhFD$|6{9#G@kHhLJ*>VK82w8iX*uW4>l|sp=WqJ%`gg6#w&0s4?%D^{Eh59rdO?#P z@A&b!C1|HMWmEq&RZt10QdxU!7o_jA0vx~duj-&I5czG62eC0jM_SeoUg5HHMNVnK zuxf0^(9bU|C1lH`8=KPo2BTX!8Fp#E{^`;dbuXenUw4QVeALDOYs+qwX#8&T78^C< zvjnT^)45PVQD5uO!=LQ@(xa{>lgDZvgSj=>!L8?qSo=tE{K>a1Mmh#m&ChZ?@}Zfh zfc&Ij$NsE1WUU0mVi(bZ*!3sCMh`R5wc0-+K!w-gULA3C_v94W%Y{mpm%9bofNBh4 zOcUQr&Bxzt9Ko;7$HFVTezITK4HEV!GkllJdO`WlNTXl=)_B8}vDxm$+x}KhvMpuz zQV62!5XD%sin5w|R?&468Gc#)SN>zcM(N&b?rl!zZ&W?b#_0XAWxNJV4bIi#^lJ%5 z3Buly@aulp{Tb=88eP4bBY8yqsvGKj9NPM`fp=_EbSOXL-0Cr7A=zNjUALzf?=e`6 zgDu7SL)!aTM8_3mLLbX@w6IQN$;Pt&htPZPIUI73<(i!HDz^GI#?-*gD*RRqXT?OT z*3#e`V|OlhfvFVN(Xl#BSVuO+r++Y4(n4F5sUe+xcyEL`9w3BX|PiA3@YcK4GM=VBk6$tmt-z5x6 zAN9mK?Xef0vlj(DB$`*Nfe=9_RM9GlEyTevafe--U1hp)ul!{`z;*rz9q2v^*#s(` zwqrPSFt_BAf|AY;zp<~L3aYAc)QuV_Sy8xx7Np6#2C}@6^kgi`QC9=Quf`75R$mCX zI;H~M@>eZ**ASYbFG>9*2##C~j~X@{$^st_iLv|pA$?yxgg7XwqYZE6|CNHoJoJBI zJj6m@WyQHHK0a3VF(h{k;;37qJLE+>=YeY@s4FKre`+H~AY7ZsY9djGLmSzYPE+X! zy)kp|d3mqXwN*wAB7A2|5Fb8Xucd?EWb2D=^2SzGPbB zuMlSD5=r!4cqUu^3T*jR`|_)?7q{dUUq6C)?T~HsB1g;HS0<@ zFdNVcO9)mUyp)lbd=4zio%q>^ zdbZ*kf>l;8$Q{ed(F(%WiZeV8B8Bc#W}ieiknrR7_>qnYJA;!!7OkEYZM2P z|1sAm+Xv&5HZLZwfp!FbczHn(>`HY`N!nLL%t?-T?I1jJebh7G(&DJ(DFqU&AtGASfnNDz zE|pE4Ku~zyV{>(8Y|k{e2;8Ii@BIKCV8g=%TrI9$ynI3}j5Zqlmr2+N}X+-r7{$)^Ph0L;R5@Kb)@{ zd|EQDD?2BK2j4fsDFo?G5Su~Iw|+5Y-i2R3=kD`{9>ISPesPSieC*leAo`OeJ;HP4 zSIaY#jLyr6y@ZZV?D8w4uF77pJtLy3(g(is1nEmN`J8(Hu0HiP|71Mz=ar9?s2dd{ zBBEAOzVoq{Qsv6S^~#8yE2!IuaKZSK(l530b5?&|GVn@4vqzfb79FdxJ?_%8(e+fj zidWyg-FQIZnudqT157gPRi`n|`1e21r3xodSGAlfpShC;_uTxgII z3)%`Q+5Y{7qz4Y%b1q%a*r++V|Neq!X5abrKjIX`0@xxiey8Y1G8qGo&7D_aCA?X= z)LGcR>w8k|&@3Q|h74c2M~sx5Sp2fLneaH`;GCa@O2?DS<};*Xj*?S*YIlk-l?of- zmQs3FF|xK74POrbSj)IxR2N-Sr>Ur1Ya_hfR5F_HdG&3qr?)?a`exNiF=LrDn+>r;>Huw)~5&BBKrFn4V7cS0Q7yf~nz0TP8DtiWB5PQ@t zG&Z9LJ}xXX(2Sz+tqDbg=vG2jgzuIw6yTpFtz|BShgqpYiGmVrjCLOV6S4;(8NWyA zY5xe@?-2H}lu`T9fZ8B?k2Qixi*{PtrRJ2a9MpkZi2k_WT+_(uHciq9yJ>k=}YWd^Ki(TAdcQx{R}4Z<(`H8;$}LuBV0oRS6IHQ z8gGL=;~)9k_KhLdgv`b$3Z%t7D5UGdAnrFDrdYQj^4OIxL~QZL-$dHWuxT$|)xaWS zs_q_HzMzX;09TCFmYDZM4ms1hd&0PVjK@{)>tj(Q>Fxebn?|vznR{vuMNQ((ebq4a z8+D*D0(hwc_f!2&?4=V}nogjG+PpiI^NE`N{^G>S-pEp|A<$I7B0^jWg@}CkNDEl; zsX14?6Y+!{(?{O=^Zb!CTE}m?$vU=Sts_xJu_Uvc75r*tTa-9jNN8Lc?I4IzF-Rsd zYn$MFDw)&PkQ#f5VuS^mjogM!o-=u8N%OOq2uv=<77;)7Z$qi>2E5_fHq|hVL(*4A%(8=j z&FIatM0#@H79pYIb_@4@(C9k=%Fy^5G#~%1R-B56MX_O+W&CzVkvh0w$EW7_#+51~ zH(WxfnP`(KH@8a6Xa-DFwK+;P^p7^TeseX+JGW4Kb~SiN(w>Y`MUG}LVpIr%;THi# z=uzzv%}S@l9NWLCQx`ptXz_?2#g~wTU($U2fN?kL+~s4qK(YM%)U}#$^3vflaPs2ge?gjtLfBHu|aIz_vAx2{2JnKw)On2 zu&+!{0SngwRg4Pa)T9uejUxD=uOe-#g`rMKjq`DP#lFoTzXII_@dikcqgmAYQ!$u!T#usj$p@Ya%KgWavE@%Dt9rWMA;(_{gq>Lp zb>e5hC>mOd>XO}>c91CEcsYM+BU@O+gypAY2k&ZAdKoDp7i&l%de?|x$B$BjS~9c>0ZjyND}d;XONy>x%0ZGyhACy=z4=Qv^+ zIdL{3QOzvmsY&qAp8$98VCMqEMUdSPGl&($4&nsqo^X|;t?B!pADd`RCbnIt4-msGMp5hJ9|Zw*?rum(f?lUI+=4C78#kLy+idlqQaW6C_07 zw1VK%w|F@;jWJa!Cu;oePJYy~T$8=v7c1e7QFY*Li^(Bhtp_2T3#9nImZ`y?KD-j} z?f->_GYLmt-HClevOx9YKjEAsX~Ua-GW*ggqI7XYMI)SGo*qss5;+K+P9@I2=K^~= zAI0wm(2ks@II;D24eCZ|sT)ikpubvB)-&X~aQmgvHB>WPY>@8sBVP`+C?As^?U8E%0Ld*{A6i72zKbb;fE$OI*0$r3qd0Z}LvH$VB&utz`4Bym%XoavRfy!whFF`h`*hRg83dfx zPA1HZQ4ARIQlp;c=!HY7z(x(j1(Ttl`WQL?q=z`o^}4lR;(K60f(HLkJs#vR|LBF$ zO;jhG{A7LLI?nxK+&6QKqWmi*0>hVTmeJ<+^E*^=$pDb({alW2torJf#bbG89_F=d zOvy<&f!{6&%?HW(&0M|}tp~wO4J}2cAAMz-8hb?3O%w2JPw^K&*T%xX)-yv~(qi3M zB~3-AqqaJyIP=PA0G;7v>QD8UnfbG0vxgDAShp@g zeF-p(wM93eW{nP(0sYp2GKsJZo9#`6IW~govpxA+a~Ir8I-({Xa<1%BGdcI$_JD-- zY(7zt8$5i)lXOX7$HiBg8WP^7EWuhOsdGC-&7iDc_FMxWOaAMjY4BG2W9kV9yo%4g zYbAR#cr0=w1pvw+h$m1-Nv#oadD1Yy#aW1{)5NovI5 z`*rQHquTi>-G-T|b(nvp@D8e$eZg|)>>2!6&+fuVbGp?C`LD$wpsGUYX7yiC(CCQn zlJk8&7}kajUl0Asg-Ju%AGS{PZ*_Fr* zy)gCI+BnZ7gFK5;iy*L17av1dklSg@%Cu?Y6Us*wwYmPn7W7%w0K`YbL;B(_oj!h z6i~K21AThA(ClL8lT0WjyxE95q-|bTM)Ytyb*ym6gKZ_e+n!2X;I1l(trz0iMbiyf z#=qa!{R&29CoTj#|Fpnm)eLIOSG5LB53O(Z(4wZ+o)P`F=B0nj3@d@#(>6T`HJx`V zU$Iu?I_!tukZwOSqRaf_$3D{|{@C8d85;7gss6Jkh+jJ_1rf;i`c7Qwyof!*n{uDd z{>f2E-Z&TVVkhh?2hg}Ms_$Z2yBPq|?k|3(h6|m#iyqAlzMK;)pPaG#thq6&E-X|4 zxE%oE>|Au*B#1Mp(Ml*TSjJx_zkBQwZp~M5AktXwCfWIArH=b3Ymcu9B7MeSko80B zFm6n8#N<_3wN%3q$y{vf|T-i&m}=ijj#_F44Vc+Gu6#Pw%ady zlNnK6X$uxM;jHEmCD)qLej-sz@MsBDRS|(ZZ8(1}8R{xV9HwZj+b6utNp$!bad9q* z#KUUtiB6H7Fo$AHb~*B&1=fD#>a@tWG>_%0_ z85u5}V>Al^%yfd#porThd+`gnlYXhpH79HRU|IZXMJVn}Sq32+LAYvvfoB{kbb4L?P7)3zQU{aw0PO&1%#Y?8NYgthb%m=J(nfS+qvl~ zV%qGgVkY~)M1o55vVWLE$LGJiJJ;yu-T!qC-BOt6G}n^PJAQBuh1Zy8|1&TtDK!n3 zZNkBGOW!kt9#jf-EqkZ1NRAlAdC_ka@~&Z$mt0vg$v9p4IJ~{v@?NTCHC%E*mU+Yy z!zN23>qt_@>+!-AnKN;uv(qEj3r{mm22YkEcTPN1EaCKE`|;J{R5x0gjED7uN30aS z+MFkLX09_*T5jY#%U)-O%FKWL4kk*fEK>L6VJtA|UY*8;L-&=jaL6S{eNZLcI7z2M zMcgELLW1CkM_@t+XXfb#s}ruG*3WW8GvenOMz1aKNx69W_2mUNcz18LpsNTo2O%n_ ztW$9*)pfJP?8;Ttj#*#*qkpg^a|F~U?h|yw;r;+BWH3$91^d8xANX2soJALIC@ye@zI4SEwSLYh|!W5-h-EOBKOhgCpnq0n%v z3K{e?B|59Ho_)Jqa)3`XAIXCEKzo@xptiUuKN9ybDPO3ik=(s+RJ*<)*fmOE?nj5? zCzhtxF(l1~B|8$i;kPZoV=uy7BUAgiYMj`_DvE=+KL9C4BAuC~WbWfMgGR0sU91a% zc9TQ;J;us;hT>W#14F5+>j@@iwbzjmSINJA?aM%K(mMhNo6`*!3@liF$QI%OVdwr} zk)hEa8T|XT%*5PM)$CX3w}!VCS|Nvu==*hk3AZ=hp?DxbZKw;=5ws>>tJj$% zlxB%0@Quc!Vd~J@v=W^(qo_k=w?={PtR7RIiQ)kbdayTSEHY{|&b~JmXqYnX=lavV zTy<3V`e5-rjYP``T1A30S)Ww5IZ%9(FcLNy79|?yrdyH+?C1nbh?uR{TDOX(X&CB$ z^+o5bAf=#Zo1o?eylM#@GZ^@f^SI?vmtcT7lgNZK zg!464<3?@!e3y;9|X1B-?O?~OY7tB#p`G9|D6D4B?WPg;jWkGl9# z%Hv2jqxfoaf0R8X8J#&1$Os&yool~F_7B9!D=&gWdwmC{3j$&*h9ASxO!U8&4-&9vO+@^Jyo z*ZD)sX$Q(w!LxLdD}1#6x7?gt`)-6ql=HL6{mU}=CNG2JQ?l22@-e%!M_MC(L>e=k zDk6nH&Gw1Lfy@1>$*lu)&n}7yQXs2u0tK9|K@Q+ zHT!wFmth%l%wjMQVa{?olgqLgC|wS=OD+>VWjWnIw6ovy+tNg8q~xx&0{V^jxWHHW z`n^n(GQT`J8DS@G33XT&z`gvntA_WQ11JlKWa{Q&&!RxejQG*{)FnjSphRE58&`*` z)}{0m7YyFst*BCdbvd9PP@B6GUQfa-`}tYxwNK;h@j58fsX%eEh7*3N?5QU{(tAdj z#p-^#5RA~H5?aZR4s*pPvP7+cE963?mU|UK#M?^z8_By^=Ip3s(Yc#pldTi2L{{Wu zCb5ABD8;F7&`S$H_(e;J!qpbQZCMH5X8+!1^{{O5sxjqLqTPx<2^-3DS}`YM(^AMx z{a;MlCyJO#*AUQB-JHjITcF8}4n^gUlsT6yFx|~lVX~}tS_!S(?=iVGcnBONFl}XL zk)pr};c4{y_X;*rvni~=ELLwFPi>GCMs-aVZqmSnL)hbm1MMp80lH5P{|t>_>6%<8 zo{9j*9TZLiC#L^}pe_&K&I*KZwDBP8NJE`Q1OSL!tc6!#b=14hY=NOCm+#N;x^CFM zr+VwY>JuJU6HJgJlh`gO9H*$TqLG{?Nz~qC zg9_4Y^$T003HO)vOQeD{VyV%&a92cBu_DQi>4TKk#?k&T*F|{mun>+39yi5NSlo|+ zD>)tr#i?U-{T&vk%RTHcEHK9z2X~EaUkRL724Y8zg^!(P@gvlu=vif~@bbVThZ`_; z@!tjyZWXp?Yx^MTkNH5#-2bfXXKeqk{AGoYPhO5zLM_}oH(EIRzChk$pct3G zaSl9Uq$GF3hSh^z3x*fT*~kC%*{B2!5KeNp_rdPd03iqvzHh*6RrTlZMb&O|KAXwea>$AKm`jem*k>6EBCpv@?4>ubIZDAqF8T){l? zfTdl2^0U~hF0-9kc07zgU>8)pzWcuKKQKyy>-|aX_t3E}jcF(Ucn`{=yOlYgy#}Dg zJm=-3+BAVu$PeXzHafLA^>FnUS=d%goF+LBl5uCazBgx+F#j%ot1*!Q2C zo^vEc4{U=S>%N&4;aaJD2$?Q;dow3gNDT##hprhyw~nzi+_dDv&3oU{_{v|`Q5V{t zlz~o@a@jbR2uQo&v%;#8U(nK((4Z*i_)N5P1=wQpFD^h>mcANJa`Qh{(cy7)4IgJ5 zB?{uc$3~Y#f%x){D<@3Ms5S&i^p;&!HTjG}pQ(%_{rPq-i1s({~Q2b?J_z37s2QN7~)P)SnM$CR%hI zLVmcQkRoTQyBh}GSr5G)W^dCk_;se<8Z3v?FHBdGr|wd3=4cTfraj#T>ZFvtySW7b z^byLljLD0xTW>7SN}rpmy=@I+=3p>_8y9cCzMYL3Izp9qH=d}MdXmrU2NA?;_&nhO zyw*AnF#1Y5AO~_eH`wu)w!C_&8tl%IJ|E&Cd9qVi$a~z|oWp!XDM8=1 zLazp>mT&kBKLPy!!6jxh)k@Ebxc(^i!H}1EX0VvGTm2H0^*(BC5sH7kFas?Bvqwaw zZhl~HV7lX(hY81S`9JVf=TC{AVeLf6kOjZ0XSO%o0gQ=zcE3FtPo%&NAl%p=P2jr~ zW7bapBkyZvkyjP;Tkb#?>w3rzfsow%1&O6=DiIak6M_kPVi}mo`dMEW;|!J{hD>b; ztv+RYnJ^K%Qt3*4b0-CD4NRP_R%ixr_ z(J9vh`@q~FwG<3M%#|K(Bb!hV6|X&j?!E6Ov;h0Jb}RnruHz5fw;w)#*!QqLS@PGE z=Tb!LAt8jueu+~kc_`&Mg(JF}U~0>ed7}Vb1{@wH$;HeUUYAM-b8!U}|9Hk{dX70U z6uiC2H$MjxaghBUR64z=-=l1%{oXV;$GUEV@OB{6-(>wu&TTy6U(Ty9@oe|u=|lV_ z3C9~gQ2fckHA5>;5VmgTxjs)=U-mG&4!c7MBA+2Bi$C<)GXis*ow5Tntk(fb?AbVP z+{s%=3PeVNS_kuh{2W4XM*INb>JpD4Gg0?~mT_jPCL9RDG9PONk%Y#yQo zC_HluQkuL+502m;or53fHE-seaJt-5vZ!N;yzB*(fNkemevQE;DpSS1xlR}$gby?m z=osFA3i+BqO|-f8KG4E?MSEUDdW0=N{AC5l%*9$&T~pRdaf1^|;&4(s+|&z*-dt$O~y5g&v>lmLLQ!v|W7; z(g&r5EB&fW3G4)!gH#OYxbt_R)c0Vs@?3xkKDD)=%?O1CYAEk6lxIvAB#rv+bC z2E|$U6ZA&j5WoORI5S%XqRt|Q*0NpMDc}pV$vc+c=f@Q`t%wK$PelLm!#L+dRioqI zY>er>n<|;Ios$n}Qe`=NZLPL$7NPUMgNg&>^bI}!zn)+GA5Q8SYbp*orn{_c(;OUa zN6?CM^ZsT}O=g9V{Xw6ce zXRKxXm!FL)`RjOY4e9_G#p9nHW5XK*R$T%1nLzd z4%^65^1$!YTN{wWHuZ+*7yMQxtl>vO53)6IY8(1HzI$6G=7>Z~tu94j;0VxS#_mMV)z0QHfh%7wb&6Wd5MJn zbXf5Uw6>w<)*&_}#2nU8d+Y5jJMOt#_2N|uraLfRDHyt4CRF>f7rvB9r|5HH1tc+h zva3``>*nM1EiH&auzva-lB_-rW*l2CNyH2!*l_X0iPf!>EQAL=@V;C$n%~X=nu#8b zveA>phCf-*1s%JCupCpiEWACjudM-4w(8)WiuUEdud3U?+Jbp@r*?N;j`37j3T32Y zKo1&Q);B;7X6(Hibi;MCVOHI5bozCSFrOyg%n!sz;$+fc<3VoUWN#WTaw5=tAJ?2# zOYYA}E&zLjAWX728KsFeLML2(k@oGVfCbZQkuK+#0@Z|*ek;%Rue+DBWN-N-Wd1fZ zV_jA_%h14q-6HBw16Ato?QAWquATqX#}(mg5?F^CwZ)-(O6hv#^yUEegaJ4$kbMg6IydESY_DVZg*aGQ_rSj~zSCGo-P#LqsulDXM~)hx_U;PmH+V9=yKx373|V5P z{?lL^0&y9zm1V5h-S_&&Bjylq;I)moCX2xCHx6800iT)RZ0VE2UWfGN=oJj4$k!Z#N8Q*}=M|J}Jr0MrfW%#emcN{c)^p0Xj_FP3tuut5!b2;_n$d zv0@S38ePxTInn}uDDfKhR$X0P5}KY~%WiD6weC@pYj;hdf6nJ! z6#xqYfk}p(%l2TFWb~Q@5k(oj9*Lm#sfk2cm@2R-=C3uP{%#k5V{UOmz<`#hs=GUQ z2S;_MUh5WjlVyreH+pq!TLc1%h1Cwt^Y_b8r__@lU%H(XKB6EE6rVP?TnY<#$=$`$ zx7ld34bFMpKr8&y{@k0P>qpCh?La(ENgPJ_Km*lAO34lvJ?u{AO|(Xhtp?T{ES*Xi zIb&~bVX+z50Rv-+K0e{}8 z`RGOV%{%*E6y#t&2pC3{Y#{kQ+vY)q}(-C{`+R*PZ%gGw) zu4r%78pUNm@lTU(X#@M=pt6qP({1GBgM$s5cuE<--l6C6mdtJ%7^9m8?0h0VW9t^L z1|Dqo6kh&58Qv4lOdSzr1I4H5EM_*CL8&Ah4G3z8F`OJ5s^R#~mkJee2HKql;c44#EWEd2GsIVT$S2^{%(tce-8W%((>u}$lwkVQ3 zt+YG!VB%D*3+E2lqEoIHKG3o2&ie8b>{XIJqqZiuuROEp_uyu0(Efnm4_bXNEu`cq zkT1-E(e`K}GIWI2ou+$cpqd&us{9hs#+lXyY(wS`DAA^Pr~NHg7U%-ZHOc7Zh7Ij2 zzg7m&n?8yUALt8-556)31&z_tAF0F~<|pP&=6R+b>vS&vSHZI7?75&?b-*{az6ZNv zSf6&`8T*5>+oLg#uya~wA)-~H47Pb;clxO-!|eD0Y{KgUHf0q zmhqeB>MDB18a6m1KldP9SV1F5M8g$8%G8u2WPy>msI8nTO({?XssWfCRD({%)9}CJ zwmnsy6IN&T96Rpa6>Gsu|KznCKry3|B9Cc8*Z7ZFhI0J3 z%STu6c$aCrfy1{AC!)sUV7~+=+3o?e!$jmX;xYk`8>0g4XljT70r&Nf`t%cEN#F85 z1h34OkC*)=j&|;Oeuj!Lb#UBv>WL!Kp# z%3e3fICC)1h7eZH<30g!ALcA3kXM)(wcWlGsI)0Ju5@-UybZ66A9Fenw6ZbhXiOt` z-B|)p2u{hS{8fQY;-0$#Y3{O~kAT#H@zTV2F2}J) z#hTD~A@Ho?9K$Lg@b=5xr8a$$8Ed zuwAe4`+vm+x^yE&K-VEMvJ(|zk8G%vxdirxGfON+*2vrf-`gT9Q>Cvg@tE>Yw$Z*3 zP+$DRHUx-Mf#yaviY)@g0(=m$&Cnp~f!`Tf1*5)z{)}burf2ddgz4>DLh1_Tq>-GS zHjON@hgu9t%G zEcP8Osyd?MQr~093&h6Ilj7`2&vQ|U|qqq@K#f@-^L9Iv-?5+=6?%I%h%m~a+bU@MZdjeD;k}^ za*J&XY9z&AdJKynW)oPn=rA)^?J52uT#)9uzC4cmFCgbJMC;Au(MySL;{IS>?m$2N zT|CLg*sm-o8uu=r>T*Hx=RrA#2BHyIE!ny=j{bM#_P1;iMKn*CGq;` za917oV0BwuXiVb|V}5!A>Mm#pB1!)@f#oT?+0eDM-;>{^b8KayXRHbj;__Q3c2A+F7? zyYf8>R?$&Oo2Om$YP}l`_+CHw&ezXef+)#t1c|+Ht4~t9JlcT`G ziXb(w!MEzCeQ|_`YxC&9OCSQ*^G%=y4Lp1no6DR~^U@4bGu4P{A7dHQJs|tyS&Kt~ zZsHx^we6!T`G?Xhs8aw?g>o}g2sz>HMde9bgAiFc$pWMxZ%F!~jlQIdLuUM#*rroS*92syOiaHvO)Hl{0McR)T|u zrotvkE@@2UrzSeseKWyhmrDM@y1p~*29{lGR4>n)r`3AEde5JRp#`luS!1SGRAdvL z-RyU%Ft|}d02;mTd5|WV?}cLNM+wGFb)j(DSa4^kdU0yc*!m3#+TYY#h7E>NjRP{| zTUa|IIl^d;0QoF&4SxkejwuX)zFvrGZIWlFL^8#+q&)6FMj zcZ_$a^VK$2ysN38KIupzUdL;CM|Anaf&lHbnvHYGojz?9lMECJE@_ARExfn4+pTvz zsU-uAE{I^e(Yh>JLWVmEcLtjzb<+OfD4Qzf`zS|zDgfAC*=hk1W*ZT5<1c&YRHVs6 z17@HZXaVXD;kLOa=Rs-9NcML@diqia~ zQkqOGKND?v_IA=Pv3MHZBSvT7eN1#B%`+L&ZZ0e*O>b~G1RM!Qou;eBTd~c{G2 zuTZt=o*h1Ic5Ai`u{iIQWS^9boMBP?0%*lZ1{{gS4Lwo6;J}1}CqMvR_a#Z>yN^Re zE)AnUE&}D#fkBJ*c92Ob(6AF`x+;P>s${+9e@r<3RA_Z6?j)*KCoU602??p_RYNV~ zqr>{IF<>$_k{X?RS=yU_yFda8AODLBY$hy}Y*;FhL<8qYp-7R8-HkYCc(CW3jYO3}}b-~cCf zPXpNp5;TIvO7fumCyc-}u{-y6GXC+>lcFS73DlCXSA65Nc_u;8V@HKb>oe!Ye{a0` z4%HT;QDXq1sd>3`PsclLIc$B+A(w32CgdV}4tMsj%@IS8nSG`!}FSB%xF zc28vgq*d!0f;Aq#cM&Z|{|Ojkb>B2jag$2wo^$gn@q1;Vd$Va9P)#s?virIX{pV(B zxshLMM^c8da$O0pD7w9Pbw0Zh9?jir-AWo$z5wuK4bPh#!L)OE@QU|ky$Lon>DFf~ zO?ypoN8RhYJLI(-_kfy}OJE^-?a%XGg6Ahq4})n*9CjFy355ThhD>yb9Sk0SfbJ@K zkW&^RFQ4FnLkZzXQjh$MfwuSLvdZfxfDRR=C_8{YUS#pkwu8*A~2`rnGH9cnAT2~Wh zMXg?5Ku26v+@%Noi5qTadp!W&69;p<>c?^+*xM{;$0{wI`1bFjf8Vx_<2ltT`U_QqQYxn%c0gKNq4ovWgawIiO@Vj||hZ@<7 zgU19Q2Q2$-n8|m^#G=3X-xsd`_E*X*Q3t^S{*K+hEe4t(dS?moADq%Z^gr!}R6u=3 z2LZwV?asu1zhiC(9$FfYP((o3+9n^b?EzX#X76|W8yhaK3;geO0DjRiKz|U2D1Vvl z746_$iyazbhCzLu2LpfNoeR(hQg_0v^36XysXVWrvzb6nV9vI|eQYm8=%K%K zN>!_fyG+<$mFP!>m4{!Am|gh*_6I6WP11p7JYs&X--Y|iOuDiEt)#MYyf8bwA2`<} zQM$1I?d%j_UiM|FBi~jSr4Hx@O(LS(q8gAKNTbkQc&_@MXd!SsRXhSr6i!~}0$PLY>tDKJId- zrU;2*1#MaHyBZ$bOE6H`8mUr9y7MQNNNUd|A|mM3#iJp;FF~9KGTEzhO4vjfG`5gM z^kyQ`yjo<}Al!0PH3D)tL=|K8@jXWgNa44yG)emjg7!(R(CCsF$C&3*A^idfa*`Ng z#hS&tO>ruds#@YdH?qUy^?UbITZ|ZQwo5T@KZJS2AVDQnVQ&lTHeTdBT5Ko2h2|%E z^SoSLxy9ifS8|_NYupo;;;Uso`%Y>9QaAZFba{djy5ZPjk`*>M!7Y`$f>A>JIeRR% zC49Zke1TlsI-MTgO$Vo=sM&P!n#zFuB4lPhzIMNDq_dHi>bf7Hn!+7@eRiXUJO3;< zdX?_?Rj16_jydI7-E88&r(DYk(qpcxx+wm!!*I1@6-jAi(DvTcub zNy@36=xzW%QT}jMvFy$17*(OtUg70aDSmHfvbL`>oPbPgN#kOql?LZDs-%s`y_-7< zw(7iux@R`OYAy<#;+!yt==>JLdpAX#N$WGvBgUxi5NtW;Mg=>BTeah&8^zs=89QN* zDd9HLN?)YF9LDHJVtHdb&Ng2cI9_rER(vCbNmjd?4}fB1)rIu?cnt503pbO|? z3sr@&Q=J0znn&)01$pZkG^_gqcXRBDg<*}=)ED8;8W>o7hAdl?4RFz3YD;;-F|XeC zd;sh7dRPnfD0D4c`Y<$sR~1=tTzJb90;+{kwDSbf_T};@xJKc)L3x>#dOY~R@Nr`3 zvD*8I;#6{Qt$hs~ z;;wny(mOYoc&G1~v5knHd;~9GY~7qdyN2svNok!{CE3+)tOhGYj~vn+_BP8-)6|`O z%AtE$^2f`-Q)MrSGr%=G@!ueWN&?2#1WevAJl1&`E6uuKK*qh}#OlWg7i!cpMq{LO z6#T@?!Tuh^ktn|oD%O+tqTbF?ygINqelD-`2}D*`nd=LxQn zCk$3CitRi+>BspHzNo=$Br}avN5!H&d_9e8SNz`^c3}yfW;D~5Oot$cRBcx#U5xu< zF+6gTPTypT)gDbUm5Wb_oKhS^FDbWE@y_6s*rS)|R{Y?w>0?PV&xEt{PAsbcJqG6X zxLTX~W}Bb2Y$VMz>CcA|KtYl~WX=AjliWIa(9V&+Mbp~;7*AM%8G@4ugGuU{B4nRU zRm-GzFH~z?D`=-Pw;PmOgK3Ls^om909VK-&%qK|>)=rxD`KDzErBt(4Z_P_n65vwP zDv*5QmXTDPPv{jNj|_O{kej8+FS80-J$@PE70z9maFngyT7IzyGFv0w^(^n6A*r{Y zuTeu#sID)wnDljJ9^8pt@-V#xR}-x)HOW#`x|yuG+%0Jt;vvUaO&LED&|0u!dGsMo zI`j?y$ZkK2p(grJ(Q6%hxli|gn|1;H=71k z5#v>8@&4Qgnw|-O3V-{mbIYisbByz?x~93# zWBdFm0nczx-Q2!Nfor*I1)L+!tXRxQ%1z$ zR}$Z&?K`2ceC@yf5fBh0;v8*1stY&3RDA8izmqh5LTS(C0D~gIxOcF9!G#rHa0PyX znNJYlUb=$;1)S|a|KkgitWQ9Z3+`6yL7>St0p{NQU-Sg{M5WV@0tV0;j8}kP{P%CZ zV7dB)RsA7A%NT=^1JL7|`Css6eL|aJ05pXgJeN6VfmSf5`v@ua0cNb5m*G=hE3u|XD&IX@Qi%|U)4rC*N+ErL669}$P z9b@nAD^i725s3+^g4R-^59*po*@kJ5)w*)4ddox!KO+6gqOv_DER2i*C81_^=GZIA z_SHYDJD1|jXUCK2NL3C^X0Bs$O<5qB!SiG%fxl9f%TYcoPLe5TV$9fLGB*=X8V#;t zhOLL2^}@R1^e9S;9-q?ifz}Sp1NEVdy_h!-fD4<1cE=r)&x8i_hc^hrvU%&~x+K2b z65;au@30LzPB~T=L`bt$$4JZ*#_EyZ;{+4410&~43FdCH-KG}$f}e0>L7*5#4^cc( z21{ex(*)>V7+RZ+d@JfD@hREev)dK5V%kt{gAkMF@7<1E?&X^*NOiyoGVO)?aB?cm zb*gJVt73~9pl_>@!gJ-1L-7vj&jMpsm~fbd!Vvooj2Pht@?-Ne3dFadW_F5NK%cU< z8w&swB1DDeB1?eD|7*P_UL#-SKc3MkQHlH7b)9XU3dXl=Q|Bh`d$D!o`Fv+FOptXq z1J~3NcWqcJ4A8mkJ#4RvzpUp>qu~z9F~NSv&t3cZ=wV*F93|>P!&rVO1nvB8Q`<3b zUmHkwwW2_b;+$RW$ub&RT&D^yk1lCrp_-eYHZUg^b(Ig=8_>Brmz$Na&=h88Po(HlZu;@7%E= zED<-%EO&q3qMhM>fd7sPnnRg3GPI3Lnyr=glf+S+-;h6HfKzR zZ57)r>vq?Zwnew`i!ZKV}Lh0)SjbP*HPV>x}VuARtbEGP9b z&xF~SBHZmm^}C$`M{i%kk1})NSzIg3{1qPNhWSw=uk-6eqX}ln}Yz!*|>&@Pzb`Cf7g_syl#W6#<{` zA&Av30)tSfiDxm{0jJcXaoSRO=H> zoPguWEa$PQr65H0*Y4p-_TBvTZhA$lPEXqe_4(q>2t;;8@v6qD>de%GTK?(YAkY#h zcv2|JA*6axMhDvMHdlgwT>%Qz{5Hi0cf}{2My1mt82cn~v^>7u0LS(@U3O!PN3}ZF zj=XYJkO>4YDkiXeo%{4c+=3iI7N~Y=KN}VX0!RrW%rfirabzDxKAI}G5Cpf2 zNYSuwzaUct__}1246!6wuCwe&8#k<%}`JOj^_T)&UJJLO;tn+o&GK$+Q zD*Lp24eNNrF^`BF+<$Jofe?!R1_h zuINeUS^e&asa0&M7BTc;OPvUOg1BHtyUuxl|4>1J;R;c)dxeV%_YfY9Z$=) zeb=C+?%LWmsxb<^;+mQ(EtFbAeDPbb7UjrYYn{C}Ju_+1S$(#A0 zZ7c~?wP3wYF>Rk(VzsVF#npjj$ltid<8xkxg`SZJK(zEn4&pJ7_4}se|8lg4C|2i(Ir#jZUm{IPt`R@T5 zxnKa2bLK!F;tzB>cK~jgH_sO2(#!#bI9rCBjP}Alw8}yKG+dtSP)FMA+8aahgfewoEnaGtR09gVOz2lpbS(eDRFdH z0P-nFK@!H>YMn2X_m6?V(3i;Rr2f6$<)4o>Jp4|9PEzBKyLd{}I@7S0e|g1CEHdUj zOuXUK2IF3_r1QNyQ>1RpBG}-TarNss`*QV89d)H$xn=(4vaGoj$;A>M*d^;lHkWMc zX-1xrjp9lK=^wAJ4^-s_nBSbr_0yhkzS|qMnm-PDX64@HMdX*H-s_Fv6znPS7^<_U z5o>biyw;Aj@~8vt$cL#5{Kv9;CWGmR+g$>L`no#NyRV{ZkYrB?rj`SH-!r}hqOT_! srxM47eD;M-)31ad|D${+Q8v3EqT)B5YtLvOIm8b-xjPc~{qy2~0|LKy{r~^~ literal 0 HcmV?d00001 diff --git a/files/line_profiler-worked-example/line-profiling-worked-example.ipynb b/files/line_profiler-worked-example/line-profiling-worked-example.ipynb new file mode 100644 index 0000000..90a1a15 --- /dev/null +++ b/files/line_profiler-worked-example/line-profiling-worked-example.ipynb @@ -0,0 +1,65 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "e80c86cb-d60a-4e45-a34c-191aab11acf0", + "metadata": {}, + "outputs": [], + "source": [ + "!pip install line_profiler\n", + "%load_ext line_profiler" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "de5e278a-6826-4f42-b1af-496f5aabf996", + "metadata": {}, + "outputs": [], + "source": [ + "def fizzbuzz(n):\n", + " for i in range(1, n + 1):\n", + " if i % 3 == 0 and i % 5 == 0:\n", + " print(\"FizzBuzz\")\n", + " elif i % 3 == 0:\n", + " print(\"Fizz\")\n", + " elif i % 5 == 0:\n", + " print(\"Buzz\")\n", + " else:\n", + " print(i)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c54f2642-617e-4a51-b3e8-1ff1ba0e8426", + "metadata": {}, + "outputs": [], + "source": [ + "%lprun -f fizzbuzz fizzbuzz(100)" + ] + } + ], + "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.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/files/snakeviz-worked-example/snakeviz-worked-example.ipynb b/files/snakeviz-worked-example/snakeviz-worked-example.ipynb new file mode 100644 index 0000000..625054d --- /dev/null +++ b/files/snakeviz-worked-example/snakeviz-worked-example.ipynb @@ -0,0 +1,89 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "83b45371-9cd9-4a8f-b0ff-ceb1bfc2ecc2", + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "\n", + "def a_1():\n", + " for i in range(3):\n", + " b_1()\n", + " time.sleep(1)\n", + " b_2()\n", + " \n", + "def b_1():\n", + " c_1()\n", + " c_2()\n", + "\n", + "def b_2():\n", + " time.sleep(1)\n", + " \n", + "def c_1():\n", + " time.sleep(0.5)\n", + "\n", + "def c_2():\n", + " time.sleep(0.3)\n", + " d_1()\n", + "\n", + "def d_1():\n", + " time.sleep(0.1)\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0fc38195-3dc4-4a7c-82f6-1167f54d3182", + "metadata": {}, + "outputs": [], + "source": [ + "!pip install snakeviz" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c47affa0-23cc-43f8-a4f8-e73ab2f44afd", + "metadata": {}, + "outputs": [], + "source": [ + "%load_ext snakeviz" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "58040218-8578-47fc-9a18-476f4b27d25a", + "metadata": {}, + "outputs": [], + "source": [ + "%snakeviz a_1()" + ] + } + ], + "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.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/md5sum.txt b/md5sum.txt index 5e8db1c..8fabe10 100644 --- a/md5sum.txt +++ b/md5sum.txt @@ -5,8 +5,8 @@ "index.md" "3a6d3683998a6b866c134a818f1bb46e" "site/built/index.md" "2024-03-20" "links.md" "8184cf4149eafbf03ce8da8ff0778c14" "site/built/links.md" "2024-03-20" "episodes/profiling-introduction.md" "86c0d8691aae9c0aa4b6f23e216a2978" "site/built/profiling-introduction.md" "2024-03-20" -"episodes/profiling-functions.md" "806c4d44bd7b0957030044a3010c3004" "site/built/profiling-functions.md" "2024-03-20" -"episodes/profiling-lines.md" "547d98ccf5dfb92abb63feb0e02fc8a2" "site/built/profiling-lines.md" "2024-03-20" +"episodes/profiling-functions.md" "5fa15bec7b1100aa5bba5249cabb79aa" "site/built/profiling-functions.md" "2024-03-22" +"episodes/profiling-lines.md" "c00ccba171a20837aeffc9f8079d9e1d" "site/built/profiling-lines.md" "2024-03-22" "episodes/profiling-conclusion.md" "a3c2deb1bc4efaaf4a2a70f966734b71" "site/built/profiling-conclusion.md" "2024-03-20" "episodes/optimisation-introduction.md" "2c2bbafab97d4db78aa5735839516c81" "site/built/optimisation-introduction.md" "2024-03-20" "episodes/optimisation-data-structures-algorithms.md" "029ce8cc24d92f2d819fadadc06b5999" "site/built/optimisation-data-structures-algorithms.md" "2024-03-20" diff --git a/profiling-functions.md b/profiling-functions.md index 15daf64..6677d19 100644 --- a/profiling-functions.md +++ b/profiling-functions.md @@ -207,6 +207,42 @@ By clicking a box within the diagram, it will "zoom" making the selected box the As you hover each box, information to the left of the diagram updates specifying the location of the method and for how long it ran. +::::::::::::::::::::::::::::::::::::: callout + +## snakeviz Inside Notebooks + +If you're more familiar with writing Python inside Jupyter notebooks you can still use `snakeviz` directly from inside notebooks using the notebooks "magic" prefix (`%`) and it will automatically call `cProfile` for you. + +First `snakeviz` must be installed and it's extension loaded. + +```py +!pip install snakeviz +%load_ext snakeviz +``` + +Following this, you can either call `%snakeviz` to profile a function defined earlier in the notebook. + +```py +%snakeviz my_function() +``` + +Or, you can create a `%%snakeviz` cell, to profile the python executed within it. + +```py +%%snakeviz + +def my_function(): + print("Hello World!") + +my_function() +``` + +In both cases, the full `snakeviz` profile visualisation will appear as an output within the notebook! + +*You may wish to right click the top of the output, and select "Disable Scrolling for Outputs" to expand it's box if it begins too small.* + +::::::::::::::::::::::::::::::::::::::::::::: + ## Worked Example :::::::::::::::::::::::::::::::::: instructor @@ -295,6 +331,14 @@ In this simple example the execution is fairly evenly balanced between all of th Below the icicle diagram, there is a table similar to the default output from `cProfile`. However, in this case you can sort the columns by clicking their headers and filter the rows shown by entering a filename in the search box. This allows built-in methods to be hidden, which can make it easier to highlight optimisation priorities. +**Notebooks** + +If you followed along inside a notebook it might look like this: + +![The worked example inside a notebook.](episodes/fig/snakeviz-worked-example-notebook.png){alt="A Jupyter notebook showing the worked example profiled with snakeviz." width=80%} + +Because notebooks operate by creating temporary Python files, the filename (shown `1378276351.py` above) and line numbers are not too useful should still be helpful. The function names follow the temporary file name in parentheses, e.g. `1378276351.py:3(a_1)`, `1378276351.py:9(b_1)` and so forth. + ::::::::::::::::::::::::::::::::::::: callout ## Sunburst @@ -306,10 +350,11 @@ This provides the same information as "Icicle", however the rows are instead cir The sunburst visualisation displays less text on the boxes, so it can be harder to interpret. However, it increases the visibility of boxes further from the root call. -![An sunburst visualisation provided by `snakeviz` for the worked example's Python code.](episodes/fig/snakeviz-worked-example-sunburst.png){alt="The snakeviz sunburst visualisation for the worked example Python code." width=50%} +![An sunburst visualisation provided by `snakeviz` for the worked example's Python code.](episodes/fig/snakeviz-worked-example-sunburst.png){alt="A sunburst visualisation for the worked example Python code." width=50%} ::::::::::::::::::::::::::::::::::::::::::::: + ## Exercises The following exercises allow you to review your understanding of what has been covered in this episode. diff --git a/profiling-lines.md b/profiling-lines.md index d8239c0..e93bb0e 100644 --- a/profiling-lines.md +++ b/profiling-lines.md @@ -238,7 +238,42 @@ Therefore it can be seen in this example, how the time spent executing each line The `-r` argument passed to `kernprof` (or `line_profiler`) enables rich output, if you run the profile locally it should look similar to this. *This requires the optional package `rich`, it will have been installed if `[all]` was specified when installing `line_profiler` with `pip`.* -![Rich (highlighted) console output provided by `line_profiler` for the above FizzBuzz profile code.](episodes/fig/line_profiler-worked-example.png){alt="A screenshot of the `line_profiler` output from the previous code block, where the code within the line contents column has basic highlighting."} +![Rich (highlighted) console output provided by `line_profiler` for the above FizzBuzz profile code.](episodes/fig/line_profiler-worked-example-rich.png){alt="A screenshot of the `line_profiler` output from the previous code block, where the code within the line contents column has basic highlighting."} + +::::::::::::::::::::::::::::::::::::::::::::: + +::::::::::::::::::::::::::::::::::::: callout + +## line_profiler Inside Notebooks + +If you're more familiar with writing Python inside Jupyter notebooks you can, as with `snakeviz`, use `line_profiler` directly from inside notebooks. However it is still necessary for the code you wish to profile to be placed within a function. + +First `line_profiler` must be installed and it's extension loaded. + +```py +!pip install line_profiler +%load_ext line_profiler +``` + +Following this, you call `line_profiler` with `%lprun`. + +```py +%lprun -f profiled_function_name entry_function_call() +``` + +The functions to be line profiled are specified with `-f `, this is repeated for each individual function that you would otherwise apply the `@profile` decorator to. + +This is followed by calling the function which runs the full code to be profiled. + +For the above fizzbuzz example it would be: + +```py +%lprun -f fizzbuzz fizzbuzz(100) +``` + +This will then create an output cell with any output from the profiled code, followed by the standard output from `line_profiler`. *It is not currently possible to get the rich/coloured output from `line_profiler` within notebooks.* + +![Output provided by `line_profiler` inside a Juypter notebook for the above FizzBuzz profile code.](episodes/fig/line_profiler-worked-example-notebook.png){alt="A screenshot of the line_profiler output from the previous code block inside a Jupyter notebook."} :::::::::::::::::::::::::::::::::::::::::::::