From 8023ce52f4059bb4f5aa6a0fc3ae57e7058e74df Mon Sep 17 00:00:00 2001 From: hejianpeng Date: Mon, 13 Dec 2021 16:57:55 +0800 Subject: [PATCH] add istio doc Signed-off-by: hejianpeng --- docs/images/istio-on-karmada.png | Bin 0 -> 49108 bytes docs/istio-on-karmada.md | 467 +++++++++++++++++++++++++++++++ 2 files changed, 467 insertions(+) create mode 100644 docs/images/istio-on-karmada.png create mode 100644 docs/istio-on-karmada.md diff --git a/docs/images/istio-on-karmada.png b/docs/images/istio-on-karmada.png new file mode 100644 index 0000000000000000000000000000000000000000..f4912ec45a67df8f73f675efc5372e6e5094b4b7 GIT binary patch literal 49108 zcmeFYWmJ`K)IN9s32CHTN~A$jS`g_Fq@+QlOS(ZxDd`4L5CQ2r^pTd7?(XhBz}&~* zyldY1GHd<64+~Krp1XG4*R}UP;c6a)2-{xVG2>E_lJiw~7xoAoR5=Nr$q zADNG}WFK2q|IKAd5ZLf3U7%fXwxo#Tvx+xl{p1nV0SWFpuv1FUA?1+ z?i{UK`F>0_U0^S(KqG&D_kgMZhuKI`QSs!pEOoWjdS9y1LY=e4#Zu2x#7>BVN0D-o z;8ki*+4l~D)6&wg0&Chb@>%%>1pI#Ku#4kT#S2FOt>uRIE`KZ>^X2JG7Ubj0n7sKD z5)wja7RiM!Ot@A^f!G{YaBFV`yU0Vw_K%1G@2oY@zg!cV*>VwK-V;lCFdRy*UE#M< znnfCM5Mgpf@Q63~f^9jM>%hg=R1eJ}du#0H>T$o8mpfTunAmyVyYB7n^|Ia&V+LP$ zc6Q!KW0dYS8A(gGg$GM5t+V$I%+=VD{EM7r59( zI$14XGi2g@tuRAFCOXf`@*=E4tT8D*s9NS19zgivkd0oFfm4GJii<-z+&7baa z6o9^mpO!(t7HaNSm7)!>#~2Fn_Exyw+IopPDwXT_G!_)FjE{}&{Ze9>1j0q(>2wdl z9~a=~?*IyjIh%5C-zR$gl!%7SqNK+M;mdq)^_^d67MGOlH=CA2>))^%V5yOl|Ls~o z{u#)7voo7K@f2gtm8f}WauVtpuo9VMJ;;o(y3qDmtU_x$pf@1x-Uvqf-BM>mZEbfW zjHO9%2rSk?et!O9dn+p|ds|!mX)u~7D>M3VBqyUbCugbs$B!RfuT0C^hr0jGHr5UV zYUo+~@j!c=eY2>zxLB;W!dV)Fln?A2yh~=**a99li6R@Dn+r?jsCoSQP#fHqH+}Md z?2Cv)|9^kyzQ$Ka|MIH6P-l@}RV9yT$3$I>XPmIIKvIlon{FKC?Bx>zv$>~?(9jOv zgXfD{JMI~n8QWK4EgKi`tc4SAzrlkmypt=G%Eyht-4d@CUt`RDaYdO6YUPyL3~8Dh z4YF_cKjqX4wk3L|xT0mZ4H>4h@;#<{>O))~{mw!8>QB!-O5(KctbaB)CVw><(mr`> zQvRdXF46zJfSCWc6Lii$>7lU}GZ8#V_xe~&i^K+hr>}?t?O@XQG#@YVb>ZYwxuH5A zR<)$Ud{r5h-;t2MG0^HjE}e9xq8oU(RCR+3_04(DrYl+j&(9CAr(eV5Yk2Iop=nhg zo|BG$@n|LMwVdDJm)eN$$M;|U*WtiPX?Nj)-|65yL8UKtk$S%CNsGn$wA(zU-NTec zk|jt*=?jEHx+QW8w*qktM5g|F5@1>A3t}E9Qp9JFQ-U+AnZuNjpY#} z!)xdRyPfEy*cRULbnH|KEdffhdim=!>bk26L+4abt3I+bU0<*esSs|83WkH((y6~9 zwPqm+38~9v@xl=@az24jrj8J`sdF|*eV9+Y%*cKB(tDujLRKC$d*AJ=vKuRsJFN?( zT8BNjVwg9J6Y0hPJiG0Snga0UR}0fMEJ`K*gpTh$U0Sg&yu}VF7wzfYUlZ;xE055W z|9lLbo`lwZVV9?^A_GZW|e3S_HwKBcBaVYb zAO=PpQ@dX|B|C4VbdZkpk7taLcaiLwi0(|}YAur=RYJc?Uz`c0HW}O}uBz@`>nPW6!u#o_McTT>(YREkCxt&ir0O##hJtfa|)Myf|>T>AUyS3VW zPm$Q}Z>jfj!qJGxmSZ>TMWm|gM@qN*ekhVFH=5zh-08(l1W#Gcj{ai&YHb{xpI^1* zi*s7G3Z)Wa_BX}g##1A%E8gj_-Mq$je1DZ{B-t2QpzN*DiTFLErl2e*#(0gg$?#|d zoj$e_vhYLw)~v0GO7;ZxF2vQqhs}ewZ}KcZ*g{=)sQtAZwPbj;TV_Y@b+#0gDCNPD z;yZq4U7;0WEG#hJFxhDRNwJHo-H+;>U!$-2oP<7@e5?2Da?l_wK_yAdzT&Fb6=Q#X zJ)cmHSe*LXS?0py!_YN}YW4W080Tm|KC35D-qHFgmgAlBRc?k#%9BclI+LhJ$TiCT ziNOf4W<_;*c3K&JbPMA&Cdg~`ADQ;#v02F-9pdwQ{=tM^cj2lfp!$KzQ;EuuwB_Io z-kqcW){6Q#Q$s7Qbz?=}3kiec>vS%Yx5!Z{t;BW&hnq@osM8BVMlj%L9&A_^aPMs$ zgm7L>g$zhA9{UIA!c-Qi+0&dfmfuiVuyaPb8^y#=&3NJjwQx#QW|7^0?BErNUq=ja zx%4S^ej;<1YB8Z7k!^k*dEqVlFp4MwYh~(gU>5rc=_VL?L2Cz-nr;rrdSM?6pVGR@aUW# zE$6H8tPMNbOv)Vet|^1;OvYy#o8(;c2@00lSzCXOii%Ra@h+~btJ~&0tbE^J=wNHx z*wWIs(xJ9shQK)*8Y3ti931_jZ0SIGVIC)^_m4XX1JVP%kZmUaUOnHBmd%a+QQo`U z>QVJ>n()EA{HhpxMstR_tb1N`ZeTFJy``n4(2?;4m>8~OX0~#RScUeF{#fqxyczg^ z*XNGq6&O!JC2$z(1Ry3|AzzlD7Nqk>S8Vn5&5ApO90lL4Y%8GLh8!8?(H*?v2iKUI z2Py&ht=raHLN<>78^mp@WXb}eeGSIf<-4sMJ$(BW#{+eAcCc8rk=>OqO02p7MUGH6 z^2i%@0nm-LjSUw>e15?Valj7KqniW?mKYw+nR?fq`t|koYM#zKh^wosNP2qugyy-G zgM$&;RsJq46};NFH&g2_h(McaPaA(VHTh2c(yiRKv9SR#$WU*7?+5{@s;aB2FTCt< z4v_++avZ%1-gpUUgA)(qw@#C-6axJAzaSw>(}{Mp=2Ig3?uy;awUfQRirvVb8nY!a zfG*Eg5}j#!ED1qCF8nYMNn25~L#*_9Cs5*X(G_m7$U^%!tBZV~gtk~LbyK}s`&$nT z69bH;k9Weq5W+s#+Nxve^zfCHl?9XM0=XeT@XX9ia-zuj!rsiGP8GdqA(x=H<6 z08ri{&LWM$9E$&AY;=?gPwj5>Hor+29)kdq(b3WPW{u4{?0zkS!pO8gi;I1gWo5f| z#k|j5-elPVW%C3%O4nihb$FdyO1831w$g(bA~mT)Ue1#>{~Zw(t8B01clZ1l{$ln8 z*%B73X2lC9b>c=~sT2P!D7e!5+R(B^0A%NYO-H2%@RgY4KiKKR7j)Qp7p?gZahbeV zR_;Gq8*tN$bOL9cOiD^xCtK+?i*(nD))RL(U)VwN^71m&_T&U7*VEJUK5!1gPXl1T zpQlsRVXoel8V0Z;4FISqbMB*34&bS_A=f{U{U1vG)hG+(?PRChYyU&l2y+&q6euOV zEk_{&JWmD$yl53Ga#^6|X#l7J$mdXv+1&G3OffCL^w7}I_*GOiGi4KY@4P$T)F9Fc zWe9S#1-m3Oqb#cfq-Czb-2v;+5*!Pgiq_1>KpHDT9a4f&LA&Q)vjy zcE!X@oy`>_%`N?b=E*Em?#}mS8Umw&rA(|amimDC0o%UlAj1NnRZ$wlV9ibdK=#aM z<~@}ROh1%T)oG=Kk^&>V>X+^!z)1Q1L|B_goQItq2ZmY-yYFWJF37uiWv@BOxQD0C4pT{kHcYj^iXANT?Q z)RUv5L}rl}+T$2MUA{(usFSGT=-K}UyBqlfZxc+ zJ&4vPqZDxQ`>L2BSs&5zDKrK(da ze(Rp46uA>XVcIzRZ>8MAvUk(&fo$D3tUFLJL_=2HD_Z~OtKzvX=`BO!CxQOU{Ud`6 zK`FvXh_y)4B)HFajSNGwU|-DawSHJJPFbn+-~$1Bp=+0mv0wEvE|DsRgvwDFS` zc3cmbKNyF2KRjY28Gyh32dv`w7;9a#B*PDo-F+W;XZcG+;f1}*h`SM1JiYc_D=p&!EjlV=d?xm zEb=Jf%G(K}6dizzQV!2u{66EWJT40sn-Xc_ZHGEP0NCBIw3H$64=nfCY|R_E=FvN@ zvV6Ga)t%L1xS`Pu(gZmrmsHrVg(F;y(g%j}+8g-+E%MZgp`kXMxues*q6vP;r})oP zJ9z!R2*-u&SuW0HuCH8XtHt9X7xkk5_h4b}z6!W$wZaV^k|k zy;^GFV<J0z@4g6r`BbZ)3E(V6NHh~I&-L-~N>M__>gbXms)B!`ys&@90fSrK^BTHiAsJxZJXcVVn2q@=lM+Ip2JKrj~1cjuP2LpwkMX5s)uHO&kuWp-dYzmwdy zKNc{jGvJfoR*eiCABbAJk`c^}=EYS;n|}xwyt&i3q+LX&S_Y^!7bRVO-tE_{sc2j+ z$3i%kq(UJ@ai;$pLvmO2S{Dfk*9@mzTo3d^w)0!&LzKmsse6H!V5woX(b!rh|L*4V zwbFnVi1kQETrO9;@LLgoU7Bh~!)>9JmpF$4iyONQoA)A)6e_-7z?dAYRl8n)3nTB7 z4Vd1anQw6}DRz@b`D?GSV#)-(=!9Jy9{BY%N5E^lCp5tOaj)8T{>)?~o^PoBnaKq& z|BB+Taua`PWAV;+Vn)4-d}STEw({WHoq@4<^c%zin_z*#gNjnIYyL$h7HRpkr{nIN zY^tG`sP3{Gmed*KFn&qAD;XcGvIh~E;1t4eWJk_J#p4<)JWoB>S3PQG^L8^aOEm+8 zKr@9JexYILC$F(G4^*fvurXoJj47{z8z`YF{#w;qwDU4IHzB6%tU^`-<@cZ~u%bHl;uayP8$9g4K3 zizx%l;+|00G}ADTOrLqoyL%mHj5_6R$Hlz$c%1#He8m?GrbAsU4ai(2-3SfT&_DxQ zj|*AkJD>aW3ri@b(XJ>*r)9;Vm$uJua0pA?p*ZuT*MpW2c z`N60R1~THz5giNI#x^Q9#5P71p-e%~o&vpTaB}ylQp*<7PzoQg+_yo6ToZVf&m={z zWG=g4ja5#F9e)ytX;h~CGXpJErL>5&+=Hvt;kmkRKUH^yuKm&Ixqs?*c*guAFIr;_ z6DAw*=&Iww8EOnrWL#%6L%?8st&<`w)G4ifaa{a)=J>#X&x6Z>iM(iryou?$8h!oC zm)lP@_pe}r-CR(Sz%{EC#HGNn&#~L^J!pgxH@EtPaIJZCdh~T}RrC1s`0)V?%e_A6 zRrplF%A0bHDM6fNSy)8;58$wIuLdK)I)AIghoo#QUfFE${#xK+aHV1atG47;^HwyU zP!@cDQ$Vr!T?j`CtU}mJuxhu^!xtX&r8a6z+h*g(@$%(?0<}!r#%wkLq4sLbQfJlk z!r>the#~JSt0Rx+QAFdPAz+OQnW*&qxi6Nd-sM4nNcT+lv?}{WUhC(o=echLT$+B0 zN?4Lo*3u*jt0bo4z!Q8&9vdbIMCXS80wBdqSy{RKcx-a=k|zKGiUIJs2OLa@$F(!C zFO9#b83AMz-UlE!KzdqQeOh{Yk-eWaf|r0-yWWC~FW&om!vps%Ig9w*AVa13C($s~ z?wOuKotvEkV2i9V823g6E0!Kqb=>q7jTIzq%7}!=GWXbO9_$u&1VdYVw-^h|QCV(n z`L`J?RZL85L>Q!;0SXOhBotNOu=;;d!2&bf+`POz0E=g-%-}BG-ZvFP;tL)hg#1v)r2VmKdx3&<%n)l}wml@PrxZ z0+|Db1EWQ1h<_5tXOgIpXCsYq0RaEmDuS|UXDtAB*HsHx6{mU4Cmx&eU)Layo!)b> zwNh{*7Z+kK=s9y4v1+&G9au>H+R55cviF^T|5 zG#WvG%)67ffW+3HpP!o}IILNuBGUHuwwnN;<~D$9YCWfM#FmV7ni?9D$p-fWk?ZCOshmR`<7xZ>SHL>2)k`;` zk!VU0Os(Keea*2UYZuw>Ws|>s;sv>s4yl=_aSh6?IA*YvFM^-b1x=jKl}_Av*?FFH zv9)|RY^kNY&B9HPj(ep;;6YkOe97%d>iK&qIw7Y}YVg!MW%P_J_WA6z?=wduz>g?o zIjIWGO}HX{_(yk)ke0K)1FjTE3@ctOT5e8;;}VdNFftKJ36U5N=gQkLI5i>+5r_py ztl;~1hIX=+NkruWVFv$5vb(pJ*N^JjTCSoI<}K_c0Z0ZfN9Uy_s2+#{ z-n(Y@Yuh(6FnZy__Z*Z#dMj+txhv1uI-$ay&g{d6zLvQvhR-1jtnOhq&ai(AVz4< z7GnYjbE6pKzyD}fuR_#Eg#JGL1Zd>{)K6%>zG1bC<`Jim@-Q<`CtEp7RGmiXSQ0_9 zf4}1R!WHMO1S&o|*Uf*2hRW;J9m9CUG0WT!=9BIQ#&+rw5yWThR-lutMUS22fW5`d z;=l~s1>Ss6+1S6m^o~+4@@OP6TNYTtlOS&Ao&=V&MCb9*QMjG?OwX0~t!>DucU*3} zI12osXZcbu>}I610FB>>#lJGL+D;?x)zFvc98wH95FcbH;5_VT0!-inFkc(+$zz!D zgHhueBg#8`0s_svL1i@s1>r!6FUG}$XoP-%y4?Ke=%~m@r{Rn(&A^ozU@We5L6j5} z6g0&yDL1L~kh03beRNT6M6Kf>ER2ro{t_@@VA6gAe(2M+2QHXB8kAntHedS&pKt8X zH8cQUqD75f08GB#1fIpnQeBEX6LaAf-GK0uqd;Li4#Wuovy zwEkbYpF|{nIE^$QAz3Kr{~Z-~4B=vDY3q)^AG>Ev>XZ8!k=G*(4YxYJ!F6XmCKO+Q z1T#3DO#_QHdv#)boJQjh+Ud-c1R1)}-8z12xyBErt&4rEPkS@Kujhw`cp4@KE!-A{ zh*3NSp63H9O*_r14kkdPo;crg-2azRxU|es)4{yT--q?|>>wfw+f4!% zsl;COjUV+q@PM11%xx@IO2E5upyQH=s08kXm^0n@93$_GeP7wgqaj4xyKcxc1&Nek z*v~oZ@{6OL?d^S(&8;m@($((-AVU^faqzn^qY_le^gK)Q^EV9ETp9MM1`a?{x*IP* zqkCrjz=B>i7GtRf9y>zFJcN%(qwBm7x3wWHgLnwpQOR#3ltTliOwBZ(+66a^&Q%X6 zFD{6Xy!lMP)5#02AX5W_IWv$7yX)CmJHyaQGMdo^)w&|8@54(RBoQ%!fBs-v8WoX#0#@+_Mn-YYglH^L?>;wvU`0%ODzhkRjN+LNFPcn_?}TcWOWJHWSnfs6j-M@$I^o90 zd@=g#_dw~t&8GeQ@ul_;!{Ji9E+ci^`2LF3UL*hqk2}8z512Tzsv)}}6XvDRgLyTJ zNKxii?M^3{2k6CmbNJeb6}V6yhd2jWNi5oLvbzX9V%x^H9p)iQPr?>alRAH z5bCyUcyKAb*abrkN92^{rxz3!Uo2uTF1PExnh2rJFV8vY0)>NQ;m>GV>B6uS!ZxQX zGl48w&PEz&qz~uBv&GaZr{RcL7_lNn!CGyEt^kLmm>R8A4$V*IXDqI-0A_V!DkI&D z=Gj53XKkPjt2J(??@p{XY34%f^S~V1ld?8m65kR{16cenWRG(!L8NYn_F3 zA&sb8fI7<~hzJ9mz5NnD=dhCOQeL@cLu4s##yuA|38vRQVQ7hN_z*5^m+`u+=B75~ z%{6~neDH{cQb6@VCu0Owo70Jg^5|(5iinQTt>?-imn#zVlaJ-tM&Lzml(R>>reZz` zGpQ;Ikx*v$7VP2ay~D~x>|rl*Io2dG!yJD7A6X9_nM7d6y72*CVP|w|cuM^kBPd6~ zr!8S75B%g7OW0RRrp2l+LNs^WsK?v4d}xI5F44*$-NT*aCRd@2su13SBD>|?0zD1c zVP{=^vgk7r6{etuz=LwjP8*Fba@37jqZFD4DyCGbp-^k@hMALJH{ z-$Gq^_+1ABZ|sX$J0lG)o1Tcq8radWxYOA;^4&EiCQN5(l8q24AM?m1ynuox0k)9t zO!8TsN{eedldlequd6%@^?D6cdMzpdMYU@*1FRzG6yjTD*K_f{ED+~?ary*uuXIk9X0|} z4D1>K(kV7D3W0v?HUjk;iM;6V8y{YDnLKo+i|(3HLtAuSjUY1oBgDquUae@OpyxHv zUxG>d1K+bZ|12=154c*C;u>CPv-Vv*z2WWpwfZkz{QzPD73NNN z3)K03&4~L-4^8+@+H+UIQ1cyyaI=_P^gz|Ph3Cu8FnTgonS>9t>RpL$P&t8u? zJu_J5TjVsR^rXvUv&$eDzFzIkIn0J}>F}+{{NFYpYqOyNi)|N*@8Ip~UG|%RkV1@* z??mkqq)AKtPG-q$#3`3>AV~Y19j(OGqzmwVr{nBkurBWF$e?A-jpm#u?`S`JT4X>L zuyal)mcHqAwGnM{A^9uJkNf*iKV?|8$>e1@W;`T{c&{Y3crLsP>~0Jcw{uJAAre`J zZH3%4;uTKlL@~t7zx^+I~ua#CIX0kXmrgW6T!uo-Z$& z7nuZNgzoo{N>$v;L@7M>i$V1&vQ#7HPn@81>GG;)KJTRUwrvr<xGc zK=1f^>DyUR*XHRoL$?F}z0`5deWuk)WWe}9u_Q{)1{vsW@ZJ`h&h7}#skhs3N~pMh za_mep=pnx?6#6s7hj?lw&^eIDeIvr7V|k+kmTbDH3>)D&%$klE_kZrniSQTS4mQ$T zU5q7XSb`*!L#gnp((!jav&M!n#zx!%k0~!mrcO4Wy|>vI3?wDM>?(Jh_Ryg;(|3B? zu67nAx%dJjT|<@}$$^fG-3L!6Td23JqiE3ARjVzgCpfr2nEgiVU(K6>r8>FFuRwC? zBA`FkLuFh8?$mfatDQgKif>Qna6*g6u9{)a=(2&Q>pM-h9m7ESBun_XXDuQ?;(#@}}K`0<>Mk3rC-CbO(o9pn94t&A_?t;O;$y#GJPE+o~R3;(F2=%Pg~p zK3!)Zm2z2?A_hg;awRlQ4*&btWFlB22_1AH4>}7f$|S4sS1y)!YCrJG`p8u+mGEAb&j{!YQY{WhQ}f} z106Yn@}FTk6gFAjw&eXcU*7rhxPL$W21HdFD&X)vntXwtwi-SYxi^Hhw)~NSv=C9i z{|?dDxx4$E@FL{9$6B2Gqc&pLfK<0iX~X4uQ~@sn{+Jdvyt~Z|W*4EJl*iU4D%C$8 z7)=ey8AgW&@XX+0uPq~!kQV+WyH(8ls=s7opx4pS>X%OF!FRjN(OL z5q915#$=mf|Ek6>eS3^f7gCDcj=%7Tv)Q~)X$6slyd)8a-s$liGDDD>DJ04dFElJD zKFZCL2Kf4ZDrZWHz|vhez$^OFk`TT$2J?r+#Fajpi5D1HTuyZGdre|}N6RhN+F-+F z=U32BJ6 z!=Pu-A;bB3MzU}ZcN0zu_UwaQxeRl)j-q5Z0o@%=8ApPG15WRFqPhi`FAj|`shBNT zYELiF4u62lux@j9G!@qv-E(0PIv{yyU)>aD8RD1fpMJz&Aq`BCxnuOX z9Jl*tEb`I>;!t}Vl4ZR>GO0_`#t$GxY9Sn;u&`(V#m#;d))9QP_j1uaAT;oRap2ik zvWMj`i$JS(56?NKodbn`7D5qSAMv(DJ~A0)#4K>IQ)evm+yO-b-4M6&2{;xZ32A4o zdjf5X9Pxr*#c6m)gc-I45+3pSs6m!+3^;=eH>T{~mG|NjS(|QNQ4+gCrUgC$GzWew zf;OW@!3x?*CKwm>kFmO1n7{_0)?1_aSLgxk?Jc-P<9o{gb|6f))a1VV$8@O_Ns8`H zTEE)GdRyt!&r^Z{rWTnz7dapXqmw_{{!OGFqE1Oj=CVW*XnjxG`CUn?{diqzfSGTp zjT(G7d1A~Fn`EnSG(75wb|mC!v}AeQ{OP~py}dCu@ju93HeUBT2PVQwq*UjE5otD% zgU!Kj4aU!+uXtuye#umDg8gk+TSt6TYZzZgpDa5XLK3SQ4tgk%BK07E+srYHvZNXB*E2(rM zWg#QIF@?{7BJ!PkVs;S6&?;=g_=zM=sa50lV*pX-jmmZWvnPV#gZuLj=F&HC{?}W) zjVxA}QJ!E}HiZ4DzrSqHW0Y`hE|8~veyEi5re5Hmu zxn$mfxS`A=m~?q($<6*RAa211K1?Hm|p06vt*6~R)s95F!p8##}-pb~r0{#d+y zr~8IzxJ+}UjEcHZ8^slN5s*)4;Ta9J{$0ghLAJ?~u$(sPS=diGe;7i$H(94~{uQsxO5Uj3tpOhtfEyd+&K8Y`??JymYj#pZYTi8eQy4rg1l z)GIObB~HYIKolxiV!HLlVJ6F<`tlqDOEI3A3#mClSVLl;fs3;dG^q$z%71l%X zrGy9{Gn7dDtpWBt>=E~y1CoP3AeU(lNd%`wn^T|&0CC{EWb-^S>=vPpSICaSlFAtF zOwkD2q1NK>U^gP<_~2D%r*FsF5gebxdQ#8>^e176O@$+hY^#{DR#zf^;jwrHYXd-% zMv)p34uvyXWd*8`B+x0KAC?p~HnzG17D-_z0m+O5-*~{CdHGs5=qD?4&HMHdBn%;I zL<=F|m;pprSxC(F3(}kGMl3UJQ8r*- z4-1~WyLew7g29|O@GL;V$aEf9$*tom*i2e|JNWhb?5qNXz#S9Yv?D6cko=8BZ zq()toz8zKF*H7=AOnihWQk4C2y!f1wHqu1RIVFQar62$JC$coQ{MDm^9Fbxq-zb&HpVf&uGR1QxQ?o?oyeB!4-0D; ziE7t%O|4Xxr8FY_hZ`W=xP{x#|!*!ouyt+cKzHFev)G0k`%$2UUjn z?V1ngqs0X)r$cZ2Y*o`tjY&vzkF3W+n7-Wd>i$A?BeW4u6OQ9Ew5_v8%D2_&ZgS7) z$`~~PQPY}>Q`FGURw+%&EE>S~=^1AlI-kfUF4vi|2WBGZG4ncuE|)o%%z_O}pJK8Lv=LqzIqm*%WK$(zA`8)`Sw$gi~RXBkkv zMj6x7_n??Wp+cp4F+cbP7kI{`wl2nd?_r`(pEV#JORM>W=tIT=#krmx6zc|FT<#fy z%(Q;qJ?5f1ex6rRd%v>qu3SEAcx<*(nsi`}mt|1S3~t2UW})Z|MC}!snDerYpNgS< zqM|h>WJ_o33S8?=KFD_c>x<64D1KE3Eq6aREOn@hM$NZ12KTJve1@+?{_(3S3GZd` zRP-y)V*TcjvD5k51Lg#2iE%LF^S^quPDSJX;bbJzv;HNPU)%F`B+fJT%o;;m^p1;B zXfD3jHfG_gP#2_RwFnQi>@)~QpVDdlt8kG;KMGa}?H(x1$7 zRu+O)zfq@e$R4=arAih41EKd^SSCAe?p*ogz_|u4c;Ce3Rzi6VY}VZn52BV?XGYF# zoy;0wC&V`AJGl>+DRj>bvE-BDLO$p?DiX6!(#Y%c-sm^Jub^wfB)=}n zljmm)_wn_+T=mwS=QG4p5f-XJ;y71H9njnrI>u&iF|vKNcH*$in=ICSOnG3evT))5 z)r|T*Ugj|={t7KheAbP10KWFw37mBimN|p3!W7xr%{`cX44)f35!m`fu~}bHpXt4E zo=Q@_7CSGp9vr-4pL-j9wIhTIkiOkO=zorU$y3A%%-vD1sTcTOg|lvoU; z^?~1?j;nMmOA$}E_h@i_QaqSD7`eaNINR15OzjmFIP4}#G1^}oXgGy$xU45H=xqHO zT#5`nfkp;r7|mM_kYlB~Pc@rid%!uemnzVcomZ$6$vd5e4qDgrYfLw%uARU7o|~hu zXAkC`s4V4h9L|Oh;O%?+-FbQ*nP_D9IS&{wHTF&(Msd7RX;>I6@`29?7QesqF&^3b zmFmuNF(45JMB#jJYvJcHAbXD&=p61F>ijC~)vw3#CYT003ELVIX+`vhzV|@n@(6a zYJK1A>Y+n-GTFs5K#3&-7q z#`CQ&NVq83XYQl}E^r9M4{x>x2Wh4%{GCh&JZGI&r1?rM-{Xji1i$NLkU*h%Cv%c^ zd!9Y9^Wf&bv8N+>MzGxL&PQObIm8p|z+7eR7H>!Ap^wi|_DL*`_UrgtHo(SHkt7)% zrkMuV16$=y%%Jnzdyr=*!`CBb#!NK8=6 z6Ef=W2v%4y)fy(E&;U_*QjjD>bB%PM5&D(265i=um(VMecOk~YmK|1IJ2F47a?_Oj z%z;r=xcg|MaZ||SkPfYJWcusWdS(5wkGIHPq7`17pM;*r=5Hk7qZ4fjZ){GH;KcNv z)D454rkl(L-@mx68N4LV9QyZcO$lpDQ@dJu*LS_|+eEbd+CH1Vdy0KG9uLE)!8I}s_XZv>0HhNTj?z|NI9CH9rmOz{ca zkco=iWo94R<8I73G4xLS`sx`#viD;Ue3rn8Z`U1uWl@>IuYa-|H7i*Dp(73HToh`1 zyH~lMwv%NSR{sZLfzur7u&+b1)=UOTCp7Ze==|P!Q^aIZ` zYC~qU=Lgc(NW~knT3=AJZMq$Pc#yPt>*cEXTh_Ry$s)# zW4e8B?u}j!BMg57zuSb~=$(5`?2|!@eg6J6{VOT!D`8?^UP0%ZDfIdXY4LkcP*7)I zDE;ij-BpO}U%UA%OZ7M%)t;$%qHwn)NL$|B zfNY1^R-p{7d}dx+reo{F*DP>v_{@(Vm$mm>xgg|=dnjx%bjLJM=X_47TFUt@gJIQ^>5z+`%Bed?6a>}XyA@j4)ldb3IyI1JR z-qbC=EY*vEXlA zbl-g-9I&Ndp3C!(-LQnKHr72%L32r%=^lofIK2p!c`OQ1V{O+^w?MSgs6Xv!WdW&- zWZ?+DVRp{VvM@(d$)}E9+w1_Ws$&KMn2dc?GOC*!`yMei@Qab;_YOqSM_DHyg-C&f zlC1P=9)$5egTAULktrZvD^q#Z(IG?^Z5%oZa5PKth$#l^ccUX@Rccx9>ks zb7`2klj!#ArM=fO{QHKpXWtzOi36qjI4x<}E;iNR_04NTZpF&uw{PEjwn3C#P**E> zoyA)u+_nM(po{xiO^w+x=rO@lsm_L#u)e9mtcb8MIoabsYtn(4fr8`{hqbxhFQ?N& zu!ia0mf#=ZOAZ-$bA^E~xfpdNnKlSF&G6VruE?l(pn)`Z{``-6Y zc^36gSxFkz%zP7+uAPnCtFgReqBn@Rx4eWwVXtAI<1~vZABm7$>JBSs{s}-r$(pjr_B~gqmwqRWhD~;;G>kJ`y;*Iyaw_l8+0yJLeo$h$ z?BKv<&Kb}}wn&y@g6q5BnfT(~Cxc`D+M=~%?vvq6Zc|6_Xt^Y2<3MX^65|}hFb$u+ zWpOtN(x7S0)2)OO_UJmMXU$6ke=MPgNOOycPqPf=}Wfv<~(8K6LoTKH2B$ig% z)t-1=A|HGz=MTgE!ykm5;V#I2Q(*>X781rL)@#e?@%vy2;hgU-Pq9ug$!d|?W3v-o zVu1YfhcAwZVQxZJZ+!(kBLeQoKEXKYHIKEQ^i9=@@yg_$Eenk`_S^JTahHB^jFxK{ z0=m`@GC<`E^qt|N=6SkBLqHI#!VpBZ`?gHP>1HuJM#5|IFUG9AEyGjYE87PC&vHdq zc?@VKe!_o=)-<%A08wV~>3_ksFspEY2%!MJU#D?1A=j& z;FP1^ZGB$4*!SSNLwRWG-#k@C+aV@FyUIbK6Jn|7liuj~72wmHpSx-a)@_?REf!E! zP1c1D%!Had!zrk{W_8CmjHT9$k2?;2xl_{*FD?I^(3O-Z)3ejREkf9)%^2;yjW>tbOSj8Q)A6DY!y5CvN zJ|jCYb)zx4`~Z3KzT|OqGkQ&&DIXS@>@I2_&LzXXGBo?+3A2}=Z{ou<^w{XEc1r*0 zBUP=JAGFU<%hnMqQG-4>BUw3Z7iT^un_?Nk)FU9YRerWUD zpq7zN()ZaszOy^=m3rxVZu-rVW&oEg2F06@b^i`lp+5Mopm;J;eyvOWlp3FUyKczI8|`X5{@EYf|%Ui%2&)1gqF}q2k$xgZ&QQ z-kvy>Efw~@x9gpCkk}d3+rrWdg?jmyFLTdke`fg-@z*V=Ee|3uw2DRz1@J^p_id!= zTq%}_e;|g?c|X|NB+qDrku3Q=s3u;)Xv3tfE9CZhzJKC~yniz8pRGi_KPJSKvY^tv zHx>evB>vIp?94E>Ljv`1a-f>q1_UyCY8hs@Rq+paYRcH(gi=(g;pcPme`M-1j0~Mx z8mP%z7IsX(3U56D?uS!vY)^Y#a`|L5`;%-#&1^l;&|TsYuN1|l(T=)?#H5= zIKD|=-k;__2|a>>)=lxOv`92li@r~^3>B2!NXy~_y~!lJ{eML2LtpO@#40~R%pYlh zy&uu}euq5SC04Erxc(!HkefHn2c4BE265SGsmV0S-cPqU!4_Qg^(7J#vQc|gyQT`) z#~(HfRRr9eICRPF;bB%?wt3BxP4{OPL1A_&VN^=(`@#l)tg>$C92ad~n<~)4Ns3yF z1pk@)mvet4QWI>5U#K%S*Q$ifPx#R_I@Z+6W3SKazgyXe_8v>EAG=YrLxKvQXnCSt zGM8}?*(24u8RX01ttZE@M$Foy^hG&r4aW}?T0tLYzOvT8wVm}t#y*B}kL;nc|70m)&5O>%!<(+F+2KknV&QCEAs8?hUCH#mQYZG_ zr&pd-q;s^VL&r&|vq6ZVz$#_fWQSzyMWg+j@UGyQfESC}`JJm3@`B-vFWOMI-h2~h zEGmJV7;l>xa=@CYpXra=9%-{R94N_cU4D|&Xh{umM`6`U2DW=2G8(IIxKq4v-t$d zGh`inQ8`xRro^S{zYKY?DegtXtjB6#1c;d&8=qRPf-QyzJTMWdgU? zw=LqwFX-n|09av}lEH})rou8_cfVXCzfF(<7iZ~Y3yvH1UkoZ)yLA!T=U*%pbGE4u zZvu%5E}>`hU0IZ$h5{=23*w$fHn~fNo`t*c`gyJ!JKLi>R+{a73z3bt-zM0m>{4Ht zl=EGg%++{j04|OEM2d79$Jzr(({hS8yyEk1oc$w$SWeD&wM_4d9@Z62yVUu!!O2#v zKQnm~K6ACJ-yKhXDA_K*b8Cyi(<>l>D>vN>`(hrJ#6g=EkC0{cD0DX}B?i4FY>s9?wVx^$fuUSp5+>ZB@B8SjhV5*#@^~JDXii-&yJxv6OB7{_DYXH7KbE`eeFdMYit2ivMZ#1xxNL z<2#4h5T184Hq+JGx#@qvyacjC(lC;g7}cnPdrzRq%wQnat;EQJY)o;ANzrHPM4Y`D zU;ZtQY9F*a6f}#1FM;BN^?xz-)^SliVf!#0(jlPK7bK(`R#NFkPzmV}L`jLIm+tOH z5JW^;Vd?G?kd6fwSm|!qeb4$l&-?lP1Ag$#oSA!OuKT*Ld(O;E z(oTX*#@aE2{2QvRI+xhg3dkXDphg6W-Vdkm7F0^{iT0OujcS8#roO9{%?PG=Kd8Z* z{*9vkl*@~z(BztPgQnZ#z#Ne}keHhp&<55?HB-R`vg!H5SFcdurL9$l@H%R^dL+0| zJjGIP^NE^WeM}K-;iMVfxvy|Yt1OF~8>!oqrS8$HozGi~*=wJ5O49t$CBiv1)*h}< zuGoYLFvwxmxbpTVo^p@({9~DEOW&;Q$=$(Z)xc4as+@qI*ZJ0-+cu1_zM!(8jWuwQ zV%`-?O?;$9cl~KHYyZRK01R6IzW4ka>}W7i;VY8^FFD0El!Ww&qR&&*8tQ^eyS(KQ z6l?E(4g{Rz0=AnpWz908AYmt$~1~>?KpL zHFKyr!CAi-^=XoH0W2%(;S`|?|NO>g#0{{%Cmd;)Rvc`Howe@TSIc4^3+^;aqRQqm&N$`%!zTxa3>$pk4NNy7S zs+s{$8IJJb&R%;-NbNG#P&5C?_Wd|hQo`r8V0WWYfs;n&+jnURy$21?Ui)xM7J zgx;oQJ6Y<#nv4S`nX3*i1&PW=7j7 zFNh;uZq|1Akf5&ug#X*`eP}olD|2V}w@IkMTFcxwJaK%p`1LCA;vp{YYPMm2X^%vQHzyoJfKxEdnT-4FzlUi(N60p2Whsmf(&J5846N^Me&H7`m^ zA1dtzeFi5X#T4}V{o~4?-gi8P5E13B2Eb#3mGy!5L|#?j6nDHx48PbNxf>~$S^D*> zHQ@riTB|Bw-cZoCHbD4P0ap8&v2t!z+2a5!cknq^U%}HO5)M1$^u_MZdvU531_Ya^ z2{~qmLS%GnK97JIO+tbNY|D86VSm4h^(XLlgf452c7&2@gLQam-!zP(!q1LYLh6y% z#46ENdW^5!t-R}7+aEgo%-Qaxk&$e?HVq|T*8)cP@%88os#hzpoBJ&=4NWBR-}hW$ zWr*%IsSOj%n|>=pJ+vI_sE?!CHk57jdk<9Muyi|5J0ksYuB`*MytnawQ>wYRZ|mTX z#fuI2L_Sf)!+F+KqY)Z_+g4axnqfkxca@jT?hFbiS1Ds<0?S;vvnh3krK#x~(qE1& zWcsFaEc38VehDR~I22;2n*e!ej+jgp?pBR4;w?RprGv{^l#+8F9R3c!@H|f{CpfQj zL5Z^;M|Fh8nT0P-ucBgTKjr$P)=d02zSomIv}XoFz5pe4?k9*1x^T>yJHmXoOp_D2 zvLA0oxjBrvCjH+-f4|+lufna=l2i~k8_wzD1s`nHo(S|Qa$@&OGT4q;3bD`jP6@Yz z;f3D@6dYPd3-+aE5h({W6x-?iAO7}l^}gyH>%3ydV78oL24x3> zhANCc6ZIq&{X2b<&_)5}VQmYmAxZcsfSXibx)yv!H|oqvl7N}u4SMJ9TF0)UGBy|w zSzddYs{kkPx|ADUx6e{x%=h%FVT(8Kd4Q^Ry==`nb0eqNu9bIE$*rro5?!iyXgn{- zG#@=l&XFo!Tc4L&jcW+;CoByV!pzT;2g}lq7oWg%U!l0iIJ15qz2i9kt1J@$Kuzcp z!K!X<3PB@;TsUQsQ@{A!Z$}sV=nsGI(}igZgOKt5LnPuq)|>So`3%&=IaKrwsXyk{ z&4}6!2|MO+x|N!QG$fzP)?@s^_{G3WGOTF? zz9ZEzx*yhRj*5=_(Jv4!<%mjIFD3I5U->Xg7t=96pWf#4VNecr6p~DfOcFj!EMPKw zd$nZul^V=kGx@6Z)_BU-pct7dQ?ju+D`mCpxDCBCAkBZXw3evLUNzb*a=)nZ_B2yh z3!iMbZxOPY_a|q)bT(TEAQAhcBvV&?(x#cL1F?m!~nki zIPUiG+ZFe%`n#@DCb7?S=aK`F;O_mY`27!8r9qCwFxyt+PWr}-vPe~MI`|7elFi_u zYqeaQ zMFO&pD~58Ot-Rsq3@Cd|rXT5a6_bftj>-oVH<|A;T1v@Z)`AD#zFkQ@u)oF?H7Ckq zj(;3V3+7!dFGbuFAL5@qiT7cj1{SSROAk%X?AGNRqRp#WfcMy4E>KqA3$;5DEI0c# z|9Yx)zx5LHD1OoPq<+2B6Iuz~mC#snTcT|Q3d z6E!bT2AJObo{3lp?qx=JC-7g>yG1WD$_Vf;BFeQQ+EEtU*b;u7D*?_av`zwCsIl&fc)Qc-NL0oV=%JaJSz zIuSRguCmyHb;Nb%dQVLTH>}Onq1p?J@7^3z*pfy3B?Flw>b4(s%&XZ&sgnI}M~ObB zw*!6+p$R#;~EFuEPs zvoPa`MM!8RSx9K#?zX*qx3RJubDN$9fHx~^^0!PbsKK!x5&}f5tTvBRw0DG-5NkL~ z2==_L;-vO|_>>TXo#b?56=xn0A5LCxu8{nZkZc4iOmclB6gAJ|WXoXz{@y8nzZQCv zWqL75wydP(&nNb*l;e^K&^I#N<0F4Y0Xf0MxMCT!0gH_?>%1okD=3+?byHfYFB_o+ z&)ZJph2_0TUja&M4e=be|o`nNE3aEX`H2IcU-U-jlP<7xS-+c_vRN5E6 z<(Q)Sn6DX*pYPnnxBVl3l)?A%b!@+@=Vwu;|CW}dwz+}u%dqKfD4_o7h_UzzCdKv9 z#lH$(>+xf}`Z#I7`>;06LSmg5W99Q-PT{hXq~f}!+{9&EI-(Y(Zw!m#!_pq?EXJ4@ zIAh4)sEpPAAnzPrb0ET!*>6O*DJ8T??|U7LZ3EZ|<^3Gj$$OO}^1{k$lZ=Yr!~ohT zA=X$Byc{QjVNI&lmVrl<^DR?7BoE6|(#|BqsctiTs3B4#zR!#78>?vS$GUehfI?aN z&ptlEt{#iOdCpCxZ}_*~fdcuu?%x(&J(k}zR^zNRfZk5M{KQ$!S^dC{_*WKB%Gk~% zN1RuF_R>_xN~)t9+wb3Bhbt@PXkr9PUw%@_;WI!t_}|2BssrNbCnpmY{qPlfhFH6x zN4)&4A>|1sY3}P0-z()F-hIfG?U4HqiASX(o93?HuqsY<+8VXTw(tpxAy{L@|7C~C zLjPTjRt66%YaXDL1G8s2o}L9vJ@@`d!IfAVuN_|?>xJWWw;HX}ZzYoZxuvSkdmIKq zr?9(Af;Yp-+PmUKU!{)DHld741LvGJj~Csq>%NN`k|)(0z(DC+Zhe|xicmj`-8Mr0 zt&?qj{>;UQQJ5TVxg36j>02jLyt`nlV{Q)SQ@v#G3SpK8GF?B;vC_bI&;ljLO##3b zp7PVIA9k2Akt^?vqU`CY_xz$Ik8&%)AFX3TWwBTJ( z9nmk|l}_%nZzy9=x%gO0Yq8wmr3{;EN|wI@!b!S11($-$8lCss$C@MY7}|>6xD*uE zng7$m?_Ie;UTdXZg~`*0+kNmJ**w|@^Za!meNIoIj}Y&P`=Qyrt^9j`5Fx73^DK0j zyco>RQ1TMDmxj@9|79$ls&OQEmGDt2DHhuS5+TsK;hjZ-ID89`6PQvY1d#REOn>Qe z*pT%Ri3IHn(oo&nYyNOpq#_==30oU38{F#9=6EBGnVAc$^ho#r#f93au4=5B0^(!s zKl*-OG)QQar_;zk1yTAY0y5E;js4TdyzYWAPL9{hQH=FtFB=|G)#8KaZh)670E#Iv zvD37^`-KXg#1)H(FF2J|xV8}m3PmAKyP-d=0=nMF{1zdzL^|i15;op1_jp5t< zQF~?_qJC}5vp`tGsEoEy(%93HdD-ny&xhQwu4hc3+{Cg2VMN4VC;3R0CPoZIv8Oo< zpxJ=d>L0c4OF*Kq;19sjB+LKUm3OSIop$=XR4>J!<^kltKWQ9!e=0d_nb>T$*z;J# z>#ni;KlOQRUznRCiH~4di!b~DZEb769pKn#ksA=%+4unJD{0U@Q*PFM$5Acgl54eH zsaC2+Mm|)~?L}ipKZM6Pf!rBr!KIgS!am*A^BLEnB^4&~;CJrdG z${mkFkJO-AaJ;!=-&Wk_(m!lnWpuOZFH4KzQdYq}Tutx1%w1sFeMphy2{=}u ze8i_GHVGUXOo3OAmb81Nip z$v$}B1x-x6*N^xCtl9-Yi2zm@<63Z||F^M#g6x}ixHvvSFt?*M#6 zS&pnDD>;d`d@Rk5lU$SPg?^YvdaHFyA^%}2wx1Sse(s$HK}n!WaLk-e^9V6 z)qAc`HfX90+dLJzC9Ebo67KUhtSbCtJ7#?nX^=eTAi^T?xTxQSwChVu%2-m|#HaU) ze=rT=45xZV#ybOWQmu}cL-+U@n*soXQ2oT<6jqVU zRBz#lwhLhZ>CG|;9U^MzikvBi4%H+z#Pz4;BcdEx0Neon5fbxIz1L_S4pj-h=NI~B8QQ_Jv zH9Izb8?a^hn}nbOY|%AO*+M^%<<%mv*d)Y++;D9rR?j-&cwKw@$>_3VK)e$fIdG%- z{z_VG-dz6XO(Z1OUAySJ8)wk{qdEF3P9;(stKKuG){Jm>O5*@B_zMdHrcstZ=UPpw z0LRlopgEKgUudLP!dhlr-+G9vNG?|2CjjMu?q<4MMLh8EKmMZ=l;Ya4C!W3tZfx!ROJjZS zWpTRfaoUrDQK1?tZRswS{W-snyrtWy=5P(eUBwI6X$cL~bf|^nLg!U z!}dP20!P&FZ!tQL3ec>HRDmy|t&v}D_|+v7j2_;|CkM|a+E~tf`;iF^c;=1DA;vtnlmE4 zGbxhmYMRXwq8yaaca4S7$DNx+?T?qjU7!W6b|YZ1z1yQwn-9<&5oODJLP#`kdi3`e zBp_I`-c;-cxQx?(ZmX#Qa3jTI9s9S?szt?y59L?N{D3*gBmM10 z##z<{0?{u$DMaIZ(gD}fy}h&t|CJiZKil~XAy{eSdbs$ryj_(?(Rj3%9@cfuz|ug= za;gbvFszf$l+^G6X#d%mz2x4q;e90HDvo{7`z&{1NQN*?!oK>yNp(v@On7CwTwdn; z;c%c|lG`{yenA^OuG;}i`Pk{$a@}_#e{91=gib9cjq*Z_Cvhh?M{qi>@xJV+Q#u*V zLic8fSGF+a>m|3TfufrKQ?%&oqG8%f{=VH!$RvUCc{b}1Kn(@)r_kgT1=&t`*+ zJZ2RPU7n0!&#Q}f|0!ULzpk$^z=S5hsyZd;8SgGv_&v&Ar9H=8xs-Azp)|DA<)S|; z)ji(*S^1?Ih-)q0L+eK-kqL&Pg#?8yb0Xl)sg1VAdJmu*Wt>J>%Oh=6@o(_X4&F>Dqst`!Lf# zXCc~|Jl-VPJ=>v(a6Y7LY+8`T*CnD747dux0J5`^!xPPj%I04V!*xOCaN@2k1t=s2 z&E9<|(cY%m?Li%wb;EYGd<*W0JH{zwhGm}W{x*Yrryc*8*+n+wn0BP?`8TN0Ht%)j z|7hvS9Sc&2g%rR2-o>O{bFboBfLpdJwY{;_DUzJj|BZ+VK#IO{WQ6=>1|h7@u$j6X zainkUIrLZ3-K|Q+FIF%^9cV5Kuv$ASH(T$Jq0zL-+9~`_?|f+H)MLAW{GZF@vt17$ zX-BOQkGFy)7rd-qr3ui*;!;(1Mt}p!f8$}-W{wehJV%ewkY?ydq*Q66w^=uc=Se|j z%dDz~6kqb}@S@!#{=jpfEveCj9$1Zm+4Uh6u#`BvuvBrU|LMuIlhAr5IC&rI?f65b3OwY$e6?ucCETl>I zw0>K>STH#)r09zx1Undh^CE_e68G;vkiSn-Ktl zwRDUtcZ~0TM~^07;YmfYNOS0M9e#Iyd!K{wXvTUD-hI3LKuflJw!6yptq_g%-eBm> zIJ;@xi^6qJ3)aN0`*>{_5c&81i@g|o;&zs1%LYeFimzy^r-Jm3e2@OVl(!X--=h78 zDH_eOi88_NXT)Qc7BMbz!3)u@p_XCAQ^h$C-e^5%jHmEMtoUO7XM@$p*g=ze#UO8L zG^s{xzVqw<_5uK5MA{fSq}t~hnP)iRgp(k!3Y;1}xcUVCYl>btfp8ekisb9($l1l^ zfZgf;&BS{kWNSI1oFjJ$G;j^*8oG-!(LXnv^fuMYY^7pa#@vfY!tbNt4j|Yo>?;nZZFTcidnWV`d*XgQAeyLm1D#xY^WDp1&I9+ZiXoph9 z?0+R*i;X=Sg&gf>y@b51eF2O@1h6dt5O!njq8xN5xma1F0J#4)W|rx$oFD=)iJoYa z$w#ahz@{4V36F3h3@VXX41={Z)|16&0CV`)1$@au>yK%d?KDvFZDNWf#Wx7jZn`)( zHj2K``O{3%6CJeIrOZC)(G%zn#82j*e?N|Zbl6Q9Q{J98-Bm=YF8)R{3vuA&M_-}O z+g`j(Bzu^FHCUI6Pc2<*U0IVeU!Id5LDcLVlDAIVbF%>^s0uDZ!|M+ikUmZAgN41Z zTPMcCwq`jJ(ci4H{xA(m*4{H)BKV~YOb>Q|iLuiEbMx1q3Fl>^97L~NL9ND4{txPS z3b(cMKG!hDI@2jOA!*iSAozbNy@BT^H~(3bTwbwdRyQ-Dk1pIglh$=73hgAB)g)^c zzmEkxJT(p!j$J17m?8uM-7!k^<_EF0 z6cJhJ>hd7elz<77%;Gu)aFIaNRH+KUTT(s{J26Gu1r@}LU|_%>S~X{XJ41v%$zU^? zYYkh9zw!kKG6p8$=U|L$PF>TWHI;I-A1>z1O1x(Ur~pyg^9S8ROt=M|r(xmgBHuK8 zADs8E24H(ZVrM(zIbTbsyQfF~VEL0qS=wLYcglSHrK+_6t<(I4K_17&i2%ReO>))p zqZf@&G=TY04rapz*@0QqS)IirDTMmx42WsRzVx!~RXYqk8>1}Qynmi8JMu^G)U0K$ zJZ!UoGgN*54I8l1>(T=8i1JeZcgsok$-C6Aw63pVN<=^X~Q9*Db9($BaM|FnBogRv#Iw8sfOxX^J zk*bKVz${fY@VvNh{Z=WL_7c?!D0w6-4a}`mI%^C>yewNdA4Ezi!Uc3BwThQRhZ33RGGPy%+iBBP0#Z2wF6y|UCKocu;u9lV6 zRBd2iN$bE?9X{*w!3ED!I?9z_!^}}#vPy+$-m%Oc%3L>W-!_7Hn1~VvcHF1~?d)zb zc#n~eaqBv`EXA2OB|cK~N3EkENJm#a{iQ*+dm3Q0FI1Azk?x)>ibvO93PF!SpNZ44{ z6AR;2mdJ}qix)o7tWoB>9vhJb!>8tfLJWrCr&{0L;OLlSTNBMjw;h07%7;$|)!x#~ z4Lm_QmUl#UqQhSbLx)bYq}S7mMc$DVp0KRC?9EqE4$%T^IQa)+%W?$Y)2eF^JEhY8 z70W3xOFH)kG~RDpuw}nna9qW%!W2^a;WQk z1>rgTQSB&C<|xhu?n+lC&NX9M#obptBGy{cIt4*2+X%M2+82cF%i+GpywzR$*Z|Pirqq|e2;eVr%~EN;Cy&`nSZ)kc z!-)a@=tej%f)0b#g3-%{l^ICpUdXee_^PRnsKeG}HNRhJOul0^)!u8sTE6@pIn5Dw zC$j~^)2CE9n)rFx@fVnU6y`F{eZBx%HvNZD*A`LQ4u*hJkr>#}5sTw-J`y!)=n&KJ+#J)#alN5&1kKz9@ zbo-GDN^FbHs}>?%j*MOKu$@B+)Ezfl0oUtpFL$$W`^TmZny2|%nj$mRU9Y*x{i+=> zJzy1dZ*o|d+HqZ{>@y2++oaFSlf9HzA1bmAEoMq!baW<=VY-SpQFSJO6zCDed?QrgID973Is07MlE=krEbd z074cc^L@!-ZkW|X02Z>G_Wx7;_tDIA@-ZMxQq8}&0BIA3hsY7Li>z+@65iPU94;G+ zV_V0|#iToBkxY7tTm;~tDUaOhLv2HdDMkPTu>T=aRRY*D8#xd`=uz_0hv5K$<=e2- z^Z=SxG;RU#c*2>%uMZ?H!;x}$V?9DgzJ|RGnQz-b+oDNM<#gsc-#2uQR%FlyR=xcV zs7|cLIMOlmMa8cai}T{j7sK6eG*_FUWKNCeeAOTAYYT)*?nc>8H>{y-w~unAf@C`M z*8?c1c&dQNpm_0P+j?|m(~wkSF(P7NnB=h5Ot9rvjqjpMYyuZ z_`>?8RVvk?FJuW%nm6P_F|9o1;h{gTq1BhUefr^3JEkuw zLNwQ`gvjgzum5S9by>wy%1iGQJR(y=D1_+4&S3|%=3VuX#=xNl5VI&lO+xw6D22{16B6O(02{`|dlmNRESogb4FKRp9^ zdk9(Bsw8*xKRmm{UzWHBtCbG+Q`a_ke=h~LGa5#_QnI*3SMIQ|Iu`y~n(6mFhg^I@oKXh8DabIvr;8{%|% zY3wrRtz&5TZYCF<+gshw_kn+ZH~sm3;s@KJcyC7#_AOAV**O1|Lw$;^9dZjVNFg zBY-mx<(h82%V90ULqp10^JlNQf5GmqPicSNHIjCW*zy4u{4kKn;&CAR;J-X=fk(nN z13z$yXkJ&CF&zzbYU2G`fwd|JcKoA;Ir-RHERjx(~S8 zs-WLh6S#50{-fON)93&ahlywpM&L#&NKKz(0R}Qpz2t(2CPqYGE@OIl?)S;;T~kFs zzODH1vRv(ccRt)FTdvmmN!tu_lDI!nF9*e$*h~zN!A7c{H@{58|*Pma6 zT$oo|yhv-t2ScO_#+_>{I)U5BUipCAEdl$}08iSA`&T#%3IJ2&md^z0(hQv2>B*C? z<8mobGPP|zbEk&)oLb3z2ywdj%l!>t_+MX#QKqxs-;~o-dK=3Yz`B;r(HE7)!@cx} zg}btcuc|kz?xjz!?`T{ZoEwrHnZLgAr$7DWH0ox$yZfu@y6;5@-hO)xq-xjOE&YJ? zH8SmUXK>`t3aw?&?b8f=Gc0Y)^)#uyfRiD{%RQ0>&x!isewgPYN%z0xBDdm#;Qe-m zqRz4$fQ5tS6gVXwwgNfWEQ|IuOf7@X~amS-j$;md~WRC%6@UoU~1a8vR!oEgY9MmP^JuA z*9K|6C6O#vN-pYVEq?Xhd(Gs&>$awS-WT0`0KcS`M|SYYm|~kFNLqde&|E13uf7Ce za@HZcxzFEhF7v$kme)dmnC<3#+Ij2a-sDBE*g>03MFeD{spzSXwLjH%f*}$QoU-`a zdUi!AA>9-y>tMt@qq5sJQ(-zIxkCTUsq{~BgKXo;D|6`Bmt-@HUcV_f$MZ{WKpxmw zzbPz+Qw91Gra`nM?OyrqIc6kgxqs5R3BGmA z_%)-zGxKX~wrTTsR#mU7Uxx~DVpALNIl;snCgk4&rS25C{p^R5KcVL7hN{kIuo-T3% z&YrK^97-vP6Vkx;`g)bO_ zX<l0fBv{m!6^H3fCdv8{m2alj!& z#`}u%;5+hWOF(YE>ZkiW1ZC>5(^O0)iB7+4RQ72U*r9hnxG74;-b&{N-nJCKl1gT=F#P_AYO)FE22b%tPLP zy=!f{%~-l`VG=S-)Yj<^oB1$Q5H&v~x;d^XS<>u-ULU}cUhH*kS^gi|0E)M(kojeP zAAWFPPA~0M4RlZfSON~`2;+D+sj5vk4fKLI7uIjrMXx)uN5aKU=!vurVzReIRGF1F z%gxaAuUFNq)fjW9Wg9=G4rsVhlmiUvx$3cSlpMj=zh42q{wOz|Zi)+;LmRCA>MgDB zWz0%h)5g!RZhQJa(Rp zK7VuniyUaX!JJhN_DwoOVg@kVf~S!&wNe6r+Y$gy?Ac!IPaF8p^?01e6#XUph`dEx zqDp3oa+@IC{dq=`uY`quh%a9jCd+oN7|v(BZ;scks+XdLNVn9hMra333cBqFXfOol``E*O8<$Z@p|aJ z;ECwa<~$9j3=0*(W=&Tw9ab9?k}N7&#mz{4U{*9-^V_ZLH~(`%Uqv>@mNXy9_V|oJ z&6kQI>>`%pte>*xcTaDv_btPR1shr~!R9OD{niWcy?NMuzTs_M`)=LrP35!mI@cwP zyV%{Gu}jAOX2EAPduE@52iiK8fZbY*YC~@$FNBIC+&6+FsRi9ejKqUJ?n1P>vIW~h z>(m)Y6g?#^m!EbmD1G2f4H~A$b9KDW16^9LVpJEe1Jsk&s^dJXck*Smo#EFOk&wRj>v*e205!w)Sw`ZV|a<;sceR3zt{=%Q0rB zY5`%x$}i4{Vy#^qIM%JUw40{DycFACT-JF)hnYK<=i_koc8xkj3K-(T>Njf z=Z+FW#XkD?1F<}*7_DNlOQ^;Q?!yf0!#k0_W??!1M|LnfpdUi0B`x3u$guMaj8nlI zY@J~L^v0C@OGXXF+AV$y;xW^}Y$BoAGm>wzc-E}^O%Xx6T5CFdDpcAx^^b|(*;MU#~;?#pwvPEQ>3P2w)fOL?5C@I zdu#@?e;`k%{QKnDs(tJl@mx)8)soq^6d)@Z{4pU<>Y~VRP8#6nVDyizzOd<9Ft0sZ z`gv%WY&Xj*7Z-3~zbev^qgWYUeL&d;nE_5GR%9FQs$0Q2=u=I6f1P^>!hIrr>1ZNK zVVKZ3Mdx``>Zbx&B08IhRnKrs`-Tvfd*=%i>Ivb}pbR}{A-u$J0mZAhOsHfUH+O+W zDFzFlM$f(^Tnfuip-y)>DTjW>>$fB1T!u@=lenv@;%K%f0)4_?|V{y0iHJd!^$_aF(~~g0b{-s2EDcu%QP` zoD^&+jzO2(n1=NQmr;qWVe3yp6r6Ikwc{zwwHRYmO&jNy!iD^Zn;%rL`yl`>m9F}t z$@bbF1eUZVI~`R^xQb7CxR$A3sfEPa`^dHw_B`cK70_qhBtN}Staa{dz0XRy!G%EJqCmZTt-0pn0I^E&2kol#I4uq2jMV)eB%a|m1CAW;}8x>xKzA{l|e>dc2X70vZ1`IBoF+RJl&PI@|UH_}XCn8&ID=c=Y50uGiq%NL{Nv_iMK|F)A?WZz3Y}Af*04`?Vx|#nzXsXqo)QE z3F;Y1svgi*Z#mu>8A8nbVME?=xQH{aI&96}#Pi@H?9FO^Ig=D^W)(W!J~XSRaKm#V zQp^z&4_S=$iaECw_)Yi}W%^hNwBGYTTnT7zO-};%BU{)HjI`cP;_@u5G6_ zQz8@5_j0xO4!h3V<87YsKlkA{i^l$T$&@8G0?AY#_*ExrcgJPf7+>cej)rfJLc3aZlo;i=NpK!#5` ziyEIyyR2hJ_U+bN^^_j|L^X&+5?FL_XpEQp4t72cnYKNEP(8dzyj8xZXTm1hG)0lY z^XeDLEDsd&;WpC|rqQpKU{`UBdNsn5eka#Xd55aFhc`1+UI~kRa-0ARln|65V{CG= ziS$GrUhF5Hd4jV=#{OH49k@yy)})iV11|mw?v`<$g9VOu*v5`-c}X4U8E`405ybCThaRVLHICu9X0Kbj}N`SPCK@l^3SRB^MHS0krFJ;-k3Q?;@f7dVB@8*E5t3xZt>-Ey&{5l%lc@sG}b2UySa zmD`IJk?vn(<@d$iri@Ct$=Am|s~7)G_>|uEMQ8YJ@ffca;}d2;XvEnY4~X6h88y*} z6Nj9cg8DG*E!d8#VJ{og=GX4YR^|4#qEwW&qltoIh{t|LiWocpxUInTt6M+0QAYe^ z8$5W8dRNu8&>z(A-~aUSS`QfdX@35U2uTa4Hra$=P5Je6djJjcec*?mcw#Ft10nr3AbH@Y-D=Q<|u#R7e8Pt_stdaJLOEr7zp) z{KJb2c+ROBR?j`ck9C>smP<)@S&Go{`Q!A1abL=sMfaX|u!x=mmG)Dsr{)n{ev7w# z2weQB=th9@m0Mvm)}>@T2i9fN;nR{1nm?p!GAlYjbO?R<%>g|r#v;z8S$#*H5$zQUpyUrr zTCDMBd&L8dsEmAr%ftH5o{@*KvH-+v3`lT_1^JVzJVtC$&J^rQ={4%!XM8H%k_S%{ z8>x;aCjB8c`YWX_gdVH{cgvs46`1^ZdUPnt*KhowR{AHEwT9b^89W(`%9(dG`1);F zX@!R%J*>(~6o&paoeNhy&4{VGp@?owRIkaE%g5dy8>TPb^hR_dA9@i%K??^nKgY^j zJAT~n>})9}d(a*DY*4b& z6iI-Cig0Bijj$HtzX4e;gJ2XTs{Z$F_l@<)_KpKAQk;Ok84GI5QPg$3{@*2_bbjU= zRLOtqY^#q%WEpWQbQZP5O5LwlS-;*0tOwCcWA|5elJ>sUck%B24`_^0;|zpL4lsqUSSYs{n~p}QQvv-3K4Og> z8KZOao-Zz%JjTXfF(6oAtlRnVtXj4;Dg8#Cj2nSXjf|qy+?s1UGU0qA?$#LAig;bs z>k)0_61Xzi{d`$PcR~`oNWhAC?C#8aq^&>w9x}pLu&^#xK;15QT}8eeEJUtCRXlEe z03dBYxBkIoiE&WOTZEQRk7a}P0UrI;*`PRT?{w)QnAX2e89+CT5jilG0qp(}^trj> zDDI$Sv-i5L?t%vW4OHt;W|hdQz9#o&bTa`5cC6!-&yV^8zX*L)4OGSB1hLi!%gx*9KrG*$+u)Ma*_uhI1T+;NUPRy+4diQAR zYFDUK@G6ehYdi)u{Fy`maI+GCAm)D)gwJ%PDqHYsanZiz8kyj-@k$M^^}6;D~n|2Kt$>|X*r$14$hhpRfE%;^xJ z-SHO1muK$#)_zClr8jqye6#zU4=7uXj)@-K^}QwaU(;BlY5#DDK+2+3F&__vbm-8gA zv^@>@@0$-Dnuk^H4>cRxwTDNos~lE0P)NRe<%E*!$_R9O5&Na=jJjD*VIdhrg=65a znLF(RE2+-!l73VJSQ9U9}#@7MqI zJ~f67n%1lFjis2)Vr{dCTGQ52sHv=jwAAj}gx_2>P#VSE{`Ed!S<@|-L>gftI_U2>?Fq{QYKgjC_`W|@ zvKxpParG3fI-rDQ0j}^4dK7xO#!wv2NVb-McQy7TStIQ2|JL)cxp2$6!_VU5b3vsH zdMb)R5^(QwPKYQ1%h+|K;rbV9RU~1j{p!=m3;ZLpLq_$cB00eg2bj0wr;6V|kAOfw zk*SWJlQ_<#n(mt*yxeJ~*3RFKl7j2q!S@@v?7BzK-%&TRd%{BtWj}pG#yHdFAGOsx z3mj!Bu$ez7LB_a8WD`wVZ{48q(2Mnx4M@m6aX$s{e-R19-%;y} zf5;f)VYFPXB#pxw93kQy~aQTeJ@!( zRy|m8`hjEX^cwJpGZz=u;IbZY?PUgV3ARI@^Qtaq1}Atxuz(df1T0=I14xauqy+_c~y%f^LW{fK$y)D zEFWKW?dqw41o35_3Y)p#A4pREOW?EbUZ-!*n64zDe3fD{Q(z{Fq)%IKzi0#kq}U_J z9Bjg0pmA>gK#RNt^OimQ35C6-3K!4y4-~6R$yTs?3~ndib6iEYf_$paDtWV%)DUZpRGYQF_&FMwj#qkUmiK$H&?ij4EseC%Pyl9|d4qCTE%A2EuJ= z`Ipz8#YaYBxXRQUV~jMGfBIJtnrnIS3Il7Zj6zTU|BB3WHn$xpgafAt;TapFroj0{ zv!E2qZrjPfQW2^uyEMW9b6zx+r;Lg|+^Q|71syqf9^%d?_;t_fcOXF%yY4#tO;izU znO(8Ix3}>r;KuA%d$ko}!mk!hUktswr`_fgqqQk0dQchL?nYz+U1w~!FaF{|)Gy+2 zCw~?opx3q}aR9?|!hEiHGvp9oadVjQ!A~L-@uSZR%lfH81Edd}EB|%B>};bJ8FQ8n z%nhy_xowx&vJPX+s6{^nMG`|<_SpCH@=UW$smL?s-*PvYM>Nn=2V`+~ozT}E2(RnYv@$=ia?An!Brke|9|Ma)&aE!p=_HS{;c?b82RadY_@ZT2 zRhCqOm`Q)vG2@}L6tNKUx;igm{{EW1CA9AQUd$Lr%1$0G&gDPY07YY0NxY{eT=qmVb} z(vo)nUwiNU)^ro}jRp|#76B1y(xi!q6hWFa6_5@}2dUDe2Lgm%xifBjFn{?fS23)jnyQ1}U?2ywB6>v`K4aV{C!_{2Ap26TaQc~wC3}77&M8Fs2Oyg zlfO_WI_ixW?{& zPZm{ZE20Y<@O-+9-}0Tm{tD>3?>93eS~n4xS0W+BrOxE)A27ckG`e;M zwmRoQ)1(q}tMk^`H|nbjg4@+*ypNYqy-w>(iCiUzlXoT0;on~ytBXVm&%NvT6q#Sl zP}AA$t#5hV#X+y=6;W%!x5qy6QY-aUg~i1d#xz)5{iPlnNp*PnSAK%^TNs?J=~}JX z`7@{<$ikm*Y7I)3pqdyDR@AvIY z-;Z!L?%{6x;fJj}l72+4mI z=Fv|^!n0<$k(P9uv;9fF<>SA*LW0KCnmjYB1UJV{8`c9^wzBRX>DJ5#?%(FSZy1=l zy>*zkm3zlJ3xI+lqR8#<4CNnF*f{bT$_L@`X}%IB+=t6~(vMN1FiJxC$}wyP&nj>rP76`)MvDy+$4G~IFtxr#?~F9K zXqq?$`bK@;%Kdy$b`cp4`8UYgxq>}KAMWB~nqJjkQq(t|DjNmtx`?=plNSEv`N%{^jl-*Ui#^l`n6BdTYRZTE@?Ud?y(&@o0jI+ znqYosfS1ggup79gqCODn*r-u;9$)ghWG{Wq;T#?L@xhLzm4ZJ^NyvIsEDV{|l>q{8 zn?IfLDmlM2h#yc@Ni9f5FR5|}cf!Tb*gavSVba?Kbj;n5(HI@Wn9)rb-6Nh`*TwU9PGE^-;V#b z6(7Fg7g`z+z9Y`=JvIa42wY%cI6iU?yonuW>%P5uQKAI%~` zDS^CbJDe%TZ{6u!;J#dFZ>!@y@V&>ZaCm7zf0~OwQK;9AQ>BVw*Rh~+0Q;?9(%xyH z{q;q#y?}pN<^20LGo6lFr%`hChaFD;HGKvz@;iO8o~l^>XG_js5k-?4cz6c`HRmm2 z_3i^3PO7zcPORXrlJ{5{vOK22^f2IgD|_2EFSpFlXWl849R@Ttt|iKBln70F3Y2$FmzHM<{6S<{-tYZJt#yCX)_Wk4!VL#J zq11%Sw!>`*1g%>+=7NT^$B#;o{8ZGlt<9h*4VfPOPei|5==*eeuZWb=ir5k_0 zP+hZ^6#1D}e4EYsb0=W1(@HLL>3tn8f;nJHWB@_#147Ah?Z1yTKeY{;hkyV?2Xw5B0xD zP$H#45-DX`Z*>vFhnV@+ygdX6TNx%#2rzX>1UTR1edyUtdE*9TpdoVm&04>l4!)-+ z*){{G1B2};p(XyTZ}%L}3~^gLeH(IdwnY6YtGl9E5G0@Gv3g;GqmTR9B!(kTnkfP0 zmrm>@%gW(Pgc$RxAG?o4nf`K2W11^e@_N{-xwuXcKZ;&iS&7kFJ$HF|zvedt-sX-c2-| zG}G<$%_8SJU9)??)xEfF+CR%O1q8gpLfRr;^!G&p$-khk=Nh#bY=)E`fKRi%4stGb z+GCPuko?zpte^M28{TzWIqZ^&e$;S5j1gf{ob02HUf=Tqm1Jc1?y?eZpSKkFSx!x} zNdKSaYhArtJ^oCJ-5)OLT<+b90dz`SuOKBDe!1`gi2y|-aB&^e>xUuz7MH78bGQQLixf@L;yQpj{6nMR;WrVl@4kRR0d%f@AkS z^v>=@;fFV~|J;yh5aeA1($!Fi=^1r+HJTUvx1GxPdf?_&^BcQ#pC!l^l`p4~`xzU| z_n9aO8R3z3i(u|#P2Tn1jwHZyM%VOeo+q~|^)4y}EJ0)`{8qH%IQ~Pme}wGjUXA?W zGa#^`__}kbC<#peLEzX^4ngszEbG^z9pH5HtdfgnCOOmZ&qF3n`&Gyff4L_G94_JM zL#~uV+$(n9FDuX1y4GXJATL)2zeB|MURk~mS2`q4)~07y6s3p&%MlgN&8cGi?=Ips zU?WvJwUcLtrfv(yc;&GuF{D}V4X|VsxhlwW`fi4zIIi~-YDJi<3Nc!Kza$lDJQ_HC z#Ff!M?4|V_7&c~s8v>hNkFfS-{wqjVJT1mIDDr`;!e3f9-xD?vLX%FNbDfWpft`%^ zAY+hqlp>qJQLx9FNPNSGL0BQ8kO5nZ#!W^cD;66$kjb2}bFZ8mP^EZ9Dg$?s?MQxG z-j8yY7V|7sj7w7gD>#8(So-QNGl3_;uIHdEw&@bp018y=rh}J_sq<$leGrvw^1lFd z^?&&Imj*qg|Gk4g4ny4G7i89Et7Yh_!P9+9AJ*_{Osq+FzI`EmuIw>t}EIEY3$So&J zlOGWd9-^@my~kmX0N_ztjeo;v@yjbT%B-tiS|jrJJiR0<8rwV*=)JlK4>XN2?y)%6 zhdn)!2fFen@Ch0A*@IJShZk_%@I){xA<@?s=l=0pkZ0rjlD(do9&$El;&Fuji&8Dj zEZFfTmj+00O#FvO1l%rImFhk@*f7NZX42D)OeL}8R(sdZYlrT0SvrNKCizUcdrF&s ziF~M6()WmZ+%=F$XQbskdHZL*h`J7C$@>XtQZ;bSi=#V}O7%7*luVbuUF=YPV4qL) zVpp|PNd|MF(veF>@%v5sxV~Vb`^7}2ovr~rQB`@iFvrU?LJ7c<1f4SNPJqko1rrB= zO3UaDB>$KMOgNK)rRKUB&fv)Z$FaZg5cDL0eW$A^FKQU9jcp%;B|Y@4AvlugxRNVs zo$}AdcAiC>^{gI|!#KgCayM5Ik;Q2v8ujE%BFnsucrsKf(>VTN+v$yHsvYg{{Ul)A zR_A-SjvXo1ZTRM_1gY;pw?#qDMbFAH;GQ(C#u{DH9EtggO+9q%Rh^#`ARP5##W{f;r63h@z>H^y~I>nX0A$N}^ieQSZRIsjSBy=Zh5qr*Fm zYZAuBL_QR-o3>gE>CkFMcG8!$(sF9L8RKUTnYZUwT_QF^07bUCE1puAatY|d`;&GG z76>Amq|!LHuMCtN^8I>IBpkfRG@g`H<)Zdnw}2Tx_O)(mr*Cx`|yD({ezDdejnPjPZCRN7MO3N-b@jr!kESb z6@6hAW5|G)R%T#gO9x&tCHfv@SuRluONuSAPg7jlYRq;s*BcJdcH zybOk`(*aS2TmORorynIoN;2^bio<~9{he+ z=%zm|8~u=!o}TM%JFQ0V^v@U|CJ8d`Z93u~H_h)%ifnhEtb%-efTyDkXsr;p-ZW^n zcK<^*Jz@3v{aT{BHFlwWD=H`h@lphFJLNG`&WrZi+i&bsy8GEW`^}Gwm^BLM%fgA% zrPGyYm%d!UrR>=R)E#)#FE=F`g%ITRQ37<|AqIp`Qk|ZR*x7uDCeibwJ6;8FKzR7( z{o5~a(xsG-4VJ5;8i`}Q2R?(4iFW(G?#9ud#kE4C=IDaA(Izb?2V{rmN&W~bS(i@V zg4~kV6K3c=xV#$=q`7Npb6=H*&G77~J-1S5N6hCQj3J;(;=u zf6o8?SZeonN8+nh^%LXjOgV5k4S2wktedJW4#i(RQh;ls2+Rys%vrbGIV(vTp(Fcz z*gePp1K`K!Zng2LldAQ%Q`hn)UPxd4IzVU_Hs>s+DZ@rLz`?Gy?PzLJB@CDRNP&?$ zI-qem>CFOmHkQ@ZHZ=H8K1y$9x@* zn4o*ibG9JNdS8Eli(Lz`*@4ofI=ki=_+iRf?>q}B9DKQLC|)kRr~!8%&ja;$2kJjZ za|OF_xBuWMExX}%unoov(^TgZYp!?Bmvjop4Bj*GZk{tf$}pBr3|EpUOWl~KmS~_9 zzqNV#qwwUFpY6I5*aC5i{V~9!RU1o6sqP`jzE^KWR&Av!KLwU(W;6Y`<6w^|yTKFE z6HW@$Iiao@)Jw?+)gi;IcjnBG9I?HQ64vU zx!}h7dl%!KPOtU^B``@VCRnGC*}Re>jcIxT`*JEugmL`1$|Q|7OP&#+5@T@t`Oe~& zW5ID_h#67VFcC>%skb)C>N*aDvy%H#g~aCqTclg=ksgu0;=Mpk5F$)K_6rp%Luw*W z(a%HT4chh|q2y7!sBaXTZ_diIn!0N8T41&CWM@?330^dlX|5n$t3QXE@vQ$xK2=dP zSZc}xa;{OuXxUt@KVJ{1R>j+y@Qc;DYMy@+yS5@PnU41UhR-AHgn(;c1;Pg6oRa+? zf=m_yEx@3!y(Gpuiv0AutjRmD06w?NfEjfJpCxl4;rFa7(Nj^jtmzx8G*mpqo+C?^ zU#~Rm^J}5UinB7_u~1wD8Ph^npg5 zcAP7C$mCxRU;yZ$T*MK1HPsI9t(ab9(puNMXW1Ybr|!-+%WYCGjbUxZ;G7l+h79NR z?9!9?QN2E}xT%N1bbVDE5gQL^e*oW*2@k);A#Ch3pB>2_$wEv);`~o_^cgpJT%o*l zy!diwSKkRc#}f`_da-_ypd3h4pxuciF20A@B+rkQrce{=!iFqUDV_UQ$quW-=HiOs)R_ zAG~8c_4UN8_IcE8>;KEu@cx717Qr9&!p=*sm|mGzY>a+k+p*?kn%LIFW_i>fnd)F`D!-7YG1_)#aR;g#sP~6XLR9g^)HQ+Q+aca|MzMstv zDjrVH#ieNZ{)8ZA^6i|KuRPA4<+XRc=02a8CG|_~_2#9drYfHFv*E=4FVE>^|FzE- zffUC)Smci+DH#_}PVEw+FpSZ>YTu6y|IQebe6Vdlau)x{9HHJqYae!NCZ7tDNuUSO zyb0&otA|GNePez-GZ)C9#xCQwFn*_O`Bl58Mp?L$*<|11Vf65+8M!fu&f{633E7kK z)MPbWe*!PaH)AK(#xrAMuCcPsiy0($uJ$9W?8!=5i5d-&T`x>9Q)j9(- z^&7+4KWV(Vy1HzpW{ZaASD+-jFOWn@zrLp03v|5oHa`t%dQEE_n^YyWX8f{93)D;D zu&Lcw_wb-VhG1o&ub@MPm_JKS%P;Ui^x4KV2IsOwUJx&e;~O`Yakx{P2(I5X`7}X! zq}*3cT$cri?D^vp1*pxObE%HAOKuz%r5qV5ybiXABVa0Y5oHf7>20V4!)pi4E|K!NL&&a=6S4q5XO3{4bT|F$>bMjZ45g zH9aA62;vBzFguPK5abgZ_kRpMliVd(7A|iZ0bneBGD_L!~`Lh*8 zMyRJlsYe$f$Tm)$fD+3C%d4VJFcC;9MVR)iQD7I%Qn7CeZj!|=3-9E3cKur%VDd*3 zyiNO`vxwu^_)Jb2scuPtz1=v_H2b&01ri3KKb!xxef?{jz-5}(w!~LZVRJK-hg9+D ziBv1U`|eP0G(NO0HDoJd#-vtfVsZOlU<+fXNregJVaT{MP_ZsBnS>6S!a)0-5AT4uN``t_>HlM ziI42;LGP%KR4EIkKvh@DvJD34+XNnWuvl`$Q=r!|1hF!illDz;=;l*^UxZod@ ziHjN`MXe}c_^;$@OD=h$T`y6i_`EBC(O%|4rL!(+(jfh;h$xeVIw_STjc7Bm&LQl_ zPFh{q+kd6of}EORX0NK|EOn@Os1KX4=To8>)~rfK%SncQ?8DDyekC)6)enRMw91-J zEa*awe$*#k%69OU_j%^^v)JSBu47N8UD9NfaxdtPNqak9i0xba4+$ljLK;i=b& zeOXH1X;UasI;Jzx(;4{{8#GhEU4$2p_@M(-*hVf#^|$8aA(TE-Chm%nCB5ugjhlxh zI^}k)F?L^n@o$AvLkkr=(_ntL=m&r4!^MxCmTHB|s$LrgGo2V|0ctoiRZ1@??;tmq zV%lK%1=APe$tToMrcX3s4}S$s01F`v6ncJ}%@k@QDmVa3a4rL>21Vzm>9=ZstAz+N zrCq(^iyPB3=O|^EbnIAZ!HObk$ayOf<>6i!C_x87jB60=`rCA~ov&LrCQKAUPn(2U zK0qn;9MRZXije_UFq=>bLf`Qf!HnUnXVlWRD1@&VQ`a%vsiW?#MA571%h!hz1#-&R z|1!Xo07Xdy3vlgNjv{dkdFK=~jL{j3_Tco*bO+ThxCl)>OFK$Ml3r00JFCCr%5c97 zVl!*J1|}(%C`SiRNo0CQW?@6FWiMb+Ndm0=c?nM9Y4W=-*~cH+z2PyAKGnl$VLDsr z&Yq)KfJb48A7`t~rTn-1sW@YN=u>)9jM_|7c#uRZ){{`w(pk9DF_#@n`|7?Hzp;_u z1fCWow#e6iky^(`2My$|0sY0WKA&ixQN>W6+=Zgq9{F_wly&B8u9Dia6`q0t1__mlp6(#PcvHjM>S@T4rgpH1s| zY-%)jvQTWkO`#P8%h-a6bn7=Z}YJG=OyW_ojCpgxj z5Ju!eRZ?!UB>{ka@Y(NGTBtj_i)qTJP+}Oiqmrhnzv^{0s51SRn3`VGHDe0Spv=;Z zD!;!ZWJAgCn6^D6FeYeR5s8ZD5~1^H#hR~F$ET3p$jtPR#m11K57Yjmw%(Qi%XASi zJpm5gyq(w`-|eO0n7{YMgKoN!)Iig(cwFayh_yoZb7V9$KbJ}rVE#hPnVMHth`R~` zA#Sa`F|+%(QSoJdi(!79D6l*}!rs1~Q&|kk3dD;At9;wDkU)s$Lp#WK>XsU44w%;K^mN3U>B)3sUBfvBu}m7V3QM3}63KIsyq7 zIyGhI;!QSE1YxMW=O894mzVXwWGQrd&}!_ZalvnEaof-i1rEV)t+6oI4bnL!X1Cov zA&=FjB$^mTUi^GgVs}ZBeD}nY=?TLmxkf!ByYgO{1dWJ$x9$1&`~0y{l07aT(l%-@ zehvg*Yj*wbX$|6CvIP&?0Cg!v0Sn2avhBUwa+jzzauSJS!SFG$TH{t00i(Y>!g`wo z650o`64u}P@R!#C;^u5n(cK5w*~a~G!#8oWeo|2O(g@~M{SySoT-M4nv$RuWQCr@% zCm%Cb#MJtouE-Fd5g!W)PPj0E3Qbfost)L087X#TEv z^KvDXOlAK&6?2oytoh_sWAffzMo_;IFny^HQp}za63vkjmssqTxlRZ%-lcA~$mRy^ z3i85aNE)v*X*8=_O68%#R)hX&(Ze+SzWM1d_v_qPuxY2vm$_Sp%hqeQ#hgJdB-KeR6G)v!3u2~ndwAlC7}I+ zu}x+--%p7>#^*i&>2tjLRt@$;-3G--dQ2WCc0_1)<$kb_c_mu>@4LAc+-? zs>EvVQ7liE#fXc)A{ExQ{p8$FarZavG~@NhZ~s$B`16r@gW4%r!kKFB?ZuU6>zUw5 zDp|sX1=|*zN|KPjg46Vm_2Qo!H@H`#JsHP1uP8(lqvn)_^u7%CE$Gki+>{*D<@~E2 z^&3(P5|vZ~`8}FK9@MD#7&SgDvx5A!)<>T|9jn|Fma_eiFYaa>&i5-JbUytHov~3N z%DGyuuwO-Sew|b?KOeG8J~QTQCKmr6mAi%@D(21*c45nqOU$!c@9up`MhUPz_IInS z!Q^f2e`Nn(<-GQs7|S#jBo-Wvi&`A=FWJ!)I)H=m%Xs7hO0|+eHVPYmin96V|KadF z`IXz@t6e1!jZtPaoJS-#2K=ME`2A>Zc&T%;D_BKvebba?6;LbBmlEKq zfaeix4B6eh6s*<>BIo>3_(2=Yf+~jPyURshFPH9kdD~6o;;oNIH(0OPw1tJPJ^JUb z;)yV8hSWxTQ9NKDCaZbHg&I}m)P62!Uk}b6-n}Eksg|ewpZR0B`XC#0$~$CtgMHW* zH7b#uMVDfTG@R>}_K;Fvu=_myKXcEtAQwD05u^=NJ7(BoMJYFcMvPwcybGR2c)+qC z*M9vCu`}oPF$h`$&nhIi4K}Ige!C4h*YN8Jno9ot1XwvfsyTthCc#B&3N)gDj6?|N z+O?3i(3eE~r#zyeUfcF9cQNds;k?MBOckN3h^5>}ppiVLsFe+&JVmK2RqgE&-(Zr3 z1;>`?Ai1Wym$lodrbaAUqU|zk?nbPZmy2DFS3U59cb^+0s zc!JQzFbNWSr62OD^gbt(`AcpfQTS@Elm1&TX7MmD3f}a57vzJA!Sl!mxJZp)+O@c) z+zKH@0Y{tm)OCALCqXFL;4|ae34*wnzd+RkfV05b)c;KcT}Xzneh={vy??Dolu1MA zz|)4gz5=K;4>?N5Ki9Hm5+2Vk#8ex0DA#{Mddz7r^j8Gi5({;!_(2&~69T3UVV#%C zxd~P>Rwmn$@0HdJ#{I6KMibORe#HSHCu+5c8x#$N@#bw(oP?;^>Keq?3rUfIcK*7JON zHB|tT$&nGM0-uY!ts-=A)QcRTK`w^JXK;;2pNvu`(-}(JO!I8lUBg7S^ibMj>lf{$;P@Nm?v zIRHY+0$LJ-SKkCudlA>(8hrV;o8eDi+F+gfZ!$G6BD@g!%nS4OZ!T(j!}3$VY5KQZ z4kke@JMVng6B86Hl&*|hd!3{atMS1# zRymk$bylwA>6obriB8bXpBLz}^TUlM=TU3Na?3}hS0`0Y8Qb?-mV@{SK3dl zRksEr%qsCjG9^|GG>(>;*(M;c^ZpkzHZveOPoWfabyKVlJYZ1v}BOJwsYY@I;=VSaHr zB@fqcV5pgq&&wPZF}mh7P)aCksWh6Pr~6M01$%e~;XLVC&@>y}DS{K1xAIo0mw=Vi zStw26>~58>?WqFhpM|}>4AksJaxDk{rG%zdgE)eygD7pC6^R;H-O$g@EC!p})Zf_- zG4aVJoLS#Fr)Z?yyoIqNp}Y_WaU66RCmtNPo@xkgb1`nfIsD_B8c`C`Na5vO zQ!)_*A7o6u9IY)=DJxc&2{F4>a7~LPB@A=Rt z%@k(m!ZoK)MOZS<*+;*_yvLLoyDSmCryX zPqxcEF_WTS?flD1_;fTOg#ww}rM+>tCfj|ydvi-M2r2J(vIc8;ZuTRaab3*h3C8s6 zN=v7oB2_a$;YolU3v+&)p2F6A$gJSw2yxX%Zf(r9B|0j`E*^ zd|XwpC+#%i3IqZfn5bk9sz?%O;xtpy(sHv+&_j=Ua)KYcWc2y3zco@#nAlcYCyiwS zRXl80Vg;(0$-s{{!Ed2j_7sR6jePjssfc${Fg-$pf>;{!X2*1@F;?{#cy| zU{l9maKkJPRO6>gru)Y!VHPtmro7vNjyjvl~$y~u(+9$YG?B@fOfWj4OX6FGe; zqR-Yx?twDrCsUjy>g5@+sls!01zQH!MQaqU7fkg(Q>lB53LZT(IO%)mq(}&X7y)wr zbQi5n2ylBl*&|c5iuE2qWoq3lCbtUctcp%U)!-NTTlXN4C#u`8(t9KPgiva++2hgH zuWaGP0*W)_9i=b$fihjMXdg3EM#*wc#aQv7`jXfDikEe+Gc1EwvmRl&3yIZ^=(Zzb*;l(w4Wf%673{O3my#l;Y7u$Z}TYU!ZOxU zdG1p#{9a^1bGpAr<<=YUvtvN9F{aYDLH3jB`I}fVmqMuoql-J~Sk2XXx37KRiIzRk zGtm5*hnQQ-gtp(StnwujV`t*djyu)^xo~lg>BqhUKZqegw9+qXmJN>Plx5}GN%!Z2V(=343rQ^z&EMmwsvpN8Q(Y? zxRzNuXa0d@a=Kq&59&^YTX2QpH;$?Cbk#m5Wz$4X9-L{cY|qd|r*NQh&6pnqBG^lt zkS~u3;p)iTl-yxFR>ive(cFODR!f&as-=6Q@ef zeq)P#xkQklU*-Fw%c!o?xJEHlTgQ5H4%$z=!ty9De){!eFREoibY`5d(54#7NjU&F zY9A|*ozNr^;Qnw=)~&WF2)zC?EwVxSRZTCKwSH{6gg^4Iebi4}n3|G@X0kAztkJK> zp*d-~Sp+o`>o{W|9UI>eH@}r!wcL2E;ROIc+uc@5>y#|naKcO z9>L%7WRheb}t7XwO_;3y?MC9!wiAE(JkVFGtb8iEo$@h z>8RvtJ>TitKisKgCZEnW{%lf}Fk5pNw>Fl}GnJf@uI$;^)}SB9q|*IG_Ye(tx|Wsl zJkh%KT^i+`Zcc5UgZKMAsORDgvOO-caZ6D9sr0D`&2*3Pg>JRjf`HvYf%5n%RLDxI z3ljI=mrFTLwZKKQTSS>zwcItnEZbT39M<7>;`&j*nh!M*=ktfvOeC|6ibHnu`3wcb zR=lokF^jR&t|~zax-`rrE%PbY82fhRc$jkr_D2=-_0jptY^aDZ&%wli?O9YITE*>9 zKn&DmLSL5E17Bvpa0j8_1q=MXzIplAU~YQ~Xl9gzM1ZKB6#lhILCIXXVxE!)2b;-FBP*9Z0In1+PpqYHn@S zL3uo`JY#=cyT>QRP26rgE^9-19A@50r727V?8g89`TsNrycEs_^em*>-_cs^Uk*fB MK|{XynfcrQ2T6E!!vFvP literal 0 HcmV?d00001 diff --git a/docs/istio-on-karmada.md b/docs/istio-on-karmada.md new file mode 100644 index 000000000..2a8c7b572 --- /dev/null +++ b/docs/istio-on-karmada.md @@ -0,0 +1,467 @@ +# Use Istio on Karmada + +This document uses an example to demonstrate how to use [Istio](https://istio.io/) on Karmada. + +Follow this guide to install the Istio control plane on `karmada-host` (the primary cluster) and configure `member1` and `member2` (the remote cluster) to use the control plane in `karmada-host`. All clusters reside on the network1 network, meaning there is direct connectivity between the pods in both clusters. + + + +## Install Karmada + +### Install karmada control plane + +Following the steps [Install karmada control plane](https://github.com/karmada-io/karmada#install-karmada-control-plane) in Quick Start, you can get a Karmada. + +## Deploy Istio + +*** +If you are testing multicluster setup on `kind` you can use [MetalLB](https://metallb.universe.tf/installation/) to make use of `EXTERNAL-IP` for `LoadBalancer` services. +*** + +### Install istioctl +Please refer to the [istioctl](https://istio.io/latest/docs/setup/getting-started/#download) Installation. + +### Prepare CA certificates + +Following the steps [plug-in-certificates-and-key-into-the-cluster](https://istio.io/latest/docs/tasks/security/cert-management/plugin-ca-cert/#plug-in-certificates-and-key-into-the-cluster) to configure Istio CA. + +Replace the cluster name `cluster1` with `primary`, the output will looks like as follwing: +```bash +root@karmada-demo istio-on-karmada# tree certs +certs +├── primary +│   ├── ca-cert.pem +│   ├── ca-key.pem +│   ├── cert-chain.pem +│   └── root-cert.pem +├── root-ca.conf +├── root-cert.csr +├── root-cert.pem +├── root-cert.srl +└── root-key.pem +``` +### Install Istio on karmada-apiserver + +Export `KUBECONFIG` and switch to `karmada apiserver`: + +``` +# export KUBECONFIG=$HOME/.kube/karmada.config + +# kubectl config use-context karmada-apiserver +``` + +Create a secret `cacerts` in `istio-system` namespace: +```bash +kubectl create namespace istio-system +kubectl create secret generic cacerts -n istio-system \ + --from-file=certs/primary/ca-cert.pem \ + --from-file=certs/primary/ca-key.pem \ + --from-file=certs/primary/root-cert.pem \ + --from-file=certs/primary/cert-chain.pem +``` + +Create a propagation policy for `cacert` secret: +```bash +cat < kind-karmada.yaml +``` + +```bash +kubectl create secret generic istio-kubeconfig --from-file=config=kind-karmada.yaml -nistio-system +``` + +3. Install istio control plane + +```bash +cat < istio-remote-secret-member1.yaml +``` + +### Prepare member2 cluster secret + +1. Export `KUBECONFIG` and switch to `karmada member2`: +```bash +export KUBECONFIG="$HOME/.kube/members.config" +kubectl config use-context member2 +``` + +2. Create istio remote secret for member1: +```bash +istioctl x create-remote-secret --name=member2 > istio-remote-secret-member2.yaml +``` + +### Apply istio remote secret + +Export `KUBECONFIG` and switch to `karmada apiserver`: + +``` +# export KUBECONFIG=$HOME/.kube/karmada.config + +# kubectl config use-context karmada-apiserver +``` + +Apply istio remote secret: +```bash +kubectl apply -f istio-remote-secret-member1.yaml + +kubectl apply -f istio-remote-secret-member2.yaml +``` + + +### Install istio remote + +1. Install istio remote member1 + +Export `KUBECONFIG` and switch to `karmada member1`: +```bash +export KUBECONFIG="$HOME/.kube/members.config" +kubectl config use-context member1 +``` + +```bash +cat <