From a6d85c09bb928cc3c6b93f6e1afdaebc02d1ec02 Mon Sep 17 00:00:00 2001 From: Don Acosta <97529984+acostadon@users.noreply.github.com> Date: Mon, 28 Nov 2022 19:58:36 -0500 Subject: [PATCH] cuGraph Readme pages and Documentation API structure refactoring (#2894) Refactoring the API and adding new landing pages for each cuGraph component Please just go to: https://github.com/acostadon/cugraph/tree/README_issue_2663 to visualize the changes closes #2663 Authors: - Don Acosta (https://github.com/acostadon) - Brad Rees (https://github.com/BradReesWork) - Vibhu Jawa (https://github.com/VibhuJawa) - Alex Barghi (https://github.com/alexbarghi-nv) Approvers: - Brad Rees (https://github.com/BradReesWork) - Taurean Dyer (https://github.com/taureandyernv) URL: https://github.com/rapidsai/cugraph/pull/2894 --- README.md | 271 ++++++------------ docs/cugraph/source/basics/cugraph_blogs.rst | 55 ++-- img/Stack.png | Bin 0 -> 1855596 bytes img/Stack2.png | Bin 0 -> 457436 bytes img/cugraph_logo_2.png | Bin 0 -> 4952011 bytes img/cugraphops_context.png | Bin 0 -> 24370 bytes img/gaas_img_1.png | Bin 0 -> 302108 bytes img/gaas_img_2.png | Bin 0 -> 457371 bytes img/gnn_blog.png | Bin 0 -> 208941 bytes img/gnn_context.png | Bin 0 -> 73805 bytes img/gnn_framework.png | Bin 0 -> 150821 bytes img/pg_example.png | Bin 0 -> 242398 bytes python/cugraph/cugraph/gnn/README.md | 0 .../CONTRIBUTING.md | 79 ++--- PRTAGS.md => readme_pages/PRTAGS.md | 3 +- SOURCEBUILD.md => readme_pages/SOURCEBUILD.md | 5 +- .../TRANSITIONGUIDE.md | 0 readme_pages/algorithms.md | 85 ++++++ readme_pages/cugraph_dgl.md | 28 ++ readme_pages/cugraph_ops.md | 17 ++ readme_pages/cugraph_pyg.md | 22 ++ readme_pages/cugraph_python.md | 24 ++ readme_pages/cugraph_service.md | 28 ++ readme_pages/data_types.md | 46 +++ readme_pages/getting_cugraph.md | 64 +++++ readme_pages/gnn_support.md | 33 +++ readme_pages/libcugraph.md | 6 + readme_pages/news.md | 13 + readme_pages/performance/performance.md | 7 + readme_pages/property_graph.md | 54 ++++ readme_pages/pylibcugraph.md | 25 ++ 31 files changed, 600 insertions(+), 265 deletions(-) create mode 100644 img/Stack.png create mode 100644 img/Stack2.png create mode 100644 img/cugraph_logo_2.png create mode 100644 img/cugraphops_context.png create mode 100644 img/gaas_img_1.png create mode 100644 img/gaas_img_2.png create mode 100644 img/gnn_blog.png create mode 100644 img/gnn_context.png create mode 100644 img/gnn_framework.png create mode 100644 img/pg_example.png create mode 100644 python/cugraph/cugraph/gnn/README.md rename CONTRIBUTING.md => readme_pages/CONTRIBUTING.md (73%) rename PRTAGS.md => readme_pages/PRTAGS.md (58%) rename SOURCEBUILD.md => readme_pages/SOURCEBUILD.md (98%) rename TRANSITIONGUIDE.md => readme_pages/TRANSITIONGUIDE.md (100%) create mode 100644 readme_pages/algorithms.md create mode 100644 readme_pages/cugraph_dgl.md create mode 100644 readme_pages/cugraph_ops.md create mode 100644 readme_pages/cugraph_pyg.md create mode 100644 readme_pages/cugraph_python.md create mode 100644 readme_pages/cugraph_service.md create mode 100644 readme_pages/data_types.md create mode 100644 readme_pages/getting_cugraph.md create mode 100644 readme_pages/gnn_support.md create mode 100644 readme_pages/libcugraph.md create mode 100644 readme_pages/news.md create mode 100644 readme_pages/performance/performance.md create mode 100644 readme_pages/property_graph.md create mode 100644 readme_pages/pylibcugraph.md diff --git a/README.md b/README.md index 94900568f28..c7d0456cf17 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,89 @@ -#
pXp&6qETdeomjGFH5Fq|NwVjk#T=o;kxc zzT-XpM;}~gmtQ-cNBkf}o}YEkgA0@w)H-`z1JKz$z5{9V(e(A0=wZR(1-V|4;YE@9 zr8!Jl-O}g!VPN`xfXiqB+t~nWdAM_(9q0bOmDu06+OZRxwq2gI12%l>DqPx-R_g?Q z;q4|u5D0NRPetdzN#xi-`$K!NbZJ#41s#F=V)e`aIB4O$6Qf}?)6L31`=e4BO85Ro2GMm5WBbTf85D~Ai!yxdb)%Grh;zH)!C9qIqD zX22LAU1m~>;eDQ*XS~fs4ssO49RGfZQ84e?=PSION!h}Mtc5&<427Z{&uMQS0A{oZ zb+Vi)7Y9nott>A7ho4cDjtRa(0}VZ=MQLm64;3)X9w~-)QQ20%or$I;2Wal?r1o?I zcK|{WaH;KxBr4zblQWsKhJW<}50XeHo8N3*clP1Hqk9T>0U9keYlErzF!gpjbN4*E z_1*ntZfAxE+c8}u3Sf> pgURj?2Y2G@=h z3CxM3+=~tF`#d`^@cTkqkp|*7I>3N*m(nsd o RDpHFLzZqGA{CXaED8E za^K%OhmjM9n@j(`zTHD+UUQ(0*-lD}=`9LAD{S=}<5(0o*W>@5Ya^;^ZHn_Zp6kc` z<~1k(HP;jO4s{3p&Je~bfaNv@$L{f&ka;n>f;l{~7PBe8Z>*gT3cl!Ml*Nymt-&IK zb8bCvAndoDZI~j2ENe `>+aL?MNYNg&&>fQV@XfPDglM><8BmM* zZMR^23PBvvsK7OJ;0SxHeGh+ZRm5*AO~#3cxu&JMSoQ<^(GYlSFXp!uriRlHRTp=) zEOA`OIWh$aNLYOR+j=#z5W&;bCx^ptGcIp}iSaQ5wEuv525Ne|riKOR#9_cHJc>%F z+boO01BHyfudjnoLcYwc(?F{OwL%5k+J4tfH)3Md*w))$ee8C~jbr^(@CjgM3aKX6 z4Dj4`2P4PCB6yT0?2s}tl(&5myFkLWlgZFxlCX+6K&Fj2u}{|TlP254?Nz#HI0m7L z|I`&2$`^OX{pb^f3DOaodI_MAc?x2(?cR!Wop^(*MGQ`>mh<{9(d#1uXPZj+!llci zfdMyyh)h;tx|1EYy}Ycb1itRGZZP{McCO=eg9=2I+EarY-rd-IeIyc)k)F^7yG*mx z0F~qeb)Af-60Ch#x!HJwx;b75)4nLEAzHqyFE)Mwm{V?4m>ZlEA8og#7OtOxm3!Tw zg8j~Y5W^9tOSk!%g>NY7+yZ2O5F86ieXgp8=UHnK&XD6Qm`J1)vWS`1lL3C{oGY}> zR}3wEpQ&7yK=nheCkW!gWf>{6XHwcSF;$>G87m`3JKm{VX21yhVImPlebU5u{GL5c zgdyx2Kbb*&1O1RHjkRI*Qdn4b?lY?aC;fiLn9E!MN%3E&8p8_V6-=JfE~Y3F>XIUg zV4e2Q*%+?1&>Q~i=l+LV+yAD#2mADdo14NcTB`VMcVywlB@H+*!u*ZOfdwJ;Lk}*% zeT_Jx9eVbN*XxSkDWrM3^lJ@Jdn`=4OOii(A-YHxo?RXl OK4==}jSrE4ZsM64Cd+Fo9gz(cb@@1@QL}ucb0J*aw%NlH$AMDfn3X&Fi)C z<4Ap}(a?utQ4yhxtP}v9m9shCu J;Vd2u?I2#{d6*?uE> zDBr@I`MK$4eci{R)9V{nG-|*0oZx0Dl+UHPdz>|H=ld+ul(R(_v&4q6r=7DF{8svw z;`8&F2~`S)GFsma5srMi(&03=N`51kq%JH)tJn0`0)u(Fm(8RwR9`I0PPZEo2M>>4 zvd=6VY}M;uMaR}dsf|+%2nCE&g*lZx=w_65o2a!jHa~#%ms*182K#i~rG`mg9?$1? z^`{&vM4S5}?2G~}+teP HSA% h7G-Qvao4 z6@onO f{+*i1|{2J%( )wN=U%SsunDD(- z(@5-t^eH^=i1i6IzCTo0aIHzFRUJAvCG}ce3pUgq&3mdZ4$?#rTf_*0`s9-xTsC03 zYjm$V_we%%=e4j9B$wHuF~GLO9-K1b&r~o+YYJ eI?QYk8}-;<9RXX5qiKcnCfLN`D_4 zz*yl_IOsN1dhdkX64x-v kHLGT|+eXpGfbUUPg2W1pta z@9&DjER^av0Q3GCl`~wo-<`wr0Phpti14J9xPd2UZd)1j1~7&mG}#!87ZqpL&g+)a zpI(2Ia>vzn>_p1Dql6$1*C 8fo|dr5vdAOMqF07>@~0m zkuEpg$Bg|1iDBQ|_WOoHIPH&mZXo(BhwPr#<+o=0Qxf#~BG(kMSi_~H1?bYM)<-|j z6J~o5GPF-NZtyX*Le#O&(T&OCkbQKn@%INw5UPF$>CNh>oca4!O8xI5)s9;Wu<#x{ zU?M8agC+^g4s<};X9);#7U;mW!?Z)(*uxd13&b+3ypjr82-DaRqXDXyDOPYRi>eoy zfMC1!z=lPsw DvhtgJ3!m(&9kguq zl-}OYth$=C^p;SdAzic4)NxCTVjy!xwYj3mYYY7xfGLvWX(L>2rkpiTe~wYN##wGm zmicyoKF{Z}*w?&n>~=8S%TQMC>TxJZ;A -#MRudt#|7&= PYIX X1Dnxoe3tUTaxk*q$%>@R*a0gi5SkLY*U26x-~)< z%iBiJ13px$D;7*977@fH7A8cs&>1sF7@IsnFe}AXW{=`{)GTUk@Lc%TuRSanB2DaH zXWj)p%GpxF=peMPa _)UXHXxqb59s{l_{e z;Q(?pcx@TYI!r4MEg~sX?wK@X`jwg7E=V9KS!p6Zw$fLy943^!s@`2pGGS##&zoE} z;K=j2=8y4_A^r#%zkJo65)46L9b*OgVmIj4Sj#i`Z)JgWGr)}Q{o<^J{Fnf@sHY&y zjBTB#42;6%Qm2@NmD-ZJSy%!bhFoH-xIb0$Y$=dH3Ckxk?Prva)@g<2c<3IBTGx$O zshuJSAb%Q<|AXgw)(mbck25SYFKdOBj4VR^=z`}CE_Sr}Yv;fIC=@5Z3Om*r8Dw3S z)BLiTAcq1$n2#^tEMu8DAjB)c?|!HRErmX-_iJr(=?eIIQ3=Oao4}H?)5wCU7CP!T zwDXgEF_JbP$du-dr1lMeR8HXax&E3kFATu4TAOWX^<(Tztu0sRmVK~Bzt|#rU?G`h zS*3o1NO4)1a$toY|G-BNm%>GBXe+9ir?Fy>ds?bmfCaC5Iwc{*gv%QwY4~Xsstacr zb~A()kkBDZ8=X1ge{B;>gEd5T1?!~L&j>44Hd?<^BGzq0&naFL<$xK>xnyevA0J=H zFMQ46+xoBL`PO_&T@QuCvY~g?)Mb54lNKN)J^$n~3qwp*@mti{^S$hx4^ Q8P@o0OPSC&7~>({E8c(^8(8N#)I7Zb(XhMV+)isI?&QBdH(AC(QXh$a z@Q8L*cSSu^TPp_M7FT70^a14t{YM42Hu){qP9a#T5ii_v!?!?^>|^H4z~s_?R3p4) zSIP0)@@Zz7e#GWs3M0--E%n^ceI|0ZYjqNv(y>wdEM5HhT;4(FsYHd<%hWjQ=)^py zQ2wG97))%+LKt=xPc%N3_yh5hsGG;P- J5+J$ z1y8GSMHfjdk~NfTTq*5if|5}iU(CpJfO+&UD6vzH#4YJD%Q#y`)mziFp%DsNZuMrr zwhI$X2jL%7_oknuT}zxe(zReSb#`1gtH-Eo(YEiB+q<*FI%B+oq7JJ0 Mx_s7Ly87;5-E7+_Xq pQ|l^If5Pt&SqTOru`mvK*}T^7TKB9C4WtcniArO9_Ih+* zPLq}F)oLa^mWK9hr7vX2QnF^HKMBF4FH8;e`H)(fn6tZ= rcUuptydIv)hf+ONUJD6 w}~gdM aW9~!hW8cmo<2zZ&^-!-rD_Fb> z&rkR`%w$A4vbZnFMmNh5qAC54oW8{m$Bcv4(+(Mnfq3_)yziWPK@DLC 9?`{$)8 zmGOHWZj1xSDE7-RGYw56<~I50s}For@9%QT%BS0Y5^Qx*S%kwU_^WM-2~x=d3qUrk z69j#CK?I4qui7En0kK9WQ-hgS#R`5cO6NJO?_UsOF3fcrgpujy&ZWsu6!IvSoWrO< zOb#mekp=GAPayf!IX>d(z-4#j{5cfe1)|gg1W~800+j_M8UI|5xrw0$%}@L)UQE@n z$CG_vwW8Ts@h(ALxCnW-Zz8-YpXrsG7`$_>YvWXVkgM@zzon=VFsZxTu@T-(7E%0^ z_>vN;-+m!yApXexe3u8gGC{q8XE_z*SrsQx&0*4XN--fve;5 ;}U|OFGunaYCOG}NOA^hyYwS1>>Brl-pNb% z>cxyek}d{|q!1|WYB&z@P}_Tv1agF|AoPaY?jS%;Tf0p<|608g&x)u% bkkoMVn%Dj^Dv{&BoxLFP!z27LB X{XH#c zL~UWH3wr@N7nnzXYZy?Uch8{&u5G5{mdwSKj##p@*RfqFF}m$)oo*Ux_RbV7A8N(X zFzT-SC2HUafeIcHTEuklDn~Q3xfP}cE=ZrWc!06GLMJdeI3-Ji)&NExPr7B4B6yv% zIWT>bj;+fpsFYGOzj1zt(WThTHl`+C{sPHXtdgyLtpl3^UKal`Kp}bi=es%!%JyAS zL5Q|AkiB9DVy*V$d;WdomXLz1D^2*^E0T~`@M}Q|Sf G$974&z5mE+v?_+2VK;{$$%zD6tn)CmCq+a82vl5{u^)`l1_v# zg`Q*dK+Q!p7cM 2FF+{P1#Mj5~;?an=U80!pQiq}G$Y Pf!YBrP p_Jd*!HO7y7li$7eGA5zJE1j6trOGs}I=Nf*Ck<*IL5$qbn;mE?{sr-H1l7pyF zs5eG_Y$TJ1yKN5Y$6KGzJ?_coe4S9@8BcZ~8e+sC5#s{!Sdh^qNC9@sR*snjneiaP zk@gVnXlhsHF9o8ESNkHGCrfyFb$R>|hD=*0-Ihxp2tEk?uvJgJN4D4(o3(>(UFF 7ixcV W~ZCn{#`Flt{6$R z)TtTPx>p}*t|5d4o*?oAU&H4NMdNR~lX&z((8KRG;($rO{|h7k%&ZyD5I#}Ukl5Gs zdtp{EcwAitrD@`;>O)BFHl{fY+fe(V?AAR(rUq<;$cov{aXqKVJLl`{uhmpnS~$4Q zUz=^R9u+z6s{Ap1CVsx0DHFeX%;q&HJH<$DiryrCJ5)JZ;OUB&=`!-{TvZ!MHkW7L zgK{HO`&Uhjb!_E`{d7Wk{iQrK-)M&XGs|xctP(WD{x_RS`S{9o>Zz=jIzLYBGe_Q} z%5_U=8O7SL!!NG_fmARXapwluKeNR65ne&kUIN7){<(*Es6fv&DpVv-A~im^fQejG zu+a3RpANj94!Y)a(ro$s-!FXdm&Z;HYn3jNo7iz-F0Ug)RACWVYgYe7txs`GxV-%o zm-?~)oCUBoga2qCkW)l1!X Ri-Ta zL6zluBY!!Mj0g2Aq<}{O L}E8*ez&-m{Zk%vfic)jXg`*0!e zObPj@XMIS0!?iZ1g-hY%#TN=o2iu&dbtW1401>>H>mWMHhL^r^xAD20ge0-pvqE|4 zyjGFEe{I?}nWZ&V4qC}7SDy<#_^G>A& ^Y`u~`arg(EL|qjp=39j ztATww;LO`*(mzYn*xVH8J7hA|O6#g>+aWTHXT9#n 59dQJ=CmpN-Kln`4ddN}p zRsGmo(KcgnEfA3l_i7@S+nmOt_<#pT9hqax>SB&pvYfr)^o#n%gO&A+)rVFg2Vssf zhR!!^d)as_YRZP0u%aI?7XQG&c>gc1G|>9N17&4 tMTrGRPWLh||YGN0=ypDsX>R2_s}v)4NuyJP^VBwV@`(^eTjkKeY2 z#A(nlQ@yNZl7{~ERxEh7Dq{SS4W`y)EK<%~Rsj&&ZnCNI9}?xeMcMKnCJl0+=29ut z`-=P>Eept&dh3)st^#2Zp$iS;BidE?t+q!VAyCy~0Wy5YP7GTqf8nIS4#)4xBgi(e zF+`%AShTLKUq^7c1tV{r0tI2AN%2}@9k hG|-!93P!#LDrMmujDm5=|O}D(pvO~ zgdOopt%b!%UHl`lCT|@aUuGeyu~>$$nH@kjnGoWGQU`6~>6VrkTw pIeuFO37!dYL2k@bP&P}V@1Kp7~xlyaU`!t+;9yTCnxLizmnW_XcifullX8u)d2 z{Y)XKSsJYFsrj0juJ_A3-hWIK&;8L%OROG6Cz3tLV+_Y w$6-} Ep1RV@|kSE(*rx!nj=* I|X}cDtzuCNvU>Z32O&4 zOQ{b0Pf6y!^NP#YlWbfF)>AG4&H=4|3Q3P$QDID0kF5obcXhAj^%h%m-bZntfc$go zZ+SuRGm9A)BRUUQOWT@p_cW|AxtH>4K!bXxBL56!Vl-z`9@dQ`Q3)W(@O<`bhnX@) z+o&1&xf?x^vj@ium3EdbqMW^X^1ZTNP1?EN8B**8raus0jTD#@q zE~Vts#X!s{EiIt)OsJR{m@3m| FaVTe5Pd{-0pkB=g)&?_6Ga _uOr7`kp%|oer1hkf+nlKu0Q% zpG0DaP19uj-W&=%=waUq%&AP9Vc&DqNw!L(Yxa4(W^egoGDSg5QQVEJ#^@xM_L~=2 zfjOt-0DA+?iYzmJ>0;1PfpZVbLZYH_7O Sm5v2i3nP z4P| =aVUe9cU6zN>Gc<52$G2XfYAGsu z*L9AoCEjp&B$sSyfc8}fAf4)eU3F|-Llad|_1WDa_lmp<*?C|=L7l2`4du*?Y~`Us zOPsu6Limc=X72puI*O49pAZ>J%6rgn5V5-wst%YlTI9DRTTQy#7kiFq<&B z`c~}(j+Ef^6pyeUtQH!M{PHE-t~Rf5d?TBic<;i{c*1La@tZKOF}n9Ff0-9hd8uMD z;)O=(>)~cUQ`j53Wy3C}EISp^B(3uG0dp$%t}^ThB3B$7jiJS_;IKL2yTR5#W8*%E z*V66_M~2xhvFB^ZFo_a2JKZQ+6>u+m(u^cha(}anHLi`~zy?A3CM05Dp!NHCrB~aO zzwWakIEquyyRJ}8)gIK|%kV?+ZP7`P4q}&VbYAGzsq|lFjrjvH*1T*!>q>0On^gI# zsm1_#kvO6=f|{9$o=tH)ruoF0#3cGyVjN+r8!DU)=^n^_)`QW$MhqFH5>#ark{066 ze(_6!iYKy!NcCjns|6x?R+FJhU45~N`_Ou^brmw?arh leL5Dg_-W6BGWZn zI&YlJsD^5Mm6_qr^qS1RoV68CJHTkPRcYCjgFTHyNOC) HK5$p7-hg^gdX_Z`#My2FF?D&_Vai!8T8s zl|Fs0C-^m9ZXSqnv_!fy`{ Y?BoKrMKPTJfv>a14aLl@1d z8DXU_f{c5W2=gWkO7;v_u}ndYsqEn!7z__pn9Iw-Ilsm{@?2)Bf(@? Hzcd7 zBdJtN>8`7ZPj@g|T>U$@p}J$yokn8(IM2$FyFt&0cOSNROBA*~9 zBS(6JqM80>wFG;V@O12%A$x+fglsh!#@K;ejb3U63VF!RMQS+e$lW!|p3*zV&+IT? z)(~M7JM}uYa`El4jv%(?Cfk6%U}{eGi_h?U!tN)zI#&*YMbNIWK9Xi(7@mX3p*R(0 z(_AH&CSHhGpr`fFBq`ftMSWL3VQX0UZ%+WIBtp#7WwI&@0cMsTBCHftk2e(QnXc() z2`0JtKWtr |%ytueiNbeXi6U-R% z^wqq@)k!3A8WuG@g*+e4t`XPgdGKO_@>T%>5EcJwe%Mg~uBHPXh@21f-X-V8PYHqI zDwO6Xe2h+34L1LoEykW}$;$Pmwb{wxO<@o)i>giY#VsdP4II6P8_4I@O5>vKdM92@ zW;mWjhZL37^Y&TVK28>0ij>jX5G}a4o*w2ZBDv}N077UBSMH%$HoozCjN}H1_`u3a zEdSkjwYZH*soQqs*>&`kQ5a;BgUky|uc9?a+!n6(6W;yRRsZ@h*a*UWuZ^qzo!P7) zy3;uYwkT^4u4B^ky0yet*mNB3UhOJ8Eh=EY_-O*q$6>y6Q#_DouYh{?G)FM0znUlg zqtIjCCnMAIvy(oCG*w2*rVC_s*vjTkMdPykc=>dcxik=cUf e FI_E)0kqpOPOACzS=P$zk1E;<*G(PJWE>lQvB8?(m_11 J{r)vO<2)@NdZ+pJj8Ao%I!>gl7)P@$|X^)8n(* z%?3n!>(|WY7IQConnjW{xZZ-$C{GGsXI0fpnOrhoII9ZCdDPhI-X2LU)z+omMs+p2 z-f|Vjltdn8efjBV!;R|&H;Inx9aZ-W)(mBo^GZ#6R1m_FTWbbALBr5_!Xfj@as9ig z)R|IG-o88C{XF#alb2+fKGH$w4-XiCooEbKM3sfibf-j@qU_+M^&WNW6S*E=1YO1J z(Svr2g8|tgtD9%MMcE3IhInzegjBW~RQBCNi+NM~e`y?mc@NeIPxSVgo*X!tv{bs+ z$W`X!+ 5f%QYM)Ar?`xohjXV6|7SxX9UO0C;T=QM%Y zp}54>U?xyLzeVf(g@%ye3)8a)%1lpIcnY{GD41*B@aN0dh2E`ZE^E2+sn4lIl`JkV zxIhpa9kg7R=V*W(t+%!82+AUia6SWNUrigI&BAc-C*;fTm#q-ByUT3AdmWEBfG2eR zVw`^o&iV7xGXtGMhHhM|s>dhdYE?)Q+8w-YjOg$8 E$&n|xzH_kt1zBk=`w9~6@foRX&AB!+ zr7s9b2OYj?L>L`}_vB!7r2sClEKGDI*!nn(VtMrI#C XV&_P!0zLm4 zuNS?5rHOPi-qVtB+Il24l|za3)J< B-j0B0-<&daQsWZZCbjZ=x>hL9_B)n8g8S9ntmCd`XDzm@av z{RK=5(W{G36|TfM_jH~46nVcO?@Q6;^!lDV*ql<4OMBeS4nQyK3hS;~+M)%| `i(TS6(jw~ptoxeCGjm6=vgE68|pTHlPjc;E8?G^`bu zFD!Xg`rC!NxwjI1UX+@Y*;{k}R$3|y>?uu<-X269Xngj*-OB;Hna;We2uxCQwnuhw zE^ksxtF(|2{YMX#Tgt5KUFDUflIk9DH6whZ-1l(w57QLLL9(^+`9<}+ne_E*PH79C z88d6U%_uuvZCcYGd}%-6tZ?^?*I@Lj;cQy;>3-d$bv3e@`zCb@>4F3qbc`^FQ;PMY z`@!DWCG6UhC>~|5x!BrbZBNU})feS!e#+JgwER`wc|U TlK(o?bOnnWWpM512-iXd5lLZX1{WNC*ijUv9PK*{PAps^y zA-ASD6hF|Dt@VYkS58@6(N+Hoj8g|J7qX_&KUP^37pjF{r1{P*|3U+b!^>UG=KUwV zEC$yeU#u~_054?k(j2exvr(AO8lL)q_Qi_+YEWq&chYz*8f858m`A*8>{8G9JSGe6 zwr8VrMHl<&*6HaT2m*PDC8Cx3%3|?P&31dc-miYTsBVNa4tZOI*}sgFzjk|Y=^aeJ z&H|W6$`o Yo9 uOje!s!9>;p0;7pkANh9&@D+eFEY(8<%EfAXRKZg9M>S8lOjx2 ztmzDwFtNUQ*q ^)OKGprW9GAAe-_3PW+!=t_+TBWLbBUa%!k!B4@Y9t^8A(h7v1T_CHOs7 zu{qyt!Ug218CkqGD^AFu+Om`B<>=Sx?Mv8Z*5b)-2V%Sbbf nEat;Rh(_8W3t;V0&^&rW?&tO*OQCNJ&0f{$Cj5rmjTiF9K=Bwj+w%r zbT)*tDqPA>hJrayF?pO(EOKx8?L_2l eb1RIEPN zWl7>RX+15W&aMoL+JnUnz|`DgQY6yNg*x!Ei!$SMn(SOvW$UAaPEL$CR3PrN5N~XG zJQyl|3(vK~PvNDQk1+3 3-^FQk* RrEQ3|S#Ti{*DD^Hyx4_-=NpCYSqEPn?%H3dzsKUwhh zIxxa=1ft8J!H8EEi!2=1Io@b?G~kj*XEYK!Q*Fkp{Te!IbyH1ize8S`BAp2kVE$GM zEg>C6U44sDWyu$Cr^@wEExRpgX=hb*Vp~IL8$dvqrQte6mnyOmuT?_KD-c{(FI`%s z+1k@A5L-_n-e(Qth%XnH>(NfkTzEKplQ6l816fUL&jy{IG G((@;`-=#PG$U~RV~;W)wvD#3WuVwjYn7HQaOVp zsey3Z=2hU~M70>KTltqU3s0@#xvwm8Au=s*lTUoCnXpMTzrop7as#jnkxLVgj}%@& zPu-^-A)S8H+`ORw^?*3%%+RB8d-iqxhtwB>6BLCTe->cBQH-t306|3LFIVe8k*Jk5 z;D)?sd*sCFj5~;2YK~JuOaZT7+!6(1hX-PEbVRO+%Mh=;BImsIbyHYGLBhibw7g$F zu3o^(D7_vtS(SDm_7FiZ5*CK=rbyOKn;!lc7wC 1Jv>kj;-->Mh}8 zRfs%kcNm9 @tGG8~ zJ(!B9^GKLgf~@}S70)FS{t%tJ`1tgjdxH5Py_QB%o7l8PBb|^$4VeqE*o+HAN_N}b zZ-s}3wPLN_7ab9$)beP$OBDsok>8tyA9DO_MM>H6YeflnO5CMxJ6t(QuTAHb762Ae z{{$*ME?W8-uLorfh%Kdxphx@IBJaO3$8s2P-b~S*HZ5g7baPztm?<{?iZg+hfkMQF z %NuI?9HaH zDoq~xXoreukqrhCNL?rdxY)%@%kmt@oIDa7dk-5cfUmm7Q774(XH9k8G?cKv;rGd+G%6+aXt!Mx~u|vFRUE+D9_r ztdXV@)b5CgNYit 4d<87{)xCp#3vhXp80x}sVVbamK2`H zuWrH@+l2 _V_h-Y;;Z;xi z#yphAN7!B75#wi`c;dWxMC8$7KArOz&r6@MnIDbv6wTU?8X0|_d#qDZS=42_Uc%T~ z0LX6nU!?#Sshc=)ta@@N9y|WE^4-K>?Qo+*8zWHtwV?xuq*!8@*ae1G^ukAtA){2w zEl-yhDXT=z@p358c3nx0lP 6nM)6IlQRidz5?Q2kUFxI zQMbp`KaL-Wd&JRUvjOM$ A_) z+Nsl@ITW+fJ%MfHwriK)l)!zXuivQFRv6fHX1ej|r-AIX2-VIgP}?P)YaSqm{cd98 z`Anu8T`qT4u$52jv ha##)3<7)aW}nETEPGPv+}?Kkx$r*kFZu; zHQ3(31<#P>xXMiLmVG4OdJb}n$m5)^=NTK5yUpkX%9VrT8v_`p{->3l*W{`-OcpaM zuh<2P
atJ#UE zz1m(&^5P3>7s@?7^6$`(evhA 7@<7 z O@z1+J!guT$jGrpvsFr0^QL zU^Dr-S)lZCPy+Lk8d?2}#4Khi^UWbSQ+$N`XH-@>Z>{gbF%wlLHRvSiHN+F#B|FBG z6gTy6qpq@+d# sBO0W{FIyq_s&w_+FFB%WMW4j^hX){(* zQ2I&b+itMLYpCgYOj)Iu_pNd}YRC2UBnQivSg#knwCVEDfOAza$9DI1^uBuIT?27Q zXU9G3@D7P|CH!h1KamNE9*|?~`W<*h+dBvGuG5}a!KXS=8VUwtp@n 8OtjxRiB%0Ocf(WWuKvq; zN5zVv)#_#s<(GXjZ2?V zVG zj5Z2-7j4kCFt^?(*HQi^;BNfg$TZLUIwMwTZ(I}LE7Kp)@II4vNf&|);2YtX_~gm8 za{f>TRv|bdRl3jW<{G%tSu*qF{mJ~M3gmZW6!C!~toA)W)1!5cq)`X{xKIk# l+-Ns_=h!`|h|Vvu*7W z#R6gh1qA_Tq^VSq-kiY^=>jUfC`|~xLkJihaTo;@kWPZqJ4i1fC x=ddjTop9CO4{-2fk+HLegZ~ zUBjPLILU+u5$lw^F1eWO+(4049l!M;qm-efJA*mYljNlnM; ZQtu%~MCIS3^PpFA~23F1^I&LfLLuWDeZ^+%q`Ux{ptp za&+tZMnj=+FIF%827Az4x-azy?^`dZ)-GqM50-}0x3omRqJ$aM^56f&?n$#!UG00{ zc~`~2&l#`StWxv)b0UzQJ!;*@Yqb(|7EwBc=cN*INwa@{>~CSuCvMnL-D=Mn&D>fc z31bYS1~0SE0`nI)BaMBlpE+xWg!z0`0acz^;5*xk4%E$_O@oe-+#b3Voojc%%t!Y4 zO2rdmjB%(|DWMIlicM0jLizi_9$ZtZvPSY(7H21P0XTb)%@fva=p)RPCQorWGw`hJ zv%$)b8XR&{Y{O?-verT#kUjt(p6p~!9T {9b)2_y>Bs1g=+WZW_-NBd=6G}6rGR5C2OZR1XEV9y7v1Ud0GNEkiB<$=PKD)>il zgo2n;5Q^J_&dQ96G=hdJOs|9w-i;$_ z&tDpQ+qpJ>+2n8~b#sF9AzHDi{FPGb(vTcM!y&>spw)zrad%`MIQ3-GR49Plor@-6 zJH)Ae7w_FP)sX1(&_~TQm|@9+Tf?O{wBImFeg{6W c@p0X6BIPd*9+vGrkZDv|ztL_opBl;Q z&NH)qKiN_LD^%bw8tLs8X4`~m|GIKqQI3y0 DG0Bvq28y> zOnHEM%1NZ#E8k(xhYsVWobD;{1uN6bpw`;^L*I0yhaP{7APG3K_NGyCrLj?jxFrq3 z*Jxt(o6_=Iv$P2=-D;SLu8K?en44Z2 t-aqqTGOny> z^VUN`{%nt>=Ua1eCQXA5U(IGL`y4Q)zYEi_ZN_6+Ul4FBA*VP3LA9Gwb@3DUN|1&3 zSieeLss2GCxx2F1h1jmIMcz+BMiic3vr>;2fF?1E Sj#j!S*TE9FKJ!+ELgQ-a2wXpeTwBwwZSI}sv%7^9q^VlZ)4|{DiN*|m| zk>?er!jee?9Ev)O8B}RV^TU_!@r1w}_j${9dw?S*EZ^s6Ee$9#t90Pzv12=vhx-@& zsEII@!!@NPv#eoA0%>=ocV=GD8wXCQ48K#Cysv6zUNhE~QlBzA=a>^~fhazvtKWcG zW^+0;`M6hN{zbyj<*xOR<8qqHN*}-b9(=dilhOxNOEkejy30s5vkj{jn~i8 lBv6=+hvZ!Ip zc_sY@Hl2~9*wwQ*=WZ=krEg{L0prtfIjdGL z9<_(L%(O%rO^Jb!-OEOx7*Qc6`BNDjV35f~VPp>wAC*eYcRvU(YRkBPXuQ5Id<8!F z@g5*j6F;{R94up%53#`-RLoAVa?b;B1z_4k?VVj%N||k?te;<@L&Ypm2>kq@k*~ z4767Nwq*JA6!LHvl1EfMp;pFd&@-6gnL9Pl#Yk(w)B9D$90P?DN{244Y~m*<*FKd; z&Ispbo@$@SNfc^Iyi*WkL~L}6-<#`)RL|d}oK3nOFvJDbzAjbVXwNLBHps1bj c`^9 z*wh+=4&|YO;#khahH;A;!JtV&7@wY``#9u!Dpo_-+vP>p$E9IgeVFCf0 zQa zU~VZbh5yW@Ti~C;4<}o?FC)5!YDB2Jx%5xP=*Efw$=8<1m%G{ucvMtX7xOR2!HS>F zR^(UNeg%l{qc2r)6DM0O0P=A*g*J8@9g#UUr|ScK$ObPg5>qR4y`eyBS9cx1#s1hF z$*Yf5dWA?-&6!i^pZBOSg|jwC98W?{m =c$%au zV_XeC_;NLHxr1yKve9v0*{?gY=Jei_-<7e*X$Qj>6K(StVd@CLpfM0ay{QSZiBmmX zIDpiN(U24Myc%C=)k%Ji%GdjfuAOA12nlmz98 V-5MNh! z$&0!pl{aj|6U+*!IVB)j|LDA-G8}V~c9-t6Xo+CnMCPoH@(ClmQ7R3uPKxNu-3i7U zxefOYV?TNIXgp>?rpKmXT|W}$ALV;vSjf7JRDxbeJE3R5gDgmch@R9X>S?*?{14L= zyfcd(2ouFlewh@_Y< z<)I6!w=5?;KuNkPrP@WPz}_$Mu)rDgTK&%Qo&U8%U=GP^^We3aR> @Z0DGH^i z^x=X16OjZGjx->1GT>v3oA%+&Nun;7f^Z5&WfM0MdgZq7S2ihAgxt;6sF*GXyS2F# ziZzHDG8FUD-c5#`QCdweqbSDQ;6uSre`xCvv5_^f$1~Qgov<8xp;{iAUWg~)gmF3L zD#=^mUgGB%PXA4T$#qh8_h?*=#WJGKftuMW=8J;ienTmhe7+dV=%w!nVisBPaav9B zc@2b79i*r3Xrl07kiyk>kNpn%V02*03Vf0+PbqAJ@ca-B EcI^h&je-64s zo&rB-((E-Ui~o$IOPD=2sS(}hhEc+ZaB8cZJt`Rq eMu8hzdgbD|+7igoDI4 zdR}#tj1QNYf3);5kSBbRk)CGAfVG5rfqWgSRL&c-ihUslLt0gB0k=MtakEkVUAIDS z1K6uX&Mx+-E?dT_Do)9oPEt&`Y I<_#SH^=p6EF65Ma*aPFlllD%mRxwroeCsl5-xfL8~6kUqT zi4huowr2LpmXk^5oPI+sUoOdELO(=QJxkUV(ty-bRf()|DG**me*zJybPZ4Kqgr zojiu0=Jis=kPtOjO+2G-d_vofFnj}+ sVpLVUuf8a3KOI$! z4j1f}Iu?;ms6&>O8OBX3hz^W!#^|eREdJIy%UP<^sJQsJH9vBQS;-fAw)Gj-Jer&_ zc)e-4V^;z1jbfwd4xipEvQ?^c%*pJluYd-I_~J-y=M$54Y6$AuJ=v=a)T;ju3p^RD zWuAC)1#(yvn{f6A0q7u)oN8}KMfio4LusEnXP;4u6I4rd(>F^nkC~Lzv3tj&l}q8` zl+tb#U3}U~)ecoRns*8M@e_&DS?G}V^2ZZdh?P~txuul{uip~YNcp4T<9{Ce`j->^ zUjYRi%{B*ZQcn~k-@Y4|-In8jFuLGFJ6?73iT_fK|N5)5l@dlhe$GqKQS_x527T;g zHddWHUw_#Ipp+ g{-!- z)<3`Bnak4Yx9X83Be1K+TkX}ObMIu?AHWmWA)5!;H?Qu RE#|9dF#rzSipFALT*1%*b zAB~pu^hz+AvYv)K>TM~`b&%E>sPO5 ERZ9Z+D zGHh8kZ^a%ZRs?Zq!l}3PY56jz#W woYv a#fZKO_{v0 dIStP z(0G9yU2&)a4KqxAJ@+to%9JndR`Gfp>?UlESa#VoMk}|R|9^y-p6~5sdi2|xgZw#2 zovzwFF>f1Dpvlk_sFa{O71yXsj2`MJ6N( nZE7IHVIdJWi=jjlN2WF-5|+P%tIgIz0}TnNGDvs_&&&wtpbvkVk**R zt>sFjxOUC_dba37v;|p_g8ja8|R4$y!R^G+#rnIUSEaMMKj$eqcvWN{*@o^z<2BhS)8-L){(JN z2l`XCNbunIFwwj!S>&kzBGH;!uEat4`9+rVvrUso&{qN>;40Rprycr5eT^aW7ou!I zp_(8Cnaw< ve1<4OquT5fSB3ko^dLdW{D#*##y<=xi{V}RN@uMduh*`kB0Uzrg z2v@|fDSiRufn!Pxx}6bAJMl?IW3yEDVdH|EDZm2Ytz;Ctz@T?%i)&S>OIWy<`~rLr60lAt9WgN zBEglqaGj`3E=-j9Y*-!KvwfG#8dc;
PTcc`f@4sqbDi%S8 N$Mg3GlstI-`OB8(UVRGrlOOHW;9O9~?`~_Z~mtUp+Yr z;{>UCq~}QK$IGk1V-!Oen$8^K&O^tS=%B1q*L8f{B!_2jZ`@z{7<+jHlBiC_PpCMQ zUkX#t{kWwIkRXRz&kP4@kCcFlY<}3d-`WGw1ySyoaFl*i1JXYi$$NY7k0DZ35AFDZ zdDw hZt4@2buaDvF^&)+0n5OG>tfpzqcyIq?WDd^eEcSf; zZy8eb_WsYs!{EPs#Voy-1^>8V?LvSzrCEy2seRFm|5zpbr3_YZSN V4T z()v^Xu{9jGUU>2H=_N+-2`#)>wg`*@X!#7k%uc4(g2Q-lWGf&3Dg&%x_sR$d+Nub) zg`-_{`c@gHM_iIQOG$5CYSP`Jq@a>hr^;LzM% O!YV#=zs-}%a6ou!LNlJS!b|vYDd@nHmm?6F7W_CHy5 P7QtP%+^&?WUc0rA9=cU z_^jHmTl8ul9L+ulr38rFwDjd&*^0ABB03w}o9>3)oHZ~^%fM<)CcEmpT#r*G!7ljA z>%X_>iy8j@XUg|R&P_&8kk*Wwi@liKj^K~M{xlzCJ9wct5BOccV$*}ySVSli6!8F* z#gwL03=jW~##;_)!%At{NKWvq3DBfNHc^t4cdS2M%q7Hr30w2EovkeHWgJr2KzXUA zRKVk%pt@?fL=c%--N>8>@`}1*h^!dm{cInvB&nCa8?bD#^kGPN-IOb{(})CtUrmSU z9y+7IIFFt9 5L}j9Q_J)SA5vz@sinvw7lXwH& z?N2abhyPfRTS!3z#Qzq%FRT%)9w^d&pZD_$YN9qD9CpQ q()f{a4S*{E|iw?VS+a=}UGItb3D-@sPW{p Hs3c6w|r5|vp+QK9Wg;tBay|^?G;fs-w1Y*F~{0}m8Ea614fJ9 zTg9FT)SnFt&Ot4rgam4!lO(u?lKgSk1px%mf47<>AsB{*$EDzeAX 4*mg$SA#C=x7;9%XFGGSKAOID;|R$I(7fh%G3Ecwzy)@W@{_|vuP zw*zm(R*Exy3?s+U+9Ce8VH*Hzst!aW Rx3W(&^JXn>#?aI9mDn;)-^G#~5ej A1jc2*=}G-)o64)@4}J0U&|$p< zDG{C2CONq&-f1&V2CSY04++m}arP-Ac5`LNkWI#(M!Jqnq+GsHW082yJ1s5C9}{k4 z@uFPLM<5-LDEB^aq%Ki|TD #Guv5<~r>R!iO}+G(0=uxQ3UO?mF0WNzf?Igp(Va<;U0eCdAN#cNQHA~z@ue!< z^Z6)R2iR^^gq{|euA7j>>KnEf^#!$H _sHk=CJL_#C6wHnqumrO z?DSDlNYl+wJl%5`c^LXb>%7TkPYO9kg&;< Z`-5# z5z5;UHRq_4rm3Lmb#|?i>-e@Ikrj+ !6jEI z_7qJ=X5|mSKkmOd*ikBl<7Nwgz*N>6BI$)(rb1frts$vLZ<2 Ms-&s%mHqyfFME4^WLJ_VIRR0s_zNqF+ZlAMgxSblv85vE1YHz90fZ z*KZ1;i%IsCxIZ&!t$YC?h)J`DDT&rmUY{LktbFq31_HPh?_|uR>x2EQ?Vjuv9e|ge zM~WZY%T&O=HvyaUkbaKzRyYx=Yl!QU-!7W|JeGY<3sORD*1J!TC^gw_!+U>Jm-F?I za;rbH9`1BMh?hPt^f{sVOmDY-q!Id|0Hzq-j-T3frn@fXjdOd686KR7Npq|^DXK=b zoV>z+mPnAB^VVOwA*INiJ3?s+ Z+2B{E*WvzH5~9>kQf`x*?kl*t^3WC~NZ z6WN1LIIA9? `*wHD(|b*-b~q9{OcSAAu3Ga zNxl(X^bS1DuBsq0r~SBIV0mD=#;Wi>ds~vfa9l2`V05kpZtI)yY$|oaYK266?4*^d zIHbgpOzWpCsz3Z-AKggXCqln{{<1up+i20xPVLnT|5Fl^!&C;Vc2w~K$mU6ZTwX)| z7$5LLg*@F$fx~%f?bXAii~_CgU^v?ag0M5Cx0mMlE6YVggSB_lt5fSEYp{#uqk~8t z3}N8Gl<4P=H-nvqevvgjq@gnh{rt|`fY*F_(}g&^y1bB8a(8&RePG?ZeJnyX93I`3 z#ZOP*cE(K6Zix9YrJ!QpSS8e2?6ER4<0cv7v?jH19?<}yl)=kh&OZE%NA$^@ijwm- z>33YC?5b1^2|T*R9^tvHNJ4Jg$Ex~eX?hshxr2G8mRtd9v+3czgZV1Jl{sEnQ;||a zzk@%{oB*^Tgj7ZN6QYyFtBL2=%S6jZ4|bG#cFE?7i+rWlbUWMo%b=uN2Qw49CxsoP z)!AMGJHWt{`sqs?Z{>i)H-nyT{B7fao7mD~+o&=|w=-WUEFb?FyPe9|-De*@PsBbE zE4L|2@- br$BY9`k;2LUzZI)q{+ zlA#=0TQ;)0KnW>?C4Z8IUY*xWJ(+2iASz5OX}yh{B@aV@hPsO1Dzk0xM8C*)zoQ)! z-&^MnBU9=_VIc}v5%%hc232YZj6?U+TZSUZKN*X0^sjv~a!gUo9d@>SG{@h+gm9J8 z!ccOM5zdmEGdUlr4A?!ZW?9U? P77qoq4ZGC*beE&sf8L z$o14iS=R)OzMED7t-eh04RlYRT9m^jPk7o{x;9Cdo4z>QZr?M}-5OGHlcf6M@b2jy zx$}sTruxxJk!;XI#L^B751S=ZBUhi3n!TrU2a8Ihy7t&&$_J|G563;0^m6hTNf)b& z@UmZms)p#ontXNZ;nGGu74OK4t?CS(!ljIo=I^x^<}Y*2o=g-*PF=Q*c3oBW4X?O= zUp;$DZ#?9>R7a!9K7KS{`tfj?TKQmOgU|ejSz+%TX?Msd%p+@uS?;HqyTjq?X{DpA zmP<*7OX`Y6X!|OjZ01BB<$rBHnM~YhbxlRdfx@(0$!mMd |6kUrWOe|*s^+oY}f4BLboo#sjf|;tHIJc(KY%j zx(|Go?VvGm-6kBg0eW6G!ptlQ_|Segox^Zwf7~6Q$t#SXU6{oG$>)Fnh-2Rh5RiaD zyn9w7C_L~zuVJJDUb&J Jws_y%8MZgNN=qm?;cE)%m z>DfJLPrwr~HAwcjD77V%-;2Oh^ZDrBWIM#ZRpn+Rvh2&5C5h%#Js(>|sTU>sq|k>Q zxLIwU9?r&aQ)J{k8qB=f!Ua;+n;>G28?Pot1KT*F=*tS@xfE6N3#r)5*1 nkwobK){wHE2b+&dW;>E?XR)=u*5XqwqPmZF~ySCl(c zfc22NaO$a~lp!q$kc68@)R{`{xk!Kb&F{vTgo~SZ@$+dYXg&ODlTq(jd^D(TGaIUA z-&t8`Pd2Pb=Q7zk+v|48ojD|x7T&nu`C-{6(S6ENY)h?^nHiR(*yhpvO-!V`!Y->~ zwEwhyZ~Uov`dTkq`=r>5RF(2UI5kz7T9dzM-&HxhE*_}=5F?cGQbnq6N?D_7FWsgA zOR`^|J>I~jUu-Il^ac3{zIVL4jBeFc6-1SvBs>jE2 %ektqF(Q$&ro zWFDOm|FnPg0uZ)|TU%+> Tp%>ZeU;OM|w96 z!7a}}2keX;VZ;#lz@ELqPHE($4FR52SSLhgq?$~wi#*dZPnG8vlH$+TAx0A8sE=E% z8tn7w(j)u*u8sY=yiC4~sQUFB$urPv)mVZ&cmkp@HQK8q_k$GOE0lfQQ$XdJcz2l# zpysI$Ap^yONPAB~hMuoOWnZa=e|S!*`lgE}{{k85jA%Y>f3ci2S?MEwjKa&*lv1UT zm)Xpgw9)O|&7~rQOio`$H^$CrOmf{z|3zy^Yfl>drJ2|6t E`r8gq0 zdkpmQvu9=ELYux *sMomYaex%xN=}Bcp%7em^q#?4bEn!c2879 z28b_dVd5f{TQI&a0xVK!%B7ns-GcuW1ND{fWU#aNx_t8F)c4$5E2{*J>yKwpVvc)O zbq6)M0(FMfylYZ5OmVA*e&kw1-bR@Z%k`~2p$&1=&JxXw{n%hYkPQS7=w6n NM%W zYuh(W^=i2HK%VjHdvXW;>_c&2hn=Tu-zEQB^RAQ2%dJE%!d0uZT3QeUK3&?O2Gwm; z@-}$!&S-L`XR*S?N$WPue8vh3*~$%Y`FsyXE5;e(>VP#te6@}hotL9q`!a7<_0$iE zr9VI3*yLH7Q ZL;>za>=({WJ33#uK>udde7dI&eNk&pv}f> zYqLzXG1tt-YA3KMcYIo!V??pfA8aPj)!Mu50XI0j l_DEN z>%CM(^ydsN%8ly;dt9Xe{crVihxDJ9Q%^GUTQgR-EOpssb6`8YF55*rqnRvfjj5AI z3Mkn-k-AkM0WSE5sfWFj6wRgxVP_{z@Rp2i7yn#lf5n@$lV{y~vas7GrZ+6$`2yww zGku$kvgYLQYn$>1NENbKWC$7l*7Da`}=;TmVz6YP|Eoxn(WWP7xpx|RUYVkZmRzVo* z8ntA})xDT-cBM$1?l)h-+h36#!*`^IXhf*SkI>cxvJu-_VXB8CCgz2m@bJlOt`Wgn zy$Z{w^SLX;y*3Y$3R=;Z of9sf)SRCj7%P`z+L_n8D;YrgMWln@5E}bo({-6z%XA@z657 C-wJJ7YeRH&h#J zbwTIo hH#HftAZTT@!$=riLlQOqW@A{35k$5XEvjFo7^M9X`ee8(Z1 z9!saJN^T@?=Mv3&Y;(`@yS0atPLQyl+(&GS`5Vu8=Uz^2xB3kxVHDCWmDL7zKa|5w zzdh~tvO*xqZPx9<^9Pm1`KP0}l8T(xe08~aD4{+}guD-%v+N{MI(70FDCA!gHqGqq zJqfBJ^KE+3s*+8a8ve<6(mWJb6B)IOB!oQsAS9lyMxe8xdADr8aHI&uee_B+|Mbew zk(NS(%Bwoh4-4raN#&@1QHHXH{YR4Y#@2(~hUL;4^lla?7^=Cm#PuBvPqJ#SlwO}V z9)Fnv!WKSIf3{-+qf@8yIW(ePS{-ixrIQC`kf}ud*pXUIAH2@Ra+xtp_GMAw?MO (27CI_I>i zf|%$h6@;2$U%j}MElK^R`)n^xr4M6^28cXttD^LbiB1yVxR+@#wL5ZeW!3BVZXC8B znaV3!Se%8Oxl(uG4InB!pAB`kD>vy!EbWeYr9!_;(D(Z6E}ZbHZl(8iDYZ497t5WV zdQo-qdyN_LB=2|A8q&23iqI}%YcPQ0a2tvM1*C;2R@`b-MbnM1*HNtnuG6H?>QzA4 zc(*qMbO$_|^`CF@`bth=`&$2dG>fxcCrF!nQrjeLZOu+)y+{6DfKYc;m%*Oz#PYGS zjwTQ5yX{@W-&6Zv`$BmJQ;B(5Bu-#;^H=CX*?qtNhp}I7qfU#uS{=F^)%M-d%!q@R zqastx6SNz7+b4c-y?DTtMZ`ufC8%`ozDviBOH7{I`)usUz2C0w|AFPjrQKZzN76Tk zOjE9(yOG;n1_!OGugq12p{IRU!{8*)A?h6LUFrWpFGqWf_2g7eR`lj#HEJzjD)_3V zZO^DV?#14%X!kn;9Sk~gP~6Kdr9pXM_0)`3Fz6aI!WK3*?2cL9T#r|;%9+lri13?s zuAZ-mGx5#keOf@cZNdS%S)u%Y58UZLgjt 1y1r7G&xgDnrDNHY@mep=;~P<`YmFFTm#FbP TnBaB!?IIjZ`DyWecxwENnPx_PfdQPC2jWm4w(-_sGziTWYJvUPm@X zm}g?^QjG!FR)#_8ruEH%RWS+aRMw68xc*h-6#MQK8eUENwV2~2=b4XL=bN@W-KFME zHO13`wfBc>?mgii#_i-ljB6USjxf~BvtC)`t#xaB$e4PTqw_YMzfbcIvRLuydz<18 zZivrJr2*gG%Xzq-`3!2|HR2jnryDVxbkJ30CYZ-L3V!vFp#WqqRaGR|U}+<3BNR1A zE&&?NFi*Ma?>|_v&k0UGCb}{ZdMnFj#?ZA|8J*5V1-n2&720doQ>}e%-)%p90CqXj z|Gj4D_xa `>|CJqG!fZp1-RLfc*kJ7I^PLv|2v%RKCx6x+x2Y9L|0Hk zZ@sc<2TieUitW&8AhVlxBQK$A+qufd0k_Yjk4K>MDy? )7daR*X>!gS-!bX9nIm$3josTAU$C80bObLKT(H 9$NA(4qN(582 zj4_0{%2%Zu{He~OVKq4%*a(6DWOo0fQr)p-+AhLBo6n^d7HC%p)krfeo_CfP4|+dY zjf~VtY?NHT=40Sva-nmW&zGVVmnd{tmtMre;K0dWZsFB($-_gRyw`N@$c0h{_YO;S z@sjeNn+h{L+5KoOkaykn0$#R&*6Uz+VqiB~SpiqvHjccoT#I(E3j;VQ`N@SvI?=^^ zzFC*j>tvC0(y4tzFEz%+K%G43S^r_@lCqek9UK0SFMO?{**st2-CmHcHSuu@kS}+5 zx6h)WNUn&2i0+C?H!wGM>J~!p6Wt6SvDzdmwAB&P&;ZY %&v4?-S+_~o+(@ooI-1$6f*9Cu9@GE%0>^SZ1PoFRpCuy;o6c{ zt5>dX;1nv*6 m8Ic{&l8&3{@v98 zk#%Ci@}jRc!e0M3=#zK|@w~ZxV(k4qx}e$qBVyuZ_A}wM#_~$ ?XI@qdA~3>WZ#xZ+z%q`R7Ple8JL1s)sX@4*tJ*F|1A zuMl_mu)%18RWeGcy{t+dvO+T0t_;fRS<#MLzHzq*=O3zt>!R26mKq&2FMKXHG}wY= z)yIsa9c=Kh#$nT{pz-ml)w+wlvGpM~CEe5J_M2Z7wa_)S-Zj6M!@e;&qv6KS*XysX zQe2j1vd+#bW7d5(M)TR 7k?#dmc zHPcsDhfP3j#-#wQtneR#$GZ@uIAx$<4ehRV9EJ|nMK<6WNYL TD@?*4}FcmcYHUeFz3IejVPZu5|d?+`Ico3ho* zQsJLJ!PPrAFR?DUmrNMjT5bR)K3UQEd!~fmi2hrPrkCFACc^6{^+q0|V7taQ&16MP z$g+v#_zs&;4*<-qWS~OqeY}ldV3h$)qG}~{My;%V&uVvVYOFFrrlzl6$RGMFUNJ!L zgQ;kC2v)wuSfdnCzc2oT>yKT)i4}#|Y;-9R7H(FSlSsd-!IJy0!yhfSWOX|WWulbJ z+07mRw_x0%hwq04nr2}(xmT|-2TwE`R2JLpW^lq! z1)H??$03>f&_F0V8=Xr z8(UT{m~v_{r@k=H)()gInsBgT*N8MOTy7=iDq4sfoxb$(IU+UAQ>3NnLz}M#^ke`X z1EyU_8-w`OADaq^O(8+Q8yT;ddcZn0jq`Ov4>c_m9o8eC=S!M(e1KyF; i4Wkh zJL_f88DrKx>d+K@H?|-Xw3337(t6><4Fpz5@M=@iaKgn8T5*6-3E2^~?bo(6`>{95 zj`#V)>tw19L8UPU=G0nVXWrJSUy2k=g77nkS*$S4R#IZB4;h#xxSkcCc#lW;zH0kf zZ-W)_cZ>Gm-Am(JS-%kTL0@l2N6z0TGXnNs28;!5Y%-B3~uk~muyS)- Yq$UTA&_{JEGzB$nQhxLgP&!#x2-KJ8aP2T#)0Qg%u)jvb=R?c zvC2+-S#2G>N#q0O;|Z^2-3`dja?+0&T?&7;xzyV@QJO&WH`8Wc;tl){^)6Zj8d3!f zX95JON8P7CRz+fg2ktS1?*FZE`a8Oh7E5~8>{fp=p!AJ=x`wS;1;!g%_geiOQ`)Ot z+67KVZC&Zf;rK4MI1zJfZ8Uxx0|E!^SCw_AMHe^AQ3KihXUK_?0x99vPf#-BI&%28 z$}#Iwg^BC!y(ZNbfb6ig^({1tI&fjWkip7}iFlP>hoA^g8q4~xkBD25)sdybSnal8 z1G$+h=-c|kI@`(L4vF&1-UQ3Db>`$7k*wWX{D}{Ym>L8>#u?->Q+;b3?lON%H}vq? z<&m@7Qzdc76=gbNfEt?{sHEh%6ChJKP@SxI0iSl?DqI^qAaNF?D#h-mzjxXN RL5b;oHbov@_Gt}31WJWlB?bPVtB0gz6k zZP&^fT`UzY9!Y9ELjm~ETf 7a?31rUgj*wnV^N8%bVniOP zRAF+^c7A{R#`5|r87Ka>&u2K2x3qT?x5NOdwO`9G vDZN9z^f?r!HA|4}r5kJ?@uVs+{rdrdyxuo}`N?Zs5r>mKdi zo%s^?WBpZOaPDz`R=8&NcCBd+#yQp*5%g;&1~pUM1LykCS+9p;jhqFh>aqL{L$BBx zo4~ 98(B=Tn>bW_^p5A5eK}R8!p_2$aYn o-1bv0Q8TsB$YzXiYizkvZ z)9orQ<<&@7#TMqy_KLndBRgx?5&Ps2PsC>CC>Pu(ImJ3?Q>rZqc&&8yWgCq5^_ne5 zr>_mVANFq$iaWO9cHy&Zx^g#A)4HoPRvGBn?JN?WbSkbfWXCt>)1e4 z&nTVFhX9!u?zTRjq(AOI_dqG1m-yf#bG0b98FYi1qUSme?<>QzE?S$c0k3cOZDx-4 zpLJA!Y89vI78xsu1ZEC*K;mbe67n$FHPQUutG61}QAe)&Lv4!X^gJ`uEY*Am-oMvN zV7SExC0wS-b_4nLO0d9%cXBn(#k*%+ZJ1U3PqRh&$CA3PXU>5J5&%q(1MnWHHAL5* zbLnup+uPs%lp{1IVVn8_FYYPmT0!bnk0jbaFeF`Wfxf+~L+XOdxZ`zBi4T5O-r86@ zIwgp5845N8ymbbl^W}%J)gJj!g2&gA-!sSZAn9po@gYtxYw?K{=oICB*O=4e`AbmL zu3%3AT%sb#utSpEu+g9(9AooaAj00ev=94qJGtH|54HK&epNYHH*IcDRUCFDDfCRW ztjPj4^5`E!w9>^aK LvHLoQ$92y825f?634HbR EPWnqy_*LHmmjpQuFrW${356erX;&MsClF zc2>WSQY>ga;!5AnV&`7o&&E!k>)=bcqa`v~YKvo;nHkwTW@89*!bVmxAFE^^CSe(P z)5mYA-@*MtXSs+d)orQCA%DXk7T6=Lue9Aw lbXVY^mCRD(xIbL>RxTFy+R)b)1Wu0OXa2p3XWsxW#Lq z15B__8d+mv503!WoMPbpmCbtGK>*_!^Y^doYaG&{XVso;>>McRDN#CSl70<4scdd= zcK!7rQzO 1+kX4SB@|&DO?tzv zzWe-2h&@^<5Amw#=YMIV{}zA@ -D0QcL^h0%)21dgRpw_)EBgmR3 NE33lENMF-zU1$MCD4PPpmMG-50Z(9g{6dq|b~pb=T~&sjg^V0A~T z^f_MIr8`fpOgZEe0`f@)opnP}wWGT9l@-mWS%8ySSe @I{!$ z5@Tmb^70}zqJ6TzNg&9v+NW;7b=5@kH(|3cyT?UjGUS*dh~EWjAuOHhF*CaP5)ndt zAjeexUwPF|KSW7r-Ok6-7_%2_I$}<&ArhOkQ=?t&-$ZF!S3o}Gd|dwHVM*`}5ih-| z;#rDEwlcxWv0BA>)YX^z%<9Ve)->14&@l9fa pl{ExGtn zuEF5R*c)@;6PzgfCjaCLhdEB0E3LPOUVqSQ=5I$_98Vsl>9ZKnvU)OQ# #T(w2mhr2^>k_}pNc6Fckf9HKR6tJ|K6|&cKCNC^; zDh^Q*%ZY^QtQ1S`+zRdZ+Q;@h8vj=>fPXW1hCD68H~n^E1VM_Wo;YLaJFkQ&M?6P# zYg @v#_>TbjLIy4gm&p&LJ>KXn*dRZZ zKZVrg8t;_(yjA0rZtK?49J0-q+);Vov9gmtf2cmjkq? >~cJVMSQmT^BSgz&944jFIuBAy~vBQqa215E<@2~PP$L#bX!!M61(d)y2ThEIUj zjY(lR@!k&CARzo;u>H&U4n+d_!!L`YRdzXD!Q`z2BzyW|OS_Ogk{x21>I&<39-Ro2 zfDNm+iQnhF4%pIpG=*l{QDOdZnJ&q)RG2%xR}&u!8V$Xb!^GGvxck7Vq-bpV@RN(M z52JGC#M+6Ek(oBMyQb=tn~=RT?z(c@;CABDSYDb*yV^*GoPj__u8aDlA$t&1{Z?6( zIkj~nVIr9e|As#I)$Dg*3($6QxvuvUky7n=tj{-Ys4dBPF|>mW^hF1GbT~1suLx~( zn1cu6Z9U-cBpWqs6L22P vn@m(}mRt1GWO#aTreK0rMny#xqg8%FxktG*zm_$F%PYHt{K~ z?AuWCM=Wn+UVp|fX%&e8UK`{#N5ITrOnrUqKB5jGB`T}U7v0j+Y8o3O(l-?ty|_m{ zCUD)_6zh#SFSTv#3~eyRseGKzVgble+>3TB0AhLihKK7>g%E$erCPN|;o-3ybhMCm zs!Rvm(Uw#Yg?w(%q54o%AxZ{wI`Jko{9d4l7KhJE-))chb~3R|JAEVR{i{!RKW3Ji zV-q`^w58QiAxDNu4aj;w7AXstEF1@_dsI$ZZ+EEV_IGBrZPJc^5H|X1e*nxGYr?Ii zyhFOsglXkpDRfZW#iF~vQJk;>M5725S`tR35}y2NS4sr!tHXSyD0A8FCoKe-_pWdD zIGF@5HpN?SkV0jW1$ppH^w{oX)0+79Vd5m+%S=~7^p{>ch vD|~5Z$n?nSL-uz! z;#4O;n1_y^Ag-i>7M)8G%3*>|vDj*QMX+<5+>v(tC~Oh(yClsa4a_`vP-!q`*z;jt zJ5e5EIXsK&rQYXiA7g2sK)s31+}ecPmzvhwrb)zv%1mY;$&Y<(6*}bv5xfBQuJ;dK zs^lPM<8F0sq&Fy46{Ij^{+cfyQ2oAT87T5{*jd4U&-0D@Q5wA7ZIe#6c(Q_D>*ZAD zfwG0Yb1HUnHTz2iOG}I@>Uf`ehP9VjNqgP%9RCYDw`BkS4V1;pEJHMe%{}f{m%zex zoz_PVg$wG}ggJ3w$u%h+gCYO_t2C&U6 f z_)G_@=4CdkXCER!>i*^>!6r*Z4$v(2c5?5;8$?+}v=0UNvO7gG<1>@`&wj~Vodyr2 z$-Ps5=3eI%mT^`~BmYZ<&j+nQx)a#jWbw^Ad{AoPUS*J0PlEoE&Z@WX)Yi&sxNub9 z+UKHLxs#YM6W8mh7q=&kGe9i+vacZLdY3@SizN{!xwwXfBvJ$f8U{9 z`-{3R#ORjj-3+O&?7<~ww;>Shap|$u0-M?8?6J?L^2doJ=X8Jf2k&{l`6U>hO24Gn zSo*MgitUl_wEL0-T?aoJelgk}Yfr5icF+z;73{Hp%X}~m W@`6Ym9$NvsM$t*a|`|t`#x_xIHYoip*ioh z19R!B8tZm1Wz6yBJ&FX|)Ot^Cf%wYByn{{2k7dU*FpzlvYQUL$kUx{lHbwKdz8t}s z)HQG)uRYL4oO+lNuom|v;Kvu{U`n4Qpj(M=dSV8dMM~$9`>;@HK4kRiI;NTmI5+xH z1HFuWRh(ZDxac9V-589sor16g3JDY7g}_$Pn4vrECE<4ekGJ=ZYbxFLhtDu7c4t6E zk)k6Ik*YL7ii%1n11P--(wlTh2r+}oL dZBQ?r ;KAD^3 z)F{{0QNw$PB(%0QVPF$j{KItMH+}kFahJ_6&=lUpp4v>i05~SG@CopxV|e?0_IHrQ zuT<(<#a>j*dNGfNBd8B2A^&s0kp;@@r(VPacIp`)rB2Ngbj>s{nY}2ag;7{2aUQ8n z)$)`aSuvdZfaO%-Opz+|(_Q!~k$>_KN4S)xrmBLw;mkk_|I9t?yEcstY=spWs-Zhu z6^zMHs4VSzgfH5iCiBnIS3AvAP*xZWxd^yx>A%{^T%J$EPkZXG^rd0nNlsI4kLATo z;_hoB$BLXr3M{pp1WN~l@m6D5DxBCxT=xL9=m!Ly T%k*G^?0hRp>6PLl1v0@BehZ;;W`ndPV#; jV3qDV?HuvU}hoS|3~rdfp&wX)uaPaA~tceA&&G0 z@2}|aUw)>X_typffqF_ra&NRq>&PzNPj&oW%VjW?kkpOyBF~OSdWxvaBV!SM`~%^u z6)7{AYJ|U+TFPd0(}Nu4MdjI*s&hr_K>8xv4h>k1+K}hSd0{>LkU=6y_|ih7>*)v5 z0ry60{0CpPGK{&}?_oH$I72~)-9ve+&koNL&r{-W4PH%&>SE8&@IPivJlU3gf>FZ1 z8>-Uw2w1x}C#|n!T8?Z+C~?d^|C}OfK#acoHYxn`|78oW1%FWDMD}Ohu~efKKDmMK zt&~oVHmT=tq>T _4vp*uBn2s)B{a| zJI|y4j%iMelp3nFcqFh4S3qm} 5Spq8k4OJbHzw(yA08}X?SoqZ1KNYF)i{dS*}NNVMf|fgg|aQL+bh>xF>)8%b4#+W9^Eu(!&~R9D>c2zt-7GpD~k |2ZtC}nujWw7vv=YQze+2NtCSQA z2bp%?AAz=TkP0VBX{eV~CFlB#Gde?>jqvCu95vbPyB~MTQ`Ta|#xVa8cY@kw6g5 zPtCY>{pa1lA$8@kl6>cpGXr nIXDHIwwR=6ja?sBV^nH3 z8_4q=!f&Tz=(KU`;P830zu0La$~Aco+f(vv(cec)!wbDAOuH_jrxA>wHO=2;eB*vH zUe07|d!?0-8|eph_|SNjeT8h=J5a;x?yxJW`GvRUw65UFk>o0QHlj?;s(w+`&}Td5 z#B%T}fA9}jLVplO^Zd2Y$KQjQ6pS7VeRrlah_HmzUb@?~m6UFY7F?~q?{Hajsm_$7 zr*TBTPKKx+gjH!*c@pQ|PYB6*Wk%n+6CcOaBe&sAYZpEdC`Z*;;DBakJEu1-a9VnP zv|yBmYjR9;+9|Z53-{0@kB{4GVtrL}_t-0%)h}*4eRwo9Wq=1XEb9OFZ~yu >_34b0lYs(DY`;9JH4!ywg9L)(A9^)1a36`vW3-m8tYC;oEdqPc(X! z^XFO)%1h8vRH<|5xUfwxr_Me?)Dd4j4Ed;I=ddB;^WQ;!{)gflK$^_XuT-N6RB6?h zdb9-J9Vlz>uEhVE2aRL1=lVrm)MhJ_c$vT{Azcm#ho6vb26G35VjvZ(%Uw+Zp#@>r zw{i%vBGzqj4Ba^DHMKyi`Z-!hut3!7wQc@aer`d!ftqmmB?fZ9oDa4pE$D E4EYaBu^i+qMwfx3i?yP+1% z2e&<%`|@6ntfdnUSs8JbZy}7A%kMjAH$E4jT^P;HM~Fk_k$a)i(vs3*WxNLIecEVr zSW(82Q=D|xC>OK`6|JR)edgTGj)`XaK)nA%X0fRxsXbd~?A{&*7>KW+X~voi%H1Qm zL7`|q17xL0>9dM!EOzu-_`4|f*Yuu7I^BwEYu<_#`8jxPNIM&aX*VmWp6=&BzE*R( zA=L_IOKwnn=Aj4dRMf%E-j9yCEk~qU#}%y=j+8WS`GG9l3@+Q}c$#@%2hlF_=nh{y z%ewLIxu23Yu?qJVRFXsq3(e-bn!K#h^fu-;1ft1Maq?L@)F0Q1*gU26Wnm=CK_hd9 z>kDL8MeG||ITc(8X>yg0W8Wj9{GS)XdIUw0A1lfmZF-1)A4PI@v2!xs3l?*yQv9?{ zL8X`*nXAZK7y5=db&?q7YR$Pi*w=@pgr2DB?2rv;H6eR@pm{4+>9 V{m5Jv z#et9Iwh9s+4fKC~8wtq4QQx;RZb4C3HxJ3&9=RWDbG5|;e0P@e`Bot3zDE8=|0Ne$ zLEqaey_2LSw>8x&==EM>bm7cKmUw|QzXYMUyu> kXIF}8+yQUasu+_Fbl1Yt! z>wb}bO4kUBkK*8hw}?TbP1OCMS*{v^#!)*DckRacsMK~u_Tg+G1NxfV?|F^=dDB?C zkr4D)qB;^0$df3$6y4;>3~1!-100%*^drw^_7qR_b#-v6G?irxmH?C(Mn8Pds14Rc zn-Vbdf%I!+rWv`dFH~uXn&*wzDh{8jdg#t~*{{WJFQXqBpK9ARmv z;OrvoCxYOvlJ*wj?bpj(gFzBkZl6!MBF?l=%k}Kjr?%%6_i+65la>4f&BdJjE7>Uv z_m)hsdKF$o9fvB^=-sudx`NHrW>YhOZyUt{k4lH1m->GC`X7zBeWE}5@sLRV#v__G z6clq?ji8=Q#y;w*NNo~hNo 8hh@jXtbcV8W8y z(J|~5>igRiPOjRH?xlAWKU+bQL$V5c)vEgJR*YZxI9kxwd~|LLzc*r);!#~M`!zd5 zXQCHg&3O!{*vETvwrsL&PG ` JH+GbG_FEz5+T~M4b zr|oVsHIPJ~m~T3vkL* iR16zK9K~T{*@3o0nQQ+MjPFhL^9R(edMrrR znr}A;UZ!yQb*?@lwH}s#eU%}={VqaI+wYbWenl+Lv#vq}kLSdPn?#{=(C&~qNDG 7>%G5UG5NE+%