From 8b107b4cf9368c203a492eccc4280e6dc8934771 Mon Sep 17 00:00:00 2001 From: lrc123 <892834414@github.com> Date: Fri, 1 May 2020 20:07:57 +0800 Subject: [PATCH 1/4] lrc123 first commit --- Heap/01-introduction.md | 44 +++++++++ Heap/02-template-1.md | 178 +++++++++++++++++++++++++++++++++++++ Heap/03-template-2.md | 39 ++++++++ Heap/04-template-3.md | 148 ++++++++++++++++++++++++++++++ Heap/05-examples.md | 51 +++++++++++ Heap/06-practices.md | 20 +++++ Heap/images/add.png | Bin 0 -> 81619 bytes Heap/images/array.png | Bin 0 -> 62566 bytes Heap/images/binaryheap.png | Bin 0 -> 73592 bytes _sidebar.md | 8 ++ 10 files changed, 488 insertions(+) create mode 100644 Heap/01-introduction.md create mode 100644 Heap/02-template-1.md create mode 100644 Heap/03-template-2.md create mode 100644 Heap/04-template-3.md create mode 100644 Heap/05-examples.md create mode 100644 Heap/06-practices.md create mode 100644 Heap/images/add.png create mode 100644 Heap/images/array.png create mode 100644 Heap/images/binaryheap.png diff --git a/Heap/01-introduction.md b/Heap/01-introduction.md new file mode 100644 index 0000000..48f7692 --- /dev/null +++ b/Heap/01-introduction.md @@ -0,0 +1,44 @@ +# 堆数据结构和相关算法应用 + +作者: Lrc123 审核: + +## 什么是堆? + +堆的性质其实很简单,将堆看作一棵树,那么该树总满足父节点的值大于其子节点(最大堆);同理,最小堆是其父节点的值总小于其子节点。 + +如此一来,从最大堆每次取出的堆顶元素是该堆中的最大元素,从最小堆每次取出的堆顶元素是该堆中的最小元素。 + +## 二叉堆 +>「二叉堆(Binary Heap)是一个可以被看成近似完全二叉树的数组。树上的每一个结点对应数组的一个元素。除了最底层外,该树是完全充满的,而且是从左到右填充。」
Cs)e72b{>3%J?+ab5SXs)fqqaXXiNJ@YL zT{a1W1V8~*p6xx5g7^8R#S{PqN!eUx` zpHFp~5`EsfdeZa$k0wPW0&&U(Rn3b>w0TY{+#2-~uSX6*n-amZ8ORffLe>(>LKDTu zSF~Ju^%Bo+vLsIceSAWfO0Vmhrg{BwkwA`TBy#*|s%C;ws5EoW(!o_&-!u{=YjkMJ zMG6>qS)ya*E-HW$SsIe9qX|%h*J2+g5s|Vx5wSTQ#d>V3k>vPdU;{NkcuPYF#!2Yg z^kD_hAD~v&>WZAo>rRU@KR^=|jwbdj({^)qzCnA_^i8jSPG@}9SXG63Qu_xr87lje z2!)al2_JM*)vc G#YysVXg4rh^!M8f(A4ULGrm?Y6+=p *D-;V{)2zbuT{)ulrW|A!t(TBqtArKnia~N{GDthu&CT+;;=tsq7V|5y z>p}X`7l?KS*b8o6zp%)bpibNx3v42&=cQ78KcY=gFSele3NKaabAiliGBz-RH-bp$ z?$rg{L(7OI1q~op!l;Bh_||%P!sc4R47#o%(z71u02%ZGJC0J1&7^`>Qf81E8r;A2 z5k^UEAc|EBW2wVDEXMLBBizdM61 J z@d&tC9GyWCKuGxGzHIOw!>T%S&jw-~tg#?P16ti*+aJvUrMNYrdc_+M!rQe vI{jTp*B?dpiBYvSz zFJPvRs6}^Vb|-MUJ_^9gs`e2|x9-cn42&64M4}2HXtIWRSzsR^i~>23 vf&S51Y%)n*tr1oLeVPmVW?NQ=4}gDnVK2Q4I0oh@~Yed zbN~{>0Lp)Ak)N88Apew%>f5DKcd+zuIv5G4I8vZ4sw>!H>-~CjBsl4O;Nh%1WD)%u z&zn=RVAuxO%8zaqWYrkX7P*$2b4IS5wZ0aKp4-E-3!Ltj9qzF@jfzh|m#c)e8CFt) zO73lwr$=*w BdKa!PNfN4zOpXwp4G)UoSVntZ8qq+h;0pwTGne$boW zEq2WZ3~#Y76||7)O$T$4)z*Iv1$F9Lgqq#zRiE0^!&>splsW#@=aW86E|U_6vo#SI z&YyBU4p(ahHJ`QKoYa^&P~PissKFc1u&T~)rHOlS-QgR{Qq^Y1C;K<|%m(JRL zHXBYsoEY@2i}B+UZsK~-lb|a14qo-72$j>(i4*%h5UyQI-2eK-SEYJE$@N<0{%l<1 z_Mi?q7$_rHDW48m126EJgL%_QQ6{HHL%QBr2V`@>*zu>T$cDfMwY} hGu|k9Qg* zkB(} D1(^O@I^t+H;@1maQDEBsq>bK9Jw=6Evv z+kI<$ErK S;7^+X^1LFO>R2?eLd7=PA9C&9O!qWjU{F+r&!DxnV>O+ !{&Z`0i!qSg?s$~t?e0)F_ITHw z;Yp^GDW-; !) zboRL)mbot$uY;h3j&D(|6P^6%`z78RTaHw%k5|hD-t|IhM9kWVS>E+G^lCl(d~G6i z^j|=uDDvh9Ey&y%7Xvjv*!VOtln@hxwr)1Pj>Cj7?smAGpkab0Mzd?D&m60TDKLJ# z;^3Fgzicwu^N ACIkQ0DFkG27j)CZ7xNobt6Rgx6u5^fII+`(rP6GF4{f=^{ zd}qY05l5U9=j4a%2{n`!in7OuUK^PEX&5rGca-jakS;^9(c*s8k}z80x}cDxzV*Zi zQ(C|7XyWvEB0*;;U;;7W)PF)BQkjX0vBkLYtu*Vp3zxpSk8Vz&-90V9Z~FrU@I3b7 z6l9;bDezp7tg=%+%IV#^cH|Y_>Y6|tWJKi7#&lvd{Iumdkv*807rhd=OBY%; jlsUlI9BUBoxn0AXgp~;eCdo2lB@Bp5Rl@@^0;53A2(eKypxM6 z3*aWQ*ost;K?6NdOe>e^YmGX9=S-EM!PUUK<%z51&7NqmX;+1mjc*Xc5;M9Lf=&~C zX3| =4WMEJ8oku;A9RxUbb;@*_^xw5~@^IGxoT>gB54Z_gjpcDAb#-H7RQ zNwZlT^f~--GO{nbawoZJA49CIsGk*PT)-R`tLyp{m)Mj_%d}{p<0QAhtc)@;Rm33= z3voMRZi(Z^;N7Y@{>gb@Ti;G-}bLQQstfwEVM$Z 84Q6=|vcX)cC(!O^ zfi%Q1 ({=lKUpw} zv*47r8NP1jDx @enNJQqcR&U+TG5A7o&s*^4sAN?;G!j8z4=NPcwT4sO zcR;{6*!W=zgzKNwOkqj1I+Q)6M*{%05{RXYh*#rI17uw&Va~ ?;|*3=O2Oh(aA4{5eJ#)*P|pH2Dk&NuO5Yew D-xKlZiZ~WJx@UW zXWsGkka?c3KaGiY+L-LCx`>!Yv|P9QCx<)T?EQ(5<}9Ps+*aFH>JRA4+|~!I)-_~m zka=Q?wz*?8__B1ES$E5prUcfl=$mWD`c`pH9S;L&6Nf60*G !elC~38UDEMFpoj&pIBfUEz}%1RRiYr5 z-H#K?E>zs(tZd^vHeFP1?|x*w3t2$wAU|32yR;lT s+$^u!UbWCb^6v3g zZ_yU>{Qt+bu_-Q5U_VyCSse^PQ^)IEW465=$UpDxx+Z3~?2z3gj># _Hf|o!V~rJbqhEd-!x(@PumV<7&<1(@ 9c&oQ720fFBJ`YwQD zW!=pj^ERLAXKf_4H*imxt*fv!fx;~ZChioczwT9gsZk>E<<1I-NU!BqE@b8JjypS? z2q-+~FDWxzwAmQh!4P{p4~m~hGL7qR-Hv7@YQ>LGw5xpHXc#jx;xiyqy&N6lNdT^z zM^GGAH+TrV%?!RWGi&t+Jnwm|xw3o^OWC?zJXp4Jci#I_d-P@B>iM`hs1IFAd(qCj zT&%DMEI0{c^;S>*Cqj+LE|HJ1wt9I(PR&+B)gUZhMrvV6epwqX$jiHE6)5%D+*JmZ z>qkB?inLY0dM_P$F77?Ne9fY`JB+HT8djTXGafxardt15acWdK6?mtiH|b=n1}hQ7 zsFO#VomU{+e0T4=_u)#^; _JX`Esd+1juiNBZ~N`>Ris&&jX9wys|d)UCOXegAR^BSyoBPX zd{8zf9D2qZ_e?LZyz*rA^u%h8Yqb`n4R$rsM71oqt8*(X6(IMj7)z#_{`AA~(J+HQ z3LTbv=K-l@pH=9+`p??V%LFz1?N+`}EILV$=O|iB(*Wk_{7;XazCCU60VU&{Rkw ;bn zN)YTCTFoH#1*TpHZPl@bm#2*BXIawn6%fIal}7(iJ36E!(stBSEj3rWJLOMxz=`9I z!Q)2w$&S>DykJ1xY Jhke_mZ*lR#R xfj~uK&E1D}yP<=F a)!zz5Z3_J3w^5dNwAK@ov>NM z)MW}U=_eBT%Mu(bJ^aC$q?7q1d&Wxo(ol PXo*Vt<6jD?T=zpOx%$9OVGg924T@l zx5Ldo1=;0qteYTIHn}?!sX#+6@iNr*q<3m+fRCeI0#uG+C9PCC$SE CSTbX~D=zI;@F#SMFW<4u{Z8`VgF@s;*2BCqh2`xhPjYlBaHxvFk_ zd-jDP!RiH+T}|$~t?pK~G);J%fE0;r{PbkkK{z7Rb?LDl7=c@@S(S7LF~q@W(18qQ z 8sHt%}2Nlu+` lvZFpU=k CjvkFR$z`L?wQ64jlqH5
k93QQD<$PMgDPi!bG)e6|el5qw zTcT>?jeEsM5_5tKOxD4@ctL&sd1jF9kpP3H@-h}6SNRBn+%e{p*<%6~O&oC9tGnVm z-|6SQYX^|=n&aA?wwedg5hy~9nRX>Yv=%;kSAV*8 ZXCb4*Ct`n; zpB(fb#&we(jq`7QWfM7i(~}YE=*cv0|K%+2i|3aCX4ty*W|S=>O-rr!G)n?xj3)AR zsY^)(=cX+RYxX`d`8qo1>_KV8)zTsTm-!QJhdxl^oM3Tc^%MkwFFy|PR0B8QB*FmI zeuXfA8(^R}eVFzG6hnlYJ*ZFafqb==pAQ(`1dXfa#ob~Fcs=VHHZOEjhd9=txNl$< z6f?RjWKTdKM>wG4eyq>in#w`6!%Al>l5XP4S!^AHIeL(t+qJHdvd-oXsx9c(%=7Qr zUFRyNofE`j)SeO{3ZmAgXoQU;I)Qi&>J^oP`ZcIx-GWG)n>Rp9WUXiQj92^(ldkKV ze-u$SlQx2FmhUmYGMj0KUGzW!H6D}=$09M%5aO6xtOQqz3$W#Zm1F8}BUZuB7s&CB z1jV+<50A||+_OCk!GVUYrm(sz3AiH!S{my7j >rN@9FS?Kg~D(l-9+#}=9?}F%EuB}q-vMN zm|qzVUt=*L+97$AW`4=U)kxz&OzPW#Ie_eX>SmHTm^y7jrh1RJ2pboO1vO3+{r(N& zB0O)th4>A6WGXrp+SP)J{3wTGg{1237$=_%vZU=8*wbcG-<`g1>u6%J8oX4{^qMCw zkbs+0rcSp33JUAo M<_OH;G%*2c+XNF`T78sA^A_2yA9K^ctDDa^~ni4<6i?)!xp1 zRtg#~CEKtXT`&lx*wYk;vHAk;+2544Z14*I@jzdw7SCF*Q(gjeC8a8OnvGo5FVbP$ zJ(aBBX(x-*OUgN+TI--k*kwAN?lNI^*h?G!1rpKCp!%6KPOxe*!kJ&-9(-?9V4 z01CoH6d;QL?Gbu-F;WcD=FeK7V0(xz;cy~@*^?v9NQD>lLw
Em-7&;U^>iWgftqD?nd;Z>=ZC>e)M)_eLw4G{SZOuzXiipICJoQAO5hw-@}7S%$R z#RaU#qYu1c2SgCoPXIXN-(tA>N;mbU4?7kFz%6AU^V#VGfq2&Xa`Erq(0~@0)a-1= z1~R|_)PEx|RFfh`xeHwY4la-Rr5L{-Jprn58I}R8!)km60H4<4HLU1TJZ}{I%o!2< zpyH}Jti(hNXP|H>B4q+>x1M>Y8@qCrJ6^>c+m}TV%{2*x6{caGG!qa(^yJERytB~{ zv)S&A{-{eG%tQPs7P!$IQ2pfr6$Pm0$^nqzkT#cunyNe{#-kEoAn-#5xOxUG$qgV7 z!o(c%UO jM3u=Zr%H!5#=vu53>bT zK$}3bNwUaJzbnRJ?Brq!XX{V!pU)I@7WA`h( zO91Io80g hLNRP`*(x44uQcObj2n6nwkz==kIm&zX?0U!zQ1A9M9Bc!GXlu2* z>kHZ-Ecr`3XUM`LYeql_&DD&p{hRyM2UHzg}YW_DJGB03uPn^eN52lWQMF61mlq zmNN~nJ()U64_1 Vuy__$QUtqHKPM>Q^uK#4#+J#KTKxcrFKG~p+@p9xXomvvZ zZ6l0yeb>_b42IZOn@NNOYz3L%dcqz5Ntif5_5s4k4E-*PYH!mUQ?Oyb)1rkffI+OR z@X0n1sqI-OQY|1BV6eR(=yv8fUlbWKRfXaRA8Zl=+=c(Fs%f7q2j~DKNF7XK7v6dq zj0UPgQ9?MFDR~~-!%@xG(141g;n!myfIj^^XeiKulN1nnV7EX xkAxDjx%wakV6b1~isvg={1Yfpxt7t|OPKUc&w+mmZ|u z#NgruYv3!_1#G|!ze<5QzzlF{CGiztC!JEGDk0z_hG> 1VU4iDCc?lPyw>Qh-Hi{!Tiu@#)<* z=EDGsHo}fF*LsPX5-#XAI5shu&b#U{oudwnJVcKPVD#v{6@i6%2zo69$l0=s6o#P9 zII}<;w@Gf6{I~Bh@D#(K#}p&szv>O2mWE^;*7|0^R&`!3X?%6_VZ(fS(zw@fv~U8D z8lLTK*o -kilt|GL%)Q9 zK0UQ3B{3rGbK`e)P-Qr`YNIVN(-j17XrN$W*U8EB_a!izDFLEn^$ifgmVLheoh@l! z%JFb?Vw`RC;^n&(RrAtT3&XR>znvzOYzolrpE`hF1!ExE11$=C=t9j3D1)p>f$GX= zzW%4c6*Jj?ooEMINeizA;TLa>GwVP@fFQSGHa2ls%VqtO-WP_lr9T~b860?h;Q&6y z#6YkI>NPl^%(uJsbp^B_umIy#{)FE@Pm8GoU#CK-eK<1ct8=muH5S8vy5D)leb>Q# z&~^FO7t@@N2qs&CGsg(JU>6~=jRWd#_>tmTf+FCGIoWoGxX J$J;dg6c z1ch_uw=W+-^bB=Bnw|vrd2~9ZrY1<#KtlaTXwN(h?0NwBT9BH}gjHM16b^S1-j(vl zQ1NTdY6E^9?eDyQ0eBz4N{j^OeJ82aA3WnX1|OmQ7?AEjQ1v=>7sV zED)@H{eT#LjmtQ>&QI`Y5){E)lArtl*^DBt;=&R>|Of -i^&-xyrh>O2 zU0^$NvhWKdM(Fdek1PKKDF~l_^^B2l@$Z5RtPx6x6T=gn7BcnH6YT$_RTN4<;Idw` zFv4^@EV>RPyTq3T_P!@RS_W;Y$>_%+^MB9{U?}S)pm`?vGXFX-s|Zs@%j)fc6@Sig z$LS7+;sH=hTH*Y+K4t=$lg|rVhnYoBB&2bWW!npf?Tc_PW*0R8V> PPP8*h#SiN+i}pdVbq~;6xV^fD|vwAPA-<$uyux=}1AZQA!VrS=YyK z_@=LRqDE;xlLQ@JxE}q*N>3VKH)0hT9>XUv2{7UvrvfGwk`5GQ^S(qeU4gzf>Q5>q z4P^uG<(uI*EN&B)FJyga0A {&w7}I?#kCc*CGU2$^Eb zE2EYlEx`3#(La(Du>P-GN5~k^^ywt%YzfPLAkuMpIs|;zA5Y8z2xh)!vxFm WKIr@J{E7Ks5>+DN!;>XA^C>)`x&XaaB|8|3tsI@g&|dSh-Wh)4 z@F$XbgA=io*kP4g=sOQ4j@l=nf!dnUHqgExP|nr73W@oj 5Kuc9G<%>XZI?^Y%@>VSTbADH#c`4baM zK^!w8FS!Xflz6D%-j8pbWo4%G52wYP!3v)NP?Q=PoBg-1fyR0`m3lQ{hOv$qaW2W- z?e1K>jZ=u@=;$~h)Kc926H#dZQRA{q7-2-!z3&NiZuNk$t_&Z}Fu6Z>1Ra*KqW0ge zHG=eN6d2<3TnoVy2MJI B{tz53(aG$^834;x1L?B&7T!Y`{2=DOM;I8_F}!QrGt zgu0N8&*u^bH#;P06Y%ZFpU?eCpGKgn!ega&_-(N*9OxV2Kr}P|oa;n7e6LKD?_Y5O zH=yLRj6!bMy)@4WG-!GT)_`#`2QD~4!#Jn* a1?C070p6~0vwltP R2rmuvoNn1s4qOI?uL4 zmKAhcavFiYLvr$Mwk53Mu0Y%PEzlFqZDrnH-{cY~3*BSikFha38ROKtHkzipZo7rb zW%^{mKb%Z&J8w4Ke)&3`r>H?3JPaf@ mOhM4;-gwn#Rb(z1mCqM+ugOj$*;uNOsO-M4RYH`NKux;2;wIu$$F} _y*GC>0e71t&{Y2-KBq5l3&lOCFktkSJ?Gp2C zy(d}&ujHz*w7Q^YHB0sNo$n-z?X7Fz;|njptEH+4mj!OYmMGtRa&VwX^~Ni^ORWeq zU7OGTJlTx_D1@=8^X>*x39~t8kZNa{<8vdEj+HV8L>CCQ{kjYr ?n`Qaws&urYh 89It(X>x}|6z+ZR3k; C z?@mvnlBx&cb8`p2`3_v633mTrRbl&+I4F1UWFw38aw47brmD&*)}FM^fgh@*5y&5( zGGHOJQX)F88efHWc245?=vTB)`9n*`nR~L6sc8~~A^`xl=QF W`)j&Ji)y+g3cqZoy}dw}7gT8YJq z9 ;_Z zhmbht9dF}1M_%-5Q~l$BUkviz?7^W4$_}!`Id-7$AgiMCTJAUk0eL~+-ZnZp;j71- zL&MJZGpIug3CkwF%@N6$YyLHy`T>&L0KiCp-2cG`{HIpQ4pelxB6rnBytNkkW?F2j zr{33|@;*p~&i^wvrl25{63iZcW`1HUu5i>;tO?Qd%Dd{?@YJ!rM4QgTF*kxF!v^Ig z%D^)n7?(`0jD2`~9xrL(dyFQX#=6Pt2%eD6zVc0h^;(EI4))XY80hRc6J6TfqlTVJ zE{Qs5kNq$V(NxTyu=T;2MSx-?*>7s_xN^6X$A6~RR=RMLV;Kf94)55kPwlHg1Z8L6 zRgJ$5>|?t3j@uuOzkPQ|ra80omrRVg@w>5>QH-;^caZ#zMhpA=?jAD)aAhztbkUfw zEGhUek=adb-yf`}oTQ)c2u %Ug}Mv0)32!hl8N!1T#sD^=$xIXzGbwX7Hyj@_C-iwz2iTgFVdpr zY5W#QSD;F>_PelY2c_0kljvO$oxa_tyuX~T66{2cgZ3;|!l*@56dh%sg)9r8D>)K4 zE (})L zKC{%dWV-gvZCk%w+4s3lXWI4-OtbDd!x1E%5fibt2|HZ>%iU z-}g=G^MXxNuZzs@^Z)wMO}(z~eOql-U2~ny^`99T5Ce82kob_ch!7KU@zvj8Zr{GW zw? OLw47%#L*`Da#$iFFg}Z#}pPV5kAmRKkj+#%3!1?Y(Z(&!OT68zQyBFBj zlvcc@*r#=$(BY>iQcx`rDyDr&sA5=EDLdJ$w%}CQQ8DG?i_0sbBh-C;2%1<||ChRk zuz?S}b@!^rY_^HY)zyG5t~xw@@%-*S0{FW1tvTaZ^e-g_X6!=9%Y$2|*!iNM$;L+~ z7qkI&t?=y)yxHXYn--AVZ;R?rl|-Vk50LlGvE4ps@VS!A(q<_uD~DD>4JVLXgLXM* zvRwJ82r50bVPv6GyXk3yu9?NO^#GtR@Mx}}+sq3|*v!<-E$qUnHs`u^>)zcLuza+r z2tjiEl_x#ff2)Obj2;f9hkuzvrsD2gokada?0=jj-!i{puS@ZfY91J^>qU(!{BU}# z2e2=5cG^>Pgj+YV-eh>>U)%PKpQUkzkAUf(uK872*TVN1&ak~i{)PD`kD!vX_;S1z z5|Wcq{UDw`n4Fwk|NN543%MVbVizG`1{1tq7*j(;e@!sG k^VPRlV9@Z@3h`B$j3+IHZJk_a>8nVJ(}`^)jn} z(&NXE+aAolVxv6(@}CLg)O#I`r~mqW?T7KCZN+7ZOTtY$W#fPU5?KGSNXOg*W1Qal z3DD|I2W-mo#W$&IR7$UA6XiT9XRGI&GkwP`ksWv1^5~Abek$a+_?9^(kc|e_m=QgM zo%cm;H}%;VK}A`}Sn8|c;CA?zSX->7`f;Zlu?ZK%SY~Nk?tjf1=&R8>y?AF3N_#R5 zvxmiE_!loS_~+7TOqIWt`90ywt>5PO6$b9e?5>@%c*lCW({3lyXxn$0ig4Y8Tgfm* z{oHH)eJ#GW=ex jpcCRBSCVQ4+I)t$-wOiqwEqftT;2QrZ!Pri z2(|v~Cge_4E9J!vdYn6mGcOO)$8dsFA7>$%vQ4t3%;^sXHbe&Rnc1AXgHpC-9Lg#x z@ptd4mVbH_A@?4@`Bk*<`NL|$tvS3h_X>`R9g7+}L%H3dN q~2lM7;lBwpZ(R^&(t?I9`xz!*-U4%_P~>W-X-HsHQbdZmECf(PBOnazx+*a z_m}t3gO#-J_`^dJ%Q8H69u`tpD=#MpZ+gqoicUys2nkzN##K2Yj|CCg^(FD|k^4M! zcf-5^ISOsH&qryuaVOcvmi%V2jlz {=PUM5(;c$i!ljOI;D|=J&$VefHIMr+kL0^pmGg`DHS@Hr+VX-}g=X zs_9{(KW4?lDmMH}tO6YHbtipysyL}CPFg0O^=JG;pSPfP*OeoX8PZO*aDNn%>mo45 zM|P*KpxpMTA5CV~X`ca#B{3=^mEy*{5SM*aOgqj%>K>6u`{!WvpPQbZ z9tTTF` l`ezqx+r?Z{hGS zvFGrlyqkpr^^)O}Pr}C&c=4*^ *Is-a{PFYMXWP7w{9xC zO8a5o$cJTVN>Wbh7@wkJHFF}5Usthj|FOr;B})bFr@MWmwf{cY#}1bhdQ@FoQh3<5 z?n%9LY3`|0r)b@%8hOYmSdTKulENttuWu00=;uO1gN4pD1$5^4f)Mnxuj1@6${a7| z*nn_+>y8~kiz_|FzLi%0w~rXTOJm4R4IeV~OCu(v4ShWtDGI&TnN-5-SsP)SDoI(^ zyBZ%S#B^!Vh6sc &;I>E(KtRdg1pGzN#(-&`6< zUZvWC!v|7zA8oM{OBT4+KOv<)+NaLrDYcg8iPTdwIA*Op$p Gfj7*6kl( z%6tR|?@wRHRZ0S0pOzPe)Pn x}1 w3Sv9nS6n}al5^}C4)>PI8PCqGT2WL1d+y-iK&NI; zOtBAn={wJ(7Q)ozA_42E)2H7<%Us+m(~8wp$U!$gpG$Ypi%7uQ)?5*YB--FBgSaK_ znY+Z5>Rw&nZv7 *rFHff-f3R-C zj_w@fleJsE@%0UdtM=uoHpS1*>j#e)TSliLKdr>o3%Gj#BK@6r+Lqm@`fuOg+Pin} zrgKJoiV(mW&pBQs`U~04n!V=Sy=c|lsj8jLZ&Z+WDWhqfMx$GQu-?P92c3_jcz Z)CwHPsTBicpZms;V3qClpN=fp7$2SWGGUAT^R+V^|G88B8c~%3q&7v0)luE<5SW zD4!?#2n8yI_0&E#a}fAN*Yhhr;h!$;tjb(1JvrVo%ZDy#*_)k#x2#;1-$LxD@M6Yv z1^a-Gk1r*^nWb#}XY_OhX}b82>kf!}YTmf^QmmBDB7=r>PwELnVMCr}y}z1kzWN}j zvC6t=QVnIz96v?gZf(=+n= nr*QjjdG1* zwBQbt&l}Dzp-#(4fVkMcZ(nUccD7Wh-`H6-^X~4iMRe5@4g!2`2s&;{wJq!zXtD=i zHorOR kXY9mi(ld?$_ z=JP_kUnW~jhl ZZiA1%a#-@D_6+u4`Z7s77zK^C;#3T7_PZLfmI&Gp=7)3KEOd(It5@O~e z!?G`3$()7=dbL;h3v>0eS^Ts6t_RQw*9TbPF!NGe`GQ%_c`PzE(Y8;hSGfBT+Jx@_ z>Y(3}4``H!X_im~<&GK*75AoqrH3X<#K2)5xoVwHSJ3!_ T2E^ebsQ)-4AA;*FvUs?%X-LaD^FL z0U>cdbc!NC?zdziKD`fAU1;5_SFhsEo|T~8|1dCL8}3;Bg^G?cc$%uR)N$H(;48{q z2udXhia-~ja;+t|JIyxxLeVNYagvS<6`)piG(3|eiI(p`KdsGTo`wAn50$6Dad%d2 zgh9A!_xxgl`tHuADQbH>X%GBD7&gT)wU#nKTElj=!2&I q7TG>bdu~PSqZs%g^-HRq28jz6+SoPk5SBOJV&1-pU-0Y0{Sy0yCP^5o*3W zNNW`gwqdoievcvltiJ@L`oeV@t}G4eo2p=MDs7rlU3Po{<&%FfcdUyrkQa08$#pY} zlCv+Yj^9+3={=R1< MDjN>u-Ad`h2rNkYfo+8^diZOJ}Ni`iL$dZC)Zkx5pBg} z=&~~g0mQOOs=;x_BU$qL+8jk!Oy&CiB}Z`(E(!CSJ67qvs;r#3@9%N+X8bwSbFFy= zan=`HSQy-%L(p9{VPeY;2Q)l8PnUxK!HR}*w(n1uClTg(hW|LBpxWA6k_x)#KvPig zeK3vATzP@|>*>C(<0Qzu%Pqa`niP!UQNitR(%qbpI?{(O(Fn%c!|u3|wQLy~?w<}$ zmD?hIewvEA{k0o6= rYqVLGOv?oBpLn)O(A+ !z*mL^B5Up4=rCgg9P zLf}B9w@4#?YOrdjsq;Yuic=IFH`1y}J&{5Es=Xa#vG)vwvWJoWNt{2qWS8^Gld>YT zCg6vaE@UH`iZ_tbg6!?=Bjg5G5ena2K0rZKeh@>x0zj kN zvKaIYrBKC)v^LNCPHKn5*BLIi@Uc-D7yg*tijDa}Gp=qeiL-gO=Dgk!R88o^za=oH zpIxVSB4KAu8}Hfu;Y9rH+e*ZT+UNg|5$Y0BkMo?{i2*!TBricKw;^V+&1gb}ed3|} zWIUQa{`>wxL0 GF`_=%$p*m*=6QKpS^6XCfTlb!XCUautytCxQ>(_DSpVckC<( z5y9mU2Y<64pu#Hr^t_C83_nZCZhjC}mS(Ge &po8k7)38Cpp9KV6Y#{BPi52b zptCrkK*?)-e(BhZ#}RUp$(cQkv{ov_77`M@GrtmcAY=jymhe8TPUxHUKHVR#dbYiz zf5?M1FzSy#1_u6lTDV~7D)y!~f1jN6y!?;qKix~D`2XE%f0dViy#2;MR79mFXX{-T zo}9Fm@4xwT6c#C5 j!bG1fp))*cn$x{oqP`U!^KMqEif}I4 zZLE5`s%YiDZr&Rk*`2TtT%>@o w}>HIfoXb3~)lFS{{&Z|QUB z_cQ|eTf5TlM*~cjWS-&DIXv;f$_7bnf8#$Jk$sQ3a_94M=MN~&>$izrI}YC@e(vYW z2Of &ka%ujK94@#A+brT6zF9&Q&G3hye0vo2>fI89djR+6+ z=3P<)xx3R&w;B;3m-Y;|wcv$sx$B|WQy;%(0mTCF(~^F3gclfIkUL*R42l&?$frxB zy{TMo4+w+`BM66s?5@u>3CVPO`h*jE>it&-xp+oi+!1wiKfux!xZNPYa5AQvc#;P% z^V9LOG$w~knO#% lJ7aWAB8E<*2i1#p9$^w9VHi{ZzZtb_6-sg}Q zgMPWm5SUciLwWc!tT{XtKv`NLH&2WQ;HjE$>?F_%Osc5xg3$1YMdY59wT9J*c8&<0 z>3F=jN?e so`2uwHM0o6!5@jT$fk%*aey^DA0H zI79-1CjI!_ReX2szYK(Ryta`}%j{ajf)quYvIhF;Paug~=dg{#vLobnrYx~mbei&m zpCF@(2~}MT?k7jU$Hd(RuY3EUMrt-GWJ+P BzxB5mWg nagJ-%*^&;A$7=Uxt@wPZFH z%uV7S-7PZt`+SSmw$czy(f_<`Jy z<1bgdM2_~*3`Rr2@5?^S)7i^h%{ydm1ONN{P)0~y mZ?*9YhwNhc_J4`7LZLFziSUSEj6zR`-igHH zsRc#p3vd;m84E#|AIeMzfS!|_`u^gj %u|H!AfL-Tn)y}qeWzvLzIqD6Pe?SD$tl!2gI>FPwMr7{}_9Hg)BqqBFSkjUAo z+>6&k%V)PjK>WdXxs=Yc~J7fft>pl^wf#yV}keT{5N> zu2GBuSdq5VWI4v9lWN{xQ&7UW`1Nn0J&uaid;c_~byFNZc&Pii1_4xXinYR4<-uej zI|@}pLGphvtX$I4!V6MU0!irmc|$eygcq@m{>2znjd=)h;GA>6Oj;0aTL*LS=?u`I ztUCe(ubKnZiD;}t|0oyp9VcjaUpOUY@4bSYS)#BZ1?DW&9x1=yi|AKZ=q6|m2oze9 z*0SPOI!MXuWxV7y^{NBJg189S 69z1Bc|1a0WvfP zMQ}D6dLOKm=YR9hCU#i&qsxii1QRsLC6(CmMx$!@r}a{!o?;nUyV46@pH3Vi1vBjQ z_fLHn)Wk}0lIfvVRMh8A{YIb*MAeMfZ97Y=YJ0O=;JbS>DX68v6~_DgV9WXsjYM1k z-nsJ9=eFXHOOeG{8WXW0_spKz!Uip?Mvl!xh}Z1yU=l==K<|GeCv)IP4Hro6CW-n6 zj-HN>0;Ka)^9r5$Jtvjj>`blvCWW44k2C)Ck&|G}6K{p9l3?#V cLVvZ|Ee+a1>V) z2$$XhOS2;RIe=OuBT0F*@S*quIxoxt)YJmQU2@vQ>l;%up#+qEHrWXo;C}F-DAW2K zX6$F2dN>=IX}78xww0H_O&fc6H(k{x<7&Uz(u-tE<*9+|*gQ_suYqSAUy0d;nhLOH ztRtDOsr}Xazu8tJvaRV9rqdvv0UU^XB*$#;rv%M?4YhVx9X8nPM+?ZZgST7zXYm<` z;Dy;EmiE~v!iNRC>`Hn|b|D(d&_UrVS$4d8(1kez^ugQsV728%*8z_AC#?b6I8oR@ z4%;LDzFwLvnVLQOd?Y_X8I`sXZpy7_nf%65bik2Z+*v=G{TMh$#`pJs%{m{{^74x1 zlto(&e)HI4d|>I}_%w2ePZ^*maRUTJy9-gkF>7GprlPZTvXlbG{j7->%wXhCb-0qb zytSs)_a^9%CYWWr0bmREk6BzH` By s# zL=aY*bUqCVRqeq^8roi+O;a-w;@DIvIK0|V8o|HWP!(+G_4kcQ*cquc)hIKMA?=up z-X#13h0?0u9N{kVd5hf$=|$LV$J{ZC_mf!axlhee?E?_H#lQJHck+4p&&{B|DIwX& zdIZ!pwxda?YmTHc2b+5=omTCy&xLqrWEPRuqSmnGHMF!jx- mygqijC>a? z@TRXi+}!b|_ZXzluQ<^AWz94o7Xw>_bvcc&)4$l!3r2Wo-3K>kJhZ 4rQ%OYxW9R- znLJhWDjZKOWMz7PJAi33wW)6J^N!@Ap_IcjH!0*dJ86zhN$+r%hq2eHCe*9ed53k6 zD5S3uPq)7J(||j*t0*==E@SS_MI^SGs#}uLpTv?+m^-2}HM-mrxj!+TUu%;Qd*^X> zf+(0!#!AGKnaKCrTjlLarGDdN)gj9r@0%~;mg2Q&QqSii 1@=7 zk@u;v2*-sIJWG&-zfH* e!8*G!NuA3&mUEx%N|mZI$=p zsn1DZdrmKE+GGpY5_)gT>?0a`CF>G)W;_dkth|=-vsEMiFZR|8@ke4Ex8p7Zj+WI( z3C9uQDLY|6AT3Fv_Z#cb2hUzQAXpEm1gEsDZBgVCj8U|< Rs62hM|w#dw~;vV;;ICk(v9t#A$PI zP29_LJ+I@MuhZa=v!B}vmPvYsA^i7GkrE>IVkp9Adkt5A+(s)v&3IzODzb5FdskBZ zf_21j|6& GkuhuP&bTv}RB{X`e%(~zWw|3A4a>4^}KA(Mq+C% ~a|OL+ zF0dp=7Bw9=S_=nr5IilZ8=&ESY{T`PRchpFQe6w0)Rk-k)*DcIs)_ZO)vdYX#sx3= ztn>638K2bh2uZ?d32oB*!;_6>)u*;6bCU_yivom1fH=(Goj2sNW #7_j~Vak_;6DUm`%SPBSB^q<}HI1lfx%P5h27B6q-`EF5 z*ats36R+ianPa#f#i*+<+WI6`! 9BSdK 7=9CM`jR5j*$g&CWflSCE4!34}` zAF(+hwT)j@<5K$!3Eg;FPtOTeHgsHbE*CpvR1HhaTk`Pb+_a^EVR})@Mzwt35W@eW z%pv(W* =G`K(O>F{ue9pMtLPjUJ=O4S->08%5hbtB>>rUrd0`4H zCS!KxQQ`|s&~?2Lb9i+v@sZUpS3eQcARJ8e+SA$f$RDgz>`7zHI9zni8TIF1`_a}m zZZKuv%lcE|6k>^&?Uonv(nR5z+x6p%d3ykvH&WYu$@ucS4DEHmPJVDvBtW^JEfA}R zL>L1~PXLRzGpmM$97DJPkF4K}O3WF6VdS0XOVX4enX%1y)yB$-N!)xFtXXaE^ZilU zzLl4pj_U;Oc?2gx@8sR}B-wM0Kdu@(5@lS_W?`UAc1cI+8u=Id#DbSBB*eG!?rQW8 zjszMP{$`b@*-|W!%aSXQJCVsrKV-CbmKD{B|F|CeY)kKwi0E_%<{r=qfPeEpqv>z_ z?I4Oi<8uASjazkUQDW!q$X^5jqQUAxEhkZZx5+GK>{yOCn>-|2>n_hF?RP= Fn9!QWz0gpg)%j z)&22{7(g&STfz|y)ai`FfyQMc5)dK~+T}C6G5dD_v1*!Oei?1bmP1O7k++`$3qD6g z7P$B)n1kREy88LS-29da+mJ!|1z%-f{{7P)`4PqRbUBv~#bj2WJH3O46udY)N1s85 z(#g;U $SdEZ?7dVRTcJ`}I zD~u7-4jNq|cFmqnHzwZ1I!?t|B@+rFvjJ1j1$#r(;qCjzC~%#ya5oFsaDz4s*}L~% zKovx1p@ghwYjrE867O428%!(D<=M*8Ewxr3Z|LO{G>gO%KK |n3+bLpO|*@stDd-Sgw0zff}72y`}6gdF- UaZcQpYF&~;T1zKcQ2a8SUS&< z)Jf2KxN%|3=%4PgrUZrc88Y?YYYF>m-d{sCE*l-Fh~}|vQgkm!{seAz=NJ3%Z7adf z{Az2-PKo1n&J-@1NcXN}#n?TN&d=W0=v)%@N2j7jU--mk8coTWy`lk;nQpapbn-+b zlQo*OfwnFjL(^$xzqAxALBbxP%fJ1~0|;{$E{ZrnS3#xzL>Ni8GJ}nO_m#q$*r%zd zR%+6D7HaDr5WiogJ(qSDu~8u+*r(B}&YhuCacZMJzzK)7#Iq+TY5uQ*5bV=|S hTE>ksJll- zWG(=9rB{?__a7X!#W9wD+$~)S)hNBpgmZj&cO#-S4WO0Yi5FsYVMBA~W_bl<5lOQs zYLH=XB4q%PXGAH!f$99lSiMlZM>$!1HvidWdsI*K?OLn>_dEZI`>|DX?tDSpT0nW; ztz+Wpr)|(l?tk-s`GCse ZR0;(Dk4~T1 zlgHOQb9QFc-(pzre0Ht*jtIH_-T%qITrcNp>S*tu)i*CGOV}#)NoN*^&b|X R=`DbPU2>pSE5T>}BH&C4(JB`%==wT)fs1A;!?RmHuE|16Z5>04+aUY;+DkKhWM zmts^m xE9{G1|Ln1&{qP?w(TM>QX0G03^N(T8iQ6u@`s%%Wwf(Jq|HcUA z7OVG7%onIo TC#I)u%4eW2}ms9C&@B8YMDsC4XO8NDP8QG)6^pfTO&GYTj+?rPX;nSzZRnqn) z$rh$|8z-PHa$KbU0Luw^=-p{lJK _FC zXK~5*36xAdD<@3^@Km R(?S Km5%ba7n51G0Ttuo#FND_BvA>+mGbcpRplxgMZn4YOr+hXuflR zNH29}p1)qr*_8DtYP!$5*5sqN)%Rpo*X6f<(O17Ovt=A_sAQXupZa<+tj4^~k^Z$| z&E@yLyB*Wct;#)j+1!8CYkNTjyW3W#u5I^oH?5d|wc0i@r7LvBfu)nprG47Gwm#YT z-@vrqPDg40dia&4_=qk?NWBqf#s+YZO|QxSx2E6@r_82-55DRp);C}$1T?WvB`y2T z@CzH9%QlYkkWRZCH|A1rck!7wwWs~(-7FKmW`Fgc&{h}=tF2E`tV~B#!n4FHS4u>5 zw&Cgx-@e~{VHu(o&g)zc{=te9=&G_1S 3g?hvReKCztHMU;^}hY-C+~W%9j5?I>IT1v)X&?+(Q)1{Fz}B180^R zI(z7Zjcuzw{_f=Nczo$5hQs3WgiR{*%eLR; a(pwwguP1s8n8%!~6xL`3NtCTU( zIovg4 *r|ejWG-9%pG~Hm}E!*0_ C~`3sezz5posuY6E&BMo`3mII<&XL z=<1_uPQ$sG4Ny
9(u%|AECr3c$&)@AYK*{Hr%Y}L7H%6COU$^J*nY+=u!+iXAZp?4E z;5=s@- F9g(H+o!Dx=zmqh?%W{;$IR-X38JXx%yTIN)y>Xce@@@7T%iXQ+L~=V zrk0ahDy9z;<1rP84_^?x>>q@igmsj_Ln9p|aQ9~up<~s3PVm2IlO$!|+4be!espAN zDsH>D1i9qT@Hjj{bbHd(Wkv4)FkYDW{7sof_NJ3`_-*l-@#saz0(bBheGC0p@dAa* zUZe6Da*sHUykMc2!EP0EGUvHfrzcA;MaMhb#S_pqvq-*eKv jtvCc`u z2Gz*o^7%TkxR1kV+Zgo!hTh+gG^ua7oUh|}FtH0vUm6%t&OwJRtmzph^kgx4d`k^b zW{Za5x)o%rjxuN-k6~hfsR4A)Ik4v*NY4sG@?c *Hjd-rY;^4wN{~1%%gV0;UoCMv!8p76n-J$);x+ z9xaX#{ULZ0V9dZ0TSfBS#$40GCLfH~yh|tuT`}LRR&5$ruW@!y<4w`V;qT+%Aq6YP zI=y1 Ph&4U6tp;C^_>c%UJ=?j#cM6Xv`7Rm98w1zNx1X&EG9DX|a*S&kKvi7ZLz z#cqvP-wDNW2!++-6P5f@Cc<7pJ-F)g=&L$_!Nx_Yc<9| 4+mYG8=ncB}pAiep~M8b(2dZZj895@le*K!4FDl5cij)t#p=cU0cl)mxARO}p-D z8o> jm`;)kui5Q?t}FB8-f9^i<}-yG%sYFlE^k*RXCuI+fEJn5Um zhaqgKpFS3^ewZ*ZkSa~pu(CnOJ3~?{PGzQx1A)Cq@- RC)wg2hT3594A;Al z^id6DVevTSjFgwh+OtrTy(hCiI8$~`IhZ9TFFQPCwc)(4a<6vwv^Ny0;kqcxcLG-z zkM!+XJ^UwCce_LGpluJEG_Gv8`z}ETU_Y3eKUojBOf8L;J lAc*jj3J&X1^ x8T2f;k7SCc(~xOtbq1y;gEN#;8GboaTB)@PY1Fs@5%^foe2E&6Unb=Yi5*C0R9 zdp;LB;ySOhL6?gTJ#)Fcu^p(UaR|^?S!lA0jiuM9`Ozv7XRP{RiJPmWb-Q5)Fhw%N z9G&7%$-FpQw{D~;7?K5%=vG kd%;g`8qC(H+r2@M2*j~tw}!u=tkeM z?R)VVsQ=&Kdo#n(Yr3kJ>sCztHW-|J7_8Q_RS{HuhWSJTtl)8mkZ4Rd4ottC=o))e zYBqnkivvly_v^HGNl#~`^WlSdH@_T-bwP9iJc;_>UIhGABA` R^sf=*+y$JFJq{F C=;>s6Id{TluuC~W8;uuTf#*YhcNO}#st%FpKN-nPyUa?(fu zgd5ljrZ;^2^YfY8N1(l6$^p#C$-{^dKKT}|LMNB1A5(6|sf{J^+Z^L(;Xq1A3W8NH z@fktUk{js<5#+JAIClUjqA2ni*Ra*?4`^06JTu}s0#0&Rjhfg!wNi^?BfB?@6Jqgj zlRGZo0>Q1<=>Vmg0_8Hi@;K+MzfiQ7RWkr_g5-XYS9cOzsIh$(7x86I8Z|)BJSu-5 zZoF=`UVv*$r7E!$Jrki=`ra?Ua~`B&+F{%BfMbrdESO6ifr2^P8H1_zsJkEE55b5V zdw#-?+!t$oVZIag?P;*5v}%vUaZ^#f04 O4nSXN_r{@?^r z2!ch#zBgdk) m|0a8MA-N@^Tn+EG-(N~1typ)?nLb@_A&2<* zx;sy%ZBH6cLJb}V4xXiuLW3>K)kh+-QUYiBRIV(?vg2L?uoSsvepQq;=3vfX9wyP$ z!h{Sz%kJrFE!_;JwRhwO*+Cqd!7T `E2 zTaJVljm8KqcHFf%!t~?B&BiH&U~AU5n+TT !cy>b)poR zl=IA&V4dl@--uZ{JL;R} A>abSnv*b>cnt7G?J>p0&4a>Ula&on?fZlR0Kt!^rIlE)2yzei?XD&(`U%4r za-}5%)32C!WV!&M2r113o0oOL&8#Qh1ASjL$$VCyAfVR0p5bc^s0ib;VKppP-~>^W z6xS8?Uq<^I=@qiLLJ~iRK-`C>LD?%YKOs0P&Ad97??Os8f-F9SmlNPBFV&p9FjIA$ ziqOsavmX)dOPCWd>wfMDIfSHfNZRFCgx*juAj~J&s9`?ZM~n0V+JR0Z;q-qby=^LO z7@2Wkts^KB`E`=B40f>ynG<0GRFYl3h|DEQU%kh#D;>jwl-D{ST4?}WC9~dO#@Iv= zBzJ>`zQ&(|H%n>}X^os=SC)c2D{$uN>qw72RA`4VMaY_iv!H_t_KHY|g{7?|px?I9 zyJn4^A}f4-AVfq{0~o3`SNB}fDn6%<^D=xh4MPuGF_J%sQ|k~Tuueshg~$LGs-z%! z&(}RllH%LJe=+=|a9#mv=ZZ(p%Z@aSJC9hfAR!cAJ}44qeM?5l_Lh)LHg>NsL#UaH z*|kttCyexs#el0GJH>((xP>j(Y~SIB%~e-Yc>+*0LhAqinqFfsAZ}2Pw8u|vU(a{( z+A!#Q?egm6jAkBU)*DX}I#JiAvIUbKzI;F~t@&%*%*e(Kt^$QH(1W8p%r{(*B9-Ja zSJWW#eZ1>GP&z>0=H0AVNc@U4@`TM+laGuPpP8SCJq)^(#(yD<3Brh6(5u7 e4DRrnI7)5VE5BlDrLMrs}-DGa+#Vn;GKW4>j fG zcd5-;k+x0xyWJx;V~c9k5$0LWS*uP>L<=QcdHz8nzlo-qCS>|P1tUIZ)2B+TAn@hE za)RB4YTW4)(83qkuc7wxMycTnd`$hJP19MM5PHrzV5UIO^n*p$;em{`=GFL$ao#=c z+(N#+PR_~on?IJUc**N@sB*4zU&l*Hi=9XfPs& nv;Lk3H73r>3L&%pCcm{L zX)7ZH{a>qmV_Z>8sC)~koj!Z+45Jx{WsbD)cLQ1M672{WBeLP`$+x! d0`<=bVRW+rLB4*b$RhD;*UGmK98EP2N%z z86lX4Y{_rnTh_peM!)scH6MVpogRG#cP6~WWc;eZ@7l$Jt&!CWxPu*48rT2OvY%g4 zOWC72lDNqQ5W-2h($hyEQ)|n8R}OIjuo_{p)>b{4%C&Y~^%-0gOej8PcwmgzKWR^d zTV0gLfeCtwBJ!EM^KS|F; ae!!PKeJGy^gbpMxwpdbGqL>y>| <=lJVz(smKR+6z%rTIP1+Yt=ts;=-OK}ZFn?81;2 zrq)NO67I-AR+rJn&ozZkhBYW>bjh1uECqB48w$ea>uc8@WjgViTAEo-`l>!^*|4cH zm^3Qz=*0_42bhyM37?H4 A}JB7<^pZ*MnNcS@X-|WHNAo cJ3Aag3!hycG6k62<&)^L zz1fUWALo9YJ0Lu0ywu$Vk6Ysi0 `@uV0IQsb44_YDFvYjy*?cI?cLWd}2XfKZXuh6(LrlU4*PdHL!f zz|TR!)KWQV osB`u|Hv4Yq}XU9e3FL1LW J|MiuVz6jSzVf^Q}f0x5qfyA^wO0Y!|?+#m}VySsqJHEDix< z*9X4uZ1O0q#3Nkp$28(3*t;&jj}(!{LEK}gK)CZ01=f(kYc8mT?ZTS+D{+!5PgZw# z2L_;ZXvQCqnR1w4w1oGCi^HX))aAW1kM4Mr{sC1lX6$IJx9D(((JRdn7&mh%652U& zHbM-eiPSx5V6r%=?DZgQw$)?#mn-idJo_1w%KHfhQoiCx>H;3KYDhiG 3 _ek4!_WDP!F~&g&KbdUbPj1l~ zO9BQe=wXU*lW76H08&Tnh0#>XsJ!h`2WtZMY6)mK=!z%6zkRat4u8Fr(2lY#Gt&$< zY;$42gbN3 7ljL? zWcGN=eY{k)ICTW(!2+uCUdt%fwC}1BA5lG;aie_8>9t8^b8kl$p%zIHDw9->v|+p{ zpRroh22nG)3H3qwL!<}!+(*fv2epdPgo5ikQZm<-Ej)3o<9UvrD0}C~76OJfme8FL zI6aAmm9`Jh2 BB{k^lf5kgmrD9O6kp=Rf@Ay5ol3y zFvrDN@S9GHKVCX$UOw#BVm(n!Jm}GU );@ByAXxG{zr zxN#aib)h&RUSXSjZ*DD_HNnj!s5g3X1DPB|60zg$B#V1MWgkFA;zMiFl{s~rcMhBU zcVu3=XxHLK_+A*Ap_)Xw$52foIVFYJzTqe#_upo^IowF2U9=O~g&H-`6061$Cona5 zhKj--I3^{TtPjV{AsdK_KTxvK1KBW=yOw$J)am$P>v)h%w|UmS(%EiSjn0m4-_o{C zhvrQ_ryn!(6bjA{P3AW}Lm{^A%=VYbR)nsVN#?Qt8Z#}7k`jXx3}Rj)`F6oKxomI; z%6O#5L53|*tAG5o=c3(?pkd1;H520aE@Hdb<)tjb=$vU@gX ^99^zSzWk;S_%BZs-qeH76@sU%_O27OH< zRsD~b8oQNF4XK&%YiL<{v}ODyF&2uNN`%a+@HzDQM6%= )4al*oBs5o(Qc{kzp9*yGticbI;3HZ;uQ6|b3msQ-4z>tb815lmWU&3(5 z1U7Q!A=6n$|6*Jx5uIGp3zNao=E1cPAQx6fPFp>LS4;P3{lJ|Q_8{RLi>b@mi9JdC zvr#LU7^htxX204{e0fkAj@;lG#pB56`4mv}R}8V+CZ?7~_46jCwEg6Dco7Ug l9Z<8 z&_63~pmMq(5`}sRqZlJT#fF4qIjFsaip2}0=%aU|C1Z0FWxd#o3{uvIAmX+{m*`Cx zrbo>iO&|8By+IuQJSeTh=+iCbVesg1hjf=JFEQQgQQ}D4K(6)^>2ZE+?8ZVKqfW|{ zZvXzX?=L@GcyN~D0k{y5jjk{P)Mn7$L}rlA6>0?-uBC*~jR>Ji ~P$@nQs&NhSr?CI%A#-<`##g{EN1xkdT z#EK;B=2I=IMFgy)_jIraP4Psr)-w>%BBwygHU?K4JifjnVCL>JfDBUdrfnyQJTuk@ z8Gzl(H$4~Ky`zS^&ao+w7M|^y?F!?D8Nt@-$H_Fs%QQR4OUhzi$}w-MZGxWSU}nHh zekB+sS&QTL7a+1+u8~;$SmCuaLIiZ15^tf()ggl&UF<@B6eSPW*h5G`wOd`=>!d9s zU(jVGDSwA aKgcs+iQ zvNK!s@lY_?x<`J|SPE6P$#Gd*dNKPRx}g)4YNR)zYjLKN16c>TeXEd@#ByE9M}gg- znlGvI`1(|Yy{`6 3}n(MIqeR{$8(UYM(9Lx=kYzyqoMq!M XiHmY<8a08E(FIBuz|es(h}_ag*_3Yd>cWM- zAW9bc5<7Bp_Ru7}>BeE=9 k3)xO81lLBWsav!gO1c*#@kA >R1i9p2d$%dv2l0rJ^=tV}Ycewr>C=)%EPhqGz zVZ+f;d(g5g4L`a|REBr-6e%B@>DxXGpl)R*6%3n2CA>c9&&)ivcxUvziH-WC?aK|X zIR>+_`pQnAAUv>dtg;jdi9&oCB)>!t2(Nk~&1JQ-oR@zAAyQ&5iXsNq`|YB8vtcPG zKr24oteO?C1ePd`_9gb_{aoa>wM36Yq&3oJAx3~-{jP@kTzml(Q3>D$==q1CKdTv+ z5TKIvK>R5)HWuLnk980E5#3I1e_*HHJ#Yxm7rP!f%#9{>V6?AAs{HmB(uDW#4AO9T z(_O-{sD`ExQXc@G6dP8tOAJ6tf7YzVOnOiY-&8W}4g28iKF4dlF^2PI#%#u@d r8 6gqu%n_*(nHy) zcNss5+D{Jeqcip~{7b6G0Z!CGr=lKueA-)B5>4b+h6}=bsjC}uMf?RrK{{|gdRn?` z1I1)!kijTc{kk3@7-{}*xBv}D>l)NORGwdO4w_(9bcy^py >nFk9WqMk5aOM z|I;K@dD2!mys&3`EqE_xx%u@@>OysCCb=IdVIQb}eD<6#Mv6l5xm=h*#b|l~gg(BG zbK0V n-FImgLrkkcL}m8|eB$o@_TfRnp~<|-fdm+u3krj b 2!{6=KK^u_3p@a?AL*dF#?Zo#zK3_6i zHtYq$@ZL_1)x6~H+P7#HEg$`2!|qRxq|xE#mop(CbRB6HK5Zkt@kqB9X4DrQMSkN&(;2~P#ky>B51tB$Crzuw5EKjc|K z;z!H+HZ#)rDuaRH-7f64B6cPxX*Vj0I3uMBFF!<}nS>j15jgp&+N8lA@>P*8_^P5y ztB1V7K{KepN!zS~d^Parwmy<87ANe5<4SmEIrzyq63QgfVVJ6e3o3I@F0iJY+-6>_ z;F#&eSm8}vnkT;To7DHs{6x1YEe6DqnB*=)Zg=RpsWgA?_WiWiVHpBHgUV-i{7m zf?gosUBxovE~+VB27Ha-pGwd&0=J{6aC|0_yHC&nKz81>J!NeoCXd^!(-Z(KF )PS9m{`Qv`5BW<}BU%h=Dh8KMZqtdqA8;Nv}P;Qh8kI5WX7 z_F;qO5e+ibP0%3A3(H2ufFGXm#67|qNiHqkPlb_wIRag9;JFCb1$|ICvym