From 32bf0cc664bcd8baa46fc017b8c26ca49c9752c1 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Sat, 24 Oct 2020 17:34:14 +0200 Subject: [PATCH] feat(node): Cortex monitoring (#321) Signed-off-by: Nicolas Lamirault --- diagrams/onprem/monitoring.py | 4 ++++ docs/nodes/onprem.md | 1 + resources/onprem/monitoring/cortex.png | Bin 0 -> 17704 bytes 3 files changed, 5 insertions(+) create mode 100644 resources/onprem/monitoring/cortex.png diff --git a/diagrams/onprem/monitoring.py b/diagrams/onprem/monitoring.py index 4d90d85d..68b2fb41 100644 --- a/diagrams/onprem/monitoring.py +++ b/diagrams/onprem/monitoring.py @@ -8,6 +8,10 @@ class _Monitoring(_OnPrem): _icon_dir = "resources/onprem/monitoring" +class Cortex(_Monitoring): + _icon = "cortex.png" + + class Datadog(_Monitoring): _icon = "datadog.png" diff --git a/docs/nodes/onprem.md b/docs/nodes/onprem.md index cc631ce8..f93f70be 100644 --- a/docs/nodes/onprem.md +++ b/docs/nodes/onprem.md @@ -142,6 +142,7 @@ Node classes list of onprem provider. ## onprem.monitoring +- **diagrams.onprem.monitoring.Cortex** - **diagrams.onprem.monitoring.Datadog** - **diagrams.onprem.monitoring.Grafana** - **diagrams.onprem.monitoring.PrometheusOperator** diff --git a/resources/onprem/monitoring/cortex.png b/resources/onprem/monitoring/cortex.png new file mode 100644 index 0000000000000000000000000000000000000000..c241cef3cab1a488c9057600422fb56f686de975 GIT binary patch literal 17704 zcmW(+1yoeu^WR-|VJWGlyOHkh4oPVcmXuDVW9eE-5cwiXs&ptRwe*4_A)QMo3c>V%4{Us0p#lLUtgR0!` z8}L&#Lp1=PIh**#337kW=Avt62mnOz004+Y0O0Dr3-Jp8crFS6?7;y5`9c7IHlX;k zsp9zyJJsZ#KMdR|!ib7qsJH+cJBFA5@uu_f5XNX5#`iyt{Cf8(fJf2JC?e!BM3b z66kAsA0|c&?(!GpGr|wMVK{G0J4LnoB{;r{YzLeprU^S$Ly5vAo9IPZ3Nbi^Zwk^3 zbc7@X%W=|IW2JM~V$%mWACNSN5%FA=po!8N*!=_7O(=MFdnet5Z=IdW1(SQ|N+t)K zrQ-(207Qujq1||e_&)o%Sjwi(i;FUkq(++06l%}dKw(s2q=i^qH;EvqfZaKOgEw)R zlNZ5Xk%-C$^Wd%Ebw#MGfb7btdy3TG!jw?9mCS;GTT(?*#e`HR`WbPe94hs*Tq;#+ z6U|>bpcMcXd=3h^h}j@Hm}4YlMmcLjgAt>MT?99J!~{`H&YxWj;7=qkV}<%8fp6L1 ztZ;eJf}fGJj8oE1!T~BrY)7D`@#jHC_%GEy8GcUZ(EOFcCUyUwbQAA#ADRAfZDj7I zpORVMLYPWzPwYa33S)PPaOwBU8^DzkL?dT9pyNUU;E|IOGdX=x4e-e-}rJIM_M*iv6`=fk%&DnIxjNCHgBxx$^sAC=7sp34r@!z?guY8t=?-n;eA$H;f}{8y$2@ zM0rm7PTAfUn5xQ9kJjqsZo>N*`DYUsYfx!1G|Z1N#b|3n8)qY!_L${>nyP5m4I)`0 zS$g`v$)nwWY$fA%0b~H*56nl*mKV)j{=GW-P<)O!zHXCr|1w-Aql zF$Q&Ly@z)bt$6V_^_A)>*QqpQk`9=*Q zyCM$YB?@~8O`G6#;mKhl#V|C8;$y!fF=a&axtZX?;f>G zvQlq~-}at{V0c>EMW9||yl`1{G#rqgrN~5Yd%;uG^NyC@EEdn+pn*bm`V4DArM!ehftqnXhuU%APPJh5@j1g#EL$bb<7DD}mXcf^d6zy>y`n?5= zDTJ@!m4KBK>t^0HksRzds+ZMy|Dh_14tfU}?ebEKv&3rPFVW{eP~Owt98uA+`-Cc} zv)QotPJwU{&(s*{k;t8{hS9LAoMNZPDRo^v=hMtd6FneQInh6#?P&466zc?1pp41c zPs8Cw$7@p5Kx--wQ8UiI#GC1NBhJ7h0*pTFKbn9wsqLL=ZYEbzqHwZXsvl2C9tNhl zp|A)?xbI5Q?4LR@VR@_>Ub%|5k6-7dj7H~9^! z1c5F0eZtCsQ<4$9=QFg9imkvoizS#66p_$!?8h|hEl@CFqk}OCsn8I?Q_nbB`4B zOQut_i}6Tx0P`6e)R!~?Ov6^Ve;&hq@rniAWf->j=r|EP?7NO=j71A~2NUOX)$~t| zL2|@dIRX3Kk&LO-ThThL>l;?~FEOkP2U;=`OkAQcdPE=cMc2R-p?yM2T<`3*b`c|~ z8epFIEg*{YQg&GA#u%`nmc|*KB*pOi$4}^h8hE9&elz7Ei^C09(c{oU0!F8XSt+2b z!>_j}G7~RPx_LIv$?Tlz4`i7~>cRQRQvUem2dK^}4?Vg9ybYZ|Jko99Iy+F4gR_9y zKatXoNPl6oT|c!EmeN~CXV{R?_1rI)ExPP#)SZUkmgqz?aR)xZUQPP;YISVPl&hJ|a~{=f;A zrrDRxcO1n3{3@0>S!;!8EF~FKo?W4vyPtz1p7=)+7z_vNKVGwa7ICuq6@zq83Z}hm zc8Ln1VOsvZ3HoYJz2}w%;-{V5C^JFD5O`AxC(!|x=$KYGov~Shb~(FLS#9ROU(S-= zlY1(yzfTgp=>v+%IKPgjcG~+roG&I_&xe2em`{#JUo21b8K*C10sZ9j>YYX&(v4VO z?v`cKF5U>H5v2T_PRW`U4DZR$GwJxblk@!*=h*>ek@1fW$^*kmwupZp`Hm{M`Z9_9 z&&%{io`+&mbn}ABXt|Nm^cr?GDa{Yt6AXr(x>GH8R_-2dJ_&IEf77Ojjt;*%JK`8; zVl=^Zf61Y!Rr=BBr8XCt{l0I&h!&OKML`oEY$=$D_za6A3Xb68uB)dW%$}$et zoF&`rgnp9L{%;CEvdN0D#EEV?rroT*!VK5TT-9I)=_)o+Pg6HCJ6^~FmpF^?=er{b zTeG{Ac1}Y%>?Y1{QoH~cHrpKTJNs4qzL$KzcNfB*UlnOx3Nbx8PxR#?Qf9C| zOxh!yzp+E;XW^uFPNNYSxd-@Ye8Sm$KpjvPqE*ysA1&~kHm1}wDHiaO@Kg^EJ0hX$ z?&NGmJg*oL&<|E=E-js212EKV7SsBg&cj!wZJ`|p?umISNuMX#S9yNnmsKBpksGSw1cbP{Vljl%2|k3L*+ zj#%#-S6#R~?K`)=E!pQ#qGt*tDkj8~Rs2Bf-rGhz-sIv4QZt;4s_+diG^!Zr`&d?4}Qr$j$PLTHHIJyPQZS@GAN26R4Km8^b%WBlcjks2J2k;h>Y_v zlTi|+?0`Vp>w}BsnJuc`(rtdMuHXk_bm4Mj?E?GsLj|Oc!@R&7^|v-U)qYf8w=834>fBW7%kL0TIm%FWq5EKOD;g;a@lXBrh6? z|lS@u+sj4iQ?R%SRhSXpf~U zWTHVf|CiD7Ua*{CIAF&C@yj}S3y((rwheDtnk;VI6Ie}!2&~wiCc^R;g{g!W`cro6 zg-xf~x+rVwoilAV{k(QTEKX4gPj4KLp zCnPqNdCw#U@BV&PMfWWu>w5^Q3i+muCWiq?CnF8AIUkiX>LM6C`L7X{HkCwFE-ZMV z{%}hiV}suCqz_{m2KYR?Ie^U;2tBV<2ha$-N$0;=JbE1>oDx-@pVnEW;~ZM=50)bB zX_=QXZEV`XkfB(aKadji##?!_8w#-<2%#kNzi#u}2GR%kk8doPH}QNCiQD&zGRQEU z8aEro{YZtntV)-1$PzPsILO|@L!9cC`hc3EZc7FZx}reU^%M3JGSt?AKO8j#0_vMs z1|y#AgI6q z<$4ifxTtZ1Cr8MYaO_}Js;}1Ybv#c`%tcg)6eEi1$=WuEW976EqrHV~@~QrFYMHQo z^(%h*2wH@A>io<_+rl@7l<7AsTCdb+HECr;g5groLG4Y@sGJzk+OKc2wCK6Cu+H(m z96ulfysincFw&WJ^Q0lON#~F;2H!rg&(K9Zx>;hNkI25bmw=pgMBzZ4y7|eNg$_K& zS58+0FO1B~%59t5wfY-rEOnw(!)p`GrRJ(Xr`zkzm0`?;XU%+VgDu-PgceQVOS01R zXTEhFmtIs(!rE_0@D9-D5|rbN+nQ@}nIcS?d&R!nvIp0w5}f158PZmY|E=O7qstE} z8#WTJzBj5-KV9yQwNn>v1%~0ZcJ+cS0YfTw0#kUWg+3=Yb~!gj5J%I4Z|OXyS!R#8o6L{g|+-Rb7=Wt3mF@c zk^bNOC9015RQEW-WDJ{;w{D*GEGPNu$se4}!i60i>&djQ+R74Z^!6V;TnhobDl4xYhhwh_=8jaHRPR1>vKq6!G9Ip`C^! zu}i7CzFli?(6TGQ<54M^d%hAR9dYUguGyg#uedt@V>%j4mit4ROk7<`g43_m+lAZ_2c)8EPdw$w8Q@4;G`?yfLqy5O0XFJ9#0 zplCfdo?Gb6O5lyjtem{`3lBgSFhwD&525f8bo7L9=Z78Cj8QL2=P}cl*>bZW$r+>O|TH7FmqUZAokB@aW0_9Hg zKBZaDu#y-2X06Qu*p9aY-rJ4vgyr4$yJ)B&WfpUmo-_Z5eHq%slAiCa+*kLty)TYa&f5JqE&eKzkiF1h2ZwLY_CEM z6O5jl5EVw>Rgq)N7>r2qQsR*Nct0%CY*v_Xx?=!eD5jlm&M%0PFVRB&k9_2J6EmkK_ibYT}AIeH%7Z>ju#>u~tD zra38`b#+)7tG49wZ?A-t5*a>|&+cdW1L;6~ZuLk15lNIlinR94wJT#dC z<~#4bZ%Yhs{e=&8PZ-T}C1vu)anhit%t$YoB3ZZ-1?$M-bB@jy&ft`?u(%Z5-$8OM zyhX;Bv2DkpFhG9oU1oOw{qjye-#uo4XQa=)U)0>= znQWy9f`)K4PMpwi{~QdHj>31Si!=ho1x5mgA&Z4+?E$omBD_HB`BmiscLg5Lm*@>YUc6{JHIK(8!wit`^k{5~{;mg;>PX=oWU2k7AWU@s{Xj72 zAjI`$YjdhS&Yy-!KlWzy5Jh4x-t8QQ+4^hf6isu0o1k<#@Nn`PfjR!rrR5fz6SARSSmLf8os zp~Z+6A&;{A)&oW!Ea*2eH_8tS=_bz|f2}*QfjGZQ=-Fk;Xh|JgpA3uNlhQSEFYCEj zLRnOa9(w-_v(&TvY-)Q;P`|xB)wUbHkOBh3Nlsl?5Boa7R5C%5JP!u>rkpm{bm`sT2DByXomm;~s}>v3ae z9N^!nv}|Qboki)g%O3Y&kg|oNB)yydY3aOMb}9Kesr3Mse1^ppZjVs+>&yN_l)~{E zwT3qFaDJ)@h($q%s(0E@9oTT)PtDB=>`whoc8E3R*nL%+DW=TKP)a0QB$GwSKQSEs z$BJCjdYSV%ssYNk4^gq(4M}(Wl)c_LjMEK8kDp0BxPE<%d!zd%hQ&?%FdO~DbXjYNDNCM0j7}fvOariqTZlh4hgGSD2$#O-#wrHAL^lx3!$fP_{;tj)~eg6{^!5 zLrri1#j<7BTVBIwo6=w-KwDsRdj?Fs# z=A4S=tJecWp(t^H-*4Fq`q89dNty?oy0@XzCI4N}UTxf|&H^J;PYp&>#CYv;6tHHB zuL@EuQ2(mre)iCvSL;K2Gs!bCR(!Er5%K3A6DSD(9EA0n9}W*Hu7(2}N|it0i)P;T zAhR7>O2((*qCA@>t~Y;oha%$hF4^M+R@AC)?X@f=_KQkXrBjjoy2&+QHuOVdxyKydZp4!Jy zN&f*=JZkbo(+pTfYw=)?0qWB>W_iZ&Bf)FhTbwd-y#yhfu6=H=$5E+ zfkRABKizJ%Zeg^bW@HRwa8AVj!r=z15Z$B&s;8AReXYcUDH3XP=XgrSh5M#IDJBs1 zn+LmLU_wsK7je{;$|P^b()Ws-qLBC|;Pfr4MBf)4#5CW{^oT%M%vb#~G%0ECX#9S*B)jpOEslau7o9zO&GvEm4t4i7=x5_`G_eWd1wDlerj}>yvG0W93!G1mT@0 z)=2Z;ovBd;iwhY+WHf{~EY-MsyTF7PuUA60NqagG5eVh*K3Sb(BBo*Rkuv*nn> zdkXvc9R7h}-pUh!tisPK#*XQTtUK}i8(&hXx&G0cy1bCha>yRhj3FXSD&g;@JrPsM zeZkO0b|iN-w_u1a40#nU@(x3O6X@aBGkKjQlne$|aUGZbaRrko^89+rV z8TGhZC0hq#WCXITluQ?5yrqh-A35OrQU3Wj&`u!^1$1{+Cla?})MYX{$9QQ@og96S z0vIEhBidn|ADZ^#NM5t*NM{P0DEk|Ms!KMOL;gr(G#hpqg)-8I6(;$zspPy z#}!c1m*x*YAY7z$F2@hzl~^5z*ZjYYya8tp=uo_A$=Fl^XXgIRz4zcXYpvtYAyD&gRD1GwQ(>b6YfIgAv=D>y@13a+L{w{)+$ZSJ^Fdl}# z(kvh1jX2jnUUgLCF8QuWOk~!H|1xvWrMnnR6u`A!`8R-os40->b>JVH_~-1Qqkp|e znO(MTrgfn=b*(J3s**3_rkmd>GD5_ejjkv%ID7W*a_N*v>cx71o;}KK8guD016w)Q zEWRwFgm5;TFcFo2Nr0NOHD0hJ<+o7oE?ZZmR^%vxwR1_YH1*hDs3_kQ*|QJzB8urj z1qFcn1&2~hb_VAjGwqw6yr|ZDqo3%`LeV@F=)*T3 z?@g)7csO_IJKl6;OLpP_gR~lU8q-qXDV8Uk~klM>S-z8rnp4i`gO09vp6ph zw|J2kYxm)*iHC6_Db{TtLNKui5sGF7KcYp-&U2&ZidGL5Q`=C=ZEDF!L!u*lLPU?t zR+_q_cz`7RW@L(jyiOD*-fZU@{A&ez4Hi7g>4NnM%olS=54GAp&zmlw@%M~Ek&T6@ z84bBJ&{Il5)hqC!Y9+`T|Az>$gDk+)p26W*YGQ8 zoHRZwUU%d{SDPN-po3J-|8Wd;>DW48Zk*}f1@rlEO;D5zMm}9HDjmNis(Hppz&I_9 z+7Q1y1La|?;~AD)HLY>=pFOW^2LsB4 zX-S<+62Ktx6d-k zh5;PdBotJinfkA@rCFfHT(WYOj&8dfNKb{+3W1KL&1w?h!WntAU-#Wl_+^>;a>cLO zV~jQ^Sc`s(TCgW@Oj!@a<^=zOA%?s2D&x zZZXXV!xe9eG!0L$W=UmXp{$oLuGJYW;iFH{1;9gDk_AI5XaD%t zQh=L)cFC|kM#9MRVeVLwo zOufZgHB>UdOZG|CGE$WE+fy^^Gsy=JD*HazS&EX-LkM0)mdR@p+m=Py8HQ&CGWD@YfT)_dt+t}LmsZG|78kwo;a)oYe&{d!ThANi;@ia9N+>6yj4sGO66gc^ zMcAneYXR}*Ip`Ef20|U)+erA}A)gj&2RQSH-2#Ch!!mcyKr*~lx09oflQ?VczC*Re z-6086tJ$B>ifRE}IHN63GwII(jKCE_c0_*%A?kT9Umc!ynOn#2w0 zs=f}qS^b3;WeFi8`jq=I(I!#Sz=O+L?i?#~+k#(x=gDT-qgqRz_B$fx?Jo~4;zx3| zuH0gAVWj4kl#*b-GzBRY{sAak)6@!sYQ{E4Ac;7S`-`B?s{Cfo;YhR;!})z2P?<#y zA2lRu*;si7;{C2d-<9?%M46`IYY6^yd{>|zoiwG-su&SxtrWZcu>z1@gj#ai;3HdU zT$tro5*MbTs>XuIGW}9eTiOLxOWOwGDaNqceZZIRV1C1;mtc5|_B-2zHI6i_Y?uQ3 z)WD0%f`K50d%Y?|GMHF2k)KXRfLdxU>nY(k(dAj4g*Qt64RW_qQbwq;to>dzYkvxA-!Z8BH~8Nb!VE6r7Ttr zhyKcDahFu8o9*Gp2Z;D>r5Pwy-1v>~h8$Z}#ZB!w(kqy$J3j zSbs!ZMQQ`#NbAo9jn`KWTVwqIZ>I6wGRxKAr&PGy*ANC(8MS#&?*D4*^2BS0-03(? z1*5f~D3k+O==WrqJLMa$(CAh+_9q0tmqbaZL!|TtmBpyf@!X?DCbnLE z1wjMb@N0P6rOk2#(jMyAB%r>Aduu|Uirgr9eY4G%+H~?y^r?JaRXUDQe>C*7(QAkh zJvk75UVf}7VA=;{t$@k_9>kp%XWh657OFqYucSU1 znKMLkx?15x@chZmw?o++^qL6>Ll(y<4@X`LP)L1cCbR^me~J!pg84D3qGbIkRjv7c zTE8GTTUBj(_RKPXSZoHK8SF6d%T%XNOjPKPfz$Iy&>&)pRDsF-UvptQG>#)32 zafa_P4Jzc5*?p|Im}|fBg{u*>Uyxt#p+KLZgU>6-!UolC$i%xK)2DjJ@&Vxkljo&` zuZqN`_`Rcv`Y+GDkJt6^8g7+YxU9+lVhT(8is1Y~Gy#lR__bQ1lbl&fg4?7 zB_pPELknpZzDryP;Z?COF1qU%^#mQMM9*l2@%rwKU*%C|oN|;4ymK)ZF17fNuAvWq zgcBSr@POOl$<04LWe$Pd4+f_9*}4_!?SCPhRsR&V{)unzrMG0k2TaufNP#go*bk}0 zD4H{{uB{cDp<*hOFm<%SLKOe4u4vDhalT_c@24hy;@8gsp*-icVVIveX2e4uY?GH;g_EM_5YK->a6MlM42V?ruW@;{&T=4$#2C1UWfm#jw zt@e~#6xT6hhhmm(f>8FoXK_TgC)W&e77`t$5=1V`(6|YjX#|E|#ZY~j+wh8>W`q?0 z{n_bCb6^=J*SiE}9hOYb*iL>++`KC_d*w?a`HeoyJ~qbe3;xd4O8!ibJI%-^A&!oE zhHU-zc3T&VKMY|DvMGDJWr|5NSYHD1o==RR{HMJsB8 zRNi&J=X`f0%YbprEkF9;MAEWs`$j*umTsAI z&(ZISl0}o8IFG#ZFHakDuKAMRkemLiy_4UW&@HZcQn@UyTN}1?i!=o62XwLWJa$NP zzK&a0zkWx?DPvM3Txzjyi-fsFU~MtPksMjf=M44rj+jV){{5 zxg|`gh9G~?hN@-|#SdTN&pDV_$U85`w9T3f_8Yc|(}WSMf2o$YM!xq;RRN;vwqu(9 znn6U@>H;y$(w07s=YsPG4eCh6n*?pvqSHsCrNNxU!2js1SEkN-R2y6NR_kjxK~2&3 zgR5Smei{6?>alWvE-G+!0?p%5hhyM&5(Crmz)#ymJCLJ<@-|>^M$547Qec+cIryZ; zJ{5W;njat)cf_~g;Hv77O7o$QW92L5LMU|t_sw;=Jk)pO;wFBF)Yg~eLmxUlElKuI zq%f#3W!1eR)1_WBbvg@g)W9~`67_oe*57;f+E?I80CgqeMtJh?n-2eCa?`#Qu*`FS z8-3yte^}CWbpB$ZmGEp8mA@8)g7Mt->C}$Oq#DMg@hLa;-_>{T*{-`!%muW&Z za-Tja3HAi|SM(IFEj|4lx|u#ZL>773q~thaIo1a#`A`yWFh`=83g75RsjeITEDWz- zv?`Sg%euH`;}YD@WqW?TtNn(!;ji-$-BA4VwPQXNjP>>+zw3ss0_KZFcAyeFm>m6A z#_wu{FKlFpp)y^`+A|-Mv{Y-$ba1qbcWTtwg^JzrMj1Pk@r3?pH%a~bYc3*MBMcw5E!GH#TFzC%T+=oDCYp771m0H;(Q@@C zy5qsFi*Rvo$~4h0*Q|u4<$Pvx0v|CQ7Vh<+{STXVSy1D8E>z(Nb z_W9r=b;456OD4(&Hb!98JAl)WesK1Yf0%_QAabQ7JHuo=of;?J3l+?T6~i z4G<`*<2+Ni}nB~p50z9ITYO|+hFhlZ@)knTOOj=iJk-y%a}khi6I1CsszO9#ck z0vqdDPm9N_?$oVaKGH2&#Aur!+BE!nHb9X@tW{hTvJFaLirWcv$5YGiF?g4PM|k{C z+dYQgC^VB$|02bi(6PL4dOXE9gEhCiNTs8fWzdR!_vYW+R8yiWBz@>wu^&+^E!oyy zz9rG+>|^nr19T@p-@2S@xXTY??#MoC*2(F=kO{+H#br!3f;Y2A-yqLHTIB{AQnyh= z5Y@$ZNe?vRh&v}glRM?cS(Pfs{v`S2c^X@)0!H8>sw1kAIZw;G z5mvQREL|*{=_HEKdXwJRHpco}Z+5FYgMP{ZUxXv&ql(s*Wn=Y*IWl&YYi2&*i*VTP z%yx(0LlW(eO^kcwN{m`T%gkYsx#u_0E!=>?$)tM%_Dv*LeD*Ib zb?49#cJFJ-HC-_>(9cibYF*zkabw7Dzd*l@&GGTT1vzYj`x$`UU#@KuIPTsa$NXgP z8X(dfidnGltNs}Pd!Y;=ylUV}3KidUJ1O~lh~--%-BeFe)kfve77K)R8g zPL2(JxCrLGzOw0?!7P$uHyjSXTgj*QDupxtD6|y8pi*#4lrQ;=DM`ym8z9lmnnTmZ zLU8!2VP4F5k z8$=#y=4KQYzI|L~CuoHhtopYrw5+plawo9z_r zkPh0O*9{#DV}Rtc6Iba1isot`7-=c3;Z8RBv)Goho1b=L7RvyVlhe#NRxSLwAcbB@ zE`IJCCv=slPO_MTL_qCb_GYW0$XVUHZh$h2HhYq^`*x>YkUxT|S1bT8h(ajoss!O# zzC5r2mrWiRe^NR=!&q)#$_KQLUVMVzR}KDRyURB;h&~84sQ2gcMklE#BgI}L>~M~{ z$dfHoDL_t*zn!X`3I1%r{?8&7%c3KhRCum0&po0_`oa4qA65^n3Tt_$6%!~76q@_3 z=iyhx_;j|zj@FX-KI0fs(55kdZ8MsH@2kdQs-khO#3N3N3$fnIN3amj*h6uw|GzKe zrm)T<-W0KrYmUM0C&jyBu$LW7GYbIK5P+4(k!eR)?hbl7#s2c~;8=%1@R}~kW=bj; zZtny9c%L~&o~#G&1aQ#ap1|jDD(ivc9F#*lLvsLCp>BJjA>)yK)=Bdu|G7so!YZPM5{3B-RpRoT~L&- z9U}SgUSDMMdv_(U@qHfiQ&%Z2#?eJEJZfyE>fgIJ+H!!GK5y^i%USq3!Z+0S`tZJ0 zL4x8bE0{fTR%&!F^%Cqf<2|_imX%;koc#z+Zv+18i6trq4eGN<5_Q0&>hYNIP*+4&3q=Z|!l>$=bBfq|JcRM~eEFUB zf041QxgUX?t3C=xkr?o(XP=JXJmEiZ6-_!cN`U|1=Z6>PrJ+m~N1U30xKB=3A|NA=AMlNxze$&XgMisC+ za~L(Lr+3K?;VccLQbN;+P6jUbqHNg7UROM_-j;jtlB17#*prFaNAJ`~cF=TpO{8q= zMW03wsgLhH_G=ujGrRuvtT#q4&AlWrH<=bSM2t%6`1Il%$08S}4v}bLAEX*7Q?C46 zg6|HOrFJmkhu>=uySwJOGf={S43(w3BpUzMeoV&@%+}K^w1STbOPxkN@3?-smc=tW zF3DO>?^J)K5jR;@KVL``bD)HpM0_Ib-LSu;8i>gL0O)%^^}3Da>_-R74D-sYB%qe) z@FIYgRE|kYs*^=oM;xgpaC>KBvq>NeZpA21$rcdD$`|6_&?XI#*_sH<#0eY-A+jSy zXQ}tEdsTa>`G^ZzFL}}YOdnQ!<^EUIz(~HdJ5WMy`EsKXPeH-xHQ5bi` zL~iTMOI}e5S=Ppq@CL|Gf|O@(lKG&Q3)`}?Ln_Bi&}KHF_j*Zs*UTgjCN|fujiV|b zA8;gZW?&_EE6pf7dUsn4F7IdfAR($KAf?JEO5Dj9%r)wFUoLUJBkiX?*Nzw`_u2E> z9+0~bb8ED@ZTvgcJNxbgo7|0mhhO+{LGT`nEpkTS!$r6Knc#?c^<7zQTD8Xm9OW_})Uhg6uH zK2_MkHqq5J%TZhk`dQt)o`B!ew%IQk1Lto0&S(@WD`Q4i3W8f7KvCR~9{Mz46$WfAy)qZ3; zZnb8_g5K~);Fwf}Wvmd!8&x~^`M-33APJ>)MjOaj-iR^zToHS64;91=IfYTbl1SAs z`B%e4Q`hqEFJZFD^)GecvuNs=+D*&)WKz`77t|eIf&8sBJ*4%~|Kkf$_}{b5 zNyqx*3s!8I2OX_$1UPC!Y-+M<{O+Y$Og&e3vM@B(Nux+$UjQjS8ekSG;C`h3Uz#DQ zckf}+z}6FrJb_$-IuY02<;~f-HejK3av}CO=lTl7?~|KCO#Iq(<$@YgF{Z3%0h?D` zqu|yz3@u(xTaAuAC7b1VRlY|x9)W(9LwrO%TJ4MK-1$AIyyxWRThX`Z@x8yO#Ex?_ zbV)11lydGa{I1c4!@|%Kw(rEMS&OsFdYr-@sp>dlN0q1gXB{i`d34=&LsJMo@nuXG zHP|h^Q2OXw4fqNGIu%UgT*pK|EFqajiYf|yY&v!*x*7X`{?qkL z5Exf-Ev;lpDyAee@ z=b46wsNB+sq z7k&C+dTm|P<9BtjY+vq&iw7{}DxO+O(7f-g32LAY0C}m*18=@uKhnrSXr)e8oZGiH zpuXS7Cpsp&C$$lr)w{GP&%`fZNzoE#A7k0}?@90iSm$?2GDrj?w}rE%n9eL&6WYN0 zrJK5NQrqzC(l)y|fgB3y)|j)_WS72J$&+JNx|3XC^OY?ojzo?euK+;?{7_z52`xqMnOp$J3sW+PAin}(|n1TF^ zo|6#V+;||>@{eir8aM1Q*9YZ%*7G)zbq@(BRRvgrLd(OFl>&Clv(^5y+0K0eC!KAV zh9lKP(nTYQJr(DE(H_x?(|vynD;QS+$g)uHD&`-_{x?biT#wJ4bj& zT@~v1BpWzehL0JX0Y{kh#pz6ku+{mmyUu3#!iemi5TES}w~WA*$E66Wn>;PZ_q2xo zak~;?zv$L2r1=xZ3UEwjm>`Vp(4&@RkLDV;m-6?*Nup-!@$W;;nLq3+DPSwKDyby0 zq0Wg63){rcAN`7s%VsA&A4+_6peddFC2qetLQWDT8~1bkX)ZSAS#Gv+O3>rm#N5|r z*)H%3b||2j!j4sKv-)v*ln-@~8xA%YOMG?_#GDriXp;CC`}O=*CF_W~fnZ6;;l6;; zmk%UCzTxPxRXjb zdBs$t79eD4^D*M}5&M{l#*|mPP>`pg=JjeEI^#&XMn;sillGO98}s~%EQ~&T%~WcS z>R6s31w%SJh4@`x@ty7bKv*cINn?W7gJYi4nbV)!rj>~fWT zvX^_ACOUqLBEP3fWutvcy7_RloQ~lI03`=}pkA|D#{D*uJAhd{4ENOR!s8f zQ>JN(t^~N4eYnLUBS0XP0K2ag4ouFP*jSP&2k)7j#^c|7qsReg!_m9$wtmP zA@20?z9x`N!y-aC3*2YUG{mpDr=o*xBbzuCew}_VS0GOr=)s*{%jxnzw03~h2@BYZ zM*90swX{02$i;-{^0)4s2>0ddoLuZEN@+HnM7PsJ9(1%>_(%frDK2lSl0Ru7PKA>r z45p)W<6dm?QZ*H049QZ9=5RNY|Gxls1d00@su!4p`tjXFox6L}Lemm}4{LG_K$&%C z14j`p*M2q1j=L7Q5esVfH|yjo2Swr;c1KqI<4{~flsWty@GC^tZ<>E-_IK0t1OTCt zVut`{5p6#SQYD{9TEQ)-6U;jMq-LLR#ZV+}VG1(roqz~BiiQT-+h2k9`hjZ7`Fjv@ z0x(d-qWm#L1S29|Y9&h3{WIEc&co3(GoOS-g?=2c7gF;NMYSEGma+dgvg%)r<+;hn zJcyhC9B@p^A;1C1&~y~;Qei8J_@># z)^!z1*?rCYW3!BHT;v2$1dfS15G9YCg7%f8= zd6|i}TnC_3=2E_U6Khe(?p3HcN!@2HRuee^L_o*{o`wR6-j7Hj>PqEf6>1&z2%5li z(W({N0k|F}bBX+efk?IA9yK@FAJuJ~MDa*H7Z#!Dy=&3)zPeHCd4U8OEi?Fk<-(P%g-)xI6F-p>SfK?PfqlrLNB zjnB=fG}(*faTsMGCxC=-2tX^+3Jynxt38QlD=^WE42g>oDLjWf4D(U^!Q05g(4FMs zVM023Y(A-^)BF6WL#Yp^_g-MM@|4`B1CA~Q2~y_ z5FzYFbk|iFde92E9N7|HGk#u2{_VF>T*5lkX1&Y%N!n3(08-5dd(Si+X*`>w8hVqF z#xoVE@#DR}ms_ED6RJz_PqeRp$a}^Ba-lCDIRT`I5Hc8!>J-jGTZG+EL5?&#Gj}0@ zUyE!As}K?RKONrRHXsi~CxxWo3;GZg_b?2(Jx8LH+L7Mx!@a)`Cf)h77OnITpq>Md zA`Pg3ymG-$4>kPhtDl0vW44O+285AHF`067kfEuHO<$W;H5+)&Q`gX|E zFclf$HbeXJAyk(fdXXJr9r9KzMJxHsXdgch87G&bth-PnWG?izMNR-2Lqu2H5Tp@| zL6-Lk#?LrJ8lw?84D-%!L#@*W;ND*JBDZ1}67G#iz&ns3aRu@~EJdsM67T=Z5eclN zgj+Hf_Us`ifI2};AAKtl_QBr2zVQ1$uBf|SWSH}Rd=l_~kL6Cxg}pwI6F>tXjq=|~ zkPCT^9655-G5$Xh(WDrIi_by;001R)MObuXVRU6WV{&C-bY%cCFfuSLF)%GKGE^`( zIx{yqFgGhOFgh?WEwMd$0000bbVXQnWMOn=I&E)cX=Zr