From dd5ad305a6ad84c6642253ea255c9799740b1b0f Mon Sep 17 00:00:00 2001 From: Dmitriy Rabotyagov Date: Sun, 19 Jan 2025 20:38:01 +0100 Subject: [PATCH] [doc] Add multi-AZ deployment configuration sample Change-Id: I20287ea9272d90f73ba4373131d83a37335e2c53 --- .../figures/az-balancing-diagram.drawio.png | Bin 0 -> 214396 bytes .../user/figures/az-layout-general.drawio.png | Bin 0 -> 83701 bytes doc/source/user/index.rst | 1 + doc/source/user/l3pods/multi_az.rst | 323 ++++++++++++++++++ doc/source/user/prod/haproxy_in_lxc.rst | 21 +- etc/openstack_deploy/env.d/az.yml.example | 36 ++ .../env.d/ceph.yml.az.example | 172 ++++++++++ .../env.d/haproxy.yml.container.example | 14 + .../haproxy/first_backend.yml.az.example | 55 +++ .../haproxy/keepalived.yml.az.example | 93 +++++ .../haproxy/lxc_network.yml.example | 8 + .../openstack_user_config.yml.az.example | 286 ++++++++++++++++ .../user_networks.yml.az.example | 208 +++++++++++ .../user_variables.yml.az.example | 118 +++++++ 14 files changed, 1319 insertions(+), 16 deletions(-) create mode 100644 doc/source/user/figures/az-balancing-diagram.drawio.png create mode 100644 doc/source/user/figures/az-layout-general.drawio.png create mode 100644 doc/source/user/l3pods/multi_az.rst create mode 100644 etc/openstack_deploy/env.d/az.yml.example create mode 100644 etc/openstack_deploy/env.d/ceph.yml.az.example create mode 100644 etc/openstack_deploy/env.d/haproxy.yml.container.example create mode 100644 etc/openstack_deploy/group_vars/haproxy/first_backend.yml.az.example create mode 100644 etc/openstack_deploy/group_vars/haproxy/keepalived.yml.az.example create mode 100644 etc/openstack_deploy/group_vars/haproxy/lxc_network.yml.example create mode 100644 etc/openstack_deploy/openstack_user_config.yml.az.example create mode 100644 etc/openstack_deploy/user_networks.yml.az.example create mode 100644 etc/openstack_deploy/user_variables.yml.az.example diff --git a/doc/source/user/figures/az-balancing-diagram.drawio.png b/doc/source/user/figures/az-balancing-diagram.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..1322bb5f4ea73376cb8f44cb7ff9e378c36318c2 GIT binary patch literal 214396 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%0D?SG2=9bclay~n23=o2wD!tESU5f&j%D}su>Qbe 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 z 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 HP6*vG4 literal 0 HcmV?d00001 diff --git a/doc/source/user/figures/az-layout-general.drawio.png b/doc/source/user/figures/az-layout-general.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..49fc51a6350d96f428f54b10a3186f9217fdb2ec GIT binary patch literal 83701 zcmeFZ2|Sc--!~qSp-l-zwj@PHjGa*0g;Gei#E>i_gRzXgQpuK(y@g~i>oCkjix^9h zeVGwPwiyhDZ2x1V>+b5hpXYtw|MNc2=f3W@&vkvoc^>Dn{PyE_e1FH?bGj!tbMSGj zTeoiW=~Kt_*R5lrtXsF#_lW;401mhE}Yc2>!@Z^LHOa^+0@gI12!P3Uk#qOsr7;{2e zSvtVKPa6EmcybltVhwls{s?@=c;pUuLE0gl)|x4R{=fue#bC$94jlon8UMqy*47LD zaIyqruhQWhShAGN_fG7rzdy5cwXry6dtKH=N#6ddj+ERbH!a&=d;8I+qsK`XOXq7k z2y3_l=-ArhdlxctFuCuYT6=zfqNun!BiTc?E;(|c^xtR^ZVQqD5ZJfcv|I|CN9(nvAg@_kBT(NvSbg*}TfP(W2RU63 z2+-e8T>JU;k4BCjT5tyjwSN$DZ5$vt|L5QSu}+siME}3i9l{3YbrflL83tFBvp8?% z>T<*Fh7@eAM|VpHw>6?4xeWVGN2IIg5Ak+ExH(zF8EgX5dK7id&J}*a+0u&f1quim zcy`Uz(EcS7QNFfGNWmZ@w?m+48^BSjha)`F{grvF2QV zvK4ktHZGQj{xiv7_=*49Zp6{f+M408{@0%5kCwl9lB+V-);0`(@fS}bb4U@U%;@`n zL^$Nv%KgCkB4E#{XIL_P@cn|Kp(k4;%ZxjO+hs`KxmOYgl8L z;=heGmRS>mzX->Fw&VLP9Ke`^pa5*0{>i3K`QJx4)`Z|E;rMs7^{^k?^0nYfPIhhG ze?wdU*U0<-0cQ>Skwf{xK-k}xfoqA^|1OoYK4b-lgPhi1_cQVe@-mA5WBZvOVeT5o zR|70WoA8>LCKT3=F|_luK* z{Se&0pOIu(4n~saCzboR`l;?8jl!S_JZUwvK<@X0KVt|6)@7U(-6me#uGx zovq_vx7+`Y)=~afj{S{e$N%mV-+zq=MB&h%^ZtKl>-g7{$eMLr3o8F_oz?$~aP9}T z?T26cSBf2B0FZp*KR}wUzWWoX_h+o%>f0YM;_olkJ^)S%BzhUZRi>z=?d#SFuRDG0 z$VCtHu^#qEJ6c*+CbcfQM(ncLvw_X##F67X+n8e4t>@c*-1yjMfB#QA-(jfxUwk?! zLD?tabY)LGr_A|tJ4)W}WQx5b>~#Ozm#WA9{8`t|^{ajZ7?@n(O}ZBYXR`qt3Pl8v8f=`}Tv z!3K4%&{9@D;1(!dBu`V98Zno5+(yu;<7TIo`Joi;;4K2FMtSD4KHsLZ z>4e+gr)s_Zlo#&s;=~)5(VUXn?ouRtW~3$m%@);DZf-^Qcfn4~b|LU*2dAiO&BY?7 z(F+U26{sQ+T~L>zVS!tkHL)Y&D(>%A)^AXwo$YY%axBP<3*~%y+@I7CqkHaTEAwb; zPE?Y6=jqmLW3KX{)F|BtsuYZ9B&h-2tnuZJ=-b7|FzXMTf!J*9`|s0=V|kE_NKf%C zJNxL6$o{P3Aw2rV#s@-pq#j7)7xjxfuS=HF8dL{)@pH$Y=g*_Q)2Mhqn431<`AwYy ztiRW5RBHa)XkMC0iPKaatnt+8)9hwinxTNI@rLKG?VpInFCGt5Cht_9BLxlCh^IXK z^5v>=nQMjvera}QkIzht(bZ*yb{?Ccho-LDG@wZEDI6f-aG^|JRIj5bO| z4mI3J-nVd+A!QS1g=^+#=la75{!Htw6C8^p0Ymj}ZxP_ThNt&>yR=&d*No=jq2h_o zfoJ38Y6_svW$~;KiX5u3xpRR|6=HGc64%}2+kQyn;^Jhu-wx!w8&sO+OM7L6ycJLy z-*D3-0avFu*B_>;ORi6d{U#oWH7)eq%8*n|E#}h=B|^&+!BbyCq-&4!nq8!h@AX~m z7a}z4X-K6fxyN_A5TxWbuZny?BI|=h#J$x*!(-fZ~7 z%SG3t9ZGuKl~cG7$AnKa1!DIWDH~cdA>m1--5qG_nV_xe5j9cbgtS<5J{AO$TxU1E zY?Nzy;IP+p1d8Zm1SCh%6ZEQxb?7v8b6%bwVyhl&O4D{uBhIv0G;*UtTgjVO<#03m zUS(n(_W)U9hC$-W3cuN2Z)$z5Y(b-`kCX4~xWnEGp<1h2EG!iB_R~8#EpHMF+B1O4B*EP^mg(uXB%E8>?a+rL)N1In7K* zC)9PUU8a2~0fCGA=3UGt6RVrRc6J9hcMYvkLud@u96Nt0x0HigPHTv=SQ;^^jP|un zys@FutoVaNFhe>b&I2~vP$sQxdV__0ccO2;z)5a-A1)+h8rqhwC*(QXVGC<*-0)q= zK8r^Tpb4LuXoO5k50-6f`lVM_k59marCH=4oZWU`x640gIs0;UBr9)&(5Q^Yxks_3 z`d2CgSzRclLmP~$;0vjE+@#WOB^)3$DSR-OCmI3183 zS8#6%pbuMH^2-^+xu+31%~jPw|=UaOn?KB)h1Tvjqf# zNpRmx3L@{hlKT?I6z`d4(TN87!lu~d)R7N&p7AfWJ@Pzu-g3Zy{T4{_L2F8=EhRE` zJcI-_IZ(XHl@BLg$ISDzdaW$c*)+Q4?3(ssZXHwdE>PwzKJuMwJ6>Ai;x4gBUu7c88?8uK6RnTx) zoKDy1dD?25;={AZsc&M!kCtn_=@D9bHl7sr?#_3O1*@!2j4I8nKoD`2I#@mB!H1+^ ze)I2K7}#^}D`45+btg7UXzL+quGYBVZOarCK5BNnYslryPn1wFe66C>l2W28)Y zZlcIjN0tnV4>)6a6$WD$?k<@TEuTjZm|)i*->` z$)4n09X1J$E)T>ogu9`Nt9szD=gJ#&f}GuhMD$cmrF0Rn$`TizpY7{^m3@)naso~< z-%3OX`AnamV9!~i6Y;&sxoVAN5jFwW2#2B;!>M{j;xQGy-us&RU|y$BBNG!@>$oiR zl=@g0UNVT3lbxO2>vMSeqn68DUohK>4aE}m^-1ssKSf2caUvf72+_1}4i>&n5pP*D zbKE&LYd3XOeNOT2pGISWdl&>_uu+iWI+BrI3kEYCiZyrr9>4^cvT(=~8D4Ps;}flk zi>^q-w9q1nEg{+uL^*`XY9U}xOXXtdJI?x(a<5G9Rx$}#zg6wrGBBrv^Ctzw{1&>1 zeCUMv(9;G62Aq^Q@3uJa_P93S;6_Q$3dkiA;UM~O?jPST9f;lURnE)cn(&VO18CS* zTUn#W3F70SAbQ9xCG+tGF|^HJ^C0uBcm$dEJbCB{ZCg7*8gB~4&3#cBvdV=jZnf|N z=Gl7s>nE3?B-DEs+!#v$8VJy!$)lx{+kuPTn(Ek9T-mY?W>W`AhG5g$FgN-KGP80y z)Hm4UEb)`?`H!5l%`IDK$@3K>M-Ft9UoO11ZSnbY91tpnK!?>Syc7#K+MswLwp5uO z$htALtn9L&?_A#o+vNE)qZ>D5>W_UlJ(7%8G+Nh9cCLZxX1%TIIdCVo8+9_(EN*$1 zUhTn@^nA{^5VU}aPp?y$)_jw#`!JOA)H#0=^oYZj77r#`!gel993fF-aYCyD7_1UZ z6o_AHfW8Z|_>e~e46+PsxQ$FdeO;e`7~6bUC!Cb~DY2Z1LBA_pjG>W5Nu_u_g}jC& zRRVDR$@R~_Pv2kDIn6}G&lje_mh9Se`p7j~bMnxKsVSF?jEu;YWjg*U^y4E1$N0ss zCpDg$KwfMU#$0HY(AX$X-+zcMp|mhoF!-JyQO8lKraWu0@-21@sB2}lJv$};s+H)f zJhQNJ0Jqu#i8XaOZD_0Q9Lvqc|6LOpjMc_ZRCQk+F79%QinZ`n_PAc=>E8#UmVv;H z(1?5YIKJKTmtYE1H5h+-iP77tjri$@1q+0N9+n$gjh23ik{_P|_S^uwpXaCcKl*sh z3p%w>srTIT%SVhqUu*}9Y=PcewU57yIl%}(V|9_q-|hLI!|Y5jn~OyuSGWE05#vuZ zpd2l&IZ>P;wyU!Hk01YqB|fh4J-mQU&%FA5ws-bUd_gvz@WRI^N~0YxG5Q%?jMWQo z2nY+-4Yib>r9QRM=UNC!J-W)9b}-?q&#X^^Dfw>!6cO-wdS>;-dv?xl`G%03)s?tH zQUkHZdU|c=Weis7HL&+%IE0lkr;VrUT&#fweuw37~PP|*CL>ve_W%*yRGU(#34kqDq_}Nv)oFA;K zG~27*d!Iq4D;XfhP78fypcX6-!Dr+8L48h?o z&*~h%0Xj|3+`k9D2ln}o!TtTyz#lORxARv;a}W6b_?Q0rUly`1pboT(3vFj+%uzE1 ztOS>QUgnpY#ErZex|a7D(lep(0a zM4MmBc$E;5fDn5oCvARNh`*){m~Y()hX4jmf9A>0gF`M!Xgb^4S?yo-Cc;1Q_veLh zemDpM=8ij3t2F(YCqE6oj!7Gc%|XXa@KsatGk<>z*Kgtalkxa1T)!>XI_95@$ImAC zx8?fxbc=+K1)bcZ1GxE+H1~J0`dAmUmorGJPi9{8#rytj%+YD}fd$zI?e~$X(eUF< zSV!&Qmf|!v+mxjP+q>b2!Ks)Kqukg7dD#)22BYs5d&+I_E4K*gb)_PY4IgI~+MV+@ z7*@EtY~JxS<03V`;v%)lbX;YNL`275_Qlid9Up)e_Lj5srWO*;x27!QUc*a1wl=9 zp>8Pq^(S6_Rk; zEjS5Y{l(_$vXi+$=h)ZIHrAmae=g>f+zw}hvGgoFCyjnf$cJySg8Xd7FFKojGK^w= z!0MZu^Or=VGCN2CexAmOZyHnBJo*UX<$Y#wncW&jl+aG7{g4ZnoqcV%%;czM6{w28 zEVMdgog%)K$u`SGIBVXpNe)7NKRboOZR@`Kp-8Xob7>iL(T14*rXk~{Eu%$GCZ$+$#Q}k`yMv z$|RxD-o!zJMyWicn*gmor5E|!7xGz^cqYDfKlnZ`NEMk^_5@XbItNYL?B|LXG(A65 zO=oUsy1)cu*|&^zl6Xy<eTFB%;~Y8cPE`;Yg+{bBPC)nKb_Xe)B5t-ZWXg_X1k9O3COf+PX8r1y1)UgevAI09# z`Zn>Z9fR{~-^zTCwQh;}UPDe&DX6x|Mt1yWufB0{pQRiW2cdM2W_qrBm(d*iA#rQ# z2Jvb%GOs#u8*?cnwXr0#>A7q_#{KHDE66(xncLQ{->>U~zFU_8$Cb93H9!KoSx4$h z9z2(|@=(o?xPiiXa(CY{>bzm+MzIhs=VCHqtvea=Ue8a#gD;1jN>28R$V!(0#4mFH z*hAg$1aP;a*X0D{8270Z#J)lk=NPP>fjB0l?DClR%Hsv%=A)|Q1fPm0dssN6&e`Ik z<)T@i^&}yBSy01IdS*0KQ$O0@?-%t4XDh?R#b8v{gM_d#8_VcV+Iuh|PS=_RtHP_} zg|0tBD7f9e%=z-9un#V@8+&%&ri{XL%uY!WOvtw8K(kvy;c%Ss$4zHI;2fYr%R$DS zReD=LPX>vWWnm6=b?afH-EfgBcm3zde!UgpY%LhCMpY1C^O$Ucr)t~@oab4;AFKJ= z5=aAi) zUg*QybPFC@VF&w3_b78m6BV}yK+p=2vkUg{i2+m`!l^K-KvQ^IfHN*Gy}sAigFmA; z&2vw+&WJE0nKVRKDzFDKz7U6)H?W~XFk%t$2(hl(@!-P9kuxRa1X`t8_-OJ2G08S| zJt3FTjZpR^mtj_#JRh@3@#K-$yTE`3F$&Q} z0$3uDN`8WC-d%ZpZ2Ua=grf3BmIqv?>H*`YGOg%XqzWcM1#x3yN5_^NlUmH1g?%Mg zm9{fOltiuw8lIJqL`epQQ477LGlfAm5Rv zifmLhG6x$?Rpr4@ZkNvfI>n`=flZwI?`vMi3FsdXRmH-HiCZX_&8E)1ygYZu!4h{( zNrJhPwW|7l$pOcGwB2PRVIa)Pdj*O2VX(|yVF3Ux?HMkEQK(nA&P4r(0 zV8*=2CJv9rAWU0X^=Ub&8Rg`U2B?M&sJ`_FFr5u=@(gu%1?*(4B6eb?9~uW@ck-TM za_3f$2%I-uhu(76UyHd9jT}Buz=A5{y*8)GK~A8k>mO#m#dE4&F*sRv)WNyB#r@W@ zOWzy>BNFi~Csd1GCW>jUP$=!xMXkILWHMo?nkP3^P#_csW3$qh$`<$1(n%-_=L<=| zzb!qZ4K<`N@2<(Tkaf&AIBw#L;@poS#FGzcJM#{WoN~A5s~FEz9Xt4JVdm5-|g>cZl%9WrDx1MMQ*?{_cCC``OA z0y3lZ_Y~vU^dC)x&D$JT-OtQ4!<;d1SXxoH^SK{Rc~|!ghH}6--zCX(r9dkcegifW z62=Ag;Z+>yGMl7C6t!Q!??W}5ox*`le!9DYK()87$(*Sx*?)(TKhy_(kw0ijfSEuk zP%iN9Iys?ti@q|mJ9{cQL3C?|GZeE?W1oFY{lJCrm-aK~HiHBZxASm+J_|}E)^bk9 zn4HkCd|sZpm;*C?15m@ns3T^SLt`HS-Q1y(dE&JpQ>;34)YO?*T_tA( zzLezj)eJdMN>`5t2L4pAf@&u&=EYVfmWPm=;oPV`CT`x%++AfqWKRLmZH}Jkk1$(ju(k{u_z;G1#q=P*rfgn+X zN^;D|&jpN=+4}rrhZ-RG)qu}vNjr&+Cq|PI;1pb1?hMFZdxONp*zj>HN#nWp36hjR zmh`nTlbp_EQbVTuxlPOs;CN}+5ni9FE~L8n0}HV4$Rs0A<-L8+QRnnBpB>@;MIcer zT6`k4MQkf;%j7ZRkc4A)kp0|BlvcK&+E@$qW5c_^tR*R~#d%|jd9p;;;;_tZFUyrdXWS{amU~eWW_)uOh~&bF7I5;H2ohZ`tv3Yk zlAyXevmlcNUCsCy{BHi6GQWl3w|aE`7J}bG@LLFeJ4)k!K_Mu3l`R(18`Hd{SFhN< z_3U%p?D>JKEA;Ua*_jyo!C|)LJ(BA4m(JAUq&0*VOoqMN^+c)ICj!}KMfw!%@O970 zjFSVjK|-o^ut2IwiV)$Gt?7P^7cXi@Fc%P|C!TkEq%HcsKWNvLp>0UDd{zZcxwvs` zr5C}eQV1W_F55qk<~W!xM3_FUNYK{P5E1gbB&idBr_c$TFulv;=BDNO15K{jaX#&u zSyl$@Wu4ci;Jug-rbsjE9TRT2oH^^##qrkB!8AYheJOtBruPUqX>UrK$rg=C*Nz-<- zgxq{|%~j(Pn<6<$Xr$zGwLRl1<3;bR@bgVHm*H2zgtpNYaC9CE9YmzFpymtehmzST zQyB!DRshED<)=eL9{dH-*!z43v(y)k#iOa-`4jtzB}_BI1cWrR@b9W@G5~y%EbNS4@3x zOh!*tvU0aKsOS5w{nTeVBnm#ph_{5X7f8n3h%xh$j&)oKVm+Roxx zqBegusM>GoU5Cp%>606dq}}lr(d7C{ z-ig_6d`Y7Bn`0f8>8%0pyYlLy?Hkq9G0b^X(zAhbqTbb{OHgp`=oti|xGH>z%=B5D z9}j%CR0gS_P~uBImo%bqH=w|nA=3Q4_wE2J~n(*@>RaRI^7wDolzL79U= zCA_tziroj;HtjM@k3rz)FF)5SJHG7F&pkD+NK6GlPiUT0h|drU>Q&Ufe62w2u}8|M z>X?fgOFSEwwS19_=PRXOIxP$ln!YSZjY1w}5vm1zUI1v@v3>Zt;=*>z>PNTQ%@V<` z<;L}WCDOSV?S^>Kcj8wT&?eLGnU(1;*QZ`vAj=MSw559587D>I$1qQ(YRCL)CYq%q zB8NF7fl0p|_phvu=U5IhH`&XDaTqLEym9N?&gM zBf;fnN0+w2eruwTkVI_veA{Pyp7DIC>0I;jR3Dc5fnMBs#@Bs0ZHkoS7a=dHu9xbh zvs74N7^vE%deP5^v40_Zw}AC|=Pl$cE*0}zuLN!QaJ)n>qr^-UJATk2+guD^VO!=p z?(>)`RrGCfw&UZP@dg8rzcYz+3q(MoqScopFi)N5 zi4zv?MVnM+V-o}xl31k)^CuUT+N&SV3#Bgm46{*dYnI9gxk=dC19^JolIo&gfS5%82%SPl`}X zh1YCLtA5^y7^bZU?U2hAuYm-yI%#SJ zi!+cB#v4#4lhC={8hxF@mn6F;+48>?G!6im>Xu#~atoKfB9lCRc;#!w%EsiYwt`bv ze53F_H%?CsiHQ0|a!|G`yvvxH5JKoYaUFN_U!3g?9;i^Xh_Vn+-3w`qcQV?WqoBUo z-E*9+GPJ0Ev|T2)CQ>{l%8UAS{p@yHP^}nOdM$408)AcF?jj6-L^jWR2>RebzCa*8 z@7v-9&;EDHO|*zNfx=DYV8d^ozS&^ah^`S;_`~;6s zbP@UpSGRHR;|;YSZPuaaXaFNBxQ+o3dSo13_rYmAzhr$pFQGmhFDymqx@Mn_nqg?W z%c}7{?reKhj>f0*ZPPCIZ>*JyZ(AhQqxc&RAHYa7nC7C}5*07>#dZ`w(aw1zNvS(| zLFbaZV|THr)?JOxtXf{nI?haRq?T&*WL=?1w|XrrtmEy z{F1S!iaWg$NW|MHJ1L7C6Y;jir3|k;=pkZV_%(c=paxg+V)(_eGLg4gR4^a9isK6v z22OVyC#e$AUZyvCv?A0qwo?PI>C1 z5F&EL+tJq{UYk{oYZ@mVsmxLf+9cpgG=TzMp!(?#J~q(ypSEAeho4KSBY`oZd)RSIs zbb(%~z4F0+&b9pZ^|LE4#&Yy3_BwWs_mXa~GxUg|K+We`z+u5mb8A7(bWrFhtsbp5 zOMYeh0sp**_oln88Pa~@?O}5jkgRf@wriFEk~OPi(t>L&(OG~yWw`cx;&&jm_t9WN zM$ugrPXW!xw=zImHL@7{uV;!5feGI20r63G5H<>mJ+VR1yUAw1&AO$@TJ3>B+vIE- z;$0fNay>NJ@9J&zLcO9J#ehx_a@$x{p}jI!LQ?lkz%>c!PR7O(yT(K@!(Cj!H0m-Y z5lm{x!P%)MFtlF{AowTy^^{MT$1O>BcqKe{X_!HsntA=C^YT|W5WlE&>8%NkCr*A2 zR=GU>ZgC9tEn2bW$eZvri&;?E!$5Vte@b#{u}%4~D;OB2^irVh+pehlnv|Nb*%_1~ z&)LmIwoOY?d{JMV;}-J72L_1d(!pUWmawlVp7Mi3LX%c@y-zPL%Tkx56aq;N6t^>A zU=0R=b-Fs*CxUcD02bNh8zM|Y!h;l5n%;xyTHd|Ld_NWn09R&999az04NTR70e-941s;WMfDgDZZYt_3jOLX_s*S;QZtzh8R^nt$jCtsiXf(+?$Ria zk7>n@NhqojXqwl3QS%*8tP5iGoj41Pcoj1oi}dd=Ch?3EU_S9vF}gojnYX z!^4UyF-I4x-5~ZfjYhl~sA8u(Y?uX3BpREG**`}_c#U~>l=@VYs6yp4&l8m&$I988 z?^f$622ssO1=+5^c5~*IVrA<4yG`_$DGZ;pJdq0;1K-xBVnE@sRO7ZM=}0&uo}Qcx3wXUQtzpqG*$q$p--I z-O7S;mwuNBj0)jy4hgXbBk8fReE;j)LJo|YnU}Civ#5PK15dlsPYo@3$+r)U$ID0M z6!*RlaeF+omtpro)UayzyU+{NSc_UaHmYO_x^ORM=8bY&kKkfpZF$|&r#ubYLi8)I zXvV(B(<{ofo5zcz-cdh)xECJFikFvJ!Fo20 z-6}a7V;;Qa^b_A=bjE#wRtt6W{7c1B5)bZ~(IdiR(ZcqIxe#A|WXqD?hX!xg+IAMo zjo8Q!wVS~if`j(^rvL=H{ne38%nFNFq6W|#snn>=JeR$E@_|^IjL7iOI)}vC%en=SpivP?E5I__TF4rJGv3p8 z{KB=?ICOICldQ)#F9m>QcX-Hw-CSvAxr98dQfZd!Ql2NnjH@sC_bQc_3r^eZp^IhFL0d8m&HJZi@!oZ{8o*~$*uJd0J5sK zkju+n60cj~^G!f-aYb64o;^bQQ0!q8h^>s`tr?@^ui)Ta9-t^XARFMq3@Zq;0Cs6s z;1!<3FO}${bMA7rR(j{ zVjrpVLd=l;j7r0%7hbilgZHq_f|=0(jC}<+YG5cFO zT}gI)!wG>yspQ>S_u44Uj({uTxy1EsTo*)bbsxSk^8! zqi*i|>P-Q8UN)ts08m|5a_SzV=t_Yb0N`%16+U>yR;<7IEjP#;pjwcG!I7aj#2QWs zAnOjB)U=zI4J9Cry5knQ;=&2>Y!@D}U7TQ)U47wHqV`q~Hp`D%Q#{#D!{aDyM9%Ja zul773R{wz`evm$N2cjeeAWy8eZV>?Xl-U>!V*3S~w%q7SI*jP*9uDwDM#A#M6R3#H z?W>5bhJy))v1&WA1qIJpQhB#Ui#*nO9W7qVhYD16%%ZNenam~_#UZ@9P7XpY9U#?m z!8b!IlcKc`W<9OVwZ*|%->p)~UsCU(y!eJF^%`=rYTRHaz-Q0Cl;^b>S0I4nhl3$UXA$dlG1$BO! zW1;t5R-1O)-MW%0_kd@jq}!TF^X|#~wE7xS!@-ga8V@0EYXh&ZegAu2A=?1WCoEOO zR?LK4$Hxd#?zyZ3$^Cx-Po)HPX9N997%J7(Jc`Vm&4F4bT0|{*&CWM0!dsi0lZHJ#TFeMvY#27^2Dw~m8w=;D z6R(TByKY?v`{wKvw4hk|NZ5Rg9(*>`AIqHE(*+&d0dTYO{N`@e=w_mJ!@7W@5R5wl z`|;y2sln6@HD`vjuBmma;=0E%34bHA?W5$O@w8jAOKG<%*)c8%)j;gVY3K(X2}Prx z&GC!5pL0zc(a7gni4f)*fb&)~qBx#(R#c387xnslodGK7IZm=DD-OZ#jD)ZxZhrwI z?k+7!;;l?lu9;vjP>qp`dP5)H4>aHX`VALZP?Cw){3h1gtov1}qOK9W>1+z%*Y!%dNuctgI|D|(r>fYwOWo2PlrL0Dr_asThvHm#AOjZw zmYu&G< ziezPys{Kl)Z49Ah#k>KHOixQ>XZGX*z;fu}h&=)TZiyg>PYPJfbi0&(^CX*mnb^(A zbc@-IoS?Ne^%UY3V|9Jg6JZNI2NtiVTC;5DJVcxpUqFCXvb=Ow76*0R0^ez_XT44T^|BRU{q@ z6G{|9yT(XT6BpwLQ#tSKC23!?jQ~ZOQrx4x4ipq>WLiviD5$7TakNb92xNyjpxaDu zX{p*2&Ha|NgdR62hi5O=#LCmLsxy;fvgtANhL3riFR^6v07gk95JcZ}uVUnF-o;HY zz@n+{gJs}83nc#LlLhxeFB$#a%#Z;K;iY5>fM~Y znEOa04&iy!rUbHo2cV!qnhw0uSYSu;@mVo0P;8S1*Jd>Pw%Y7+*@-03AK=?6#1ng% zSk6JInxKF}o*?huIDRjBFSrC}#lmnm69AevrKk@~Ra-Tyg7aOf*M0ps_VMTC`Fk)! z0yL?6d#T4?Z)V`=87;7&;^2K}&-6iX@;*4jU3r*Vw_efNLYsWNej+?2I0bLr_W* zV8?_x+g(?o^d`XQk%(#o4>VR&6YoE7qme~kFGD|iNbkOUo&w_qg5!Is%?p4yE{^r1)i02srW!M>9%N$GM6T6nOeHaBCC7T< zGm*b^xqUYi%hdiWxXOe!P;CV9h0$u_-DI)kAQH8YU}}jfOb;--22dQ;$FKF}j&7WI zgy2!Q_kgoKP*Z_cZ)&NSpOq3|cIu?_P+RPIA0|OseV+X5juGAu*BP}Qk;xm}ErUU! zmGS7l*D#?cNwi*DS-0h@OBU>jOd#;t*}98EDDP#LD=6ZgpFeKNT;4(T6G5t9;#Yec z$jc1*$_vTMh1q`T=XOtUk09x;#5W9XI_s~9o!uCB0c-fYyb?`#7eN=klA!tSeb#8; zJh>0FoDCvD-*9Zsdz)o8nfBSKoHu!%ScUH@ex1R_l)@^Zt!T<^V%&PRjwngEmx}6& zG4H`c6PAHiJR4Y6=!^C!%4!Xn$9hVc&%2FKDI1+{L%wc%A>qik!^EI0^by{u_?iUy z^ec77S5BauXYDJpx(AtBi8h(}`J)ac;$;U>Q12$DlUC;9oky{V)hU5c^3Px82e|#$ zA|P=X9AA^MT3DV6(u|ijtyX+9fW@Wl1`X`MPPPZGs}vxtXOyw8CK`FMwaTmY*PPw2 zHZaPy8^L#K_DboX&H&=EN7H%e^fP50Mr#=8y^*hBm~njo3o4t@!#XBjP{M6GCNXrA zQ8cdUT+PR*+gAgLJ6d*MA{0C$-34*9cqmzpQMdnd-#^AAT{Vvx z?&JL9H(pv&Gp9ED8OE^rZC#;{%~lzn2X5o(*I_T}mllg!i{AD_>0krgJ~8xQv)|Ow zbpc~6nP-YODrDy#+_*e;;XKb`MP}-LtiVfytH8G3JyVz~a zj%VVvQ<6*wpS+9pSiM3$R1*~R!7WyiS2z?E1A69$h|vf5wN!7VYt}$6Nu4{dzt=}n z8-6jpHAAy;B=GQoFjB+PiG*aH>iC3h-wRbMGJe!SrqHB~v_d`CD=}AKHLrV%x`$i%@hMVsk$up0UZ|PiqH%$1 zT%DKg`H@W$CURSu%Qt3v?^lsDO9RL3BSu!4NmK7ny3}$ZWJ~yh-WNlxIX@_soVjOx zamZy?TY*3fE4ao+(s})q$J_yg-`;e!H)w*W40iS$qn;T0;QTlNZVKwtpTx3NnynX5 zTFeViRo~E+?};2PSjd$vT)6!)48%TfC9m9mpIyRRQw1la+E_hSe2zj@VLjq5c!Qh| zmqP$bbz(X8f>03Li5s(Pcduu_H*#xx@;HRb(d`+CWmXi{3l>u9hsRY+TD`0*Q4=XJ zVNqZNhF*oD<&qN|BABjJCbHG5U>(n6G1=ylHisU)Y`E!O4yp-v1>Dk(t(l9{+rXB! z-wwJpeD~WW>ec6SJ%u$B18b4|&bQs5Jfp+Pzq97cYX*4pQ72f5@maE|z^9%ID#{ zDzK*vUoSo%sy&&q0{}o)dOkqWt_lrXKpH2*xZNj?O?T5`7ojevsu*MsIP0>Uo#GaV z0&h;*Zp;UjaU502u|W;X*KTb>-<*%(HFdwIDax`ss`Bmd28E;2I2{m;UVa|zPUgUV z^6{=tuS*7k_=&j>-q}o+hE!qM*KZxD zJm@bw|;rQo_p;*HX9+@Rj0!=e!hpt_cuw`NrI5u)?} zc@`R|8cFJZ1vcok)b@}K(~UY0P$K@C<}7sx4+`2{cjDu{XV}8n1h(A~vHf#}7r;iN zXN%CW%I+qRmjETr)1~tH$kOgse1W&P-SDn$3=r;#hurF*Qo0o)r*K?Ygi&SfQ`+q= zOp_AvnpDSNsYNA&_v2Q!lp}Wfvd{~)uMghX&B7;g<@Vds3qqTEEdy1#NRzc@;2tHE zDt|914h|o9DBf%B)bVlCbqiA}qDDk)#sii?GF|IOFgD4v?PwnL}j zA!J#qwYn^S8ry2}X{GnDcs+ZvFrixlE&XC$fD|Z4VH&r?h5b}FBeFxeq)7RXf%lE+=| zc@!6eO4CYwE>fOoDwRl_xi|32vL`Jw^@G-}0o^zfRCyE={`re8*`)jV*wz3vM=IIm zMx>g;3+zR17;$QN+|ilW_iU@Fooz0rA1q3RrHYVWJxzh~UZiy;nUqf-U$0X)vvQ&f}jTcgBM#%wW>&cCv4p`;i`aIMQ8Gv#&NCjfMHy8Mb zgIito-5sl|t;a{$T7)BVfEI!MoOTQiF z&2WOr6XJ1aqpw?>(JU^YY@3H(N~q71p@M5S@5dbO0$8Z#jS@#5%K-kq_o48;iD@qG z-GJ&r;PtK><$!u&WhwsNo0@$rRSO3mEp*kZ&VQ}qemeI7z@ZY_;7tz3<=-U9F%7fl zi>iSLWlD7DnybF*w7R>P0)Q;bp|l$}p?*nHA#I0W>i53kCV%=6I6R z+_tNNstq8?<_b1Z$EjSEX0C6Jjs=i%IY)ML1$+e#{L|)wp7r0Cf7033NaMwZ00*!! z%#Xf@ODd@}n>*Iwt*fL^w#OUPd>>;Cs~Altd8C*sseI}$b2$W#6_Pfk>?d?Lfm-ZY z6X8UYtcIn#L{3k2??9~D`XM`d9~T^`5Hm znie0NE3g@!LeD1nh>{Zh=Rah7#(DR$u7xP5Azh{0TtKIoUaiBv6v0?IaX+5i-K5M! zi!`QX{v4EiC`Iagy9uE@;0Yh{P+&pTm3Vm7m@o3Ykmyw+)+#oXw8Hhx%=a0*t1EdS z8AQqjyW3rx$m|CTdOJ8ffhGrduy#I_i&a-GiFrnMNa2|NayXDu!N9&-hyw=W4Y5+4OdvfcG0O?%+L5oYLRbf-AaM z(#!dE@_IQq840XRVjtP3u9~hJd)s}KZ*fJS)`Zp1{U9-8(riEg;&JfGauA`M$Eo~s zkDs)2A}C|SUFPi7`6Mi=Cc?-A}32xc^5U%MFH(NNr z@$F3%*9O6_<3W-T%2dJosfsoPQ2?r>V^#%)K5$YvQqr}rE+?~dGHDefenTkDxCk#qrtZ>Gy*J_VE z76ie__-hb59H!;qZXI>zMLOG7tt*&&zgg*$N(}WaFSz~lk_6{+wdwb80Ix0!@ae-( z>&_YCfX2i$%xJbOe-8v4U(N#?jE7DEStPpVvSrTd0rNHY!6B#~M87hajl7ATF4?7> zjQG4=iqjW;_1m2z=7(RbLXA7lxdFU7W7^CH3*bhDoRfZ?L2L$}3pN4xps(YAD46lE z>BfuWdB9w69;pnH7%|=eV$2OFu9PHEn^TX(Kg0*?GtM!wtW_&7M$HVM`^ss940<&G zx#REdeyg7dpAr%nW9>acK%8`jEAz2@PI69H6Wbfa6WsK#U(q21U-pi#!G=-K%lELI02E<2S%M+?D$msONzdM z{^t*eF%``BMoW>Py0PT~q zH_@?#IGhJ#u%HrPz?v_9xeGJ~Fo5l1=&GN0EZ&I$7e9niIUycWe;B5|9k}kHFmTxf z)Duvaad*cTo>l)Yiph%myjSznk~58iJ`}8i5hp&q)WDcl5t6 z#U~XJ+4gS=@B;URthx7V(htE@iR$Snm{6E|}UxXY}E~dG3_m?fJ`om-(3WCme zT{ZR~m>-r5l%!lO`x3@fsmRCT3bMk(VW>=)KWoPl~Uyiw&e*oYQy7*QM{;!aai4anl>IY@b=& zcY&GL<*>xR7vcO6r8zf)9qCRP7>1~zw1Mm)81z(38uicIb_m2X?%M&gk8^e_@A!)^ zcfqX(m#B)e)Sa}cCv?-Ga|QWobKY}!#j8fGP5>C`XkUEkQ3wz+?V-!5*RiYZvdZ#7 z9H4jHc!Hk!V9)=@-g}3`*>3T|Armzi1QF3YQ9?vSm*_$C2!jNX=%P$?B3ks`C4z`( z(T5pCB6>;GV3g<#BQZ+!bC36Z_kQ=@=bZ2Q{`juzJLlT}%{=owcUkvZ>$lpo21%y% z`qFbGBo607!T`Y6l!cxQxuyO3{WIV>PlH%`s=9|)x&hsRmD2`JV{;c{&NHZj8y%Eq@6}n%_}#NzL-eQhmygSC;i+-x&xq$qkY&s84qRkS_8N z_=;<~j14jA!luW=kH@ z_;G_Id`PmcZO38B_ZfI^%Wd19>U6WrhL{WQ;7!|)|G0hyAx^#xyzcYI!95U9o)Yog zQy5jT{4ro7=D(QO(juUd(fyf|xCr?NW^-fn9#a5)=UNWg2~(JZ3@jPhsK@tQ9+@0F zn5ITcI5~c=tQnaB4TieO-cVZn!}&*6?KX2F^e>;|DVMF1qkWRAvldz0a zkH10gCeZV1-VvC`mjD|WnN8ZtliUWGVAI88c>9h0Z=j#kV@&?tjggB$W02L{zadQM z@y7&GZQo-1Xwdwm*nzO%`cF>o(^I~^9Dxc1=RS2;7xr4P@t`tAe=0~&m4PtD%%=#K z$By`8QL6G1B=mxU8UFC?msrdcT~fnB5q$==nqvF9clTdC6|;gNKf1i_-e4?Fb_hUAg5R4xpXFS z(8cloA84sO>`w|zfQfy0LVUKVGy%RzPBi|v%)V{>Z-2SzlX&HwLJa3QFB<8L4h${; zkv4z7Vb@v`J{pn}tFlUEw{&>rBx^c1LcjXMfW|P*DKdzhf^OaA{f;YO*&Zd_r&`;> zVEq+P+frNcpc_$|!CMcE6CFe(_qc)i@G^nJ%i$ipNPxfceN!9# zEtk=ISEXx5p@8Gp?g<(MorVv9jT%d_Ds1?rVTlR6ZP5ZtgJue@_t3#XAWtDo;hD)! z+SKI2b35q(fOhLuvZu5*K1Imw$Gmgi z%lK|jDMWCynBG$Wx|3O_@D>OW1irK7{KM*V@I%mx+)_tZ%HW|7AWc_p5$YTPIT#qc zFsUeh$wa9)pQlCo=J~9N4)}OYJ(wETTehtvL1K-kJ_J6NFjhAiW2|%jWdnGjtZDHs zHE485FAU?Evz23%$@(;MfOh?o-FNQvr9)7#w+?{w=?^)$nXB!AU2(JApBRnruO&&0 zb!(@?FZK@*UZ19XM-|jS_~Yn8&(Zo~wr_Q^%xMLim2NHGK93TzJ_{+iK(b_H*y*`B z9x-e*lIExjmZULOll^ZCJ%wY?Q0h6T!f_atodCf!df-KyuyLbES(8gyWl-Nd&5Uz! z!CIflGe5IK6M@%vC+^&L3f5$sCOXS8S2f5GaK($B7=8{JKh_;X1iXIw+9r#T5S&5z zw2ts)&?O6O$;MQS-sS+0#eXc0j-=V&IQxLs-oEFpXxSf?eh$sEK%-7)fR2ilbReda z2$ofbsM>ldO?11~;-y1aAifv3=k^OhY(hOpP`%A)L*XUJB~AsG(ThSpwF@tSoXQr* zYd}BfgA{CElQoRa7;U5VC6t8is~YGhuJU}r3mBFDA3AX~R=XtcK-&Vq+^5o=tT{}= z1sc2qNHveS?UKr1k)G`^k2`JNwGsB@Z;GLkQj1P1; zjF3*S&4B*<*_&8eG`}<30;gpK_y+4`|Nqx<9JBh^5|-)L$j?}~U5c^hyR6YUeNU23 z{ZbOqB^LpG4N^!VWy2D(__e}5o>kjrw-hC4%{FOKL|1&cD#*D)0qNlcLx}K1Y>~LOAEv0~ zxKKgf+&SaQ@N=0HJf_eGW!iNoN zLl}+>RAmK^of+^Wxd;ZZHFAN%uQ>E{sd=9zz>$Clb(~sow<6TL= z3hf5i)ZG{<(WmJ`7_HFUe6PL;D2PBD0RtjjZnD2>1cqYx^GEx(u z_-JI}p2&D(jO!-)XaeQi;y@S`yZK$ZzVts8vJMs%z}wujZ3Z zYE>3~8=X=vdB+p;o#VqQ%0(N=nxwMW*eG+$#LHJ_h1D%X(J??0#JT9A*HpeP)zRUW zI$uvXC(EDwz7->AZl+OK*j?+~6mM~IU?J6Xn{-8f&#=fKFEoBlYxTlxU;g9o%jC0t zMAu%naznRBIX2Er`#vZ^4V_RQ6^P0zUX%ap z@rYZh%bsXXEu#>LZ$x@_QotHCigR{5AB3@%6-W6j;-OP%atmpRIv4^=3o55w8Qx(1s#u`*vUCJR7?OZF!SLgQ@44{c;RFpBcfjJ8)`PWLtoD|N7Tsn zp$tXa+WqQ8b?UOT%A$@Btm$OORI2uwYmtYd-xF7zSS3ep!qwer|HS%4@rAiM+wMBd zh+Vzs*41{ky+J|EBm1)Wwz{dZ>5V+$?Z)d8?|Jk}qfBefG*X0$Hw?GsCotyquRA3M znoiD)Rk_(NQ%$B!cc{OI>6foTAbsW&E8yh!X0=IcG$ic0#&uHEE9PPnAA*0u zllMDmEHm|UZtbb#K8g~jp?vOrVZVi5^5snvwZ`_Dd@?!@*@>#EZL5LR_kNuPn_mSJ zw_XJtEif>;8n>SvX+Ex^^F}}6&Ed164=6c!S0-|DRNpZj(9L*q!}LV9qq#`qVi~a{ z2UaF<^|b~b!--es>~t4}c9%+n&n+kC26JP^Z1ZPN43l*?dfg;a9u!CMVxKeW0@%&u zPwzfV$=K6s#A!DUEC-j2Zi|$v^kgJ%u+!*ow&eS>Veh;Qjc#JYIw*+0>llD9cEm|P z1wEu?9A22AWo`vL=8xFEU01f*>El+gnQq$|ZsLqF7xD6`l^OX#DRmgmS@8Lz;(ol9 z$H{cS5x2O-C0-GVX9nF!-f2I1o`Wl{gjx49Tj}3G%=xFL9(^>yNudC4Hw7{OKzZdQ)f5AIEc4NWP`+JuGp_8>Z_}!W1M3RgWxp+(&ZBBdSxz_;d04mVu7x9SztR8A z(wZ&nWS*=9thiqSbqPhOUV^sATi#QZ58qIh-4)p}+9167)o9#$mSM+-8r~8m3XG`U z7dxym&y+RLc9~Url@6+XJ=zXMsTXg@o?(G|J95 z7U|Ew9C4g4YY)Y2m;&A^<6Z1Y)-N{hH`YFSJJ;#cuu?eP=DSsKY;NufUwYm0)MLUF zmz=&kZooL4hs-kjb%C+*nfj;jjr!TAdym#HdHq~4p3e$Rr4txk-wbV7N4|QdA>8<* z?d(Wq2J9uF8xvF)xwM=b*I)Z7pt&!<@dcdqH*`+E)7WFW_ry!WxyWef^5|~p z;%0A#gkF&fg|5zwX?cPg&m-Li23Llj$D9CI?sS+fN^UIGh25XxIx#`Uha6 z35J?-3CK{&M8R>inf3C}V9=`a+li*V`^~KejXl?~x%T7f^ z6q&1Jss7a;Ctp&OQs6b*#*p>Y&1)7UsI0oAYJHv7;@yd&-S2WcZKnIf7tM%y@yHvB zN8ZCev&Fih9%t#ws)A=L1C@TbM_#xu6`R=nfE8v~V>^n?qa4+>aZR+r?_Wsu>&wf9 zfrEYfnhW|*uS{)sqU*($cTBg!GRNgihqe!#n^&iMitW1?n5x;TT49M3PN_Rb#PlXu ztV-%iFvot=HO19y4IDh!A?F>7gVjtWn_53yw7Z>4&~b0`wx7qD7dP+ay(^vxVq7(^ z(Sl<}E$rFT8-Hky{d{$@EQDNLz47dw*>-AiM{fdY1DL#0R?EKKgJjyO6 zex{b~O>t}#aPNk*3fIFJ1i4chP`a{5F|}fJ0v+FDQ`(q2!UhXFX(t<68~Ym`9B%e+ zJzz*dAd4ns2lkuHl~arfb+zv8%1CLj8c^%F({W?XnYZ(;Df^|)mCi_5;f#(7EOxN* z5y8ZrDC5Fa-op~j#?K;i0y;>$b9tU@EaCGUkq zMFN_{occ=`-lp)uRNBga%V3X2D8Nq3{D|w1a#dem87=tnW&dkL7|*e$oka#NM{0X2 z$0|lAu}1eg%bX39g-vr~^h z(Yz%E5!wFi$X0MGh-Q^~8K6{o2QSHxv)PcdIoV5OfQT92(L^ov_KzvYdD?-WZS=n~ zx_3c5Ko9Xy@?V^ot@p&gx zJBL3~(lJpkx;)O#M#uABW_U7`c7o2oIW4o1iw;LB*(;-U&Egiu z!_;HU!taU$z(3s&j~2A;ZO`}ZFJV%>1mfZCd1uKe)(ehfJ2FM0hBrPkUB#^X&T2Q3 zYd1qzWe(vRA)%o%uj5rI)9;sDa*Pt#Ns|lKI)i*VFxxaUJLTYnNwcC< zvU{;fFcyyGYF?kt2OxKCe#+sBa5Q&>)udZd>_K z`l9sxQKJT5ucO-;G=>^)i#{_DHKuScXiE!?jQ=KxU8TC|QRFksFC$&+6#ojo_SHiF zlV*enrm{7=VWV(;8bj5k|K2Fs!gC{j<B+HFM9yBmkExU7~lDwC+@4Y_R4$uy4)QdH=%P00edw^aOr-_rq@Py$uE&k(Bh1?MtP?-Q77eQbXgn|a!TlnX0pH# zrk_DLu8ub<)k82P(z_g1VHKO)Wt+`yJcTw|g=OOmGCfRY%dm9D8r>|rU4pR`@inim z(AIeDL{%N<%JU7+b$gXRd(&NpIKai8bgq%oT2EohyWrFQf&que$Rq({bGzYk5iM!= zB-UD|rm>6cZa%AbT38s#YkGSMZPmj0#2xV(l1vek-pdKs`LUuxL5}z9-Yf&$I1|8y<9Eb zMb}rrMjXE_dioX3FxFmAWBWw^Z77=9HTC95MD+!F*TObC=DRJZWVQJ`I2F!l>mha| zoEq*Ff5%Z4(8b%oTlV$yJ)s(@3rQm&B16NE+mFCUlht?CvIUCgvzc@z>+$Osd2-`I zIJ0(cZP#WiGim&J03u@5sAkDKvrgX@vj^sD7J5vl3boiwEg#T!d|>?cq&1uRfm#FY z0~&Z_EjEcqJbgMr`+4{UOaDl<*RmIRX8X>*D=O1-OkJ13+%l>3%B*gF*L3a1ocjdK z#k9H}_G&#y8No(-`$h1E%W}AM*cq5G3y*7IZMSDul?uJ>hV|4_DVy_lc zSS~$1ohkdOa^rd0+e6|XkAG9ccgDPQ#qP{%|Ei!YvYguFFntc=#Tk8=Te97thWiiH zO?!e#a;BeB6?iMN38_J1fc(+N&wSXSl(9B(-E)&*E>_Fxnm zzv88fP&$P(grorWxT6HPCBeY_E*ewA-mX`1MjDmjDr`_EkSVZilZ=|x?sxXtQ7`TM zw?PFPE2iLu0-8IMWKNOS>o9KTpvm|lL8zYl1;34Ch#{IkaO41+R;QPueGL+Hmj(~9 zB@gKE+~_wAqVl3{iRQOHUI2it&++4_{H9Z;;ik4@wxiKO38M5=oJ6o^5Cnu!muRqm ziKH@v3y)k2&n!${??x?XbloL|aDe0kLr+|o2_URcf2|47iHm%Vp@GvN8{n_{@$*hH zDiigz@w^2}sV<@8_K(`fZb&&QS6vAR+ucAgW=RqW5>YijnLj*Xy_^u;WBRCowJ}J6 z4UmnH`mIv-`9FT$2EU%_TYfNhGZ_1LQ%4>1nO-QBzj&m35$0n>o(oK+1fWX$jt(mH zgm(K+Nuo(AdMW4(*pX`ROxR7hERH+BCDEl~P%e1bA6alr}3=Fltcw=;#nQn7BCN$(h#JC zDuBA_bSZoh(#qzJ*^|{6im+K}yCRJIj?_3d}d5Qr~#AOc4hklU8W zgWV*&OXCc5LZzrr;c+F6cjVI(hsk!7jZqUw3jJ0D)+DjVlB0?idLeUqXDv~A!n5mB zX+3Tt$6|ZhBvq3Cqj)()5aa^rl}@MH z3j6j8d`Kv6Tb&?lRV87M`9yhbzCfcq#R{LGDpqBpd zNj)1i*GDSbrS#DPux7v>g99_(7Ro?1m^o+K0Fkx;*|3NHFvLHzS&>h-A}=0%Q0}(* zJxe#RwpNvIvR-w0@JEDnJ4w+Q!X_YCd!bDoq115YcB_trXfgLrl|`Ydfn<ZNxTrA~Ea}|Vq(!jG}2M6|L%*0z+ z0EyOkOGW}n781}2yLn#Oal{9U{w^GeAXnB94G%x%>}R!IEH_w22u?~58Y!F`%bHT|%_HG6uq+Mi&JjY_(MmlEKvhfN< z2rO0uzu1=(HEpMh1>z9HS`zpJQ7`H7?% zX8R~5x)eU12gDYiwcI9jh5vj8pbc-{)B&b0;tE7)ay#yhE1|#ONdTbAO=RgEDWM`B z5$?C@eYfyvD4}_#UE9Nf)w?K~@jS2_kU;pX$35m*VY!dm8zm_{!xL$Bvw5?WBrg*1 z6nLPF{t|0iNM)qC=)G9?J0EeD@CTTN+|~@nm^?1#16#b)In`+FoN74nD6tU=@1&XY zCrP^na=_YG40NFIUvs&&J=gs`LL9&!S$YY|31b5lmVuZ*XVhzj9U_WoA2Ictv1jgz zHh(Gn!VD#01s2BdhpVgMNvL9APL&PzJy8jlHvX(=16AV(ziGI(JDzuCV2E#0>_pxd z5q>nKah?IL$YuaG(sG`6R=5Je?`3Q+hBJLwjUXrdf!77bGO~=(+fCAjUX>e0Ad5#s zBM_pX0T!Y6TOeXIHmdQc1=2WM8-<9B3}<4qyn@$Jxr%6RhFH|Zqx8B2tM*AKi2&Z|<^)15 z?Bs=42;A*4NOq_J80xi3Uzoq3m!#K%H)GSY5GUFA2twDTTdyC}5DEjqu7?a1*a2z= z8*DlatU8{GcIo^tT|&Yj{8^fHxQ9{0JKME7k?NSb&aVqS&YgpK5Xf^p{-M(LrsnV- zQj#IY23OWt5puT%h&T}QrQ@S}MJWfit=Stt-kgPg&;rNAl+Ak%m_HSiCY8G6G9HgZ z8iqu2((2Z5`CO1YKy<_<#E3Tl=lP>UuS~x?mvgiF`ChM_s)o`>cff{&oYs#|{wF~6 z(~m^qqbRtcitstYjhn12E+czJMbKuY`frNB=H^~X` z+c4r_!=fX@5}rj~-$)7>llCakSQhF!sv0H(sUK7kDPa-d1Wmdp@Cik9eY?Io>fZpU zzCA62ZH5?}BI^+6(4&=h^RIa}1Q&8&iw}K0g%6EZnBA~5rqDH4xS`` zKQ$VGz~xlf5xAya>Z>Ls5CIH{daaRtl~9Yfe`wxOv-gaBZr{Qns6A=NeT}B#d=0L&0ODcOtXDo ztyyay*W*pIjBLM@YsG#kxsCaz&_D%6KtbHo=e$@w+C+BE>s?>DnbPa@f-{ZSW-fu{ z*z@U|Q|q7$i1z;SgNMGprTbG)YuepB6ZCID_lcAcNkv8 z8_4{I>N1+Oy=Y$Sc`e+(VIaji_vG_45Hgw%=79}wtTc=69zNqFV8=$C*PM~A`3D$& zR81hb9UUm)T#CwTGPom1zx)Ff^57?I{>u~m=Y;l#76L4+YkL%~wk{c_8}(Mmk`~1` z_Rx-7Y$OxbhHz?leyK5}WEXwa*-JUin|($&NYpXW&>8^hB5}<+uVv#>%wBX!pn@pL zizk^S95D#-8yiDKl^RpOhO+-0>2>?ilg-aljr-S3Jl>ZS0Ua>Z0cp0t3m8wiknI$i zKOdvwZIXMqkrJlf&cjCzfy);mWKh6Xqgk8`Ddfk8 zp*vO$*lsgI%n*K9*=FDN zWMuCACwdb>ws7Rv!nf3C4K~Y8qZm=)MA?A~ltCz*QCe-s{a?!H_?05I*YhyEr&wgE z#ROGLQfS%}x@~G*`im1w(+fF^tpXln!zU!&c@h#>_!WX}?28I=ddzx-Vj}nt+i+yZ zTc<8!r^byKFTsW7Cs4vYk_%aNpZL~?0;%C#{_jcdZ6HDU7oF>Pkis_zS+6sDlBeA~ zC`>zo%uikiQH=4M6D2z)1We~9Llj*8p+i{$$5{^UBx-IU*PpwyW1n9ro!OPx0M26R zOnV|VBvxU{OVcry+0VwK{)1A)3x)-ML^+Zs}lJXL4XJ&<9nrS?$5&KmQ&!0k-b*UB6 zA>uk(EXfJ*L?h?KT+QoZ&gqx=_USJXD)*W`kPd(I&XOIgl=vx#F&x}70&eL}pC+We zcJtC>LghYZcKjV@fS%2&{iok4#i2-w`ZvdufQ1JZ1`N)751ra`8Y@aajQFe>s0v(= z*Sb;Hz^0&I>c=awgQ) zox|ETUBoptt2JT$YcVV0(?0SSb73%4G+ZHMwjDENaK%5%>@NG#q=%w^Lm6LnxO6a$ z@GMOCA1*9U?u)56XnEDk6raNsK0yTDGG~iB7tlpEB8ACxM(NIxxTd;{yX3V)l3Gox z9Sg6ZGo+i>_Y6<6$qAuqSqfj~+yFsdewl(XgcM?4a=buj$~Yrv2?3n(0h|X~iwHRK zAUtvod{ZOEe}a;50&DSNURN4Ge3HvA&dkPa1)hPhoe2^J9#6>C_fY`1zy&CL{`6`% zFcX!p%$#Sy4|*F6!$I>nloSlg_7L1dO@8BZ2)GXzA;kFc6xgD`)dx`mRzLxQ3$4sj zr&s@eFO(V>rs0r`2TEWy0Q_2Et%Q9p?BG5&Y{%(p|8dXv{!5mB;jI61%m0N!lzN-eVeB}u=b3Z5aD~G#(b0*H(cBV*c0PjW$G_B zG&yP3F74Xy9~q@B4nbxCS4}Ec)#OyKh$aI+YpCP*X!#neXLogoy*qJA*<=Fl#AEE( zBRqv2szA7)S+HV0TAGrBJ9)pb{c6yyndKw**oCevzFy&C&TLZ)8-wQ0LyWDkv^SmiPL=yd;M{UDRMMBl zPl@!{9H|I^2783RMx0k8P*Fs~`KDDkm_zdWO@JfJY^+Wz2X`Ep96D)VcJI~LcS+O_ z#9RQNfaZS9bC!D}skQ2b`I3<_`v&^Uwm%Qu#G{ z?zJIG{t;(>s1{ijRLdAWIe!NRP&WZm(q3-cYZ~A? z@#L>sfRcsDIIQCh1c!PkaRamK5={rxFtO3E?oQ?_pVg`NX#HIyw^j3SrJlQb3a@?B z!FRj)oCf16)KF=>@JhXfjv@ocG-OuzK7X9?c!htY(HdiEI%KnKItj%zl}k-*jJP1s z3KQ-Km^!JxVsVuGGj~JpkuC+qj6>9I>Y*-3m}L5G6okRvONSHS#*5SOhIKhKF@He9)3B4ej6tbMD+bP)Ydq`liEWD3}w8f(48<9P#==m6J8-m|y4fLD*)v zgSZ8aR(LnMlBIN~n0Dh*wL+Re>Ua5;+5DN|+V3M&k2*(~vldd1qKt zcFY{Xg^AC(E{WZ}Rg6TmKO5Wp>@?yW+7{-d_>sf1bh;~5Bav!M48wPoLkL?^xIRQn ze0HO8kXnuG))~Sn+Gh{Z){QovpJs$F8~ivUIon5o3Z#cM2$+t`v=;dgP_Rx?QV01K zVw1HKnZDn|*tt`~%Vw`tiea8ek2tG@hG{Flh7#BxT`vN?(F|{N#HvL~*C-oxB5Qk@ zG#keym@V;Jiz6c(adzwj%G8_%%}u8jT1n9go1tjlgQc;x25+4TB*oZ zIomhR(>+Lhy)u*o`ZGRo8{q*onflU*@!t2und{M@RBtU|y&iB|A(mS+=74=h7Ee6b zeORc+!jNp?5H(zzGy^sT2HEdjyYWq$P&fvLX9?L^fTSOWBCP@snZ>qdPQ6|1Z5D_ER{x$n}mvC7~-$I~LL zz)MeOm_xcp63}3(zoSH=5aM#T-N9%yU^LWHpa1jQMraAUQHxrKlZf4kv3_O{rDY%- z86;gj@^ovLo!4Z2KE*dHyi6T69RN5)dor^Br8Ju*VbJ#?pCj=b?>;FifWrBibFY`b z$hLK-uzFVclPi=gb3is}!b_($3Od6$y$Xx7*A&p(D7^1=8C-3{?z?o|SC)e&-=7(G%9NBmL+=>i(7!1q+RoBAf_}cj@ z!Z&5+3?l(`o)#URomOk2~s~hsNp~Q$m}z(6kArA|&HSYu`?}L40lYr{GyX4x8w5`mTx|w-$S&3AIJw2)BtoNouvP&n1-5B}8 zCI3lu&cUd7Yc|!aw%<&DM%@jb^+R%bp<8TO5WEC<^vm4JFgH?-lqov|>gz`zNo{AS zbW@Zt3O^S}BoQ-$=sb*#Y@Z){ulXE@^0IXxX_8Pn&-VL5&9;!?he{$JKf5+!!jTtV zN@I?=z4E^2Kkz#m6-XACKW=`5QGBaJ@*+KOKP;)Cq|k79uy`b~WEJx_D}wIPdG%-t z*VGGTA19;mIfZ3W$kU|?t<6>hzh3GtdaMr=qd2+;@hyiTtd8izhh8TVa6+Ar-sW_4 zKfbHgAThV%CRh!o2PK*Z!Gz`7d(zFGTJ=1}GSD8wA#>}>tr%ZmA;5MQSca1&K32!8|0vj7-Bp@3H32x|07G@Wr zTEDcnI}HLP38?GH2t*ZW%tPo;@FHTL*BL0hk1@mS)_ZVzl8IG;P0B(4uqdccpOLu$ z_oCHSM`G9SYjo0l$@^K=c9GrkLJ;cYjQ*(|F{vi+2eP*UvapRPk2iox>SI#K*k`2h zf;4!;qo2~DHJjP4g+GzZwS8ac#-4)CXDzmk{Zg~eYxO_gJaz{4s9s#yP5))LN(+R% z!9|!T$-P*M;@}4WlArg{75?P#W6_2g5Tx?g-*kEwrV=lU0CAakMAcM8U^V#^F+`S9 zk^nO#SL3+Tn94%AYe^+~vlWK;j4edW4K=zf(dXe_DU9ho(JMDyealOXN3LoLQB{S1UbCp2nq)viOqWGehdxwSv6m|*7^9JRzuCqkgT8*NUuMY zFf8@Pb9{lo%j&a1^Q7~zW(nuJu+SRkBwuasBI=|+{yHQR4n~G$TikAR$ zZpO}C1I-`AP(Tjo@wo6l+I7_&fs6Q-uKc<~fA{{7^3*~oDaaEwHB2&<<4?YhQ`ryd z@(S2_6ISa?>MFsjSjmSj(c#jmUtrDDR$HW%t86cUFkQOr-9QxdnD)bQyir+C#O4$t zjN=@5;|J?fsPV@n;os7A*iMR8o+L=Iac*uj-$JLqs?+vfP6j-@$R&^zqOeMG4^y{U zFfji)+%a7lUC)Otxvj_BL5bS!8?q4<0(NgL$vqu1t&3=GJ!0^VokM}9C0T(Iet64) zpqS7sg{D*OPeDC>6Qsf6pL{@tdvl1i?M2vc{Lt!tVjLcK&&~EJyGmZQuLTZ6a<${s zz186|#->*^Dv+Q!>JP^ip5~=po0~Jj>`aqEVZmUSca8L?hjIA8y@fMwW2kZ9i5SX0 zuY<)b2tjUs%rj^ug4b}?93LB@KVJpb_!pZ>z<9QMe>UIZUj>q?>^fRBEy{d-$}#oL zS^*=;4KB+@!CZ$G8Zp<$#{3qGx5Ffe@@~uuUv#aU&@BJL3$0_M#_sM1^*eV zYzwA*URv2_)#J&rbRHmd5f>ELf+`JnE1?<( z?HdJFHcKK9Or7mB;^DwLJjjDWqCm`5oa20s2hhFeg=YI0vAYx2JQT5^|}qw(bS zw=uOFR|bWR;-#Q64Ujur+SKbMqADa>2`Y-uEr*Lf8zF7Y76(!7Kc8pA9&)^D@EjAs zL`h&IPcO;?wGIWFkEQZA{mus=-~>io6iKjcHi)3y>ONdN-8^s5_fL=RU(=qPi;$MD z>OH9Sn(gyxt3DI-8U$K^iLxL-&h)=|8qo9AR-qPhxqw-;V!zKDbPA|D@2sSAdNE1G`O* zfNX7lTLpfPtgMH%A9P6wRluGZsfqe;0tgBPX`s`C)d5j$`4yk(>tGdDe_O@>Gim=M z4wLIr)YZSO0vzUEJ8|=Wa)Zr33D~EzKUEivaBEBZ+bUYKOAqIQr|GYgDSjjYtK$4L zW5Nqeov)w{?Joi@@%n8{sGy~+dj2}#KX~`}SBvw1ioo9ph)ZnRb>#f-G5)87{P!6D zD~G0E`4?q2#^1Z&ODW;p^}^<;_QCAr)ETjo5s#|AVcDDc+Kog3#qw8fqsPdo z@rq7Lpq03p)3=PyykYqkqlE8kckDM+VFV)Ae*0}DM=MO=Nnw)^(2|RP(~_W)_Mf`i zw(uH8QhEq2Li=_bl=U1PioS1K9i7TMz#V=xFWZWw@;4UcG3+$PjCK~XiljVUq03kN zESMnB-HWAO9x011F+F1Sny)AXr791$tKSlV*IoDVue%O<-YL2au$|`r#l$MD*}6Yo zixcob-%=e*ILk85sBuksw8Cafo|tRl%BJ1eR=a8>r3Sx;GJ! zPt_ood`^;zc2#OtnEehK5(KVowZtMKnXn2|A8FxzpV~gP{V#xk*^KZ3-T-`_8AiG- z6E%xXJ;5eF(Ld&9?eQ~hnyxjBkv)D^Kl4U&A%zlV-5Tg$>Hdq5@ffZ7)My>Ic~x&$ zJN@??U(lOjbB=0aA3qc}N9k*mRi@f}u5Yqng*nv@6WRh< zdi)mYPxQ^>zv)mW?!bIB3I_Y*Y*o%Dum*h3#b5_du9{S=&7Eb@&RzANtLdx+F-_}< z5eKQ;l<^wL{c&wt&PgiK<%zc_rMPlsDx5TGn_%)ANu#`4aoptcaU0+ztIt&OW&%bx zVZzP(mnMlp3HfNCoUHYa!}`sk$i(^b=HsM*Xr|J-SMM<=??)3Rq$h<8-w((6H6I%D zH2uuFlD1p6cDSO-@1|$+#Mdtr{e96$YX0jjE5rNSMbA#adzA@N4@w-+AIx9UNvj-} zduu)UR+~K}Q|#F!cPIOXcAM;O{xwu(1o~w8tCFu+du%+ZRZhH$R$1x+%Vj?DrAEQC z`#V?ME!us&)p02&QGT-NhZ+KW!c#rcShE*TEDeD*q4?mz+#e><-xPiYDUJzKcXaiR zXCs}+K6u-BUnmVD*$P9wdJz~P?=Y*ao^^n%O)YQU*Q1o(5|t_#cv1=9U>W;$1b;fv zxxiKW%yn-wvL>W8+gmj&L1xt;oikQOV*s>;7=pa9PHafJi##gJ+9i13O#`p#lT)RX zUUS(y94vVHn_5-v{x913LRQaZpBQ1IJ1WuLSGYEkWHLnepZN8=wzG=ZbQ{O5Pdn0X zvloqHrCkv8(IYkyNc)UwE;rjo{^p~d;^UMAo$|&ih5y0cdq*|7ZT-TEpmb20h%^yV zx*GxMSP&Hf5d;weA}YNbLJa}}Dk6$fq*|!bK}aAJ>C!NI(9e3O@?ily{Wd=U$S!>NT=UlV==6rBTn^)dUIIo~ATMvw?%$_~&IcViRH)~@% zULx;XERA1H?{_zeRA;bpEh0PJsW#rijT#_vn{S<~C$ch{U8*Uk%!(Cf6|z${*?2cL zJmLf4rk`{f&^gWdGcqZz6VI1d^fg*611M?l)pvJjdDX}EZ~n?=amOy%Ef1sww8(%{ z#*b|Ev${Jp<%P@{M!6FSig3R#eX534d(PR?0W%-NuA?m2u1}^b*0-FLAok~NMaH~M zk+D4G>q&~5E9r=eN^AMfHE^y^jPgZdXy^L*)6)27Afc3L)hA3$q^o}#5>b4ZHvgOq zNkQzw6G!lou=x2lHh@?zp?O6K^y8{9QF1H<%SQ8 zc3mgVU|~!r;QnjPw|F-+^`##4_Bh2_bl(XWJ%X6)oNKPoQzOQ<=2sariHoub&JAg` zehf8Hh}jnOmy8h&SNGE2!sB5&RnqHg(b@T}UHX+2%7En`l)h_!c=pmOO?(%5*j8PX zYVM;2>o|hAe)-E%W=4n6-n*BMKL}UO*js%*X)-Wk)*L(E|6QXaS7Ke`kIQCL`qu=K0Qx5E{@#XjFODCIq@#8SdL+ zC?TPo-fYF1pJHPh-BXvBK+aV$$&{Iwug!^x>Peo_APh=ZDx=;Kbn&)jS#xug@AoKQ zv4R0R!ZNB9^o^7)8UFB`vT*qE-e^>n4~um4_BLBzts$%!?*&UfHf)Jk*|IdfEBQsj z)Xm0CrR#IQ=W=U)Bv*Zs+A9iehjtc*qattttJoq353cDTmL19D-W49!0*XS1|*v2HN~mGL>5~@6>01`gOlo zn}mD2&wSo;@NO9GsXNqcW@`BL-mMV}CJTEeLV@=7b)N=9c;#G+1d&Ljyymv`&PUi( zend@u$=I=YzobVnTQHN4cB$UIJ`5*HOYM65ek{Gh>T~s1g*@z-Wk4{tXWEM5uY=9f zhym#d_}z&+105|irn{K)e1d@)e#k*y|I)Rr=mcQ6~v**^mV>n0z$6_Irl zR1L0Z$eX7;R#EUMk8$#rX~>^!SDaZW=&aoNVzgUrzctcd5Bt(~ZP^{D;)!P>)(wv; zl&>Z8y)TBtf6m0F{nA)-al6f-TiiM~%Rovqv4M8O*th{ZC{k_L*2j@uc`)JZ3(8Rp9s^MK>SpZs7M$PQG9w zdk$7i+EFt zQ~w&?S9wk<)oBC~lQ07BUB5FyoST9alAkDR5RS;bk=i#h1~xI(MxV#8$^mAq2}O`sl0W;x4_2Y7tNDNKAeY8mHf z69I}#X>wZIuC!(Af*Rb(*qJZcu*bA|fd_m505$Q@yog+g9FZXgp@AjRu>G8VW4-Pq z@d~roOCxX5lBG1RHui%}XeXxM<3P;xcLnHlsk+J1;8wHn(%Dz))ZI zix_Wsd1Iu2=v%Rh*PvOs4tCVXhR4o-Bx&!^NTfFs2pFsoO?iKJH`A4^|n~h@iL_=#fNrYH&!r@9KxQpE&l4;M5 z0XPGljOR1VScBwyfv{^J0uBfj1#>AxT2s>174L`1=z?&T`9Qm}Nr1V)tqh9;PBPpb z32)k_ZSIj+-l7d}-Doak9VJHd-NoN}a3cqQ@{T?>3z1P$wN~_W(x!46DAq$hTj27& zUU6oBMxHmRE$Sm1KE>6{@KHw(DXkdP4JDtHypDyJ<)$HHvHol<@2=>{#p?V63lNbX zIr8f^&(0+cgFA~`)BH(4QxI6u=Kg_-Zn`2wr-1i;!sRTtUqf1@E)0Lb*_%Y_uFU#M zb{j8VHYTfq-ZJN>jCd90ZCc%N^YepTwm>Or7HfKTj+Cs zp@ISOd+(p+mzp}*wvHp5@m~6r;^+^;?p=oKgW`N7ZQ<8=o9vw8f=#9Be^0)jaEAoqDL2md+TRfo*};4sv%Jog{FF0*c5bRYdnqtL^ozq`*Ty6U4OXi`<$q8MmDg-X)6j5RcRcqmH^HOT=YO1s!jK*frwS_<86()!VnfvDSJ6s z2hwOwotqKl5u_Vv)E!Rd0~Z7czYguLuCD|K{Lr!fIaSy>BlX7K;Xw^(vbEPca-xre z$s6y6nC#)8-AYE z;84uT6GS6kmCc9Shq|mT)F)kf63PRzuuQL0RublvGKg+-0vYKed%Rb$LpD55qX2yj zmOX%Mlv@6FS(fhcBQBU%FTDb0&S7BY#Fe%nDSff-HVMDnd%Lyg-x~EP^i&M&AZ%J+ zhxyFQOmQLV4z0c|E5^NUx&5VCjwAj1$1s8Td~8(6%GCIF`RrQ*u}USA>Xr6a=Kl;cIembs;N-n6S7-xR{Zp z=RYONyH4P6|1~t-@@%@PseR(X{78VfffjFqQf^mP(Hw0SYi`2)LYaQm;tQjEGTZ2( z{CZe}p?;6pviNNL`mL9}gYhVP34RjjK-j8$_zwTYPpl%%zFCO=(Wve_y>ET!8b;L? zz_(c>_HxtQaO<-}&H3p4OEU-SleF)#WC3Sdk{v1Scpe^UxPD%KG${qo0>aA7sUOoo zM3QE58dw}odpj|Zo!AT6i6gt~9}l@vLeb&t9ETT4Ko@1*RQ-{i;P>@jl~Jx+`YNC5 z#g;@PW9_Szf=>7F$)9jmhBvYP+hmg;n=#y&YfM}_z>CkxLBWna`N(y}&WI^`QC0Y(M~Fa{*;JrD=ARDIH!!&dNAOvh}Xa zL{uaNjEnv#w%i+R#>_27?E3pW^O@84&)<8NVcqU6N;EnUYw4e>Ze>!5xEUelv2(|J zs$u$Zj%EDTqZ_NvLp!-x&q?`m{keKG_=(&j$T_1iv4d)o5*n6y)$a=UR3Lb8BJ}qizqmH%m zw&%|{U=5j;Sa+K(?qZe)Kl}d-0NGP*e)w0ToX7DykVh6@X^J{53dqT!?GslcAgsyiz%(|yh5k~(Npm-@pldTPKjppSCP zgeaOs-7H63(tlbxBg_oOX} zlD->%#JB0VZ_W6)r=LOIyVc?5XX@B2D3Q7lqJ%1{}@_Bt-xGy`x z;--9t9-!x)jk1FAzw{#li3IF?KK?E!{FVFzm~>yJbMVX6bKAdr2o-I6km1JR}Q_`!_$3l zW1L2~yoH``vGf6p|3QaYkJePk5kH$GLv82E;_!|v;Izw}B)(%8kav6{39HcD-I!!6 z`?N&jLBNM`Bk1EPUzzVS>Z0=S=A z9i5x)b4vd`Oppwe#aniuEEb+)fUQU&W8%3p8p^)(k%VsOF@I`3W&;4JPr_;E6F z?^oY=8_qK!tz>Zl1CkSx_rW{=|K`iVCpJjGOf#((<+%+KVbWzU&uW6M6a~3?cA2O% zUoO$dpR2sU+N>t*S;ylr)s0)9S@`7STy5w)+ttv&ahg+-#&1!K2NZ+2R|I(igqvyo zj`^S~xVng-&zYOO&wY)7XPEl)bY#$Kqxd`3V)5X{$i_UP#F!faa|QGBkH&p&8RfF@ ziSxYc*tg}1b7NsY#FBFG!WpaqHwV1Q((kmxB7TI4x`w3e6WnQTIO-OAJpaQeNT6_^ z1;qR^4am5%Onji<91b~<;2fW%lq)U}z0MqdLCS}nyAk<$xXBe6<3-Z8 z8nBx@xT_1Ip;cV|YZdHZ6@`zcrlSBtP$9=MTi-}+ZE$i`m}8E!>xzjbpD$x)|GqPv zr>Ps3{(Zw1e{NV!4*5d;`*m3VPGgqubBg&&J?wsBkPoQ5GyS=fjK5Q@6mB_qy%?z@ z{ppzs7|(0{8eQDy#t85OK_H!f1SAa`2A+nnWDpl3t%@>!HiRRK$N)p2sSgr(;C^Qe z+))Sb8oUvQPmFl-0|Gx$QPig z3aZR|3aTa(LAvzpMe!$3TmTzYebm2J2TbI+f6aPo>tZ9~cMD&}SG^-AtY>L4vCAey z6;2b*joYoMq_^*HrQM>N#pOj$)<3YC{H=jTMyeGEm9+h9x&rh{`5UPJ%iq46hV~^W z84rJk9x0-T+4bgCzmqgDKe$%W<95HO!0qL0Mxil25Oa2!G5jG5LSc{om8lFk5JMV- z7#*LNu~A~2v4QIVn6F-EyPxJ4@Q<}FW3xEFvSzwkV-w;QizKKI_?iUTJdDhorr(c;$_&^7Gx&j*U-vf<;jgH>%8Lm-&^$`sGf&bi z79_Q{IX~0UABEZ}3A<$!b%AynmGgPq3sPhi62V;3k#O@fGi@6L$Pi(*AfK?G06_T2 zhrLF6qbuSmnLIQXp!N{AzDAK8I2)2aJ>b9f5eFZr1Zb0=a$!f<>D8eUxca2)rhm50 zuz36e&9uv=Ap+@57}{D;-YxbYpx@f0zL%^t&jD$v7r)kRY?c?<$13lJ89J0~cJpm4 z^3pe9Fp9Pz33Sb9rRcZz^Q)xchUC+nu1u!(fO5ife=ur(I|>r_))&XGX@3G-f+EG} zD8HKSeXL*f{JJo^BtW>_YmgYiT``5aKII;=0j;9}L{~?_4J}9`40aj*0d44={S)@t zlLBWPQA(o+onBIqq3ot$q-&VE{e+%YkMf7w4nJdAzBqg>Wu<1O7Bo-bA#Omg{4VZ| zxE8sTgRf2c1@@u^v5yfp%dr3y>Fy>HR5H{o-i1!Vb{X zQG(#p5VGJl2vI6OVZehBF9)rjAc)!kFF!5oYWNfj2k8}UB9wHTRQ*TN@nr$paIzEh z)8IF9+Z~dhiVr1Eo;olgEq%iI$&*6BMUA12(XX^XldFXy2v^(+N+*&fu3Z*or#}s7 zsd*sw9_lbc=>ya$ip?_7GJ$Lsbf(^konCT3u&&ThC#RR|G0nwqr)MtfJ)i;MqBWc3 zSC;_Dd0a2(^a~X(gZbAl9;67##IdxwjPGvVdpr)csYm!7Mr==l`eEgq`@O4a5JA=e zLE<6g3eUEImx9Nu8vz0D9Y=Q!J7{lyLK`WS1SJ||-6!IEQm+$JOa~VkekaqH3B5uC z{ZZY7PH?GHzi#noDdybnSz#h$6QXxDQq*DmE~pG3#(m4a^_*;m4mffY#z_U}Y%W9X zo0cj1TNK1xwb#JP0pA8p2niGigaTgUW8h{HC+?cMP0bN|Kg2o(= zok}HPC{Y_qsWnOx7MqkWG>_UiUUq;c9V`<<(L5kKkh-TJ)KBC^_C=^P%VZ~6Q2-7a zc$twfh5>qONr(!@+7-^U{q$bY#lU-4L>xd>m@Z9~>H}jd^fdqvfu=kVcxV%#YyJh1 z(|RERG2(b4Oxkom=(HIVZ^XR66A(~Uo8SO|S~j4=+uz6{Xf=2#|CH_#TTm**3pzX* zYe5B2x31pM@^s)5}aF13u12aPrqD_1|$A>qPl3jkC%X}qk*Z+zBX zJcF2aj=_!@00BWKCR%l^b`WF=be21>1KL7Se!Ub)6Mk(EQ0TeNeUIPwDvI>AZ~wrR zn@-PpvSk_O*Wl;am<}UKX#)R5ZY?H#i{i?DF!6Qh$6uJ)s&z3gpaj!`iiVtC#%~oq zXgABolRr!A=_;yNtg_Pl*-Mb=iW0Dk&jU|`3U-2OO5znWrR#5ic^FDiYjPl#SEIbn3a-ZayA{vhF(k3xbb6=?D(+1 zzDrZz4!%p1*nM1{V$Cb>e+EFvj-Fu&dmqO!XIdU z>x2?lP)=bb{r6m;#v!uAi5my8O3jblHbtHfryfcn65py0tp@z~&sUaWoEF;L;; zK-2%}5fL4h>i3?b(z)Z=)?uieOg4#HKS0AFsmvHi0~mW;4`AeqHy-U3m`Tr`wMZ#d zU$p3V>9D0K z?XCFJ+n@`@QKL{!UaFP_zO-r;Xjlb|b(?D}>{samPdmT8Z4U6Ij|PB*{p_#mTr}h3 zc@GNEDo%E})F0hknuh&h<;s%<$`4|7d2a(3DAV;Q{=EX*qgkh~iRCtanKMGP%T#cr z2<#NgGvFII@UZkSe}SpV9~lCbB?7NY&*4y=Tjg z(v`qUJ2~F|?73}uZRA%(n#DrAbidwhP{Wl#n}hGqR34}xrzYIyvjpD820L#bh$lkO z3HGaTnuM&UI@zrSc~l5xtgDZ!H7J^Zl@1J+6*)rISrH9QCb~A6ty{2$Lw${H9CeJ>UWjcDsx%d#_st&+2&?{cTb! zL*QH5b$Ybs*mJkH4}lO*{UyNWnP=|+ICT)0Oto*qKd$PXR|gg@37JBO%yNaOmpY$8 zoD}#r38Gk+!!zVs^Y^8$Ec1%Dz^0(O8hCbkYid=u7v&P}CeSBWZ-7=DG21CIxhkI5 zD~lbjkGyOY_7T)~%5ZX9>!nO8%!*_=E;8+1YF z1!xBI0CdLsu5aj@^>b8It+5y>C$G6G5e1bLenM;YGb&GX)UBex9UniI#2^rqZckq? z`~mk|)@|6aQcYp*hhBuBTT|qXBHEa|mKX&#;7%4{fxUr*7;-@4(p>+`jx1jQko`ki zb>S{($U)&wj{76(-jUO2WO&h6!^4-c-ib}1`_&hoq~rilAChk6A8D560|fO%!R|b@ z+GH!=-j^^&bV>!Kyl)OZMTbA$aAL6lb{=`v+_V&wR5|WXWv9J$RR|BtD?Y&i(WFD3 zb5ErIcJDu{Ywuz{`PzkIEUp`haybdl)|!sJsTD%&78`W=_Of%MZ|l#YW{<}XH};)* zqQ~*()Cc6HVo(pXy!7JsGO$6;g=Y#}HZTHRq)t#Kt$Y{zg}GEOIP(e9K~)`~Mof!f zr$PsmsrL)5^!=iwUMsH8=`s%~-0w5xZfY=amLS9DE^q=UsGPy&OW)SZ6|yn<61Tm6E-Px=CIxeSg`J*xKUp|mT689d+L5DopcMoS;$gu0&j{SP|D4B(Z;1a1uCZ& zzZl)8JhDigF?da152`n1qE7*Zc@6bw`jFk7rdVg*Jcx5 zcvjBMVx&|&b^1S*Y@PY5!ACovQEd6`Rvl1Jfjh@OcK0ws{hW@GZL=h|;c$j`@QQBq3Cu9jX59ZJ5W;sN#P;*@E1W|D;iWo;U@ z=)Hwgb4;e-M&S;`g0Z}WT{<-Q*dqNoVIi~wP4gKCPTLBSbn?$6gaT9G9PL3rcz)O= z%phG24DQ?ALQBssbTb)z{8-gYjzdUO=-U1oSd>#1%zz@8K<-W(F43=n2^B1x^c)K5 zY#%=RGC<2E0Iu&kK*u*C$}Xh&)|9$qFm) zwY(Is4SS#N+F$cpfh9<|OYsG(;kD1Tht^m7DjRpfJQLNN12@2=L>_i5JRlM#yq|{F z_z3s_A^Su6dJKtJx%Z}E5z|_XSv*cl|4u{}j_J1Akx*dkDP8HSyd6S^m?9_@9|7yv zETIX)*i&-#z{_4S(G!*Ra2`yJ?4)0oSPtji%^u59->puyL*qdVKiLO&%Jc)E#hBjY zVM7e$@*26uTG#Pjf3j~s_!uueG0G{T79!^>K+fYP|N8pfbI>!t zk?nUXfNrzw*r{)F@4(RC$@Uu+_66F5W%g~EB|*>pMz-ImurKg9Aj5I5Q0k%oMz-Im zAapYqoZQ`jY#<1~lkImZ2)(`pNOhp|CPeYy$o4xGXup8dy*=*&ho1S3Y`;^1)*Uc| z``G_k=6Tg9?(z>Tz<(I&Ka2#F+&{_Rf3y&!i~pmA{?BTm{|(LK@KK&keevqdyje^H z+G(hAD8Drp-&4!1C#rdG=27q;PYphYYLMq=+KcguyU8~uy{XUi(BI9WHNqw-r>nw(pc8R`AxCW@d27>R)%N?UsBpI@5^ z8N%0hId4_HtsB!-JQIg~OiQ1mD})O~)NF>=*0HG_3uWf#JmvG))9HZ}#oTq^NbFmx z&2S3rF8cso zP#=T|64Jc{t>PLufhha1`(V5#=-p5=+VfglkW60GK#lS}^`u*n>|sBB^H87WTd>^>fKbQeKVRYDZKnqYF$IXrnVLvAL>F8PaJ8|mP?k*&H z6MdnxfnL+2(I%@81# z`nT4;&#+8@JO9d2tL(```rc_!6JoE!^l+O;!R(lc_n%DLT7plCS0%lHw*NX0*h8bZ zOvoOh9p;(Y9CPkC)Y)7mwB5n`w(k3zy5ZP!QTqaK(Z%3=e9?0+)Fa!tKS-h__H}bo zhbMyJWih9pLBko@XJ*Ip+)%KcAVQm|FV{CaMqmVSqQ@$lnTJjuNB(rS0#aJODBfCqvIe%< zXiR1K4#>=Qan^#k?6l+Csryv zAIlq1Ci(zA>f!^_<7SGpPXZe)pJCO}b^7d(#mHP9%8WKfvPx8P79&be942Ls<@u|K zK#V5@1IB83r2#K=USDN|&?`vH8Y1!ytvEXxBx`CzrllBh9s}xC|6e1zifcv_ho+w% z67;IyUKqx!Tse|?`NL8&W&?@Y6eF2jV}V;5xtgrAeo282#8?b`I$eg!qbt9-jCCNX1a;;F=H^jsgGyKoZmZSNvSHn`VUm~; zu+Z54E1v$HFuUOU2yMS<*xFx;vI-R8s%MPl5&4ZYAe!XpL0^XlD|n)*2>b(adgA?i zJk>9T=oiY}tjkW(+-79vExLA;vMg2m^!ex7%x--;pI3Xp-5X+|%5nra5of{|hZE42 zYG8+gF=;5AKwkMLmo%87)dZT*DPnP6avT2hdj=8?PB2lExpuO9FRyR+<3`uV;M%9x zKG*izjhs`oVoMZ7&j+5uTn4LJ{Q#8qp#)+Sbm#}b6s&XzolcZ&E8Gt?BLCEjYJ0mXHAw-o|8A?# zYhZidghD-g){~AObSZxh(|)2EMz?in=29ptBZu!!w`mP5O!31M^}s~H9$v|sJ%xBg zSrYhOXVCM4!x6lg+k@UMsjR4ecd%(5TUB*F4Q7ry%mKFHLK_WpVf2biFf^px0O*eh z7+e=x2z9hWMUS5Cv>Y@$6p=g&$QJp(} z;3P-0W92Vm4vU0^%*vfYWJbq;tC07E~0n^ZbBL0~E(C7xA!d0Z(cb}h<5^rl4MmG8Ll$TmizeaUSu9Z31>0?v$o>V6Dj z*xu{F6}{&=Ku!H10OGNX9!sN zj20k8V9n@l6G>Jb7s^9G_W*-kj#ncNMLHg>1x} zg1GPp*m_!bd>r&PaUif)E`A#16%j>-IVuz#G`0G zatX730!CGOv>-%7RX3xjh0q*W_+*u*E^R#b-`cMdGzLImoVVS%f-q5my86)YXkgNaTcN0N zh(Mun;hV!mA6k<HIj2#2vP{2BF?5(9UN!6RT2jO#`9xi>E`#0P>wXosJ9|lP0rHW$U}f zc6QnViSN|{*J-R?)>}xM-UU%-1|lsYcPHGiAx!q*-R`+0^ zg_f(yHh10<4NwlFmL}RjUxor})Z%Yzlz~{}Pg$&E3kivZy&F|4A+4^%+bs}Hu%+Cc zChI-=Nz{;df>-lI3NX{er2QKiMo3Y)ZYvS~Y5CE$KoxP8e>eyh_NV3@{L|*}rs~-h zOkS`ABk@HOHpelFZunsUhbf9X`466FpBbB|%6GKZRo4J})*k#yo zV&QkOK2)vE092sZyIiVwn*|S$r*InBTjO<3_Ck+w0@3!nzFmmv6$qL&&Xrp<+(A% zk9ugW9pUqE?ao5#a~BIcyh4A<=5FNEEDVvO%4>_ks(IaoK47aSc&LfFbc851?oWEp zr7*gxbYN}Ua&OJHw6SDBnz6caIqZe6q5-6^gevPn6XSM_VzG0AonfM=LUzN8$2Pryc9m23YHQ|-O4|y`7B3jmf>XM&y=Z3L7b|sOg0ho}QSl zJ1Vv+Ri>`G_)W0(3ZK*QeoGh1Vpm;2N5{x=hztWy0C`UGfy417iL^tNdr9L&45_Vu z=zciQBNBF-oFBlO?6=%3y9;+=7E4*3S`^${YU8pN2-sP2ooT`eI&TnBMb&&~@3$5Z zmFGiM0z9;jDnBTewe1>PoL3>)Ze|y`Rh6a0@$c@g@3q?tD&22g+}6OxhD4rK-NxEf zAH`MF=}F9?Ctm2(8E6Nn$~~WUDQx&oDBs&?I#lejhPA$Oo-nDMf4(}PYpoMdLT7I~ zh5&P0s$+{(--;zv%&afRMzXBD+V%RilsL`I!lv#O;MtKLoWjqIq-@DP_})dpHu}l< z4z<>CL~6VV$#!#8CGAlNP2(;B+Ya10NxLCTwZ$oF548Am4WaOszkAKurL-ai^XM=cDQ#Si5mum#zHN zUAZ%8oiF?$JR)d`#NMZnsdNhjv>upog4hqpaRL1RJC1FrJY1JAgB%Z%^;FdxEI1Vm`f){?{@kVSL#stW!??^ei38R zd5Z2o!;9b+YR-P8yYK-^e%1sPiJg^{J!WkIq+gseJcU4-gn4Y=z$;-rM`SKmI1pw& z{|d9JQ|Lr;lPXkJyMl{VI_}58>&Kh&2iKNZQ5@5PNu!mDd-XCQCX{K1;*m>t;|KX3$tQ278P?9)v~|)nxmbD_ zmJ(%9;(+ah+QgMLL{`4rPU;QP^nX@Tufwl>vssw?k1TWHFFuPVmG&i3B_ zj@LSdRY2B~SwVkehj%=}#mjK5_^3d~))=O?Xljq&bJ%XcmC!Ag?`kWL4nHuknn@rl znscb{yg5+(ja(4f&V(VBBRqA_dQs*Yrk`@?CGsc?-m7z+6~%X~JrWNalaAJVXBhU6 z{Hl;V5LSDB12*Ua-~{>4`3d0LpISQHn2Qpq{9#dM-~Dh%BsIaMO6$(!DYl}NTq(5g zyjl9w$w=^pF7F9`ca?>mPy#8hYOawBVJ;tpLGM1atX6j{o6<2phNu_Q;LNL7o*$ab zUs3nJzgE0qOVHNvbUmuPS~e8tm0`Xo5{kg+jjHd=Tk3~unNWmO_q=7k2Nm*r`oX#H z`xA>Z!uat!0f=u6g(%!s&te|MvpwBT6b-zl!f~vJK3jeOrGBxYNBZa@i7>jY&!VwC zq+cucOMuT4@8rYHj&xZn8Jf&&;`eBIvQq6iyE#5Mss1L!55L(TS$mMrvEY^~Vz6mC zL~Y$`;Dy^+A?$8@en)NhK;>G*c$-{R`Hw`gBtP?wmNH9b7vFi6TDK=bmlshSthgh^cN{uGSK!YsTV6;|2~4hx~+C`OrsdmFtO8po=Z+I5P) zDI7#)9S_17DI4hV|0Am$*bAJ5Ecj(Ls``8ieADn?Orf8f>K;3GLn<^TYCxOf*e%&MDyA!i>b2owH+;0#t~z~v^($MTds}xTvYj}l zvYn$-jA7e8fuDG*Wk@!Wmx?<9ZfDc~#Sip&9jY+v9BKvSTg7AgmjuS3a zzJ%peaCdGb7nRT727h6m!?7x|-5Y9{ca;|)0;tA>gZ1J8_aTwd6Ew8UauGnua zP1&LwkF%c6<5X?fCwWwuQXO8vn6|9ezay59C(cNAdOm0 zqg)b_+*jCKEN7GaDNPM3dlURmBDx9>e{G0#sb>qw@i|AF3r8$AsBCTtvQ#s0c+xW& zGZ0ICnps9MW*?JjF z9x-ky4_3r>;SC7`LE zJ-F=At43cUw}q#{+IZ+d#V_)Bj+~6?LRX{7O}@yMMmBi@YVT`bGT-zw!N*<{KCr@y zJ(0A%yu70q7YYZ=iZK-A)}-a$$THvlA#IK2=EV+wT=4{JS%f0)q+d0O=RhM+JR4r_ zemBbY3e(4=t0qZ_GBV~){27wx)%`XTWuC%tg*F?#Vkui*mjPGph&%g{tcsi9_|0o; zwvQQsRt%ATXA=B3h({D?#p|OtnW$P3L<@jc%v<;v$+d6a(Y9-sFBt75-OhH7%jzlZ ztSa@H3-YKdb;0I=#;l>1XK7V-IGRF6(<_U!D5G9778N}*xFuBi=Ow+8N5L4k$;L2~ zYR^^z#XF+u*?`fFy{1b8kDFj3r(xt*7@#~hZV!dals_sFZCWQZtS>aM-K}Rc%i+Y5 zw{KqEtBGiO8@biXVAb+&v{;aWi8SxRz`GGwLN^-7RE~ zg0Bu?cx%B6%%Btrb#VhSKSEG#^@HmI+$4YLGu_gBE}tXXYViKXcfyu393NDe65VG41#olF;D@a)Syj zIA?BtYy)CM%5-N1GDuhoY@fO=1q&_J2`$CR`&I*Ug)HH}RJ!*KRppdGXsu|cMJ&OB zmXd;&&}$#*5X*s! zNr(0}G}oldHV!|d6AKW%5m(^vskD?`x-?(9)ZMv3Z@VXg96fjN8rY+85T1A#LP?khUg1y4n;Ta z>`ZGg_1LJA+x3C6ktk6v_linkD#TL&uLyU}z@!9U<3j?GdPMS?-Z?t`jC4|! zxKUS(&nJ%h-`)+o1wx0&O`sNA6icCq=`Dc0O6#JNr~1_0z%iF*C5EyI9v1K#+XY@u zWLR#gkDb?QclA?WVwuXwr3g&JF}^QzW77SHNv~DBeyuKs0WX8jL&m4u*wnjvvpv7~ z_30{=1qsVCRc5?j{q;T8W0pD*0c8!`GHn-2RETIP->06vnI@q}FP0p^HhAY@cIR9N zv8KW}7S4|9J9Zb`fi)n=Q1XiTypx?$bNxuk7!B^UQ2m%*H@T=!E2ew4QB+@MiF90Rpa7!d4Yh)u|vl4;ipH2KXX~Km-|T@J$RDf$9PZAvD+ALsnt~s(Ab&P4``#Q7^rxZu!y5*uv={Xh-Eu1f;685);_bwZga$V zXTYxY+W9#N3v~rT)pnJ{#oWdZMc}eJPmIPBn3(jo%{OrCRU8xB%qZ-#s1+(}`zg$G zNDi~@)F%?30$&SqrLYWuvc%WIoh&MZ#eUbtKtV=JrS(;UP4+=V_bFsIVrV%7C$&*{ zDYB(X4}0FZ-0m8B!(lo!O~<9#r@Z?L-^0kJ#(f@P3-}mp023Xexg@nKh!zpz9uFnY ze}i380f%|5!I-ytsuE3WvR|cX9GGb4-T80#ok3?`uacW*Bq~ojasfgc0e?Tc{6Iey zzW4{Qw1O~ytVJuSfMiAMA!&5$bnKRG4Q!78mLNEm7a$vN;eeLtRYvA!jAXJG@LaB(uC;)>6=vzKRgItgnzPoal?1;clt?2lFg#vb2k>HgL z;8J+uc8+?pr$RS-?U;0~RQfTRS&&r!K{7~Yq(gYGzJ#Em{$L^G+34#~3jD*L!L!ZL zi5oO9fD)Pi(Wvfk`k&Op|5ceB2nk_5EyWBVP8>KTYxko{?std^^1ESs*r1?qSi1Ls zU7&27u3_Ku%ieh;Sl$^gTG8k-GoGf{+$p6rwC?KJ@TtfU5pv`cv9A*-{OB|FzlPoZg-u+G(@WYWfUE z9RMq#Mi17&MjjtLk_l38Cf-cfrNBSp`OQGgUcUtBj`zl=sTqDoP5{f1R#s5Ibr|@v z{`h9A#q@-)4HAE*?ydnjjr4ok)k^*hG%LsoiVhs1qvo~u16`DH*xF0cW=&}*Wq7kC zXDsi@s4XK67f?syL8LCA`B^WRL0|wbpl-ySpG;Ae3nw^UjsC`M;)G?%RtHdFXSRD% zX_Zd^cBA)r7!IENjFJVDDMOm)G^&BhfS15zw?AxaDDc$*^hGHv$EgT22NeLU5_PBf z3viwOx)vyU*?5Sa&0xYPmp3%j30VO4%f9Qr*T4Wu(!6T%7a^ma)+-33;F%&!djuS- z=#OVnE#P!%9qxi-Jqh{MIl?VezxpE3iVpWG9LII7nkS})v?Y%1#{s-m?Xx#^$-673 zgm;w$f-o1?K3}5;wK(YPr;M%z2Bn-*GzvAnp3YLhNLjqnWC1=e9CR7&tJ=*|u z$3dl`lY#x}4PeXPxx^@~?P?;MIScmuIuo!*cjM`BNDkZ~4L=qxj9Z>se>&AlY`-GE ziw$6`fiZp16Mg**Jo)CzJ0pO)I(erDASZ;*0vg|EF<=El={dp5B%Ypq>c6g}lyJ?} zggw)a{_#z4!CW9P#vH-ke&T!$S}g#HWbYe|qH=RN5D20Bf2MnH0xgk8v&t$B@Fzm0 zX;94jBlycjKOO2VWCso=$Tl(wCF}cgElKWF{>DA63x)}y`vQ;9fjmT&D*z4FW*XGh zVMWrT(YKTh^#_r$IdKUt1f7h`BNB(P(a#+0A+nzYWY6TiP9=LSAUmA_Batx(l-{s1 zNmi2AT>H5Et!nGL$Dagy5*FwBB*oC#jiXU!j%^xM2BI01>-pQ1wl4%mVc?1;@G-`YZL zna2aL!1VMJH`Bk_F-fzsX{_4D`EGobwO?KQBlfzzGpH0^xXDaq4M21W`XA>YD!zUP zsQAsZzUg7-d5X$->C}2C09rBwq#bOGkbXk*!_~mXQBSvy6`6S0&)()vQM68#79$ml zp#X^J^nv#xv?@sQ7@Z9!MYxt=h`)eN*J>oBG;ZYUjEcqp8^k z$hCiQ^Bfh-lM1wxM41REw~81ajXP@=#_+Z=y5h?$1G_Cf766IIAuL+J%g81H*REGq zy))x#EGN~I}ek?h*GRS(ptwgoniUnl$q zWx0q=6_wvEcDXeG=QuVPBt6-%{Qn-$j`}j7b$c9mUOxJG;c$Q3?)uMH7H{bNe&gu< zyJ99fDRR?%KF|T_-3CSjt7;HA+0vjj!{M*!Sk%nyzE>wRKKj zV#!hmWx>d^vw3Aj;>@Z(zxn=dU39TDYx&mO&p^w27#h`pdVLiv!AImkZtmNkrpTkp8%>k{X891xgseCE=2=I-zL>90$e*8zI&P` zXkFJ&p!q-l^nmR$0eUy{n`?a`M_#n{``w*%HccxKz0RK1G5Qqq0kdx<^J@u@hniN zT>>WDr8mVx!4r4aVqjg0tXv=iG=t7EDHvqef-+!0+}i4M5NIe;IB+b{1eWTX z^;dxxNg)CbS-HXm&>R4#%5rery#)r!*6f*0p!N|W90WXqfnkys9|Fz~h=6lIQtq$- zRAvf$09Wb*Bk2|}P_nKYu>xZWDI63gECYtg*?lWOjUl9fLss74APn@2+Jrga;%qB0 zP+$wb5aHmU;0v^CR&AgtC{mFE4oUfF0vb&~z*L5mA{<5&5V*iXD}fq8MbJ72P|=}q zVcLPS=HIrOuFGql7QZ?Du2+~oIEM*HeBI_<)U)pVh1=(<+-kc*LA?=M;O;r>mdKI;Vst E0HSu2od5s; literal 0 HcmV?d00001 diff --git a/doc/source/user/index.rst b/doc/source/user/index.rst index 2f3f4fa9ea..cfd00df096 100644 --- a/doc/source/user/index.rst +++ b/doc/source/user/index.rst @@ -29,6 +29,7 @@ For in-depth technical information, see the prod/provnet_groups.rst limited-connectivity/index.rst l3pods/example.rst + l3pods/multi_az.rst ceph/full-deploy.rst ceph/swift.rst ceph/ceilometer.rst diff --git a/doc/source/user/l3pods/multi_az.rst b/doc/source/user/l3pods/multi_az.rst new file mode 100644 index 0000000000..a5a818b507 --- /dev/null +++ b/doc/source/user/l3pods/multi_az.rst @@ -0,0 +1,323 @@ +.. _az-environment-config: + +============================================= +Example of multi-AZ environment configuration +============================================= + +On this page, we will provide an example configuration that can be used in +production environments with multiple Availability Zones. + +It will be an extended and more specific version of :ref:`pod-environment-config` +so it is expected that you are aware of the concepts and approaches defined there. + +To better understand why some configuration options were applied in examples +it is also recommended to look through :ref:`configuring-inventory` + +Generic design +============== + +The following design decisions were made in the example below: + +* Three Availability Zones (AZs) +* Three infrastructure (control plane) hosts, each host is placed in a + different Availability Zone +* Eight compute hosts, 2 compute hosts in each Availability Zone. First + Availability Zone has two extra compute hosts for pinned CPU aggregate. +* Three Ceph storage clusters provisioned with Ceph Ansible. +* Compute hosts act as OVN gateway hosts +* Tunnel networks which are reachable between Availability Zones +* Public API, OpenStack external and management networks are represented as + stretched L2 networks between Availability Zones. + +.. image:: ../figures/az-layout-general.drawio.png + :width: 100% + +Load Balancing +============== + +A Load Balancer (HAProxy) is usually deployed on infrastructure hosts. With +infrastructure hosts being spread across Availability Zones we need to +come up with a more complex design which is aimed at solving the following issues: + +* Withstand a single Availability Zone failure +* Reduce amount of cross-AZ traffic +* Spread load across Availability Zones + +To address these challenges, the following changes to the basic design were made: + +* Leverage DNS Round Robin (an A/AAAA record per AZ) for Public API +* Define Internal API FQDN through /etc/hosts overrides, which are unique per + Availability Zone +* Define 6 keepalived instances: 3 for public and 3 for internal VIPs +* Ensure HAProxy to prioritize a backend from own Availability Zone over + "remote" ones + +The example also deploys HAProxy with Keepalived in their own LXC +containers on the contrary to a more conventional bare metal deployment. +You can check a :ref:`haproxy-in-lxc` for more details on how to do that. + +.. image:: ../figures/az-balancing-diagram.drawio.png + :width: 100% + + +Storage design complications +============================ + +There are multiple complications related to organizing storage where the storage is not stretched between Availability Zones. + +First, there is only a single controller in any given Availability +Zone, while multiple copies of ``cinder_volume`` needs to be run for +each storage provider for High Availability. As ``cinder_volume`` needs +access to storage network, one of the best places for it are ``ceph-mon`` +hosts. + +Another challenge is to organize shared storage for Glance Images, as +``rbd`` can't be used consistently anymore. While Glance Interoperable Import +interface could be leveraged for syncing images between ``rbd`` backends, in +fact not all clients and services can work with Glances `import API `_. +One of the most obvious solutions here can be usage of Swift API, while +configuring Ceph RadosGW policy to replicate the bucket between independent +instances located in their Availability Zones. + +Last, but not the least complication is Nova scheduling when ``cross_az_attach`` +is disabled. As Nova will not add an Availability Zone to instances +``request_specs`` when an instance is created from a volume directly, on the +contrary to creating volume manually in advance and supplying volume UUID to +the instance create API call. The problem with that behavior, is that Nova +will attempt to Live Migrate or re-schedule instances without an Availability +Zone in ``request_specs`` to other AZs, which will result in failure, as +``cross_az_attach`` is disabled. You can read more about this in a +Nova `bug report `_ +In order to work around this Bug you need to set a ``default_schedule_zone`` +for Nova and Cinder, which will ensure AZ always being defined in +``request_specs``. You can also go further and define an actual +Availability Zone as ``default_schedule_zone``, making each controller +to have its own default. As Load Balancer will attempt to send requests +only to "local" backends first, this approach does work to distribute +new VMs across all AZs when user does not supply AZ explicitly. +Otherwise, the "default" AZ will be accepting significantly more +new signups. + + +Configuration examples +====================== + +Network configuration +~~~~~~~~~~~~~~~~~~~~~ + +Network CIDR/VLAN assignments +----------------------------- + +The following CIDR assignments are used for this environment. + ++-----------------------------+-----------------+------+ +| Network | CIDR | VLAN | ++=============================+=================+======+ +| Management Network | 172.29.236.0/22 | 10 | ++-----------------------------+-----------------+------+ +| AZ1 Storage Network | 172.29.244.0/24 | 20 | ++-----------------------------+-----------------+------+ +| AZ1 Tunnel (Geneve) Network | 172.29.240.0/24 | 30 | ++-----------------------------+-----------------+------+ +| AZ2 Storage Network | 172.29.245.0/24 | 21 | ++-----------------------------+-----------------+------+ +| AZ2 Tunnel (Geneve) Network | 172.29.241.0/24 | 31 | ++-----------------------------+-----------------+------+ +| AZ3 Storage Network | 172.29.246.0/24 | 22 | ++-----------------------------+-----------------+------+ +| AZ3 Tunnel (Geneve) Network | 172.29.242.0/24 | 32 | ++-----------------------------+-----------------+------+ +| Public API VIPs | 203.0.113.0/28 | 400 | ++-----------------------------+-----------------+------+ + +IP assignments +-------------- + +The following host name and IP address assignments are used for this +environment. + ++------------------+----------------+--------------------+----------------+ +| Host name | Management IP | Tunnel (Geneve) IP | Storage IP | ++==================+================+====================+================+ ++------------------+----------------+--------------------+----------------+ +| infra1 | 172.29.236.11 | | | ++------------------+----------------+--------------------+----------------+ +| infra2 | 172.29.236.12 | | | ++------------------+----------------+--------------------+----------------+ +| infra3 | 172.29.236.13 | | | ++------------------+----------------+--------------------+----------------+ +| az1_ceph1 | 172.29.237.201 | | 172.29.244.201 | ++------------------+----------------+--------------------+----------------+ +| az1_ceph2 | 172.29.237.202 | | 172.29.244.202 | ++------------------+----------------+--------------------+----------------+ +| az1_ceph3 | 172.29.237.203 | | 172.29.244.203 | ++------------------+----------------+--------------------+----------------+ +| az2_ceph1 | 172.29.238.201 | | 172.29.245.201 | ++------------------+----------------+--------------------+----------------+ +| az2_ceph2 | 172.29.238.202 | | 172.29.245.202 | ++------------------+----------------+--------------------+----------------+ +| az2_ceph3 | 172.29.238.203 | | 172.29.245.203 | ++------------------+----------------+--------------------+----------------+ +| az3_ceph1 | 172.29.239.201 | | 172.29.246.201 | ++------------------+----------------+--------------------+----------------+ +| az3_ceph2 | 172.29.239.202 | | 172.29.246.202 | ++------------------+----------------+--------------------+----------------+ +| az3_ceph3 | 172.29.239.203 | | 172.29.246.203 | ++------------------+----------------+--------------------+----------------+ +| az1_compute1 | 172.29.237.11 | 172.29.240.11 | 172.29.244.11 | ++------------------+----------------+--------------------+----------------+ +| az1_compute2 | 172.29.237.12 | 172.29.240.12 | 172.29.244.12 | ++------------------+----------------+--------------------+----------------+ +| az1_pin_compute1 | 172.29.237.13 | 172.29.240.13 | 172.29.244.13 | ++------------------+----------------+--------------------+----------------+ +| az1_pin_compute2 | 172.29.237.14 | 172.29.240.14 | 172.29.244.14 | ++------------------+----------------+--------------------+----------------+ +| az2_compute1 | 172.29.238.11 | 172.29.241.11 | 172.29.245.11 | ++------------------+----------------+--------------------+----------------+ +| az2_compute2 | 172.29.238.12 | 172.29.241.12 | 172.29.245.12 | ++------------------+----------------+--------------------+----------------+ +| az3_compute1 | 172.29.239.11 | 172.29.242.11 | 172.29.246.11 | ++------------------+----------------+--------------------+----------------+ +| az3_compute3 | 172.29.239.12 | 172.29.242.12 | 172.29.246.12 | ++------------------+----------------+--------------------+----------------+ + +Host network configuration +-------------------------- + +Each host does require the correct network bridges to be implemented. In +this example, we leverage the ``systemd_networkd`` role that performs configuration +for us during ``openstack_hosts`` execution. It creates all required vlans and +bridges. The only pre-requirement is to have a connection to the +host via SSH available for Ansible to manage the host. + +.. note:: + + Example assumes that default gateway is set through ``bond0`` interface, + which aggregates ``eth0`` and ``eth1`` links. + If your environment does not have ``eth0``, but instead has ``p1p1`` or + some other interface name, ensure that references to ``eth0`` are replaced + with the appropriate name. The same applies to additional network interfaces + +.. literalinclude:: ../../../../etc/openstack_deploy/user_networks.yml.az.example + +Deployment configuration +~~~~~~~~~~~~~~~~~~~~~~~~ + +Environment customizations +-------------------------- + +Deployed files in ``/etc/openstack_deploy/env.d`` allow the +customization of Ansible groups. + +To deploy HAProxy in container we need to create a file +``/etc/openstack_deploy/env.d/haproxy.yml`` with the following content: + +.. literalinclude:: ../../../../etc/openstack_deploy/env.d/haproxy.yml.container.example + +As we are using Ceph for this environment, so the ``cinder-volume`` runs in a container on the +Ceph Monitor hosts. To achieve this, implement +``/etc/openstack_deploy/env.d/cinder.yml`` with the following content: + +.. literalinclude:: ../../../../etc/openstack_deploy/env.d/cinder-volume.yml.container.example + +In order to be able to execute a playbook only against hosts in +a single Availability Zone, as well as be able to set AZ-specific +variables, we need to define groups definitions. For that, create +a file ``/etc/openstack_deploy/env.d/az.yml`` with the following content: + +.. literalinclude:: ../../../../etc/openstack_deploy/env.d/az.yml.example + +Above example will create following groups: + +* ``azN_hosts`` which will contain only bare metal nodes +* ``azN_containers`` that will contain all containers that are spawned on + bare metal nodes, that are part of the pod. +* ``azN_all`` that will contain `azN_hosts` and `azN_containers` members + +We also need to define a complete new set of groups for Ceph, to deploy multiple +independent instances of it. + +For that, create a file ``/etc/openstack_deploy/env.d/ceph.yml`` with the +following content: + +.. literalinclude:: ../../../../etc/openstack_deploy/env.d/ceph.yml.az.example + +Environment layout +------------------ + +The ``/etc/openstack_deploy/openstack_user_config.yml`` file defines the +environment layout. + +For each AZ, a group will need to be defined containing all hosts within that +AZ. + +Within defined provider networks, ``address_prefix`` is used to override the +prefix of the key added to each host that contains IP address information. +We use AZ-specific prefixes for ``container``, ``tunnel``, or ``storage``. +``reference_group`` contains the name of a defined AZ group and is used to +limit the scope of each provider network to that group. + +YAML Anchors and Aliases are used heavily in the example below to populate all +groups that might become handy while not repeating hosts definitions each time. +You can read more about the topic in +`Ansible Documentation `_ + +The following configuration describes the layout for this environment. + +.. literalinclude:: ../../../../etc/openstack_deploy/openstack_user_config.yml.az.example + + +User variables +-------------- + +In order to properly configure Availability Zones, we need to +leverage ``group_vars`` and define Availability Zone name used +for each AZ there. For this, create files: + +* ``/etc/openstack_deploy/group_vars/az1_all.yml`` +* ``/etc/openstack_deploy/group_vars/az2_all.yml`` +* ``/etc/openstack_deploy/group_vars/az3_all.yml`` + +With content like below, where N should be AZ number depending on the file: + +.. code:: yaml + + az_name: azN + +As for this environment, the load balancer is created in the LXC containers +on the infrastructure hosts, we need to ensure absence of the default route on +``eth0`` interface. +To prevent that from happening, we override ``lxc_container_networks`` in +``/etc/openstack_deploy/group_vars/haproxy/lxc_network.yml`` file: + +.. literalinclude:: ../../../../etc/openstack_deploy/group_vars/haproxy/lxc_network.yml.example + +Next, we want to secure HAProxy pointing always to the backend which is +considered as "local" to the HAProxy. For that we switch balancing algorithm +to ``first`` and order re-backends so that the one from current Availability Zone +appears to be the first in the list. This can be done by creating file +``/etc/openstack_deploy/group_vars/haproxy/backend_overrides.yml`` with content: + +.. literalinclude:: ../../../../etc/openstack_deploy/group_vars/haproxy/first_backend.yml.az.example + +We also need to define a couple of extra Keepalived instances in order to secure +DNS RR approach, along with configuring Keepalived in unicast mode. +For that create a file ``/etc/openstack_deploy/group_vars/haproxy/keepalived.yml`` +with following content: + +.. literalinclude:: ../../../../etc/openstack_deploy/group_vars/haproxy/keepalived.yml.az.example + +In order to add support for multiple compute tiers (in with CPU overcommit +and pinned CPUs) you need to create a file +``/etc/openstack_deploy/group_vars/pinned_compute_hosts`` with content: + +.. code:: yaml + + nova_cpu_allocation_ratio: 1.0 + nova_ram_allocation_ratio: 1.0 + +Rest of variables can be defined in ``/etc/openstack_deploy/user_variables.yml`` +but a lot of them will be referencing ``az_name`` variable, so it's presence +(along with corresponding groups) are vital for this scenario. + +.. literalinclude:: ../../../../etc/openstack_deploy/user_variables.yml.az.example diff --git a/doc/source/user/prod/haproxy_in_lxc.rst b/doc/source/user/prod/haproxy_in_lxc.rst index c6051d62f9..aa8540ee6f 100644 --- a/doc/source/user/prod/haproxy_in_lxc.rst +++ b/doc/source/user/prod/haproxy_in_lxc.rst @@ -1,3 +1,5 @@ +.. _haproxy-in-lxc: + ======================================== HAProxy and Keepalived in LXC containers ======================================== @@ -17,12 +19,7 @@ In order to tell dynamic_inventory to generate a set of containers for haproxy, you need to create a file ``/etc/openstack_deploy/env.d/haproxy.yml`` with the following content: -.. code:: yaml - - container_skel: - haproxy_container: - properties: - is_metal: false +.. literalinclude:: ../../../../etc/openstack_deploy/env.d/haproxy.yml.container.example Defining host networking @@ -103,7 +100,7 @@ with ID ``40``. In your ``user_variables.yml`` define the following variables: - interface: "vlan-public-api" bridge: "br-public-api" filename: 10-openstack-vlan-public-api - - interface: "br-pub-api" + - interface: "br-public-api" filename: "11-openstack-br-public-api" openstack_hosts_systemd_networkd_networks: |- @@ -181,15 +178,7 @@ In order to avoid a conflict, you need to ensure that the default route will not be set for eth0 inside the container. For that, create a file `/etc/openstack_deploy/group_vars/haproxy` with the following content: -.. code:: yaml - - lxc_container_networks: - lxcbr0_address: - bridge: "{{ lxc_net_bridge | default('lxcbr0') }}" - bridge_type: "{{ lxc_net_bridge_type | default('linuxbridge') }}" - interface: eth0 - type: veth - dhcp_use_routes: False +.. literalinclude:: ../../../../etc/openstack_deploy/group_vars/haproxy/lxc_network.yml.example Configuring HAProxy binding inside containers diff --git a/etc/openstack_deploy/env.d/az.yml.example b/etc/openstack_deploy/env.d/az.yml.example new file mode 100644 index 0000000000..67f77a48fe --- /dev/null +++ b/etc/openstack_deploy/env.d/az.yml.example @@ -0,0 +1,36 @@ +--- + +component_skel: + az1_containers: + belongs_to: + - az1_all + az1_hosts: + belongs_to: + - az1_all + + az2_containers: + belongs_to: + - az2_all + az2_hosts: + belongs_to: + - az2_all + + az3_containers: + belongs_to: + - az3_all + az3_hosts: + belongs_to: + - az3_all + +container_skel: + az1_containers: + properties: + is_nest: true + + az2_containers: + properties: + is_nest: true + + az3_containers: + properties: + is_nest: true diff --git a/etc/openstack_deploy/env.d/ceph.yml.az.example b/etc/openstack_deploy/env.d/ceph.yml.az.example new file mode 100644 index 0000000000..4d228564a9 --- /dev/null +++ b/etc/openstack_deploy/env.d/ceph.yml.az.example @@ -0,0 +1,172 @@ +--- +component_skel: + # Ceph MON + ceph_mon_az1: + belongs_to: + - ceph-mon + - ceph_all + - az1_all + ceph_mon_az2: + belongs_to: + - ceph-mon + - ceph_all + - az2_all + ceph_mon_az3: + belongs_to: + - ceph-mon + - ceph_all + - az3_all + + # Ceph OSD + ceph_osd_az1: + belongs_to: + - ceph-osd + - ceph_all + - az1_all + ceph_osd_az2: + belongs_to: + - ceph-osd + - ceph_all + - az2_all + ceph_osd_az3: + belongs_to: + - ceph-osd + - ceph_all + - az3_all + + # Ceph RGW + ceph_rgw_az1: + belongs_to: + - ceph-rgw + - ceph_all + - az1_all + ceph_rgw_az2: + belongs_to: + - ceph-rgw + - ceph_all + - az2_all + ceph_rgw_az3: + belongs_to: + - ceph-rgw + - ceph_all + - az3_all + +container_skel: + # Ceph MON + ceph_mon_container_az1: + belongs_to: + - az1_ceph_mon_containers + contains: + - ceph_mon_az1 + ceph_mon_container_az2: + belongs_to: + - az2_ceph_mon_containers + contains: + - ceph_mon_az2 + ceph_mon_container_az3: + belongs_to: + - az3_ceph_mon_containers + contains: + - ceph_mon_az3 + + # Ceph RGW + ceph_rgw_container_az1: + belongs_to: + - az1_ceph_rgw_containers + contains: + - ceph_rgw_az1 + ceph_rgw_container_az2: + belongs_to: + - az2_ceph_rgw_containers + contains: + - ceph_rgw_az2 + ceph_rgw_container_az3: + belongs_to: + - az3_ceph_rgw_containers + contains: + - ceph_rgw_az3 + + # Ceph OSD + ceph_osd_container_az1: + belongs_to: + - az1_ceph_osd_containers + contains: + - ceph_osd_az1 + properties: + is_metal: true + ceph_osd_container_az2: + belongs_to: + - az2_ceph_osd_containers + contains: + - ceph_osd_az2 + properties: + is_metal: true + ceph_osd_container_az3: + belongs_to: + - az3_ceph_osd_containers + contains: + - ceph_osd_az3 + properties: + is_metal: true + + +physical_skel: + # Ceph MON + az1_ceph_mon_containers: + belongs_to: + - all_containers + az1_ceph_mon_hosts: + belongs_to: + - hosts + az2_ceph_mon_containers: + belongs_to: + - all_containers + az2_ceph_mon_hosts: + belongs_to: + - hosts + az3_ceph_mon_containers: + belongs_to: + - all_containers + az3_ceph_mon_hosts: + belongs_to: + - hosts + + # Ceph OSD + az1_ceph_osd_containers: + belongs_to: + - all_containers + az1_ceph_osd_hosts: + belongs_to: + - hosts + az2_ceph_osd_containers: + belongs_to: + - all_containers + az2_ceph_osd_hosts: + belongs_to: + - hosts + az3_ceph_osd_containers: + belongs_to: + - all_containers + az3_ceph_osd_hosts: + belongs_to: + - hosts + + # Ceph RGW + az1_ceph_rgw_containers: + belongs_to: + - all_containers + az1_ceph_rgw_hosts: + belongs_to: + - hosts + az2_ceph_rgw_containers: + belongs_to: + - all_containers + az2_ceph_rgw_hosts: + belongs_to: + - hosts + az3_ceph_rgw_containers: + belongs_to: + - all_containers + az3_ceph_rgw_hosts: + belongs_to: + - hosts diff --git a/etc/openstack_deploy/env.d/haproxy.yml.container.example b/etc/openstack_deploy/env.d/haproxy.yml.container.example new file mode 100644 index 0000000000..f62a05c07b --- /dev/null +++ b/etc/openstack_deploy/env.d/haproxy.yml.container.example @@ -0,0 +1,14 @@ +--- +# This file contains an example to show how to set +# the cinder-volume service to run in a container. +# +# Important note: +# In most cases you need to ensure that default route inside of the +# container doesn't go through eth0, which is part of lxcbr0 and +# SRC nat-ed. You need to pass "public" VIP interface inside of the +# container and ensure "default" route presence on it. + +container_skel: + haproxy_container: + properties: + is_metal: false diff --git a/etc/openstack_deploy/group_vars/haproxy/first_backend.yml.az.example b/etc/openstack_deploy/group_vars/haproxy/first_backend.yml.az.example new file mode 100644 index 0000000000..b44d76b999 --- /dev/null +++ b/etc/openstack_deploy/group_vars/haproxy/first_backend.yml.az.example @@ -0,0 +1,55 @@ +--- + +haproxy_drain: True +haproxy_ssl_all_vips: True +haproxy_bind_external_lb_vip_interface: eth20 +haproxy_bind_internal_lb_vip_interface: eth1 +haproxy_bind_external_lb_vip_address: "*" +haproxy_bind_internal_lb_vip_address: "*" +haproxy_vip_binds: + - address: "{{ haproxy_bind_external_lb_vip_address }}" + interface: "{{ haproxy_bind_external_lb_vip_interface }}" + type: external + - address: "{{ haproxy_bind_internal_lb_vip_address }}" + interface: "{{ haproxy_bind_internal_lb_vip_interface }}" + type: internal + +haproxy_cinder_api_service_overrides: + haproxy_backend_nodes: "{{ groups['cinder_api'] | select('in', groups[az_name ~ '_containers']) | union(groups['cinder_api']) | unique | default([]) }}" + haproxy_balance_alg: first + haproxy_limit_hosts: "{{ groups['haproxy_all'] | intersect(groups[az_name ~ '_all']) }}" + +haproxy_horizon_service_overrides: + haproxy_backend_nodes: "{{ groups['horizon_all'] | select('in', groups[az_name ~ '_containers']) | union(groups['horizon_all']) | unique | default([]) }}" + haproxy_balance_alg: first + haproxy_limit_hosts: "{{ groups['haproxy_all'] | intersect(groups[az_name ~ '_all']) }}" + +haproxy_keystone_service_overrides: + haproxy_backend_nodes: "{{ groups['keystone_all'] | select('in', groups[az_name ~ '_containers']) | union(groups['keystone_all']) | unique | default([]) }}" + haproxy_balance_alg: first + haproxy_limit_hosts: "{{ groups['haproxy_all'] | intersect(groups[az_name ~ '_all']) }}" + +haproxy_neutron_server_service_overrides: + haproxy_backend_nodes: "{{ groups['neutron_server'] | select('in', groups[az_name ~ '_containers']) | union(groups['neutron_server']) | unique | default([]) }}" + haproxy_balance_alg: first + haproxy_limit_hosts: "{{ groups['haproxy_all'] | intersect(groups[az_name ~ '_all']) }}" + +haproxy_nova_api_compute_service_overrides: + haproxy_backend_nodes: "{{ groups['nova_api_os_compute'] | select('in', groups[az_name ~ '_containers']) | union(groups['nova_api_os_compute']) | unique | default([]) }}" + haproxy_balance_alg: first + haproxy_limit_hosts: "{{ groups['haproxy_all'] | intersect(groups[az_name ~ '_all']) }}" + +haproxy_nova_api_metadata_service_overrides: + haproxy_backend_nodes: "{{ groups['nova_api_metadata'] | select('in', groups[az_name ~ '_containers']) | union(groups['nova_api_metadata']) | unique | default([]) }}" + haproxy_balance_alg: first + haproxy_limit_hosts: "{{ groups['haproxy_all'] | intersect(groups[az_name ~ '_all']) }}" + +haproxy_placement_service_overrides: + haproxy_backend_nodes: "{{ groups['placement_all'] | select('in', groups[az_name ~ '_containers']) | union(groups['placement_all']) | unique | default([]) }}" + haproxy_balance_alg: first + haproxy_limit_hosts: "{{ groups['haproxy_all'] | intersect(groups[az_name ~ '_all']) }}" + +haproxy_repo_service_overrides: + haproxy_backend_nodes: "{{ groups['repo_all'] | select('in', groups[az_name ~ '_containers']) | union(groups['repo_all']) | unique | default([]) }}" + haproxy_balance_alg: first + haproxy_limit_hosts: "{{ groups['haproxy_all'] | intersect(groups[az_name ~ '_all']) }}" diff --git a/etc/openstack_deploy/group_vars/haproxy/keepalived.yml.az.example b/etc/openstack_deploy/group_vars/haproxy/keepalived.yml.az.example new file mode 100644 index 0000000000..28c563b38b --- /dev/null +++ b/etc/openstack_deploy/group_vars/haproxy/keepalived.yml.az.example @@ -0,0 +1,93 @@ +--- + +haproxy_keepalived_external_vip_cidr_az1: 203.0.113.5/32 +haproxy_keepalived_external_vip_cidr_az2: 203.0.113.6/32 +haproxy_keepalived_external_vip_cidr_az3: 203.0.113.7/32 +haproxy_keepalived_internal_vip_cidr_az1: 172.29.236.21/32 +haproxy_keepalived_internal_vip_cidr_az2: 172.29.236.22/32 +haproxy_keepalived_internal_vip_cidr_az3: 172.29.236.23/32 +haproxy_keepalived_external_interface: "{{ haproxy_bind_external_lb_vip_interface }}" +haproxy_keepalived_internal_interface: "{{ haproxy_bind_internal_lb_vip_interface }}" + +keepalived_unicast_peers: + internal: |- + {% set peers = [] %} + {% for addr in groups['haproxy'] | map('extract', hostvars, ['container_networks', 'management_address']) %} + {% set _ = peers.append((addr['address'] ~ '/' ~ addr['netmask']) | ansible.utils.ipaddr('host/prefix')) %} + {% endfor %} + {{ peers }} + external: |- + {% set peers = [] %} + {% for addr in groups['haproxy'] | map('extract', hostvars, ['container_networks', 'public_api_vip_address']) %} + {% set _ = peers.append((addr['address'] ~ '/' ~ addr['netmask']) | ansible.utils.ipaddr('host/prefix')) %} + {% endfor %} + {{ peers }} + +keepalived_internal_unicast_src_ip: >- + {{ (management_address ~ '/' ~ container_networks['management_address']['netmask']) | ansible.utils.ipaddr('host/prefix') }} +keepalived_external_unicast_src_ip: >- + {{ (container_networks['public_api_vip_address']['address'] ~ '/' ~ container_networks['public_api_vip_address']['netmask']) | ansible.utils.ipaddr('host/prefix') }} + +keepalived_instances: + az1-external: + interface: "{{ haproxy_keepalived_external_interface | default(management_bridge) }}" + state: "{{ (inventory_hostname in groups['az1_all']) | ternary('MASTER', 'BACKUP') }}" + virtual_router_id: 40 + priority: "{{ (inventory_hostname in groups['az1_all']) | ternary(200, (groups['haproxy']|length-groups['haproxy'].index(inventory_hostname))*50) }}" + vips: + - "{{ haproxy_keepalived_external_vip_cidr_az1 | default('169.254.1.1/24') }} dev {{ haproxy_keepalived_external_interface | default(management_bridge) }}" + track_scripts: "{{ keepalived_scripts | dict2items | json_query('[*].{name: key, instance: value.instance}') | rejectattr('instance', 'equalto', 'internal') | map(attribute='name') | list }}" + unicast_src_ip: "{{ keepalived_external_unicast_src_ip }}" + unicast_peers: "{{ keepalived_unicast_peers['external'] | difference([keepalived_external_unicast_src_ip]) }}" + az1-internal: + interface: "{{ haproxy_keepalived_internal_interface | default(management_bridge) }}" + state: "{{ (inventory_hostname in groups['az1_all']) | ternary('MASTER', 'BACKUP') }}" + virtual_router_id: 41 + priority: "{{ (inventory_hostname in groups['az1_all']) | ternary(200, (groups['haproxy']|length-groups['haproxy'].index(inventory_hostname))*50) }}" + vips: + - "{{ haproxy_keepalived_internal_vip_cidr_az1 | default('169.254.2.1/24') }} dev {{ haproxy_keepalived_internal_interface | default(management_bridge) }}" + track_scripts: "{{ keepalived_scripts | dict2items | json_query('[*].{name: key, instance: value.instance}') | rejectattr('instance', 'equalto', 'external') | map(attribute='name') | list }}" + unicast_src_ip: "{{ keepalived_internal_unicast_src_ip }}" + unicast_peers: "{{ keepalived_unicast_peers['internal'] | difference([keepalived_internal_unicast_src_ip]) }}" + + az2-external: + interface: "{{ haproxy_keepalived_external_interface | default(management_bridge) }}" + state: "{{ (inventory_hostname in groups['az2_all']) | ternary('MASTER', 'BACKUP') }}" + virtual_router_id: 42 + priority: "{{ (inventory_hostname in groups['az2_all']) | ternary(200, (groups['haproxy']|length-groups['haproxy'].index(inventory_hostname))*50) }}" + vips: + - "{{ haproxy_keepalived_external_vip_cidr_az2 | default('169.254.1.1/24') }} dev {{ haproxy_keepalived_external_interface | default(management_bridge) }}" + track_scripts: "{{ keepalived_scripts | dict2items | json_query('[*].{name: key, instance: value.instance}') | rejectattr('instance', 'equalto', 'internal') | map(attribute='name') | list }}" + unicast_src_ip: "{{ keepalived_external_unicast_src_ip }}" + unicast_peers: "{{ keepalived_unicast_peers['external'] | difference([keepalived_external_unicast_src_ip]) }}" + az2-internal: + interface: "{{ haproxy_keepalived_internal_interface | default(management_bridge) }}" + state: "{{ (inventory_hostname in groups['az2_all']) | ternary('MASTER', 'BACKUP') }}" + virtual_router_id: 43 + priority: "{{ (inventory_hostname in groups['az2_all']) | ternary(200, (groups['haproxy']|length-groups['haproxy'].index(inventory_hostname))*50) }}" + vips: + - "{{ haproxy_keepalived_internal_vip_cidr_az2 | default('169.254.2.1/24') }} dev {{ haproxy_keepalived_internal_interface | default(management_bridge) }}" + track_scripts: "{{ keepalived_scripts | dict2items | json_query('[*].{name: key, instance: value.instance}') | rejectattr('instance', 'equalto', 'external') | map(attribute='name') | list }}" + unicast_src_ip: "{{ keepalived_internal_unicast_src_ip }}" + unicast_peers: "{{ keepalived_unicast_peers['internal'] | difference([keepalived_internal_unicast_src_ip]) }}" + + az3-external: + interface: "{{ haproxy_keepalived_external_interface | default(management_bridge) }}" + state: "{{ (inventory_hostname in groups['az3_all']) | ternary('MASTER', 'BACKUP') }}" + virtual_router_id: 44 + priority: "{{ (inventory_hostname in groups['az3_all']) | ternary(200, (groups['haproxy']|length-groups['haproxy'].index(inventory_hostname))*50) }}" + vips: + - "{{ haproxy_keepalived_external_vip_cidr_az3 | default('169.254.1.1/24') }} dev {{ haproxy_keepalived_external_interface | default(management_bridge) }}" + track_scripts: "{{ keepalived_scripts | dict2items | json_query('[*].{name: key, instance: value.instance}') | rejectattr('instance', 'equalto', 'internal') | map(attribute='name') | list }}" + unicast_src_ip: "{{ keepalived_external_unicast_src_ip }}" + unicast_peers: "{{ keepalived_unicast_peers['external'] | difference([keepalived_external_unicast_src_ip]) }}" + az3-internal: + interface: "{{ haproxy_keepalived_internal_interface | default(management_bridge) }}" + state: "{{ (inventory_hostname in groups['az3_all']) | ternary('MASTER', 'BACKUP') }}" + virtual_router_id: 45 + priority: "{{ (inventory_hostname in groups['az3_all']) | ternary(200, (groups['haproxy']|length-groups['haproxy'].index(inventory_hostname))*50) }}" + vips: + - "{{ haproxy_keepalived_internal_vip_cidr_az3 | default('169.254.2.1/24') }} dev {{ haproxy_keepalived_internal_interface | default(management_bridge) }}" + track_scripts: "{{ keepalived_scripts | dict2items | json_query('[*].{name: key, instance: value.instance}') | rejectattr('instance', 'equalto', 'external') | map(attribute='name') | list }}" + unicast_src_ip: "{{ keepalived_internal_unicast_src_ip }}" + unicast_peers: "{{ keepalived_unicast_peers['internal'] | difference([keepalived_internal_unicast_src_ip]) }}" diff --git a/etc/openstack_deploy/group_vars/haproxy/lxc_network.yml.example b/etc/openstack_deploy/group_vars/haproxy/lxc_network.yml.example new file mode 100644 index 0000000000..5079755e78 --- /dev/null +++ b/etc/openstack_deploy/group_vars/haproxy/lxc_network.yml.example @@ -0,0 +1,8 @@ +--- +lxc_container_networks: + lxcbr0_address: + bridge: "{{ lxc_net_bridge | default('lxcbr0') }}" + bridge_type: "{{ lxc_net_bridge_type | default('linuxbridge') }}" + interface: eth0 + type: veth + dhcp_use_routes: False diff --git a/etc/openstack_deploy/openstack_user_config.yml.az.example b/etc/openstack_deploy/openstack_user_config.yml.az.example new file mode 100644 index 0000000000..e3ab762775 --- /dev/null +++ b/etc/openstack_deploy/openstack_user_config.yml.az.example @@ -0,0 +1,286 @@ +--- + +cidr_networks: &os_cidrs + management: 172.29.236.0/22 + tunnel_az1: 172.29.240.0/24 + tunnel_az2: 172.29.241.0/24 + tunnel_az3: 172.29.242.0/24 + storage_az1: 172.29.244.0/24 + storage_az2: 172.29.245.0/24 + storage_az3: 172.29.246.0/24 + public_api_vip: 203.0.113.0/28 + +used_ips: + # management network - openstack VIPs + - "172.29.236.1,172.29.236.30" + # management network - other hosts not managed by OSA dynamic inventory + - "172.29.238.0,172.29.239.255" + # storage network - reserved for ceph hosts + - "172.29.244.200,172.29.244.250" + - "172.29.245.200,172.29.245.250" + - "172.29.246.200,172.29.246.250" + # public_api + - "203.0.113.1,203.0.113.10" + +global_overrides: + internal_lb_vip_address: internal.example.cloud + external_lb_vip_address: example.cloud + management_bridge: "br-mgmt" + cidr_networks: *os_cidrs + provider_networks: + - network: + group_binds: + - all_containers + - hosts + type: "raw" + container_bridge: "br-mgmt" + container_interface: "eth1" + container_type: "veth" + ip_from_q: "management" + is_management_address: true + - network: + container_bridge: "br-storage" + container_type: "veth" + container_interface: "eth2" + ip_from_q: "storage_az1" + address_prefix: "storage_az1" + type: "raw" + group_binds: + - cinder_volume + - nova_compute + - ceph_all + reference_group: "az1_all" + - network: + container_bridge: "br-storage" + container_type: "veth" + container_interface: "eth2" + ip_from_q: "storage_az2" + address_prefix: "storage_az2" + type: "raw" + group_binds: + - cinder_volume + - nova_compute + - ceph_all + reference_group: "az2_all" + - network: + container_bridge: "br-storage" + container_type: "veth" + container_interface: "eth2" + ip_from_q: "storage_az3" + address_prefix: "storage_az3" + type: "raw" + group_binds: + - cinder_volume + - nova_compute + - ceph_all + reference_group: "az3_all" + - network: + container_bridge: "vlan-tunnel" + container_type: "veth" + container_interface: "eth4" + ip_from_q: "tunnel_az1" + address_prefix: "tunnel" + type: "raw" + group_binds: + - neutron_ovn_controller + reference_group: "az1_all" + - network: + container_bridge: "vlan-tunnel" + container_type: "veth" + container_interface: "eth4" + ip_from_q: "tunnel_az2" + address_prefix: "tunnel" + type: "raw" + group_binds: + - neutron_ovn_controller + reference_group: "az2_all" + - network: + container_bridge: "vlan-tunnel" + container_type: "veth" + container_interface: "eth4" + ip_from_q: "tunnel_az3" + address_prefix: "tunnel" + type: "raw" + group_binds: + - neutron_ovn_controller + reference_group: "az3_all" + - network: + group_binds: + - haproxy + type: "raw" + container_bridge: "br-public-api" + container_interface: "eth20" + container_type: "veth" + ip_from_q: public_api_vip + static_routes: + - cidr: 0.0.0.0/0 + gateway: 203.0.113.1 + +### conf.d configuration ### + +# Control plane +az1_controller_hosts: &controller_az1 + infra1: + ip: 172.29.236.11 + +az2_controller_hosts: &controller_az2 + infra2: + ip: 172.29.236.12 + +az3_controller_hosts: &controller_az3 + infra3: + ip: 172.29.236.13 + +# Computes + +## AZ1 +az1_shared_compute_hosts: &shared_computes_az1 + az1_compute1: + ip: 172.29.237.11 + az1_compute2: + ip: 172.29.237.12 + +az1_pinned_compute_hosts: &pinned_computes_az1 + az1_pin_compute1: + ip: 172.29.237.13 + az1_pin_compute2: + ip: 172.29.237.14 + +## AZ2 + +az2_shared_compute_hosts: &shared_computes_az2 + az2_compute1: + ip: 172.29.238.11 + az2_compute2: + ip: 172.29.238.12 + +## AZ3 +az3_shared_compute_hosts: &shared_computes_az3 + az3_compute1: + ip: 172.29.239.11 + az3_compute2: + ip: 172.29.239.12 + +# Storage + +## AZ1 +az1_storage_hosts: &storage_az1 + az1_ceph1: + ip: 172.29.237.201 + az1_ceph2: + ip: 172.29.237.202 + az1_ceph3: + ip: 172.29.237.203 + +## AZ2 +az2_storage_hosts: &storage_az2 + az2_ceph1: + ip: 172.29.238.201 + az2_ceph2: + ip: 172.29.238.202 + az2_ceph3: + ip: 172.29.238.203 + +## AZ3 +az3_storage_hosts: &storage_az3 + az3_ceph1: + ip: 172.29.239.201 + az3_ceph2: + ip: 172.29.239.202 + az3_ceph3: + ip: 172.29.239.203 + +# AZ association + +az1_compute_hosts: &compute_hosts_az1 + <<: *shared_computes_az1 + <<: *pinned_computes_az1 + +az2_compute_hosts: &compute_hosts_az2 + <<: *shared_computes_az2 + +az3_compute_hosts: &compute_hosts_az3 + <<: *shared_computes_az3 + +az1_hosts: + <<: *compute_hosts_az1 + <<: *controller_az1 + <<: *storage_az1 + +az2_hosts: + <<: *compute_hosts_az2 + <<: *controller_az2 + <<: *storage_az2 + +az3_hosts: + <<: *compute_hosts_az3 + <<: *controller_az3 + <<: *storage_az3 + +# Final mappings +shared_infra_hosts: &controllers + <<: *controller_az1 + <<: *controller_az2 + <<: *controller_az3 + +repo-infra_hosts: *controllers +memcaching_hosts: *controllers +database_hosts: *controllers +mq_hosts: *controllers +operator_hosts: *controllers +identity_hosts: *controllers +image_hosts: *controllers +dashboard_hosts: *controllers +compute-infra_hosts: *controllers +placement-infra_hosts: *controllers +storage-infra_hosts: *controllers +network-infra_hosts: *controllers +network-northd_hosts: *controllers +coordination_hosts: *controllers + +compute_hosts: &computes + <<: *compute_hosts_az1 + <<: *compute_hosts_az2 + <<: *compute_hosts_az3 + +pinned_compute_hosts: + <<: *pinned_computes_az1 + +shared_compute_hosts: + <<: *shared_computes_az1 + <<: *shared_computes_az2 + <<: *shared_computes_az3 + +network-gateway_hosts: *computes + +storage_hosts: &storage + <<: *storage_az1 + <<: *storage_az2 + <<: *storage_az3 + +az1_ceph_osd_hosts: + <<: *storage_az1 + +az2_ceph_osd_hosts: + <<: *storage_az2 + +az3_ceph_osd_hosts: + <<: *storage_az3 + +az1_ceph_mon_hosts: + <<: *storage_az1 + +az2_ceph_mon_hosts: + <<: *storage_az2 + +az3_ceph_mon_hosts: + <<: *storage_az3 + +az1_ceph_rgw_hosts: + <<: *storage_az1 + +az2_ceph_rgw_hosts: + <<: *storage_az2 + +az3_ceph_rgw_hosts: + <<: *storage_az3 diff --git a/etc/openstack_deploy/user_networks.yml.az.example b/etc/openstack_deploy/user_networks.yml.az.example new file mode 100644 index 0000000000..1e9e6a91c8 --- /dev/null +++ b/etc/openstack_deploy/user_networks.yml.az.example @@ -0,0 +1,208 @@ +--- +# VLAN Mappings +_az_vlan_mappings: + az1: + management: 10 + storage: 20 + tunnel: 30 + public-api: 400 + az2: + management: 10 + storage: 21 + tunnel: 31 + public-api: 400 + az3: + management: 10 + storage: 22 + tunnel: 32 + public-api: 400 + +# Bonding interfaces +_bond0_interfaces: + - eth0 + - eth1 + +# NETDEV defenition +_systemd_networkd_default_devices: + - NetDev: + Name: vlan-mgmt + Kind: vlan + VLAN: + Id: "{{ _az_vlan_mappings[az_name]['management'] }}" + filename: 10-openstack-vlan-mgmt + - NetDev: + Name: bond0 + Kind: bond + Bond: + Mode: 802.3ad + TransmitHashPolicy: layer3+4 + LACPTransmitRate: fast + MIIMonitorSec: 100 + filename: 05-general-bond0 + - NetDev: + Name: "{{ management_bridge }}" + Kind: bridge + Bridge: + ForwardDelaySec: 0 + HelloTimeSec: 2 + MaxAgeSec: 12 + STP: off + filename: "11-openstack-{{ management_bridge }}" + +_systemd_networkd_storage_devices: + - NetDev: + Name: vlan-stor + Kind: vlan + VLAN: + Id: "{{ _az_vlan_mappings[az_name]['storage'] }}" + filename: 12-openstack-vlan-stor + - NetDev: + Name: br-storage + Kind: bridge + Bridge: + ForwardDelaySec: 0 + HelloTimeSec: 2 + MaxAgeSec: 12 + STP: off + filename: 13-openstack-br-storage + +_systemd_networkd_tunnel_devices: + - NetDev: + Name: vlan-tunnel + Kind: vlan + VLAN: + Id: "{{ _az_vlan_mappings[az_name]['tunnel'] }}" + filename: 16-openstack-vlan-tunnel + +_systemd_networkd_pub_api_devices: + - NetDev: + Name: vlan-public-api + Kind: vlan + VLAN: + Id: "{{ _az_vlan_mappings[az_name]['public-api'] }}" + filename: 17-openstack-vlan-public-api + - NetDev: + Name: br-public-api + Kind: bridge + Bridge: + ForwardDelaySec: 0 + HelloTimeSec: 2 + MaxAgeSec: 12 + STP: off + filename: 18-openstack-br-public-api + +openstack_hosts_systemd_networkd_devices: |- + {% set devices = [] %} + {% if is_metal %} + {% set _ = devices.extend(_systemd_networkd_default_devices) %} + {% if inventory_hostname in (groups['compute_hosts'] + groups['storage_hosts']) %} + {% set _ = devices.extend(_systemd_networkd_storage_devices) %} + {% endif %} + {% if inventory_hostname in (groups[az_name ~ '_ceph_mon_hosts'] + groups[az_name ~ '_ceph_osd_hosts']) %} + {% set _ = devices.extend(_systemd_networkd_cluster_devices) %} + {% endif %} + {% if inventory_hostname in groups['compute_hosts'] %} + {% set _ = devices.extend(_systemd_networkd_tunnel_devices) %} + {% endif %} + {% if inventory_hostname in groups['haproxy_hosts'] %} + {% set _ = devices.extend(_systemd_networkd_pub_api_devices) %} + {% endif %} + {% endif %} + {{ devices }} + +# NETWORK definition + +# NOTE: this can work only in case management network has the same netmask as all other networks +# while in example manaement is /22 while rest are /24 +# _management_rank: "{{ management_address | ansible.utils.ipsubnet(hostvars[inventory_hostname]['cidr_networks']['management']) }}" +_management_rank: "{{ (management_address | split('.'))[-1] }}" + +# NOTE: `05` is prefixed to filename to have precedence over netplan +_systemd_networkd_bonded_networks: |- + {% set struct = [] %} + {% for interface in _bond0_interfaces %} + {% set interface_data = ansible_facts[interface | replace('-', '_')] %} + {% set _ = struct.append({ + 'interface': interface_data['device'], + 'filename' : '05-general-' ~ interface_data['device'], + 'bond': 'bond0', + 'link_config_overrides': { + 'Match': { + 'MACAddress': interface_data['macaddress'] + } + } + }) + %} + {% endfor %} + {% set bond_vlans = ['vlan-mgmt'] %} + {% if inventory_hostname in (groups['compute_hosts'] + groups['storage_hosts']) %} + {% set _ = bond_vlans.append('vlan-stor') %} + {% endif %} + {% if inventory_hostname in groups['haproxy_hosts'] %} + {% set _ = bond_vlans.append('vlan-public-api') %} + {% endif %} + {% if inventory_hostname in groups['compute_hosts'] %} + {% set _ = bond_vlans.append('vlan-tunnel') %} + {% endif %} + {% set _ = struct.append({ + 'interface': 'bond0', + 'filename': '05-general-bond0', + 'vlan': bond_vlans + }) + %} + {{ struct }} + +_systemd_networkd_mgmt_networks: + - interface: "vlan-mgmt" + bridge: "{{ management_bridge }}" + filename: 10-openstack-vlan-mgmt + - interface: "{{ management_bridge }}" + address: "{{ management_address }}" + netmask: "{{ cidr_networks['management'] | ansible.utils.ipaddr('netmask') }}" + filename: "11-openstack-{{ management_bridge }}" + +_systemd_networkd_storage_networks: + - interface: "vlan-stor" + bridge: "br-storage" + filename: 12-openstack-vlan-stor + - interface: "br-storage" + address: "{{ cidr_networks['storage_' ~ az_name] | ansible.utils.ipmath(_management_rank) }}" + netmask: "{{ cidr_networks['storage_' ~ az_name] | ansible.utils.ipaddr('netmask') }}" + filename: "13-openstack-br-storage" + +_systemd_networkd_tunnel_networks: + - interface: "vlan-tunnel" + filename: 16-openstack-vlan-tunnel + address: "{{ cidr_networks['tunnel_' ~ az_name] | ansible.utils.ipmath(_management_rank) }}" + netmask: "{{ cidr_networks['tunnel_' ~ az_name] | ansible.utils.ipaddr('netmask') }}" + static_routes: |- + {% set routes = [] %} + {% set tunnel_cidrs = cidr_networks | dict2items | selectattr('key', 'match', 'tunnel_az[0-9]') | map(attribute='value') %} + {% set gateway = cidr_networks['tunnel_' ~ az_name] | ansible.utils.ipaddr('1') | ansible.utils.ipaddr('address') %} + {% for cidr in tunnel_cidrs | reject('eq', cidr_networks['tunnel_' ~ az_name]) %} + {% set _ = routes.append({'cidr': cidr, 'gateway': gateway}) %} + {% endfor %} + {{ routes }} + +_systemd_networkd_pub_api_networks: + - interface: "vlan-public-api" + bridge: "br-public-api" + filename: 17-openstack-vlan-public-api + - interface: "br-public-api" + filename: "18-openstack-br-public-api" + +openstack_hosts_systemd_networkd_networks: |- + {% set networks = [] %} + {% if is_metal %} + {% set _ = networks.extend(_systemd_networkd_mgmt_networks + _systemd_networkd_bonded_networks) %} + {% if inventory_hostname in (groups['compute_hosts'] + groups['storage_hosts']) %} + {% set _ = networks.extend(_systemd_networkd_storage_networks) %} + {% endif %} + {% if inventory_hostname in groups['compute_hosts'] %} + {% set _ = networks.extend(_systemd_networkd_tunnel_networks) %} + {% endif %} + {% if inventory_hostname in groups['haproxy_hosts'] %} + {% set _ = networks.extend(_systemd_networkd_pub_api_networks) %} + {% endif %} + {% endif %} + {{ networks }} diff --git a/etc/openstack_deploy/user_variables.yml.az.example b/etc/openstack_deploy/user_variables.yml.az.example new file mode 100644 index 0000000000..d94e656edf --- /dev/null +++ b/etc/openstack_deploy/user_variables.yml.az.example @@ -0,0 +1,118 @@ +--- +# Set a different scheduling AZ name on each controller +# You can change that to a specific AZ name which will be used as default one +default_availability_zone: "{{ az_name }}" + +# Defining unique internal VIP in hosts per AZ +_openstack_internal_az_vip: "{{ hostvars[groups['haproxy'][0]]['haproxy_keepalived_internal_vip_cidr_' ~ az_name] | ansible.utils.ipaddr('address') }}" +openstack_host_custom_hosts_records: "{{ _openstack_services_fqdns['internal'] | map('regex_replace', '^(.*)$', _openstack_internal_az_vip ~ ' \\1') }}" + +# Use local to AZ memcached inside of AZ +memcached_servers: >- + {{ + groups['memcached'] | intersect(groups[az_name ~ '_containers']) + | map('extract', hostvars, 'management_address') + | map('regex_replace', '(.+)', '\1:' ~ memcached_port) + | list | join(',') + }} + +# Ceph-Ansible variables +ceph_cluster_name: "ceph-{{ az_name }}" +ceph_keyrings_dir: "/etc/openstack_deploy/ceph/{{ ceph_cluster_name }}" +ceph_conf_file: "{{ lookup('file', ceph_keyrings_dir ~ '/ceph.conf') }}" +cluster: "{{ ceph_cluster_name }}" +cluster_network: "{{ public_network }}" +monitor_address: "{{ container_networks['storage_address']['address'] }}" +mon_group_name: "ceph_mon_{{ az_name }}" +mgr_group_name: "{{ mon_group_name }}" +osd_group_name: "ceph_osd_{{ az_name }}" +public_network: "{{ cidr_networks['storage_' ~ az_name] }}" +rgw_group_name: "ceph_rgw_{{ az_name }}" +rgw_zone: "{{ az_name }}" + +# Cinder variables +cinder_active_active_cluster_name: "{{ ceph_cluster_name }}" +cinder_default_availability_zone: "{{ default_availability_zone }}" +cinder_storage_availability_zone: "{{ az_name }}" + +# Glance to use Swift as a backend +glance_default_store: swift +glance_use_uwsgi: False + +# Neutron variables +neutron_availability_zone: "{{ az_name }}" +neutron_default_availability_zones: + - az1 + - az2 + - az3 +neutron_ovn_distributed_fip: True +neutron_plugin_type: ml2.ovn +neutron_plugin_base: + - ovn-router + - qos + - auto_allocate +neutron_ml2_drivers_type: geneve,vlan +neutron_provider_networks: + network_types: "{{ neutron_ml2_drivers_type }}" + network_geneve_ranges: "1:65000" + network_vlan_ranges: >- + vlan:100:200 + network_mappings: "vlan:br-vlan" + network_interface_mappings: "br-vlan:bond0" + +# Nova variables +nova_cinder_rbd_inuse: True +nova_glance_rbd_inuse: false +nova_libvirt_images_rbd_pool: "" +nova_libvirt_disk_cachemodes: network=writeback,file=directsync +nova_libvirt_hw_disk_discard: unmap +nova_nova_conf_overrides: + DEFAULT: + default_availability_zone: "{{ default_availability_zone }}" + default_schedule_zone: "{{ default_availability_zone }}" + cinder: + cross_az_attach: false + +# Create required aggregates and flavors +cpu_pinned_flavors: + specs: + - name: pinned.small + vcpus: 2 + ram: 2048 + - name: pinned.medium + vcpus: 4 + ram: 8192 + extra_specs: + hw:cpu_policy: dedicated + hw:vif_multiqueue_enabled: 'true' + trait:CUSTOM_PINNED_CPU: required + +cpu_shared_flavors: + specs: + - name: shared.small + vcpus: 1 + ram: 1024 + - name: shared.medium + vcpus: 2 + ram: 4096 + +openstack_user_compute: + flavors: + - "{{ cpu_shared_flavors }}" + - "{{ cpu_pinned_flavors }}" + aggregates: + - name: az1-shared + hosts: "{{ groups['az1_shared_compute_hosts'] }}" + availability_zone: az1 + - name: az1-pinned + hosts: "{{ groups['az1_pinned_compute_hosts'] }}" + availability_zone: az1 + metadata: + trait:CUSTOM_PINNED_CPU: required + pinned-cpu: 'true' + - name: az2-shared + hosts: "{{ groups['az2_shared_compute_hosts'] }}" + availability_zone: az2 + - name: az3-shared + hosts: "{{ groups['az3_shared_compute_hosts'] }}" + availability_zone: az3