From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2F19DA0C57; Fri, 5 Nov 2021 03:49:57 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CE60E41158; Fri, 5 Nov 2021 03:49:13 +0100 (CET) Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by mails.dpdk.org (Postfix) with ESMTP id 906A241101 for ; Fri, 5 Nov 2021 03:49:04 +0100 (CET) Received: from dggeme756-chm.china.huawei.com (unknown [172.30.72.57]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4HllJv67XGz1DJBk for ; Fri, 5 Nov 2021 10:46:55 +0800 (CST) Received: from localhost.localdomain (10.69.192.56) by dggeme756-chm.china.huawei.com (10.3.19.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2308.15; Fri, 5 Nov 2021 10:49:01 +0800 From: "Min Hu (Connor)" To: CC: , Date: Fri, 5 Nov 2021 10:46:57 +0800 Message-ID: <20211105024657.60302-10-humin29@huawei.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20211105024657.60302-1-humin29@huawei.com> References: <20211102031729.35536-1-humin29@huawei.com> <20211105024657.60302-1-humin29@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.69.192.56] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To dggeme756-chm.china.huawei.com (10.3.19.102) X-CFilter-Loop: Reflected Subject: [dpdk-dev] [PATCH v2 9/9] net/hns3: remove PF/VF duplicate code X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Chengwen Feng This patch remove PF/VF duplicate code of: 1. get firmware version. 2. get device info. 3. rx interrupt related functions. Signed-off-by: Chengwen Feng Signed-off-by: Min Hu (Connor) --- drivers/net/hns3.tar.gz | Bin 0 -> 203522 bytes drivers/net/hns3/hns3_common.c | 338 +++++++++++++++++++++++++++++- drivers/net/hns3/hns3_common.h | 10 + drivers/net/hns3/hns3_ethdev.c | 314 +-------------------------- drivers/net/hns3/hns3_ethdev.h | 14 +- drivers/net/hns3/hns3_ethdev_vf.c | 326 +--------------------------- drivers/net/hns3/hns3_tm.c | 2 +- 7 files changed, 362 insertions(+), 642 deletions(-) create mode 100644 drivers/net/hns3.tar.gz diff --git a/drivers/net/hns3.tar.gz b/drivers/net/hns3.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..af70a374b11a9054947c9c09210f25dd39b54fe2 GIT binary patch literal 203522 zcmV(#K;*w4iwFSmfP`TH1LRy=Z`(++o>%2p5ZISVkYq$kmgLQu1JD#D5z#FqbBmoB_@}92^ITE!J1nUDda$>Y^TYdF!`d{@R}={B*ll z@Y`v1n$7aJO`n%Pzu0Z~XE&QI8|Zek+iLw{UH!%VqCcm+NRF2E%fo4#?JnS+qyHcM zdBE|<|HyK?di(H~w1ETM>9lLczuUCCEjs>9m;mjz1LN;>oaQf9^DpU*^7H?E{C|68 zMf3jMn{l>GcX|3ISf#rnTW9I<@77J!f75#7ZIV--zOY_d-v038n0gC`W!E@g0eSi9cJ!jYbRSjsfG1eK#Z@-5{pehGRs9cO;nJ zj{D@M(Ws$AD<#0z0Hp6n9&yLPa60j)(3^Jix}&28V|PfV{v7~rg7{bG<%<`2aXc*x zi>|nb@9%UindrV7yJWhUG&&LotWmN`^QHCA7mX9x$?lNC+8>ttRr*eNvfdFp=LG9xpd(vMUKav<@goiXVqmXbiYYsp!+1LG z2y9rzDM#a1Bj(@v9*Gv7=SL9;``v237O2x1aToE3H}$(^%hVWH=kr+@`+cN3BK5<< zU-)FO7>`Tdmc$EloA_Z^Np6eO1(5wS`FHC|q|V*Ym3TWMHT0v!_$>Q(t1D8=UEr)y zPo$25aWH)^@Lua01>>hlCfZ0fOXv$j3rqsoQ;S#^1b(D;09wPJKFl#W-wJB z( zZA*RiW2zcX?uiDy5}~x|nDl2;U$7O2!eS7xs7yp)pM_&Y!?q-AF(_Y%m;?WoXTxFG&;A!x;+T@@P6>pIY@ zgX$f)R-scb3dGjWP*;;0dkT_6Z&c`fKCgj#npE$m2HIDl@rOF8e%%l_8gyWouzmlQ zM04MZWb9Q_UbG;yAI{W1Fl^@vv9P1!@+)^!c{BB9(?Kw#3u!Xz`x1Lg*-RPKok~a! zZR=};o{!oN*=lwTQYY>m8H5uO1^?p<(4GMbHu1rIT+HPTT$^{2cshpDHWs0_wB!X4 z@u!Mfwrm0F_18&t41FE=CcD~hIV|&dZXOmOs2!@NW&clGjGZN!Go6m#kP*O{tvok!<=9cnPLiv>O$nO9Nj=$?0R0fvLa!9)^aDbH;f&_*b2g6Y;Yu%G= z$<$JS74%wHs}Aa_QbBhWTS9LPP}p=w+FHL;Jc~s!$H~b*L(oLkA|i8lmzI z$fQQzi0&b{5=E$EP)o&@(3U;~byC$ycr$0y1w7kop_EW*62kPy#bh2W*_EQg=&>80 z{rL*oR#&Nx<=2#^e%7#iCY#NEnG|(rBAf#^i@^XRjF}pdUCU=8o&#ZU ztKv(jV}gDhOM**iOMyZdK;lu@7qKO@ZGb95Ih4DB;Hz4oX!0f9rn|!Idf=)-pH?}F zs3f;CBucszp2v4eBu)8mnud@!G(&C8J)pLLp3&Tj2$duG(B~=$zzXVIfWo})`|}Fg z;<`pNv#EdpvG~*v1McvhTk_-yG7K+3?Pl3h7)3Q!1xhV{Uzv*l4W{!2D7Ki7W&Qig zT%^!`5R%xv(V$%w8hfgj$)P>IzK;8CmY?>g+}iF}X-&+5u3k8s1d$|6&Om!Xak8cZWUj1{RZBb06h)mBze6$9e{dcRM9a#?4IMoLI()&1ftrFzO-2*7* z)k>QMv#A8N73h2alei8=sG~q*&z->E;;P}$mI8JADzJjK6{t5`;2|vGODNy%y-k`N zt%u~e`kow93$w3vE0PAbqmOhWmP7k)6MbN2@9em(B;_>*55mbuH}r9{p1ZN=AVL_4 zj<+aix!)DX{l+>x{HTe8N1s@hQ&_W=IEO154Qj$@98e$<-^cw%W>;os1-%O*#j)%v zvy(%E>0oAQ(019WU{|EaXEj9G5QHsq@ri_XDWO!@dIxHI;wWHGpOtQFWwY3I0rGm9aeb7qk_IE%qz z2=>EJPpy|MhV%|+QI>ASBDp*~4Q|K|RxCYvp(4vOOU%}DB_F&gnfR0X3FFEZ!$daB z#AeMJqcM-Ny_GEXWfp0|&?LM`3xTDLEdMeU7|^POU`k68nlEeUSYv?zyAD9h8p^5$ zGvZ@N>8)A`Gt_~B+I1i{B}&xQOGO=FfssitE$3UqR!Ta|sJ1SvT2PmTnP6?DYY=bJ zlsQ>UgSg>bb#(G%F(x;k8VyG$^)X_VNK;I$V^kF0`snUsn`bH&=R*AIhaN3Rv4yf1 zByvs;xNfSZ1nyF7qbHMMuSxSTD8~nd8}=2}E8Jv-1%G9`RYpVgbeDYIq!t`>yM2M@ zo2C_-f<%o*m)1MnoYodrd01I)opx9_WPSc&*-j6B6=|+X;6Z;F-O_IMq+9diiD2%4 z(98i|b4xWcKs|gdDB@mG_Ya})g9|z4kN2iF4aG1=kbKM@8K2rL7P9P4+qxzxCI>e# zT_L|%fdU=ql&widV3+F=IKePKV!wsvblT5gU`QcCow(8aUt9KT%TZUG!r-7#yYmc2 z5DM|QWp^$MwNYsA8HgYgjuoqSS!5GMHlKkABD=3G*zZ_<1KVZXd4!k55vy)^(Xd`w z@k45@_b`dR)1r#xkbKTIS@8qsdHQ70wz4AI?;wsoJ|As(z-v)Le@OdliM2O~z{{f>=?PwdETR#`c4RF06VP$PjH^luARLF z*0%|J+GS@IhDO}t8EgSy!`lJa{E+UjF45ZWs7>bsG-Wl87>E9qBbn{2ujz4@ZeY7w zVe8^p^2S+UJdQD{r8+fVpQ~x8!tOjkXw^;W;b83Fu}sd*7_F!+{L&W#=-8hQ<58p0 zlJ=o*r}X%PJf_DSG!i!=TIt4Tp;-OK!%y*9a>xi+Di@#O=X+xx{&+_#eC8DI8jCY=qCGpBWoco@Pwv8EZr8K09rP^9O9ARENPO(P7HdW6 zW9EsxJA1?!f-~<#mwNVBR5i~hbG@Q@x>+j~dEBh!@4CZZR$R9+b61!@W1JM&FaC$A zks4KU=4zPMW_eG+SEq4)(oU&<4vr|Dozhx7KjAKo(=_=sX*8c&7n-NRkEvHL zFQ{Z-Vwx&Uw}Yy>(k~+!aRk<<-LfnX)lQX1^psigXnJoHCOX%LHA4!Iw#kxYD|xtV znPs^vNVX$@l%HcM`1!%3`hbpm&9LA4%<_?8%sFi$IihNqjBy{!_OUn&H<*37%Wd=Q z&C_ex==R`E9OGLQ6?7#1D9vF!F2F!}}AH~ODoO78zt%yhODuI3aX_-RQXE&X8 zwXaitT9>ce;<$gf*k3v+apY~&$lqQV`CHS-vv@%qw#T0yHh`ta$8`1QhRuM$L6U6y z`0TKP0lFpwEGAgCh;_Lh-S0%rPTNP4AC_?3NWn8MC4LvLEYtgzbdu$V1ZI;k5lWnM zZyN(yylR{c26)S>M{xpC3<(a2EnXV_a+zz@h5#-(;@2aronNOz!)@|yPjX8vy7QMKQ8#1kf^tzn-WA+ zoh5A~yz6=XJSMR_v<)xtmDI(Q(^c0EYYl>F#Q3S#skv_g#3>;yz0cFYBjF6q%-l=&abps2}UIIwXm zonvu>a%a+M*Fte;7ok1n&8zhna!8KJR`YaO*AzEH{7BjE+eW{G&Zb)&PgdbVZ#SS< z;Gj?3xgnSRc-S8c@>nEaXxs(8QjX*jut|1EmHl9;tJPuM`9nrA1Kj;if(O#_vvI;0$&9IOTa_>{+c2Qk9Tl&fA?@jUF|P znCpuW$&Tn}ABgb&GkaLAP5RNGv*N)r*jm^2866CZ0A_wQNsLPD3!=^<`W%8>)9jKG z7)om7*@o76O=CdI(`9W(YWaX>;^Q4PyZTs+If0`cqh`%T5s5<3Z94WVsC#E{Ohl^S zhFvq4MBC?!e6OT6@O|!0$^tqdZu6XMGkh)FL`a@~D#?V!rTlDGd+_CWp$AAzcWN8P zjD}!A{hnE{O5?iI>8TC`kVbgfgH>~UX={NEqG-&4J|FmJn(ZYq<=Uoi!SB}Dm(!75 ztR$N+`(su-Y*_&+9`mClf3V)CKVFw#V(@oXGplAxj$rXG?9F3X>nM|33>rZhq>}w> z?``wny|=BGudN3pd`*9pTNzN=KuX(=T0MPuE$xS^d;X)CSTxk|KhPG`CiS z+!xWgCmu=BC+oIwjltLhIkn>Yfi; zcq?a|Q2P12lZ=^T&gZl#$isb&iT*I-H)ed@z{FmCLPVyEp=(nQ<4Q1#q@o)dTicf* zOt9+YizpOg80Sie(4{tPxoTBViKXAIK!cGh(|TFb1QOjE;BU5WG%CVtvScyW?+6t7Ips9sCfj{A_A{Edmeei+<>Q%iA-)xFDvufS?~qYf6)+S1`@n&WX7@oef3&u}%D zCd1il-e)yyyTXJ=pC$qe}ma(MW`_MDu2UNyBTk{?pM_0XjD@r@^z zU7+4@HHB8_!#o){xHTAyz>%Da{Vo;PZ(2N%;y|{m?8*F;2J_+tB1}r*V{uG&`7+HO ztD6)G0!{Hdd(vFlkfnPMKEtIln)AdKAInqTu%(Npwbeaqo8%Z9=bPj)Rl-?`q+YVh z*$AGza_+B8M_&2vKF`-_G=2^=x;hOD$*^EjcQ-gSWK>6|+E=|EXKvMyOK!Dp7gPH4 zIT_DOze1zJ8t^&UpwhsLc*_Q*@SEUhMIksjak!Xz^wPg!_l!`K6~$q|8oRE=V7|3! zwESY)hrJo2VOl`na15r5&3$qlCCp`^5?->a?onAigXI;;imaD8+3fcRIpVw!)}HSb zV58OMiAY6qx0XCKUIlR8q5jo-71g;KYH`Pz+D2YO!k$sDkZQPjsro$BlG#GTl&r?l zXS(@zgWnESPIBFi6Wb;A^(7D|jkBLA@~C?`zwcsgdn0!`^tlUBH&5v9O<+sb{8CO( zsyCJo$?gk;py~3b(-j})&=RQqIzV*bP4-?z1qD+%N9 z`4>J#59gX3n=!;Tgk-`bdlN8;pW$t6lbP9U?!JuOhCVU2<8A{vJ2{{IsTWBtsnzW^ zn9S_&-s~O*T2iT0DwV2Ar4n{0wP&>(n~p^a2BA;$luTydlqz}Hd;=m?SIXXIE0XET z)wkKIWU4mErEEnqRr{F^+g9HknCR70LHu_0ZN0Xwc)EZeXDgnL>RRpRbE#rr{-T`0 zaw%OB3WPqXxPjxGIXNfrLiHuqV)0b*YA?NRF9tQv@bU2{lu;b7Jey82nEbG@&z?x5 zuFx&@isGBNri-D2v2TeUsgUnImYZdkTYAYeTy%lVQ*<@jxjqBr@d=#5*R7!~mksOJ-{sVgFNUx~$FO#+VS6k{&27dy zRU=XF$rDzcX-Nq{BgwxCx9Uc9RWcmcc8n4&%9B5UrH1y4ecI#&muP(Xnzd$pr&vM* z@#vN+`(fYjYIhsd=2%NnE>e7|=QjfXQ3o>1h4 zeL4sU@h(pod6R)5AhGeyAc@__Bo~L+#;!!VQBtWXuOWuj+6s^2}oD2Y|+4-%K`qui*0s!Fs%OQ~K&V=yx2 zFP+qv<}tG1$HA)zb#5FrFxz=sM&01mShFJP(lpMr z6{L#vlY+DngbddtE2{1+&|B9lo-G!!7d2knk)RbGo2M1F>P4MFZRqgGab&HR<_6Sh zH8CR5zE`W49^289hG4-^6cO+X7FRg3g*dX2%qh*h4UCOPDtPB+JneJrH6Oc)bO7KyMgl-9xE_P%+x2LhhlbPf3@EGm{}g<2fH?a3 z{H!9eKN^oe%_eg}WDp59dtYe|$qmPY1OI%V99D-%r@zuAS0>fLfj8)e!+`gL^L-D{ zpAL{?6`I)iIBBfW*=&4lHcqQ+TJELOv$lwwrqmRckT}n-S##)stok)O)ogc#tWtBw zVUi}t2_b)#H5}dwt|GT-mxGmSygy{|>2PLf6|56vTmB`r&jdKfxU>p-aDD31gt3TR zD(K3etAcWWjF@FQ0fZjmuN)lr)Jw_X?hcNkB-I>uW5x*K6_U89E=fX+8cc)F#12=3dYk4X4mx(HRp+ol~P?uo`T^e0 z33`#AK629ztJw`e42$fXpvncHtl9-CP$Gog9apG*mkY}~P?ru^Nx1~DvK@$C_pf35 z>0Yu6(68l`Si=*QZw zR;xnOtL=R9vN8glcJ_|w?zm`HtG=Ly*lZIM|35pL+TG+2rK( z#6N)T3!7H&p1)8nx2iw8Tgn!ov^Ft+B_NFm1HRj;@v~aJs#;saL>Ag_{j!pF&rnGl zOKjy7?XBgWp|e-)4;!?NrfjTTVCJKmJ9j#+Yr&zR70SVU^U<2980sY@EQ4 z-%s{Sr~;O~|5{xsiC>>2we);pu)gU1EbTcXG+OcLuTu7-V-@dWJRW)>24{Brq0iGW~t9W_HBLwKthJ^`icrSE7bX9g& zGid=m#?$eaJh*0q*(e+I>fd3w;Q%>YfASBR{Lg;+@PGgPO@IHh-@Euz-v0z4U902! zpIi0q`p$N}O7DMGpZ)LqpWou&H+%mR_rKKppWanze<{5f~{M_%H#b zJ;Y~0S4GBfepknlNKk)J2O~tBM|Z7^dNtcWE;R$L*=g;awEeexXSl(?m|v5gDFvMp z{t@EsGxQ!F{Mu@zRS=*T=I`Hsci>}%Ow{#??K7%|T{LvRU3ArjEpJB8E=Xq`w!?Qx ze6Zfn_kV75IFXrEcqR%fuFOz)59f=28z7_Dnj;jOE{p!{bed8mT}Nx5BL_&bL!o3o z$eK&Lz0AV$@}5WrG2J(CLsbQNR}n;0*Jap#;yZ=+N+q9zB3`wAx$m$T^4Fx@JsfTnSKMif<4*G}HK`3bB&%-SZgKn_<1CC4 zKnl}907^CdF%3S?!YL^r8jA2aNgROad^iFwX^t?lN`lXT# zC%ha1BSxyN8Uc4l^cwYbdPOElS?x15EuCfTuw$E7auo&I08J;V(H^nTz4B(@EK9_6 zbMics`{f)gSnv2^64_B7eRr-4o1Jsi2N&v>55oLXAbuabQ_D^Fted6tF|!fF=7OgA z$iepH^jg0;^WU~OJ;ch&mYo>=%x|B+p$g7JNwZu#liW`4Y@#EE^DL|E*idGkS#hfu z6S2ozK~O^5OEZCyWdqt>PRBFt43B6CpD)7LPXf~9K?Trk+clvBJnTtze}~5&@I4jV zhHUTpo~_k#Rvh%PrE=rQ^Eo_Y{m_Di&h{8(*y4Eaq+fzS7p?ruRL{CDq}RkJ%u}m@ za@jn^Eea}O|DL#|g`%&I|3AZ>w09NsK2dZ4LG%VFrwmS1$HN3EX8=k^t2-q@h60`? z46MW>*wmczWC^QtSkr6^rv4B%x1qAzP`|*C>-R^fv#)4In_lu(zmuvLoVJXcsag>} z)yVf#Q$_nHShDRXd4HIN!69Rix&^>vN)!`aD1}r1f`v3{p_=vrdsDOJaa%JG8k)>h zlk=iYBGsgw(?pk9(s4$q14t7pq4$)0xgbF+xM7n|du0VAA`ey7q^jkLDlVDY;@|(y zK>q%B)G-Uy1KqOBeWo$IRQ*QNoPuisd2&f>XJod3n>a1Igm_ zgo6qa#hzRV>vEZ*J6VCjF)202fYR-ECpdBI@K>ryj;A_R56X&F9gGXXB}t9Pc(Nkq zd%;Vp{on>2{Wt0iKo$%*--)*_eo6H`nGX|Z$ts&DxDyv(K3oT(hPe}17jRBfV$NRR zZu7aaD)~V#fvxDX0e&{=gNh(}p{=vXG$#BbbrcX73@Q`3pA-WxA8gi=UX-M|L^>-|Noo( zdw~DHUX%X+D8v6Ro%$eiFn(#$3(>Kkd`Ec{j?>>z>vJ6eFdRGuunMNZW#srg9P?*d z`;;(=7e9c9S-+m3)arj3v0>sIeql<;X@%at)Objs`Ti4DmXC zu0$p|X;om6OyYR;zs>ypx-bMZ0LsQ|yk`kNk+A%t!LHecr5MzH0)KA2zQTtcaFA2< zEW@t@uk>9Bd)s(Dy~DVZP4T8{!MvF(}&3nm{C_v^LpJOztA zR!82-eML338;3nl&AE(;2}aH>gHHZ~QECG9P?~iP(R7~o;}3J5 zpfV7*lnJbiO*WAkpj~!A!xIi9P{C~&o5VM$E8d_xi~^(u^tJJtM+bevkN@y$-b;Ow z%`gTWu>f4tCnkSdzK<|^DT(s0cntgd{(p_us514u#){1vAh6aCBl?}HmUoj$A|id& z)+E!$t&HKM*egIqSEBwaTzNDuAW#OQ+kAkvp|ilEfQ}(QhKj+Z2$z_V?GJ)=I|Z?c zNDwF$DT@ov-~WA|=BTER+Rd88;$KF+0t!_=qZ&bI4sLZx7Sktznx!hA*e|5GxE-t( zlkbbOG9@s_IK0z?M#9XQE5{t2zI;|!01J!pSCrKTHhPH`2=iqn9cRh5SFtu)#N{H* zTIpuYbTE~PI82O8f+AxD_3kO8(f-g*RCv!7y-4!X)k7-uP=jnnQR+QpL{L`jxXyAS zm8317MR1nR);#%uhI_a8OE4q--eOA1;8 z(rn~}<=h|?V6mtCe|9Fmd+e!5)P^~8QD8DCkBF``=4;QQkZMnYp0}>rad{GHPf0?2 zAHmEnD!pU0!-7a9wbnmr)8%`wdbf4R|Na~XP}T|(ISP6Y;sio$qq%OVfp z9R?xA0L_P?q{8SaG25HH{h$3#o2XFsp5S!2sU!Ah3HKEq%V|9~Pk_#fY3Fo`{ZYr& zvSep_UKKkR1w|S}Ol(`UNgaFV=sne42|@hyleYzhf5;V_yY%3pco_2IrZQDT5>Os z^0K93E?exMw_0p`;j6VrWihXRz{E-<%B4bW-zCg}h!9K6<8KqfNgKP*m9^1Bge;q$ z`SZ%hG2du*d1hjedhv~Ki8>;iC>lMK1<)YJFeA)64P)w!XXuZhGvqE^;iq7m&0uvvj{O0rsugr_Q5G zhnJQyL5m;V1j{`L%s>CzuGXJzS?7P-&z{%+_x$f${CmjxUv=L7A9<$N#e_RI!TiHN zaZtz+r;D8c0{3QoMy57y4xPQN?fA9&3ra{C-P~Tmq8!HlMQx{4HDcDOV*S~UyP_UC ze)bl2T}REWdI}_LF+1CKy`61>Xw`Gz$QA2WMMuwEaoei6cXT8wPSBA?)wJ78Zw|z> zFna7Id^~J6jt)2~PP`OSO&1^4x3*>Ri*)gC_=u+{t~sFN3n8+2CtVB*fhg5%a8=6h zipUBtR#(vrjhD~FMxw`)4G~Wa+7U@=-#3!m;Enb^=dwCFJv}pGTgSu2+g#uazEM!L z;a5-9!H0!-WbIw;pogBEm*7{$&c<(mMB*JFTxiDLi;+1PYU8a>?_`LMrnljVt+&3; zNirf)?!v=c{}g-?=23WN!&cHXcHddklB1}M9vq_2oEd{BrOLaG9fXhjkR%*omey#yiFUcrd`a71Z?=y1Up&7_OB^!SeXD>bbch!3h3 zd@RYSU0F#XBXF1eOV}}Go1@+|xJEw$=SUDHkR;}37%&~WA^Sy}TnEfh1F=uB$o~A* z&|Nrj(^s2yQU6?(=uf7>0BT-w(16XhoPlgTx}_Y8tTf&z6@4-t)FPa_2zaLE&p?c6 zg0PYp>ZrI17$2%MF(#Dy!ceva6lmP{FS~fP1Y06wn5`Mdiq{6~?7g7ckur^Z+9@R+Sp%kMe0SG^nVMj@b1X@3;#cx7_V^9_zmbs4}1C1i&FhX#oO4{ zZ^HqqVIOTFWZw~`4j=oVzgRYf$z5n$Py;!~1m&aEhVwB@@A?x}AL94mD4N(x%>+e>2BNp;%ajlr)mztoRjKNHiS4g#bcd$~0`ToJ0kdM$Dr4y(OV37~t zA7~@m?;;foEEeRBm!4SnbR!6aG5tu!@zt*BbIL{YN+B%NuP-5s1?3BZ{o$o z^SA!#Nr?sKcu=yo!U{cTflH(8efNs=-|VVlL6yB9!1UT(s25Ic*$WHwk|6X0n1V{9 z2D#5VHU9FG+@Sf-A70I4pd>8SqdjhZ3sz_~eG2vW-tb=);O_~kKJec<{}(hoROENf z1~@ZR5r3hYFts)DU-&zzt}Hj$*@j50KK-b3Q>vd-rktCI%?DxL;@^5wuLz0R7RWU#j^*R;DgS;}{15luNuf6&oHD02+)~8U*~;0YcO$Gv`LJ zMlVt0iLMNq4fGQ4>8oVEUf^`u6NN5m=WH!*0FgNHwv!pd%atNRp6{N=(=lF0$7IZG zsUs3&ygx^2zQuEoD=R9jo|I{^&?wjS2YqxODf$leXsU{`NmFkT19rJv{0KkC(sbee zEE+pUDXm-NNh!!ow#Ovcob>?Ub4GKFH0Lf*MBPV-)I|`BON?laHA{+&hs*9ux!H`K zic-0I*$qecqBU`p+%QafBMXs?hq_W(MGb&n(Wbs|3s^QGG|I%zo60X#p}kZWJaby=t}l{93$zukC)~M{LCr3_-n2&+2VK!N zEs<_w%c#k#u%)B79NK~xc7xxz9>ppX!oyp2j-2|)z?D-o9B zD`A6g(ty*P`Dy}@*RO*)MFqDCz@($qc!1Lxt<=0{}68K^P^n06CjtxSous-C>D!C2>koz<~fY4JV^KYjB=1(GiKME^$v! zl;p1%zRdKgh|w9vVyu)54>HBvB|&#)eLOpXZVBz|GX+y^Wen#X#W5+^tqNwa<&ZVU zV5s3g%_TAo@&eZ8CwXQf{m8UjM;F*3^}H*}G$*!RMgb^x`D^L;rVIHvZDo0sqgQ*S zf?e>qMnKFxtobbPa~{bs0z{dSQQ-?F z6=UH^erWyni_diFylXYu?|_ZHsyG|e;^@L&5HSJ7dv+f;Ii3v$M3c}R4#z#81B!n5 zA-SI<*vdX)&BXz$0Bbp>t3vD}$m6b(@&Zk!gJKq?1T5rbkyEkcNUYsy9hVj`Ju(yOcPeKcbW zrOm@MF8f4V%p7C7=%A%5rX?}G1oGdae}}zYk@P4#w+Iqs$~&9M<=PHmHO<*1teSG4 zu(zm&BJQijgaQz)TQX* zwy16&ai=0yjSY{MmU{B3@PV?;gjH7M>y8rWQIf?20j>m9ARU*%gd>--yHQZt&!-{rtlNkNlN~dS|R?M z^H#efHhO)A#liiGJjKrn<fAcSavB^>NE8Lv7eE(mSkfU)?LP>;1Ci9!q7;TG6Ah=BxEFzK|INKKl`) zlwKbzF&CS9y%Gld?;86*TcSXV{p|dfj^0VO!51Pxb%CRASAW*=u{s%4pI?ZRNjwZ( zG0rMMhjxnWn72jU5O})2y5g;Sd&435QX;R{9bv}ZX)pv93Hsi6H2i|8hB?133>$?u zz2FJGP+J5!4JYw<8ezWVu6NOmF%9rE@OpTw4+E!HH!Y?M{+1y+_f%x$Z@XcpTbgqxm zO~LT!j|XdzW`(Ci2BfO<X2HW)=+_|iq$;-R2BuV zs7!m7W;Y8p02m4ldqXsqViK=&WNA1Y`d6$euMb2(!kLEv9ZsYWkcWd0ML-+^Y6q^gCPDnDC14$E+mk5kX?;t8 zc>9xVwZ!k@m_&Wk6UPOzA2ms7fRcPbES8vP3Poqte?OOf;oBNtpvR1ZLd{ENFO(-S8SwhzgnvRPv%Gfo z{o>!XXG`lmzT1>fiMw#HnO4W6w)5}$*1Zs+j@-zMXV}6-Nnv9;MO`@6xBtCWTQ*LU z?iW1YAN2kHc;b(T+r20UF}2$#r|Y@*i;@ktkM0FwboB3p*#W=&gmH7DxL+#M-#`37 z25_8tFNrTD_3!j+NsI`miS}r(CkqM{7qG9!6UK$C8PyqkAR_x)ES&%5H?cR^?F;A# zD_=d~L&3|KK@|Jl(U+2OF|z{7M%mCiO>gMkb%JG6V@-^`cLy6TWCxDCy;Fhbrfx%aaic@1g13L>H6| z+?W-^*{IsSQfGA3xIefP+{anW={;|le*GYhw8pRcc#M-=FY%nk!W%D4S?))Y#3}?s z&4#tBQ^B@D(ArS5$#fQ+>pBxAd<((i0mOHTc7T|Io*wNhyBejJvL|^%RogWV5HS6E z+zp3#Xuw$Ls&?Y<;+CmH16n4ILxZ@;NkP2$@xVh?0((t^TVBwaYsB=v3XYMjT;A4{ z4@dfVrB^jmmMAKr1*n{#@!dz|_k@3{Z|PW#$&H%0RV_!W<{4EjQ;`vBUgNuOk_+Si z#eYfukHK(!`#28(0l20J zmxYpmsC@r0s)JzAoeePq7612B@P+I=O_5TsfnZ>r4;4O$3ysygoddkO_iT@T(sjQB z`n^t91fRXZpVbEb+(%by^=_N)Htsx6Ds2&nZMvhlM?YU2;?Fl#YH&c8CifXC!P}>w zdj$14{k}zY-fUBY=g*T$^#cuRHK}??Hz%w6)L@5TZ_}qY)Od>;zo8!X_NgkNeYhuH zWFpd-ukVm*gC|-a-k&u6)0W?X|H!+al-sVN{qz8i6Aaqnd0?u9zx;_{=qcn$&RV2_Rrh}=LZ=D?fp(hNpt@= zqlC!dE+U${iIku8y{TS~Ut{etZo~ zv#W6wYiFr_ym-rE8~eBj_%pv37yc{28@Tet2>#QV%?BMXl)(pGk5T*~{3vo0UeKdr z7@vbjmeU^RqWLP{Lhf9J5o|Xje*GAJm#^7^0OLCem%%8Q!gkQ5DyU|7wM}m?@@@m~ z(`bB)sYLXK(S%*uv_(W-_j-)aAftZ_fRIrW@w>W6PJ{;k_RgB#WIDbHL94(b%_1bC zbKhV`K~v~wisT;l#jCj<9{JOmg@6{#B7ErgC5`JTz1jE_XDoUO>c&$x1hqSph`*!& z4X?flWMTXWv+gh&%Lj)e9)ff-oA34x#QVydUNiP?yOF>ryq*lnB?kn$_~IQNG+SWF z6WRC$XO&1;j;;%kfr{u_1QwzO)7dZ(@GuPRO3VjR9w9Md1zI!;z~WatFE{E{aMtLo z83#B9W$zZ_wh=hJ;~7TyYV|CPu3n1H_Ay4ZhBtxHmkIcy2NaeQ9mq56e+Z&bH2!O^ zT1g`2Lh_YUsemW{xd^za_c_LsjhE0(1{Xdxbsjg%cD%k7E(144+_YCckUH|>>oa(;BQYgOe?BS4hjrQ#d*lz0;fk6Ji1q&EPR6xfwr zZ@ebC^c{O5NYL%=cbcasLI$23sH!s67rF$@)~_;J1M`SnT8zACwW~W2Flytg$N&oE zTEHIp)l&*@&*FsH1DPedTW3c_)z7sD>_H2fC}`ZYdzV@fxWv{E@2VlPAc5 zT(+qgU8YJy7uC9VcCXbDqwozQ29YgSHo3x^phr*Y8Wj=1Jn_QK6B!fY8}>n;vMvX7 zI6!Sc0QUlvupsSV>0uXY?id7SX(lfox56$&BS!J5J>j}b38>)+=Fr)mmWVp9;Dsyx z1S@m=X_oyMfv25pEaeT6dHHcoTt&|Rqh`C~AD*@vd;9N7@U7xK!A!Y&UGxWo!jiBv zRNHus*|S~|>MM$Z1QS`*ps3>oDoLVIa9e;r(G>>083ZFYt1YTTbTj?un^1J#qa6;4 zujpYfGb<0V_K1STM4T+UFApA|Vlo}y(R?tGyg&Z%^glsP@o)MxnFPZpno9Ir#S_`7 z*<-7ORHM~86^5=5uluJbhg=C+hJIPw7vluR5UN#0^i4)LSmPL*9`~;JH9f*|8VoXz zL)0S%xbI6Mg0LV}4G-flgmBTz!-&c^C{U7Cx8}OWyI53_GB5)Zc~58(tUS&0snk4G zhruo)z1urEIBHag{Z+*^@gjpjlrLm`w^mN(9XtFNd$UU9r;?S|SgjrpO2|WHe55|% z16+mJQ8COu7bXl~hEP>@iTO_QA?hQ;7MMhHaF>JAChaS6FX^D{PfC4Ox{F^~hMoI+5 zLd)Q=AJQ^KaUcv7U=qOT{h{QfJQ;}SpkBizhD2O!CD0o(_gThWbQ_YXsf12{O&&0& zMUC7V(x|({kGkIJ#(IN}{c@0%A(4c$x7I>gsV~<}=ToLDpL@IreNMB33sZiAKP7kJ zCyJsF)vEe8>#}hEaum_<-%dBW$4Vqe`9 zFLro3K9wwNc9*ncrL=RXCm6(AYmWHVi5w^E0c+|u7;wqPYc~5yk<&5XmF0l8aNF@N z!CwV4in}|92NIFJ{r$#S$3NTK|GCkbr>Z#?hR+^@{P+9{uaA{^>tp5HuMf(gLw+;q zo>JUg-LCQis)|IXS!c4U zejW9K?=GdTsOO|%DzPd*Df!%Rogu`PrQK3q-N z;&620h^jB$(wlsO7O2CKP+Sh}q8ZlZM96eX$QMq>laK>-u-*Tebf?{Gb!-rhK5Aca zEFZ?R_#>Z)oHX}6489nI!=6GAlX~8uLr9`03N|%3G~W`?)BJ5B%G(->AAiW&c^kx^ zpgaj51N`NSv)cUn*WKwSZykRYP_LDRrF^l(k(vkL!6!A*ZHO0_&C?n#>fv#j6A=hU}Iadz^{qGu+_afvwkxZ-nI=q>384`+?jm=f(FzLI1>Y3*=_ zHsK22V#cnllXATFc4Yy)_`>b6dUtp^o`#q4)pc^(l1*l4QDEYwQfSP-n0YbvykM6% z|Hpf+p9wQsVXx%jYQB-etFf$@U#NAA3>K2Z^z|!8sF{gpF^iy>yPl3hb&9Fo@fgu< z9P6iVa?-drQ+}$^Gu1o}YAHigRHh zWeZNK5Xp{N)x@aBuTA0(vI&Fg4K6p)YXBu5q{L`<_TD!9+DF9@3KPi{8oWP)9ZcV* zF8YM?-q@Dr%??q#(JDGY?@yZtFO9k)I#-H^MV!;QwsKNOcudbniBpn|GM(1mN&B$TN~5E& zLFGtxZs7#l9c+5>m*wJg)@q)%nw{VCNF;l<5W1X>XOrb(^R{)WRdb+1eXh+tpW{re zpt*ioPD8q-}fSnODxR8(PS3mw~E(1If0G1(RoKKzz={cp^s^NDbNUkZU%I_ zp97ubo@xel)^=~Zta6Qv9GYc4z7EXFC`c9 z02%t|Y1dgjqgzVS=+k)@AH(q-07?#d)HqpmApIy_WFQCaPSJq?ySa^F85x07@_WihKreOQIlVm;)2nV72?9= zJpR4x7K~eZy@t+f>g;Cz(*?02s8bTFQdklApx1vZTQ!5U&~r^xD6ML=5POUg zQfdyo`XcaL(g@?Pb*m(t+-wtJd}ZI{NGGZeB1$$=28sHz@%pMi-HgX^cZeA@ET3(4j=J(3)Dh}KP*+&xp^obT zkG7*=if=V6Fap4=1 zg+*+SY);IcOx{LqKFl&1?hjpO6&G|lk)G8qJ%bso1%2)IHen0cEdXKXPu~W2XlL6g zwhhY4-*y|^`5(Lu?qqL+s+1Y%Chl=WJZokpIxMcffP<77PemJYCHkW?K+gH zhyMIcQ{OOmlxu$_b=x_6uM;uWrSt{pvNd`sQ$!0XJEVW5P@gP!iuWlcO-7&j;yE?N z_*rsB@!h{%boVgzi>yxEqPK7-rY7LvaT;Y|aMq3|wy7QGHZ^aCwS9{{b(s^K-l({N zHNS;A)L5!WhXzO49nRm5bWnnyidn32Z?b^F3bnm;*+iME@`E59TAESt8HJfyLQh42 z#8noiS*#MwrW)d3;?UFCa(d_AhNE;lvQ;zM;9s-p?v!L zDF#WyxsZV}>;EOB8=&E>!;b>eO;vq->2`kbKT*0#+Bl_~EEL>wIqhBxo5OPzu^0HS zB;{cYS(HhMt|9O@>sR+a5z9zcd4)FY;>7=+Qw;>xF5NF`b@_ zb|~QkZsiJ!Mj~0MMjr%F91X(bgZ)wsix@f8ANR2J0$%~rI~d14OvA=?w^yQvb@2IO z{>0tv&^LqypP?uJW)zm{+o~pSH2soj3oK&5vS1?|tP)O2TlJ^4x>n2jgtc@GJQqsw zIFcQce}98E3)Li?h!3I;5)*?$bP(_PTU~r3f+BBiz{e6jn^)egj0i zd6NwvC?aOY$X0QQS8j)v)PX&M-fS~ME#;GKM%ZGx;GN@wVPLEJ9tL|CttG@4xPTH+ zC4u}Z96F7Af~7nWDr>m`G9~TldB+hC>k=*eV2>3PEAJ>}A30_D>WhN2j-qzwj>tY1 zt7eYKIN+*gA)2ZsQhG68QMBPAjHLqEOx99CWRJ;Qt4cp29wXdibor*ajE6{xzEt=a z-V|VIPA#Kg81(qvPm6Ba+fICmC?g;(y@_dUs=GR!kGAGgnRifY4L8ryOW6L#@d@8z zRfm)NENE$1EU=*MXolI(b7GM(FY{_O4!*XzsubTBT+Y(Em{VSbXmR2KJ##x%K2+ z0OM^#*wJ8-S~L@0AB$Wp4|6U~Iia$1L_l={Eg)e>H<#1kPnNKRgSSrqDIj5u>WfI& z0xoY;N0ff-x2;BoM0VGge(#5i{UQ>T-fAhdWBfa_?Kc&~$;{b;IAH;&AWj2VAH>tX|Ejqf1CRI)}bdVm$@=vS!fxdXHT@F)`i z1-2o4YvpDc`_O|nBF4g7=l>SiimV39Q}>I=eSRJ5zNW%AmG~NcY>}_g+9~t3rl9O# zzRC%`9qy0)9*cS00gPG_`#)dy^AwQ^dM|C=9Qj6scyl_8nYG4butN-#5dSstF3bIQ>N^K#Y5`lmbH zn1lG>GRf#C6N6e@%+GzBHlXqi=c>St4e=|k~zN0VViXc?&5DKED|_EX>8G?yAGoW z!w>PhRDs;44ZZD2mr%ni^EN#LuEN^X}RSjtR3YvD4k?(a*-2Z12wrcg}Cf!3;H)u7T>q? z@g`3k{PNOce-1uQ7xqi^LLjGrzQv^P#AIbfR1C#Hbe`h$JjJ=dA3INhOizInPsMP% z*8#pIkz#{1_i!3!IbKTsFMh{t`tosYOdlPymGmwJz;RqD?w=sK9h#NJ0W z!!@~~X_*4qK8Kb3cO24lAv!m;+?+W{)#nQ@T4u|%H;LUHI=WAsq{>6x%q{PF<;L;W ziNh6>yxhnlY8XcGf{!<^Onc3vU*x-t_n+KB(a1+kIZ&h%^I88GIwyYb;UCq zWem=OOl6CsNe_$3Y0PY4Pnc|wJ03AlvToKK$#QO$QOJ{57|*ZHd^X8je?DqP`7ex! z7Xhy)Y73uV9bJXAl(A25FdOwS@i_LyTk9&m$MY+ybF&B^0!ESGb%#TGqlcvl{)P>4 z1IB3GP`m?zpsBgYfCk%S`<;Jye!|an9PjhuH@#ETgFy=3s`1DkrItiM350}B5YUkt4no+$ z-D5du9PXVTb@Qy%3a4XQ~ z3bh9|#bj8kRfqs&a`{1nki4>}Y9*hj-gn{vS;4F%&?+Y2va1Dw ztLU&vt-}Wn$Ai+k_Pq>qYoSnfA9ASesyCjf_vDQdZ+$$A#oC>}a>G%QT6vVv>9x{H z02qBPC&`aT<`b1hO&*S>6DRLTYke3eA4#{)W(2m!FO-(Dhr$whli87g;;%@DO~EVl zk$$JIg7xSt{Z3yM=jeD*iN-G`383_=j_0O)Ls%S&Cv>SK4OzjLte`%Z>E^A@1}5Q< zLPj>A#C2YWXIJ!alxHf!+K(8%=`I<&X6$%V>OJ^4+iVuqQa_5hU1C zr|7uQG2iswjcd}klk-p>GJMiMlWrC;;*o2qK=`Q3JwbLHkO6MjROa5Pk}j1 z#B)jRDJY(gwkd||^yKJwprBQPSA4J}iOMk{>D7TJq>L$jC*Ri%M}zSur}4v!@Z-UN zl71${mT)t{is_^iDmuF`t_)_Twqsvp=L%*QC5e2$P=<+-`GuXzJzr=P-I!ib%y!`< zy6SunPOe90U3)t15j`#Qo`H7nLFzZGt4(F5>&B87bL!FHceO`E@i91lbDghMsmG~D zIJYN_-#YAoI6V{(ui=Atnn|nLQ|M8I6oF6jc|ElRRBX)B4i7S(Os{xrqp_#G8yu;_ zCbb$}o3Nz2V<&!?cglX=IPp-a=bbN9!U&K{eJ{A{1p$bfHLK>u47F?z_de-Wvo1}N zGit;qLL=`d&m1j$)7?!;;fK*jsEphOrp37D%h#kWU(@pE%|#EGHyP(Q#P{szRTzU* zgk)Fj7hSKjZ_My_rku=Dh&8ddwAcAEI5KfbqFu#^nO9!%S=eN@Q6l_<43y-$G$KnX z+Uq%X$s_Y@viBh}=!`dZa1&wD8NUHiT|BSA*i_n@gHf+LiDpCEP(0RQZB4_(Gcj^J zd|Xg$wi0n=4hgzdE(fX7Mked^(V=aO2$Fx z(7Z6?J6UFRMQtPaNEIC_h@?CNQW(**OU=+zsy&L_I5{9iYr%a=yxTheWo(v~U??DU zBo9kssYkM=p19*U&c0`3c`nMlOcszrcI&2d==nf{K74RW4%GxV@ zD4PF7>c@1@0}_~JbCnZgByM)3#x%enYan|#^{GDap;~$AP)6$VfN><2L6C+%OV*n- zKv7+hr7$u|=ZuF3rVFL&cC;rtB`h$Pp*By^;;EKC07E_~EB%i@Jfnc5%1`2rUD%H> zBYL~}pA9W4{kA(D(P~{g-~b)ZkOV+)kOM%~HRZq6x|K%|(G`v=RY4f&sqQWRr$g`N z=fLBuYbT{tlm#l|)Vosr*QGOI#Y4^V1?DNI8VHf7m(v*Q_`)$kfOeBmN>ye?Qf4{_ zG0q9N>*pYtXc*vG_w7{|4?C5C0`#Tl&h_5YOeoMv$9$zR=$tmrj+&kSL=?2HwTYnm zdq;0iRo#N1+s)&%qlW+6X{!iuu3Z%L@5jfDPOG`U5dLPXjCeC*9*}~}=knp|*~t7m@`##Zr08#KH;FDp@6=xGzc$K#v&H+Ufdg8 zdh7J7d4BGYMq;y;Fa`eR`K7rkvBi_5N#es(&L+c{+)S2Wo;0?kIm&V(Y8ppYi}GN( zR}iMrv9QLXd`pN2sIY zY+nt$K{p(NtoXjaR>9%vF2bxx#@U3=<+ZIa$B9wE)MrH`vDPu+=p#8QR3`%ai{S^g z@|!0Ie&@{*Z6j!ceAMgzQ+G6kGFT)W4lxoVtxKTP6+T(jQ^iZM0F`k=s*xlGXO(PT zgK`qKfl5Th`)3kDnY8U=RkDI9juL7~+xef~_pdz8<|Ph|l-J@=CGu-ETD?T zq`h1EepaTVJJ@{ERAIZ&Ta#V^-4v#lDRX#pO{{zqvx*C^T`dA6k)oW>RLyqy5h!E= z+f7G4$R%j1dlk<)mkD{@$2GiA7xMX;PCv`7#><6HS-buIQkKdB0T7G1|Ae~_SI*8h ztQ=bVB(V(t9C4twk>p4VLJq$P&!T?f!}F>nvT^XEm8H*rv_jW0kXD>^8l+Xx4~165 z`Aiyu_a9=mOJoPGmrF~T#zhR-DzKsq^z)% z;bpWo4S+lmjQ?fz?)x?Gtkt~R+4j~n7o}bxPP80IRW!~O7nsGaDnbqhv!P957wujd zD}d`Dog6N5a)samS6P7WDU2HT?=|OAGVr0UkYL=^arX`(kc@iuiz?%$ZmBOW>NjL&k;FFI(I3fyvlcQEFsVxzQ5=-%oPYjG@H)iDIB_=pZRB&8K z<_waHBeDPJpf-^WpnS_XrGG?vK1&Tf+l*62kwVSV_?9C8d4%1Z!e1F3!@xm32!^4maIm^5|8jz5UG9Y0QhB(ZD z6o_1!f30xUWc8(u08QMuSx@=O;U95dI^5l+AD%d@$iTgo)I@RdBLvaPy~RMrB|or? z6YLBFT>c{ble>idOY#kGci;ClWscj*g0)JT50ikTG%m?>fN6NT>%6j=1lWPfIGz>> z(|9aL1#Km+U|C{&ikIq-g9vZ(j{-KA1=4D9B-d0j+*QR+U#q*8ZJfo)dN&n1xp14q z#6ZgNH_sOS#)hy<=1~V}H=-R-{Uk+aAWC9c&DmHRqzLzClVRAC&N{-Q7t({ESc7mfZVVYO z)(n!%z9hZE$TMO}5E@>RrN<>*w4qa%PVg>9$%|4Q+WwF9o|R8mG=rV zWm^{i+pB7UHMP)+S|~;^xzwqCGo5vsOths3Pr1NVi(pV!(lXCj#QjRVMK%&<@>Rn+iTVNDGKc|OeRhJA&g|Muvr z%N3e*cqx<`wa09bMd(Bu^#bfgLR748@shW$Ed)059=Hq&FM#Lbie15^AU(x|MR%Aa+D?!w ziElUJ#8VueSUbexN${Ppk{s?u;lE28pXZ9-mddrVD1^ zjAA}gQdks=Zz3PDw89UYN0_V?jd5)i2uA<!)5P3$} zIzK{rvG>-e>?w^_$`4PDKA^=YxMf_b+U@pDjCAdd;?1z1mGMDGL{L|PWVfvYmJ}-1 zb$Ew##k?C>V=ZC#JaTL6O06n`I_Wi)c8}RYQ*Ecbh&I;@UzS=#at#qSi90~ap=8c| zVFjUnZO*jvGSX?I@>GaGmM6wAfQ#`@;pa$ztY+*&2219yv|@PcW_pp* z+FEFtITR#)UoOb?a-t<`PJvOnk82JS=!sqNg@&B@mB4$|fg9p$5mpJ`PKn<(3wa4M$-^Rqrw-~X11dXflEV{h&E zLi%{2gPz0`Hx%O~`IB_L5vtH^iHk*HL_LX{V8$v=t?b<-kXrki4yD$XJ%*~-(mz|G zd+X&y*zCIGp)LSz*(lcEJdtQ=jYXujQ+X^fF{gs$MW#j0i~4I#u3bu$h5OZJX9_F% zvKx+)ci9&ajEhUgZ--;>dEYHCc-!AEoJ!1={ zhAk|!^znOUZdhUQpbSzMnatn>Z8x^`}NvhoWVjs_JZCCSL? z!P1+%u*Rha#<-dQ8-23V4~NNKA9>v<8uvm9^raLzUCxa#R|m+=BUa!|@%wD^_s@uu zSKNZwl^%@w*I`vvc^5+6#?v8ik(mTt2ZU)XUmAikyDsTGRQYqymB+{+X&Gl(bC(&5 zklBn?B+{Bc_X=mIEPyEHtCe8VhV*w%kChNri(Vz4dsA5P{#tTVI(_|}1(oiQ&B+pF z5La;cLh2gHF!|b%^5s5}uuLDLG6K?8fGdMl*_FRX0q>J&*I=ti%!PwBVWcSKkz`z z>_m@1HM+@)L!Ezsn?I#RgBcdiMZI8<&|=!(gLBN5^mfFO#GRi{|7*(yXt;&kWw-+yVFEAQ8qbd=@^=SAf^E3DQY( z-`_tvZ8r{#P~|`*Q$7Dop-Iq z-U0Q}z>BW$_F6#V)G}kp<{|@gKz3yfo*m+UBt{gHixlp_J3D`?ZP&J|&#SfPTkyTM^}PPu{7)Z(jNT(0_Qn^6cQZjiay^jG|zp*$+lB-VC3<^xm`&HnukQhZw|7 z!L;MamuYx;6_cuI|{GC^5}Cg>+0XbQExcw2i{M}z2SKC z>b3R_76GnZ_U~d*Qntns98_WRYRxV{M$Pz4{0l`;Ht@jE4@V*^{9bGS9sD@n+0JU_ zkAm@tzy_m!IMDVoDCdxStR-yuqRSb};=5}+0$3OSgvE(t}R2m*W{6hF!%M%5>QWAuM`C4HKrcW*;| z5e`uArv&%Zn}A~02$TM6J1g7f1mdCG7i<_zaG6b!auMv^;pp-M{Q$$&}?dWe7Ws^#PmNJt_O=7nTrEf0lsm}4vvAQBBR(NO1le_<61#KzynE=i;B151f?DMO{T#hh>V}Vo}m4F+Dfz#V|ET2 z?ftfY)@YHWRX1c)yzzR@q)JoOQU`G3Pi>&z5xNN9TpCZLTuoNhR=rf4c|XZay1yOx z?~e}rH)Z32imFYUYALNRXfp&lfF@!WYgoH)!}@(2CK6~>-$ms_|CCy^{+shwyCe2W zodIR;CgLZR_y(6=qHF>J6}5)ss?lQTp6CF}X=ubUQ50NbhAnJc(t%CyDqadeqG}?S zlW3GM5nWRQ2S%(qwQ$zHU0S!BJi8gh(Q^VhNb_WxsNhpj!M#zE72QP|OZDb~{g6$q z6#OKJX(dfMO_SF(cv*6fMVzyWExTZP=gzl{ZOOcbniBy9H`jdAU`6Hk^CspoB8hm= ztYKS5*Sfb!YAYQ7~c548Sw2!9A1O96im?% z6N%L7k|KPW*n2@4{z>E`K5x#ODB{lF`llx)Koj7bK@r$FpKahM%B)R$*)@|6DSl#s zK6r$W*@Kv%$Ls=U?lIvf6R}ae4_Jyj_neH!?L|$<<95T7vUne~wqWnP!Ayx_jZLB6 zc-jwe1AVD4uO6mGi>P{tDf7g`UX)A@wG7c5G?3{u45lSIyg+ABl512f?9Bw~u27sw z1mJN%*d2x-f1urZN$Gv-<%xBGV2H&zve4lO5ekCa7m}#_qUi~>X0IYf~l;N z%ne8?qwV;XaO^VJqqeten$^-W9^iu71lq~x?98vp=e&o$Dzq}tv z4{(!7*V~gx1*&QtWH@MD?Y^I{DL5dZ0BAQl{&~A`P{N_w$EX_F9_ENwH;BCTfrx2z zy5d#6-4uwa@a0c)efd-2%TG)?=@XY)qk2d$@r!r%&-|m-srLs*Hacp&KiWI_^A8BH zodz}PQD{{FR{UK~iviyuC#uO1;)7<(KR!KZ;8TKG2La4y*1^IPlb$(E)p82~M->y6 zUW65Ke;81!7C4glvrp}o_fI?jg&lnJ>M{D5bN*Z3ezuM0zqPIH`tut6Uaf6a>pTB@ z{`)QdJ>dMe_F~@o?_h-Xm(OmP#@n|4&R54d=2yHP0vZ)4VwYir36Urb-E+!}t%aS}mhrv<>xY zu3lS?anxMhwjATA_1qQhanxN1wo>D$XCP>eqwYeldD3b5?M^$XS94OC>NQUEYMJ2P zn)UXHN!|y&cs#9ol;wOno5UVA@L0Ex#HF(An!~J#4SK>z;PrHCi}oMMJ1xeE}Gm^;>&w|LicM`Wt%zU~MS$ zPY&_%mG;j_$-~1G(Bo!%UtmJj-|V#;1aR91n4sHGvxpUU?1}^ubiPK%V2bKHrZqN=L4XIDEshtAp^7_z9bp90i6ReXgtUR2Y>J3IFeTBm3J{z=l;i;09wB>rc*uuq~QUuuM$Z zP3p{?%J1~bHs{I82Y7C+co}QH$gFv!aXr@Dch@{_wB9x}$%~3tM)%3KAnIjwp6m;v zUPjl4Zw{>C*c+0p35Jf61EOXIjsVlB&6P6{J^Q)C2*83l(CcR)3_`p8PRC*^YgP~N zDwt8zmhe=ylff<9F1VcxZrOH`qT}M0Z5JJ&CRm22t!C$U9jJ>0sN(GF0H0;x>0qj7 z8Ccp(^(+HNo2i~+`JHPjS_ACs&yZ z|Hlj-wQ6My$gI`R>hBG@ChUE+^UE1Yc^)9ac#)QbvKBrC$6Iu2gT^ZOQm+N9mewv# zuwLWj!2jjEao+Ho2P-Qzlof6%9)F%_>YOdlu~*VJmF^?3bB%!YSAio}uHJ3s)ZOp2 z6yIl5d3#h<#7~V?t5r+1o19v8RckA=R)W&qkC~N#D}G7p1=+xidV{=91qbb<6i}Ma zq$y%+U8-^|tr}|d!(9D56^D&%DoZEl%8I?0>6Ok; znjOD(-exspt5(h?jqJ6tpGUsEH%EyoZ|@#@RfS$wonMSPq>pL37%iLHvllPsXku7J zsA8V=&nEF%=ZqE%nX!#_n;H2>$6WlzVB3vfng`Hi9|pTpa>BrvjJv8$RnflFKBLxt zHNXA#y!N&H_AlnOujjY#l`{xHjS&jiE4dK1sy2xILy+ptIkf^ z`YcMVZUuZ{jYEG@0A!^CY+^Tt^8C3=dHQFHE* znb*!ROp4+>(na=-H2fxCopW7C>s|L9*UqjloR`s}$ng~qmK~qbtL&;CU(;PS@;HwA zppi8XbU}Hx-vmYMA&qPvKybA)&(gGG~4z1oc$fCR3tJ`|4 zs8E0QwjpcOGHbv_eY_{D)t%LzRjq2<&T1e6-cmJCbN68f5S4e_UCYW6=8J5Y?+<0A z#+;7N4)>`xRX!v_0;xUma3_a%qzQ_%(Q3SJwlU`u8Zc-|zsRkFzB@2nSB)9f%ilH6 zsxQc70#&(|TkS`GPZ)i+-hD`ZXMvJgR%>_AA*#x2t2Svkk^>(j_V-Uu4moawZTPL! zJlmDYIB(NMEgN$CSHJzPdD!vyz=%I+w)gj12NVmC!tq^pO&jR>$x-tdEUvTGDIGvy zEoF@uH8bmZUJBE*#(s0}h=&De@BiFBKQ^0Gb6UJ}wn$;VkL*q^Kcv=5&E{m7CA*I8 zg%WyzV3(r*Yr~Qk8)29=FlOiUeWQhrOz*!|S4tv~2a~#?`?qld+I#YCzqK#ErRf5L zsavA}YNNv+)Z*jLd1>+~9tNW_D8=G87Z%&N2mKg z%TDXgDtKK7AtXJe+RET z=(Hp?$!BlHPs)0?0U7A zUjKHQ+%UtsanHX9WBbk+H-yA9rbF#vS`!3Pb$VH-Qz# zaB``dX5luQ;GHP|io-x~^fv5d8saeinO67ua0F_{>8k0;&Ury%zF)A0nK-@`nZM8+@@bWDZ-?Sm0D zKO6MCV1$v=ec1?MnUf;sz*v7GFh^T~7R59h?|}w) zRF9t0Wt#0;^_l}kZ@eQq;@sLyRtF>Z2A9^#0}Ah2IAfr<{e61pE8BrR+2FtgYV&k`b%kCMy~ZbMrq|?W$2&{(NU}`ZLn-ue(`p}{ zF@t)PzHifOj_|4K5VIW;pm^-6SMegF0|A$BBXVlMF~2WNjR;b&I}z)uLfpOqG#tkv zzqM@?j{4qVW8b@`rxf_9RDK?q;6%YN=!rLqv4?+f;z6AKe_%d(x~0Ug3?sXpp6&Z@ zG1Bl5&o&QFF}7`!0CiCM(FHCPfUt{*SKWK#XS_Q)vP6n=x+5?)ZM)5Hzc4Y)Oxa zZ@`)h2c!*w83m@sEJh&(V0tH{i*u|B(QQePNG?*& zbQ+GR#1khis~)|V{lkX&?+5(&hj)I0*)E%VN6r6i9C&~HWYwE_K{)rVs~ z|I@~a)c5|_$oc2y3!8I97nEX1pM)HyLNq)u)><7&1HID!b++`xq?%+`G|wa*^#ppe zMeVHmiq2|S<4Ix87K0+nW^neZX(5=Yi=~l(sf*3^`id@Tt3s_v|E#gF>$6!|(m(ah zuExYO05bR5pUj5*0GILU1P$~?TZ*|BUA4IBPU)6Dkbv}};4bLRSh~@vuSqbvp5aqn zBp052!wd}?-L%#C z1y7sk6Sx1h%ON+Yi>QbkMi1XCWekH9pag+dkmM>zAfyO@2dF1W8z3LlBA<=GH6qcR01IReJ|#2R~!S@TEWI_N-UmpjktZgbl|S@wjoS@Ea(A zDuphP@)P$db%?9+46G_?uywBksXI#woasaW5mc`f8m=PeUwouIjviW)xWt4J4LVmm z?v01o+u42-Ob{FozCDdYpuX9HhQF9AyAeUU4S*zFE^D_ony2qUl*J$^Z2cYML$E^_ zY=hSmna^zW1h6y!L^metj>cdxfVnv3_tp}$oAk0CU{(<%5rMyq5ugsh#nVO8U>I_i zi}#2BkQyXYg6V>ly0o1dup&us0L2+eZT>(Hj1*S1WKE_ZVB>L2&J4*MUGH)@z5o*l zV_`rlrq`VYPMc`{D8Re(pC)mRD?Yyw-KLGdp@K(KGSQV;1Fz$;;=i6 z#_U@F^HTat$j2d^A|oOa*r9B__XQ=Sc+nThvx*WiXITP+2z6GFP!@&s0m{8qjV_UI zMLKZMKOv0rB<}sjA1pb03p*1E+u1Nyau&B8+pS68U}HOn{lWOwKHtX&1dMMOIeU8U zI4=`Y9|MZd+g^>Y=@~YcQVilqT3VF0V;aCF6wy1myNQop0INV$zkHQjX?PtZE_-Um z#OGE?GbVm^tMGavn&<}t37s8HP~A~&H2knSt3t3|T@8f_oEjKyms~cO4P7l!lg{dL zAl{Emw}J(D8OUa;6@4X{dlg<@*~7$nM5hVH5Yj0}X`R!*B)XN4OQc*%CqyY*ehXqa z(_;bO^$aZ_YyE5E3%MRZU~o=nGPL=`M!XlE;$;306g$!M?5}C>3bP?TEh4cjtqay< zEvQ^dG6IQI)1`G(SCa}^@3AKJC(~d8B8qz}(tyS&)j!OQ)c;bX*_5f%UHY zu&2)ma3aeU6j2=mUl~rvQlKsZY$-4Z*qU)G)AUmx7Jnu^jcx?sr6cW5K-cKU5G4~v zUINoau?Cb}*vX|oP#C1vXaEzUTyPa;GP<6`?Eh;ikv1b@Q%1F?>gg$b{aHwN5Ln}x zT~%5i{$w1*`oRsk)LAH_BI3|!SS^z#A}A0-e?Zc}G_v|dHY&oodpf;SuF1~b)0X@T zM*Ibv3H6K;poz(bh6Kf6Aw2RSkW@2_h&bVtS%*#)=pFgK*B!)CFTnN$393tjvcK68 zKrjm)OhC}57q0a)nCtHJ6KJjh0GU!%0%D$FaBos?q#Ym)G>Ke5f`YVWGttMttf&Tk zlc%33sr6TE2PJ zz2BhAPk5)Xju$sw@KQDDil-CkFGsYu@U3Z`05Y5;p0X#37m<=z*WC$49wkSSH_oHT zTxvYcB!Myo<)L5}2-VXe2q-!cRwvCMyOc|46vVe1m)1S1zr)~~QgospO>TCA5();$1v2HLt8n5;Pd0x+1MDK?t*r|-j1Ysu zHXnAQSV2iBeM8Ay$QOW1AJhraG1gDj+oUsP1?CzUcH9?=UxYHh3+669#-|1k1Go#X zVNVp;+~UdZY%&pMH2#AT4l%1cjiHB_lWa|{uO%LPZ||&`*o9&*z<Bvzf-Pu5w6qBU0}10RIVe1?R)BOIkR&3Y%RXEc6YGmqiJHMa z1GN#U_x7lC3Efl7UN9}2vrS&jq@UinI}D;8Qk~!sV*iLNYRp|lE+OzVf8|@l!uydU ziZK)l6U@K&%Tej`tP5&e{3RI<<6>xB@L&J)kRzs2LJvdJ@d5%~Eoe8+4^I7e{(c*y zQSD3K7{l(YXv?UxpF3^NiGZ!mU5b5cZn{+jc_Dhilm+hBuOedUL z;0~tSMY*EKu!)N|vZ&%=Y$0CgLgwhf`UED#NDd^S5y*D^8C2WP*4}-6fl1AyiHy&Y zf0ME&l|%dht1w8xq)4r9PiIsNlmO*iy~z-Hbmk*t#roshQK?J|Hsoa;^f~ke|3ncd z!e&5f84YI>Xa>x!4#rAlLkTi^uv7O&7=F?3;;Z+Pv%na1djb2~k|2TEwSOIjMm!`sF_2Ob zMMMggrLSI$d0sh{@1z?_e<;lS*5K8{rvSVr@BLV3!q+(&@L&*r* zRM@=xRr$wJnzh<(9XS&~5(}yg=W0CcV^U%580yYLD+B6Tu^1RR&H03PllGKe7>9x} zA!vKtx%$So)46S@c3V!V3_B5J&9*ERrjdvgHvHZY*WhG2_K zssCQH_8Wb0T<-cPlx$gtyM*qJK@9;$jtCu$wVLuO7idTia)-=IeKV!FX224s)?T^D z6O=9)f5D2oLJ;BK{V<~USE+mHUw{G>^=RTaxNyMml5TieKWKg>@*Siue&YeZ4TiYKs&Q1?i&E?LylTZN>O~% zS*J}lbuU2vV)r8UArU2(e4&11>=-@H4b+dP)N!+3C}M*av;7* zTFuKb5+ii36cdy_0|-ZL^y)eG$h>yq%=OY!%6%XjR&zXPJyJs z6iqUOakNdljyehCn>}aVBnoEzv4;9!f!g`mClX7t**vo^c-BeBQOZ1Op*0z){! z*wZ#y9_1VaQ52AY-gA*tfU=NO$dLokq^6=`GLo@qz_Grn?=ZFvJYX%$xTF2A5VvLC z4`+6xOW}vjba9HjnSdV2vq9D!$202|weoECgE;812l(uL^FWAn1qW(ScVt}C)9C~i zBOR1`1lw(p8wBHwg)SIv8UqUMx>&!W_mA6fuPY+o@!`A41U?cLahF0Ef>AWnrdlC+ z8xDse9DsNZ9k{5y;o^v{!U2yb1iOjE7sj?CNPSdYGW@9Z1v!zak~-E19o`DQ`JXd$ z8h!iYATn4}9*ek%1-K^b>*;CY0e>gwk%rvu{}XTN5xsD~AAwaMcf4dM3X&W*(dEs7 z_V+9vV~{%-PS9%%v~89c!j6G zr})FwI74c}UQQNX6f68BeYM*PL<>=_51x)>G}jo2J&Zr|q^AxT81-zL*zqjB9Fq%i z+8qqS-lmCBKpqQVG`p>skEB3O5FPrUHf1i$L+*{vPcUjmTv5gNB)k_Dg>+K@cr?AP z9zr#w#?>rF&x1iOYGKiA(`%0v-H63@5g?Q~1cr4xWgK{1!)Ed4Ya zO<)`Qv0mM@CYmV3ho{2n!cH7xLZx=PiMN+&CPlWQ$ZMUQ^F?3IWK;;t`W!5`Qdkep|ZkuQ&BoEFY{>?>+P?7s5C~A24kHUl=5ygZxhm`U9{G@S2$y%ii zhdL7rMbunIfu=h2SsWQ-fDch30hJEbO==MfrI%awoMaPHDNtA4n?S^}f}rk;01w#w zubCD=@dRtKMnMvoCWvlm@E|mT+B^*`=TmLP((^Av*%Ld^PFJ>fQ@S_O@ zJ#E=QsL^$Bt%0ECsn@?K(trXL)FMXaqG#-QzDz$KPcl;q_RB#43>l(c%Xd4WkhM6D z^Xy^??7dNlfrRn`D5$_OU-rD5bwMh`K_DP*AjFt8S?s*q?~CwXA$}>hp0_6gw4`5a zJPG6xZW7JR(Xw7BqBQ~;aop`uREoS1`AIUAp1u$7MB=>b9yjy0jPaK^Rb>*np z#vDAI*6$@(m9mGgK}$F7m2j%Eb5ZkqQ3LJf;CpsYUpfw2TfZf)CmX-%oqq$ZWLgAv z4c{?3!j$mEaR6RQ5kWt~2RyxFGKh-WDHj?>Fr3Spubn065U2)F4ll9ZNYvBq>-p_L zc-!s8I%*CQAOJ%%gDNaMF=nj~`%FJjp-dFo#DQ4|l3i?UT;n+eK#PUMc8pWl=RW1p zum@ojCKxJ2bnHkwLp+E$PkD$ce~N*NTB;IdLYMTB+wPahs~X5+g&NN+f`e{$wUWA3 zGM}wFIcya>*a}10CNWXVIw+Qt$~CaNn$&N|Y`Bt9csiWf$b^)J!!_nZ!YSHy09PN` zv`+D})}u7O)BI=wsOJN4EC|UiBjK$PE`wXP$`TKba&pksYtvOD?=uL$hQSs%O$3GZ zaD^To{M`!h3Ln!KV#b?_TrS$Ah{GyTViSih0MVec;MCo4EE*Yb>}Won3A4l={!UuR zN)`vlvWB|8$bqXE;Lfj9G|%=otqd^u5bb9x1(NZp##o9wAAY;B?{UuCpMx(XHpRWiti~sM#|>|71pB9#== z#VInV&C!-hA2sdbc%=UwjjZHWpa^;6 z1de-WZTktkH?+YEN1QwiH_vNm$izAyOa}Yt`98gS-UX}9?+z)_$fXctG9*52{^g94 z6*;r{9v(G*bJVgz$tD9^*s3cX;up28;tRkb=o|xGu|*mx7YNEDji^FpnhYw^g9E=4 zfo=woaVeKmwDG~W^lm2K*vn^oMpkl&QPC>6$e`@_jXaVH;~Q9SN)h#4?Z`>`K@)cm z3{6G)K;4^eI3&p+^Y(byBz5{_9(qNIBd!PfKt+#g6+n!Ga_&~U_jn1WA>SD2j)cos z1|M;giU1>$|6ubJ7JMWoV*z0U@h~Sgx>FqZB$&vn5F*>+AiQ&=M9Q3wl&2&W&}$AF z{l|18cJxI%q85rFB;sgbv-#$bACJ0gO0tZ2T}pF_DCkjUPWDedQzXZfU~N-Vp5R%wyeq>Nr^o;WUCAU+iKQW94i5KaHbct86=>G1Xin#i z7??yo?CR9MMTb$}r*w-}oEMVA^_^mpk^-x*XfW|9SA-D@8fZaVGMGx{oMT>~ha-5B z3Em{0_#%TPVw&c8G5FZ>@IetxfR4M@wBN{KyTp8 zD8gjMGz@~LC$s2^6QjwvJoZ0=`n$g*7k={5A>pmrVus<1wdjh1^7ZS6&S5R zNA&Vexwz7C8N^1*Q0&sU0Y_d*Zj^j~4^!@m#9o&{nWA{`#TL?6=#t)Nju*$d$FOkD z{=%+T6g#qSnr21ii&+!FEs$(`hAg}a>VW9_wbk4@*E(=>u(tq2| zZSU$**%Y@Qr6 z(9eU9YPibz)njLoZBM%DKmiQu{NPL+H@X4swJG0-8~cn#?+-a!;vv2sae9E2bUxx> zYnV`c|4oSA($#In^GDrl*em~Qbwxc7cM--VC@XKg){}~+di?v}sV)5HP5J?Z_o!dJ z-ved6gOQshA-$-h(vy-q6G2(l+IS7!=Yl*tTo~kJkPq_x;vjEaAm9Cp(Dn}Y&S0*Q zjtC8R5=^f;^~VFEy8|>jo69Kl(eVqL*$}~6VtC!^2I%0(>#;g#g9l-jjV{RGX%Nq* zBkzf*jxuav>6Wk$I>rSaf^T?&LFlio`o_){8YEp|HDZH3Jg@;SCWssKR3BH_ z+1@~v2^!&1p}dMp&I6I(nPZPI5N}nejceSVk8emd^j^R6Zo|H~xByzm8t5$35jq%d zIbU@*0S-DDLgFqXeiBfU$QW2@gyfLgR2e8U;>SgIN^nIX)_TuZ? z#tG^orK^fJl=|H zAMB=|aPb=vF|R`8#mTZrOQN#Rfr$g#aXbt*Fu{wsC?HNCL2<`rwMscc%z*r8Y-Q@B zKsvfbPulQghA+Gf1K8PE77UHm7`}>tZ&I;(rkP{bMsWzKtg&XVvu(bJh#e7pK}L1tNTJ z@_I6Ji>+BHcm_{p&M$SSedyAL3Yye3=1gSJWzjj53YNWgOA>53t!^=ez`7`PE6i^^ zK&2-nEL!S<+AI(1PUGPDN)00xS zhYxMbg-34RvX}8sXoxG~A8Lcp63AK-07#xQj9pnnXn;^-<24;?zIsJR7l%iuzX~My z(U|wA&4V&P$3`mx$`3#6s;)#|qATc$s;GXxCRpieryBe*J`9d~As+f0|1h;<@*d&2 ztaofzgLg-P@;3eivyAGsoFB3|w$2Y(k%B!O_!1YW1fa|DuBhd@CK?FEcp}j<~ z(JEUJ@%TFI`7x%UM19rB_Ar7Ks<>ZuMoU+%9FgaYoVV!ChDr7%REo_Tm3XQ9{$A(w zn38WF?fup`APq#QLZ}IO-@Wpx+A>0rsr8LRG7y&v{X%#v1P4LfyYk0Vfue?v1K%R( zP~wdTBLsq2VD#^WQ8H$irWK&w7q2A2Cgx*!r4xwfo2Duod$vqmGtWLtz#h>cT=_7~ zr+e1!l$)w5x?||%0Cp#2cv)Rb3*)WB4@v;$c}5mC8K=!T*f0qjK;}SJ1RX{qK3C)c z%**_!T44f^1==NoVKxB`EFk|kd*W%bf*aUqUHQy7PbnQn8DKcC1Bduh$_BAR0ZDnk zSkG{y;vB5F(P;Iey1OSYnPH zPhDBn`PnXmZjTp)4rMeP`ysqcj%j6jWtse|?;M@-g zB@eWkrj}6_ugHct2Yfm(81JpX2&cwa-O*#j&>Nm~@?T z+iIQQi8Cf(nj=lA|1YDSIGxT}2k9mv^~yqRSP9j}oj+Vn^TBIZp!&#mT%MfC<3kt* zvt@T5FQNM!=$e|BxtKJFkrNc_{<*MH(tIvZzH>eY!{mf<7{LFg*!c}iC$L=h4)}1XdD3pQI>s>OSI5+6=?cFzPkvGG(4fT8 z5AcMS!@Hn59RbjDj(_`;{~;-#iV*0{tH2KY{P%+TRYXN_-~EA!@pX6yY{!* zHvAvhWm`2UhcC}+fAgx3gO2%chJgv5_qVIrbvVkYH?RDE=s%3DI6L@l<0$L}qbS&D z_A$HoAPlB2y*KTHjjfISA-ZqT$Fx75e4#^uQm^dQtF;#!^=iH5y$jpnFa#;*9Z_n_ zK0BRO{~iuTn7iMXG57C$Wt;2Y(7As^@ot>;X-s#O=nXr($!jMqOx->Z-+d0LlPTB5 zr5Q}pJRWfv*qO))(v`1j2(PY6TrHB8$t>S0`>M#K*x-mUJ_|`6$B@xwI(~RSohVM? zCIn}up5DcGMO4|O)p&A`MwA45@s4tvXzG!vxXc63ul?mgwuL0I#$Q1|{(t;mBLAnr zy1hr~BVYbM+j?GoM)JSdsO)^?pORI7CbEV&8yee_i&v4 zc1=De{GJr7NkzW$EsJTxW35fMyr;EtEiHL zYf{6&wY}ddh%DAb2=re>x3-hfl~FSbV_7K&Wv$9QDD>a=jg~gFVxxk#C#NTet-ZH| z3BDt^oza(BH47uCrJ&8PqRqulQ6As1d3>wx>}Y2`lkd!B@*Ovm?-XV79h=Fw-79iu zK9}#zYV?!{j=!W{P^^rD!-PNy&UzaxqzA`H|%l}s15ki7{hL!(^@%?Da zZ@2dS)03m$@gATGvzoUw%ih<@0(~5`I}7)5;OZlp1hMbke>mFOy|$T;JRN=g$Jbx(fjnYz)a~9{eE37Iw;y?=5|H9!TqO7 z7ufggtMIt={o`JJEihf?hIY^179JUIv~znq?YwKW9wylJ&F#MZEh6OgO*d~Z*}3 z$j7>vdQFBlkh+8I@if;N4{o0Ru0u79Ei`f<{M`5*qx{;94kp`L*)mJ<^E=F;fz{sp zjyI!D&s&)5JCz^aq=VnP?tAOgz<#k7KGS2Clp<2kIFk&X2_f=jrAOfRW>YO)82lyL zsqCvUUlaL^cSnj~Sw>to`7vLW_9(&URkf1L1wPeV{det|cn=0=QC< zZ`F!4tXmDY>i^#QF{|Oz)fJ2bC~4e-cbar=`pGrbdW|1`C{q?8HAR$b-=~}RG+m`9 z_*0}6IX&B_CGxg$(r7jJ{e4&;&9@?I-Q#pcbX5l@VdFK$8;I5M$1A!&hk>o~<;_hh zM>h7Jcxw3()9oF-J*Dh67-8!IW{mo$pRDHEc;7HS7*wm%=~W(=V}$LBWJQ_i0)b;K zyag{)EgBu3oF8K%#+8*E$T%7ilk4n22S#`&Ob*qw0jy`WVYtwY>w7<#>ty9Rxb989 zloFCcC0=(>FIj+c7FGB&^Tw!8Nl^q()M$2)v`~@xh#4uEPO0A7zIy5%FeQmcNDaCn zW^MhxzlJwPV*+CYQm?FhUB&-@3L=wkz;H(It8QOBHi1wmhbFzs8F4}_k(E#k(O@+> z%1U}NwIJ@Qb~jpz>g2V0M1c+lVKokeimc%9j)MM#GURp(AK@4(T0zICc;UGQ@=G0=uRIw~=R@LoZ=zKgV$yJVNf0UYHY~IF>%NMrtMVz{M z&QfkTv&;$jAeP9#IFh%trr<-_nz#|1j3{~aT_CCBUGb`NS0TW!yb~}!HKC#Qmy@xl z_u~QO#?vp98~Y;Q_rdWQ*fp`Pi3A&slhfk{YJp$PP0l6lu@?YbaiX5P^&$80B?z7- zgMD5aY8~Bwp9TSr*0l$w_9Nb^FTT(pR|D6cv?^|;dbUIts>I;ZTNhinabj>a$k?tH zQn4p>dqC1fMd>`h>z@Q_zZOk@y~&N#a8HDFf%rtNR5i|F;sFx+cgbC4xxlgLyEiF$*$%`hNJq z5N2eV|BC6L$ih%B3bLueiRlMpScSJVwe;`}&<^ukU0;MF@q)oXH^=%|*P4XTwW4>1#^jX713&25rh!v45g?r99_6yM$%r zw3&^K7!jblx(OuM>Xnrz3QZ=90_m-k?Gw|^Avy} zRhYKqvs0|XUoc|;Y2!7@W%vo5Pp08b`gKR%63Hcim)tSMcxr>Qw?*55pqa>MF*_h= zh!0%;2Wg_A_h<+r^Oc%Vt|q?QNBFR`?V4A*#fMH`7c6tPl=tPauph#z9Ck0ux=z$Q zdB1l=+^s*Vi9bp-5d2Lzfoy%r)<$rd3e`er6sDeZITrRfE^3LKpxef4EZF2l{p5+F zfRdE>$_FR7z@=6Z`S8gd||u6*^-JLyTRQT8&T zHvR_Ijgf&grY3QteRcbfNIv*tm>b&f!&ddQgqKf6%h@{j7`3j5MR6L6J%23RP@ zcZ?c0ESq7BGbQXB5uZ;!b5+eosdc6ADyy>T%lYlx?y|Q*thNA@{(?=J^f*bdN2ra; z*hH4QKZ(b9@Y!GuBWqJCupi}ZGeoTU3CI3ITg{w}V!jBrHUlaB%_SzD(Lh$9r{`e0 z@u5VOj8(i)M~b`DPE(tRl5F-ag^8gv)}}l>v72d9D*KFK#oe2uv&Gj{a%v%5FqDhf z;f8^39<&aExT`G$tyP?(vr#%fTC6rok&X-j#}&lDTPggp>~Xa_LgAj;9krzguy?l6 zi6AJ&^|c3R#327FYf|%^o15zg#h1;K1Ldd11LTiJE6lk@dDV@tX&p_C95+AbUhOc6 zP}EYJ@qk78a6JArn|Sh+MA#;M5BJ42BJ~>D>Z5;P7Rk7Gr9UC4l6IpLO>Om}6#=Lu z^ONltOKFy=)tVM;LUN?soO84r)BBlMnQ{W#wze9K?y2eDp*P-pnwa#B&Yu6ab$Wg# zrOyiI$;WEn=T%eFiWBhxAcI{De}16mA5oAZ4air?Du$Zn`MbZ(3H(4|*e3-@ghQl7 z+?w!m2Y0<70K->*){t5%$0@e&dYygE$DJ__QNb}3-5ai{TVGe*v>`e8B+0igUt2(T zhqd-XJo3m!skn#NsWIm(%nwz~vNoP&>tz2g>_wD)b%Cssb9bWu5gSp~mhz1^67R3L zll%o_e2yH;*$rNad&epAz}ZnI`hu7cvSrIO6uKGOQp*=UoysMo-OHs zad#7cPB1(6z>jaoC4FPHYKOz|Wxb?-EW6IDtU+sQLeY-4*6+R}pW)RlA>5q+JL7{n zA*oR-l7zeqoAg*oW{Qg?6RZ=3zAk)z2bj`>+DXVq@j)ezFk;LRWwc+_PAo73J3sZT zba?;)lBS6d&v_-CCLG*A!&mM3&8Rd4HUu2s+R5Rp=Ot8BZX}JcdX$9%*?uG9Hoezg zwXBrD?6Ih3Z5aSD7kL>7>-=gDK+Uuk)~d0&U;#UR28+rZWcIv)EH3c zy;2)K1rOuvqx|5>Y2)mu+4)Zks0_H(0(eY+myuo0?f&8f&gh*9YY+X&8GNFsar_IuI!w2hj`rS``FKu>O~hD; z{;N?W*P`QGKam^OEhN5j@YImo&Lbnqp4P6WZ&6m~#e(XyI@iPL`FJy@*CeDzr#;Ad zY39)b=7s^`bZ2llPWm#=qO-(1+n;mXQ}uA@aSQK2wnpb3 zZqc9uL1sl|se3I>uCEWtk$t7|Kf~~*kCOm8H~(|J_H5_b7UzH7dbU-6{`_y%+E#V@ z`TypB{uckfS^nqlusgj@r+V&v>7gGv_5B;Ai?%+~8c2Vh2F}`;l%H}=%WJ^xUz?r% zcX-FMgAX*Gw^wRa>;3rsca8m@{o_XKZNuL`>Ch|C{MKReAme`tDJ;tP%|sFbC`;%` zlW6lgm|h0>Gy%S>Xg`%`q=@0C##j!4j0;DXiKDC4025y1epwp~r(g`O-3)xxQ^l_n zTpTsN;H)c)6k%bDK;f^h4g*Yj%^VT@quv}%)wKMZbyp;SIk zPEQ(40H9vQb97Og)5Z0?F5VuUzS%p<@1&mUWVq~cY|ZInDdX5SIzd8#Lb%*X#Zt!cB8OOGP?IS9_o1Eqm@|^4byCY)>huoFbT)c;FX`1je1u-o z%l#2LF&F&uXQirv$JFGl!YCT#<-Z`Crkg6iF&_@@tf3P8l$ z*-Keaf5L$4{u76<9X-qIXnTnr?c{azY>6G2l78B| zz=sV{1zTbtFH(I>m)^&Zu5k=5`b$)Us;*%KOYNeT9z`@Jqk4&*)Lo>)I!o?n%SEq8 z=*L|BF&^6STB$CvlV@3-)Rx$Zwd(u+#VmR_RC9^nPL~38%UliPG0!M~_4`2_^x}tD z1GP-p*Rx?f8UD}OC9k9KE@zvpTcYdE|LjLWciOx1ufr(1CmkPiq){~U)k~&*G{6@z zgs0;kEgVesGoHm1G>_1hspfvd6Q(qSOgt*m3WgcGY}|V@?US3!z~_#cEN%p9Eh}rCM}iB=~}s=b~OR z3BI7cIUoFwDe!%w{dKUs38Axlhx))RCkoTXnL$k+`S4pymJPE%@Gb z|1%O|;T2B}M_~_5w|+2*uO4URt8U^Yck?WBG;uc^K8_&J2eZsxe#{)pRnRTyg;-c3 z=!02mHyI27qv`hh(?^mD`e>Hb&10_H`16GHvH8o^bREccy#bg8H^Jy}7+vpW++P}N zyl{6CPlrn#%a7UJEO9Wkl+DI=RMZ2@O-}9dm+ka1`gv@XbSkZ+h0Neo%Wpn9Gs$}U z+&^v{`;Gm5ztL)y?#kYOt^POs&mP5Hxk6vXFwm(2JM^0O_d9RRnk}j~$1?(Tz7}=f z5cJtF4)HjFxT7k`?HmIU+*wk~EU9OfY-N^gXO=w6EZNB{d7fGFBD3Vj?2+aWA)5-d zY%VwQN$e#5J2<-C0M|X<;g)(6UZvAKMF!DYeI=0_u@D zN_5dgv+JdLP0^EkeSsHJmg=cuuwnn<2R13N(;<|1drOY1l8~>)(Zf%~EbaYM&vdnnJ^m)7JWSOyw^{h^o8K=0F)yXnr6t}ZF z*?GLs&ZLv)j~CXNbn@cyLOPR9etf)`PHi!Y6+ibD!hOOzwQiOfcbB>7YfD`9c5tWG z%MzEp9o?z*vcz?7$98JHEOFsmk)0HBMjF_1bs}@+v+jj)V_kW%dAZ%~IJ%qin?cL% z$dm(grGl@SkEcS-Sfjoi&9+=gvPr!|YNMj9(YILzXsg ze}et9RoMQy8sPI7gYjcpKhtO!Q|6)RBXniOfSFA5SO(DHfxmxJT{>HCr#q=Fy%SS1 zzHOcQdk0JHw3ECn5~kAu4<-2hA5lOPs>Oqg_ju*9o2=C;zk z3uWl+U!Ei4Yd`8;E#%x1O&&`GF?3RFqO0!2k7gGv_im?47DL%xO&@-?uw1hG3Wc1Wq`k0;<>uCvNdg1J88a~2A{aCQ8C5*}ru}S(`{#@0Z;=$3^GR8GW zSa1%n-e>Pd(Fq|^M=w%sW zamoU`>3#799|>O8V4O0*>}Cn0*>bLZ3^Q8lXttbd-t6Xqqj^jt>T_?zI4%-sfsII@ zT~4Yr+@Sk-Hqj_GSnr3p}zD{WeSG+(npmk9JZD|s!Rc~we(S? zg#>N3l!<0(<4KDMtCI(gaLHYzSpavTN9iif3Ai;pMpyMT zKcKwEuDVO?>M=##s27C`%Q|Wl-~H8toY9OlvuG|B4^J0DV8hD2N4dCR27u{4$TA?? z@%8A{!1($H1Kx6?jE|`(gLjE$mxPZ&#Y+KiIj-(}-BMrfsq)ewKeut74Cpj@8L(g2 zST7N_C2v9KjR(ttY}rcJ7j&6wIiSroiSOUdM!oT5N&IKoLkPYH6_!PEOGS|2`_u7c zNgZrEJGh-*ED653Kxy&gLutzaZbcP>6ki_f=WfJd7rX`?Ex4Y+lGZ8*&nc<@RDO%j)KfjwmfXWus)y?GdU$LFD~RzH&E;axKR_E0 zg;)iX5A`mWs9hoK+v&1k*R$}B9}asf3-1TQe(X!7m<4~)2S51Mr&7e186=BweG^m9 zU*eSO;3?z(gW;!=Z7z*4+b+oRnSv#%(}E^T!TTGg=7o=so11sxq@I{;blJ&&(>Jb{ z-o;jmOsMf+hmlY3$UnS;bQ1F=cknDlq$PK-lOj>H+zy_nNVMb*UZhC0HSD?4ZCB7N2EQMC^I zv(sk#^dx6oMiRG0dfU=_>-=&?ePj>JN~*X>PuqG=$L;2CIo;^VG_v}r&!Zitlfo{J z&yPAyA65!=R<*jy$mzC7uUqqbtrhCEwn(qrcCY)V$H%}VjaCc0baZHDe9G!;Ywk*W zd!EIKoI@rH^7g!yb#`{36F@zgxxn-OB3s+5GXI z7aOnp(X2)KtrzIG?zi^rDb0JoYLWi83iO|*xBC`aR=+#*IJa}`xA))qt@QFpt~X@? ze?AZRFZ(C{Ve|0R1zvahFVaEH?f@lA2K+h8`p0?rpX|4rN+h?=>@M_^zeU8pQ-@Gc z@ymib!}3%H6q;wJt&aa@uiZG1g43}G+?L_J6$tE?IOX(xqjh+6`fG-~P8~+xTaBPi zsnZ4p>1{?|nqMxfms*jHp#lHvoE+tB5Sl;e-dhj~khJ{B5MPeRP5x8{Mv=w}&RiCr zOY-BreSeR5NfNzft5Wu>yUX7-P?;;bZQ#KFZ1GW$`1h3`4stkOeOg4>v$+4v!Tq*k z>v$e%+3PK1;$1J|JkFd4quI4S$^JATGRI#g0rrOM%BDuE1yIbtun;6hQl|cx$4=Md zzCY?-2l|KEFraS+LuudP>+$Kq`B8(cWn&E|pVtyHIh(#|p03l@ zoqbo^&i=fHAdnml;p@DHonuG4&T)}(cCyCVnLEzTZwJSFu8#5hyvE0S?M|cRXw3z4 zQ9peLHJx4ovWipbyw&-|jvQxoqjNT@Zf;XpU>E%iHEgd|$?R9@t3WV;8${&NZaizy% z?N|9@nhP$a_vFG$yf!8j>8#10otA4jxC7?4LsKBt3@w1%R%{@q_?GO#ymoJo-lUsd z4lj~c`Z_~3g;tZu4@L0BQiHORz5=`b?j#PT-a7nM@h-;Wp%;wGtAK*JPNBjrbovDT z+<1L;yK9zXtPH7!_yfwI7jGKGfYQp-b&t`QO#>RgC(gA;F`kl6;>cTny1Jskfc}Dk zG2JNa5y;XL{8?cy`RUm{?N`h-Clznd9Y#SJdmMNrM0{lhtCKeLp^EZj8V7z4-^(5Q zAi=ikC3d%qi4cIwi0PCxCk>HNzjSq5@dN@j*$vdgeyAc0f$FRcy5Z1^$KLmmdyo~6 z!GGT;ZEppr?EMFD%m`Dwt$8oKwSE}U?^IJFG@Fi?kYA12*cEIMDhzv7`2hH$K9S(w^p+ef1K1~NJHv}}@#4|!sn)-ll276zg^8mk2a z!3@f`>VAv|Y)cXgAL<`-Bm-Cp_mT?0DiuajF_iecIT&^?y+3STsO>N>>>nTahevyF z{gcLT9c(tQqnh0j^8yGjfOzc8~1Ca2#Of{NAg%OLeUc}%OmUR2dGWQ!$-m!V)4l&QKD)x;p9;}Xx*DpRls zDX&vN$5i267;?>m>>Mi{VSFP+GJnTtw?U8W_3poGsPW540yX?^v6U3)T^Aru`Qct& z2(X6n5ZdyRtKKO+vcV*=74u+i&xHk0K%+>*`6{$GLk?vqa2Z2Wg2N?)79X7(TsBB0om_4tr>=MqWDCAmgS76 zu&=zD!+Or}sYSP8+`A%+g+yDg8wI-JcdqnsArfCovMywDr{s59T<;bDoHDWJ8Bv}v zC(`i}XiU28rR+8}qm7hYTe)qvoNcyq+tfuHw+WU%CR!^_b1Q#b?soOLc)HsGP5zie z6xEP|A@WLtz;aG>?wRo9j~r;!?E_RzlR$Wmu!C-a7t zZjl;OKNxgp!}z5oaY>l2HAgqyVc17>OW)7RD1h_j(xwo@D3UZ4bfeKcdB1n$a&)>k zd*G`qBUP8xOEOZk4R(E7um0SHoG2iJnu$!z}DXo-jGN%Y8Hz$LmgUyY2FksDWv(;nMblZU{)9i#fq#rwNj z=vLxMbAK+Ft+~h~7Y^_5TE);U6BFgBVN)AJ!`iLA`NMuT7vCmOZ~K8RT=yg_>~hVR z1vi|nd~{sX;0CmvBh^y#pu5dH`jIQV154>;>f+5pxv`xU?W)SbIJc{lwJ;0mH@fA?Sy#ZXD)8(9I$j zgwF9C0GdJKYA-H9Q5lubacBdnjb|B^8{|DpQsPBE?F(QR$ z(W~m+_jeyz(18wswDDwD6$O+0$Er_#u-~Qfet1uwtO|W1Rr~cTol*kT6_a>&BkFs_ zpbZc+pwC}d`G3$xFcM*zR5oHxbdchFNR(Mauy^{;vtatghl%$u`cd{NSs3AkQjKrc zG5-Iek1c_~tYIaEs*LzbeWyF2;Yhagj6Zj+iu~2T=?vnWSvU#G_cUI4;E#lqs zup(7<5wui;VtBc$7m7V*lqJtKMAD_ zH`p<$W}uYmIv>JVph4}U#NX=XCyU{|KmPFS8b$@z;8~(w^l|(z5gAMpa}uoH0@Qou9sScYFDgUXZN_z`m+&8>o9^%u4HUw zQ+g}|DqM9(eb_qIulhqA0Er(}*y|357v0_`e=zcT7x1& z^lb^R>UwL3#O$clCtYj0yyASV6A|#y4~E?@u#XC}^`z7C&re#7xBlT?^TXZ4qeU{q#S!qP`RMa#hX`(z8ieTDY@J} z!8q!J#gOo$@|7hVnz_q8UH4c60qJi*DtL%QzP^Q2BJGHMzFx!!TC`Bn;K8H)ly0QF zf)b6qBeQtgy$PmK5P9*H7^fGb9qfT%@h130XcT#r?O*gsVDSH$?E3+}n zC&1naY0(NYCDtjE*Z3|7wX4kNZalsQW<>&BgmFprTJc!Qm!&F^n4#>P9R}U$`~@)$ zW>H`-1?6#FcnzdhfQCl03UU{~+}KgEdrHxoyMNkyV%pl(EM57lvUcy~DqnZ{%2^U1 z(*fuUz;8StTWNrN3|~R!-w|!ZBE(5z(wO!?5|yS0CP7F4Nn+6FizMlKW`xL2)4G*b zjCHhc3M0W}%5cC_lHVmycz_aX!Q0-6gl@L(DQd>-f)OF~upt4gJOMcPmRKykyyH$+L&^iZucBE`_L z1s12A1hLI~Pm=0rkDeSh_}omHb#mzx5{&?+sANRlZ8?Gwrt$wJxrkyBhx|>XB2MVi zgrYE4?k^M7u>TB^crQ}8CE~pakx7F^Wub6$q(ma>=^#xmr6&RG1J^kQslobpOmD{r zdxJ3@9;(06b@e_(1Nj?D*S~}L8IDBgIUeU@Y#&FURPUZ2W|TMEMAg&7Lp)k~zRKbg z9bJe_2-<5rj`7J%I!&yQL85)eKX;Qhe2}4kK$c)ge4?q42YZ1&LuCPz&!$A7{Px5# z9-Mya$l2oc>%1W%KKh7+48sT*=?v16m?3K<19j95RQ9E^x|yXIQSayF_cNVl@Fy)m zo4TrkigFXg`^l*3J$WK$LY1(GE43KtNRo~xD`@zAFIIt!!FLS$19$mxQyO%xlxw1Q zt&*6M|M1q}KNQA+I>?%KSuo7SFLD8BDUvez^)F(?J%9bfs#b|b|Rn-65HN^nQVfJ8X3!V^9GKp$!5KMBI zs^oyt-z%?_jZ66n5aa{H{^197R|_8H2zQm>m#So-&O3*y3oA+cD}CIqI3?w! zkc~hAySf#fY)%7EuAZyfkT6<|!CB zmuZ#3g$uFG%8DS-53jsbjYK^1tbTPJ>aaBe3KcbD1#OF%yf^@Dh(&?`)|Ihk(FTw-K&eAsOA7(} zlJ-Y7Itdmi0@d%<=3c(5I*;~DEHhzxn>ZBP3H7` z(`qX=+wQo#lpdk9tDCxmnx^+exl2GK4TBNrb%}T?>>SY#r&kR9#9Vh84V}xM)=rv~ zhDqgg1FW$J26V-u&HyDX3pxe#*%KZCEGAPB{qwZa)?DUq=Aen&^H@m2!pcl?Snxbg zY6Z_3r?~;41Bf2myXW4rtC*OOjRi>Kf7_`xD{%1qdU6(XY;!8F% z$f|_O;?|wK5b7>_#;>ih6bWs6YvpX7$dS>7X$}t$tiHSHiW}NC^asp zZ@$B~$h8ZeNGk0IH+1+K%_bP8L1Ux?_2aX$HoXqn2(oZj7Dv6SfT%^9GD7AEA{7vm zah67YCa2DBHc9;4b6aGff|OMIChPOzD0C%)Ap+v8M3Zm?bNGoXQlI!I-JetaXFLgL z)PbGml3W&8;tgI;Y1?4B9^0`>kAKenB*Y}JKm|l}2M8~k_3*F34D;WFao8P(|LW4w zKYCzk6#`*I?-ckDsBD&aqYkzZpiOh{2zC*X$}(@FB|a6rKHcCa9~vhI&6BsnigeAq z=|y+r^jgDd|LC+0E$x$)wxk815_hLDOkQ_-jbV);x+A^OIQArdeeVm9N|Hd0XgKcn zvj&vH9O#5&QUh%@Kml!cOw1k*A1y-F$3f!|SX6WYOC#tGeHy0U>yCODgP|agCy{h_ zM8WhX>_Hzw7zrobf)lC6mpzrM7E;LN?O&Un{dfNU=}D*YTgN|d0~!U8bT1r=9+fu^ zau<;FaZ8H%G!E$AD{X<+b=+?318cT?_%HluT34MaTJ$d5ky}Xugmo!6jHM%HFHyY9$TJeN#ZY*Y=bm)sN0uvA**lZX}mG9R* zwDHdO_Z#i@t`-4q8b#knq_z+jfP(LJ>8u}=LhbZd^EX@SQ9Di;kcCdCdE7WX z@9+S!m11MHf+!6KUj#Q`Fvgd>9Eqq+nw}7G_QQUPOL0pkBeH|?1$2G`$#m9vr-yV% zz$*&I9~!^4fAw4V-r>RTyV|WbuJ`1X_itxKL4ez7NS7b-u&BsEFl{Vr0b?P-{8@(T zD7Pa^A5P{{pUm@oV>{CTFNeK!!Q=;eobPcE;J(o<+1}FDJJNd0>xKF!p2u!Gz$XU zyJECrZpYJ4sI8C;QvtG$6)2;OgaL*B&E zrYd8XB-M|vC;Ej5OK4dsE-AMMvXP3(7fK9cj^}u0JtO28x{~4~#(?K8>|j>Iw@0UM z_KqBFd9lB1?EmZ^H(FqN@1Jx^0I(?FEcKiX5+)7R&=0eI1FDJmzEL@RA@$tZ2m4sII9Q=nGS)C$+eR)Wn4gyT7T>f$G00=E(hVM0u_~E zitEGpR3d=&0PIWe`!(;Z)tv2Ydutry}Ne=|Dfb8?-GUiw!ST?cG_Ml6h zMvhl_vEE6M?m<>kV~M?R>sI^m^L9r83J3-YCl!%{~t zj`fzi++@v{x)>F7F~5`FWzD-BjxW0DCgJtOSzR0*rRpP5oeh)()vFrG!0&Af`r)x^RjF>>K@dvtV`nIJ41e{Nlg+HPK~?I>dy( z&vB5QAtlC9v6DFA6{cJ*%|;t_p%qYZ7ndS<3P`bPIr7C5IrfTc$B9~&OxeMB^bgc( zykw~QDF{g$ymK$k{ZMmR(^wQXc`lH#D#~4V)@aG>RRtExLE}AzC?tmqDl`Otn4uvS zz-x>Jf*AmFB1Wk7c16Ja8EoHg_2(Jw1E{3k;mLm1AkQJEyIN+h?6V zZrlW}H15yWnzcLDt`Bfx9{SB7RL2yaG_Sh~4< zpHeEj(>SG7K8WS+k}-Nxe*oI+{SOt%%?Z8d{2(^z!3)GfwrYjM8&(d}+E=a8n_@St92iJU?NOt`Pt z9rk3TN5WJKh_7tdo1uGRxbjOCSdWrwqk-C_?V%LXke93}qgO(gPGD}0qy)}asYns47Ft!NypxF4oGDm2!dWGU|CfokaYbGsBVn9>dz zu{hJ$V69ar7qLRpwWCUzrX3DgJD6*)a&1s;nnfkz9w5jZ9ZHdvUqec=uLX`zviIs- z$(^hQ@8XMxdDg_DyU%!YWbu6iPcov9)1fd@UV2_;P>iNITQ{x}Kco<-j=NO_J&C$I z#PB#}L|91)ZfrW76*ukeS#XvUTVPA-Kcr&w)IW|pNOP$u?Nt3`N zaambWbey#aU3HRf3o<^UYfbuNG8qV68m+c3UDAzLD`TP9^S8uJ-7%3cH`&!ipN>1aH~TWDW4Nv%ub9+_se zRX@&IS%|X2zG6xg`{kUrWaKWeVYD0=1=Tp5D3zW)otj+(Z)9a({&}Q*0c4S@Ohwg@ z4CTYE^Ey($6jJ6?xP5YgP;n&l(@RubovZJ@8r)ZBIIhTf4$@Cte39=AXb%?z@fC_z zy#9ZqU3oEz%Fu2%gL%be^Y^ehG~e%a8h+;#G^`S|bIB*0O7zrr`e?HgnyJvFjq5W>7VhHT$zoSn8h z0J#C?|4K~-zX($s6!pPu#MzV)P0aF3_in&)4DMp@x(n+2c-WW3+eG$3bDDrKLLTm# zQ_%5aSX011V6R8xYcTjHlVRB7>zbg+T%ompF{W+3f)~!vB}-s{Yc6peA_86?C>~7z z5qYp|@CgNIhe&jLpJ(ATF!1oYm)&rLK{o^jwpfnQ!>d71%yBmF(D!f~co?unB0^$~ z_hX5>)O8}+=BfKmSBjh!&*E0hrf`#7xq& zc6PSmzxA!1YE}HVM&GNo`tzNw+TUv1we9NjYVA4v4&QcawZD1QN5RJWH^ar|d4Ic_ zf#}PrH?RDE=s&!Qe0K2L#u4mOqbS&D_Ja{@e_=3v>Ah(mY;0}p4>9@?HIV)Bi@P48tC=ja{caC$$-Zg(=XkGkO=`i7jns&a(pp~sIKUT_SKgfAa<{8dcoyOic_q36956b*LWJnUn-dMXC{1r z3J4KEHwrFcr@0AUlHEZ3 zW(R!ObCjR(E1V{8=;%~eFSQtXp)}Y`#dYnAzAFnJ1NPcGKZ0!^*lh)*Te536-#6Q* zEr0*$=am&A4$`%pD#wOCG=w_!9dvys?aHh2aTvtEwu5(#fUJIZI_-Y>pmX}sdy455 zuZylAocgn!3Jwm$z!`DR7vZ_1<58@!Ri_GijmznHHnHoy;A&Klv;?ylI+De|Bu;rO z#-M$bZgJ|*XtJ!tjPO0OztgmVv>KDjI-csELwat?$Qy+;5#fpZ2q-4j6Opp|jH_Gg zCe^ZXH|tF)Eg!7kORySZ3h(WXT(C;t_sc?)Hh9h1uMy{zQj6b>q=C4`p^c{sSP_%2p@{@H0p$q8wPE*>i51cHmCl0t5I^oF0ognaDAOi* z-2&4ROhL%J@_@xF#0ogu^oj`1KmM`0Vu~juwm8rMarzRAS5|n1)JQ;KeZdS40fp6I z$#FAg2(Kmss8y?yy$HP@yb{%Z{o1Qx+AH|+R52J&i)j1`dKWLaBm!dNwHT;FI_w&^ zEG3-R3JhAaqaN^ABu!Xt3E-9z1;e1nD@LTxqctdUZz_O@7~Tk%a97k4<3kT^{HftT z6~hO?UGskWDOsJIW}Na$x`vC~y6$B(^?q2DzW0(Q-I&HmU+tsmy_1;)EV_(l*TFPR zl^IiIQ`D3rB~2A^al*xWe=7<>!9vLlIG9M|0B%&a*shc`H`ZIS)>e{N_hd7KN7j4R zGF)IC>O8ixv7r#eq4=3Irs?!K6Ud3Qw@O2m^#H^^Bd%JYtQ+@ehYHH)+f z*H<=7xoC)o*f8(^3Z`RvM@fJ9NN@2?j4Dh2A_%Vr8qb4RejeEwucd<{Z9gzLQ;z3F@6{H4F z(F%j{Z0cQni31S_F$kx4*#|#(!usLcNvc^@JTk_A)wmfwdo}g8FG5PAF%r*rs9Fqy z*Adnqj&F0SS1aV#382~IxW0PvTX7-G|pm=FVI2H3t-65pTTX1$(0`{lVjIGbQj#JJ~Q zcPCj1@#durmJI5N2QTUGvdW;V)nc^G$Oi>BnwL`etkpzEXJ;SG*|RfDY^K5*g`ZxK zg`D-`cj2)|1NgiRViACx%0lV2*G>_wHHmAGmY!I0_L*r`qFHTF>CDECX_#E%G+-w% z4}NcOnJW#THfH13sR|5^O;hug03L>;Pl%GY4)u0(XLXTD=^XoKZ*f|1c8;1SKkJhM zJ=qzZTnOpBLX9?F(-5I8{dZS>Oa_WY$zQumqI{7RV5OW=uK0JqA{F)y_Rczumbi6b z419o(p{tXp$-pkZ6#2--FUcyY@JST%-DI%wI=;g*V9ZgPWXeB0+Ix!&)_7%VHzdvx;5%=SmB^?=ag1Dr}9LbtEV9cR*%RyKVAUarfxcwuf z46<7(9m%KwQNtr&skzEn`&g-Mo75J4>4d;fMP|l)!=(5uH9GACS?wA`(yu*J4kXRl zaz+H8egXZQoF8k#Ghe(zg#-(ddHgFUtWHr{*@55DLGIP9(Aq!=1ck2@mg%DViVT~j z>hnai@e#lYc@5=c4df!I3v1*amh&i)^+tk>>VcXRlRS`pQSKEG8j12bM`%d-_t>HX zMQ2gj;l#-;L6iclH0|X}44C+$6u&G$@XJRh_1of;I{3BKqGX!tah2M~)ONR3FDV_P^BXok zpoXYmkmMGLK}{G{`OboTC%^@lX|*`}OGjZcMU*!GinU;J|CF@Dor`34&{<^s70GwU zRq77tk`i?fPgStRTn z9nAe8P3mZx-W|d*%DcN>>L?HckzldeNb6DCj&ncl@Z3K5=ch+rn$L-*Y{kW-AO=ez z&ZetrMW2<_29lmca}yChdVAoT_Sn`i#EMIKtoS^m6Xv{K@CQq zfb;{r6A*dhk#v4@e>cz~9FI1=H?vqCTATT|IAd25j}sFKdI@>P2{g1!E`k`>1IAN> zn7Rmupg79FK*tObQC$;5GD^zLNTf+K0U)I-j#=RCv+yRHxZ*S+I-B(IEWe-}bqgk! zU{q^=z6AX|6%39 zp-w_=SLENw*xyrb)FVl%=?2 zOG!16oNx(}?J`rY$#9>?7i*4#1|f$Khed4X>_xng7U)p+4ACLlnR=cKFw+z+`vG~U z{)gzMBf!qyCMw~Ql|SPlNO7$rLkrY8&R3GEblI$`l%HJ9C{r)8cO+{MP>&Lz!Hexd z{JlBf{}~eqGZQG1VccedI}>>x)o3|+XK%fI6&QPe%00UFT4-7_b=Pk+KWC3JKW9sr zpWL%BZE%@ZYFbT@rk+;xq)5>8H2l2%jUOYfHHvmT;blA-eK(lHe|Oz$rG0 zjFZdFi(7w)_W;sIn6@w%XP7FU^!|sI;w-F~572cShK-i&68xo|>k|BH`upUu*@I6Q z7I4R^(5xjN78G{K%3~Z6(}jQkg*~z|tmffU^l-b%c~W!_%gVs!+nQFuD7m&3l&Yd zRP0axtD94{?9a2Oc&fRJ#WZ!kNF=m%6(p5uQxzoL{}cAq{0TaHvIstQife1j?x zHs9Ey`c~nfac_>bq{R(oSxXLyoMkR)$%kws84Wx!nZ^{V=}RYqpF4+?6(s^=EBsgX zX#?3fey>e~gLul;%OqkysjLUA|2z$LC*n@0`~u@A!%}-h;Z}OVmhXXz#oNDlS#>#U84m zo;%bpTJpj&@TsKH*>x}_&6-IM!E-!TOx|JB5eIKI`A$))$e?K;N-65Aw`h_9JXIcE({$0$LSDR!vt+Jh{8VJ<>@DBOEK5N zG?l&dmchvWf>AV+4`Wi!B1{p7or$+IIpqp66J8A)LudGYYaH+qgQ28z1cg0QikS5@F!@Wml59hvL#c=;HyOSrOF==<@-kmi}CD@iYwAF7I+ z46I5qmtyN(3BB*VG{Y3xvOrc7oA}prtYuy7#V)a@AaPWy{4*ueVojtaSNdIIP(}B~ z4uKat1fB`s77?jFl!%Be5fNvIi1?d`h`6AL&{ltJuYR4#SSv-r6fueiG0T~i+nW4a z-0P73r*u3rUC0(pFNVgOyM%zRk<-eT?|U0%@#jerHXPzHXKG-M7V;tD`IV6@;jVQt z78A$>F(+c87a0Wyz$iQW^lmRdH70JTI!2N_f}SyyY7W+^GMOU6smq8(BUbj^XIj+A z4Lwxy^OrSNAB`7W)oO(X85F@9jL&fI-?nb#5ZTe-bwcQYtY!m^ctykQf1SeWC0-)M*htJD_jTHy~!6c zbH!Elit_?{#c|0uefQaz8*I++Kz`#ppJdlnyifPC;YrNNgx=PnCbq0)o{=`?8=k1G zpS?A-ZIos}YDy>UI0t2)ojl-%Wi%exAyrsS-9$foi<>~%p=IPB#oB#~TSc_}|A$xg zURs&Vb{%b!8%%t%5YDNT9E~|n#`4-qSBF?0T7r=zVF%7gHNBfI$L+$trzBuGtoq-P6ln3 zjC+MxQaGFDv81S`STfN~3bCc(^U88|;jeBMGb=5|V%9A@PkSaQ&*R3%p>x`+hF`9b zS95qXtj|64{uW!2xcUyva>^Nk=>0!-2aZuS+jv9Sf@D(kDaAfyhL^n3W$XKsMrZjK z<{i;Q1|7-oxr6`_n4+!iKX;B6a7@3-bxddaO0pNF^OPZj&<3R~r6UC>6?nsrYUz4$ zgiqvmQOpfZ7n6$2Wp<>yW6kn3&W}Dbn-;uFlkPsnk7oZlz3VMq-4_e42Nu9B6yGYC zbDe!&;tl=AYDyR_#;6azf-SCm&8r*u{4`-X&|GfS3_bkSf8S`e zo2Ms~j|;R<`4p48xLv*n)OtSD`u(8R@}bu52eq0HwF*$>9wYSKuLVW^<)5|?Qwr+i zg*TfCnC=ndEMU-1LXPXSlA0F78P@m`RM&Y^mUEl$GD`quD>tIe{j?fG)E84{WRrXA zG4sPo7Q61q?up(eC2>mKeas=8y!u%9dbPv$(NQTnUki7tT(ypf9O~AU84TT(pe_{4 z3#P(>lW_Z#bQwvI3nT{9jzq5~{^!V77Qfkg3%@BilQf>rol~!n+AfY-qmY(mKk}~fB#6Kx#IzkQ$?_< zfYs0F(hvKaUVE%ZGC&2`g<{o8q}Ik4T1C=LbS{yqD7JS2$b0S8s`YJta)nyI^#1T_ zn6$ID?fn}H;WzI`_^k>WE@$x6{yo)x`!DtTe_7R@8o$}~1SX9j$*p>2tG%~0Ngw>Poa}rU^Xg+^to&eBS)Dt@-oj=on-AiqUC98W)j@F z-H}6Jj7N?O_NPRhv68Y>H02a!-RA1H012h3)4Nc(*&LwH$s8|+22JRs4p^BwZYDTs zhgpD%`c?!OvNYLa3hOiI_T)R&$^^AlV~2OvCFSsiEWS>VsTn6v^iZm~HocFL|%KNp)~{OMK-_W zHNc5+DL1LfyH~0o0z!i-$YPQROXd~L08=B<4ghpYX;S9T;jiS))59+x&Os~cG>;qp zLG!);=J%DltL(UW;)9NK-dL&LZLgZV1o#tUN@W**)p#dGPh||BVF?cukM40UWGrzK z2e+1>4JKn9cGfXo7QGFlKxNyx2(G#};h3W3fKM=xZZ_gE^z}$~4bsL;~iqK81;!m%Zgrq^jG{_CFCQ(&NPV$&{(pUy5 zcKiQ?X<~1~HcW`dSi4F8yj)x(-Mv4ODFw>CoV0CbRo)6s?ZXDzjunO=xK1$26wepq z@z9I!#4ppkWu`nx#2yl(aiVXn^D+vQ;yZaMzVn*_1#NEcC0@<=187s4s(P)AdJnpU zJSadzB`F3J`E`wxvnX9H!?8#G(H1!9rEceI#Sht%&JNvk1MtZZo!((LJR&c76sBBw za#o7Z5A})Wgx+I9(1-X~BL8CkTPzrSDu2J6PRzU!S+BBOOmt5LPKW(vo`$=S-}lWK z`+XZ7*ULF6WGt>pBWv=GT~1CP;kVg!6~piJ=q6WUqGeS~0wPl@J$WHy(J4;ew?-c( zaBEBqi>0$DTiUHtHTefIInV5E7=!U8-m?EZ3viF{fdwfK4{j}VXMkNY`}DLuX69gU z`jrueseiec23>p`&Hw=Gf!4wtAo5O)6Gq1cL$)Z0$Kmyg`9wO>N;gPhqpzRY{Y8fxRv8E9D{$Hk=WH@KXnd#+vH z0D84=pqvuIKFe`vAF3EaVYVmPLN?Q>p7VX_j(usaLtX111Pfa71ff{pGC2NV|ILO< zzyONkjXdX$=y;g~oJSH457FsuO)wEip?mtkfIVZ+DIDkly>p1icSUJzc(c_?vK-mQ zwOG1_H|kHvlk7(>O+!p5b^0eI?u_Ry$JW(#IxwYYJI9V|b4i26*0gbh~09GH^F zMclRd=SO-f7_VXTxWvuuf0jk%6*)GLihO084%d|0MJH?4!Ki4GOK(^^!2LXuQkFQ- zWd*ACL3~AxVdLg(D%u~Gbl_Q2(&6e>n+3Xu)l0%?)YhlNma*7iz`##ncl^2urQN>x z-R!*RttTQYPJz~(=a#QNy-v_05v(KYZjvnV6YW~8dgB^pMgn9q1YNDRsUQ6$g+HJh zDMPT+T}a!|UD9ODd-gJKGBM~FjjvlDq*k0-Yx`h@n|BS(bKIHCY?OB^l4whs zeaxCYy)=JuODCc#?*^u=5tsLo_{3Eys)*zw>1)n~#r10T{k!DO21m18AeRH`9W5UY zW>31NoHSh7Smd=TGmcmaY3#qx!(Q7y?)IcIJB@2$_gTc3sReJZlAixe+@e znH8*gHpunxl%Q`UQePy3hxSLui!}NcnJAGWH$`UNzXdl!Jt>4#DpQoR>c)<`b|R)1 ziGSKsZo_Yxn!wCz^1zHHAWoc#OcqOG^1uWpX(Zx8NT8a)t~W5|F!`AbQ=W}P`hf9_ zt|Ot8bOLcQ`bo@qC9PgFBAS0DgW z@!x+HEj3Bwop?$$pQ-2crP}RiU8N2UMC;UdZIJ>+64TU}jHG1OG-HF2U6sF@n)Lk_ zer~Hdx9#~RpJNv>0|4jx7ARB?n#_iQc4J@>H-k#3Z<-H?ORqcWaz1RfrbP%Ag?Hnb zDBeXpZFLy0hgc+OBa#&@^-AZ8V;X7sc_2mNUez0;M~LoviR}FD7Fd9zIBJ~KkN4U? zm-1{GwZ)awX-sr>q+LA2`;y_eParx@9~_4dQUbYFj($9abDE@gD+nJC=!$fp*Gtbu zT7ff`tai&$`D|x{K``|xt7AF_^m2@MTn3juGPCRI*MdGr_BGCN!dabKe&SVG@^Uqk zSS}fsH4nO!bQ4txtZc&S;xDD$@mY|fSt21egzpvQ$MpZt-n+lGaU=`F`z!nv6YmoT zIf5X89j}Rf4hCWKgoZgH}vB7^si)X=Xit!y2JggvuK{R(2f) z94i-!kXXUaZo*~-*?NzK)2OobSxw!2x^j#1S zF^=&?9HCpPdO?T{&XfLRa79q!ly}(ZCK}9zM_??&Sw%Wlq~Jx0X_ex+0q2@SCMze- z*bIXuGI+>n#KG>I5_HJK9{p>oG&o-sLW;350%x5^@Vg9ZoF(z)Wt8C2mm?ixUwk!W zL_j7ORup8qy~ZO*pCp+i6%(KtOfeGpG_^uD6Od1scjP>hfu>CtREk$@Qd)Tx9PRIf zXGb_^``ZWm{|6%||7(HW*S_d0^Grpr%B@A!0Q*{1Nkm!z%(tcQnUo+T$`{)q{NYlN zXOXVGD>FE|i2Z9sA~r0XFmpI@(aj)2?vPA2?%%{?ICtcr;7PF`q`+1ne0n=;)CBcL zXO#iIs3;!pAFa4S+?Cme9{hcrrBvT*Pc_0k)Up#fNEm6T@y98x5#eTOAsZ35D4Za1 zYA4QzBY=)Ru9kr{Lt2oKSbbHKi-#iMn`{Xnt;>Q_#;a-`LAiRGmeQ^wkGO)L93u+ z1Xz(?MGc9bKJgy@f?kMt?#07>MJS)L1zr{*)-&5Yw?^IqcNy1CmU+iFp&9`^ZA?Dm zZy(b|EX%g@so2+wGuBCNksF}S?I^rXZ6{MXL581c-Hp`p@igF=?xt0+WZg1&y#?U) zYQU3js5R{YK4;Y0Cw=>ch@3n$0rQ5N2IGh}*mN+Rv6Br*I?fJYq?IQIa;6Fxho;g* z@psRem5;y_ZGJWA@GmMx+Xd_}!)&@{amtXUMxiF)=< zG^)#GFONwcNo0#6c|lv>mMM(Dix^myYKw;tQ?BrvbI=|8B2Kh(>SHxB5J$rNU|8=9 zE|TdOBmN`>8sMV#Od%8N7&NuJqTj4(mzNkfjfGv)teIyVgI99g_UtRzK|R}vazMTN z7NS6?jl|hE7T+?|j`44?VJsl{@4C?}F0ymnr+0!%k)^5%ai!$LKAN=$Su@D|3tPOzmT3cpu>E$*wJQDL;!-^ix`$htNUuPCC0-@Vgq#`_h%&4A>q#l=S*ZMIq)o9!Q4 zkD*>`W4+b-OR)YWka2(JFg-~S{N-v6du&O)s`7u+A57nMvio-R0QRLx8m;atTmG}) z<>~I~#_G;U?rS^K*=>SBPge$wpuOIDy4qfEw}RL4X*`NS00jr=Ifq7Uls3zMjVFWA z9M;NDuot1=7nu;RUKmBVRbBPdEC1JUkPPxA@ihN!Oez3=*98w)P*CSbj(V8rd8y?ECd-e`4xz)=Mpd0d-S6L;LCc*h zZg7Nw7keF|K-)_KtnqW_?=(g)0b~VZpzX&n(3ZEuU%O%V?4T1eMZG=B^3wu}%W{*l zZG3<3or1H@873xug^{p{OIlAV>z(fZpAORa$9gq2rQ5J5T0eRbkyG<}|JCad4)9A} z;BGCzw_SoS2G5l6T3%x2>LJ9|@-ivJ_M$~q>GknxkG?dQm(1n3{QH*K24It08n!V0 z237u~_d0C<9R9k$3%_ixufG(jVOvda)t0Af+h284R&7^8ZF{N$)Z7@5ZPmz)Z{$M< zvwMPtO@CSM?Bt;1fqB>gX@epMfu3w*&UF@v`?~;X|0LY&0y>ACBP4P6c&8JJPL4Xf zklG6vXiU`4D`rD*L(56qC96^h}Xrjn3HfacU<$yqmA4U1W9G~HO#4g~#&3^sDw44&HGPP)gvWBV&&xPJmW zb=&xegUNk7*zk0O%>`kfH~>7K4>lQu1sA3wd~>u9v$yGd-8(q`mH2}Z-iIm66Pmxe zgyyf3nk|Kg{k`pc&ykovJ0#|hHi^|Yi^Li?gPM96xsMKsb#sfB8i42X=}zwihbAB+ zQ%j+b%O3^QLFedI@Ac9WNK~tgWT8=^?UXCgAuAXgrG&i;8^Z4C5{Av{!cGN>%gKt} zZ}5W%8nE9x#g|i*eFEmKk%NT=r%Nj~XgD-LRa>GO;sjSD`m!jQM*>9th17uK$({_= zDMFn0cD4^Oae8t~VJ9d8dLNF`G5KhGck>nc5yW8*B$!Hi4(2mVfCfKo%ZX+}F z%o)WWFe=<=`so=qTCM!STE7u8H{#!0j5(f0{X~Heep>`qz){kTfBU0P{o6FS0^ke7 zYB{iIoWXbN-vx`qk}z5}tkzv%wH#RSgr6G*3&QH5DGaaJ;>m1I0)OR0gYFH-{q)1i zb)$(P?$I4<&>s!vBf9gxk{+e!x68t91pPChG{R|LqDQI!18^P&*Z4PH`g{<7{GfOp z0fsj#H_hNfGq`R9D=Rk*YPdozq3=e+u6(<4t1I79WwY+GX-2)kJk%JRj!b!Biy}uE zTRb_S8T2>Q}3tvTZG)fMLJsCzfMkQKJ;q_=}H*CNA@%@(h zwiuA3IC4+lZ<+dt5Bs)@y>8v!tZu$h(tQ2BjpjQaJhH{g(7iS&=kk#4hYrYgyBH=} z8pu^gLN-WClhg{CqU>tvmbN{mWRw)cilZoqK{kU;TX*ea#>y(qfed?cY56eE6y+aYps-GWXIw&ZXYTm z1AA^CUP1E<8C1L)MpxZA_F(T z^hSGy*vYMk@N$z}-n#8;Z81Qued~$UyU7Pe|Ft2s9SD`HBe%`f_dE6PkRHC2l`bxW zN8*>FtMCP0#eNCS$0OLz@zLJC6}QyG_61`%*?vim8L-AHOu8t9Ht=ap6upy&J7LG8 zElAC!y8l(>vRJDcsBbeY^;K5#s2*l*zh+{z9G16qH4kd(QCZBEevQUxS=gsv+o6_P zs|h@@TmMIa;ClT5zLRUn#4C4c7voGLpTXVKtpWwQ7 z`PzLsR;jJL2k_ZMN8HQiumVTHMLfcJjwiw9&yNs7oIS9ddQHD$i|A6IO;cawasAT#7&?#jWe?iY0XCvTo`!V)y8g?KTQZ{*6Gibj6% zww|xz!llOwUP%ECWw031S(iT+aCgGxAptf(P)|EI}Wm z7$bA1!DtgJQI1jk9ct3=FCGYQuwefJ4Vd`WEP%C*#zY{lGGNJYCWH(7m6I!BKp2=Q zbITT{D+O3H^-tn&&zF}R>IoCRO*~=2=h*YIzJ1ByG!T|#ygV2NQL0rv6Cz>)WaP&l0vP5A}p16NJSpNIAN z7k+XQ8;6Ooaw7W$r9A9k;7GrW0GsJ&5~fz9Fe2j^a4M6)oFl%a+-4qoU=8*|PoKuzG!LRUGA^{6^}! zv_gXa3R;+QMiLBHBB(bjTvy#xHT}MS=pLv5lal_ov&a>gr=b3!R0Qzb5C zx~{(Xl*G_4?c(te`#v8w%$3jSDSTj+_ow%(nXO#*C3=wzDnC!o#j||OO>Y?A%f^)R zCKYzBI*5DxMond)+!xiXNk;JLWjmb1Y~@DN;MI#dKL&w_ZZcT5ABf}J%KJS*1}jj!Q1FgfFDB=fi*E!uJGQk zKFU%TFrHbUPejJTop z9@u!Uql9c8EA|=3NHv^(Fb=nYorL(NY5#p|r3=Z%GWC)-e@{MXvk`I}+KMPkb`?wk z3je2wqHf5ULhiwHtZUpv^wyJtcV zeNM(9wq#Ri9kd&*3G=ZqT#*hcE}iVk_|;R{x`MDxfaU!P+mP^cFYDB)>FH5g1M7^G zjIMRM^;Ng}whhwdeb=OKA!ThdcX?mZ@L188So8pjX+N;<}Q0-Mqb%idAa-xFt zw^g5RLkcZy&C{rCp4>uld>0rzR1n08U;N#0s@{sKw@%etuBz!oc1V{%B>U^QkBR-u z-1ftp+?Iu3Z%cPM&(RyoY*@L%(*++Bco%D^FyBJ0;WVn^ zK10M4x7XcP;ZA5>d#O8TM-h@>;7~2)Cw$gAkSiB41-Jl9fzSypfCGy%rSk`M$NlS6VTc4WZmb8q1vPv!H6_>(@fP0F7&*3rD zfPd^0gg8Rj<>v80N_Ikk4+e(u#u*apf8z2M&ko+IhN`HmHgspV)YGs2)Yv5kp-a~xpjZl~J zvzM!0!rUq)XlCD^e70am6wBm$Vf1NhDGmjZ8 z58#aj;Ee=uodba8I8XmNh6sE));?D{KdNry27S$&prluddq1LlIpII%eqvG6EU00T zvFuoae{Gf5w#q2v0-YSpowqG*_ZrM$8BNo`&Lqa(Sg6n&AJeP&f(V>$xd)Qmal~lm zwWnEcgPkO-D}L9Xha$_B*0PsGdM(nimo(1MjVF*m{C-XQqiro4>Bb%JA=;2FhEmX) zl3vE_RG5h56|~q{1-ZX}Zqrz1yHPlqeoKszBCxa&Y{{=rL+zqOAIUshftDiTl5Cnc z3Rpm8KBAKPER}Pp=mz5MLBN19$ZNoS7$VhY;DS(f$%eoEwl2i5?HNa53mH1tl}(x# zOiQzj)uQItm|ixRg@kCExoEa!*VG(}F;*w{J1 zv|ls>W7(n6W^d26ViZ)-f=atAsER7dsAbauJzL<0vV{8gU1M{>Pd^#55IZDfit69y z>$4V5mMVs*tWsP;Rw>b$*96tDTij|`w{D4sbz23C;)@2`80Zz|CX2|cf&>1abIO1? zyVCxWR7|N2NGpNAFyvZrXq7{A%4IMN`WXipJ$)G@(PccHH0{P#Rrx&rz^FZ+klQHD zs|;Ox0sq3cbq@CCx^4((1pr>0{!<)R7O@(AnO7fbQ%6Q5KJa}scUEQ=EA++tAPkWU z`=j_0W^84%;ncrfpgxHTCFSWaqf~FPJV90JL%e1Ar-*dHLZew%=0o}*?ToUpk4e*PvcGTe{!yQr6+%!4)J^>~JF_>f5ifWjERVvP{>4BG~n8@2^;ec?gu?e6cAH<*McyaN?_ z7egkYIC~UTGr7maT>A_e$gA0~ynUoeMwWVfA{9mLR|=M&E3OfX!<)fF?IYy(k{yhq zJ_W(2?$W}@9dwA5Z!K)wlA|NI8?bC-?7wwH73_USX9ov{)4eI4s&h*jVuBwx<0b?1#k8(S5+EbUy2M|luVYXzy6Pv~ghCom`s3&wx-7lkK7Ab?Z69{f zC-l9>Oa(ul_3;rGzRNM1(??wYI0tJ8Od_P9qYPg|fB0Al3K_FQYC!sUR(L5(C(AVg zika8MAxlPOwhQ?gH)t%#F;Mio%}q9|xZEmr^`>S`ckfjxDi4ldt#rCw+|3XQCDeco zjR4VxRxe|<;m zn`%J*+Z3=9!(J1a#h^06G2j!BD>$l+BAfaVrj~u^4nk6`2*Pt(i^T*bumMQaE~cQn z3Pd}i>I3_o^#0MC?E|)XyS;HL4Mg^z9Fu#6qHSxq50q6#t*A%xOA${}%?R~`hHAZD zG+x4>VzAr%XfVR$Q&Wt|0`g9e93hy)mXyCpqNsqpHhqqc4?BlGnPytGwNRT+zPeZ| zA+dp(RHi&67MlQ&#!D5ffh6&>$B{@hUdFJxgIcsNTsNvO!K>nx?DK$E_1=E>v}9R- zx{3kHiqVqs;>O+1;qjY}zjZS(8Z`qUkM;8cXVcVDkhV@`)iZzy;AHUC>OXC;y1LqE z?WqyCD@rX!1tY84UOX8F!ooBmOA#%Z41?&A73#m4;qliXSPlM9luXIoG@GWePVJor zn0OMQ$dRnc7DBwBxs_6@>0J<;h_I1H?W5z)QBT$u<}AFry8zX4=r>Q9i*GcYewfel zGRIjzn#AR9Ote^u15-E%Wgya=z#{O$*-KZ*A56$Tf}!5OWoA{zG(=k<6#aq6seMqtSl_Q1a~C;mWsZ;~U|sPbYC84wOujl~q(`O0*eU#=e8n_fj#GvRvsg zryabMg+CUQT$Rj}z;1dSeR*ceueiGV*%w-x!)SE>JhB_nT>#0~58|0+jYx5}d@o`S zkE&_#jo36lW0zYl+JNeu@@C2O5~P0R-9h<1KKs7H)O=+HYQh0#t1c!C#zRIxJZm4U zT^pcQ0+xb;!?w*^dnzmMkhzS5M|?XE*k|$Cw>KQ5WGQ&S{(<;KzBPCT_2gRs{9T{9 zxQTX*Xc_!2Am``U9N)A_;`iZ^bA7W3&<}dw#%TR7O&+a_RkTca2JIPZHlU|3WxEGibNr9w@iu!4v8#+^liX$+A16Gn0(P-Mu;WZGC2#g1X8A`PgR zQDr_WQnUUnwu4$bU^*WR@B+bzqkwvj^NHDLT|`a07|lT?vPnhxaHTqyM0kH)Xf04T z+#U_6Nd`>ePgBDlg~lsUdjYdBA@OH1N7PU_lxk67jga*Utp3{fO-}pw-<$iboO%9w zzZMK(Ym&V6!oQJ{j;*yKT$W@PlypP9qcjcpBH-Jhlz-GtetghWY~57cY>*l@-ebQ& zFiukBk@Nq?Iww6GNNn7p8OpCpnjNRX_Q^i^J@v`CNEn!CHN$@gASjdDV1@ziQrOFc zbtpoSF`v+uNRYp4AV#P*3Y9dZ z5*96^+u%GJP-0o&M}otGhmu(a(^(3EO?PG!BtWGTLOasGXxVOCvy_NCU%Z6hgq3K*jf4N~{!|uqo99-nW-u5X)Bx z6y@j&FBrpL#stAANoDc-U5xS}k}6`67e-Jbr`^wv{oe(ikpX+^2mR-y zMIujx$mDUanW7O%&i{@n_{=-@C z9XzohsVIl`vkNFs;&mKKd6iamm3DQNjp{0!)m0u>S9wxh<;S8bNi|)PYPuxVbV;h| zl2p?rsisR(O_!vaE_ zqN>aF_GZ|6+a9 zdwZvy-pWNI_`l0bE8M`jI#MU2W^jSYpDjq8Za3UNk|)@`{m#K|9hk^x<21g(5KD;# z-I^P;pmXV#b1d#a4~uqcfb$Kd`!;;Jivv3DE({su(=a5Dx3sK-U&7tJw|4+OytpX_ z+q)astO6`z`*Qnqf9Ed5Alqmu#&-gpRf66>+&?|-?A`%qQwj*k$^^}e@iI~-XtcIs zdZb}=9Xx{ns0V_wKv-tTnvTCVwlp-TFW2`XAgM|4h+EQ?<$RLTD{S&)oD_7ym&yg5 z6r)9=CoM!yd9r!2q{b3ehGewh7v$n~zBL9^4ogrvzs095)hG?7lQc6f1LC3Cy>m(6 z7IDV&aztoEHPBfq!)9qw>MfO`xZrFnD`Ea^8egqIW&P|!*Y-U6Q1un?`E1ySzGHJu z73U_3Q}zzQ`-;DU>JVR`G0`@(;{IsZf3^L8e15Yw_#!sua{K?rlOH#pu>JqX_12FY z@V(W3@_6$<_W!T(^F{6dlfh^{i~`JmhwGlN%-6177)7|U;wgU9A0M!0Lygw19=HWb zbeVcSkEY(ws2BNw++;WS+1~WT4Ay@Kk@K%sGg$4Mbh?N1SGy^ntN>~Pc8 zlcu_Zk+u0Q?7n`vO|CWjbN*^rtpo`cImdiEcH2zN*L0xR#ZSU`ix_8o(eYu zac*RP7vUsj5}*Q}|5ij4ODt-b7ir&ua{i9dm>CWrUAu?ik+}(e*f3z*VXHA%+X)1iB%*$r>NP4q} zS2?30y@i6kHh@+u-_D!g&Ktp1)E{CX!yxO&Bl<~-R8fG4)i~Uhy*@C(md@|T zv-#`xevhZ~>~yKMzOG8oI4sKH=@NckHx?D5iYyn7P=-3b6sDt>bYR%+ya`|b8upIE z?cME@UZ=Z4nuFC&j-T{~IcU-HgL$_7)Q>ajTDV)1CL!+}RWuDT)Zm5YSBwBdgXFw9 zaAx-TJ-~!QuS6@5pb;h{TX~MN8Qlz`Xo%OnH}QBrhL6LB^b!`mHA_3QJzoq@cAJ*y zC?W^jAfGh59FEVhx2c)gQcjkdFh4odqs3Dg_Ot02&QT*Y>Q30jhg8S4VVvUgE_4=Y zf~LORJ3fSSTDNns{kF3!g9tefex{S}ctYqwvZh<4e9)#B`dNnVfIZ|jHE@4mk0pU; zEEL*shHBx2^I%FG%r%-sAAum3W*p1U!;+o%M7J)UQn`#)1 z`nTacUCAvnesNJt1En2gUUw1Py3 z97YZFq~MW%)2fn!%n0=FEw`i=MNU~Z(j+QD{!lmW4~H>2A@)ZcD-6??D)F9svsR!r zMCgoq=M9In2H^|44<|!7(qYU$!NP%HVG0iHz|HU{S>sG1iwkTZ8?o`QKC*nF9pu%{LC0*bPqHi z!#QWp-n0A^9i^43Al{DuGh!E{rMx_WTBLIMr45A;5l-#}r9sO@*|XZUt8}ie-p_f} zink0_Er*{eh+p|$%8sJU&UEb{1@N79CvC3b%wJ+cbr5CzLc2Vv923w62>Asyubjqn zeSv40*+pH?RB1XP7pZG{O@ag8VxLuM`nTiRJlSDhX=;M&-yda{>ClXo{UA_^j_C7t94j;D+B zEAF(OdpKAG!1hhXmfjE_s=gT1d*TJL;>1kL7c_V;cRLweCDX|iFw?(fk@lV+hi~#wzNFm7ZNG6=r;PzwC*d5Ogr39G zZKynp48#cg2OQG(vdEoC{AI}Fdw6AJ%UV`A4w8>yG@fO*J}bSQ91NBH=kj(GJXzMR2Cz@|pYEtxe3v%1#1q?MGD;Ifv{IC+5=-_I4hD z9wVcyk8Zj0TCjbA=C$mK0-^T@A4KoejF#2BKca_#&|p=Znt(CY>BS^P1wXPukBvq$ z%Z1Ur85kxcG3rUp9VhdwqONRp6fm37anY0yZ6JMXH$(8}cN1x_6Y8U+gt=F4$*aC$5Bi?(UUNaa@ z12mMZuF6i@x|2~q&2&%0IjTHxbodmQXO<>3#Q1{dF%r5P#upb6Jr|`Y8M;GY25!OK z;tt8_O>jd|hA!Ew6;ezuII&&{D#to2h=8mFp+vxYim~jrehW!%`(ay#Fg&%S6@>nN zAqr7ZK?T!lfgiWD$prbupxiglHKxk&$@R#d#apcWleHj+Tf5TC)epvTN{Sb+c%DYl z-O9H&@*;xlhBNgse_tUlDrCUwJl;)Xg7q+)fxeswj6rBEMv?4$qui#SP;l!G8QD`W zj>~>L39Qk{A(xF(55`2@7?C>|Woi2)ENupJJf|k5`-bE)#JMt#ckyoVSzIk=Qk(Nk zZT=e-3I{h7vYPqrI8E39Ktt?LQrvT7La)JehT@-O;ddzmP_5D2m8E*c2GS=r0G+*zblkuKR7l<*M_A}A-J0`=MG_O9H7%@ zJUXA=D1!0m;-LtN`nwvHb;Ob)MSii6wQX0Pt7ml--4OW@4Wn(&NQ*&MWc^Jm`(f3s zk-IcBem*;#d>{V1dvhs`wH$f!Ji@R5@q}3((8MqX6Vw@^n`ki4P_Z=`aX5{LM_H-y za%Ck$UVsKP{gkRm0MjJCjDbGV)C$c+v;;#_xx+*(G!6A8!E4_&%^uRstG>10OKruw z)gtdI(}-WTk!nuyIA;B%K(1LQAdcN3jq@^Juv4TG2dfbu?1e|i-NWqzOe$z4NHnW- zJA2{I!ST+|;lc4~&y#7dg$hA- z!}<_iAP#H6+o}`Um?*Ka=y^ne_1{?rzx?_V8qH*w=!fy{uw#3I5GPdasgnxSUCmy{v|A z5AXG?f(9~zPr-_ihfF+Bp2NIz3OU*fKFg3GiF5L1pIwNROI6D_9)e;N z&aPwjYmAIz;=5eC_rZTHi+zn!O1|7a?Qq_>&Ji-Yv~xOzVi{~HVZAd?@B}crZR!&v zN@BdyRy*C4u7^N)qp^O}zs1+k2o5g;&>BvVkX*xH$~hchC{Q=~5JVFYz)@3Na(yC& zfv@W1>up%YDG2J|Q!*7NT3I5FvZ!9%&LVu{AdA-ICPRI}=J6p)CUD+kA2|Xd;?blC z2x}q*2_kG0P$wS9bD286a+JC0h1xxmXw=7(xN5;6c5ts^;B=7)TULB=OO^O5Y%935<7gQ7>DUfks#`pf-Hhf(Y<6fe=-m(` zv=el1IG0+2@qE^Tm-9?sfPRW6L)f%uQ4&vwObRvuAVT?}w;8GoEz~*vp&#W#v z2N`=l0o+p3s{jo19fF=x??55%fh6>GeP6^a~p_FrHtikvr-2w%V2FXWxwi0G# zk8@Z~b{AchJ`#7Omc^kNScYn4{N)f4rX3Ko_fUGrMa|?(Mh|$km%#pDcPgB<%zEGO z`Ih;Q&<8?LQ~cwdQT4sJB=X(n+O(nDT%Jm7Bcfm!JJ$Mp%I0`+LEbnxV4o$>kHs2R z*Da=&Q4#4#+iyq zD8@1wDGHN+R(R(R2jpo*Xv^7taQilCieVqJQwwNMRjl9+4a%W__6y%UhBwhR)3u8 zk>58h{X=D5TtE>qRRXDFi~H~g__TjU?@~Egu9Rhw0%XPy z2EU;Qq2ro@D|o(IO%Nn9oZCr%p%7_V5>jk$XoV!>*_HQ!YJRPaNADB3Yw&CtdX}WC zyL;fk4h7Er5iT>mE6^E4$_rY7Ut?6#z$wU2SlZS=Eq9*PR{>Q3RmZX@Wp}vqdi&^A zM?oxeZ>a-#`xF!0;DrZ8H^^b?`b5-$>FzeqEZvr37fb$&Q?XO%1MNkejLFnQ;VYzS zt7?IC{jSU?`5m4_$Ng+gbqBjPd_p@@Bt0eQSSc=_g6n<~Q*xnfD%w@kP0CVV3)b+BWQ{&CB)WX0_N9Zm_?S?sSg6LcAOPLQV=mzu7dN zP@v}h!xN#ZBlC#Q{HWk_j*2C5ydAZqPH15L{-57Ze~CBd z5qKky!`|7^PT1>i?{rogHfFn>muIke9|SL6JZKb;jU}f&y4~&@Lb|*CD?6K34AM6+ zDbrzSfiXHB7@m-%NtzQBn?ntFtO_Md4(E{YAuOp*d3H5T3qUJ-{6esQ-R>TNdRGHJ zURDjF#d|n9?(Oe%YILCXwS~arc3uPc@ceRd*n;`Iz@3;dV)Z#8VgB>;zvxHr{~QtJ zOY~8`|37JMJYIL=|7<}0|Lp%?b1F zg5yN_!xC~lp_)srw$sbYvxA?Z?BE!mF`n&F1_A(5fXdr&uiNQ_z1Q8&>FZo)vRbcp zweD$AC4{kk+G9Z5c=T985*Fh1@~nH>qbh$ztCqJoco96=1eJ*bIR+14yCN{p{J=P2 z(@)Q#4QyCqm-6?Iq~}N-2gk=JOPhAB(>I->nom90+Erv|lVTtZyEpNe6YZenq7?Sf z)hImZ94(b}1H;4E4+}vmMyZro7umq1_Y@ys!g={=zNqy?l(nAZ z3pd)LFvr6f=lSJsh&+zYo=fnzU7_`}Rc@{|uF$qCU<7Bo!lqpTLpQsDSwSS2ReYGa zp;4)P(^^z%`KwTvYEh-_uR;;3MU{2smyf&}Au( z?oytBs_>Aki|aQV=ojp?YvkJy83>>&re&cYAh+`XBw7%_&4NM+@WKMf?R)??CBUZz zg#`dN3jpqQfzmIrjl15k^t9JK0kQJxg!*i4l+`%&QN{p}4{!@;wL7BoCqDYf!XJHO zm4zNc^ty1!MlVpT(fV7y!t3LGZr%2Ajw;MC?{0Xkuxfkgb*#{8dua8ld(4T+h?=hW zvTI0c+S6!2@XRHa?(M&YnMM>gJVV18ot+~t_bsVowWd6+kJXyW>{LnmSgC%11A? zsPYgC7uB&^RUQf+t5ua-1ILA{>R2r+4>KLBW#xfbw5(20;1=P?g%Y9-QZ)3f)R(XK zdFlIBDwX=B6F2liJdhAQSW;;b#DjhRf_}NH2JT@XQR=0oZ0Qxt%+Wqt!XC2Dg^%-v zowvQt5x4b-kUgW2d`wB1Dg8hzA=7n_S%Tt*_px8jX+UxISsqJ}r=m zs)CXa7kLT65b{yK5xbsu!<1$D=~k^8o)()u?`|o}3ZQKkK-&Nf)i=%DNESZM7m}o) z!YBE{-sv%y{ph1d8?>a9qp}$3+ZrtY*T)5wJm=c6NB{@k|qJY6T+GEY67ztF3R4#S+OV^@1&sNIgSz zcrZN`DyfH0PkjohY~$&rSbX(Nspw(d?!H%iQPH+vc=1~KyI4rAR=#u>&YQghW^K>> ziefJ*WmDe-9iE;RG9i{Jl3h6Kg&O+#T1pF7M>}Za@i;s?;sfg0fm6I;7PoW7n{Kg> z3Ve!Y=J5^+CvN9(mj>0cM#OGWUUs7f`4-5Co(2*N1c+4xGIW#U;t~Ajc4U6B$K&bh z6j_vaoY(t%J(POOI@$;3eHpbga;ingAUO-PvVf2~+o!#z^Z5|^^A^199&hjZ3Meet z{w{~9b~@j1I|tcybbQol8h_(y)%knV{2LF(-8Y?GAN)-hK5TDiM?W7O|9aFkKEXNG z{1em`^Uu?r-iZhJG>84Mi~g~Tzx=QX)xw?Av%`D=e)aU0%_nweAXlxv@NZP}_m52c zsn(lUU8@=;O_fP`)RVb%77YUO8b6<7Pz~Xra{UrEJ)h78Q{vxj!I?tjc^wTK2_7EpHX0jZ^vLzz0Zjc-D zbVLlvpaF+)oJNDPFZy0wQ}4JfHo`E6fYrq?98PDjS~mx&Gx}M05rydh z5E_O_KTKk~e4J8)--GO?n14s@jZL~Sw%d~Q5%_7ARNSb-#iVI?)laYNdVn&Auq)zm zW4_GkP-u82fO#Ptj)lwGFuXY5a*H#YPi%(rb$UKzH@M24&xc~_hv9rUTX%bgc^J*d z;UF2zU{e@v&T{?#9wav`4t^Ioa_F(<(8*X9O|s-R(9dY(EfdB`pI>-0oEb@ztORG` zG3b`@iGqBZA2_R(7p%%3WdQ|d9;7f*+0ZE2EGn56H=4SweB-l|Z`tUyJwOHTmcgWF zs0itLI_hWWxlieE9>voTUFI;Khx3MLM)RMM1M4I4$N6Z>o~UR%!D6>JRN=>9|2>CoaC#BE+)XKF zlz5}lCvR@}P41oYEjIxY&1A$?`C5cvH!Y7$1SDREV-F@k@y=LB$Hh#C5kG1oabY~T z*Du!a?Gp&_cruJ`5N|94&&D9_Gf4Yjuhd;iYOhw3P+G1H{pt#xc zm00%%$1YvMIl=(@E5BBZ^HMysa^S?qi+_FuBz{jhwoJq?ndvD4}Pr2ysnvHdj7!V!r+}nX#6NNs`jXK>hIIV|EqHL-hoA zMiUAV!%Idd1VvvA9S1R?HO#@(Wu$nll8TV?_`;0C62qb;jG;P58)hm0j4L9Sa=j*n zcb$%|RrDlWz0-sotdl7;8CxSafxV+?FTPX9$G-0^see8nePI6*N8*Ph0hg>}hdYbU=R;veB1;PAHg`~Xbf8gI}*6=T4ydu8SA{qmcaP%zN zTsVUP2}7Vqe;^)V3E8~=!!cl-UC}FC_;4FY88jR92N>f|q&b+Vh@eWvL6vu__@%a~ zOC|Ez!PRXV()kz%)qTqc?cKv|I_=`)9PGhLNG3F*e_|4rN8^85+)etIqtqasf!)Qn zMNhQlgPLf#RUjLHhOEmOkyK?HLWxrcp|W%Vv&Q)f#Rkt$`{{4q5Ev2=7^8adcLhQS z9YadFsC09v7=p^xL9@H)?QHQ_&anz8Ib-G&C9-hp`{xt1fQ*EeZ!Uy*vMgTI_HF`n zyhc`9;|Dyn+lk<<#%>o3`lAttb;CzUBKstcV~#llwomp0^x3AWDh@Wr7MYE7pdnz& zK3P?0As`@bO}k@x^dg=6gOmn2xMdE_!{Oh=3fCHm4hKX*z2INo=OQ~kZ#G>frDUR| zfC$Yqx<${y;Aon`hQQ=W*~FyK2B1h9e&<$3mSqmfSV5UJ{fvsUGuYFJst@k%6c7>L zP{aBQaES>m0QU3fx<3&|J8RB?OPcCY9Ri7NVippk>2!wbS1O;uyV!9=CN&Zangj@= zlE;+m-!?hd3UAk9qHkYumo>-zTVjSt4NS^8B4e{^XcJ?$5fG^)^i2I67xVy> za`}LDLcwxr1wmiP6?l$H;+YY83Rgwp>XFMWWsG4BKBExAtHBg{NBMOL9Dv*9V3Nt; z!o6t*p!8Yb5-`f-%X``{(bsFQi>ba*AFzi*p|IsEGejRhu8Jd?NEvoMtm>1i^BZM@ z`A6&_8=Mct|8=XiVYb?v4(vS;9%eQ1AK+aUup6-Q!su zVQ4&!$9iayo*(~GQ(A@dTThcPalJ*13 zR8TKbsGYig#+7 zblUz3=P+bu>R1ds!N=~;=!1?wj6OrBzlJ;82jR(S=WO>ld`*|8Kd92zo>G+wPo}ae z0;77{7jrPCj5QPx6cpZFn$ybub<+ zQtD@*4w)T)$d{j*p0CO5r^Qo_{HCCf)oFVkwDe%NB>?82G`w;NZaY7pUdE+%3GrphIMT z^r?TF(!GGZ!}ui5=Q^%12Iz(Dfb_&gZ#8(;=B@}9yVYpg`0();FyL@%-a8&W{5>aK z(U-o-utXbzR1+D48;5MY&yp9w3z=$uhBvS@>J0!f7v0zGV`U7ysDs{ za~B(d*o1WCl-%-g0q_D5jJrpHdo!E`aRJlEF#4uyR&(OsBSqILs`kikXzAv zwesh_vB+*A-c<>x%4aTvzm}t}85OTuc`WiqbDr9VBsa ztuWFsO;b4OW3(7!9=R1wKbCCSEp<9RO3)^os`-qEH;$8yj4(b)vg*5=ybc7G+cWbTi@HtE11UNwAyq^?Y2+ZcbLNysYT85NP6Sa zrSI*8BQv{^jC3umf+8uD`LbnL`*!2FnRGPlL4&od(aXMF~S#hQQDH3`ORmZcuzGtNyp(s(NOFX-! z!c32Mg37wZICI~O&$tgqSDRW`Xr{kW47g&>jLU@d1WL+0C82`V4!sJ>F|)xi8cgk)j@yjU1E>3B?aY&#w6( z-hpBO@s7s}#2t_tkF&ZB3Ie&d@+djTSVbldMow+mIrwNOe4l#4Kzk9vkwF9yr*s@5#e!g;t~AE$kZmyCjicdmE998x@Oi%=Ze5U8+CZ(JoVTn`#4KiitJ4} zl(B^(0cH~sbLP!eCk!-ZzZMBS?duJ_1f0k%a#vC^HXdSD4GjJ6eN9YiiiS*ks%!O4 zmaY7Jh?G-y&FQS9qMl_~s=)i`2U8l7m; zkgt0k>UxgCScVOn%hroon0Nf@??9bBsm`K(1VO!CXc*VgU_toOwpYJ{FulGHLYbn0 z+@k3g9+lfNDTes+gX8&xuB&pAUeTE(XsATvcKB2nI+MTC)UD? z36zx(C^HCDIRiK7A(`jYy6_DnZoO_6guej(nnmjZueH*w4h$Bp-ANgXW`7imI%obz zN(yR!SUU2gWk^}uH>ohVHswjFP-(E0ktn11<)M5u;cX>;ftKd85jjP8ZmohKX-FI^ zfY1tq!Q;QVc^}Tl<6B0JIup}AoDDzVA;y{sb1CGx0Vln%x*19$4JTGTJX+g(HjVV- zjFnY5V~9JO6}>6RLPs-IIwO}}j>^+Ry9^abFVM?TXe%c0fe%0>y(M?)jko?9&_CW8 z`bQ02tw;n;PZNQar-@Pu3Xes$j)wb|Z+As7W-ol59bP8>G~J#P0;v7jG>NbYwXRa~ zE0T#~OYK=aO`4P(l zMh$;}W>rq|)9e>RMcaz zg>@Z7+5&T^Ta9(wz`9n0jYXhuxX|6S96RC8@!{d|kwujCo7Vb|F7do|6=4b*^o|ZR zsb6)Du=>j1n!$Rbtge7sv;NLOHwWCVy?=NT_I3_U!WhhjaxrkS)6(kg zvA?%`6T7d+9szcGdKR``?)P$RUN)x%jjEXe8&Y)X(9`8z8`kR<+QEs=vzS}!t$MW$ z8RuysHn2KdQm%USu7pkK{UfHT+jWQV(p?ON)zuhY`gR&@wzt1`93H>vboUO9fAvid za;y)%qK0{X&+nqI&Wr{a@J*^ucmmlguDrW{%C%KxcfYbAo6434DsKCE4X(Yt{j##M z0Xe4%9qpX%yKvn+V7C8w2(%<@39AUg5JCQP_U`#MAodm;oFR=DEa= z502dySJnNfR&^F=pEXvdPb|>+ug%${U`8SuhTWEAHPP` z)s4W9-mP>eBME^Nz==M_w!|Ou58!~~?%&m)sN(Ijj>pBQ-U$Ar52#NOw;11YJCJN# zRG`&<(P>wgb$X}jce#e>k5>mTs|46;Af*QJ1`BVILoU*7XCsl4lhChYBcWk{z{UssnP+qiz~oNcwlC`B)xvuexJt+;rZ~w@9|J|!vMLnARbzvvAKzo2oHuB#S_`44lYDnG)(&t z;%x95Bce=9ueLp-1t2C$@|iPyhpCGMcJ$mgPD`j|#C4A@-?{Say#ZgsRq#pS7%BTVZhUUYO zxK&j}(hV@Ym;{4!_^)*LgFjr4zsWRzBe z>nHuOeP1!SifBu)?mNq!T2-52gmJHj)omU0ljtLI?4r%YgP~%c(pQ0%E7`qAL(krG z<1V#=0(8s6LAJwDu@`dwKB-ol+{KVEJOAfm$hiN>#%qHw(?{w3Piy^gtG$W$Kbz|t zk2l&s{`i;mR{QaK`#<+TU*qR9?tj|rRrf#gN{8H-Kypq8<<~k+!EkWy`8t|jrk>Bh zzIZWI_S7vKhZuiOdE=CNr7i!AXR zd=i6IIgX5mu6#1^`3wGIp%knPIflN`0^oBr8VvM7?j{Wi>p|U!Sjg&HAEDF0nyXj{yYU)shDR(wl{+E+R1|#WT1kdGR|4n$(-G76Rb$iF*$sXdg z`T{jb_%EP0OX6!*qA8^wM_&yv1TbVkn_>6?VQOz+Tm z1BcaT7ppG>iPk3Pup{>`KraH78M}ZEt&X;G_06iS;Cme-xwnG{68KU9Aie6(q68I+ zix~CZB1nj9Z+rjX7ubRKdn*r3Fb)hn2sf&F!gv|(_>(Ctljp(F*#SPYE$S^Bs2+-{ zut!t@9?%}C#t68D+)|g@6$aDsm{XoS=V(_2ygr}&TXDN}+#b6V^~nA^U!SP;Nc?h# zC4kk7r{P7g&M$sHT_H9rE3(Ju0Z;$le)qI^{>7_t!7AO(;qjYJQRQYJU^jyayGbwc z8$fgcll{`y-|+=ZEwF z7ZA%~#T?CCnWB$9g*5aDt7>|BS{X0O?NTqT?J7ki_sK}2P1QEx5oHy{Ucp}!bO5ar zO2pxVKm>CgC6o+jjBkJ2*?2{}Op1?G)r{By^Ktm=c9%p_?=bA5bUNMHKIkmr!C`%! zLn)5~$~`g1WJI99y_|uzAwhBxd_6p$acnZ7uB@y`L>qSZ7*w#R+sYUV?r^hlTS8a; z1)`EUQ0N8vQvKfRKqZEa7143gb=`miLFLW`Hb46G5?qQAQX^@xdRtgsQ;O;dm3M_4W?=?tv2@<8_LmiX$})CA^q$ z4Z;b&tiG7sL5~v+*;@rI)HzEzc{6H{=+bY6sW2zDv!RFw;k6>Z5x2i*@~%NQonq(HAW>ZUWO4p?9`pIFa| zUFp-s$M92xM`~T}jDuszU=oA=@E>!0fdwZ|%|X4_l*nZN=oMX=zwS^lrV0quRSAS} zZ|Afqh)ji=x9l$n)2N>e3Z1u&w@hkfIso9@`DHX-&!+5ZtNal;sA@Z3To0D#kGvAB}aP$+@HiRZcnoUC%!2R(|pC03~xczo)5uK4*(G z2?znC_?C`G@2~u2_5`6iN_weN+8XcwNbD*he)@Ww3>e+xz5Rm@c?9hDdYxU`Nw+kB zag?V0ON8-29|ma;CKHc*Jo%tBaFhpA+$}y6Q}ltT!t{L3DI%b^J0U!a`X7j@!HZ>D z^$W}8I}P%rv;A|)OdwV~3E6ZSjQYuCwD5R-svb(~3nM=U2~UZ0F!mhAqi&((S%J#IQXqTCmI`<-1s`=H1h&p96*f-Vsl@XX>H5q{@v5dHJ7w6SnfeKfDK~MaVk+ z`Rg}~`s@DDdzta*_^@-BC%Z>c3|wWBL$kw4buhbKdFZxRGp?7jd{68<%vv&_VcO$Q zJ6+7$ynj&7h*oSsD_uk!C3ittIE+U3Eern~@{QT2h6wwDi&b^}g%&Mtj};3ykJRdm z1hWK0lYt0zbrBVlh&S*_8`dLy0lDbfK)S)-(z5P0q6UXN}{(b@rz=Iu?QU zK9ca*c~$-Trls z*TzSjins0t>$xB;9+b8UbuFYWifqG#DEFdMg->s1%P>$VBG83L2`1(}-2EX#-U;RS z)UcLJrW0iuUBFgi?-ROlD*O*qZ@tp}r1nn09r%=jZ-N6Ru?wxa zq7Ym47NM`My%2FF-p9gPkoGmTB*ETy;1*()!MHy$@ZUMyJ|YD^-0dEp)Ki#Dq_KUG zEpl=hrIarkx`dAl8)i(jKVhb`PZR;uHx0jbJG=KX2@arw)e4n9ZzM2@I2IZZ5GunY z#&V-uoNW+iLVV}=sMmSh`+|s1LJ#WcU1d!k^#YNz2;x<;ruNqE)peKjS1AOIio99) zF3AhU(N{TQ7HH??8Wr6rGb0EB;0`V(m8#)Nt9=R-E&LN4Pp^?RBX8E)pR}@;_bnDISR~*MXEp% z7ObiGaS#yY?M17e>=5!oY@%KvSFy(kF(LNHl6?`A^DMGG+PYL|Vd|4<6?h)mm==h# zJK$-r!57b6le6t4W*CDiPc>}+Woe|%zjm^WavjYJ!7q5}6%YX^yQe6$Fqj$S&=-al zdMzPat@3?I(?rfZAh9>}7sHPSWa{?O--Cw_*(PgN_IUk}BmSbCTCltm(Ac=YdW`r@ zjuEwU)9OM}r)pQAR3=2r{oM+w<9eemM4Qf0uN)z{15l>%etn2y>|*&_P})? zGYcC{eOsVlm0c59<`cPmwv6wNeN_01s$y6%(Zul8RRwo85tQ2q zSmX`YA}V~1ods7g4kThhQI1sgt{{XX_1)xKv2?Sg3C|MS(nQnRQt+!dZvJ~p(%#M= zB}elcx+O=0-+to($ofB(@Bga4b^sm;z9jy%?j@Sq$O>qn4-cFapx!+S?`*KR=r*5E z+%sBqjozQ!2ECn<8}xr)*=>l2`w-zvUqOOb+$I-4aq+VZWpi{0Qy|d4>h7Q)4&7A& z{+vBxk!|8XJ4M+}K{ribbF=t?-W5lb;!n~*}RkUD${{vV6I&)%XuJ8k@r{w;lT> zv&~|zvnG%A^L#ax8~iy9f}yBkg3Dg zwNX1Nb~T%p_oDX;EA#_F98S^2G;%V}u(b6?->{nPuDv9{d=hp`tY#OJ$J!z;XZD^1IjT^rvIzWFZ3uRwOsqy>~@aiAAe&0_<_rLD}~=C|gc>iZ~8$$abHWabvy z7hWO)jRh6&e_vLu*d5r!0{|W=!URCYNGl#jfd~-g=NLzE;Cp!1LfJ+qc!3MQoryuoBE_XW{+e2aeFEjG#=F!#CKtJb=;Wbe4r>n`*1HSVwHS+2Sc zx~GR%pel#MWIC%rkSbd~)b;3*Z&!*_F}vGO7#3#q(k*?F9lf|gPLI4>Xe>*fz9@=6 zRZoMHS8m1E^TQ~bRo#iz3Br}9RwJ)^l-=_%UH^ppeC3SiOg?wm;{6YaY75tz?-pxViE3Jd7FQ7dJuN|X zl!)AvXdR;B!mdz<@UxL765Aq6bchlFWh#Uf6_&FN(X}qFVqZd@W#fHXy*KIkI|0i4 zf;lI|zBk4UK^K<}Bf@9SCWZeobpR{EuPC5Uyy9=ieZUt|h(fOAgDr|*)>LFTDAw``{d#&|L$S1o~Q z%kfU2im)W9&V!47jJY_nX}~PU7tIK}88F~)hY#pilW%EGOF1_i6!LALvc}=XT=5O- zg1k%@g8$n&c{n)dBq2Zz{P!Kv`2E`XCnnBa*c-IXy3FmFgU?`Xu8t$2(*cg;{`ox{ z1S{Xp8#$II>B<~h!Tp#Q&0+sJ48nT7Z1MkRUE03>RovH7ay3_9!0t(3pkM4TIezUT zA6Z9KC(2hwtDO;(l22gH&y4X<1L8U8h*(4{LaYHYijf@Tv2RVi66i;8nEtj?ITyF_4yC%)ihO zOXi_oXdv+R{B7|T!>pmAdCo2zetD$VEYxG~>zsqJ2hTFa4 z!~LDG+d0^N+u5!8-lWn`Y{x(`^t4Z z<(%8n@BEu0{S}uQ^N+$n56{uY3-%Wc!dA@lz;JBOic`Ib`vJX>mUZiA!ZcOs$`)KTs5B!%M4;w7TsD`Yj?0m+-?3UwWbo?rnaM8 zL7EdgW8B@s1Q)5W>;YOBMaLiK(OB6^9)9C@`?V@B=z3p6ll!^~9CNf!hod8mxk7{r zN6BnOv)&Gz3>aaNuy!%cODvK6N-tEpJmj&cvp8`oY2zwczb`B~Y_U-pbKDUe_Zo}* z?n3+i+>BjerXvrCHzN1wx&PWXVq8QM^uyPO!^&eT0>ZDx$NnRI*0yCWD`>n^W|S zUihCEdLu8VtJUZwuc%(C5Y$V5YTeqiUs*Coa8!P1pRaJkW}jxxCN`a=3N`%wIj+Su z_hMUI-kIu#T>;Q`*{eSsI*sxbJk7-WqT*&y0hk6_f zKIE)D;3u(gj)7y$ub{u;g)o^A0(o_*?LHTy{$=p#Dw+gBlS{MdEJ&vSuAi}eZP1@! z-nRJS76E2sW$o%yfb*4T?Q$(Zc>uy*taLJNuR(Qev46pE*oJ2hN1D@Y3}8fT&1=%A zPGD3&;6V(biBm7#%BNWjz_3c%ALI2QY{39yI#2ZoB^JGD&?lb4>izTSb%gu%`6wD= z1PUfn5)I&cB0IGDGB6}GfJ_Mb2OsxMXZOZ@U+-e4o<+d+cPqc@ktz)Geu?(Af)s3& zS`0|i#wOvG_>k}@_DmGozBX7_*~lO2xE6o;&(FWj4^Hb3aKxNW*3RegX!s@iScjh{ zPd4G-_QsR-b@6YDzQfPPW~=>|)@EySedF;)`^O*uvfkQgwcCFQ*1rTY?#~>z!yx#} z)qEUJO6paW|C|2&H8?%leY<)9+wLTdR`=;u;03JlXTi(U-PMiNolzgOi{-xtJJZ>1 zf-f3Y292P--g>&)UT?R8*KrEEJII{i0Db48A&ArqGEd+mc98rx%cyM;b4kHVUlP#1 zrs)6w-E=a#)h70UKta3js9HKdAI4~}m_#d${`sBNyKN;o< z`pNh^RGlcq!)*A0v87!n2kLjXBk&*EH4iuIPib}Jb3rrRX@G@?tPA9o=e8SxvS&~ zId$L5xzi&FucHC<3VmY5zoK3|Llx-sO@~z4XX1N*O|lLZ#h~)XlXyHI!>_#aqOOk~ z8Ru{)fprs!hUaTRjNVh^P~~sZ1h&m&&x!1Z+QYE*=ztbHy4TyMAz%@1?;Lc*5NixG zOs^vvD%J%Q;g~Z(m?0b?=a_(L<-64}68Sk$_WJ2sd$s>PH2JPUM25O_Cr=M^qGSch zPY|yR3!SL+1v9CTy^car9ct_EcxdYnuIS+POaN4cf+R@G6)ah!vrvj& zk_vgi7o>%!bTFG27iRNG1f>nDD+f=cEBsCGc0DcyV0gq2wH`nq=_8KR^q+ z6*DA?jTPbkcxSS>I;Z6P*eR2#AvR#ZBYMU^GXQQw*oQY?=@R@i8rK zHb5?-z7)NhfuEn=Ya&n2|3PFmsjwE^WJ!OJg-{3>lyfmrpa1(u@5F!159xn4fhG|s zgID+1N4fsjZnxSk*8hH7Z~eFd-&>nMZfyKV|N9z0KRl|b00xg-4Y0i~HNaC_17y3+ z@?YZ%kRcaANXO&u+uqyoO=l-O>Kq@1ufyfPLK$pxMa9sZg+}lb?i9?FFW~bm>0gff z!KNr=C)1QJWZ)M}ee_`U*FitcRzJ@BqX))y4eqGM16$}KT}9m#OJHjnl6 z!sZb_$1o1X$Y*bYR z-EKP1q9nW?^(SH0zod3;D~cetYCQ>s-Q@l5-XPITNsFGVM zq~FAJGFtd{IGcv^G_pRQ3+syWF}txoG=o@Oz}|dB`iJMkkmCXV6v$5)&@s%efI?UL z&8YYcst@;%a-f@vn8G4ChXwW_8r`lKt)B<$!V7|$4=-+nlFtt@ zF6N_AIN(cG$9Zar#tHo!M1YT)Q0PvHFm2ii($iBOfp8K}F5elo-g7mc4p}e#tU4S= z-e(H67eI8LG#t%JOfS}h7mFw>oHJW4x*lOWK=9&Mb2t!RuQv`mWz_|cV`uTZ>`WJcS+&`b{423p;n(u zktSYseoA7rKi_WlIXXI}|7`uk} zh~*}|>`D$LO-~gNxWf@_dqXT+!Kp_z%_e?RPmgl#Qd=B)iVA@zXW+NzL2Hh>RlMci zd6D!Xy3G264^bvP9VH9W9oP&%GA?<(Xw+KEN#R=N&aFkPy=Vq>SLt0wT1A7C{I#K+ z`4^F)fEnwlR8dQ`q9#|3si~RYS<8euijssvsi@UNEdUZZeI@xbRIUE-woC4h*HJZ0T{yjk|7V(^RZnI4q><1t7(Z!Pi<>ps0b$ zd67)VqZi- z%*juH4`g_!YJlaFDXv0Z`b2zV%_0OCR+9!jKSzjow_p*j}u;6qv?t zQwH3jC850DbfHhClU1m63F-WE~}FG)UQ5L~tr`E;hk!;N{sq zoJ3!qy$X+yR+z!@F$^o=00kq2jv?~E@lmpmMY6`xS2->tY0sqBXMZw8H*rTD( zek3<2Hd34-^xyf7y>Gij3`A zWCR(}7Nn%8q^!O&Ze*OnftVUgP`dW%kp~A1b6bTWUYvu@8xFF6j;M=9@PkVqsY%<7 z5fcIl2a6Aq1bBL6ktl-QWXW_CoJS*AdVKUi8corAaGDGw(&mUbqLI)9`7bz2o{yq; zX1DKUM`?yTokMK+?^G(M47R}LDe4fqxS z3tAhi4%2Z_DVHrvT6Jt!6tA0k{G(KxX!N z0qXEE><85$iR6#j`3ULzbj8@4eFp{u)3(21yRf0jjHoB_>Ub(nv#h_;2;`|oTN()8 zM1+>uR%B zzZ>3uH*58~;ayi7&CNyE)rNn0Y*enRO@G79ighKqFU8c1hG^G#3CaF+MO?2HuOZ)& zgRj#hn{L&B*QyP#og?;Vtf7q}_TIS1HMCjO$!6sms+NIBfIG;*_Pxr$jXTRgME~ww z*sjer8@0G_qc*%vo*z7V&+sK^Hn_sDx?vWLXVauVlG;Yu`Ix1oY4?-1-rQXTnR~5c z4WLNl70XJBrfJjZz^acHYqB~zqh4RJNT@9YWkc5jghOE6 z1H9Hf!)xC&ybT3!nQj=98#JGoGv+<={8Y+8##xAM_0r-@%W!foZru{}18~jVW*G&w zaLZpv6FF8QmTX8I`bhQ35eU$tE zwH`lt{Dl1fTCMfu^8b?#eB?OXAEE!A{wN+L43ikN zYP*QS0AwhT!;49pFN>$_3MfB5FrPnMJ#Y&~)63NJnI0nKKf^kJkIQ6-!}M6B_@I$} zmc-+Ja*Gb&X#~R^;ve`9HA>Sp9I?1UwVnuaaY&$8hmxN-sI+)SystE=VE<$%5HUaG z+uHx8Fc1{T3McKFUW zo~${Yp{bXf9m=}!g{Rl!Svj7OMhK^p%i>4#=KaPDs|JtYKTS?nt|J6NSrUEZ8#9Vh z<9h8u1wu4<#Q!*cd%Cy*;6!FZm#(jkxB%j#@zmU4jDVdO5;`ylwv?QB zA3TGtW>J*nn$aWp2p^eD=~j5w&#qLDtS)eyb-ZRw=L1Bki8*znOW+qc6M$wqnc}s{ zJPM|W#HSb(4)k3kUZK)B#b+%JpJm8jVz9!AVt@6W0yFpl4aBTMOlE~X zD5ZSgBM1JUroI|(P5L);dBo6M8mRxW1|JnpojW7EXRq0i3W>R;|Hk zDXFo9A`Bhkl4ypvknm3~)R-&jY$q&w>}^yD<5V07=*71!2!wZ$o{{H42Lo-r!PCUa z;cmEpwBLin!mE`|x7!RJ(5tdu(GlU9i}wD}-m$`au0w2~}idQ@IYUN@+p~rA4GO9d3d5}6jsfp8cHv3vQA)yu^Q}1R0tmrd4bFvGUv`668 zq=RQOc!<26Ylk2E35Vc{X4M2JFMXLrdj4t}~QTEJTZz_&j z;d+~^^){ZtGXFS_QudOn9*2Joa`>z9`3h+ihAzc3!(vXYX&Jf?zELbr3IS~Bz8yZ=?b;PnPtHP_K0!Z(zv2VXj zru`v42U7C`yS8M#A1tx6iX6y6(VZ(gC>U#y*0D$+>e>4aFiSeITvUHF#d*(OdM$-N{Wh^}xT(;1~T6NQKe$k6kA)lB37v$V)Nk-uwXD!AeakPyqJmMr4Je&KaMz$vLJ~ z$}swa{*pw42sGd!W0#Za*q_1@--lxuEy)+?*a*xygFgUy&wMR{sOyiPN73-h=jDW& znWzTyoW6_SGaFQE#ae|Gv!gZ(^T|$bn&jk&>7p7WPaBheDU;Xwu%_9~f9rt{B};v9y|lC>NJuS`Ib5O!oatx^B> zSc4LVPWq>!#B_Eagb+GF!wEWQ_HrM6l=OfzdN1>7&!%DBJHPcAY<|eam6dW`ROZ-c zlw;jKRGQYrHEMxTXWXD)crhz_1y%sjHvPm>*a&VDtpDj-+1JChnPw5!+^y9*3uXl4L3J3UzJvr>81(e)D z>5c3b&>s%Hs$mkl*lhpUdc2A8|DeWy?tj0=&sVws6<58pLHw2Pa*3z$Hdh9lIoy5=2VTsM z2lC?R>~LvQ6^YNs-SEx!!C42N819K5Rj1o|g{|0GXaA^UG{>TY&XF!!aVrOpKHz;I0rSo8GXd>^H5${q3~6O!Fc$QU||fG^c_0C{)=SK&f)Ga zpr(e~ySsoM2){S2qS#CecCZ{ zOy^s{UTc1x(PQ0~uUiv;G zK}&|*UN%Uq3@50Lp%#gb+ZC#qtQNwb=W)jVMxNp)n^>GX8iS_Bu|`DrIKz;l%2POp z&q9v!g4I?Ya#ScapkK~9U6LBO#F}IjauPK$n8}cX_H*-A#qG^6^C-CuZVL7ZdW zlJQVn5V!^hWoyVKe{_i?%x9wrJ&>Wb;_y(8jE5 zo+2zD90$nYFO8LUU9=Al_?p{2;ot)e!8bsH)fadJdVzKqb71^rNW#qPX(fQgTXP#) zV1udyM^jcew^g;0#`aWb0Qo(n7|8MxhFWrTH4dP zy`ykk9{OIS!;Vn2M%MC$iU51r#AoUs|xBF(|mpV&l~a9 z6=SM$A#rc;fFH#YUV(vEJ*+Ihy3Wz@Vdqe=Z-w#%N=8n9(&VgGp;&`5u&C6dHrjz0 zBCAt%^eC7p^HRt*8k@58+Ul8gR80qGxBPC)u;R4O2! zZ2ma~B;oZ33rJ1QFCieGZ2k!aq!o6^m6ndoDp--Wxb$;wrMPrasMYo7ipwXPHO1vO z^4oog%6O7S35iMICiGPU{$F7ka>)zL(9wisBpIV>n^FjIwhCaB?sZ_WDq#oT`qW{U zhwP4slVGrqm`YI1xl_~wb};k|p7ZB~eR{)HW2?{<_-rG^qiGUf#uJ+CaF!(=otR9G zB1-L&F(q2$|3mnlk?#dMEzY83^<+<6QDR<`7;^4Rd5zH;l&OZioT<2yW$hiP$vFH$IKKDVAteVm25WaS?; z>?#76(SywjOU?yi{2uK>svmv=wJ?Q5z;B00e*0BTLQ%tosHM8PH0=S@9c;ti-g(;-6Ak+mddyQkgO|I(a2j#KMauiqrz{qn$sISO z&qcIKRW74hh5l?B4ADe*J`9Mbm0j@vP7KRnPDK`E;Fx5@_3^}rQU;Vk?{Rzz6D8M} z++Kw;SM%PYd4I0i*O+0=Q&2IM@nLa3NC_qtSSYKy*0&|K&gBu&dmr>p_a_u}{=K1_ z@;zycoQRjDioJ~-34Ya7u5mSezExg)u%@Ms%jSIOD6)KiYrCXt{neAp0|~JBLgH@z zoNLFyt!lZP*Ev|qh4GONn2z zt~oD1;Gs-$gC&$bTDMUW+p3XZlt;yjsdO*?GRqgoMw@%tYLz=NkEGrfjx@6#IbRkY zvlex?qMF=pKl?sbLrx zn+s;yeP!Y@gKlQ%<{aYwA7ZsioH!YkTJVQmn`e~4z|s%=BK z``nKEH=&$7`7hV4#{qsBA%C-O@(rV`X-j`(*kZp5zvv;0*TYo|1Q4t?lqhQZ?TXDx zO@o#VX%yzb;4!MYw5ddJh!$@4<~XyP;Ui_7qXZ;Y|7)57a8>3yvX1xrfUErC<;EsL;CI$ z?pj#OQ^)aSbQ@qoP;CGl&c`!)x6H3oBR*%yYa`V&KAbfF{zjtWtY~~qDO4h;d<}YE zJjLw^%^4S;Lh<3gY?hX}!DGoK?X}EG=)N)i9ABLhwfI$JT(b!8lKf3e>48zv3dq4$ zy#jK<8FKsygYf7##$JyRL@YNhX_ToLi+i%+5yp3^?x z`mm_=n}h8mD;1=#HCD2l9&VqAmovxWAzU-xbljhj6Y^>{UA+c{W$N^QcH{+P1DQ|y z<8m-KjFav$J<2Jw`V+Kk?oDSyGc^ZuIgq5e|_Kr)CJec_;rZ_qm@kl13(`<3F zA0BmH9ryOPd!3>QnM9YK0Ve!1~%X7y`gbo~Ea#;m@7F7taPYJv|LR zM7R0YFqib6w{US|YpCQ|7$}3ECppsT#eEq~q6833zz1%O^@ZGdl!!C{0e9~nbWq;(ULGKjr=FdZ{4{?Uj3Q7h zuRaBXi_0K8A9*Au?xo^kI_#}YFL|836nAM``r*(FRt2Qms3Rey{lgOz6p_ebSbp=U zZC89FMz{*mn8lpk3dROo z7w|2{XN2WD#22@yz5yW5USmRl?aH$*pbg!6eyRtg+c`YW zFLIIntS+2GIUE;`7|vlG2*txeBx->u9gG8^XpU)qamf_VG0iVj@y;>fvbTTG>vXNj z)%c*eqF#I|AvNb$?BUMdtAgg)4eZ}TA!?=<7nF@Q52srNC#i&ka^mE;D>g-fitD@s zW7}ly0FOX$zgw+r6n;Yn<&or_qwSXm9g{rnJh^mHKya$;831usJOPC6!Tu>I0|%XL zo&^sK6ht8!uDnnV_QIp%?&0+6C9&cXHs zK=yWC<7RNW^ST3Vj`zaj?*6O&qx|rT>eHuie>W%4k<_U3hC=55i|=jHSv(m{2Oscm z0sh$vC`9BmgIz{s15QcD$}r^@9ELG`C@B~Si#J8N5sdq60S?o_RWy#a3`e3VMw-Ot zoNW)&IuE5!k!%)lGYVwKE_VHqy(wV4&2f4uUzq5?2T^}${+$6cS(hf$H2WNE=vye% zY_-wJuh0{QOAln!-jEBBK4jIWdl^M{W8(w~7^CjlAJIPhu7tDRZ<+H+(IKe=x?4n5 z;9mw})SI|w#@;apAcmIrviVV`v&)@f;&SH)KCP@b@_Ymvd^QbXr$3 z0^9Hf5XlA2qGo$8k`BQHoZkkhr$`!02637Vc06ckiP+nPd(_6doY}uVwq>ioB}KpX@%rB_K?*s zoKMNUGYc!b?(tCv7s=9+To$sPmajO1Sq4M^MJF62 zA6MZ2jo|+-FRjpTZgNH6S4`L*d>e=oa)zR3G|TqQ@|F>P6K|k7lq{>hI_;Km4c*wn zdv^YU2gZ`B?C3-+$gXbcPq9ODNE7_gA!v|_kEC>N1`g*pDWyc97PE$++LGAPjkPF) z=77ALbCONQ|H(9YPe1zphs-)(BmijX{ZFgC*=|4P`=3^8eRH#o@ju(^oBz50`5Hf8 zFaM*6=;@FDX@6s{u7%=)76bq-3KuHlf(q4;JO>lWqEljW8o#|EDQqW6|8m}IVQQu`~ zXqw6m2R~+PwwmEO!%bgfh{hGhO4*|&)xv6!C91ZK z)MB8LLQt5_>tawJBdScJD~6TC>k9%jT6p2L7KYaQE7G8LDdD+v#3$HFOds=wm)#YVR z3opF7yzFV=g;$rCJuSTO>hiLug%@63UiP%G*G4wY`U~t8R&^hw>0lv9qPh*~aylK> zN6D;h!#VFS0LG~7!KU`G%-VTuYJ)K<+fe3{xc-=o$~Khoe3UH!$Exm(3Nv0UKxMPK zJF+2OLH;vZWPDB&8{+hOQGjj>8{U&mnv>el?D`I@$6>4eP`@ z*?zhpq5bXL71DnCG;BTDc)B3t6*Tm42tHg}Yy-2KRYPBBTeDjEVJC}e0d934qpviWGix%Ra1?A!I{+S9^@x6oYY>N{f{q%?i? zhiW&lp^-Pnf^%KetN`*tYuneV;M$LKIf&H!!>$z{Y43fYFQlhN(6dxHggvQBQ)$3FgbRU5(;S$b7c-Ja>3b>$mg|m$ zv9SK{@=`%5<~L|~;IbO<)&tt3;CZ_6sewgZ8Jn)R!@NS^>(HY%6n4m~)!&&%o_o9V z$^C*3dnFxuHxN&U{*9)Xq`a>DfH{(=_=I?C%^<@G*SN-xL8EUkddMIYY*;{VaZ9~%ey?qLcxHh z^-?RTnJSMPcSeIizMGArjF%K>p2Am~0%SjPLdPwhR7v7u#770CY;TIe5u-ueAIV_b zxGtN(xT9Mmz&w!@LxbQaeBDW}0`D&`Qx_ET{qCu>UC6{ppOJ0}ARhN#ce)NlOpjEa zYe|LSE6%gTU2z7CEekpR`*%ACtC%Dw7P2W!ft6{tQ5I1En?jMf@oytC6S*!+B&Q4~ z%P*YnAU_dRMp~fc4OB}(YMrd1Qh=6(mA!LF*|Ox}{^X@r`lgAB8-K?v<0z&+E7SP0 z8+{g-bt&L89L_uNinH(Q$fDU5a1MoyNT%2EP`@J<%tC-fD3Ue&#n)RU&n(1G(y z(ndBMlr_KSncaBvo#%Uj?RPEErDPEM)s4mvoA|f!;oHsNo9F9|@3usju?Vn=YxC)b zS|(!DV$g~YF*%0`Fjx&X8o`SfLAya&bMR57j?=s1)O!em0si?ffbonr&x)AqJnSOH z!(BIDY>nj9nZk(4`87`K`JrcbHS<-<=DCr|{aLmZS+VRrndLGxQX<*24_9QF5Iv)f zD@4lz*#nByyd0s?9mhBd1dsS1BqAnyGRqut3t~Z!6n83#KGu*)w4DwnR&49cGcomL z5hckvIU`B5ZpxvLxXMcqZm30XtYgLn7Zku6M}6QvXdrYXSk8DJ>FrSHvI)#6>{IaJ zJfgN3h{cL@ELLD9m)|<$wfZ6(h*PbWF*?@@$e2uV%_8EoAnggK5aq-tKqwxItLeFV z9ZZo=_!0KPe1%p^WqYEj2e_(KmY|M9^X-=xcs8`ySO#YM(yUyDudq%TxyD%6GwgiG zZjG|#xH$TYq-qo^g?UOu5Qj194nvBV`CNcG`5AOmLR}m%j(0mP44wW>F7CJ^&wNsa zQ6Qc9E*-ZUl1(e7oUH*>;t%6Sqb0PI*bC)iqKE}RljJ5hM=V0HJ45Du!8}dNW*}`k zAW9>#m3sFxvNzR0qN?{oQLE_G5P5`!v}GZPFSap75E2^nignoaT9s#ABNxab+u}_% zi`?VR=*hh2QcuJ$sb(%`(=5*R;0(}7C+F**xr?K5$hoYwmrx+rn*iVi*dy;K^%4dw z&MRd*(e$I6VIfxP{qJBU zlp0fc`Gk_BfQel0u_TRmZ<8Aq8P)GYulOvTBBxTQR3>-Q7F;z&B%kpsD!Dbr!?IE! zc^JtB=2dtKtrldSRMcNu8b@PHahu;Jns}&?w=iyDqxwuOurrzH&(06O{Z_&c1+$o! zlnYKkZlyg}{rL@}*~gi7Uogx~j$QQSI@?8cqohWo7B_lDVU|Zu=#)N%?i3bHGH433 zNY0$u$*!Vgf_Yt|>v#}-c_XM|JDzNi)V0%dseWMZk*HPi;b&#nD%IPpWmZRjQ`eM^ z&ZoZTdla58$&G6S$y8Z(Eh zIjl7~S2LCx$1#ldlw(6x(a6+C6?NJ`BU2yz#X5#WGNg1_INo%6kk{~~z(tGPepg5y^X=eLXk`>cV6HP48RGVu^19?ttC0wU#5 zbOS(SaACEUc`Lvb4WH9U)y6VH%7g)g8pX2!{d_MlNcy;c8%zg-d6GoKwcvCbNPR|M zkoMC^UUr#FM|ShPa)rJKJksI6Dx0nPnmuEKw=oM656lZ$%BQOi>nQ>L+&`dob;+ay3deZf28k6?#qCm+>a}|}cNz3kY(rRjJ$~Vw;jJ2=6{MI1lY9O|*FvMMJKAE#b{knb@ zR@8inSnx>yDvr?VL!kw_z;OhTFBiJZwbI9}z@yO>vw~ApKcS>1 z64}wzOMC*#8|!tjy|U#`Sz#G0PQnA)A9@+@hWW! z=SEz;!K1-+KFPkkzacsi@*Bb}`)$KN4AZ7{ePGxw|G{e0KgglJK+pY$RGC~wt3U!6 zO4gD_&b;?UB}A93{Db|^nTGF}ZtvIF;nd?JMJw9?{C&ZD)A;=w*YJXm(SFQ-Q1ObG zFT>+q8-^F9UbYDJdVdD$<(|KNHuZd~%zmi&`RlB7rJ<2u_60!YuN5{BX9X<{u2B63 za{9cj>YfeVL!0Qa@j2&3JvNXFblftBm}Ag_4c%bSB^V^)$|G)Q_-vQ=OrYeIe@I>_ z{iz2@8B&l=BC*$PqWit_k4>F&ST?sd@ZB`CTBFInOe^s_x z^|azUx^lI|IG-19Aez}6y~G#T;1AzI{vQ{*nIm+w0-;-_4&7bo7HdcUPdG;KXdI2q zk*=9%Wfxz26A7v`xmqhR^R2|95F>y1O8hwcf-A95!>Z8bYE}0Q$2O>a=3u^tz3THF zC+W?TYey8{dA%yGUFjOkvLMg4`@v ze^9ta#1O5Dv_OQ6fq!USpfQW7Bg>RyayNpWqiaw(ZZHLVG+aS{yd{gMN|x*_x-%tEXRVknr137v4nh~WnP6IGmY|&bk`uiH+k42%$1NX(Rrji zcj~f8S1J$vW?fYLi9Gd}eY;y3ry1V&e9C5F&A4N{{1k|_|CdB+ry`6XdB5!M`6;1(>A zh1N*U zP;_X#gPq|nN9g;fL{>zJlB0MjC93a2YP0R4O#4T$tpC>PD|4*(_N#Q3?ww)379C3Y zb#XdWTSvYsx8BvMOjW9KHt?)AjxQmz|L>Q=|2V> zZl2K@-y(<@U-0~e_>Nyl%@OEq^PP|h29Zm#5m`1s&AEu9(U4;P`8f7Fvs(m@iqZ2R zR^!F7>Vb~?AAoWnqT5y0wr2e};UVEmmr<0$0bmr}#AuPh`>r&`u&#+D-@?Wp!}h~8 z5f-3{Z{0B!aQ-qtrJur5LpFP)Y$4DOw^#O`HN3zxEI1q@RJrG}j+Tn!#>aV_0I#sA zh5;G&8WUsew#@3oV_C@dvr1+!ymAEwX5x>gpRidH0A~FWy{m_wo+)b&buQFQ$u;a* z;CdTFpRh7gX%rI|kgSuFd9BoP#G|PYn2U)^>(zi|Tf!mUS#}ERuR5TV*-f;Z)uxfW zdZBGJVovjx8r5N;X+`Zh##up-!#Vr%%Q9jp%1#1A0ckS$z>{VX*PNOLog0g+G}016 zv+;!tAqAU4Eycj67wE0QF`?+~KX3Rb+wRLrzo>Dc-f-)U)*NhsNkZ>}mMP(@84B)u zc1`W~AGY@EH40QtdcldL#-x8~r{^zAx?*qVGLn52f93lgc;*?n&r!K-;5nO2!L3(q zeerGzPdxPAbWQkLij;;~pKPwELe6HRc+f|EWsUWZ@Op~qRXye-*6(*uqg_ygv^le^=2P%AO%sQWe%P(EV=2cbAM;t z+f}M$nyCLSnwTGntN8K?DRl+2#od#fWR><3>P<`v5ik>tDIkq`Bl5_?dPrd7nN24{ za`ww40qNMo93&x~%dU_HIC|8v5uhBH7!gk;9*8E>47-7I2OOCsnDh!c1&aXSTyQ$Q zfrIaSo**L7jp$^Gb6BpTp5KP?u=t8oXBlC;F~Ad=sQ$)0WyI1~s;HBrq^^ef85g9^ zT`Z#(4yLo)8keZHW*buDEh7fhD4LkHVinA6sMK408!1Fdg~IDJY=~Pu;-8;%RWk;j z)gF-HgS@6{Rlt8K)v*(GHFNi&YdgW2uMLvBvNeIFVqD65BY zT_L$ZH4#tatA=3kme(wbU=1xrjFG%sbL4V(0_%M{e;=$cAIy;t8Yo)h3CXu6^MPOl zvGM*Cd^;!8X29Jzb5=5-{G`yuRV6K{8)K~(OZ&TWBj+uM zl_P8|l@Lz%a}f^=l>TFA`j2|^Csc1LtZfwvjkweHD>YsvqR1Av^rusI1g1=e1yr6= z-DVLRo~zQRoual
`!Q$3amYh(C*QPn7v=Uz>>GWCdR<+LNS?N?Hc3`B}`BO};N zF*P;vHZA|1lmI=3G9AEgS`oI7rq`kpdn}H+Go>|1CbHB68!1;isPGQ3Qf^iT2D)ny zIwOD-rnncm)ctW;@9&+SRBm;sE;Vi$^U2m`i(aHFl}wGIx7a8?=i!SrifqAAWcg8; zK@N@8S{&)n#|Vqu_~_upOgnU0*Mu{?Ax%Vvc4Vhz+jY@vR%TY_hDLYVPmw!Rf!KL> zS~Gl(i{d;PX8%S(AQaOr7`lG_s}Wfc^$b-=KA5@(($ z@c9Sw`VE=>HUExmc}e}@dq?Qq$&4zfhCGmIYXp6zO3;9PQ}mW{rX982RrFcB1775J zK+!l5*sPW0Wp%pEs)w50_fXwF7aD5jAFA9gN~ua!tL7SUDWsmonf9*3tT~_DJ9E|_ zTg{;r0nDlZ=9q;67VX2HJ-8-8iiuG;JbKc|_vnQf8+C-7ECgo?%OVbMc;RGsf%E(F zU;gv+wSJJ>eh^YTyIC82i9Xih=gE^z__w|BWPM%y+oJF58$UjI{AA-Vt8Hi*}*UN{99t8O~+e7^;0ndZM=Miab0&3(VV8TB17pxC04 zIs_#(O7bn@Y5v;;G{oFTRss0?MZi%Khb!G)C*1DtyoUcAKG|%z=+EYujn6ZH>uA7z zM3Z5BVbFVaE83)J&D!cKCZM^o?T@eDuOp&obkUWL1z(;f69K+|PoX@&j? zeh8jo&O#?LWcMvUwLj^0_By?t-s|vi`}F6f4R3TC;TDiYXugdoEPGlIcZ<$(|MDCs z*%xcC{~^*5^XSSO?RpUzuE|?ex?a%%F#W{3QO?99wR)DkiycVz7eL;rMDrQ8K)${scfzs#uc96@{!QyzTlj`~kBV2>4vW82I}A2{m2a*|#y!$Q@^ix^Y{ zb3o)HO*LXvvoGQ#%@B&d$TQ*lDsC-{(OIAM*otD5R4yIM4pX^wvN}sAGiJfR7BayV znSU*0z8NlK32y^t315+yCH#T4Z2FPqGI&Ja%B@|{1^uz5rrtP?6-YF!WZ0utUyT3R zkoH7Si~l*DL zXYROFbu9MOrO)=kw~Ro!8HBCW(N-qhs4-DPV0^z<5{tET1xwva-8aaPHFts>85qjlRbyjgsux%ZU-L{^X_ z5b_VL5*HsnhDfP37V|G9%K?9SG7 zrKH3Qq{}PHJRwq&`mrq;NR?Vc{S`5{v!w59$=Bzj`eMP)M_CmgWkr0HBS~4a9Qm`l ze3adVkFvUal-1*-teB6o+I)oiqvE=Izs)k+(9n2tuxju~V(aCsygP)Mm>_pssuLDa z+6-U50#^fQOP12 zzAcrUk?NWj(rTFgt*W3^IfG^YRt%OEFj(ecu&kWHvQh@i3K%RW#EROu43^bru-^SK znD4IMX0WW7!E$3QXeAlU;jI2>REM>EvQFF>`?!>gJUNLt6QWuad0T?a9bRslGf<_& z_#^!9mf`g^9QQ+SfWP`CHF3(9eS}H>6QeKA&gbE5IvuH#At==GhiG)W!tKQ7?R6RQ zxJz~4?vfV~q9=8%Z^W%`5Hp|FIrrypNICqK9z}FPu11(_3jS`wM!F>i%f>o`?fE0} z5~hQI0<<)r{Mweul9(*>nz zaxo2bF1pe*TZjo>CblsE;fiuJl%I)T(J2LBx#l344D(>EJldlc@h;OSEmRw>PUAV;z6%&Go-MscMaNa;?P# zRJCodZ$6c64Z_-_@rLY}#F^&(t4}pd_niLbhUSMIC*_2TFFtu;)Zz={tJ_pCjF5Dn zk{I~UA7=gK_9?82-EMe*;eMNe;)aHVuLNc-Fs}*BvU0c5@K#n7#xGt38?6TZ(_&Yl zYWTb1LFdSU?crrjszyD$cf|{76K?)y$F=7d#jwRG&kCm8Z*q30l8!-Hjj7BBZ@$x1 zmVmjJsr10FM{>tl-f%5FA}XL(2Ey5OJOninHtT3ogGNJa5UbV<7qN%`whe-aKZF3A4^f%*>WX0Fh19#m>l@aM1efXD`HaG~_Fo$tE=qF-4da!f}VRV}5PBW)d*XvVR z9IQ?=v(xk{zQ}xC`p+zBHl2xB9^93%or*9RQ8S3}UW+Ff*Cy>1ywLGiM~1s8%;Z;g zOEi*TX$WdEd7;3L1FMB|6D-LUBG(X$!r+-L%=qgT^$?iB-V?kmQUlTbH$>fs&x8MY zx!+sS&;Zm+M_LpCq2Jxr8BOqUiAPnpG-l%dX!56AnR?dHsS9Ur$>s=ixh}lUl(8E9 z|I_&lS2$_f`$xN-6PV)e+lI9OjfENfSHW@weoz;Dnb|6HTV=jh)JzNxZ?k#0AnZjH zObTH>nlL?LQ1HW0-GO9327#0SSpY@YK1X@mzErn0DNHy z!25vNW0;0R#6nEBteoqM4D`XO1oJ+}X0%fXwvwBIOk6{89>n{+ai6kCiz5g+$ZEfzryisgV$BNb0jpfc&F zzO0hZuv91!vz9QGsWfofP~a_T2){iK{IXZ31XVSQ#dNWpcClzmc~)$`6S5n)t5|=v zWw+nbCQbgH{GP`1fSO{^rL|wTETD8fD%YlPS>JLuL_Q`0NYU^-KnUjhp6!3SFISZ#c!jEm1GK~rd&}R zgPybn2j9+VN9|wt;}IvRNbn8#e71(K{dlvvoYJdDBp;G4#P<|ASuFvAy!LE|9F-Dx zU49I$Y|-2r-&v+2YL42aKV88t4*()e3&zt&ks~7s4*ufieHa2hytX%qvi(7C4Qi*z z?+-F`r41HP(2B$@H#c^D-XE0b4V_=jA!uW`A!tdQsCf2jjd-g8S4EQJ^@A#BdY7Lc2PX9tnzWze1NNRESrcM&h}h(#-5N z8s(h!lx~boa`Z$q%wReusN7;O9%5c4m*?R#S(*d7RJC4ZL*>9pPF(=DfsNPr8eLe= z5H87i5l$CttUSd33WfIgWQR=OJI9A%@0SyfMQIQTdgs@Rln=zdTWmd9QND|^Dxewl z$6R||+VJpg_IaGGPz@%P=pMUdgK_w>DX0ji{T3!TZHQ;o@+iP#nG9)b6JuyOZ?GLb z^Oq9|laqq!oI4`l&a(At+rtmop?F=6Q~(_AgD*6|yK+VS+2sJdp1Jk1mKQUVu@>Qo z{Nyuu_|=$yM$k9?pEvthn?f0Id;uJZ2#6$cL|<%>XL~gXo#8$tv0uDPs}L{g&rE zvoHeq{VB#FG9moAct>a@Uz~Lon|jZy`%8=@rskeWS%3Q1JoBGR&9!9BQ(&ZtFxb66 zyu|^E4A(Bt8{uFIxN3Hx=~|DOkYTKMf4aY3_wV81=~8=r-Pn{r_3_>qlacEP?oY{b zqX%d64;}{4tUd`SX*LvGM@foS>Nk7RxGwBFQolc;0(#I%Vdr*Fc7G-y{Km6Mac{GJ z`av8oP-U0tAZ9aG@BxMl2iFWz{QJ9~b_c?~mk>g~F);l%zko z#8lq7=q7ntj}+F7Aa(K*zB@&s!%T+z&|8%|}!`CnmD$hirDz*I9tHvW=P zYSh0C$LWf=fIYxl_tTT(qYlh3!Pc|-y}G8gY6%2Pw#^AId-M-2v7}UI7QK9W)DZaa zsOp&VY)QMp{Ek7GLFBJ!bbsd*jP;b5WgEd~Y8$SLR=GgBzLP*w zQe~W8(hbeK_Iq2Xh_IZp9N0~xX2hOA$PIUcps|h5Z(v1S(x`}q4qwX9>cmJC#X^B! zHp9QjuMJ+}O%Z@{y>yZ&lO~1E6uec)Q)_~$atu|WPzYsda9*l**3}rkq@I8$i0&z_ z)%{nmI$itx;MWuK+Cg4h1aYs4(A0i9EEu{wFHvi3HH3oD~(3h{~W)Kf$ z2vB;|OJadP5C|Qe9pl3rFnFS45y>5Qx3%Duu4Sk51osu#_XvX6`(Qu&0A<%4*z?U^ zO1su4_%s>ak}XWLkLnb|g^{TXHY>^}BFBPhhDM+8?Z>*_x?CEC*B@hPL-QzD>*|>1 zX{AFaS#9#(1oxqy$;CrDI-sC+bZglZZQ)rwe)PHYOGxy6c5{6ES#gNHiBVpBY;M+ zk$u@ozwCsF$PwY2=Ouhqw$_YU0(v(CX9aybm+0m6JZ%O(-m3QSzP`g+db8(@XBV{8 zvPDv%Pw1s1f?H|5V%@7x+=n_*q)k{0)T(Mx`fef<@T@5^i~iRWt?mz{Ccac2(JgJ<;Ein_@IDCkdBxeuH6eHgXbo>kAR{lKJ3@NH^u z7B)*(6YxRr<^c@kLHFiC-BawPS|E2ej90D|S?!Bk(7){B`C8WXKWOdTi&5X?{SveO zSL6Qbqv>Z|3se|~*vGo|TB`Am#5%hg`mS|(PGc^mlVSDIocE%khNlA+iFcUp~j^|sxKvYI`Y>Nr6&h>w!}@5 zJyFtYB+oO!4@EZ+!up?s|C7T6joiHmkK-;kBhICVXKS)(z09u`Op4dI2r;47y9&t> zStY40xb^Vea4=Ph?l_E#PDd=}WTC$Qs3{K((%Kg>1?2clrmwz38Ol2pbHga&dFKYj zMb~qOvJjGvh9o7O?KS`(6Z09965y)PxJt=A^y8?JXjAS_L|(B#yz^t<$cy+=9{*kh zPd0VrNDW=yy&di!g`KyopX?v?y5asVpQntcgKEp73f;~tdI8E$vxs|4xR0Fb2gkpL z$KBmdH$2|k136)y#0vXBj4Jy1p%DMzk!oN=eZBwcwS`Lo=x-MXogbya33}#iw>`yL z)bZtLfxVr7T6b)t*9#2 zIPL79nw1!Y^I#zS4>1__XOsKm;^h8VNN&UK3ZDTs8s{k7wSKD_T=kP7nPP|2 z$a1|2emUT~#9t0j-lTF95Dq%CC>h5YI_LnYpo;6a!)?j`{vY!+6A1y$s~NReY~=KM z`Q;!yvP{W^e1J*N7iNXRiTY@+9zWlGss4OV>-6-}hEs_tUo z?53TGvOcSzmoWyaPUf?WoxtLW@dYZ4r$bI>Nl$J2vpD$FPdUS*^GaGOaW@aMn_wlz zjMmAxKN8pDQ;|YynJyFubmN{5q6wTEn(BGTMSP>ziU&i{5n+JYUY6;O6R_Sp=yGBN zJJ2h?FseDZp7)ckFFrk@)ZgL(oFVnOQiOtfzqMGb0(A@K1cJi>pg33~#OXKjMtt2~ zt)(#xrOutFfw&oMKlrd>jH_~v z#9hrDC+XjVSmwP&N$@feSL(+U;Vwvb&?5KFjzHzm=cppB2YHVM5d*ciug+!pd8u!u!f&$W!fyQ`xn7_@VlS#3;$w`DE%uSvQ z7)}XARlJ&xhTayKDnx%SNa~=pU{tSrt*mHNoKXd=<*B3yAtn%z*CGH`wU1{Wk1TU^auY7R-T??-x@5EdC5+@;&jl zd@cw*{zDmLzmcW#Wt#JfQ2LY^Pi%Dy@}!>5CzFWFAeW|= zPr6}}rsxtMS*Reu+_RIU^7pY3E+l(#dIbBpV(+*LdF!1$^j7O_{UY;dytyxrN^Cfg z72WKRC zBF0VHA}){0{A@ILy%b#^zDc@(cyj$EJr3OEzKD4tDJinZc0`jPEmd{*Be(0Ux@$V{ zTXIN}s}!@W6f=(uGlNr5xS(R!@XvBE(elc4yD*}G;%Jm{vzQ^KnSZX1ex_X$#FFQ?^_|`@lb%2#N*pK>EewFXw2>Yv|`=h;Gy$TtOQIMHrxf z#y|dh)=&E5ck$#s#$3TK0lk-l#fXk|QFevj*PN=d7hPXKO0& z;_OP%f;(Y2>j4H>oeu^Ps{IsW>QkIX)Bv3eCsT?>W$$xn>k(KN8bouN67LZqKiC=#Iqq^4-KK2pp4ns-g(^#5B85blt!W% zNGJ@{aCk5y1ACMaPv#XE?lifjHGec+0~H)J6jV6Bk&m23S7@d*G!#3r*|vlx8XLFR zK#(M!Wz!^G<72&~?5NF-f zUV}Y|JabFA2WXVQS%N=^`^BmtH8;7Yd`)_iN&TPn$5GQHmT+X0OlMkzD0ct$!Tzfw zS*e6y2$MP-BXA3L54RU)8t)-lCGBxpYDpyLMGA>EXeK3b&suE!ZBW(K7b3fjKZ}Wk zh(V&SbyTh4Ill{hpax^GZGcsS^_y=W1Rzsxo^0l(p&(_7bytVd!gKDobENS-L-n;iOfRN&yh~(op2JYAPW-pUqJBoy|ruNNkkBLjGc5oav20v{Vx! zJ~NkIaUx)^WfO|&K%uVu*ulc)ZIytF>nQs$R>K42mYD~#NS6|gW%7cm+y>@jkXM#Z z>e7nr?0X`y=~jz%ajS0_1J;S0llmcmfFWW@Uz;&=Ip5I$~C$BW6Aw(aaQ<-J_0} zRqBX~seU%wB-O4@VVQ7qpeQ_`aIjV}pg-3}mfJ~+4y)i02Ps&vgJbb7T zVKb+EoGQY}VH8Wr2E?oUI#pS6QN_U3fd8T#V2z_d*rVi)DKuy zl&@Lo!InocR3_YV8p!+8QbNmJEx+oW=vD=NeN##ABwE!jJNyDz-FW2zZY>+p!8Ac> z+qPIpUFH<{Y7nDCPn;!O^_o!nE0ytD>E>9|nMD}|tZW9{oNak3Vl7RX7xo~;6zR1S zeF{IO=E#FpXV_R@M9ad?zqgCcz*)wS2(0iOE9FgEY6w*E&+J~LXO0GC(lh%!>6v|&^vv>$ zEBoBVngr~^~S*h@>m~<^X|A6@| z6rNeJ@XUO|vwFD{%T6O?n{xaNr%B#_vgG6}Ot1R6d*Gfz@6qO{pJLyHcq&4}1kHe1 zmX(z0Ly3NxwUzT9P~Kl<2^saVO~io=PU)lv%!^L@=N#QwTv7ZW52dN_3Z*^O+MZk1~^PV*Lagz^YKrX5x|f5O4rzJ9`Y<3R^qWF}E2f?(s6>a%g~(W*3)ePlD)N02Bv zz79TqpAR+ZyX<5eYg1ooknME0bGjp~ru<_p3f6yKd+opQ0OPXE<$NS-U9G@XOB{|o;Do=YKNq;^>t5$|f{IC{ zJIZR~?Q^IVdWi>|iFe7Hr$SwX@y-<9zA$>~o-`cvM}rmnqHl(7>W{`VLlJnSTi6FF zH0NW1IG||tU_J&_AWUb`Al-6LOu{vZthyjIK24JkK{UC<0DP1sK*dU?1sZGy+3hSI zVB`Y;7hectC^?3*mr{Ij5m8DWK;;7CAmA~H{4D$M_aGCQE^mTapX35w5cgFA%o_rt zxAio-MCZ!B$cF%RL7}-!rj!>Q7F{$%*U1w`&)+Yv$OGM+Vp)n(y+ga109dbCQ!q3 z=VvW&E!J|#ym;U?Jr@sv)w%m zd#}5l)7M7OKfjNzVKSl{+Mi6u3V!=-nOn=^Z_B&$zCQ!--J5_%Mcf0VU{7QbxpOIa zpm%2N>VWl<=;J(26yas{^Z4>o@)Y1J9h(8=XZYxrUX#e|MzYN?#wQe%)f-hsip>BJ zk|@1;rc;EN!*5m$);41r?=WkKF+=AskzqL>EfzG`DtLtdWwTACZYP}~Y!`_~Y7L+a zbZjVc#$V`A1?o_SF$^`szTxAcyf5mvsPH;@}#4`le?ITNfM917pmZ1*y{xnv zi10;xL)zqnhGm{|^>dsrH6PwUxWKfe_kS1AnGMwkmQh43A*iCsbbfjDjo|tRz|Aqn z6Z5oCNpVW`60YM@HeiD)Qdf$nLJMa)!lN@nG|WG8_3!dX2F0^YYwpY5zpD560-EsX zz~i_O$Aynw^$PZfw)I7|l^%Te5z-b`Uu(UsW7;b3Ks%sq=V({P+b;=dYr0hE2+AHm zimi&MwH6?q?OKGf%|)BlSg#gi?F%-m@hOTgn-{2yIE;DaBU!+`E@L&tvEjt)2;@J7 z08&7$zt36W;{!u8mlpLK5Mx<#i$cmavRi94zm!KN;R8yXK51sQyVLG>>H-ME- zABr2{x-KmJ%3f|YUOWijwlDJ9ffkzU@QgmR;%dY4t0kve^{A=X+0FktVTR)lv-6SS zSM^0!8J~x=KAr=wY%SZtwpcsEW3<}B&F>fhH~6n*vY6#dpXC(Zy>6!?bT{>&!uNhc z>kC$irme3ToG-qqb?>C-Lu(!qmWcc5hOCvRhN=f2JP~@)-pgA(f~KBdXg5TU3%_FT z^b;}6gQg`zlr7)ux$k?zY4mqj*L~n!fsJ6_T2Jsi%>4xe!`(4%U!C_o!Y;4}l%UBu z*%KF*O+23B8UD?|_K`Z5z5X>keZ9Ze3%6l&-rYal+3xO!hsV1ej+#to{%g#{`U!() z4*JP3UKMR;F@9<&HXKB7k;)Gbt;f!f6{V5f|}?VJOL51^IE z{YT`PM45=kDtq2$Gl(_`1A@@V288M1qY*a1;anxCp9`yWJUXA=kkq}1C&0Y70@B3@ z&a;%%ohA}}W5erFA5IDvmsX%^l@<<9WT;zHEy7j?tUfK8(T0>Lo(bj4PEY3)^8sKl z8<%n-AxXE#FFlZ-MCfrtku2=Ueym2j10zr*OS^A(!|mNS;lcLbkIz7E{TF#7gSfXK z`P`N7>$w_g24zpw>UP26u;@U6Ud|@StEi8$5HA@l-am|@z=d!1FI8~;6bGa|p3@Lz z|ARVP2^4-m52+q!{Xzz?ynY~KTN>@3bk3P`VpGaxFUc=wLOy|ARLq~lJ z4e$&LD~6UTI(L1kgAY4TSq!{xkJ&N-D`8VS4EL(EXcV%HkA9LX5IGOCY<>AtpYK#h zb_aR(UM#eV3aMf|M?@zNZGI>Wup;Xy&yO4DeTZg5Syjbsa%WS9TFK3_Be<}=SUmZ< zxY7>yj~w92<<$WtLwrd;0C^UuvD#s4?e#icW&EtZ&w&$+ja9=wr8?Zp+ZbS{uR3Xt zA8D@;bz}%>D@}1@so-bl@{}NQV|8gtc0S6Ebbw?p{2zbP{Is2^{@H zWw5l)7~(6%ihTryw3ouapfzvM*LUkOE}|_>g5QFiAlY)7wrV$h;x=vjo1zSJt8Ugu z5Z9&K{BeCGea)W~Ac}IBUNTeVO+PJZ$!uaBKU2_8?=0yR z06*8}@GKPIz}8kT=IJ8W+%MYcyip=*T?L|A)aqmROx)@c9`uLw?U+thS%wD(ZGJ_B zrA0g;c4w~RZantJC@MWIs3Z?Lc|7({t~X6geq4+xdbp}A}5 zf4fiUX9i8%3#|5P$Shz5>~l*)QTMhHk6az2}c~KCGdTKLPalxc75qqm!CML4|cY?`T}>*A9{GAn*Km?%k2C9 zc-cCnZ&hG`9}l;83`{oekM}K1toF7JR7od^CI0J3uZ=IUpvuwpG%d7n6xVe`<;MLj z-LE|kS1xbdpQ!lSLoqjjjr$WzUwatljgF>U_CMSr+0nriIGR7MTGVfbBeyuZg=;gKe?08-u(J|<$aCA722DBx_z|vP)wn{ z`KQ}PYY)Q|+M9p6EwuJ9?k2Q1|8$$}6R*(T{L}5GwI{|9+O{#kl+3Nx0>&zD&t>L- zR{hmk2YAjP(5k;|>cBSzORH6%L+ijcS9`0qpk1vDw#O{cYSmYX>fmk}23iZ)kLm!o zOarY2EJ(G0E91Z^#+K-FUN6%u@FZszXf0r8s?AkWcY0D~7-%hEcv*lqOw&LC4tdi+ zYXM8mVz|^Y4piXjF%GmAFzMVI!oIfET6U$b*=pb8BL4bg$;s;WJ&KL5KOAdoXy2od z`uan$cA^FBkblCV+)ejvEnxEeV+O6~X908PpKyL`yFop9ZfU0rm=?d<@GCnikmn27 z7ypD~$;tBt?2LcH;aKu~0Sn@va442MU%<%tCmhOM<@uj*KlYmwS_@c0|Ah0SeAgUL z3Uv3B4r_&J&hF(Ukn5HacpjIlM`Q4p`B049I2tO|Qn9xu*4r{`RoBS*l5h<({?7>G zaG7t9hWMnIo>yjrxFClzCtWZ?N}SIxf=AuDa&*kK=ym6tgI%n%ZdYLrv1_g0wCqa9XFX4) zw&7NT;lO6}dT%bnN{R?7^d1!-;urzXPUFb{K>r$y;&Ggbppp2x7HJw}{Yw!ek|Xw< zM=%Fzgb!pew#PK+zU8OHI_MMygCraX3_`d_repCmuqodD>Q}|X2-tTF;}dUp5lMVX z_~|Of1iH{1qnhE2^#_A#LeC803&N&{$kt@^ zN3w5s8BlNg)k%0LBl6>qr~H)O&}z2ChiS$%6ufzU|IWk--@c`v;tY6Y#Q;TK@dJFs z>mB?vKx}+2o_mAf5Dy>K>pi2XhdQ$LbQE5U`j=_&n|LLMah&$>NgKrk_|5YX0qvih zbTAa5ivfzJQH1hrFq?<1Co3Ro@D;!s*Xdt23Q+X$%-2S7nuUHWMTo>og8yD1=937Y zl+H0W07usvMU$1BELU+KJaS&feelH=q6*2)xEU1h9HNy8Z@RjQ-{pXKqnB|?bf8pEIR!^ukw~uU zF*Iy|q%G=TK7o2sJud1@ccDh+*|BppS5JpI{t3q4Y?{!cnBjywdI;^*1M%ro0s01QffC8kX9WBb2X9qur+Xn~7JG{PN2a$nU zB<4}ZPjuBo-~1ExB2Zh44$qiO(M-%mnDjq|Dmj%JWtH9q8rm$xXmC(vJPSFj=z{v! zT*UiQ(HIJ~En9ts#9UlOqlUxGvxF^glbNTJ=tU_rfQIOi`bQk&;3rP z(|Y{$X^8hAt{7E?y+eu+s$OSlf?<$_+X({aFigk+j}(;MzaQ=GcMf(}h)99c78~OB zDK=;)w1AG1HG%|2bSmVunO@K558s`%E_dk0Z~NuLs_uweK;r9iev_*a_9Ns z5x;j!brmzb9F`C#lrjrvUkw5{{C3}RzTg##aY&k9IiJn8s8eV%o7Tn z&NY813mgzg5GpH%Tc3hC1&>5nrY&z_a^s%ZsB6G+%L<^tbeoLNMZX33V?q|L`h%xA z$aeFTa6aUSH6rp|{$yl+1U@o8(K^GhY9eQ^lOpGQnESS6htH#cONNxEIzm&BFaj0v ziKDF$mFa_ut0iMZ3HpAr3N+!VL;2YVPK7TxVEGy zGb4t}IN@t5{sjp-M&^Qomr-(LD-t^5E?9;OVNv0%iTO8Xjeg@g)=&h0NCr_6;Kcjc z8yVF@rm~tP(M1I3ko6V2k2SKK;32q~>x!J6zY; z@>H?A*IC41r4zX$+~nsMTT-!8yMffnWexa%!e!Z|Oc{IjP8EkP8)-wl+5+hXq4O$#Ir;sB)~R%_(v zJg3-nPfx?w+Zf?-fmuH|JESR>>1HHa7sEJNyMoi+vW%4MBhkfBL@lgDZf|$Lo71-N zW4OP|d@ewU0~64srN(R>Zk8$4;lZ?z5j)5I7^Br1RxFD5jD{p=lk^7|1rKB2^)Vl`|mjl7%EUk)*(UKXP)!DJlhup z#gsZwJ}~C@&rL1L45O;+ya=ps9LCiQmzuQsh zXg-Yiz7Df`h)(HhuBuxk(-cNcqt)Sq*SKnXO(qV4IUA-5+U|F$(-jqsrqdZEU%>eF zsxuu$Shk|5$=p7}i^6`2nF7T0A>DBDv#BODz$W#cdTR!QQPfY|@iv3Yi1XJ?u{+fm z`7s%*aKy%Z!c0lB%0W?6q1-hU2oYCU5a}FRvq)6wcBpx32Us>|N?dn}`S3=P#iR^z znsF`0Sv8j|FJ@(*sog)H>b1hxwbNu6k#wQtK){so7!L~lNwyaJ3Y)v?; zLHnuwq#3-sX}6ofU(rW9SY0LgU=qeR)3`x@T5oduzhVyow#5Tv;1Jc@{l+tpO6Lq> zT|z1|7M*xa5%BS?_7{!0nGMyDK{3y z2m`)SB3Ss!MpC9Me3_!NuYm5$&_{mbNhxL zEi({-!4yt`gUpmnr&B}X6pAGxEG{Gv*DR>HwXs*gmYv|nE_3FBN=6FIWFWSjAO6&a z{(^*`rqPlUmfFFr|6|O*H)DR@Zts}WE%SJVeZ9(R?pWXTQCtwmIMtfDXPnb6+0Hz! zF4A(#ZVOIJRZFl+&Vfb1{e5B6zG;XruvUxgTVj;ur{BGfVHUSe@ndc7ww-S5{N=xY z*~=HhZ%SXmm}hguS!N6uM<^kkhT<%>W+Z(ePfsD%xQ#Ta;}LA!zomn8A0(m7C($%p zbIKcT54r#w-s22}GA8!Ie7h)Hp{ACG221E$nX0Q8XOwX&H>*0M6{&s!e{L^xO`%WX zOdA2@!A zbh9bR*?Z1AUWqL=fC5k`6bgm9j0iR)<$x=$R#~Xo03tz&OPUKbs7=#pZ`kF`!5(;= zsS8059CEae(y8t{F}T2i!>s$6}^TG0Xv{MBQUsqDrnG$MS@;pQ%j%44s3ZG z=68_C`9(I6*T&i^L^)4<>phHt9I!tW+s0TI>W9qVIV-5-CYEi>Uc+yCqQ5HV3?cf6t!bl}3Nm zI`yZTrBgh!{!p=8UMc;odva`{)O+&T;(zQjCq81vF<|tIx}<2E z*xxB8KW5OS(!~UGWR==AQySg?I7$XfFgcok2x`zpOr&A#w9n6+$Ju;WGN*vs2R+wj zuJvZoD1vsJPUYZJZZ1#s@yyZL-Lul3)g*DpSroepCH3qMGolO%L;5;dB_awfk+wzg6=# z{(e6q52eCP7@~px9%!SNx3;!+|9#SfN2-%#I=QbfQCJs9p=PSLKPONdtN#f+rU(n# zS5hX~ubq1J^Z+3%2>ik zCo^^D&juT?#t?xWju`g8w4XL>(ftQ0C!zO2n$wz3{%v2SA{pD9vw<@uT}-DVo2H#r z0uCF3&4x~pYG(XGvH>`#xAxzuzm8u#-(>Es2v;@C5Yo7N4dkN)jA8a=*w3yuHW_#C z8~Yt4dL19cJG(y!&kdcCQiB5d21Pt|jK|3Y99XI2{j>AKqx#$Uq;Yy8T|X$}*S|w{ z!oj)+wP?bMo|aBjNzifoy_)d;QRAjl-TnT>ZKkTaUwx+TZm@HPgKshE!8QHPJ&%pC zhRObxs~pM*sanFiL_l|-9sH8?)h1ADV}C)`qkot6dHGuG~wI_2GzNGCtDzq5wfFMR2ywI?JKe!)V`BFzCV zzX!m};(P~U3H8BehVwXbL2K-a)p%gn*(`#X>?>38NeSJUmQHuo+J@HD!6~k+hX(wn zq2I@ayNv@tUMJ(4^(y?BFK^ zGnjYB30jMy(ZG1zr2r??jD?BZG7F~5mgNW=R zqSkc35pA>%j_VX$b$>ch|6GCzkb=+v+q_AVZPM5P1euOHFix8LwJ1R&K()TnwAWkA zzD6&e|MbR=1>W|4Uknv1=})Kgi$u+6H0|M2P&ZR`-$dkFtY3Bj5SS^VeJJi-Cfp5D zB5d*+K6$P7KO{3pQ<>jrr9N)q8}Vb}C@sZ|rw6jUI%ZOFY!sOG=R}Rvu7j{YS zEeJkT`Py^il%v+~z-GXjqn_0Ku8w;xliVxJ=E*Y@mp_vJK)bpT=wovkA3>h64I|_o z^CszawK)sEeyFpF$Q)k&E~bkt`r+*xEUKyfgAcnIn3Z-F5rL)ha7@vB!2WT{cDI*` z-1QcL4akPx7%qsn6_{8KhSMjCM9>gtkrEiNQbrpzW2B5RfuP4vupdSd>RhQ43Tvfy z=M0Q)U_ao{5fBqIthd;l(FxiZ+0CqG3Ed$eZJf#W*!c80igxraP%Ea;&g%%=OHo;T z-fkRhsFKZa-ZZ@wOuZ$m@AZaB3*fAzV8ADiJL|8JSaVZ@pj`Ch>dz;zQc{Wf#d>2WZPe%GEhg=EIMQuPhJmH53}xYLLi$Iva4 zZh764J)b#;$7m9tN>dst4+!8y`P_u^* zqhbaIg5sGH7+N1TNVKzIs3HA=2)cxj|6L^Y+PDQ48#f5-x?L}YxK7N8C--WvLJ)!g92FT>?ah3}78uREW2zw$edOBwc^(ojZDjkZ>8QSX^? zg_d%VUrM!p-VkrOjyB?lV4v3TiDl12MLLM0vqQeNq01PEU>LCuA3xPreD_P-e%Czg z#PySd_@LR|ueT23(GJe)o_r-aMdI6j}9?LG1(mA&Q>=zb(xu{%ND`7 zU@;iNOg>>x3@d`BAlgDRh-3+vyGUFwu(RU>ij9dLU|V)(@9oU2gPaYBsU>5KZb^pZ zDT~4ECL{u0f@rQV#bPibN8JxWe$n05>7vNdHE9y6g$qR?w4aQi0nFuUK3!a1k)5C- zjEm_ta&-2EV@QKh(#z2D57!WlhR{@|H@MW&vC*dw)A;iMly{(n!devXk%iKB(PD0D z2Af;UR|qQ5HHg~)StxGKPFtP$O}*Wq_=b&>`kNz2^uhtriaO8?9LwQF598dXQ{W~P zoehSNFVIaiit#yzL{KC8!k9_yMQL|KU!wt{E`H4Nt$8!bexH$D3tr7PKnU90t0qpH z4x9lz)(3-Dp`pH73HF_O^9b(R2K;z9L22CB*y7ZkkA^)eL~t}usHA_@#f$zd?tMxZ zV_C`lxMzY7Kg>LHDH)2`lTAe}M2iEWKe%2Bz|^7m#>|lR;l5XJZ)0yY@(=;>Un~N- z$1)G0+b7+WL9avZq<9zgo9Mk$bX7z#4R0gFa@WzYD^<5$#kfDk@Ylvez$yF$cqkKA zNsxB{EG9V+#ac>pnZjdIO?0FS?*(cDV~+gV-ckP{R3f)N^!>OR2+fLoQ6n|^a<^>Hr{j^PoD_z%swUe?Zyn<$+AH|}9* z3xKed&EkPt%AVqeYKmP25k2Kx&ySrK8^*Y|BR%x#WmzKl-Ya)?NOWKq6FYh9f&vU5 zJ!FKtiyz+9c+jl*5QGII8pXoA$iu_dG{4(X*($uQ@PP;864&cjcAa^MKJ}5I3@?pb z8E?e8)JAd8Mm0fU)afQ9m`2g7$RSOst)P=6zMM~kud`_PzyWDxxjGJGv^2&@$#HKC zkyn!6Jz`X!i6EKI#U0+1qn3m@EL7WgNN-9Me)w!3ZKvNhP8zM|e!PEra@c%Zqw|wO zJj2~{W7*I)0VW1{BbK8u1XYYnheN{Z>))fD=p`yH9c=@RchX16mdCl{X$xHG_d#ky zOQ?xNBn{Wt5bS||fWiK?unBvb^Q}Rh|P-SfclQf&o6Pz+EW?&f&Q*>-) zv{efs!d)FWh3;Db+8ZJ)2sn+l?`A%3O?z@cQifj2 z#_s79rMy4{ z$4x>$OkMToEaH2_il+n>>h_~u{OvLS_RRV1IfKz{9;grArStb}eWz_we%u~{MFt^qZSe@&rKLi(axVOVC4juFZ z@s768F&&=QoQO3D2LPwWYY%;C;LU3WN?RSu2t15uqebckyn&{qj-YWtRWqw}(Ypdi zP1Ic^nLsDd*i)A}j;R#Y&zg}oenmi_J@3o6AY5hSjG!gZV|*WkjJ}_0F%Xi~ z%#fOgbTS;U2gsG?7s#@r)0@x(WoH_7@gi^3U0O&#=4syRN-YPVX# zwPK9c-*Yxihe$}h(KJo;*XCIS?lK7{bMa;=l{@#sx)Zoa0P_($d&Aw@`Ro(w{!eF)Gaa-ozj9`8}k<_ zmWXBv>;?bwDUti9{|T1NL9au8-0{ojv*(KtZOZQGC@@@PRZ=* zUbU_A^f37Ah6XKLIAW88F1`oqKP#yJ%&(t^oQIi*7J&0SSLeB3$K|@Ru3Hjn6RI7w zkDn(TbSq&+cbZ>aDhMpDS$DQ<(B_Nz7Xzue2{DwA8W4c9+ATjM)gEZPs7$g1bjSt5 zvGTpgx#U-QBu#d#Gy)Ff7FYNLAGhk#;^*zSf+)pDf{But|LLNx0Kl1P^rd_sxS;BEU%)umqTTIv10NEUT=2^>&vlQwg5tTNLO~Og8D^+fvR#qYjz!U zu|9^lkH0%xOx;Yy661XOyoTE2p9hLXI&=_rfKpKN1WVMZOBGNrtr$jc_H_fC;_y3t z1w^HadUY%le0vwa>(1%lC(iejzo+^;6d*-Xp^b-O7E=8~Q%4}Ae#at4EJ=^X2X(F5 zii`1-E;>~`}i_PYTTM*6k$>0#^ zvR5_;Seww920wSlfwO2Vw26;`S0|(U!8#ePT)5_5SV!b&h!6uCbng+@Ml@2>(qy3+ zPiYGw7rJ$mURpWc|EYa`jI;!U|HA}+nNZ-D_;Yt8u7F3+IwsVM`?alKFW?tU$iCmE z6m91Awqgg%;GdkDE;y=LHT1k-3){-0iTsg>`Rn1lpqmz~pZcU1j!e3B(A(i8dd@LS zkYO($z|pg##)&fm`ocr-wREr9R{YZz;5 zsuQ{c=NxHH-oI@%;&*EF(GTvvGID9@?lQG0HTSDHxa1)owB&8mqgKIX=q0(29oP4P)XopiBFYhssyUr6SjRYje+?=lutOs7 zdq&-mdC*g^2yQc>?L}ksY|P>S38iyCOsxk{1V%OBZAKL?aqK z=UN;^nI;EwwPvswz|;%cX5!S- zsE?kzvF9+Tw;E33q;AGo?>aD=&}W*~HmElzo!@o9uC#VX&xxzBJ(Txdv$wSkzF=+g zqo(4XM6b9#U%!^kkDg181BZ{;G_6KOe>BI|Jo6f6w! zD-(gHnVP#mpvoQ3vak3+06_$)HM}`tMFQc{C`<4LhBj5Y)l!BR(k!FTV9jZN1C1=xJnehylg>^XW`%E`7bBfL!KZS;Zr&Vp-vwHFdb%_I`3oE zgf8t#Z`nAoB8H2XDZza3cQt2)qiuAPoJ{qRysq;EP)-$$$c`@fN^CfVXt8D~Hzp8R ze6%T$K}cHHL2b2BtIOn9VrqIrSqFW~Mg*5GU~3}sv&KwQ3n@JiwAdks-=XCp$LkH& zwr24N0y>#)8>@JaGN`rP2J)>`3NtkDt*DtrU(kJE1m3CL2u+xyWImtH@o;5<>8fjU z+PFfKgL;c;FTawdA;9QH*~K{brb@-?RO5>?TX_apxJX4VwZ@Yqi`iZx6^0XP92gu+ zSAlmT3g)RUS`WD%9~Mq@P9S(5C4YNHn}8Hqxkm>EwPjuj0wcGTc4eiYMBrAHA4~^- zYU{Ot$^~X;Sg;>jHE<7g>hsT7!MsYdRy8b0EO`eH7^padD}T@}Xl;gP4i0=TDOFP# z0wX&e_Z|M|`FzgrKm3B|0sDT1j#ysH6)hy63NQD61X;jCbnpktA4h zt1o}%2F)1gh@a`uxvVT9ebOE|u#_v2P}5TgW3s}x3S z)`BdoE2`K@$Lj*sb3A3O$Ze3fxSAV!DAQG*4P}?=GNodYN962*qi47U_DUt+$XJ@*u@ z@Im#sxkO`N80cR(EUn-w8CHA0^Vg3HI&}snuIeI?M0le;*BhObjn}N$p`BiW7#k#ll5+5k*?c@;<>{6 zI^2z7u-WO()nU~yGT=xB|D@M^w%agYE7)z&8jU;jey>9qUkAmtMb@>Yi&aORD`C z5?|^dSd_sXI{8~}CIMhD39w6^Wj5)_->9OzytA9{kFUxtJ=i_QHFD$SefSW~-2%?T z6n218wmp7aiwr%`5A+_5(gYL3V_T$OwN0!jD#%3x#?u?|pE&p?l=w>vo*R!flF7CwE0J~1C6sB%G6?*#@5H@vEExj6e39p zG%njse+%rSb=IonFz(agly}n8GI}yJ6mUMbVaGKVo&e?G+Dp<|N?8sjLuiw?R*kJS z%lu5A+9V`M;(Jac@{-WpwA91dXLEea6Lo@w7&?o>j+{%(+)BubN@w$FHuYIJcA%&s zdZd2>n$jQh_A1&Lf9xFA7K(|z5_wt+ZB(^_#e;_W$1$m+FbX|m|E#!G9A6*YI-r`n6d(RD3#tjkfF zT1p;r)g>`g^i2^oQ}I+!o1zo7F)o#?5^H>$C7$6zpcJPUr)Efw9;e)4E2-6xo&sc7 z6upD-GbdN6z9C+G>kaY3Y={?jL%djZL%g_~4e`H3e78jW!Xx4rHzDE|)B%1eAzphA zqCpZ?UGgn*&Rs!sq22Jb7CO>{bp`P}y#yX@3bgI-pBHG_QQ;Qw$6d(^Zpnc+w#%dL zPG;i@0&|~F@*s08qZ&w(DEU=`BPR*Lh@MXrHu)h0UZ`lxplpXbM+?`MeqKe*v$NJ| z=M?rPNI1)P5{Ixd@~QMXl|HA^<5Y^HOZN@bH_oF4uA`otweMtY(RSNi4$Lw);y}sL z9Z&hJ0?+4^4g-b{6UCtOW!uoaDr<2uw(zC@0GZm4jqgp#9t~fSDUFy(yTcavWPNW! z^}Fs)VH5n-NJU;;O5Of*{>e)TOI%WPFWyw%9keipTX-VNh*Hp`fD7oU|9aFo2?G_D z0I)^*tlQA97S4!c`{l zUCSsG6t@_2<~WF}agcxq8{(!&ERbUVPkLW68K|NN!+5e zv!Y#1zg-yT&O6q>4+s5ZfYf!=e8cu;5UKZ|@#g$(kwYT*I8xZNt52&b5q%jCy_1RM zBvN6?@g<=ww%Q9`(ZCb*eJ3wx-N^Ab zU&RL=?IWZUGt(D3GS{M?hm)TnFMFcHdt&@*INMB+Piz3z0wGuEnz5mrLY@}14fz6w zk!g~?#Fo);Q~0feO@ia+uid{%@1$z`)gkn?^$|zM5Sd+=%FGPbP1btptBo7mcb=ao zm*jEZg^=F#uxBd4*0w(R7Zmc(^yw`CMK)_euGy+Mvz?O<*Rf z+cAU`pOa!#TN|Z$+?c6LZD83!p#8`5+dR1n`M9{pz1V&F4wPIyc}<^nhEt*TzCizF zYn6&t6zJb=CCIYTV%3nv0a-#etU#wufa%y8V{40>E^QoX1^M|(M0j%f#-^GLxX>Ac zhtD)QEB{rSTcM4FWTl({O|wibjS$1MQ3kJ)(d>2?4U}=DU}bFqo=e?q`Rl%ah0SZ9 zN`*!g0>f%2E9fBJjYln1yO8ObtqKD3kH@6V1SiO`aLpCBiBjFbs>6M8gW>ASrV?}1 zd7#_;$&nD}-7h+nq#6NiwV=pX<8@NE9juM_T)m$EjX&&}Gpu#EAN}pc4=*_hyV?}9 z1w=_PDmb+<{xg|Rk+rE?jJ9{o=G{p;wjoNols!N(^;B>c?v^UC|R0o7TYwS1cM-;jB z-7loE!HBRX)Xn-fTNDm>E#5TCy_=xJ9Bm5zWZg1^2dM`tr9OVC^GbpBXs4X6w+asw=o7a z?xvs65RoDstId!m>=;1mFgctrb4cTnD)t{RQ-ltv0*VQaG5~hQD9I8NgPCAw+D?~# zB?C#`0k^&!2e&sGzv(pyun~Jh=1Q1@kqueQH^(f67Eq^>0?K@uD^<%|Sc8_`FD|;P zhYl=^Tec>TcE>L7zk`&$mwTzqn^RcDUdXnd#V9zhizAUOVI|h?e92vh%_&iYFud$K zX5uCku+=1n=A$DN#i;pw0_w;o6i~o%Q`d5WMyzvnvV*Sx-AEoje4TpLDBDDczVW7~ z+Y8wx&`HIr600T0S5W4bfp=(RaagZVlcRetm`7fyA}?x}QJbjF_jKAVb-`{c&J0|- z-8er`*KKldrM^({4qRYEwTvpZ94G3$qPL!I`1o&))Qn`0 zmJnzpuR15AdA=tS|Kg_UbdX`6GOoMqcbIKaRgihtmT9ubn-ag-`cCpsUT&$%P!K={Oo~fDcTHYUHc3KbFb(5ixf11*}1v7co`pC zn}*+pANQP{>2NzAQ+nb<_v#T29z*6%OKrRYwp{2iTCTSF1}0w8*weT41o+{bu+F+h zBAN~&YkY~(w+`;r!-;TBMbj@OCx9++pmrK0Jm^A1?WfLKguS{DYvY=Jk@+?52Ak4#173@@M0a6gmw=HItr=zITpsAcMQL<7j%Cw4vbb!; zRL9!JsD=+)_2UMZafL;pJpHceO#rJEts~&+9;+GF_UbR0!S3H*c3j zg9?veE{cLI6?@)z&HG6}mIw}w0(i!#wuOrR@U%!32$iL&<)IS@i)ky+zh=bX5fj|d z{#dxr7$QjXmUa$9^yGP@HT;&)iZ_oJ+f8RSAR{hLw!I{=K{!tU{#3}5LVS#223IFQi`d4 z`lO;ak!0T=9RNo|y=`~I(FwfQoo;l|g{u_EQpgV-KSD3${zf2T{^R_xDJ<6mq@jFv zhBbS%m1R@N2?x1ugqUE0A&%tLu_V~!X2iaAp-9i-z(GnyI8V%(qiH0{XOi%-gJ*Ts znP|aZ2{wa7t;zPrhUw~YG~A@r3!Bw(V{?lcJjsBOvqfe)AlMYO%{CJ~uDRbLF9Ad_ zm4cVk;W1K0AYVs5$HL=Rfhqa7-aH4mP^ZCS7Vn@wv1E6L4pbwz<|c~5Cxn@-)cNyU zbsn6_L)}!3Lh)!Gk1^ISuD)Zc?^LP2YpU;7ss7AVfA+CFPP}SDc`2S>^aEkymHaj< z!-|gM1BL@fr>AGYGuNK4uTj!Y8{M#vqHg5*nb4+={&2q@HputHXig!!B7~yf^NsfX zy(ULtwpo7$|H6RvR@3mJU}$@q8_|A$<^;jFE)y@FZ)hl@>asxi4BNhayKTe1oZC*F z0$&-oQkl#vK;`572FA=ww^?D26Cv%~h>*S&#jICd?dpqti?yz>)Kylx(n8;OotKDm zkX7M|j@6PIxxW5{SKJhb)Ds0fCHEPw$7>t17D_ka+kJl)kZatmSAK#i?{FxWDY(6* zV)k|#PG*$Jbc1II=8zk@!sdTFv%!Gh9*9vg$S{k25r{m5awe(A1iz`nT;k77=IflA zQrsbKih|FcsBg~^M7Lj&F80kyZ;mDh?Bd*;E+!fK%GiPb!$?y9pn?A*$KC(IVws=Z zZj0bPX5jz=UjO5xvGYPM=3eFuf?u1^4L-_r6)DyRPhf#1v-E%mac5(U$YPS>@?4bB z7=#oCLrUXvBrn651nD4-^sYHwXS_ZU#^#=X-LTn(|CDP{1cwHm zT^oF>0U5~oS-$eCnFYtxkeHp@@phNg+XO8Vfz$aLdmzH;L_xXLA6ItP3>zL zLnYcIxKxXRY*@|VYC7usR>_&oZs>i+C%MJg`%1Y2_i}d4xlNmUh0vjaIVmRl0XnHY zLrF9B&d!$Sxy+WPthCdLG zu$l-tbEB~x&p5cdF(79qWwe++hY9NqL##@}fx&7H=jfH!)-J(54Fu)sfL55a62hk_ zr*X!mCg;xK1Pz?sD&|3gK*-!lo>^rs+~y2yJ2GQSK>)NVMJRAonQHn+Hl7G1_tlRn zhMd*q!9-P}xZK?tWTj5}geERGI%qdl@Do1vOGbl`HB8SCggzTpGWWGKgF+3xIwpcy_*@)!0ygG5PhKw15Wxs!tpDQVqHLsHIR{5tF{o?YF9#|qh9oX%g zAyUgfgNX+yvF+G?y%>mmRPtW_#MX7GT0DV3V(=kZ@+)$fnm~I%s&9y+9az;b2f9Ul zu_jv#D+-r9ogR%WlhP>xw0`NGYigYXYsov98xK)J`PT>+IGz5K2%&u5(og|kDe=J^ z)!Vh`;J6O!K8G!hrcT1y8(3Y^?Ok!(5H@m_0&ZSIcf@PKY`FTkv*aec6m%m!9VX|@ zOO@-S!G+T#kObE`ZFCOY@?^KXSBBKdpKP1H;W%ZOn^V0Heq#Ly)go;EP44a?#QATf zg*ly;WLQMiO10Zt@x4NyK;kZ;MGI9rED#%AF(W7kvk8IOt}pr3(@N(`b~JfZOQb>= zizgMr=BMwL5MwlPSjlKG;%F9T+4LGe+SalXPF@tGCOtJ=Vy-Ond{2l zu2f&8)*y6=DjG%b#^qEFO0Gd0mGVKx>1VzJI^Z8gS?)%d8=%`Fe?N@8A#lyY5zD+| z7YpEaU_=FR7B>o3s8)a!P9EP64;~;`_)5f9f8%JN!1SGA_!j(GkvFE4=QAF^8Ql-b z2jFaB-g4L}%{J!;WB>Av5e}%~{dTWAQh?f6aDPukx+{T`2T-*oti5dgUWs53OFNlP zRsjLz69Cix3{xO9P?1fDl6S#KCo{!kv%v-|#FN+1poU@grt;G!rmenTL%){7z=+l^ z+-!Towb}V)n?09|TCcp9X*%;WO}qCqN^c#p@gG=vp0%3q>zzj2IgQ`_vf+VLv;W-9 z60NS_E8b@eFserl8KuuUXVMhJMB&la@^;X##4k4Eb;oABCY#xMyAvO_8VxrKphY1J z0B9Zz#6Y-l11Kpk*8(zYCx60sNQP5?4KSV zpPopyy0=7lW7mt|T2Aj3jbzW-cdv;2Rj0aMJm|tP7YsS4obE5iAt)M`MZm0keLRo5bs}HqF{G_ zfr%C7;(GBidXQ?Rnfc^}QFYPtLsE{b2HbYh`$`&b#^Jpz5g z*PwI-{OOh=u4)52XExLPQ*SU%mwf$u3>&XpOHrVh@ak(=(WBpSFZBIAovr96tKG=$ zvLU#|jQE;wq6G6~4(p+I7m$7I!|hK5RM)N3Fr9s2S;OI2ldV1rz>K z5`j8O;it{Lb=SuS&Q}~h!WMJk82YW|$y*BAqWargcinl&I%Ga4F%O<$$-frD6)3(% zxO=duMbzbkK1q0MZa)AHZ%A_3i%EXqr5@nJ$q+=8-$8zICQ@7wKtB5fKE2asP-KLIw8uxOj5JZw7qpUT3%IRgrA090Vw%cB_*JFTIPAZ4`cI+8@G z#a*A?PquoR^uLbBB|N&2S=0 z_QFoOV4>9InzJc{6q(D)=E4WGt%w{By)C*&4pXLdh#ZxH6;!W_=}y&UP~ihEtPqlu z^0TVVG3+n8qp1B$#F~vM0|CrK%FSLE4s{N#STK?=SHs?wx@tm#3=T%6M+N^%@8j-e zcQ_HbUWb_;3Cds?e1Z|m7?&(c3 z^D0laE}ma(-dT1pP`kvQ*t2^kOQlF$$@Is)B75(Ujj->zTpE=`xH#q7S=XTcwcfoN zGpLu0{`kY7D&Re!_OPv?y#@%c&peZ6^PA7-k~<8#t8q5CS7!R#;d&@nu3Lt8D?#}mX9bhKnz%8VR3uHIt0$H95I8xbCF5vI> zEWg_wZeFn41Hwyaw+FXYR++Lt2iFP!|HNd!88s@+zM}jj=u%;QM2xx95K2xcxNCIJ6|GC7UK(blT&xK zHwPRK)84)y)?t#SI$cL%qGE!J+JbAEz`^Q=;b3Tk^y>#h6VX>6h6Dw9XfFO+@PH*7 z@(Rc7K!elAsW>*P9XLwdH=)y*)pq+(nbeC`ccggG;hTe#^W(VHc)Pj6Nu@b_g=5M$ zAkQOCyk2UiZb_!Jx;e(ooyq1k%{MF+$aKpm!IgDhQH{E`A9wqo<5BnPbdhc3^*)kB z+4C$P`1QIUDIncRPthDf!Z3Xk?IB5>MMKKz!1kCjT3?}#2M($F!Tb2A{_E*^$9J~@ zYJghiJhN5f#tG0v4bvJpGY6FzvX^ewoprOTQp2%TtT9RrG0>@He6hi1v=h^e!zwLal>g_!H z+wSv!i?;82AfZ1CSf42Rx2wf?I4P;Oto(oIAGKrKX9pji9H~=pk|s}@eYJVvyq>>| z-n0*%JbSV~0tM~5VwL;T+1L5-@+#ZtZAQD>yW3CHUpvveVS6|lDpnC4L8MKH-3a>{ zd|D>p)Dkm8gj_O>{rFvMTu<^Psu8CVyKjhc>*~J$S#4;wo1maH7~W#^Nrpp7tA*ke zHp3W_fyHb1xlonq#p`tAO~YH4VrC3%o4*V>Zo>*;9B&+QQ77;;9`*A?>i7IOi&;3# zB3~uP(jyIouxvQtbj}8Z2KhlSA97tTR4X0u)Vj1<(CVZFC zg}58iNV?d?IIakXzdwEq+WN7$i0ansHyMTK8;`v683av_CMYvgpi^UDXRn-5pHiE# zy&VAPbHt2lfhR+8Ps25Hp>n8p_@WrpcCHfVw&J#OuFd*7Wj2C%yt+|T*{VThb&QgN z_^-FzbfnF8+&Gr0@`(VQkgm%`w#( zry$ViUv>Tq`A^CBcP{$jpC$6&i)YVwK>mBa{kQF%zdcjmcXnUA_}l-=e}BcFTgZPq zKddDGwc7#Fk3VYZ?nl19p>X%w`#u;=zra`5a~T!C3QYU_400qz8{l4RG{UOjuvLGn zQ*e7lC#NT-6nuS`)PMw9JPxmmt=O1c*q@wT$#iX}w9c=`$Bj;_xsNcT-LkqEFcyXfGJsH^rb=X4 zfM;iKa2frVIFN0L+WI4~?f-KxFfTN8X~%EQ4-XqHj8^;NIjlw-lGt@q6wQvi*Xs0p znrVYLPywp-@W%lb{n3As<4e0OQ@p(FjxMM3VRkjHMX={F@NZg+qEE@!8UqC>PKYa5 zt&3_J01l~Cbj&@-ECK`)1JpejERu`K0E-z@ah|}s9FG>Qodyu9@85DX@^LQ$fbRgH zsvt)dz_AU5tJ!q}z|OC1T^Z;`RB6Gya*>Z_q_AN!gPKM@#PT z5XA~BqSrV)O2U%N7b7(Cq99jLn}u{p;M+X={31d|Vv=SlMAjIBlGDNA2Q)vZ;wX3UPm9ScnOy##-EDfR5b$*-O?Z3| zvGeRyF&}8!Q?fXFvBahtlRO_Vvas=mCOwL-Y3w~kTj56%2Ko2Ek`usuI=G6=#p zu%QfVXhiG{7;v<+Su;?y+X=_`XR+rVUpm(X-0K)&eT zm7DNl0tZ%E{oG{f?78?#jq|nH#HJL#Ye-C^f$MmL;Y5~b( z&~k$kzs(_`X>Z(*q$HHi5+(7W^nMO*0mm1!)U`&Lr=R=3egBc9LPx>fyD?zka~YX> zncuOWXO6`>eA@Z#Irp8w1&ViQJb}O{cx6$YY8;-N9yG{l2{a(JP(f!u_!;jD!4h@R zs1nRn_l=|A0H`EC0{R{t0u`AtIOre8=~Wlv;?CyN0f^RWB%ONm=;yd` z(rNv=5w5ivO(-OeT`8yBE($FHxRWQ79$QMeFM9$wrWlPF2CWy3m@kA%Jybt(f6t)>=|dw0{|V#7kdlLp2?zM`#-KF? zGFbm8=?<`diUIdwyFp}o@dO7o5I5ewR*g&Bg`0SbSkRVgMFv|>z1WrkQt-(TzU`Iu zjr~rHdET-v%?i(_(}LBfaUfeuORJFSU|@u*EmEO7v~C|l%XRh(P)g7W+p+RUH#N$K z4)~5?WN7s-My}1KR&P;1JHwa5-c@&U$%(&@5ehaYNqeCNosZX6hTgif*@z7p-~B>fWzb)GHC>GQsB=(5f7(w*N#=B2*e#j{Y261!BNPC8 z+CT3~oyOgH@9L}C3S)Khs7g&W2!w;4a0Vq{VyR}arNK{UGZ(zA%AH&!7R;2~4Y#Di zgnBgU5w!?<4PX!k|J_lKri#nG6`ez*nz53t)E4;!YM(h_1nYoT9zM~kF9>eme4oRz zf&2j95lGMCLJ0mQ<_hB?f*)auY8@d}tT7y`p{BTV4Dg11RoYF{;pGG)dov0KQwVdX z@pO@>Ur_gzzJx~b=eO;e3-!s)$Cqkkb9G6XO(#sO>36A~hi>RJiXKPX>YLNBv%kH( z)lRaXKzvTh^ZF#pp_^lYfw%IxbL-`-{dJ^gGxuKut7Ya1Q`uC9bRfXlvR^lrzn|DRb2)ML=@~t=nFJI39m2Z{mT= zX}*Dbc@H!(w_w#`I!nt`NNz|&4wc@WU-})xrXf>AOjRG$NCX;8XC?LJFll0rCd#dx zyQ72j|Gzi%fASxD|L14d-re_6djEf+ZvNl@4d4HFcDA>l?ZEy2*|XjMegFSU{(RH- ze|cAj0Q=+o75-w8#;HV--2ch8+VNhO z(dVmq5TCto9>6>Bq59+XeAqmKAn176e}A~Ts~m0YR|8(dI*T6%kQ`lfyqtEObtkfVY9(^f+k zdlb+-K9i-MLBiqrN!)68U~mf03bb4NzOmmqZEXu65C;2=--oQWe|+$B+-S8_t>@<@ z&=lF9HruBss^0en_3B4Q@o~HPfx*2v_iY_;M8DLV9aRmsWMT3CNoQ?Wl>_1r8~YIk zSDw!M7*P{iKqf3~<=7QC;NJbBmU2Hn2F=&WDL{#~i)*~8D<%*{JH<6xZItJCrSdNM zoW&GrMJw(!E*kF}3iE2IYQcizHy^?U3U%Rvv(8z#0F8>YMh`CyK@Yw`(o;j7bxD_M zenqPYFs)P*_%Gw|*gk7C4#3hO-r0UzGoKAE_UmVLG>6$h%x*@1m^ZwVy7lwUX~n9z z9GlUfwe|3@cEA5;4y#h#R=Z^U&;K>i`u#t3Shq*3;wdXmV3ir%cv!pt++j)HV0jn4 zr_-~8@yrt+3tz$6Uqn1rKf(s^JZ{4+SyP5_wt#2r3L(l=%>WEcPCxrR?8jQ;mlTgp zWF7cS0f7li0Bt%6K&Q(!#VZH(S7|u6KE9{e~jG#qfp zlgzPp^hmc0Olh8sr=OEbz;mV})!>s6fjUFNbM+gb4GYo&96J)rZ@! z8Cvk65)ZmU0~FMW(W*hcAgsY9Vi2T{ARMFua(sprwu&A?BxH~3X0!m5lMVBaI#w>m z_$72`o5ip{lkbmCPloUiOmzRj_U?z5j~?-V_#6C%!4hrzC$Hh}7*i`kVAbNn=VgW8 zf7}d*pq&lkKKVVz!};&qMc(E`4&KMj_CCuu;M$F1SuNTw?u>oh@2;;Mr>}sh$6e2- zijvV888{|-XP0m#GLuZnBb(RUP~jtpI`FwWDh|u2vqOO8pUE6Sn{YzW?JCS^fFMxqQe<~C0={qOUFPDf{F?B7bEt6hg<;AVuKh) zrH=a3$#+>{ch>weEb><;pv%$pqC2_;4MqQYWF#-ZH=!hIzdA87E{o{tEf)V3BtdO$1RPS~l@X_$MuYiu48ITO;++lC86}tWVxAjyE&z==CG-;D zH5&=C-D&GEG;)H=L7=Jy{B^jsi-zL%t$I5?I}DCM?F>eSYOYsMdy+?g$9L=KrOq^H z{DISSF`mJ*`AZ1+a`83lPQK#nelKC7gh;mI?r?N5z1C=@NVnGdKgy<;#vx%6eMzD( z5QGF>iaE3i1Ebg_n7$hfXYhp@0B|i>nkmJdal71#+Cw#@8p6g`WfKI6eUHiI;X?$d zEY~&NViLeq^O~+o6zwrIx0qNcQjgp zT-Q-7KzVm3irn~U%8SZp^XWwr^%of5-d>N)d3k?Rd$-;6pjpzVbEtXU77%t0N%8^4 zc!MoP&>v-$1CuMQ4=;VPwz)P{9zHx1q4s0NcJx@J{*;}I1+=ZCz&;w|_Tp?ZDk5t6 zS+Qk`{KDa9tTDLGsyMWHNz`eB>Od3+=^CWEid0v2rENew0FB9eAik}-X+jSh58-c~ z_vzU_7`wNARcGZsX8Bf=vza=CFhigweZ(1q*r||>glsWs%wnWYJ`$ULM8=XaNhfoG znxXeC2(tIv_D4Mgsx3xgH;3ppn)Z4NNG522Z(l#Sh9Pi!a~-XOy8WX@z2%@z2ZJ&> zGS=i^c``QAs+tV(Y70UEZ3&^P9Qg+O>ubfx&yh(k8O)kqfj@&ZZ77SWd(NS!(3;+l zQsxD74?YNNVoT4gyJ~jzWtZ#F^;c|q=Z0+sknMtNx#PFcP5nsoGGpn6bK;Vtxp^=^ToOADnCmv7cM)&45J?$IZ+KV}{_`Md%$tuLse4}lFSxEJA z1-Dpran7y+7jG7}^<`KK-44c!1pOc*;frwJ4&r6*bbbj8CA!aAEJm^@(U`NJI3JUQ zRMVtZGxaTJ@=h4arRWr?u}$Y%yC#CVFQ2(O@XKc&5Gs5fpQGDbsdtbxZSSz_^;|Em z<8gY)bM>{0fnhEtpC*t!8T zF(jA{yaIwh;-h);dj;mLJrEHJ#XQG1GrqGflbb?Ki;B8<76{p@`niuNV1qZsBKHs9 z%4~jqFL1pj#79pH@x14?`wAJ*qYd5gL1Dwq=qXFlfz=5>Wo7FQ#Hk2^H;p+RR4({` z(F$)GQ3plG-=Dk|eQPAR*tfO7lm8V2c>cR$@-Hz4i4OuENygpTZ~lxv`mhbXtR}(c zmtxw`};;})QzNBFZB z2$ngGlHUeq^UVe@)}v;-6CbL3SAGB8hHVNFrU$$f4g&`(>R?>GNB?v6&&-o|~)F4XMr*L22NG0jb0 zO}AeY%r|hUJT&(j>ILUdI~0+4KYx=fBs(=;XMy(Ix@Piv?gpvNlXj!kA?INqnE_G^ z9O2pur~-ZcwPdsA6SF-e>6*m(2)=MC3e23NSvWo>Tk#Hz^wBVcPL{?={moIs&&w4u zP`k2ras?fseH!xbJE3!z8xhCymft0cJ>CZTbg96$=*I3`**!*7bXpjykw@=J=6nIk zZz-YV8JH^9Z=oJZ@Y5)|_~KrqL4v$X0soS!to zgcft~09T~{h3ZY`JpCxS1_ydV8a~@HIQ_ni)nVgop}(>gf`$`YLT}azqd+DZIITO& zPw(8wqZX5FIPxdX3X#4*_D%T8L9>mF#eaaUuqV-|b#2Y3a!`Qo*~sh&^Oa7;NHk$p zZUIrj?Zg!V_C%280trwyr#s~;jG>yf@G_2YSL!%%!K$7VJIv=oOSd#*brr;Avx?@? zs9S_CsTn+)nV(4hw;5<>0r`A>ZCi?~F@!z$Z^v1%Y8I-x?3DL!%3?`?mN)EV?%Djo zxUL_9Wm}jKH`J zs)1DNd^YUgsPpP-0?_IUG#-f5*|g+=B$|OWm-lKRDeEWOq9q`1i2XcyJbF8y52~gRu-h!FpqNdK$%^wO8Cnx&a2eFrG^Jl zo!t=Cl~0z^19{nzA_IE{&y;`uLG2x%_LwFHub1|=M>U9Z2v+S&9VuB6UAd=~3^HqY zY}UP`(4n8z-#LVSCYcc`smd!Vu$O75N%rC-jzTp}y3JcDq){pc<1beo9n#>2XXtEP zgK{uUCsnMKrBxICO4vA#JN36akWKIn)2osZRD~z6RhPq=5@|1Y)a5z)d$be16y_L} zVegj0-n|*@_Pf(x3I`5#cUUnoAEHU_&3gzAAL{NF^+0yn!}<6NM3}-W*6?yN#c)-_ z)QbTIW`}3{O@*xY&35w?p9kJG&$fTCuS(0us%}vG_0~a^l~i}Op1Qr?4C|twWvd$Q zN9Wm`M7_lv!UIO1lX(hwcz>7+vQAgvGc3TEoD;b5ADkWhM7fzTOef!cCkY!%Xf`IJ z|09kMY1?YefZoH}^6~5t!VByx^qZ%Pfq47Swe<_oA-cAnDY13`7+TQ&w+}PA{)1e7 zc%Ru6eekP@+a!=N)7M+QJ)Bvu`W5iD)E&m@&wjTy zB#=t_@Ts|ylD9n5LY3zodEX1{JV}Das?QD3#ZPp>09Cx2vWk_ED%%aiEY%uFQ?gbig_BxJ4QwbT-!^V`G=B@?sDMfu&8={$_9ktbGS z?bWuPNzYWK&jHMtgrna=PviAGzaCR8ZTuHB3KIw>OjfEq!9nZ}1Y zc?Imw88!%!Tc&H>8}M#9j7=T_>g{!%hpujzDa88hsXH*=dL`?0FTd>ZGMi7wN|sqn z7byihLpM?MdKcprwfKeK+G#>6WVYRg(dga~j+PD}fhs_M@|p=D6?15P0HeI4)B1s& zPV{#&uXi1ZJ=1}}M&`#R4viv=258*NRcR&e0BX}HaVWf7s_vJyHIL^~e(OKQ^Gv}q zw>z!onY+pbOMsFah6=}3xXB`5XSfESV#qCmvj(|)j=u)(5>!}$@&&-Ya`>-|ei!@N zdSuCwR;pt4CCw`K!{1uP+F4P>niZ*7QPS)u1O4=WxdRd>D#CQ$ zF!&g%xf`mvTU`-X-`{VXbx7amE8)7mUNWPuZ=m91$mb_zuositK}Y>z@wj(yIqpK( zIPRN3N5W~Iv`*!Zog|D zb|_$9V6w39(yQSh!|-G7eE(OA{7=;)XH~Vx6<=75hNV(iLsxZ(YC}UhPVmD@*QBCT zFOwQhPlFj6LM6?m1-d0!wABfU3LZNVx=m3@9y06#DKwQu-L11xE|$`@;FXE@OS`gu za$uf%V23UnTwns;*kDEYYM&n$pC$%QaOAsX<;>SZH9WRyF&Q50E+bNu=6R9sCw#fi zLW;z!s?Kx9+7fhL`7E4P@RwH)7E#S^G!x~snu@c+$h<8Z^ml>C55n59Qp`5A;Qkl% zcL^Deo8>GqK6S0hjZaG%>z(^>}H>J)L)^eB>XH~{d%HV!GN4e`Xv0Y@^fL>>)h$|673j8A+0~8<>@?h4-$yUH{WUtI5!fX|-s#l*# zADK+N2N_!cF4NTYlh^sz^*!ysWUQ?VZ4cbe!c}t?2*El*69j4hP&^1>e^K0hwULI+ zFxHE@FR+BLb(fezxD`umA#BBCiKWM* z-7K|8@g9A&2`@f<_LLk|R=8VPdNGVo1j(L!?v7Ob=`0~N*uAKp8r>6ug6kR`K~Z#n zm?B%$&mqhwDM2Yh(xOP&6zFy*FLm2|r3;_(6nvrhq>o;5pHZ2rVlQAGZZ$Nx?qQim z54MtB0FhUeUGv-EbRL=WLO%Xhu@7+10g@{wtBz#OBO!AmJ06NLBV`IbB#f?!9Wxey z83Eiqd%Gi%s({Eucup~!5{dJ!kRR|m>^cdQDXn<;53I!#!vcw=!nl}XHXU4kfBy8z`^3rrPy6E;kF{|)j4uQ>qzBEKl z?)ZcIv1|q`kd<-Dl_tQ-U%JAE=1~2JspjTddbZq^Ne0SmIH-gPGp1zU&RIo-GZl(q}^Vdb9Bhyoag|p)Wek7AY6@vKDKE~nag?7>Ng5f)S_`!XUGKLf4Fc5n( z(IFR0Z-rWwPn3ojzcYo|UlSywbCsxlIi0I*I^?$i69$9w+gli{;0pB-eZdeD7%hXM z>QVd+P%|*lZc0EDL`EBy=wxcfz~xwSFLymL>kH#M zOnSIGdTPiDgFQu&lynnt1w$Ar_Whr24jXH$fdOwt8b>}F-P=gGJ`RO3=p z$IT4m0V;%!iCzbQTFN;i7=g*8gEvnnkq-Wy4JVg@96BN%#}c`*{Iaq{ehkTs-u*$+ zHd=fxrVzJBQGf|Z^F$v(4)vwcxcgPzmj{p^g%j9JQ$>53 zx7&Dcak3S?2|QS8dl(`gPIQD@KVBCR^`svt2Y3+-bAGp!UPUa(QEU~}tWiOfuWm>S zTfvCZs=v#|plu?B@l0?u!ABV15K_b!3!Uh+MVEzTgUZ#M-s!s@FrpBHb zX-B{11l2Bu^ioZ+TI3R1Rd?bKo5mX$XBq1+w-hOI@GO(D3I>=J4sfZQrHKkRGLE+B zvVPlJxs2cj)f7D@R6wI7RVA12W1Y0bVR+MdQ~<{WymkdQ-`??F)YR6S>QsudFH_Ud8Z*B1 zJE1N%9xOI%rh36RppuTKU5cCXItD##fm)x#&th<8hkC;~~hZYvHo)bv}#C06SpgpsMZ^HnI?b zUd<(<(>{&gHq_lhNvr#(Cx^{tP7$F&y3x&e9Bf2sPP@S{8TB`~P#b}(-jCbu__%oz z9|yj*ja_dfv1*K-#kVLFV2X-2|B6wm^~{Z`d%bK_Qphbb$S&~lS&To&>8#r;PH9Fd zwxLR_6KzWi=|>oQ8TbVi8&ggEp0~@x{(7pkcLSgD043!B=3^JF7V@lqbac93?=-}1 z#bC=gBj`ypfb-+`aa#eYAMJxLgr2<)VQ<#dqA|Cm&vrL#>B{lU@R&I}K2Z0)W+y&6 zeY??UwJ7d^LJ%zlAZ59(*?xaa&L%Pw_h6Xd3~?bEFzvfBZ}dV-k# zr8|MvSb)3ep|`EpjrVA&83z=2gZVMk!KP0xztmeN%@f78@7Hnpe5$EM00E5=E))1y z5KM3a-r~dHpq}DprV?!Bd-uGGit4-xykvX4KsS2?bdid0jQvuwSxo-9gyTQ@sL7hN!DV( zl*Do>KPSy-6o>ql(>6R7J2I9@ff*D1nsI~Xd93)yXiV{=^jx@(N0I(y+ zQvhJxLmGmxMCJ1VDZ{p6G{slLXS*SJN|Oe(%(og%cV2`9YrS9(qwVW~`V*F&)gfr< z9;GR~$&^dcm>q1Mq%(VV>dgRO)%CES*dm+0(Ai+q8B~j=Gm}f$fDLIIpfF0Vlinh8 zB*20R)aajA=76`rU2~CBA@ogW=4sxF(FX^XL7CZ+hTxAsBInDFHTBoli873|QJs^enE0X>Pd_K~fm-MLjw1L;dbs-@gGFaFirDV zX`FNluu=l*TOj7>r}MLKhL+KE`e`w{6SS0ox*1yZ8Dx6UNfntDm9Z19qk96jB_uCn zb{62UG!2LMg}5sYzlt=%l89T`=o%i;rCPIN_$^la*CZZyc(lCwshLnlLL<}TPeU!N zX-Jlygs$QAtgS@B_C7e{6IlQ*H-;#LM?-aYGtHkwJL=2h$C7%A6&t?|KWd-2D5T>! zIIy01l$lty*aDd%`Xg{AQq%`^Upzdjzl~2CA3D~{YG`gNYdQd_h6mSp&=(Nm*EsIz z^2OTJexX&SSunkIp1hu=pDVNk=yqkG&V;wU3A1i*wORjJtoI=bHI!NY$WX!ra=M?b z@@IxM!M;>~A%%^eJEY-`UcUx`mc%Ezh?D&5wp3K5TT+djCbLMyg85OCnkP01p9Gg{ z2N?`Fj8)(+Q7)>{5)PAZaK~H*l;`=B@Jravc`4f|-V%js(gT^rL~aCnYQ5bySYZ=X zAWs@mh&Y!}Cs^ee+FY}E*F(Dri5iaVh{`U9Dmn#%C%`;WS9qT(+Lf_PTAn4uuN}t! zkX;mV-2cCe*uPF*w^k*ANM-c{231Q%RGVZ$^ccO-2cau3iqOk?~S zcT>{p3WRPLd`j}gVnwIpZf0w#Y1E>Ec}SaP193069qNkFEhfWWH_hyzRp~waY2!h< z>H5`b^cA~Gsa+1%C=YROZ=3B6Y-#gfEWq5LD7u_y#vsT*=wlmbIRE~zc@Q6qQ#n-L zu5na(ezM%kg$(bh8<+xsF)rGb@*IQ0| zy@2hus)8+t8BjFTqUc5FYK;j})$dzTE14x|9Hq$!Yf(!#!L02|gpdh%#Dw%5$l-Cm z#OK$o?`WYMZw~^H^;ktDLK79d+bM>W544iI8ifb6d_>&$TxU5BKdAw9A+QE)%iV2! zz8|R`IiD=f0u2eH+;i5Zj_&KKSgl5Dbw(rEi^~PSB(yWHhU6a8U(7~Bc*i!}aPDM} zbrpb`Opys)byITUVInfKy7)a55a@sM4dW% zrt$a&2dX$vs~%Yep!jXjT!j5=6j-`*cd2)s;@8E8vWmLV0Fu=j@9Q;&&XNe+LG0=> zb4ifBn6@8n=y5&+Q^lR-$w$whW9Rt0-T9}PvN`=qLj;X`hBvCkQG>%DQ*AO&1d_r> za^D0>fm32^1t$!GW{m9XXHAbjHTgL4$qZ4kTY&nK)5%C8%KLOL5zXj$ieo5WOn@Oo z<~erQzpfP&%@k1=`}!Gq?yS{(UstQ3gt~XXY=mvnH&+n9DrZ}i!UT*>i2&J`>HL%0 z&zI_mf`tOBS;ZXTJUiZZPCj%DCATQG{ns7JjL~RHxG!vWuSu0K^*I3- zRWmFWsG8GRx`i85+?<@QTqRb%;i9bJ3cl-q!A-$qmEv%Ad|-5MQh)wu;j!s!LGJnr zT6&ed0YCa5dB@{d;lJ{lmopIFs%}$r^UIDD*h6YHEwdNh44yuciwfQ#`kGU4cOi*J z$eiMVJ2S6<#Uehxn&oy!E==ii2|%9bcX(z)rWtkgT$58U`0E4tllY@9>FWF&C7+WK z31}1#;=(&^=}jmVG}Q0-QJd-wdHFi zbT!rMde<~FbqU4>?rYgVv5TG*;_x)V_*&LC%utQ-3#%Z0g&tH^ke~j--DATfgB&ck z&P#XGxKZC!d#!lqh4#FeXCRW3(2Y*aU&1Hgk|z&4I;$FmF(P!mYA*vJ_+WhQ5cCio znvHwY*;m6ojk#uJ0@?S<78pM7(BJn(vMMUi>oTwQ24epgA z^zuyl0rJUjA#KF_Cm}-+Q4kZMt>SZx+oPeFR~+Vi=smXK&b4r|t7q}@98JOD9ztLR zFByRZ3u;+zqK0!1r-Gy?S6^baHtNiorCQIXeq5@{Gmle7WQu#;S=Sy$!r2OSer`QX zQi2153(7!;HGO}`T5Fur$@#Gk3h92`%c~H*VT2WkIUx`Ah(aLy&tyLJRe>mnf%`)? zoRGF`nFMEB5guSy{XJ4xh4Viz!C`gsrsBg6YKAWKhOo7PM-aZh#fsqvYvQpO3i0vH zm7fn%XD5=#|MEfK$bC8)G|!l?l;{J=J6axcLwk<=S$6x+`4pkK$>+ha@47}87>hwg z-lx403Wxtr#=K5Or{)PI+Q3(sXy^az+DF_k(|I4Y-cBMs`a*mWx==J;2#=OY!--zu zn4+iAGsri$#=!LF2mBd56h;^ll#FtA*lI?@`N)<>uy{Eij{n}+IX?m)8HT>;&}9L< zKZ@ab&|Hm`m>J>XNf|Cyo%ik?&pQuqwRsoXMBcGh%CSrMt<(nEKUD5Sp;d0guwPxl zRYf)Xmue;D1J3^onk{WsUHNs~e;hBgt@p1CPdPrLS@ixCAMa5ERx=qi$OHgnfMG`3 zFGiPZsA$n9zi(>8Skqu<)dss28pt>>|MFHQxs#91IBXTxY<7!H5pKNto;I|7w!fK| z7kGDB{bz*nJV&GZVq^a08@=R~UH#qRt~q=un=U>Io~@$!{C|jxi~HgDf0_7Awz06H z0oG^2?b^p4;^VB{#q6_J-AR9xe3wRGqsBaai`w3TZxR4to;PQl#5qe?XBFOQ9#=4! z)@VfGok1W~!-e~%qKc__*dM8(5Mt<%({DRfUz8m8#=OZ{;DAl+8&m!%slY=0uik>U zW3SQzp?CEu#w9N_Z!dlTU=RwNu4&%8CKvIzfD5l;fP6QGR>jI0`#vXs`G>w}+F3-e zrB|d@yp)H|M6I)An-&~KY~xfb%tN>M9GF8a>X*^>e;Xa6ZB`2oqLAIn0|$*^T&oVW z53`4luR^lj2GmDl?SZ=0!5pPdykf01Ngz$n%1c4`gQW&(%iJo7cNQ6)XBq{OgF)-L`wExfOj zt-knneS&)18&X3xa=24^Fl2zH!`;z5>Gr?c+C~aNvvgyW&?VEhRVhavh1>4CL&!e# zhOgkcL$Jyjc;`>#eA1!Y?SdZwNrwubV7lHX`;+IDn?E#!MChIvLJSLw6!^9$5F}9| zF1zdQtMbyvdO1UWPjk$r^JkfZ6MLFbdk5STRUcv)tQXi?g93AJy^1A@**EUvL3IO1 z$FabhBgMy3C30y&AFS4KQ=Bk)R5-LyMkS&e(i~BfdPrR4# zyEVsJm#=ay`zqJUzsfmJa!cbf17nWIzhj!I((v>cluMV)uXUS9{Fn<=FHJ&9WAYWdUEvZX6OP7r8%Wi z&83_NpviGRnCL9#v#jD?QcurLPCM=Mvok)#B>G(oR6&<&8}rZZ0?8FAXq#7xi?t05Bm9DYO<5E zD=M<<;5c=RmFID1zm25A?5?cx4^VkCIIZaabg!9c|i`X3|A&grd>xYYSb zm`*V5R2EpxH848~kFWgtRyHxchd7v*=CI+~2CuZ3svb9ZOj17T`Kai1aIHdw0m1I6 z5$@x0cQ#8PAFAExnk1;!id2xlx%!g81$b1=hm*?~yyD`|3hUGGBbiZtQk~dX=Oh!Y zwY3pE5hA>|M3|0}pI!_I`Z(+_4Q1k#W%Cga5YlE2Cnh2aTD@&lsO!Yax1*()eKg+b zOe%V_-)Hza?kY6lYsI!xtcv9CmtJ5M2&<^DqSZeTK?R~|wwfnzL9%$?*zcUSv@IT# z9yE@;(!C1dS*A1RE&2B+uhkf0vraO^4uw1rOGtSdem;wvC!M%?5Fb&v16L>Il()mZ z#8)fz^KMB$@30>_SS<~i(}a)&Dg0U=FemsZk|l2y8b9nA&y9R(=L4piOoIDq*o%0}B1`;QKU~^~Cuj-sKyQL~57>k-?^WcLsJpLpHcsVkQ z>4Exf`(r3}g;&cV1#~fG{lSj=B6^cpKI$fKD&S1o#7Sf ze4?1?eT%%B!3I@v3k^LH^x zt^tv%slt%yv!;>V1=Ck!A(Zr3{{Tn$I3=|pcq5t>=BT$l2?_)w_>Pk^MjZe~Rhj^D zK#jj|F^=3k(Q1=J=B~3dU~=mCP%`v;bw9&2(KHPBTXzpL8G*~FMH)J!r^)SSvFT1m7G#n4rK%UOw6-NJ}L_bP%fu)MTBE&>!$2NBL_2?-n2VXj0Ur;A{M_(ZK*XwFdUUR1&sER-u{O*|44Ci z$;uU@ZxTfChigVPt3=speNr9N*caNLkbq)(Bc_W5q+)w<2RT6aCKa}y}Vo~3!K!7yLiV;Nm!Ty_|x(aQBFk}~)?ntc_+_}6nVe5XmB1-dW-b(SH zXTn`FuRh$5+nsvnyp6_RXLWTc4~+^!6_F<&C5r9iAp?Ws#p*7y z>61xvIaR_2NkbP4WNdTFm922ME{~2x_6RQx=+hi+Z`PtOS3`C1Q`UJO?3NbZkZyWi zwTHoII=z}MM(9}s7~wqhGVF=$Oej>3nkPTS?XyPXAg-Tx)S3M@diao3u-c)LCm6#> z)Ifqsll&g;mGzKItxXGsozOzT!pQZIj3~z-mNEwdua&8lImBJPakH+yM8E5@ksM<5 zdkGA(^wn9WC-i9_P)f=h7qQDS34iM(!c~w{^cZB-_cXKI+s`uQZ7xd_RBrw5j+;NC zl(X;uj(Pbtf5_@J~2hq1`pNCjrfj zz)94bvMJDFrX-qA{#5xI2A%?Bc`OI_)YRIFrtoz8WeAMfLpxm4^f7?nyQw-L)G)WA zH;atZKV#Q=u4*pBv6^BpnPo#0LsP=hckCcC0%0&whoic{Z0mDNvy|vJKwZnytZVzJ z*7Z|`Ffn>ZQ(}a>AaQT+tp}JoRAsJ$QcR+G@rg-)dk!M&UVvvBZl7nG7=!?Zpr&Eo zGHp_@N-t?HLRs|WuAGy~?Mz#>B9+5K6JLL<-54N>9wCrsXWibXg!R_yE~F3h<-=9L z#c&<=$VsqM$UveSsTQY)hexON18n)O-hPKmqS=<^u=XKRurgdK_`MG~^B_3=D;;&v z!4<3uRJ-b?S8QibboWpLtAaoe;5b{@Ox5l|kS(M$!#x&Ud;$>g#utl0-2Xa(T>uP8 zk==L}&y!0C*fh6YEFmdxgw_ZLO#Ca52RZS7rCHWIkcHtR>t|LY8;)c2s<1F9>3u7XT><5`-2Y9d6#qz3abhR>~-p?Q^n z`Gj74c0Ftzb0m%ORN+PAavrZZx1X&OQr7FKoBG3vtZxmNAV2p}F%rvqbgFup459%? z$DQ+9M6hvS&@O-^4@a`c3T!|gJf+d|i2Bq)bkqBiQBVxPidpX=1u=R|Bn!+Qk|e%s z)DKoySb6=bd4eHNdB7(_im3Q_upp6NNup^sMMDDi47x}L5S7PKVcoCEsp6fVp7X2< z>CJij*F75&s>G1mL5aR0*^f27r%~~%7-9Xm0sKbZnU1^H!?C(ve(sJIsInI@m2_r| zS4?Ak%Nb@Ugs0s>GNP#T6ps_Ib6+p}eSC*ikmtjKnDl~s0g5+t%S}6o+}>Pnm0W$< z6cIgGh-gsxm8lt?Q}A%Pnq4w)BTdsb$7>G=XD)O==wo8!Tx()RrRJ%V3QdFPmDNXi zO_XRv9-r@il{%@N?c?~}0r=yBgd-sR5maGO^}SVlSONTsuvZ=aO~${{1XiEHD&XG= zlCrhSX=^Z?U;H(+b=Z8Pq#9?uD@|=R*xM@r-(D5^?)TN9tGX*ff4;)lpRYXj?^l5S z{mRf4#jb+*)iJ*c{9S~<@|F%G&L@vV)Vw4}njSJYKf;HxM!&L_bOhOIf8PoZk;j7m-FsCDWN z36wLWq0%SmMnFx~JbV8<-v6n6ejNQlhA9QQtYvl150=+y?{}70Iz8_w-dt&1RJBUa zKQ$Vvl3MAq!PPqoTuBX#+S2Z{nrF)@9X5~3L1~5W5~Qm|-82iD6)$L~I{G?Q*1l6= z?K>6LzEfrGMWthPWo*Xn#@qIi5p~+9B{klEfJNw>94)E$w$-Rot8vnJU!~$Pu!X~V z8*aUghOUUrJ-eoakKGv_H;|Z2A9sbuD;{;Dvt*bO#7UT=1k-+Lf6bEvwMjZ3S|3DL z$kB<~bQhqm+pnM1_QNpj`g5$H3xM*XPy)~)lW9a;9TH8QM|CYOFcYQw;Jc?M2MKXpuJsKnEi zNxHp`C(}usrPKHVBYwKmb#81H zMtW{$lkfhVGcGRNz)zr0vz?Nxs|6SRdI<)T5LypDo6+H0<)`GUBjv!E`BURpSISXceIX|W z04BONQWP`;+qlzK$Bx932(SzkR4*3u)D^4r3^DsBJnksD4?^TR1F(p^D@bBYYOfd> zw*U~b(zYXD28MJyKw?B_+Zvjh;Ra>HsM30gVcFnI%+@x`FK!q|;gM~joni2uEsInE zYJ0!+4Gu5tI`|$@z8zEO-71}^4kp=PLkwMy7Mx{9i!Jg0ec|Ji^U31Ir1khERyT@v z^Hkkoe(f}#X|F6{ik_>|-n=37-R01CZw`HDIrN>IL*HHweOp17b`C!}_L;^plUDTc zD|W+xphReV1zSMfsK5JfJa59kUH!6ruSMaE8(d12tBi9wv!dWB2OK3aQe$h@uQ**SWnOT0Eh=w z#!?JDd6l4f^a$SI;io%B=Tfzxs`6!+^{!ZVW{pkp_y&7rgBntjLB#i+?c1C6cLziy{m+%yKF;BYizRpM6O`zt- zcYgBI3DT;CuiXmng&h&l_D8 zp5a?dBL~x~)r8|&V-mXn5Gxr~Or zs>}9Au71gB!j?AEg?@_fPkqzW@YyR)v0&t>yxETuRU(UB0Fv{9Hc9&|;}FqY{GAZ} z@kf3e`(7#MXPW{XTR!xYQTJ;+PB)4+5XDUXa;3(OQzHs}@&pfe9lu*+SqAYo2c~p) zcTZ!pyA1$QS1g%T&KR{~FEaQ}8)L-vYAU7oKeBL7u2P&}5j7(O*`T4hLVgAGR9MSOD?! zH7DIs%td&?-q_S0MrW%M5zQj%^p6Ne3_O zlAxAk(PLNm@vN(;f?w1)nQHfIGWTD}TzlAi!XUQYsVmeT2y`OfpddSed82FKcUdtO zW#I99(6=FR;MBe^*%F&CX+DL#QUGJ{TnKw{ z*3GW8t@O?8sKR^$I{sJV9OynYjrxo6_^Sx?kYghVr+BMYV|FhDThjaP1`;+N>It!9{$>ueYgz~1yh1=#X zHn+jtjkY(ioZIi;S$Cc$G3<-jz4<%V?DCtaOJ@4|QdX`&EH!cuhNgVTcGAYfeS>;} zZ%j$rvhNUG%Nt5SJ!x!)RZtKE5W=uRXsj9Q`jNfQIel#G{s2G z-N}AFZ?t~Jo6P=6XKig~J5=00f;ar*_Wo((mO6GID+PBWB}zs%(x!F? zt?cwcgTs6#PLRK74heVf=1sY3T(bu$;~Xf*0lSV;#rPArHB)3$`(!iZZzbh!j-7YN%*I z^!p568mn02-T98jxSXngZH+EN`y3uMKG5sw&u4g1Jw82X_!)r`QZ(3TJ=2R!ZE&@; zgZWgQ)5G}~9}qE54Vl}ks?=Jz(V9pYIsyU*HP9}uoX!V4VBa66Tc&q{JmIW6P)kiy zarmq5=LC%P$KA^l<){95NR)&bmzlqsu2wf1D+a#QF0A##u&^cO)!L3x8EO9 zJPW`hk0DXjhe@gfPo-Um+|*wr!bu2*L1RR+S2v*^C$gAN73%!4st*}BY}*O(Bca+o ziy_`QI~7oXGNJ2r4IyZ_VWRc~<+?xPvt+m*vn(1GP#^#mENOsgZ~BRezqHM#&U~WH8ESL`2ra+dda$vW)Dd=`9vo8GzTVw|)qn9^#Fh%< zCO_GH2rY@Pcg?fyA9x*>#wj70MI8v*()BMs4ZLy~#wr5L4aF5D=e63c{a`}7YT+9T z;sfcZo9|Rt*o4HzxHw=tcn$~!?LELjiKc9ZYG~@D0m&z({b)=I z2?5t;7%)&2IIhLW)@?TB0QN-V@DTYOItMmq9Hd%l)VLMr)5WB}m~D6^HQO1O$6$}{ z%=({mGZUYd%uF_3Ix`2XJF|oLdRA^FIV(|8I4c<}^3}TIIstYH;Ym!?_EyV}_VXO- zlu4kr?r}!7)gd}0ijlS4r*`2r**=hyfZZEhx~}Vk%jl8%%e^7H3EuO5_=8Kz@*{a1 zyluUBE;8-K*?1OT4KJ_uY<>jTrC{NOmJw=47PZ@R^Yewh?%h#r%Cy7$-gU{5cifnh za7wAh7*U_S7|K@b*)DHX=u365Db6iii2cL2amQU7@d;xuQ+JB{ph@S=J6&`7R3{~6 z9+iQaL&ZcNIEdNR*O(K&tT2EbXV#(dYb_Uu1hG zN06BONN(A43t1w#p9K0Ah1ffjqDaArL?|gfcRsj7*u|LnxvjO@Je~!~2!a{n61@wO zktilIaz_2ft7s!XD#ehW?I2&?F@&e>2=znmO~-9Vrg=C$1s^Z3A}B%dpu4~!TBpK+ z5W=7-B>edScfF)U=+FcacNHMoFN|JDf8b#|di^@u_yGctZEi*nl{7vWtimjJG_$0R z6kF=X69}t6?k=Op?T?nFko|V|VmN~Mv^U*Z5@Q_m@J;im+4(iRvThZ-vWxL&MPl9F zjhTz-;r#f0+<9}PdaCc+g)JyT#4BizLOk6&$%PKNMog+uN>{jx>n*078%6xg!iaR4g{WD&$^S8!gm|pin_F` z@6!n+zE(HfT`&(yv!vTcNK?3_bWs%o`d^CvHTt?mR{g3uB1=CLQ;KP{z*pB?b@idw zABtkPfb^lm4C2Z;vr}RqT&~sSx3j+$9pG~lj1M9z>zgpe0K|SAb%UCxNtAN7-;7(0 z_f0fCg=7ipdi#IkdX3SSn#g_nik{Qv*eu^Prmh;1YNaIA%PTQk`Eup2m7zwDxOUEg zSLcN@B}b~G%aGp1v^(zuD|s2wEfL=zNzgQzB8d!6_K#wr1_Fz!!Kj;Ft*aUSe^*~# zMzblZD)2eUxvEnQ?8J(0Tn9)-H2}2^JnQ$@VWuI~uo>yn#~>7dp}X?LCckNsn@$x< z_wFa}E0l{-j-3t$DPEVI%+uofAI$#abt!_e6THZT0IbIIhlb}bQ#YupLgVnZ(IJ7Z z-l|*9p%o8)k_#G}5Qa|=58DdDasE?V-gSm*@$I>JfD#ngX}38XdUT{@H>=ymsGFp7 ze6IE+lqHisDX`h|#tnB~Fgot(IRB}gyNUTDi=O7b^Q~}=LU@^Va)W&-o=qh}!4*{A z2-S~A3{})QAb0AGsP#BoOX6S2%i#Gf#63vp{aG;~e7OA1b&XUp? z_(X{buG=LmPJM4X=~vf0IUt#o9MW|4B`$b+FxfbsivW)tXAs;>>m6MWGnqif3cvV6=zwLa@&G15% zwAQsYgKHPM8EiY1HVfCXpi@o{!s#bV!^Br3e{EHj$C{F6Od``@jn`pn2RaR>h_G&2 z;Eo!NrqfT0S(KrRuShzNiTmtXe_u(%Jqm1XpUo(_UvOMPOeh}T-YP7{d)umx+$AzB zJsrV2mtu+gZD24g$_5f%1x3;@1WHn5q|=pzOAlgRywsvA21x!R5I2>M0VV!GW`-(cc48HJ&6Fv!@hV>&{uHxCZ(aMUIb7Gv;Uioa>QX8f%18%ksBQY5=rkjrPGHQ zfvU-E6nE@ziIJ`A(4e}aKwcB2wuZVU9M=t(E3B%7rm9sjt{PMYZEd@;zr4k+Zm}t^ zM;F74a^M(Rso7TSeUIVX-_T<+YPR31t)cK_mI5>(Hdv>o3eeNAMqqiRFYq7RW2-G`t+ei^(u^+U%d!kJRAqC~`d0RIEsYiAK z@@e~*c)xxWpS2t32dDA7cpqcbP<;%RBO9p7?RU+?PFz<<<3Y2%UspF~FpJYIFz^L% zuheO$q~CUY&^kRspZUX#4Tp!aH3{Z#7 z8!HMJ##t|>d{S;^0O=kgj;BI#ArP!OwzVqm_lspM^ zrJPds6}T|^Je=>gnx9$B_{!TFuKFk!F;n|_7blwI$eKmQ*!G3{{xS4QL8>8_7>3)d zNr#rC&mJtiH{JAZ(#Vf1pcePfpn5~h1Vf&(szNs^ZSbbP|I^t~{iN|Sd~jTL>%nV8Mb$30%qe)w4fXsSX?7=KrnAB2mb)Uw*B1`o;aGII?FDNR z?@dt0GXp9~gELOXz1i0d(;Gj4^H9xi`FC`yAn9!hyBBDtf8DdDTO5mxD@bDVGUp8vurz6z;;jQ(Xlom`Sm-buzS zPVYd6g>;06R8K5urqN&=BdGMXu!m}@4sVlf$D$hP9Q!snn2KyfnJP7M1`Co6w|r_M-TJZuuEGNfmkMi z2zp|@T=t&EH)Pg|*qgPV(8ANvR2!TdXd>4~)xk+?Z*N$6%lez4O?2_H`UzEZp5FvJ z@~C7uD~!Zms|HC=d-Z##;|kZQ!^S>F1DTIG<897~cIlo_+mh_(vni5xc@`(MLm&3V z7dX6T>dU%TTstM7p)TgxR0r~GkQ0}n4vgSidO3i30Niub&2UKuE@w3PtXoiwO1qri zn31q4Ykmf4j`1bGvskiY?9F*>F_;1{CER0dt$EGBPBPz+By_j);&FZ+_DglqAuo^c z#!&r7Ab#Wp#;R1el>gc{1RL0%Q)@>iYTx@qZJT8;sA$Gosk*2sx#VPe9=+*ahSyH?lWY<}`Iy>OReDsok zaPIH~M|8o>WI7c_J*pAtPu|p`d-pi@)Zf*9eu=3LJ%g0xLHB&KqQY*afwFH(#Fojq z+Nz7q+~vM7!rwO@O2x6f{pKTiTMZ}QejwYGM#45a-*P0Xiz*{|{_Sz{yc$lv|MnyK zzS>B%$>nN^3Ps(6qdFfy&yY~q977I zGC%%xZpcbhf)S`%>Zd(vcUbSJh^ViznimIF)Ky)Fnm~Q{H1`D$D{ib(4qzTcestS~bKn3cGjO9a@z`4HYAPxmYhFnfs-V7&jP@dsyz`XuwfE7j|F@ zFXb{z^y;kFvI(Nl8?szb|Bza_?7m51bhr1cRZy|*n!jG#*Ge!Vg}BAL^j}6^%+;=QLiG0$fOstL|E!uG3okOuc2#bL+)58}!Us+1WQfZWw8aLqqC4Q{dDD z&jmP~@P4?V_>rTs+is~92yCP1UCbWy4 zSSRXBY2=pjXHc~SE{-*B0NC;QQT*mth)E@Se@s$|7iMM8rlj@3IgJT8xXOT0YW?7# z*=e4h)Q_M)0{l42fnHy8)*Z~22wUFByfv`YAy9@-uk{ZbrIaP2xfEd5p6BIagk>RG z0z)cSY`~n%f{KN~hKc-X2c~C%A&(i(6Ah<;2G#^GNdd@~5L_+jy(+X~BxMI)nv4cp z9N9vQ^+|piiyDunUtGD{0}N~N#4Mm(@uzmu2hI12Rvp{p94>?jSJ^ZGMrER1HZ7MV z|E#nr$*!3A*;1_XslYqp$5+t_sApP@cB2K!Gs*1~rep!?pB_bkB3<>Y(b{jEbfTw> zL*xMJnBwnVPX!>K8usQ)LGL=lq)T}W8B3eSmgw`%o%LN~)-T5MBr2sBmndwPD=ok6 zHNV)aT|pfpQiuewAjT3Y*@LaLvW_w{)V0NdPUfDW6P=H9P?Q1W;GvF>%WS5C%<+GS z_N@45RwMKeVrHy)t(u~x!n=^e=5KaZ->Di-3U}J*l)il#F*Uj0m}tbuoYIWqVHe!H zNrIeCvf+dbiv1z%Nb$8?IQ=iHyfdQ(qpQC=+wx@qk$X-{o|9Ps3DJ=iYGFl-<|@+i zH-yAok2F~4qO|s-_<<#cHn9{56P;b+%wrvC3^QOD= zFWQ>Z$>=LTYZ;|L@y@KeG41xl1tuG1UYmt`0YoxVtWldP|hs}PJ6AdZ+?()6h zU-TZBgKRfu{`$sv3n~=7xwvhgNG8Y3y-Xdty%$iFsI3%nK*hOZPV^EIl=T)P*iUdw zT6%XZIkeGDXFshNNzn|^smL&OpRirQNCI2Xm|sTQa!lz0vZ4(ZqgpgcE>(-q$xD3E z4~Afz-=V3LPFoA!SiZ4%Er2JH6B6yew^s7uy6Ks<^w9DJ(gH&(EqXqARq?10Gpit8 zNXv6+4&{Xt&`Aj)#HYzhW1dR;(X8A1lw`gom?BD)<{%U+YMBMAcJk>JiZrf3>}Sur z-Kdri$yZwHw3rpfbf`M(4*@FpH;Al3m@p_wDf^0k{zvaZ5`=5)w}=^zKyN+i!<7&2 zVzwlLK$ZqPrWTsc`?QlOd@O>eRHu}|F`1)p(FB6krqe-&u`qiWH`5>v+X&_YeVd3_ z>pBI@7dTT#Amm*rywAUK-l2ZdQ^#$Z=;V<(R%NmjX`c(Ih{IMaq&rSVUuy!k5+}&o z6dq!o_j>+7(u1)zth9J|2$rp$eLN{pQ+kC~w{w@rdKZ!TMJFp9MSd{a;cnkBq zfWJ?5E4$VQ%$Vw!+L=_A0RzAMpk4bubyU=G;vPK$3s}uIwfJ7JL{)Cm!l<2#7J0~U zeWN^2Vv&}9WaMX~#|l`XxM#wrY=0ZDi9o=PdQ-?Kd1FLZT-jp>H1~Db?`xxMz}mi0 zU5d*Fbw{S%`D6c9c7~d;zKnE;s@rTd$7oj5xRM)@!cFkrXg9ng)fkZ2^7}D&L0uB* zudr(!>~C0${vr2p!44^ebJK8tK0p)i&usp(-LDbk#j{>VO%r5PBsCe7&WE#1%_wD+ z8iWOmE{3R9+p$^chE{WP!#IQ5TE%Vu@KyBR)c~lbi1~jI=Km3y?SsxCrzZ`>xhm24 z7M6~E2q0hrXM0W5we}y@;JuJ}^{?@Q$413Hh2!7;VcvcV*q6Q-y?)IPUTYyH76SPP za>YDbgj=6Oahhf1z|aM)cwkVz(zu|(4TklnaiecT;PG8ab=?fp20$KE->JSRgk<4P zTZtoDsVeO7VjkMq?|lh#>`ljG2zh&Dyzq-uk2htI`=`fo=UwYy35OJ?)1#CRsfYfV zwwL3oYW!@VvP8uBZOM52aQ|#25k1OGB4ThEzh0TU7W8)u_Ub~c%wH|4HXr`~HFu?j zT*_CmCQu=g9Ck zI4r?XR~l6bM@?_YQVX`%a-K?@4|1#|>D6@9zoi2qGt#>eG7CB5N__Fl=$i%aV8k04 zuRMT<7*9TY2bC0xBe?af#bua8bAUqpr;sk)_65?19Y^s_@xiP-ire0tn5LJ>2t_n) zi20)2T`}+D;LtMv=F-+U87r#Vc*unqa|*7T)4>LR+GKG>)qf`A2&;ICIE&SM302*E*RaNcw+i!8;m{#3u7U2xFNrbD%*CSP9PJm0b&*5S(Fco7TC992pEvh zpVYzWFDJPK3LKj#Ti`6%C}gwH2N~v`s5{OaLYmUaOCbbJ$TaoscLJe&t*_^WXc#a9m&TmLbU zfk;iaV$DskeH*FC;@FM-9K`U;a1DW7n*+)cQ$dL3V!Q{#saQO9`+X#JgAa+Uad*
bg8tsBM3B%6OV4{GK4c=lu( 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

d5J+pXx`oD1`KyMn_oDh5qnY-FY8g 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 M1MeQ^;{X5;03GMPod5s; literal 0 HcmV?d00001 diff --git a/drivers/net/hns3/hns3_common.c b/drivers/net/hns3/hns3_common.c index 974219f9bf..e6ba15f77c 100644 --- a/drivers/net/hns3/hns3_common.c +++ b/drivers/net/hns3/hns3_common.c @@ -3,9 +3,154 @@ */ #include +#include +#include +#include -#include "hns3_logs.h" #include "hns3_common.h" +#include "hns3_logs.h" +#include "hns3_regs.h" +#include "hns3_rxtx.h" + +int +hns3_fw_version_get(struct rte_eth_dev *eth_dev, char *fw_version, + size_t fw_size) +{ + struct hns3_adapter *hns = eth_dev->data->dev_private; + struct hns3_hw *hw = &hns->hw; + uint32_t version = hw->fw_version; + int ret; + + ret = snprintf(fw_version, fw_size, "%lu.%lu.%lu.%lu", + hns3_get_field(version, HNS3_FW_VERSION_BYTE3_M, + HNS3_FW_VERSION_BYTE3_S), + hns3_get_field(version, HNS3_FW_VERSION_BYTE2_M, + HNS3_FW_VERSION_BYTE2_S), + hns3_get_field(version, HNS3_FW_VERSION_BYTE1_M, + HNS3_FW_VERSION_BYTE1_S), + hns3_get_field(version, HNS3_FW_VERSION_BYTE0_M, + HNS3_FW_VERSION_BYTE0_S)); + if (ret < 0) + return -EINVAL; + + ret += 1; /* add the size of '\0' */ + if (fw_size < (size_t)ret) + return ret; + else + return 0; +} + +int +hns3_dev_infos_get(struct rte_eth_dev *eth_dev, struct rte_eth_dev_info *info) +{ + struct hns3_adapter *hns = eth_dev->data->dev_private; + struct hns3_hw *hw = &hns->hw; + uint16_t queue_num = hw->tqps_num; + + /* + * In interrupt mode, 'max_rx_queues' is set based on the number of + * MSI-X interrupt resources of the hardware. + */ + if (hw->data->dev_conf.intr_conf.rxq == 1) + queue_num = hw->intr_tqps_num; + + info->max_rx_queues = queue_num; + info->max_tx_queues = hw->tqps_num; + info->max_rx_pktlen = HNS3_MAX_FRAME_LEN; /* CRC included */ + info->min_rx_bufsize = HNS3_MIN_BD_BUF_SIZE; + info->max_mtu = info->max_rx_pktlen - HNS3_ETH_OVERHEAD; + info->max_lro_pkt_size = HNS3_MAX_LRO_SIZE; + info->rx_offload_capa = (RTE_ETH_RX_OFFLOAD_IPV4_CKSUM | + RTE_ETH_RX_OFFLOAD_TCP_CKSUM | + RTE_ETH_RX_OFFLOAD_UDP_CKSUM | + RTE_ETH_RX_OFFLOAD_SCTP_CKSUM | + RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM | + RTE_ETH_RX_OFFLOAD_OUTER_UDP_CKSUM | + RTE_ETH_RX_OFFLOAD_SCATTER | + RTE_ETH_RX_OFFLOAD_VLAN_STRIP | + RTE_ETH_RX_OFFLOAD_VLAN_FILTER | + RTE_ETH_RX_OFFLOAD_RSS_HASH | + RTE_ETH_RX_OFFLOAD_TCP_LRO); + info->tx_offload_capa = (RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM | + RTE_ETH_TX_OFFLOAD_IPV4_CKSUM | + RTE_ETH_TX_OFFLOAD_TCP_CKSUM | + RTE_ETH_TX_OFFLOAD_UDP_CKSUM | + RTE_ETH_TX_OFFLOAD_SCTP_CKSUM | + RTE_ETH_TX_OFFLOAD_MULTI_SEGS | + RTE_ETH_TX_OFFLOAD_TCP_TSO | + RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO | + RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO | + RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO | + RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE | + RTE_ETH_TX_OFFLOAD_VLAN_INSERT); + + if (!hw->port_base_vlan_cfg.state) + info->tx_offload_capa |= RTE_ETH_TX_OFFLOAD_QINQ_INSERT; + + if (hns3_dev_get_support(hw, OUTER_UDP_CKSUM)) + info->tx_offload_capa |= RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM; + + if (hns3_dev_get_support(hw, INDEP_TXRX)) + info->dev_capa = RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP | + RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP; + info->dev_capa &= ~RTE_ETH_DEV_CAPA_FLOW_RULE_KEEP; + + if (hns3_dev_get_support(hw, PTP)) + info->rx_offload_capa |= RTE_ETH_RX_OFFLOAD_TIMESTAMP; + + info->rx_desc_lim = (struct rte_eth_desc_lim) { + .nb_max = HNS3_MAX_RING_DESC, + .nb_min = HNS3_MIN_RING_DESC, + .nb_align = HNS3_ALIGN_RING_DESC, + }; + + info->tx_desc_lim = (struct rte_eth_desc_lim) { + .nb_max = HNS3_MAX_RING_DESC, + .nb_min = HNS3_MIN_RING_DESC, + .nb_align = HNS3_ALIGN_RING_DESC, + .nb_seg_max = HNS3_MAX_TSO_BD_PER_PKT, + .nb_mtu_seg_max = hw->max_non_tso_bd_num, + }; + + info->default_rxconf = (struct rte_eth_rxconf) { + .rx_free_thresh = HNS3_DEFAULT_RX_FREE_THRESH, + /* + * If there are no available Rx buffer descriptors, incoming + * packets are always dropped by hardware based on hns3 network + * engine. + */ + .rx_drop_en = 1, + .offloads = 0, + }; + info->default_txconf = (struct rte_eth_txconf) { + .tx_rs_thresh = HNS3_DEFAULT_TX_RS_THRESH, + .offloads = 0, + }; + + info->reta_size = hw->rss_ind_tbl_size; + info->hash_key_size = HNS3_RSS_KEY_SIZE; + info->flow_type_rss_offloads = HNS3_ETH_RSS_SUPPORT; + + info->default_rxportconf.burst_size = HNS3_DEFAULT_PORT_CONF_BURST_SIZE; + info->default_txportconf.burst_size = HNS3_DEFAULT_PORT_CONF_BURST_SIZE; + info->default_rxportconf.nb_queues = HNS3_DEFAULT_PORT_CONF_QUEUES_NUM; + info->default_txportconf.nb_queues = HNS3_DEFAULT_PORT_CONF_QUEUES_NUM; + info->default_rxportconf.ring_size = HNS3_DEFAULT_RING_DESC; + info->default_txportconf.ring_size = HNS3_DEFAULT_RING_DESC; + + /* + * Next is the PF/VF difference section. + */ + if (!hns->is_vf) { + info->max_mac_addrs = HNS3_UC_MACADDR_NUM; + info->rx_offload_capa |= RTE_ETH_RX_OFFLOAD_KEEP_CRC; + info->speed_capa = hns3_get_speed_capa(hw); + } else { + info->max_mac_addrs = HNS3_VF_UC_MACADDR_NUM; + } + + return 0; +} static int hns3_parse_io_hint_func(const char *key, const char *value, void *extra_args) @@ -68,6 +213,12 @@ hns3_parse_mbx_time_limit(const char *key, const char *value, void *extra_args) RTE_SET_USED(key); val = strtoul(value, NULL, HNS3_CONVERT_TO_DECIMAL); + + /* + * 500ms is empirical value in process of mailbox communication. If + * the delay value is set to one lower thanthe empirical value, mailbox + * communication may fail. + */ if (val > HNS3_MBX_DEF_TIME_LIMIT_MS && val <= UINT16_MAX) *(uint16_t *)extra_args = val; @@ -116,6 +267,11 @@ hns3_parse_devargs(struct rte_eth_dev *dev) hns3_warn(hw, "parsed %s = 0x%" PRIx64 ".", HNS3_DEVARG_DEV_CAPS_MASK, dev_caps_mask); hns->dev_caps_mask = dev_caps_mask; + + if (mbx_time_limit_ms != HNS3_MBX_DEF_TIME_LIMIT_MS) + hns3_warn(hw, "parsed %s = %u.", HNS3_DEVARG_MBX_TIME_LIMIT_MS, + mbx_time_limit_ms); + hns->mbx_time_limit_ms = mbx_time_limit_ms; } void @@ -425,3 +581,183 @@ hns3_remove_mac_addr(struct rte_eth_dev *dev, uint32_t idx) } } +int +hns3_init_ring_with_vector(struct hns3_hw *hw) +{ + uint16_t vec; + int ret; + int i; + + /* + * In hns3 network engine, vector 0 is always the misc interrupt of this + * function, vector 1~N can be used respectively for the queues of the + * function. Tx and Rx queues with the same number share the interrupt + * vector. In the initialization clearing the all hardware mapping + * relationship configurations between queues and interrupt vectors is + * needed, so some error caused by the residual configurations, such as + * the unexpected Tx interrupt, can be avoid. + */ + vec = hw->num_msi - 1; /* vector 0 for misc interrupt, not for queue */ + if (hw->intr.mapping_mode == HNS3_INTR_MAPPING_VEC_RSV_ONE) + vec = vec - 1; /* the last interrupt is reserved */ + hw->intr_tqps_num = RTE_MIN(vec, hw->tqps_num); + for (i = 0; i < hw->intr_tqps_num; i++) { + /* + * Set gap limiter/rate limiter/quanity limiter algorithm + * configuration for interrupt coalesce of queue's interrupt. + */ + hns3_set_queue_intr_gl(hw, i, HNS3_RING_GL_RX, + HNS3_TQP_INTR_GL_DEFAULT); + hns3_set_queue_intr_gl(hw, i, HNS3_RING_GL_TX, + HNS3_TQP_INTR_GL_DEFAULT); + hns3_set_queue_intr_rl(hw, i, HNS3_TQP_INTR_RL_DEFAULT); + /* + * QL(quantity limiter) is not used currently, just set 0 to + * close it. + */ + hns3_set_queue_intr_ql(hw, i, HNS3_TQP_INTR_QL_DEFAULT); + + ret = hw->ops.bind_ring_with_vector(hw, vec, false, + HNS3_RING_TYPE_TX, i); + if (ret) { + PMD_INIT_LOG(ERR, "fail to unbind TX ring(%d) with " + "vector: %u, ret=%d", i, vec, ret); + return ret; + } + + ret = hw->ops.bind_ring_with_vector(hw, vec, false, + HNS3_RING_TYPE_RX, i); + if (ret) { + PMD_INIT_LOG(ERR, "fail to unbind RX ring(%d) with " + "vector: %u, ret=%d", i, vec, ret); + return ret; + } + } + + return 0; +} + +int +hns3_map_rx_interrupt(struct rte_eth_dev *dev) +{ + struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev); + struct rte_intr_handle *intr_handle = pci_dev->intr_handle; + struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(dev->data->dev_private); + uint16_t base = RTE_INTR_VEC_ZERO_OFFSET; + uint16_t vec = RTE_INTR_VEC_ZERO_OFFSET; + uint32_t intr_vector; + uint16_t q_id; + int ret; + + /* + * hns3 needs a separate interrupt to be used as event interrupt which + * could not be shared with task queue pair, so KERNEL drivers need + * support multiple interrupt vectors. + */ + if (dev->data->dev_conf.intr_conf.rxq == 0 || + !rte_intr_cap_multiple(intr_handle)) + return 0; + + rte_intr_disable(intr_handle); + intr_vector = hw->used_rx_queues; + /* creates event fd for each intr vector when MSIX is used */ + if (rte_intr_efd_enable(intr_handle, intr_vector)) + return -EINVAL; + + /* Allocate vector list */ + if (rte_intr_vec_list_alloc(intr_handle, "intr_vec", + hw->used_rx_queues)) { + hns3_err(hw, "failed to allocate %u rx_queues intr_vec", + hw->used_rx_queues); + ret = -ENOMEM; + goto alloc_intr_vec_error; + } + + if (rte_intr_allow_others(intr_handle)) { + vec = RTE_INTR_VEC_RXTX_OFFSET; + base = RTE_INTR_VEC_RXTX_OFFSET; + } + + for (q_id = 0; q_id < hw->used_rx_queues; q_id++) { + ret = hw->ops.bind_ring_with_vector(hw, vec, true, + HNS3_RING_TYPE_RX, q_id); + if (ret) + goto bind_vector_error; + + if (rte_intr_vec_list_index_set(intr_handle, q_id, vec)) + goto bind_vector_error; + /* + * If there are not enough efds (e.g. not enough interrupt), + * remaining queues will be bond to the last interrupt. + */ + if (vec < base + rte_intr_nb_efd_get(intr_handle) - 1) + vec++; + } + rte_intr_enable(intr_handle); + return 0; + +bind_vector_error: + rte_intr_vec_list_free(intr_handle); +alloc_intr_vec_error: + rte_intr_efd_disable(intr_handle); + return ret; +} + +void +hns3_unmap_rx_interrupt(struct rte_eth_dev *dev) +{ + struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev); + struct rte_intr_handle *intr_handle = pci_dev->intr_handle; + struct hns3_adapter *hns = dev->data->dev_private; + struct hns3_hw *hw = &hns->hw; + uint8_t base = RTE_INTR_VEC_ZERO_OFFSET; + uint8_t vec = RTE_INTR_VEC_ZERO_OFFSET; + uint16_t q_id; + + if (dev->data->dev_conf.intr_conf.rxq == 0) + return; + + /* unmap the ring with vector */ + if (rte_intr_allow_others(intr_handle)) { + vec = RTE_INTR_VEC_RXTX_OFFSET; + base = RTE_INTR_VEC_RXTX_OFFSET; + } + if (rte_intr_dp_is_en(intr_handle)) { + for (q_id = 0; q_id < hw->used_rx_queues; q_id++) { + (void)hw->ops.bind_ring_with_vector(hw, vec, false, + HNS3_RING_TYPE_RX, + q_id); + if (vec < base + rte_intr_nb_efd_get(intr_handle) - 1) + vec++; + } + } + /* Clean datapath event and queue/vec mapping */ + rte_intr_efd_disable(intr_handle); + rte_intr_vec_list_free(intr_handle); +} + +int +hns3_restore_rx_interrupt(struct hns3_hw *hw) +{ + struct rte_eth_dev *dev = &rte_eth_devices[hw->data->port_id]; + struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev); + struct rte_intr_handle *intr_handle = pci_dev->intr_handle; + uint16_t q_id; + int ret; + + if (dev->data->dev_conf.intr_conf.rxq == 0) + return 0; + + if (rte_intr_dp_is_en(intr_handle)) { + for (q_id = 0; q_id < hw->used_rx_queues; q_id++) { + ret = hw->ops.bind_ring_with_vector(hw, + rte_intr_vec_list_index_get(intr_handle, + q_id), + true, HNS3_RING_TYPE_RX, q_id); + if (ret) + return ret; + } + } + + return 0; +} \ No newline at end of file diff --git a/drivers/net/hns3/hns3_common.h b/drivers/net/hns3/hns3_common.h index 68f9b1b96a..0dbb1c0413 100644 --- a/drivers/net/hns3/hns3_common.h +++ b/drivers/net/hns3/hns3_common.h @@ -30,6 +30,11 @@ enum { #define MSEC_PER_SEC 1000L #define USEC_PER_MSEC 1000L +int hns3_fw_version_get(struct rte_eth_dev *eth_dev, char *fw_version, + size_t fw_size); +int hns3_dev_infos_get(struct rte_eth_dev *eth_dev, + struct rte_eth_dev_info *info); + void hns3_clock_gettime(struct timeval *tv); uint64_t hns3_clock_calctime_ms(struct timeval *tv); uint64_t hns3_clock_gettime_ms(void); @@ -48,4 +53,9 @@ int hns3_set_mc_mac_addr_list(struct rte_eth_dev *dev, void hns3_ether_format_addr(char *buf, uint16_t size, const struct rte_ether_addr *ether_addr); +int hns3_init_ring_with_vector(struct hns3_hw *hw); +int hns3_map_rx_interrupt(struct rte_eth_dev *dev); +void hns3_unmap_rx_interrupt(struct rte_eth_dev *dev); +int hns3_restore_rx_interrupt(struct hns3_hw *hw); + #endif /* _HNS3_COMMON_H_ */ diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c index 181694bf8c..847e660f44 100644 --- a/drivers/net/hns3/hns3_ethdev.c +++ b/drivers/net/hns3/hns3_ethdev.c @@ -1929,62 +1929,6 @@ hns3_bind_ring_with_vector(struct hns3_hw *hw, uint16_t vector_id, bool en, return 0; } -static int -hns3_init_ring_with_vector(struct hns3_hw *hw) -{ - uint16_t vec; - int ret; - int i; - - /* - * In hns3 network engine, vector 0 is always the misc interrupt of this - * function, vector 1~N can be used respectively for the queues of the - * function. Tx and Rx queues with the same number share the interrupt - * vector. In the initialization clearing the all hardware mapping - * relationship configurations between queues and interrupt vectors is - * needed, so some error caused by the residual configurations, such as - * the unexpected Tx interrupt, can be avoid. - */ - vec = hw->num_msi - 1; /* vector 0 for misc interrupt, not for queue */ - if (hw->intr.mapping_mode == HNS3_INTR_MAPPING_VEC_RSV_ONE) - vec = vec - 1; /* the last interrupt is reserved */ - hw->intr_tqps_num = RTE_MIN(vec, hw->tqps_num); - for (i = 0; i < hw->intr_tqps_num; i++) { - /* - * Set gap limiter/rate limiter/quanity limiter algorithm - * configuration for interrupt coalesce of queue's interrupt. - */ - hns3_set_queue_intr_gl(hw, i, HNS3_RING_GL_RX, - HNS3_TQP_INTR_GL_DEFAULT); - hns3_set_queue_intr_gl(hw, i, HNS3_RING_GL_TX, - HNS3_TQP_INTR_GL_DEFAULT); - hns3_set_queue_intr_rl(hw, i, HNS3_TQP_INTR_RL_DEFAULT); - /* - * QL(quantity limiter) is not used currently, just set 0 to - * close it. - */ - hns3_set_queue_intr_ql(hw, i, HNS3_TQP_INTR_QL_DEFAULT); - - ret = hns3_bind_ring_with_vector(hw, vec, false, - HNS3_RING_TYPE_TX, i); - if (ret) { - PMD_INIT_LOG(ERR, "PF fail to unbind TX ring(%d) with " - "vector: %u, ret=%d", i, vec, ret); - return ret; - } - - ret = hns3_bind_ring_with_vector(hw, vec, false, - HNS3_RING_TYPE_RX, i); - if (ret) { - PMD_INIT_LOG(ERR, "PF fail to unbind RX ring(%d) with " - "vector: %u, ret=%d", i, vec, ret); - return ret; - } - } - - return 0; -} - static int hns3_setup_dcb(struct rte_eth_dev *dev) { @@ -2255,7 +2199,7 @@ hns3_get_firber_port_speed_capa(uint32_t supported_speed) return speed_capa; } -static uint32_t +uint32_t hns3_get_speed_capa(struct hns3_hw *hw) { struct hns3_mac *mac = &hw->mac; @@ -2274,135 +2218,6 @@ hns3_get_speed_capa(struct hns3_hw *hw) return speed_capa; } -int -hns3_dev_infos_get(struct rte_eth_dev *eth_dev, struct rte_eth_dev_info *info) -{ - struct hns3_adapter *hns = eth_dev->data->dev_private; - struct hns3_hw *hw = &hns->hw; - uint16_t queue_num = hw->tqps_num; - - /* - * In interrupt mode, 'max_rx_queues' is set based on the number of - * MSI-X interrupt resources of the hardware. - */ - if (hw->data->dev_conf.intr_conf.rxq == 1) - queue_num = hw->intr_tqps_num; - - info->max_rx_queues = queue_num; - info->max_tx_queues = hw->tqps_num; - info->max_rx_pktlen = HNS3_MAX_FRAME_LEN; /* CRC included */ - info->min_rx_bufsize = HNS3_MIN_BD_BUF_SIZE; - info->max_mac_addrs = HNS3_UC_MACADDR_NUM; - info->max_mtu = info->max_rx_pktlen - HNS3_ETH_OVERHEAD; - info->max_lro_pkt_size = HNS3_MAX_LRO_SIZE; - info->rx_offload_capa = (RTE_ETH_RX_OFFLOAD_IPV4_CKSUM | - RTE_ETH_RX_OFFLOAD_TCP_CKSUM | - RTE_ETH_RX_OFFLOAD_UDP_CKSUM | - RTE_ETH_RX_OFFLOAD_SCTP_CKSUM | - RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM | - RTE_ETH_RX_OFFLOAD_OUTER_UDP_CKSUM | - RTE_ETH_RX_OFFLOAD_KEEP_CRC | - RTE_ETH_RX_OFFLOAD_SCATTER | - RTE_ETH_RX_OFFLOAD_VLAN_STRIP | - RTE_ETH_RX_OFFLOAD_VLAN_FILTER | - RTE_ETH_RX_OFFLOAD_RSS_HASH | - RTE_ETH_RX_OFFLOAD_TCP_LRO); - info->tx_offload_capa = (RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM | - RTE_ETH_TX_OFFLOAD_IPV4_CKSUM | - RTE_ETH_TX_OFFLOAD_TCP_CKSUM | - RTE_ETH_TX_OFFLOAD_UDP_CKSUM | - RTE_ETH_TX_OFFLOAD_SCTP_CKSUM | - RTE_ETH_TX_OFFLOAD_MULTI_SEGS | - RTE_ETH_TX_OFFLOAD_TCP_TSO | - RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO | - RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO | - RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO | - RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE | - hns3_txvlan_cap_get(hw)); - - if (hns3_dev_get_support(hw, OUTER_UDP_CKSUM)) - info->tx_offload_capa |= RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM; - - if (hns3_dev_get_support(hw, INDEP_TXRX)) - info->dev_capa = RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP | - RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP; - info->dev_capa &= ~RTE_ETH_DEV_CAPA_FLOW_RULE_KEEP; - - if (hns3_dev_get_support(hw, PTP)) - info->rx_offload_capa |= RTE_ETH_RX_OFFLOAD_TIMESTAMP; - - info->rx_desc_lim = (struct rte_eth_desc_lim) { - .nb_max = HNS3_MAX_RING_DESC, - .nb_min = HNS3_MIN_RING_DESC, - .nb_align = HNS3_ALIGN_RING_DESC, - }; - - info->tx_desc_lim = (struct rte_eth_desc_lim) { - .nb_max = HNS3_MAX_RING_DESC, - .nb_min = HNS3_MIN_RING_DESC, - .nb_align = HNS3_ALIGN_RING_DESC, - .nb_seg_max = HNS3_MAX_TSO_BD_PER_PKT, - .nb_mtu_seg_max = hw->max_non_tso_bd_num, - }; - - info->speed_capa = hns3_get_speed_capa(hw); - info->default_rxconf = (struct rte_eth_rxconf) { - .rx_free_thresh = HNS3_DEFAULT_RX_FREE_THRESH, - /* - * If there are no available Rx buffer descriptors, incoming - * packets are always dropped by hardware based on hns3 network - * engine. - */ - .rx_drop_en = 1, - .offloads = 0, - }; - info->default_txconf = (struct rte_eth_txconf) { - .tx_rs_thresh = HNS3_DEFAULT_TX_RS_THRESH, - .offloads = 0, - }; - - info->reta_size = hw->rss_ind_tbl_size; - info->hash_key_size = HNS3_RSS_KEY_SIZE; - info->flow_type_rss_offloads = HNS3_ETH_RSS_SUPPORT; - - info->default_rxportconf.burst_size = HNS3_DEFAULT_PORT_CONF_BURST_SIZE; - info->default_txportconf.burst_size = HNS3_DEFAULT_PORT_CONF_BURST_SIZE; - info->default_rxportconf.nb_queues = HNS3_DEFAULT_PORT_CONF_QUEUES_NUM; - info->default_txportconf.nb_queues = HNS3_DEFAULT_PORT_CONF_QUEUES_NUM; - info->default_rxportconf.ring_size = HNS3_DEFAULT_RING_DESC; - info->default_txportconf.ring_size = HNS3_DEFAULT_RING_DESC; - - return 0; -} - -static int -hns3_fw_version_get(struct rte_eth_dev *eth_dev, char *fw_version, - size_t fw_size) -{ - struct hns3_adapter *hns = eth_dev->data->dev_private; - struct hns3_hw *hw = &hns->hw; - uint32_t version = hw->fw_version; - int ret; - - ret = snprintf(fw_version, fw_size, "%lu.%lu.%lu.%lu", - hns3_get_field(version, HNS3_FW_VERSION_BYTE3_M, - HNS3_FW_VERSION_BYTE3_S), - hns3_get_field(version, HNS3_FW_VERSION_BYTE2_M, - HNS3_FW_VERSION_BYTE2_S), - hns3_get_field(version, HNS3_FW_VERSION_BYTE1_M, - HNS3_FW_VERSION_BYTE1_S), - hns3_get_field(version, HNS3_FW_VERSION_BYTE0_M, - HNS3_FW_VERSION_BYTE0_S)); - if (ret < 0) - return -EINVAL; - - ret += 1; /* add the size of '\0' */ - if (fw_size < (size_t)ret) - return ret; - else - return 0; -} - static int hns3_update_port_link_info(struct rte_eth_dev *eth_dev) { @@ -5281,98 +5096,6 @@ hns3_do_start(struct hns3_adapter *hns, bool reset_queue) return ret; } -static int -hns3_map_rx_interrupt(struct rte_eth_dev *dev) -{ - struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev); - struct rte_intr_handle *intr_handle = pci_dev->intr_handle; - struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(dev->data->dev_private); - uint16_t base = RTE_INTR_VEC_ZERO_OFFSET; - uint16_t vec = RTE_INTR_VEC_ZERO_OFFSET; - uint32_t intr_vector; - uint16_t q_id; - int ret; - - /* - * hns3 needs a separate interrupt to be used as event interrupt which - * could not be shared with task queue pair, so KERNEL drivers need - * support multiple interrupt vectors. - */ - if (dev->data->dev_conf.intr_conf.rxq == 0 || - !rte_intr_cap_multiple(intr_handle)) - return 0; - - rte_intr_disable(intr_handle); - intr_vector = hw->used_rx_queues; - /* creates event fd for each intr vector when MSIX is used */ - if (rte_intr_efd_enable(intr_handle, intr_vector)) - return -EINVAL; - - /* Allocate vector list */ - if (rte_intr_vec_list_alloc(intr_handle, "intr_vec", - hw->used_rx_queues)) { - hns3_err(hw, "failed to allocate %u rx_queues intr_vec", - hw->used_rx_queues); - ret = -ENOMEM; - goto alloc_intr_vec_error; - } - - if (rte_intr_allow_others(intr_handle)) { - vec = RTE_INTR_VEC_RXTX_OFFSET; - base = RTE_INTR_VEC_RXTX_OFFSET; - } - - for (q_id = 0; q_id < hw->used_rx_queues; q_id++) { - ret = hns3_bind_ring_with_vector(hw, vec, true, - HNS3_RING_TYPE_RX, q_id); - if (ret) - goto bind_vector_error; - - if (rte_intr_vec_list_index_set(intr_handle, q_id, vec)) - goto bind_vector_error; - /* - * If there are not enough efds (e.g. not enough interrupt), - * remaining queues will be bond to the last interrupt. - */ - if (vec < base + rte_intr_nb_efd_get(intr_handle) - 1) - vec++; - } - rte_intr_enable(intr_handle); - return 0; - -bind_vector_error: - rte_intr_vec_list_free(intr_handle); -alloc_intr_vec_error: - rte_intr_efd_disable(intr_handle); - return ret; -} - -static int -hns3_restore_rx_interrupt(struct hns3_hw *hw) -{ - struct rte_eth_dev *dev = &rte_eth_devices[hw->data->port_id]; - struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev); - struct rte_intr_handle *intr_handle = pci_dev->intr_handle; - uint16_t q_id; - int ret; - - if (dev->data->dev_conf.intr_conf.rxq == 0) - return 0; - - if (rte_intr_dp_is_en(intr_handle)) { - for (q_id = 0; q_id < hw->used_rx_queues; q_id++) { - ret = hns3_bind_ring_with_vector(hw, - rte_intr_vec_list_index_get(intr_handle, - q_id), - true, HNS3_RING_TYPE_RX, q_id); - if (ret) - return ret; - } - } - - return 0; -} - static void hns3_restore_filter(struct rte_eth_dev *dev) { @@ -5503,40 +5226,6 @@ hns3_do_stop(struct hns3_adapter *hns) return 0; } -static void -hns3_unmap_rx_interrupt(struct rte_eth_dev *dev) -{ - struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev); - struct rte_intr_handle *intr_handle = pci_dev->intr_handle; - struct hns3_adapter *hns = dev->data->dev_private; - struct hns3_hw *hw = &hns->hw; - uint8_t base = RTE_INTR_VEC_ZERO_OFFSET; - uint8_t vec = RTE_INTR_VEC_ZERO_OFFSET; - uint16_t q_id; - - if (dev->data->dev_conf.intr_conf.rxq == 0) - return; - - /* unmap the ring with vector */ - if (rte_intr_allow_others(intr_handle)) { - vec = RTE_INTR_VEC_RXTX_OFFSET; - base = RTE_INTR_VEC_RXTX_OFFSET; - } - if (rte_intr_dp_is_en(intr_handle)) { - for (q_id = 0; q_id < hw->used_rx_queues; q_id++) { - (void)hns3_bind_ring_with_vector(hw, vec, false, - HNS3_RING_TYPE_RX, - q_id); - if (vec < base + rte_intr_nb_efd_get(intr_handle) - - 1) - vec++; - } - } - /* Clean datapath event and queue/vec mapping */ - rte_intr_efd_disable(intr_handle); - rte_intr_vec_list_free(intr_handle); -} - static int hns3_dev_stop(struct rte_eth_dev *dev) { @@ -6927,6 +6616,7 @@ hns3_init_hw_ops(struct hns3_hw *hw) hw->ops.del_mc_mac_addr = hns3_remove_mc_mac_addr; hw->ops.add_uc_mac_addr = hns3_add_uc_mac_addr; hw->ops.del_uc_mac_addr = hns3_remove_uc_mac_addr; + hw->ops.bind_ring_with_vector = hns3_bind_ring_with_vector; } static int diff --git a/drivers/net/hns3/hns3_ethdev.h b/drivers/net/hns3/hns3_ethdev.h index a28c7c262b..55518a913d 100644 --- a/drivers/net/hns3/hns3_ethdev.h +++ b/drivers/net/hns3/hns3_ethdev.h @@ -437,6 +437,9 @@ struct hns3_hw_ops { struct rte_ether_addr *mac_addr); int (*del_uc_mac_addr)(struct hns3_hw *hw, struct rte_ether_addr *mac_addr); + int (*bind_ring_with_vector)(struct hns3_hw *hw, uint16_t vector_id, + bool en, enum hns3_ring_type queue_type, + uint16_t queue_id); }; #define HNS3_INTR_MAPPING_VEC_RSV_ONE 0 @@ -1038,8 +1041,6 @@ int hns3_buffer_alloc(struct hns3_hw *hw); bool hns3_is_reset_pending(struct hns3_adapter *hns); bool hns3vf_is_reset_pending(struct hns3_adapter *hns); void hns3_update_linkstatus_and_event(struct hns3_hw *hw, bool query); -int hns3_dev_infos_get(struct rte_eth_dev *eth_dev, - struct rte_eth_dev_info *info); void hns3vf_update_link_status(struct hns3_hw *hw, uint8_t link_status, uint32_t link_speed, uint8_t link_duplex); void hns3vf_update_push_lsc_cap(struct hns3_hw *hw, bool supported); @@ -1071,13 +1072,4 @@ is_reset_pending(struct hns3_adapter *hns) return ret; } -static inline uint64_t -hns3_txvlan_cap_get(struct hns3_hw *hw) -{ - if (hw->port_base_vlan_cfg.state) - return RTE_ETH_TX_OFFLOAD_VLAN_INSERT; - else - return RTE_ETH_TX_OFFLOAD_VLAN_INSERT | RTE_ETH_TX_OFFLOAD_QINQ_INSERT; -} - #endif /* _HNS3_ETHDEV_H_ */ diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c index 8632c8f19b..d8a99693e0 100644 --- a/drivers/net/hns3/hns3_ethdev_vf.c +++ b/drivers/net/hns3/hns3_ethdev_vf.c @@ -422,7 +422,7 @@ hns3vf_restore_promisc(struct hns3_adapter *hns) } static int -hns3vf_bind_ring_with_vector(struct hns3_hw *hw, uint8_t vector_id, +hns3vf_bind_ring_with_vector(struct hns3_hw *hw, uint16_t vector_id, bool mmap, enum hns3_ring_type queue_type, uint16_t queue_id) { @@ -434,7 +434,7 @@ hns3vf_bind_ring_with_vector(struct hns3_hw *hw, uint8_t vector_id, memset(&bind_msg, 0, sizeof(bind_msg)); code = mmap ? HNS3_MBX_MAP_RING_TO_VECTOR : HNS3_MBX_UNMAP_RING_TO_VECTOR; - bind_msg.vector_id = vector_id; + bind_msg.vector_id = (uint8_t)vector_id; if (queue_type == HNS3_RING_TYPE_RX) bind_msg.param[0].int_gl_index = HNS3_RING_GL_RX; @@ -454,62 +454,6 @@ hns3vf_bind_ring_with_vector(struct hns3_hw *hw, uint8_t vector_id, return ret; } -static int -hns3vf_init_ring_with_vector(struct hns3_hw *hw) -{ - uint16_t vec; - int ret; - int i; - - /* - * In hns3 network engine, vector 0 is always the misc interrupt of this - * function, vector 1~N can be used respectively for the queues of the - * function. Tx and Rx queues with the same number share the interrupt - * vector. In the initialization clearing the all hardware mapping - * relationship configurations between queues and interrupt vectors is - * needed, so some error caused by the residual configurations, such as - * the unexpected Tx interrupt, can be avoid. - */ - vec = hw->num_msi - 1; /* vector 0 for misc interrupt, not for queue */ - if (hw->intr.mapping_mode == HNS3_INTR_MAPPING_VEC_RSV_ONE) - vec = vec - 1; /* the last interrupt is reserved */ - hw->intr_tqps_num = RTE_MIN(vec, hw->tqps_num); - for (i = 0; i < hw->intr_tqps_num; i++) { - /* - * Set gap limiter/rate limiter/quanity limiter algorithm - * configuration for interrupt coalesce of queue's interrupt. - */ - hns3_set_queue_intr_gl(hw, i, HNS3_RING_GL_RX, - HNS3_TQP_INTR_GL_DEFAULT); - hns3_set_queue_intr_gl(hw, i, HNS3_RING_GL_TX, - HNS3_TQP_INTR_GL_DEFAULT); - hns3_set_queue_intr_rl(hw, i, HNS3_TQP_INTR_RL_DEFAULT); - /* - * QL(quantity limiter) is not used currently, just set 0 to - * close it. - */ - hns3_set_queue_intr_ql(hw, i, HNS3_TQP_INTR_QL_DEFAULT); - - ret = hns3vf_bind_ring_with_vector(hw, vec, false, - HNS3_RING_TYPE_TX, i); - if (ret) { - PMD_INIT_LOG(ERR, "VF fail to unbind TX ring(%d) with " - "vector: %u, ret=%d", i, vec, ret); - return ret; - } - - ret = hns3vf_bind_ring_with_vector(hw, vec, false, - HNS3_RING_TYPE_RX, i); - if (ret) { - PMD_INIT_LOG(ERR, "VF fail to unbind RX ring(%d) with " - "vector: %u, ret=%d", i, vec, ret); - return ret; - } - } - - return 0; -} - static int hns3vf_dev_configure(struct rte_eth_dev *dev) { @@ -649,103 +593,6 @@ hns3vf_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu) return 0; } -static int -hns3vf_dev_infos_get(struct rte_eth_dev *eth_dev, struct rte_eth_dev_info *info) -{ - struct hns3_adapter *hns = eth_dev->data->dev_private; - struct hns3_hw *hw = &hns->hw; - uint16_t q_num = hw->tqps_num; - - /* - * In interrupt mode, 'max_rx_queues' is set based on the number of - * MSI-X interrupt resources of the hardware. - */ - if (hw->data->dev_conf.intr_conf.rxq == 1) - q_num = hw->intr_tqps_num; - - info->max_rx_queues = q_num; - info->max_tx_queues = hw->tqps_num; - info->max_rx_pktlen = HNS3_MAX_FRAME_LEN; /* CRC included */ - info->min_rx_bufsize = HNS3_MIN_BD_BUF_SIZE; - info->max_mac_addrs = HNS3_VF_UC_MACADDR_NUM; - info->max_mtu = info->max_rx_pktlen - HNS3_ETH_OVERHEAD; - info->max_lro_pkt_size = HNS3_MAX_LRO_SIZE; - - info->rx_offload_capa = (RTE_ETH_RX_OFFLOAD_IPV4_CKSUM | - RTE_ETH_RX_OFFLOAD_UDP_CKSUM | - RTE_ETH_RX_OFFLOAD_TCP_CKSUM | - RTE_ETH_RX_OFFLOAD_SCTP_CKSUM | - RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM | - RTE_ETH_RX_OFFLOAD_OUTER_UDP_CKSUM | - RTE_ETH_RX_OFFLOAD_SCATTER | - RTE_ETH_RX_OFFLOAD_VLAN_STRIP | - RTE_ETH_RX_OFFLOAD_VLAN_FILTER | - RTE_ETH_RX_OFFLOAD_RSS_HASH | - RTE_ETH_RX_OFFLOAD_TCP_LRO); - info->tx_offload_capa = (RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM | - RTE_ETH_TX_OFFLOAD_IPV4_CKSUM | - RTE_ETH_TX_OFFLOAD_TCP_CKSUM | - RTE_ETH_TX_OFFLOAD_UDP_CKSUM | - RTE_ETH_TX_OFFLOAD_SCTP_CKSUM | - RTE_ETH_TX_OFFLOAD_MULTI_SEGS | - RTE_ETH_TX_OFFLOAD_TCP_TSO | - RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO | - RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO | - RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO | - RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE | - hns3_txvlan_cap_get(hw)); - - if (hns3_dev_get_support(hw, OUTER_UDP_CKSUM)) - info->tx_offload_capa |= RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM; - - if (hns3_dev_get_support(hw, INDEP_TXRX)) - info->dev_capa = RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP | - RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP; - info->dev_capa &= ~RTE_ETH_DEV_CAPA_FLOW_RULE_KEEP; - - info->rx_desc_lim = (struct rte_eth_desc_lim) { - .nb_max = HNS3_MAX_RING_DESC, - .nb_min = HNS3_MIN_RING_DESC, - .nb_align = HNS3_ALIGN_RING_DESC, - }; - - info->tx_desc_lim = (struct rte_eth_desc_lim) { - .nb_max = HNS3_MAX_RING_DESC, - .nb_min = HNS3_MIN_RING_DESC, - .nb_align = HNS3_ALIGN_RING_DESC, - .nb_seg_max = HNS3_MAX_TSO_BD_PER_PKT, - .nb_mtu_seg_max = hw->max_non_tso_bd_num, - }; - - info->default_rxconf = (struct rte_eth_rxconf) { - .rx_free_thresh = HNS3_DEFAULT_RX_FREE_THRESH, - /* - * If there are no available Rx buffer descriptors, incoming - * packets are always dropped by hardware based on hns3 network - * engine. - */ - .rx_drop_en = 1, - .offloads = 0, - }; - info->default_txconf = (struct rte_eth_txconf) { - .tx_rs_thresh = HNS3_DEFAULT_TX_RS_THRESH, - .offloads = 0, - }; - - info->reta_size = hw->rss_ind_tbl_size; - info->hash_key_size = HNS3_RSS_KEY_SIZE; - info->flow_type_rss_offloads = HNS3_ETH_RSS_SUPPORT; - - info->default_rxportconf.burst_size = HNS3_DEFAULT_PORT_CONF_BURST_SIZE; - info->default_txportconf.burst_size = HNS3_DEFAULT_PORT_CONF_BURST_SIZE; - info->default_rxportconf.nb_queues = HNS3_DEFAULT_PORT_CONF_QUEUES_NUM; - info->default_txportconf.nb_queues = HNS3_DEFAULT_PORT_CONF_QUEUES_NUM; - info->default_rxportconf.ring_size = HNS3_DEFAULT_RING_DESC; - info->default_txportconf.ring_size = HNS3_DEFAULT_RING_DESC; - - return 0; -} - static void hns3vf_clear_event_cause(struct hns3_hw *hw, uint32_t regclr) { @@ -1634,7 +1481,7 @@ hns3vf_init_hardware(struct hns3_adapter *hns) * some error caused by the residual configurations, such as the * unexpected interrupt, can be avoid. */ - ret = hns3vf_init_ring_with_vector(hw); + ret = hns3_init_ring_with_vector(hw); if (ret) { PMD_INIT_LOG(ERR, "Failed to init ring intr vector: %d", ret); goto err_init_hardware; @@ -1821,41 +1668,6 @@ hns3vf_do_stop(struct hns3_adapter *hns) return 0; } -static void -hns3vf_unmap_rx_interrupt(struct rte_eth_dev *dev) -{ - struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(dev->data->dev_private); - struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev); - struct rte_intr_handle *intr_handle = pci_dev->intr_handle; - uint8_t base = RTE_INTR_VEC_ZERO_OFFSET; - uint8_t vec = RTE_INTR_VEC_ZERO_OFFSET; - uint16_t q_id; - - if (dev->data->dev_conf.intr_conf.rxq == 0) - return; - - /* unmap the ring with vector */ - if (rte_intr_allow_others(intr_handle)) { - vec = RTE_INTR_VEC_RXTX_OFFSET; - base = RTE_INTR_VEC_RXTX_OFFSET; - } - if (rte_intr_dp_is_en(intr_handle)) { - for (q_id = 0; q_id < hw->used_rx_queues; q_id++) { - (void)hns3vf_bind_ring_with_vector(hw, vec, false, - HNS3_RING_TYPE_RX, - q_id); - if (vec < base + rte_intr_nb_efd_get(intr_handle) - - 1) - vec++; - } - } - /* Clean datapath event and queue/vec mapping */ - rte_intr_efd_disable(intr_handle); - - /* Cleanup vector list */ - rte_intr_vec_list_free(intr_handle); -} - static int hns3vf_dev_stop(struct rte_eth_dev *dev) { @@ -1877,7 +1689,7 @@ hns3vf_dev_stop(struct rte_eth_dev *dev) if (__atomic_load_n(&hw->reset.resetting, __ATOMIC_RELAXED) == 0) { hns3_stop_tqps(hw); hns3vf_do_stop(hns); - hns3vf_unmap_rx_interrupt(dev); + hns3_unmap_rx_interrupt(dev); hw->adapter_state = HNS3_NIC_CONFIGURED; } hns3_rx_scattered_reset(dev); @@ -1918,34 +1730,6 @@ hns3vf_dev_close(struct rte_eth_dev *eth_dev) return ret; } -static int -hns3vf_fw_version_get(struct rte_eth_dev *eth_dev, char *fw_version, - size_t fw_size) -{ - struct hns3_adapter *hns = eth_dev->data->dev_private; - struct hns3_hw *hw = &hns->hw; - uint32_t version = hw->fw_version; - int ret; - - ret = snprintf(fw_version, fw_size, "%lu.%lu.%lu.%lu", - hns3_get_field(version, HNS3_FW_VERSION_BYTE3_M, - HNS3_FW_VERSION_BYTE3_S), - hns3_get_field(version, HNS3_FW_VERSION_BYTE2_M, - HNS3_FW_VERSION_BYTE2_S), - hns3_get_field(version, HNS3_FW_VERSION_BYTE1_M, - HNS3_FW_VERSION_BYTE1_S), - hns3_get_field(version, HNS3_FW_VERSION_BYTE0_M, - HNS3_FW_VERSION_BYTE0_S)); - if (ret < 0) - return -EINVAL; - - ret += 1; /* add the size of '\0' */ - if (fw_size < (size_t)ret) - return ret; - else - return 0; -} - static int hns3vf_dev_link_update(struct rte_eth_dev *eth_dev, __rte_unused int wait_to_complete) @@ -2007,99 +1791,6 @@ hns3vf_do_start(struct hns3_adapter *hns, bool reset_queue) return ret; } -static int -hns3vf_map_rx_interrupt(struct rte_eth_dev *dev) -{ - struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev); - struct rte_intr_handle *intr_handle = pci_dev->intr_handle; - struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(dev->data->dev_private); - uint8_t base = RTE_INTR_VEC_ZERO_OFFSET; - uint8_t vec = RTE_INTR_VEC_ZERO_OFFSET; - uint32_t intr_vector; - uint16_t q_id; - int ret; - - /* - * hns3 needs a separate interrupt to be used as event interrupt which - * could not be shared with task queue pair, so KERNEL drivers need - * support multiple interrupt vectors. - */ - if (dev->data->dev_conf.intr_conf.rxq == 0 || - !rte_intr_cap_multiple(intr_handle)) - return 0; - - rte_intr_disable(intr_handle); - intr_vector = hw->used_rx_queues; - /* It creates event fd for each intr vector when MSIX is used */ - if (rte_intr_efd_enable(intr_handle, intr_vector)) - return -EINVAL; - - /* Allocate vector list */ - if (rte_intr_vec_list_alloc(intr_handle, "intr_vec", - hw->used_rx_queues)) { - hns3_err(hw, "Failed to allocate %u rx_queues" - " intr_vec", hw->used_rx_queues); - ret = -ENOMEM; - goto vf_alloc_intr_vec_error; - } - - if (rte_intr_allow_others(intr_handle)) { - vec = RTE_INTR_VEC_RXTX_OFFSET; - base = RTE_INTR_VEC_RXTX_OFFSET; - } - - for (q_id = 0; q_id < hw->used_rx_queues; q_id++) { - ret = hns3vf_bind_ring_with_vector(hw, vec, true, - HNS3_RING_TYPE_RX, q_id); - if (ret) - goto vf_bind_vector_error; - - if (rte_intr_vec_list_index_set(intr_handle, q_id, vec)) - goto vf_bind_vector_error; - - /* - * If there are not enough efds (e.g. not enough interrupt), - * remaining queues will be bond to the last interrupt. - */ - if (vec < base + rte_intr_nb_efd_get(intr_handle) - 1) - vec++; - } - rte_intr_enable(intr_handle); - return 0; - -vf_bind_vector_error: - rte_intr_vec_list_free(intr_handle); -vf_alloc_intr_vec_error: - rte_intr_efd_disable(intr_handle); - return ret; -} - -static int -hns3vf_restore_rx_interrupt(struct hns3_hw *hw) -{ - struct rte_eth_dev *dev = &rte_eth_devices[hw->data->port_id]; - struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev); - struct rte_intr_handle *intr_handle = pci_dev->intr_handle; - uint16_t q_id; - int ret; - - if (dev->data->dev_conf.intr_conf.rxq == 0) - return 0; - - if (rte_intr_dp_is_en(intr_handle)) { - for (q_id = 0; q_id < hw->used_rx_queues; q_id++) { - ret = hns3vf_bind_ring_with_vector(hw, - rte_intr_vec_list_index_get(intr_handle, - q_id), - true, HNS3_RING_TYPE_RX, q_id); - if (ret) - return ret; - } - } - - return 0; -} - static void hns3vf_restore_filter(struct rte_eth_dev *dev) { @@ -2125,7 +1816,7 @@ hns3vf_dev_start(struct rte_eth_dev *dev) rte_spinlock_unlock(&hw->lock); return ret; } - ret = hns3vf_map_rx_interrupt(dev); + ret = hns3_map_rx_interrupt(dev); if (ret) goto map_rx_inter_err; @@ -2442,7 +2133,7 @@ hns3vf_restore_conf(struct hns3_adapter *hns) if (ret) goto err_vlan_table; - ret = hns3vf_restore_rx_interrupt(hw); + ret = hns3_restore_rx_interrupt(hw); if (ret) goto err_vlan_table; @@ -2616,8 +2307,8 @@ static const struct eth_dev_ops hns3vf_eth_dev_ops = { .xstats_reset = hns3_dev_xstats_reset, .xstats_get_by_id = hns3_dev_xstats_get_by_id, .xstats_get_names_by_id = hns3_dev_xstats_get_names_by_id, - .dev_infos_get = hns3vf_dev_infos_get, - .fw_version_get = hns3vf_fw_version_get, + .dev_infos_get = hns3_dev_infos_get, + .fw_version_get = hns3_fw_version_get, .rx_queue_setup = hns3_rx_queue_setup, .tx_queue_setup = hns3_tx_queue_setup, .rx_queue_release = hns3_dev_rx_queue_release, @@ -2666,6 +2357,7 @@ hns3vf_init_hw_ops(struct hns3_hw *hw) hw->ops.del_mc_mac_addr = hns3vf_remove_mc_mac_addr; hw->ops.add_uc_mac_addr = hns3vf_add_uc_mac_addr; hw->ops.del_uc_mac_addr = hns3vf_remove_uc_mac_addr; + hw->ops.bind_ring_with_vector = hns3vf_bind_ring_with_vector; } static int diff --git a/drivers/net/hns3/hns3_tm.c b/drivers/net/hns3/hns3_tm.c index 44b607af7a..e1089b6bd0 100644 --- a/drivers/net/hns3/hns3_tm.c +++ b/drivers/net/hns3/hns3_tm.c @@ -4,7 +4,7 @@ #include -#include "hns3_ethdev.h" +#include "hns3_common.h" #include "hns3_dcb.h" #include "hns3_logs.h" #include "hns3_tm.h" -- 2.33.0