From 8af5e75966a06b6322923c838c56b8dc79c12955 Mon Sep 17 00:00:00 2001 From: "Waylon S. Walker" Date: Sun, 5 Nov 2023 14:28:38 -0600 Subject: [PATCH] k8s installer --- installer/Dockerfile | 2 +- installer/deployment.yaml | 144 +++++++++++++++++++++++++++++++++++ installer/docker-compose.yml | 28 ++----- installer/installer-k8s.png | Bin 0 -> 67868 bytes installer/justfile | 17 +++++ 5 files changed, 167 insertions(+), 24 deletions(-) create mode 100644 installer/deployment.yaml create mode 100644 installer/installer-k8s.png create mode 100644 installer/justfile diff --git a/installer/Dockerfile b/installer/Dockerfile index 4d10a11..19e1810 100644 --- a/installer/Dockerfile +++ b/installer/Dockerfile @@ -1,6 +1,6 @@ FROM alpine RUN apk update && apk add bash curl -workdir /app +WORKDIR /app RUN curl -s https://i.jpillora.com/installer | bash EXPOSE 3003 CMD /app/installer diff --git a/installer/deployment.yaml b/installer/deployment.yaml new file mode 100644 index 0000000..e5d2724 --- /dev/null +++ b/installer/deployment.yaml @@ -0,0 +1,144 @@ +--- +apiVersion: v1 +kind: Service +metadata: + annotations: + kompose.cmd: kompose convert -o deployment.yaml -n installer + kompose.image-pull-secret: regcred + kompose.service.expose: installer.wayl.one,installer.k.waylonwalker.com,i.wayl.one,i.k.waylonwalker.com + kompose.version: 1.31.2 (a92241f79) + creationTimestamp: null + labels: + io.kompose.service: installer + name: installer + namespace: installer +spec: + ports: + - name: "3003" + port: 3003 + targetPort: 3003 + selector: + io.kompose.service: installer +status: + loadBalancer: {} + +--- +apiVersion: v1 +kind: Namespace +metadata: + creationTimestamp: null + name: installer + namespace: installer +spec: {} +status: {} + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + kompose.cmd: kompose convert -o deployment.yaml -n installer + kompose.image-pull-secret: regcred + kompose.service.expose: installer.wayl.one,installer.k.waylonwalker.com,i.wayl.one,i.k.waylonwalker.com + kompose.version: 1.31.2 (a92241f79) + creationTimestamp: null + labels: + io.kompose.service: installer + name: installer + namespace: installer +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: installer + strategy: {} + template: + metadata: + annotations: + kompose.cmd: kompose convert -o deployment.yaml -n installer + kompose.image-pull-secret: regcred + kompose.service.expose: installer.wayl.one,installer.k.waylonwalker.com,i.wayl.one,i.k.waylonwalker.com + kompose.version: 1.31.2 (a92241f79) + creationTimestamp: null + labels: + io.kompose.network/installer-default: "true" + io.kompose.service: installer + spec: + containers: + - env: + - name: HTTP_HOST + value: 0.0.0.0 + - name: PORT + value: "3003" + - name: USER + value: waylonwalker + image: registry.wayl.one/installer + name: installer + ports: + - containerPort: 3003 + protocol: TCP + resources: {} + imagePullSecrets: + - name: regcred + restartPolicy: Always +status: {} + +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + annotations: + kompose.cmd: kompose convert -o deployment.yaml -n installer + kompose.image-pull-secret: regcred + kompose.service.expose: installer.wayl.one,installer.k.waylonwalker.com,i.wayl.one,i.k.waylonwalker.com + kompose.version: 1.31.2 (a92241f79) + creationTimestamp: null + labels: + io.kompose.service: installer + name: installer + namespace: installer +spec: + rules: + - host: installer.wayl.one + http: + paths: + - backend: + service: + name: installer + port: + number: 3003 + path: / + pathType: Prefix + - host: installer.k.waylonwalker.com + http: + paths: + - backend: + service: + name: installer + port: + number: 3003 + path: / + pathType: Prefix + - host: i.wayl.one + http: + paths: + - backend: + service: + name: installer + port: + number: 3003 + path: / + pathType: Prefix + - host: i.k.waylonwalker.com + http: + paths: + - backend: + service: + name: installer + port: + number: 3003 + path: / + pathType: Prefix +status: + loadBalancer: {} + diff --git a/installer/docker-compose.yml b/installer/docker-compose.yml index b47f679..30b5984 100644 --- a/installer/docker-compose.yml +++ b/installer/docker-compose.yml @@ -2,33 +2,15 @@ version: "3" services: installer: - image: installer - build: ../installer + image: registry.wayl.one/installer container_name: installer - restart: unless-stopped - security_opt: - - no-new-privileges:true - networks: - - proxy ports: - - 3003:3003 + - 3003 environment: - HTTP_HOST=0.0.0.0 - PORT=3003 - USER=waylonwalker + - REPO=waylonwalker.com labels: - - "traefik.enable=true" - - "traefik.http.routers.installer.entrypoints=http" - - "traefik.http.routers.installer.rule=Host(`installer.${URL}`)" - - "traefik.http.middlewares.installer-https-redirect.redirectscheme.scheme=https" - - "traefik.http.routers.installer.middlewares=installer-https-redirect" - - "traefik.http.routers.installer-secure.entrypoints=https" - - "traefik.http.routers.installer-secure.rule=Host(`installer.${URL}`)" - - "traefik.http.routers.installer-secure.tls=true" - - "traefik.http.routers.installer-secure.service=installer" - - "traefik.http.services.installer.loadbalancer.server.port=3003" - - "traefik.docker.network=proxy" - -networks: - proxy: - external: true + kompose.service.expose: installer.wayl.one,installer.k.waylonwalker.com,i.wayl.one,i.k.waylonwalker.com + kompose.image-pull-secret: regcred diff --git a/installer/installer-k8s.png b/installer/installer-k8s.png new file mode 100644 index 0000000000000000000000000000000000000000..a2e963a56fae1b13aab01c5e0b33a1c3420b6e1d GIT binary patch literal 67868 zcmd43by$>b*DgMUNOukr(jtgRcMTw*ba#U^O1HEipn!tXAky94Axfuo2uKe-^uF+U zpZ9&f{q4Pv@A&=oJDlSXn3;R-bzN(%YpwG<*St|yl*Pe>VnQGg9J!}3RR{zr3Ie%H zi;f2V^6(fs1O7uZRgi^2Zf^gjH|4}ZAhZxUn1s4V^7fpki~3{=$N65Kr?MR5V_F9B zfHp~SIqFv4?x_HKZ0bOX?jfp?9Yx_)H=**C+);Otk-d2)2ENydah2Y+6o#`qimcNbrPJnvzK7aXHYBX9tPTiYc6RoJ>B9W{-mb?pR3h?d(jOyn+%_`Q!ht#fK@Sp*Lv;j2E`^7eE8w{Z1tym?M{>kM=r;`M^W&R`vUN z_z()C(2dz3p%n$##bIJuQkIs&@ZwVO0$}mU{5b@72mATeADrlIegMM%0;G9uQ zK$xP&jW_vm)&`#}z88w>eF7g23XjE-q7MZZZmejaaXo=-4x&2E^Ki3;ayh?6Q#;_+ ze*8Uv(VbH`oW-*jGpfxDi_c*;S37J(LMbgge~x;L7jF^q2~t02s=h<~R&!;-hkfnY zvK^lwUYXdD5<7GEE8W9}rl76Y zUy**)J&);GgT7Ddg41TcFDNdS@$?jcQc`9)NNHLV6BGA(dQJmFmWrsTxdkq*`H5gL zLggm8PhF2fhlVL7&GaBfyf}-+F9e1CVlcAEsbSp6j}ow+KYw06{f-2h#OL_Ybzgn* zCuRGd+fh~?dw>}`62HhnDx1SvKAfKupSs%A179V$Q1hW3Z&D#IKLPa}StWEm_oJ0B z^a1r;NVVr?l%$hf6Zzdo$T*fHo290y7-mJA!AC*iPwq;Yq23d@Z#VZdrn?%lsfX<3 zO+-XG+1Ia{;gLyN!Ms(vEE;;3pbJ-u9yvM{-|y6uMv*^Ij)Zg)iXHPQM3*hiO6Hmc zyy8J*hBH+xYNgwqveiSsDWM?#2|{tB*wC)3LLFA(=R@thI$^7a&#>|6RI#O2pg|@o zXP#o)R1){9E|#dC_8Scwd;DM>Gwt&AIiRIGBZrd7K@`()jJFgybOli!P=Q2aPLBB#l(!taJ!ONI`xD^O4G2Gr#?X%QSvyk zc~o`Kkhrj1Yl{MwBw)kuNuVI&kRf(+^%~$kkqk&VgLg{7JtuEqXB2ngrHP4vmF>2} ze_Ws(_To%em}f9N&r{doyJ9?2vLdstuCB7GDxoVS#i@!K^3c>;kDgGYwHQrm1v$F8 zj5hY>sT@LW1rl9_Iy6Sw3Km>*)~dZ|rRvQt6vW!|=Qx@rhByKhgyoW1g@w-szOTr~ z2YhuCtM*xw&~wM{*+xPHeFCeydHQC`-xPvVw8TE+*gu(W*Zf9_8s=i~LX6;%ytq^( zjpNQq`jrnp@OxwmYSKxw5v)W3xiC319+rlM@JtNB$3o#FvQkng)%G)?u3Hn*b28JR zp)5$UNmo~1RnD zs@*J3XwR=QXrZpL%rJ~StSJ16x^A$HnjYk4-?v(9cSiaT&xTDqjMnJlG)Ul#nP6MjF! zhxp?ooLcyX=V&w0$0jGuIzn+kjPj5-y%=TEA&dEFB`#?uBsRwsDdw}$#z#}*v_+7K zP5Y1=6ASCZW>0u!8eX|E$D8B^{J=@P#G^O67zA^@adX#laPF~p=Xp@iR(y(xxX%UMpTLo8_;I*Kdl==f74n<>X-kV*I&4k zmbnl0f!2rd72J#kvY9jNEXCG2X{m=PgDz;pvjp?3H6WhNiln&QW#=Fa56XEhpN*N$ z;!HobzB9{ZmdIN#2|~vZU71@VvT-)Ue!Gw|fF;Deu<6v45+vj>r5+}yn3~Y_Puw;G zp+wmg@mNt`Po~5ywEJ0o4)?e38~Ix)iG3DoPs^ogo(njuz?N#Znk;)1%s{&?Xy4c{ z8MGGd2Wge6p)55{Jk%b5q)DZ(?n8NV>oKZ}2bsH7nb#f^JIR&xNN z6XA3-dG_p4lyoiMM&PkC+qlp-jExT!}g122~D zv&M^G>*p3{gpjmsN?7fU zXAIBypS6gIEO#Y5N0FK)Z`2VIq4U!bskE8%l%`A@_bR*Td~C0ONnkLaRI`7kvQVmo z8|2F7P!b-4=gko!!?q*Ldt`M#^OuT&LDa#)OKx6XnYqxyAr=;vcZUZAwtKi;F0X{+ zBtq=sHb<(a2aUwi2O40>?glMfZTQA}wa(*Sjnn)S%RN?AqL5l{GD0karX^`iOBCjg zH?i-(uS%+^#TD|Jhjg#?Cs`Qye8EjyX8viN46<;`RSgzoXeHWUQ=V{WnxymX8>w~e zaF+eQk116fI-iUC4sXe#{L+Hsq7mEUuJHJ@42k$JAK7#Qr>Av6Ks<9cQbvtVF;Ow% z?$*)J_DUd7*n48?r976RA9NmrOAbpQ7LHs zqa_k#ettZLh|_1&+6Iq~JU)Hc$uNk8D*Kr=cXd~@sM!sM80vkW6yt5u7hNeo)7#@4 z;qO!&H0`!n(2xo1=hzPD<+UDg30F1DlO5UycRFc*Q8Q+cL{U;_kk@;#|K+~iejXCy zdssh9DtWOLVtA&hc5&?!)$o+(kFXHN+jq;Br`{e=_i)2hed`|WiQ7eGL!oEQ)Be*Kvi`pxkR534ypqwP_x*no)v z{0Qdk&Y4ISv$3%;rG3k>Q5jrLy4~GwTEE?f1vK`! z#;gA`kNojUec*kJo`KGFxsDxz;aAQyIm%F+u;pX4O3BAF62%jCV|5 z{V0)wy|4Ibr`_V$RLC29on@?aFX9~S>ZHO?od#WO{EM3NLa-jU_LVpSjT&3d83SYx z+CaMWB`@U6FDm-_Z^1DIGTnw$7AG$AF^>G?IdYR`txJGHKb?q))tAuhZ`PVbi<4N)!r z6=ZXK{5gRR4pu36k@9uBA6ZfuT&+PdD!5#`nPVMDdOCo<@C#eep_X|vH5BP7AuU`> zE}l15kXv`~Zd<$Q8FU62F+5=i5%*QNT(ci&koXwwq65PxJ?d}f7Sfk^>{ZAeZmto8NDt7~eqjwjp~75I@U z$`}l5-AY(IR&ZWuJ8i|F9#)8F+uYnV=cs!=9TU*@F8G|E<8_rgs>;l^tbGN|wfOnl zND`&7<-Hr>yZ$%p0@~`CFx^Xms^u|1ROnLvwiTrx~`E`9@YgE^ChQ{hn(| zRZ!v^xIWSm_>fT0ZT9LpB;Xa9B%+enFYQ{X@-99$5;XN2ES?nDWMYz`dPSaD#(o{* zb`m{B74-QjD@l5j$7Q}Q$wKzC>-6A9R_H6ToIK%#_CL!l`28+x!M?j4j}@Ekrwx{p z*l@B637ejFIg9zc;D&v8ic@s!UWBFEY@maP9hXrJ4P`)TSawofsQTE?vkX!s=S}E@ z1Hy{}DnF&N-eF35Mvxuy1si8j+y}(XYRrVOmqaa{j}t#L6(VRPd(K{ey@-qAoJWj-gS=reHhWp%eZ4ILKmT|8rm(9I+l~` zkPtrSJd1GV2O*XyqLVNrivQk6?reB3j$VJJgdt0@w$i(#D>0EX^XmC+Fy95i40BQV^cO037~Ycwi(tfr5y~!y)eu1iqAD=mXC|lsud9n+mf^ z&|da4pi}+$uZ+J^emI~!3ykvhnF^aD)3UD<+2G21(wEs>>Ft;z!ui@~(+>YS9n}EJ z{+L#tXMB8|g@Z%Z%*<@e9`rJSfye?JG@5iEy7n*MPEoKOJS0zvAGL;2w5`6($jg({ zq%6NibDVF~ndl0uC=hi%q`;d#VyR`keCX*|a`&qF$aDHBTF)RVa7PUDDqWL`pXOEX z)rpp3gB3cY-jtSh22@4<&~E5`TZsCcJf~uC*#ncF0H@0Q8{yc*M4t_Pp6JOj-qYXD z#8np3XW4kVS3~_7p|0n_GL9|b(`)c2Yp=)%PcPFFo~!Iv1l-ASo7Bl5Kv(~iV4^CetGHOeIfaHBW}}P7DoS0 z-QT;ez|QWMB}T%@n2i{Xq__KWXl~%Q_XaTH>@S#6_gzJ}SvcWH=N#ReSsxM3)ecWG%QPpz0@p4)})ydV#dAu(+Fp!nUs z;yLS&Wa9bL7fQ&d=}#z7ee4|vkSDn=~t=VEuMtl z5R5W&#dZ_9CwXi?R6!OoQH>pg`NGwcxd5%dU^R19Wt7MIcYCYGIvj;Tt(DSeXH6_q7bdy>sLBo z+*X;ZgwZrd zFxxm+Gv9;OL{A!fT@RU5%pHr?HZ3_9%I-Z`p2izaX}W)}5yADWe{``rkg}%imm-S# zq!00)OQ;jvyf*5ACzKdxv^y1zMxTsN+Xp;51}dnD{PwVmj<|*AJNpYWwq3qV!n~8{ zuVW}+7#0;jOZ~3AbnF?%H}fRUvUm^^YCjPJ9A1RgZx%(kjuHlrYt8a;ZAm|e`6x-* zLL40NA@E~H9c3e~sZ)!%8&&IBQH?M$Bkszm75ju4L;<7DkfGX}>s5@K>>-wv{Elgp zX>g3UuGUR;)9XmN#oAlrEGCTmLIUQS5!a&jYAzlp@7WS@bNEv3~hduSF2l=Bu}Izp_4Xabw)`G2{V@vq-F$NVm?oasi~oNHRvqhpU?Wj(JijZi&lDD1I%1_MMonh`Azt zCU5e6)WAu{j`f5gkyu`tys$#$gF9bp@eZ3xe*{|5e1jg0Nx|~iH>6M?pM?SuGe#$i zM|B9ivY}oPV3fDNgR}$bI%oLEbNS1n)F+BTd-1ES=8HKK=6o;SqH&0(cD2&VtCe3{ zYH4U>B9d$MBQwp0Fg@%ocq1@f-t1x$bcGiV1?3-nm4^e9E z45}+M#p7wb!{*jjnMntlj(xB0%Z9(YFqwH49z(w;lqD%!5(#lLJ`5-`#8j!i{E@E| zVHC8Cno0%=u>nfa9{cVs(MC%&IF9Ncp_FNZT{~(5F%t3HvkrWqWQ&N1$aDa07YYPf z0^{b)ndbU92tj;3tZYM4dd=~2zxT1XC4q{Ue4aqm!xucrsm%*-d)7V^&V6`$d|7VC z#%f`VZxI`hg9GX1EPx-&R)o&I{%E?@Mu-Al$!%W3Mknw1fC?&J3*Q?jAysVeR#_s) zG4y$R#|QR_#bTYim?5GSG)D+O3&+fc!2PT-7NgWC6z03|1^)xnpZfG5woQgGt@m)3 zI=QPilS^YDn3FnQ_uFCvK|A zsG1TId`X@UEq}-<=X_BJT~DDyLtaX8TYpBTEUc2Gp0VHe5^MKU+Xq$HCwWb4b#-+J zgcksAPpy7E-fR!??_Worau?p``#F*)I0ZaRBZ_j)fxs&&Acrim%($9bVV!)RW`@Jj z`Fc#4Xl?#$kJ5tcvbF*Q9D*q_0bOjyJ`M-J&Ot%9kCP`HMTF7QDH!`iXb1 ziOl}Q2u0^>q68Eabehgz+hm+CevIq*&XWY{-Vx^Q33jg2a-ZFh^EqC&j)ay7e~8-8 zBD_>!q|?!VME3dfXY;E2TXJTHYyIVqsIda^MF*F%d)Pd#t~yDstK9AoG+H(bF(5yR z32w9vG?{V0i(uY>SB15AXhrYhD*|Y1=o=DuHS@_ExgzA|Ll<26uTIoKEaN&wnp1YX zplw?HEEfgU_H3buVJ?LauG9Fb=sv|(nl;*3loRu-?Rpb~d!DX|QCl(vj`@DXz^H(S zcM$jdMS3${i2%!glAf&q1aN$_zwkHIhXSFP{B*TS4{})l%^WTBGL2S?23G ztwNe|*1SPxi5wjNo$0#w+FZXiZtuRw)|>r#)3-CBj|EqI6Kh=`b`1xeM~dqk;B~ z3W@FKf$c4}RJIt#C+1X4AFR_gu<)fZGSRnRkc;;tanvX8>$zQ6VO78p`lN7zVYvB@ z$f^@R1afwE7U9bB5vq%li?F~OIO%j~>@g*F8pIYEa0_$V{xO7s@Z>sr3`O;MIpw}# z>se>>_M1wZsj5T?39Vd!yLez0bNI>O{cz`LD!Ty}k?YgRLaC3aL^GlPFj;hYxkKuS5X#eCkO@A2OfGH?o$;-=wB(}rcUcvyW^{+;{S=rwP zP+1-}DZKxYxiNlr#pln^_>Uj^Y@{ZVWps2t6-F`#%CIlyT|DFW|>@_MI_V>$J+opV;wIPLvpN z6hu|>2S0$uqTb^d2#7E`X zL53lY2^L(B!>wUYc)0_doP>cB8F{lj95#5I8PA@a}NqveI^4o>~~db8V9#o z+xCyT*Tn|H+N}w{Q}I>um+Vnm6YudfpVi(uwERsp_aRa5Fo43yz&!LlGn_z$_=y|c zrEV-LclB9W!+Z>%m|Mrr^Ae-)pgToOn{ok?0gft47x5V!Q~CMGkV5@B)iPYh&lN_U z???SyjzXR0A7nOgp!&b0>ER4k#6f2jFCaDUS2Y1yXyw&7%csmBi5_Nbx(GuVd-^AY zqAjR{0pNkIB40#l?@=OwVe0QDtD$g+`u8rWGKY3 zHj6F!?m|2U?C{%}z%0V4l*Uh3JOl$@TK zDVf&{D63dd3A;5=-Db~X@GF~!me%+DVTieAFd3jL>iGdL6!ULzN92Xwd?Upz4Ka=c zoj=)`*}ps-%&M#;c5FJHaBY!+5kDvx$4u&HD!@?;HgY-mCHHG}b&0G6A)VQP45_`? zZQwNP#s-~(WX`C;sVxllUboyF!^YOuqN;7EmgV6?tkE1LSwq9r%pG1{-sShQ)NQFE z-ZDq^+uL?*x|QgV^kM7b3m&>m4^wOX_=JS86e0KJZ_H`xm2&_lvRi1T^1AAciPgvp zz23(@y?xyh6-#%eE;~fLXpNu%7Jp6-g+QTD`0T5}rQ(L&_87k-dPpnyj8eB9-DjV< zF{-MnJl0d(;oB91rU$>iB?`Ge0yzJpruii&M@nztizbd6guYONh zS!@eRSi@ZV@hRvI7HN7_6^Yo*+2H%Mv>3j54-_N6Gsb8tp-}&`1pm6D^8`aL44W$G z#mP=bThQGM&4S^dKi^c@P8tf{-%4n?WE8#F=JMInTR?U?%biscJwv^VdoN&Sr#q6P znOx&$!D9vIa@$I*<6^HRMoH|7n8x>r!0#X~ZSi>0NY>ez^CP=n=-Qg)B|Jv1YxAt>19jSKi5D^&2 zX<7q+L4i~|%;i6|iq+86oY1%_8r@htz2LYy6}#*ZyWQSIQC~qrpMB{@#BwA#kIfj) z%;lv2l@>NO_F@p8Xe)D?Pau_$TkHB^+sb~c9k1+c4a!~I^qLy7l9p@1=JWBAdARpp z)9HNp3}fceii_az$VgypY;5k#B3wPbSQzefeR*c>;LvSb(iEC@bGe=<@QNv#M$E5c zvgL3<=+@Z=(!^o_`em{+T_rUg1$#`63gPDCTR8HTJwTO$ZRC9Yik6+7{f7;-u&@9T z6F2@^eci2LziH1G&$5Doqvi4mh$jNf5cp`?^-+C^fa@l4s^=O-29BKaaC0yA^DQ)vEwqW^tE`p(g%dW)FvN-?7E!)gR>(mZ3dUKR z00*uL8Ut?oX>N>w_=GfN&*Z^B6(k~WKuy# zM`xtb^N<1LA>Tdkg}A`BbOyQDUoY#vjEtzhI6vAL!QyD7r4o1vyS>8g&vP%ovyafn z2-At&Tpo@%`d{dMGc9|HCvx=eXjqm;uI2i;B%6ZE@+ss?d%NTYv)I|UQlmHqxq~yG zk=r1CvE2D)Wcz1D_IQDo0(esCi}7QY+dE_hJw4>9fPlcr=6C_eaa6eV7gRau60IPh z*Vz<<0iFKe6$2n2YiMYI<3=@~1LXK$|DdM+Mbgh@r_^M1Ej<9tzsg^SLN7SALqn2y z?PFb?>FDIy*>>sa`tTiUC;`R+_FAQ;ZHSgGGu&A*C_J35`_Ipu+~MIYrr0=ibP?oI zw|{1OcnfJMtEgnC8-b_3eZ$0Qn8R(DD^}J5zkbXwD6kl}hCF%Lj)jS7Zjc-vzTER~ zh)MFV0#*?Q+c*0ch}0J0bbDznpd|P|82Oi4!aO9jV=16xN%>!vvey{^(F4SIYoaK^ zH9S1rv}401GdueZBO@a);V*;L)Ple+f+jB?odbCPU-lNFGXr~ZaB!xo?J0qTfy|Zi zFU!{dcPsyCJRn~4^D)6<%O8h?hsP%WqZhqTmq`vRj?>6Oa`K1>2blT4DZZ+xUXZr_ ztbi)k!}d4fPl9K5fF0s0Dk@|4kN%+fcMnyzmg0_fdoD6K%%W}yM zhZ^vBI7R|iEPHd)<`2~v0SDlo4jD6DCc?Q+-`d6|7NA2zQ;nV#e{>j^+W)HYOX2I=aj$r++XAe+-raBtd#* zr8>Y5S=+z&_5IUc*gwf+v_H<%E$|;l`sWh=*@eVE)sv)##s^hju&@lwz|$T+RMFAN z`{QY$xA-=2t$V3-bbaK<$H!BpCP9EnvZpWq)5U`o7;6XKl!?9M)&T5KR#zwfpYCsF zCNkjl{=L6|WBWt1f$cWUtFPD9j6$QWpleJ|7oX^Q6VBrI@0RQ#H?QM7+txBzQ!&i~ z65gcenv}Or24d)#`2Sg3flLS<+2@iln4IE7?2JZ%Ceoi%M>`CJ5$`{B1Ah$0{}1#R z0sjO2{m0(np`if#nQD`{de{GH2>+Yt{wsu|{-zgzr$uD^#bQIka>B!($oTq-@Y+q$ z7U1a2gxgJ5%Kce^s#|Yjk*b|@07d}5S$gh&xWBo%;?mL~|K8tiH=%8}21x_3-P)js z{s`izw-B8JP>r_%8$pxsJ>=_GCJ@D#QT<7L-~TEz$8AFTE#t<~Zi9-&R9{3I_J5UC z{RQ9RhDrUahOPSLHlD8m&^^5x)`|Pz6L4}y-+cT?8Xq4In?w6!FbpUzutt* z`;QdOOZT4?{a4ER|8a_rtMZCqp}1uP1*Cp&5M@lFmwwhDkIM>;pm`Hc3}X0ixy}0l z{HV?lQ38L&NKjTk($N`%2O7*;JwSrF)l_xqS_h4djk7hEh;U9Lv+};}w;do|gFy6Z z95f20V00ln<=D17ae1b5ZlvaEr~3o9rbo+1-^*P;+~w}pmH z(3gFO;5-HGZE^yU^e@S@aQBm=m0Xd4^N)~$hEP$R*{8Nz_(cX1$#!_AT1|NF&qtTa z>X?2d3T#Mls}`c?d~wZCf&n;pQ}>eJ@-%D4_li04eeZXTERR@R@M3_+aTQvMdMaC5 zTU)mR!A+^dTz&40v9p$esips>$ofUW<*|Wz>&ld?~ zJ$xNQ>0gG&DckiL&Yd&a!>299l2fOGyQ;c%H4-^h!URS;IyABIGPlgEmD^KxFu*0R z_*c=F!{_j{{C(P&bW-%E!35K6I;C-IH)SpSwj{OL|0TlomIg@L zOs$pmpQ?InZ0QMI43AL2>|a5A<)Hr(iN%suV7Vgtny~Tu?EX4hA*C-@<+}u78>=t1 zJ&eW3T9+)vfDr3Uzye$rsLzs@Bq$r}Y~R`bo(p6qQ_B4(5$1OT;%cf#F22o7GW&^u^{GQ9<7{^JJa z$PJ=O?KXHiF?>SLkfJw)4kEeR9Zd!J7+&VUZhm zpgc3=;6m3_N>W?rvJSwrt;qlcp5IA@9k@QG~%HPMHMPC#Ix($9W#BipI96Ri!3 z+I4F`+!AIv`>Wi6w01{Pl5F8KPJ|hG?eB`>;ilYs+Q*EAbeks98!oFvOM=BQ2TK6% zb_@9)DpY{Abw4D-XM9%}!}|x@Remz%?gMGbch0J#PyAgBfxN6heReOat&p1$wjho`2#iPIv`lokzY8On!upxK1e^x{!9T`C*mVyRMeuYJzFjA zW*rrE$+S6%PXBu?r*<&qITm@&^*UHz527qA7kS2Ye7oz7`aB0O$9td1_-*IQu#0Dr z8uLO{UUoDLhQcsjecc)ca!~~<{EH;C(o+PaK3R@`*KIhb%COQ!_p#@_G~TD4f7dO* zfg!CGHy+foJJ+>Fx8g5=uyca=QtN*4&h|~e+e+IzV(RiuY|}|j8ld24|CyHTc(qPl zwV0%&O*n^>X~M~kPMsDk?eG4m_?XPBh*j9R2IDZ|nB{YN$WQz;wUB$UsQg}mKpEId zgXgusK|m8*w9VjOiPm!C-}5p&B9<`iHO7ueTP<2QV1l%-0w@^OT*yvUfw;tUl5 z)XNJ#vw?RNuzPvCtaeQq#`58zftnSV;BIQ%PMC%Ht7%S5kAv1a-2$!2K{5Yt^aH!g zC`J#~!r|uLt3pa*Xz0+ktV(}0{fjy)jbA1R0Pgsxi|#^%l=qIUkkKOuxo6`eV&4|V z_yT?zaQs^N9Ptq5X*0gG_x7al1FiD1+_85@uQ^%#UHJK%UzTuYT*1#6k7{FUQiE0F z0Lp7`Uj#%Kj)eisHcC=;8A|Y>5nF{-&hUQQ_x|F8a#Xq1sQRBU?OJurwyjeJjMw$?zYrF+PiB~hTU1@!xYacpz-RewmMi3m>7^{_2LZ#s=ztJ z1QSRYny2a%Yg%capaKpMM@Fvo(vxAkh^F=CYAC92@EjjI+J{>cKR|YmJKe+d(sABj znEb-VH}k!*wRx_CJNo?A4?LLJB@0h#<0SDo^I2OfVnu?(>*7Pn^LLPB7u0>Dw4)_4 zu{V$SU$WZ>H?@B8Sa4YL(4#F*k|UhMmZFzRu~w@_GyX;;^ET2{DUZ4)JgsTHeL#=~ zEwlDh3{18pe8G1&~#7 zNIfo7-)kw~4I=c@S?OMv^(A=j_He0Dq0>=xCuVbfuwQj$xMA7ofnTz;Up(xeNJ`fm z1|*^A2V~G1rSS}>?cVh#Ac~jq{10gH*P-DRBKI#Fr=teu-!qSw3&`ZIT>3O`B_0&a zvTy+^`nDe{p9YW~+5vX>@7na)cRiV^^xX8qlv&>?+A00FgFtn)e;)b~0z~pR;YNHf z3eiTfmWA$vYv8fv&@ui4O!(zC`t^DFBgHpMzi}PgGEk$SiCV%3^>0s4Je>~gkoyWb z2pJczIE1x%C&OQyy$=hJVK;7LlhO}+Tc3RY2=8gHDOejM9VKW;NC*oXn|eM6F>{#G z!0dlY81cYI{J#P(ll}@_sfceV$NdMp6%|0HP#OCl~W!Z`LMsONBC`udBh$<8Pd8; zB~(=27xI!rDVSK~BS?>>)!>>cwAe%dLU9MmElzLs7oA6yQwRB&=X zc~+yKUYWaBP2k`>yh5r%wz6U&Ycq+i6^nuVm|d(n19*4%Ou2a`rHQpUdA8DKlGFFz zHLlOoD3fz}yehaU2QeOgjABUAeg==eqA^lS(RXa;X*t;G=OD3lzi$fpOk51pYOlk( z&o4rsG)d0a{>`7U6p#W)?sff-g@}do20v#*oqc7z-7iJi7krbb)p}%4NXeu(mRmXw zMKf9MvxMFN$~EI1@pTRP^(i|k&xEjbvq_TudQb%E+K%96MuewwG5ReqWakHM>%c>m7}F4qKX$GqoONg1mwoj$_IQQXutW0 z8lD+UK~zmCg(X(+Pi-J;I=ZAuftimUcdkSTD;1y8WRo z_1^vn;aPQLh(xVv!Mpc2?|?Gf@un?`DP%ncsCGdQrmg);R^`9a*U2(})7KKtF2BE& z7kte8mgccLGqyo2+xSHOQJPWbpqR@_Oqfr^-7mm7Qr;9~=8UbstQ#5|V*ogT(q988 z&JiU_(JbC5$9H9@DSv)N_{m>iiQ-YG*#@%WnvkH&BgSQY5qn~ui^n~dAyco3P!a{+ zFrTTo{4Mvb^%9)KT+A=B1PL{xfjD~UZ5wBK zkm&4QTN2Ib(j~e-*)aTWcCCKcZ!h54lHcOai(SrVdo|I)5h}AZg}_yD)yFT(xz8(h zvtA{7ng5le_?VgPAPZ({Z4Qw`cAMz34F75pOfs(<6>!(Gr$+oaGJKah#?&etThL`B z#{VV=>m(XcY&}hoC8m)1^fC97fF9;dskY4KhvPMGFV*(S>zIBoHHu9lLucEbK=^bGeY*Z_i4$cvk$0h zHsM99KYJrbGi2tGFlea4eI$ih+0}2JPaRH);RWagcZcV2oQ5tS03J4V*07SFy2bw z0AE5iw*JBid}+MPDyRW87kpy79pc173!9HfFPrM=D6tf)WtBe+dGX z*ytbNgS4Pj-+?q|3vB}GVoX?LB9BgF&e|u7Dp!SQXw9!&lcda!IWEcHJ48zd;h<1O zpezj`TKt`|svg!e2jZQ2?~iv`CLS#%?aIkQN^a&u%&b(c0tF~+WLPSC&%;%9blw1f z6%-_x-#L5E79%2O4KW-q%kYd?)vF3e(Lrz120HyU63WurvGD9y&$M}a7`7N%CyHrL z($L97t6f7*;{;sEdqe4Kw}ZI^9DOA|Q0O~u55vmW z2lB1n-Xgz$<1B%>rP4hQn;mM~C+NML`z4R1i<_INDS7SQ0g|Ah?=OPF)b?346y!OT zwDhHqS#DyyEnDpc56jKmeiS4RK?1Ir(cnrNk3ctkKR)@PZOK-dfQ_nIvW z)4#g+-f7mW2UYBP)!02TGzsHqY4)SDK=aAcAlBUQ%}|cG;~4b@jA|Kivl?0Fb|(6< zDl&!H>MYm%q|d$^*%g?XNvC7)^v(YBsO_E0)eaqgUtaRjS3C|349G^@=Sv6m!%fPa zu?=rkIC`2s&MxJtSNfz9D9xI|)~EOzh0GzU4ZICc6Uv)DF7Sp(WZBT$^;#$6?AjW`_`I3l_#1OY~U(-c`3!`cUev3 zZ*wGFRU{ao5aPL^h##P(X%2>d&SCB$Pwt78o8uSBv~ppU4~-DC%ibkwkjiJd9XlL$ z6Ak}b4T)evI60P4pU!>_vp}u7`{_x}ev~Y`2O@fE5Aw`~3wSnQG$5tUD>A^d%lP^- z+g~ZL1FWvwj$->MB50{DIxZSwlXR6Uuqdtanv@HxDv?tnOywix-KR`HUI;&)xow~` zCcoYc%70VRw4T~=3#pgbciHm5X>OvU^uO4m_VD?pg1m!=4CGzTo6D>v!Ua&XLYue! zDkkmh0B6yp=To>7DR(<0q^hDv+hz?h@`k0CTqp$8sPbo23KFsG%2-0-X@M3QU<42$&U?U>0|EPVQcnYom)qr>I13 zZhCT8nn*iFqVK<>Cd)vz2xb;;!A}5JzS$jcJqr@gQG?}hb)6uTTWdaAnO(D?Y;iv2 z{2K=eWXK*Nwf|CiTill{9GSLA3XQ}*`8de6RP{mNF(o-gygtA3=cVo#)fLCoO5%{K{}mp>&vnK8OQ>)!G4w&2~Z)kyeVjBh|D6$A;!y3w3->>d&5PBd7_ zn2FNXCTut<>B&_y`FW3Mx0a`_Ag^UV_YU5ii8&GtBTp!rfoZ?$5@n3;W05ok;gubv zB%}h;#Eg|(VnFBphuvd*o#zRS7qfW%Ca%<(>yIF}8(CByr(AUMAMytlfmyDO0Ik%% zHoWR1nd9?@uN#m3KO%u4nxiw=J;BwUoG?cp$f$M!CYHk6#LqdeRXEZIAKq#()2R2` zwptoleLxp@eJ+QEn{u?W(qYJ!V%uKi3AG*r(~5UgDi*M02YWHE0R(v~wmguvP1i&+ z7{JF(hOb0+f42%%s+EpPpsq<@dIo7Zb3xR9bS&wW0g3sMFVUO|ODL;`86W%&r zu&E)j-d`?fo8?u(YN7c}iEqMF;IxO0V)=YzIn94BbZ?n-^XFIiWv~Q&E3b55-snOWmeWl9Vi{~F2G{x-c1%e?}b8U@M63`_HLBD*OWJ-?ixc6Eru zh9<(@Mva(}2ZD_aJwey63#2lf3ZY7KR_$`K#xT94#>+22f3^uEan34$!3H`3DMimz zFnk9n?8BGxra;zwi;Vyv8=+=q9^!BIQr*KO@6K7)I3fX0pMRJ-7}faP11HtcI8=qB z^;LiWL?IbmEVa~l*WL@r8%6Jlu7*u=+@E1F?(*SEt?dbpv+A&N(tiOYi_`T%h#Q;p zp&i_|bhV`nRTRx1d`psP!N)C4XKEwtKUo`(67PU1350YNrK_8mB;8}suHGVEp#I~Z zU+Y;?L*l=X_Hi4F)HqGzta%zXXj5{XBJ2}JU>Srte$hlgLvwL-#pJVUNHliuLnblZ zL+*(}oh)@R7L3)^(6B%-+3j*Nf2oKF=nvSqqkGHQoVLK*y*X*2dMJs8>0Om3OjBUG z;ac6uw>6SI?KG>$*R$art`+*tWxpQ$2a4tG(C9<4dr<=_W-Bv_;7;5(w(JcgW(~gd zfax=M8co6Qi1Ui57|3p);wlk{a6FBMi=~5LN)pE5g)MD4yM7R@~n0Q%WNqZUI=%FDM>eB8FN zqzi_hP@bdSSve)yx{uy^VdU}X4%#isJU_Eeal(T)jXh+8+SoGqO2Zf;Zf1)Q5Fs#5 zVSL0B*BQM_d%}&aPr?Ak=G~|d+f3CnT>AQLsdkg{!sHnjgE)i}kWtY0+>hr)@qGMl zk=2A$R7F8#z%ZEs>f2Y_{cZg-&E#?QD|_?+|kORYFO#Fq^LE zknbSx*z6gw1Qg0SqKZkBE2sc4cCuk}w)y&8-f=H^%hyNHRj|bdYz`@?-%N9;S5R=+(de(U5JiVZ)t} zky-SGGVJA#rS_K5^>!(l4rg!J?fEssuqe5}Lo|~mm|g9j-FNo#HdoHakH3$Z=YZ>a;V$gEnvQfgpTaAUYRlDI?MC? z?gyLSTWDdS-K+UvTBmVWtl2h|4RD?&R80J9ig-pBosXr=C!zOblJvMMTWY|!CfI0Z z?D#nKsttf)fFWyCwiL6@xYI;@bh+Gl{}rxD=BVMtJK#`)E(#^em^-{jDk&uQ8*Kya z?fr<>QLG=m{q;UlgPd3%Yp<91ur8fi?uxdAgJM8M(DnCb{wy2PD@RJfYe${}Ww#az ztu^HhV)orfBUu%E#KX$NCmn{tFbohw_c=}vzEsL_7z5t{*f$7=~2I@=#EXrqv&u%C@#f#4JtfI>AdvhK2~4C`XV5@2IiGLnp-nv zmb7^S?=OD;S|F94Hx~n@73laBaJ*&l1uT&ct)Rx7x$x0b{n{b-!==2AoJ&MU0ySIH z_u#$azV3{hv?lME=={dho}2ks{V7gy@0^G*ka#d6(1}Ufivl$YIG67b6h*9?4jTy> zwQS9J4CsFFP~_=}(=DK$c~x2D%JRO9B$|o%eFRw{GE@p##k}1j08;nEJocOZ$>D_= zLj;2f^Pu9|iCQY z1}PrDL!CUDkL8#peedmNP`2av!1l#ixq*%X5-O7^SI$yvYXWT+ByE+wXz}DaJx4Vx zJZPQEGd-zv!h?C|v<|CDTuvrY3!h~XtiN5wL#A|dNv|_7mXIJMC1z+#2g4KMwCKs! zI3`wCbxn8!L=rv+Av6jcO5GnkNxv{rEFR~1EV1LwU)JvBWpWADqZ&?+L|ewRYLMx1 zdKOaP2e1aTj3eOdcuh@)vF5TxczAQ~UVn5W5jr`UPbxF@gE}Pkqlre~0{JW$`V|2Z zEWSlfkLG76Pb_N*Zd`oPa8vBs${d@@{5CL`S6iyhyrb|QXx=eETGW1pZ&VwoZRNPL zPjvR6CW6n+ZShqO4L#S}r%zDYlo3R}6+&YxlF+*FU<>eNZTutX5T-u8ZzMT4*vdC z`>|gohSo1#_&%BFwreWoODiY>ld0l$Oy+m+?GUAo3!-_P{36mo^PcWu$clRpZ;?I9 z7NgAO9F=R=Fc~dUuC19KsS)vYJ-MhA;&fAv&1Q*0Bb{+{iIS~}GS(dtD{jv()AlNN9vcgiwhh+&P~QsAkg21@Mx!J6 zuI){Kyk~sCAFI~T9K^M8y2XbSWqTkhU#EqfK^gHfH{GXyikqCE@`iEqojL<4DawSo>vc*}fOy0JyYYu7`&(qoiEd6h+1;#+&hXo3!=#h9o}wNnaDF=djfq6Z>2M86 zkDibxl3wYWv?_10Dqp@q(h*K_DGJ@SIv^;{e^j0P#lwYIpHIyahvh73K_9?u@DO_@ zyT$2{%y8@_hyVFPue8U*gT{>L(|22sYwyyp8$OK|Y#VD5aYWXvv8(Pz zC5Kt~PkdLDlM5W8*U113kj=#r<(qULA4zkrZHaDk4_B;CFG$|5v7hmo<2wd2;+`z8^4$)iG7>GWyu?B%ayXP-M-u7$dD!_?7(6Er4BLABhGb9jRqD6s z4t@lJ#cLBw|Fuy#5%sxrcs~r54K6!TD)HycAt;6BS@UV^UT9SpnF_l4XfZuK9RYak zX!$(~3~j$&9I!j(#zK3+!0%q_V|-AIkE24FJqStY_}U{GE<1j&9JxOA)&~kU1{Ky+ zAPdye((+Sc@kX|oVJJR>Mi1e0nyHaMh|ho~L0(Z2pV+jnZW)Y@`IcvkC(I!JQ z_T|fn(+&+(^==#MCcHIsC|<|y;hXcDvu*BM9dxlNDNzZgJ`60r2ZB56QxT@edm~dN zzR-;3LW~%Jz}lC_(~4PCUDHr_b*_?1$Voj&w{uBUG2Lsa_7#S z^qLxaz?LsfU&>_DhP?Z57M8MW5cPKZolCPTuS)PYKMKWlShN6TjR?ZIv$F>JY5=?~ zKRo3Tb)1pjU2QbsAD@_@BE&Vj@^Y({gx?IkIqS`QSww^`f{uS(aY{SE<(7bS%xI(=~~oV@^a zGQhr1u{7b!o)?1b^<5JUA|S257rniGffjvu1OxbBNvaFe$&-^tkQ2s-HfRZ>;@CU$ zvvw&}?&eK8pgSXhtel;4n-1<>l2cM5(9zWu9;vb&;j5^sI+0_fxP2L0dbHG&l=avs z)16INLfC0eUM*QvyTp*&-+R9m7c_eqVZ~N_+5s+q6Plf`32m`9QC-qI@)ibkqOdKk zMv7Q4z{;Q+`jPBZNr)ea@CziMNZqYHyc)=c!tZ{5QG8=#;J4#0Qh_F>D-d)Hqy+^9 z?%y&(wcwDb#T{gN^dq6MX|dTKr)K-}?X7nlF&N{HB?;bTRTC3tq=I>bRSPn?A!1vqqXhitMb7@+@--htp+1c?KehRZ5G!1lVzDHM6-RHvBmxf11<|%y9 za&C?HY*??01}NVHK@cs--LU=M_4FVqqz*~}vbBJ*06+Nf;neC#30;Pk@&)5MJp?6w zpvK0ZzEYh_&^cR`5QSQ@p%pr7EaBDg27$a)fGh9 zy7V&~=BQpIiaNftpA{w8*SiE~*edb~9lY|6_0RPy@Mo#{+fB&>UHn@0V zvX>w6Uw+KJc@bFa1!(DI=hkKC6+L1qDzaQSHWVJ(yG9xc9JT5G9Q}j0m#>^wvEI zNtYG9WhM@JWM^M`;;-SGrnA71e&4bM9ops5-ME9)I> z+$OQ!PEW6n;P@lfYv!Zbio&?-{+xA_5(WzO;w2EmUL1NwD^K~ zyDKm2kL}A0N$0bTo_ zKJBl4sdUT^9)Ipj=Y>GXlB|)ZkwZz3nh`CwqsqOYIW=8|dcXN%!QUOa1AMgHqV!obB^PROk z+~-T#g~MlM!e3QY(L(gpRp+t_3!Yq{MMy7y>AtGe(JvAH6^i}YbuB8wlw%h~oF}Pv z&B3?MO$u<~MewOA7C!r_|I{7SJ$^L2`qH@)nl>JV4Gl(%3-T|}2iWyZzbp@@8%Etm zDPlTHMLDvui%n>R2@XZwuMu|bGZ{$oGIU#=<&a3a$1H!?677gGG=@L1X>)$qZM@%6 zsBfe6TU0+H`y5ZAqd!siy_}ixr1$jCKWwI>m;TGvk92`NlIv$TbNDb(cXotZC@P)Y ze9L%tQ^2g%nz~8qGSP@}63V@m@l6=zg8q^m<3jJeIo{UO-06@s<#y zAJP`xV>w2{179t8R%VDK1YaR}glqH2gypCr3nz*zgzrMrs+#+q7$I|W^HcVFCd7(X z^q~#pnbxp^hi&cQewkQpOZ&2&S;j-C8H#$sxLnxk&CH{Z^G1oj)LQXUTj00b^o&AZ zKLrJQdy12%5i6)0c#Vk6n#*g;obo|8B8{HB-%M|ZH)ES$*V0FXDb%g_F@7b{En=W#1@9GseNdj68(thmo(ZO~3VR#sr>_$mr?j(WvyeVYgpF{cOW! zMqZULRRilrRNAe+%d@lF1)^W(Iy@^Sja)Eqa}IBeJMxtgB2W*c*<4WkoO3y9W1WdUV(u6!Q9<3o)x>XH+WKq%bHNvx{QhVI291q zTlu4J>ZwmpZ#3U`J4m@@?Q-s#;yp$|w-+?kCh@3ny3L-zIp}eGdBXILR~Fr`HT2du zGsm)82MYqE)Mq!9#U3pRUL=C&MiOOxy!JD_rnxWOhYF!l8LR~<(xZlQoR9V)3J#xw zx*!>7rCvD~ohhXDX)cMN<4OqreRf2$9oej})OvevN{aOkZvQ$pDG3=8uk-~?B#l8{{CpEn`fFN#Ign40L=c%Z|X9#$CAZlu^#+*z{!U;qkzgYhL=qdURmU z<>iyBz=;mTW?BDf-Xo4*bT}(OkB*Jbe4=MP={oViV_1gDwdiVC%C@Atx1g6oi|EWY zk=HD7>+qTO8tt`ZR_}$SrTMKc7Kr-l^9T`}CdCxTd)Ijl8~dpkEiaLwTb}V?hHKGM z(%kU?O*>0f<-F?6&E%4^w~1F1&6OQAgc-)VPCJViTRO7MZ4nZN8X zT6lhjf*99hOmC<^hka<`h6^4gA+fvIzAx>JsT^licnKo2`8GKu2Htx3;u* zxLmk1JB6ZO&NMb+$p}y8_}C$YQ6+gE4U&h)-u|qPAG}@jg*<;HEy9p%PsK4d5aLkr z5nyLh`Hl-QF}T4)Y(UjVLuq~gCKW1L*m2J=&vfR_OOzS*mmXB+%YS6R2(4GOoWAP) zD!PY|X2pf?HdndZ;Qn2Lzffvf-com?K5;IVQaV&Kc%r+H^$`3qAWf-fL#m;9wr0?t zW;-;KSEvpfJB|5UYg3y~R)B5NUn~H^uP}r~RcM`@CR7t&kUiygzB0=nN7c5IJv2n` z&n$nYw5~0oi|N~|O4Pmr4b3UB^FG$tntd&;6qzYs*I$S5WF{cLaUox`kZzM=@MO+Mf32*|^k zPd9n%SUP%~_jhq6O15LF%WXPPp*_fUr+=fw==uEzIj;ZP_4PGjp-Y3LHRq&240LPX z`+z?hzkd|Dc2$V)lT1LCIcUML2Rm%Mz zt81r}%Pw6}Hu3Nf`|;yPcBh#&XQ`v^bl(Mmmyyz+2|04_yfj$5*Wo5}}H$gcZMj8tOJ)EjO+y5DrqYM8CS; z?@wo{Va8=Bi~jX0<5sWMQ^#s&Q-3OwNc@E&tEQIEldpH&*%ULCXS)(`bBLR#cpNi@ zFR6P!Fri@?`n@T0IF>Rlix+)m_vqZ?qN_ntb`O+>xg>lCHX`cfI_O@f_7(-4$HYX; z``+DGO}jr{nGc;-l~MfA=i4cE~t( z%(k6L$M`gqhSZbRc(S-BNlD=c2VMn&HI%7-hT}K9at2fOesJB=^6<3kF1-rkpD%Bn#|k70!saQb(T09Tyu46W&(fh#*ov-F#OiBra7( zlar&)S6A81*nhKFmt%N{F6C*yl$Z~hQ+)92$l5Fe zy8^8oM@zDEs8(-oQ{vF#4bO%m@qVp1LqfM&BZMCq7#X87TF%O&73E2zj^3ZX*ZKXY zZfvZLG%NS!dpaKofXE*+sTZ@Yx!?=LtNS2jbTY~ys5{Ai@OAXfh?Tok@U}Q)jhiMF z;P>=YnhgoekI;EU_O!MpG3hnLvykci*E8oc=>|!fuG;}}u6a%F<^l+-c>JKL0Fm!8F6r$I7?eC=f zCqWtjH2684GhNScXMd7ZxQ`BTb*Cfd6&bb;lV&GMQmu(*%LDz_T{2M-Rc^9+36Hl7Es|xF@w|fr#0-&rfaox7>rvaa!7u`@3B9$b*wY5u2eV0v z*n~m2*X&jX6$CgphqqWIizrML51Y$oo|I4rZ+z`KCxyb)BSp_3{9ZaV-Ab^qcEn5{ zLs@uPUcB zsk3tTePKA7AAFo~`;}`NYX0IRvC^R~lxP|kp0ntJg84J0r1(39P4|H{?X3>&*S1>6 zL&L)vV0Zv$@#O+AelG|doYBRbS*H|zpW9UP5CRCzw?F2`dE+>YiOu&B-;7XnhImHmN}aht(96|2?AU2-R(W^926$7vq_q*&2av;$O-SGp#+T#x zBwQI%lV=(@Hh7`*c)EYeSE`?})po-reI;H4S62F!$ezY9RQnlU29T05>X1f>y476_ z3gIA)YT_n-VkgWxw)e4#lFd)g)>(5OV26y)49!Ian7P5Uo{F-xTZwSE`2Bp7Bi^X5 zoE+*Nqf=42YWi4PuH?mW@f&9xep`j!g0Nsc`rA=wfem`4L-MWk!>4I9+6QLV?Sg46 z);sdMr%i<@u}2>@$Gq7to{E7mVE9g!F)J>Fipo_FjRQkqo&Y(9Xx7z~$Wax{=Ew5? z<~tEV4lNe{puc+5TT+%V{~%3GPT5BN?@agdM+@wMc+m$`y=scA!MeKHa7E9JJJpkm zU%x6dCF9>TjKi`Fc{I*$k`&oos>cy`5vt^!|DInVQO`V(6k9J?ld>3#yL(sYbZ6oR_mO};Kr}9FoYz#8lsr2i!__$=CDtUN2zkX;4mg% zp2;k;n!F-K6JL%#jt>D*7FJ>;@ei&fCr@q0ki6CXx7V_Xo$)LjUaeFIACr}pIk?;j z!HVElZM~7e+464M1cf*nJxloNR?7`KuG!SH_XWP8eGfO^Q@RehcC6)$1S6o&-5nfm zW~*K;;VciR9gK6FIMCyCGDNY0fVucIGE*pF5cOaObP$n{Q&3%HetcJjoqU zsY##X5a8`a)zjr{t>kO-NsRfu;xDuK{ftMTyf%#!Z27WEOSNDQUyhoavnUAE{mOY8 z*~72g$`gZH5~+ti*lxB)SS=bl_QqA@zhy(7B`@f!`Cc{gt1ytA_42TvLa>VH!%Jc6 zEH3hOXZE67NiL#87nbRhT69SVlze<7nSBqOVEgqv-x4f~?b-BWzV;)t*UmGkfrY-2 zb1}l^AAgV{X-ZiFGf8~UP$&22r_adp>Kny>(5%q5fWB1aQ*9YeFkqlZx}Z5!N)!D6 z;4t5g(_8-(UV53#i}$sP|8S2BDN52Sf)ycc7#9#6{JzFg#xPq|#Q=qE-g;ki2_!+N()V`ev!re^b-}$D`rPI zDh84fWM0U_Y)Osr@2-eua3m{I6+|+{eG)pV4BnhP_Fy;ubW5k0`1vQbPM7kyt+&1# zLFGJQET7a{hR$4uMPzf*N~A&3zjm+)PC^W0S&^lQ$cl-7zF0=|6iFP8(ZxZIVbI>qS zb7>5{B1g$8%Ark$po2SRb=i__NEGU_?eTGDu2HqyiivPFL+XHQZmz9gdzBP6YW;`+UxU=>=>vD9PpuWM{>AGZ zUyI&3a7Yd|@6P;izLUK<5@VtH)i;9sTqLtqd*w~e`F91BRo>@(yQFTh-DqaHwrlv( zBn{{<4LHS`?FjMmy?uvjaI%7k#H>H^j@{^N$MKQG!);Ts{($|29Lt_fZm|a(D+G|G zve5E-f9u?Vqx~hum)N3?YH8v}WQhomI>~ZrcU0k#BZ44?U~7+n2^KPGNJHA!iqXIv z>&!F#?euG?ucTLvp2?nkmqy7-o4K1 zC?@;%wfnT3x0@bY(qb#W!7xu@(pt@{r^kmk*YTUq-oH1jfQ-n_%>xlWVx}N3bs&cx zMaIB`f1&9DgOX-2(1Ka3(Z2C-)Z8oX(2sj#n=(f!w8Oo~miYQD|lM*e%q zuqD{)0OvHCTSNH}DW0Ms3gw*Z83q~L(x2XK;_X0-o?3qR>ETyBO5drea5$C)(;03a zCcRG-91Ebn$c8!Lyqy>)Kc=+mgoz1#*u{BeQyU2mdU0PK^19^4#>aC2kYxwH4aQ`mH)h8HJw!l+3~7MIK2tYE2* zo}EOhy}zPVmmCHdU(n0NT(dn~Xbdk4>nD6_ig*c{Wo8SRdf8{W7VGbNya{;4S82fm zEgvl?q%5LBi#KBQ0=hq!YjQ^?Ub}_nv5G;XXbP;7BlL{fuOjc@(9)cn&)rZMVLHaY zJqx`y|HC;_d8q{1AySa$_*X#;NzfYQs|Z^i(&(yioqe&G0d#kn2j+7Gl^@hzV32XJpnor8)p1&3n-=rvg@;3G=S8;c|G1M;{4r`;8IOM@ienVclwrddG0L6*9{M zx}=kaszkv|vqGFf5TyG*A;!Hy)pT2j^lG`jxd68SW1qJ%Z>E9He}d`$$BO$O!ri|s z?o;-mQ}!d6avq~RAhbFXjEFoaj-6738yUe^6=;XLNae?mYyVj^bic+7S!SR*$=pf* zC{hZOF(QGW>p0w>1ZQzM!G_-b0b?{ z8`pn&d;ly}8*fQN00yLj&+M8$K5}c=>OB3Tb8Wd2EL@Mj%s;ZVv2iXw{^GfzaPJ;h z^qH&JuY?8HpD05@hKdWYlqZ0~6%}1D?wWe*D}}Kc$3R}DCEf4dft?~1qWR9H?Y&Vg zG#J7<06&EE++CMgvW5Lq4h(2X@o~;+B!>Y}WdRPR_av4ucER4eQ+dmkK;zYX%Zw24 zJ@Uf1&yvtyXa>>=<3EaM{D`}I#m97;f<^MoWvd>)e(RyV2do2l8zQt^Z{EBqwd^9F z>MAZMXaTU!^ALB6E^v0Tms3LGiUAm#I_`h3=Ab9F00dB3Mdj-1YA6LuXPIT!la!RH z!_ja3S-l>gFz%tSC?r#JHa6~jeIJirH9bbXkLPle^68b>HCq`f(DJCkQgWELElA@& z1%V7#`4}le@OL=I!A{hDlT~u>TNZO(8)RM(zr-5L0ZD5B_$yJ&rEqaX5-7QQc#4l6 zT|NTDZ62(8zm1>`SGZ8P1u@=#VI04SwpgMTf?j7u$101Fz& z{cwAv3@Y~+$K!IVk5K8i++8*1qqDDDKG&0UnE>!2fHhme7kTpoZ;7*8%on$5Z-Y`Z zEDS=3khZnuW%l^ScEPBI5}L3XU_O$(!K*XAZGc~uTKBVqabO0Zl`)cg+yO1DHa0dG zN9vE+Ht*k&GApEV~jWo2XVA*dQ5}q zHyB_8hc49jo$qasP;(O?VB@K?ROGTD^ zCJhD$@V(0^Wy8SswQ09;BOH=ZsoTjCo;!pH%vkZ3+!;{i4+l4Bl9CbLAj-MXGRxLG zm%@(^dXJGlZ%r{A8iEo6AZlob2H;35-G992+CNA&^7*}R!luE{m@9ns`V`Qrb2s1a zJp)#6s`odTZ{s1rNAvNg)s32Y@~y>}4#aFh0C7+Q@Cc*RyKyH{i<=Xm)C*M((_c2W zDu<5C(+<@T-*$ z(2lWLWKfwl0uQ)A9E6cm2Th`c=M}%rhW)2Jx{fo={_7*2jV2Y<)f|+B;EOyTOlQ&z zIP3m3D|>rBT7HvB?;fx`rq#T*g&RaE;q!1ks&}ak{B{Fi?pXZ(u`m@A^CxC9X4iS} z`)9o^hIie9LA!I+3Pzjj#+N7zgowc`BNaK0z#`iMuGoTmrbJiU?!W)coyY{cFF!#$z0pP26Ykmb(?S4xH+zz^CsC zquhCn^(}x4avcBPVWf{fPsgxGML*-c$xct|D&;z2?B+sX4FzkrurH67QrwSzFKq#3 zz01I;6vNyB`Ga7Xb2op!%@D!Z4?Dry@yqidH#Zk+#8gWQp`h)!IU}>Y$8+=#x=>wf z?)HS#(#Myfuqe)fO)(M1%o>B_j8;3Crj_`@v=_Afd?8uPg&16<0UuttI&b5&NM_po za?-8W472{hjdS3m-nie3u}06%%flhuz2Y?it7kv_w zUO!Z>9iitjuxlM%itq1k)4AVEX&YO@;6mP9T>S+_XX;hvDdV0Fg^6@-VvJR(_xr`m zozYAYPV=29)LwiEt3~C{QnBq@0`Nu~J$G-#fW;pfX2}5Vsc*^l?f0a6sVxAY3%IV0 zVnvnY9Hl0Yxf&Z8O)mWm!^dQQGHYuYq}?SO{#U`WeIKmKXElBIs3ngN9wD0Hu(SC| zd}GG+Xu-5D?Gd17>wEiiyZaf1E4N~{x5qz!);~DfecNU1HkDKGIkj^{M+%W&h=M~T zVpi)h@K0Mn{kfIgqgvK*6;5S$fVqjmOc9ho;mys4ve1Hkj9Stq1q3A+Vp|;UZ3A?R zS(%6tt!4sY0HA9J$+DSO8UnQc0<6bh1Gz^RBe7$!%g0nbaS^CG1$+C~?lb-b?f25W z&&g&yIr(?Kc2+wyYCCNB{3bB#VpCK3XfGOa0#MFw;<0>I5bV0Kq%rj~4F4!0c~0Ja zq&F)@664g)&j)twWfmR8TfYW1BVe(_TnzyqgohBc8x??Gpvqk-w-+!AT+Ocm)ecx- zJ7{hiv6*;&uPkr6;)Qm^lFrV}MS+cc+Rr`kdPN13(7CegH|?(v{u&2&b{#<1!=j_3 zC0AD;cwO8kVQbg)`9X~(4PMEDj~3OOelH|MOdsu3zi1MX$LV-Ac?!f87@+k8@m+Wb zccy{1{~b{|t;w3DR8L1(o8{|BGi%OOQfeU8 z8%!LsRasG<*Z$SXx09Y-^nd;w(%Gp9caxL4Lxo*?a^_GdY)>EVh=n5rP^Dt65fKqUm1c8&(G0ZSR0-~U zP(77FhSO?jk?*arP0x{|J^CJMA z^78$vHXa}T4SPO;L)&FTkta42QUXV$b|CPS&n5`O*qbp~QNZ%MGCCxLBSg3BPx+AP~A z9#SH313S#>`?=i2AV?yL=onaibb*!xKv%dRZ6J2Y0W2H;z^pTmY7ciNW_R~J59_8k zy1rLWO9s(UDOCRnzh4r1`0(Kqh{kRp`lXFs$L=Oxx_iCEH0|2sOIAIJf|#d@KzJMy zf)BkVi}42m$8#uUzpq(+T@Uh`-p7*`Wf<9roGGO?vimPo-iR+9lTW**Bt zz_ONbG@;5zar-z0Kd~5Bpfe7F5x|WaI84msP877n#|gBi6cFNGEHa@t#v9aE__Bn_qE6TxijiT? zD)LS$D*?f_Bd_sJG6_1Q{nBJCk`4RUt4K*RQ{e>tFO9^_+MJrQhYKIdtG=A-AA`IA zW}9K&e^CK>dq|`wB~UM~gq*eyJHhfX$nSqtO`J$V{vpQuCq;i!;QIrAkq61fKbUT+ zepcYMo&g$rf&dHrJ(!2?%7bnRW|h2r8DtlLm2drji`i#qRD<;dG6;Tml-y4wjTi|E z7`lVUxpEX>0+`W(5dvn!|CN9mg4XpA#l^sP}cs`w2n#ND&_g;)lxbrP} zr_c-;K~+N5d~7C3n!L&LQw8iCV}2k2eaC1oAE)5oku7cRL%9rcw14D6*)QVy znQ5gDzna_FKXiBT6yISYPu@PGfYljwW%lzc-O_vk1`vsc5X6$7$X)>b?Eg)Kg)4`> zPVOJG<2LK&yFJrw*Hk)rPzFHGZ1uw4}&b22zUaM$pp+^{y9pHm0R! zVDfW-N(KY@CKE*fX_&GP!gqZN@-rJ(FL*ozcIKW)ZP}JLzkO-~%CzL z2xfKRq6pYIfTv($^OIIiuQcum-8Ke>@w;PcpO00>@HcZsBe%Pk?33dINJ37V14-Hc z82rd>2-zqJu|6`>h)Zs?VxYip_Yd3V>H*w^^c)W+ks0}3sMW^GopL)QLxzeAfyTkU z$V{`b{=Idh+QYHvs?b*#FKXt38nZ;~R~?8d56YA%cpe7=H=wzoinVIQdG?vxxKrlc zZ}6^AeJDl0;Vi1bAhYVFhR6_te#mJGeZ}>YMu;wxhjy@Jab9SOn3Zwn16ykbHiR#w z=mPm{O0U>fms^9iO;l4U`n5R^M$tR_*;Yr;T&OMZ6d-N?;5-kALW8AsU!jUUF|Qf# zA9$@;SLAd0xkYn80B2ER8fq&mN_p-D!CBUVKFGWModcy{^8?o5{b$OfIxa7({*|ak z_^4kH4l6sY`((wzNoo*RY8~Zzvy514V3G|A6YpSoecv2fYHrr@(PbEU&iaa znxW07#l<&w@+5oeM^Vp61|7|5+X6F9f%MQXGQdi@K?Gj_X5{0m9Sqy6r2zcNZ`-qc zcGzv5qT0Vl+qku-XE!z#zPnl{;7~`yOP6B-H6f5JMk`EQx-}t zH}AQL&xFsHep7#QqXmk{HRaqiwPRMCx0*N8^ZzX^YTZ0kGIGHvFVOwxyoTLqzdyO@ zTyTfm+1oTdNwld|7VcUNAPRX~P$+#9DBDx5xiMl|zhBd(_#DxD-+VLdH};rzvQmIX z_svHrwU47LSmXkQfMfVcaz=ut-PF~!c}s?%j-Gbut{~RsJcBZi`;56!A{=8Dez7Er z$SitBXOnxab5K$~I`F6S9UJq1jqtVG>$cH%{H#SNU|3R3?7LaGC}-^iYy5n~FPKO}Fc zn~E?COXIchKoa+Hlux6>b&w1N1vRS#>3g?xtYnf<}hcUSyQ z%4K3gyZxTfE}!WD34#Ny-w*O+bpF)rhTwN3$f?U<*kg)S?^wRGY{M+XGa?RTpNb!Z zBhvq_6B;XKLpp3_1}Onxr6)Oh>oZphJUhdC{nz~NZ3*|aoml}!4r8+Z+H6@%xb5hK z3jV4`xG}N?U@TA`S$Q|kK*jH=or&htUzL!R10}2`2HB(vBGgp(HW;B<)*)=3jhAV7 zn}DUUr>c2!%^QFQWU{QBGwWKjmTe|_Fy%7VOIapKHT%OdWI#8s(cb*vCUr2SpHzDD zs-=zAFLP^34bLI4@DPuQc~dvh9zMRLL_uds zukNmm>~H_bA-}wIbjSR4ZSU2z{mvbn$ueqHL-9k$GfTZe7T}ZbSThz{>^bKtA(w>} z>A^ajpIk$vQ^6besE0-xCotK9vicrptslZr951?dZsUcHAzAtekFxN2dI`PIW$Gw; zakZGhE-$oo{ps!fhHs7}?uXctQgb#@Gma4yY2RJvJG<5U`GWK53i{xdbc7#>rDdO4 zaQ_gS!V;?PR5IfxP9MbfC=PIr57>I_(UWN1zJR9~$xyiA;=AtfNli)B6Cvz*ZPZ{S z_@lUlwar%BD){@v92eRXZWWM{J1f_XEHkBG&lT1W(Z3^qEIw(Zx% zz6E!Mrj|c37-IS+_h@uMX$1;!viI-voMav`n-f33=HdbpkiCQaiPN_qElu5{K9?1s zE$5tQV%APW9mP$b5vo1?R&xq|s;YF_arxWK+4mI8yYqug_FknQqsA5a$Hj02MWPn$ zD9n1<_~ioi=E0lxuR5H*{&lExs}j!S560{rrsjWkTB*?0e}Ny&v7M-G-9EIX7)f6g zIPRuAyc%FGWD`bSZIpz6&l3STr!1h3c zULfc$6~(!@Mbxl!pUY>*OSL`5d#_^f?mTJD8v(oyOR{&@BffmjGZ{3Pm>PBIBZ#>v zf0t2J+wW?;I(oYPp}U(DiUIOo?c-v2;#=Suslie z_)m@V;x3GW8D;s_SAc5PXcZMw?Au z0aTWu%VtBoeYP~;D*A~i*&z4cyh`!KG`pZ9=3>1BI{h_C+V>yL!wkO{-pYNH^s3?= z{Yod7bX_GfBR0G48rB(ys7a3y8G`JWLXMtz4U$+fbm+|f2!6&!^u*~0^jD-K3g)9Q zoqP7TM|Pfd`UoBlXY!zdY*=b}xJI?KWjqUugWG)D9-rMb%i010fyedvj&sZ9ENO&w zMDtik7u}@C>Q9nyV_%g7!D|O|pAE*Rpb#k+J8ws49ciXJos&g|UjLW`pMGV?)qIeg zVuxkB#WSZhiSPv;c_KJw) z)NJP$4z55w?Ev$<5uSG{BQpbDIIrv4!!pJU8xFL&Opfy9q8vUxcBu(Wc>JEJ*@p}z z2^;jqi+G44<9dCV^bcPoOAcL8tdimw&Tqap4j_8ew;zOSSJ&FQCIXqpCw4sp@3Hy# zeVn+dX9|>Nl_l(7 zCb{mAKS=YNz_9~iRaK*8kykmB+?&e8OP~B0=y> zGoNuF!w>7FIAgOjKb_`02mhzKFsi;HdM#2ThCN!fab{3Mv{o|KX|6T&rm!Ly+&wOO!CB7PR3#l^=H!(}4 z(AsY1YP*QeDb%o-?uX9IZBV0OW%*9F`$u0)fuJ|*ei%KnoN6&JOcrRR#hkF@@ z=nu%$WJ7NspuOAqMaD!?4ax#oTy zxrmW@E7!!7yH_zul)5D8>GY12k=*&uuLe%#vaLIoQwY~jp;u_^eq?<^l{|8e`@Bpg z%FN}qLh?*eJ3!ryOA`COa7%fdyvL($bbv??sy+BrIG`oUmtMPKdFrlxDbVaJs3)Y} z@;HVDKjR`O%w0#%sFM4Bxr;6;oQ_d8*|n-JTS&WQ`@S{lVX=WN^=mdtRN^| zEft~C%;c8EBvhdm=y5*0!WG{!|7r_0hkuF(msI9a{;OAVnDi38&TV_%lTuKuOV2{r zj(51Y@UW)}hoDqUwF|Lm^zYcD551m9CY=nh?J3b`LSm_ZLfGuc?|i6=9k9KAUhpS2 z!f|Lp=}?j%dPk`qiIV%d)T`v}-3VP+6UT{-?dXE;A4o;(o(`|e#X_iG#2Ol<-nENu z<>lbOfwC)xSc;R+yFKG>8_*Pw-MoC;p89DQ*Nok6+q`N3|8t8|avUlZ6$E{W@}39O zSEa?Ku)C7OeLI!Q!ZTtyVQ(F^iFq4=47on@D|oYgc#^hxopTQ%T^5`XiyK6^o;>a% z&@yc;U*dbV=vFq84MK$ zw`Nyz_yu-RAIrMUJv~Kt#KGNVpAl7D=dEWEyWkh0!j#NDA9mTVSmg>q>bv?pznNgJ>hIg>Pt<*! zvB2f%FNX)nQUd9S{*5DT8>)=TZL%jyr9)^q?@lz#YB8_7RekCyxnMnidw%X+=Z} z1%AppVn9c9P%RcRO8~VX1fWQB1I6Z2DXXCFOSjo+7+q{^v z^^=HE%dK%BEm175yKd&?%|$5k zPkuprJ|cB#oR5Utdz*$#R%z4R%)f`Yu1PW8%cIRx7UZtsG>s{kAIp--_&mvu)Y!(+G;;Bi;wvmZeu265$II8c)5Bo4`)6D=G?Mxl zWK7TqQZ%OO1hNg=MjX+f0m1%$(s@c|6HRF2YSENTM8en8rS4XY`1d+mK8s!#C5_?~ zWYY{iTRvF2kxxMoy*GbF)bH|$IBoBBr39s4Uh1;A8+O(EPbm0(NBt8dSNvXaM8BP( zM&i9Yo!_>dkY_=hm&1J>$yUCLnnU$c94wVF@?KiUT%d44&6Ff@m&K(roG|5)*SljkG+inWjF+~(Gt46sY^+pjfWE~%SYxKTMD zqCwJ=dZ(3w?kYRZ9#-gC&*yFM7u**n28O4l zdhwos0QXAvmn(2PMUnn1!%D57$TQh(&>pe^NvW2j@}^4wpX9b;m}l^{+@H@iFB0hul~g*##V`0ojh>J4w3c zee1XOE1-@qo2%|x|FX8=3XRu$yH=)00{|(T-@I`HV-JSG zEv7NLeYp1?bo(JW^hl$}WmMA*=g4@cQEKyPFho=n=wqLy{vV{h2UJws(yrZrfFen0 z1j#`ON>p-`EJzka0f{OINRXUCqC^oDlpGWR5fl(4XH+Cf&QVE{1sX|zt#<42JKq`S z-f{mu+3A6fzP8ozRym)G2w>B}N zFO2KILZGA`e8M)RCZ}X@wN89-CESE0+~UPV?s;v8mdCfPmh&0;ZH;r`p@$Xgq2vUb0zx`@vX|IQ-1-@7CH$>ykq0DOV&LCFs)Jtp1b&`j$& z{y};6X}>%dyZjkOJCan}d@8Y|d&dHtJ8pNb55m{1>R*_Xtm=v$R3u|@AR7kSdLUM{ zbVCKk@UE$4hx=TSO2Mj~j~ng5u#rQrr+axNZrdh`SPcKFo7b$ytuM9j>O5XuV~T1@1Lb-4DE)f)TT*Fv=KX`sm^+w~qfN=V}_bm*(u z>kWFZ!UhGHi<}Iw#s`rbI;D-t-qnk$0Uc>e!q|qW$$^ zgy7bu?I%q%6SsoQ3*`Xy=nG15A`T}g{63~Ku~%;8dxtT6Q11)e_(Bf?5dqa`ByZYf z26h?)iuI#+m8)=ETU%>VRX2Q{zo^l`D?*qD*qg7QP5M#vJgvgxZU(T8sO2u z^}W7>j)cv)Tf8Co#%)su^9yn8s2x+@U7XbC+mtfFZH%!-;?9QF~@4p$=mRJ;WnGt zye4&IdycF)cRVHgJx`VTIINU1GWM18Gsy+G$35k2*G3}!hR&h*D+ho^qA7Lt=_>VHtA&dVoJiO9lqQTf#Jam z1v8LzRCM{Pm(kS;4!!cu~!KW{yQ?Ffn2mT}5Q0x6Y?VGphyV-{1$ z8wvm9E4n&ht8t2F3hju-kLNQCA+-I_5H}Dla|HOe%xB^2&R4~R;pC>?S7G>S7Ywe& z8x(i}$7$ebHA4$+X!PK?&F-bQ$%kNU#f7VudaHXBU1BCW3#h@TRJ_-TmJJU@=Q^xo zSw)Iy#y`ojR(VSTk4SSbvgHh3OU|+LChyK#Vs`zWz2Yol^^F+Wa-RVxU6ZW z4FlU^eE`sUa)OS3=r;t7W2ziAHe zeMD>z(W1XsI)s7>m2E;uGx!k2f}io?I)T`vA($(icl!?%T1oNDd2*gViLAVv8=#G>OdCTNq2lq7uxd)um6d+})AA?!R9z+NZ1B{_P9`1kd$PUK7t69=}oP*C%D4y!wyTJGz1D2eRnixJ+d)MdS+E{_l!OoaDkhyLE z;I8iPEKf~EOE-ZrC;Cggh36uo2}s^}55JVt>kC%98HI%u;1V3tX<3o_#Or(;T6667Q%y4yOZf}nRsk?!G+!fjkd2k=ver2wFg%>cLCAM9;y zd9)!QGSJ1snSH(8-Q(%uJavM7h5=8{TbKbq55_qSk;0>HZ3$lzt#_;D+dqD+%~Xy} z?Xi;E6Z&!S(xv+D?8`WYnD*Km=h8|`G53t%s~-JoA$yuNB@h1ri?E}?N&P!3hZnVUYO5w(*{v4070FkGqVqh zl?X6%HUWcYM6_TYElH5l9s;);QH+>3M>PhM&=vr63ZOKC#V$EkfWiQoEQmR0`_EwT z#%)KeDp7tZyVLB*%mH9)V0{MM@y7O+TvtP+cPAo*%c_h#f%8jT9R~W;9ISRL8J4Z# zen>y=v1$YhT0U?G9=5M1u^@R_h1l(afulH|RW}D9T6lmo&u+}vRc@R>hAJo;j>`oT z*OK|H1SCs)VkSbsn=y@p2ynEqbqvtH_>qbMAQ(w`lkE6m#x4|hU5A{U-e7*<_Kjw31;1h1@HQH0|r^H8zDpzD7EwbJlr;VdU`X+;BoyR zs#D4yUIp+^7KPY(OXfS4kC*`y2WXaI$Exghm9~v1C`AINhpHYtOFqNN83O{-jyWgH zm$<4!+6#Fc6N4%DP)Ba?+*`2L`DPb;1BoD zt5eNWgVyjrFXr*Ub--1J{ zVBe4K{Te*7aeqRFS;x-+$k~imoCFq67*R&Z=Jp^cJ>tENcxZDOS5>t4FcTFQ1$m8rv5F=Wf#6p24moHiZK#9dcwF zs&>J5CDLtwpOanGN4~)RmJM zghoVMCOqavv0Syo1L~`e&QAZLqM`@ZLq)eK^!4>ux-V;(u1+?3OS%610q=a!ktPT3 z&_}$ajN8pi#(X?A{7z6&Z3WIwHijd_`4l3}N=b77>QQ2~fx-<|Ah~^-wy&<$JMhy|N05U zXw|V@G6cv_xs1+nWQkkZsy^6@`1wiv$mbp>kJV1j&a32Ktsb-eu8% zg_h05p;Z`Vgy8%B9Y1=k^1*1z&!M3q=D-WKwo9Vb(lcFq=fC@$C%ZYZ1EHXyOG7#m zT4I_vgdPKAh}3;`U)I-x;~nLR6PvGsHmT%TgNxt2L+1F^cQz+M6PA{&FoPJ@{|c?o zu9v$^(2ijUkYTyWWw@ya4QSB{wa)~tGkrVDNMLZou)g5!?VaCDPpXt(__(n0S}U0O zgQ57+Mt{S73WVC1SpR(9yJ}OX8rA?l*Cj)k6R(V?LbMMCob1Z4nCrWOuo2dD3oa`H zTz{hj0zXj2Q9FM7j1@kDEBzD%g2g`mlT3#S-t)3VF-ns%i7<}#nWH*}haSraSnf zuYlkqWy|K}j_16SSi4)r&KuwpxURiDlzSzw4n!IROm1KOmu_cK8M&p+xS~*qNDper zCm5n3*#KSN;lcqfR4BX!A|yEqcI-`&wCt!*$g7YzjsVFn zRh9xY4v@KJTOFxcwaa73L^XCw`ikV{kf1Ij)Hm7#(NikqtHCG(-vq9{m)#dif`yiN!BZdB{?~7YDrLt=?O-YkVGOgpIfS;M=^~ z?z>;um-2Ob`Y?)xn_JD$u~pEb!UxnZW?*$J*<7_X>M7^37)E(k{?@G*v+z%0m188M z${vLNy=7le&nRYSA*vZeAgw3i&DPzkdEwh-QlGmKieiG)h)D`Fj@JqK_~mfuEC_ld za#$~O*UG=fooBP5F)KAVLpzy0k2muDLVS!%Mwo=_GAS+L1td^xNqk47#z(Lt@G%E9Wj~#Boc_z<(V_{TVR%fTrA>a z3E(1)Tn=jmKm*wCVT{nrk50jq3wB=U1)rl=W7vKs95)c*&40MiU*F-cJt|ltBj?S( zx1yn;buZt&yON`Xhi#(rSQ$4`VL|5mAkhNHe9%t(@Wg7cgRl+E z0pjq_aRZFOkC=mK6*g!VMJ-G!me35D8dRhbh@NOKU#x9XsALOMYAb!L{DvPc6H5LH8dVke`DR@Cmg{JWypL&Q?1337+8Uy&vu zC_e}hbRzaB8WL%WW7%r+cDlfMfv*>AuqLH^ChIj3LdY(D6W zQVY1#eAFKM#`%4YRFs|9bimrCwDc;}Nf0hpMp^m34vzdeNR*&+3rTcy*8)Fe6$|_< z+980=|2k8V-_yQ+og}Nvy=e-DpJh~hNXIhA)gdkyu!`9i!$prMPv-9&}3n^Kdnd7iEflXbw{Z0A%;TAOL z5@Z1_1<&yP_svtaNa|i27J3}e)5%_NLErh_sENiutM@v>L_z+3bk}8c+_QuP{u>|2 zF}B#Gi$dKTUw&1X<6kXya$n*vcEHMGoWuwqrY0h4`%D%jjoGn0fyU^aqj zcJ#C$h#V~+$)nfdkOYa|NY*z7CX!*H9LoPHM4gWe3nM~$CLlJ}k>IyiJP&h(FG1Q@ z3MAuT%Z9WKdiVj<_cAj62%PyRJp4U#v40JcrmI{h;7>8qEQ0z^vxw&)Y2rxyw_<;2 zC`3IFZZec{<*)JRQ&l|I0Xe- zN*8fYAY#qx`p8`Z(c{_tycL{@T#97wIcB7-&4N8y;r*S8A{Tu=p%s!AKx=-*7RaEG zW}Lrz75tZ@oc|h^xl2G&sAY-hJiu)oD_Z)e3kXLQ6nLOVg}yV)_4w8lX~vC>4FncK z9uU%S2lhJPUHGq4qrc+@_OGG;6QmMcC&KlS{!bBbs#HEgT0Zhxn-eZq9iqn<1Ka1% zb`T#=L{}2?zt~842<-pDB|wL9-+lcX_&Ok-iU0j`e`yqde{Ljf_Ms&IYcY!Hnwx%N z0C!#u@bWNFiZwl$KgA z{_nyx92`It6hJ&)p&BH~Y^$UuE@p$VG_4I3YA>F??I3D~T zXV-r}DE;xoAp2WYMTG=}u_vy9a$6(GwbApKr+z}^7JUi-El&w%gt^5 z6UJO&)cuFk**}+!^$L6W&t-F$Kw^i&0+_|ncZWj)+8rSM9CUQLmw)whIE7fu7#ea3 z2E(ePqN0MGbgNh~m$Dh0gF$phtXrT4@@tF<{`Z*nOCI_sra@+TC07?a03wiMZ|J{* zoi&kvZoKo!m_M=HR7vDN9!q1J{rs0$_TTUJ|NF7@e~u=U#G$>**giw(bFXjz$Mg3;Px$x1jzQbvogxAq z#vg9bsWuQbSa!&2(MZQ`z9D#!=ex*wP&;o;>$H63KOI;ef=sWI<&gb&Jfp^7qMLf!3cu4cEF3nQ86kfnNY6khYkjXlv?R=i3$~9P-*mMk0Fs>3}r6e1UhvoyB zJ^v$}PmS-TKhcuMjmb>&HFYQxja9|$=RJiQ=1n*9>r9~f$XqJG46Jka7hO&&5E)5S zW|P=0RwbsbSz#igghmo!i78!O|mbvZeqEk{u5@^ip&$qmnXgiSU=?8 zT6_?|z#S`_w;rWJpM*v#a*TZft+dZ;{I<<$;_$9Wx>t>WFPVRGV-ofRVSY zDIz?w<8EibB%NG9+ga)pHNNkh(!Gi)=%Hd^1@bEY6{ne^a|i z;r2B{U1GKUgd0U+E6e=dF9Mj44-+XY7>LP;r2n4L*-`c?61X*l&bD3$8qE`{4&Tlt zJ{!Vw!;m%e0auc>Zw!mnrjlqQ7laSgc#vzl^l4}1Du(k!m(%s@TNs_k?Hzx-e(GGo z?bp8L#<$HP*KNgwv@2mcv@+~Fm~oxpGiU@hNlt3zO?1&Oy$mKmz49qf0?lYRd+i}T zCDfu#fB4CR?TT1okMwu|7fQ>*jn0v?ls3tu!=XPw^gGY=>$piTCQ!a?=!CzPUj^l! ztWM+h)KRG%3rkHKcu2WDM7cdVSGdvmM%6V{tREdhD&5wWHK?aE5ogI?ZNik7I~)iU zxvZ>?teoS?ghSJR*6HG}@34sx+FQ_5gyeWGosu_oQp=Kk822BP`Lvz)Qk2UPCsIMr z3StuN9`NCTE}_ty6d<#B@|tpEC&hANv5*6=wiJ@=zj5XG-18{uI03U>;H2zz1I$R| zSnn_1Ey(75as()p{%j3|K5mf8Sq_7DXAr0Ujy4DC`+Kp5`B{NLa{g5fu5A-q;WL^x z6S}sskNU{yL{1o_n3a5A8`tA4x@JaS>Fp~XgOq3sx=|Aj3(9mc89YsT+&TTN*%L*TMbo`B=f-R#$v2lPOJhV)=b z%+A>B%1mxvUdAESnjlODl?N;X-l4v<7kyS1)#d`xm;frhKP|& zD13bN*3`RxtA@CevVK{%CxUl%S z&W9WCM7d>L$Blv3$4{OhEf(_hIdDgRO5AmvQaN;R|G9Zc%S`!6np4eCeX@K175`{# zD0z*iu{@gqPl`!H<@)&tR>TKGId=z{1!%_KD-nk5m7?r{nvWHtqDiQeb}jO8WVfvh zQ}gNe{l(d)b@wDb|E>2heI13`Jyx0(eFaa#M}zd-<&44`FHjtGC$n2@XHCy>V0!JM zg7z*lF59y*-P7AR9d_dPWdzKdQ_0a!N`&SOsUHqD+^b(71trTdX&x=% zV8w?km_u}0WvdURQAI9_OM}X?fd_7#Wj^E9DJ~N`r?1WUvS`JhYHx6S=tyUN*_g%B zcD;V_YvWN)510mK3k*xE8t9$q0>Q-e5McOweVeSQPKR+<=<+JW{4IYthKn(wN*Fz9}vB=k%`pG*-rl&~Ahqk|j~J~03Y+Mk}VG&#odnZf%v{yc_= zognxQG(CXk!PvAtEP`xaRPeDS$hsyzg@X_(h8+wu!N?ss8vx0LyZ8B-8j9APV`VF+ zPCtRlXGT?(5w;VDNHm!U_45}}L@9kjt4}JOCjPajVy&eYp-I|^7~e=y->;v_ZW&;> z5Eqg=fp)KmxOgx3h#Yj7u;C8Ak>V*eazjV6WNUgr&6*v^KB#4tRVF(wt$b4MOWYFE zAWXoMj3X88r4dZ>Q7q-ruQBIOot;;iTJ~xFa26U$ODsE~mukaTp`drz;z7 zt~zv$RFM{T4-=$1L&v-=QgfPjmaB!PB3tLxIrp~i*>GXb*?p3aX`IVG#3uiPCq#Wh zukz{jeQYCu-nti6f$wg{g@9-O-`J|oyJ)I+m)!EsRq7;?(M>wAzxi{JSP;>kDlH*p{=h^go1)_ z9>j9Do6m2rl-rRt>{Uzl&LsTU23}65I_Ooi>(V_^;T>IRBZHau;@Jj+csY#A@t2m8 zM`=h_;*0gv20cJr+mtO#G(V54#Xo%1eAa$X zgEV8CPFN~^_A)xvvIxi5=LVC&aP5UN{qOG3fHKEmopWJFXz-${ZY+pBf z@^+#0i&;4Po8ExH*}(D9?~^R_O;E6MREoyd9>a%EUaFP(pgc1p5_U(sI_>v9l!E{u zs;H9`m#OKFWpdO8w{TAN*C2&j_`d#QX49x|9NMES!77Vhnec@ zy#35Du_}E&u*n3ic{l=eE2bl0^Q$>Tnaz6)^&mN?_VU=tnkc(4T5U%5_4Re^p#?Wu zE|{!)a>i9LYjt`4lJ-i-7nyi{lbR(tsfw!iM@dL|;rXmY@)FuP{2Z|5B`v`?0Kv?6 zvW@GmS29CJ$o$Hxi)(%jX6-rW)$Li6&nZuEEtF7pc8hiU=02)4)-?|YVn)8@aMX-d z3m@jR0P9b>KW9>uHPraY4bQi;(2U`+Ls?==(qW!C4h6(<`zY%r44=Cg62WR3#58`s)&Snqm%8_Vl=?*Pj6Ma|E#fR*|7V6*KcQBWdGot#*0`le3(g9!BMKO}_gKHbmG z?t1Ym_y)f32pL`Y=+|*)n(_QG+C$t2-?S1Z^Lc_AKwYa;^@K8J-106#!SpICW}h*7 z%9vJse3R&N!oz!?2noisO1Aa`_kVsRFK3PLjI{i+ z7|rk)8-@2bwLjPJ=?1 zrlWtlK0=liQ090gS_C_!t+LNpFFGAo-&(ulG(++w_~58WWIAfAy}f2S9H!qYFs8qc zgf$}|@~(Q`9TaPbkFO?)E3AjJ?J~Ls^%q_zuGUw`ZjvBrEi}le| z77FEP7G1Dn+DK5u*MWhV_WS8?^r0?nlh~{9OucEnI z%yyeEF6cRp7UqrZksD6+TRagRz68H2h(n|8phsz zjWYsJ@zc`RhYjf?6fpHG4U%{d&xk;d5e2X=Asm>3@h`af|3GKk-qIp^@>xYAY+MsP ze&3V8

