From 463f8d22fb7b67cdbe7df8878ff75df5a186f2b1 Mon Sep 17 00:00:00 2001 From: "Claudio D. Gasparini" Date: Fri, 21 May 2021 10:57:12 +0200 Subject: [PATCH] Document FM / PM Adopter Issue-ID: OAM-208 Signed-off-by: Claudio D. Gasparini Change-Id: Ie23caf5671798972a8cffd9f79b529be53154c35 --- docs/deployment-guide.rst | 14 +- docs/developer-guide.rst | 5 +- docs/nf-oam-adopter-diagram.png | Bin 0 -> 105046 bytes docs/overview.rst | 28 +++- docs/pm/create-adapter.json | 7 + docs/pm/get-adapters.json | 4 + docs/pm/index.rst | 259 ++++++++++++++++++++++++++++++++++ docs/pm/pm-rest-manager.yaml | 7 + docs/pm/pm-ves-message-mapping.yaml | 26 ++++ docs/snmp/PortDOWN.json | 40 ++++++ docs/snmp/fm-ves-message-mapping.yaml | 34 +++++ docs/snmp/index.rst | 253 +++++++++++++++++++++++++++++++++ docs/snmp/snmp-manager.yaml | 4 + docs/snmp/unknown-trap.json | 33 +++++ docs/user-guide.rst | 11 +- 15 files changed, 717 insertions(+), 8 deletions(-) create mode 100755 docs/nf-oam-adopter-diagram.png create mode 100644 docs/pm/create-adapter.json create mode 100644 docs/pm/get-adapters.json create mode 100644 docs/pm/index.rst create mode 100644 docs/pm/pm-rest-manager.yaml create mode 100644 docs/pm/pm-ves-message-mapping.yaml create mode 100644 docs/snmp/PortDOWN.json create mode 100644 docs/snmp/fm-ves-message-mapping.yaml create mode 100644 docs/snmp/index.rst create mode 100644 docs/snmp/snmp-manager.yaml create mode 100644 docs/snmp/unknown-trap.json diff --git a/docs/deployment-guide.rst b/docs/deployment-guide.rst index 69c1bde..8e17ce0 100644 --- a/docs/deployment-guide.rst +++ b/docs/deployment-guide.rst @@ -5,4 +5,16 @@ Deployment Guide ================ -This document provides a quickstart for deployment of the NF OAM Adopter. \ No newline at end of file +Build + +.. code-block:: bash + + cd ves-nf-oam-adopter + mvn clean install -Pdocker + +Go to solution folder and execute + +.. code-block:: bash + + cd solution + docker-compose up \ No newline at end of file diff --git a/docs/developer-guide.rst b/docs/developer-guide.rst index 08153d6..8207a84 100644 --- a/docs/developer-guide.rst +++ b/docs/developer-guide.rst @@ -5,4 +5,7 @@ Developer Guide =============== -This document provides a quickstart for developers of the NF OAM Adopter. \ No newline at end of file +Architecture design of FM / PM Adopter + +.. image:: nf-oam-adopter-diagram.png + :alt: Diagram \ No newline at end of file diff --git a/docs/nf-oam-adopter-diagram.png b/docs/nf-oam-adopter-diagram.png new file mode 100755 index 0000000000000000000000000000000000000000..8f32f8449f4cbe5dd5d1a558891ce0b2cffbe4a7 GIT binary patch literal 105046 zcmeFZcT`hZ*e{F>DvEV%V@Dlqh^8lqN=YH4L3#m{kc5!l1BnH&k0Q?48`u>=iXx&Q zMIFTkh=3s05f!DVh=>*MK0#;T-n+iF?!Vu9*V1@$vd`X6`8{>-;~yc6z`+B@4RmsH z8XQC>u$-J+TAZAIA-MJfcYevpUhm{IBF0PGKoqDJt8%VW9BM!U^pB#7d{sUZsDViIt>^^!eQsa=AsZd z*jyZR|37|6a5xwX2lv?GD6vt|V=;(TnOQ9FW>bivny9Q8Z!w+3=Md%5EV0qp&7M_e zG%0{=9FqFEH1x39rk8c!mCCFN37`Xrh6p4qRfy$Au?7rL{1768BI0_p1TZ!=B$|v2 zGU3UAj^PNHRty+$OdSH`=mjW+Cc*OHkrK2CMG8T|wHj5F9Zw*7bI3?6jioms0};q5 zv04rbM2I;7Hh+#85oLu_k^VMzBmo}~8>~XW>_WL*7+|+*LwG8V!5?Uf6awe*r`>Ui#xIYCILL%~6L2Mvzl9+DNh~Y#!gO3nJ>oJjL9myPni^ek58l{%TwS=&w zBsJ5lRE8jhd^j_b%!(n}f>g#xfl!DtMHxh_5EBpWfe65usInk&tQ>6y2naw%Sp^aq zMU2qs4Yl~!>tJQ7s${-Y>_D#OsGHvMo|O`JXIp~7YEVF9Ia8nkqd<^d?bt-sgk4lv1+aX z1y@C>C8TJI3Il_|WE>4i;;)SX{yqTB#tC$2icoJOh=Zgmq87*2BJn&hvkYdFDe(k0 zi!BOa8ANnD*@U!2$Kvs_Xr4;QH5hR?hMZ%xGSwI}6^v)XLgX55V4#s|vqtL(oTwQxFkj zArdf1JtVp)@RuVD2xJS;-qC0#mB=-Ug;JS-#N?_qWM(W~&&EX4G$w*xPDZfEG5)ex zJc=SPQaEI~&>lkP2Vi;LCLjoc$%xbhVZ>lQiG(W9+7!WzSPdM@=COnjt8 zOiN)#$BJNVTu`LmOt3PoY$}4F(i(6C797Tv(Fg<#QE5=inNn=DEr_aS5ve>hh7f4g z@B(6ZQUQ;^H>iX7c%qFG6T;&J+Xx_rk^C(%xseFsVgQFKi9*A5IwWw+B#YX_@aIPH z5V2-kl!i`bF#^eCn%1TcV%y0CSqvgLm}>z+n?z;_L(Cz>7>-Ko9n1tbyaTibVi4Jm z;RqvRP%xg2Z6t9c)nYar;vY{JGD%jhe+=Agr${wOdNctIvH%h}#v5ir3(07m)g~v) z^if)qERZOa5^y$|mSl*fSSUO$i$b!|IUsZfNZ5i{PK-dSr^iYVa1|%o#u7@oQX&eb zwMJ=TG%A8xgAu9&nN*Y<%#P6^+4w+6n82ryA`Mn4oT^t@`M}`@@FlSpZ$NkeR)(M> z4KPKBoPkh82cRNN@<SE*yqXFpP~lvSC0Z2_8Rbu+nG~@Mh?5}j zSIsA5*;qWd43LuKXd}~%kkf2pg;qkKGIVTze=VO6B7A^V&XY=vLcJEr4GP9`qp`sO ztQZN#Kia_56M}6*ixdNlBv?*0XahNBc`W1)g>;J@snnkA$rhxRqo9kWau9P20cI#(U^vksJSKw0 zvkPTGXiiit5gRC$VK7vG8xoB~k?8?&6F*QD5{xE=sMIKLsf32)Vq(Qut3T7O4}nQ& zWCS2ehl1DPDPnLe5|v?N3n<<;6CW9k z9R5GbL3TXy`o)lvwBB@M+ z08Qiv@z5xv%^$K61Hx!!adkpD-5!jVlX*mjP=e=BnF1bL1@IKCN1BmT6Es_(SWVzF zu_^#rNgyp+z=o*=tu8J=c zQ-YbAD0)D&NNnH&a0b{y>;eu_Pf$syfNnB{zy_-XVc3zVXdy!@VVF!vbVv|7L>T2y zReEdbL>eW~CdTvae5Ms)X2!70AxumFB|xAw(8LrbP)I-|LI9ItI5wQsjzL0^)uN69 z`Fa3ZfW%mh6dc1YSH{E&Y*vXutLDb25GI3y$HU{WGNYDbm-AH`qzHIA5*a+B){tU! z4B%umD4sXNYBkHKR;Gf+;!!u%$^e7_?Vg4r5r^hT_!Y9&5;%zH9%-X zV+jU1F(!y=R&yyPE0qElM`>VUvz}<7sceyYm>woEKupp_R;C5~i;czNy%8a?!4f!+ zr~-FLY(VN>lq{|KT@Fv83w{cS2Lt6JU1vnjW7`f1bGzKV3wLG7@8{D zD4+zZ$$E|%Mp1@{c@k2j7Du*eqqHgm2agIAK=^U|ArW9QGL$kCH8${xS4UE?{)`v_ zUmb~$HL1lyeUepae8Q3|5Dh2=rvG-6n{_B7!iYSS-k^2^N|^Qe={`10YF825O1KfDk%c z$28)F8e=e#WDYVxSsRfS8%gsQ>rEJ$3CT8ivjTa@U@Vds2_zA~BY|9rq|un+$XFwm z977kF>=qT(Bqb1}QY}l!6{4tAw86l(YD_GgNTrDs(3M;|2`Px>nF&mtH!{{PCTJ`a zrVJxiDGW$CTudNB9-A7;mTS=rD;dk-FrqjnEK&)R`U9y11SlBM0x?~ zvvl$(8NsGQ2g8L3j7jS+C!(TgL`VrL5la|lS1QC>ic}QK zrHQ2~Z=BgcHbzSnpeQx-p_D~OB5|c~H7M%E6!6tzCm=w-h8Hc6l871vUx}xQfMVH1-<_HQzYgt0*E1br+qQVEY#Vij6U za4c{$1dY*15UW*Obg+MWrXh9;x zGif*kGl@yS7{mr1o$qbM2vAHN6)9j@r630l(CU%aAeg{l1Y`tg@p=qgK;znCIUy_s z6|O|-yrZM2_&}{h2<4$fxHpQcQ^4^Ao04HbfydPvG>D)9XrMS&3`LBx2xFp@G9xD1 zNJi4_R4ki_`}CNuOnPc|KJTaz1|Q zfkW#l!)I-9kMwsrlIniId7$$l^6*!8YC@b3#=OfwuGs1`cKYt!w{BhcHg)CP4IhL2 z((yu=DDj}H zd%TnL&ksMTi)+i&h8rir4L^Hd*Ooh;rG}qBI)?dea|Lr;C*A4i>`K_=ln`F6_Sn>O z3Mc1RBiys8`^N`P0TciAt9$mwZFAbE_E^Np88h5HJLfuyIo;V62hjl!r62CKO1!R* zvrqXTz(k42*~NOderTHifBb_h+8Fn2Wb(eg!~L8RP=HRHe@_89^;zdOtj_zZ%Yo%C z!?O1|B_uyTyLx5s5hn1|t&S)(w8nlg!goqhV6P<(g~gZ5y@B2J0SvGLBF^4N3?%g$ zammv!V$9;;C`bbVqujIIxPLYPg8tQ$Q=h$njC;#|nKikO%OM7suIcQywY|tlcmf2z zvON+7R4`1@$GL#)hV=bc9gxH$3_uhcb;F)diH~mpgD2!YMrNcqf_}#pI?6&6`Fm3 zRQTz1zae9vi+t-gSKhDjpnM8P*4f5xc7!g!Y!DeQZh%A4aQ#V;QAwBYo(Op+cfUT< z7K}$m>Wv?xChUm)-M?Z{SG@gw)0=^%i*5fX3O_cH!$b4G%5w5A=lkPH&H42mVUNcr z)OCF*%UsGA*kf+Lrb?#+On@Z-E43_-{1>oa<=-XBIS|07&yTI1_1=Na;*xMbouRXuq5xuFaB$Vw%mRU~TFCFrQ zvdIyPKY-l5p~=u_JH>Tw^i zI}KpjrQ6eL%xlcVh7BifHdK5b)Ux20E1p^T(`^?F8{h0)LaTiA&?hYKi+%0N{fu!t zmr+j^cO>Q(>c*V?x|Zec;8_FloWmWt0q_h`P}4P16-YrLo*M?{+(RxhJiKIo@qSie z^_!rD_m;*t@8G^^tUCY2)>OQTxZd{jzrdPLIbcniqB5YwWM8Q+*3>D9lQ1AN2dTjK(*-aG#cWXh%9M zfU>ImrFfaE`x6>SOXRP8!l86#$4FS_7SlR&aaMTpR42D*X}CAXmOY%VN*o}aJMClp zpeGNeEP0%uJ2I~B{HlPMiC5j={VrfA^L)P_Y4%>G=xa?lS(=f(V}WMYKnPI-L9Ufr zN7@4t<(W`2eyHroC@B4T?fhDPlbb1G$9*lDeub;(3cyTzi&&JRvvmw|TDXMsS3R;N zvF-A@3#szYg@-2IKl}TV)-f+fSzq5@ys-0PyT_=5VdBQ-feQ=XU^^U1m;ln{{H6XL zkS?eAMU>hcsaeFVKAm0}S8EiPudX<`t8QiH=dXROMMc;bdyoxVN4B5aOKe|?TY(1+A~gGjd@gY z+3mU4sT5T~*6F>UD`WWsUSkXMFJJe2^eZ)Dj7C2H8&u8Q1)|EiyCP&TfCpg3yH}R! zii6hsXNFVjG=N%wsX2KbBUks#LtS@)(mQjfVPDY1pgg0>^ZP{X3@nn z>ztg=f`TdM;SMIO_lU(nb8qd4@!;;TG~gFfS5D~m7(XZJ!S*lOw>Xa~1?gEI2@B$!J zwf3*+!3JRH7?@!ZuRZSZlB)tmwHKC)&vsN4R{j6fv`6-rmI>)!$M zF@V8I_l@IvSA;CEw1M=$1L!}kN92PUUOk($9;oohEC8$lD}O4}A=Lj@U`-ue*U@Uo z`ta@B=HiY|z3VCc>XPwqmZe5sp$bm(oqecUHzFt@SM{Abu5NI17}cZUozJeFcYCAZ zRZ8uP^u~7G@Hzv+L6FPuKvcsB*lYVS6~D=>iCf808VlOdp9G`)RMH6MWNUw!PF2B=6vrbBls zrvgsBe1azT_}x812+(#@J9rI*s~v!%oM&f4M)sV7uoWN$)jGWpn&U4}er~(~_xx`K z;0k---+kB-F#6AkLA^T-DO&(B>y zrr<2O-@VgIi~ALJZYOoVI&!LNXLL!ylErIlE@)*7@3lqc#x_md|L4u=UHmnX@6zza zZK6EOk`3_v7v8OZUGVMdNM9<>&g$&gpW4^6i`>?()r?pEozuGAGw`fgv#WB+iS&Wt zXBX#BZ*YgSn2-tuqqNo|V*X5nT&155D#*bN$f7pSOH$gtC3X zrx%<}O%IvRsUztr#~W`~pi=KAU-zYIx~k+A>9yI4{1Z{T&Hc5&12qG_oSaVpNg1>b zUAREpCytgl&>rwB%qQElPCxWa>ei_rsb0grzTdk)w;>CEo$u6j=5;Xo<-4`%V9GZO z;&sd>efS5_1G_(8(tr%vlS*;6h7U zO3KeYy!$21N78>;U+W`&oo&)mdRU*@ni&45KPnqKQ9ByBOG(${%M$Nv&tEFP*NA-x z`7;GX@rwT|#m*VkDNK3T(a}v_r;1X<@&%8}znrbFP7!y$i+fEe$}e|)x+C*m%2%3C zLt6gk#!U0_?+>nx-T5#|RRX-B*{+9z%di?CXJ%m`3IrY3)#1QqT8_{lU*!Jhp7?wG zx}&^xoujNpnSUdleLB4|U)vt!6;Glp`0MLRw~A2NfEHY*Lx3z0uNofwpN6;k_lTO3 z^5`3`FBheB<}};PSGTWtRFOl?FjN>^tW%OFO@JC#gj`?)9NoM!$fm?VhHgHyMmP-j z$n=QkC37?6bz^nOXyx~2zeD+ttH@cwd$KB*&-duRlvKRna#Fj)%eh0bsC=jcNf98v zuB?ol1EJZE?93a|l6W<-vAW~8`NaK0Z8Q?Ov00P-I{nRqyqoq%zcv?b+L8D7TJxT6 ziEM`?ay|nE84H01BocXs*1Ns-6@>EA-GEjgzeGSfOq59M<;(7XWM}6P)DWmcIbjZn zp-;+=TY7pb7?c@Jkn^AchlpSek#)1}M!D#o3za>FLJ1B=fTmU0uPX6X-QObc+_Fnq^ zRj-gi1O5`(XSWAro;`C#uw*y2*~b9N(Vc73ps(q`@e3{TRJWhMLX;eW9I^8377{dq z4HQEYM-A`Ei2gK~Vr$I)M*v9)Pk^UdiEV(|asRI2=ROkzUM{kpT0h%pISat3$*@ky1dHZMB3=$EziN7YRP2e0mG zK)Lv^bSjwHeGYUjmj3Ek#mDW|*JY;{H+3FC$hOo!Xg|=es4FS?{y}Ru4J$z;bK8^n z3y@jDdY}X1ww>1?L?FaES9Ex%{xSIo6g75>& zH}(@1*kv0KIZJ7AKm)Zv=O+oj0Lv#dl?>0-S*ZK7zC&}|Mc%U4xL6= z64E^0&1S!#jl(^gNdFBD9pS)}%iLk+h%q0l6T8(} zlHxpKI_>tQHEw84J!&b&uf{>pkBh4v@CY|C}mY~Y_}V>deNsg4-&`oZ~e z2H>0?gi9vIniI&J6cytvhvDdz3w|TVdT| zs1typSN8_Ka(w-33~cd&ws$w@r3-VS{#uea>c`R!ML6{d0;xm4?&pq7ff=8XGeYwi zTc^`64d^8)7;xd`Bcnz`3LTc6?gu2AS@=QZF@5^%z@!OQ&8iZi= z5MTQ(0i&r;<)-uOAOBg0Jm$pf6-xp^0^qGIP>hBabYJMaKd$S1^NzYt?TyD9^+}Ee z|MiqBA*0%`u{#%GjG8IPKCt3j2fw!U)UsY|C6FN}!P||_`~NWOl3mb`^X9^cC&LFpA@9G5S3>!~qr_>B zI}>JSFaKh#$q425A3DjL>ZIxRs@-$Oj|Fm#nwbOkA%RI&yP`DpoQL_As)sR;C;lI7 zQGv!pU;NPysz#65g)>5+b-g_N zv$%26xBNG{=jAE%+L1F4O#Re;LSM9O_Acz^NaJ%>(LV3(o=Y)&^3GZ8>3mD$yv5bK z+Z!$KTD&JNTrOG{oN_0jq15uS&d}(edD&B6K%@!I=Gj*B>mR+xRXJx zrv~*PZU;nMwKc?XFMguSB>T%LHECRG@PfA06K~LCHl=^~c64`~`YwO(+1b<`bJAjE z`)*tr#l3fE&30dYrn#bd`I9x&ooBw4_-p=noTX{|k}Lb}kDkXDwa(^qnkmmOpB*xy zN8pVZ18lsYWu&FM0Y)l0=kZ}Xe{toz=Qq9B>~jOXZ%%7LShSJC~%1a+SxjCjQYkIN3L=(sPC3Tb8mdGHuD(GqcAOAbzFxMK^Xy zN^{N4R18)}++}wt3sP*Q4wQEz_1XTn=`} zRiuP_sW{vL;~yC9ub&djggJ{J>*`Nlr0-3oX6(6mwk)=Xh0OuUqx_TCq3(<(ePDGu zKlqn^gKlf`9!Ayt%FbxsGHYLi56L-qPgZTv#3`5U-JvvV{z#mefbLE<94^ka0OZxD7%< z#@~Mvp5Kstd!o93@N&Mceh&9s6D7A`kzMP7el*jkYu$d-AtKU}w)o1d>*&eOcl{bN(y+l_1vQkg!!NdblH6=*%UkAeJ5XEviN~IQhPjpHakyy7 zxc|_zo&jci`GBAA2$C@70eMAA{<|BV9hcnZ?K-E7pjwhYjl^tCjfyks*5`Ujr*;k<#rc!C0Ud%P9*%^}d$;Su*v%bFe)7OeRGtuwn~;*Hgl zGlW@&^cC#Kqs#ESukI)<4=d#DEKjZ~?L2c@_HE>*p8>}Gi5ko#f8*<@cU@Np9RL<+=msR5~Ojwpa(_0YA-*fbJ<=jzcw@6Qn9d8I`dBUQO`3|R}@c5T`F07 zSG?v*?dylfuf(bEY{?udIygc3Z*&LY-yLW$e%Ei^9o_i2grKd{U!`Xi-MO_J`E6*@ zll3CW^i;{i`q`mJ^e+5U71hh-x9+}Yv~rF{5C1Zfe)K=~lAzw#`wvwM93cqTm$83Q zMqQnt^-kvu9SU=;G#X9DNr#xT!9G=!XBgRr(}Q zy_r7jVK@wxHtgkt^Et}u)Pu)U>^D}|%v}#-#(D!1%LR?D7HZ=@g_Ws()U&}?eau7mPNV-GJob!t|TZ_JCt z=|!lJ?aIfgQ?F$4iqB>&%dGs`)t`0Cx3zWno_BZmUY8UWchI& z_Fc~w`wnQA>2FL3)VT(m0mFFol*SWOnnLlI)IJbq-P2qs+h;$wCnXz> zCg0mXdNQ5+@STj?krt_#o6O68Ve{ArepuS_*Q)-U9I+&MzF|R)XGLY3 zEe&b=s|K}neQpmf^gU2KX}K*sb9Q(=cU{c2(d3AocWYK$yfkiJ%C63k8R6r{k7zlV z_#amMdY(J-14q#AW-ZAANgul)<_)H>X3yc$=2KS(bLUKt+oSpda=zP|rnhz>rI z7HlkkY`A*p5&z{_-}Xi2%a>+kO+AE&!!I@t z-7Wv$j!=1mykDrmruKD!MCmeQ(gM)9-!KafXWHI9gJ)#&9!gMac5U8z-$C(DEQJd)%7$lfEo|=QcC3c*yVB z)Qr(f=H-&p?>+v|Qd936qb&br;{PYmXZJ1o_|$FFcr4@b^3G(%H_f70a)$5j%!8e0 zhD6hs%(J{5^!CDx0n-6D=*-pB^_z=ZGEOTB&4;8%DYKjxNs?yi3U`N5vMaK_v@|Z^ z7DS5|RvlpYO&`=RN#c{) zvyM+XYhJ_q`%UdH79C1MPoI0n`eu<=mt^Y>^YYti9;`7v^68yW1DEv!C;ojJn(_lD zFXzO4Z3}b(r*k_JM$F)9KmN9<$(;AD@rJBEpBEPWGmtDfoHpv_;psidS_bMiL*$Ri z#0gC`>CMS8kC>O&4xV=5&i7++D=toL#Ti)1+LN;SJ-pCpaDEiEv}0Vx>$cPy%Hc^p zX1W8N5OnD-AKfoGXBBtle`vXP_>`oS6npeLeShrd#I#NJ;9zWl@Tl7ugeKh6>wOdd zacc18d?o+l`B+ov(#sxxv1HeT1H{pddYkj)SfDD^WD{ks*h!ex4J%1Kb*D*%tjM9BrQ z%zrbdA?MKM+Ji2IU1fQD?i}2-XWMK=8oIla@nf#J&|E=?q1|&ST=y+p%7eS~qfMUUo$J07yjZTqh{vV?upZx_eKCHurMbQju4YtMFF-Fy=r z^*pO7 z{M!-2rM&?m?CYFUqqme(92x=~T@URR`}pRJRn zai5NRC^~;=!f2KNseN4G(=oN*(?-ub_E|baSzcemdNy}Rzxe?EBF z`fb2Yj!1Wp>9!M;OH|pOqm_pPo4>p%&RbLU|I{LpRcs*w92+~VT~CS0-f@d(RHRf@ zRvou|d^T$$ZbjI-q=~gf)BdRcOD{lgxN^e(kMx?4^}ptyf1i8f>-W-n=XFzi7NWfk z*sm|}1MeF)`=*7RHzrJq+--=PwCK>LFGH28fR$%wOsGsbTxx#u_kfAs7Saq*0o`*O zv+eg;vu0f%^$7HJ!r|Vg)R0FDX0ISF+P+~E^Ikw-?kWA0TI8$KQRV90k7o8bnw^jc z^7flACq{rn>>yT^4qWi3zbzKh$iD&QXklBwk{7hJ5(7zoylsGN(0<3MBpn0p#cZ zoC4rH_EPzw?wemdVdj@1pbx=*Q}ktScOU)d@OaQ`OB&(GcAXLijjStNnwQ4U%KZE9 zzXzRMd9;UI{YofcQeORFrNedTkN9mI?PUf9WjgyfBdKNov7Tf9JB0#_VC#{tbTLgI2l#z)&~+dnzM=@%_lMkK-Tng{aw&Wi22@b-K~lz zp-({CQT?jwc*osPoqw;>JiU%E#OJzTv=34tV+7&+G*8Uw)ulfMyyfm2Ws%(r9r3yi zl)A99T@3tZcsQX*pfZY4Ocf+-8o7{%WjNRjV40}3Vu@RJ`9`~ zFIYb!=f{l%w+Y@xLSMJhoXE&SndhEvC>bjKy(eqE-wz>d^eau8SaT$3gr)hemq>KT zv3vVN^ut^Oz*d3loVDFzh*(?FaxbUj!+o8q?dg@MIi=%z(h&g%8s4aJecnx5gzHF8 z9u0tpwPxTbryg+#Fb6?geOcjfDkYPgA-y(_wSqeEbl^qKAOCU&coc(8ZMX3rKf0B} z7A1fl{i}rjlWv2JjZ4^B$R1tH_;@eS{8pc$k95rNgpdFfyI5D)v7@=~$X?C&5^n(U z@_VZJ-7UP`C3|&6Cp7oZD!zVf!=&#s_Ja6GAl;DnI7jc_DZzDM%fkZxc27PJNEab5 zpKx*eF6d~|zgg=^VCwRt4-foE%`Uiz&Z@qpYi!?dqoH6r`^lxlh*SLQ^EldSXNGNaOz&^)`)ZZe^w3z&1jIyr^U8Cec^SB z(o+|IiXqQHs<_mB(`EYGI?3h}z%|-mpKo;biD&j4+L#7Ny!n@)B)-#+G<~C6i*QjOF&!0>NbFltM$p@Y9hG*|@IeJVH z!~5_fu-dnAUaTRqAJ7FQ+U7@-4_6&$oVd>}?BhVcKGmf{?*&c>N`OQs6m*~*1!Dv@;e5_9#Y0_j(_?9P&+b)^ly%#J{@ve(T#abSl4W1EzI##Dzx&kAWq`m5Xa6|^p6=D&iGS#_ zcF@biY3NM;&9kkoy!jp7Ej!TQ8Z*^>9hB$v+L3T__S`Y|ZsM%1X!V125e|vrz%ht& z@pwi7U?VzV(0~?e>!YK2-xsCN2^{)r*{w>$LP$IYDIK6>!- z#^vGc)0~o0Sa;X93t;2JWBhywv(BTgWtV8H%ctEqCEr-Sn7!DeeEP3-ee)%W4n68G zlq@~`h*iGt{QKLIg%fmr98&xpNMc4Srf_O}d=+$X?aG_YwYziV^N>lKH`gX!9<%LJ z%dGHgOUOr)O4A#Y^Nyb%BQM{_EZ^syT(snUcbXS}R$K4hAhd2hRzY;^ZkG51s)p37 zMZhLY-3X}c@r#6 zOdNHCAJN`z^ZGOKZBPFwEU>25w$JmfPj~@2j~S4IQ{=q@F?`?LVQnSa0(0)P1(VGf zT_P3x=K5jQMbGeJ>l!nEWc8XB@9?}!FK%wT-qC(!!uf66-fm{R_|$p#-h*`w9lTEM zEUUb2GZj@R3aqV|+j1{;pwEuxYp+Z<_F}WfjVj9;pP6+f?xcQ^BPGW%B1%lbsg)UJ zmYW){iM2kCT9ET-o`Ooi?cpg zHQEnqD8Gh6BY%=%W8N$Ln)$Fj!I9?g$;f)n&_;E!7|H+Q<3Ib_{H<2$-Q+ z2q7G*nkMA8odJ$4X{0MP0&BlYn^?j2J8pc&zI4wtfB&@OZphN}rW@O4>~F5!&DdZ4 z>ZEY%U#6%Vb7W;NJ~va3CpCwiZOL3B_gP9Jwm-9e`y6t2!Ti0)<2e`h4cYILK4CAv z>Gg>FBe(jJ_@g(mum9??9obl{YU>V}C4V^UKqirSA?;kf@7whw?jM%}w^zah){<1O z-2<#;o!b$gZ0dqNF9((%yG!FI(#?HW_wq*>dLl z`=HwGmb{Z+D9c}~U(A1S?p;!L`9Jb`4m7z&KWtj^{`Gxb^n<{vO2|D7TWU#kl-F%(!yuO%i z>(o}iI#k>Acg=S5l!{{UlB8*EH;QfNn`=v{HRk1Sx}@`Cc=tNhA(_+K<}=^UUKo~^ z4HEe?wwqBI!eSm>t2{ZbCT+w61Em{xq65@*1=UMSBDkqxWtBrvkTW4bTT*Atbw)QR$6px7}XA=|~eKdzWC!nA{b?4)p; zci!gE#UAKc)-|KQEx%Q)W^I|9yy)-|)AypVOCPsU9-R1#4*t)giZ5(Xaij!8d`EjyC~+v@fUD3|@Y4UG0&LOp(`q%3C#mH#!f|cs+x5udCBI zVAZ*r?dP{y9tGB~XvT|n>Tl%PSzET0r&JxyY3wRYd;Q(_N>Xc8b1voWbU`_{J4LuN z>?4Sj%9^glH9E5!!x0ad;Ec$aqvNTe(85C@cCKE?+38jLtbL7T`ckdzMsnai^Yz>Z zW&H4ieZTL!Valqjci_%(v#Py<1*In(Q8GS$a)K>K z9$hvM>|>?t#EuiL!;S)kGV@QJaU9`8WFudsoYyA|tWg~buo+Jn|5>)7ESU}3L6v)( z8^9~^hg6@AxQz+F7AQGx9e;az&F$pY`SY`v zilB7t&=Qaif9~8h1oFyxeu7_oI*+t{X~=z9v2a612p2ngGq*DAo^-YKaGdXfzDtv) zH_HLm?roVn^F!T=nlgI;cIWzOsSOW)9Q;al_T2gHfMRmofq&l68I6M`K<8B5BV-`F zdcGNw3*q^nQR~SOjdLr{J=Ip-Eu+wA)k}oNW^?AU&tI+?MlCXgjFPm^oIag&>XU?X znsEKC^@_S%N;uAwM+MrNKmU4@MmT{OGU|W^;KChxdHhg}?$sb*+HXg%kB;d7;~*7y zHR5fT&*g1iORWnZv<@(halC>J_RgVJ!@ga8p<;yRu1Ek|aGpy)Ot^6(9q0e^EI{&%ym!wF0^ofIrbS!~ zm@Pmt_@g~D)2U(UTaMnG9e3;d;*~qQYED{yPe{)Fuu2JKl;nX&JhPFR>%Y9X-xsm+ z?5?lyG-2UdPdzw(+i>1O-O+Ub-CUc$LUWS7hZeAOQ%nwo4=i`S~xMR z;Q_y{?7KB#!)ULx{M_a+%-vn3-#!Q$ev_PROS~{?^TJHechB3K&q%)TGQPKt(R`8= zV!pQ(FedmOqij!4WgXoxdr9U#%C?yY!EVC|@?TRk8=Ie(?d5x$UTkZd*Y`&)lfALz z?LU`0N+-ufKmGd;>#W`L0V)&X`zHF*uw9|h!Lm%bY%)&o7x(>Jp7qV646o2UWy4i^ z{m0UN&&y)g%;sdKz1yCCqTYf{7~S&Pi94>mnCO} z&)WmLbaun@*)JbE>5GogKzRMswJu!ZySMGUR#hK{POs5#O8!@5 z!Y(cjt31b%@w~n>(^q_E7M~0|7Upd_5w!KHGPa7I#y*~OV|&hb-!qrvD6nb3UgF~) z_U-!AIC=Zr@cNF)r|;#+^OpKlLy_SKHKO@$hUmQU=!&p>&c-qGDqkUwTky&K(!z@m zDr;4{GQE+X-JJ^(AN9ElMS)u*T<2%s&tDGygNIWKuC%6;os@DA6G$w#VeEZkm{@FMD{gqK(O#_<~B{PG#I-ot{f(&N>~1~=zEyKnpaPr;|zONv(3=V}i7ygr8?<;g<@@7Ug*QeN{* z09}!EP>|Z+UhI#|9=HSYJtwDSE2^f0ZR_AAxAqPHmMupo`^2_i_*{N& z;fGuIax(9W3V$i6I2LSKUi-P6m+AR7F;u!KRI#a%{aapG0Yb?bRjY=WT}-ZQfXL z$D&F%c3d$-m*TOes2 z8!%@{Q5e{1s@<@k-<0xYe!A@bwlQOO@yO%chX1>r4GVM+Pe^9&Y2zKk1J{XG@%SMC z!e1mVrmHby=7xnFT)8Gp7uxalH~z!1lEnSvACGTH%)2_S7}Mpe+HvxF>2K}7sm_;< zYo8PTE;(w&hf^Cyd7bPt?*kw7XKqzSLa!+T)vJGhdwHnu%M-^_jN!8GgIMmc1li3U zub%V!fyT@C%EHa&oNBk(t}V{@FISTmetNcbwjetqdaEA#Up1cK-KR|PKTO&*FrA+N zOF=eo_!DX1h|Moootl>Wd~?URclGH?zC$)Zz;Wf- zm&qqAQhrnowFF&9foT)vF%4husHc&iSyH2*hg^oiJTVotxuGfU&q8lhh59L+G?KL`i-6y-oKC^K9Up{*=%1>+>tjU z6F*0x!o_;LfZJ&d%-o1+zaBhId|jvLew|x? z(goPoVH;uFLHcTkX+r=^yJ5gO!UlQ#-cW-m?*gNh;|OaTKq8i0wS3Gf-cWbGfvQS*Gn=U!4Ho;`CtH&t!R~2)3t#fe?;mDLmIY{d z0x*-Q3NnInO8vxqvJH>l32A-6(P8rT;R-VTv8o49RL};*qV{GKRG2-#n*{{XWToG` zyvVad2aR-;&%=XlrSbp!=UnY&@|Qr$uhPbrv_-j2VC+j<2PJj!ew`oz}vfA@W~3l;*2ft z=Fb-=oYO8n+(;B^12zULh5mog+V7eRzCjt-G}fK-quFAs9;l#8D=UXizL7o}uxg7p z0XajL5opyrlvY&@@_dCf6g12fWW-%6O*eSh;9ns|03u)x`u*F}*k`l)t^-+j0#leu z@kbP)c#bQ`d9mZ^FN6p9-U9RIX)Qbg{btvpvJHccqF@h)Nq0Q*j6>03IkVIytrf=t z^XEt3rT!Rw0zQNHAS|ihC~Noy%>TQ_yFFK$O8E2SXO5WXQmyyl7Tu?OY^0{9B&dp& z6?fS5r7rKkb)VT;!$x9lw!%*C5<;**U6ixxo&@}Hm08(}??r;p*+m1u(tATuUk0`$ z@Ec?#|G@|*o$q_VvH$NXwQg&PMcSoBx-_(-!1xB|IYSyQ`6=}xsT^NQc>gMlPUZk* zvajXN-e5V<=Bk^(mJy(9;%?r*g^ayJt5I|M!?xqs+Oy$Y6|7CCtHvO3yJKcJ(u;}j!6Q3{-@O5JmE5;5d_|N+~e~O8CxR^96fv`yL#CST)ISwL^k!+9)lld_Z7QSPrr4mtud zm{Rz4Q(u|Q$r_u0D+>TL1@b@I1SD{^<*>n3q<`U%58(N&z1EZSw*zO@c2&6+0`;)1 zvFahMem2HYl`Voga63f5LF0yTK#Q5G+0jAoK=sp2Uc=fJ3jCUjwSvsi_cAXn_Z+6{ zpSFb)f|{pZ7wZCNd1E%(^&7T;t6F5*?BBJYCnO^)`(mqMTXJFo*!K_7HZ-DZi<|c3 zQy_6US$g#_(U@`GeEdQ&8@2)x=Tq$e(W+q4yzqe>+y?xubmdCThbJ*qqaUA#x#?{! zwKxEFXR5dtnD9ZJ;?V4L1Exr*2de2eZc!#}d0#mTCsroXsN7J(3W80y_N?LewUSIVGUf~@kiSs#-`s3QDrWDKV~1< zql!b>N@k~ro2cvrk4B7G;=vHAoM@(jwunD9>47Z#W}17+c!L!ahAQU*#<+2ivA5hu zWptQ|iVCU3A{%JeLvopQlfWwT{j<+~K5aztS|h%5%>9@SiaJ&0VhUa#oS&6aI0f|~ zozK3#)@ zSa_p9@K|tqmcrGmeA{a|laOHAcfYTUlU55iO8k1m)^r1FGY25stS4i{ZBb6G!plXc zzbu23W%M;w*fGPmxU{^ONULFa;`ypck88&0Gdx%{zXv_&**#i%zIEQjUk>d$5OQsx z91!09y!?GS`BZ#&=B4yN(9Pcxp)7>bEjJ)^zB@rH{prQLpMSUB7}LC(qv9BZVxswl z#ij~anAB4`yO<^O@Rh#=oo88H)IeaN(rwopLR?pErw7z%_K{*1BaL5KP3K>G{9LO0 zzV*HvI_Qk)-Ld&9BPh1qdFyy;KE7PKw|0G?c45HOY!xp;-0s)S7R`0KdWB)D*m)GZ#mI)ot8L4-o zuKApUyEi+dwV0|on|(uUx9EHPqEE|#|1LFY@?L8?n!#m*yH0F*rR`P%R(PGmk)SN6 zhvyPSDuqgw?o8%WXC;b*9oLS+-~KhLj$*{vfA@#!k@lA)Wwazo(shA5hZ^ z;ICWKL|p}TmcMwrB6HtwfM`3Fs~rs;mUZk5LbeoEf}s|NkbGzPXT z1A!gJZ=i*{2fhMFueF_>oy#68tPW&u;~*Q$1J$^d_o!F#K1OGvYVTz&y-@J)MgRFA zR@1A=BwL2hYR0@{z0P(!{XRb*ZewAv!>C0G}BYNtY#fHz$E3O-{}*c zt-W~PTB{RvMQD>=!ca|SFD^J~%8k@1!l+Jpb!DbOP;|4qbJh$34Uk2VqjU)YUMK9( zwoznI*SJWRzwM`!T3%ceeVehmrGLL$+#;=+vpJf7h!Wu?S={Gze-j7Fi4L0yvH?-x zt8#&xzi=9Wn;&p(H>J0GJsVsI%5Ei0W@kzX&SPQDQId35p??<+`K5aEN*wq4OtIr5 zTu~GveJ~B$TP7yWVrp7LH{{I7cvJwb3=A#-MY;_{c7?x5ohArzBHZZSyq!JmW<8=Z zZU|!YbpzHhrUR>G8K==72XPdWV)UajqdHAwG4JE;$8vttL>n|IC-p2s@sGx! zT=#oMv6iBx2!A!o4xj4IgGRUlEZu3nFCi{!TtVqp{+#a#(Cyg=%T1;9ra`D&@wb5i zp@K5J^%d$g57HZ$3qPh4A!4XShY!N0I|9ha9YL}j*1}_y*b73}1k!MQvzlkeaj8&? z$Tyc&T*DIj4i}>)t#ilL17;>-gt0CC>%8fFFCJ_sb9y$jj8By2ZS@@;Wn)^Tol*pJ zlrtRJ zYfnwa$|m^c+S7;-6!dlzWjZmGf{;(xmh?f!^s3RI&clf%&jqJCUojIb@p+lycWA)* z>#6sx8Q%1rn;X$jrh=vc@$~>OP-;ys%zVY=IJP{a}PLmd5#-A8_0Am zU-VM50ieNHy}R9n-VE;-KL3^J@^aw;Z%mh&eNXU1Ca)rPl{$0{#M*@(vwp(I$G(7^ zq3UmvG2{_PD`CXjwqw*&Sw7m~xux;UG2)=CGdaeFZ=+}GwDePl;fy1i(8>Yrs-NVs zm>v-7ujWkyf}lczLcQ{gjR#8|V_koj&BVxFyyyxR#Sf~7UXCpZ&~25QW!>YEA_8Fn}B-boa^ zi-M`mtWaG{PY>3|P=5U{TbP~$9kg!dK28-HTjE{8oWc(>Zqb&+BtnF&bb`#$EJIoz z(m*p=vmO)VM|}!INPijtV<0BLa3irMM~Pdx{>8D_%+a`((K@F&Jm3h>5C4yzrna68 z7Rt5itAR64*@3&C5SO0?wDY=?a0~rVT_Bn?AQ4Zc1L0br7laTSY5nk2+a``?IQVE* zxcv6JQcIYb&5q~nr)OtesjXr;nbNJb(j5q-TecDEN+poZAJtlbA@i$?DK6OEBTOBxXnH&933Wyc{ud) z2sZc4EQ1J3)R2aLkJ&7R*?5LI-@*4XWyw<^r={?jLUb5fx;2U;j*As60f(k~ z${Rzc*1QjIT^SvekuPYu{ZKrswpIky6L4rBScJ-AsIUP)&9-&bls({n$!t-MAbfw) zGvx-r2e1>Lf(=}NnBybIOHK0LX8ONhmg0``-2Kyf4(>I9kk3SSwDhs?a|E2>E-oJ@ zP@q8RkJ3#iw?+>?D`}sf{P5QS6QGFlL_tmGA4l0ri|~`!cTE?k9>8Voos`qPDgsK= zGeSWB*>+amIj$!kP@$6jb6Ub%LDL{o z)cI(sLQw;GcRr5;t!y^{6QPDV2@YGf4#<3pA5Zk7P%>}31(ClA8XVC4{_T?b0s(`K z!MX{WuJS3L+jl-}b2^?pAKnT|-!0jG&}B`VrY&ty`blyaBlZiOQ2l|O9AYiO^~CC_%`{EnBC zQ$aMM!ucmn6~Dq&4E85~U5xUc3ppOO^iRKc&ZDVmJDGO40Yagd7(iO?_CxybgdDUJ z7!{~{RsT$w!IBSa0Vpgn6;&~4C;VVLlsz;=Y>e7t(%T|VbAcSXMY$hb&rO|4xr2-q zpQGs^tdhhx7z4q`KX8*<&x{_UN=^X!FtaoNhm@%Q=)LP|f00H`XomMXJFc#h3ebSS za}2=j%6oxMrjSmTg>cX)s9%geF`p=gOi$(pokrXUY0 zpe3KY$J{T@ysQBEW`~3PPi+&-Od55WqFWXPHV#~D3onKxqN@} zMo_vbBcwq99Rz*LIEPbueV|$Zx*ZDGwekxAj`ZywMb^h%Ob-CbVu`}<-65Cst>v`* zb$0f9F%C4JX+&mPS+)@Wcx#=Wa}Qwr{sH%BONRmFT+m?(VMA_D!)>QSbl6h%{j$R2 z&YaNe&CBM?u~SMD3Ln8oh00c3NnPU1*eoorNuqKqUfpQ~vevH|tZW~3rxeDEW(x<) zhIUbTb6#$o{_=rslvEylw|i(;K7VR7Q74w(G=9%F!#&nj^3;Fp^r97L8;MP6VkH9_ z5&hLGJffwvW~Rvhdn@#pJ+m|fymnawrFwP2kPZ7zhubg!z9s=SBBK&wHCy${#y&Zkq!As zpV4uq(Pe8&6r^x5k!32d{dzd3VO1fQQSGCx+Qryw>yN2ik|VS+HGmFI9f#S*vDGL8=V zW$8fLJX!pZ`t8+i1)>`PHSSN>EY{`z0!9A2KXVG^n5yxxcs>BSMM+h$dH>3RU%$iM zw$k^GRq=xjG3>WD@Z?q?CmgPIwsG?9LmT78g#u^c4%!|!FTAER(b$tv4m8pe%B zUF#siPXNlN3hb(ml;Qf>hUsPEJBNA|QeG2kZN$7uSLe}efa#~_llf)rU@StaM;IPW z68(4|TO>W_;~Iz3t#k>WPn3Y@yrtFYOXq{+CwX2-H6AtVW8I&|u8jM_ZfL9d(*H}s z6IWX4M%eM5l{*od#!FM*-4OBLb1#QKXtA=WQwiCV-wmJ!>hjx35YNA}HNkA@o!xM5 zL|}+R!NW}5^Eol)UJ!@kX6u3Ts>PzodOsyzc9^nRP!_w=_INIwlaa6B{@d*FNUudv z8J@2ooBgKsP=X}oG@d~&H{kN(!)L8xy>cGVVG+92l^}OA zJ#r@G;np-KTQCOy?Gl-t-c&)gt;T)zgO3`@GTqX&a#(LC3pH}I`C~vMtYH&6#aPwT zk$6YV)ctF+A_t&i@=eV3<;|&TyJTt+Cwhe{`rJ8G1iGXN7naNPT)_5Peys*{VzW6;cCPNhiX?FCk>%x;&Wb*KL&@&3S>^Sk13MnQ15(Wl{U8-p#A*-AtMeF zQpE@^KW0*;SA^5S%0jNe)8T|nNtQwJBZN-jLUK#QMLmp(xGp#eCbkJU&|U^ma8gbC z$@Uo>*rJ~j@~QJ|Jh9V4&qkFG%0p-@Da(R_gN)t^Jx?X(G1BKTu4m3siqmbc7>ri( zipj<)mpPFplEwNA?7ynmIWVv5g`ZZOfmQbcWZuz=C*h(cWD|?}{B4Om^%cM!d;Jex#cPUg=#kMhO5}m#XoxP_aLptOZ-qJ={ zA?114A_2Vp2NC*uf`MBuT)=D@NbrVV^kzym6ZI-Y5~~PeGHru86{kwHySaETS~mai zxytB6UYrK`1gqvh=9hVn9|8)?iByh_8clLE$dsVYH$BTJ)dpD=8xr|t)7{)AgfSOq z>9%~l0YWBPT4eqwR~yX|HAjc+dl|m9oV*GwC^dJ8?U0hIGZ&E`)56U}0!TL((k)jT zen3&&^TeOP*jfWU=sI@TVx?^dQ!7CL2)q-)Va$)fchqOx!`nQVFx6AiP8h%^j1aMo zm`!jxYXH^cb;>SH;$i6oe1RPJ2!;@WOlVg*Kr)N%;(7IZ)WTKdD*>Ry8&Y_8_O`=7 zDHgQYH+lefJjSAq0QR)n)&&9l{6p0lnJJ36fzt(!7cL6sjXOG|{zVr!E*O&wdHRLmNdCP0L^}w7$)|N z;D{-V$|YsqwdzqTp505&(G8(Up(!#hO@g`~v2;>pd*5X)q%+oRMY)mwzvnSow#Lhh zIal}xw^uU*%9fbXvq)jT>)-f(i3~QwuY!-dd}AwmF?~CR?_Q)pv2U+N6u=YpK9by| zmn*MZN!8Y>;6TDzYe_Z2!UNkd4cW}e?pIO9&8RK0${5YX zSrGF$J=xEJ%RTX1a({{Ly_BG&NvzL@1LamE7z=Jiizg9zf`k3SFT_ZW9|Mb$+Uh1t zee|gVsYN_nS4i=x^lZE>K@jLLX58eHOy%deTm9mGI!Cwiq>$e)rsE`p=^oQF-Wot> z6zIDJxz!or+(x4D>M1|p${V@hC6F&bUi42nqIM)7<2Eee<2|L_ymsB~hqZpuhweBH zw%>Lo|Asj`>_PeMI6dKcJJOuHyG4A-`)WY|88{ zAQ&Rm-(SNB#?2mn^b_X+E|i!|+LC@t?j^OXRJ2kyaO=HupRHZu44u)XV4PG8jao%$1R>9Bca|Mx6-OA@Oo9_`TBZ4SC~r zoX;H)ysY4K(Mvk!Leg?w7lc6!{2pyYbz(W+FjG~;*-QakjoJ9{!9Sjf8Sc12`gU{^ z!^`SG48JT^jS)x`iiQJqltLqhu^&yaA>D$>BQhg-LRk5(mdFNo8jTsAEsgms)bcYKa+$L5=rCrRfc{mO^KUVsB#9C7>gQ$vRh z;)N0OLLdpQ#>tymc0c-AX@w%`{EB6<(sKP=Nigpk5Ie4W_@hQQo`miCjMnXjMR z>L8Rgz69OIMdI!t#M4Qp+W!c|(SZdG=TfdGVo@#ZDg(8o4_#0JV(~AShu_&Evm@YN zC2q5-CxH$g1CmcaCuyQztd!B8YIyh1a4rnTM%iCnq33#f}u9 z=cP5A{PbKWR*bst7HNW2zqySOhCCVL+#~wd6eS)?a~tqK)R-Yq^)wL%Hr1^CO$JK- zQHi-5$DxdrY>DQ?u<#RE1tTnpUp5YA_(AUH2NT7~X^cqtxcS%64{?uf$=Z*X7!(a+ zQ*J$-{oK@>Apv!YdSg-8imPJ7vlZkE(}xD%*}JnK%C4EKjDx2e*Y@Pmj>$*M2>NF{ z`V558!cT{p-I0`1OpMc+^5-{m|L@T2j?-Qj;o8|F9WRRkN&NCeH720oOhCcy8e$uD z+M~#lgRWy1h2NYeWnr0Jj|MIs?nSgiz z$fNaISHUnVLU{~XA_g+rC3S&TyhXY93=rJK_i&kT6U_C+@%yt89!^tk68f8OH zRXy&{+{jZ)*5;}C_KLOm8>1#}-6SBa+yRx9WH4r+Xfa2GHj3$Oc%uaqS}`!PC5a2} ze*-*e2s_rURAjOe;cJhYsVHDK ze*bC$0RQV4bVdegb24mh6E)D2r94|#N^FNfbP$RX|C4K7!}d&WITT*`mX~}f_UVl- z$n=%ErpvVubv~COK14gWfe@rNg(lWHAOtWH?<4oIG*N?px0=X_BdGdos3xKvE{YmL z)Oj)Wrn0}$5~qQj7BZs>VK(CgpMUJ^%0~oO2ghHG(?sQ;s74wx52O;pM0|1pJ_u~(X~Ppw+ON0VzSZf$ z5QP6QBXY8Y9k~#iNb}bfqrCAW#4f`%usBIfAUOxH%Sz^}Z*0a$_H*H`?Ly9p|LTe) zGr&r|KEVHI`9JGf~*lM2{>PtJ)9;x-o!O4*p1)2P_r0wG8mL_fDuBRf8ZH5IrR(WXaS$dqmV8 zU{AK`3{oW9TH$^3V}5l{EX3HQ)>ZpIJ%L97jTamS4yTeBa7T7#0rQ64c{NYbd^K-+ z$xyjv5*#ruEU3{7TVWcEu**0_UxT`^Rvyt=Ct}#Q`F@SRrUHdE@j!@S=^8+o_(fxN~IyA=$_h^MX1k=Ub zllGQ5*=9Pr6sc((W=fvEw_EhfVrKmuJ6`8X=I;BwR+0NBY-{R68333*0^Tu8dxHKw z-pZ=>G}z`8`)Yt_`Qfd!?Wf;49HhAQ-54F%zWgL`X|0M+Jcv0Zat1!E^WV$ES;TSiXN;?MmQiRmW}o z8it2iHYB=JRfT)!xK|X}yZ7z4SU%2faDL8tbb@(%B-z8)dJmgt>UwZFl+wNMR?ZxB z$FnA^i1kxy65=R|HT<8_uGFpBIh6y}_0Z8UiyEXevG0iDNQLh4xZlCn^kV@sZlr7s zZiFpqNgf>=O_zqPNzR*aMXxSun8rEv!h?U033I#?BpR+J@&?i}6a)P-rd9&9IgNS4W-^8A~n7 zXe{ROrh>OQjWILB1R|eweDLUn`oI@1WJ!s|>8Iyt2_G;FYMJs3-&0_auf!ZQA9qlx z4rXP|b&TAix`AUBye>TDCx%0CZrzo_uMlhu4;QaA5$J@R0 zpMEQg04o&C1Z%(cjTq+oSil*BNj(u=ncg3jqp6vPd2lTpUmv74$K=mrDk2E6inYeQ z;|On8M1$@32^T~LM#&?%jq3&IYpUdN4#?le`L0`3%rk=9UHtVyYhAg7AE&7AtBcjdHVBO5(oD{zyH-n|K5o+%Tzp zKw$mHR?-J~fYF(QG5M6&NSDWqKA#BAv z-imJLjm9s@$m}=8R4Lf6dCRme3xE}au<6!*F3i3cw;+RThdW}~44rYA@0Z?dAau%g zxpj!?%J5;q<0+VfT?Rc5aiGE%wM%LL9^f-oU}1mv$AP&`AR)hls;*e}i|rS&BhOB5 z2X5R6S^`eAQUyVwK!~GZKlzzE1U{k!jTv(M5^JsK!z^S3x)0j}{#-$*wUb`g45n~2O1{|Gn8kWvl77PDVGJ;z`PIIG=^cSY;TvZYC0+AC` zA?XtyDH}{^HiY218VK`^7!o!2s@Jcl9Baus`Ey8MUtBsvZY!S@+7wRt46VSU4wdcU z)Bs1=StxJL7bCI*$r5RKK%3d(*ydlNdO8xf-mlFo`$tF&GHBK`s6T8@ens0LYV%jL$i^50X99k#`7sX6%U zNb3E2@wfji7SMw>IW`bR?6re1;xodUClQ@m4tQ2;^RV;@7iC=Nxqvj!Em{HPb4O5v zS~?J(xvw##Gh1LfS?^vs*N^h5@fP__X{N2Kf69+N(^+18O^4f-Zcq|J1gq_DcM_)g=c1Bkb&1C;CmM1=_yEUuX+S4}UqFz*Ba z@%(0s5A?w9y)+9E*q-DagG}_MG2}&&=$O(S{&1r>TTjxS=%o~srxZ70`YCvF@nF(J zx!uMP9mAGdF7D;!q5mhV$PIo;!=@sgJdFX9kFJ*&#N~S2#)d05sW`q@S|*%_;T6>8 zFE7S@`&q`T9O||v>%h2zaBfrf@@sQqj~9Lzxxr)dnQOYEk$Gg+pLNH5v0iR>V>Z9q z5Yr^UYpapiFH_V*T`Y#2-S2UA;)v9x{o6Q?Oxdz%^fRTvR&`6j0~jtbxMu+7I)kAZ zy#e?^;g1lroaf-qF_SyD)? ztrPNBVJ;bsj8`{S|)u+VXPSUreeB2kI1f8 z2vNII_ts0U>(<-5I(~Id7iVZ_PpPREG|Q(&=zJx}r54Eze?AQ=I2~*4XT$pHtbSP8 zx(kfb0=Q`&f3E4N+ac-iJmOqg(T=WE!gW@whawCWQIHby(xXifVckiKCNv{ZeHy_` z6QrB(xl8v-ndoFwgTHe5s-hhT~q}gM<0swTBFgZQy=1!POVR%qU`*FCNf5 zB#0iB%xzZpJ1XoM0cd~Q7EcbMLQfEf)nKM!`Q^Ei&y4u7bLr=l%so))z&l~yO!Vuh zSQ`&mP#ADw;Kc5GE$Rz_Tdc$u2xAChCg4*FS8z=l6W>&h{g%2dNJ};i@KyG`jgTlf zZYVE;-@wn953LYa-%>eKk{;n^e#SvoMP zKOA_*ZP0sL)s?y>jQ8h>Nz8&+^oOvGW&;+ODW*Of(;rcl39fjJD3{73o_^Om>wod_ z`L-m#VlAlubS##7_dYsa*zsl){SY@7Dz-&g3Lmk^mhL>pC1XSS9yWC>Ck7@2&IV6| z(KUHq`zym$Pqn_R+6SO?<`qa5%~(+f3<}K@j|ofWYoazZ72IM5o& zhBOaKltuGISv2(9FtP5<{4`M=ZDXK3^iO(eY(86$4>GV9b)WzPjWMy;oO$8vxUawV zrxf)2#u%KerQdYd)}595Y!mmsZo{eB`S}-@YYUVXu~0weaS>Q2A(IwK2gta$jwtjL zA=VIoaA&kk7lI_qK)jelJY8Np6Hd;`p` z1&?5^1vAMMlR$dqinFV zpk_}h>h_Z$>VEF7kp|-X?+2Y(z$OH@#UA+<&TY6gY9)UU5 zY(P0)gYjl8F%?ud^5L#ud7NXJ=V-2c)r?naUE)>hdXstXIi#Kg`KxAD16NR2cdT5n z#6YX*u;X;Q=dW{M41Ix9B3GdP+F8O!`H;&%b2?yUN_0)iIq{~$th(fheU2|M-H{bL z-UWnAd5*=pE+?y*c?$-v}p!m0BPQ4Oa_!JMK)cQs(xpf#8+EDRdo$F+aZx;sH5F zuQ_+MnFJQCJ8CuGv{)vd*L*nj7xmH2KiK4c=)Okz+YpWycfKn1(F{rMzl))b{iSc}>C3BH1)~$&Tn58?jlV)tW+S%o)y`wnt+rSCJ|3pG z4?k(4KejpfMR;VjdMm1AXw z2YkieN%%Z__Khz$A;Z1x4G$T?NxcA`Y_VaXkorHKe3mb2S&x^-aM z5Mm53gf5=+5cAURrPviRRVaR{RdgNf^kUc%;H8vjQBFtlmb1Xh{0L2Z=0lgSR>Ul~OEv_UB$gShI0Gad^tt$k67> z`z|Q10`cT0hf-o*Q<)!eUMi$9bgX$ry2(e@>UyRFJ`={nYs=UlpUk952h(KlDb_q^ z3Hy9uSS0+6I{eMZ0>SyBr2JXBl&hk*gzjUR$Kj{i|8N0XzqM<#LtJ@bB{+72r0vkvze6 z9&2=L)=qO1Ff37e0%}TtX3!xs64^L10SY8zJ>u^faR^z$3dQaz`7M!a#3-uRkiy7c zc0Qrm-)xPDm!87%R6!W~JWDRR(O}(2$qq(dPLUsHF#%QD{upa^uN&S&#+xrfgzM#Y z@_RS1HuXnMGSM^JFR^X1D{D;Em;J9fowUb)yHhuhbt<~9d^Yf#S$?g;!HA!k!?3_R znt*t~DH&hw$g6uKjg*0Wq7)N%q9!}C8_HiTjyqcr+1YvwV4sW2TYoWa({enKyAWPBxH1Ck+ER*TaJ>pTTcHs8&ZEm!#nd8 zPMh(lWT?!~Q*?I_<@nuDjz75DydbXdMvr*`IBc@S*2jRG5##{JfTwtUdrC}vv*YBVns%`^F@Pffb^ikoO?XFT`1Q7v@|jPAak3!G7Jxoczw`M#-H-| zZ3xXCCM8uY8PftjBcJ|Iq@_5M1LZ4}6dw$5u0Bfu(5Awp#%OdSWqR$``st3FD^!kH zhHkAXU$;P%z5biEsE`taF7|~X3G7?HdGh#pND(kE(n%kIvYh=a(A=RoB=}I=<3EN8f>Hz1lrTB1aAr`cf zAWA7XUB|p2FOz=(Pst7N;Q(_3$rpS1rqo#J@c9haEt8)`90`Uk z>_n&>DivFj45F4`0HPv#@j5**&;l!^_$}prTL_03+K^=lQE_o9Kv_JDKb5E=vt-;T ziihtssM^=|4Gyc*IScC6-_mhw?bXp6e!$s^SFYom9|8yO(#&r#&p80q-kNFl?8|87 zF=4(v5odr{mj|*iCpk*AU$F%rnZli-R_m%I@ z3Jm5COV>bz0Np8GUtb`rx5YRSz!A=gA8qGE0hMWeO8&Qx&^?Q7P@$%y#E?-8a4Mac zK>#4egK(9_r`~;w*j;kINd(UX@;UEK7hw!ZzwN=YoYo8Ol`*?l-;F{4wLX?0_mNXv z84<1qY0=MMo?f%E$Rd{XGLh3quk!cCQpebfDisY`#*09o>Z=g>dt`Bg7<95auD3dR zxRAX%PwrXQ>#FJ$(~_(04|bZn&)=erh&ekA1G>SpR}ktUk^!#0SQCDm8SNo~H1Xrh zh*y?Qr!e;HZSjg)Hqs#52Elj2#j2GkX5tLvoUVC|^Yk-=k2~%Zd@hZa^@oN-qR7T- z=wWGSYro_;HTzvihmlLXoBa%kMu9hvVSQVyECakbKKei5<2CHIxWLCD#*1QO%Wb=K zx$Xs9dkC!i1}`l|1dh0meSU( zR^H~W#E|`5=blf`7Rk-YCielfK_xWjAcm4@PTUgMi zIFP-b;G#Zr;G&D24d9y@0n(vlPWJuw*J5LE&;2BmZ7P2Y#@DcGgTY3r32}TG0Yy|k zGuT52bNq{I;09@$Spb!^wg2V2ZkB(mFU&E(@edC|pPAu6m7Zg=%0V)K3j!N*95xk) zn+xAxEOYJqH*}9+oFg?4i-fyp+7lC9k8A5V3&37diUjS{YW(G1Cg#DTHiL5DQ89GefPfMnjk-l+%ZE41VHjXT z^z3i5{#)OgBZ4>(z;ajzl7gl)llfnP2QFgZXd+nVzGuVLu4%)-9}*<~S)#=Mw!}cH z;OXuGkC5fBSPk&-;YJ`eA^%3e`JlfGHk=riAi>}Gg9IF1qlyP<%>T$gPz{xeSmqFk zKfq}~zixd5wt*e|mj+_@aqCO)*W$GwjEMgEYw2O|7R#-s98``l3Uj*4Jm+=w$b+{=QBb1)pu09PoQZrBX?4SlmZ_e@R(`WuW z^k6&i9XOKzB{9VdK-6!;0P!_(p*;#!kG59sZ*oK}-SV^* zPZ`DK0?E8q=MyjH@rJV`2yrBF5!rx}H|Ml_!9U=r5lZZq8NE5|DUD0@s z!VG+XrV%Jnza6yu099+gdNIEO@7`U5+SmiDjl{5#h4|CAU_liT$Md2`)0FH;-#%F)05u{}H&)mzU`D$VfqZlbV4sLyQrn5j_BpcK*_(4ur);6uvx5j025|_oDb`gZ^x5;1PD) zUZ)P18!#zZHs>awI9cM!f*mi7M1OKD9MZ}IyFdaR{3jVk{nEk&-df}!MF&ayV5L8A zNV>ajBdRU~LoG(uoD3Rpc*U9jZ*%4d!CTHGxDcEM{htQS!f#v49CowES-Uxb4HK6! z`}T>(#X&l*a2$M^MCd<~-k-0TQ-JIeTpbbFS72C8PdKP*=0vWwT4Fa4+6lJ-5E$tI z$?VNw*GZLF+){8l)VO_BsXNj{D1^ia|7+p?sF7!aw0N*F&{mAs<`baM2Y#yzj%e*C z%1_}{eFKm3T0pi`qk|r8=HtEPSAhPe0-ld))PScxLFX_QR>9S1@02%V$Ypv4I_LowYAjk4fuaYDbj|9iIn{L%&( z0X){hv0LEnp~=M$-{w8VT_)BT1-zZXqsHO^v&Q>bsnPu>DEk)5>BI7G3GC_@CkC)C zG6zF+El>u(M#>u#aV>WWbVF$#d|_)yfuF2fKg5QbZc>x|!=wJYkMRVM)f>OyQ`?}n zJVv(+YF80!DO7Q7hKjT!A;d8L`Ncj`?BK|~b#7qLgx2?Zch0A^fzn`}&=O!PuMV+? zZIj@rQA_&jKRLgi*4m#DlMk;9tDIHBCNVCk5iDl=Pxv2UX{r>vVAfgU_gaM@R2MA4)a1znszihb#KZR_`S$Z#2W_KM`4 zg{eG?Oah8%sV#b4kF6M@ng$OfEo4d zrk@+Kxj#j~vmQo>czl0} ziLa}~HAJsZXkIYu>$FuOTB#3K-!40F(ggSm2D{xqv7}q(Zvn=;?`MlnJd*FRaex%@ zK^-5ATu}B1oDD%J)03lYKiMDU%V2rGk3&J$<#G2_dqDZ8dTpa;HwG8SGX=ga&n$ zJPIO$Y(=sm0GtudFSHX91%}JrQ|$8tOgR_8<1UT^Q&DJ}<&o`@tOwes^sX-t zW!3{Tv3@RMtq2N(hhi$YSA18y<~0JI`NPQiFe3@oIiXSyI>o*@HlN=Cj~7b#?05PD z%8(fw3b}E4JP@GWHcl6C#z2q{=&5fw^~wr!kLz4l57{YfxT#KqnudJb#&q;P_;si7 z=K!{g;g3(xH%hQi?S(|TLj%+nrrD4S4+J~`iR{p6g)QJuA6#unoa5)?(ErzF1%mmY zXd;#b7gQzu-TfEoz8j@AxnOLT%OTQ$Lclg&>_-h40CLK@uuljGAs-UWlDQx2N?xA1 z0)2|}wxPR=)tU4?O~wrHLo_R`ALuwihz`ILJQBfUV?S(DD2pShmY=yCs_OaQmyg5% z4)`$XDxg?)goI~*-Ol^{8+3t$hoW-Ase7O`Vp148Hn%8t#(SfbBU61KLxKggildrZ5}nC|Y%=|HS(t$# zDi+`CVk$E00mpfai;%%<@_Ehwq3f-qs$AQBVL*^lO1h*=KmqAg8l*uG=@3*pCM}>e zND3$^B`H!ONO!0-(jgs_R$BP3x!!l5z2E(vGsgPEv4-*RJokO&FGTG+FWwPw#pF=p zFn!*e^Ay6X^BlT11MoR0U3%v*VTJi&)~cloaBlzqXA6|6SraQkuYFHs9ePpCzhN4vS ztig(Re@OLqVVD@Lxq=l-bbEzYGSq64KAQ-0kJH~z^*GjYVx+X2!N7r6NgN(1x&WOi zlymkw9|Z${Odht3R@#fdr-h5@;A)cl{{0}Z!%Ai`?*o=4yC^zB$>F@tAE=0OlESyA z!`v9gO#K^9MP8iOP$abrj>|!AU>l$f`PZGM$AC$lP8_E#a2)iTni~)L#8JGkiCWkE z-r?X7Q|>t1Odc;xF8xw&K-7^VsUExFFtie%U^4EHr>UYTzTLxihgXp^b&A(Aq{L-cWRnkfELX3u+Kh$-T@;NR=iE6}`m`g=Vm`W)2U zbp4`p%1||5lMz#IG(4u%#j)j|NGYa<@p##JfM4m(Q2^FZtq)VAh!sPGI#T#15V)+@ zy-k+XQKbMfH8q${j`CvWuF4&ry(-;dEk`9kv#7>1WM#h)0S`xSN$C_~O(36#OM6K@~ZXM zL>34L1{Mgb^>L3g{EU^p-h}N3DqThMMB8<%89pO%qrhq`%=s7xqs%Utss>F1rHxg| zFVJ~_$T(D3gAs=lDMyC5|Llsd8R3LdGZ)0$;#}0C0TtnH;R5wb0X`-ZC_<9^I@lpD z7*|w0g&t6!*gJ6_fNM-LM7qfkV$q;?&G1`CZW=;Gz(^ZPA`|Ztrne$h;qhwMQ4Z9X zMrp)}h{7G9%Vs;*zl5hxAI`$cM$%8esCBtvnd;Uk zA(;`~KKyr4q@?`)7_hB$SX*LMZCadPgcSW{_1-E+25LJMZokCzuLA2n z@qp--=I;Ba!yho0WiZrI?#99ARoR(spc4`Ie}Jp_4h0(n(S$G3ks?ope*M(Z6~P8AD7>xLsFd6Fu?(PMbCef|KlP=(@3O&q6d_#-xbv*Tz#m?i3_8ThuQH4Q5wr* z*gYpm5{fH2OTsZ6b7Vxpf8oDa@<1-VqV6KSVoWmSJ<(JFTp7yco&-ht36u&^Us`UL zO>j;R$7FV7rKfLg>0|nR$%QZ~lCDZG=t9#a&o-WzW8XKNT(5UI?Jkz$bu1xy?#lx+ zLL4F8h|h+s4|m@1DVl)OjSgu=vjivd;>8E8^)rwk-e7)QZTEkFH-PV91|Z8dL$%jS zY4RxJ*Nya5R88^RLh9Z1_@pm(6WXk7Hm+>wv^n=l@pBl`Yo*KkB3gMLzWllEQCC)3 ztzxo#7b8qUj#OMKRygT3W(f-Pbw7OUU)6n0QZvZeFa!2K0qR3MDH~T_bX}|Z<)p_} zP!)2&h|RSx0_o3)Fp%poiGR{;KFp-q={hzk@ z%^OT7?|JZS-C)))HENf|NP=SQQEPjo62o0+78(=N>k!`>9S^_#Y71R%4^KeRm22Hj zDj9NLwiLZd*C?vnGdzztK*~`+qQrMEo{# z)5N^Aw`+S=O>Oa-o^!X?{1q)xnDvjZqLbYp1~b#JTmovDl})N0F}ApiTIMt+s=kp>&oB3 zC;rhankI~coNQ2ptZ?Jemlv7$D&URRHW~fnP4{N|V z4;abE(TOAO2phV5X&qWaakojKbcD0W%&PLH%#HAN#BKDYau8KwW7b}b6y$AaINPq< z2U&++usd2D%A^r*NzH-+?xACJhR8|6>B$AqU3#`ZH6>mCJ(T7&EiKXgXb3;oSMi1A z>$D=8MC;-X(=}l`ue)G}zW1K8kr1zLH_B7~9G9VM9+1wXiWlc6i_&O5zggh?!xEGt zkpm;M#E?01){xt#FC#Hx`J3`P{yf%xo(sQZaji6<=d>rt02EobkDW!~;;8A8uD^6b z|0T|YR3SB#6==L^<%GsOm~xZL(PVLPrdHyh2>sfnMxvr1olwcP5<5YAap7}Lb zGUMHo!IL`TpPivwXf()Ji7$N}^?VD?Si!~;92GH2xc^i+U}`7@N>Qasj;nv903NhD z{Cc&5nYqmR+rxK4ejgb2a}IMpFSS$<%Kb$D1T#XwJT1x9fx}IaR0_0Rxj$ZAQB;@* zs&@i0vw~7b#P*4$cm`6w_hA6VhSK$ ziV4#$%$U({L0Bx&To7zzyK}g_SMg-a`{__kR`G1!pFba*_gKKrr9iCv5Tx#u|NiP+ zA;1vX|KjxPJ_`IL&W0?1)CdYFFC!2D?mrmsoo-44x9LI-@$;?ZLUciY$!4h}=HlI!0FdVqBH)&R#r71RZnP-dAbLsTAJFs+ynJc>c} zq!aaCm8WLCghxC1#<$>gMBeRkrb8!9pyam;nobe^ROMY7oU4&J>;8N`NV$0j6ZCI| zS?MnJV*I<|&74QKxo;}6eusKk1<-~@!X95VJV7sDA9$|cfQdcRNZSA7^7EL9&R|T~ z6Z1-ic}N-j?vvL}wg(v3$LjLA)B}y&ZDH{8`DgfbeL!fSJ(62~D}_KBOkb7l==Y>Z zc|~*v=TG-y2KNSAL6{-n951CoJ$NGp(p0gn#9f@m7^zbwKYLJ^;bLC|)r&k}&u?so zZQsWfcj?%`5w|q;)R9sAmesHDn!50X^UYZ$psA?NKPQSPC@En^IvK0{=gj z-?|rbC0b%`Wo)6Em|zEo7Ukb1rIO6MwL9VBt&SRrzDb{#pp`dkv!TgzYziEzkQXRC zak{Sf<8=a{M9b7sPG%bvJrMni(~Ru4nF27+j%6)D*I+xPM)66cH0I_=A&RZA+Z|C~ z9);>x7wu3whr;Ami(IpSS$vSm_c(-risSZcDjpO*2qXe=@IH!U!Mmx%cOXWHxI`Sz zc+4q-shKv8xG$YWDF}FOG!gm6#uC{pp=ZamP{*_{WI*dsJT~xKu=A7bwT(5=^NXPV zKjlWg(IK@#VkF{EzQ1jj05avRr=XY`?`wN3jHNZTa&o#%X%7-mR&d%ju4oO}v6uls zAe~I5zEdC5$<1OnmLktFGedg_>qOo6v#1d_uACB@mOBvS@_XArgRT*0XJuKP0nI$f zbf5Dza_%*u)Uk{_!uR-B=pkVr@i0q3SVn`-QIRn7I1_W3*SCjMBDMwRN6DGXyT4?) zGD+KmZUC)KvTmNu{0Ow)I9srk5i{;%SY*y3hY>iUVZP_zg?dF`Q`U6zQO`YW=lo@J z*pj0(3c#N#J}it4)zm~(`+!dRD6yubw9-B4m4;%&&qXLRt&JRz{`ik%EF*!-P*LiU zdBJaGNr$`a4{)>=TXqCtlsP-s~n>Nf^Rv+}r3ry5L|MGiNS}8^NIrooLLHF<9IpOBv z3FC@eYK4NT`!|$mGv7lcAj~8I?@P-4EB85I^LZtDJ@v4a&tu3~9Jp2}~V< zW#&zHiFp6C9NRpf`ILe3F9(wT#j*LLa*N>8fH3R-5oj0!(%k#2pWSNkaksHbzl}(X z{Cx%e{Qen;6&Fn3hB3^3TfAhg!cu?BUL4f;eF>Yc``Npp)Ff6Q^EcBo{Cj44S5d%a z6I=pjJf6ply(E4rY_PN`+X3)hH0Lk`q}1@Hn1nR#fKSWb7O zU~At_YblIRDtu2|9#z}Dn^&WN7VUoXUaP}S1pCL5S7Wg<0nO=x7rhBYPoEFf=jj$} zhl_49VRdaPH@9FC>4jQicWYF^SP#4ZjgD$08i^5VLZXQinD}DL?_q376C^CIRdvw4 zMAD_@1hWJz0<^9_398{Z?Q58^!w$>r#n#*0HaJg#L?tBf^6?BCvh1!gDMoNrR0r!q zTpPiDzo(JjYLP5~B=FP!{?T{8OA+S^xb%a%G7#vf2mXB~$ylv3TcyiablY=IuuGJ}de%enkA$1Z#mm3`g1lT`nBR6a8 zwpj;2Ew2aE4?rKQqao61{rg_mgy5JFGt5|>*753vx1cjB%6#6<-a$?ixOan1dFA_< zN^&2aiTINO>H85;W?E%^#{>Kq%=+adE5mWZNcoQmFsPETF26dA5%~s!xdIN3$wvBPAf3z_-N7OfBAxSdpzyld(ckc z>fMIPpG#*Dtpxu0G^OCPH)1Nb7bk%nL#u{glF|QqtA?{s&;T%XmC@xD%x5tb%M)Y( z&;G^(697-yn9o(3Zx{OsGYnrT0%FkvQEoQ>R7WOzJ@3H+ z(p-;Hrr3*rc6Vi##6Q(xV{v!W|Ea)F$;(I$oinZ zn+KDL3~`KQfAKPy|H;Vi+vG63kXQ^`2&UT7v5rlWz9g1%ylXcnAMS*^RiN}daHn>_ zno`N}x=%yKC1gq+V;bDhvMcX+MO;^+RAgdsxPn&ME$rj^!pFp8(6TpBI)GlF-um|L zoY&Niy{KqMNa;uDGSp`6^$JSmzuGRz{f`6B+iz$DZJ}DkE{R=yuITS9D$nv* zk-ryi@Cm_kN->h++_W(nmMjHEyr1g#@!oj`pzZG&)i~YT6-fSJf&s(C#8Trr6_E1V zqI;Wz#ftVQltWxDy1YYu9_U2N4M);S&)&eA7)OfbX6^ou zgF#~c<@pgk)!ij|FCK!fn^h9`No<#TTL~8c%vtE+(ze`j5K-19YY|0sx3?8UFnVC_ zzyg-U&OS*n6%830rc(o{yssWRrO|s@yPlTC#GE=cPUeq5lZ%wwV1OplrH3olh_>rH zNO7qpe;+>^u0L5x)oXuRZ8uThWI*%q*lrWS|K9W_r_q`Nje@EqFj*zX|LX+F404kq zDa8>b;9T?0Q>mE*UN0#3#689V-jybm5H!>KZm-xaO){hi@RdU)q_-yj>e&m86YC!g zPJo_&FDT1s8#~q$+@_96rnV-#2xt`%p^o^#d=@pfhDF`+PL#hCI=YwVnzo%jd+v0i zl-%09JijPait+@7I>!bhC~4GU9N)Zuid$EeP50Vw^N+=~Mfzuhr{H9ohx16dRGLJA zPudL0@C?I~{YKaEuKEg;R5{zB!eWtVFD4|R>aPb4hQ5@ygil;o(>;1&7rne)m%x12 zH$Wtt6>^%s`~>4^91jA+vCotPnj3Y)4g=tq9u24vk|G{*?4@|#fF?4O>xF>JlG2|i z{4}@*P*&LllYDZ%9;g&#y!BP1`+cAv^eA82>!o-C8NS7i8{Cu?ycsE|DzezDz(}zn z#xw1d**8aSw@>*6l6qn3;L#$Xak^u_XA`*v$D+fww64@wC*qe+?vX#USD>;XclfnZ zAfLil)c;)`Us-Yv1baS&oeFF-M)QZJ$Qs_i8z*{Z@j}UOGH_OrcCqbT!W5Ito{mpZ(E@3%e(jLDzV1O z?$O-0fIwO6iTE!}jl%T8u(Eh%aV!P2A%O+5J@$bwj;1aB$Sm1V6{yJ<{<~W%_NTDc z8>bW5{rG!hO1iYm{B;MRn^n?@K}iyJ%hDUI!?n$-Fn(1&TAtDSJO-wx&pk;1$MbUe zvw%O3|Hb*eGr~hFz`&*%X5gSJJi+fjW9JEF%TaUQ#7#Mor{*c0u zKHq(XqMjb^%-!VoYVxc6rF7HpcigE5J{Ds9f+>J`Dy#_9UP5zDPXa8cTc^MLA5}{!qnX}#!{0vbiONz?Xqa2BNQ|#UbT#-R8@WWi@s7qmQ22q0bie`l{THC)J%@0l|a#hq4lNS zn~rn$--czD#R}vtE4HN0E8Pm<)Ds?NS?*2fPMUGTQL=Y}^98$HLbYD_0(18~hniw` z&<5>%a2U3(>|-yeQC2UJi1?jWO}q9>x*YHRT2gPnm*Y5I zc8^-{S?)d#O1h7@-|jp}S-ZxG(d)cijChV_6NPansX|BtWmmnPs}XZo05{J4c!sno zxgsur4Ccvj5va$A%D9jwv{EYj)A5g=Nf|M(e9m+C9p=aau^7u1Jf5TbxXhK@_v7#_ zGbCJ12XVxeZn3P54O*7tiRW+w$gS#*z)g+ORIBr^d)1CkSb8GLwrv^j5Y@*{`@(OHh=6RnmcWS2Nozu+*$KLK;s3YafD@_heQj1sxh zo2`OULd5sO#aom0p}b{O>sIS90iSo_E;vnw<8__gEQxKKyO}7}fb8d!H>Vg)lJ~t4 zY~0@MDNBnpzeBlHDqDs&tkRBNpz#$L0zC?6*6$t$&$xb^Qf|x7jAshAJX;nrFvk{n zPUn@(XW6Mc=uji{aj|rz{&@}kOWtwk0W&|y9&V;z<}yyZ6*-L0=g86151r3n>3O`)Rk0IM;FGkf7iGf; zD|!ssliQ$721c;tI;Qm#wU`^w2E#_mN>`6Dy^d?OABhsY5@mw%|N424w`WKn855DDsfI>Ie zsErbOT3!h0Dz*C+Xh%LtQfxVGtNIn z&qvV|>&FFuamn{=(`*d?%C&M#+C&|7s6&5@YVRX3U@c~Zr0XolJ~$vNKJGYTdXdC% z8!y{w*gI)2<rkK^AU#JhQVtY{WrXHEO&+j$jL#MYl5jt9g0<$`9cN8?#hpHzl?5 zdL!xuyfH+!0(EpzDii*7<^L-TZTq}W^F6-cA1nDLq4nuob`=xF;^(I;MU@&7dvf(( zpGXrhX*PJfqozf^(B(!)V6+NcEXGI|afO8a9$la@9qX!Q?x0j3&yr>l6B1V9RceF< zZ(gilRwMm-J@PBP9wVdmUY}s9BqoC@SXDECHcv8uCI&O^iK=K~Kst9s3C< zi-|jkZZ@EK@7NY!?QNE%Ze_J^xpTu7H`Gw~)M3D76CEFq_L7@g*rBAzpg&bO=0EBv zz(-i;4`tW@SoLJwu7E?vF?NZI!HMX{SBDufPNSMK<^bDAQN7U$T2ZSes)9M1onvml z)0134Blh8_F0d^VxA)FSC*+!CJS8EHw(DUISeu;lzcfBQ+)AxiW_fC*Bp&wF^CAl5n}(iD z-sS!WarXcZre-v5F$i8o(ReL z{3|HE537)Itw3@H+okCJBv%JNXrzi3FwQ%lbo4_l&qP{H zVQu{g!m3VwkC!MwP}AFlf`-FUm{_}WPhnio*J#-vHOZ(j@G8C){_uS8(?GXV#FSJ6 zq(?pR0?EV6WKEySkN@JJ3!>XEW>CRaM*dh7P0VyQF<_29g7RqY`tYB2TBw&~si4v? z>i(W2fdQKMaVVV}+eg*oC=^R)|2nkyqJE+EqSEJ&ALS@qPkc`5nDQUx0kENdJao=x zF~f(k0?Lwx>y#TZdvz3*1Cie}>C5j1USwTX0C!>GF{~n5!je_LbHHcfY90UdHt=eO3+84GOt&H*&ZVI@+V1!4l)1dlU+0g1FYj_mXIBygbMI za8IDUcneGk-aK}wmG4dBNgaTd8!M^fkT@LRQ}SaM3=sc_hlLu>>|1&2E2!ZP?BDTN zO%|!)5R^`EslUOrV|0QT)syLeQOGi)r*CZi?d`*>d=!BLU6#&Bz10u0(qZHR4`b!u zyw`f)@pyb|yj-^7Y^vl@Wm%Wq#}a`@W7j~>h1aO&y~}wy04QLKUjb82nNoQlg=G!} zi~_MRNtBtCB<>3AkoE6Vj)vbbRtjtFONh}l(}H|9Ynoq5P^hpga1Cp4S0L)Yw_`OS z@U@>;N8Dfy47yR{dr~p&x%e8T;d=u0{tYRU+$(DfT&GgBUZZ-JKlCjAJckd>7{6P) znxQkJmMX*}|2rcQ#x7;UezwlG^tXou**3k;@5P)4i)244Gi$L@Ytvu6*zvziz`(*Q zCw^D_JPcW`ci=}V1yQDzm&^@@Wq0f_bQOy<}ggv z%^mpT>aWq%TmNGSD~Q^#R_dj3;IgDO!v>ohG-8Xnq?|zXHz=kHJxv}>bTqbZ zpm&Q!6_tf6icUs*%kbKvv;w-!JT8MPqZzfj|Kxn$79_*tr($o|Zyr9AZJSd~(or zd1*moK1TXN^Q0c7R{KKqiK+y8*d7Wu2crl*t6QmmF*m@%F1jk`+3m-_QD`Zf)evz` zW&+<+E z{v;l-byKmXp+#S1wt0{p)6eS5$V>embgE&QQP{j^N1--zLx&EAOY=&S#VlRbKq)TY zb3L6QMX1j)I`$Dd($D!F&20Qwf+4P_Yn+kZGz#uU$0`1R4TLSMhE~T}=D9JtSHaej zsumC~%izW6`g2KyW(sE-_WebgiU47;ry1_Q;&-~9U(|Z1X*K?Uw8W&ru=6zyJBWX3 z^kFVYaP4a`eGHs|QK`eiVKmUsZ#zaGQlRIq%ao2mr&z4y_J6%LB&c!$aB*?aReyt8 ziA0JX+leg@Y_Gndidr}jusO%J`2)l8o`Zhre#>{t<5PeeDZYOT6>UfqVs>I7ev|uN zW}n&vCTelY>+LM)VRYD^nUNx@nO6gt{*i}DzMUy{(lXua%Tj_`x2r^q)&4hjAMjp# zr_3=D*<3ELz6bXGQ(DZ#M@^u0O-lCo<3nRX6OWbeRAh`HISw!gBRwYu%$A+|(k_5W zHa1b9FHgU>H(xxJvo`#GLmNNQ0=7>#olVu7vY=H*DJ>W36(E0z;-|!(pl-|sU%tfdL;bjz+H@>aj5L9q3(P}Zwt*- zPSmS<8Zozm-&<3{T)>cvFdUyC=vqOC<6%rC{h}VVGZ2bF&i#tbw}Gi?btL&E$)(RS z3~02p5V5BYj<7E(ll)5X9kkFcmU1Qi|D9kw_Lr3PTEuPo(p;bf&sR@4a6y3(L+x?$ zZ_uEWwvP84NOnmA0eNByB@8$0cXSntkic{RH_li<3!;_+%Ya+eU_~~XdBAE(UN;R&;wKm~sYsAt8Af zz4_CL&z6XIJPt0yrd`0dHA!9%y$+ zB16^+V4rWVg=cMdn(3(^xG>XDSpfUvpLDkk>V;eyPJkdC+0p-hB@HP2K41<*NTZ20 z!@W6jN9GRW&w4M{MAhqESd0@({Cex@YgGao>D_&*+m!Zf36SA0YKr>wLb=Ke$5BPx1_uYzYW5HFRV?!_ z;M-OBug%Ff;y4L}R6-BsbBNpgey48t@=Ra|^?nWW#ntTNXqrg~c_Vv1OS@J`yNvXRl zX?O1OLVuZ10^p?c$$r({IColk`Ar<^Qd;}$#aGf#K%D;(Sz0sp3qo_|Kqt6ft;7qP zrNBa5E!tYJQU;QEZ1HveXE1bAc>oP7TYzN`fM_57v+_{8gUc4c91VK0N&2RKf-TJD zKFoorsslukQ4?EC5N$${ci}hVi6`5?4gC6G4<(NduP5_ndPBwj^d@sddgwq=Z z9)6$g3Rru4+EE%=t#L2Qo3bBYw)Rb(Z7z+@074Cw1O5b(a@w&Fp@OE!ecu^9_(6?6 z8>eyOvb;gNP%^HvjRQQsJQPWp1LfnjFnF{f&qh8hHR1%xPq#S?BOy!Ltxhe5B~HuA z&}Nij0I}y1k(;5cLjy1q#Ow_NPe39I@qB@w53jDq%!*x$s0K3Y@_#|Kw0<`~K1UI( z9L2Zy{%DVT`M#=^APEbQfjUz!qZ$l=akz+}?|9b?yP{=qES4yG+LluelDHrR84UnA zVWFr_Mj13weywzrxM4H~#-lNCb>M`RBREh`Yq<_5WROlg?BI#VvM^xG1 z@7G^ADg%3`qWiaF3fMC~)1wdOgjKj|mxABA5Kab`ZneYkhu400m?*j5+# zoVpUn$t>9p@%0}dlw<`LFLNBcY!c;UzbR;9`w&aCz_3@HhnWf4xp^24ft*WOoXj1J zg7LZ+f4#k+9LMEo!6bF*@%%3=0K1jG^i>p z55Z5N3e^jeZahCHYpoAHh1J?XmJ}<|Oa&)0dvPVH4(g5yo!L|ysBiRAFnmdQ3`czM zmm(HW?fSOTggHNi1=a+qE;i6*^F%=+#NVPOQPWWV_NCC;EOKB#<*2Wi5B>i}ftQyv zKTx0IQC`26-FD&Z0UV2{9S3Lw#2vRt+yzmiP$7YCxHa_+P3k7bh1z*mAf>$V%8^an zD?d#@_+K%LDB{>|;jB)33-YyqP+U6RTSSdj*b#RK|EQafw{GcJ8Pq8ldGxF@Pef zvpY<4;D=V4^_5uH11PcTg0if;Smwnrx^JN5G`nG`x(q}Emzi@>b06II*}L%9>b-nX z-A+QuZxx2}w3dHS&YFQ{^}Ecx4O6ixVK7#M)IT@7JLoZ>P#z<=zIySu@`^ds-$Gz0 z;g`eo=#Lgqd&b4B2vKC&)f1k>F$~b$`#fjFgPSWqUp?iJfU;rnzc{$rlf*+~9w%df zq4YgwqZP6gjt|f6u#9HFMkY4jORNVhvceqkPL&*5_BAa4OMI?$^OLyU8fS!42gsps zP~y@W+qTw#2CJtOR^Mi1YoC|TLNXO&6aOq_JNE2@|5v<(5}Q?o0D&Cm>jBe|`&|~R zvkYaR@vuHoneV&TK{0C(`$~TgRvEbQj$fV*ceYgi?i>Mn1dlr=)yb8FL58h?Y2A;h zt-Mqk5q_51;}cye%y}%k;O<+TmVNBGmK7QnirET11Ab%}MGb2Cor;Kbb;k&7lTLd> z_|q{?P5iL;mnHksm}+wR9iBc$%)qGiVdV^?G1c{KkKVRr6{U<+mw3H2+`Hg=K&KO^ zX`xCR*e`YV0BoeW0Ggr#V7y1fBA&bNBV49FKc@&c0F53S;y0?dbIM%TJH5<+H#U}p zf)vLdi-S7dt#;1 zzv(Y;t((@nJ&LB6=B#TviLo26mwl#Jqw!VhpymsO{lSK2ZZ2THD_mFA+154g_{dRL z*-t$LE#NrJnD%WgP8ux)kZ~BV;X_#AmT}o*B}MSgN+fGEfH~$q)a=DEUGzTRmy3V> z-U2|m4YqZ(In?~(Q<|;}6gNcN57XSJ1dT7!nd?RhA7;e&<@w-xeQ{eBJ6ZotMK#rs zXOzqnsj9zF|8()~6M%9;b;#S7nil$`3WW#+*Z28uw#OE@cb^W)#pcBMGZ-#DFt>S~ z@c2`9nd@d>t^aIyT%B19#-G5n+W$+wv5UvKyZ$GBsXtlqnXZ}W35)$bqfp~=L;|gd zr@;z=KV#|N)7nbEvqNQ=#_GKRvue_;a9?uNEDe&mTB&@tcR-H%~6>YA2?H$(jX?uV^?hyt?5+ zS;MAi|GPl{aXdN&9T4y9x;^)vg#x3<_4ul@H*EbdZm4-j$7LBmKA^PI_F%erwdiR# z$ERbp9ah@NDHqty9Y%j!XsHHe%EFwqV%_(oxo2scy>Fi2-B_caPvOHK?;Po&R9xuN zXl1)+o_wbYDRM0k1@J;KETCN*g6+gU)4#qHO_~b1*0vt-Hn%oOKTc7c@BT@ z5QIPW>=??Haz4kO%}wO~&>@_$oVHdN#1hWjTU5H$7Q2HS?X7 z%h3%Rr%PY}ErqjZXnLikacn_|{(VF6kKuoXY8VQm2rAGkeJT*<0Ztq(ya1=5w$z& zh`fJ}Cys6RQX?N_oJ|Fz9dO9f27t!44xSN$1#Ti!7TMBdB*ksjRg>Gwr8KT8P4qmn zhlicnWc%x#_WS$06fCkKZp1OCKLXqMosMZbSU_{zwf|E>I{#)r54>jJB} z=8=v2gGFkbE5bDz&p!**&o*uWTPRB`Wv_CIfyb8i_9In^CkZ?R|%BdH7(?nb2 zep&LpPHj%B!fVj;R`S;iY95g?B9*#!`+QRo_Q#VaiIqC2A7kOg2azlg+F(b%lwL(4 z0K6a=TSG!e^+W#m=Zl!(L{Jcyj!^g?o)EnIGVk}NHS+IN@SCS#5)tcvTfQu~V7euvcW04BW1nN~&UMu|4H#~Ns#<^Ku;ZAhTbh&x`}Z9<@#=3C0-CaY-=p03*TslNeoeE8YBg`f;hWLg>i)Ba!cgNqfv6RuY{9PplO zcgO5+cBuAcRs~aK{B_7Tio3Occ`>IK&tqzi?;&y-A4N6v?W6D<$FeGUl9*nvO5?P! zi2o383L`v9YOvC0m1Wi54foXLpT4!Z=6|UJ=@}1tA3kT4$ES#WmbjgK&}5`ZY=0bR z8D%w0Y$p~`I?@oFtNN*YqcONL^qaeA#nsYJCbd=de3k`iVt*?oCQ6c#% z4|_H8?839P*Ps=JyzPd&|3^Vo@SyCt2a*?+coEMeB%Cf~;J!`IcHqCVt^ zuSE_GdX^fdqCRm5dI=T1h}HZIo{ciytDMcv>Y=e{M#erdWEt*gwmLSv`6kBHk+J&C z!f2n%+r+f1x!2{!xeYHfcnVZM@x77mU&Yw|^)+cLbYP8ft7CCZC(qX$eQ?CYOaIdx zBDj4)3{AS@hC1D>_wgFlvx`Lr^wazJkAu66`Y&#*pM536#L-1!Bk`|~7hZPKBg6p%J=Q+7o>zb#irrfxtce%PG=v&u64QqMSPqx>4O#Q(CwMd2#q zVbMpw(z>IYS~>L091o+`bh8Z5L)<3w5>`~2>y~N04F3&{vDMxYB4vN*_SCMjnDH9Y z4M|%+G5-kL>BCiXG;5WD5-{2Od)ZsHQSWq|im`JiRsmL%KBFklR^=J=|btpT$^NOW=Ee^(uVtL zDpzq?M2&5Vv*qo zjqAPBlU{G-)e@Rge#L-iO}o}yO8=KFi1J?G<89H+k!AuDC!9pR6q3`3%VK=hAS~p_ z-$4zkD;Y1k3s(zku#iPF?|pDmN99>ZV6-`Or)=2Sz-}lpFunS<@#}2`psnTOLq&i)%<`B&4;YNM`niAuJ@6ejWx(#Ic@a1sW0-}fF7~^tKu1< zxQ1q50{hLRbaD zJxA0-y?Ff@tbZvjWI=vWw+h(>rNp1X-L85x9 zEWFCs$dOkrOIGZysa)y|J*^-?-&K0o60Cht(LL=KK*bGz3LSV^UG3WW*nc|vn~ zqmmEH2%4MwV$$_xdENC4t}UCO-N!Xf7b(IwuJJS`%`>QQsl3Ha=C2rLmriXhM~ve+ zC?84vj_sm?MedJ2)>R9FBd&545j)%3gOP8q>}_}7>j+~V|COk^@^`?Y?AuwtG4&xR z>6DF^;KOs%bT+G}s{1DX!Mjt2Z|oX^xX6_Mh%$VW{ws1teGSBY$(8t?fm z+ik30FT<;n&RuR4QZD$FOvL|$+J3w-*>z%FGd?h#U@vOBh@eoO57(jbmXr6YnTqMN zz_Do46;7GWhqsTsjmwN7eoRFRlnsBlVQSp~hgafx-#}l}!5Y4jh3#r)XCuZxAM`Wz zBwyLVCHGVo`xWt81gGnX0xiL^fN5Ibit zI&yoiN#pagQIebWqaR`1au-xDBFJtf&Ebpq9CCkrR2ec^^>p!w(oh^iND-;2&1ZOk z)`w|X={xL0`eqb%cX|qT4Sr6XO;nMf{{6#~%#>JvW+8zTz==?pmu~MKl(4 zj2RZ9T@l}TCQx-y8h484FGC_LK6kfsw4_q#N6AaLRaIM|#-A+A*vI<#$`YPSM^%Re zrc23Fjjs>K_^5t>KkG+Bf@5~HzpR?9KMjaW4vY4%)+rRK-GUGLPqyWq-RxqM1~J&P z>q=BZvw&KYu1PyDv>%m@<%g`!UPFG@PU;#hhQG=lkH2d8Ljrwl`+#~~XGx`_;Un}d z%JGwGc0^qY{KVpLE=vF2nWTn~Pik$JuOYq7^A29tZ+j(%fb=?#X@JIZm^S)ibV56z z9yHK;2LA)W*gQLsC5to|=yLfV4*2kO-q*IOo-Th{P3Hfa z;EvGO)bQlqEZLIa(tmgTpMU-4|K(r5&Se(LRTzxF^1i;d0%uf{?la<*f7|{5!r|?P z_k+xm%fs2vM;uuyb~~kN_jRARe>yJu+#EDSsArNW81#gFC0)>8@HOQwvwRe#$*}gD z-Y*5}Q#CKF)%-@uoD;oBX~r(A+1u+Qu5PGQDwA~NWc+0xI&!~7#5GL~Cb{c6gIs2- z8EvH=JF}%k6Hk8&oXihZ}kypt8q=4 zbTs#U`RL03VCYKB2-gOdGUc}(vARqVe|MX7KcDS|X98JtSH$Oz+SDZ};buL)hFqE? z%=u^z?|Se(IwHUz^$VR-pg{B2M+ZL#(hB`>n;+b|b|CNYeZptnDuPOY>owJ+*7ux% z`hkmWd%KT9r&o~gyE;^bgQU=$Ipf)L4M$bH?&4zcD@6Srt1MJIFyx&lPkD`Ztwbm1 zTApe`lwlQ(oV2?G_o-Q0p+K_EC*IeBZ5?H95V5yNga6j(HLLgNV^fYnahn1zrn|8^ zt(J+q4?7I=I64575_FV4MCx?3(1CwgHeB}S8uD(K)qyG;pvFM;5ao+j=A1w}S@E6K zAso0>VyU?Bb-ko3|9zXf{>Rz6j%S8#mV3CgkJ&i#UNxYguMLOZ#x~-J4o&CVp=|pc z1AV|;!&ywhsYm+y+McU!wvqz{rfz2>H7ma!ht9w<88!pCu=<0^ipBT%OPsTwl=@r0 zR<=(NC%ruAqx0t2k6TkH=nvx&{Gp)N3dc#$;L+Evy!iq+-9cW zuS7NebX@Q%f?BTPg!LNod!EpV~%&P?9vT;(Af}?aKzSFf>rM*&o zwfpWh?C>P|ZFoldj%NY?fl6kcn6GuRkazfMaVx=8AObUrYI z%ZhP+hpiNg;{l~~^tY+4&X09Wa(aP|0inCP#ee*SDeCdJ%%s&4a;_9Ap!q`_c^_vs(o?Li%_k8yRObidt>UW~ZrLTJ+J_cp_Ro``Wn z#h@gg76DQW_~^?L#$BRFiA;3nz?na{k_#QbAl&xOAMu&LQ!&*^_({jf3wKrU$vlxHrO^e$5H6z0M*|crs-3PTIrRb$@(kH5?OB_yfET_M`tLmVAGZ+= zu`Sd6xVu0s=!T~HiT{N}rp{r%01jc@pzLI1th&cBw#e~tKsZKwx~RvarTFLCO#9;&5=6_E*d)3=Q&0hH%aD(L|SWbwVq+9%sqi_UuC+Z#lCY2&2lbX>Dbtk$)lb zM`TlI>jPb#zlYan&fSk5V;_FY*0u27786uzH&Q7m&i6t``()Czg_rtA_rd+^calq{ zxn0g$Xf*fG+-^twGAX%oP#mdJAbB|*1NDQShC!uI>UHGz>bau5*B2IMi8Bi5;%IjQ z1O=n6w9|s@mdE@+Bd8wQ9Y`BJ(VU+;Mq!6VvR%-IWTg?!!=Bh@`(;Esp z3oJdD-Fgzp=|H-b*5hX!`B%N-q{1I~;rWtbuyuw}MMl$3?rh{7PV4v}TRJIjXAEcg z)de5DpLEsS8xgPZNH)k>zzXxfwP;>)yYahh9Frf3#mp|7+^Z+McYObz3aU|xhGj_l zsZ0rd^ywcSm=kDe?lWCZ+dNsmB?7Vel1lsNx1I;QX*c0hzjtsh{>C;yimgS2{qL~R z)~Ayp*fCtJGqrJP2D9Ka>cj#$|aUo8$zPXcg}#Y{_{ zi`#VMgZWFzQ#FQ;Tk3x8_lMQ5{~}^S6*vj}u}}p*)tOtneRcB5sDGkXvpTvy;r1N9 z;9WiRXYMpY`R@|Cv}dmVkUK6CFS{ZKGHj$|JbLQQf&tCU*hi6N6OV;UeJ~MOUNeP( z#v4^sYrkHdWjA4<^L6c;uHu?`Z1v_5H4`JUetDnMAka!Ay?!fs;@gIyQJcO%V#-3zP|Xhb~dapx$)Lf95a>!|uF%u5$NAPM-V1ZJ=&? z6|s$`Dp^WGQrst4mIAoTa*IkkvIN^w~*1kP>7)(GtM z1;KnNi!3kpBH0iv-Bx`w2&2Cx!(StzZAeW~@aG#4D!wR&>m9+GQ9m+5@3gC+Be6vO z;~hOyC|xsc3dSnhw~8nI${r3g*U*vEuH)AIiNZl1nHDi5T#u`@1r6_PQc$E_!Q?i` zl`AmuT8nfquy3A2nKAGPR z-(T_X&FV2B3Rmg?wH_2e9^eeS84`bht8k=Cc*RSdAqBKoXXFOc2QEr&j2mAv*I|f1 z`b}`vEL0%!H`y~v{d{%02s&}0&vp~>P`Wb8@Zl+Ep)Ud0Ie}ivR|)uMh`+}DwNK21 z-}2g}JF{lZ_P@w-*JbA2VbZ{VeK3&%bJZ z+oX|%K^6VwMw;t()@O6Qa6SFBQU2Tajh+jy@g^ZTSswa^8`TK4yW=eCMOZTUXAGh7 z4-)YgJK)_p_p%KoGOyq65~zwbC?zT0QMR*!OforQWp>o4zH#S~=Lb&4;$O^iq-J;n zs(Tqa5$b5;dCEsrAB}5+xb%wU6JF3C(xV+LsZmU-b2bw&R-+;Edi6foH+`gtB|4~? zs`6g{RBHZa_u*%X_u^$b5r!P;Z!`_R2Yy&u&_R2TfgCxQ7yF(kK~8;b1c4{p6d{Q` z*YCG8!?xWU){q{AEwU}R*OQ96SfTR+pH8v67I%kLR}*W=6Lha|VplJVUUs$h(T!uN zI9h-5#mYnMm+4#)FQIrZ3aq?0l0FFMPQcbELrXv$oZW8oUDS0A7E)C}h}^5e*#DjO z{HPJmd1YvNTpjbA0VfBl;R$RMS)~CkI39mG+Ia7BP$V5?WTZcV ztM2{eint6u7FSCfFX&IW0U`RO4M~0CeBc+rGonlJn$&kU_l17ceO?@7epO}1>k%D`G)FqqEwcRZ(2E~zpQRoAu#*cl=&3BwX{Fo<2?c;yP_mhPC&X?W~`WFg4E{4=Eo&3 zm;Otuk>lC_kFhrohq`ay$7e=k8B3Ny$l79GvLqq07P9Z_NV4yYT_d7UC~bDi7NN)< z6H(cvm~0VIcG(sEuDPG@^Laj>-}m!7j^AI;aUaipxM$}5dS9>eI z`<5^cfw@ecGO2?Z{DS>vu3fK zU{91Co%OJ)huHg0uqEfAOy#=CnR^YVDrGKOUW|k0&*#{64C&{+gz(YxNVs|MAE(`5i2+EzP|rioyZLlMDZv77d!Gw z(@{Jh`^<=~@CV|YbW*9&q&M~Em)*#odDg{YL0?%N+il3x z7V@Q~d-|DwVm;RK)-}<*+C|5rzoBA^l>vtbOe-w8)qXI@Fz_hB(|$M2lpb%FyJ0>{ zUzlR)+_UWX-W@RxsYUJs`Dh9tGR~cA?5WR;&QfUDQxu_4ymr4zTZN2TZb7HLUsrnt zSdhV5el3Kej~T<~Y)0s+@i)3*6*G=UB}$CV7mUqBEGu*CY?2pJztXgj0|rI9K^#ZU zXq|gjS*+R$MJ(aKy|1x<)M5|wdWynJFO<1HV}-rq+7@Cj!`ad{hx_>~^8wE( z@h-ih%=erBtp&);gR$cvtZQqK_>vp6tr=fO|NNq@so;&Yk?O25Uv(97RZ^D6wcw(kZtux1=^Hv zezFmH?d&#alJN8-EwX8Mvi^GW4k})fZh6@8T#%X8HLMeEF4?_zY1%$XZ7rYnZ9)tU z$qUxeW;)Yht&zW9f{~~n+A}}!gi6@)M#$1#;rOiXv%fKmW&NWLI2Wp{NF=`Qg*ohU zBmiUzQPF}ww{I66ofUjLsSX$zCJ|2gI38Tloy&$|#`)*cT3w0^js|G@2@MOSGU+^H z+jJj$av|;A>TWqMmAM=%I$Unc{1eBR7oGWjBHiC)*dn~?w&-s%RkQ>>R^*g)FyZRR#kPQDG?3citQ-Y6*SQK#zaZ~-fLd2@}0awJ7 zag0i!F)=&*yMnN~WLBI+pq*j*9hm?9pfxem;XGg#I2q=|fqS3bEJo z^*$Pp@BhM%V;43)?)QYgPju|Kx&tMC!r?auDRlV#P0=GHj=X$7rypp1CpQM(D zZZDX=8VZ(moZ$=G+7SNU>+s%8jDC_1-Ip>{VEOYGe?qZiQop}ke2sO`3mFGOR>jtl zqClJ$@V5qJc=+EQGkOts1NC{;=eUh__DMuF7^K8W8SfwAF>I4X{{W5hZO{m_xBk{& z%T&LPKVfPPm8UsExLGXrbPn^?g$io`{bqN5KYp%SiBvqsAD>F>U5wmvj&KMl3FRCW zIx}yYH6FBX5j^ze;o$z)S8#tk6f=q5TAEnSIdwJ+t_J?>!*(2`UA_nChn)0_*c9^? zH;+B%KNobePE(B6Mcto2?J1!&g_s#Cw-qpdART0#1EtiUYNU<93CU1yzgK!B`0dlj z8&cvGNB)1pZANG?Xx?FWO;-voy!UEpehiAX~Cwy|V%f2zc)@izzo~;tD6~rZb z44Z5cj(rwjtp4tciC}*l)wXbCM|Zk1&3G~$xhoL(pT85$B32hM&L(Luh8qQ8v)$CQ z)k>3e)bLxb%+BAJ)?#mR$xECt$R68#)EE!7KFb;zd{{AZ{?T?jQK+%$_C26}$Q)s9 z*Nz{TC}R?lVbuB1jIYRrU+hP3Y{}xXUbUS0F_0BBR9@wO0+=5;+F2g*4I2qmN$ZsX z?BT|v_3MK}w>|6#7(-fm`w;M5kUm7pbLHSv+8;|S5q1|P_GTyp7GqsC_z+*VwbN!P zv`22EEtqP_yQn76hfB~%8ubDVjNr6>=U-mKW z)ZeDah1W;%ujb|RruM_?av!2*r7A|c^!I}u7Ndj59_8($eKr2wx`n*E!TNw!ib}|; zTqnrl+J;f`_Rd-xV@lt6j3GT@Uzyyun%#jK|Glm@?VlPi4mEz;@ROL;%Q`hHM>|Vs zeWJM!Ru~ZQKM5Cn?*oYe7SD+2C9Y{12ny_Cxxo#Vt8EVOtWrN;v=#n!%qMX z$*_MDB?mB7pJ0!R|6CkE5-v5Nkp4rTqGu<2`TI9?TnI^+s88cyHXAJII+durjP3#W zm!urfdB%O9JaIK202L(ZDP2T=Y>YWsgZ zsB^T71EbK1fl@O%%S?yLI~(raFur(`^LIIjcY?MKj>_u8ld_emlxx_9%X$ zuP&^bT@RI)E$)rNC>u1WOMeIx}U)8uEMi_rOpl-)soBhd*qOo%EJdZ-q zqi1m51#z_=3n$M;&7_D9XPW;rvl-6k1V%a39)Nv}_N^ z>>>wsFha#`uQ2RVD2yTFnZv#|2KyL&H+Iu0K6g-2OSsKC_d&=PoBmwuM_JMW_VxYE zBPETg5GcJ0y%+t|etG5`h->06oOf*Jkh{$Ah%j0sX!;=jTu%= znA#CrslM|ZW;w=h!P&=7Iqq$ob24D;xy-g+HzdBo;Wf7ZFn>KJQ^VnpBD7*5bcn+f z(ewG7*3TxTD`nB@Bj`KmB@I*9U5QaZw&xL7DP z4%y6i=6M)sm&O7{Z#XA6jCcSv`uXRJi2%Dpwd*M*lp^{gzbt!yh3EJAKwKZglwVO) z*~QW=K-9Mkp*s@o0<35yI8o~dWw?;tLA?GSCLeCX|K(A!`^QH_V1H%wso1DQ z?FJ?`;<4-d(p#OMK{e+WtrX;~A2gwF`+MW3$9-K?H_!}u6)l8=L z44@^p{kCPIJvL`%8ZNJcNEz(=ASX<$vDa%Th@} zLWrqaiV@U@%k4^FI{`H`H3#Ab)HmTNz_^^{78W0xgI9RWD(tg5?r`fKse%=)G?i;n zNG*h@b&cmmc=~LS_pgC}wv7^lWwGg-32;Lpuz^8Fq>obBo7b2cR$?#vqZxYA7dsyr z06%9%iREBbBMX{vcB!^qO)!)aD7cV%9hP^G&T_O{d4FwweJ1D39Lyvb=YGLHiQ_rm zw7Iy3{6_y?KfK@2_&bk@rrq$V#^t`i|LX?<^5_XGy+Zc4FGV4LOJ4uz&f5Jt0L-ol zv=9Fc6aTNTgWV6sr|6MT6dtTd^T21KesT=FY)U`_hYBoKcfS7^DS%MM0^5f{ry;h4 zC&F}i2}Dpo-8^-eN9o6W^1J(M@N%=Gawks_Zud_nSffh`S?2%en`?&41Z~eLiQ-H8 z_(|1`YQh+|2D?(+t1#_X-^psyc_fdqc}Gk&3{t4w=Y*|8v@7s5_`*Ks$04 zS@pT!W^Iy|{$_X>{po+Wvc(nr-Xg#?1C=M?z~xvQ)px)@`KXZFy#E@pwF1`?^>3~P z{-0sPEhZRVOz``pw6Rpe)@Kd^@BSzidTI8`M6B>#gqw~lpO|5*4Qp;8gN+#>%lOLq z7nU>yXsPoiO5ew#v%+|sCD5}sC@FdlY3G$JmG*WX!EC%}oG?cyc28CGy5r*g#*iCz ze$%$Z-a!sc6}d`t3PmNhk#%H>%|F)xcuJ`q75u)7cr-^t`AqT1elzeeTfvHvTL7+# zat45t<9J?dI}QI-%lrT19Jfy7Rr19P;;1U}V6(g*`WH8VyC~D*=yq6Wy+C7fBN#~j ztZ&bsQl5Y%5EdRi9qL?39(>;U`pTy5GJvhPyYhz>8yCD-E7vVtwgYZ5`h+w=UF-hN znjm8X3wy~fvSPUSIUUzNDjyzvcCM}EL^$2z)y{(l$Dc=%F%OIt|BD_L`X7KCu~_G3 zLiVPfS!T+8?lM_^8OMHR>3KSw#^3_w^Np1R?qB{>yXDy1st0G<+b#fDZ32&{YqN%#bOXKAWOl3F%E({1)x$)XGcVIB7&jNC zr5s8EMiM?RscgpSC@68?UxKM0LjZDeO5R`NW&HT>3XeZ%(r=GQOA9im{hwcbZQ*|N zKJ*g*o{%0NWu(f8kz9nf>BVOZ2kDD@;~!}t@K1kHi@E5CRFpevlAs|(M9F;ffx{$d zTI)GdE&Lo@Z)esyVew0}sehbS-|iv{@lc8m(!0~?$YGU)ZI)SMi(6)DKF;fvw6r5` zYn4@16L3ll`t@lm)g?6LjwZsCTU1h@x4K9ML!6}{35THhk+kv5eDBWb4^R*2Q~a zg)D0+Hob;p1+=JrxH7&NE@7G?Hq#sEvs6c~G7L=!->e9X$7dt7`A!(CW*T1_;-)?BiOn2>vyb|onuG%&8x8-WO@bhJ~1)#Wl(&rC=h&&d?pS9lG z^?(=8B<(*1Xx&R4I&i(Zd;2pVSdfdLU7Q|8M7(;AEglU$a(_=mvOxa<$sAwxVgyT8 zBs?E~nRu09$H<1NSw!R80i5cOFwsMmCxqu;YftQTXhYF2jyc{HJ1ZK-`8+t6khOSL zRLWF1J%1~IecMx}a{4I#Ae$Q|NFpx!zz@v+5a}w0-)rg6e~#+h?>NNBbNkon?n7li z!(EmgMbRC74(h{yBQD(6!M?md?pb!4tn1LZb?)~0OCD)ML(vt?7$F|qPAwg=_lH+1 zl7x=wUH;7`G@ccet*op9ijp4|3@*w43`d;-qeUI@qKE%p0!S5#c()(u0rhg%i#p@j zeUydwL_tGVoWEt6Y2)RjQ#xlByQ7zc+^(PLpySkdg77DsHNzBg_PrU5yHZzKe#{1D zjc?MYEx#$036wOC6nL zLqr7hN}2alRii2CISm0w(6nRfzBoj~p&tbMbba2a9scn;zZj_JF7NXV8AUvX%04~4 z$TI)6rRA#=03n;RHi1{*cR2n3p@#Ty`mN(EY-HbDWf7{Nc`~CR(fH}ZJ>wF!`rDj$ z-_hivJZhKo)*qJpE}xCr$^{p7S*H%VJ=n~414{wAMY@k>eNwO^^8^gl2LN8^zyWy;B2F$5FIDSFaO%s!>G!+j)jS3>Q` z;!FC`AAP?MyN1M5VihSZLWin!!I2{`j-CsaQj2~7kizn-9U6HZE)S(zudi~-C*)KL|dFRlZTCHQ6eg@U;#VU={>X4|OwsFje@NLreZ{n5B!bD!(U>&TCG zEs+oPGxuZgJZE&iVKK*(8les)lqNue z5?|<}sVa!Wu^aAw%>eT5zlH(-?MvKv%?~jp$H%@5-5b_?Dee*wC_+%fderbfRn|5b zyw4TvCD1AVlu0}FP1jW@7&y2UgFxD+oTQKp5+bO z-V%qE~>A4p4REZ#**g zlX%$1k80;GHcC9D>*5L{{DneziXUOu*iIcRdgD`^QZkfTRX4}LF}NT0Tz*1E0(0IR z>|YcC4od8|l;Ju@abMEGenzb+Vi%eMnf3<}o=_LP$jX5Kr7qs{R3{xZC){Low*>cN zAQGj6RwlB}?Mza11#(E?5c}X%BVfSXd?X6?7Sp60)pXK?n4Ehv9|P;J4LJ1lST=-G z7y*B)Mxbe|x+aYxq4GL|0YNp!e6LKK1sY zXKXe9RGk?VGS9p)6Fy$HDB$~D6NDinITr|2a=Evic4`Lk7j!4ndXMi>eJ&zGw#LcU z?NLd3-1KkJ7J405u;p+gVc_?ZdZeMR7mVFD{f5j+nS z51Av!-V@?SVG#}ThcmG%Q4xOXRPz2{-=_&5;y5-kH4o~PBYSrhu$G}CdoupBzit<= zB;QsLPgMDKae}JEwt+t5!aH-lyJNsQj;L7WJ;p3;5642Ef20AYrPK5T3j_N1I8xjS{>R^bL-b7U59O&-bwXTK32lX8 z9*S(l(T&7yf3|SAWqZfm6tVQNfEGEX9QsScl>gF0iLCcsXkQv%3oy7f8Saee=#7HSBxDB@UP8Ss zTnQ7v-!cxH9UynC6h1iu&qu>=|47)|4b8xVdG2SX`MJEW>l3>%VslH+uQ86kSSC1EOtyq;e#P*y=Dl(dk#O{wxed|G__cJ$!ctHp3=2EcEj zJ#5lBE<*Fd**j8JvApR^R?#B&icjBaMZuohl+VaQ1f-zrrt0|Xa;yE3$}`D z-{w3qtL|(Z5}+Khlfo(Mio3;KDEX<7g|Ckvfl?E%|4=}LjG`ZjlFhk5V1IBvV)H~d z8tj!=nylF+?aMrl9#fpI8U(Yh_TNnLZ#hfKBAmz$6@m_l);-d47z& zP*G zFU8+zndlAocWc|AXN4!jtyi;Wq$;blTpX_cl)K7i_c}7!Jxz30SH9W&GJ3XR?83!w z?Sm*vk?xNfF@_6fD&olh* zEib06n`5D?J0>Hryryx&N>x!N(Xk9nAWUy)>X-L(Dm5XNQxq>DgRfpwsMZO8JQw}$ z*e};NgZDBbFgORWi%|{9_7Av&s(XA>2@i`*_sO4J0v5Ie;syAgJl=(qW)*Ps2+8V6 zRYeuwL%W3Iw~9^k#+vcp7fzVqmWGrA*XDzI?Oce>Qk62Q8a!$|z}0@JV)vvG%{50% zI8n=>j+WTJZrFJZgPU}DpX>s)sYI2gF;K4@xonSRC(Lp4P}Hd#C8>fct(?X;UMcuO z!{KDb6BX9Ep8oSq*Z%I;u9n+WyOJ-4FC|^on+=G)sa;pi9}UlMynMV?%yuV(o#eog z!AW|f4p4gNkfb8~23%xa=e`fzPD4Ky7sP^BRPwcywG7LS43wz7K-tO-Ss+i;@i2W)vxACkuGvCj|S-=tqM|(?|WS zhkd>lu((Km?2XYb(OLU*l+q)q`ZB1=DHA@ZqwS+{X#9n{NtnXSZIM-%6!HFYBHRv| zt^;HpEU+IVis=z2l>VlSO2A?j3d{G-E_W2xDG${pGM`AGe)t@0L2@s>-2Wq_ids2~ z{i|9mE3d$MA%zbKF2ee;g8^_pR;xQMQ9spAd9jOHEHucGcs9NTHgLgr6t^m?W@Z05 z+sakBjO{NkDY}hDPY14zh=;BHx}QDubpCf=m&=Bu##~d8X2OwZ&;eKS6ExTT zqG@6b;7P@xzfYk`VX3(BT{3SYbHOylF(S9TIZ*<`m(0|flu~=CCT>gz;Y`4TC;YwE zCJ32>S20=hL|+y*?o0noKq!Nd?DghG=<$h004}r!!%$>&JWpiICZhoDF@@3?C24oe z(pH-M8U?!RHf#Jv5jc&E(#xe9Eqc_ftnm3jQ`R z!A3Aea33xgKOG54Q*Rn~PnIA3j2}1>mwwD2K96Q`Q3GSFg3Ru@dEoYL)N(7mKrAb< zCap$ZiBvX(JR#t}A|-qU6TSA#uU>-GHU~__*`}*kA^9NvVklbW~e(;VQ{W_ z?7TNRMTYtQHHfnkE68g`D9*f64^fWVI1SQI)=xt@|60(PW+g6Yz~X1DwuFDEzZ1F% zIN{z5wLf*wvD8|)B2Px8r8CEeGN;eF_VcwGK#vNKLvf-}@@?y=l~ z)jW*C4r1vFMqAnMTPz}2Xd*9U%*rZsm@ibE_bMz}1%B^jHR67h(S+Gp`I-Z*kTyg( z-W|SB(=CZ+oR5Ij;{-kj)p%QLi?C+82Rck^Y zuPaEAKmHjZT2od4y?Z@)g}eS2juL-o%%Dz8u<>2B;#& z;OB9)PHj$%W@4IJTN2Xu0@&I`^B^P65Mq^V9ju+x-U{L3GnC=(BCDxx>Qqf|QYiXh zIM&ZlC^`ks7)6*Mb|pTu_O$qml5_vWn2iT? zl@|7$fT#XULA+0YyeVX@6}`;ZL0h2+Tjg6hC^(0OmCeya=4CmgSZ<56#5S8FUa&NUcrJmet3DnvxkJaC( zwF8rYr!v8iz=WCrsksqBaRx)T1+TD7YO*iHS*4x!8o@nOpWkewr45HWQ?6v`%5;PU zqFz3=#SMl5&A~Or@kT_3S%G)l@o%lG{Wy!@^)V7^?v_H2frK;~K9P9 zu?=wQNz6Q^HI`%`_HQjf^`J+o$zB9^(vgIB)F^Z&!(vJi1CR21vv|qr%qj_LhM*L2 zCIZcU!?k1K;p?-vsZ%vwPvmBmO??C}0p`hNSPd;#3f6k9-PNqUyam}VDez`_UGNWS zd_L~I1r4V5@fodRC3zQN!ethy0_-_XSG=@PiUuAU-ijx7l?W5ypGfX$@`D$~@Y~X! za1(9-Yw{8JJTkj+$|xGju@M$c&ZWFnwb~zTh&mJ-pA><2S}U5@QUjexB} zut3W=aJ<5iadfiRHq9$e1Ggf=1k4h%pAQ8qaXlQGImbK2a(xBSSJwj+u@q;d-d1WBHX3J3wzLW4!=;FP(zZuNmz6=&&6?D=J*#T~U zjRK(>nRUUVKTQPr)~LE4drAR@V3II;(x`@@hf_zwzqk#{lFDU|l3w|kCwC-qo`*zT z84X=ZeBApZvN5ppl>Qt#$W_E6DM!>4EoD@lRS|-D4T4BgM{0e1#(}?xtvm@&A{#Zr z3RV^bqaLnrU>7Cf8?Q!(2nL#3#-|mLloT1Vv&s*7ezJ(F^|S*a!l%P|Y^m{Pt z_k}W5=%X~ll0o8g(ZiXKFb>yPiDv0(*(+nR4FL-$KbM$ZPk30Oy40{8X&?x6(jA6> z5sgb2(=tmVRR!$G`OmIR75sF~kTTJ_pubj~b;^kn?%7KrV{kitBELJ7cprn?T%Vpm zXaGmPEQO-_6}t5E0NZ=aZE8S(J;QLQOlDpy*12OeA|L7{?MgauT1H@Z=~>H(?L|PY zRUT?{>GuJ<1P42LZwk4RvU7B@w|M)PYWXIFR-yg~#5;h2F@+nZ@3~PloHLq70WzDGqpx_ruCF*?6H}agXtz{nszQt-4-?(u4skD^ za1X{SOf`^NvH0bC7yqOOcLCy8Sx=_Iz0;l~Tvw2CZmj5qW}g;v#lQAf^HWI}+$&eW_DdexaV`}lh!ArIO^m2DoMqMeG0 z9TRzPh^@XVtnM5@E7aLT&eDQXj!dICRVid7t`UZXhagc5t;z|YM#@9TMN_u zD=i0m9uOP!&}%5Vu>}$Qe!q~=2&?C#9S6U+R}#m9>Yh9w8?U*&cHZ*`ICRn6uwBh0 ze`>=5jtX(-t*v%{wQndIrfp)9!3B8*r~}x35$vA)mOh8x3Z|tQo6<;DhP3$ z>%bf;C3BB#W=>4yG<|f9r)LafYR3Tv->A*XQY-7rQ~*%fDu?xrmmGg7Pc)jr9)%>< z#ln}7BIuMhD)};)S9Uj?(TkS%nJ@$y>(7bT;UCKvp*EQ|*q#_^6kU9FM@y2=U?Re_ z-aNANmu9b2yg5{2fu;)IZ0)bXpaWY;_dD!_RrTYTq1B4+g{d;9j8O77S2P_JKABhf zDdp!bCXtsMu(!pLcX>4_?{izZ;nX)-pI$nEQEIC<+eDqwo@GSny@6}FSPeQ+u8MCC zgV!K!1-VT2etw1eUeZ{e5qf^3@85Rc zUc$m=B!J1_p1Sx`7(NT`Uq4$Hcz3P;b&`&f99zT8bO&d@o~H3HtA&YPDb9Cu7_%q> zswPVMAIFw|!TWBB3>WH$p*xUysY`qouJfpq{9`Ndty)KWy|ZH~99rWQoW+M!(OTL z>DGlp-_(3ruK~_W0sah%m!w0RV8MV~Z2w}$nnLd}pVYfR!+bm!v~oKtjN5daXgwr8 zCJg_yL9WyU&`c2R2cmv0D7XpcxZ&c90nf~;D4l!LP8DxVweJ-Yp@jYf#xw1V-{r0T zwM%DB%C)Fj)ts*FerLD2aWC#f2ZWc!*4hDV^2&H}*n{xSuFiK#qs|ldsr0^FbD(Tz z_YN7(>lEUXl>aT{J4r;s!($<%v8_|-;-AZifMmc1&!`$qOOYY(-u2PdQJU?fn03bG=xVo9Xn$?)W#rPS+(f8uHlWDtXc$;TEsu(+bp>l zWuOWXjn1@l{R@KIbizuolrhToYuX)MjcSadpfvdiJ-gmdL03~8jjQEuMJ|!xBMZXoqnxG` z3;_m4st-QG>YZA-*pCmuq5>_h9(xKn%Dye>%;%q*e_&!^!E**X{Pz3JA_@h~LG&j}r2#1~nDwwH8hy21fK?7HP zQHe*2!4j`r2h^HErYYFu6|k!LVc3HoUt3hz4^o_TV_6X;buw;6?xof<8L&Nw2)1;H zXBdh!`gA!%a(HpH)&S5kmnqRM^Ne2vhuZKf>H^be75p=?8LzQqyWjUqF_jm+drfdK zgACl?3o3EkD;{tH(mctuz+bcLG@tXcPoMIJ`E*isY|iFYDlM)mFi*6zidwt0IID5U z0=S8ZopFpX2Y0YzT1i5`id!OfKh7PD@$X=z(4_MnKBZ|-zn=Df3NhqVInSCd|Aal} z160uRP|Qi2Bg>PQu*5uQjbx7eI*C=`*}xEE5P2^krS}O)VH9)@N2H>w8^gED5$)h4 zT<KeNpJSYXKzW%$o%UL#0Pt6pgrvePa1OFq#{0 zsCaM63fw$2`A_+l#mQg2;2@HsNJR#{6P}artfC1*gjSZ%(xW8*>+}kjfao zzXQI(;Z^5#*V#!^az{cBt?_Vn^MrtYBvZP%LkyiFF#|taUd!KujB|fh)vF4p{J8T8 zZba|D%S+W^1GeP5Nd4(I=QEe0r;ceE?W|6f%*r3dFIB((zIiAfweyY2fWBx}xDotj z2>ADY*X6*k@5>NZ;^9I}T}&`l)3VNe>C?&NX83KqL&%zMRSxR?^i3J$WM|J~4B0ns z1L7==f$S@=og53L)d>1o<7I7i)gilSw^;9UdYX&@vL|4VcF{29GEA+`=X?d-;OvtQ z_VipLq#LLe-vkS!0QfoX(#Wi)=o=Gdaa5`9X~G)6x0VY`OUnF&gFkkxT6bGa?%cZf zsnkHFr1f%-gIpgGb4EM5$RNiUlC$05OPN-?8qJAyd!2Ys6))8XfY7AWd?@mktVutt zn%-0jrlv>M$>bN)w%%e=qa(4%d)vzN%)Pi|jJTm|hz^@-y>YUK*hXoMY%)KFeh;2# zOs*zsS-ew~%8kJVdK@ZMZ<}e^CHf!M`w#s2Y!jK@=YWg9m|`wKN;HzHT>n|O)=nu( zXq5_q#hV?eA32GXy1>Thq4Cq&bWi(KbYX`*IQVHulhAL`eyH9eHifd^`yRgg*gn}N zvMen)LJprG(cRN~pDrgV?$Dfh_v9t_k8}rz8=dC7 ztzU)FUwSFk;s=Q|Keq3=l(=Q+pW`T}B88??=e;ccI9BCi@NTXSq~e2q(~0!v2zl02 zi5d7QuQ(e?#5{b{X7!X%LR{Xsj6cZHjzO&$=9xL*?o&dxcs-BGxmaZ9@xQe5UbUpX=ER`hM7SQpgap?tWz;_WtaLnP=_2 z56KxNh-Mo;5ri8b^9h|Rv#{e&ft6w1NEqT2;^MqG=Q`XGQ(~>_=gh0ovj>&27-IMHs*BMu>G^l+9cLW<7l9Kj4ICU zyM2s3MV^j}7R}ZlH^%`BBkMDvgp4)}x|=bEAqPpTip6&9aTyD5W4_jUgCnm%AWc6x zm=Z6eq8Gk0-Z+N}Mq{vylM)8m{U+>_x+kCYX2T{M&;{RxxUajN0$|Ag<~PPsZO6B> zClmwje7C^QTP^-D?*n%~FrUrWx@2wGw`?aAj$iO!V3jnw`!eEjPQt^r@sc-mxH&JA zRqMp-=k;Cbz|AOe%Z|d^7DiHW`Z?z=fv&1*MUCXIiUmxMG#aGl4()2-Pa zE~8A8eK0i_vMyjd#OrIbGPHM>5H{XhW|Ke_6#={$tnnIMY^1JH(nFI24D2fy_ascX zZ*#VP?5wP-H+>#PpI+m7+rik9p3Fh(gXbEH{H;tzi7sMqh10t%I%7WQSps2R zmdYs{aP@2J6uoqG{EJl714LuNy31fzDZ49>mZ$H=U7|mYo*(j1ZBJw?lrGRkkA4h& zT}C*D-2nkc`)&S+$J8}avoL0(#l`c^AOkL|e>Ws3hFnID@q2RfpSU1S7z+a26!`6B z%+*V28Twcn`BN`l`n*@#D>n;8aWs`}BF)c@@3Qsg z^eHszeKpP|I-q-VT2$$|!d zH?}cNJ&5HiWv#Anqddpzfc1;Lm-~^EPrT_|-4`2VrX7}ZcPgHD@ik-3#1j-4Uq6M1 zH~HHa$U!4H@ ztAz+nT|1c#9>WrMR6hw=rZ_lpRNB0{g3LPSPYC#e-i^K&xvLnwR48E=ZkRKnEF5rh z|6)Zd)pIxp0{jP1sGS|ojlRR2QHz$aYv>1KGL3JGIM25D!$pp5aWt-ThYY9BZLni<`-S3ejr~Y7jZs`Mexp!ULKUM zM`FZrPyozUe?J?g4E&+=47}l+{1p&+*(c2yLu97F$r>{s-)soJ#%+dl@>RgWS{ zao#%49dB>3(E2C}hDhb5y8^5%ae8-W#Y2Wgsl?o)UE*kSA#_Zt8uldiS>1W(T?3yATHw6E@;?{e%-M-15TO}ZRB=G0= zK4!IzR2ovKO*cqegg}ckAyKvAM~Q#X*>kU6n2^C1(qhvTa>@)m8aEx$t)@hO-1g3Z zy1Q*Dv-sYog`fO=E>XTlRGW5EzPL@T$@tkThT|A?G{K~V^LeEvl_ zblWVG`h3b~uP~9vl(M0}t{|5dZK>zLWjEHBIb>K9s5QM%c5&^V8ptkmER&jY1BeMDE?4{hGt2|AgAlKvpag1Aw>D&QRG1t3@--3jrY6M1(YaE@YKoM?GL`>PuN~~VbOOL4 zh)@0OF-GLgzqs6<4>TT2bHt<1<+iVNU@nm-K3Zea4SJlBVKWLI?txrK^}Y2e6Ze7U z49Bh-+RC=;0Ee>i(#kDBnBuXad@5K~=kN%&=y#{iCHgv{TaEc}L)AOEdD&f^xddfc9i8*AA ze2OEm8^HBW;guk}-ZoeO(t!MY5u#nvk-fI+ZhPBAHgS#nAHZAcXZk$!!Y~)2){chB zRLjEMPbn#1}24NU%;6397EH2W-H&N&J$qSDRJUr z`t{5059Bqr+7ssjXJ<}z?zKORD;V5?k;{+erHsJ2E%Ah-Cq&wBv*+Y%-4j)4(9mwj zn%FB{)4yhWM)&c{D>BXzJf;jV6xyF|I`unAQj)1Po}HBlq=7ovwig7t4I0ksaZniR zwccx`ZkM#FIeI%&I>Y#>j?)jVGf0x~?$Rokyir*!Y|_yw-%)y$j3I9wYe8BR5EzW1 z4}czY6o&6k)rR++xWJ;t@H9&iZ1UmjEFe5j%#=Qe)p7rVsOox533fJ7OkJ%XZOojQ*9B2PaRK-Dk^`;moN z_8!pJ>uBv}O9a{o(b`63e zR($GeHfrbPb>Bs3`!eKdl8^eL4e9-0E|V{kKgjiKgH>#Ul~u?(UF37ISEqj#Vo{Gt zYdRO~sxa*jALpyW=t zPdP#?Ik4m;>Q&zkAHiDaEDZ-Pw+m}F=xumCnJpBTJ3`=YdbXzd%B3$mF1`zP*Opv= z5jnAl;sw~RMviSRkK3ppZa)5qHHDJo$Z|57Lo2x4F8`Is(1kTL|D(f{70RCI$%bU< zO(=m+;C*~)%V3O9IDv3lJ3r7FA;NIiaIfGGfT+OvPr}x9zIhupl$}H%?Qb$#nVN8) ziwIG5n2Y+mAB_5R{_<|JO3k^y092^ZbvBi_Xxgzgj~G8e8OPSxYL`A9onI{p3mvz+ zk9~NGz>FadrfW^OaCRjh3xvJD&3vkCPcD=g{7GcUX-iYPaCN2@OdRLeX5PFOA{bhZ z5j0#Eq3gDiH0RSp!%94+x-n`^>ACHT%r>XpRh?3VzxSlXspY+?E*0`SUilCex<1Ql zSOai&OM2|GhsAU26HQC7P%c5t`Z86VCtd;NEDe$c2y>y)!6|p=ARgShby~vav_x9& z+=Yqy0BuuY*xbs_cC4$Q#}Yln{jZ$elw)_S{N8Dit08Qh!LU#{u1|%xd~$b`Vdb+H zD8IEtJEwQ^5&7)CCfJ;c)h`LK`TGF86%>you9A-Z4j#DMo><3-&T(*KRTU1~D!+#h zCrOdN4+OFqKx_nC-it+X)-A`-{k>N^xLd8*9h{r<4}n&rQ@l+JWPVIoU+x*<7|gH{ ze2fx_f5OHhEXYw@pDG+wQm+#-s#uF*ZuhyuA!l{eEkT>=;=i>3^yrf!79~1X0kd*) zbmq@(q!5jjy)-zU^p=&c(2j12RS$=)?jlS0R(Bl%Vs1%iKYwM56prRLRpn363@93C z0@XXj9z39JV|n?n`f|nwdHfHk4y6E}z5PNf=NeRZ5$OvrvI26MEIE$R+EUU3qWcEB z4cu~iIbAt4+>IYY{qw4k(CFZzdzq7&fsBASRjIK62Y;AJ{wO5_r+` zH%A<+&9qvA6V{r@F%blmnv4ghdWYsY4MHQtL{R(2>%1Ln5+%6zP#gI4=SFWQ?qY02 z$s~muKl>lN4i{)2UwQpL_G)DynOqxxz68ru+QmOTKJSRVAE!IXkh6-m{}0fO9|1d9 z@&0p+De;wm$TWKxPO>vgRPa*z8Kb?!OA!;$T@qMvXqYT1Ey9%bn3|JGfsQk88-?f3 ze9go|bz~U}4Er4mEh$nGQcSv?9>y^m%+v#B$thJuTd-_5g@YE3J$D_X+tpocRasFY zj3;!k4Wa8Nr)tMX;omDUn(nA}S&4H0QX*Jz;eN-j6KKWCm`NeMsg(s$3dOEuF@s`b z96-WY>g$k56gS(O)iqLy+M>iKY&ykl6s#8|50XF|URu%o&C3}rW-oIOq`%!K#*<#yT88 z%D|f{*BJA&0I>fV5;~E>W&Gdp53_ndAk|MLJ~6hcfenECmtswwbxdG{WE|nB0CaxW zlrNgG=B9wkj@R7K3n%S#=^zm~_b=I)he9m<1wg`zwUFsO2KmeC9(0SSu!xu_|1mxZ z&{DmpX#xf+cQ^)3ZG*HyDvEtydlJ9VRhJsLHFJuyzlB#YWR}Id0af?=u;JX#OJ4&i zLQq{;RUVp%H?yy6^!(jUp2aUd67nYWli;qu==9KzuKwEJW&*ySX#yWc*aoXB4g2%h zW4=1!dmAOCFU5K}evPq8+K&l$t$T1&(^xkI3iJQvm3I+EB!7V$DZ$WB@pR@uuU&)j zNT0OH{?+Hg)*DBV4q&?4XOkOor_CkUfWHd9LsV?c2m#<<;!z@Ol-l@wt0sO|6hu`sAmDKLk2A%!TV zRI#caKiqUDb=CtyM0)MTD)ehnHE4Wir-itcYD@29t@@U3O_c+Z`SHUr4gaUQ5HUMX z5X<;)S*bC& zA~FBA`R~J4}(=UUo(j3XnV)fw4qh!sH4pLcbSlLH!S+*GI!TgC+>q^1-Et zvIs$0zDHg<=^B99a{Gci%(9g3G&{XxFv{D7+(JrgTu$EV0fle;HXpbX75mQ5vCk+S zDptQ^>D_CgiaahICgD)$8=Yd{x0m!7d%`+U#Jo^|Rr1*1OR$%CpyI>GOnc$Fnkq1O zvWLjlz}Hl+znBC5QW)0O(oX2IwT1%-;VUL&y(A3^-WdQJ57*JcAQ1hXeP&$Gd|$#Y z9ZdE61h2EM788t5$d+{)i}3;8ik2vw|-XG)b9488=g8g6hK6#;3+ z(qvb+UrGcShwY>Uki4iX0xkJ0BcKJ>+i68feSoiqcpLnq|2$$>RkkS`2>XXME2Q(l z3lu!8us6PAyDQ`}fih;jyQ;}WwpjkYYyBh_Om&^Mj#+B$LT*zmm2y;XjtZ|>*KE*U z3Bk#qHH$-AE}Vh;+At(j6*b&>$fp-6;)%q<|ubbP0&k-6j-w=X~Gy-p{@F_t!Z`IqYYzXRSHM9COUEbgLa6WX-K14DeIjG^5KcObGlv z$0sl?$ty1_eTL+m6hF6JJNq@qgzRXtzG+O+23|KGF1Tx7T0Ho4kk7J}z=90sX%?ZUW!?Gh&e5Ge1=iMiZ(0~? z2fh>$4}S)^(7P)V-M1_yyX6zgzNV4ntUoCO?=DBykJuJ~I;xMcpGJZro#hAH0#=dc zw3c5n3ATvAGFSVe9Kp&D+U1qWn0wA^OD?rfmIY=SpMW<*wG!N_o=(>P@YBO54J?n@ zptt-_VEdnc_-URI9FjZ{5|cS(B9;jyj(O7&CIh@irk3NP%5QWio8#b@=qsjH&o0e) z$mjw^<8`ug1FFOJ&EO%qI;UlPXn!gFp00K2Ug`e2yP{6_%`ZjqxLWj2$(rvQKw9mx zD8iqs9r;utUfOc-$Sy`paZ@NOA3DxR8a@NJw##^=272(!Tw1 zzcKyCeQV`mi-8JPf?qCQalfWv=2a=bRbs%Jz9axl{oOBp^44zD^A@CM-aahE92 zDQU&rBxX^xS_nG~hG7mKm(vn*g@@&`rv_sFJGf##zkDekt3~?gRq1)^Y?#oU6?Jm$ zeu%uqR*#; z6(827uhqHjho5nSmCh2weE;UreXH9#+mDWxE|i-dQ>+SGyiKRrGI+${04_GGQx((- zudC!0&)Qm%o)!Hm&_|0rYW=apLMIH62ztYO;leWHennk|qK{HA*g?+5LSV{`DUh$P zSjG~Ov0ZjaH|(%j4hI;qv{El4zHnJQa?qSlz_IonUZh3o2durpYQwV@ zUBAC_ z1Tm6|(X$B?#-$Q2PhFBvk-FJ_Y}ALA76Gp}C&5`wU9l?SO zJsm-nvG+H7Q`kCX%?->?o*tpV89SkoRxyeGMj&=e9ezw9lrZ1RzixY;R|gTapV1Fx zk#o0+%L*DjtFwHDCkM2=6dkC0_7bg-WNc2RmQ zmd-}C^7U;2|KqE$KjWgYOaRQ)u`AbT(cIAgz)b1pkk_>5 zRqw(?3a{R>#)}-~l2__)Y?zClBi^Km*Db+I%2#3fx7ysV@4@Kmo9P5!s?XLxr(w)| z5^ylFcJR}DMr|Ii+vRm2fiKdOUO?nG&KVFSoX&v}%`J?})<#4ocY)?lNTHi17td|P7-)76d zD>`c*7I4MDzkvZ3=maP%w4=qxcc~r}x_4 zhl{_-;e?WyevG}zwKz_J@E<9tvtF)ms<(-i8#1rjntP>P*xb2!lS8*O|Do^W&7C`Z z_J=0(wwjp?XU~Xxd7RFsmJ?%gTdmPR_yCltyXfpS0<$Jke@?}kvzM$|6!AtR=Y-#_S$t?}J*un>1f1E>#AS78jr*Xe82}@^h+G`P@8U@g=CMezK1bhHz|& z*Q_H68gA%&?hWJ2+mi8W*ua^3LD~Pkq?&O6c=)doFA~&35MANAr2$ z=5DztsI@Oke^pC!`5-d96Zlh1IIDUTW;v(!=JDOKT2|~93?#}S3Cm%=CDcLNU6y=elCSXIXZ{mE`l`q` zcO^#M?sqFU5-qYD8tu_tf0PH|F(=dBIOrU5>p>>{Lxt$;#X=8}iQHYr%Dg z!%t0%|A!MmV22VW!fsqQYJYR?>g1vDjVZ=cyyPBV(s zt4%O29c|2KC?K3RyQ{)?@X4NGE z6kDwW9~gA^=HAaRs8>E7u}7!vWzEz&z7XNFmnw@b*v}H(FG)v%j`a;k8{B=hfn{sa zFwMeSjQ9H_I~{4Ht$;qoPw?5*;uk2yuoFpOMXqg^E2Z&8ZM#(sWD z_%2D5`NDikTGJ>D8w2o!Gek^)6H z7WcK@xkWkrf!4^IY$}5$sA-u9qM`B{f7?0ExRbP)=gW9(&?DAXCl1 zzjVj-bD5Q;U??|XuA{CADt*L_f73LhR<}}=MZm7VLB(7^H**-t8qnVUaxtN*Rx&121?t1`UBaEPuvAHI$$M%>X z`ZFcY^*-cY*{&$t`E@A#jD%A{=3aCx!>x#nk1fG*;RAJo_H1SxToP$_u3_o!9DejZ z{MjRMH@d9+tOny}VlZT8PgRk&AWGANw%9k2t4mjV>hl1Ei!YE$zY+B9bawkHMw!df z_Ept6D2oDbdLR5Sovd}?Tt*k)b`w{7a zD-5wShUxuc8*gN$AEYX(;7V}P*znUg_D$F1UUO?mz{2HgFAONI@u2RibCEOSJtJ!M zT@Vym3dCi@Wx&S9eUr_GO^n81zDb(?k!My9%YeU3KFX*EQhJEzkYKwT*a z7pz}reeG_%#9mI@PmY)f?Gn6m|P!CxL%LFeRP}X zrNw^g>2E9y7FGQZTG+Qzn}7xEk@cT@fz5;RTM!<;(rcBjzc$2M29>g z-5EbB!k5?5GfJSlbqz}2{^qcO*EfQqxvS?;83dVaG{hUg;+laCidlpi&ySmkA(Te7 z*Lq3E-5}8s*Tb>Kllz~H2M#8v%gk=hy}HMB9sVx(zdm|cO{s$Q%#O&xmniA87-&%= z`0~gHD`TTXW*t`E#Z6|EC_Yu8AH6U|A#x&Q(n(kbx0HU0&wOy5cr%gD(x_|$G({v7 zQwwGwO|-tdHoc-%&a)ov`0+Nr-;kncZ@JY-*MC;rp`F}({1Jv{%>BD4eL@H9mxgjz zZpBK0(M-WcS9~^1e3$0o=N^=(Q;tKazA zC;Gh{^k|-b|E_W*Q`!%ei;?z-9uK`5=fGOVT*MK?_Jy*BvOfJd$i0!5|PykbjbqS`kLLPj6--n5g_&-Jo? zivL<95#(aSy?6ce=docMo<(+pDt7(;te0%jt5?M1QgqyCuKKMTQ}j+C6!b`t42zQ3 z`E=6^h(I#3lzFaN3fRgsYSHr?Vew)3<=vX6x;zzIzgC9-~l_Md9%#i>p_8{ zp&p9n6Sh?|0_!?05~=9QSx@VuldRP9e@@`9s3x$nusw%QW$~~}%3SJ9bNJ;yCjtYT zB;I#*e8s{Bbk@C~IDI%b^1N(1QjW%QN1D&7gZjy@c`T;^8L|YBArA_?wSX>=kOD>{`|sLo*)-`L%c zwsmX4VI9xl2>U^#yw?PK)btzy&ARXarG351r1lOo5u7}2y=)Myvc zy7o_a5@2>1QV>jlo0P`Kd@;^8{W+aS5!c~+6D-2p6c{5MNHn?HM6;{{ zo+VBj6=SmRf38B5F)rHx#@@7S;{jL}m{)yuv4;gI6<&%r?y<~DS@KHZe*f!@dbRc7 z+fZ9&=@r!HUpE}nZ+V%%xTRfBfO$I%R@>+fGA+4O+RatQE&0%*jTn{mL&5jF=;!R} zVlDKrR?7;{9?TIY!llWnZ9G9P^sqc=24!#*(8>DpHcAoK`N_C_qLAa8nxoCSUdUoC zcDeRPEK09!g6e?YoeFOZTgUl!yE;)Gec+}e*Y&-65#LK!L(YVGI;bJ?&R*bxM=;O* zEcpbZohXbykvWOD8g_qA!q^Js$Q!lT$A!pTPrk$ck8bWbf$VX+x{XKt;y=HHNWlPq!R@?%j>vel z@7=fGKFc*Yi}+#u8@qj<`=Ui(K+tHxL}4;3!&MSV?8yoWMgA0*4X#tWMTd+4WH{p{ zw;T&8Y1nM40WO;tm_o$91J~bU$BHl%qGxm?K>s(2>qa2?+abqcf4}ime60K0Ln%}j zh46au2b(?YzZq13IgJ}*S6I2I+B@`lk&}||`MPOdQ(0^&Iuts3m*{PwD!TG%C_M`h z(m>Q!$X#)pvaKT2S?wPAW^7GgqU)DoE6{ zoCo(_8nF9jpi-CppC$1_F0qa!8nEt57M}Byl0}&Snn-7K0HM83bGX3Rzstg~1<5}F z`Ysb0CGa7d;bvFY`GTn)g^+{2A~I=jNQOUQ1@2?-NjD@;e>)}FYJ%a@OKmN8r(s>0 zlmJP<3@zLzr<&36`66&t{C*1Q=J2&ZmCGp6&FYL^hS7h3pUqtZ=o!mufAhSmReVN_ zP^y^m9CAKk6$}|a!MgvPv@Rka;R&6*ENGXUAmWm%GN#y0iw3x53}13m&t>F(X#1P$ zm+_QOC!cy=e&w*=g2x>#kev-?A#aYO`g>17gJE{GQ6+fz@lT5I>%|eh(z)D*=oc#_fa2pAfsl z?<}y`2Yi zpGMvO0Ub+dxaivQGb<(d4{79UVK88uF!>tD`NDS(Wl&DPfvH2eJ>&LSVfg)ojS!C5 z&mP`PkRk6`*r;2%=GrAaW6C>+$0+Wnk|C=-ZwK>0%*pJ(M+q~s`b@Hf~ei+{AB&rq2cGf!JR_}Mx3M1 zTqRF`m-X_ALjJ!Pa04~2=QcyS>gjVR*kq}k&T@@-Gi2pQ@HepF>xBjZ(N1^7D{?@z z@x-6v%7dw0;Olfa$JuadLNV}2=9Nb&%NCRZ9X@A^@*!Kq(oLEwyrlFe{uDsL z;Hd059Y=u5HGZ@Z%9;qVciH$bxmVbAU2Ez%ve4`#GS}}_U>*IcRJE~ zn7ZQy5)GLutg|f&XPUXDPeLnPx?EuqqYAb^VAW~WCHBJ4)1aNj-azc!vsj19pZ0~*7;442$Z(W z)GWWItPv-fG8o}j@Av`=A+jlw(O>`@gm+OK-DU7}lWLM2LrwpJL=~KuE9&aMui#_A zl-B2Xcv%CFcLwAvEpIC~ZngY;{)(N~e)ci1&+oHKU7Xy46;{+{$*1237Wn`Pt<`%d zty!S;7)R_HpW;*SbzY*?IHz+tI8bDy058wm&?MF>N+e6)v5i!tyl&1P?~TEuQ31vH zYt3SStIc2-Sod$8zx7XO-+Q2JtB z*c@8DNOrmp(<5N+Dolpiy+P7^0IZ zp_u?)6EkLw!XHvX_fL*a`2}Z%KCM@M_Q_OzXWI)hunklF1jjyaB;tv4oJKsMG64ID z2WC&9Rlc7HTBU?bR}-gFkwUBD2wqOfn)Pevwf8%N-B3MBMp(Zy+j_UT(n0%Vnh8&3 zEycsEf3U%8VngAipVK*6Ipu>hpT@323y*s86HxTZzVN?XL+=1DI_bUl(SrfS4(>&s zaN(uPb*X@0I!y1$GK(eml|r;GTS%!rx-P&l#ItMW7`r}iGv9YePF$S#j zg-(p8^$jm(_q}%BNduEGvz>1xNj(WxUaOH>%lqL{`*63E zcAaye^u%LMO$l3>_wue-IF$e+U{ZB*JR_=&29)5Xs0APpb#2s)>P~JL;jS)yKB*mQlrF`=B<#3Fi5w{uhj$ zPzmTd=MHT(-W63$7@!EhA};bE)`5kS$#tXJn6%8~!GcnP%gGH!@34DebNu3QDpY!`+~O zsTCM-+#E$_sak`lY|36-l~aZ;DP5Hl0eo-2TZH2fxC^wh;sQm_p}QC$UD}X@`Q9R? z4joDG1}=$E0_B5QH=JKy%CqhqHn?(4$EH~kHPv|P{T?Fe(IbX&OX5)HJPq+wvS!7f z1W>HgJiotDZS-QwuC5os1+s6@8Q0K<``_&`MNKnO9oxx+wE5)nI+p;%jIr6h5{M4s zm{&}B?V_&1P3@vM_zV1NY&Hg=*k-kyS|tGvel4#Q^0bNX{gxnLz9z(@gAD#kZnqF;sx>dXcw{|dcP8IkY9p$7Vcl; zQKIsln|N~*@}26u;&<*lmqDM-57*A|L3w+p#dU%aS<)u-PEfd&_1e2Z-2W8ybT8GK zxm-%&6|W4gzUQJm({RrvkW=BHi4nl}Iigyyp_3mJXgB zeN6f5^XW-dd6^B29Ot{UN;uMV$8igKAMTWB*Zi&dA%w$3ldZT(1FQs@vUHj}iYk;@ z=*JCTyJU~%uD67poEVMduA6- zjH{+@9x0ib1XjP&7~O)Xa?=G|R@GbMZro5Ri)|$^of^s49>R4qJTW+pYy90Nko-x7 z7GUc8(~~1udwzB1>6{#SstzD8ZDqOSzAb*!+d~6e@XA-h*c-^7y^7`6UQ3UxmY$Jg zpzGp=`OZ&8YGoOVc@_%+Tlv9&SO7pFCes|Y)+U83rmjTny_NWc(%8b<)m;B|rH*T< z9!umu;mnbmh+o=fq5J$92+F;Xb@r^}1@D`FMamf@rmq~SN^Q1a7gv#fXR^o@Zu`iZ zs%yag)vX4Y<|JUbrt+2llCjYWQmK)jJ(j7D2Az1%qD+Y(s0ch#l!6MW_8S8XLqy$j zdDbm_o23UTEK-i0$d+U~x*JjS<6mdB?Hi9P#VPV^@}Tv$%Dy(VGMW{PBkKdy>DS=zFpARyv~T?Wp)%r44MLfE@yT{^NKg>hqPU@Qe2<;uUOhf|8j@$rbYDXZ|Puq zQ8_da$fAk&J3&|eT{Spg;}?}(^iw)A$!s@Oui9}zFe*-YAjO~JP zr=PDs#t|Gv@h$sf;@MQDgx|eaJq7&v^V(zJ%Hlz7m)38s zR1Q*KD&d}FO(%f8|MGNF6X@YU3pgu#_o2Z5b5O8d(SOs16deP4_Q|RDkwSiJ;$!E9 zdLYol(3^0Zm24okSuQ##TRa1`LyH>~; zt1@N}A$6C7JF@S;d~viw8dM@?fT#CH(xlHSOaB)s*XrksJH~lYj`qhRVIS~`Nzy}{ z^wdC~rK{Mh>%l^odZ${A9T&$9kX+Z#XGx0iqCIu^bo64$zp_H4d#XCWITt`s*)nsz zgG%ir^ru*W2zegUvwyH$nhgphLKRs)JE}8oNLqk`u0(|km3tv`k$V;Up7iOX^e<-E zt*@JaIoY5A<2hT}^`gcT*`w1jy|F)4jcg;WKsh_HKGL!;y)XtE}}x80E@9vliZC3( zYz&|=@&`c_FrLYqYq$?~-IuIBw&pWB>TA2@60ps4g;D!cn`h&6>DV`r=9;mE;*bd7 z0xk9I4>4_t(*Spzkh4!+uPlb*2e(_)H7^Ao#0-Z1oC9B^m`@O*AKhyrTI?eJ%#;aJ zNrR8~Cd}WV^trA&ENNDaNO%{P`s+n^z#&{87>7G(62OWu&WjT%$u`dC5rjWJP_;{z zNs-#cim@Go$x_Z~Tj*wZRG9-)y9CrKKg|C19X+_CCzW7LjOfw>2K!2N>}pIc9DYMt zW>&XR$?M5&2tf(*of!(64}u^)D=7l{$R7`7iog(|E`>QL#rZsQd@cYZ6hiCgxVXs= zehNIS$qw}iqHeDbHtW9k&;S$;EndPl%6*bKf6^f8q}Uim=iE*%-jgO>HEzvazlGv` z{L6L;^a&h6tcFTA$=&QCzrTyq7YI0afvaKj-y-Jp^T$c2{*2FK`Pv_z`GwooYBHo+gXa{{o$oOUi1 zh?hs)q7HLXP%ls%VV-9^M1%FWT#{{-#Q+26XM$5&i6JC>yB1Tr>O#1~P{bED)TP=7pWqv^jk9#Yq=?-g(2}0IB7mC}Z78gc=`@+cZ`y|~W#2DraQ z_O!S2wJ+niFe-&HS@^~%P-M2FNk31!)SXIKlf6_US~EwBqwbrIl&cBo4rMaG(|)9= zkzyPyiq|)xw@NfVp}eI(>PI!?I%3$dCoqvjPzy}shm%Y;6 zJ|OL_BH9%bc-jQ0uz8sFayEw>_Gc--xNhPI`ym$j&s>pmf^-hQfd&Y5lX>kzg>ogZi2OK8h zc$#jsrVxEIIq<-7-DIp)ym-F%dx$^rm%)j-6K^gGW0UXH#vrCPc#2PL6+QoILs{^y z=@>iS{T5or_vlQ;6d?Azqa;l_Unbk`Agx4ddFH3Q&*Y>MO2Zwplz&YB$cc&oAwKW(+0dsyXlccPf&+$ zx^HHH>soIFTSGza{md+AJ|cZs=ijkJ_^7VfhQ)Bvute3{)ttBXp5B^Mk~m<>GI9{I zFv3J|=rkM>O@6CEFA$+OI5nQ(ZGU>kU(ZH2;q(RDJCrt>qh}Utw znMQ?uRwV`}-`!*7b>I3lc#c@HL3kuXjar<$xi5wNn+ubMzFX;5%S%I6ulK;(C(&oE z$HKiyzi{QLW7J(C#nL?9YJR^t|Hhp#9tL4ZH=UVSbs`005F))7R;zb+>>(|I(Dlin z+S{CKn?S`~-MCV>JF2s68VrfPX2N4R<;6cKh>jOyx#qz;^a+$`0slt8#}}0^wS!ZO zopp4!1}V}4IETUAtVp6-SG?MvyqG$o=l@FBzd)No;7u?hqfX_vdxMDISwVO1HcwfY8t@!(`Q%bdH^Yp_4;MD8MfNU z9%>CJ_Ts5eaamkwh2`$cc1L_yXt|}XPxeMBNmvHe0k=>OXB&>EqFZ)<@H6^|-~|(Ou#LK766MGrV4VHfj)&wYEZj zvOwFiVo=0Qgdp6RN}qkdEkrQOgAV4ena%ElQ5 z`_AOEv2$bByX=IIfI!3E|EgZi&08lbf}VmIKP%ZyNTs)NF=8S=nU}x|?fcex76FlS zx381{zHCkOt$nDGr_rlkq%S^tWa0$v@oXGlG%2-<`hbTyB1Mqh&2u)f1%R*wE_;Hj zEFXP+Z%XyzGEK8nmgQq%o2GI=Dk+BqHGb&QRjBj+an12}7($2#Sb3Hoh4wi)SXQ04 z11sUO7CrD5_11y!6r6p%Sw*La!VL#5%iOT*AjY(`J?PJ+@5E_3bO>YqOklu$*tYJmP3-zRNoWTT1J z&U#Arx1fY((&>8+M!kox-f|vFD^SfK3F3~Z!p=G1zm5@k=bekSS z7jo~^<(7sV<32S0rP>3Vpa9Bu0H8h%73?mqT5w{FP)a7an3!1e-1!2;27>)2(CXG& zS@b(Jcf}1EnE$joGvraoxc`Pg=ih#d1@Wf=0cyt~6+yXTwak=2QWvb=%1@8^*bQ7f zaIzD814T(YG|W<-)`|mb*zpHiu3nlfG4A-m_2HPFsTfQj;iP+34|{b1pQ~%N0=2C< z47J;-PbpWNhmYDN+(bnoq;BAIU&WK1^@*WTQVkD`fBB(54+`z-yK?{&O6814Cd$Bf zRYO-r#lu@D+M&bO_aO=?TMH@}4S`JV!gsKW&uKoxIE$75xd(iAR7zl7Mz~0q-Gkk0 zq_nv@axmxAfl(K52L0&f96S)hq1-u>(&C$RP_g?Gj!=s}j4K>M+NqlEGdwdqt2do$oHW9UbxkWw_RnebaCKF6z2 z^w>B*b*w+_oUbou8dH&nzfQb4oN)NFUs4eIEk7Hmi(DQneQ`8QAN?59&~p|8n<>C| zRuHu+((t7X=$(o`&8zqwmbUgQA<6nTQRgUDt$qRql+0q+zY;hy6?O^W zJLmf#y(d5;bodPOhGBtc&@DHl$Uky055WB+h=MAx?aDefJ@6WYBJV!208`cvKJA}r zYzKrr&!HEjr1&q#K@8+QLzuBRr?N+fT792wZ;TM3I&!NZfS7#yT3zIBg!o?ku~c?= zc&+A*2QZJtgSt=}&N4g@4t>0dn&XfF=`nhWM{;x_1R*)o+XUV6tE`wDv)~mIMbr0X+96oHwT@o>{EoCt0Gk<$k8PPFk9^1me7Jt4&+GH4|Z2Dv3P7 zHIHk8m4sL|^PN|a7&%Dv$tk3^FfTfg7e*^>DEEMY>$&ovJbR~qBy0hoYFYpCdF&8) zEJp*JZ!glJ!v5qdWrNL@8FM{%y%sJG=rDU|!vyhETFEFSobHfxZ3m+S2I$SeHcjAz zqLChy-Mpyt$chAi0&}R(Ra#`uDJGthl6CkCXN@={-?J^{w@P1MDHDJIL4xw6fzG~t zK4DhBJixHGw$nq^j>cu+_MD`fc36CO+SF(fVVl1>!%t8(*msY`{!d z0;2Gd&;hgca|?A%XooZ@Qj*j*5flSiK8JeB=uuakJ{xl13*Z=55 zr0D9=5(i%{>O4_2nt^y=47K70`{)WAbYideAle`qQT}&Zo{a>h;n^upeZpoSeEPE) z0>^F+lwCo-@wbDCZli^!=Y)-a;<*=U^Gcm_S(IL!*OFsAQ8O35evc6Whe^)QZPo89 z$qAT3Tu2yKmO>%Um>V=KC3c`r6j<$AaXG&SwRr_*nB?(}+L4+O(y@#lSfyJ-6Rr6d zs!4q*dC2i+iGwizXNg77!*ko9f4XCR?E+oKV#kdK&kQtgPtt33-)XzwKu`L`{BIzy z#?F7(IBV8%Cx6N~Lc9l9D6zI$5DE>^q<^|DcpR-&1*pVqTI;2Ye~63p7*3q#8(RfJ zT0*sfJr9w!(12eD(bUlM9AHSxbQj@|6oEp(EJ=!o?&V#`RDRdfDQ>Io!@1(bI1b3N zFN%Jk$YQD6K-KS^W8xQHem5WRXs&j-MP!y%mODZ!zrgLxTa0h51<)R^EjjMt`Jo9NtZpge zF<|tC4_q1!&H9m5&#lW{~9AqP#3wnmahFk3$qL{ zjJLH$+We&)-rSi3pkJ>2i1<%~280GHuxs6uZq>pZZ6ag1P|GtHkX_l!o{=8CL%N34 zoQlFlG(D-{XAkxf19~QEG=K3?ynO=4xde$rUicui}k5FG+ zkw~CT{AsxqNvr#MUb z%e{7MEMUG&ETo8eoltH5r>Vyk2K=s@5nc!xVxlC)N`q*R!jYs~W&iNuMfqf*fn?9s z9F5{3Zy#BRMn!iMz)5DHO6amPwWQZv;yS32OglJLH91E#T{u69;(W|2c)@`*Q zB^eY0^dX?rXH5k_T$Z1LKzv7;bM)YVMX*z3IoTd=3NdBdZ80%O6 zd~EbK#`PG|h11;Sbj&kIcLuB5BgnY zSl$`kofj~SRtduIM6fUT3U&61;+DaWd}ZDOG3|JdhmV)4QrE{AvX&^Cs_?vk zuk@Zq+%x`vvf}zjM>zr5x25TA6#x&u;UJgV_~?v)$}>5;1Y;^djT}=z zy~IC!L1TA=&$%eP&f~(qNUbZ(=Vrcr%d}{_oZ|MHT->v~VF|u2AJ||0c+f7;*y$?y zI_iZIDQsH zpFU$Y3_E`XsZ&Jkwicx|YW3U^{Ku3yAcb&=LklFedqvz56_56UZ_rnv?>~b{rfUG! zNS56DoTHc%5pf&8CH|&J(+(kA&5KwnTf_oz?j7m32IOcb)`db{UzPZg{n#5Byq_=<0ED~(I}*2u?!b9Wud|G&E#dkm;<#;2vgc<&hRJ=tRAN zWI{SjV(4jd1)sKB<8a~jo+QD3yBp-Lo^1ORE2EAg;W5nPdLV=`1J5SyP#5XFMN`qn z{%|QIBTifoZy9NoCaDj60sBiA`!ST(vZt|k^QXMNH@pyO@H8E5fF8N*!&t=Mb}y^7 z7EmNR{=fC=JTPGh*`S54Zr%T6v0>h4-Mfu zBt1;ya8+E#wDXX{|KEfBUo!kC!Dyt~zZw1(u}KOYau^pD`q?(lHgnybZPECHze3Jq zP(RUv99=PHe=O`m=>`12hInliv=?3svx=y3I05FscRTHW>T_d4P=M6xKE>H+HlI>$XcO@1e#)$ELXttv=S z=KuXf*~k-F(R|SV^F-LbE=(iAkmmvFn> zdN@1s*rp2TA5(ZPYK3^)UI6~BZK*2LSpItGhRl{2)%KVN-2g66n9`nHhMU6dLFjJ^ z!{=xUY?2_~I*oV=1wN1g4uykIFA0mry-6SOZUJ9eoqn(Bwd^Ash$8}ZtoMtZp1UBE z9jo|j{Qm15)`~u<)P8glbeW~bR6%*60c`F#l=Nr(stLi+CZP8ffMOv0CKFrqjZ#)y zR-8T~n4&R1MhhIAD#C96FPH)jW-c7e=kd$a)P}q+$Ir(ruaTjI>C-Yfk?S#m;!VT2 zrx?O>rxHCZybkBTqUyl*k|S_*iAYAA<#k$;AA-Q#Z#uJP0{HXNx;jDs$9#kv?Ufj0-&Z1Hw(Ve+5-Vdz=1EDpft58`@%E|VPoQTEUfKLGFPM>2(Ony z7{iN=X5iMdBuBUZ9hTe}W9nl<*J0P{66ktnt7QUKC;S!VJ2eS=e9)> zzjdshhT}Mda;1x&`r%I@d$ zFT8lsP1c7J+cnaSp7JjlVssHCk7dUUGRB~Ts+b09t|W0r;W z%-0%t=E702$Q&|~qt=lR6!Gt$si);eddO(S>_ynE-wL&}hR8*Ttbv7h^6y}~ zhPsGTB6Z0bKV8CalNEU|R8X5@1)|(cFamo$v?{a;*ClPZ(`t@T(6k4F=26|eL86*Gv#Y=1L z;ndcBP+!&OBm0IV8mND1$Fj@tSb$(cn{Zf@4UqOn)!V{im~-2io@I{HHB!H+_@Tcl zqqeUh{2@{AjKPf#Ltrk~EOlP~-{0tEjF>CiPPhz4Q(cqO0R7Fp2?R-k;o}^u%Q*gg z+^uBaBR@~DaLNQfj@P2K(C~a=)oJ%<;KP?YL6Z8whWFf$(Ao zTd`WzH9{C2uR9Xr2pTd$gHIYr&?iC{nz=-ppBs=-KQv_j^ZNq>;rBn#GXzFMOQ~C3 zbQ3D^%CQ+31e5K>sE2?Bwl|5O8FQa8Qf(8F^w)!LL(%eo-k(Gm{LkGtYnIo;k!cR~ zh(2o=5n7$H{H9OsxJ$9=^82yC5dXg@CFSt{fKmnkh>~6q$3ysMUnvrtYT9hjoZG^P z(sIoUkf2Ux&j+-_#U5c4itYd%pv!w50M>4;>BW-18FB%&r~mKAa|u9l+(!8CXD*0f zKpSZ12DvvWXr7{Z{f?T^wVi-E;e`Lm>TS%v2AaAj`S^c;CK1D&Pnyq{NICgnd}^_R z#=S}F7Zef}=cz@8bsulHz22`LOMnA!`T2drviOSCsIUTS*P-%d6Uo<49sbYg>sA`b zahG7|qw8+In(=l1lR>Q#qo7EsC4SX0$I@*c9M{8qq5lANs*GNQf8? zZ=}OTSxD{I8Rq(4{Y=t!>$%=>dF0Bd@>67CBJHS)xYc&G9se6z5MTi@;qVKC^Di{{ zf=&)zT^Y(sLV7%L72z*4&)2~)(68Dov9-6Z0lSRjre(AbDd!kIqq`QZjk*MvK0Ulm z6*wz%85_=1h;MCc?m^&F1Wu@=^RWFvCZ#Y3f03W{f3w7_` z4@brdp`b{Ni6P#ICXMOs91+p~yl_sNHObqdK=4nJs;`mVz+IsGo2%)bp`qt)h%`YI z_H~{V0{^-M5wvpu+bpoV9(FSgidN?yYNz&2lkXU}hh2yIMp0w!*G$CnTU|m9I7aD@ zu-Xy82to9bT+_Yc?wPwi(Ilu=bycwxkJMHSM+g(QULe|uUSKZrCpa|=`BryU`4vT0 zn0Uce*lXgSgIjNRebZ&obnBhhsdJnFGNo$krd32_BB}56<7f+%PI#$G#n^v7i0UNbN`Ee}R$;;;oW zHp@WlGqwJDcwebXOVFql`@aCkJZSvM6dMgl|7<9!v}v?^HkaTHmfQ4F@sRUrvIee6F2qUE%hf_i^%LPnVxeb>m-CC$PqX0 z0pU_!*nI5|MDmq7z@{sVj-Yk3SM-f%;D8nf0&O|a;BICCYj4_nKO+=!k9*>5otu3I z#UqMb?pz921X{+iefurSk={qNW>@p|k`s)3dR{dKAmXITh0PBeLb(oW@y~`hgKEa9 zZX-31ef8?q+{H)c3pj*op#&IszCv{PkXDNSq`cnnAuWLRDuVZm(igLl(Z)C+TR$ed zFNEq>UEUY*5$P29p4!)X77L$GQ{Th%e_p>Q^7`F~&i#SHXVCscw~v*pO+FF_7?6cA zyB$lzw;~QXYXqAEThtF`WE0_7=HZf}-4fT0 z2S0%YI9Rp1=uTuD=4Ia}2A7%^A6@8HPTB$_-aq;F)NZ=EB#ZWuWu2Gze*Mb$%Ko98 zykjv8@5Xe8A(CsjAeMfq{%0RAz$1%2fT_(&T_-1A*vH9d2u7MG9L+sZtt653 zsJ{m_@P)6=w5le2viRuGt L;G#ENkg0K%4>*t)%)$K)sfYEe;?+wO1>JF6p}exh zCc705Z|I9|?1X_F)8KtjJU7%pO6abqC-YBXMBlmGQ?B80{T>N2@>R25+I<&O#JtFm zXk&0fYu4M`=}G49&;fhg`?~q3l=)H#c-!1b;!anA4Nrh)ymh+}Hf;?HMejjKfW_g3 zJbFS+l%1nB+&r2I(`m1Dkb(_KK5zqkOZI#qph@Vl{Q>PoIs!y%(g^3Um+W5 zMx$~d+(8xivZR$5jOKvX zmvgGqDfoxmm*J}McJs{a!`#Ps1@y&Sx=la@nB+JKbmu)@N@@vU?5CJMaPfEd5>d5WJ%NvYr05&Gn#`#1JFr!K;bs$x4nO29M4Bt;>4j0o z2r(lO=WlbCiLaxEx1^0>hbs7?I)9nG@78Bm&AJi+F)dtv-SfY-mz&pON&`zzzcHtf%bo}3kID6i7p_7m< zlVLHpp5iXm7gFvhfL<67Knuuu&EnzKJdZxOJjk%wJ6~wNe2KGR{T|sHpHa8Zni?0t zTf|b*KP9k2y;;SmAkJX9Fy`C)(G5J-sX^hr^{AVn|&2YNTT z!`_^yKeU=|4;_*-UN=5=F7)if_-e?vY}YX4<`SXwP&mKEOGU3h?h4xPZKvnrq?vtX zPzxUSe3dKiHlqei^QIHzh0pWX1O&xWw!ZXfbu*27Z?}KQ{;>$2<1>+o8e!hBC_m?W`EbAq87my z%le_uRxYzJXY+iqx?g5Kg{x1*aHjt9rFEu|n2~GrGqnkUIX}$C4~W)FwI!nrmbXqo zc`A^1KR)NFo&?NAoUe=jJz_#h$i@cGiT6yD=sA&Er~@b=L(eMxf4yCMIMjO@A9frg zr7`ZIX3WK{gpxsRgVD@r#;FutM$0H2)neQoohMBcLKCS;E-9ySRy8SSV^l^{F3GJr zQ3yq8EgjCPw%d8XGh?@X>N!t;t-t1Ze(&#ldB5-XeLwH*hsj4#uR0SbQEGia;U6{y z!|NohieYvZT^&w$F0XptQ>7@ZiP&D&pAJD>kA!_idGCksQFJ%na0oiRxhC{T!~?ph zEQaELJ*HBz=6F!q!~Bir3)V>|e+qeq3vZUj%zMKdTH6PU#>#g7(njeTN$_i-Hwf@0HxHp;+5UK$z(S4J!odO|#EYA*F#477|)jokam z;CyV5p!cL;d)Nut>5X<{v2k6MBU1$&{NxLVf5e`Ndn9gdYU0LjpRf(B00;QTqR87X zQeNb1NcIShLJrW%L(%F>DzmNjiZTuy>cmKA2l^~Slg>|(QJ z#l#?i_dD9&@I%Bp?>I`2p)EP1oLy}nd5fT(p&kcOkedc=V2aDy zkSE@jnw5h4Keq9n=QCHqM2m*41W12maz za>*0kp`mv&$ljM{3GA4yHYaTrp85lq7K0hK*Nl+2cCY7fI2BWkVbLt$Uc&riIw~l# z>W{eHkBe_zcodSO_)*-EO4LGauEs|ae1EAsEoWxOlJs)C+o|-^cx|85woces1(4lr zE=qblQxw#ve+k7FU`r<)5zw9ajB?J4OKp0zbv$1Q51|PH)%iuxX7JC=XP|f;un-`Kp33K#1F4la)(NUh5T7rWW*z`$LhXz)yEU;go8;M#Q1%I4FvG2~ zPJ7wtq9L$*z&zzPPl)GT4{?DMaw1&ev~6?G80n7=KIKiJ-b!Fg6w0JTeKk31$(~?i zN@)k9$ctTsc+$2I2$X=-;NpF5&U*s|Aj@3?w2W>vJxqA(uXJShx{#?|yw-7OGBJ!(Nf?EC#(X|&CUmEJjB&q(+v?0zd5VxpWu1V}+8pnZf`8|~W=(D{ zg7`rt4AX)s0k zK^pNg(AJ~JsBiQ@X(yLlRYlpXz$K^D-_h!&IIUaNQyP>-$DP~ZI1@ZrTOb#^)5^j~ zU1|56BwA{HV1#rVbiiAH8+DPWcB2?X4`5CAufG4jkBjFV#7xarQeU(NgEJb$e>n@Z z8*6T}R>s~{HCm^DcX$K%-?G=MA^??6RjD{k5FBtiCjp7hEFZ+rP84?qC zLjU_kseU@85M&0PeZr^NY1L&-e28W1LqtXSRV^Z2+3}$S86P&05duiQPEAYg^IUoUN zIBM4J{^rS%%QC#GEJVqu407H6dPVipadX<~i5xmX7e5`BBT?$!Zo?H3yz=m)Ue67= zAOOgOJbscw0wqptD-62zQiQ;xpKKfmO_d#s=QO?m%Wfd!MjsaX&^xDwi5M)1>*>O$)&|)V4Qrw zdZ8E-W=}u%b;4r0jMAGCe3TM-DNuQ1*c2e8b^bG{cd=7`VC|t}h4ge)*aBw;=kGl% z78gM1Wlck{v2v#jVj%YQDv5n=%M&V#JqNUmVX%s$1&ss0JtEm547?-Y`K!kO_bRMXz9NotNX^ zMa6S!4CD@+zOW03DMT?FNV#Q?CTqe4b{7)Ki`;~Gv%nA=z(3A#{`*=;Bo}SDLs^b| zzFIe&$Du+*Ka}}L+U9TJ$E@X`@39__tKy)V0S$`J0)^=q!IA089m3~syRMu`Wp$^2 z8fF7YM>}hK2v)|f)(ur(qv^*;VWvC7y|zid5cM;;%P7aiUac~exJadeiQ*`@%sR6% zC68FrNuA8wpFW$OkC6n1F8^q-^B7CIa$iX|RdoXD5mZzpA^<{7Yi1o5l4VdQ@TJwD zSaRZPr^hme^tNlrurm9j(lltxs&PJ+Ks91%KV(LV=K1o$fkFHD?_=~c8hV=@wDAUx zTB0D$!WQE%Ooda0tx2N+a8G-^yR<(a2g)1)F5b#d>cxqIHvj7EHobyRXM3FotLgav ztOm)%*pE)lcG*(VI-icAdraeVxk=e>eO FzXS3xJ$wKF literal 0 HcmV?d00001 diff --git a/docs/overview.rst b/docs/overview.rst index 88a0a1f..08c9b4c 100644 --- a/docs/overview.rst +++ b/docs/overview.rst @@ -2,7 +2,29 @@ .. SPDX-License-Identifier: CC-BY-4.0 .. Copyright (C) 2021 AT&T Intellectual Property. All rights reserved. -Overview -======== +NF OAM Adopter Overview +======================= -This document provides an overview of the NF OAM Adopter. \ No newline at end of file +NF OAM Adopter provides FM and PM VES event notification capabilities. + +Main capabilities are: + +- listen for SNMP traps, convert Traps received to VES message format (7.1) and forward it to the VES Collector. +- collect ZIP file of CSV with PM data, translate it to VES message format and forward it to the VES Collector. + +Translation is done via configuration file and it is possible to change it at runtime. + +Project Resources +----------------- + +The source code is available from the Linux Foundation Gerrit server: + +`Gerrit `_ + +The build (CI) jobs are in the Linux Foundation Jenkins server + +`Jenkins `_ + +Issues are tracked in the Linux Foundation Jira server: + +`Jira `_ diff --git a/docs/pm/create-adapter.json b/docs/pm/create-adapter.json new file mode 100644 index 0000000..0fefbf5 --- /dev/null +++ b/docs/pm/create-adapter.json @@ -0,0 +1,7 @@ +{ + "host": "170.10.10.2", + "mechId": { + "username": "user1", + "password": "secretPassword" + } +} diff --git a/docs/pm/get-adapters.json b/docs/pm/get-adapters.json new file mode 100644 index 0000000..5af52bb --- /dev/null +++ b/docs/pm/get-adapters.json @@ -0,0 +1,4 @@ +[ + "170.10.10.2", + "170.10.10.3" +] \ No newline at end of file diff --git a/docs/pm/index.rst b/docs/pm/index.rst new file mode 100644 index 0000000..64d36f7 --- /dev/null +++ b/docs/pm/index.rst @@ -0,0 +1,259 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. SPDX-License-Identifier: CC-BY-4.0 +.. Copyright (C) 2021 AT&T Intellectual Property. All rights reserved. + +PM REST Manager +############### + +PM REST Manager library follows `VES Event Listener 7.1 `_ + +.. toctree:: + :maxdepth: 3 + :caption: Contents: + +PM VES Message +============== + +Datatype: commonEventHeader +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Field + - Mandatory + - Default value + - Configurable + - Runtime + - Notes + * - domain + - yes + - measurement + - no + - no + - none + * - eventId + - yes + - none + - yes + - yes + - Unique id generated from combination of multiple fields, selection of fields configurable via mapping config file. + * - eventName + - yes + - PM Notification + - yes + - yes + - value configurable via mapping config file. + * - priority + - yes + - HIGH + - yes + - no + - value configurable via mapping config file. + * - reportingEntityName + - yes + - NF-OAM-ADOPTER + - yes + - yes + - value configurable via mapping config file. + * - startEpochMicrosec + - yes + - none + - none + - yes + - System time at the moment of notification generation + * - lastEpochMicrosec + - yes + - none + - none + - yes + - System time at the moment of notification generation + * - sequence + - yes + - none + - no + - yes + - incremental per line on csv file. Each file will start processing will start from sequence 0. + * - sourceName + - yes + - none + - yes + - yes + - value configurable via mapping config file. + * - version + - yes + - 4.1 + - no + - no + - Library only enforces mandatory fields for 4.1 version + * - vesEventListenerVersion + - yes + - 7.1 + - no + - no + - Library only enforces mandatory fields for 7.1 version + * - eventType + - no + - none + - no + - no + - none + * - nfcNamingCode + - no + - none + - no + - no + - none + * - nfNamingCode + - no + - none + - no + - no + - none + * - nfVendorName + - no + - ISCO + - yes + - no + - value configurable via mapping config file. + * - reportingEntityId + - no + - ONAP-ISCO-ADAPTER + - yes + - no + - value configurable via mapping config file. + * - internalHeader Fields + - no + - none + - no + - no + - none + * - sourceId + - no + - none + - none + - no + - none + * - timeZoneOffset + - no + - none + - no + - no + - none + + +Datatype: measurementFields +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Field + - Mandatory + - Default value + - Configurable + - Runtime + - Notes + * - additionalFields + - no + - none + - yes + - yes + - values configurable via mapping config file. + * - additionalMeasurements + - yes + - none + - yes + - yes + - values configurable via mapping config file. + * - measurementInterval + - yes + - none + - yes + - no + - value configurable via mapping config file. + * - measurementFieldsVersion + - yes + - 4.0 + - no + - no + - none + +REST PM Configuration +===================== + +Rest Adapter configuration +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Configuration file **application.yml** contains global definitions required to be consumed by PM REST adapters services. + +- **token-api-username** Defines the username to be used for login +- **synchronization-time-start** Defines the time for execution of pull of PM files and forwarding as VES Message +- **synchronization-time-frequency** Defines the time for execution of pull of PM files and forwarding as VES Message +- **mapping-config-path** Defines the path where mapping configuration file is located + +Rest SB Client Adapter configuration +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- **ran-token-endpoint** Defines rand endpoint from where token will be obtained +- **ran-pm-endpoint:** Defines rand endpoint from where ZIP with PM files will be GET. +- **ran-time-zone-offset-endpoint** Defines rand endpoint from where we GET the timezone from the device. + +.. literalinclude:: pm-rest-manager.yaml + :language: YAML + +Mapping Configuration +~~~~~~~~~~~~~~~~~~~~~ + +Configuration file **pm-ves-message-mapping.yaml** contains all definitions required to define the mapping +from ZIP file with collection of csv files information to VES Message format + +.. note:: + File name can be changed as long it matches with configured **mapping-config-path** and file is in yaml format + +- **reporting-entity-name** Reporting entity name assigned to the event +- **reporting-entity-id** Reporting entity id assigned to the event +- **nf-vendor-name** Vendor name assigned to the event +- **event-source-type** Source type assigned to the event +- **event-name** Event name assigned to the event +- **measurement-interval** Interval over which measurements are being reported in seconds +- **priority** Priority assigned to the event + +- **CSV** + - **source-name** Column names containing containing information + - **source-name-regex** The regular expression to which source-name string value is to be matched and removed + - **event-id** Collection of columns names to generate an uniqueID + - **additional-fields** Collection of columns names containing information to be attached + - **additional-measurements-name** Name assigned to AdditionalMeasurement array + - **additional-measurements** Collection of columns names containing information to be attached + - **batch-size** File will be processed and send in small batches event notifications. Size define the number of events which will contain each notification + +.. literalinclude:: pm-ves-message-mapping.yaml + :language: YAML + +PM Adapter Configuration +======================== + +PM Adapters can be instantiated at runtime + +Create a PM Adapter +~~~~~~~~~~~~~~~~~~~ + +**POST** ``https://:/adapters/adapter`` + +.. literalinclude:: create-adapter.json + :language: JSON + +Get PM Adapters +~~~~~~~~~~~~~~~ + +**GET** ``https://:/adapters/`` + +.. literalinclude:: get-adapters.json + :language: JSON + + +Delete PM Adapter +~~~~~~~~~~~~~~~~~ + +**DELETE** ``https://:/adapters/adapter/10.53.40.50`` diff --git a/docs/pm/pm-rest-manager.yaml b/docs/pm/pm-rest-manager.yaml new file mode 100644 index 0000000..747e72c --- /dev/null +++ b/docs/pm/pm-rest-manager.yaml @@ -0,0 +1,7 @@ +pm-rest-manager: + synchronization-time-start: 18:00:00 + synchronization-time-frequency: 60 + mapping-config-path: ${PM_MAPPING_FILE_PATH:mapping-configuration/pm-ves-message-mapping.yaml} + ran-token-endpoint: /auth/token + ran-pm-endpoint: /pm/files + ran-time-zone-offset-endpoint: /system/timeZone \ No newline at end of file diff --git a/docs/pm/pm-ves-message-mapping.yaml b/docs/pm/pm-ves-message-mapping.yaml new file mode 100644 index 0000000..073e3c7 --- /dev/null +++ b/docs/pm/pm-ves-message-mapping.yaml @@ -0,0 +1,26 @@ +reporting-entity-name: "NF-OAM-ADOPTER" +reporting-entity-id: "ONAP-NF-OAM-SOME-VENDOR-ADAPTER" +nf-vendor-name: "SOME-VENDOR" +event-source-type: "SNMP Agent" +event-name: "PM_Notification" +measurement-interval: 40 +priority: "High" +batch-size: 200 +csv: + source-name: Name + event-id: + - PortId + - Date + - Time + additional-fields: + - PortId + - Name + - Date + - Time + additional-measurements-name: "Port measurements" + additional-measurements: + - A_Parameter + - B_Parameter + - C_Parameter + - D_Parameter + - E_Parameter \ No newline at end of file diff --git a/docs/snmp/PortDOWN.json b/docs/snmp/PortDOWN.json new file mode 100644 index 0000000..bc5fbae --- /dev/null +++ b/docs/snmp/PortDOWN.json @@ -0,0 +1,40 @@ +{ + "event":{ + "commonEventHeader":{ + "domain":"fault", + "eventId":"1023555944", + "eventName":"FAULT_NF-OAM-ADOPTER_PortDOWN", + "lastEpochMicrosec":1613592976108880, + "nfVendorName":"SOME-VENDOR", + "priority":"High", + "reportingEntityId":"10283", + "reportingEntityName": "NF-OAM-ADOPTER", + "sequence":0, + "sourceName":"OAM-BOX", + "startEpochMicrosec":1613592976108380, + "timeZoneOffset":"UTC+02:00", + "version":"4.0", + "vesEventListenerVersion":"7.1" + }, + "faultFields":{ + "alarmAdditionalInformation":{ + "1.3.6.1.4.1.1007.0.0.1.0.7":"A0", + "1.3.6.1.4.1.1007.0.0.1.0.5":"1613592976108880", + "1.3.6.1.6.3.1.1.4.1.0":"1.3.6.1.4.1.1007.0.0.1.0.1", + "1.3.6.1.4.1.1007.0.0.1.0.6":"10283", + "1.3.6.1.4.1.1007.0.0.1.0.3":"Port DOWN", + "1.3.6.1.4.1.1007.0.0.1.0.4":"1613592976108380", + "1.3.6.1.4.1.1007.0.0.1.0.2":"OAM-BOX", + "1.3.6.1.2.1.1.3.0":"0:00:50.00" + }, + "alarmCondition":"PortDOWN", + "alarmInterfaceA":"A0", + "eventCategory":"link", + "eventSeverity":"MAJOR", + "eventSourceType":"port", + "faultFieldsVersion":"4.0", + "specificProblem":"Port DOWN", + "vfStatus":"Active" + } + } +} diff --git a/docs/snmp/fm-ves-message-mapping.yaml b/docs/snmp/fm-ves-message-mapping.yaml new file mode 100644 index 0000000..ef9afb7 --- /dev/null +++ b/docs/snmp/fm-ves-message-mapping.yaml @@ -0,0 +1,34 @@ +reporting-entity-name: "NF-OAM-ADOPTER" +reporting-entity-id: "NF-OAM-ADOPTER" +nf-vendor-name: "SOME-VENDOR" +traps: + - oid: "default" + name: "SNMP_Fault" + event-severity: "CRITICAL" + event-source-type: "Unknown" + - oid: "1.3.6.1.4.1.1007.0.0.1.0.1" + name: "PortDOWN" + event-severity: "MAJOR" + event-category: "link" + event-source-type: "port" + oid-event-id: "1.3.6.1.4.1.1007.2.6.9.0" + oid-event-sequence: "0" + oid-reporting-entity-id: "1.3.6.1.4.1.1007.0.0.1.0.6" + oid-source-name: "1.3.6.1.4.1.1007.0.0.1.0.2" + oid-specific-problem-desc: "1.3.6.1.4.1.1007.0.0.1.0.3" + oid-alarm-interface-name: "1.3.6.1.4.1.1007.0.0.1.0.7" + oid-start-epoch-microsec: "1.3.6.1.4.1.1007.0.0.1.0.4" + oid-last-epoch-microsec: "1.3.6.1.4.1.1007.0.0.1.0.5" + - oid: "1.3.6.1.4.1.1007.0.0.1.0.1" + name: "PortUP" + event-severity: "NORMAL" + event-category: "link" + event-source-type: "port" + oid-event-id: "1.3.6.1.4.1.1007.2.6.10.0" + oid-event-sequence: "0" + oid-reporting-entity-id: "1.3.6.1.4.1.1007.0.0.1.0.6" + oid-source-name: "1.3.6.1.4.1.1007.0.0.1.0.2" + oid-specific-problem-desc: "1.3.6.1.4.1.1007.0.0.1.0.3" + oid-alarm-interface-name: "1.3.6.1.4.1.1007.0.0.1.0.7" + oid-start-epoch-microsec: "1.3.6.1.4.1.1007.0.0.1.0.4" + oid-last-epoch-microsec: "1.3.6.1.4.1.1007.0.0.1.0.5" \ No newline at end of file diff --git a/docs/snmp/index.rst b/docs/snmp/index.rst new file mode 100644 index 0000000..5dbe202 --- /dev/null +++ b/docs/snmp/index.rst @@ -0,0 +1,253 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. SPDX-License-Identifier: CC-BY-4.0 +.. Copyright (C) 2021 AT&T Intellectual Property. All rights reserved. + +SNMP2VES Manager +################ + +SNMP Manager library follows `VES Event Listener 7.1 `_ + +.. toctree:: + :maxdepth: 3 + :caption: Contents: + +FM VES Message +-------------- + +Datatype: commonEventHeader +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Field + - Mandatory + - Default value + - Configurable + - Runtime + - Notes + * - domain + - yes + - fault + - no + - no + - none + * - eventId + - yes + - SNMP Trap RequestID + - yes + - yes + - Uses default defined value if TRAP OID not configured + * - eventName + - yes + - SNMP Fault + - yes + - yes + - Uses default defined value if TRAP OID not configured + * - priority + - yes + - HIGH + - no + - no + - none + * - reportingEntityName + - yes + - NF-OAM-ADOPTER + - yes + - yes + - set value if provided by notification trap and oid-reporting-entity-name configured. + * - startEpochMicrosec + - yes + - System time at the moment of notification generation + - yes + - yes + - set value if provided by notification trap and oid-start-epoch-microsec configured. + * - lastEpochMicrosec + - yes + - System time at the moment of notification generation + - yes + - yes + - set value if provided by notification trap and oid-last-epoch-microsec configured. + * - sequence + - yes + - 0 + - yes + - yes + - set value if provided by notification trap and oid-event-sequence configured. + * - sourceName + - yes + - Host Address of SNMP Agent sending the trap notification + - yes + - yes + - set value if provided by notification trap and oid-source-name configured. + * - version + - yes + - 4.1 + - yes + - no + - Library only enforces mandatory fields for 4.1 version + * - vesEventListenerVersion + - yes + - 7.1 + - none + - no + - Library only enforces mandatory fields for 7.1 version + * - eventType + - no + - none + - no + - no + - none + * - nfcNamingCode + - no + - none + - no + - no + - none + * - nfNamingCode + - no + - none + - no + - no + - none + * - nfVendorName + - no + - NF-OAM-ADOPTER-VENDOR + - yes + - no + - none + * - reportingEntityId + - no + - none + - no + - yes + - set value if provided by notification trap and oid-reporting-entity-id configured. + * - internalHeader Fields + - no + - none + - no + - no + - none + * - sourceId + - no + - none + - none + - no + - none + * - timeZoneOffset + - no + - none + - no + - no + - none + +Datatype: faultFields +~~~~~~~~~~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Field + - Mandatory + - Default value + - Configurable + - Runtime + - Notes + * - alarmCondition + - yes + - SNMP Fault + - yes + - yes + - set value if provided by notification trap and trap configured. + * - eventSeverity + - yes + - CRITICAL + - yes + - yes + - set value if provided by notification trap and event-severity configured. + * - eventSourceType + - yes + - SNMP Agent + - yes + - no + - none + * - faultFieldsVersion + - yes + - 4.0 + - no + - no + - none + * - specificProblem + - yes + - SNMP Fault + - no + - yes + - set value if provided by notification trap and oid-specific-problem-desc configured. + * - vfStatus + - yes + - ACTIVE + - no + - no + - none + * - eventCategory + - no + - none + - no + - yes + - set value if provided by notification trap and event-category configured. + * - alarmAdditional Information + - no + - no + - no + - yes + - Map of OID with values + * - alarmInterfaceA + - no + - none + - no + - yes + - set value if provided by notification trap and oid-alarm-interface-name configured. + +Mapping Configuration +--------------------- + +Configuration file **fm-ves-message-mapping.yaml** contains all definitions required to define the mapping +from trap provided information to VES Message format + +**trap mapping example** + +.. literalinclude:: fm-ves-message-mapping.yaml + :language: YAML + +- **global** + + - **reporting-entity-name** Reporting entity name assigned to the event + - **reporting-entity-id** Reporting entity id assigned to the event + - **nf-vendor-name** Vendor name assigned to the event + +- **traps** + - **oid** *OID* trap identifier + - **name** Name of the trap + - **event-severity** Severity assigned to the event + - **event-category** Category assigned to the event + - **event-source-type** Source type assigned to the event + - **oid-event-id** *OID* containing the event entity id e.g. port interface + - **oid-event-sequence** Event sequence 0 on a raise and 1 on a clear + - **oid-reporting-entity-id** *OID* containing the reporting entity id + - **oid-source-name** *OID* containing the source name + - **oid-specific-problem-desc** *OID* containing the trap problem description + - **oid-start-epoch-microsec** *OID* containing the alarm start epoch + - **oid-last-epoch-microsec** *OID* containing the alarm last epoch + - **oid-alarm-interface-name** *OID* containing the interface name + +**Output example for port down trap** + +.. literalinclude:: PortDOWN.json + :language: JSON + +**Output example for any undefined trap** + +Undefined trap will use the mapping defined for default. + +.. literalinclude:: unknown-trap.json + :language: JSON \ No newline at end of file diff --git a/docs/snmp/snmp-manager.yaml b/docs/snmp/snmp-manager.yaml new file mode 100644 index 0000000..5ca9c70 --- /dev/null +++ b/docs/snmp/snmp-manager.yaml @@ -0,0 +1,4 @@ +snmp-manager: + host: "0.0.0.0" + port: 162 + mapping-config-path: "mapping-configuration/fm-ves-message-mapping.yaml" \ No newline at end of file diff --git a/docs/snmp/unknown-trap.json b/docs/snmp/unknown-trap.json new file mode 100644 index 0000000..a0e8e3f --- /dev/null +++ b/docs/snmp/unknown-trap.json @@ -0,0 +1,33 @@ +{ + "event": { + "commonEventHeader": { + "domain": "fault", + "eventId": "46102539", + "eventName":"FAULT_NF-OAM-ADOPTER_SNMP_Fault", + "lastEpochMicrosec": 1.601542425363E12, + "nfVendorName": "SOME-VENDOR", + "priority": "High", + "reportingEntityName": "NF-OAM-ADOPTER", + "sequence": 0, + "sourceName": "127.0.0.1", + "startEpochMicrosec":1613592976108380, + "timeZoneOffset":"UTC+02:00", + "version": "4.0", + "vesEventListenerVersion": "7.1" + }, + "faultFields": { + "alarmAdditionalInformation": { + "1.3.6.1.6.3.1.1.4.1.0": "1.2.3.4.5", + "1.2.3.4.5": "some string", + "1.3.6.1.2.1.1.1.0": "System Description", + "1.3.6.1.2.1.1.3.0": "0:00:50.00" + }, + "alarmCondition": "SNMP_Fault", + "eventSeverity": "CRITICAL", + "eventSourceType": "Unknown", + "faultFieldsVersion": "4.0", + "specificProblem": "SNMP_Fault", + "vfStatus": "Active" + } + } +} diff --git a/docs/user-guide.rst b/docs/user-guide.rst index cd389ba..4380a54 100644 --- a/docs/user-guide.rst +++ b/docs/user-guide.rst @@ -2,7 +2,12 @@ .. SPDX-License-Identifier: CC-BY-4.0 .. Copyright (C) 2021 AT&T Intellectual Property. All rights reserved. -User Guide -========== +NF OAM Adopter User Guide +========================= -This document provides a quickstart for users of the NF OAM Adopter. \ No newline at end of file +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + ./snmp/index.rst + ./pm/index.rst \ No newline at end of file -- 2.16.6