From 5c54611d1bc2cce9f3f9540c3cb0f0cbe5c0d56b Mon Sep 17 00:00:00 2001 From: BenjiReis Date: Tue, 17 Sep 2019 15:26:19 +0200 Subject: [PATCH] feat(xo-server-sdn-controller): encryption for private networks (#4441) --- CHANGELOG.unreleased.md | 2 + docs/assets/sdn-controller.png | Bin 64867 -> 60720 bytes docs/sdn_controller.md | 24 +++++++++--- .../xo-server-sdn-controller/src/index.js | 36 ++++++++++++++++-- .../src/ovsdb-client.js | 6 +++ packages/xo-web/src/common/intl/messages.js | 3 ++ .../xo-web/src/xo-app/new/network/index.js | 18 +++++++++ 7 files changed, 80 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md index ae8c4f440..09768b54a 100644 --- a/CHANGELOG.unreleased.md +++ b/CHANGELOG.unreleased.md @@ -9,6 +9,7 @@ - [VM/disks] Don't hide disks that are attached to the same VM twice [#4400](https://github.com/vatesfr/xen-orchestra/issues/4400) (PR [#4414](https://github.com/vatesfr/xen-orchestra/pull/4414)) - [VM/console] Add a button to connect to the VM via the local SSH client (PR [#4415](https://github.com/vatesfr/xen-orchestra/pull/4415)) +- [SDN Controller] Add possibility to encrypt private networks (PR [#4441](https://github.com/vatesfr/xen-orchestra/pull/4441)) ### Bug fixes @@ -28,5 +29,6 @@ > > Rule of thumb: add packages on top. +- xo-server-sdn-controller v0.3.0 - xo-server v5.50.0 - xo-web v5.50.0 diff --git a/docs/assets/sdn-controller.png b/docs/assets/sdn-controller.png index eacd37b9196fdd047504eb47be6f8fe85ac02e9b..ba967545ef887a8cb58a1325aad7c561d88b33b6 100644 GIT binary patch literal 60720 zcmeFYWl$VlyC{mg26qzN3GNWw2@b(^g1cLg;1b+5xVyUs9fA)U+}-`m`zG1nKL5_$ z=g+-WchyvN_jE6LWIevZJ}OF~A`v1%KtQ0%NQ zWz-PB%^Sfq6#Pu!ETQGBYG>~3X5?rF0kE~RF=KKvaWpftb^2`Qd#Zk)q{?W`fDY`=ceTp;vO!4PM+zb=` zqV(VIT%d!w{@%;1e94Xa+e3xh@V|9I{Xgq+b{xL~Av1Me=QL!X=!!+TpO4S8_ej%* z`0o@A>EPircT`kWmHv4bL{Cr82U7U<&x|Ev%cKf_*HJ>mS|9s&9S3kIHh=HqS|P=V z{(_Nj+dV1yf7RvgX4v)%WeHK~V{lxI(68@PvY{l>jt2v}aZfApEA+o7+OIbUx6MDGqOyw5h`88ZY@)A01oHZT*LW|@o2 zK*NRe8fRNq!`{zhmOJ^98H#@hqSp&1hx6q8Y2~ku?@;Mtr9vq~>SQ4ZU%zx?__iJq znCFvHw1g2z8(SXqRDYd8mO)js-+xlDUgVAH_qR!~Ve~VyMm0I{iPe;&W~Cv>iO%B| z&T;&qmX*rwA9!dCM;(_zD7P{mK}WYT9Ggh?T`%8p{l{DT+41)K11WjAXT(@jm8sOj zuKPoS*Fm?=X_ap6A%j;>+_n4Y*Alva7OCRpeQ3%p5;vnaQ`7MI@cjq}92dlTMSJ6s zUgyb=3Mfb@m{3G<4FT%+sdXi}2ZybN>8e<^cdy^M)FL{+@m6&XZ!o|&cIo{TlO}va zuB$DhK5gY}tL|MNa?2JCR!Ys$CdDI(48cB!YLgR%U1wwP6U*!36G`XG zouIy#69s>I7uCNwTl{BJLgm=*N_kgb@3EV;-Z6WtzSuG9D~pfC&^S5-Ne#{Tbi~se zhd$d*b3d3!cTlEw&*6-vT+)*z`ibeKbBdS7jf}ARFK8J<7O!u9jZeL|O^Lnj>OQ#D zyc|1HD_zZ)s2`w;x{b__bbbgsd4*=)yL`P9CfhnY?-6NuTRluy@s^7>tobx!hFbO? z4s#xPUmxpC2#^@&n&!Ay!(lv;aX9tI_|*D9eF@SdKZ&vPCzjjabx5gPk_ zQ@DZkIX9*KjqajpqNtEtJ0n$nAy|p+qlJ$2jz_DKs*vJh(yP6t5T^&4xU{4Xl9Fsb z6w7c@anA2%&+JB%l(G3-hj)4t)7>3*#AN|pBkY=uwbs-x1|C?5$EVAy9b$ghPqu#oqI@w2(0zPw-4wgvVvk+DHBRFaqt+QT`j| zlJJ}{k^E^@6Z^}i+ttnZTmA0|b)nBa+omy}4GdM))WnsQmz2FME$K^2N;0jg{uQ1p zxt=;a&Yc$n-pxd*67O$~R}qn1oD~Z5|&tb}rYa z1*|BejNr>zuEnnq?qg&tkmw+$^TjO?W9NMaAqjPQlj1dU$PxK)L1SSNxSxGBjbkB( z($ojm;*dGqizO4ME!*Ip9eLZJ-P+2U4}NF=Jfa+3`PxRQ&lB8_Jj9AwOy`lv%T8u; zZgT2y4n}Hc+HR=V2WMx-8tAT3%%&1VWw9>{=C{$&Xm7+)>=lB{@~1&fUQ@!AG!lMz%y|dk(K>KvX<}z)#Di~6m11ZS z=1byqS#GfKreJ`W zx;;6sVbtSd!1x9dK0Ns{z38F(C|WHb)5628wksoUg{BQt1=*VmC)QN55YEHSghpct z#)Ox@Q4r6%z!{Lz{f%d_opI+)p(4p}&^@v?mpP}C3K3RXm4Vp>P7G#NYnmnvnzids z?xXT@|Ao4xO8z%uaRhJNBjVz!)~kYKXrWO#kX?Dl_idTTwkX#BG9@6*uA%Bqe~yKhv6}Z5$+zuFsM40H z8WQ1(>iXbbfa}#@k8JjAs&kpDoDtEjetbpIT@I69(Ul?}_s*K0?fsMKB8LipMm{{g zeDVuRi78PJ?Z0Bs-3f#0V_qujVs}JZ^!HcSUbgQTVaWuK|)29sEAjv*gtil(wZ z@!(${{rXDRRO88Qf5IftWz8t)x>daan#HyTN!gHpH4qleR+b_O#xj;#eJlquhoM+H2yod0f!R6h zm?wP;1%8Gq5wK#`-oL0xnTtb;u}|DRgtRdQcUQ~=-g$8O$*tjZ@j95`u8snT9DfY6 zn2#p6f&6l^9tr^tlON;QU%onMS7f@){se|_9j$aP6DV=OOe*iP-87-Ur)z-@lSsZU zE6Yk&#CNBX(;U3m+Q9MtSf5ym;B+l=gu#5jk8+Zcviv}Rn|SJQx^;`DhZRY|{63LC zJ9Q)|^i7n%F7Kx7YWuwcZl^16m7+Y1v2u%K~s29}*U0%`bfL%59 z+v36C=VJ`9gGhiohv(bT9i?Bx^az8f>%B6g%}&O~CfO8p6q&xASjplCKTg?MJq*PR zrzsz-na3sycPHw2cKIvxR=D~I|ItiSsih>j3ZV+T9vmbl)54Dc(}qLuNQgjcfe{9* zfGa-Bx%VQ~4mfDnk0mQ@{xkrVqUOf^hEKiYG#IzIXIs#6KkoAyK}6Rxq<7&L0adgt z?jgd3%e~8OLu~bl_h2=bbe10C1kzi3%IrJz$mUjQ{l%CCCa!oB-`i)tr&HWKq542h z^oey)9L1xiL0b%qtmAziWlWT&V801gNTa~{^7=VJ|Bo%wt*!aq6P3oJuOFBM($|?_ zk9c@U9~V@nKJ_?;r}Yl!S{!TnOzI6%yg8?_9_!_I)Vk`f!#=WlVdc8{e#bBp;iTQh z7tg=5HZdTjzUB`MX*^>2RRdD+AHV(4Zs!{Um0o$Qi6_9KNACHHYD~)&k-fE2(zo`` z#CHnT?0Y=mY{!qoP8(&|#Jt*F-b-gW%N6n`z-c(rOm}L|CR&?1k@xk6?AWqk=2+r( zyM0Sz^>G4};kJrs^V_Q_`uamG-JT9sA-*<4PQyIHpvg{$d|`xp;``^cHcH)5K$*e! zX0Gt8FuHuS1Box4Qo%^M@3JzU$$1|ME05z{VX=nHS?m4CJU@{rQLqxEYmbr{bM+&X|?Bdoh+T zhE*6yEi~R5X4EKf&0xND1nn8uafU9hU~44XP_{@Mrg+2Ps4UK@hrK#92p}_ck-;7Y zHL-G0q`nA3&w$mK+(cRV*mJaUEe%iKdO-$tF3*f zS#QElRz<$r0|hQZHyqK@zvXB={Rv<=rY*EseOgY~(#Qgx2$04KroUC}PB~ub4hV#l z!+xHoVRf)36nng-4EMb8Q|=As);F~|7dmj;y*RT*VD9M9{x~-QCSOqFS+5-_wHuiT z8QVz;Ftg-XJ8yd6`Ji-H;Dlj4qQ|5@@LYz@S4 zN#&J2%ql)!XlFhOvh4~lTEA%*4h*LLnQU;Lz6{-sXHCC4I=f3uD&^wq9WZQx5=Eb% z-{{iUy|O)!5K<>?b3?PFqu(n8(J5tV>BqN486y?g zm_5EJZ2p!@@Nv1vaC4b~bfd<6-H??xFg-q=p!G8!`WD$2pO$hhA6THgH7=6W)BR-d zneCh~Pt2^r478w3i;Iw(sWT<+aj!4u{>9q9P-%W zm7$mZYzKf9R&6fS>cS+ep!}|UNfW%M#PjDks=-nFW@eiM*=m z9;Gk3Y^Sl?CHtq5h`Vx!rLwL1Ek)ux--{uNH$zTiH^)3PF(1N)kYpYl6<-H^t7BHY z`dEt#7{EaB$nuOuXTW>>%48{~34a0IUbJawGE3~-U6pMDBYs1bKP}attB@o04FWa( z@%r&rb@V)q<4B^4t5cF}(eKwUAQfX>A|JT)A$(Jw#B3^mMkrS5J-t=5VNZwJX`$2gHM;W^rwwe z#X^J#R0-h@{}$Z*a@ebb#W`K^}<22Xu+7fg;Y(K%L$cEqS?utJm#qWl6{Mn!8zZL zeS`W!=KNvbDVj%9g$r3|ertX8aU8KKVbY(-YY_9Ww$|~AZK&|NlKZ1g_GvE?x%|Z? zskx8W>S9o>kU!6-?m`@yZK}$-n@pde=`Q7Hz7|@nd)}N@9UC%L3)^uL5nhIq4mVva zY#6Z9yG$zgz&XDxo$Jl+NN4;2Q=*bMTOTa$p>i_vn2gB#0RyNdqQI@0!CQz2HjaBQ zh$H6JUSD!ueR&zd?ptYvx0?4^P)nVp2aspL@>mk<5i`97 z&tpD-tt2qI^gf6;7AV(;8UswZRyy*tNA4uq9y%Bjay_y|;(lN+_QNZe4wGGf2pdKP zEL@Ek&mHey!4$uSH=wf=6$cKV%bX_v-Q^nmqC^NNnce*fh5K7oKeVsN4=Dte&Ha9= zKJAoj1S9Hq4h@*7@;Q^clfRD|q~IxLnlMsL$Eq@NwbmMcP|#UeD%XAPVTypd`fP+V z(nHwTE~a>&`@om?k12!&s;Zo7*klil9Y+1R;m-t)+$hV-Fo8Fa7+Cs=7$b!#i`XDa zYAo(Qp$lO88dh?R7@J#3eYk{KQ;sqVAQ=&R)7 z%<;qTm?YTN_&G5Nx0g6bf^0|eU1?f#yo=oJUT@j{82d!~3Y(?9Ch7WczIG=H;Bn-i zy6k;i9x{OPg-6)J5}9K4;8erz!rr+n9xSw-!V65;N*u$9U{wH0m3HPvP1| z4ENOSDG!r@ZxW*)_Q+;>?2Cf`#=YmoN?TI2HwyrLto_QQBTKtD#qo8O(>(BrbF~(uwl^W7K{uynQp#uy=D@A^4t|AWpB!PK%VkMfm4 z_Clw#Q0f&^{_eVpz->nJmY+OjBoq0R>a6>XV`uTU$o->$%j+Xk@^NZ^|Ko|7?j>mV z16K29squ;SGwk)XL2R2TTFZF2c;+L^*u$~-1Wn8q=~wJ|QJ?#WvF39Lo?F~31Fob_ zk*e6#{C2IyvlqP6%e$lCM)88R(X?C(z4;w!XQM8~Vz3M}d`A%?sr*r8)c?~L(v0k> z3&N0>lHn_Nn&ibrXjGkBRN2jZ0N141Cg#sN#38#eLNWal1I5)&PuE@HA?SNx!*bMC z_WRq_GJNOuWZum9@p1#a_t)#9Xfu922k==`F8fuyU4nkMCkrfpgkVuS+E*?J82H%h zL#g4E>aTh2-WTB`pc*f3uiJSQ19b809Hq6FD<%1jjdE+YxJTFHBvqg3l-46&$?Xnc z8Y*nU>B9IbbOXn7EBZ4$m7}jGwMm`I{?bMiG)m?j?dY4e^;tKrGf=b-ad8Drsg%;g zjS?lN6Qd@8YMKG!TTiCj>8~2VT9K(6)74&IPHqTVM3E+L-3fp9Cc~V{)d1u{Se{h& z3nkjI(-sr|%5PNFgB7>dcNswIO}52< zW%u%#0sqhQcK?G^-~XV?8M@!==v453mva0ctmFUh@)!Lx|9f6{ zO$dbgEq{~hIPWTc1?KNY%?#8r@YGd%|y>XCL3QJ@#%^WiVdHY4jRk0ui}8R-O+l%yzp*eJ|<1B@?R$2S2OuM zZLv)c+3a)8u8TK6oc?FLxO}XU$wDIJ{(j80s)ypUqC!vf zTvnKX=TKCxF52jY?l8;TKOU9L0evvniq=uFM>*l_)2!?Z$39_F!iV03f+wSPIm^Fa z@sa$_3jTc#=E~$Ik1y{TzomtSf^KHCIt#NyS8wO!jIWQFYPs1C*N{{16ifv_45!ow z%jO&$Tjc8{D9+g-m6T$OMEtDEiWAxeU8UnKqhQB6mzW_4w}gGO%Rdhm-(hLLg`iVg1NnM*74%zgp)%vbkvR zmq`@Si)K@~T-435v6GaQYeLcth2aKizOfneIQ*n(Go#Uvf8b$0c?QfK51Z+oo5rc6 zp^BIZktIR)kiF;Yc&}yo!y3WP*MApIciibz{w-Z$jkf}U(s;_ms9ARH(=Ac+k(+iu zgj%K1$#aWZuvfgp=`Ft!tbbQs5zWVF6KmQO2hh|Ddz({uBY%-;? z*LBL@L&nek8RKGgbGDwQ)FNosk9k`*Hd=s!5RES-DPL#R*FoSjKOO=_^d-e;nT;ym zW!kZrd8{CZI%3o~=jvKmg*e#ofn$f1bOEBj(CN`8)jA_n?)=aS#OsR$9i!^@#{!Vy zBguHkRoM1C$*TX>exR|6e*Eqe)keStxG@Kv-lvAgY(6)Q*zUYkjaK1^sIK-=;amCFDt0UPQ8Oe`;-TfIp5>Q= z?~x}fqW(7agw7f<>l!ewVO!xl85(_0=_r* z)Hla!gL8Wya$3_$>B)1`!UZ9W=;s)BI@^<&ODzR}=IA;MM)m(GK&jv>5KAvzF4Arg zBzCwD=aln!OanAmVhxpv!yAWMSZE_+pg_PN!06CTZzNd^$q^?)dzu~xQxb#5GrM9c`;Y+mnRBwr> z9sg>**q(WCMjCFA4OAd&D?o zMT>o>O*mf#RQ}7C9~U&Mj9>UlG_n^5gsjzL|kJg^7!3wICGj2~1l}(w)Hd$l)On9Vt+diAi@!GK@=oad{YczMSy-MkKH_@< z%%^wS&(3OeH5ww*D@Weih(pz=Dc9U%h2I9fy`wm}Q-8=E-fMOk>$p|5^xwXRwZ_uRD@XK;T`v z%Pr9K!wYF+hfs(%bQa+Lj%#8fJbHJ72rn+FCJWY$*|aZ9uifXBctewMvsEKH{m(7} zm(|S;+lmZHuwN|J)LZ%18Bos`WP7Zc#*7lm$wK6i;l&U+L?%k^I*i6Eu`@78n;9`5 zI=;wT6mui)&)0q47K^myLMKV)j7ioI>aR%M#Z-Of_2A_#AAQXz{pDf0VlT{6p}X*K z&#S_%qS+n^Yvl?Fxl!d2x;=zqjfO=6+*@NZ``~FuE`C1c@l?VVH!6AF9e*4DlL*0Q zLK6QnxCM4U49t3LEw5z)P3hgL$0&&ffz>0S2WqLWNJL5dH#77}&|DR1v=2tec>SS2i6AE1lyM;IPG6x#; zTG!%ei6Vvzrnn6?9omN*%}1-e*zy^}t%BK?%UJi3FM1C(hhd|}Cmq@L(~-pVqxy#T z!PcY`e3!jue*|ce=VvhvnJ&)+iS^VmpXbTkbtyy?!>1>y)WoUPuu0@*+Yw>a7GLyS zdsRkkats8vt-%@;Na-ItNk?q@i@5K+-BVNCB@MhFF~;`{OjU0#xGa0u1J_l^F(_?k zX7lUoB#t%v28G*uxS;ZN)5p6veTDaDR5hRA{1(wBW6r0CT%Xot#t>|u2VxfPe$fOW z85rrA@y$zAPcc&4ur)>g0DLeCZJ&249&3feEB>=+K$faNJ!GiamJQfsa1vzcxPT+W zwJmCWPk;ym|Bday(zf+&dcuM$a}6YUaK07ZMTpfBJr>aHmT9w=OBQ7;t?!~7ZMk#$ zVB!8o0C!tMtgB`@ZGV_eMQ+6LvIGuaAn9C&vpU2mc0hg-~xR9^BeBP$K3<b%P(w-cwT|nr$|`*jOlI3 zOxtK!L?t-0YDbU=7}=~j$OjSBzFJ~}>mwtF;|)`q0-cEy;T?Eui|jNZWAG z8k|KnNyt{&!&~mxDXNfeD2)2GZ0~1LBLzO_l;Q}pCF#gj?I^LVPL?Ff=&38+)~8CC z6smfTGqih~JPq4M{+3FLnBa=m346#qXb~QH9$k1$8}qrww2#w0pE|b|$s;aTT(%tO!XnwKwt3~W!=lY*THKk2O4kjSf@-DmnVcYQEBhOHS zt4{&VzNkxaHt4F#jqq%IZS;B3;Wl0n2>k;;`8P&gYZ@HV8=ISbE0Vz$>07hA+(bG$ z3hA)QU$yYabj2yX74 zFJ~`_HJ|0Fn=0u|HnFCgUFEq5lFiwD4^+6+Ni>wy-zu$m2x=!6#=qb3Jn?P$*0*NM z*k70oaN0~c3ii_DO@+0y`yPBV=hTd_G{4hP=5A$)>$Vkyusue3oLAQDV9m$fsq3(? zZPk38=gf98TvQ3_@T)0h>#bQ{UYHYoao(LZ)#VFxk#g?*pm45I+2PFC)TQTe^+(pe z0aK>GdJGel!FXiuqR1w*tc?2Ag-Zh(Wv8}Y8a=h-?di2QA@k_gMkuhbu;I>gxz{U!?|mRSPWmVsoUDu4SL@@I z^k0plXfOK=T&jczQnIqTK_&!Xxu)8(y9}XzUp}(ZSDg)9pSM8l9~gX3X~I`G zh?-;kOoUDRNkx>$h_MMUz+H|It^l|?TMcTovBD25^vFJ+a*~{lK-h9)1*SK#A zgT7>4PMy6wcl2(3_cA4sGqSmvCr)zQaITmfmZi$fD*w7ZZ~R8W{&X*e-2XE7`HdOe6@q3ym z?n+%`IOe6+MVXPFz2zTetf&cQ5pgK)l_VKE@^%k`+m80*>WbQT>H~xDWE;nVB8IHs zcP_Nz7MHc&q@Ay*^#0wy4qG@6@ikHLNAnVams2CV9v0iv0!{8*-ve8gg&g4QIFDP^ z&v|wFo}~$0O`ouY1^h)m6BT%Yivx+W?Zvw>LJ>uHX6)hQ2X@t_((i)$n0%5pV?r*%J)3LC`O#p~z4Sva$K1 z514U^kQBgXW8n)07)6<2>}w5Dq44wBBin2$)$N`e9dVF$aSPT0M1KPeD7VW#f|FKp z!-(e!Yyp`q$JT|^78Nz=iP1S}OM5%iNWUDoX#o4he0Ww za%Qw!0RvUfjBQ)I8_M=me2Dl)lvX@NuskheqVzjGz6dS0kzj>O)4v4Xp_5s*S9uT= z)3(65T9wznHk3qcP+Qd zZ}3y!Y#onhtK#VVnDgyx;fI5Z#)pfsF3hXtE|?8$v34Kp@p3k2ghte?+p2_Y=Wuz8 zoJHCr*M#ck#qry8Xcz$(yr+o|Ijw9Ih53M81xHuqj(gM{McvWOKo&#OMFf>M8+#-{ zV52>8NvMFl>f453NI=N1>YC*^v;x?#Qu8F0xviyX73r6Bv`-1)g`)wx4x7CpcP_F3 zu8BoO3yBmF(XQaHREWFpDXWvFYGtMQ5_Hw9S0#CPB7=M}HHf%V+#O36G@#)F%Z{;= zzvfy1>h6%Gk+wb(AhEH&R13|hsmSQ|$reZ-?1xI9tZY?xe_jY(KNEj@2(=U@)0%5E ztI`{Tuks8BOBA4XMWiS@UG3t?xH(lPBNIyVQt4gU@%omO^jyGc`klh~Z)!Rhf(yj+ z`y_^(Kt90ugmb6}-&Z);wq7;6*C3ZAVWXAz%&3VSJ<9}k;_lzc5kc{(*JTcr4K!7V z$HqG6=A}e_70Bu;?K`j<$NNKfUeiPY;VI6xgx63_La!Js1Hi4?AP7z~yK2L6(l?c< zQnLASf*Vr=f=2|TFMYXCSnPlFC4JzeQ`-C&Xq*hC{3@vq)M1i8W&egm%XEd?To9tl)mK?eOefW`eJMX4^_myOg%xx(38Q)!fcrSl_O z9~~q9{8DUb#^tBhp!vAzNpLp%Vb6eRJ6}x1_@5IfGf-dyfKQggfk0I&&OtD7;H&l6 zI8~K19{=r8E+4kg%{CJv%>GIncZ~yLzL~kB_FxSDn0>VNSV8zIg)C;uzm$`N@0^k}#j4i~r+i;%-Ih}(qmNrQ?&j|=i{0(%Mghy+aorFq zg9^Jh%5tfR^Yv=9X$fsfwY1F%+cEM0br*yHXldE(!MG(!PEtB789@@v;SLk&Hgm>v z^v)iVct?URccwa(;P|AE3LikQ`KVTeQ9LSf0gMJ%)C@jnMz?#VHIdsJUVu1GBeV$8 zCqSHUvdfIapJ3aR@YC}tIBY*`E3PTmMw|IhEEqKY%{i_>F9Ge>uK#bY$Y*wF-zDyH z(X~wc{RjB4Mce<`k)i(&2IGH+$xj%@vg}^s-Ci#+Pc>e?hIeVy-M)Ukt3sQ(iUGjx z6HO;~_MEcsJSIC1@CuU)wT==o{_*0l|2a{_v~YQ?v)r&xrJ*_ND&yngw*-8xSOm_M zGHq#=Z=TdW#Jvdn^-z=~UqJW$J@W*{s0zE6JB=S{{0q?Ft}C;YCLGe|1y4Bo5pwtT zNCH^bON`(%Ok?m0PX=C6hu@N%@4i_6^ENc@)1AKg4XUg1-^^rYDOfJ==jgRR*|Ddp z)pTLGT>W}_+jJ&<5HlQ#NPK<5!qN=;;)Qpb@Z#SVE@VFc`iQ>M$(2|^?!cXxk2Xj5|lhNW;7-YxeiQu z{Hc@RmIwRSP_X&OmSoOazJhGyQ|`MLPU)i{0j)CbsA%Y3n7~1}Jn9>t+yjY~QhfnVu&Tc$QO-36|z6KlGd=H#y;)JS>GjVH)QHHt<=P z!N)BYvbrX$d2|A{EHb|~cBZ}Y*Z{&7ef`Jh#u1Jc|8-Nm-l>=o;AK8#%AvHg+YTuQ5@{{7pPHye32uFVN5p6cDolcveSmk;=F@@ zX_7*%LokYH)YkCXhoZH9RkefZ_Y5jh|AKc-^&YPHVDH-N{s>~SDSrI!l;s{s_=R>O z@c9!99#sw-FD86lHf1UHh}AP*b5P=Jdwb8cMUM15=9hG7~G1YwHlAz)H#A zk%!z1qw?98A$(_wG-)c=M&bG0Tv~Bn8%|9KU4-+ZA%4@;fC!*u{;V z?)o_@N#emXf+Dk96BMLiENo_%+L<&RHWvyzx%4`Nby&bzp)Bu%w3SD^GI}E4iZatp zEcRvxdGkKO!R4`)E|&ZY!~3Mc>pjw0Y?kdsxgp2LB^;@)e^0W-Q8x7aL&a06wO518 zPqcN{EOxQCYnc`wLfzzEGCLq@k{u;R<;)hVL;gJlm2n%+S)G9r)0@kOsJB|4W zq-F?)20*(#JGw|{=p>d%_x9}hrhqq6IESPe!x!Q1w%Shuc2&M#shX&&kMDUI7d}Gw zvw5yxF7x3Bq~6w@JQuZ4kie4@tN_+UV*C}Qc~*M_iKK@82baf z!jT?q^p81e*H!U3ln#{Z?=h&q-8)!y*F!N)6^oQHt%_LKDkR|AArn#ByC@{=;l7l z=Vlci*mNTlHOuhpJ^@ts67b%Wxhi^+-&Xuj%eP3V$BaE(eLZ3eczoSwLqf1N@|3v* zEIqjm&}Usgk^LegxB_}`Y%BXso*Drkk+obX!+hO#=ROgRTM>1S!8^(*Im~IZjj!54 z>=PSW{VXVt>iW$7xYyI|>)I{bwSRj4^R$RfU?r??ozmx56@Kg+!?jg02rX+36lBAN z>LqKfr#7vdePtEWjJ`2{3m#&$sSpLT9aaXfwO3>_)C?)wZRRY}y?!V|pqV?65^8&U zU7MMDq=F0@JUZR?<`_g*Xtz>+TgXNmTQB`WvY-LnT1i;tU@#XC{9 zX~zp@lg4r0PUfu9t8kI&F3%k~Y8wNfaZzY8oyo(_6#vEiE8v!WJ5ZLb zh{@1=rXF2NmN5EZq-K|m74^o3A0stt18~|1J?TXId<=nWElK5-jCVH4a%!aYqK86! zL2j2QN~;D;HxYoRMRuXC1B}_0o7kkfPoaWraT?#Xk!7& z50VABVR!ds`FzXr!Sl(WSLVs0L-XsM} z`|aJFMW%>+fq=Uy4zI`8C=WuI)ske^=gERPvh&30$7 z!?q@zO0fDm-TqG0&t!c!rk3IPEiM3cJ^N6H?9iKve>92xxs1u11ZvTF;{_7PULhuy z8iDYgeIfx{cRZpR*X!ovl$hK?tFW}WA^&4@U}{Tjxx~GBBdLP%-4s-Ck*44GH(g|V zx=Q{U3~-qQLUxeo;#KG7_zQ=bH`Af!iRq%*@(hQ!WW4~EymBWc^M&rjOt`A!p-qLn ze74jNf;MUV#dLScSX zsB}Y+tvq3C%ET*gh(WTCT=h?u{tH2aM8=$3?ok<+r?ss$Z=zRgxs7auj}ALtoi|W4 zRo8!O0epv(?79leJ-@!+#4Y49b5)e91+cg8imoo-;CP9_lec|YogEGn3B{1%v7}@O z*j@s8U>~$Q7d_}^G{xIm4-!>xIL@U!Y}{@PU^;Pqqf?-38XN&LtKd4igf&OBpYkP@3~aRHg)Pip9)d;BgdDds@1LMHy%P2Z^kCIM(i! z-tyzJ?hc@9=xB9Z$mB02TNL**x!%3wq;lTOYInPPga0=emEH3J|w z8?o)@lUf8Wvh6Mh*UGTCUVqq>C@J%J${bQ!LsUTKZ^d2Wh(yiy1%Oi?iM}i_rPerDvZ7R6W!x!SXd=EYW4eR zug8W-p#WQ|`Zg|G5zEf3k;Y9YSE`qvFZX7lZzzq~n<`=9^3HisiecgMo)(0Tl4p^c zigv2}Y5jqd)3;RHg4#Dzj`3E+eUdv{1MPfchMS}4Y#Y0`mv>~c4noae=E>wNdQ||f z55nwG{?@y*$xWQX%2a>3dA`8!Zasv|_wzCNr%$JyEl1CenpPoi-&K^mt?5EU!T3xk$j{EM`IuKkcyHh;C=Ki7>fabVW@Pje8FA^J~m%vhcrFrxp{ zq=`RHN&dI~lxY7bi2t-V@c&4a|Fr+NP46ExhbAIUd2-j0kdU--uJNXxa(ypJ)Uy>! z$7<-mF#b;1@*k|JT_)F^XAUqfIYZbXp!7kA28kL{UK>sZ#(Q{*fBHV0zWLS9yx-HH z!bUPLF=5Mea2N2iOSMnT?mSIh;AGfvJTj}9`7kKI(5gYdYPNZE&`l!J_n0+Rb?{tg zewJ^~bWwB1ye^yoJnhf)}}(`?Fi70-u9j=`rOadNi=gnY{RZ#0m$(<=HjFj!o0 zSR8cae9K*KOaxi}p-Rg`y+B$h!WTO{7NHAT7GFZeg-It|qE{1s{#PI7XA}f=Qsd2l z;mF4ou69&hXVRD@beWPdU$*R~cYc>rw>feHAIupa0)RfKxL-CKt<7VkZGXQ0y7ha8 z6JPT979PfVjd5)Ni6jg5#yR?7v+8EsfQFocRx6Ox?omeqRFe!k_ zT-$dbvNR#{$tURDU^4Uq#?Z|8KZiBD5{8y*Ru|Bf`l zn%4Lf739s=3pA-B$-PZ@yi*wJ6X0z7Hu(eIz0EF)W&#k+`utV29r|=9(4XWi@f7eg zSnP-wm;8(W_p*o(sa?li1w{KD1f}uSiPg*QSQk@27lu&-a3*E|bM#Bx!05fs|03@_qnZl(eo=~wiim$h|pGKavBZX2(&`J%5~Mlo_$ zn960Kpo5T}2I-HKC)2^6F0Idxs`GxfHLYVg$s_weI32cb>mEuvGRL!$(R`r0>>9-+ zfCEARD02)ma*){?9vqiwbA>ONK-%-@@0MZAZ$9a6?i!R3kGL)%>DH!aB&U;sAb6jS z8}OR<*?N@M*!})>iv!4RXV~(bpVnnKYkvn)1{1@91kMLPRZxol$*L|rk$-+e+uQt( zRSzxYx9&~I`Q}W0?SfJ@pOhr6m?X(rr5n#{hNkRWa=G59=U7r{c{bB`Y6(Tr6N`R+K{2u=Jw>JyN0dH1u46KVo<@JCr@1Nqx} z$Iz^zLRnPPZG2wbRO|eMO5~ZRc3+6IQynl zTJrI09n$gwUHf)qqV~*oov~Njj8#LTge7H3vV=M>?>kUzgg5IHxZG>9p<>Y4bVkbg zBX!}@pGxBKqa9#zVhxF(PTN|teQC|^%SJIPA9A0mqq3!Oy|rc2o)c+oifk9DEqQ5? z(3hF`W^{0Aw~b|K`>)XemtFlsi;^zY1uas&1R))|qXV=piEWPHkEc3u zgyk-~LnrTItOlw%DaVft?{dy)wWKMq*^9Sn+Vf zUaQVXt+z?z@R7`i^gx}rtB8?NU-rD8(ipP~C=IRfrLibN=+g?=e!R9a>hO?vj4H!d zQY}TE=W=gGy762fJxqEQvP+l{>Gt-hnzL@clS#gdZ>jifTqFHf z(7RP2B0zZZx8pgn9n3@Q2~e!4NP*q%q0E@Becww)QOW+~(4uIs8=tplq>t1E9d!6t zfpmRSX0Z$JS%8i|t@Ihf!$ramyS@5zMjJ|5C$;Z@I?CT4(#~|BA6lQMs2QfQMXK;> zf?^}RujApKc>D&iCA`{TM%gP(qojP7JsLSpd@=YJ=h(i8qR)3AC&rbCn1LM^h~;39 zTK%4u6g*KV!f0S6+8Iso%^ikt4?pTmU^01iCGkqHbhNRW4D`P6PM)g@nk086OYvsM zIFqz?APqgIvWTA`gs|%O$aJGZKthkdpweHaUWx<6VPe&ile!|y5xd(x|`@} zl%K6)K5AfbpZG*Aj-INQ?8=%=4IfE8d&HdTCb&8(`lUaO+);XIHRD3S>OGgcdWp@J z*oi~m3i*>*<*KSy2TV(1^vp->jGeS|WymR$BA(G1{+R6A z*B3XDvSeK2&Q#zaB?#~nbHykNqn~iTnpAmiPxJCb~vkQT5INu8Qf=v%9z`#*Q7_ZF@c8kE-K( z@osl?I;&o5lad(4OILsSMpVz9@N;!!YP-^Qdnyfd@~d54bzJOqoz9mp;9T|o-}d9| z&bYlPHTC=y#Y?|qo=TA-K)umi^_TZp{9Ra-RI|K9vV=UST+gjfKFGJl+f7wZEATa!yV|+o&NXdD+1E6NyY&qw| z>6=-{9UUMlWSD(VuSceCb|*ISVdqBf!Y(?-#}M}QZH!sUo!0aEqxb!SLn}7JD+;%E zZ!>>-DaCoTBfCPyl3$fMB-a7B*yy%tc0t`rt-CinT1l2rd8=aTORkI3PlNt-oar|b zq0TYCkopZJ5>np>L+b7MGD9;@3;932BrShe6 zSh%3JNw{e#zG7xXi*7UP} z01~MSZy6}W$aGLVUkJYM+K@Wdd3i8I>|aTZRu)B9jN%G^WG)i**GGsjJvezh#n+J6 z@=?<}>_Y2=U~C<+zY1mXnj8CeQ0b4k2SikodW=n-Zuv@NKGiFB3L1bGEb&S%5H&@j zbZ^>@-E}2A?~GVlAX@2##u~Bvaj%Dz^jAvqc^BZ`99QQ(%9Sc~pU1(HoNYUaZdAV9 zNogQxeB$HU)}J^iX3DMlXbnM-vY5f2*To?I2x2rWtF8+Vg`%#8jlRsS8vL_tFyVtnxw1DKmUA~DTGTWtuK{6cYw{! z=+zK!dti*PbNgex!#d6(CHk9*O16-nIeSVQDUdeRZ?<}5|Qg4cdsVh{@Th6SQ;o^IgD9P z1zGfkJRG*a!yS>ify);u_E2vT*VkLp*}IX{5Nj4k=Dv&^VwBkjj#x*m07td@0?YR%h{XHpCy#V9o0 zYj=h=*kI&yF@MaBfTr$8myUPK4$pyLPUptUGMY!tLA)F3B^cf7v)81SYDaa7WP7-$ z=GT&X&p$mk)_aFUZ1v7pAd|1_DfJ;&vygV58y)p3z3BP*90T&cn}|QxR*`P^4XIfY z_T%0BDIS9Id7Q*(OKte7yX2m7_g3px{+{`X5m)8pdhk-G&pWp9ZuHIatrp7I?bWeA z%xsfNGCIw_9@@8zNVIWuel({~mjnd%zgf)vtX>t{qlM-tNXfCAqN(?6>!8$hUYqNV ztlFFdyBN>`r}dWtcS1z*G-7nA?%C?Uj9TQ!MX+X&tc$(em_gH0<~0KA=rO(VmN(zG z(-}b(&)=BPhm`+$r*pA_MH(7>Z*EjNpdISE3~%I+Iw!?GwX9}jc62Za=li27F}Rc- zA}K7=pZt|S|I$n4YOvq8Y6D}&-ysA9M-w-$7*qB}U9?N#ur@NxI>$Fo=OIl|Qj!4pox0TpWu#XHx!R(?y_zg(8IWZD0eUcvN|jSSX{ zwRCxcP(XrK)2N*ss~$?ZGW8@*(~`IKzgv(XD}-%8Zk@cMqKf;YTY2kenXDv1s^t7U zkAnxDqo3QS%hLst-vqKay6R>H=)-~gJ|qZG=Y(ix?PI}r+6%I2Ujci?%}RE`gtW?H ziyQAQEL#cCNA4xi`mah#qC}>A;ARhlLdwOx5_Kp`~ zM~!qeP~wug-*=blnH>wDllTp9Ch#xI+Y1)0rhjZ-U3Wl-bz{^w)MQTFK=keovd@&4 zvlgG5T(`*K-*PCKL$+QxcKpn5Vcc&&-o5XEy$h*07wmWoJF`T5jc~9O><`$pM z$$AoQoU`8W(R@)2!T7P=#l}+wXCb{U|H>^TH@C+P*don3$-mIzBAGwG{zAkUOnJWj zh?$X4aqMWkI`rcDj&IpFI@rYlv(y*CR0@B3y2~<{Uqaq(?o>B%g%?`XMG+)KC6MV7xlZ7}h%HK2mi3or9Za!OP-Ds143|V1c z&aYsUmVG?K5pD9j?(rC6!dE0T*ZD`M{9oah{I#gWtBmy_Eoxw1&c&J;H->AzK=A)q zPU#j`Ef>-B9cpVReKo25K+{ZrLE&*#I}lc*mFxe0-?zOe?zg$6p^04<}`k zOzl)VYv>DEeup9&$HO$#wRjr#MORSUK}eg=z;XBOo__YleAKHMk-)i(-?HaSfgAQz zvP6|f(T9Ui9IPVqw&;!=#(~OX#?pS9S;RTDXxjL>y;CvEn{ZN%N=J772S!Z_^mZZk zEmEmROT<3$IZkJv#~qZjJf`p*r zntB+Q7#Fot6WnTk3i8!gxk_j?8-J`)o2V1|9=D7UE!1VHU0&Z|z4_6UvUcG`@?t2y zwut@HU;|zEQnQo5y2C%4C0tzm9cjsWxZv_d`jGXQ7?gC@8HLPSQ6Y*__=(FyP!LjD7t zc)fp1aMG|r*sq_h5E$E;mB3l1x3oZIgBmogpaiUpKrjMITMug@VbvrGRo$x{lzDTW z)3Ps8B^71?#7=ObD&`C`_7vz_hg5Hf=6}i6AAfz&)c7M4k$LIX$jgJ9pN#ft%eXrn z6vTq$5dKLGW^&aBjCns|jxyOr-0LSXZ>!7u$WwofDHegARG57YX9~ElsbPztt;ZmQ zrW(Ru_0C%Q8gM7clqJbDN^Q=KxBZIGE0L9qm~&SHy%|H4`5oSz*5w(uqb9N(_|0E* z*6vdFRKJP2DF#q{MEZSd28mP#^XQ-HfRJTteUNEVH>CB2Nt>_8ZZ7Cx}zK!iWeygPxDSXY)W@Kqi@s|x|)Hqmz zaJP+(>XN4qL&P0xQaQnRz_bD~-LHwuPm~Y@0U}R*xjii=9vUCWYbcVKF>QBJ7T&nb zeVd~u?0)yKn)4e};oUA8;fVS)WA8LO6u|D65aw}Om8p;rSHpF&g8XQ#cSL2;&oIkO zcgS}~QV{e#;4qEheFla-EZ5J|U0#U4&q@&+gxKq@d?AYEfA)jQ(pd7Lv{4+Z3WodS(*`mpL)$QiEMkCLKM7fQzU6I~!2gJgPw@u{za3ceQC0{`- zR=5(fQiT>@Y@Luh>J2_;2QH{tF(=W%D|6x58{`^0O-h@Ueb?(=|54K^XzcY86svIfvM*WbZKc2i( z(0(PDKhwqFPQIi-&N_VG<>RC1&GC=Mp6%%P_W?jn^@m#cck1`tY2=Rqync#z74Qmo}R89+n!Wa($x$9An9*=1P^Gh z$NssFjf{j}r^Wf0U_iDSKx3U2h2$4zlWu5fi*2s3Lb{4sH;%t<(F)G17RbN#F`Z>i zJ$8P3NWtyVVJN9m$SbNa4Gs3Tzdyhy`E1^YKBiWZR#-NT-J$MCLH^917<^Va8u6k~ zhwDn``CGaUS6<7xoHOfWzPr-6|5>al z{@)H#My15u`)4k|e~*_wdtpoR=&^Iw;Wlh)lI5R-eEll?8t~sA^ao9T?TQ?o<@cy? zzxj9a{{G3f&i?;WK=pqXPJWbLL45CijfU58pZ(UoD~tSZSyr^d``HVXYObLC??OQ$ zJe-~6vr;!+Yc1ui(!1-)y&K$A%(mc^9i1fQzd&5}aYA3}_5DxW&_n8fq9uB>H{N(g zQ5nW|+sl1-)b^Vm0(UKajhvW}3&@aFZUw;bZz~{3*a7>W?9c`GfBt*Uz8Y$lOY2j5 zdh}aNe<2zjQ5x4R%PF;M_s-YfWy(vKR@6W2PtQR6SUxfaB{;C@1Fn;7*cWq%S>_RE&YT|6N=1Y!M|7VKugl1goX|EP>2AVw7A zIV!ZYQj0&;dn2iqLJ~^@s`rtyHKrSXt&)}cJyV*1_Q3m6X7zZu*ZrSEjlV92$B2gS z?RDF#a2D(n!HRqANj;}yA6zo0Q^t*ynY5 za!+7tHlQPF4b3nh7YYtvU8pPjsLS`n>OVST9fv1nyb3HetIO=#_{}0OC)ya0v@q8; zEC=hH#om@GO)7v7hPjB!F|`T^_`hlD9i8j5IN}Q^hff@+>@IQ2JUhMYL#8dWl$&yz zrOcx}$jQfn#U8`%J;XOSiMJmQ-&IJaB=&!_eRy5Eah{t?&?$4KdB@Lv$D5NA8yfx% zVY->^?RgR2U2vk#^zV*EGb5O_hS=7)Egau+5;!&@sG)#BBpMDCRB4k}R+e!r70jm{ zT$!|^z3~RqmXd+yJ_PhnoTGzTQ>uOE}^q^B87{wq&3R-Tu3W zg`Xn#+L|<8NL6Vv701YW326@5K3F?VocM=S=T#>WubsUoq))kAh$pVtI?dKNf4S; z-aMtJ`pEuUj%OU>BYQ7AH+hRgh?MW7F^QbD$Fy{P=qB*&l{ry+pjmok)+7JEFSTn} zgi@5CQkV(CL&H5kb3}6_a_VyxcKEN-mTxO(y)@Gnb}JTaJNA~SM3$Vv0!1?HIWLyB z=%5hOZZemjL~H+XG~BmNu$8i=sl`OMoAEhuVY*oYhn(N+Laur90_4#e1tO5L^foa};E{pjxCtV<@~RBrbP%K1{@+WRka?Ub5_mMrILCgke>Bp-iO ztqqD5m36nnhO+UBQcJdVq^fmKig&95ZA=Zx))hedG5~%3z)$T2H}CzbdMqD3aOX~| z#+>?ptbFIB!iCJfx37C)m%Ia)Pt^1u^ZKq4FqFs^&o(dZQv)Eb&f(!z`#UYy>m_SR z1lbES$tn_u==md< zUn3fcJ+0JYvx)yLnP!UY?vi%^r@7Z!E$eN*E*$g-f=2FTO>>> zg!5w2+Pb{>pbo>*=l^Cj`Gtcb=W|>9%ya6 zAlbR`h|`;bKVnpvz6Kt*XLD&Teayc)ONrSTt$gB1{2oZ(6NX|R?%ZCAWygRn{rs&D zW~akRw0*iLIc1OP5&l)9Oih|}Eo&*NxU-zygRc)-IHxY^ljX<;E?m}i%KfX3JV5g} z$);=sA&-UXTvn#4aqk&1uy~`wLl=R&Is5FUt%gv8A`rAnEK`$+CG(otoh3@Jm-Nq} z$nUNR^S0qK6UsZb;`x^Zy&obr<}}ptBF!7qQgbRV4MGfo3Cx^f$JIl#j&~jV0G`;I zKF=4=)^1M8iVv+F=UX2OLKZU2J9afS#)`rD>y;rE%;$j(S+DG7mXHVl}{hxpnap^=#l1Y zl4A6XNwn#gadF#+j$jf2?+=7Y?mO{*UEla=c7B-g?vqUVKRTlZf{ywfq|cF32W2E2 zMrHo^*jWIT3f+=0<-hU@zqY|_#jS}m&qF7UX?9OYKnWZh9bYZkV!(9VA-)0ZF{ z##wa7*5*4tu`E5V&eQ8Vpg!}540J&zc3jsu0%~U{${loFz;4`LbjQ(bB1cgfyh9AS zduKq^MLb)m%vCNDfurdOl6h^DX;@@W;3yO2{V^NfPDHD$YcI-kZC&g_M)n7QFPK%M zzlgTP9ngEk^!d}o{9OMpwfIaRB=}=P>yt2BFT%^;ohS8vN?byW|3Ppho?!+A9&}Rg z*jPO*8)HhJ4IBz{2=nwK1Q@)p{nj4c8#jmAb2{a#beQb#A99wSeSOYC+?xD_n>Dc9 zkC+w?3s)J|d|7DiZn>og3c@eSNA4}7F8-x&EN>j<*TjAQo4*ZI;oN<0^E6;nN%>n% zx#^(?KJ}Y^&KUVEOL6xGKCzDF1>tv><*t=r4pLS@jx2@O<1rnHG(#;oNXV(~znJM$ zKf@(udIBk5IQEI{4Lj36B+O+MYd7PgQOQ9S^hvGTAEqzlyUVN4y$$x9HDNwn&}d%$ zUtilOTdi99KM}B~7lTasY&U$y!=DlS%9)`Xy>a_)Lg`v}cfMGVkPFsaC{_Co7k)iI zPtd|p-oDq;WNad+_VwS=Y_T))ku@bKk_RL5UuG9?O3wZJxoLkwpIZhE7&H<0{~WkO zTsJY+73T=r9DEwY&->of>#*bXx!-q}KC{4`(;}yTD~Qfo7gjN%B6@c2aYgr|^L}_0 z2&1+#>0!G!@~cxsvP(`HJU_nos%ZO1p0N*$Zewby;-`&kVf*eH;fOaH8-WKKcT_p^ z;D)Lb#S-;#Q!h&XrQCLD9m?rT5!{cqjirJS5(4jg_sDp5TOf;{zMh4*!lZh4u|Cx* zqPrWh$NNn#u$?4c(JYeOj{Bm8Gl5g6)&@u3G83uiuYmzkRdE!Mdv-Np^uLpaj#u|q z`!#xcj>~o{uJdpQ9te|+>vQ~@k<|S1i@UOe3Z>~A6z2l>S0a=4y4)3b&Pf6I#96IP z(^)TjAzLou_ge~H+fR)lHi@S?UE{$*W>^*wLMB)+?S;l90X$Lmo1ZNAN}25PF8hax z9>wmIMt>UnZ+b_Q=Ceg#GMA-1Jr{&K#0h!KD_{P%(QGA`JKvGFC1H8&%z9;_H(gm@ z&QJd(O83m1veG1Mz{39&1NiIz_9?En3K;#rD%o=L@j3j5h4u8VxrIf=#%?@5A2InI{(Y1?f#{y>#!gul|*iF>DQYRNaeb!UkB}tDSa`ne@$Ku zR(M$9Wu{2#DFkdi;FaK8CU~w>nlb^A^SVy%85MZiKwGiw^yKVRqT1mu<=%eRdc6GX z&k*EAi(2vEUI2rkctZUxZgGY?d+j3(UWXf6D1OT>4z_;1&gZx+$8El^4UTLT>F25n~g(5874Ogfeyb+4A$wa%-@H2Epw} z#u&xtA9lDp$8;ssa#7q)cb|)yAXD4MS)yIKn0rT92Uk)|k3)0A7-Qtsix`5!l6zui zavpvygNr7`Dqeme(nd!ZL4y&xFPgu+z0;lhQJqw5#0EhS3=R9CqfS@{b4GuInCUGz zJUXEMqs!CKm87o=gosH68FHULpk5x#(@{6~5zO)2j#>?Wu45S0%H0to=Kdk|i1Qz- zVeH0LqPVpds_^8#dI7A`ODF2njuFBngi@~L}>dIJ)^wl3*{ljt|GBQJc24WHp;ud&-KCO z8hYtt*`0mX(>S|+U2b#UCiQ#OOf6S7_Wd{_Y_o z$5BZdEEWirWY+yCnfylmiR$5*ml+{Cm*&jKr6Xz-BniSfjBee?8SZFylM;u^ak={% zvO-P9sB3|Vy-xxuIdsQ^|F}5wAt3*d!ChKe_=rtcq<&OsKrk$ERlF;0b|%1ngcQggci84Em#UWp7Gc%|> zzcFs8XKpmz-Q&Pb8}ZJ$v^4pFZ^P&IeC~s2>@rUWC~)Ar{Omin75fjS3)DT?peRCy zxjnwXQAOR_$>tuGSTp23K~1^U%^lB=g0myd=5*~m^)|anoSpU5a>1J3C-t=00sW>- zmT1L(y7f0gU#tTS#HDkkW-bErbx|yb(Q*Lxp?M*p+Ijx7>)hJt4=pYASZ3`p>sYoz%Wzd1sTO6Bk9%C2e#roFN2Hrsv|5I8(q(k>HvtB{+~#8>}Up;1_}NT?e^zpF08 zIWc*VC_Ut_FznLGSQ&izQa|=1V5Y#{)~-5w0p_IlCZ5Chf6>_ccWslqD0F4#GNd`qrv6k=Sw$iKN ztR9~Ox%E(L79;!sRhgzrw}J1Zemc&-3q_jxDAOG4GK0rn?$ue&>` z?FO#7t1{pLUrN_c7Vxrg4LUmo_pvfx>T3Z+*4KHjy9`?LAwWt&1P$uWe7n5z1?rws zYbxeOtzmnROa)-)55C3iUiLxV6Ood_5|&*1c!+)TTb;z=&4ld?TG)m~Yubjv>VKKX zi}6>RPYO5}()5JfDd%t)V_iwvjyWd1-ZQ?uZhpmtV6QP1tYg9sYTyzXqiBd{*wLTK zIzQc=u9=sIt6txnhn^nebeo^dw9egmz-J!lDBz-f8zAN!R&t zK2-l#_h@^d%yKr*YFyZ(b^~`xB}P?vcSYdm&Y6?q518MJk@aR}=7KiG0i|vj4O-;~ zr!$+n4Xwb9pKo1@W((wlgP@c`nsT5`0bL|KK(y4k)@0@c8D};cFCMJFLb97C+22gI zuUp;zA`O4G?!cW}gtTrHY}$2XM8**?h>Y?Vnj*0;AF9kqc9_k9beXFwBXx$_Bsw1Y zji+$a*8Nz|)~&^8*1S`6nOxbjST2K~2bW9ZSLt8JkmmYa%%XZ~&yXCX!!i%LWBv=~ z!7eipqsM8S`PH` zFMmYMr1i0EdTRDKw4Bye?SPX~n@{z0yXO0w)ujza-%545gpv)Ynq}2VX+r%vEFmc> zjgG9C?VYjNoD$m`vN>7cGPqhjskA|G$&>qGv{7k_zvh&UcW!4 z4vnw)hk&lhw!$k~(RpY@0Q*h~+0Gow){gYce9Nu7X_7Cr4m+*|;H+J*@8Fe!c%n>d$8cdh1l27{WdJQ5-@sV_&(0zSgQhGL_Z2>^H>$Qe&j>qs5Hd|zg1gKE1CHlEHbuypUvfN0z!u&1b>D*69iN-) ziKM|aX{#A{Pkzu5oWBi;wxQ;sCZGqGX~%vd)`2=H{8WJ|(jMjvfISAD)5Z{Y_BxTE zmzPn44W!R#Y9H`)#A8|=h`+JABZ@N6WZRo(3Ss07=XyK^e4BY`&AJ(y zR)1iep(&-SbH^7Bd*!E4onN1eSeV~F(*>72r5wxGKYlAMk=fhs;=K%A_qpsqp^wNv zD7j8w@+a#>elQZ!C?N^ubeC5r4w3rDJcsaKZI&`r(_$Wk%sAg27TpMNxyJ9)w}$XB zwzZ8)6M~FTuvJ99O{hyOjS6V4NC+;Cg2#sLD&Jzw`R*;luT*83Ip$f75Asztf52Jr zWGuC!h=Y5Lk26ZePF@wQk+j~3$bZY@=|Dl&z~6ZK`C0(Wi|7g3pbyQayPEY*_^*Z3 z?R0&XSgx@x9opdwjcM+@n=)-n*h#4igdL`%4S$K}f{?wvZ( z6q>cy-%>r|x7Z!u)|FfqEFE|O2YWDW4xt2kt_PFS2ss9m7mN9%=-Ll$Wa9GMkv(~S zUChQo1-ELLU3#>gP3Gd=sthpZ9~T&$i{Ar$>^#j_TrMF;+j3obd;OFb1_5*MWp{RJ zHN)hjiaIvY>G*7g^@b-lpQ^v}+_sIg`VpcmTxcFPPb+XEOvg}>R!8ZM1#1D-)jOp1OvzV+>Qf$vM8 zRG16)SHbWKHEV1B?2L>j?MF|ED|Iwo6#9R92@j~IB}S<5_jF;gBjg*<=kiCpqzL{$ zG%H7ROUHNgNvU#wP2kece1jO8%5rVy;m;i{`kIUsOsTkTD|dc6Zh+YCBZm_1qzGIt z%|9Vl08KY}@2%~VC21ghC+k)#td%W-?x6MGs%?~_T_pJ@D&pT7i7p{ALr+-k1aYw>{XdGaQtC*yr`Ql-bpw=o@1Rbuo@nPN0cvz za9_H?$IUF=CMRRjODh&1m;*dwws57g1=hAI?qHY6(FD^T&62T+sZeWfHVX^y^=j-7 zBwT_;YideFMo>nqfFXvn%tLj_g*HDiUNF|AE8;op%F-%m;*VO=ep|=LK%?B;%*VxK z<(h_SKD?SotcRTe)6Io@)w)1>Bx_yB#j?}WS&0Vn5Ct5Oi%5%y;e*L+yJB8a~#9$X9q>Z zD(mT4aM`-UN()N4;sZ@Z9jqpMrw)MWUWN{7f*<&wD_fw-9T{x_mWyrDnxcHe*+Bfk zG~nCTeWaR*Bog;>-n@ahU}p8cjL79vcF+n`&K{WlOLnO+wbJFwYmYdxuJ0`Jk^|oU zN5^+0qAWGjO$Q?GYR#Pumnl@p7h3)Qw=A);PR-+wczB& zl%`9~O}JCV*If|BQE4PF67DyfY|d_*-L~LV5oBzS$b9<5gn+;w=%`3rRy4nAMQTTp zPS$i^13A}t(JMW3K2?9*{ISOJ55LQ9_mZ>2E5W>3FBXIq_RO`M3UDSCXejMusIcs~ zpEkE%kQ>OsufNZErotKR0ag+dZ01US7CAV1|UFODnzdz zQ|Op5m8?IcPaE~gd#frc^u^F*2~;f7f>;A!^}CZlh(s+ZX2k@SEaB3T<<~(M3^IzJ zA*+!*mXlssdP@=5lbmU7Et)NqGlur+@FV`E@zxNQ9j;uv@6af9ob!X;e)3_dkG$4K zj=kgW@`bKH9zPihZO7|Hdmm0}0QSO0T)|_80H^uF3<|Cd!1^WB`EWJdTFv6d0k_KV z6DX@z4#s(!$^A^KMu#du!z4D}uu|Aj?P2*?sTjZaQx#GasD+OB?jw%e3CNq$g;O5; zLS%KYrTKXjBYjn{lhGl4%q`7T^Om^Gf?Sqf>i+H&7+aQI(|(fBQ<+UC8Q5LDIeWd+ zmeTS+zU;?9DY3fc#4YaqVP!lBEbQqdvKN=EuN!#K1&v2n9`Ttdc_7N3+85N>qpg4j zx4p@K$!=9pOAST8;36fWCm@(Fvo~q(8>Ah7+Fc@JMDPr=gEK$c!=>QA{$?*3iZh`; z-)gAAiXqe_{Ze629BO*_TrQUU(wpfVR_D?h(Rk zw~aroTo1ZmTfuPV`SpwXg3*k^aA19 z-%=&v$m=cJJG-HzhaiMIIuQLc7l7_}5l^=P`0_OS9sHw1RcZP~UU#($5D4CaS*xZ2awNmGj1yJNrpI-R~9e4NqI^1QB+r(6#Yu(Ozv~Uqj7TYQ7!7 z8d1v!`eo_4y)sg9fs9HfBzty}Z-N(V#ws5V@Nk2=PE<7Itlr#kyBGm>Rbx%H8;f~h zv6(jSZHAJw$&7G(4oa<)e5oEwQd8*`TS0c{J(uC2><6SGbwRmOwU_0`B^8{!xvE+o z5DcE%Mwr%-2rJsYkG*M65RoXe6k@t}MqcN8j+^zBZ|^b`EfliF)Nt-6G{lF)#B!{+ z_LC%bZENhX`>Fg4n$e-9nGMz!+Vy|p!o5$SbKVc*RElJ|?fH>i2Z7wB?)LJ=$sU@Z zg8Z)Pyv{AN)%1Q5CVjE|nU%oh#yhlftU6;At55)@dorNUeloe#y*)I4d}TPQN))qM z%C=luYnsrX1h;&cTngUr5H9e1S|$5CYOjp1NADsg^9gKDzs^^7gv?rPsB#Ha;b`Ha zIMi^q-)%q2YXBVyS2cu_*tU#Y3T|D0oFxj@~N;xIvn5ebfpp_6}{*u3L8x31}rLDBI3X9|i@@#!|KO zExFY0r`qex?y0Uy4@KcSQdaWe!>V)%OZ<~gR9I-kNGi~SS*&m-YILvvz8M|^4b2hX zSFP^aQ4D7gGPL(-$X#3_3ln3#L25|Kf-PmRTToa^3|O>d$C=XC%$m=?ZC@L&5dI>SG|n^nI|j5P|!+8uh0Tz4#%(V zFPxNnNU8zzQOc##ojQ`;n1+?WY01+-8PPPqGZV|%#D)e1=BQiy+rZW7*uY`_-uzM1 z+wp&L<&KY}owpLVj`KuRERCYm3OAj{`5k-OOxTo-{7y`mx-E!nJs?MOs|7r^R=wZz zHfw#D6-yhp56f_8=V=-))! zZVi{=dRSF?A#?qsp)B*XW_l9{3GReBuO?_1jtH1i-m!{l@*V$pP z*xcUAoaZyx{(hyHJG375{r0|(VjC+(dD}zZrCqin;gw661LF6o|Ek)x70gPj)K{WFZ^K@mxbZqUoeq{q77R|Pz6joA!Kcr2$80-Bkkc%;sZrXGKp z@kMzShm{kGKfcu3KF9Xf*l$L(-@bhsAgeqihg;u+0vsc^#4Lv6#eAe$Cz%f>rnvrO zf!-9togEU?aMtjegG-07O2YZyQ;C6czHIF-ma8_O$Os6U-gYL75-9#=KH#*&xtg7I zPDKPYWox$64GX#W7_6#6o;ot3^+gC6G9&5_yAGs(i^>9W7#0r`@EsF>jPKC=J+9s; zPSUdcoL&MB&cme3A)NQMe$9mEbG}b|8@;coU&lA{;X@|AEqr-)>)zzw9|Um(>Hp8& z@|V35$(&YJR%`1NSM~cFt6LEtc;R(v86&*Z!rxdQyt)t&y#Dn2#@`>`ui?4>-}2i3 ze|YN=Blxs4LkNv5IUTgM_uh8!af0N#_CvfLrj+aC1WeW2rrkYgxyqFpl0i!!9 zT^17G(z&nhgfT&0`R$z~qf-p+eYa`lxW=R_*uLR@l+AoC|=cwov@ml-v-+TX`rpga`q<^k+KB)5M(<5spm!cVRb4w~@$V$yN!5J^_lm{!iO zUy^PaMO}dvTY48Au)1=dQRAq*Agyd3$g%ZkB zo8X-q4-M~?uxW8Gr(eH*X?V=WO?w)HXFbn#CY%!a8LwJj)ARMJCGgkK6tpw-bDFGj z?o0)uS`-oS$ujzJSwD(dzhP2gQ=^F3gd@|?cGJ);Wh{+{wVswyYAB=J11=4Yr&<*k z9-p&t57DsxI#$!_Y$eu@u1(!TeQ#~Jvy=H=*ezyrGTi|tbl}kUaw|X0uS8Xf@#{M$|4o=Kx6#u^62P6 z87EMU0iJU-4mO>fy3$hcWgehnMO-ZQhX&PAbjhVNBgNlKl2*Fe*ue@uO>LCGU9L+Y z96CFA@kZW|97$2Vbl}0jX&DH$w=r`>bvrj7`@r`vYFUB!YIH1e>zthx5JEEh%=~D{ zrmTiUQ*8DxQ&e_DhtB?_l(IXy!QGdKoVnaQ$|~Mqn_qP)B?YX!xv$$BBd=ZcMwU2Y zYn_PTwRZc?`FxM&P^r1HwujNL?4#v7JoTyV-;9BpwzkRI{5^dh4zIUz10NWSS{fO2 zK2O8YqYnFOy)BnfMIzZ*6(VYz#z@97KW^yUo~b^0_p85)D62<_-v8oftrLFp)^t4h ze2b5syK_}htUd{bNsV@th8{3VbIDbI&{rr=$oV*FvXX2YOTx_Pch8c$_c#6OYQ$bm z5(Kp@U6CcjDJSUG%Dz&#*+ZumG7D3we z;Iq_>e=&>yF=zPuEXn zf-!g)YH+w-g3%@2f}IDt5-;e#A5T^m0DhjD;J8n7ARFiPI6o9#OnKExUcEH$B)OW{ zU%aYf^1AVSrGJ11FIXb-%MI^9$@Uvn%av#$*wOPq z3gWlG&e4sY?=rIokg%Jaz8)$viM%d`Z_xw0meGG-)De-IuNz%}H*{th0c?zrli<^0 z69l~Q?o|!qL=jW<5*E0VNQs3k=n$&mSQ01bksfuh1@qZVfac2h`7Gu{q@E z+@)w=EL&D-tt5LKGzZ8Wsc==v8d>G#E;H)lcn-MV^eGoE#_t;;*XXjW_UcvS7tv0p zT>w$sXVVfu`GjmsHvZjCW=MV0UpDR)E$fTTEG-r4#0@g9%m|uELN!kC!{Y-PC;lS( z40Es$+=n|&jtH*yE9Ig-NxD;%X%dYu2o(w9=XarZqJ;PMk8=y$89(c6A>k;$< zZztl5KLx&`zrQ%}KAiu5-SR3ji&#JZOY>8i%lLn2ekz76ax3ZN<=+<=p+4&>$_T$xA2YMd(==R74)V;UR_pA`}m?Ze@1XPKH?7PUbYiJZ)Co0kE5d`RSED z8F@AU5Z=F}(ljVJ9)2E+fTgJD>rt;7V83W57L?_HiLmvHjf$$9`Qq&!9`B0GhprZXn~HWq zm!xW@Q{7I5FnQZWUKb6)e<61(;{RapJ%F0*+I3+IiUmPMMWl&Rq<4@mqCluZDAHfL zbV%qBP!W*cdlLykdhbm@DWUgHP)aDF27&G*zuj^S$mg3z-4XR{&ueCf%oeAj3dO4G8NP3EMJbTA{yw?6-bf+bJ{Q=njc*e>2 zw9C-AIuocwoFlZzVjGHu^aLwF@c9$?=KdgB&aH1LJ~QPcc^jV3WGf^@S>lUMG!2eA zEs1B&R+Pi9Gr%OtQz5OQ)DxB-aH9_&ub0x!q||$)y9BrU5t1^JS)*jODwFQ|w%y6J z^`NQ@N;1&Ad$#nbuZ{w3NH3lAIz-qbT)OhyG2i1jMRm${wk>PCj>bctLe*td5)!7; zY!!9K?&VP|Fl!m63|Nr$6_>Rywd7eWl#CRJQaP2I;v2va{4Z5X$E7bR`>B-fki9V4 z(S@+>Oh^wnZ)bswtM_ABwyEP((ln2^8>de_eqOLDlrnZx9Jr_K#MqdVnveByZ{tJ5 zlkN9TE<;I%2BIQkT$U<_Q8@tQ6T)KKW)8;<+Gj-9?u#D>9WBplOt@F9RgINObZw@^ z6rEwZ@E*Uh-X0`p{Mp2Ki2w*wMGdCopPIm5sGT0h0FoV@5f>hlEN5{Z>*)nIy^g4B z)Jk=RGNYGhnw6*6YD^|uEelgq@Yg98CuGghNs~)rPtDBlRk`3wJT?}lkBlL`O8bi? zz^{laLK7v;tkP_hqn=;$GuBD-d}5y>B8;U=NV(-nxd?u8XQ+CvF`riOu}b5vmBI1% z;bDQi`AM}ztc7@twX!@?b|&ik$zG$LMx7^_t+qRQVfvRbPpe%mmkJ^NQld|5 zjwQ^_>iB4bW^Bqm?Z)+`rHW=Sb{wm)Gs%Upc+)jhgP+x)t2&!U2^wI3?)CXNCr2?z zx6)K0Dz|bBI|to_Zd1sQUtWbe2cBEqE!QmZ% zRCxT<@8Nuwp5vMM<Vb@vMisWBLg~jb@AIm^p zNL+HhNC==+j=lYXPi?1G!Vh9d*lm!tdmQ@8l@j6lqCArBC5*(M&0r?Av;)KADaJp( zkzi0}^NmZ~dE)L|&I~=)55Vk2O1393>a%uGLx4`xOrk*Zs{+~$9!i=;2C?z!NvYPH z$w}FQsWH~a5Hz>EHAit2LrK8C1W7Z5 zSX#=~G?P}a*3o%T1{wIAuY5vMSRlvhkDkgrupmhDVX0{dMCieW< zSrv>_2Fb}&X;U$iMF#cQq|+7qwzYTn%{fsUov37Hj)`Mw`bC(E;*2FZ-$@^5M?bP~ z<)ya&EVqzrOkdBDC^I^TV;zJK%%PHCan*MVI5s{X1-01|I7uDE zrLd`9koOF-J%xl#oMwU2I4{gO+y^%244qU>-VFh4!g{CPKe}uq>XN%x_;=^ic~ z-JuD}FaF^4;h&Nm)|2O`E0lXe`+PLBy-(fu+u3%xe=R2bz11ytUK_1H+^AbwUhV)+ zO&uRvJZqcmSI2gm_|nqS6o;0p0Hj4fj!r8AkeDq1k9vA~a`N-p69f28KkD%7^k3+w?B;?PNOB_!zB*B06DhPKOP;U1-j5_$M!uZO2BpW`5a^MXrE(r8s`~6 zSf)RnH6#-Gd#tZAr$p?}dU65iccRwWTIDy2pr+TYvQx6Qwx0FeY&bOraed{3U8nQs z#0yl?C2|T2d+RnElbcQsoBGbohw&^N|HFLLwY0KT($m5fJsK~(z1Mh1laY8#-t}S1CUZl zWlVKPq|}HoH6hHI!|R;cx7O@&`l-3HW*{X>Z2ETw?mq%CfQc2+DLtBH0g&XEQzY4Y z*c&2NQ)`Pp{x1@GHYH5|1`2=Y^E$?S>L1oQm3c^cL-xK?!f;z8qMkOK^&T>`x(%5T z8a1}vTV9(var%XS?HPvj6mPO43w7(p?QIM2ixrtrLKLo?D>2E)!kbUhUN2g-jjV4m zTxipS;JR6VJTPC>5x${6vY0YcAAZ`W{$L=9RQtrm32w6AXJ-o_J3;n@tJtloz zoz_hWX&D?U=p|1rTl=ZVkyGGE5e)?ZTevu{sN@&h?jsg3))X4`Kgk)EuS3$>F72D` z6;rzJWNBe{xDbfK?c<|moR-MNm`W{3dwIZ+o~SUEf)iO5-rXxu(c|ub>}Ho(o|})h z%In6L(IN$y85c9{I)9#c7y{nDA-pob9tyGZDoHRBnu*Uo?t0(d^kcYOLP)^Jd;cJO z6U~g0J?-4G{%IU!%Ln9z={|3Oa5bGmi zxSw&uGY*E0;`zKFHE8Q@`Q3D7YXx03{ogssAxQy^RJKKR4gJXL6dawt_VtM&61M0- zE3OWK%sdH+K8^U4l<)f-om94&&|XB<(DbZOYa40b*Ib4i`H>rCU~v}()-Ey}lNZF+ z4B+Tv7+KWerJs%aICTvBz(sb*xy`;FGJog7o9Y6_5CFllqP#a&>bD8a!g={r``dqU zovolSwNq@MT>r3YhF?&l&Yp`+WhAi9E;qkWX{`G5D^H=`-y4OqD@zsV ze6gV?+`s1O*skf8{+g|+u_cI}YGGcpBgWIH5*Ou9Rjh-5gGT7(O%LWgl>#LrDU(rK`QF@FZ`fho zZ|mv;tjp!eu8Qr8$tXv`*7| zeL2>Hd^yHw+he^m`MCx^!2t#@pEwm3bs0Eg?C*D-AFfncO#RWlF@_od>Wc>ilI1uq0M_l&d%p5 z)}f?jlhOMS0tlPbcBji4JT4d2)kCdDA?$R(9T28iM7qtGO+IYXQm;Sy?=6 z6dcIa-M%>>JI{51w+f+y1bVd)--MZ2}+_8f_~s}?x|xZ<5WGC zmbRV#V@pewXu&L89)-oSRL|5|dM_P@ki9r=G!!*0Xx2Hqe^+KPtSK$Btae286h(?w zX>|Aax+?e1>qa#)6D$jp_yka2l%oK`=7#;!5|Cu3>SKfvha<`C65?(ZELx`Ev}%?n z7n)^N6r$8q_X#Owiy3-86Umk=aoGpuAbhwGiOS0;lH{m5yM*{U+VsS{B|A{btF&Bl zl}>zBZ?8rLNG)+-OsRAA>GCFXbFp@{PiPIqd530?bvtDkD)6gsGbC=yHiun z3t21{XvE@oagQhJnid@^@r#oz~tClarUPkHqUI^`>%b%u_cDh^q;Tx-pluhxD+-APKD?gfgOAFuic&n2< zh&penu+|nPZNPF`Y|Q6U$%E(=NDDE(E=!^G=ls6$)Wu|H+Z<}O_*{br;|xGB+nA~s zTuX{hip<^=jbT|kUNEDfN*+uKQpZhU6T-s6#3hNf1kMTzlOXV#VyaWTpX-itxYM%< zRxbJ!>O^I&O{(FUP55vzJ_C92#N6T!p1D>CnL)4R zjw2cv;FH@LhA~qXAt)%nO2#7%f%Mh0)W#?NU113yb!V>!voN8ilj-f8T;b!l7nA+{ z{rUO%F;z-17;JTIZGQ?8bBfjSN_l@P9YJlwUiCGom7$%jR@+ob8!rhyJDtWg#}NuM zT=&%+`KUWXyWe)F%OP@z?zE`LyPm=-6K_cX?Tmou#HG`5lx-@QsCNMw{F)k#Av+o( zd1KpA%c!v9S27PlHZ6PGlspcZ&~kv51KD8#pyHy>64_%6J#6t=Icqp?0ZLxe4xEY- zuEPj<8E)SHiR1zQ6W_}>IulsHfV9B8H|4ISs9MG8zT+8aJZXPcFN#955qK>l56b7g zz(OfuXS2$xgB4PUGhJUQAReA-e4m)fQw#!tIPqW4dI`PSEU2w#=3+aVBDg_gtiQ7* z9&Y#VRBc5@_6?_<_-Zk}g$HJIFKzn;t=mt$n8zBqB?pt= zPVO*?u((zq!Hy|~=Mz;hVg!&dUUgpzvfy0{bkzPeBPHruQ6Hhp+*G{ZdJS!k3reJP zf5Um^M8on+eIla+FeWI9%L@z9WQ}W?!ubtxVa) z{2^r}jqmha_fN}z8U#!X?z8jW=OfHU02Vp59sqALc2t-|%|wWg)tUWgYKVS!J`FdAs)@!QD9v8CgN(#67rzT}ErzRkSo(B~q4-Qu|+24) zXZEiDndoRn?6YvNkC<>(Ln9+d&3kZM4?6QLMY5dN%+nSXhZs9%#cq0w6xp&evA}Ur z6Nx@EITQ9oLjx&`!5dxrWQ3~nJJENPyZy>Gx5x6Ghs-Pp$AR7HUp8IGDjJ%pWt{1; z%yfxy1BB>1sLrw~#lGmCfSt3g^V`f&AmW4CSKWbOa*ev92J7tZZrUhUciEpST}?TO zheD^e8bOm~9vdNI_^UNaXe0C@*G3KF;{ztk6Qw0o;}a!f&oj&TstV{7B9_FQ_oK=g zSV+$f-Ut-5M%R0!RqK4`w3l0y3;>zi z5H_NM?yQQ2`*5asNm-FrW(EyGdiIa`7eSL+934LaNfan5$cP*|VhQ{NJNdbH>&of3 zmtm)7S#>-zR>lZYu6;-`y6$-?dE*PUGpKhp8UD-Mz&o>UTft1mkXLLm^}A`!@NbC2 z2$0=f0v0p19H6LGqimX^C&@HO<<5`Iehi@b+^V60nO0?*voV1EY=NuUU4LURH&(BC27U zJv~C9GoClq-3L`~jhFvB^6rn?Ddx^;QG1&yahP@Eq%nJW8Fe4zvB=R0=fJyEqjZ z4yNH4!F-r*`z3T}>Xg=hRAgDMc_fW$;PGTliKj&4$8A)1IIUrY?wLf%VV8XJT*K^~ zYPNION9~h5v58+R2Ueai)i`@lR5YZwc%#5Px_q(XWl=V^SXFq9oRsZ;c5y$H?`E9^5WU9$v-dku4F9~o|TX;jc?yY4UOo%ADy^@T)L2!O2Yz`%L5Cp9J6 zaQaq8h50te5Y`Q9TbN$;q)&qTG1^``g4l3sYEtra!X0*R1A|~N(H{&w4g~Eer!^eb z_|n-9l`vs93HFvMYTlDVP-P(towe8d4ogkPCuOcD0~+zfjhm=2TymbZg{H+OXR>X( z%_yrVItFe5TH*}cBWjQ47XRRQ&VnfWLV=_*KI6i@7~tL@W9OUHH)Vrpf@qp+E{I>q zX3pUIDtajgB?6I`C5Xni+@x4*f>nSY@PI05m2eOCXtP%xz z1d^*wH$-|jAD5BY2kj0w#&_L9;v)Smu zeyW&sO(l~~O-y7?~^bZ$HJnwq#+fF&A84 zWpZ!N%>PovKpPGoDGs@NlqdSJaw*f<^}g_M zim~!YhNx~`HQD)6!fvH_SF0}T1h6`O9`w>Eq#Fl%DU zhxdJ`f>+zebG<~^nt1kx|H@`~UhlQ6Q1T*bP^yVI>--1&@t&z#zzRvGB8YU-5X4yJ zT?dh)**0D5gvIK0_3YicC$Nt0zzBzAhL0kI{u-24q%F^U%`3bxJ|9RFS?t?Oo4{Kw zb#6synWQU$*U_OxLJ ztJ8a19O@wzO0Q%}bE6zDsnZc&+w3eS|WhznS_cQ+0@cl>3WP%S10Iv0%`naHu2t`TFH{QXr?hoD0 zG11@acR_mw6bO(nb&~I@1PdCAA`@^650*$JZKa;ElbRk%r(+@}`VTr5^@e1AUx!S` z1zZg6qz8Jhn?5UNvnQQDJ)~qmMM{fD+Kq-a`L9_qsiuaIhdyf*QefJ<%t1^xFbU;- z`cYjOU8wWMUf9WM#wcvohAY*!r<~fucXzwz5qZMl0{OJQe!r=eh04zdtnX*aT}?l& z{vvuqQ}5R2AwosFxb3ehWI7pg)n>9WS!qT3+v*rtApZs8@k{^cpU5!EAsMP z5!$Z|g&C~l(oA$lddB_29cCRjH|bXH(5bv9z`?>#Z+&ten7q|eEG7QCFN3m)8KDd} zG^74PwkGE!9bL$4tn-cAh?p%Lv&49$w($t|xMJoa%|x$FtA1D*#^=9&>YK~gX}vS! zR8IYfPi@GTH)wY2U}m6C87wH-4Bft@7#IL|DX;*`e*Jtn|7`P1a@%S)xNMuJ zaxcVUpk;w&Qvp+*MN}WZTPJGb#Z+J?mIf?!scXjWlU4R`M*foDcYP1G z2Ls(o{rutA!lnFVFRH{*Y3lK&bl>$E>XnrYA-b>zyxjXM18-tpi-DB%X~0Z|3NJAi z6$3`g0%E&xA*JCWnuIFZnv73D@?RQ#Zm=ngm09i?SMEM{I;xo7+lAQCSc|6(f)sN| z-dxS*Gy71w?SDyeWu_ZuD5A&|5|QACgu<$@=+dV}<{pY_MmoL;7&~EbhzK>_3yvlZU$ZnBQ3|$9uZZQy zW`Fhg_rizmrmk6pg#l~-E>rxX+yS@fn52^RPeFqez5W+Azl|a4nkjIRJ*ymIh2Bmd z^|Bno%0`#mT77-y;qNk5Oxl3k-PI$0VbGR|u-e55T{` z`2YSENKKU+sP@kT>jhx({QdCqD^T8_hny?GCF6fT+&vF?fIkoLM}GmW`tzVp1YC3f z_e0Rze^<$^|IJDqCj9K)GTcqo^T&me4kj8L$bbIU6|Jtp_@tqK{ZH+?B};NtAQ8^^ z&yITy-A85G(-jyV%>th^=RCUkMm#jZWyni&1M|?;U&Gv`*J5X{Vp!7qVKK3z1Eq&`9>pJDt`Hn_`Y5aE`CLiEvauhj5!LW?Ep=7GYdNx~3R)ghZw#}MU zf38tgD2yiBzBcqFY8v^jyPq~@!bMbIY>f0UC-b-ujopfqHVqgNgW#nk_xWKqMP{md zIqx?v9*z@3lAu%gnW--|+ft+>TjgIhgI?|WU%r`Ct3t3w(t8Kjg*To2#x ztI-{NT%T;bo<0`3Gutk$x~FK&X;I~x@q8b?LQEIE(|t!PopnK?I2`uXLm6sE9t(P86oj*@rgvXGOw|=C ztx#v*=@2Y2(xM2Yq)OC$WyRf}etVvh!&5XTqOXNkZ6#u1c!lV2zpTtm zLPNm!8oW*p+>7~E)9AaNdAeAFe1|eYwaaGvr%~YP?)NZs%^H_E4_2XXP-G!AVi>o_ zZ{GHWzbxQJ-HxKR+jWi3s|?GC2G0;%ow0t0c`pO8>eN`n20vf{@Zb?s+7mIfys3(n zFbZH*g!)ri=hQf|mThXc&hGYKwP<6HRvt(USBs=3T-C3vXrkE@8s)_YS2>{Pm8e&! zj*c~HY2BKZ+H$&&R>}Dhm+#6ISS$f2Vj6czjC!wE9?#={+KLtP2^^?9wolz%TdFCV z5iH&WR|&5-LY3GXO5$FM1}H_uPPJb&%s1JHyK@e<0?Q{%uJcd7ZeO6v=G$MRa<~1J zqSN}#BLBztrlgk|g~5+wz#3nrzwzvY=iEis_nsQGH|vXS#e);;=ZX&cq=t%Xf+2@) zbHNqe$96%DB^y=K5^=LneX}Q@59)4yT0#hvQ#j2YbWrQ{4K}4rO41Cbqq?9REFxfW zqCn&=x*hYR(XyP(kO>vi>o&?Mzb=m+#}jOHpK?PGMNN|5$pdfELgH?!yrAz+CD9{B zGP6p4l^(cI)Mwe(wFRBn(lFQaxo%CYWD+~I|8Q??tkh{sK*8P&7h1Kgcfuj+(nRY` zH(eHtVS$NvS?AeX>`-hje#b?kD@8#%oV;ntOz^cl9V^81)!d0-0`9l6Y6z)x2NEs$Q$g? z{@R7YI>5}}SRf(|zT{NsDirD<^I#Nl7Uz((+&IBYHho|CYn4vfT@cws>JHq=QoUFW@_S6-5>Ur4&!q+(lJj_H0y*s>D4i z5L8>(@r9Ljv0}_6wZ$szFj-|8mRN;b6!J0F(C7Hu#dJLpB|(f4dQ|9(PH7~<=Z&%S zMQXjKNLXe{P@@yEa@2j3Vdl_r?SR<1Ya;6WbyDN3gj_gV=LE9brEl<*`Ix375I9G>DnmyR2C6=dO_{d4ZGiNK=J)h5KP7 zwdEa|Fm+k77v$d*h~vW}bX)6lZ?%!9WHrK; z_N62b$7_~N&duk@Up7@+$*>+Zb;0U^xniM9P-&KDSI2r9{7n03D=ToQ*Au=fz-faC z_=QZuW5>$}hNY1F738%ecFf8{CCa;sy&_Ck8AmrBye59r?XCaSIUX=dr&$2W)OI)z zC6UVd)R``{8|H)+s>%lMW*HbuLq8-cJotG2l``-7)NHR-_b*Pe6fX+R227yUoCX(S zUa1<&@?t(`Ws=El|6H9hW#%xMiSo$($z!}7I9+SX8aQkIVCotNA9tuSKj@L5vBG$b zhtLFwti%p?yFg5jcM(G=zutRS2HvRi$kBe9z9xUY1|@%` z%+ljAC^tGQCT{nhgBaxlp$&S`6$4Gqd^0`vw(3=FcH55;ow70p(T~QY6oeR~i+^A5Lb%&@N$1;==A;M^zSZ6*EMhU9#qX$&r3uC9BD7DRdO-Ma zdn^mUtJU!XD&+JksIO(HMjVYz*9c?{{+65imuHOi(jtu8tXJLGVz4M+nwXLKz=OA= zct82N8=Rx_G0HP3S(d69qIrNLt|s#@0d5(TxcrQz)07fU2HjE73%iICyw~#LZ!G{U zFsyWCTF9gyjQ{4eq;yTVxFONTgCg83J9L4d;(&VgwjY&_%(-uJM?E9m50=B9_)v=X z8Y8*Ak^C7FKVU{{&CTb$cd3haNqo`tszG zF(?=LaEj02+@;;Ml0P1@UBH$>e?eIyM!3+m&)CX?&UAC--lN`dT!fJHJfCRChy=2p zJXl;76hpiKW+_z<+nHmLws1}BfL~?`FCIGgup-@eM%C^$uT93X93{`r0@ldL>7mwt})0m_==9e>JYuC$P zAWC!SNmmN^U7qzs4+U@@P_r@1r`g=QZ(DUNK zD0sy4V`>AzCxTZ=^i80$8Ca>4a(C^=e)F?*`4^Tay~d+iOr@)yWR5d$RGNepV4~Rb z8@}`y6N`%Q8*=J#c2@?H6tcl{8DXDcX{Swx~8jLeea3j5$H`Y}8Hn81=ZDk2n zL_n{iT)nx-2qUwh!v3@Rj3(mHnIfb7HBJESt{m}{M><6Y-wwVYZgP+M(Z@EKl=n=o zTke7te!Dw2!8kHcK1f1uBjv^GnPfv_FFhZyB9!mz*dvljZm}ZeJF-Loj98B}y1R>u zV0^9tFaN~bFXbu1V31DD6N7Xvk2F7um^1y@&AD-i9HIuzwguU`680se7$SEoIDu-bAXy+mWmUxq>rU#l_Rf*2$i z8+uF}U87EA`CN@`6bzN8LVgJf@fv5|bsjSK`gy=_-2#J+v8J8(AW5nEmY;#(N%*_k1q+em-0)L`6@1Y zjfTdsGBQPxxD<04wohJ)^$q*s<|9H|8j`;SY;XEMi#dMg3eRiuL-zCmRX2#G$vHC6 zWjqp|4D|%A`icyz;!>(*e#qnasyG&uuE(7HwNGh|e@q_$`Ga^MU9j>gUo4mu%(ea1RSoVj zR~zYHwd)jtBxW#{CihijeQD2~wo0@h`uxhz7yjagT?mm5qWQ%54@Zq9T@gx=tAQc4 zv{DlB%p^Zw$hbQU*H{x5{AjXRjJ|$(^x3(CTDfd`opg-P{aB@;2~n@yH1^b$*#Qb< zFG6mQ#E{u&S@6<2)kntLFIxCzOJPLGhMyX|M3PqzQ8%FOEpsSr2id(>!u2<#K8(L6 zi}6&0Vg!`o87n5c%xVqJY|I#?5Nz&ft|#*A7aSRtHdLEx3fQ6%~4lvW(z$*`0N0scA-heVU`w`@akh^8|MgQFEa%)Rf_m?FBGaYMy!cp^q$AKv6L@( zTA~_#71trFCjC^Q5de`_fibdw-9GP3;OIqPTN}%sCcX$`HK+>FfMW9xR@T5bGoNFgV}tC9aYj4rDhvAXH+-o-q`qBdzdLCkohX z+w?ll1WJsc(jSqNKeiE?3z4`^e4%zy>Ya3bm@aV2Aaeb%vv>7TkDDE>tyFSwet4K$ z{Y(JJ&up0NK=6g(DmNuEG4XBhx*yCg?YLF}FdC6`Adfouvhc%d4LIP#l>vX|as1Xc zi!xKm&y&}!m}b7R7^TJ0NidzMDX_ySu($xF7zM{Fs_`smTMY_)TS176@045Bs0WeI z<1uqJlYBjuvN8>ZJ&vZ{1yG_%^tYY_y>Y>0`F@2?;3@@QXYANVhsnFfEISV zl=VwAsYLU1ksZ8&taQTQW19-+4ykE!74#w9D^+2K&uRgnbY2Y=A)0L6C!XJ2Zpp0{rIQHV415ogWF}&Z`(gJtPSR0R1d@5 z+*ZVazq&tI^N5g8M9U35ie<`SB@-Sz5~E7$sB{{h(pRM|Jk7c=@L^S?p2LCmqK5v6*3T`tT{J8f0xfcG=spP<(>cwv# zGoByrvFuA7aLeBB!}#4$XUK+X>3?nBY#R1Kh0NvS*7+L9E(3sOQNrc9aBSyW#oW-; zwPyxAT z2O@Rk0%gUENf)d!G>JRuzL^sfg+3k4iW@YCf8tY0F8xJYwS}(R>ff#rrm5$D8%Gh4 z-P7NdkHWf}YT^U!F9uAI$nsM1w)+f<@20tJXts49qREoIuXfP%lB%wt;gCR)Zuwa}6#+xZXnI+Y;TIU97qOy2lwldr1=o2SyBU~XE&zg}PqyrAp2 z^%t=b!}A2Y%!&%%-tG>Sv1=15^k~ccwMbA_r|fO%KB{wO4AJLl>TnVEue(1n8eFSI zb>Jc{m5Q^3nL;knsO0BH5e2xrL-|ry?i3sfmj2upH@zyS9(FJ3TLR>yVVJ0>Y$p$^ zU6U1fk;Arrv@~3+GT&&$u-8bHT(Ry1ckCT6p=fd6Y?>vL`=?@};|(XwTM8h+Mr`C z2jJ&vibI)V(|3#p3_0d&2XE(EC@~K-_;PSu9Q*5&WNb)(x(;}P?}VND3a>x06QjUT z;%)KnUIgcTTY>;*qlC!dHbS)aN*9}O;{0yp>eCuKeJO&+A0$%`@!$u2{*cSKrhS(a z9jULsket3Sx^ye((xRfL%?&myWdhP3J-UbKGHksFWeVdZ_M+@0!YE~R@OW_~vZvK0?y4Q(D&FNvW1xEhQXhqk4Pj+d-=jMUWoxWW z#y)9zymsAOJE!hrLP7QOG4)Ww;mW)mJ$j{l%wz#OTJ+&H`?UcEh0Xi*f>Q7HbxXro z=J(66qQRZ)ulwR^E~Qj0tmo^cEJgN&^V(}YGahuhH=`}P)GW;)OUM9@vhl4F{7LGI-1HFJzj#{iSo|*P5Kk+NwcalM&DM=x$%hsZ>C*7*3oX9n0xu) zBW6RpENL9km?N)W%W-bxa3gl9bj_PrzSVu9%gSKoc7nDBv@pAfS#WG zS)sGIf|jc)VSFii?T`V%YyVRrf4V-P&dU5|3PSSb>S!^iw|TnXk7p4)8!>OQqZ0Yr z%4|(20##*i0tng(KEIxRjWbG)^dMyo!AEmDU2N;*fywS#)FtO~dohADo%QIe)2zD1 z7-M@Fji^fo6+H<3yl1cCT=|hHoXFgCVwA~Xy3w~Gpmv!i!JFx040y)jI@Vk%%L7gv zK&L~+X0M}&&M&Y@6m9c*rk260#7;n#6`QiHJ-94+YtK8n_u63skbhv%kCEu$Yv=m` za1{?2G-tlTMs7?K?=F@u_}(vpMh=n0fgDZYFAKBCK5->8rP|GZAL$zu-j=H5Cpo-U zx1YS5G2VV!37pY32RT^v`t)b0*a#{?qbNC48Jl$-mS_aHsdd^TjPTV9^aDfxHH z81CMcos=7Nj}Wg;be?i8gO1r%7NF$U0&+Rp-`Oi?Eggv56EM3zoBKDPMpxR6A85-> zwo0sHgk@0u=|QRxFs!?((W2jar6Zn%_c!JxcKg|d|LJ{M3t)Q^#-%-VmN%@l%i(da zt%N*jLjLYOdo?1I0R}f6uUq4e>~wtvCg&EeO>RT*WA8Ef-|M3NS+kjMVWBHz1W!rQ z4o>8)&wY+08E8XtaiTj?n5%^w5|w)NO4p@~bbuy3wWo`mNk}d-K-r3qON) zy&r&85$tJlSGfxsQ)~}ihH4ym?lNC9vpgD=w&@(+=_s@Q61WI#57KTBV{eK_^JZUr zA2B={T0VP1#3e}`a4JpNqo@6)OeuPjo2CY-uk_$yOX^BE9G6Lxm+5fE{59elSH?em zMxL>J3Hd!-PTP(^v=mwMkaG>cJs$F;FS0Q0y}XOyI=zNwdwK3Lip^Y+d7>^owE)I^ z-7MKX>xR{aUR!zY(-OBRsyKFY2!mJ|ZzkwJ%5(I58m4gjKtfS^T0feBHW>LxUOEC`0Sf{=piSlC@!4KWYAS^ns!mi-r>=j937K% z%!^W|{>nvl=EuxF9PsWZ#+?i$QcdmTS05RXrHT{wT>Q<{HAra$ViFPD1WUX*`32gm4EFY;W7E+guHpb0RFJE1mc^Z%u z+B&PanUQ6GTPWrnK0@q#3BB;EtBhH`22X&h9}O5aE8o0%^EU20-pi*UOFB4)=+>hT zA8Iai{aK?F^Z<1zvL^pgOUMDb*Qr&Ck))giL@R0HzEr(mdZ{^-dKTCK#*pAl5~u_T zcwL2Ie2@&Cer0$q^7tmBs41dM0#b9-X?UH5FUV`NnAgbX3VF=A$m2OiQFgbLE_5gP z3Yk^Q1>`@f%a)CXhrgeucM%LwS8DKEHH`{tmK+%Zq*w5)oJ96#USd~0K-rhGAL*C7 zkjTHe29&EP8`S*?6%HT#ASHa)>>1?3T`974nne03_>|g*NQTbm|J0d-D;z zK9U`YK9R(4ww$il8(;G0{Udp)K9yI7S*F~tV!IpkW2@n1kB8YcgoK6=RKy-Hjp+zQ?4+H)a zJONVvx1R=h*7yIvBoMXB`heT72i*Ue>u=#^I1Nc8{}ht4va*g2#+n-Yd-{cUa8vfs z?{~HImd*bu#?&3G=DDvGRCSp0elT*&NX{%{Ad%)xB(ZPUyQgIc+w-#nPGLE1H9z94 zFDuWlzkhp`oXKH#S#{R?(AGCOJn-R_>YqVu2|%C&DC4spt~_oA{PVKU*OQ4pZ`^Ys z>EHbxeAx{Iz<>1ozf=72-w6QzRiX2LO)K+T#*%6cNJI>lnf^@HU;?$}zmw4Xn~vy@ zLBWH8!HMpNP0%o(suRWT5I6ZXZ9~X(~C$ zJBdW@u=UBO0_gE{LBaO*Te!v8oO2zdZaM&~)nRW$i=3$W%OWu0-Ay8YCYz`qpT~~X zJc&4Q#@wE}AFsE3dF8VcN%aR4JxC{Gz1xZ5tL?<`fLtyTX;M0g?o+7AEQ#+N^1m!1 z)WW^6UIm=0TQzIk^5JTx!9^gd{I(nT`K}XO`%#fe{H`Q-Q-A2d%eAO?C$yq2A&WkT z^JMy{flS$&)!e-59VFWg8_tMR)anbM)-avkf9wM;*Y7FM7R$VxzaPKl(*&I9zw802 zp)MH@peo2Ln+K;K+yTzm*!Z$Z^|w%L@a^$;20hj1-+$bG%C^S(H=Lzwlsf2t|M2O0 z((`|n*sL0ui)ViZRH9L$Gp3eJc*lx4XP?ta7Y=1XWmeCN~d93=lsa|m2{dV`;!$V-c5ZOcD%M7p(WJj_-JIh$wiVF zYLP?8z6D&IWIVaRKdnN{d-Vu8H_u7 zNY+AjOn5_q@Nd&C#ztuMX&r0A0i!md;%ox|D&_>jA{aj7BChTT|`uL5rX7M5h)5t z3@9aHgV3c22!aa&(n~_k6ZG=IE@PBk2* z#CQn)^QFOl$fxi?V=HhWU|G#e@a<}Y_i$>!BNhVgS?ez*9kaA>TaJs$u|K0)l&V%W zr6tIv63VivDa~($geNtlfgBx+6~>@>-4CBP+?*WD4>(alpeeRND&iKGgaZ(JnIoLD zaNf7oYiU8{qy{{-&_Q=4rhUfcHiyM8*s!j`2W?i!gp;jRyht5dHm2UllB5Zgzk3gA z=H>cwUO4A#H|31xX8liFJgTnWS0*-x@&%mLvhreYPe|xU0Q9DzZF-5@y5!z+hfp}G zlgv+Bi9Osn7GuU`T?BK>(;_WT@#vRS)(P*$jB<0>-QwAtFObjD+%Ub^Vc^l^e5neO z&E!ri|Fe-?gkl#%I=MOb*-VQmPs<)QAHmMFzY`jfibX6vd7SHr>|FO%U#i0(G}&|h zYE!&()#_&M)BUOlc|HKWDXCg**sY$V~ z47GnwP-Ia88F67>ntqsc?76JCAL|j)QoM03XT94~LFv^hbZEN)bxtu$gc7{C!M;q(1{B(b|NjLU|WT2aIeVUCf_+1kHz6!_KPKjhrXd8GLWrdK z)W^>4j&L49M3CC;jSsE9BKCmzd7OG06T_X_d)+YD2fruTc{7XmKufFUX{w<2>Lu{? z&qKc1VCD8U{fHrd!T7P??vOX482!d2PT|K*jCOSFL(AFL8yA5R*N;W3WjG&uiO& znA<5Ahmg_y%_XzuHPL9;lv0vwtnyzTm=n(XsHr=T8jB*0NFesc%i&U5E5jgKZWS^p zZWU+{lQE)XU_>i@xnz$m_SCB-gk+Bq%^vi=dn`E`Br=~_{0|6xz1v_E$(7V^Yy$^OvBO+~4j4HOfraBFmBUYAXaIhIJM_a-a8Pja9e$FNV@58RBc>QJl~Y)Sq#W z-u?-*F%YPr&;ohxWIBm{9wk%$a1H&u@z?EZnCQYZ+4_MhkIAykG~$8kq$x&gib8!r zNici(n=@AFd~<@gD5j>?zz}K}noluAKKL(`g8#)y)kacaV{JP&N83Vuj%mDN;A?r( zTRe^zly_ct9`62`==vdJ22s81dRuB@+r`*8mETmBB#G2-ffD2=MHP5rHU`{_DM+p* zsLy7 zvEENo)H?t6kio8F025StRD{_fHNrN`hqhvM_K0-XmcvOEd&5NJGiR3hkPzXjiPxH) zvo^)&L~Gzsq~7-4Xw@3WU)gRUAypWfjJmTEkTs~ezqFrt)thUlG(+MckFys5j+8(m ze19|Ql}shE-)l>oQE>IX%r#ufN*hn_%-Lg=?g5)3GI;BIebb^5;^tZ`z{-*mu)!<&PtH1wa)*>XDC+e z?m2Y=^@itL60sh~F!%(UC5`g|;=tY)e-M)VMRD%*j^Gi_WUyItSt@x(J7=AQrEJq( zQ)Saz!hXZJB2nde>yFgD)0Ck;sDg?^Fww6*x-stjk>5^Z-M#`*@^>PyBvG&{6vqqo0 zk5At^U*B7ke1J&+$+~Si2Bqj+>_uoM2fsV-d`Lb`D(Mn@;um?j-z8I1IxG$a+j-p$ zeQu*#;I5|QH9z2!WwnqdNO4H};{S5vMAJifwpCW`jj-!C`h>+&yv7!8dIbiQ9BRz{M?0E zVXHp7f>AQc0gZ{2neH_-lQ92wmYbCqRb21q|BJ>7axPoQg2cL1w%^DqF zPE8pvWws%g`@4-Jk8+h6vZwn$ML^u;V(wcmO)h8`drS{FB0o+oep{mguVnZ~p*%p) zK^fDi@xclh+1D6c!HUc9rp-7oiZ42>KIB;M#VPkij?z_9Ft~(t2 zvMI0+#4_KjY?VP?&_@P#@A$fy5@!JwIh`Tlf8=MKqD8Puw8@8UEoRV`B{Z6y_XP7} zt@Dc>^6q<{9z1AKuDy<;x7$$@!HUB6g=rso!ym7*4JOt3Z{aU^J85Us<6cWe(Hh|f z+s;?{{9ExA_@+8}|BCYI)645q^|Y*S(|GmG``RV2;a3W$ao%>KUWp8cY=2V z%fOKm8*FL34~gPlYeOYkBLhw;RK5X<@9D~$iqd->SnQM{TJvzpd;-qK;G_SlMc^C# z^2w17-ruo_K|T51T>k4uVAR!?!D*4K1DdbB0^*V2tb-bnW-W$cibVg zz^ytPtznn=mYTEJkt8C4Y(wkokv-`6`Bu{Sz5#jSuWQ@@1k z>3e`jMiqg6(MZ`An7KiH5HEQ|4byiec>d;Kp}y+79O3xuXT`+CyaNIZ$l;(La1k+$ nA8e1Gey}}!{=-rI|3w@CwBHuJ`19}IDLc?x7B_L%AH@9+Rct(M literal 64867 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 diff --git a/docs/sdn_controller.md b/docs/sdn_controller.md index 85d633290..2944e7b89 100644 --- a/docs/sdn_controller.md +++ b/docs/sdn_controller.md @@ -18,7 +18,8 @@ In the network creation view: - Select a `pool` - Select `Private network` - Select an interface on which to create the network's tunnels -- Select the encapsulation: a choice is offered between `GRE` and `VxLAN`, if `VxLAN` is chosen, then port 4789 must be open for UDP traffic on all the network's hosts (see [the requirements](#requirements)) +- Select the encapsulation: a choice is offered between `GRE` and `VxLAN`, if `VxLAN` is chosen, then port 4789 must be open for UDP traffic on all the network's hosts (see [the requirements](#vxlan)) +- Choose if the network should be encrypted or not (see [the requirements](#encryption) to use encryption) - Select other `pool`s to add them to the network if desired - For each added `pool`: select an interface on which to create the tunnels - Create the network @@ -27,6 +28,7 @@ In the network creation view: ***NB:*** - All hosts in a private network must be able to reach the other hosts' management interface. > The term ‘management interface’ is used to indicate the IP-enabled NIC that carries the management traffic. +- Only 1 encrypted GRE network and 1 encrypted VxLAN network per pool can exist at a time due to Open vSwitch limitation. ### Configuration @@ -40,9 +42,19 @@ If none is provided, the plugin will create its own self-signed certificates. ## Requirements -> All requirements are met by running up to date XCP-ng hosts. -> -> On older XCP-ng hosts, or hosts running Citrix Hypervisor, changes might have to be done manually. +### VxLAN -To be able to use `VxLAN`, the following line needs to be added, if not already present, in `/etc/sysconfig/iptables` of all the hosts where `VxLAN` is wanted: -- `-A xapi-INPUT -p udp -m conntrack --ctstate NEW -m udp --dport 4789 -j ACCEPT` +- On XCP-ng prior to 7.6: + - To be able to use `VxLAN`, the following line needs to be added, if not already present, in `/etc/sysconfig/iptables` of all the hosts where `VxLAN` is wanted: `-A xapi-INPUT -p udp -m conntrack --ctstate NEW -m udp --dport 4789 -j ACCEPT` + +### Encryption + +> Encryption is not available prior to 8.0. + +- On XCP-ng 8.0: + - To be able to encrypt the networks, `openvswitch-ipsec` package must be installed on all the hosts: + - `yum install openvswitch-ipsec --enablerepo=xcp-ng-testing` + - `systemctl enable ipsec` + - `systemctl enable openvswitch-ipsec` + - `systemctl start ipsec` + - `systemctl start openvswitch-ipsec` \ No newline at end of file diff --git a/packages/xo-server-sdn-controller/src/index.js b/packages/xo-server-sdn-controller/src/index.js index c3529d73b..287967a80 100644 --- a/packages/xo-server-sdn-controller/src/index.js +++ b/packages/xo-server-sdn-controller/src/index.js @@ -4,7 +4,7 @@ import NodeOpenssl from 'node-openssl-cert' import uuidv4 from 'uuid/v4' import { access, constants, readFile, writeFile } from 'fs' import { EventEmitter } from 'events' -import { filter, find, forOwn, map, omitBy } from 'lodash' +import { filter, find, forOwn, map, omitBy, sample } from 'lodash' import { fromCallback, fromEvent } from 'promise-toolbox' import { join } from 'path' @@ -103,6 +103,14 @@ function updateNetworkOtherConfig(network) { ) } +// ----------------------------------------------------------------------------- + +function createPassword() { + const chars = + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789?!' + return Array.from({ length: 16 }, _ => sample(chars)).join('') +} + // ============================================================================= class SDNController extends EventEmitter { @@ -110,6 +118,7 @@ class SDNController extends EventEmitter { Attributes on created networks: - `other_config`: - `xo:sdn-controller:encapsulation` : encapsulation protocol used for tunneling (either `gre` or `vxlan`) + - `xo:sdn-controller:encrypted` : `true` if the network is encrypted - `xo:sdn-controller:pif-device` : PIF device on which the tunnels are created, must be physical and have an IP configuration - `xo:sdn-controller:private-pool-wide`: `true` if the network is created (and so must be managed) by a SDN Controller - `xo:sdn-controller:vni` : VxLAN Network Identifier, @@ -207,6 +216,7 @@ class SDNController extends EventEmitter { networkDescription: { type: 'string' }, encapsulation: { type: 'string' }, pifId: { type: 'string' }, + encrypted: { type: 'boolean', optional: true }, } createPrivateNetwork.resolve = { xoPool: ['poolId', 'pool', ''], @@ -235,6 +245,7 @@ class SDNController extends EventEmitter { type: 'string', }, }, + encrypted: { type: 'boolean', optional: true }, } this._unsetApiMethods = this._xo.addApiMethods({ @@ -394,6 +405,7 @@ class SDNController extends EventEmitter { encapsulation, xoPif, vni, + encrypted = false, }) { const pool = this._xo.getXapiObject(xoPool) await this._setPoolControllerIfNeeded(pool) @@ -410,6 +422,7 @@ class SDNController extends EventEmitter { // See: https://citrix.github.io/xenserver-sdk/#network automatic: 'false', 'xo:sdn-controller:encapsulation': encapsulation, + 'xo:sdn-controller:encrypted': encrypted ? 'true' : undefined, 'xo:sdn-controller:pif-device': pif.device, 'xo:sdn-controller:private-pool-wide': 'true', 'xo:sdn-controller:vni': String(vni), @@ -453,6 +466,7 @@ class SDNController extends EventEmitter { networkDescription, encapsulation, xoPifIds, + encrypted = false, }) { const uuid = uuidv4() const crossPoolNetwork = { @@ -481,6 +495,7 @@ class SDNController extends EventEmitter { encapsulation, xoPif, vni, + encrypted, }) const network = pool.$xapi.getObjectByRef(poolNetwork.network) @@ -1134,6 +1149,11 @@ class SDNController extends EventEmitter { const encapsulation = otherConfig['xo:sdn-controller:encapsulation'] ?? 'gre' const vni = otherConfig['xo:sdn-controller:vni'] ?? '0' + const password = + otherConfig['xo:sdn-controller:encrypted'] === 'true' + ? createPassword() + : undefined + try { await Promise.all([ client.addInterfaceAndPort( @@ -1142,6 +1162,7 @@ class SDNController extends EventEmitter { centerClient.host.address, encapsulation, vni, + password, centerNetwork.uuid ), centerClient.addInterfaceAndPort( @@ -1150,6 +1171,7 @@ class SDNController extends EventEmitter { client.host.address, encapsulation, vni, + password, network.uuid ), ]) @@ -1227,6 +1249,12 @@ class SDNController extends EventEmitter { const encapsulation = otherConfig['xo:sdn-controller:encapsulation'] ?? 'gre' const vni = otherConfig['xo:sdn-controller:vni'] ?? '0' + + const password = + otherConfig['xo:sdn-controller:encrypted'] === 'true' + ? createPassword() + : undefined + let bridgeName try { ;[bridgeName] = await Promise.all([ @@ -1235,14 +1263,16 @@ class SDNController extends EventEmitter { network.name_label, starCenterClient.host.address, encapsulation, - vni + vni, + password ), starCenterClient.addInterfaceAndPort( network.uuid, network.name_label, hostClient.host.address, encapsulation, - vni + vni, + password ), ]) } catch (error) { diff --git a/packages/xo-server-sdn-controller/src/ovsdb-client.js b/packages/xo-server-sdn-controller/src/ovsdb-client.js index c8012b51e..520354b6f 100644 --- a/packages/xo-server-sdn-controller/src/ovsdb-client.js +++ b/packages/xo-server-sdn-controller/src/ovsdb-client.js @@ -18,6 +18,7 @@ export class OvsdbClient { See: - OVSDB Protocol: https://tools.ietf.org/html/rfc7047 - OVS Tunneling : http://docs.openvswitch.org/en/latest/howto/tunneling/ + - OVS IPSEC : http://docs.openvswitch.org/en/latest/howto/ipsec/ Attributes on created OVS ports (corresponds to a XAPI `PIF` or `VIF`): - `other_config`: @@ -65,6 +66,7 @@ export class OvsdbClient { remoteAddress, encapsulation, key, + password, remoteNetwork ) { if ( @@ -111,6 +113,10 @@ export class OvsdbClient { // Add interface and port to the bridge const options = ['map', [['remote_ip', remoteAddress], ['key', key]]] + if (password !== undefined) { + options[1].push(['psk', password]) + } + const otherConfig = remoteNetwork !== undefined ? ['map', [['xo:sdn-controller:cross-pool', remoteNetwork]]] diff --git a/packages/xo-web/src/common/intl/messages.js b/packages/xo-web/src/common/intl/messages.js index 0b13e0629..752c37162 100644 --- a/packages/xo-web/src/common/intl/messages.js +++ b/packages/xo-web/src/common/intl/messages.js @@ -1755,6 +1755,9 @@ const messages = { newNetworkInfo: 'Info', newNetworkType: 'Type', newNetworkEncapsulation: 'Encapsulation', + newNetworkEncrypted: 'Encrypted', + encryptionWarning: + 'A pool can have 1 encrypted GRE network and 1 encrypted VxLAN network max', newNetworkSdnControllerTip: 'Private networks work on up-to-date XCP-ng hosts, for other scenarios please see the requirements', deleteNetwork: 'Delete network', diff --git a/packages/xo-web/src/xo-app/new/network/index.js b/packages/xo-web/src/xo-app/new/network/index.js index ef432198b..fcd775244 100644 --- a/packages/xo-web/src/xo-app/new/network/index.js +++ b/packages/xo-web/src/xo-app/new/network/index.js @@ -36,6 +36,7 @@ const EMPTY = { bondMode: undefined, description: '', encapsulation: 'gre', + encrypted: false, isPrivate: false, mtu: '', name: '', @@ -127,6 +128,9 @@ const NewNetwork = decorate([ bonded: isPrivate ? bonded : false, } }, + toggleEncrypted() { + return { encrypted: !this.state.encrypted } + }, }, computed: { disableAddPool: ({ networks }, { nPools }) => @@ -181,6 +185,7 @@ const NewNetwork = decorate([ isPrivate, description, encapsulation, + encrypted, mtu, name, networks, @@ -212,6 +217,7 @@ const NewNetwork = decorate([ networkDescription: description, encapsulation: encapsulation, xoPifIds: pifIds, + encrypted, }) })() : createPrivateNetwork({ @@ -220,6 +226,7 @@ const NewNetwork = decorate([ networkDescription: description, encapsulation: encapsulation, pifId: pif.id, + encrypted, }) : createNetwork({ description, @@ -268,6 +275,7 @@ const NewNetwork = decorate([ isPrivate, description, encapsulation, + encrypted, modeOptions, mtu, name, @@ -347,6 +355,16 @@ const NewNetwork = decorate([ ]} value={encapsulation} /> + {' '} + +
+ + {_('encryptionWarning')} + +
{state.networks.map(({ pool, pif }, key) => (