1Sr2ne>jr{;ODG+*2p4ro9lNd$yCeFT9FZx!!bivTaQ|K0D){ng#>4)l~ z?1^%pNg7G~j58OR4;zh)?tXzPb$f(!cIjhnN8$(LTS+gg|E&(p!9psy)9Kb9g4gUd z8}>P`R5v!AEcsd{wE*?Aj9P{IA0JevKJ%Pr|5X5CjQfxE>i@sBVxcYMEc5?VD^@lI zNTC!^Crv}c2tn)K#C3j_d0M%EI>eLs1Mog6`#-WQ<8V=>K#KAMZ3xCoH70z2Ud93~ z52l);Pb9Ibaps%zv)i`D<)lOM270Ha!=4rKMHlH(>)nD7lT2) z#DLVEh*BF0?+ghI15gV_bwo&45mXI)jW;(w9tWppBG})$tu|7`2ior2{l0uJ^UnBsx|kv}vcM!cu@4uX#< zgtmN@m6Hn?X1aIrrcu6L1(=TF`a!>91nF=oZ#>^F!HNo9_L>o&tS6HOF0!+``;;nM zER^si^Q(cel2=y#crZ4a)U2fYd=AgosYYsr1t({}4BJX=aA{(u!V;=76p1^d1f*UwPTyYIU{ z<9hWkYQq`LXe1p6Ys6oIVv(%H0dsG@Bj8%F@h8&;_ zU|9{0x|4vSp`lGVxrX#!(V2tgP_JwtF2D~M%pT_%v(@wa%z>vt?UzN|5TL;_*EI+< zJ=c|mhYBWRi~_DP15TfI_5fgL7b3l$dd zn8`*;)ih3T-n^OF8?Y3B3(44NN6;YT6cMpJNBF25-CRDW*$$~@FMv2ZMn|K-KNgu< z7;w>^uovkV91M$(r*3pas5$WeE&yk8WDt8-xim$b3~N43L|Ne+h*E)wNGc`!HN+&fA4r50C~U%5E2Y8GGxZCeQn{T);oeU7s6Jeit*mxVL38s+4()@LaIt>V!rrZZ=VQ1(m1qKBF7 zCmW8ytOv(3U?@?jwq(h0xC6K-02T-ZfP6SL3;-$OKM&T-AD8-cb#zSXgGol#7oXv2 z^=qXuX*eY#j=Mj8IN@A4#l{u}A?k4K$5V){FDev%9eSNJ4cnG{`1I*GDiHP!0H(*; zmydwCu53e76FAOQUV-5gj&z8F?*KzjC_xR7>@XM!p)k$EfRa88zQe#?bMlnUvhag< zzXS03;o$0gzqC{Y0m&$vHKM4L?{+PLETpdC9j+Fk1z+;PmqImaXhu8M-dVq z8^O`D5z0e>Enkm=s{+gU^OsTNM~)mpkmM0ZRw6>}_Aaci()9EV%E|E1P~0S_oElY7 zqcpExeK{By8u~#P6v0q>i;0Pu*r0v|rKKQ%r;o!o27C0LteB)EZlvl-#N(w1#kY6} z8Z|&mmv7mxV+($0bEKO(8mT?Sm?6M~HdYK0hV7=#52VYPGqPG*G5U@GPoQA2Ws5z+ z7OR~19$rocYD>fq))1H{B3i(2!O%SxdiT=C0M`s2N1>tjjw0|+T_6xzjb<|X`p^2X z$kRpsUZA=z@*|5GCsIFWX~Y^iQX>^eG+3Y{Cei_Q{8Eq#-q;=vOobBQkM1*~W5>3& z0pk0o;P>z$mX@HA04N2*I~16) zayM_@M4D`1KUC4(T@>5>^ueIw4XA5?(sgA8ux5nI-q;e*p$r?Nh&c{b#}qNwB|2c| z1HfJVr{|fRPai(iz;KS3s1MokJR=`Au;>C43~cD#k<0mzC1g7cx~;blh$0a?b^xdP zi*CnOXUPgMK|29$e;hu656y^$HVPRz&zs*4*x>LtLC7IQHYHjjrj`%d5y~orlpYr~ zSN^?fZ_@yJCCGTFBT54BycW;q2NgI9c|n~&9%1H;JX)2SX8JtBLjlKyO3le3g0W;2 zU3|NXP4`KFDjUV9&(59vF=G%O1JQ>1j%2%OaWalSo7fu zY_K+#gy4h>!$$T4gbjkq{av9{5WqpgNapqmaurB>03ja-m-w|`HvWOmSB>4NS~2s>w@SpeA?^|5DCMdGipJyjqe?23ZP-h(I`$@(@Aqwo)_wrfM-Ycd5=1{2G$b>4;&OM|Sf9fO;fBB zc5-qW2NTUMzb3#VX5XAh@3ibMl#!{uRp>nSVS?KwFm@i1S^;aZMNLN&NdQON=1mb= z0=>|#EFwwVHQDuTvWNo@s?wcT!nQ=w49f^OXq3z9+Q7KV9^SOk)P&gokcikXP388^x_W2l`Yk-vqm__G}^&P`MpFMM%e6Js3!q`X%EVTZRJ0U7N zL`MpZ8t_vKpMcK<(q}-bc@XBy4-fDBkzTMzUanXteGMssR5NsVa5WL2fnV;N8lxp9 zfJAG2>|k%qlYZ)%_3PU5<*IND2D4Pw1d=RdNgM}gT|rfq7`k1cOn?*jZVTb)cW@8$ zng>nWX?Wf%ARZu|^`2^q1ZGYxCI6)8-Baqx5=SBxyQapDG9%KXt6Wc{nw8bm=FRSfFA^XEad%1OKq+ILrWxOPH!hqV2DPNTR zd^acfa|>5S!GFe_4!kynqSUkG?%d&qZXA-SqNG1OS%@gLTP_2bO^~`viYC&)ldMe^ zbtC{DQexQ}T5?drynJ20BnIm}>>f}_#gU^7<@$PhA zvWRDwRcnCkBmI;nJZ^!qCKe(#kf|V)0<^Ev`tR(1g00Wu&^FN%WWGn zdB4?LpZC+FK}SKzy_{Ai(Rh}GNROCgjZ;wLi$9v?y7{pnTI7|f-fzh=$yten;QwV` z$Yp-{-cS+wi4koV7c^(vxdSlh&$Ig!I2 zq5xu|2%v1#%CA(QPVUdULmBtkvz%TD4*54=LN9WH>nh^$4huza;DcDqoN8a zDiX*BSZ3NWjhd$7OR9Y%1byv=8;q8MB+?1wLfK&=eCB%WOW<(7{I&`DKb6iL@U+ev|>%X?@2ua&(R! zjbU=S{b@=X2wNZ-c%H4vp?zMUyY4F|ksj<`zF_U3o@ZtPyC$2`X-WK1Rzxn~UQFvP zIZ(xd7Z+l(#p`TO>$bKzb^Y!fla`jp^Fkc4<6e*j2 z$bzJR2pXiWaTeRY$47oRgxq({>&ZYkmqHsfjUX$_f)_FqVQDf_jR2_20y6i{X84;d z^Tj-=$O~r!%MHN>IOsGK907?23^}jYkmJxvVuHiW(E06oGtnd2QrOUt-%FE`X|^g} zdtyLjbDjOl!0DU|`pNTUcg@rS?y3E+R3@nEHAOD0B|18f`lev-tMAcHhl+>jtr$sj zT2N8Xaz!Pe4k~^KB$?-~89Fca=2NdAs2VexoK~Q?Rz(#|fS>U9`0Oq)t>?2Fl>lv?uZDu4M?KlMm(uL#~5`U3@R8m1+{+~qq-&5guc-VVe z4Zm4{KMx+c)cGevNL)ezAFi7~4mojfkCg(1J1A^cFa)%K;@UJlGxHD}reK*%3kwTq ztobJymse207qT0T05m=ys|t@XLpBZnA^FFCC#a0U+2p^h?leJ*?&&{%f3G0 zAQvchGm%=XyOv9+rD$^T)rmN^g=4p;Em&BJe?17)I4IXD&%`ootDr>gez||IUEf4> zCOEGLPbtLDC`%>~=VE9l%biC!;TFwIw?o^;x=s_F#O@<>pAp2I!>#FzRkzvA#Q%1l zhpt#;Vs>`>_3GM`I-N+b|0N}wmBNK|eyIUemsq$Npeab8E_4cDQ*nd>!BC%s=Hs$o=7b&8-3H!jL+eb>4RHp z=&Rtlj_~G9kZ2<<PnSLErRY@M z%W$WwV&VjIan$Z#WlT@=^B;q-uWb(cdfbOyr&q4)ijR);+&dr1pp$a9Zc59-Cc`Me zL0Rk++4=FMr&{s+{Kv(5Ki@}#WAz0GC%2WkS{Ejn=w)8%bj`zLcKgT948Ig#Si5$0_mLuA1bv#)CqDWUs*z1< zPh=EyqZTR~ zqI6itz_9!815xxb@h=^eyPS$~K@EWIQLd{mQm^~(wLJ718PkEox2ek0= z%eJhfk~hhUC_BDCRF!Ad{Eb)N;YDXqM%J+X`}&3EoZJ>Kn}^3PStw1dy-~DuucyS1 z|F_L)zUT<Yzc^3XgCUOs-#cQ)Q^ z3|&dQ{Uh~T#PYkJD_P|hiW4T06g^pncs_Q0Cr&HN6|JT5Ie?osiyywq|r!k#4>4#C#)!O+c3&Y@8}DByCKi=rRFRd zkr6S;d|Yu)0JrhG$)WnimwB!es^+0rN_;1!pRiB9%hnR{_!P9|Qk**5a>Z?@*$sPX+Yb*HQ8|r@|S~UT(Fjl{qD4tD`e{A||#F~H)W$sQj{aDGwpz^U&Z+(H_hI0}eZqS$)xAz3uzMbd!GYg3? z--&c~AD8X9!+V;ni*=`rnmD{~qA|}!;G&JM*=_s!FXK&bE~|UFzohR|537-MG%GFS z!N1 zi)CHqy+pys%`N+wzg>R>lao$=P?dH}4X4VV6~E+Hu)Y9!k&{#Dp=6)-u$)*UuKtjd z0Y(95dH5$Mf>u8yQ<4atcpQk@q+hHlW6AAnbV=X;S3dVO`&T}P+dM-^&vD)r<4GeU zmxsF@eFWz_m-9H|{Pl~K@n02*RJHYJK%xvj5xUkq(@J(rmZTpEB#jr&Jdl3NA@jIA zb#M^>-J z{mBg7NK_#n1?Q%mh}d~+79-j=yTPBx<8Se<-+pa){D((_!tIsll1An)vwJh?{$ADB z@z*ex+(th;qAHatjpxNjrWJGLnApNf#XDg(8~I&*<(O4-$Trql?Z8)7He1d^1i*bdu;2BMDg}X@*55iCo)4*9Q1sTtDGookSZR zNPVzx$xhZaWpNyT?O`QX@MRM-%fR=ASI7p%3G(NkQRmisUvnt6s@U3y8O=0$)g0j3 zXgb|dbJcmz!Qad9OU*YO$H5>{Dqx-5{yxXpO?~CE;(1=1=ZpEq^;K%`7!QM64T`r5 zelEGG(otS@_Ir)HUCpCbQ`GXv^?_@teE)Yg)mnu!0-)dkeU!>&W?xt?q+6I`o2XYh zMpi@bKjO7_qO7t|jqnpfr9AA@W%70FtP%S__RO7DAUhZGrk@~{=zt!jGAb%z-G@H- z!kvHjMf&kwX`DpfW0>Q)ewaI^5LL09eE{SMA+_*ZO( zMqZR^Ja1&~u$*~al9>$6VF6A=T1p)@H{Q8@dp=9iU5h$8@{37p9o#$mt3k`j-$lPf zv5&o(3_sWGM@yT_m9|IcLL>zbdvkTmzwnmSgE}|83D0kt7iVz`Rz?&Kn+zpi*=@gd zwkm(guPZzut%}3(r8Gaw5%`UsUS<_&yUu6KIUw8+u;f8%jOO zaecJpK6h(sTaR+4@(I*+-)9`QC+xrLuGfsA-*bvEmXu;iJvuh?-S(Atdzh0 zi34-l4Kgllw^k%&eo9P2nq`n`<~I~l^zP_|T6PQTqXqkT;tzvo`J@KQDUuYsu2CC% zyGrbvPX!rdmrK@UL349S!w}t)rn9!BHU;G|2UV1m&Y!GARr1k+sIaYflX>*5B4(>q zKAj1ZBX=-E31&U?kLn)&ogeg7n9dUB5|U;u=j1ABh{0QsM7ECl4lm{NEzOem@7_GC zvRQnFrhV?Xn?o+WXVgp2gg5&5%T-SiRdRXsbcgI7q{ao_#tAtsijl3h5|=a8Ys-1n zg*C?-U|{fF3~G9Nv!wtI7hx9_Fx{m+Hny|ugN+@)rEif zXzvwu`>Ul0Wn61yCvb6fTfQw<&*XF`uIFd9XUaWeFgr?in>>PS||CLbv#v7AH4PYbBJRnfA&v zf!oKy!wJ;cmVqa&!#y>HIVE5{+?F2D@>W@jy{l(hkrm|-O^ErPiU%u;RQ`(&OV_EV z+(LB4FV{J*N0I`~^xDcImJ$C@uws0+s369AN@-u4+D<#0Z?tPf`+CsoqAzEJ_;p-f zpZ)>fw5Inid_<$(w{0mb*QTNxK-DQoLGwY1KVzpIqB z%*Rn7-PZ&Jx#J@#ITWv~9~|%t)O~K=*(=0J?&`Tl%{%;D-E{ZUB~PA+gaz@E6*q(D zb*>wn>^>GW757|?tEe;e(OSmv5e=PC>PkG2;v5<}B(!AH6n6&Q#8`Hg;bXlAPXyyD z=NxU!sNRVGfk$%~FDZ!;JU7O;yX&%Rpa=R_QHD|6y^SQUVeJ7;n}A1w(ObUPohT$j z?Yd-Ym`AbjI)K#6S9OG2=0>-0S?6GFH`4*|`LQ1l#eRf(!-wWg#yeYEXw*wR>J-8E zTXm&0GzpS88y}4z8IoL}nXZJ4Vf5~$Pm35SzTO7HTt0@d&72AnqM*37wYwm)R*qyY zHk}wOwg$;}K=apQ9JJ$XK~>$l)Ee(EMpq{+?A`K$n_X78gk!hG5D~UjWF{)idrJCY z*%!zR6s)XrV7JaFX0e{C7BnONGCSAYFtQHwtlV>%n(TBBWU*zq3u7_&nn8Z0dF>jf zAQUU=t^vuJ+O!%EF_Jqxpp>T_k%dpDqw$!2xE`2Nu4Dbt_+71eDb~Y zpvj%bToD>!4bsD}j7%l&JgOR-dAw6EgJ1sh_%@LoEAe5JvCg5Uq|1^?f%txqkxo6& zbICTihh2E(D(f)AXVX_&hNj3Vk6rz^%8y(CthG3vxwMf!OScI8w5a9^Zkb9DOAh;V zPT;;Fg9A}cRs1$P-0g_%qJte0 zvkZZ&g?vb0ZK@RB^xBGsITN5lKLw+X!W>CyPu-0>ZMGI)`Pz=2h4Yyec*VA@N)^{#$9W4WWU`O0!wiks$Ga2o|?MV@|tbyGx@Zp1O+ zfffCfx6N}YO^+mk%i58c=Ap@gA3v!r_jVmFZCXWqFwh1C(m&^B4|qiqah*5zcXY%y z&av*>8gU&rYdg@Qjk{6vtek?6Yrl@M_I1>1oD|WkD2GS_YVkV1>IB;GkfjKvSB!Sc zBX6pEmM=x2ycMTJOPTRW5OLe)*tnYE!{PtJPS!nV1cBCA{plg+?+UD_S$ zTgLjjxvsPeAC{^5Z`beYDev8Rz7(06CN?a}N)!F_%>|zq9|MGJjV|KdC>+oP3HYH7aUWyThL|4b^J($okgwxn=tp9frOi-bZs87 z!W7yC9%sMml^p9nn>Eg^I9}%KYGxvz`*pSD>|z9~K3kB-ag0Z7!|FapNS4|vr8f{e zSR5}WceCM4FhX9<&$;t)y}WP~F-c@csZ7__A4-F-0q>eXq5Z=!86!avs<;h)q%u#CD;C*sGt&nkGrLrMUf;nUz>;0stJNRR- z*u>cjZU)&mwc_}gpgr&T`uVV-h$?MuH5^acaLr>#(RRm_>EA&4`eE@ahNO|}GX)&q z)&!e$3nn*+eBb_F>LoQ{ou4611j7Emv4#1wg`MbQ)i7xRS-bU)yWexdM_iHFRxE>9 z!OP&h(m(9$mmu5ZLiNqymu+vAFB%GVS1A^1X=4`&Iw>9q)JHT(o}hI1Ega6An%~PJ z!)oQrI_KY(kq0c?soEW8$Z!p1pKAaM@-fh#??H_Qy@aZF`0$4CuF#y7McdXR%Y-QtOgB5$&wMi{*u zYkNi;U=K-oo0eiJPo?Yu^LL#rcT)T=tSrmP0GNtdVa(KAGH~vcBiH2heCyX`9!5Ki z*60k`b0@vqGA5}HD^!WfZ6d&L1Gf-6$OXp4W8w(h7Oa%tX|#qp2E5eDoejd9~u%TmN>Dc!(wYuskb=U;GUE?0Jn zBSz@(4OqUa+I9J~bx4fxO8Blc@vBK5eQSC4ipL2Ryf_Dw~$BvB}6Bp}c3Ez9zrEq9srGiBd-6ad~E^#fl8132AKGh zwSgCToyuwL_!CXx&SC-XYxYU+PDcMunI78_2Zyo;6hT z;ziBN%Jfc@&u`MoKG$|Yt*dj6i&p=JK|Hwk&X%?I4vt(xX#G(4)YCzDa)J=Rv{iI=-WOe9+~f32?TQE|#Dhr-R}%gg*pBKL%{ zqM!yJX)RWq%oUC`!6J1Wuerrl*`>hACWp=sF4N^A@GjBO4XVlSOu}|Jzs+VTU+hX9 z{+4vhAGY>S?+<2F%3|u6@aG=ImRqi?W|JhBx{?zU8BjFvZk4?M=RU9La)NxX!6@yV zy4w7rx#N1Sg7_6e@vG~#bzK}b1Pv}DrtPE5mT#iYo%1|2 zvVY;w!2NikOroM^oW5^l&PYe!y5TRs_G{(~*49j{%b{V@W=+dUm$K^m(Pg4PVVW(l zGR)Vtv43Pl6HQvu8K6Q@dH0d8dS6&&)q;P+UQZ%mji>x8+VKZ=N=HvyR2MMT6nwU{ zA?vxUS6ckJ*Lotc-2mg;Ewe|IqG-ZHDM%6}d3`5)=j&Jp7XMOS!Jt3> z>sAwN5}2!)4|VCwk1?k(e+~JreLv=RN(WS-lq17+BNYGIaZzNG_+DSC<=%Rw(oo_v z?Own^XKNt{b6mLyp@X=fw5UP5*v1DW4?lKrSu@nz9aUvK)H=S%o3B})lsmjtJKm|gQvcyXe?F=QzX zCz*4U)1e;Oiu(*(McFaSrSKk{URYgSKLi!r2i^J^vGjB$iLOVZWv40T{!Lkv0c{;e99Ld=n;$Y-9dhk zNor}=QgKMS+dV$=Xs?8Zlvij_p*(tGt1~(t?=P`%QaVIiM?j}WfeDi;pcv{BV^^SS zQ$wy9I<~88JfmhzSu<8MoPJ+c+H@y+*0KaQQgbZiZ8eaRg2^PL4F%6`KIl zY^Jl=gPHZMIO#`hB_74K-LXblO!jAOt1nwYlLy1zDcP7F-nG~3*H1U1N)N9#=xuznU=WCnB0SNHD%T^?oWsKL zj#RmzQ!Y-DPfw3>AB7ocqCO9fseJ|*mjt}qzGC6_)GPay5Xu!g;{fX}Aq~{Lx1Ey6 zhKTA`su4wXSlEK5$g*oEMZfHDXS(B)yQg_wyB%8XE7v*He-UhQ-h61u&c5>o5|-~c zB!6Z|B!;zBaDJ69f6`9)c5_+QIa?`>FNtW)Lzj-}Blyg;myUorD=W zCn%DvMPdJB7JlI1jH=MHbeK>4gbtsMZ*^vmji2OaLP~&8%J^%iVmZxC@8T*5w`q7C z($Wp=$>_Q+u;!dqUTAO82bZ8DJ#Uhllz~A*dSM|u@OZQ#a>&$@P;I4*)K1=ikDmgX zV&K>aw|+U5O32H9oZS|%WDEW8Tm9^~2M_pQ#xyz+=As19KEujLs16XJRB)Uxe^<@4 zxb)ZjciLrQY6@WhU}8-MW7-`+kZZrs6l^}*iE{W{?uvjFfbW4?IdDV7a-WH*slm;g zZ@Pu#A`{JlM|NtAWHmZ&j2fIqp;)|)4RlW*hx7w6hSPa-eU&y-P{OoWPoo7428`oS zs5-lm+1^;ab7#&7z)K|}QQu5V4ZwPzWjo_T0P5&TrGgX+{d$1=GlQXeH!3|Z zj};O1dc65v#@4%;zZwwx?D@Gh0L>A9D)KNW-Ux^&8&vaP^D4A1r3a9VSbU*|0-juH zZEZBLYx8>hC`fx zpdKcNYyqH;0tVBwew7KHiU4pdI9Ln*#^H^oQt)YW(%|P%K@vcU@vN(=hN3U|of1-m1XkO6}x4+1v<>ABt;x*<3=J`ODQ#~POX zS6_ZVmftnIg#2z{cm-);90m!49K9Tdgi5w=Cc}#Bpg~12MD}!b)%Ec?2+$!=porp+ zUHBi_?apS96@ckrR(ldmZntF9f_U^;TvXntO?~w`w9Vs#2)TOclT8g?8~D22Iw8B6 zBIwiyz4TWG#REumniK-Vofg@h*Z-7Jw6?b9n?^V4U%fhaBUDWUhv-H(7Z3}voNYB1 zuZ$@HLJ2S3dJeFQX_U7s+k+;yysF9>Y}klzA5p1->aM)9Qc6Y!Lmgb6ABxM#kpYQ3 z8YHHkX(g%3&e3DuxAmgBzjed$8KEhl@Z>nx(oUZO`5A~`QQk?%BdXeliPl8$$M;XI zRY9mG?^Ny>=)uAGs{o%!NJI7U?Q6^dBgB`8z2j%MlmIajY^U|&hCEt8;C~l#5x^is zfMqWVtjuNY+5@wJh@%A}JxG+sy41-Ke|B%Mv583pCd)DAP*nC0QhvJw{|->@WK>iR z+-iVI^;cb5QboC3y^7otf|AhC5Si^QIR<8euwTtL0da-A2R#aC8amXksYjS4cbGjr zL@R8Vg z1adt#RUZ6+cF>0znVRy!u;vEN9>#$kip$v87*UK@4|yPJauf>y%AkQ(faDJVM3J#L z96un$MTqkjq8ilzM?>7^s#?ms4F>I2G<@4 zrl`5|K;hJBe(<#ujQ=q}M+HF}&4)68>MSCDjJN02V~HV3q66oYm2WP(ctd8T>TSCk^~@CDrinVGb~R^{3(Ffkg7IM?$J+TMNh(|KE{HDJc=nA1Ec5 z%>V)o=O`3*_hB9? zm0DN74EH<0w1Nt2Q>bAV!R7S!q7Pr&fsSW})K>8Iv;~@`c6|Hz0&PPa4`3{)*~POz zFGNB^1qs~I#>Kbxp;%C3fc(!aXdyE5kRsyf^g;#Lno(T-gWku|O2(--g3xI#Q`Cpz z_R$B#Mj^feVMA0Htf~(05+v*DE8)6(P!^-Yuvn~i;xYs>C;^&AMn(hx+W&m?MiBqq zv?ovcXRmxGx*H&28tBvfk2K-W;N(wK;~yEHpFXc`5b`maaBB0}4!|5^wm6wuO&89o S$iW+gLKz#H85HX|-1-+=j(tG@ literal 0 HcmV?d00001 diff --git a/installer/justfile b/installer/justfile new file mode 100644 index 0000000..3f383e0 --- /dev/null +++ b/installer/justfile @@ -0,0 +1,17 @@ +default: convert deploy viz + +regcred: + kubectl get secret -n default regcred --output=yaml -o yaml | sed 's/namespace: default/namespace: installer/' | kubectl apply -n installer -f - && echo deployed secret || echo secret exists +build: + docker build -t registry.wayl.one/i . + docker push registry.wayl.one/i:latest + docker tag registry.wayl.one/i registry.wayl.one/i:$(date +%Y%m%d%H%M) + docker push registry.wayl.one/i:$(date +%Y%m%d%H%M) +convert: + kompose convert -o deployment.yaml -n installer +deploy: + kubectl apply -f deployment.yaml +viz: + k8sviz -n installer --kubeconfig $KUBECONFIG -t png -o installer-k8s.png +restart: + kubectl rollout restart -n installer deployment/installer