diff --git a/0001-update-docs-of-eggo.patch b/0001-update-docs-of-eggo.patch deleted file mode 100644 index 885e6ee..0000000 --- a/0001-update-docs-of-eggo.patch +++ /dev/null @@ -1,5780 +0,0 @@ -From db16bb4b555042ea787a08ec0750bb64f87d7168 Mon Sep 17 00:00:00 2001 -From: haozi007 -Date: Wed, 21 Jul 2021 15:27:30 +0800 -Subject: [PATCH 1/9] update docs of eggo - -Signed-off-by: haozi007 ---- - config/README.md | 45 ++++++++++++ - docs/general_design.md | 2 +- - docs/general_design_raw.md | 67 +++++++++--------- - docs/imgs/detailed_design_1.png | Bin 53467 -> 49972 bytes - docs/imgs/detailed_design_4.png | Bin 31995 -> 13325 bytes - .../detailed_design_node_task_manager_1.png | Bin 41058 -> 46538 bytes - docs/imgs/eggo_general_design_deploy1.png | Bin 24985 -> 25320 bytes - docs/imgs/eggo_general_design_overall1.png | Bin 48375 -> 34882 bytes - docs/roadmap.md | 12 ++-- - 9 files changed, 84 insertions(+), 42 deletions(-) - -diff --git a/config/README.md b/config/README.md -index e040725..d1ce2af 100644 ---- a/config/README.md -+++ b/config/README.md -@@ -21,6 +21,7 @@ config目录存放了多个集群config模板,方便用户快速配置集群 - config其他详细的配置请参见eggo操作手册 - - ### 准备packages压缩包 -+ - 用户根据config中的packages配置准备离线安装包。以openEuler.config为例,压缩包需要包含 - ``` - $ tree /root/pacakges -@@ -52,3 +53,47 @@ $ cd /root/packages - $ tar -zcvf packages-arm.tar.gz ./* - ``` - 如果混部ARM和X86两种架构,则需再准备一份X86架构的packages压缩包 -+ -+### 做好notes说明文件(可选) -+ -+除了config文件和packages压缩包之外,还需要一个说明文件用于说明packages压缩包中文件的来源,便于用户溯源。以`centos.config`为例,对应的notes文件如下: -+ -+```bash -+1. ETCD -+ - etcd,etcdctl -+ - 架构:x86 -+ - 版本:3.5.0 -+ - 地址:https://github.com/etcd-io/etcd/releases/download/v3.5.0/etcd-v3.5.0-linux-amd64.tar.gz -+ -+2. Docker Engine -+ - containerd,containerd-shim,ctr,docker,dockerd,docker-init,docker-proxy,runc -+ - 架构:x86 -+ - 版本:19.03.0 -+ - 地址:https://download.docker.com/linux/static/stable/x86_64/docker-19.03.0.tgz -+ -+3. Kubernetes -+ - kube-apiserver,kube-controller-manager,kube-scheduler,kubectl,kubelet,kube-proy -+ - 架构:x86 -+ - 版本:1.21.1 -+ - 地址:https://www.downloadkubernetes.com/ -+ -+4. network -+ - bandwidth,dhcp,flannel,host-local,loopback,portmap,sbr,tuning,vrf,bridge,firewall,host-device,ipvlan,macvlan,ptp,static,vlan -+ - 架构:x86 -+ - 版本:v0.9.1 -+ - 地址:https://github.com/containernetworking/plugins/releases/download/v0.9.1/cni-plugins-linux-amd64-v0.9.1.tgz -+ -+``` -+ -+### 总结 -+ -+Eggo的离线部署包应该包括三个部分,以`kubernetes-1.21.tar.gz`为例: -+ -+```bash -+$ tar -tvf kubernetes-1.21.tar.gz -+centos.config -+packages/packages-x86.tar.gz -+packages/pacakges-arm.tar.gz -+notes -+``` -+ -diff --git a/docs/general_design.md b/docs/general_design.md -index 41bfaa4..a0f0319 100644 ---- a/docs/general_design.md -+++ b/docs/general_design.md -@@ -26,7 +26,7 @@ Eggo支持三种部署方式: - - ### 部署组件 - --EggoDeploy组件交互关系图 -+Eggo组件交互关系图 - - ![detailed_design_1](./imgs/detailed_design_1.png) - -diff --git a/docs/general_design_raw.md b/docs/general_design_raw.md -index 11ee7b3..899d6b9 100644 ---- a/docs/general_design_raw.md -+++ b/docs/general_design_raw.md -@@ -4,26 +4,22 @@ - - ```mermaid - flowchart LR -- A[command client] --> tasksList -- subgraph tasksList -- BA[infrastructure task] -- BA --> BB[first control plane task] -- BB --> BC[worker or other control node task] -- BC -->|current| BD(worker1) -- BC -->|current| BE(worker...) -- BC -->|current| BF(workerN) -+ A(client) --> AA[[eggo]] -+ subgraph steps -+ BA[infrastructure] -+ BA --> BB[etcd] -+ BB --> BC[control plane] -+ BC --> BD[join] - end -- tasksList --> C[[EggoDeploy module]] -- subgraph manager-cluster -- DA[infrastructure controller] -- DB[control-plane controller] -- DC[bootstrap controller] -- end -- manager-cluster --> C -- gitops --> E(operator) -- E --> manager-cluster -- F[cluster api] --> manager-cluster -- -+ AA --> steps -+ steps --> CA[binary implement] -+ steps --> CB[pod implement] -+ D(gitops) --> EA[CRD-1] -+ F(cluster api) --> EB[CRD-2] -+ EA & EB --> H[job] -+ H --> AA -+ classDef interfacestyle fill:#b1f,stroke:#f66,stroke-width:1px,color:#fff,stroke-dasharray:5 5 -+ class A,D,F interfacestyle - ``` - - Eggo支持三种部署方式: -@@ -36,7 +32,7 @@ Eggo支持三种部署方式: - - ```mermaid - graph TD -- A[(configs)] --> B{{EggoDeploy}} -+ A[(configs)] --> B{{Eggo}} - B --> C(intreface) - C --> D[pod方式] - C --> E[二进制方式] -@@ -67,12 +63,12 @@ graph TD - - ### 部署组件 - --EggoDeploy组件交互关系图 -+Eggo组件交互关系图 - - ```mermaid - sequenceDiagram - participant A as client -- participant B as EggoDeploy -+ participant B as Eggo - participant C as kubeadm - participant D as binaryadm - A ->>+ B: call (infra/etcd/control/bootstrap..) -@@ -91,9 +87,8 @@ sequenceDiagram - - ```mermaid - graph TD -- A[preflight check] --> B[download dependences] -+ A[preflight check] --> B[copy dependences] - B --> C[install dependences] -- C --> D[config environment] - ``` - - #### etcd集群流程 -@@ -110,13 +105,13 @@ graph TD - - ```mermaid - graph TD -- O[preflight check] --> A[download dependces] -- A --> B[install dependces] -- B --> C[generate certs] -- C --> D[generate kubeconfigs] -- D --> E[upload certs and kubeconfigs] -- E --> F[run services of K8S] -- F --> G[apply addons] -+ O[preflight check] --> A[create encryption] -+ A --> B[generate ca] -+ B --> C[generate kubeconfigs] -+ C --> D[save above files] -+ D --> E[copy ca to master] -+ E --> F[run services of master k8s] -+ F --> G[apply admin role] - ``` - - #### bootstrap流程 -@@ -166,13 +161,15 @@ sequenceDiagram - par [push task to nodeA] - A ->> B: push task - B ->> D: use connection run command -- D -->> B: return -- B -->> A: add label to task -+ D -->>+ B: return -+ Note Left of B: update status of nodeA -+ B -->>- A: add label to task - and [push task to nodeB] - A ->> C: push task - C ->> E: use connection run command -- E -->> C: return -- C -->> A: add label to task -+ E -->>+ C: return -+ Note Left of C: update status of nodeB -+ C -->>- A: add label to task - end - A -->> A: wait task on nodes success - end -diff --git a/docs/imgs/detailed_design_1.png b/docs/imgs/detailed_design_1.png -index 47b1e7e6e8f3a398ac5835693e2cb7bc3d231aeb..ccc2207e5159b1169826e42408248c796df0e06d 100644 -GIT binary patch -literal 49972 -zcmeEu2T)U8*KRCG5kW;oq^T&NG^N*|A|NP4q_+SQq$coy(ucFBYLLc4i#UHyU&b-Q2x-sVn?1r>R8`hfiZimH2q?gxw(b8 -zg`yCBd)3AP>O|jdZxSW2T;Px8)mp9}pNeTG8Gd}y3&c_X_{1lNKm7gEBgWo^h -zXgv--@cq*p7!|NP&vOsf5 -z+>m?zk%GZ=e#4kmG5pXizDYq@edXOpH*IFoX~fuNn>gZmdA=vz$W4NfuSAc{add0% -z1A%sbVdfT_@yQ-3Q=zq%qmgTbCQT-<+}mn*3p@6Rkf&XuDs@K0hMNad0`bX?|$#A{P#j>xZ8OMl0sF?AQqUu^`gs_QIth1@GQ===y$}|%lf)R7J0ssZsbk{WI^JiQ_28~=hEAO^SUDeDbadX -zqVJd@%;lZqwDB%(X7TKvui>sU7@pQ;O7^d>#8eF@FNLh-sUkm|Onm0J%@8jKnRi9D -z3=eQyXGZTW4mdx?+|HNS80N6?y5IYNul<=YPkbw|>>k;qSL+t}7U&D|e0`oItTv`L -zp>@5~=pzMTuFvBDR#`FYO?KQhR{!jen-t8aw@8b3i-GmxbKdRKg5#r$Cwmu*%!FyDNevl -z1s{O>vI9$Mzx`v(DU2d8fkwwg#KAL+KNkKr?#GztDZAXYTrXO5|MPJFIl2EWvCQjd -z*lwi+k_(5cbFkQg!3BnHF;tAopbXoXKO~tEYU5JRO>~ -z<{aPzXv&v+t(Orr;jSv;aNB;w87=!}G2hMrj6)d}ayJ7pP_()|DG+8>%vUdYam;fM -z(@x;cp+XwuX5liUFb(w3?Y~seS^E^YWR~%?#@!d+6+pP=B0}$+JbqfSWW$`sA{f^U -zD3vzwqx^?9^o+{mi#PrpdjbqA5y%IwY@<2ES$+Rm>-d#*X*X>d?@jt#GqzP#`>P&E -zd{9zfKgnN2CJOLwWHoL#T&F{Byti4f__(qx@yespOV~*L)2@*3%?F!B=_)lhbmz(D -zK@UBtj=?h|wJPNM!aMbwh4s32Trh)XGwbcW*ZGNqr&Vl1V;ryR3aQRiWp%dtZ9@Ve -z=0j6c@0kSb@+H_%GfRL;*-@ME+)B`#h}_t;*ffPlt*j*yeflIqwFqaAw`Y5Wi;Nq} -zOzvlgpEieX6{bxX*(}5GV_&OlS1NUpX6U}g1Gf1UqWS33?Kf1&GnsAls1`cbmB;3d -zi5!TmB=A%jr;<3#`}#MNEykQJO7SSoALb#xGKC>Ek mOdvkdHP)^Z8k~bRYis% -zmwvO0t}H4ehit6)I&sYgpNAUJEfm=@hAswKG)Nb{1?dl-i7oD11zGD`W)&N&Wizpf -zjyXAofi3b@PP@hYmNsEStzTJ^an0d^SPEV2DUpHVX85HkqH*95(dXoRtmD(HxU#qy -zl3~Xlo2DwU2c(<0z`MQ;1TVRxTo*^r*d}HCfRdz>Ic4xjyT3EPi$5J-`GiJ1rQ%;*?XD2w> -zoB|4%^GJ405=kfu9F#%W>nmSQl49wO@2pzHw1AIjAdjZy4;0m;imb$WNH;_C7G3p* -z0U&YHcAnz@xZe>h`2K!tES -zcMGfRDZMWca^?Zx3eqvB!D9kro{O0h1AQ&v22CTgeksb*aKpYHjjVCUUY1~<(@8}G -zvRdge95(17#?n^I*}H&d^oYlAMu$TzXkBW>pg^JWML$e!OEoPE<;ng16 -zxsaKvRIBXpW1C@+yXAn;q|OH_YH3m^W(w$RGGDuF^iF$xfmyt;+Nk=B^%ca-p-W>Z$}>w2~&!4o^k*?vs9++ -zYgZ#RXJopk>Q^Evz9dfR#O28K7Y-!XaP{!{neqbL8#UgUtDK~+5g;N_(>hZby$791 -zh>7-=N!+YfW_SK3>Q%mwtgXpvL4~A34nrN?iwkhggu=e;wpA+Ri@%)YOy2A?cW1zz -zYKDRh>igA46E>8LHk%DM-94f$cE~Q-%42Nj6tc1b+c!6*i$2=#iT$|so@c-@XFR}S -z{#Mc6d%NH2llj9AuZEH5B{vW^HQ?j -zvgdkUJo_ZWq&hLXqr++?Br~a;(5h#T%{vDr?_NzJczG}vaL7N*$>gf^K){_Oh7vsX -zzSBVstUr$@vIW?|?c8-XjjZn`QxGATuip4((HY~xT6qr2t92~jIVYrJf~Rhsm8U3L -zhUl)0pBC_~L(SXt%&$22ZRdBuC1mm~6X$X1Gl}UPRS#@^9euB&+DzIg(oO+Ys`zNKEa@ -zWV9_Dq6b_}xFB&sOno9vav-Z2&Ivrt3=E>b=}oVED0z0b9-&x>jnYtXf34B)3h&4F -zH9o1KLQiZFJ}>!0LIK>?ivFQZy7h{f!NKD!&)LJux(?=Sb!+m}Jv -zTYYhDV(&82^iaN@^5e)4Y%3Vhu|}m$~sXAh&`cF;LDLK|J7_kP%krE`WJdx -zX+NW7Vb{5ese{`p&HU4xv3_2ODJ@2CSOfPES%?O%BDtc~8ES -zflIn0&-C2qN{XTC7A0!!SH34!vhU;l`-#mEpNrT|WVq1*P=Uk#rqTXo`x=tlE)D3u -zN_d24&f$XM@0ZoF`a{A15D5}y1~OX03i!kLC%9&r|9ttM4f&rChLaMjU#!b_qWikx -zylih8C}Gam7H2~J1W(Yn*efe+Z8U#z-xa)e{ez~R;m~E0K-9Mj6t5f2EQv>SO9XZD -zqLK=I_UAslm2YWGvxfyOBJ2*djtYJ%#OxqyJ01O4q?v1=oPyhPlB&|Z7kJpjFGfKm -z#!JfJGH3iPxzdi2OfVY -z4l1)t(3qw}3La{xr$;JV(6{apMeq2A;c^sqQWDS3Mz)X1KQ(Q<#}<*qGjIfH8eFr$ -zcLT`(0!Zh8&v}Fs{bVGN42Wj|hqArgEOSxzEy^GE+sQi`V}T4Yco7se<*T1^sgB;I -z=|xajV}9`27&&Iw5xWSv;FI9c=1+Njg&uDLu5?zFI036ThE(p{YN+ -z0>kb4biNn{FH86u`;Cs4Yb)pxyzRk2HrX-+M~yo)8R5v_CO@uQ+((BjKL+RN^rDBMRc4^_C={@?xQMuBrO-?#$|~@nTp3EB`K+QE8xdk -zZ}+htRym5~41A|Qfi)pM95-mP8G0gj>XxOE6a$A`cUh*o)~xt&OwZO$CY9tNArtwE -zs~29MHczbNuB$Bl?0svDwTdpjomE}QwJE;R6Z7THRHM6cke8o_#>5FzCU!dZV44Y@ -zSZtP5sq+51Tl~ZPGR?jb=Z?EY=q0T(tcSvS8jp< -z1?z@d7@`gJVTOtu<8j3MXKC$T`lWu_qVI>1tdl0J%Qv@-6Ie9{l_GaGDSDQ0Hs?^e;dyJqc6}A36Dncp -zOJ7miyw^(*u8U8Va^@lt~o8g5|7zo4TgX>&e7bQ=JpOSs>`nsyC@4a>! -zBqwt8Ob6E(qxuw1NkB*2pD}MPi`R4Q&^lvft?G`>57c3kJv -zhc&eousj-3acol8+?cBh4$4(upJz){E5XE6qqpyCma+7JK#4||R -z#`c-?r22;%H#3OW+&`zZ1%Bhtq62<)?gLren-gD+psl0qXxv_=$rG&}2JsYr0(AcU^(6)>4 -z<4XOSehLv?aZf4M+PkBoI!yX_bvTJ}VTKNQjv|B;F?^9Y1*0n4S+AV>@?I#`ephvJ -zDo*lI?jmA1r*d=W5^I0LeUzN2tmoD8%13L{PuzVcUeajI3;0$&`h-|2;7gl?mnls! -zuE*Jr@^HQCym%IFtk~x%*4UKXfg|bdDISS`_J^6}D+khJI&Q2lyYL6yz_p6+pUy1> -z56}2RW>QM;(wV#9HDnQ4bQjvDp3Y4=2SL_nr==02S7XyVDpbJlOFCGuKlz%Xf9PeK -z)QfMWp_J`{qEvcLK4CNKS>83`{uxDd9FcMcdrbv@;6NVA&=RqkfU<=>5R*a;Ce>ysK=@A -zpJTU`Al-~AX?l!c5t`GBrGzO9zRuA}^(|r`e^T^YN*>ag%TeWajIh~pPxxnz=v0%- -zjMK-W`3A6O$CA{&8Fk*>#GeYfJ`_G02b+(a44i~X?@JXChOWaWK2P4OK7Y}fy`>0g -z7Qi1GT`Ac4_Gs5j!uoSz+Oy35kiMHCL+pi5qs@?g_cOb&tYt&qX(9%D%{@-Iaqb%i -zC7BR9*6etTJe<{&i5O30x#TcosmOX)<+NAKrVkkfK5hWazU*;uc@VByZ7&dVjL=Bk -zg3f5K`m%W$ku}n(dS7?pOdi}~Z12sQKP0MB=p3(pUT4=mdxCVK2o>_FM}8A+&g(b} -zVB6Q%jR5b%alCLQP5|+uA>Wr#LL^ve)f^F-AWYSc -zG~-DyhJ@}VwjG+WyH?9Z_GkY8__LDfTGWy7m3RK$dxsf|;mgsJMe0g5U|q)6IL3;A -zI#dAIEv8z!IbgR6$aG@A=nY+WQ09CELirS&+;V;g|NJ>WJMQR0Qjp5Ztx#c|(nO?b -zZ+LWHGrvZ@UgygO9P5Rxi!Pu;)wXh -z?KC^Q22He#=jgT0LM#lu@3De+Iq(PG)^nPS>~mbL7{90xtQ=trP!8v -zi^ue7Sf4&@|NVzUI0t+zt?Ve5Tqf)q<2q~M&KnUs?g^~UoS9b;i=@Z(xi6mIrqPR! -zFF?@>tU_Gtv;&`(g}rsQ5NT_%N!0TF8;4sho<4g%)$MDsA+EKiGXYd46-M5zg3Y46 -z>XW=MpKn(|q8rRIxRwV;Jv9WKkzwtpuW8kyGU`^%5^6+G!LQnrFlCqU75ap5%?4KQ -zi_7j(9>txAaT{1811fSeS-Mng`Lpy`nN}(Was|@tU@vTU5-PI0EILPg2wwN1#8eH5 -zxlG6$--k71(KT`*7b0DGmTHbzdDz|%&4coljZ0~4dgojl;V_zAIPwP!D%q$--SAU1 -zeN}@OIbra)pGh%06)s**)hl~CAMSkHcE*n0`NBEPWJSwbSwr@agwqIKRs1`~+)Z{F -zT9gE1ct)+%!@`x(!oK|;Lch`D;5kuhKep^wM`xvxrV=_e`21FwmL~obg|Ke;+|W6h -zSLJWJBQ~cU=Z@Az59__RDp-ph0Jf`PvVv$s{7ITURw)LFT+o;VV -zS$A$zl$0TFTLOk-D*xufOJQ@zrNZma_p;)&9HL8bODHF?$pAT#-IU}F-+ -zI+N;nu6?*I^}tPmHSMwYnuKI=J`TuMi|3e|mhs6wSa}JhS=izgK`<{Vfrqtx!qY3p -zMOK`f%R1UbS%LD~cDJKnr%BM*3HPv0HMy8cL;XlcEtf|xlSy8%pfDtj+c(7?LAIqV -zk;_;l9e7>J#puh9R;kLoYJxHQmkyNr%9t!K!`| -z4^eTmyCFIfZg&6&VXi|pbCtHVC#A3Cr1|~fbb;6gx%H%|VP2i)vBmIduvLvI{E^aj -zd+BX}X!5H^0&?D3v9G!gd1dddF@x-jc@UmfHwcj4tqUcm{$(f^=tj{WQUfIK|Brn6 -z5h1V4VhEf)PbD5A( -zv%?JR4i&KCpON0|IyLATyBiX64lJ|3yDlgq5|s^j(q9)q&at!sxikGsS&*-1X?l6d(eC-Q>X!K9m -zdjRx;EP@Yz@!rEmg$nUPe -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 -zvwoM;to&Pae+A+?H0V8 -z7sLs1CPYlzH3qslxT?_t{L7b>bh@6Etks$9E~i8(L)|bn88(W#4Jp)yR7QTuMrGzA -z<{D!vAxX6E-q|&16^m!pwQ;uK7!L9Av-apS0*yBPPP41rXSY**FtUZiA-xxp9DCvd!C&py!&MbQ(oT(1n5kmXUbp -zkkD{j@(S(;!T1#sk9wxEm_+wY^{ZI=-{&$l>M&dsF$nvLjaAzijNU$Lvqe!vYY9+X -z0b0xf(4!f%t+vi|*rJQo(CcK{gvi_EDw`h;=-C4PDjC_F0G|M#K89?==E1_=TeALh -znbx5=_{1?)y%?p?=wrtt -zkh}PRz}C0>oOR!n5~^9up}MVaM=r34c4DrDpUkQ^3~RZjP1f{55B8BYenn|sVDiGW -z=sHA9yVK!X4~i&WMO-*w|K1h1(`HMQVhrhQfZH;Sa4!^D7qf(xs`bMy^Dyqtj|{>{ -z)9!T`ci)tgs>2H}fS~<*R`Fvxmj;2k0&@mj?UMyW_cyY;CdI!}R!8^S%qs}@c2^b@ -z-#Z`B5AbNd1FZP*epSE$=90sU3lO~j*2SOGlx2k1d`g0Vz9^HuB2Z%`G`-ylO@pyT -z++O%AUu>+O=M9{aiLU#e&(23muyG&B>5^R*HrL+wBFpw3cItpc)n;{P3#C2b!^Ymb -zZnb=#yuEkYV4ogJOwoiF58H#@6Xmj4(Y6Q7;Ofia-Vd2kogSn= -zpp5~lQhOPP^vGpkvKb^pS%3^wivmLD$Alj>Z*u7L*w&G~k~xONtkv3H_9%jcDje3= -z_J`=4X_McNSvQ(z1j0nhT2z4kpy*+Pms|)M_R55-LG`BaTt)o!_t>kXe!-#22gm`S -zf-n(YVoiA#-E|2-n~u&IfIamLXEjNMEZ6{+^9A}BC2_E2z`kimXnAaBV|2g;Z%xj{ -zzxhyJi)xN^!nGn_8GTSX^dw=LQEQB&dRsFHqIE}*kj%29C%vaa81|=j^kUJf!j%}& -zLibZP&}Xaj+#z&%Jytc`5M9V@_2!1ybe?9-d9gW!9f4v8Ujg;Vn!i%ceY^`(ah0pa -zJA8C&e|CXhl&ZPSDPiv0rzhDcwn(oBEAVjXwaD#n{hozSBeOp_d0#ra72!~RYgKgr -zb6F1$ZfnHP38lK<-1zjedeqV|F}!+hh~D>F;&S@FTf*q(mk8s#Fn5S-erJnft?T|{ -z1g;MG(hKb^D6`y$nof3*P@zCByy#S3>2YO~s&crEUM(M)_M7~`{yIE|7`U+)w>Lq9 -ztaYv68&u%JycZZfvm!v)Lq-v6;14=>xk)=?TLFGfGoI46G?NU`Xz9tG&F*96h*eJ= -zG4rV>8xx -z=S_~Dt%K9dNCmH0GYaj^$#xQ;$i6ld^CrAECh9dj#q2q3ePB0$UrR<+T!oNe{aDY) -z(M@;FcOstm!OWDpC7P^YSg3l9&-Fp9wd}cCE?#esS}p>@THxmc@KGbjr7s#)U#1C9 -znSVJ!>eU(&5r&G`X^|5e19l$#B1^SE)ui>-7*1(ru&Xjs_=Edx=!fHthZ&(S6~U|& -zj3txm_u2PSXv5^E&=%>`z2NjH?;v#-#a;`{*8umA!PRRK#%QtJ3Zvu~Se}9WmN<6A -zb(Xy+6J3va9@e7hM>no`OxJVYF87?Q4tdOxJ9E9(Jz;bs;3jn*J@x`?qQSA5)K+}N -z{7V?n`z+8R6JB$=b1JK9`b~wswNASK9pe -zyAUw)>IJ3hO20w^RRv*#v99vz)wfM2%J=Yj1(mD%!KK#@pEPjB% -z#{RO?$3Cxds@uAsOJ`ePJ_&+Eyz59c+0^;eJZrj^>AvuTF!XSDmlkx4$M$Czf)pg|46t!5pJY#{kxh=0Of`Qb%KYIl89I -z#Yj&P^R3~{5iY74LDZ_?i|p6KYsOq+XtgLU+NqFPbr;tqM6VL_(iiNT)#=ABBcBl? -zvNSGlc&w~e)|!Zff1?0WFKMz2wOn|<-|f6#c(veIAQ;&&%`R)`P5E8%HfvGt_{Qzt -z(XyV;IHl>f@sV$ntETS#rY=!CqFKs1eE^|mEje-Llh|~TNsTspL?v7P*cmHMaq9WH -z?bZl}E>=Y`@3&4|+LrHYQJu#W;Mc5-pss|#LOJ##!)2x{Z-a0gb%p>0uL01`8SJBK -z2jC -z-aHWEH2DT08arU?>lQPr)g#cQ=`nv)(lAxEjwhZS%*2IZKDRL{tbP9B)5uD*YiQls -zHnw8}K5A$@hYiIyTc4h-4MUhcQidDZJ-6-;S#=|RL`{W#o>H7HtgW>cKo}DHDwOO- -z_FgA?bn?b{2-vXtZqz$S6iFW8LL8iLWdL_!)xCbMyV5g_Hy+sli~kMuY@o4zupgf%6c1XHA_Hu!CY -z?4_kBt`_&K+c!mYDIa!n-MCV|FR)bewI4|IR->ka3GQDh!IvqsBR{;(`8rK8*H;+= -zM$}XppPAT5bLla3`r?w}GfCl5u)ZHwDyM>f#~Ox=$WCWi?c!Jq{lKu=!r{1zb?s@y -z1W!m^QA&5&l<}Ax*=`ccaSbj7zGW5|j(DJeHzS}0lVTfFZMbIC6u{=*|bwr*cupPQ9SN=XX#Ersj&xb?RU999Wt1Sfe->EZR8;0@;AL@1@T -z#SpKi^GgDjnEG;X%`VB_BjY)hZX5Z_-j_DfQ57m|9wKafU#f6dmV>WuLT|!GDWanR -zJ4I63)n0kESJbwZm9@XH|7st(r_TU}4X7aV=G#VHoRUTI`kq&AVctD~_Ph7Nt&(=O -zQ0GGK;t!iOGl1V#eaUWc`?Bg+wp1)!8WHQpy -z7c%7A)#1J{2im^TlWk|zcI{>nc)=6%^|>FDH+bw4lF-Pp);j=B;O(T8 -zWyz@=A3GJMj;W4Z8)USLGAaw@rZ^-* -z4!k*Gmqk7FU}P`d=;a7_`x)S&Rmpn;z`q}~a1f}}MyP15A(KZ1kkhk+oII}@7qha} -z_hu$guN;lMAKguB-@EJHxe_&^-jf>*Sz)@H-m1?yUVb5ef7jZ5f!Mb3sH*>?;B`d+ -zJ9+^81Ps7tsQISddipO1-^WuVxJT$KaQ|Gh`PX3-l%&_KUh$ZF58YYJ;ua<>LB{!f -z%WZU^l2s5>JEsFDk4 -z0lo9XDFFy{j;x52?td#{PvsL;q@`2P6x}J-;6n!(z?bXg_aEx^PcjfMNWbDjR5+FM -z+VAcv>tGfV{ff{1G~DrH*q(=sz!lf|2}w8cpM9ugr+)!_8a=qV&snY_gER=9YJ~I6f1y6Igr`@8X(DgTzt@kmJ99MkqZvtVXEBjG36gS>3deNQJlc_ic~h<+SO*LdI!aL^#~ -z#?3lZ{ZzmLLxHiEN3qH#?XFL6|FW#8ybeyRRuS+3|NXKuM5Vkqa)A2AUo{gT9ua%0 -zo>hg_BG(Y%bTZL{JGEV(e@f0x$g6Mn4i+# -zg=GK%*nr_{kn|*jH@JlHuW3br+gi%}UMu>TUKR*}ME^PI9J|AHtd_LffaiaEb_G$b -zVznc6B_99|kRHI-!T}GY#9ktV)p90XX9UNR$9jbNa~%Qs4+vI#GYed_c?9 -zj}82#?`p7^qirFL*`&Si3g^!{6tKVV!iVFWc`kTaOZ>I_|L}c&)tJEzHyk-(WRs^~ -zN2bbu=l*!qq5zxIT;8|HTLv!qseJ$Cs?sNWvISHFMab_o;=4&cUf{hpb7Z;0_x|_$ -z@$Y4MK)GmbYbdTDZw`6b?(whE9G91<-yZF;nAi9B*-eW7b9Ss@Wq+R?X=!wUE8kzU -zLYcg0K)VfD=v**P5)x%sjkpljBLD5S{G)n*_vZk|;@!L4u8pd@+KwA!1r;CsAu&B0 -zX26`^-d6$#_9MVo2$}+Y0UrEcG=HN5<&4S?bPbgPcKY&PI=I2;H8c7`>K}Lg4+jf~ -zS&Dx?&_6Q%Ye+rQk`sbPT+WHJ0*d*MwaBF+Kx8V`e8`X4gH><+34BuP9RHGKU{XmI -z`@fZBKv`@$Nz9_Qf^GLVJyTk_BnId`Ktj>_>$(1+mH|>r{Zn~w{JV;%acbvJ)%hdt -z@`r3Dxm%V1{Gu}w!ff=GFC3XF%H*_0-)pPhYxEnoLfjXfIGHoha5L^1qjiP*=wnXV -zN6wbHG{v_Q-_>vtYki!6QvY~Kso=6U?zC>27C3{@KXh4*_sKIR~NvJF7}?) -z%OgCU$$a&>$7V&T`<+cwZC~x|IUg3;64oWw8Z5B*(nW0tXA_)R^9j<+R5LxsNO5)q -zJwZ&KIQ*jW>40SGjh)`VJunsWAofU_6#7|iF3@^H!{4CpJ#ne;f>d&8-4ohlhbX8&@lvLSCJ-zuig4<;@5Snd`q&bFNu$k1P5%^Kq8(Q5bv -z$?8|$Z{Be4i^_q!`pTP7EW92EF{Mv`mfI|Crt|2(huqmaN{w{NaSp>}x;PXO1c)9R4R*;+f=H2+bbTyR}=pQ{l*c)F64o)OCG$n_0UbaMr -zj2Hrr`d7}upn0pAO@KH}C~N(k*@hGCxMWY2WuNUgE4O6Qx9*ds}escOar-=1(d>X_W3 -z=XuOcIkjp3JlX^^*6qtnH^~{8CO~(R5T@XFo4=)K>|9Px6zd_>t4dwvPXxBncXd)` -zSm#yA*iD+5a;!&DwLpsl3zh4l#OYAfe4zEGhqSj_OVRr-!r_TPr=x<25+KS-r3)We -zJkERWw}`4SjlfioZ3Rd#jLyEVBsXE%+IMo@m$cbhIOg-sXYd9_&6UPKGmS4pz}2h@~wh#xT1jmv*WRVh`p -z$Tm|sCb){m_Kt?+C^J+8zF2tZaZ^)X2kx7D=iSxE6;6SW0}SyRPnn}mi1)@p5j}BbUAFxvt;{a8h52rQj7-qbjQ-6pLDxn%-wOM!Edhf5^-I7 -z-9YS^l`F!gT2=Z~kYW(Cbh2c)_tfr_W1n^<(^hs^!Yd`8{%NvQR@~yrbb)^-2 -zS1>7=%SPZ~b{%T*8uu%I-tf-VS;Gk2oR0K);ToJ$*p_^&=IOn6a_1QMg|DvrxIU#4 -znvh(0SyiLkuKb+fHLUE=vkdcJ)dBfLz=1?Hx1zZa7<>Hv(mce@)|eQK{*h4&H3JAL#Hc -zR!Kf~DB=6YC%MLI<9ofuD~{TNZ?+{KP<|uL&vk@gmb$f)7EYOL=`s*9)S>$%n0-=x -zjcOusB=1v2($VzxMeVB@W^21SK;-hmwdgf0cSqht&bVpd+ -z&pNcCQ{A{+8y2gsEVz4PLr3i{TO|(*IO?hEGd9Y5GZ9R}A1DednC*Dm@oOFL$~v -z;4;F~pTDaqn%}g>QKi~~i3(BOJyNxsDqBL7e-!0QnTswCn48zdFZ4SI)Ny4qtl|zz -zqO}H8!&2#La*q-(xjd8X3zPKYZ=PjvY#etbw!O#Dv&^u9$E0FiV%glz_!!%`E8fYf -zTfG~U#>H~xo~#}# -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 -zUf?mE?fiHAkZG>E;iyfdpUy6m -zg>mOz#2er+Uteo+8J11B-&Up*kgGk0z>YV$-)P62D>Lo@bl8FwD#LVon3~ -zdeHBcMGB1A9DIp@HboUuydQLEFgUKu_=&-rc-w55c%P!FQ^`;Nkr@YX%rw_V#QEE~ -z>fmczu@+LAPFWbRw*Z~FXDYYLS$8m2{56|68hBRd8b)CUpT4dbbjlRmGsU2Sm2uV~ -z{SqoSRDvkxSVXm;ZZD6xa$-U_E -zAzTbINH(_ACpmgFjwXPM`O)ZLli3FzVBl2gcsUx+<4$ts^vG7 -zA8f2#p;s8Z@edj8V(H|#1PeSq*_crn5U7qvFb`adl7K~yCDo7D4||!j{@@SA0z~vU -zU}vwB4IkS&vMTZ^@o&=omNSgk%~}g!A=ttsa( -zpBKs5@Je^*8sL}uw>n+=X6d>8;rXXV-L`#wv%SEO>dS^lDvwlZ0CzE455V3_6Z-Zx-fP(_ -z?+-;M -zyW$cAA%5B5u=yC9kLePU?SYWJiC`DsSx@IR=Axse2 -zojolAEHe#|MM^P6dum_DdMM0GJ;0`|zgoM$N>zB`BFeF=b7zeiFt^J?UYEZ~5YzE- -zeaWs}wGa6Ih%-EAs3B%`wd1a@h@hCrw=dJo^>p91R23h2bWf04(TsnyQTfKpCbvzl -z%!@fyZsRfo`8C#N7e`@kB_*Dq=nCmKB?`X -zna-INHZy!Lm6asv9Q}kztLHMc0S?&PDPVt;76PCharPwxRwdw2y{viy5%{_7BHK{4 -z%nCD>QsEgXVj{pr`@4bAE08G8R{nAmktV)FqX3n+pZReU3s0Dtd#W2L2a&R)SH}l2 -z_~;z(Ol71=Ueed1V?EP|YHW3CPJ>JJCQ1J?Ugmomk4n`GAopv9MYR{*Og(q`)wvob -zVdjX47-p-qu3CV!2wWHUNZxdC2*Fx4M=>{FcH7nF;t#ibIJj&$B=zVR -z?@5=sM(N}*C*R<$5|Y!ES2*pj!SV%m#5L1)R6gG71>nVR^#a{@ixiI|a`VI9#0;7~ -z-4N20RlJn_GWkQOPc^nZFFh+2N(qm3)N@_q0`@?KT+S?4<>HUB!Yf^$flJ43mx*p}G0#su} -z5bKcYT><*2>LRcrNQ1DAdzUnXJcI*{JETlH;JcG}BGtOqs|GcxG|p}0cwofw?JLps -z+`?Zi^BaxtoD(tRdzO4^l*n6V)Ye{gU8N=~0$+{rHO;y*tG4@_QbiCI5q8s;#`TnG -z^Pnw$@C$m+HI!%}39=?46TLFOR8M+UGP){={lRYWbu5|Jw9LDZ>XU8!Hb%FRP-Z4+yx=s4JTkxDU-n_jjX-r|o+dHy2=|$x> -zlvqU<>;~W*I_mgvx1Su6OzsOVc&K1Pt53V-+B=!Fm322Xw%4X$I)U?@Hj5%psTD{y -zn%|ea@8?Fd2L9itQ?3v`@Dglqw1!=GG*jw5Eg8ZK`ZiWn++$k^zW3ufly#$Lx<;n} -zgSXH1QF?SY!6XCz0nhW!k{fcrnhh#`2I_8Aa~ah~E87{~Xd*uX3PcT{GWa7qH~U=C -z`)}rkXA2MSH{g;L74q2js+Et6bk#X-zweRCr*B5YpuL~ez?|(r -z+)!IAWdf0V-e35T7$j4_&@3y>-_KjaYl5!hfGJhH>mXq@oOir>;TJEPe3q7?-Ib>z -zNKNEpiA|Pz7Px1Lf1SwMx%C#ItCm9T*69^?fvtyY3Z1I=^a3WLJ+}_kiYx3+H1Sf( -zIOWoMUG}TrMrM7VW!(u5=uQB)V*3rjijNiNiS@QZ4&(2QYk{KWTx;$PS6>b3>JmdLjhjwOj8 -zwC2TJDw5BdXxG;t?ZEk%-cBp=NNme;$mNs}J1&KjjJtch{SMvatZ@WrFy*jAT!B)y -zZ1SyHOm3He45LhVz5zx|Z99=~m1H-2r1zsUpniiS-Rb-RK;t31~`Ua)Tv(TxEeb0!Kr^;-KO)m5z*;PT!I+6fcbuCx^e -znM}1YnSQ$|oeEve9$am$s*)X6G~ZyNbp`;PUv||DPi}qRQvvMuAb@?%X67fA8BD6H -zbp4l|DG8_$8P!ZL3D -ztN10l7FEpNoO57Ji+CC3F#tKPP5i+l|1-G#XTEh*zA&GeK@0?xtVK1@okG0*8m8b8 -zN&E;u|E-&-Iusv0SBGP%L#0a`0IOe3CexJd9c)B(kNrZ3{`u!sv9%h`?r`!N{fCc= -z+Zu8eGR*$9;-Tf>^yDf) -z(0)jXYHB+_BW=8YFeLswknRDf&I{tpQ&3xM*7j0^R1AnJIyZYa|H#J6qrm(8L(s4m -z@r6Pb0K%=!C$F)PT{{*1eCO9pgH#<0jm`s6TZa%Jp}Kw*i@Ss7`~BtqH|3C$mz4PY -zJ3b={G-e;TfT}Ve@agRXby7A)#?cxKv~#oM3YhTZgH)%UH@Bi6ObtryV?8&yT3Dv_ -z6Q7hRW07DdC-zRLeNsi%LDnO(zhHgU4Jg}8{}bDw^Pq>$%^yWxmSQn2m)x+p!|hl! -zuuFZ?mL(wKVc8{F=hbnq7Z8npVM@3rUg{>?o)q=ap-r*N{4?a}Ma)x?7c4KU94~P= -zKHsX}*6g-^XbV5@_cAJw{lj|=AiwQ5h+-Kc?Fj5Jih!=Y4_O3kRlB?<-!F`sJHR}2 -z-h=jDjTy5*B)@v4JKn0lHj&BCqbfXq5oJB{m|H-nKJ&cu2qoCRbjj*N;zS+@n@$eB -zu){5r8mirRKLbj^e(%kc_y4dL-=-TKkSWkCunpv~ZSZs&Y2z)6OEeuQ#bn)a66wI? -z+J-QMh=I}(bDaXnz-e`~VUb1w4`*_F(k`q0TF+R01MR$lkf7mU%1G-;MqT1YUno?_ -z0*dqc75`LV?hUQTamK>CtnrP)G@h`ELAYv6@&Q}&bZN4we{R*<7)vu(@zltGiL_3W -zGp5l-VrSq%z_oZzNk49o9?kTi_em7THtf}=3=T2Hn?Z8~&Q|kLsMG^;r>&LV%8|GxEi5R#5aaQ`^*6rT1&Bm#W7>L#Wyb -z?_uVRZyj%4=YkO@BXQWzZ@%632%t#0RBh!mO=5$ED31hB8NI)$&y{7<0xE=%y}MOw -z&ieCleSEeoHNfNCrZf&DYp1hl2W9H<6|myFZxl_5pT7q8x}?K}Q})I%M{~TanZjNz -ziGa}=pd5mLN3?n;RgcIkW=pz_WJUCTrnL`gfY5Lfr>fn2#lrD*EmlteB*;aKE3Pbc -z5WC7l^c$9L7P2XGhQ>s?IVpIZblXT08jV)@4?R+bT1Wsjl%>d(S@1J!OyTjP%+CRT -z=3D*jg?12_^0fYKFp$>jcuxLU&;8wr-+;|4M)uS`*3`O3;yK;Hdyj`G+Amggn&;bS -z^GU_*e;S%168gxHgEca!h8CUWFy?3yrcle|i>P}0`au;cy -zlgjQ)Dzhd2!&E0AM{m4cdx{s-wPDdEoY5ls -zBvei}<2+*@zuD!{O4hjW3_g+Sgulj+DhN)jza`hB<2NzABy1+|mJ+K{>SLVLwouImYYNs;eQ*A=KwZ+7n>J9=eodL-@Gbzo!;JG=b -zKAcTlpmRbPU#G8zb^0a)Z2%>qR6ot|{hd=zZ=vlZCKa(_#H$_KCc|?vv_fVHf-Qa-HZM{s;M=zx-M9f7{=mGNS?;@OR_3p$Z1g)nu -z7bgKxR38&l@5RL$mh5Xkru?-j7qEvb^BTW2PueKV&U&?RJMeLMeZ9R;Z$(Pbn8`ax -zerxde&YIj>$!b0jt%i!8_IRQcz#YoyxUpnlgoT3vp65C&v1&` -zhQ<)m)vn+1yfg3Zs}c>$EOG1qFe~-l@)Xp%2%gK8`LYcxp}>fHJc6npTUVzshsq -z)*-T)t*|@#{DD%X4*W>=;Xc>rc2F^rJdEqG&B5+qZ6+&j?elV!yS8Vo`@7{?FI^hk -zytCe8C{=D3ti0_M-*8HO>Obga^Agy;=6Y8>P|f61+->w|`m~I*c$ZU5opX$PTa$in -zuzQ(j#Rphqt@2T%xB4jg&XQ$&1Heo?bA4=&K3hXx82`~tn@`THS$&(nO -z@UI)|(BybXT0k27*6KJL{YW~*u1qyTVQyS0$l6B9^C-vsKWy9`X{Al -zI|VTLPlCn0LcZvAP8qML+cLmomHm$V8hHu7g+k#8_2VoJw$z_(JStPvW`exD=d6fM -z+Db`~x^3Q#vl%qoG)GS45LLfHzbRt!K^d<)U_{>UG||o>3^=&}>7h!Xw#!)cna5iP -z5O8e&oB*fpA}$+_gs+xQh`_k1?! -z*Gi)n-Wxk{9a^tZe*GmY#pVLJ!x&MLrk9!!10Al6DBO!t;uDsR5+9QzBkq;quARdu -zNrN#r40CbdMm!&V;^L_#`iOGz!)`jDY1R+QD*lzN9W!=fc=7}+7l02xLbCTj+WY?I -zb=i#f4Zx`Bn8${Um%w=&sOaGA*_0ED@q5OaLy1K4ca9 -zB=)VTe%I3COm9@z!ks%Dmu`%xX^g4qm&`?#9N2Q>E?_Kw7uy5=6-c8)A;gJYFw^L4 -zsPxC4O9E3TLlnjj+$4eWun>j53ZsINUuhjC1PQa4b*z(_`JASY164&rou;OzE1NO8 -zXWEWGu}{ppfKFXDPeySy{Q_Mr3&TMy!_TaJKKKOlt7&Q*uP-Z40KOJf@%|xCRU_1% -znsj{pBcM~11MIO`a$r?&RalwxvQ1q6H<{cIAAV^Yt^MzQ9(JL9J?Hvbx)H!O{UrJm!Ci+p!$t7b{zA9{twO1*df-axeT0H2;rOAs!5Q*B9~Xg5uvbG`CkM -zILlMe{9oKUD=DOZYY}mRIU?qyuV@QuBbb4I;#6r6PSwKWQ2OJ|_^(_D{!^@?#FGP1 -zG>+zB&flaV3HSdK-udL`3)vW^h87#E3QGcMyynml3q?xj3I6X0S5Fkp(W&yut->gP -zO&8RFQW(-U&qCz4n3`F>GLV>UP-~YI^c5TQ7!57HOb6nCfH4_cgXQ@71t_Ls9(pyp -zOW&$jgG)#&M$~1h^3BdOC7(aO5B*w%FrEEiaR71mX{ycve_S%3aeJJ*>L_l!xM*US -zSSjiA$rs9yo}A1#PNB)73~v0cG=Qk448Ni8Xvv0K;bRt)Xn`Ad_h_VZMl?6Sct-1j -zGv`{GhS5s)_=+#@A*_c7UoP&x;Q%W7sYc^^KblBezIL?EO|4)b4P_yY)5={_&w6b0 -zN!L2ytKf`jKUSyw@o-Fg)aeq8unB2nLNMI~StDrwJZ1{w|cXCs~Fqg#bDLFRYa@aWsIFr;|_z&I8N`V7zth6O~FsFtK(w^l==TOMmr`G -zGWrTcUyW_OcLUTT0f|x49Z4RPFBEIsZ>WTH8r7Kdvm&tLQKDaoXOGW2qTEbuKzT(_ -za^%Gh+1GEH+d)}HX4JEavaG{o86X3nA96XcGR-WDqxb*=5jgv-+7i8fJm0N)w|h#@ -zwzaDsGcyvr+l;UDTI&s0+db_j1tR=Nt{bf)j^~-eL5#gjlOP;>_9 -z;cfDd#HkEFmgF35bPd?Ot9*cGvj)FOXgSqXk+af9A$OV5Xlq~so{r+tV=w&mzjwadNz -zOxQ}hk -zx GMy@yDJDXEGP9itrO+Rds-;D<|iAxnbRq-lbyGR2PFV$D%breh{CAvhVjy~?o -ziItOD;!dl^FIQ4_boz8qZ7e2=Zekw4OFF5rTh)S=L4%LHP)E3^&KB!86!DRfc;5uC -zNl=Kxqprz*h+68Z9-Ro-{l91mpk2f{cTu3~uz==@)gs-%jTng3dolGXD{~i=by(L9 -z`Gg@70O%P)xm);SCz1i|bl16n;dxi_SJY0|0-*tMEEBxg^B_klkRjUiUI2IqFIcaJOY9EX3RqmU*1e_Tj%k+3OO5=i -z;g7pcpS{1m&oq}YY$p3u_mG^N+|@Q!6`8%P{+zO&(xTMr>TB)0^#3Bk(@PeCPT|1* -z{Z~lILi+-~~Id-^u%eIHi`FY>H%?V-#R4cHHr?QN#gCr;_Y;0vZ*hBrE5x!+6Hb7^aGK -zh+7BBF1j{Mqn74SfT#~x|EdI1ZH!EmrTY*jw`X6_&7_x>?v#Wuz{>8-G$X~h_V@wi -zL1U6?l7*0AF=y^$P%Q9t)AV3U`X_;)Wx_TI)QaE%#O$&%AQ3P#{|gEWm*gH+fBtW?v$jB4aJ7w~ -zBFpvt|3#xnAq)C=pcf~rKVUP?PE-lu1$NSBXCd9f_?Ij10s`kJYcy!Hu2X|eYHccB -z^Mt&kH)*r8%e;JL6bwiho^bPYxsv_W+Gb~6+p{vr%HZ-OxNRo98mxdAD8ucegp0y5)W83ESCt-fr!KszviaSP+bWquvgczwN+U -zwWI-w29wtq)73UEm-d~k{sa1&fERcv%HR|cj%cu) -z48w&UHZZzq7e3e!o+9Ps_Ti}anYbV89`d4H_IjDk=p1DjNQ+F&crDEUM*maCqOq(t -zZujBLyrcG20=Y-v9AegBw9stMyXzF03)2p@1Ip`zG`;*6mh?f*687ASi?e}CXDx74 -zY#We^c+L8HT~V?!++i7RoNMv?Ha)s)E;=5QlETN$p1-t62Q4YRXOKsNJHLHh8qk3S -z8VJyX`E^J^3p%xHkqSn6{be2{NN^Gt7ng*+%#xK>NNYVl*CG>$Zgzh7Q;Sw9% -zoYiqh);^UD?;PbbiIt_llT{>Xq-udjut1Pys9Nd(9yA*X5HZKcccW%6HcV4gyd=5V -ziTMs@mO9KEcQES%{^z-B7;LfJaN&})$ZZ}T=sf}&i6j_|#J1Fg#}^kDgSPpCTLPMz -z1=P|{Sr6d%zDWRVP>;g7zNldAAUSTa`V71Yf0?-%JR7d#mRC%2WoExVv{N*xi4?u6 -zd-?KZX_1>qkH&k=Z(%TQpcS$4YsKSbmnLNcedUMAah*tO4o=Q%r0n6Z3J=Y2R4YTe -zPWvuxoHM)uT&4Y;nac7F9gKo5x&X?8V&bW3xRED7IRa|hB%pIP!kH%luXRT{3}(|+ -zEVF$25I#-t{K1V3-pbKgmd%MO`jUT8!_M89%%8lf;yBqk7tfZD*acTmX=jcGbXLG% -zHTW8V9mILl#Ipg(xXoNn$Z=S#=${UibGrfkzJ^8rWm=R4!3j$dI}Hf+UlYLiO<9EJ -zdG14F3J7ixqZ^bnr@hPlej1)|EYJ=uK|}8WF{T+^LdaC*Vf4k0u~^7@y1pJFtG -zB$*i{%QsqEm95?-5MOmm#fr&-U77@ENAEAFh3LB%*b6`(Y(L-84Cve$u|{zn=!0*R -zWQ_?LNb!U%Mc^fmRw+;+!VBt%#ZwqtZ?+K<^p}yUJCa4a@nA-I>++%%y0EAuY*1fs -z`ST83JYd3KlCZD>M0^&+K6{TwoaHs$lz_mM&vB`tl~TUn&g|Rueil|ufb?ziMji|- -zZ!lb?AC!L;>@5(L@jCvF4VMh -zmb~I4^#?D8PC$CGJ7e*nz764Stfb?H4B9|Wwt=en3(4FIRX@!5tkh8|I@(@TLB7Wu -z)^+_Mvam9neOc~ly?LDn*rWX7@C7;A(|5N({*w)m>LqmJ$_AQY4E(7E<;h(`Z?^sr -z?EFy{b1N#k=pe8Q{oTUS;xf6fy>i~z!yIgmR$SgYfb#-B(;v30!()^tHs0O_@3$Mr -zfK_C-6$ZGHlo_$grncAl9|bHuf@Yapv^&*u -zR;S2wLgDN%ut;%zd}MU4Qwo%aIazgjuMi#}E+$$hw3HJ-d6|eVVFN%)@sI&Y{`!0G -z=UgQ^J>ZhuyZG@*<`SJSD*?RXxP2j)fbVqI>+~G7pgyawQd^ass6l|snNYIc3Gl_N -z98R;IUe}x~PFoXxyp@oWcbQ;h?_bKdr*cAL+LI|2mG;%wE?12g=WzA~U|s4iSK0M_ -zR0HjUDwnkKh4h}KPnt`7>dFWuyM8Z_GR=xk&#AT_C^qq-*t&;IyBPUI$Vx=JOUR?k -zjL7Ml(-EMqOQ>-VhSZw}RYn2l__D+YKLhgo_5;$ioLa({nFgcz&QDr}oVLWOo%}c! -zg42xxn|Ylf`;1zJ-1`U6ZSqQ_s+}{LVmqx>kx0qbPd+y8Kx5$jrcK_Lf)#e;7|bw{ -zcu=QfXjLS;lX|8=CETbW{Wzn#`jmrFJPK3XTu1tXyx~hJwitk=lsWQ<$r}cQ%FQ?> -zAYToD>L_d>o|l&k`REISS|(^mLss9-UFQ$a*l+4`;zD;J6S_+88k~(0D4m};!sX`Bj* -zaL9b>lfZ&P9Gp9Ul6fjBmP$?D=$!jqtu2>rw79q)vm -zEq5}T`8hoT5LtDD=#+ -zwXJ!xpTTSJ-w#&|t%z*$cfz?~Py?-(*JVe>jwde2+wLC^=L -zy@QIeLRYH&3Xtbx*)~JXX?V)S)od;?d`>j~R90viIM4z$)m(CTxDHh33B3xns$h8e -zqb)k%1PAU2K65-!lQGzPMSp)0H}#BdE1UedeXG$^1HHiv7xI@xdn2{2NJrGEvTE<3 -z5h#JmGE|{*nmBLWj`H5#BpmCtz60 -zqKOZ589{q%tG?43CBD#80R>Rv7FGYsAHXe244M{a#z7dc3e`(K{%cEQOP%A`#IB2!YeH^0esHa -zL*+ZpxMU94M;ZCVY#Ow3c<`3iqu`qmdiZQmlMz7C1!o<#z)QpCjmR|di3o0QwExKa -z>W)P9rM$>d`|!($rao#KS{<$0smC8-bO(rU>UW&sEv^7x=&t1V&Ck1mxc{c?+Q8eB -zRXdppPhm)m=?JU}jKIv;bk(YH&rkN7mRdl)r~whlYQ3@e(8I-7uwiAJ_>y`b%cnr) -zaZ-Cvt-qhF9q<(n2Cp_t$Cf*wrcEhUxGXuW?9ncT7H!{%r!wl=pf=7s&b|+PqhRtg -z_KDbT#;`5}r`<%4WjVvL -zB>H1j5cn}!iL{RDx8DQ9)_}4+K(!YTY25Z8^e{X2wXt>I>7$6c#?$5emzz&FdxSmA -zZEn%g#$)BH>Kl#QIIDs<+dzFU`6|7DZ>^#EoFPV{RXYp)!2(qk -zIIOyhb;x2rp8Toxn}tNSj7)7UfcJ#0Ie~4l(`-k>jQO$>s<^)!d*_P*d9tGqq%>|K -zUg-^OT}9SC;W}~qY^uoVz1{-7stsL9aF?o>etd!&OH_j6bjEOF -zcdqsGhh|Qn?I_#(>vgw!+yrvY6H-hnRVKnHBcg-Z9!`kI#{BZML~8=s`E%c8m7`?k -z80o*6ZuZIWbrWi$0Ue}p_$GU>TvV*vwDf^4qNBCTETVk6tYYD&eL8Q(EJTo9wp3rG -zbn1cPKO?+7W1pO@U0lW0;;{ZqQ<>QiYJI;hRPvzzRurHL4koq&3Yb)QT@5G)K8x88 -z$fC5VBDwLy?t6n(teL}{Cdu^^P|u!2pcBf9DBXn1CW%`#IUde@-iG?O3*V$np5VT9 -zb%fti4dDIqG0SYKb;&Dis^JXu`Pq25i)EY5R@8&1qckjkqxj;J(y^1+L4xk0$}5%A1Lo&tOF=h>e)0kB7$FsX4OF<|6Jth8Zb)B>;Yxaa!eutzt444~ -zRB~lIeD7ym%=_Da>TJDkRdWxmdGYiRUGk~E<~CfsRFlQbC5ieHC9zKKj`H|}^^rJ4 -z@0ZVN?FRWj@cU1?fC~({1bx^R^Q__XbK22S;=z;xK*;SU98?_{v*^hiE*Z7aj^hd# -z8f&sLB~PC}fLU}vIHdh?P=})Afz}}$Xkxz;-&f!NN4>xo-F)Bw_&9K%SPf=ZUvp42 -z7V=*Zq -zWR)cjzON8mw=NmP?rTegzb#p!m#_+PXKmocty>3q%C9W}{;+S`tKpl#=j4e;-x<_Z -zh0&K;@Yalj7Vf|Y1)zKSIOn5qeSLj^S$i$^dmV%82$d|@w;!?x6}Q#e78!JM=;yGK -zh2D4!4hP&*<`!p4P>~v5pE(j$P|7(BddZSIu*rD`(7JePDHG2#UwM&?cZo%IWcl_( -z-B%xVI4{gX?j@BWd;t05L5kS;SpzW3g0Ni@a^(TWC4maXi}OQCSTB067eMx-#NY}f -z+J`zUKyLxyoNgGX8;k21#9<N -za}>brfDr)<^xf5{P@6Myxd|QUHWG;Qp~Hh_<|-+u%r~f_4m91T27sx7OXIR1kW#kL -zr~`_PAJq?DLQbd&-4A7kA@`)S?Xy#cOTgV@BWs)CLb>4)c*#Ol34r^}Gj0P2^r=PB -z_3Soa_Ie=qB8)*%;f14SKk|a%*MW0MMCZr_?B-RD2MHSzY;io07mj#i3S4;TV03f` -z8>kWC)8*M)EP(jlHOr=>ARZ3rTcDE<2TH$)oCdZyAf1z>ns^gVpQeHV1WcMrqO;Wv -zF7vML->^E#7+9+axoC2u_ -zVD}^oERfo4a006iJsUaQb(rZpm^TcIG5haeZXd=%lrLajB&SYr27vlUxx?(ch=dqv -zH{i{4;XF=BPO)tifbd7*5FQUwA|3$zRRs9A7<)5-Bm0QpJl@tE;x^Yvu<6V|km2c? -zt91c4Tbkta0Nmx@wD0MMNKq@$L+M_OA%Nn)@59S3+9fNMZEXW(e!An8$|R$FBGJ?q -zPihPJ)F^V)9Sny|V|-8OfC=!`V5zh%VNAy>E!h(6sK8MGPu{n+tIS5qb?g=}^f48I -zqm~x>$!~V*ixZ~#N+$S#mxs-60y?3s`U~75mx9H1*x|XZMtRDMF}&}|U_3whY*U#sSWqA1+<+bz%j}M3r5B|;G(nr1Mdtl7`RflsfgY!?nxGZvE9#bKEY67 -z(Kf6>>f$h-clh-MBAi{hl_t0c*MVjOwIz!K-+-I}+NHe}otPL5!OZxa#OUZ~f88Ss -z0M9KFWY-JFmTR#|oxK6Ma6HWvoYuclY4dJW_~twe4bN;YXW5)Gqu-Ujd;NTnE=eXGs=S{od+tyuya+)hsIfd;~$tm`W6fU0WI9KPtH?KPf -zrFXyV|7i;cv>e#ff3~f=R|xH>PD7aI_sLyN1I)4SFF+m(#=j9H-a)U){~r!6E>YXt -z0yyx|_w2wfah;n#a($Vmdw1CL(a9YZyZ5_abB^|Z)vB$C*?l9(c}U*)$h+ncL!gW+k5l^k1lT4F7v~Id_`vk6E;5cj -zeMjo?`d6I!?x9W#c(2*Sk&56%;^=rs4)!ZD=#!4kj)@K>2a`xXhc08TOngz{D++&f -zZDamuW`Ij??KowA9zIhR*V19QM0K0#9YqD14Ly`C8d#jci?;3#QBf%ZvBo~v|)#ccQWZWs5Wz5d@Q~zT6@*sQe8b`(yY2q{K -z!x`ry>_R(o%GazzrAt@$dYA~hp;f_{-#=$~|B<@)(Dh_7jIjN$8;FOa&o^j)EUI=8 -z6Mf?-lqjz@5p~_=iHb$NV(>>5SDK!i>Mw}zzpmMZCsk0o19A5=rwpQt;w@Er#?gWMhZ;1Untu -zv)l6fuLE-9e*9|xd-Q+%;s5jTKv83K@OCiqEEM2o=KAVpWEoR~btuP@XjqyLY6(pr -z(=4Hk^cUl!dv<@>H%`ebVGKNM(y@!8J9#I*nSB(gr{JMe=d^b^EhlZ##=vRD(`nl% -z*>NxGww7~DM<*)}GIXv}VqSa3j^yP%M=y-(AtXuqsVE}Yw~tczfNjH0Q~=ITWjpeE -z>7_lW>$}G(HcwRg-^}hQyW|zoW3m_J^F$>vdDhYXiOM7=gFUo)# -z6Wl(WIOCw|7404;At>ttkCAfK>pSH(7CxMVrcX2t1@@>eb>>dmE#*;XSo_HJImRbp -z1!4vZzxwBj(BYHa;`f -zJ($xxV*T>Pu|3?hUeQZ8W(Iv3bnAU*kBQ7XdL~*D+C8*lFqvKu -zAfq}wN8XTGBX8_Fc(s0nm2%sIgOVA<-u`al@oymLq207|;oo@#+FC#D3N9^~B -zfNawG4%ueGa7s1u9548N-SoD}@ZZN6yUCeG$P7v}Jvh;js%(KEd;ev9!Lt@tQm%AzrgmqLAhcfBk2rybJ{Uf -zyQpqLYiOR$PFan}JFS_+PV@GJAv%Wq``T)XR^Kj9`baZ^e!HF5_c}1}{KA0Cy!=km -z)ni;vQLwLT|5*4L^uOCvCDrIAhC&70?oHI`xrTWF-Y2$#e?#842Enia7ENarmBtAa -zF;qvbu>LK~gOD%FN_zLU^r=G|)lXI)q*Hci$U`YGtms{hkV-p}EKO3fDbh-$E!RjBY8tmrwk?Et@gA-h1Mv?cW -zcwL8DI}gYvAQ|}y%#yJG9998O_ -ziMlT>n{tnv@q=A_Nwv5$3TMk2P-t&K!>{6UV@zql_UswV{=8zuIsnG9+#odZSSZer -zb1%oO*lv;io|=ybpAXt=Mjym9!r-!fan=_qF_81Lg1w~89P&Y*_D{@pF&o1Cip|3l -z&TYqQ8~ET^9=Z{biuX+$^cba9h!5;@<#Vxf0c-2 -z`vz@Hi~6De=;6jGm-;e~U~nSg5SFNmT>WkChQ#m{sCRUD=X$%~ZKaO0$EUEYPA{4+djP%-we7y&yJax_7#ut&FCK>}`9GkHC)DZ$jc$7SP4&3hpc -z%kH-(X!f{W&SjA=I5m(QQeD_3&J#qUhO5}SpMDOBQA+;^lB~5aq+Dc}5%GQhyLpZV -zgK~vkDfWsGZM7s>rbhC*$Ir9!-#P}y8k`!E^`gq!>d-%`OSCDNy;|y#VH!L(_K*!2 -zo-~)OnHy}~S*f6KIx7=_7$0z%v@MBaR6!Xgpi_uFQ`Gd4c|3Flk -z!BQs3f`Y6f8lS1wsKxh)*+~_$YSze*_k}XvUAj}P4JEFVjcRwM$zfBVJoAFlOSwu( -z*VQ!faoONk^x9WIDCp>zMT&BiPr}==8MuXTqqLF_FxWEB;98UUl@{lqS`5&p9Mk+U -zsZqIo9>s{b(;Ng<9JR65t<#pD(am9!P@!+Vh%3Hy27TzthgWaju%o-$*fTgP+B3wN -zZH?3wkJq@9#lROKi%}LTSL2yTzgqg;Z1&>~5DQBOl8-csbjVfK{sfq-`_S+mZP5YV -zr(Iroj#a#e=F`&jN&L_MnC;Gi?#p8+v;DE?Ur#@h{}&JcGY{c2*}_SNuX>Q6IfQi= -zC^XBnDN_y?_(b`2!9eUWm$OBAGUnQy^R3(QHKqC=3@0LIvd)fT(!xH~H&D%JO#6Nj -z8^tpSCmz+CB(8mg_~<;a^ZBElsJ|at#KzS2{GweuflSO-un5{Gi@9p^&R^h)^ -z)MOB*9BC2SSJW;g)PqaN;TYum>yGz~h^9~P<(UM{bznpiji;kCS*`ktO_OD -z=28B24CUI&0@tvIT;2WSw*i}r7d8BP5Gr36U_@L4oNCW@8n#?o#w~(IbKWAED7i$1 -zJjz)_Ck33QN>ZN|bl+_56}*?49EZULO|czsEF~YBUe3z+G))*2D~2iX-Ae -zj#pMh#BUTbSs_O>T@%ms3P-;_G?yfEW!g1~_1Xz}qY^OD8Nht?kD$>B}zs&~R~ -zK3aQDdzSl|>Palod_2O{X_@Nr0jp0zJp(uLBr~9Hfg88|2EO=sH|Hy8Dy16_4irF# -zjkvLE+Miz*&V$-jZtPzU^&&nX?Eg*JPp_L?u!yJMEfd9~liU<+irc!8vtj?q{{UH9 -B9U%Y! - -literal 53467 -zcmeFZcT`hb_bwboK~Y3SP(X?W5fG3rAWalh5KuY`mdP%5( -z&;<@Pbc7Ikq}NbG3FU4)$MdS^{l@qG^Nn%Gy+6hf68Fx^T64`g*PPFM=6<80rc6i6 -zLJI~st$mU{5>Li;k9>aUkNZ{T!)z0%|Q -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 -z@*=OH?<0!qju!i^pw~>)eP9uhn)4lX`k{_6` -zdh-@avcaCNzvXp7An{NMwT%U`l4Zc3hnLG`G6}X)Ett~`fFNNtHDcYk0>u!EwPGb7 -zr?p~kJGRFMXwIQEJ^6o7g%s9I29nWnpFez*RW`Lu{tnZo~}JeKJ}y -zEC{ZXG9Ks}iII3U64SlY`$@(q%IGA$aUWB*L!LLj@|BC%&Jv?OHf|`FM#ZP -zJ5OAe+EK<%9s;1iF9uh@R4>*Qu+*DKIKT8U{B3zGHAoNU3j^f>X&}hwG#W}njG;LI -z6=6Vb1?r_CvWx=J%seM}6+~nKnV^7d=F2uGm}*A>8^PuaV+US>vVnvOqz5EfFXWEl -z^O5jYDqz4D7$sorIV7BJiH2z4dK&Hi0vIs27Z}?F$fgeMae{HDYQ*S)m!Mu2VC-!A -z8nG|HAOwZ~ne6{Al6{!!>T+LM+5aS)D8n61;d82U(-&y>>?c-o79v6=S~(txQu=dk -zsxTsYXf;Bi%iUDk)JuVzM -zI>7r2;S1C0YqL)5F>ryT!qp5QV=yV9ys_em`}l$A>6y&ur5d?*gk<{p`Rk98>8_J! -zA{acdxP$?T>xfA|8lt{{(^wZ|c@W*YD_m%Au(E!tt97+mfYEs(4eF&^wKjORRm5(n -zefPJ7$Rm{g2^I+z)foNKbD)--Uk^s}&Q8=sT~> -zMK+4UiBO7d!rI`3S1$WKhnU^1>h&d#MiX?mq7;~=!QOi&o5m#8NP{xCMyvSgg^NoWsSxn0ybQFiqDh@8n`PLv(9Y&NR;i0(OY4C%f&e74H?;aI^@TyYlno>29Q?TBHF{hBedUAPD$6$uuMxMT6$>te{C3jGTi1#?)q?0GJUG}Q -zqa{TuZt`_|x;4Tlm~REwJZ4q>5b~xs8{XQ+y?FM%rwN!5eYD$y{o;EoitOaIK!vVR -zT$^Wx({VGNKW9U$BU@nY6EGT!oc~V&V -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 -z;Vw@tE*(F`BzLR^xu -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 -z>*t$>Eg$$}}cJG+1z?dQ{8jv%O>k(4Yrt=5gt -z51ymYr^ZW_nxx)eV}E5;P;zIpcrk8n#Nd3JfM53-=!;rx)dl|8Jv=bVG2q);7suzk -z*6k5&DiBE8%!(dS>Uipmqajg>K6Qpt@XrpW&Z*377j(~8_trV3xLDCgwZ#WSJdzWc -zOQQemvQ=G{0+n7iF0?7xP{A>gLrwal=?`91oAhsWcjnI=3f)7wSP2-2%cSQ6V?5pS -zvLehM8r}-|4DEI|NDEQMx!!ng%jb60K-@@)Z@#;_u)EqbuW)2m6w&^WzH!YS<&|sq -zfqjQyRYX7QH~^%!aVLfo;?3hT@H9wS``07D7iE|VA(qSvZ9G63J}{%Gpc&-ki{<ns{61 -zJo`0QvyT-`e??xU1gere6&fGOSoV{aOl(m^> -zXt~#lJStCcCm@-jX#|iwr0iC!fZ-BE8Uw|8;e4owAQ7$NncKOUf3JHG3NtgR=Z~dGHt-u(v`g9%9wq=KQ!iKJ}Bg18xDE>+@YXi6<)fbMS!4CO$->)JZ -z>u;YXpa17R=w*jXA94V6nKS6%xP}*Z{NQMEKG*|`D%}Skn>YZ!d-?KLQ)9=krP=vR -zez3}#_%Of4hL~T-pHdV#9-6T5ws$O8x5bxLyAnOX1NMX}e}%a2wWwkhT)peI<7KML -zXm)z;W0~CEh;{k@&Fj3X&*4PZSOk=5PBoe)5I9+7SO2(pJqSN^ZF0P>O!k@t!Yk{x -zThh}@#Qw}P=u0q`BeBsqwaz(PywND_umA)4n_fU`G4a*= -zVnA!nwHnN|n}{$t-N!5cVTgu-Zx#oKoJi~~KZbw7WS9fzzj6#8138Ugk`v(m@$3HHrH&P=8{nQ(6ccmvjw$D1n!53;}9LtX1 -zHJ=0ofQVla+NF$bG#022vHRV8O87E9dS#_)ltkx~56MKIm7&Dh^fZuVxSh$F>mG+%0l1Jt7#MPJ>(0bOF0i8b&B=eb$?wd7&d!a5VFL%yy3iKB -zLV6-+4~pK&1K`Mb9sNfaBY{*ich(n1lHn<~8t{vS%C}nzTgdX4Z^R95Wo^er!THna -z+-_U7r5n5}k!0=GqPgZIILJ)xRxC5|vBFuNz0-YUJNd3AvZ^*0t-0tm`Qn^~o0XFB -z&im^i%6P4~Q~`-AU7fBmaPswJTj}G+7gLCMr>=B+x`PH5r@6iZ@ -ziQf;CtNOYIw-qmjRFZQ(Q{}A8exU4IC9d59I(q7?{b4!t9ZT01TRt~~u4|msSq$CH -zgP^cq{ybvU77aZi$9}9f-P7ChNgUvE4r596MzVTaUKC@y_uL~VxJA>2!F=&DZte6s -z9B4wpp6u2aKB&d3j2o|T|2HW{-(6`rVv -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 -zfzDRcQR(+`PoR$0<5dQ1o-p82E*Z@ -zlIbu!Ht`Us@O!O4$QM>>&$O6y^!5Lnn1CKn$3?A6<#`G+|1h$E^l@b>vIZeqk#VRi -z@P|`)TS5(*0a!Sj$e$ffLt0Mb!Pyy2e_;0UKfH>I^QA#$9NQ(Z$`AkglO6pe=>N*t -zx-aaRe>%80LR3%S2leY6zihBM#Iqhni9F~`Rxa_jiapc6=pFPPXX=jdw`Qvx6 -zKsn{FFb}YLy%eNkS7+xXwzAZgBOIzt?<&)R6G!)Rnam-q5evnx)N@!(aa*>~jBQ1> -zRNQ>>$&rc&Qb^ga?y!Wn)R=@1iFQ*JE;f;Q5o=GYer%On -z=IO85=r1;9>5q;8)vgxpc3QWdOyb7hMcU33Ax6vyq__nREwF= -zkM5VgIzZyc;rJ$|ut=y}qI49%o~&$Fh7Ggo0K~svtP0p{otL;fnow5~d1_3tt4PeiMHlw9_sr11IUJp+t%$2b&vjYh?)>5qqshovRXdVU;vW -zX8H3g-P^!wv#to|im~KYCMBtOEV6|y*G{DIK3bsdU!;wgTZ%f##4*4VTXbY@z9(+n -zm@h$jgepmx(Wyvt1$K{=^;0Vz&VAmufVKuoJJ1Z9{^b5;N3~9BK77x=9$Fd-6SClj -zj=!{>Xh#4PvcQC5qkTqgi6veiHGR$tI;Tzm( -zyxXw7T(WN2;@Y(nRKhFPbzzd1j06Cx2YI>pWHY@|Qb&II!!gvvMl|U`-Zx5+m?u1Y -zmLjsW=G%g$$CJjosp>Y+Bd_<2s;9!2qHO8sBi?)np#nVRCX$uK>_?OH1Ls`uZe-_9 -z36}_$u{rRdKOW|O8|2F<$C`ke>Ps_kJXJLS(%%EL@fRHlFkgbMqf7Ib5SuQID}#BM -zJYBy)HVZ>3gim=;QZAD7X!KX|ehM`fal -zwdKIw4vVUwF&(#DRbs(h`qqzuWS*Jdl$Qv9T&{X -z;(iVmN-sbx;i!a1fhMXE!G;#*mlG3%EuU`kAoJ$Zm0cr;9*J%aa*$AYx8sF3Gu>?} -zNMrS*E{`^%+@;X;Df{`_2SFd;hYtz}6icVHxsjg_^(J$y&bv4MpGQ;XD$hjcyUhX2 -zx33JHpvAh}&lfH`KiDrw5$T~VInI2t79_EhS?9+qMC`AZCG1+O(MpYsuBTO5AVb-i -zy)r}*UDTR&c@^`w%b@TPRjU$n3$vZa4CY=ATAx)f%Yt$HmYiPTsoo)B_dzuBRSP?d -z81V_fC%pIG_8rid5TzPxmE!X0(wL>y_G4Bx7u*uj(qJq{oA%QnKCGna*{1NOBTsn- -zLO&hRJ^)>_oLO#~r=yih+2}mZGu&uvXP`t1-d1hbRJ(0aiw+QJm=$h+a{}K?QB*Mh -zD6vZnejNRVUEj4{U;CXK&~f)lg7hv=v7poI@ar*h0j=zN#ZFO)Q93!f1-)w6^f~kOmWWFFjUbv3 -z-u11-NX?I_fYSovte=BQGhuK+;vGV?w$eSlC(qq)?v$+(o4T0gdM}9#>wGgIyVPKs -zUnKWBOT)b#O5@X<#2<&!{ZSMx;{EN;+0~sOr0~<)ll~R+?bQC_U_N6y&m -znXA;N&cw$v4OJ8xQbRJmre=O)8{J>2UMmNlo;UYCi_%UM0Tu&6MTeT@QPeXa+}VVoXgX>t`p*}rbsjxw9qXG>2rzH -zAd6YIH3ZB_aCwNwNedX|1+0p+tCya`S8kL-w-s-xeJg_7++w@pU`hHQa?04_$KeB% -z-+;sCR!tP_pTp;@ou!7qWYh@RtEc3F_9eh?ym`T|k{!kIQvNWYYv-(=`~dW} -z7aV;5*{jb%)rHh;J0*E=Tdo`oH8FLaW -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 -zT{4vUP)hjsj$3K^=8bXX -zy==Z8HrvX16l+v(OaVL(UG&$O6PJdP<-@TCMT!@5<=PL061*NW_?NeqAy$Sw^?5t* -zVK6$Y4BZZcgJ-%#N#pfi7eIj!cgw4V2NBTSKJ$`^-awZ#7iL7UEv; -z(DBJa^jBxT>=WyM;A -zZ1Rzf`qI>OSbavWOt&_l1G~X*^(m0q%>m!O{H7IK^#y_FP*M1EDe>?xUo-Qz39iqS -zH9wEi|4Bu`W}xMco73Eb2>Lx>KEBr}`qS&sP^OTa+_w+?b5-NySoN(+##p*}EOZE8 -z@ga0=u9ZXm%Ic3&%F(*zZB`2Zk8Kvieu!be&amb(#t=wJLC8`kDB}=Piu!wtBf`a| -zF?aPg-A5h?F{E9x;$_To^$J!LlB(EiI#q^+#gPfeFYO#173AgR)1sU{ub*7^{mqQWY$o2@#`v_yvYj -zePjSubxPr)WnQL%Ss1b?vRN-(n6JfI=<*4QimIDa$wZpAkjV4kCvBq1wtY3By8?1^ -zbJImx7tpmRs(IS*d|$Mf>i&g%3Q8=xHhforka5k^EXr;Cpd~;Y4=@OeRsHe(v6O<# -zGwq(94Ut6Us8d&)XGZcz!-C%H(Wmuxlc#L0Xp_=(+g97)pbIzpuw%t6h8TIj-%s!b -zBt*HqZkbV`PpKH)G@vih$_U-v*MvkSmZ+n<$(ep!l15smgMx!A+jLzh2O784_hcin -zNM}2z)<$Py+B9_9f-&Ji -zGxiEZCW~-)c{F@{G)RHyI$}GWZ>p1P6PJ{n&NkrKNuUtkO!tOc21$`X!|iKLK04cB -z&uK_5q77Sa$FGiJa0&fc9S+`n?@JO?&6&n?_VT?dnohP1)$m#Dqc2ALV2Cs_5fguQ -zDyAJf;yPMrtaaMR$f%;Nh}wbNjNa;S9}JK=Csg2>}6H -z8@J_7H*5P~T$-Z>!Fqz<70>y$-!h9l({5WE8gx!WLnCdNxEM^o9)FhGZLB!GFYoq! -zFK!DmoBJ43Uu_-UNKhI?&?eKZM|Ny5#OTo% -zNJ&v~y^=XX@-Vm=W1NxJAGj%b+!b@`EPbgf{8fOI>&#Or -z66*`$Q`ThR0;}nnnO)?fF;9VzS6ih98?bmz-2r+&CeYYqpun6wO6wdAeYI7Gc{bPL -zO>E@|f#PaQYqq4Rrzw%{E098|Xq|*0yjga#pj|WEPE1!(hoW!4@eoRbdMgfFib>q$ -zjYE7xTH>)aao7fesh+*59s#3eaVx%Sb+!_5KR<1At0>JPcPhURMe6WxUe$$Z9L-c9 -zP7;)|*YbC$=hRBs^*=HVu;TnepoqSYBOfNuz!Mh*fgTcc_H3+2X*DP%{9N^efMM3s -z&bHu_)K5}#kx4c#F`?v`gdZe-p|j^ACy%%StA*L;JLADtEkwJs>{q%Dw_5?AI+_UP=R_$D>_h(o9u5^*VF`MH4S8axl=y2J@9UyjJy04^!M-qzWe_adyF->(^K)kM!HE6@HNvd5iOxv!P)N%cjEQfL3%XPbU9@!~c -z&g!m+DUZ$fK@hAA}1@2c3?!l^(@PQT<$D{Q&Cn(XcD|armR8{&2>=ynh?4psCeN~RH%5OBK7AE^u2aJeZYnjrA+G|2cy#$(N9>JX%6eQ5@3d+V7(Jb=~)nSaj^EpUj>0azAg93i!yPl7l@yCuKt!4TQ-=Dr3sA -zX8F6jRDzd^@@nlZ_g;jB*^wMa93&{=Ms=naJ|XVlBa*GioYQF6rAUn)A^ylfnA{z? -zH%NTgW&>!?Ge>ew#KRIH?NKh?EH1hsD9G7r3(+%ZjU~5vw+^PYQZZI!WwkX2XY_2c -z{0c6)$HYiZjo6C(o@v+j5tal+yK*u?jr&&r=0Ymk@u7s&OFQyWrtMO585nuCK%T=9 -z8y)&#nqt|ICpQZ3JKSF!jiJVTUS%M9Qqwwm5MGdtBda^7zP=p?;{R3k9>->L1B>Bi -zILE}WtS2b3MWNwJcuo{uc1|6D$??r;xj96Qt5eA8>}{s2u92s(x%?j~9(hIW -z1Q%?o;7Q#}JV_@tn>?h+>P;*j?mejN)W@hjRh0y|1K(D^#O_SwN0-0w1x$~yiAjFR -z#(gZ>5*$NYSv-oqEEvWD@fDGn&K5-5FE_Se5zZgYiKk4E39nIm3M^-Hrx)}M^)IKe -z4G>DOc&h)Vh50;;8uoZU4?&6QoA{b7uUo5*=i8j$N>E$+a>kIyj!Bocl!FPRzrP5d -zn{CEg6rx@d&-2r&(=ma?X%@!qeRxWG -zV268ywE!u~OJtwbMhT>?0n6=W6L`QNS2yFNNDYw+&~l_`%TUrlW;DH0a-yV*cDlDF -z(Az8lRhPFT$W=Yu%dBf@a&%YUtDXifjqK`@+6!#D=Hbj|_*u2#I_wMKM#HPJ{tZmq;OEW;aG%Vp!5Z=jom2`Pjv^d@E-wuy``uQFyioJe2ib!A&NHTJR(-RwoU4j9B(= -zSom~XPw@kVtt+`@|h`9ss&?YCZUi2TRB&EbZ`fr%T3Xu -zGga2YeeTxNF0)jw-yfBuGGs;Fdbf&Od2Gy1x56mv77X67X)MpKu*GbV`CgcBq9jOv&VDbhp)fqH~e&Hiv7Zw&0UzaA)ONLMFTmN`z^^PBvP(NWr2Ck~fHzdE1Tb^o`7mr^e8 -zZhK3!FBZx&yQ8sOz3r3QrR5e__Zr3Z3}9GnrFCESY~>Nhlk$hA!b2tZ`cKg;g+@<^4tuWlsj2`v2@+>CDp-*opz%@^LAE#XrCu(0dw&z6a=)nNP -z8&AXsQEqI}PvtlBzkkIeeHra9hAmJfjI;;{^13wx@15VkF5_z4@&@$G1quK{|jQI3O8 -z3@brbmARRr?)PKIV8KVKPKg?1 -z(et@V3DZ&!&Jke#%iDS$sMf0({aq -z$AR(gFh9>-lSR1ct@nL`(4uIcWLB}tn&?n5H8FJlc~Q5;8<&o2T#9ZVe;{Pkac7AB -zWUe-0GJK@PVMeI)sH1zCa{*R*Bh_%P1I?kLhBSm8>f4sF`OfU~N*A)KVLcDDM*Iu* -zz!C=DPh1CYEsxGVyw(p -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 -zUQ1n%uj6#gN*+i%^MB%jqV< -znsm58V$WKp?5WEBeYR_e=tu1e9u2XLV$3Wvw)J1z%wKNXjz`+Wr1ZXs*>`1Zp|LBY -z_?-WyqAOu2Q;%1lTXY?wIs|hp4|15JE`~$~jLR#9jF(-y|3~7S6(2qJ_Ly~~wqxa2 -z>-^0dmgQDlG(n5baMtwYMp{D2kHR0xZm+QGl+p@w|HyoxL(uJH7%1cee>*&zWnhuM -z$7^#DdV}Rnyt!zJ?n~f0 -zHm5k@OpPCm9@l&~9LuJ(gXt7CcW~DDYYe6KcFFkp)W?aQXNMEpC~Zj>Uf|3bp6{fd$D>5hb%r56B@2$7>CrF$#8zwGXx*mgIbYbfbd# -z$t}3ntKB`tV`)vr$_FH)IoFZQ>*_D&sIxb}_59O8iVh$p`-O89xN05a@@CnC~UE`2->1rHXqt2CWOxT=D|EQaG(qxDW@t8 -zb`vqy$XrnzU%Px`;-(ebN`ubu{8;Ol5l*o$!QwDBfCLg!Rtwl%$D^}rz;E>~%SeD- -z+1c02#S9B_qfYYwc|x}SoxT=Rxs}*1eDc?#_Vm2yx^LYzYGd_9+i14e5aIn3)Q5B|OKgyjl&V6f!5nqD^ -z*dU6l{8g;#0(Ug%z3#YNQ;(kw$uLn2xdah>uWaby&2OWFDTR_%tgOt2g4X9!vNn-i -z3}?-1-b^RJ)GjNO>ULsp*yD~~W+o45(CRU(O0oG>JjGhxE-^pu@9kCDN%HkHJLa6c -z)5}aCtacE8DfIl@?-K%Sp50oM_$}7pX5O+?*zjq=v;DUY$#`Qo}>F6MhMvAnInOsorMQbe6Ne51U&>t{MDMtssMyhUr*FJi -z+j!J6^-=ia`p8~efi<;_qp@E0%U!Qx#5OzIYcdbE2V`5>32OzN9r8Z7Sjng}FC$HWrd7PwmHRoVLd3DFxNWpHu!tT?~_6NIeeTD~Bt)}q`;*M^^ -z6sLaItXP6W%#oiju+SOSAZQllJRr+GebhjGd9@?LoGCCVN%5*Q$+q^*x^Q08u`Ty;hI$=Z-8uS>IJ -zkk%JjlVV+w8n%LyvBk_(P2wh$H -zR=TP{9l=c|Cur@jbOb4d#h!1$5~)W(RPpU|5Y73H{7eckNb^?6;lW%h0>Y98G;L+P -zrE@A9_WsbPnh_cKXLpNwF2ZbA0k5$#touKrntvzv{O-QNP+4L)vK4v9izBaMH{M@q -zM6m4TA`hurhS>64$v<)x_m_P7$0_q~aXT5g42PMwP5L~;4&a06(OE&B|k8r -z^UV`p%(yWY+};%8k_0qKYP!3SPozrD_u-cMT0|c_Z%bH0R9b1>VcNu{K_WlfsWF)* -zb_~CT$tN%v`KB_B5VuxS1_lN4d`1@vn(mqb`a|5AFLxe#F2SEOYCgJZF;tU`LxU?Y -zlB9!ZYI`5*5S!H0mgQd_7#$7fl5}`WfWtsd_Xyy`MNcOtb -z%l8~`%E|M0nCNE^1Fs-=&atr8gTMa#Fp)bW3uH=8=k9L&%Aq3PH+3h*Zuw~JpM7!(HRh9U96n9WN+j#I*;wSr32 -z7!xPSsfbIC4g-etKRCB+EBq=WAf|Z~{mY4J^PZ-f_^g+6jQJ0|&esW$b~#xb`DO|7 -z^PHxPnDhKaqf`FBILZJOgU){kv&VO}G>AX38CE=eEgEtz|L+vh*OJyVkO|t-*@EPg -zf9B7EYXkuInYU$3og$&$KMXA!w}l74JAX-!n12Lx)!(A%EMVqfrfA<jB1=7N}`XG&`tsP?6f|M4WDlqK+fFA3?BT}jGvM(jv}7So+?Nu1n~IbAtt -zt{XqwW;pt2xjV{LYFj`n>1b!E28+RLWk!6{`(Ie0Bx)GzciiCLIN>DSWhE_)@*FRI -zqMp5pr@8sBy3QN%YU&B*UEv%1_RZ7MOYiDi*h`CWWr1@u2V%$3#e3$OCuFp?&*sEP -zjB-DTV9hVFN|wvBIB`wq45rJhBxC>nv`NmnfbCm)-x;`8xvn#V7KPQ}kM -zYnS#1C*HpDQ&H&WR%6drc6MB**oNt%lSi*z(f9{WsOIuvBR$6((L?Scht^`vQ{9AW -zE&Y3)sXa#qk1srwcboaWl6w^*0i{clYVV)FF7g_T)MU91zR$zD)?J7H*6Ptnc_;)JYFu7 -zY?Yid1nqjOibQ$IcDz~IE-!GT5JmCIYkC>(fxUsC?pz6yMxfl)Y~=BGvt3h`pAz9? -z=nNw^zYld9_M0*xUEuZ_TFEAF{Lu|cc+JO3Wxa>*9zxOPq5^E0b5#)(#+-j9&*{Y) -z20T{(0Mtr_1YP9o2-fG~Kl8^a9-nq{Jl>_;N{e4oI|NzCfUVfb7>pai4w?n;F?Nad -z7)!77KKQ)O0wUV1Q^&r{su7J0FXk+_9sH$cyz1B`NpM812TzojimjX+Yc^yw3eMD} -zDmF`;zacKL-Tx-^LzRIlSIUq(Ml^3+CdNu4q}HR?;>E15{Fj$IElpy?G>?lNS@(4% -zWOS_Ry-Cg~Xv^mLXYwB=MpCfhE|d^Uz~r~8^K_Dx%*oO -zr$&WSvE^6P=_p%DJl7O);shs)0kKml6CABy`jSh-*)_raAnwqJwXA)I7`M*0*Bq>* -z-gj|bq4H^v49jF)*gO){dHkc#k;2g84Kq8M5g -z`gL`R{Yldn^>qCBQK(!L)A}v3$F++OY=PL!pLA;5^9o@VztN8JL(eFt7-sIPExOkJ?MM)1RYD+eeS -zgiGqse=+vEH3QYMy^+7(^q&{jiD7iI;Iy|fUXh- -zv%WjSpSMBNoi?It>;}v*?hs3p+WB@M+;QVB>}t$iy=#}E -z&-=h*8WnBIkrIYle^?S}4r#+3j$IT6(9o6TKFc^}06H3vf<#L)zRH!780EWJ*~WOo?FpIur=q2~doCG(8M -z%7T2uUkVT+Iz^h6aGea)697q$MU#;LEU}z%k?A8yO@CC4KQIC08@Y@iIg$foZWAkO -zpcF}JPo2lv>|um#Q&jkx5lsXB4H`E+h9TE0M!Y(M7Ash6t#wy#COD4j!XY@)N4j>B -zm*9X>U`!wsTV+(D?8_`1eJP#5voz)%e?S6+;!9sumfphY)eU1kX2Y8gY7Kh1dF#w+6$cTKdcy6n!97}l^|5Fq9Oz*pm`{?l!u+Ux% -zcszjM>{@L*WYj#aXAcW3eHMV@b;Qj&0s}TFNxT7s7H)AIPWT$ZYo`U7J}*r#&pZu% -zy?ii8EUyn&Y_XPJ09VZE8OxjnxxfFV>HT(_O1?4zhD->36%Z-u2vi!YpRW6SPdZ_@ -zu2XU5X?Ge4SJ(n=m$21v!8UC|kSxU|O7zmJBqcgQ_?8vf4u#JjEy{0+PZ@212OzQ1 -zl0tPwyp -z2JQ(yL#rXskn20HoGx5Rhx1iKSq#Lm_>jK+~?hB9h_ -za&k|>kTr-4YJfG8nLx>0M-!k=2pD4WBCW9ls?kRYl$j54WP#aS{*IAcjP%mDzmmcf -zo4f^?iS3lW)*pF=S(rR72VY;`Kq-yvFG0*0cwXo_$ha59v>5a9 -zdC4HC`WE%_2QFP(^+TopIE%x!npJ)Po{uQplJk6qG&LiY+kLLvDlCr9fgxv3nF}k_ -z@>`LG@7ZEUUAvAEOz(Yd$oLJU@bm`!XfcLb@9%B^XHsfTb{OphBoOIJ7c51h?Y5Tk -zc!O~TD;PzE(`?M<+C2v{T=w>&NK%bw+3s`@G<2QI;B-DU5ok?%v_QC3OmLkn*2S~1 -zT7+}Tytc$q;h8axa(<`iYZ47)LsZWT7Eud;!!`l0YLb>bAu~hmqPxS`)R(LEvm&=& -zJYOmTtX&GUi2+6@% -zoQoBHn}rEn-I|zEq&0({RXi(|Scb7Jy*d5$iOMeW6xlv-ebr?E*b-aR*_ZtM{o&-L9yJNwZU4aU~vuQ;MHAzAQ6 -zQy0wLBcU+cQed1W4(4~!EZ|=8BqAO_@SsZxUBr!ch<5N;QI_stT>GDSZz~mfho1bA -z&qA_*#93G3Aq3v+X^dX7Gf$0IW8b@a)o0VW&$~z8y-0^APri@fl%v+-pTn$i~Po!#wp@CWUYX$$EvU%urodB -za^AS7Cur3z@J(8_BKVoLL!ZiCHfLRcw@8@HL8g$6?vbQcqix%QHhEGu0tu&dgb -zK-pvI5LUQReX0Gj@URs{&!jfmFKGDd!wl$6M#*d}SCEX$8TE{+rUJb$>QS@HRIOaSi^jqSI{&nm_Jb3GKlZ6*+|v(xolm+wMghfJQ%fpu0GAA -z)kq~MX!vb_iSF*2vy~1~PV6-8O26cE&BJ`;k{%PqQ?!&wg66#-B_7KJirdo~4SF*v -zZED&+jNc#WF=Us^hn0rIh>pXVQCu$O=?)3&=v^R1M-uiVX~Ye-DmPB2Oik7iJ1Wti -z0TwHg7*3*iT%g`oZaiVaJ1iifMD=f2dVw=*OZK!xx;3`WUHUpT -zhDtk*wQ3&rkguTXx6kg!v+=(LDy6W+l!QOC(Xn_+cGmon7d2+y{q2nGB+Vp;jT!q! -z`Ix)(@^=&1l!@b)PN0ujKu0R4hMD3|z7=WY -zsAzADrZ+ol!kll{%ajoSny_2+iFL(QKE=SDjCAX`pWQgL`rgPz -zvMC4u;SO0sBX5T@iD=weWFCK-WtT)XtFfPod}S~9(*n9trn%_FIwpP?btC5ni@hR^ -z*kq=N(EsXWLpj-W=8Y1x--Gsi3k%TDue_n>qv?q3hbry*^xWHbmXZzGgze#`&a65O -zBM!0`c2dh9k!GW5OY>CD$kKjKzRqK}xh;#QUwBr(W=59N!2}0A@`hxsF7te3y0nwT -zGW|(0fyd9re)fcGlai3 -z5^qprZ1op!4|~+ex~8#(d5BBBgm(|!HoD3qyf1+JA)L5!A~Z1Dd~|x%WxBg`zl!=R -zXhP=Cybx2PN^d?2V=8M{n9O3&KAd@-XH%z7q!H}wjcNG^UU@bF_RFMa%EtyhEH!3} -z^+fAfMBLIE&CgwFW>IpA+2^%H>*Q?0j*S&hmRTvW71)Py>h7Y(Y(L!ZW*5fVUa=6f -z{<@v>P-YIwgozi6a|lywKg%*$mcHClExTSBX|4vBCA*%$Ch`4m(6(?`MSZ!QS|fB^ -zTW+V8*~l_1ng_k$aH-bF01Td%-9FZaG;0G)Tdd#|hg+Au)>WQOOU>!G!~cCZw$HQM -zBfhm_t7Enp$JWiehhXfkBHh&*SxCmx`?P`$sq5_*^jqEU3`2jm;VBsA?z3+~ujj;* -zPe<;`j@GB{WgNnpBXzlwRxW#?&s$BZmzne&b^ZKUVZ+s%T8I4Buv{$8Y;8Pbn&6CyQa}AN&kw&#Ks(H4_jqMpicCGed -zQvH|mn35ZZZhLZnygSKO!7X#s>RLi8(>|&GROqMX<)!5i7RPd6A=~v9bZL{Q9(j38 -z>RyBCNIK=VH}o9bdQ}s=lPggiZuR{y66*0T)HmJWL)V0eVP*rYBt!7!e^A%d;*swJ@H$(oqM%l^!W>aQWJp;E)y-nUej5Ypg)YjO>&qX{l=E(35=F_y0 -zOoo6LS_9@oBT8RoU{=W{G&g8^c%A1V`K%Z2{lBJ&s7>1O{Pk0c_F#m36^w0I-pG_kedMf;*+?k<%!eHI^k5$0`|4>0;@C_^Y -zzwxTdX-h~QBuh%X_<}$2p(nxMYbQ6QfoRG8^nQVJ)kKmaN@_3o*6L~F_GM9NgbKJ=N$lO9QWK^ggN6O~H>1%X -zgZ&xbPPvrT>@7*RAHSl`DuhH#@BSvyg0Y~+Y6yYx-&?FBVM_15fd+t!+5YtNq7fsP0!&V>F}J -zlc|c{#(Axz;YU#{9 -zlc?>*cBb)`1Gv=vGI@9r4CGRlEy{%|Gws1n&9+%x_uXh?-4O}uu?=tY49DU)f-km_ -za?KQ9b6dMzS;!o&yz%%6JA0vAANf#hxsq!Dw%URnm4qYLndd)LLwAOPfbn>t9AVT~ -zm(O%Q-ofG_QAe*X9{uSSqz>#T<%&tam@%!l;p -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 -zO8rDNOu@&eV+B-cTE@BM -zG?A5Y((V);4zQOHDFEsKlO_t(=fl0NeLV-}10+~ZF+#T(k-^q`fY61t>}a}E3{*d& -z8sS)GkM1m)uW+nO%gH~$0Ty+XUYn%NIr1YP9$k#^A%<7p40nb?wY3cp5Mv_HI7B^d3SOy6QC+o{2_fqFG9Oc*CEDI{PA6NHR1&tH+;x6dO_UP(X2ud0`xk6TxmoIsnr$S7dfY{3J#Xas0 -zEB=a)_+ZX|{<=&Z6ZFxq!i|x#2(j^!`ol(AxNLoJdmlLY}KRy8Nss+^zYUrsJLKIL6dH^T8Ff1p)i -znnL3lO0u2f)<bQrD5XSIjfwZ4wnIB&s$RadQL+bq04JRAbB{O0E -z$pS?_l9RAjifUE!jn#P<3&j^c8Z2JF^!Ak`%VuZ;O#J;w#LAGE&}x49lV2v9;6%$v -zo2W^1I^t$%=rO5+wD^^Vl!?CQVBt8w^dh;MUQx5*F2@4s?AycC<|Ay9+6^Jfvt^Ty -z1S3oiuyjLP*c@hAlAO(|pjuBVGuXd&3}INfu-u-5>p5A*UW^Xpb~|8KD;^Y@icPVg -z2BM$^Dc7_%jh)mX6@)0p3?*|E-Zj9e#Cf9zTt38S>gI-K0y+LPR0>~6T@q)lnRd@r -zabmlyYd_ZpOjv1l$M>hqZx?z%wE7p{;a7&5C=ZRt%`BE_jcOYb -zS-`nANx>RKA&n=b9}zdJClAHU7@fykX*Dl0r>I#y7GkU1+4~1{o1?M;i@tD|Fnz^| -zy}AY8l|zu{lR91caa=Z%h1pNsupS?JE$e$H%%x_sMeNV@D_4mw?&Y%%UV*lsFr1~2 -zQRbCGm4agSf?}?qUQ{pyJV6O4E)kl7ZCsqJ4NOR*-{hlXrT!x3_JUHlc5<_IUlVP)}x|26}NLjWW-Nchg`##{Y -zxQ@J#cKNoMwMSk8jYwj#$5ehgdNfjBan)>QBe&&2!S$ -zV?qjxVk>gBrPr;_^&Q(-Qo=Iz^-OP{Nh@WvOXyC48f1A|M4e&OjmBgP8}Nv{RXCG& -z=P${}iAscn9qaCsx?Kb`-alvVDr#h2an)k5uoO=^Z8LSauqvdbCR5z=whLJ8-5`^} -z(aq;pHOykKyd~?%sOVaIf?DHVNZ;D8@!K=V!`0&FLB3?JiMJ2VilG(u7RF=>Dj#>h -zi6IvJz?oCDWpY&3A9BhBoi+D1C|!x)$~U6mDuVJ%Z=7OKvdm++My0sb{7=2+W(&|l -zkIJ6IRqvvPt)qP10$J!9$RZ~B>!RYx2OEYAOPdks7CSoZxrAB5DR-Y@$ka6r)&LE_ -z4VBF2Oe=XnQjY)+Z0J$A+s^a@ZJqXd<(hHB+XN0d(C%`cMvavw;0jQG2VE(+u|mCt -z9jVC@urq2p63TJ|(#YzXl^3`lL+((gSCARp>89GqQ179R<%=slu7T6BU9EUdI;h_| -z6f$W`W)1yKjnh>H&r0Tgopg* -zZEcjLXc6RcWlu%)E&k!?lpq`yh$ -zC7M-&Uh|6@JRwVOEGdIKHiEg8HQNP(0W+eo=;WF;#Ig{CNrzS@jnCN1xI1RX&To_< -z)rpM)%`RM4l?9&Uj7^k@KyuEPOPcNCMgLUg*BS}op|t$Z!j6=F1gpH^DBGv$ZH)c} -z$*q@?&guE=g&r{h#S-e5l3Q!6FO)5A3$mfyoGSjR^w4xDC`OKtouMzpIdleGKF^*R -zNb3S7*PRo#xi4{JX$SeabLLEF-@{8wDi3e`l{wnQF=_8w)f@6@meI&3Z)7_SU;%f& -z<-E!npOg!`8r@O8#b0w=;wqEodJ}rN)3CEzeEXt)kF&ZmJSuXDLfic<^L=^Zxi4Dz -zTlV`ACxH9jI-avs&<&7?`)<8N&BZvnH^p4;2XuW+ibr$82W3Y!-hUd&E|AIVf;Mp{+85;Fag+n -zW@FMmW?#teh8DfPCYNs`Ir(J=kF+zSg;wqJ?J8v_`Q?Z)9kgr)G%; -z;_*b>C_-qW%W7A#i3$qKp5ED0SXDc-zKwHexZ%O1a38BZVNeGlo1hx(HhPBgz1;#C -zg8$F!z1DS~QR&^I(=9vOTS|MRThK8pB^KNF?gu-5$E|`~NH?@(d}4g&8EWe7g{|CR -zu8AJ&j>-V0rFZS)_{eL@lXvoihQlgg*FU_{v99L}tKYg!P#Wg^*dC+Lx&B%uX)0oJ -zc_=%;rLQ^D7e)?-WXwC%$A1|64HK`Hx{38ytt1}P6$?rWk;ALH?bLXF!5vVssDM4A -zM%D2q5ty@#oRLC1h3FfOJ3!$AG1OZq$a}gzFjHUQ5B_kvZ_2B@s~Nm1bk%{++;h%7 -z&-#7!4(viYpqfQCE^!%_ke$vMI3eBuTaveGYr02 -z5xCENpMpYZ#@bo`mEil;R}P+xP*B)pwD7yk<>=Ni1qCaT3u@o-Sl`jS(F`N6#K%%> -z(C1?}4`01$e&ptBlUjpi`YLVvl?}!>zp%M{Zt%ipRL|a<(aSHFxwI9l#K**TJ6^4E -zi!StSHoI=QM)P8@!78`M%T{h!nRa+6|L0@h@m>gDoI>!Vu!@nmLVBkUx#$afGLlt# -zem+N0;f$jST)}%I3ZiggC9wSJcl*Q&XTJNFh&*v<#FS@c_&z04QDXrlsbX5}Ol)`% -z#KwNO#^3Ib5ckO?lP#aVyJ6B+BSLvXNJT4vQ)HB<`oH@HDiNRrwT9|gJ3Hq=Gx9=x -z(Kdln%2X!L))q;$i7Ajj&7&|_r*bA)F65jdUD=CxTvQenOR=|+@>Zs0@`v|}@Bd_m -ziJAS?5ovzqgm@R~Cchq`0yhdu_5F4mDf1y;*8$~;lar*85wEf?(s|Mv@?&S)P}|Jb -z=#XXeYTUU2^*ayfV=>-u+(|`ifn#S~#LbO&jH}h| -z7_O;T^Hl#PCY*^A1>3IpZB7RK{ZG@ -zqSbmTAgu%zh9=2^Dpu2&eg*MtA62+dO1^3;Nxjh&zKpfnAym!%Hv=>j!LYAWD}t67Jqx`Rt!*> -zKY7l2;{zXAXlg#oR{3B>3x3=*g*|A~put0-XNrp{4)6rFq_7I6g`1v7FngRpF>}^TUXMv)T#by!svb*oa{>oVbvAn8%m#c -zW(Z+1uDn&LoJl6@reK}%^l>pQDqcX@g5kWHdz2Hx#CoFp_)~zzQ#xDQw?X5#Ea38M -zo_^$k9ws)#J(!T+L% -zTC(H~?8h=cU7upC>I>A;m^yxc)V)Pb3@{@P{^c($^k*2@0qBTW0Bs3G&NWD^tCCi# -z!r@>9`Xx^Ail^$3GgI6s>}+4aF#;VH7i}M8q+>Lv+NJ;}L@DDfn*X&S` -z-G&&0^}urX6up!K;=OAB!T;J9mLJE>;tB-8WBtkcp#_1ytf33As~=V1D*bt)gh1`; -z?JXFE)u5rqrpQ>hCdIc*Z|^rGrL#30UC}{BhN;pI*ZJ2p{A4|y_W-M=WrYS9gF|1- -z>BsaAf|k8Mb}6IC;fLFx(b2ID+C87Myc8~__&Vj!w}`S+8K?W#BQYcB99uaPQciw0 -z#lMX3`T;`9+%VZcJH|B6F^7*^HJWBK)PSb7K+{2eYH_imWh%-Xi89}Uf<(BACk}{r -z?H5~A{JTWSn$%*hfY!nlBn7edP~%5_vaf2J4;C_xL`06{SES!xQcOvc3M*;>HUQc+ -zAW|U03yMsDCJ4~93ZN*eQZIwAe*MVz$?wyd6P=-PCQY!cbY@F8*TkzLN%?rC-xm|_ -z@|I>fPY2eKv@udL$q6Idcbi&u2G;J!GxKa>sGQ*7070-CerF|Ag#A!MqhDf_bxS@@ -z%P8#E_Vo}(w=i=KLy^y=$-Xj2=bLWvhm!f{&$)=J-;3N7WraX8`qA$C!c*j899rvPk{M;ZM*J>^7>}wKMALZQ<&Bx~2 -zVF=PdJE6w>xVm?p>4vX6RjIQo)HH!E6-PcgiYiyzmVKXQkamOJD22|RiEXvOl;L%A -zba+n4S4lM(N}@dEBTw|kg=i8c_}oMKT%mY`xsi&KHrFAe^`+{+ymU{44 -z3vS;aR|#LWC#ltU**Oe(7m+Fky9k6{zAiFRS)^4&8hBI@=(=oN0Qx}YbdJsG2q9qRfg&s}}Wd2A8-{_4mi;Ys`Z!B*_){TI_$YTR#Zr&@O`^npRS=4 -zJOS4($>V=g1_SRNUsLA79&z$#u7F5WjkDCMJR)>p`;tROS6DaYo*8wBKFaexfxXU1 -z^(|i4_&8!NMB3QpcxgcW9aoEvtwT3OH&jRd@>a(2Qv-@MNtt(_01dewD*^-bsl!E| -zX0~FcLCp;@8@muJMbGpTBqc@ge3ObUeqop_$LVQ+?nu$&K3t5*n|%LJoNv;_5W*<+FIM4l<=>CF!gp{ejn3obH+I4Sr=g4)_^DV{mpWR0<2f=4lsWo7} -z#%N@%P -z?iKG%OV-0|({w1)*}Dcr9*4jDKfG}rZ}}>=D#cIR$>B0BWQOzxmZMG4Fq(|3{eBEH@-FRH$)NI65(x9QDz^Ml2GJdzg#&M7y$b+|vD -zIe)-l;IVjIQxY*?xx%0{xQh%SsTGE5LpRB%i%4HgN6zZvSrA5UX^{Xws?&t0Li(PM -zH~+9S549k0xs~FNZNxFj`{u;(UB+8JD;4!s^cm~kGT8s#a+3vWlWU)^`TMrf;-j7>oN(<7oW=UmSNmM_o6;LlS8Xsd>EkFcg6~6L?i67@=GaRPo6q2;XeT*YhD-h& -z$``*;`sESggbwvR`9Ag8q?k9asZ++dY%TQj5xNamSkF`R?YJ9xTQ{|T7?T*j5 -zkQ3tG^EaLqRiDWMaEFTQy<%q(1KOI*L7!(RVioPs}&lvSKw;uxi~ -zHADX1s>OM}A*QFZeda(W|I<34_>tc%XR`C-JQ#`Dee+agkl(Qp@{Pmhe{h1-*8g&X -zzej`ig(XSKh}P%?j<%BDWOipcU_};&m+9_Zz_qb@NYcx7tos+>S684QsLJZ -z5$DR|fK=ahMMh0FaoJWdjki+RQzbT-MenGOArTV|T(aIAVw1RFe*9F65?eA4dKuGP -zH0^K$0<5*rzZb7w7gQ@x_uHaZ&W&&rpH1=Is}G-qe7ga1l9YLyzfuKWW2Q>ojWWLq -z($~BECx)11Cd{>;mnIoTkR=Zgw3@M_<<(8lyV$v*c%cisc-3uZJG9 -zx2+(jrCZ+qW@u5lU#bfNp(a4Qf3}~_n!9U_mK5HCF>i00%*o+{3_xvU>!S1*62JR> -zH#W~6QJ0yLJpZ6b-ox?W_78vdjTi_ftT}A^?CG1~)`*0pc!yRM;^!`!f8UinS>dYy -z!DK+X&+ -zEQz88(vWo8ptZZ}f~Bs4NgbM#wTiWicSB$Co%}vq5 -zkC^?kVHa$iR2qLI%TjVPNi47=UCvR5&!6s}!q=^!g4kK7e{3&mEX{w__cuz>RCZFI-SrpswR2IDXj!)G&D5N7QyXuMG#x*b -zZY!VrO3eD2=)DvWl2mp@kBf@?A#}J~!msJVb6uO3$@+;{dzk&p~R4~_beCEcp~E}d=1k~xHy`H4T$$BV-vn^OO83~i6N-9?tx)i -z&mGD}5a+FTde@p@D75?!u#$Cz7~+M~qFE@_$Fgf9bqryLp)*vdxB!7(flr-%>pSVO -zk$}Y`@zPH$nYNygQ-I@jl}i%0CLoKyiMsnBs}knQYO -z7G~NFtMk(KI_#@<;fJb+T6qkH%G;CVyJGr|>s&~K`$y(pJj&$k;iS>pL>xS9L$cYf -zIrAGrZ;x1G=}1OiWhJ3qlZ{K1cZ%91Wm_M;sm83*+nBf=rikle<_dx6&0;!MtrkB)_D?&=-ji|HUa3&uK7x#w^HAPBrgq8a)c3P -z7dTc0o@)XSuJJeC=J%h*G9v)HI!yUTL} -zH11RfoZ`#VN?BTo>_pDCG7tX|CE9afLA{{JP7NG8>NbDl1reVG!YCl+B(7NMdfekxJzUOkJU;(+$3qC6ChUbUYS-xs2*^-tGm!1Q`vBJ@Q -zHZB0!ftJVwKP;NN%u75cxqIdtIt{Q?B-khqIic&G71cL3PPwh@pjl{bA05=oeN-L+9Y2?LPvUuj -znj{_wu=CHlQ$$Ihw(m9j8aEwvbELwNQIeVj1V;v-=@*3WYGmrJi-FN?4)PJTn+4i? -z1H;qROmoZY33<}39rUvfPW(46BN;7-?yVq|QVf}JF|AoY&l|fGG#zD{k{@x}&$fE} -z4O4i2+hU-A4C8b%j^%L>_AEM)YQ4uW=)lnPwH!<4GjAi3x@UA?S_DySgAW+(sG|EM -z=(>`4Y-X0E&R~u?FXs);99|60=C$c;i{YLRQ3T8EtMWEtMNI}u>Uo6vi<@KME~h-7 -zbG^`<*3fVnkfRk4BN%0Vtrxt3cb}$*#R_kAmimdGa;jm~tT6U`6;E~K>>q|A%at_i -z&rR(=11+)zX3mG9s$Dcg`-YQ$Y*@T`oGUgM~cyaul? -zja{33==p$aI#M}uLj5|`mMDV-c5nK9UgYq)4VqJ%%ch%D?2A`B+fLs&(}mN7A2~_i -z_C55?q%u8l|L2vDAx>kW;U{=qy~|%_qha%iG$B@3=EUfx*?WH7s+qo}w8iH4`J5qM -z|MWBWPdvV~gp|64C-v5Q{0GVWjf)TVigTGt<~c~Lv<)n!$$M_S`lFII@BHY$m9)Rt -zui892ky)pcF!3JB1|J>2ue5*>fAX_! -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 -z&yQG!Nb?ORW=TKZl>oFxvS>tN@yB-Xi_76 -zDbhk)Aruh^(mRnFLd!SNwfEWY_v`$5&wH+OogZ9eW{xDIkLNDWjC!R1fbKHuWhyEv -zI&Cd=BPyzMNGhuHEx%m?-f6n~{tNK$oR`sq`&1PJw^o3Q3r?zfs#H`}@mG$YTm-IZ -zo@-fnQBmFCJ^MSSZN&3~iYhQcTV2(}&vxS^7Iw>`ZJK(MqJCcWd<^fEFc$OeKN&f7 -z6Ye>^dr<1?auKvSS-_XE;PpQ8`+1)5`p-*kN=1ayLle>pUToDdMEOq=PSVC_wPm14f23rVq778; -z+i$3IR4?m8p;T1w$~jr7sGvfTK*PRWMy>pQszMomUpByW{~2nKd71sHUi>?QEXuJ8 -z`HH`i+HWP-gK{{LoBzP={`MXk7x((A5qD(a(LIpTKTup>ME{4ryl)q^*jtsNa#T`$ -z_*s^oOHLIuMGbV-;eC+ZK4g)_D;NMNiYU2wr(0E`ZSN%y}k++DY_3%%|7I~VJ1 -zb$k#fl6_`4dhxy87Omo>G%ZE`Iuwth8Kc2DghCJLfSPh52f*(l3vEGcs{9KXuH+D-TT0(Sz4I8?HPD_RbDY^ -z=(ucBY}L7Rk`)m}b{j8gZ1Lf&Y+ljt>3;M`fT6@AY?{wD9A9B5&N5mq7|~U|2UqQE -z-!tu%Je623Fe9Y0R33+>NUYiMvcg)1s|nj9gPN#V@G7X=?h=T -z)`9~F2FopR773Bnj{&!2V>t-ezLqAB49g?A--801Be5kX$9~#6x%x44g|i>CN&?|R -zVxb#*f$l|czwEy|PcOt0v{NZ4!KmmciHy=c -zEbNMrV%p7|zJ@3MiO68{O`07k*7ftmC;J5K0pf#`B_DIw{K&VY$^Fx&J6;(B -z7qoHfftJa*c{snPcHL(|!v^^^hjfGfI}IW#TE1j`-nx_Ii4}F}oTO?#iCgsJJ7~!hI)~(|8AeG4Zlje~()E@3B~N7LzPj)D?pl_;%FxMS-l| -z23BPg@aIqEs4EQ8rIm0WUWr?@A*mUyZ+9e-tf=w7jE38{E54J=9C*x^kSIfeNyBp1 -zpi&X>Y(PMy2N#onzIAfP`U*j)@+jJWHt(57YWW*oAh)4@t~l -zs3%MOkUd>^`oO@m4@v_Dy_&Nm$5hF0xh14xm)eiQp}!V>tq!Q8BkS!w$Xt}mh9Cc- -zN#l@y3J2UjK`{ANSLL%!?9<_=+7G~51n&xwZZk*oUJb8e>;=Y~NP^$)a^>(Ej^?4&ot_slP%|iI~=w&?p5K+Ik@v!{Si6^F*}*KIdTjT<=-s -zq(1o0*U3W!C?gKGz^sqZ^T5{7Q6W4ufPdj9>k3Xkic7 -zA0|NM(WZ!opkYs(`gNCTBM=X3WjK`fDQ%6U!g{=Yg0?ZL%I4H$cEdY_cj?o~OrgJ3 -zYc9Pzml?);_GaPqyyq(9tKr0WlU7fF=GVtp^+>Ov@Ykb}d`qwV)2Fhi=WZ;3IS#Hz -z*r0{>Qlt5{j$Bsj_4xeP%97S;6Zqd+&VhJYCl(9}I$xk=1}tS&nkI7?;1f~}S(p&| -z+>><7(HrlMFTi&ka2yuUevqhaHXv?iqer>V -zGO58dNG!9K*sSr^4B6AbuY1y;T-}dR0~N6V8=kj12xscHcq3DTTx`@r8r@b7k{5yD -z)YpuHGDWXvS~=ONg0{BD8WD)tCg|*jxl;fHzw61DJNSHUy*Bh`%L*GM^!VTdNh_uf -z+{p5kwZ-aG=LRUsiN2?zYouzG_J@=@6U~Q5YOLcRE+jPAC7{LN*jB9EeBj2uEdK8! -z#*!P!s`Mer#>cBkW(@i}ui*YxU1z0^l_*kO41M2LNC?N^8PN))qWCS$B++M9QzG)&8jf~@RZl0dEii=7sSiip*~ -zF!-D&fmHn;vn{5_@43oxU&j*`|GNu8@#~r2u_~ljWeBK=M6R=(mtn|~PDssa;YpqQ)5=Gk2Jo -zOpb{;4SRm5;HERmjS=n5K$E5USzB6c-`G9>Yb$k}vS_|78wJnOaGvqxv%R&*1S+Bi -z#=ce)gqAP^7ZfbDpZ4T-XS{zPL9!YU5wpTA7mwm5Ti8tTV*-KT6pxXtl13vl=V++6 -zcW=iBMR*YNo^HC^x=&$E&2t$^qC8Q8r5YnG#9c_N%Ql`3%sAdRPe$PkySh4$xmhHF -zD)njR_uH?Jcl$3-qZi7`40=ZHNiUslh8RgT+y1>kQlt2eH-4yNIeZK9+onw2^)N#w -zySpkJ-JO}=GhMIaW|H3CZ>)LR^odz=>9%0JaJdW6vV=oWTgnF{4Lji1q0`BwOn@65XE(8$iW@H -zmHxlC*2u!G^_HAeW*B|`Q$IfMU4N^b@LaOYUM;s0+dn@D%2`$o8onYpabBOHNt8+C -zaF=E!?ms?nLJ;fjespRVee2NK%&feLHQAQt@0z4Qo7o@7?%k3%rGaOWLuQ7E7oD23 -zHT5H8?|$&Ql21+6|-;a;g~)Q -z@uwielPj6k@ist^{a|rvsYL}zjxBpAJ#r#o;$vnqtdq_H#&r_$ -zt|NaT&)o$|-0H4BD?I;yykyKehEb@wM#*869g4r>C`kVfGLM__gL(~4zB$P@z?5epDZR8n%o^yK|Z1qAg+`|;R -zc4ftWKuG1f2xcQNlfdi}gztKV>Z3#*SEEqknQC3k4SSDu}CPBjbL -z?(UBx-oCf)cT@1Q;Ts)ky>dFC0je8a>5CVtmS1btyA1A}HywGQoYe3nz494L}vX-OAYD&Pcjz%b5sS>2<(O`d!f -zq6lpP2=-%{Q~%ERR>cL>t3`F=@zkgvui2Wp<_>jMb^t)nQF3FTc5;}SOeQYeC#b^x -zIK6yB!z{C(<)N?F)|K{_2AY&7O?O>iFPNvXwoU$>NDAG`7gmZfNcr5pfu32gdvG#S -za{2BJJr4(y%Pv8D!`HLgl&M#B;15OL;BQ%!x@eCu>Oq1e1OpaFYlT}CevFAXWbgj? -zgetZu#IB~Wqy2-yCKEDMK`%%UkM(Lh_wUt;LAfHnJkc}trtQ&#rmn(wn(`_J9{4~Q -zH!?dlj0N;MCgviveKc;DC0kZ3@VDE(@l(~C&J5{yL#dNxZR?dr-ew(enQunps}qwn -zgprvHd?Ov9=&vDdoTVIb$NppTj-LaKm|0$BiJp{MHglYi;gAse`lWY`ROBpC=8fqy -z1Sh}fGyc4_1mfP?Dw{Zz{JdpYKE4l~`s~BN>eos0EJUJ^u`^D#eCbsmEg5nd%m)!i -zMpzE`3T;1Cx1r@?b-k(=>Zo2L6~rz37@tPvAj2K{*ETmN%Fwrb2?bW(hV&z*o{z*GFk$W^4U+_nW?e<51 -zqW3b&w2~**RQF!&iw1_SIANS>Lw2xyqa_PRvnSp>kh%RK?alLJd&eI*!7XI#vOoY#wM0HjN^2GIN|DJs?cEdqPu2o*Z=OWneBVTk* -zOf|orY|A>a3i_~|Qw$en{*(5}fug3VIeNC!yfYkTH%vsTECrP4D^iTh%Rb&0oeXd- -zjtOht!64Wxxp2j!T0E4=%PZzLLUxO?oAh=yUTVJ+WE%_}edI!BLX{ZqFYmm)*0NwM -zVX0;PP`x+%_eXyiy2^N2cc4mIA8&j8(Mvk^r=PUYE`!w^{n1)1QAZo=VKexB61UVD -zJv}rh!=!$G6IIo67}eRE^)4!`kuYLxlEG(CtIi+R(c(7=0Gm}z=wyf&qbYq!s_sWc -zQ;}?QQ0J1oe8j4b!cBfF@l1{6VjdS$3Hbn_Plv;myF$5p8%Q^cpcWn`Us_C&;OeS; -zy4hyqGEb+gI_Ol|Y@s@7kcU;wDbu0yI611`$%Q>i=g4EA<7L|G1V(1M#AaHIa$d2{ -zH#YvA;l -z5Q)FDRg1^$nl$IAB^x!H=i${oTXE7H($hmRPiqE7aDy?;{>ooL^bE$Z%&)u+gZ8gX -z-0~ixAP*z?njtP}yIU@{Y2Gn&peC`h-Y#cHrQ|^-p8?uf?3GO0M5$2dpB5mTHe`7t -zNhc0k)>}Fs%Vyi4foc3~#g}OQdBS04qxgr*x8bOFw^1cr@#y)OBZw6r%J$wx@*>uz -zp|Xi2>W*DKY)vVo1LJTS_cS+6t1OnD^_5>VUUf_U?E8dy$}$5u31_9vYGa}nlzqqV -z<~{>Nxo~s@~>7^ -zk|W)8Br%AR<&Xyvpe-C(&ko+Vz7 -zin7w{v3h1GR77xlsFnpl^VUdg2yD6EQD1T`0}C9a!OFc>4_XU*vyBehrI<3c^;s-S#|DuYWfo -zs9lLNvr<%<3;V8~_H8$i31cw4TOTuF20oY(Y3NkXv&uV_F9}K_y|k=zhzNCd!e|fA -zX>%~84&FZI87eQsY{kAAuTs{dZ9nmPOMNi1DuL -z#D0IJAbfR!?QTo)>qI%x=Ji$PE6IaS-i(NPotc6AKgg-F0hJsbT_z(NSox#-4?>0( -zw;V>Iqc%~_pIWuFCTa%=;-I$F)$FC(oC03|!^L}o<2!e^atx-d{tV}2h3bH8qj}-n -zmf07krxFsWje!`Ej;v|tyv8iP78uGG%w-%;DJPYeMs*!dn5N|ox?S6~8uSNyMp-fW -zlRo8LzQ>P2LDQfnjA9O}Sq;T)1_c-($UG6940bB`_-IPf4aP-Kp4rd-=nEEIsiY|u -znryJ!UJNL!NNT@w4&jy7LPTpoT5gyz<-Wrq?7kw0vabc-M0l8b#2)`B$242U)G4bP -z`^&i9sZ1q)DxQpik3kgPenD-u(tf{f|4BSqaA|P*tIj~6@?xJxo7WrPKAWwyDep3A -zZlu|Ibhh1`nDMgxLelAej-~qvog~q^*Ig)Wk2W_Gy?~#V-f7*qA(D4$W0TJ^FauWw -z{gnmvZe8y^<2a@t%S-NdQ(l1eD{CCE#I*U-g!gL|XmxiL8s!1!J4^gq6*>f^m14E~ -z< -zMcbLqZP|$T0YbLCcD|Xw=7U#wQjiumRxW)Y>y%{^ba|mncC(NH{&3UrwR>it3=h4li0kQ;k -zK;P*&!(#an0B;C@OQ2ZEGP^s$F35XjO0!kxzYM*7zfENjGRgf#G$cLJS(YoD6REs3 -zxPSWg>e{i&DUtHVT9!mSqcoV3(t^(@3kek!;>jD`6R}^=Rux3`;*942*o)f$x$!%I -znyFFeo?pOGeSHOh;Qzh-f4^Ij+IDiei8X0BQXsGhVW&pZ|-~zns-lk_v$1FVByg(E)|e -zc&mSV$vqu>RL;-xYy9QA+rFLJ&7XwqsU#XFZ8cFcCYwQ3Xed-ZQu$>F -z+28I4A0;L$T=Db|uMoQpgS|=**_DRn9VT2YyEtihM7 -zl?Be9KQEYUgr%Lx6gzAWPje8HEL&L@?Qw&(YGh1E(ejtn`q%|7{OSrVW0ZiN_NP)> -z>ii#m6N>tk)VN*st8^e>f8o@NTHHa#(5_-XaAKI_`sTbP5ZvQ}8@l75KB>q;{!r*U -z!>fAK&N?7@guOtTL0`Lk`cMt*WYn}&h*cfW1RM;&eia51L5gaxyst=^c!c9b=KO|w -zrKt+KeE~NNP`FXRQF;v+KtO|f)eKkUWfH7Zb_@@)-U-h2YvxlpY-5OrtnGzPirJ=> -zj+wlTcUatOO<|B+NFq0j^@{OB=FJ{0ezR$y1Ztb9gkx4`$?>!+Iu;9ohMUxFdWrz| -z(f~)6?$m5~7GEQZbZfP~&7)9Hp -zp`t9SjPW28s@EWYkz!U~J<*p?xVYviyqqH06(&mR43UO5iR}~0yZgcn8&*UxDzQro-besssondycI6Jr%{s1G>}j -zH-aE$Niy4lKHh<>O4u?=C~X4|c`LiKUHP?80M^YH;*ihzhNIA7Yw8t1bLf)i>idoZ -zQ&uF1JnapbR_UwZYxl0v#*rz`x -zR@qGJ84bYGwnBj5u|?J!{}x-+AbUf!7vg`Y%s#EF@RL=E{W65_mE`%r_4tX-&|h2126OCNd2(sR -zDg6k-!>`HJK?KK3R!=2fY?}_S3i8Qf%5(xL5bOIfPK>>tT*m&jY9K4T%&{k0BKOGQ -zW>K@i+|tQ{cod&tNU)JvTYkjK`fD(0sR+U?C){8#pppc^>(=L*=n58Vi79HsqEq`Y -z@9nvi%AR*UGAlTClt`#nIoWNMO$F3_|&5<;F)0)lzZG{#&2#=-4|$-Ek# -zJkbJZ!|5vDZc`XM11p;e -zZH|GW-b(sQW$QKD&AxraYng@;9zAq;^t2gD5Xpeeb=~KA=X#|Yai9d0?Q8uY!oi!g -zKpMdq=6#W9M1C}XF6Zv{ud&qgxoG2?HD5!O{Ry_P-_F{CG$~W}^5ZEWYYW)+1*De` -zx#M^WF)od<%zTw&7A9O1yn6`~j=9U}i&LBA#TcfIG3v~fEylVojr? -zSum?qsyOChxw=RgD<;u<+dW&O*BF?d(i2wvmYrWj>R$}XIAx7cAIc!)8NTiSw-;&# -z3EPY`tpnx#@G8ZBb)tGKrX)=74X?-BcaljKGHy%*NyW@6jepgi2bX(#4mu%W$Z`Ua_t+Brlsb!&C#f(+2 -zd~THQ*O5J>i;Ak0E?oi}fMz@k*^MH|D8aOQ>Tb+>D3Tc$QBY}o3Zrw`BfbbQXt1qK -zT`Sj(Wrsz%C2snRyd}%uy0YrqmL!@^%8pC=o*)ya^TIBWHsbpH{;_IfmUtAw-o?^i -zEI~SjwW}N;{sZoTZs#AVd-3$P3HNj^eeqMBCGnyIlsEb=4VnWSh3B^IN3db>+aqLK -zmMQV61IPDzD-b}L%`#tum0ngcbuL}77#6!re`D5HPNF=%<;{=F7HQMv!7|-PUwTtw -zoG9LEwW9KA3xJsZW4og7^~BRhZgYLg(BM{jl$=Ruw5_`cwhzWK9%!9tDAoL~K21h{ -zr1dW%=JnCohXFx^L1y*MKy2p`@yiudS|{N!_kvDLWeuj4Gp}Sx()~YLz@{;$@@Fi^ -zR|CbIlthkDmGkd{+YTL?4&NTy&!YDyAp!(rNcg5E!rNLKt+Ud^Cb4}_k3_I($mjTG -zo0ZaFC%+q``2b_inEQk#&FQ#^Z9CRoZ<$%nH7HcGXW4XDy5%jV6|SJ?Kh3aH_&&Ju -zuuP{`)Lw$UnH;=0`$2~2AZNqHHZA822U>;0iKIfuhds91i(~lXXo9vL?J$8d1_^); -zFDes)OrbfUt9eKL6rN!)-0^4ZvLCLcD}49BMQP7>rP*GSlC%2wyWgbc1zas4ud6m1 -zfV!#=8A311q`$a%LQXG=5*mE=;zsp!hEA&(s!dJGQff*P0&1Qk~L?50nkZT!0Efe&1;vMdcGzmnGmA}xCt_BbG_!ute4xS8RczRdKgAgma -z9+1NHJh5k(rD%I1X_5o`LRUpdjdV=R8<}E`cu;*9IDF7jE2)+zvC|6ACJ`R?ZV;cU -zb{OuQ0OGXqQOC*0azMTPxex1u-1=ssNZG~NzM0iqTVGG(OIK9B+z7VE4lC#w_yYLx -z(8?-qO3#Y5r5O0E@$XJmnx>scJZy -zoq_5p03&&unwm7L9P)nQ)4!iDo*x3jvVb5)Wnvq};vwmHW${6sta^P%zOoqsd} -z!ByBY)9MPxW>4Dzo`SfFLJb02Qw!jO<+-M}&`U9hiyIDM8tTF=okOj-U)5s(7E4qZ -zwDIhV0U$aH7+L^ybp}sm0n@W8ND089JoKoQ;Qtv#3y+M*A4S-j7M}#AiBTKDeI3|G -z0Xpbcn+v0>F?`%hmmD5HzSlWM*M21UVB2NB3?p)h-JLBQ!~f3?SwWp4Rhz0mSP|SA -zZ2Opts8>9Zh19Abn``RHfbB&RxNy#ZVvnkiJ&iQoZ2(+Y(c7QP2U&~_fweTZax%pi -zIm|B9r_?NbzQwNX9Bj79e6kIO#bUo4*RPw<&avOtT`553AQ$@%t0)tj^?ge0h|I?I -zI>1ZT%)=YKbZdbD23b@!-)#H^86P7}+3YE;wkXACjECn0o!7%c{ -zSE$4}Vy)IU{iXr$H)VT`hO3c|%lskAwzjwPI~jljnn!GNYOm;a#ZD2^+{ai4v8Kt6 -z2QJesi1PVE-k~A417|D8=9&2Ueeyk!noHB0iP$ -z;M>W%go9k-1N@b1sbq5ot`2w-U^6 -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 -zC*EsbuM-mo0 -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 -zyv#mt(-fm -z?(LTlQeo)$2%uG&;_nsF?mXRfhO63LATUArwx(j0&m_dEUgg}tGE^eX{IG46cP1l -z7fb-hf}icUmoLPloCWuH&cDLc9UxaCrR2Dtv%_Jm&tZVB_ewi_y`TAH#wB+n(5N?a -zQtYfNLHzI#O?+vc66@rpg)w`nQ6-|RHoKEfQd^uxOQaD?vnbPAHlau=Zbr=IYsX`D -z=8@o7!jx97Oo@cytOt6qe^=4>#&%p$D6P^&|3-ZiMj|7i^+rWZPpQG8r&Rm{#OlU} -zGuBHgZta0s5xSUe$>UJgHW~Lkz!7T~)SPWOSZuBT8S+qH#RhY+-SruO>MI5o(<)7+ -zVZnPtBvb?Wu~BxhO9UlY)lB6USxh5nGBsnm3-vKY?xsuhqI$o~^6wJQfqVgr#Mt;x -zy=G0Tm*;w(dwX8rT&{RKz778d-vD6%L>Z -zD>~b8ZXc;zyB#W&py!BTXu<#2-g!nfy|nFq7u{|*DhdJ$0xC_2p-5Cf0Skz9=^a$0 -z6M72>Y*D~~v|xgSCP7+g3IbBIm0n|nfDs7NJAqIWAe;exo^#go?W}dyI`4Yd`;9C@ -zn9P6Xo|${D>vzBDn^FIu*jvGyY-E!5v4UAxLU*tmZ#OiD9agtwB5rDoT=_h(K6QWV -zNNjrn5qU{s`7jKstM(Uu^fUBz<-XFJo6I%mo>I!ZGm%uo3iz35%3c*Od^=`+EgX_q -zdJ0N=H(zU!z$0XfM>e`d9l1iuv!+uI1(%vx5pXbt43pKKmzG`gxE~Ubu -zw4($+E?B@_UkTkQq7E%k5Jj(r&yFkD4`**%oB5_In@-t9m{Um>h(F2D`C=e-9n64S2#MtNjPcb -z@tspPKqhj7yLoI$vsO_br7(!jee#yg-;k~0gP;)yA-5vfqedcy-?xytwHVR)s2Le+ -z%QYq+Z<;hO|2?}KO0p!G7S2&e9fjLm82}5wqV2&BmV?S}!YEJWlZg=h-m$zv>$~YE -z5jbS7#fOc)vnA3krJJ_WyZH8e<6bT|504yO;qvPrX}5c}kjp*dQV~Ue-;v0+MO@~% -z=tB1EM56un2Q_mJQv(3{VSte}6Y&Ej`g~VDoy@?vR%M6-!mlv>=U;DjriLQ_Mi=TS&jX9i+tC -z=k9QH&TDMlGL15x2BRdx?gHUU*f6c6H&56I*WR||D#S&*rlwX}UN7FUV&HX6?yZ4X -z^#VBvX8k)_A9ud6Qs)8gX*otkNbfpoLZ#*J%>!vK$>xUw6-kCyvLMY*qHQm2Namua -zUxAd@Ey|CSm#y0a0PZn6I3{O#MjIlvRiJ>K@3_9rPO@=_Hti!a#76{svI#%;x-7* -zinnVEAg9w>bq=H$>a7!Fm=O`-o<}%<{RnFrpvL@+Ov7tB@H_GwF`76 -z=D*w)m#}@ObJJL`vBOMx#;&bSzauBz(GazP2iOC~#^l_()}^L7#$||*@?*YXzdVh4 -zM^}l-*aZVAWc&8i+r&?HzSsM!Upb~Ze)0dURHp4Jt4ngE{&~`rJrzFe+IO+CPJ{mG -zLKO`jJBA&TixS0`2)O1n6GcO*ZEAlgIM_{#?Pyh0v0YY44Ei)JTpZ!5VynkcZ99FH -z{JYzdMajTqvsY>NOQJNhds`I{>V~i>$wO8`E_PbhA_8&)sjsbF -zlU)3Jf -zhM4t{9X#%9u_~+mysH??Yo|fKc#7Mp0)@OPx>g%pn -zKh^#E;3E;RGfQVTt;(r9+DE;wN?|u8B!Z)%Q_qmcVz-HRRAj6!8}<4;wXjVRaN{km -z^~PMo8Z)mL8d`Qa;utcI+z-xhUEzzX4n)b_T#M7o0h{2`{H|X?NF={}#FUCvJIbr-*@4v-#{~2G+3TiL6`@Z^Jj`6m-TOk~IY!n|kw$^in -z^o*of{zZfyi3k?kg7O^V^ylH7 -zy^(mqg!bw$P9u8ww_94hGL*n^7o;fO#M##iPda^8%FcI$lNwPGY@DJ+j1mobr6k&s -zBl(sTdkNmzXw?6@`eEnHEk0k*_lwlW=L>8V}kTi80c^%)QjY;iP?MiqI9&cSH!;E*fc&nO;A5rsKD2UEd=uOG)tLKi!kY -zTScq?>6k&k$%tlbS!YK${t?0L6?oZ6=DpA%DrU^ko2H^6iDTqq_E3Pyag -z=XlYd(hgEu-=AH#R*pInl0U1_=Yfi#SRt(qVcJ*AT`BgCK74Op``J(SHLCf3SFH@j -z`}?g@Jgkh3p65rYE8BjSQlIrVsP*J6e93Vr$1`ou`V;~sb*S1fnz{NqgBqTy>>ysW -zBpOL+n}Zx{c9MMNr?J=Xg>{F|7={iR!=sb$4-X7!s9TSy1e%NeK=0fX-=u@ -zT7-ek!FxQ{lY{7<+3dEFgVdy7eGUpJ -z1%!g@T&ZUEkS-J0WtA+{;(`y5M!5^+YZ!%kx9+~Li();#OExmYg&B)|yQ)0xW#B~! -zpai9Cd}$CtB$#;4{C+WTz|=jC4<~3EInYpZ3qHyTn<3`r`O@nLa+08yxmqGAjQQr| -zXx1iYoS^!$##irxK>0$|#1FHp7`26Kb;V5{HP4{w014rK9Wm@%oiyE+TS=I>a@SZP -zFpw$N)6(|Y-#KV*L4mKL*c^ggU+m#+@fa;QM)uOKz>UV97?BCIcRi`oJUh -z*_K*pkd`~~{-%ggUvE@FZAvU5CtgnN%M{#CInR(kE+jZ1)!pw}qtqk33cvU2RpNe< -zag|5rNYQqQC~w+0E4m^99~vf*Sgq5sbwK;;H};JJCHGIkb2}{CjNsG%L|5a3d}(*y -zpTHfxhQm%cPg(f?@fkx5(beELt;{$eD5-@e=Rp6W)VtY -zD5yW!!S)Xu;tf3WOTCQ-Zu6f3i9tQ(#$xZKKFx_ruG4W!Cs5C+#_VJxn~E3Cb;%et -zprzDnHqy>mSh_F8i`Io04HriV2o!MNm+|~~JhywDh-9&P?%7*2Ys{&BF>Yh!rZ5Hg -zK<=6(W|SIdgq}&VLg@Lr7A)Z7o;1psYr+E4C%(8ci6`e$YxH)BoKxu*fi*AMqrW#K -z80igoEkD>koF~T;%g}K&)DZljYoa$q@0fr>JPJy*s@O()CPd8%1f708!U};@* -zjp3X^<<@=`wM(~D57lh-@YUmAX|oca;}P<&qp6qAv;Q??H!zg+rFs`GGB*=K8dmwX -zUjI9JsZ_X9O@2xVF00ouSy#B(y&IuFG_hi>pcsF2h|4teYMZm5S#wGSHYe7}YOS=| -zHPqnK+UFkU7QZ62AI%_1IF?j;TUS`B4gPJK)s||}*AcHM0B^q>*y*pn8r=lUtUK-) -zkv`e#KZ!G@nY(#dY9)1fy^1lm;PX6Z`LMbAV<$;3J)J+Px3 -zz~q6PMMqob(b$Be5qsMOsvxa{2JJ6i&3D|Up0d^z>8D--d5)(2WMW#+9CTwX5VBqb -zlrGPFME5d^d#pn60`Ls~-@I5MtCmSK9GK<>K?6=;FI@1w9fx3lv2~Bq)P7#2?dLAkh5w8yjfMfN|CouncR -zfz`hosBwu&aO(QyKfOlNeVUo~mVhcO`||Jc>^P?rp%oh@Z-{gnk6>H4_ip+|iIbfC -z(62$qwWBZW`iF||!Blo$Dr+^uQd7T8ukg>`gh6i!1`ug1h`a)rbKA>S%rduq~9s9C;6s-v0^ol%WSmFu=k%0Zd1%KXFb#UU?p9 -z!gfxm^Z*Z%Dww5Apb-W7%V?l3TLs$CvHwCJoI3kh9z%CfM&E8&0*1vOjn|f%QmNn; -zXzQ}ryAa|8zv)g2PTtz_6+d#M^+x=%Z$kiFC;QCv;)ep(vS?FO(Q%P~{Uy7DyQ*6x -z*Gw80MK-1PP+EsIv02&g5(pvG;}=qM-uYHPB=8+A|JTt -znznrF9+rAqpXUHAu4l}C&oQ2apZEVr&()824|#4qFA* -zLb-b6f?w_FP&DtfjV2;e2Th;bJJg@jvQf8(3LO)vY7!&{ZZ&c?a6zl)yu?x6X5x}( -z-gG=;ycf;-$m-OE{@Mo~;{LiMr+3NGw&(0#L@==UA-rO$wpri(ZJ>v -zRBwJNNaGf@7F?<(y4Fn_cl%t(t0~=-w*n{^Y3YF5qSiD`c|?KM!c-l*`$SXgtBdEc -zu}}6#PA)V%@@Dvs$ADa|y)$w$k@w29?iLE`=gUUFI~lPv(xlo0Ewv?oTaFyImeV*| -zPhkcLb!= -zXA&9Q#)#mLHkC;OtfJI9cydtTR4!(RjJc?MxNoOF*cPEIR{HMvi>rKEEzSe@mwS4l -zz5yu`UFj9NYHiiX_fkw@M$+want|P_jI_9HbWQ2hR}1_$KuV-5qaI4v6@Z-Vc9r?D -zv7)R^xznfV;nLEuS$C;4kAePZbr`byAOl4Lb}E-@SCB>kUBXAK-^lUyz7m|O_8adh -zw2Ahaj`ANf`1zy?r}f8~;;goGxi-$r^=TeKN+l1YTk`Aw(k9xDQDO{}$QOX{?O_&s -z2q7=(T%d;qzpejQtX+3|*Hn!WIEihoH{ekkgCWbfKL0VK4dX~^1}3Ifqp(zbV^Q$$e%T%b`J(E@2j}2zNURPI_HdKsT -z!rJxJXPcNeSL;8e*P}w@EQk27P~hvMubfq%*`Yf0_Ru6n(WbB-x({HNKxQ?9SU}Wf -ztv`n|ml5P1$D3T)Wj*#`4_!(qyhD4``>g^W_L!qy4d73N%7Fgzf;ly&$?SC1B{X+T -z50k%D>vPxz%jB0$jsh*ED{k4#k^T9_ZT)tu6FII6%pOQ6NU1i~$jqeswUlPZ))=9A -zK6=ML5hTl;+O9BHkiKppBP@i?i=@0}x~H%uJ2J>uc6U&&2RiCE+{CB#>=#vDZ%jP= -zK$QSj<7+jyu7Vrgy&w$gI)r~Ls}j3cpfZ-W9g!I9@{JJXI$d#F)ynFRo;t$AeisOq -zxM$k3q%3y+af<{^Y@~VW3X7Z`GxD@Fvk53oIi0iT;nD(W;eieF?Z8*~ua_#FaF2?y -zX?;?tM=WpT9S-Qz;;&CFvMG&2(eAA;9;6y8W+7w**QI4^AqEhj!o7}h9g3_fj4iMA -zzLAX=nX)-s*jH^wx$z^Mkt9e*jzC*uJyZLTIq@c*DrhTK-7@|qkej_)oOX%kWZZ+Q -zk&6nna85app}R0=#v(z6SWp|#FWBOUh4t+yMm4$*LAK{Mv) -zqm_*xB-JlAeD;Z%GOC6wAwp}}i1?;KUQ%9k*nKm4qst3a=WOE0_5gY+VnQ|FPt$H{ -z?aiQ8-TdkIvDn9c0Pqafy6477(Jc>IojH}n0lM7ai{^K`op%SLmZ%m1-uJdR1@*$s -z3&@YG`%Gc@PaqBpC*C3}sBqv>i0%qs$0GR>n^8(a{m_+-V&s70VJET+zbdW$l*+eK -zYX_Iv-9vN6HJmqIjjyD3R^**&yR%x`i3=YOK6hWMIAXwfYS1d#Y1H8M&ykLHq(e6Q -zkfNaiSH@1E5YjfA#TUj_21;$2lH_lXVCmYZIV`A7Fk9)1 -z=H*QzL2kKhug}^j6?m`JBy!2cvE`MXP9}mf^pZztCeCzrKt;EozK-y9ZWBt; -zLEhQrR_4S*Q}WPj!1Fe!*~@hMex*c1KOp>_HiNA}ZtZ8-(ur!GTsLn~<;?Lqo6Q)n -zTfW6ySjeM?2zML}LG~NNmdheH&2)OL`b?cBpWi9(bqnmk2Im+EX&2f^WNg?m7>=VD -zqMcEuIdu_<$qdPjovuq9h8ijIxt2TXS2nJCjttJIipf|{&izu(Ss8HXkKFMLzLtDY -zm1u85`P_m<`-gD~Z#2dUE{0qtJyZ89sjE0^F+yvTY^^~1A9o?;J)`wb7xZbYo)Iq@ -z@Yb2Y1l%#G`J(v-xh9)aSUlL^?w?E*ml45_7i1V@bNc&9AO5h0(^D7VX?D1XOn(w_ -z>@Uwz+aV^yEPgY)TV18+++K_$IC4~;EbeN@jMTrchkjQ+V9fZ2(~}v-sIU42z7~m> -zG=RiBpPU{GJ2K4NKHsZPHu`L -zL!^hBG%c)j+cxkRXN8hWT>zip+{_FuxYK1J5}84sSzwgJjP?H99Vnc`Zk8=X_$&C4 -z$^HTKSsx8p5Ln{3-PV4eYp^v7K3aE^RLb -z&%@WITsT@Z&rP{6z1M~*v>g*RLxx%>Cfxs;oneAkF=M^r}nx3V(Cd5WBALL;S*b;d5=obA+|WZE#dj@`Ru-x -zsBgrBejzag?04mH0%XIW1B-}XEDag)=DJ+Wsz|QnrwzsIvZ7e9`20`B3F8eL0lU-g -z>5P_WR^4lYb9|4!OM#=IKKmrPv67=B;S4vlh80UiyJz`cf(E_syxDDeM8VopD>Q2A -z3(L3 -z{6!X>DOm1Kt0Fuy-4{W5VYb@ryV!jJn?^zXwDHj7z|hNFqn2uo7`y&0r_o%#gwC?% -z>K6o0m$qj=o9K=6Y~|U3zJpUX1LoKLdoB2Bw9@@jAzMyIFB&v$rT6C$B!^fnExmqH -zp@V3$KWn4ImBo5|doDMZP$QMS7ECEitv5P@sd2%@K_lV%;)mwWymTQWeg=cs=!oNV -zqyHX9l7AnfZjt5}wrL=b0rswYF=zUB8URC_xWzpCJVyou13AVpi~WlOBaw1YeEZsN -z@xPCGpoquH%E~2a>F+yizcBs>efj?t`58uF77$QFLqmovk}^~6Ke7XLgpG~=Z58`l -zWOqJeM>fl}^j|>CzXSJKm-_;uyncM<<=^jt;u((d%9~G>rT=fVMFGpWe-SZt4hyno -z2OO>|etL{Q@Q{kP#%D2V#&zaZ`hFpq)Y<8=Go)4S=aVmw -zN9_rN~bNG3)bgcsjOn^kGc)UyeSJJ77 -z4XynGAU}JpVJRKZ>i~dc;|47E8Rq%qN_}BBv3+OMw<@qpcbOV?F;wnK+^(m#sDN&M -zVVlm<061xCZNtvI1Z#{l>?AKW-{?U1W5blHaJiTXfn#$7wa#^S{;*!=m0E>97{t|++H0* -zJ5Z|Qy44_>-)em&!4(vbN|_4NuzP#K`Cdx9m|L3Bl?m2so5}UZ-DtmwqQQ;!;F1IO -zr_wod;cr+D%dt|I6>B#w%Rh&eUc;A52dW;uwp(Yp6p^Ara%FIq5022&&?&lxkZIf6 -z`3~I(p%W(;3tO%6uD4(WKJ*EZWKCtM*4ap*l5L<4xwL${)|KL0Qj0j*x=?7oxNx7q -zT(L^aFzf(g*Mne0IU4U_AG2LQ;1m@MO?qyJsQTQrdY2oa%2n6SP%EuXI>kNNgBm<0 -z!D7?>W~2lz+P*ZrrW=@yP@)WgAi+_Z=tPk&^477e(6bXMbd`b}K4or)7r81spG0np -z!evkNcUHDaIA61-H;cFKT%AFv;Pk4N{`t(@!oA^N%;>GoXr(LeZafKcFS3XM5WxL$ -z3m*PH=W#KieAPSd*@dWR#s=eRdR||YfV+pp&gXi&i5{GM;8lLhk>U8{IOK5MnU2vo -z*7ZnhfkzQlEwwSRk0j%7WE$J?LEVi{@=IiV6{Q59iO#v;P2tW?dUj7AirZ6HY_nu> -zGyY)SWRh|D0hMXmD7KWv!XIDbBM}VYn<%DNR_lb*G8c0!tY&}fuBZBehYII3DLE8 -z@cSw#=KXlSw)TWp+1cB1SM72Wba((We}7&(n!~K!aeM4W#B^aI1na7rp>9|;5Otn2 -zlCGEgcV>8=T8fS#qiV3*$%jw1L-C?_21if6hEB;l`;I*?j`4(%*Q0cBDEqd79FO$| -z6nqN3}Jp>lK{UlRPK0m4K~?Ib^>1SRWcfFptOLNQHk9}FUs -z!Yp?{q9C~Kg$uCr?nSP!8b_a!H{UCWP2kvHTZXbo=*3Sbnngq2^+HQ4FmW}~Hfhw2 -zP_}ULeX(Dr;3vy3ph{(hX?-ST6ItA(jR>kovdVyIkVcox<4ZaRkMnFpIYA*B47nuOO%!(r=oM#xmKFXUZeWB9($Q~v`;;kczjpjCEGPF -z81?W!o_r$d3FGJ$)P^*HLXX5}b6)g!GohU&UFn`5!yrWy(kKr{8OmG|VfBAEV -z>Glbu2Ag?u-@KeTJt>J5GGp1PUpb<<)$T6(l>2MmcK>cpU;rS4{i~NHqQaMqBk(Wk -zYt9L==R6wSCoX=+Lq@7>yd+ZcaDs`;-xpSZ*{Y7tw75U~%!GlE;;SfpT<;jGRC1TZ -zr`D3mdE@vL+{dTT{LDxSLt;u&bJ-eKSm{=-bgsvhG0v8(;4tx}Nbhv$d}z?cZ_OYn -zh|6>^m&Gkx*m|}g4=WM{>yK90-Yiz4V3c*WT7U~|e@(Mj$#Mr;(=*zJ^C8`XSTw5o -zx9%cW6jxn+b%;P{w=lN(vrzIDG}p`B4$i^r_W>3DEGXib1i4Tp;cH~od -zM0Vyya{EmS+UI^S`9(51!L@C!xj@9RV+xBnc?>z!Bg;A2chyTd*kI~*>c1zh4(#SJ -z-CEi`G?o7@C1)-_AJ^Zr`2ixbqgd#b)_1#XqKJdAX1#WpKM7VHgHp%r%)fQ(!u02F -z4)a2aXdTok+kCm`{!4+$mLX$NAmR8x5~- -W$cotuftujIsH^Iz6yLfZ_P+o_k4GB- - -diff --git a/docs/imgs/detailed_design_node_task_manager_1.png b/docs/imgs/detailed_design_node_task_manager_1.png -index 41df64f6ee84ab77dd7d9bb4cfeaa8a1a72ae5d5..38b91fc9b6f9c7dcc4f419233bf01db0706e030d 100644 -GIT binary patch -literal 46538 -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 -z;q0LOj21k?XRXOKpm!e0@R!d$6qgQy-#_;6G -zk<^_)M@3v~O{UhyaAxoSzlWLJgDPo}tM)0V9*OkPg8p^EZ7@~O&F545a+aNSh4fUe -zk?MWw(1x8cpH>2ENP}JWRrYxG?tMDJ`TLS)0Q`>kCcdv&Ikw6Q6-ryUe?J0itOB!$HR@g~vYYdBT>?`(< -zk5RBr;@^*{o4J4Psu~C4{%4Y-W$p1E3Lh3RIyv34K}G<6Rq0R!>2A%EN!p2&KE;@( -zy;YKU1B-u*I(94#8}IPPtuq0<3TLsE&2o7aQ>WicLjCMydov0_`|Yl(JyU2v7aEEb -z;txeva&C~+9GX;)XQGaS#Bo}@_z=%_-G@ZU&q}IyOAhK?J(Sur+ca0z?_6}~!+lrt -zhI0pkc3Waf>CE&?cyjt -zOU(z*PW&)JKiMg7_Z=v{FeUKlkLCZ#G(FqX;x7x&E%QsW@^x9B3SW?d7cHS{2vK1l -zutU1K#f+X?)_Jylm&`6;3NU}h+$&MykGwBIxVSS*=7$yh$pUede309D_gb^~UjB!7 -zt+%f#zE~nUo+rYKtwenU6Yy2RzG~JvAIvcaz{Si{vHGW>SLIm;~`_eJ+cLB-q-zvaD2)#V>UqN=F?2^~|(Nh;vI -z#``;ydSRst*L5W$iHLGv!e!F1#&>@89}4#0BD5DP?|SX4{G!$RvH3*#R42fP-kfS} -zka6=WaS!Q$eGK|0ut6rcQ0DGfF{h1+p>zR$5tKf;uYmVf^5k`p?L%sFqAyM}z~tZ` -zF8drDPbg|#ntxs`Wl2etN&iBre_uWl3$2h2GC3TG&UzIs89EWzhQQRGuh=(gH%Fg9 -z592>jiX4zt>Gj9$GwcaOUz|c&FXba(eAn6e4_tDTHg1u_-l~D -z&WFS&-CgOPn`_435HbIPE*ZIQ@Gld+42QokPpJQ-Gp1U+}7n{L=87R -zbu{^af8cA6SJ*s@Kav_SD;Y~TV~dH+%h84(Y3vw4Py+v@M;ct2aD>z7uSf&aL)%Hh -zt7f&tJCoRRUkIh#1~D6!FdQ=76<-J)`YJXk8dlGBSn(D@HsA7_-~N -ze>NrCh)axb<7TaSI{zoUEpafCujAt5Q1E2H8a^n6ECS_a%;%%FSQy -zy^Yjf#dTtC;6)Fu+EF2;waZJ_VTJvei}*>dY|)gO+3`~_Oa~K%F3;#GAO&MiiPOpy -z@P+Z-7~AgI+h{tX_Sg&xJx@RJ7rCo9#HB24x{FMqPFCi(I^n02)GziH%RABND41cj -z6UNkHs;i*^frU*RU3-MUsE8OscAg*<+T+{m#u3r_l%thqz11zGHj31=h2ll0@?H?| -zi_^4+dB(kb{e^_pWgw%Wu+DUUSlswj!s>)7IgHx()va=P9|`a6nt&$IZ}~YIlf0%e -zv-I9E?lVk+4bu#dfzpCtpi9Lk@v*C9UKnI)DYTa{%8hwJA}|)qd+X*g(FMhFY->TM}zWefXG_z{Hu$M8UTKAkpP^SvQK#bXIFy_}W$R|px1;ZLY&vdLq -zTex4!Cz&* -zg~u!#S3wDk&*f!w3}y)mV@@S!I0Z4v+vu0e5D(GrX@0qAy?t5qbmn%-WM~gU*pxci -z?uWRHM_N<$VMseqG}P=FZSid*;yKA(V@3`JLTcg*mnRUBdkkny#1PZj%HE>4p8TZ0 -zml|(&omO_Vzp%Ovk%Z0&W*EYdv^TC8L^8R{EQ9d^jbV@qU4p*k_8>y!`$4?MP8cd= -zAQu+dm#7I!%V1bnLFX5WVy=6T`V(k9&kuG#p~RLWidtbv%!FX4@= -zqVKxYYidjXa0tKCI76=&s86XczzLzmxPf22GEvDKs|1nY*7V_7_L=vL1=&W;^1vdY -z=eS#lHjMv;5qO~QscH8-W3HKzS%hURviWHP%!UlO5}tG2uE}A0?D0ESqEHf4b~q|e -z6*=`ale`aXF3AMt>kKt!O+N6XIfy$ZJ!*h5mPcqp_bs~Gmjsp?mooN>CH#)gIcnx{ -zyu2|}uj>vS-gPT3G?;fAQaaPQ@(9*2Dbl(i8<)t%n4dL3`uj@RG|sgp3kh2tv_sH} -z8PZQ?hBEVuZ(4s#PHnJzTXc-<60zsDPTueS%|y!{`>ca|8IK{+LZ!yl{xi0UZ|U?R%IJEd0LY;)HJ$PE|%6%y2z_$_^45GK)88 -z=;)RgOZeR~vR3kb4*NLcYn`N^p*Gg(gh#BbBM97l?bB+yP{68q`BdbV9_~teQlzUe -zwzev53SEHLhI?z|Bi)`H|A5$sQ~?5#zuCuB`P06g662ruaJ>sS<97O0sGA53NJcp}n-Px9WYBZq3Ig(CYDD9O3t9mrR^im-m<8@0O_U2I-B!_8_<2 -zv3CC5_}e_1daaJ>JHmfw;c<;W$Hfxjc{z(IGom<8`1wDxAP?_H8OM~KyE=>KwTwhm -zU7q{v?ya4$;HR^UCmzB8**VgE(W!cQ#L<)Ya4fX7(?CsN@|!DkuI|pb%EFjPDz7+k -z_YVO0JHjy0*7ODq;mc$ns`U!H>a3~#=wC$ASgGQJTuqs0=aXQ=ORE1HR{N!-BmM=9 -zoUGhRlnwEIQ9VtgD$nLRA|Hb0`#Q&NEAzAgsmi}YsXtuW2x2hob61}Qf5?}9|MqCI -z&2&&win2@M+>=MvV4`?-c0=I!#kLcTj8iXjb?%L+qa@+U;%69nC>&Q=1#S!O@bKR@R%QY5Yn -zZ#YFB4pGhG-#BT&kG)u1{Gk@G<&*N5p*d@~uIZiPPuu7ERYo*1>Pb)IZFg?)U~*R9 -zuuU^wS6_e!r^KDuxc*AQqGG52O}GHn28QsTG{yfnvMH&?%}2^TTCB@GPIvR$H;bzV -z&Axn*?AD)e?F>-|KKB#vfDjbnLJ-j_(hcV;0WscGL-V9E&0nt2* -z-S=zZw7KpGo-cA6!Rj(l_izS!yqlYA1s|8X;CqlCb({F0wIJ)c_k+f>28P$qM|>EP -ziYFQ4nUKlWB$pz3{c#D}*@TVD@eNV=D3$(ci=)m54$!=F>Mjl`nP~a3F5dXm=juRT -z5&1;ja_D}?zy=xDE~yP85teMEo=ve|q_Qvn_I^%BQd$x3IZFfX)ez|H+ih+5!Q}KX$*r+CNpWj={upCa>J%Dk -z(cY7CMeR+)Wi?$I(rCnE92w+jdP7ljdDn{5)QuOwSWS( -z&2I$x4SA*?P5z(fB2DBWAuBm<&g?KXpaa2(&#Y{2QZDbLN96%A -z>w;6#{K(4QaCgS5pe1a0KiVAcZ^k8N7$l@uy;8bb> -zssnNouBCQPj>$ki;y2--0Qn2$$-ZJM!E55{8H`KBi;gbaO9DMGW9d|^!FghFsl)P!bJ0k`J4uHC;WK!z+ -zJCC|79{jaRSA8NBz#)F%Uj{qz=1%c$!{PgVMl7t!1tF7V -zWE^MRROgfp->O5F7TnqPR}cXrF+Ne-TQD|EcQQkt?B_zw|DrjNprd#6KUE&AvYOxB -ziT|6L88ecU+Y*dPv&-0On@lQZ(FV8 -zB{il}{wHRqvAxuTxbtTYu+K)92Kg#ACbzddXo6R!>aK7)hN|0|TywO3)NpBc_Kbp}uaiZz -zQ`puGs+EjQ%H7M=Em8dBu<%m(gVfu{y~9~43iHdFX6^gqg@B0HZ{U`*kCme+m)LRy -zT$hhh4uDoY*23CrL^b-$B7HuFBnsU^MlkvK)2Fgl{peGQdqvS4D -za>O?PV~@-VDWZQ9B(+nXO?Aa6sg;tblM@(7H1SOHFKm&*i(M{sXC%>*RGCrL%+Iv4 -z={Hb~=cK|u+FlrBF*c_(q&;8NiT02VjFXHXbGDi*WKs%y%V%$_L?2N_Or3%;J^Mw= -z=*xv6ws?r;EFX|X_-j&sxDTNCwsdv!+|hkMr#>UpH^d!7|#@Kqr6<4K!lKUGukPcn4t4`Lg0*5 -zukAvpUN2+$gDa*kmE4t~LN~-S85zt181Eh@PVwh$es6=^KCNeF5;EvnKng;$zp#+r -z+Eq#q&0wCyLsmz)%jjS9pkL60!dL>u6Bc#Thz6SuPC-j~F??bu0RptI`kK#4Uj*CS -zcYL5uzVOB{#%?h`Q}{8ndXnMJ1;5rc0zA8Z#QA#_(|Q!_KY57%VNGY8EUR=e%3`Yq -zi%pMJS*2g%Unt{O!p18!TM{q2xIDD_ix89LvV!m3HM>(-CZ`W?qmBj=>VQ2!(y -zelbVwweg`Vm2T)p(FmMYz`!*3%19m#Fo=)z`{fKV=^+9p?m0Lq>aLZM(W<*HZE{(- -zrW5z@D4GSxthkBxG20j`{zoem)5 -zR_odrG@7>{za>PB4+ypWI_dmKBh$ghkVu0M?}>WD++VF^yCgZJk~z>v?GhOEJrBQ5 -z87#wxnjP$nC)7W^DETTgW*K!Oi<$_b3ji+5mTt&Zy?M168 -zU|(40Nb?=6gp$oC;urN>WO?C{zf?ol9PM5-wCqMNnsCT@27KoaCq(=_T1=k -zZ(Qnmo=5L9mqXd_;b9Saf$nv6Q@(Zi^}Zl+u?uz|-T0|;k^JvwJmG3QQrgl$?CIAn -zaLE*p6G{!LFWFrOf_Q+8O?PV;4~vRM7<7ZChq2SfdRayJDv~mWM~r%gi+z-hV`R&p -zAG&I`MUnTuA;@uF(Y)8q&Z_y^mt&0a6QK@A&|Z*Nu;7n!U*sADS -zY`M8QDBWsh{M^F~534(@@bd38w2?VeLHo!L$sAgX>E}QLdtqv2a+j`Mi*Fyhlut6u3F*UISHcb -zGfUqZFZdEaw%E7q<7Jhc|FZW$oA!(XX}CmEF*eAr9-*BLWJ=azIRE(Rt==JbN|`*N -zuVUjS{)N}tpd=iNET3zr1W1qpKMb%`JZLUk2!S0*LQhCU8q^r)^J;*|_-a -zhr#g50~y7qs({MD4Z|{w3HFOg#c}}e7W~V*Vqk8_@~i66U0ojg!o5##+zV5q7N7*9 -zUj{-mq-%c~Lu>M{Cn0{1Ma%*-ypV1=Z{iVaL*(li?bm3nWkeTt;X3MR+b6;{e!9yB -znO41e54WhZX<(*7wIcUARC!{$Fuvp%E)nDfwOP2}N3tsXqNGZNz%c-xB}rsi{f;F( -zv>L{)LO)i)-33?m!hmL%K9&HY#2sz5iLSA)7Ct|_ivXKT#Kt#9bp#J7Wqd-&8%xw~ -z6asyDi=eNw?0pX{Y$mQlHLRpqnUT)vLJp}@6~jmU#$}#z*k02n79Z0zxw&v{<0{RB -zvg@AL_0{!0V9cX9|1aX$sBgg62K!x+|6~3Cht~f;8J!=MO23?saXy5yP^lSefgTrS -z9T1vQt7%;n9_M5o9P%agk8F$G1swk|kx%h+^=)hw=4SogwrA;{nkqtm+z=4k(`8rR -zZu1+gzY834N+^6A&RxyM&Sfum@1-NDzq(6U%~#gtYzNV$F-Dl&SLtOL_4J#ipsJhq -z@UW8cjca%Rrzf6Fi%vb>E7&Q8Qc5*2C2HO@9-O(Q3*WXI8`;NxhMz({Dl_^{yQwN_QHX20md!&t5OpXujnV8LmxxLQW*uwf+Js`G90YGNFfEEpOn(K{>VdkuEXyt~Z%Qcpa -z4GmYu^(E3A)Wk4fU -z!+of*4@RgfxsW?9WuBYmN=##wz% -z{cEE{D>p)Yu12g?v^Y;aqiOygP#`G~P&YdqKla2}02uz)Y+_lZllnw)_AoX*_fezL -zz|yiLl^>yroeZl%c-yOEC$Cx!8=`vxfi`z%C8;=nqK}Om@b99nEp>!ZUvyGY1Z+Ap -z96!ts5vgQ89X5=^^9!35w-ku9#;7zVs9!H0=EcT0-Wdj0Dy3z%$=@V)gx1;5?V2)? -zZXYOeax|Nhl;OL`*iPiIW}GCV7qD3rK8y4wVyuoEE-J~ymst@{!!X`;`)JB+*px3VoI#+uvix3>(quYM8OOFrS))w9@QbJg@&;{&nkPcGfp -zPxl~VZGlIm`}&fOtw;4!8YDpSjDyJH;duTM-$sdYJ4i<7ut0UzY!m0bFaE?$Zr>Uc -z7;YdHkpQi-1F=FLw!!K;4a0^>Fy-{wi^GOw(0!R@OsPZaiFA9gCD8M*gN8VmtuVb~ -z5$Efzj-?le2!zMT2qfJ%Yj`ni*dRCDH7iMzph?kk0J)K%r2+dC(A4^@f3~UBDiNlU -zesvhweDs0Xk7l{EOJgljv5xj18u>Jn%zS}ulquJP$GCyjZq42|o$x0zBI&_H!|}9{ -z#Shoii%prcQ{Iy_aZ+`;PNa6HU*#lOuVzd-`;?5HjdR-|~Si$iShaUKLO -zo|JB2FwXiB4HPG`lWVbe9&m^X$}DJF7i^1DZ}qG^upcNS*)$7O`iBukW$HDzVqdUd -zYd7HX{zH;|6LvFj*5YObv8hK4Y`2GU7&vkrhx-yIG`@3#Fi;f$s#*zKS5QOt$_!=^=A8>XylAnBt{Px!Lz++4( -zPCjMYHlp-xWBq$A_@*J0#I(Q=yzGEPm#GB!69@32<42U=-14f_a02qI#x0y~b=yta -zm$D$MHV^QhfSRzA)^H--OS?OVHBni9>@Cxq#FLGc5yWFH2kn>GX4^K`q()W@RxA3I -zu=#3Dn@JJFbg#7eWQk`^Za?Je*y7ihC}*|c832{vG`pCCN`M(R@)kh+O>Xmx3wX`1 -z;9^szN5^nm?ULx!SlDh}LdI9*sW$?}*%?~J1%h?72)Eore@;-MCgnkFq?^P|@1*oK -z@4QBCI<;9cN2IAy9xVf$Ttl`3mG@&Gy&(Ov^iXn6#`cwIn{zplbsR9{IM{+lNc9g)ltQ*%Nl_@7Vjj~jW}LOe#!y^OhU*w8C`T%frBjQx(` -z?GzlLFspuuCJ5o2aE~y`#3-1C1lL8QQkz;UW=dS9tUPxb#Oz&Pq_<^6(fPOQyIV;z -zj^R(a^ToJ-$}G&!$Wwbd6xg@JhRsB&oX@7y7+q`t -zg&ljm=E{T4c%V@K{tNZaKNJVP*2Nf`c8fl?lW#J6r6Jk4Q*`Ff)Ak|~pnM)WrL=F@6Z7cyr-cANAs<5Lrimxe5sA3EUc<#%JipZ0i -zyg)4_PO1@JG#I$};=!Gp#W(i!PAo-DQt7L9A=;fV#m^82{URkIM7LMJ5V~5c;knu?pQh-A@?~j-@c`CqZv?h! -zRG)E{0JrN5@4S3OdBk^0;mj@+8&6W|6OCbVAGryVB>`xtrfs2nJGk7BcIH-pifPh{ -zEu3?-k1WEl>h^P5fPtsEWbo1H+IIvvSrmvxXaM~N_{OjWCoq*OgogPQ4j1?-Df{7h -zs|2hhuXLnDY^Uv0q( -zORQWtd^O`Xv19%EieKjPfe}5H>Hb0c*It|0U3R%ftik}1|2johc-9yDGc5!*Hc5z( -z-t%Qu8363l`^lny5*)vOH%5rSMb(qPssl__v(j4b$?ts#^r;h9y1Xhc!vsi}#}8=n -zLa(-AHv?BPiL5DICL8}#i=$#-<-vu5&*O{tep|?Z*5wyzH8MG9p>A*6!&C{@Z9)HR -zDKY9Kb#B7>4A9}v%WKYoGUq0yT#41I+qLi4M_$)x5o*O{%lr9(brc6{Z`c|2_|&&n -zVLL*AoRvEu3_pf?6F3Ncmw0II3ELca=+{Mf&iJ}{S+nVt8Ed;I(lS>R+J0>iVce2z -zV@H-06|;d7qfmF?ke>!2mv8^@ud%lMN({~m;j -zbH5A6{e{@-Crt|SD099RvWWTb(wI6Q)UXf&UK0&Ac?*|}Ozvi{68^lX0e*2@KjRZ{ -z=R{(j^|$MUntI{repNO=_kUIcIW71jEx0uMPwRdJnCY!x!KuhQaOV94A>IhEmmpEG -zs6{SWsa4LbPYNnu?N0v#6C8*!YH5yqZ9f@t?_<^8Wjez%dQo!A?#xNtN>ZN5iZ=H1 -zth~=8Jk!7PSdW{>r3QNVPoB}9-||;Hif?;Zg#MAkdr{_>Z4IOv -zsSiagE*E?=iE*{Kd&=Rtq{6a_L%))-$CjU!=Jb}aD@4xe_|!*A?NT|1_Qy)E{*V0$q{xc#kiofR*V3b4+w0yTku~GPrD;tu{K+%B(Pvz5dn%_bPI&$V -zHs(I}qlg`MdV|eO4G%t^XZd?;j^N*LJO_KVK?{^RRLLzQH_Zk;xU)7)l094a`=Z?3 -zhvEaT|61N6)Cs`Kbxr;?6?Lf#5sGydT_BW+Oux6VN^+ -zfldHovQ}k)sQvzrR@_d=TbmycVom+NM}p0`ym$Oq)C%H^ -z23UFQUm>{M@nhOQ5G-i1LA&D_o~nD+_T-PGTrJ?9ykE5U!}#m18*p79!LE-s6pcwf{xwZxK%dEDX4H>6g*p3!b_8n=SmtEz(^rHdlU&*ul2EG_J&wD_~$h -zT#VHIW_^RM1IwtaZhk2-mc394h|xUO$^yDf_mOizWyra5%}d+l<9&|yk%X5l#n)^K -z%V-zV;u%d+u7C~hE}yNzXZ-zT$GKyMT;0F`V*vsHptZ+*+$6Mh#JS9&!o6>oKHx2E -zb~zyd5OfrHzHiRQ(yGO~4}j9sZiUc4yPDG_j*;CLq+|_F%r9;ke^Ur;5#7RFHKM92 -zl5#J6q1nrL-$xt`K*O#l@Zu{@b{cQcFB^C$lPjFV29&Eloh=lQW_BmOCEiD7(lSFf -zg%RB5vplQ1<#C`W?pQQ*W$|OeG!r$CE&+s;kGoLWUv-3@jXD%UU -zi)I!0k=N6X9}W91&qUc6p|LQQaB>p^_10~6`w{T1sU-)TqaN{b&GOCKfRN(*>S!@e -zMDoJTN{^EnF!Q9=a>6CYFZ=IJnsrt`E=u=U&W0U}ei4XYKC$Its_vFKpBx&BsSaFO -zKxhoM;h3G}FYmu}YDIAJJotkM{*rXR+Y^F&`L&(BqUtItqxIA3gvLA#z3-Zw>V=(! -zO@)jBRO2gLd3=uzaGRT&K@0bzdE^_j!`pQyW}_JkMNfF1vE!aGrlum)(G!oMEk^d| -zI@H5O -z?`|KN%W#}>H1BqM)p~c)M0lNdyptOHIx436dSsnbWLv@K&;wAS -zp-^Sjr(DQS(Lg -zywB1IAPv;_v07c9(Zuu77|ZKzo;^mU^V4W$i#Qs^Ya5b -z-2|Sn^FwoWC*ebORp$YlRqWGjDw43{ -zimeu)2!P?Ti~K6or+9wNe6wy(6HXAiDgQS^TQ{jqDa9K&kbc4WUd)T-w`Fmuk34|T -zoZ7?R^uB_aI-vZ`bm|6z00!)817AGv@3xLVkI)5I*mgmQ((0op}L~ik*wmGL4mXch@}KIb7^%0Auoa -zu>npa#%`?;%BGInP{uTtYQp{lm)^zj -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 -z!~%j4dLkAeL_k3V5+EP}LaL#%A-p_uX -zy?5HkLF-?Ytg~OCC;S%V7o0N>`6JbWyW-`{(mO{80miAvBKys`R5wN7GX1uRfa&dJ -zJ8&bF2k-~Zjz!8pIX6_ucP@VKm{2_OIK+H4uLnB7&IYFW>81SLZw^NO+eIrUMaG&3 -z-GhMmg5N8%(<6xN=Nkn#uJ>J==$-_d02tt%0*VeVFs*pjcxc}3U9QXz{pGk{qM?94x3GUa*Agm#!W%zd7byLbcm -z$2)jIgtk^ekfF$OO~(4)jj+tVut!$6IO@#58YehL-tm0H7F^4GH6II^gj_TmRJ=Kn>LX^A -z@wQ~+5TgYbi3g@KPW+s0LitZvA&-Ns30Ry3>c{r -z;EnL0O~ElFF@5M_YMVA2t@0y|ssRu}%sPX+64flu?K^+pJH0fr_#y2cb}0#Bo}l~` -zEjn>G?@UpB4w#+yZugKJDB+VEcZNA7TO{u}+t&9IVtz;>GD15>0{Q8~GSY%Uxk=nY -z28O^Kh#zFMD7B4h1w{Scc}rO6(;$1^Qc^Xtt0F*eCv-=JFUbL6D_*R#ls(-Vw+Y?o -zE}ywK+mu#j8A2OSo>UBw*nLdyKCv0)=n%zg#@xgM@CLH`3#wWd1PRPw+44ez)2*SV -z%WH(V#k80cPq&LMwqBd(+4a&uewiI{l>R+$i}fLL4E9b;I(>J7;}9gNwFZ}I<3t`# -zchS#tb}ml>PU76GUj+1MtBGeSg_Ms|V-C_mq|=s8i? -zXNTQ&5T>tZAJ(ukY((k~_1B-miDO$I$uC^L02Zi1cen9f=Rp6mA`%AKtyr3LgLQ0Rl|$&e$=eR5512l=L}j^97l^-6iT`2FjrJ4oa^*<2PZa2K -ziYhlRwf|7OcWSS2>xIcf86a-@d;5rnENSNjk`snzIv4*qzp&W?x6*iznNcAxCcEs9 -z&vmA}Rxe7QzAgtGaR5a;;X9sxYzQE5byHXL%gX<{qq$EqX*%`5Yn(GMdG2<_r6nND -zgoKuY#E(orBD8=WV}W-rF6}?2T5SHt{-Bc3=RfSse*~Dtz237w>hHKZp5#a9)*7pb -zeAZ&A!g@5pHG@56MhEM;@A%pDq^EnAz9L;=nq+7hve#aDQZ1Rrv=4j6;**%5n -z^(ji|Dg!^~?HjYZG~bgY>4plK&W2o&y@%^rj8LLR^(fqRQ}CLp -zbgKf``_e|ZbwdFC(K|L-70K!;^vPwHFvXeAX;=-Pyp^&-KY!WBTl9ZJ5o=2=Pu-TU -zY3|KSO;H$Y4 -zm8b?hM~qd#?m}^2<5F0YZe-5SKKyffia%3<%o+VI<-{8BLRwK?NWosgq3>nsRwzn3 -zU6o5pEKm})A_wUuPLv~uCDLBfj%d3F>Au{~ePj5!ct_$Qfv-$gR3;pyyyH2bba8J-9g1o|Cs5?|sG`0w%zBY0D3Sidyqth^ -zp#pX|#Qzut!!DeW+TE&%TZ&v1yD0~&UbWaRBHLz3)@$x0!?8ae$36RH^mqiwJs6F9X+{pp -z4;lAs@UU)4#IX-mj>FU7(^J}xByKugd(~cQ2K8i~q$9~UT`7(JJwV^0Qh}b;n&X_< -z!>+;kWU&rzXoXOdBiOrL-z2fsUUQyN3Wpx!;0#5IeJLxpejSC4#&MD1CS3v3aARVC -zom-kOArFot=g_nqn~{VXx3n^tH1zJFZOvMas}UAOE#N*}In3N53fD>b#yXflZT>oF -zM$T@75Nda|KzxMJ4Aa4Qs(lgotxQ~IPPaTOwtzy-$%mK28eEvnoTHDugbrbmcxGf|1{+O;ZJ%e4Nbv~yI -zHkKw!zdsmXotLl3R7`YGZ%+P<({R*Rr{>V^8@t38=7!2M1ZbhDCE -z(=GbECvzGt$dnxS#If(naG#gFC$!@70kYMS*4_branQ+&fEGX?8Ek_}WqL~h5!vA4 -zMF1H|87V_8`7mNjx>Xx^0DyPx%pGCQyerAoyd|+o1PZK8Ypg -zc8R>dD!m=t;})F%loeZ!i(wjaE~G1=N*nOto7@8Pdy0>c>4Wj8+D}YHzuK2%h);GL -zPNPcSPnso{v#ueIy`I=wxTBnKoj@zTMCOF91CPm1uOE&tlh-S4XQP`X990>L?e^{j -zG~f<9fnGS`iifr4>NE`-S{tS-RsG%I;y{?)XWSTISM^s98*THKBWYhyKDz?(0?cag -z{nO0jq}+)7o)%qlEbkLnG;AWbL!kB;Pa8r5`~ux`p=Te@LuPQ@DCHoTcofu`8A&5b_SO&Xeth -z7^K1%48uB_M2EX2z{#rNT~}E>DVWlm1o?5+&-?5L&To9cYPKI3{2Fi{gy(J=Q_khW -zrVqXGxWL}?ifKqmhg-UX8}eYa6zl^w8r2rX_`rNoR0~$QXDO>-6k>rU6z9XpdDyl- -zW)836AKcjq57u^ImV6sYmbhh#06BavzVic?GZ0v+=y6`2;bCC+=&Sxou!_Jg8;kee -z1iZ^YOVnUaq_DuplYjT+ZZD`3(ks8mV?c)9Vk2M4i>+uB`dba+*P0KV#X*Yum*Bmc|sXDV6w?6XbX;e4BEPkQ(so08_w6{SGR}i}xu2 -z+T-y!MjLZQJ_EB#fam}w70>aMKRWofBr7TD -z#OXZN1Jbf5xh^54<*%K0Lks&H_I#I?IeNO~WKr_%J0A|zUH^pl2~ocUvS{J%=^R0< -z8W=kptvt{y6?-?<5R=aV+by@kbrSchv0LAeR~Y6%d-u!C8b?$OJJjX{o9o -z+ISU#EBbK73G?EMr8_o^aw^%JQELN#m=F77&+a54fO${h*fvJ6ltT?8>ePU402D#=Dz+P~&1d})?y>oc_veYO`BSg@s -zJ(GlchdUdUP`Tgk%h-Uji_FDrchAgR?fnto6R}mSYnI_nmn-6zyfv(N4X^aq -z9L00W|HIa6%4YiU`^3$5;I;beUjgl^d)99*&hhr- -zkCK8>)H+D+n1cfiZ>rqDp>}!`$TF-IVLjdPS!7W8EA_CZTH$Pl1}Qm1t!y7 -zKoi?30II-*193ut((}ON8;5f(|HVUv;@}r^F0SH3RKVj|Uv9llfY1CQ!b_rM!*_ -zBH42r2-qWlLShap3KOhOFAdl!cq%}_>V|q{(wxHm_0JB5qWSB!AJDH0 -zf1_liA>A37_}6m;Zx_@Ys}ak9&V1GYtgp7^tJklNW?fMBc;jl_6=6?$1?X8kRv5xB -z$>Mu_6YJc{V$F3A-M8J0-sP;|ZQ0RRXpze?MdZQz4?h^VYcGI~0F((BLd}F^Qqy%3 -zAmfThTvXVMr|WRpuJ-x%`5>y)wmn~e3JCg_T>s=kXMYiErK-! -z4V9@X77%iatAfW4dUC9UxiTUDRer?nu^Bs~p4_9rL*en6K??vG#sw_E -zxj;1i+=jb4hbH!fYP+G6t#(=OmPaB$;e*Vp(2dDYXdeLD@j}@r7$mk81hE9T!aQcM -zoahL0{0$=Z$sIoT#Nk{%%34}Bi*{h<=;$?F#QHH(4V|?)^2g5pqFpH%O=X@GIy(;55;LX`etj5?*WO_VKb^ -zhI75RfE{j-&Q5%!ZMhmmMdFEdF7dhm*WXOMVg^*@61 -z3&EqsRLl~=4t5!#0i4;Pk(u`)TKt_hIPtEfHrNngb;Db{jxBi6LkW?9fg`+xwO+MN -z%|$P=OKRGAjL~`y(?L)8Yx2W?GmUQf4dJWGyJx%>Jsiaibo6EuhGu>s7kPBeph`Q+ -z>91TvJA`iRt^`UB+= -zOTMlI8M^@tr#yIS7t;*{F?k9vu#01kDVt&590H7~z6;v;ODtfd@nGtyLyWFV08u?$ -zY;*kIJR8Nc5w3k;1(Q;hj{QpzAp=|PdkgI5bCc}P-Q1fLrH*~*@-I4tJLPr2l#ak- -z=Q+6{eNyl;GhshxJ;2I!hdd~e2vQ3sn@yxqU?Y} -zuea_b|8(062-0`{E&BjCJh{=I&n5!=;NSeSIet!V;Oc+3ysGf2;3NRSwj|?!P2#%2 -ztsV+8f}^COw(lt{=JuZ&jc7<&e4*XHiN;`S=7%?`zg_V<07%{o&Pf&Xc?~r%EP)fQ<*B}f;*o4)7i`iGNtqyyhz -z2YYW|dsrFE1(TWKsx~YvyP!46{V~|t?V2#0{{`9DK+_9bpIw{^w(~JUJVu(v!!>ZZ -zM!s(c?Xt=_mlLITsWB!lYsP1%q3%bNPa7HASfy9dwC@7W>9;QzwamR5yBj?@;~0+r -zr*wF)X&B*k-Q_J-nbe#cWulfDj(@j~#o7qRMYC3QC#qdVyYX1m|E5*(`D5$=)blj`*J{(X6;Kz27G -zL~P!PhEi -z_QMm28Yz9T)s5q4$Rd$WZQMr$TA#I=0uDjI6sOwZ-f!j3HVk%lk%jP`P@!+(!Q6@M -zMcy!#=|Jyq*4!wGrK(c4g)s?n>~;Fr&qrd2QYP -z$d$n;?Ad*scQ(OD*PpH$p6}4z@n^d3ztWa)qdAD~Q9b`bRu?anhtiCH(X^@Vm*JKv -zgT_2=h?eNA>2WA@kZ%03TBN3N37jfbW286L;=cvDoe}x!@YFZEO9sXWb@k26fd`SV -zCR!fn?11)ogan<+J73ms?#fHsuo?Z -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 -zrg-duVmlU<+#LX<_@&&Zg{nKem*p9f_ztDJb -zD(WdtmFq-O8oBH>yY -zbW{?k>Ab0f^R3W{ijT*f9HYKcZGTP&8kI!cFuSIl958q{(vg*EhaiERb$oDh|HM4&(= -zj3hv=u|x<{!MI@pGXT#0LD6ntxW=HW -z;C$)oBL=&V7y3_Zf^)mGP}hKBQtUd*OoU?~@N-eD0qQpfPkE0UF6t2$h*k;Aq~Rup -z9`znB=9Yr*p0Wcqt4o=F0DW|cksyNT+!yV&R -zaP55B4!AY|OUcP7Ga#nS@i(WaqCgRJDQi#xyqP`VLEhAhx65X1v-CPm;d{{nI`1-= -z5p$qfn^S;`M|vgT;`dy9LT@5mdPT2qpMk=My|3KGQMuVnC%Rghuc$WdX4}jC<#M>yZohDYwa2Q=%u -z+8OX^3iz;B1{S?V;8t@owX_dRlx_(38MqRU(-70MNET01LY-^aM1vlmp}Crn$0TIv -z>RKLmaXnBy@)%YY?h}E=X*lTf^}QC!jcH2tHyh&mG#p88kMo!LxWwRP#3Qd+B&&0$ -zPjLr_uwI!K?!(eO$;+5Utf69vE3o-=uYz=%P%(iN0M7%|lpYcEUUQ0C(0^I@%vv#AhB4fqM*$Fk)9lH?{40S-QRjXH$ARc%gO+;GfBh0_LkmrXFa4Mj!uA1$~My -z;rLtH^aKrusVQ-2b|kp2=8P`#06yM3kQ*WtX%eAPp@rbe%;XeEtM&9OB8QNg76B>O -zVCyJzTk*xkUt=FGNJCYh`66&3WeNI!BM()OWj4;Q-P|jnzR38_dtm1SC2L`S$hMj3 -z?|DX3A*l^s05egRAw@7?dXnlHDGl<>6f*P?Dk`w7bpWuK*f?|ZZ>wY5@UNS*tfVM$ -z%8F9Aw!_G>g*}`xZ<=%Cm%&;adbolW<7#&_5w_U`Hy9J40FvpN*lQdU6F0%Vl&Zfb -z-W^?)l2q-ThuY@o1v1(CSwq!wM`cNuB6YvPK&E0!%JWf6J(mG*bkC)5U7Sk)sO*49 -zl?=tzL8DuAi^&+57^Yi!MN`tTP({+5D;KWdGkd&BhJC(!%f-_AH7~WzB}@<~kg)f# -z!hXqVsFAzI*m#_sf|}$s8>b?f0QuG(?W37BDvL6sM^tIY!<;q7nEWrbt(2)hrv$Pa -z*AwB<*ryhC#ffM$_PDlx>k^$}H6vg@fAp-_9fK63vk6goFK74F*v3#01S3oCM?==3 -z=m!?SQD=$ -zIW2?M)+q)Fip^8ns2a&%GDaul3VQ;4&Teh5k{Gw*0s -zGA5>Dw@oEX)EF6{{~?i8gcN7gi&5Fg9L_YhX|#HALrj>0&)MW3-nOj$5nxDgiWI`v -z(J8SOTlZxG0x_yftdnt6DTzuG)oL(-gjq6#xhIGmhYGg>_ZQATsIX>Xd3+BT5G8_b7sqz_2Eyhl5w -zGFQh|qt)&FxObgcrA&_5SV?T8f{&(?t46n#x@0lI`{jW^(9m5HiU-3TWVMphAQF)h -zFyhTPkVzcOBPbpNGMu2bc>?}%2QRe%kCk)Z -z68slG1G9h0rT-VQx&MDL$Gp>SS%<3&}L4+4%$ba-x1;|5Y1D=8M#=yU2@U9u>?v~Z1J>8)Y>@poxxtKMx%&i?A -z+s}2VCyoeB3|uIpj5E{T~xYAZt*mIXFF)v-k!pYbPY>CTzRAPBO5-Guv3Y#3uay&B|fYiRV5VAMMiGqyCBwDT7H$soygR=^47)paNY}u~V7)BYsk7AZu&N -zVCX~@V^`W9T7fZHtj+YJo|@M%h1k${uCvf2*N&#lzNte+ixRAsee=TRT5 -zLBB&{s%WKUQn`Wx^faEGdfa6~M-{4L{aU(0>U5@q+H8f#k)7|B -zI2X5n*J%yC>nbMvk|gvq!L%P#aM#=kNy=UEV=JgQL%Pk{P^wKeQ72}##l=4!VQzFL -z6z#Fx{l_~1vU$dKV!JxwgTc^h*TN|5CZXw%OPHocvkc%fM@~Lz$PXWR+jg$S(*`Cl -z2Qq%b@H^~2aw>7+6s2s!5xhw>YbjUd%S{%0CGFYl)a3n#mC6_kYir%Gyq9vf38Fj? -zaY2&|A|yKR42zrh#R&;D`o6_VTzfGUlP;rux~@*R8nJI3QTDNSt0~z!Z@=i>rf~e! -zp@t=+4|hJhZ5uhs94LaABhW0Gr;kPtX9RyaW$DH{uOXJY&Q>A0_DEuji%4C~2gaMC -z_R8UXmWSFsZEHgU*5Dx -zp**J}otVYLR3?&_$7syXrDRn8V_}N_lzyRqD+2j)ICuu&DFAxJp -zb8J@By}^4^-u>%#_`3H$#r9{d{KswX-$54d!Kir2hph`22dKBv&@Unx^#&V -zdM508iHJQ&{gm-QZ;L7{wF!3^jFGbUrUJDE3SG!Z?*#jIz!2p-;>(vx% -z*7HO(02Lk|mq(joe!G#eoR`~T;VA7wjl3nyHWD@r2|WbZtGbkMuCi}9-YR&glhgf$U9o;td6X%)X|CU(m0d7^y-vWo6WKb0A-@u7lq9H2C(Aj`cmiSF}Nl -zgkBXxC?f@ld^$97lk@TB^MMcRpxd{FbA&I?w3fO(>r=K+Z>g`aQf(|OU|Q$+<J^op=kr)WlZU9Y2ztIk8yFjRsv`aR#^a$cH{C_U|ALx?F2wGX^P|0{m8T)I} -zc>B2!R;cq#g+G&R*3Fz;&kqN?XZW5(SR+5QPX;eBXWe3Pk|K*v_1GaE)V~Kg?9ZLp -zzau+w2f6>v#>kSaMY~cBu0^TC`5r -z(JSY;3^XYVB!}B2<)>Fliri<9r^yQWHOrYC?@${@^)p9^=-A$G?kE7vMoZXa+;GwI -zaF}5+xlDHZa$b{ti7Wg3!#YDIv(#mneq#hNl+Gosy>#O!35%^c!Tn{|e7DuI){hk{ -zNUJjxzWs!vaAAJe(%3-W`WYgdML?K>JaTa@ZPXnvBbY@2|l9r%!?o)tpd -zu=J=aN%UfOr%B3M3@oP1dqzPkY4aHAlN5$=m*hQW$EG_2{>Uj4!e?*kn9(13U7Kk{ -zmGW&C-*Oa&NzByI+lj7X(O2 -zVNQ=b`}#dk7Ja3Ia3-e6q;D&W=tWKsI83QMGKkW+yUDt5ysvSB^SuJ*lkF+O8#ym6 -z@9o|J6S8jV@iCjKR*e;6q%1b{qK6=1DPw};DDcleeG9C8Q -zgXyozJ>i$TLPTer-a}E=g#Jw18Id~ruD#58^n|9LgxUQ)@xIYw -z)g#0=BWdyQ((Stf%F|c&#ot%5uyz4D5kM)LLlXx&SGkihN -z6r})PJ6*bSmhHYnFG4A#xnl6G(M&_Lbw9Hn^RdrR+vNMWoHDds4P+y#Gldw|-R^TW -zMHtjKTb(>5r$Db)I>`M<5=|a96#n}SEJF)A!?`_{wnE`STU{aekddib&4V9T_Vvi) -zUmB$$U?m*?)}@43S-uS?5Mc=qil<+Jnw|S3eVo0t*6jdO-#SJD`q`+@V+2$_rRv)h -zSGrmIQd2OV-NU<|hNE6S;?2rcIlti{b&glysRhatpmnOtM%g+i2G@Av3 -z%am2XR)u#5&AQ5KE02uH{o+z1AH%@$bz+-lR`A|s3 -zbVo0#@6_U6mEa6q<@`mLY82;FW56ouCpGO~RrRpK?M8RalMD4Eu>UuT-sV2vzbLqGE>}f~Zy8bo1WnhL -zHA7ONL*QnlMV%dC*Y(|@-QR}nAAjdrO1i?HA4-G=w*@O7lQ+oWgtG8feUpnIIM`m~ -z;DGoS)Uu};cx6kyltCsl{3J>Y{Pfgu?%U+lLDeSpgZmE*&ES$7Rc`09gZgcT>#lh5 -z%%sF88F_Wd1`!s8h&FQgghGzbn23MwqfNx5!)mZ)=5D3#>}FMvIt^Z)F>9* -znv2Q_KXTbW584{1kM9mZL2i!ijL-7OJML~Q*){x_av1rcadUJm+Sg6b^L - -literal 41058 -zcmeFa2UL^Ux<2lxGmhf`js=uz0|sd-5;~|TRYZ{{p$sBo2qDr-K*q740@9R7AEhZR -zln^?MAVCaeAcjCf5fCB-2qA<{^7{hl2w~1W=YQ{i-E-GEvzBX?@MULz-}mnKeV*ri -z_V(e$3%Wc%2>!5X(HD5kr@7bME9oa5_ -zc)uZici8@q>l#rqe&S;(qUO?JE?3%ey%p6m?Gi_F$45p+#yy;&-WO<9)xAXBI8_@P -zn{GTFoSZw7tF-6P@_$hIlNTJ^LoJ4}0-_V<^f!>RvDn3J3DP>prq}Z-@tm)}lr6Z+-1cq8&bhy`IPhN(4 -z;3A=)Nvy9<{c*DEGE$Ye8_{sDUkz*v_Gn78sKgAtjSjE2vaYJ|k -zh3-&sn{F5z5n~8Xj!|r-lQfsCDE?RB+vT6AA!ZLrh3rn9pQG5)7Ax&($_wuY`#bRh -z_0?&WO@_TBxg^cOB1PTiCnkA;4N&Og?KRU~DyW=N`ly0h9Uf6q+ZTt#;82ye>T_@E -znzxA|jD3lRf)g~nT6bJaR}Y*tp^r!->#L<2#8I?R(0th~rw&97O(Hk}F=^s9K6-(o -z3e4j~AWIFnh4a3J1yrB=m6D_1ld>W}qf)6nSqET#_tAqqklLeq;HrbLxicj1*F|6|4#F(I -zh2Rvve3}P>6KKPP9EAC4lk$FOi*fq$X`!|l`BazyFz9`>{oYjBmM@=HN|m+KBg=i6 -zQqq@C!-4rlU~IljN&U;Gdx7~Kgq836Jf;6zH*{XJZTb|QrPOsP0K+Jta-NvFuQ7dE -ztRllVm0BQ?T%O{qjcqXko?p8T>0R}mnV|kr-+320eMWX6-qOu)Hr~Hh?NPW^huf9w -z5t#04%xX$AoMf5zLsfO -zh8a#nKAl~@H>#t}*h%p%b=dDHQ*|fQi%)3W4Msc0cBR3l;n$KHsGd}2dDFG32JD+p -ziXIP$)!lc|vQEWpjpVsvmCFs1usPrff?08;zTmW`8&&tn3bCB!rEN%V)Vay@SP+}Y -zchTq&MA=Sc82{NBbf7FL)ge|eq~nvmMiMGNyK_!gsJolmnc%a?XI|<`aF?Vxhq88N -zc_sN3rxcAg%s$m7#T@I=yWzU^{4J%X-rjxDFdoM029iLl}4oV8_Zrt65Nf_xZn4i&{^C@7`ravkc -zDE7=M`LY%~uo8p*PS;;Ju*0!y>;1A-)B -zTs8ktk-b$&L!UfQC_m&u1Ks5r^)Dmsd)EDX($kmcaB+_ai~f(>p{leSNu7Qf_%Xk7 -zWZ+-~MjXw0j~PwsD0DmTKD -zrki#G>#H*m0`DQE%lh>-DfH_Zk$2JC8r&G*0h`i4gBtY?pZ()5XRVq&x13D)5R -zn`urMFme7T?Z*o-gWZrVR7|YpHQwAIvDq&A)V! -z1v3q@h*o-C6EJ|QM|xF_->ZH#)N2c5kU^PwANQBQv{_3o6|ph9IT<7otyruf0l#|Q -z&ak%F)FNmLlL{Lsh#iZKI#_(%XAAI5_nVM%18cO*EoQ_7mP>|uVSBJ{`(2(eZ2TVP -z{km(~smDR3&2gueO98xnP62lKwjDBzPR(BPERHEwG+y1g&)Lq<3ypDxAlV+|WVHT78<&-1xUY`3uO5@p9s -zgUA3#s#I8N+>gppp-&AH3w}bxw(M}SlTK2-mCx`At{iBnm*?-p>VCq^T6eOMT+dZmA~6mmwOG2#v&h4l1u*t -zu63i=^i*MNmD;>>K8|)44kVxDr+jRP2L69U0t^P%4dQtBMi2Te((CKB9_pR94WQTc -z_t%9CNR>uKU=(*iqMt>8BGD0`hua~$^>;voLPs>6s8%aa(&!RvCbky=hcp>;Iaablq942_V -zEj`Y>4P>nc2B-n4IMqloC)LQofMkj{;M@sLIn`((2K_4iDH?KKKi=6&pL`RTQ7{_P -zyF45yOlo;_;8Dm9M1aP?%fqD~Um3mj9@*!MxOcv}Fek -z*R%5EzJ4#1`EESsdYk$78`&Rh61m^dHCfnc({WW3;ZmqWLH%eSV#W;MFXP&2(|1*L -zCl&VdF_P3wN1=`Q3frB@F$LIJ?|0vh^j;1 -ztDxMixq&zA5yoJIzrXU;2vp#pyQ-H|7xr3bn1)jm^G3MwcAz;tmI3kahybUtTnk#k_yp+`ol5AyUnra1w4z=&fv})98doK>_M&w^Vmqqv{ -zEoY%BY$!IebpKpeIrlwhN2AT~HdpuF%~G-J#-N`jju*xKfS-+WE;CG+*CUV4>K(21 -zEvknXyu|G(*@3#vg)@m7j0%_Wm06L3j2$FxL10E73r#4VTNq7#wDUZ_k+yk -zf$ZqbRqpm6cs)qrwc~y)&@&`Ytp?`)RKjs@{oF4|7^j-TuE&> -z3bXC8#zpn{G2PqSi+jAG;;u|KyN=D2e-s`tdN|A}EHn4$n&fx^iC!9B3bLx0!zgXp -z4RU>!R8cV$qttD(NM|n&U=?)DkZY4+eP5&?-k*;QgIDJG;(RL8e0xzS^L -zQPt;Ezj@3Cb0P%J_5|{r_AgQPwAdMc!2a^^S)u(y7QM4pg3pYBj=|qRqMLFSY*MHf>V@on+4ZK-O47!>jT;K|mraJ~Ng(P> -z(sEoP()?A#chlqcC;wo*Gk4lj!`8;B}wskUHRml+*qiO?WWiB+4n+O_&R*hZW -ze0Mni_o8pxdN67Ko>0c7OFoE!tBV~|2>Yom-Hi(s3Ct+)1*DhIu|gqAz0*VeVwGcJ -zd)ebkEE_t-ZqB1EU3vvNeMVx_c1yF>N2iyjG&hMX7K+U|)nT#NyF#ud&wU5N;4&=w -z40`};7daBJ7OLIq57)f3ICGdSa%vl!Rm@sC+u>R^oZg=v4?kK(K~!hVev;HA%}Sdj -z%CALp!Md4puFC3@%jqxLXEC~;7(^q6pb};uwV)xUYrloN0R9IMp7;k)8+JNe^k>kx -zYMXHB^@WMbg-3xin(89kX95RKxdnDDOhs{nYs~M&LiBJO*Kf#FLz1W*ZzaOc?bD~{ -zS9`HoOVh`Dw!KSM!U`)34#kV@xT^59Brkzp;ZUmPZt+ZMH1P+b#zo01WJ5`}D_ -zm?rYGW(BL}XY?^M6EEUz=R^mrfNX|_Z8zH^rT*$k^W1tRES{!m+Jn0p)*6^tdSRc9 -zJDCF>*5UUt=FhN&apxcOFK6o1m<{VfjmajEtg|;g^<^Cn&q3`_t^@PW)09QNKVd2h -zHII>~QQpso6U$)~(1(%=4>(5;o}|^zy4`5$wGQv3W><|-pL5ZX>G^2Pl`C=Mj+y&$ -zx>0Dt#XYKBp=EZ94*!%+)Mt+%&&Mb^j|4AiHtK!auJuwLOXdoP2mDuq1qh^sP -zs$j>rH+62I#x{72lM`>PhFT_caEyH7RnG2PR -z7*y~Ea{!ah=(?ZO2+fO$J4W-Zh>FH~O35vZXk4sJl|}oNrcBMM@zqh_{ -z`9oPuuQk%yMMpG#22n-~Lq~#aY}c|nA`<<|){pC5{huO+un0_W65{17d}gV*pJBHY -zpg7%O7;c82VKFNSQ^R9;g6Hp5J(AV44bJm#vLrKywHDqbo8iL)sFBX|@>MJW!c?o% -zV{?2^;3z6~LeL!nr -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 -z28UHD-a#MyuI;w -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 -z>vNzPX*@E`9Z6X%Ad1V; -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 -z1S?x;)j5-0?XSvm8pe#}vtqH( -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 -zPWF(T;sYX}0v`su`I@`(u3A}`km*TEP91{ -zWmqem>|mAtA6S?W1JBu%u;C0>|@Hq5P=y6+*0i!2E}ACFMi8$+J^ -zR@FWAFg|cx(m2uN0fNdku+0D#LoYT;EE5g?cmJ2_ZRCF15TIwzmSZDaX3Cg?l$b_6<;SC+pz(YKlEL5T_yT$pY|TzK|8coN<8j<>eR_F8SAYO5n}jnA`o -zO_MYYe#qASWS^Kfve_nTXYm~hcNWCckRicu-bUzGO6gzB&t9QV6S#ZtG49FYKx06_zT=G7CJU<7U!dJ>-}ArCT^}S2+_E7L -z^OJ%@sE9{W%)!`$UQeEavbEp`>Z4{8k@vR5k`Qb`!@UZu{ZBp*kalMZRpztcpL%#M -z>1%%W9_{gACFq~}^ehO2{=f;gYG=|G1H?Za=fG!{@1ra%@MNN9@-O~fKvv+@ET!Uu -zO4Xv2Z@Q&SVMBII?q;~52ZY@UQjS6$Mf#GWQr;0}H%w!)Od%QtGDgsQIF{Uu>B*8} -zP@}PFa(G=Fgmr=-vPbI4LMav~u*Z<1S32~HN~9xRZKEO`09}BI->BsE_i02BQzcAG -zDbsrrG@UBQ)|jjXijj~SakKa2)fyDQ%gE#;+eVG7ak<&jNmflkHcZ?b(>4k^j!K;X -z7Gkp0+w`04FKDNb^sbDY7O54y)67sz65f@vqd_jYfUn2$XF~6rBYC3p;T)i* -z0-_YnuK)o<&RvqBOy|m*bDP=~ws&NNBgpyc_YVP2P9bO0ATN^a$H9)QL7p|D;U!x1I}oQ#ZO)w|5XN+86NGe80fq@lv2J; -ztzM;Bwby_zG~p}3LQhfXj|si5IVegvC#pNDL2o6|Mc@V%dv#@aiLx^ktDa7{J}|_DA$S_KLxfaips6PnpK*r$U@y#K8ngw@O@)Zf04-rH;2ljIR6RYE0@AQJV4W?f -zz~_}m#Q$`4p^wAge?tMJKRHDVcQ0e6ya<4{_p{62u`ER>Y;*VP`p2hB1jQb)zMR+L -zu9y|pNI28XWso0O^DzFsMf(b9x6ylK3|1dC5Mj)F)Fh9%%zUkVS&{3~uN>EP&Oq(h -zQQuMFEMKd7{Gv@GoL`03RB9U(r!c!^o4NDuRPzY?!7ehExH^HHg -znpWL>deqQR`P$*ro*vn|cK`{Vntg$y)h1taX*UR;Wg@x|#_H6NbCbd4eft*h_tzsx -z9@E4tnTeO3O`TPRrB7d4I=pdrT&Zk(Y@gj7WxbN@l@erX0eXB_Hh&A} -zRwC6n8G*QhzGABt7(3qCYLb6W`LTG2dfJ!}VppVo6>g#;6Z@p0$^%&XNI{lS9b{%OUd3A+PWYYwcXy6_t-<7n{hZofKnBoGZ; -zqdVcGd72>JH}qmfmtP8+P_#hILiXubWbr2J8%tOHdn=_eQ$ax=h(yx24D=_U-*CPI -zEzWdIvuh?R3YB4#FEQHGM`N-uZ!WVU*MA!p>W5W>#!_K-9!O7nId6y4fQJ=#w{A1{BJ8fl&Pq -z9($P_-C$k0_2p{cW=hir^x`*x7%7ul=C(A=@#mchlk7TuUnbt&md;6{D#>lOw92iR?y1r04 -zpn!7~=w9b8z;Dl-im{65*Q7dCWU%{iJ%s3|c}_@?`=Th>F46Nv(|K*us_aYGqC{+g -z5y5oX_Kkuku{wLE4Q0eIL&Eo>SytQR;L=~GvfrQ)tuHQ&~%{O0P3AiI>p;U^%03T -zO1!F9Y{&~30dHuozMY?cn4yPh)h^zYVCiO?c4cp0or)d2>V$2Yiyz>~Md1$|v`MpZ -zwn=*uiNBf|HKVw>0kK-CRXb6+Roh?#LK9#IWb&F$^ViG{ksH(Z*US!)+xGvp+hVx; -z8E!j6b9aUgbTa}5(%Aj$VAgIZzfdu=aifYG(ZwvZGSrnG$4Lmw3kd5Bmh{`zwX|?K -z>}zjsAWp+?Ji@uo;C?8ox{NsatW?05d;)QMyAB4yq6ZH9p_o2C -zEuygidc6-fr2(dgweY(uC=TT8(jVmcaDmQ*gZZ%ca8nAeyCR@)<3_Bho3G2@u*Q$K -z*PnB+ka!PwlEP&zT<7*b!eYo^7#!3&%-rRBn -zP3j|*dDfLU!1U1iD)q8UyX@n=4%N^^RV3E%Xro=*p*z*jjP(&+w=;D#YJenX6bW`s -zb@vT_o8X_9*V0Pk+o82FXWEC72qTl+eSW>|dADnf2F)u7uU3t{O%JX2@rgGJA1Lh> -z+pS#IVgO<-4}JFFqp>Vr>0t(TJ)$Bp1|QYQ>T{Ai>Nlz6So6$mk^0{-o_GPC*7Y%skIh$_(CXJ$&M -z`O(A;2+JEFlM=SSMBZ57Lz^>D3ZWe@R^fyL=FNx~``SIj}+|9D1_BBV{+^Vp5wF -ziyjL{{uOrIXC$lztY?W{t4w56vho??>NwhWY-EkHi{z;e>%{~VMH=xq^B;3xd6i8j -zK71^k|JOe9cvK?3CxwuuOJMDQq^b-NmpId9eGZ|wZX+untL@NZNiJzAEo%asBJIfm -z<{M*Ug29e)7iK8U4r=C?gZ3QXTkHU?{rY@KL!IKPluQMgOS`r$Q)u^iq*Dy -zhtYjp6T!QuXEHKGE&ieH=3VEpG+2}Vw9nZrbQ}(LnI!e2cnosBNND^tQDrL}{Hn>TFs99Nh -zr(`^=m)(0%3y1GXBV-{&KE2(Dn>#W@%D$8{UxT$?u8S~IecVRjp?_~E7M}DWggnMs -z?DmrW{5B*p-otzA=?ooVFtNVavrhwYA*j$RfHiD+qNnm0`8FZXVAARV4b|HjPb=2p -z0164THhAORidEZ0o!iklN$g`2)5cGH4B3ML=O)Ez5;ty-0}dnlkulOV8Mf+xNQ|uc -zDj5x>RwLCg^c!d^A^XW2exVpO7HH&P!}Pz8CJ(Tu-mn{KHOwUXQ(7>G{d%7i3&H8f -zNYq$9;H!1Qm?OGGmeZkYUUW>+0!3GbAf;mDS&1nMNJ1D~;=|L-L<2fBvC_HGO^5^v -z@fM|;`OS`ppf`^D$%~gl9PcUX`fPC&a7~;G`w1B+&%WD-%KLb3V>hiB$nE(Tx)c=P$mJZvz>pq(jnql%Bgo -zdp`%Mj|)iRLh7wU?V*%HgEs$NxP;Ipz@T$=5Y6<;`u)2_VOlURov@h}Y>tg>qdO_ePmBCJ!|$HD5lFjd4jP&@qrhS2j?I-eOySZwYxVyJ -z)c?|nizz<CSM+S{ByU;=HyRatH&ck9VroJYtx>eElEbbztA2y#;$t{_>ycL;rvP - -diff --git a/docs/imgs/eggo_general_design_deploy1.png b/docs/imgs/eggo_general_design_deploy1.png -index 5de3a7373ad8fe34122f0938a7f9fd9b1d22d085..b36170a839880d7ccdc2859c5a5556e9d4da2247 100644 -GIT binary patch -literal 25320 -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 -zr>Qh?cW0S)bj&6#^~dk2Dme2%XNiT -zvlG3I2x@SfH2F36d(d -zdb)0&4oLADIco8=X&fl%HIowzDk~JL%K!@HcN8XV5AnYtLw%GpRQN11m&KC5m?NV> -z`r>GJk0VKrsLM=!blQDQhYXqY5y97U^qEMz{ztku*T#-^{g3#=LpSGY^s)0?=Q>jD -z$?N{3qW4VU54zcbZ`pc9k}Pa+E%8kzi5f>aDw3VH)d3Q8cz4)mcL!^X)fYtH!R%nj -z3yzZYm??$MQm+Ejs%~SS$XC2VhZ`g8qlNd*i`e~=8~-!~>ocobHxwekPUHYW&MC*~K`|I1k!UpE2|2jlYH=>C^OYi5uUQJ3C+_BTM-8V|?y -z4U9VV-;mdN6Yg}%9Qyoy;|6iqF=;Lp{7%%UBvcf9M_%nH%W6CFq~wq} -z{SHaUDE?ntQrh&zvc2QORb@M=^$y`&qY8)b!+hYtXflk?gF`~7Tn@J9lGIY5F<6vt -zexL#nr~h(oj`iDCiYEz6C7o2-;A=**m+4Z%F}pRMV3iNN;e8)`n|$u3`DS_iFU1xG59)yqsRRm7_Ml8eLiV;6_D@Z3b9)?_J%H_Qoo$dchr -zh^mZxp=p+8*6>Xn-ZgAVtYmwv9}yRf|V#Pz#6lW|)n` -z1>>Ktn^o(FyQnXiDU8*@%5b}y2Lin9|1Tl%Nks2PsUmBU9d#Y>@tAq)(7cYQWOb1>_tL><~^HSOt!HXHPa}w7b?< -zsUZXniBM``(g{;XCy-_IOBC7Hy(In1vwL(Qa>Goc!a|08RC&8+WC|(jmD3q-I;Veq -zWIXaH^(9+C&x{?TjtuU1tH>MT9UVdT^C+`~2b=F?(~ -z-@j;IkYbjW#=E`gRJ=h#_1*O&v=pdr+Bq@mp7su0y?*-52$!a)tMfk>*>43`1l`W_ -zWJ@)@PD~sQoEz-tjrKLp`0d|ZUo=5z+Qq|NQ$OlxA1pp8fp<+dQ38_uhYA@V@@KyX -zA)h+t-m7ZVP-L8WCHH5ps_4S0%%_%=pH|(pxL8kB=`>EUK%*4-3KM~wTqE0H&kTrM -zv_!gR6;B%-aCbSC(E)kW#f?)+{~*$TBi4fJqoi(`l3?Z$Jfbk{f_#qYna)$0zn^G- -zm&$Bv)p`8!VCvN%WLkdmHK6#B%sDUqcz@YyrY***>D4K#ndYK$pU-Q0$2I>1C`JjW -z37(T*aQgl(Z*^$-vBnO&yJ63MaQ_VtSSl62**M{h{I$&v(`&+oHO@j;-c%_AK(j2<(EpWSG`q -zz>RDQ-ei`=g=fu(ujQVCH%94mM$H)M-Ba~wGGoVx(J9o4tdl<5gPnd>4s`^*_34l5 -zi5_EKt*5!AM>^7E#+Qc5_&qIwqz;iKmD6gMh__lEsj`~y%9t&v7`vk``R7&DOsrAI -z)i~p`r*!-_YsM2A_GScUxevEOy;kZrm!_;c;-BahncCBHJXeVTDuNv3X=~MDblVG# -z!b^75c1d>Ec1!lu_DEuCF_PHY({qatSWTX-z^C6Us6=r|bxbq{p+6avbi@i6bpVI9 -zv4td6~_ZYk$(a;w@=r|i)K2}Vl6A}bgTF0WDW;!!3!u2S@jAG -zE$O+kO@QJ0Kr-e5@-|b#CQjd(zw=z;NLxsSFAD*9N~P)?z6Kn#0=d@g?n;ALjmHYT -zX~Dj(bFZXXegP;@K2LxR!Y6Yg|u`^0Tiv=P6G0$cnLa#p2D@oM; -zDQRqA@#?>jEg~NU`|GI^~f+R0|S-;&pYSj&$ -z2np9dK_UB)M8kJ-ic`X)Zv7_iJgc;~D!(3_RA*1KS)2Z8wY@fD)tM^QnBPksh}_9= -zGg_?dBh0qs^@zFvIZuo;_5SGtDCTaL&+WJM(g{UDG0#IXAg%$~e-aM1T4fT=_Hp{( -zxx2jB(s*grYK6Xb>^JmZ1HPg^{LsGQ?!lfyqj5kfAP`-B(Ys9`H)3F;j0?h6;Rdyy -zLQ^`&D7w^0w&=M908whA>plSSSBeCyKSgV+H7VUiSB(4FQle@jI-^gtQlTN^``p84 -zo7vKAcMhFLIF@Rl@w7;JakZFoh`q}Yv8N@kdZS0#{?T4V!#;Xrd2~3^7UDQ2*^>7U -zMS2YRpbP-{Zz%zsy-)6^c;exeP>5;2ztAkU-kd636+ntg+nc^VJDcPv8YOd3>9vj) -zvuF6UQokEX!u}Dd1uCoJJB1Z!b{gnv~#H -z%&X_=|9H7HC(a>KW!M!x@MD8cUp-vKtk28jS+#`fjGEELy2*PRqr!dY9bdfe_=DWT -z7uyW)7bf?Iiw@hCDqXT|&U@V2!v08%4cB%O=gfO6jL_gEl -zQJvXbC)rN!f#6e2-_*5q;~Of0cE26ffN<@U7K -zjyLT#JKK*L`+55eRl7C5lJ%(u>B1U_eR^^iOYkEXMqW!Qu_2UpFX2CyI`&BOjhHQ5 -zqVflIjSgDDT61p1SRzTBfA9knDO>oh)w+kFVvC|Vyz@BEis2o#UZAp8%|sAk4-soY -zMdv(8ut|Zv&AJNOW$s2Gx`}ujQ(_j=Ie;Tk7@w1$BRzzX(K3 -z`kcbnv2?E?eLVn6l;6f>OpY?^aE(q~;SLesF0M-v;7*Fcp9}x_lio8WxGjB-!nGFAJ;%55pPQUug{znXBeC_}@xw7=?}Z#<>%E>W -z6^=nFiqepJ;f>LZ6-M8<>vq}0>-XJW!z@R0ppP@p%&9}1DhAXAh}9G+MhnA0D+%6l{hp0L6q -zHD@vEGLWJ=Vxrelacc+g^a?KDne~}kt*aMulf*M=DP-AS123|o=i7>_(HpOt6xW5) -zX;AymYo4aSlO%0OR$LmhG+2TTJ9D`MIOpf4e%qGoUH2Ihk{s&?jok+=fwWS{Qt3j~ -zdIkOdy#3)JP6B!n0*KP&|HhvL -z)=z^}7QzOnNO&aXD90t9I(IGJZ+|BtRSKSnNcC%5Q+39 -zvLlr28B-1vI$;!q03I6IWgDN|0;7t=U|QBhA&ZvyPU+o_J;44uBvV_n)6X$>E)OLI!*0tA#T-pn$w>C? -z5Ejo38=`)GyiOhUPXH05Iy}OuK5IWeJnX*DAjPBts3%)y>htIO2V&o-$2h0Ti2x$V -z4taz>ct1d=$;iZmqXJ-838b=6fFVfJ-|;#WA%QfDle1|1?|5=~sth!pd9+7NHObYb -z=WvH2QaX+#1+aPL1yX$%-8Ku<<0TyZM4Su-z?SI+SIQt?G&T?B#ycYP_j#QRS#V1R -zg}Do$Gw$&xPcrCTidc^dAh{kxP{_?~;^q_h+Omk?502PsB(cSH8}(N@n_ -zB3@&l)zWaM%W_O)Ym>($U+~zqLqsIL8rj<(d5#n_istaZFhkm}?HTy0fOIqfEqO#v -z`!qNMk+G~`r5FiRaEXEfb)T_!4Pd%Q!ii)!DP-MFW*UM#DPSDjkbP87p_kKX2U@<$ -z4n#_a6ai86UJQeIfsOq@7V(Z;^-G5y*AxJ9_0^&dwAzquKTww6CwPMQ69lle+|^W$vdkb2mg% -zss){vZEyS55JfOS!=RO|?6}L6nlw__W9usHtKYK1pyZD!FF2cLFuRT1Ld3$)R*pwMWbb-59kFO8>yaXD19f2P&;I -z)YPM!y?cwH|Ai(h@?<9V>w?af$Aey9#dfaoJcL2&)+YOZz*Gvn5iI}Hp0(olMKwmA -zJcQQoDcwmIwqe5@4D;Em$2Bd@giWQ;Ki-V_KOXH^g)GnA5cn^W>YkN{a9v;@!&dSx -zTpPo#hH)jh+$li$8 -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 -zjJ=1FL+!Nc{f;L -z5`=wC9>BUpIp^$FLqpV7G;u|82ftEmx6izn?6$@(s6jtu2%Zksz)5B9F20Xk+Zwy= -zY-6qjq3Yf0pVOO?Lm2N!idR;@&$mwVJGp>;unBNOuN2lSf2nJAwQTx4OpXA7XKd3H -zJQ*RAg_$lD#Dlia{xL2h<0)`5gEro}ch}J3Vi^%zQv0~Zz2L%~XJJyG^BOaIr%UKW9!%xjIC -zeINM@$*NeV&6xA<3m5MT%}4N7PLF|yO%Y;a^P}%;oHy>eWvj`AyGBE6t5vq9cqP#* -zV7Rk*>UtNRLsm-rbEa~O?M)TJQ)jr`4Q#)C@P73@ly`Ff@QG`#JTBdt4~TG`X7T6s -z&uck3m!>Bk?w`=S6;Xo<`YJZ+`Z0xiCnD2aPfkUuYvopoeTMzTh2J8$E9t3Ah6+u> -znrp6_*Pn6AF`>RVO+AEjmAh+^aH&q`jQ?fe2OJvy{WZE59X4VuqAc8=6UQX{T}2)~ -zQH~Y7I}B#o!kqC#W$nap8um_{P&Q@&=fwD8KfY@~Ym(uXiOIvD)({hX*?9MWQ}tT- -zKQAI$%PbUz=_MH`IOX)IF%u!(g5|5v-?mis#M44)f842(@0cCbo$1um -zC*!8U`wy;Un(4theUY+9Do?Xz -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 -zxgdqsvp>wWbr+4mFd -z&ljf^_(p7J`ZOc6=A{NVV^>r2aLR~|o2ehrn1|x4{nc#SKh;Y7J&4|B^Iyle4&Z0U -zg?o1rg~6Lb42p6}BEid+Hcz-*H4rYxaOKX8%%H=E$Wm -zR3`{NicV(Y@=s=dF*~jqZFF4o0vJ|1e8YpPf5XGK`+)HQ7>d$Od%!qj1}aqgpke^t -z6mbI#ecu7Ia0kqCI=Q0q7_% -zfmx#&klXsQ{0~6dJVC&se_WHG3!-8GK$`$qa`S%x67%PO!b<>e0Qp}4;hXxO@Zw7T -zCm=2V6W(6y{{@hOq2rqTp-FHFf(Yhg?su5?rdqBx;+`9)L*Eq@N1K9$ezYsD{)&^~ -zBJ8zSm9`kh!?LHeT+lxV+1JrZg{iQ;?&8?May(7o@#fk5p}Ff!a?#oaDGdc)rV=;X -zmH7JQuqekNpH$sy^*#@|x8(#rK>7ky@a{aXRC^I^;@Cs`m$5qaK}ZfKXvu2;`K -z(S4w`&sk=|kx{n+560jSh7$fp>$UEWV`Fp*gOI%zLw>2cl^n3Dw5wsTnlJbTrQt{D -zvI^+)B=lp(9Krf>IxmohGsx*IzTs)h>-#m{Ct1W9YkBnnBQv0S?4P?~J$L-Pl-5Lm -zFr2aHl(#Xm!`Oe~B!c%EMSzkS;F4OI`$74v7yk22eqJyQ1`a!!$+pcQ4;dcArQ4TN -z1|nMoE8=QG6@JrL`bUGgtT9A_rC4}jaDs8=Xyr?J?sEy-M8{W{K*5pU-Szht90yvN -z*i4BKnw9I)7-hD)oi%zh?I@Q+zp3#shuTK#658rNU%v4*s;>U5u=2uo)fV -z8cWltV#xe3>$2zPF*dM0R=L#nYkWZRrip$sp-H-LoBcaYd841|O3we)-jzl*b*}4s -zR%@v!LQ8>)N3aecAW#`a2-M0@KtM!5W-U`A36U`dlF&MVj0G8F2-Gmj6ox>6KvJYK -zBuIoX#Q-rNM9c(45+DhjP0zh|_1tyuTKD%|cmLWy_WJgE-u=Gsx1Z3LWvT0^Shg)3{YcVHbrj7S -zJsE~yGNs~LWEotauB@WxNCi)6necdlsM7QXhh7*$x8eD0xf{u>%X||{4IvpN>gR~~ -z?IwMrfd{Dg9WfRg;ZXk -z#ZE4~(fluw2nLc#`(B+z6zmMdOCYd&HguKgkO1zgW>DD+>=J -zKN(mKBQPk;05_Z}o>>OfK_!oOe(2368a<@tz&MY&`T9K-Kb5HSl>KKHKD3;u-x}mA -zC`G!jeN*h;V)zPg-$Zf6Z==YQ5*t$#6Sm!x -zVv3SKZayWrs3EmcGxG2TiU+?*j#+p>)iHtbEVRZ-XA{|DtOtl2I~V&|+2=F}_hxc> -zBVNSuqRc_8UCdh$Bc-;tb{aCUt&A;MaeF5!3RuZSs0OX%LP2eAA7Y%jKD>?rPC*cw -z&9x^m@Eg`?>93^2Ch23f!?AkqhhVxin6#voexfO$WkmKgRl7;gN%uWitAmqn7FTe|JjM=D1^hF_c -zUiraZww>^j#Bl21TmI?9SK5lRR -zse$g0w1Rx|e8i$5=PIr4RBFjCXstl1h3>-Bhcd(Mp^KYHytu6paG! -zKcEIh5gkJo$Q~O>@Q5$Sb_wOxP@Et(6IAn(>w(n1o;dG<3smqd809STZ=(NLDJ5nV -zRiv&jFG4P_lYJXan0_DPD17*wYD&XwfeVPeL22-ZzE#*ZFDW49fmsCuw`4q5c4>h?r{XhABd%0%#Cez`)U*#UQ7r(7KOyDp(Ew7GlaYZ -z+-R~MqsXj4O2P`y1AUf$QW)fo+#6ZGtfICznkA}=$D|o?-$`9(9uK*E>b#sGq?uIt!ARCsm3IXZjrEd#T%bF$2aSIRanYe#d)EV$72;) -zaU)R=mU~m+Ah13hlm1Ugs=HYaD4r@)7YxzF)r7KG_1j^UX}Hs^%-n~nDUepIsl|?# -zxgqqId;~dMUvlaC1SQ%4)lF1mjl6_uG=yC~LJ7)l9eUsKCH$#iiDF}S?K#&KJQbdE -zmSgpt88%{bW#JKT!vn(_3#HiTl1?SEye81Ph|=c9-Va|a1JZ`co!XZ(s`H5))I_51 -zR*rSb{IUv5P#S<1aBHJE?g%yef^(JcmNi0-*PGI36fm6O{AReaxcNl|js -zAh-b9J}wmEPp0XUM^7yqS;H&d?lOINeff>Gg3wY5Dr8(zN1OPVG!6y|%Wv5(%_V?P -zNd=J_2hv#;;;u>l)IUM^<9Dm%O5VkrXMz(Lrzi;bFk(W5uZi*!^U4yGDD&bFL{Cj< -zdIV!TZ-TR+y4v%}FF;t8Rfus6B%gQnq(c -zbiS?Z9yqc5GupvI-$k3a3a_ppBnV#2oKe)KU)Vdg7xA&Li|g@jyFczrJCAoU%LX%- -zuD?NMH_^^89b)>7+ud|V2PXIiTg>Mo>(1ju;S9okqVsE#uKd*&x;EbK^~c_o&Rg1p -zX^M8C-85}KpTuA%$wRg*p(rIRs3j+(IY1Ca6m@qmYs}N^B?Hd;6;NE8n_wHh-OY4_ -zXz4_^>xqal#CQT*aasee9e@muXE0aCq(7jVUZ{TD&fun^?8Xyt;B79#Ek(EKb1cPB -zG;0%IR2`Hp=y@xsR26^nat4f)uc3NUtV!BuNx%%-%##!8PbdxNvG<^@F}tVFNoIRn -zbJ|5_h=AOsy!t>-Mcr1vJC=IyewhP5hzaTx`!;(a#K$}G5FXV&rnS4JH}(}En` -zSSbgkm*K?)#jFx77OqER15O@i8TuJHb6r2Mz)4Mc9CZQAKV*@KvrUzP@&iBhWQPuH -z9}id&$g&%~*l~)IGyF>WG=0`gVm>eb?j6YCO@OnIJi3#24WW#kkkqo}ZXzbeQh{U^lNVv-F=7-Ehy -zk-TPEGF`MKZlJMw1h0CFOJ7ZWprBM73a$(8*In@iU#_X#FT*1Z_%EiA%eHAQ4R;4l -zc4!hx3&$)&3|PSBZzw4$4lfOW7F=VH%x?nbe5=N3JRw%wzS{dGzv;xc^(SsLr2-`T -z-&r#spuh#dl6ig4VeCmK;!j`wg|l}6gtp_;OV>lE!d1d+t@uqpDA(;6-K)#|s~WIj -zk%sjLsQ15cX<&gO{kHf20SXVW+J8a&KWQJ(FYVocC=&iVjp5KiZ0}!Xj6##D`g?Vk -zlRZk=LZ}BarhZ3r1_oywn9TibGweRp?fIo*2WcY4jD_qvwGQ%X!g*E*%#u6H0d24I -z@VlX`rpJI4@JfNx{q8(NzqSY2T$}S93lW6#h3IFycVjWR);}09DJFzK{LJAzThaWm{IRev`1ZgDFYyq{ -z=XvdP74CgPV1xe!eoOJ|6yI+p?M^~B;rZ1*0KOa7oq0bB*tM*s`q{+&nlshq%}*4B -zNA|~;BWwL^L_hpFKH$)dSBP%AJ%azlg6Ezj+`IJ(H9a)lh8vV+C{)#<){bkF{t5g-2w8Ue7w*Nfx^+-*MCIVrKG*Ou&@;p#K*To=xoy|C2)B?$ejV@bE=E49$88#Ty!pgHG25eJ -zG*~(P*M-uB%7uo7xQWPT`o?^P75B3|1wh8<&EBzjN@bX#wzQZ7J_;A|Y!6M{P&~bF -z}uMHBAmlE%(t!-MT>C_CwSCK9 -z@vXYYJj@+4{Qg<@*O-fS-|4TmU!5vS(rhZJc-88V_rC7~NEfAEzcGQn$$lp~QEyA%{0?w~PP`Il)skMLwkZL2kL{^nnS*6(k1T9;Ie%5? -zc5D#c+2`VyYf|ZgKfCV%y?^-s`MK!++5i7`;Lk7Cfk^zXf7$T+(>-k&qaZ(XYA<6y -Ogw77`_RZhly!Q{>wOR!L - -literal 24985 -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 -zBYC#j1|u@~oT7%=b0DmQn?kbiy2u*mv -z8;8nDAgR)CQK8?m0&Y=^a@<|=1`e(L4s?K2vfDPW8$t97h@A_R&y?QCUh2(6rGbr! -zYs;k%I@POJ*+*!x=Gt1TPnPrY{(ZMS1xJZxcBWZKa|o#;VB;Kp*}5W97Fs#u$h%Q{ -zhHy5}!rr}r7WNHZPU$^a4@(cvtcPi5$&6>+WjKX}WOzqc#=WVK>cOSmW^)?Xr35<~ -z^a9*D1~;FsIj807_VX6KAq;=T-ta= -zjC|Ti@kwx1J=oCS^tk(tSdQo&o9JHUs!P0jyH4QIK3VyvO)uGa`{VV%=f`#e$$UiSY0#y7Mc|mM{u)< -zQ9A~V=aroH;VnezHQYzzTEwKaPDuCY=AfeELA7ZR8p7$Jn2(5TXB9ClO&Nag{XR4+ -zIj$n*y?j!^bCFd$$y%3?dCfXSEj?Hop-hzOmO9POr0i0aD`AlU`$?&ugXM&KH7Q^& -z>dD@_X@ng--?704te*u6!>_9DntYKPj;auU5ZN!@>}7sUh^=9BIEv~%7i|sid4}f}Q)|)WYY@?6JwliYF%5Fp5o@b^x -zx=nlQH0!=*iVbww_K&mA1_>J1Kxc~%@m{w^RD*2eOLR?2%yzr3=R#Kp{80)#m&Mtm -zb;42YKV#Bar<*TQA650Swy=K`$JlWhzc5OUvx{>HbTY0wQ7f02);Zb5PGzF2`^=7u -zn3#n->p$61-_EJMjI823W#GIc=m|*Bn@5bl7^K?J0IBfq4c#BGVuzY6a45(h&@tR0 -z>#8o+xv=`YS5q`&Im=7*89wgJkj!bi9z=8k21!5h$u_$U6FyQ-g75UP1s!(FQ2oma -z9!wn5zeyRXC0LHVz^)tuNAxBgx`*EjQNMD=U=S^@q4bn01e_*TPk_*?0S4eJgS-Rm -z%)`FYC*n4(e1FBE8(}=ciM}f_f5o9e6cxMwg!tcK>_J_?k8TUJgEAwqLVd^zVb{O4 -zCSMzib*la=$Uj^d`XX-IDfrhsWcKty^mf%>)6CawS8K+}w*4y%y?XVGiKQv>g5Hce -z5c$8t-SSTvtNJ%5R`|ii>$@R^s9dkyn935jZaMYWH0H?3b4GdhpZztDXywB5&d$!i -z2d-9ikl{}p7*>fXwQ$VE*rDQ=TO&kM7&jks9wT> -zEj3C5rFSgn&FAgFz`9~|e84Crdf3R*zj0&RJI#K&@S@(ntz$nTsq0RvD?%e -z1hMh;m)kA_%bQEv*vk^lv`XUU_WJWnYlJh(TXwPI>%7}ViVIRL%lK`(PtdLHRz5%f -zY*$}ct^_ld(6&v^_oB+~c+}X6LLlwPOK7{2U}<(M_~+Z5=a#qCZ@D?3o6PyZ9|e!o -zm8BFP-%g& -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 -zd7rI&(apy!kvpNe$^5E1o)JH`@hi^`T0np -zoYJc~~4tm2FFI-)&DzgxMc_+~}u6Aka?;Q?(eY)`6h(R`dV}N~yYA(B{rl#JNmtW~Ach9v4_E44w3kaF>$lp%y($6Hv|`Y|j4{PY8mOORM-F_I|AWmV)5rKzW5 -z101-@5o@WZ;{u*=H6divJiWT|w6Dpt%}ajk5YxG)$hImu+EMYH5f%gyc^63NCIIg( -zXGulkfNfa^;dP9*I*1uhM4R*YEU1=kZA@cP_i)NbXEAD2>vgcpR-=t?A-2k>236(G -z&ooN_6fs{W*~OsB-ayo%3x5xQgNshp>!}dkM6}95mSvf*WMXQjtn!d@+2%*HFb%}c -z&PEX1&a$zwt#ra*>;Un-PGX3iR9ONB6%7)m5&-gK!-0Yu32wjdIvq%s32HrgV2OnRzkA?-%0poD;!hXudr`U!v9Vf{&aj(@cE*k? -zwgq{q3}8r*u8kxps219~AGYW6!shuTS3z^FH&Ho({PJ_=oK=vF}0`dz2<5b5mT -z)^{N1{r^o*1k0|W=RY8&N-=%%os(EYrA%9M0R5`SfpnC3g}q~=1Whezt})CtcL-yE -zEduDpN0fFTo%P)yFLpvCU^38#AO=8tlB*`M295UK1N+7cX8#3f_LgTn5Kjxcc+KQX -z8IvqvoaySxA9viX4$P&GZPH6!m3fs!UqamXTK>AN`MBgPT~K -zCzG%`U%D&;*tNJPP6X~YK+Ct?0y-*^UR>=?-U{ODE0=@n`zjK=WtBLj7n~^lU -z97ATq!_;B;!s9(dOIk8nTkA3IQqP~l_FOrb7AD^+<9jz^?gQIQ|slUdSftn$s7 -z3g{TB$VH`blqv`h^@V957z{@j;U1H2RD61T>VqE8e#8gWM4Qf_VQIphWY~}1yTTQT -z2Ukxt&oEsi7LKt+>%+>_Z;i_H#<`i|727wQ?hk -zuY?0BphK*C^yO}6r0%%0*-F}@6R@JD% -zK6(#S(}lRB&RY@h%NR?CM$+9Cu+y!M1;irB)IE#gI<+?gluP&?S6*g -zQ5dslNXuR2{hVSk&o-n~bciB+iX|${sn_ -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 -zz6p*lka -z^q)3FyH0rI_~s&lw`7wC<&tE9fC_0vZ)!MW12mEK`si>wWj^GM+l0PvDV!!sBv1d9 -z#UzGLJe^bGt<`npZ2d!ko%AI3jD2oB`havr(f~ -z?VzgjqG9%PjY+Zy1 -zW~-l;zqDdwm(@pxxUI|AmKbG~6|-`B{dv|V#)Rn{Gt`xeI&${qihLSN?M4}e?;hq0 -z#I)9||8&Ye>aT4_H_Q9LX+Jm4FRPe;Wg=8;iYxL+$yG@AxV3Mn4=_5GAha)m+Lnoo -zYAfIEuscN>A)kkWn9l<6ocTQAbX&!p$uM(=kDH(zJ!=0wmAh@)j4z_E#*e3V@>v{D -z>!eFNlY(Mv2a{6O=n?Z<97BDQ`t5iaSv_Lwe!CcTBuu&ZN|%;xV7Zo-7SS_&D~X(# -z(p7txaBrG>f;?9XiXvdkVEJR@b<3%0{&Y^0Qx)@q@YX1nJJaDcrtePGu1_uo&S{j- -zPNc*lPoxd3uYfkFmE%9&V -zr+CjOe#&O~Qr?VPFPHAozAKapUTE6gQEfxcF+~2kL;cvs%SN(QEc&Wdt -zrdZwjXy2?Y(|3w|T8KP2DP4dbud441(vpwrQs&v#)hKE94TmvMBBy?)VMC&o}r;+8s8*`$}F$#+QP7$N&aNdF&cl8)&k;$ -z9@lK+J&w4dm~~LvvoDfvSN;sh^0W*$QGUN^IYn3->bIm%H!uGNzfKK5nfiRT=;<74 -z95;W=;q^y>%Vc#PNI<#`o$U7{1HTc;!C*>2)a`K?&P;y0rR@!hb5Msvfdi=Y?mrSF -zKl#aY&k!i%2046vu@~Mj4JcZlKjmHkh=Njghhzz6;tNiMs-v|2ZR3eA;Ok73^NKzh -zDAqk+I8aMba$rcJIoV{1IJBhtNj=J)VG?e}ot-HLPCCC-p4;pkGtyIdN}no0iK -zp}=e1FB3xAc?l59?Y?qdzOtKL^$uX6hC5J_)oZ`^O|!fSz(e_kdj>lLYQ8;OtFAby -z5XaR%xf&ASQQmL&D(wNJ%CT_(rAi*|o2mx(I^53pT!;e@kEW%#@0G;~-CHfVd5Kx# -zC9*h`mBgK}q$ -zs)0Lqy!xFZxoM=y-v+v0nMRJ_ygTigP~6mBL*d%9Sdmi7(cSo^XOKv^oR1Ad1z -zs*i5A$>i<~3PB+=!v<)#2?})nySzhLmt<66J|AYo=a*%^!4I!ta^G%89RhC*IL$h3 -z_`aGNBFm>G#|AiYeVt?|4>-i74MJF^+2wxE)*x)ToFR`*)`8hNts1nXSQl>+($niY -zFckOp2v$=26!a1UAi=vx4FkTbX49S*F+UACIyl)jWHcd@37EP8>t-Syf(#}C(ZAr% -z(#kGsfm*jR&R1&&JvdlVAu~^;ZjM$Vg|vB2BYL4h;Nza5kE*dFc6vT+PbK@>hyuu^ -zt7!Wo9PZbnWYWZ-lwxVeycPg#{z~JQu&BVPF)yTZI?HRad|+N=yDtm&S7xI5p@t}y -z#cQx*Y~Cv~`E#||gYl$2syf98i^rtg6PXdNYS(g5vfET4)b?nD*I!_kenJ -zKv#xC{E6dIwnwnP&SVx9bzSNG#4@(=X*=MgW8MeyRDYu^m78OibDP`3km~fVzyYZR -z5L_`0Jl@T=zL`H~4zh6tjZS%L`(LTbzABpAioZm5*;h5gxF7+rws3P(_7#WXtD2bte71b+#0eh7lc8&Elq|IF0SB%Y8{JRI -zAqgRBI5}&C7OiE{$hb=XfG(0zO};aY8oJg|)4eg0AjI)o%c<#GJkKYs+~XeKGT?-biwh4Qgz~{Fwi6L&F?a*QxLtN_iD;eY3@4>|{+TaIYiO$ZL -zi(Y1mEOzUVSbU{iRd^}cWV4M?#2lwqFp$K&__;s8M#vSs25Jgp8zL{=1r-5P(0%_s -znAw?hm31-2H{w9;mt-32q1to)=GvODW9VJZi&tUCoVaSuK;E{(4_-_&1-+c3e100t -zjHORc`vogA%9b9iJ;$;$&^`v!%7e8O9>!A8^Zi2=h5^+BXaF#dGryk(J7cLOpI`7X -z@F<8jio2W{_6)uAhl!lnGxYlVewbK&bzoV2$6;|0IK{3wRV9lS;5i@NNFI-#(SUCIGcBnZMQp -zz6}7A_4{iAkcNTM@W0mMw9C0F5GDdTUH>%!D6jPWwH~O2l!GCT0IIN9Bz3lAtVt-h -zS;4&Uafl-G@2^HBAn1LDveTG`SI4ZY0Iz1qgPb@`bo~|r_%dTO#2;<`K33D1O+a*{ -z_B`U7igQP9(^l~SExh%5Gm1bUeq?WhtkVo4=!yg1gQgw$<9=H)3DB}MJ&0V|zj)be -zX|x%+6}G*`0X4*BqjlbkeF1hpl1*UYd8)#L-dt>c^sNrmk`Y+K>LA)eq++I^c>|k~ -zk>8+_zh}rNlvi0~dux7M1QeEjL~g-UHX$%pm{1hJ!RyGOW@;lgVnK*Y4whDA8aGeG -z!9y_z`ENWW<`O|*m`%RP<&Zo#$OCZ+9BOfW05m61HbKLVwuouzeeiUj3tl*Z;?toe -z({t^B8ozodIa>z{C?e9egYG0QBY&CIjV@+3(C8BPOgh=!$x_HL2N%fahth)!*(r^^DyS~fcQxEDWyYt&2qs^tA(-U`lB*umcp -zpz|VyNd&$eazjOqopw-tYzJ%T$=PrI0b>|* -zWCqlcxgzl@HcWZz7s(nyBf2KDI16yK{Ah}4u-cl~xY@;FF&E{T5My-;-X)c4E-j3B -zo0BsoXZQ3z^@5Q?@)v~~1Kn$brr_wC+Mj~66)jMidy1-mnt$ke(C{Im;C{9jDyv8d -z?GWR$u@qMSz`!Jf=G7Yn_s%d3?2jc`4wp8~6I|81e)OVa5U1dC#*)>lD-I4N7+v>Y -z1=-(8D9z=QQSI|%r=7AT*@JISu8y`83CtGV<#t1TT%lnpTg%I%v7R!=0}Wh-*OTvr -z&MH3=r8UXBFI8s8ciYEx+h&w(U(x&XM&U6e9QZ{E1R^sbqBuld-f|sxexwra%65~+ -zmT3L7`h%U3t(*+cWFE$6tcXWhAnUPV!~9H`MdsVnxw&HOLY~<8!AohqExj5UOQEy! -z{2J$FxW=U}O8KrOcY3<+Dm-X`5J_3rKlhTWmb>rC?NqdZkhf=CRO{xvW8P -zbhy`kzVJrpZ7I{&pB^kU$q9U}o_qepJi^$$q1>|P&Echy&z;(L9*nnm{AhkqRDkfR -zcw(Nh1b(-Y~EKhZWI;PRlsu%r)bPjkeFigp0RK3>{5LkK>dtR+5VUL}thI -z+ULG(`c+Y625-Ld09-cHNR`GXn?+ImbI6|qd7ggw6P9U;&62xdBGmW6V9;W`P7b7!_pCGy`!XM0Tz4QLyI-}b2bcJUhez=uB}nLY;PoN?7Pi0bsE$b`yv -zjWwZ^<-XmhJu5E4rv`1z81G#uq7oW|dg6{}UB||CoKate=j^uZeXX5k5C!C#Yd_2z -zwg0xKlYK-8-lkMHBt>Ek3EACk>1ZHdy+y -z51y(t%p_}CpPL*@GcAs;2<1@{)kyoibw?GakUP+R7`#ZaH?oNs9W~22OQ6ieh=5-S -zsd_Sy-hLZhYfvD1x@y;xuF9h$m3M}TA9iCot9F$YO~zeHxOolZBQ+g+CCe`Kc2C*d -zXL~c>CRrzaD|}PNMYq@D45n{_VIn9s7^V*Z;H@)$pIiXFSn%K1f^QtGy`!oIQ-29i -z`l1ksq(>P{DWDP`l?5Up;IRI4O)>};$_m~Ey%>4MFW3SAhLSx)nKgTc(oMnOGyi?< -zFEEy_ -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�-=orZ -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 -zoATHgTJFhw#GLL{v!VLB -zN^{EL(-{=xs;=f09Ty2lN>1rnbn8cjp%@KtI$p;9^1CUm_>PISg+vuYYqW1jEu^bw -zK*^9CZ>omZqZY+~IM}X=3YmK%hb`wLKU0RvTVwRHbA0TQ!ajbT?;A-ET$xVVgz~Yga=*&^*zpy1q`)fs!mG -z#E(tj^W|h*Qlk@n;bq|1OdK|ut%bGfF_X?74C4^MmSS*{=uKmbz@lo4ZnTr_xKdV! -zN(|oCnqq%!4FRg@+r!|4@`w!nz_mX*qPy|EJsJg&oYZfXWuCreteQe~NXBX=>^SL{ -z%@6F(_nZ#?|Gx?WefR%+wU_B?xSKTp{`yiCkw9)PVO`8p<%RuGd0A|YBn?1!I*3nB -z=oU?Ln+@qjF0P$+w`5H?2u}>C?SA&cqBkK8hX>|aL<|P=W~iW~_=DXoT{n;x{(=UQ -zRb^lge(MQa(l=q={noxXwF$$=e{07MJFirj`K>K|pd6VT{9FI@PF$y@9_&SbqY~ry -zAWlPI27e(13ch-%!(RV0obQ;;|5)em-ur)i=WlFJ*R3wV17%enUO--d%tmZ2JW1Z9 -z!%mO>TBO?5>tXEgA@*TFGVtA`I -zoxfMh>UQZTKKp&{EzEg>h7xy}s@NpOoAI4~NRxh6eR;|d4AEhD{TIT~{hZ$hIjt^= -zNge7^*vFu^aQT!>hq6%5JWUqCAH5nu^_7Q>d9B1ct{Aqt{I1t23iR1BT{XVDt*cwA -z8{3*Gi(BXBKN;<=9xk>WPLk{>ADWjc>3dPHNB1X1+L;6fd({#Vowh^PpPit*Pg)6G -z1-fc#lTe|E&$=jpUqbw6alRcr@_KY$H9-zG77U)`rNMc?X2&=pF}N> -zNVvKfKF5!%n><*~IW0N;c5!nbKT3;>q_Mk^>E+Pufnw>*_jacbd|~;aIk|Q9$H-&2 -zIcVT$qdKO*Jt=hNA$K&?D4VOh>};Vhd`?m)8j{k!36qG0bk&b;=^JLNIJ|Wy%g6)E -zZwyus=-ri%oQ~Wj6Q_V+UPxdX*V#)8=-!5;3~$1KZ|~Gmd?1GLBb*kGp)P&FzdI1Y -zdiS&)S$Rg{%9$a +y$h$kn({Dk2vv7vF0lzWhdGfTDblj54b@POoy;7p~K`*;)n -zczA}uR?$fF@YAT>urXgS`IQP+J}=$VTTJR|a;A6tRflz3g1zdwHz~{27toFRWsKrF(GQM;BIT5gbC^%Wr6}%4BoiG|kVY=q7I9hU -zUq-hZj5OTV>ES5+WHz^J`Pu#d`oK+?4uG(1mH*dKuf#5urVV%hZ5Y680N6R<4Q2|! -z{77@H(WVT6|=(ik)?ha8V#yP)Cs<1KWg|R*f_VIFhnA*rD$njx^WfvduU&!ADm&Vx~bf -z>nLW)z+`1$hqi#KKVq*8%;`wv*0Z7iW`*QUn8Sco*sHY?yATHfL!}7AK_~t04X6(w -z00a{U$!M$eznREM-neN_UBanH#N_J9b)a5Y9xVcfN3=#!HDwPVFUWY*&fLOjS*aJC -zGB9v;^r&Nm0;|nQ>nQ%dp3PmxlKxt6`zoXIB*WzAD(VYQjlR)JfHHd0kG%nAp4tV> -zJhvJi)^XTcFk3D%`BRJ!>O$$|o9UW}ZeGbdCuz(E*vY#rZdmuK2~uWOeU)zC;@tMt -zG#g8YFgw|fXGX~IaIs15`#bh8knWHrS9`D-V;lyWvQDd2SQ+i1U1F9h>Xxg{9s$F% -z#YZO3oQQ=u%|F?Rc^fCW&(bc~sryniL^O0I_7CW+_R)>NFrTL-F>6$qct-$jwH$5E -zxur*G5r|&(b9HK-3Mq)5CY7x=n-hlbmsVDW3G#-F!BX6jf#rZ|aj!A3w&!u3eBXgp -zE>E#2Q+Cu>xVU<7@%}IzltbAPMz(AZLKK^BZe6>jpj}FmSCJ}=Ha1! -zPE$v3+5wv5Eb% -z)UqO~?(!jvX~ap?q#U96YA!_k+w-z|9J<3MDwTQ$qoT44>q7`y|uhl{43*zhG -zRRL;fnmdb}x#(+HkK3M6K|X( -zF$SlMt&uvtN_W=n6jkMxa)-Bx-mTxB?2Rh(oQW}On6TFQ6y6V -zNxUFZwbaTR2e!$;L^)^H!-xDXDPBXRos~^VDqPgQl1hSF$*nKF2;b!|F|w$UvjOg# -z6OLz5PH#yyTtdY7FE(*!Ya&h88BZ=pr!A -z90LjhR>Y;Kd-6Jbs%yQvIq1wcGoR6FFry@DU7i)k?Vz2y&Kbd(^<@TOQV#i;fX6J= -zcO?m>o?A`k2S6>=ZEAhL|s$>nHOO+m&>u*i0ouf+c -ztRJWjj|I%5?KydgqO58ki<)|srz@2OWk&{(U6aB^rq-nV~y_CRT1MuA-!|A`A! -zTqBIT!gFWYw>E&q9DxPr-DQcHa7ZsZhoA8|RvfGIJYrZLH_joJNsX^U5*k~xpQ;ptN%PbMYN7AYf+ -zEhMLoE1G-hePzAjCyq>&vTqQrXnis)_6mbY^V0Tjkg-f4)AOe;h0_6Wbgpx7<9atk#W>S15Q&z0!kQKGh2 -z^9tYAbbPMMVh=)+wpt!Bl*AMcoNIrk@ujYwgVXm&W$~Ih{xlbV8H5dF2AT12Bxt&PICM320d^4V@yQJ%%O90+SN&j!HZsG>ERNmDrxnx -zo?@>PRZ4!DU01Yy_XULHBi*-$ENz5kaT^i_ywEsp>if6b$@ApRB$~)+MjXL8V~T#! -zy=5;fW!=#DgIh0&!2|eLswRbmreTgTM-Xd<-#gyQ<-9S&ci!59QS;*BSWdN?F23XM -z5`?5f&q^T|ysgTw#4gNaEhcBE2O1y{b>Gjrr2V-}kejQ({lmo8VO^P8Kj0!u!tCLeE5+dwXG4Vfp-U -z)qu(SlYQl<`}_Mbm6cumzK=O*yTtMFD{}+Gd^sm4CpPngJG(QBZ_apFYMh2nC-J4a -z+Skga-FKjWr7Ci(c%LA)sA!ROZI_Wp9Vo2kw{xAC&@<864nxFh5^>;i9)hE+l^8U` -zaQ;l3PLG$AehqJ}%c_M~>rl^opqls#}K8YKZrrb%dF8Q?f%*ny{PKNhWpG}yh^5zPEA%p_$5vZHU -zedzcyQn2jO>s9LJ%bM1Mx&!TxnwHuh>u)DVdTLd~JFKx7b!y3^%e>`8G%|?BNfzAB -z3=@DYZv<8Os*3*od0D*ClLr>Q&jic2~ZadNpWD(x9O -zV6IqV;N=ypIb|5vz$x6rLENm3I~vpowM7}=nQ0fdK1A62>nL{h1S8AOm{J -zr6lUn5YBPwZ1=v896ctYaQqPqt9`7s#5*EhvM!9Qy*Y>z11iVu@G2eGA_OiwZRQAZ -zFD$rvLQ=>;nR!>Q^!}(Ib}L5)tz$sXUu5p!LWgW7#R#)E2fZ65r{8QbX_D}&-z9IH -zevPp`q7YPobuV-jqc&mAe~#V-!w$zkJm!^pS~|=;e33g$tn9IKTh!W5GDlrlyc*#Q -zJ2057+MXtN^$R}~!&A;)4_{H{MZV0LJ&DIgrCHWCDs%`c7@hYX53~QO*-4BwpMvrX -zaeko4;2OMuq)hc#`ErNKqvd*BMtC0&-4E^ga7)_RN)Rg`t8OBJiM$p+Rj{!L-e)fq5?_1||lT3UQjx*#&C^Qk=%Z1J#;nKa3 -z`;b6zRV38A=;I~+;_Olh@)13mGjAD4|0Z%_L&*atWXVpxA^TL7l6iFr;?aW;5R4@o -zb*Llp+ErPtg_$f&=G5pSBIGI7LDRzAya_~D4jw-g&L%0hYsj=~a?7K}}tq?6%_l_be|>8bk;@(GHIdSCFcB -z-gxkXG|5JCOOE;53nJmxap&XJ?d&J(X_<@@jinAbU!<<)O6e#r5>KPxP=Z-wP{{13 -z+fJ`;tS%+oHZ#)Ao9N6NcsbGMoRuP}9ssknMDya!`kKBy8n?SMy>bH_`$s&ef$X2{ -z2tY+ks(W5{XG`x?|1{mV3X5l)!&;zA?W-tw+Lc(dfnIcT4usE9w&0=4FA -zDWH}j2Aht;<~E!tR)0Fjl_*p$oDmxG;j3puoXELh8+~XY@<)XB_ITb9RFL$4Z^nWP -zu-x-$#lAxcd%U~4y2=9R7bX~tfD*wMOD$)a2)x@N;(+H)gV5Vh6%IL1&&V~gwRD9z -zLgd2c4W5GqL;5Bec7Rlv5<1H0tLae1-{W|ODXP^l*N7tfmeH=?=lVQ07b!No2T57H -zDT>ir_KCsQ#cV#AEI(T}IWh7cpO@PwUBYg7 -zsV)C{16;p-RrGLi<6u@`*?M?sl(+S;M1Z=q%oKz&k&1?>ym>hyL;zvVtn@sIld!+l -z_@)e901^G@umvc*YP>(+NGFt=2JpV#IQr(x6+%+xSchrCNq)o;3(RmBLY+yTKD-9r -z4Ij#_JV_H02?-xm58JMjj|A1ZvekB-7G@n2U%r@f4(BioMa~&=p>uD@{yny3{4S(o5oiZ`#Q4IL;$sCb4chO^#MpRMw7& -z@O!iRJoRIXgEO?sD-ZCezUtJX#`twZdecr1F;zYltYJ~OXJh`>KkYVl7$&La*QB+9 -zbha@9U^LcFePvE%2#)6*d%%nAMzPC>q$r*WjucX$wRb+z?4ZZ2*F-$b(3aVfhADFX -z`t6bswpSUmnSbU2&C?^%hr@T2#uRcVwYa4rsnNSY^~nqusa#m8K%>=Ptn-`Cj*}P~ -zA+*g83|Duow!BL?=i1iOHXnYp+=?BXM^S`X5!p+O-+Una3_!;J1O)W!HYap~&8BMY -zZc5kn#`tKPvb72R9qLg~9H^}Ns$F=3SIa$}U({x*-Jgq)NKJlD6cUCHHCkLUB(n*{ -zF$CkJC0} -zuC*kw)b4(oo&3HFTt~NBp&kW2RLkNm2@I*OUyDCGqL6jHFrdrAvYE#j_R_Yt;*lRh -z?}Av{IJTOfh})qaog7zEIy~ibaMU>Itp}qtV{pAXtZ!3)nB3*Q`Lp7ISyfwZnxv$TF^X87^8Mf01XBbG$?ABNox0lYF8u<`*j*k_d3Kk -z^Lbpd+gO$u=J0yc%ojQaHK(k2?d5_|CPy9+9`bD0Dv -zl0TD`6uy!0IeOnHHZL>r`t@a;#1lsVy7U7=>J-Fw=9v(wT?JpVNko<}_sYZQiGT7the0Vs@cc|ANcN=T$7QgCfz_(8&0s&$a1 -z)~Ovo(GgWB%(m7~ft|?8;!Qg1BYUtblAsqVn!@FAPXSZ{O4kdNiv!t;V#K#M0vY?_ -zHep_UhaBI{8zXDkPD^m9$GuAp(ijct@Y%;~aWksydg_Ui6QsYuFEbt2u6$Lt_vS5& -zc4n8TBFNdOimED5ursU|c0@S*#KmY|HrDV0`ncH}!2M+8VZlS;Tn`%h8~eHRP!|DG -zfL0YS{p06~8Vh3c^Jh0&n40cFfnW~OQOi)xJ9 -za|51rMnhp7Th8VeP2hqbAYj{CICZ@`e;Q5LK9yMic;lb&=MoOr4_gOsLEDEbfRZ4k -zqod>b!Ai&G%?^t<#XtOoa)M!4+F9)#4xNc*4TFm4Z=lWtvr3_zz-K`p9P_fXNlw!U -zE~{tvyD?-V68-{w(*w`?t^=avzi`2d1SyQhQVq61wIoEZH51XAeUz>d+<{wp(C066 -z{sT*_c)C&{Cok``RLGad&-ePbs`S7N4Py|iFFHd04G_H&mZ!~YG%Di>h4pWIovy0@ -z3$F4cD|Y4@#jG_$E{sTzeff|LM)~}8nM(B5Hf);(@lbn#j-r6z}X&23^iZ(}9oq4i%Q5vw0P|2OO0;eKX~ -z3cp^Jw_#pMJ>a-Lvrapu7j?@H0?H*6|pYd -z5bE-pAm;J}U&z}0RR8O -z!E<{F_DUA*30~p8S$?)tWs^M9+oj&Fi(3=C_%*|`+sCSX##)~5&0&N7oM2=FnbuDc|iFrU05H&fU!=!4bfOtn8!7kiySASf|fcII9fC7Cy -z@YV2*m_O;$M1N#Z+#v__dQij&Y~r-+D``^cvDqS)D;4x{*@mFF`dzT!X#0p|TJv9I -z=0>C!w~OT*|EM~B6Y@LtzY0{g7BL2Hr$VJ4&*+%N}KTe?j -z(g={6)`C7EJ!ImGQc0D=ZN#!zycTbX?t+p7}z -zu0}$;eW_M8kK0K&xy{E|P=QsIYO-+sX3hBNU`v&Y&&{{%hZ@>#;|F-D(*N=BpeWMa -zEz`U~?&S6vz_2A9QtYO?SuSRZ?UbbGatM@YO(d@l!FO*amUp9pUgY0-JAIQ<{dP{jbWb -zlNban9*W<*c9h!}*tbjMlML)85c{GeR$>PMr=zj*Z+(TRGb&_UT>LppOTFUD@^yxp -zA=~OD9VJduwx{_e=PpP22vvnO+9OdE2N->p-JvDo?pwN7yL@;~%yv@25X0cG?| -zsy>ks&hxKQX$XH|SlKbv2_M$$r=eSVo69i)&D;9AQm)}1sn?v|A(sqe)oStPPJ)vB -zPj6E7tfL>D;|?z}_?F|p%vBK&aq45A40CVp0*6Dq+FZnjrZSHH!D-c}_`ZB^eh;pF -z5LBSrM8z}fCz-UqcqvdwP^j3L?^iYNCOuBpzK636SP)D4& -zv}wt0lTU)&h2vQg<}J0tyf);ebuTiBr) -zgXKo-&tTk0pOzIW)Q-o`)IU1n7Uef@V$%CbMa9_WJ35)&eYS@Q8lVD7t!d#Osf=zL -zxugsYr2+=~6*wKX_sI8b;1i_NVx9Zj!y}WAMJ6X~j!Le6{L1{%50Nv8ZrPmAOPj&@ -zR~i%r)iB -zn}u?UeCx3%Wv9@H*R`!{yZfl~TjenU^K)z983RXQQOul12l@7toRU2L%rFiS -z!<^2}slSrr?jh!4jp5hnbzfLiXQ<)A%2>^6*quy`m<96CkTIAjraotl*)N-c?rs>}exFY>j*(-w+gW>S&7*wO -zSR^azaiS6|Bcw-dIL4}btc%sY(25Ja3-dxFGW{Q}==SGTmnb1g(y{drC)-B+9Tu|9 -z8m;Zd`%0S{7W3!kk-1;OCd<1U?~w8SIGG_QWguYi1&-)-_mUzP(j|YOJYyh#IPsc$ -z-WjyZS!(}o-$|~myhL4Cp7YKMfUWv5-28pF9da2kcu;yZW^!6f4mi`APeRybeXLU{ -zGw@Gk-f+!f)m+<3iMSRq+4_av{!dppV=srs#Jcr!LIRwuV$BD1G}mVvVu>a~@gLS(YTQ^?qX -zLubH#@l&~|G96`J(`0pQXwR)o6Y^IKW-XjuIFs_mSx+*IsA}8r#K9qyGWSPUPSoxJ -zTqhagl;xShMBeIr%C2lcRj-C;%!P -z#N9tU(e>6oA)+FhOY#r!pfv#~47G}T^vEJLYvR@#1Kf&^8f46o=OX=)Qc(u2h@)tR -zxRCggqU7eYsARRHL#J50%N>{d1}D^^?D17OaPAXkUnZTQoYqpvynWgaUELPLwNr(7 -z#1xmCnB21_7cso&NTI_eY7a9UCS-5Q+doxAJ_-B!ZC$Dd%9YpH*iQ)5o6j}LV(@o3 -zRk@Ym&Si#B6@r<#oU%(RbXsow+)W$AFli6RlHAfNAL|~2ez~K)CfIOOLD_0JkHH#I -zqP5oYX4?8X+<0ExBlf6yl6q^k3Hi<#S(+((bA{I)`=d>93qiNtGY`u!ZtJ9SjkcRv -zJ%^}}NXi>BHBbwQ$(y!gq%v_HUuUL^Dk{v2@$;^LT|rxW*68LJ6gV*kYvA_w(0Hx+ -zr-e2(a61HDW#Y@1Yy601tJWTau?&f1YP%CSi%=ZQ&g0x`ZMg!DEmV1p9pSc5rEhDM -zP!B3?S;Un&*O3Z3HxEC3Idrjb$3plRZt{2oXP|cqWZhJ$);Wb#Bb2M15B$pD*Jr+j -z`?$Vx!_geHo)tlcC34lu@27HA)E?#Po{StOJ&iq3n=${s=E7ikcBtXH6RscwAO@fN -z>5V=OyzuIBH52!yeJ#9uLjU@^v_)}Kwo80nds>;z?D^5Pw17ApX=H|bw?&n{)3ahQy>Dv(R-;?Q -zsGSJl7A7CN;t7-l8EbfwDA$+I8}c>i9?EYkN!Z5iGaDkJ&BCBN>q93Os+`)0%gn;G -zUHu8w!IVHx?CF#iWZ#DC}ouU -zOVIh~)mNUG>rjUfOs6z*&`7MleZiS+dtfU4i@UY=@nseJ_8Xn0_6_XsV$&_brnj~6 -zY0GYyq@6Mm?>@1avn(@^{3d7ZIaOh}QDvRe_`3)CX6@1N_BeQZqCu^RxUnYDwJlw> -z%#*A(LG>XX-l+3$@T$icbcrq815z6@>Owuk$JhSxsC7zHA_)6XB-jv*15B$in? -zRJBa!%2V#gFztR^NAT)TuQZ#{{uE8aeGeVx*B^sT@HgzZE1@3XK1fNKFh})2yHvqa -zhc8B?>i(2MlbS@}4E14A4Omg2$=Zz=QkA_IxtrL{`$jN(G+pG6%zJBplx&Wwt$6kU -zclcJ~gib3C>)e~J=CAldr%Wt5wF -z&|hHawsiRU3)a?SgEhX4qUAF7c9G_*W`F?6{losqWbVDzgOQ}yMPS8=axm|+zRpX{ -z{MZBM%mgN$8yA%(apX^Bx9b}r1*noJRThDh9ki|F`u(PI_lTpdAr9)6v24a(?{PYRvh&y1_uWgvLu9+u&oH)5kRy1*N -z#d6D|MEs*hKnU5(b{V=Jw#keloh7{t8V0x)SKO3pKi7Cqd?Zv8K52rSPYV6|QixG` -zJz*adFheub&u3Z97sz#A8ghf1GdZ|@76R?_vIsjr5vD96S4aVQXZn{SUgdLCvRF`s -zkP6U7>jpm8{U3Gq7o=>XJaEhl-vP -zU|MZwbrcT)DqTbhq4qN1LI);Xnklcac$*3m<=&ybDSvQO_)GX{mCS-qb9?NA6 -zp9`sQmUr5?Od$yd<+dirg?9Bwkp|U;Yqeqi*26s{m;R_U>uS#V_u#K#hdLEX9^i5k -zlwcEoB;WqK=6kwH8neK}^ehG~1lt9{53h$Sx;Ge?Z&Sx7u~v*9TAWHZI2A&E?l*BV -zfrIPBL7Zy7W;TU0{oHPM*9jfuXpT^uB-pxiw4juM@OiuX9le{8A>fEvS&||wXN_s* -z37wX-5QHE1KnpS7apGueRB4no#xt>2BnOUb<4o?YTo={xNrkbjxqSTv9IwocWkV5| -zz}m6Vt8txfHuSK^FL2hq} -z`tWi+dy4*@p0it+vKv2ksnoqn#E((TNiNKw-@Jr8vjd#Mrsl;pYQ8?g*0gBltW)$K -zRG^1_-|`hFiD;8X>*jfJ^w$q5Cz2|3TEr6Dtb4Ra1oztq!Ns;eD=zR{j10U)6KeNdJd{~KP^wiN -zmQ~1otb`n@O>b43`L+U2w611K-nY%j1ClI$!GLytaIQtZ$D&Twx_UH0XiCQRGHS;X -zxwT56@-#=fB!wd>nf>ruI;m0@!Ya7{dE -zp1DS$I*XkAbuuSO2=g+I)y-)I=Q5vp4kK=VnASJGn07U6_@3>MSf;^S^O|92a{Q%? -zb82-~?2K>Z@KrJ})dd~Jq>W?$Koy(@L|CP=WcIN;>6PKa-)zeG9I<%XNYYV2uY@<& -zW{RcNezsrUi??%pp_!XRx2BEY5*7;O77t-I91v4w+BT|9MfzXhc&tWSO2|x4XwgC! -z_eGNE)|@=enC)Y93EFLU$G2C#6)K2L -zFXTiVc{-wQW1ZfPZGz*9U>ytvy&h#F77@`}u -zCta*x7_J9edBWwj@Jyg00-~2-`2AY2Jz%PP=C7>S`T+bw5t0&@CAYprUTBa1It>;m -zuNR5T`3L -z91gBOpC{QPS+4Nz=ko!7;o;$NIDBEYS7g|gnlT@AOba|bwAqfk%&P8c@fmNC!&2(_ -z&e|0nSarOa7hw`1TjyXt2BadtqG^hob)p*p!nA}!Nhs(Tm@=Pp-k%g{2p6y%>4Wdx -zCPUp0*VXtPcCrZ7$*-}}s>!vIxX}AveR@RFXKLcgpSajCYz;hf319vJ?1ppdhWnt* -z6>DxnQXX!?-1>EGKd*(y#!fRI?x-xixgJ+sX5`~?DVy7H>O8=!y!Nb8(B-%*u(nNr -zRV_xWh7kTcOoxyF)`Qv$2Wd+?**>7psSGekHP>Ehwd_P4`>){R53C2^(yxYLBJk)C -z>=01MIB4H5FnV~@NQ?K)44~EkHT%yP5@GL3g?8U|O?g0D1y2fnGtJg(j+0a$^u2!V -zJKph6nC>SwWx58wB%?c%e*6&oWNpamVW8MiLMzzhZ8wZ9}?=R9FS@Y?~1 -zYQHrqnX)99$>M*@E0uoN2o&K$B2s?sf<7^S4HKuixRB(Xpzv@Cj{oxji}^}Ut2{$& -z^W$A0IQI%EjJ>$N;;`r7^Ij2(;#nRL5-!~V&~krHv{f+p`!SmDXYdqTAS^~Z>+wye -zD#PI#d)SRz0PTAsg-M1I7U1EaGI`5;#Q*wQga}w+vZ26hK%M*mOn*NrB)P4h!^K_Q<{{2SI>)L2@=eBfj=(2S{w*Lc?{r#X&{@y6_MWOlL -zSGVj;%75M<88T)H?U|9bG{DK&0|gO6X(K=r{=?UkJ8Diy+nlFL&K7YSPJUS$Km{1U -ziiZU&(h=Iv?Sb5)%$H)!86*|s*cU)6%Nbl;{`oJ*dGgxPN%liEkFK$dIlAX>?ISKshQ~Mi8PAGqlayWQ;v{&S-_FS`xBe~X}QPb>+ -zpS!~KnW3}?nk@T|k5PjGrNK0hNoi^rU?f6`67;W60st#l;jQPv6`8+`Hne$9qXRmN -zt>*fjBLSy_$YOviAyGcsGG^`)#|DOnUcBuZTc4Rr~iYxHXxp9fP -z*V6oroT!D9BAR=?yZoo;z+*?0UVG;~8WF@IwL13=*lA=0P!B(_>#o3-82Wa~_s?wR -zyo(~Q#I9V4{Q@PIV}b(AD*&Uv(cBw2*Pv=bk@Z+dqLa^r2QL~-`EZy{9tm*VVPEg}C0hJnNKXsI%O^%_%ZmP3N2BCP0n -zb<9l-v#4ZeAocOqes5`MIZ$d~+J0v`E3fKG?0knnst^9za%=6Bgw2M&kz;I=*DG>F;5!otD^nG&qxIBJH} -zb-+NpyU+N3xNUwZl9%2QB=e#J=d}r3= -zu>Fbq04SbB6Lv~+`93_>mJ0Nx4?kb8wSCvZrd{OuQVq^to-J72aLM&1~>4MX1vlHPZv6w$k)<$f)`0dL}q_>o7yT;5t -z#DNo|K;D>S?S)feaGF5FH`ZI~0NCKKORtcb{&tA2Gbz5dwg_oC9K#|E|MmWv6A5*n -zZb^K;{OWAo67O2jIoxbWG||0MqCp-BS3$+5?6YifLfdZR;=F-&sRg8BO6J;8ljKNJ -z3=uK<6+zi9!S2=$NrVVKWH?K|jdr>OUIunzQysl(;PYj(T*OReARQS@{?^m3w?K;0 -z2Ef0Xn%Zb_9V42nX=-LBvm~)t+H{_5!;to6i%T$s;a@du18um<8y#*ADT{=U@|D&L -zEiD+SK6vJH19&%8Un7B#J65g($J%G2(sC4UTd1{({nIIMpY~KPpVX!~Eg1`=? -zYD8|;07wRSgASd!)Ig8lte~mguM9WJ)x&Ux(t8*oG2P|#8 -zbqAT(MfaTpWb@6_sLT6&ab`y9@n)1%$ -z*G@2=kHkH<=MH!gY}pJl&2IVL4dCTFiKkJKw;>JDO9!w{=q>G(eHAWAq^>S~7Z(Mc -z76B7&Uc~~S7Gh#dHTJD(SbDMBG_c%8%=tr0G8tjV5B5?rFkRA;4yXJ|YxLUhm&N__ -zvQeUjUgTG6uzMZ6cNxSw>t5RP({?Kr&fNoUFR*+UOqU4M31hb;JnwwJm&|IN -z=+eIO!O701?Z8vljgy}HHFsIanc_*=`YPyEC-_EJKp}8Z)^sD -zrNaGIWv4(?6cTqy{yG2?XXm{AwzcNK?qZx3b@R-;tndr-TrSyg`G=oFq0?KZU#*2U -z9jG4M%n3}d#+v0V#i%nOW`813X#a4A8xRW(p!=_AyaR7X!P}GJ?e~{I`R)r(LeBcK -zL=K8*FFd;^rKvW-)T&hV9dCN*g`cq7vF4}015@8*v3l$cfeZ(zTV*DMroQVJOS4Ib -zFal=4R#$O(m@yMK0Ik`@byqdbh4+9{ar|f9c%A$%PA7O@idi6E_<}j8bza?E%Pz%` -z)SLK|&dtyXvzM;?g*mqN;8S86IQ#j--yu4Y=9JpBPudY*rS|Sud!()XLJy9bwo5(c -z{rL?>y56gHLXMjgEN_zO2VH+Z3SzOJmXz8@MZmY{;miB-X?IWvHPhR-h?H-kWi-F5t+nT{oup70GwiZ&H8inUA4%jG)-5mOILgO;nVN8sH_lwvBY -zx!;P403+Fc1&moeeBpW6vzhPv5!28M9QMoM1yVthmR+%81*0;0I6>z0=rj>py?9A+ -z;2=02IkIjY+{4hIsJ%w78@x_QVD9WQ^rZM^3`xhz9)R6e&n{kP_noEwulCM79P0i3 -z|5L;{B`QhfU|Lk9l#1-Bl$|UgF|w95G$zZK4yRS3h$wVw#8|Uuol{vth%8yBvXwE$ -z(#*t|ncw}^IVbh`T-WdS@Ar3oyZXa*G0W@qey#WYd_L|&!;z7ZexKfK0@-NyFJ?91 -z(cIev!QavgpYK$FvONFdlw&EVvj(|Rj3>8BtYM|4cIC!LX>s3Gy84=FH^6P-3hAsM -zY4iQ-+6~-fLs+GTe$|#^wHwg5Q&9xq7xl};+XdK+Up3}sWMqs>Cx&afNMDm147d23 -zFIAgKNG-0yEF@QzU*${)DX95GdUmKspOc%&1&;1!xBs;8j`AbM5p5Y{TT8PG!)D9UEfiV)|{j^ -zYF}{hE2Jq6UxFqe3Vf}wfuPXQr$JV~pvi@Va<`U4Dt8G*ny47$aQpf44a9blItVbC -z1ioHTBy0ZUoq`7JyH|sEp|0N)Hanh0kC2;8rzgFo63^5tlA`cFg;MC>HdJ`F42(Q) -zY_^w=>~xVBu`Hzo@64jN@cEX|)L-4($(Y$WPA}+~iMQ#pk?*jNPAD`B2&ANm6swLJ -znRb!xoT3&>#1}T4!6vgSgFh0N%QC#(LL)75RfbQqhJftTTiVn%b-*k)r~Ik0T>lR9 -zoT|}s*15@07jdGiyl1`^j?R>DPbz6mf{2H)Q6f^pP#p=I*OCt -zH{VlA?JhNw6Ai^XlH+0$iMuST_4kHZxJyb(PHXXIwBY>fJlb`nAZ31NyWe1>as!+{ -zcJ8#wiNy^Brah#e&IFs~mF4C(g0id@?b=OUw(Fkv+WVw<;you@TGJb9@&o99O=9v# -z%XxUg5`!a=tbHSAWpiz0ZPk(*vBjsf2*x-qWwD3@Q@B05ZCQ-^=X8U|+fu*U959L= -z>nnba!#qgA#k)TW9``pZX~iEpX+ue?tF3BL!)(E-u)Au@H5eW-W73^=NCn?wpdc1GuZ4u3>e*46Q1%F6h*M?B)WADIun!{Zx;iPfNW<8HD`1ANm -zzjr+GN|rdrV -zesm`@nY=!-rwy%9fNBUK0v_3>(YD_>i2^=$CNkk;g{ -zg19_WOSvKi;ek=Kc0(1OaZ{c`!iS?{mno=1P3?aPpAc|*L -zUB?A=V$`Tzb)`xB$#F#!xh_{=v_B~+ffZ_4jFg)j|EuV>gJkb>Pi|>rd%a4!>F?79 -z42NJ{z5DX2NMpi2w?12;<7JRGwY;}{BT-Sfv@?I@0DgNmWroSxD)wkztHn~6F@BEu -z`Q=J8bJv!ll-nE1ISCW{#Im*G!S1MKg`knl=Ub9jFwcIRUV6@&SY@)(KJ<$ClZk;f -zyn+lR-IcF$wrBL^+W9>+zBv(|^7eFs6aK+aE+I1OR9Y1Q%#+(l*%!1*8eB)EmpV31 -zI|Y-Ogj1fpEE=9BK-h(+L|MugG-np^q!1Qddark!Q_44wD(cc9KQW@}{eJ0u(U&m_ -z7I(E;H7}O&e%E=yCr;yw5Q?LsQ|*IT$Z_q4*iK?`u@cRIZ{Ga2JFTavt;0oQBY(7* -zQ+WHtUBwf4ky4-F7vUR<2JJ_w(;j1uru*$7j;A)TPv# -zBIL>hFVDH{5n4^$W=%=qq-A1D^t18FSV_#A>okV~i;S5xrAAFw;UVn|&pc0~GR~6j -zvcG<{&+DDuO(&c$_m8wNmfHUKqm)C?jOOUq_)KSZ5!E}vBPH&u!#f*tVPCd)uKr0$ -zLv;nlFJ{j}rt7y)w;3pO(;MQ)-kFo0INqH*F2lI8g)rNQ8LHo&5=-WB=uF>D9aCBD -zl&P_Ux3!(YaSAuxu>nq>As~Q`Zk&6 -zrkA~q+hQ&cbMvkEZ6{wF9W*OJk7;qbli%MCju}r2$yO$(!aub%x#`q(39OFyq=+!^|RCay6zLdl4r8ynOGrQd;tkxY`^+bSV{qC&P -zoc8^h-MXEu_a`~CW2uCF?X0wJTSt-o4+J-)w!MoxZ*zd9ZFN#xpCyz6iBxi*LZ2uh -z$g?y2iEW2hr)~t>LC!Q<-#ONN+Ve1rE6DTf2hV5+EsYbn -zTM+S7wl@>HpVRNl%!nSTVvU+g$M3YNtJ@H4zlTK_C!&XSo|=&eb~EzaoL!2??KCG6 -zjO?S^=5LPoS1Ggw_m;E;x`My37L0dIUEY(SHH0WoGNPvCwgY7#Vn%!*TVhS}DfMUB -zD>^XetE4|&z3A|Pb7+Vs&i(U=)O-`WDTp0(#!&L%Jef-+j}y*uz;@~?y+XfI9d&5p -z9;_fD`#AY|C+z}GP8&2=1d6PRNxmNYQTtdlIyLahZ5BTG*b8#CNON%XL8Fs2oN?p) -zOz}wQcx*|^*Y~aEx!2)KM9DMkrKIkw3LD%tY@Hv}55TC=sY=GK7wgjW`_xC5R8Dx@ -zbLS^brt>9d4w@Df7xxfK6iz=gU9c^}=~h9D^VuW`lezhndDHI>+HxM$cfrLRLlgUP2(_iu&+ri0Bq=UBAd -z1F&8gzy*V&sKJ=|s|-sWy1qR*dfAF~?^*)PTJle}{9%Tq*Q49Gr$)~k`G+kdy$&5% -zzN(_1nl>+Zl*Wp;Fc2l~C)mR;EVPf$jB0hTV)F_fD0{wnts)S^3r-yIpN{*tAJS%f -zkX=@16GdB&so-tHxkOaK>|?z5@fy6EkE0L7s$KXLEg9eLE7LBLFoqsR-MC7EY)HKC -z%2}Z+oF+vbJkKzw-u}r6on377fiDKk3OBUSj7+dB*IqZsH5(U5;nSwmAIX}0mQo+x -ztSfW8edRkW;>J%pTR#HtxY9D2zzt+2zC4&dyGqN)W&TcO -z^?MDAYu>wx!4X${vF=FIdzs*K!Y6K5{I-mQmR6(XYQQbrlz%$d)SptGbdjKEY`2BI -zUqoJslD1o#H?bK(2;K~-6(HF&jDyD5$sb^VlgxJUUKEw}xzB -zIVX6KuQS|+WoIcmV3a{8GGi37P6LG|1%40hDj4ySLmQrDK#k!Oa1Xinlz7|eIyoWkk>m-FevJ9KS$+hK=bvJWh@&rg(?^)}IC -zoUmzUQl+*qoACZKBJAoD++h%+)%R7}daL@14FATDLxSr-1Gms(*`h6-EFHB05PNn< -z(44~dzs~dE7mGkyQoD&0^%n$y*jMkytikU`a!rwMhHC!oKO<(yaFZ -z5p1kPMd;xC#tj~j6fM<@+ie))mg#^gPxfkbzQOT52Kd&|t~6inX;~au_%U+s!3_f< -zSjV7j!SuLPkYsqo`_lVL>aX}~6M5W_cO^dA_rfgdi8c8u0dIUg^3eDsh8u+?9FXWh -z6keLk3ACa;#A32@ThjH6@>SMN`->5mhKv_da^bo(&egVt5rFz-tCevAs8=@HAp -z1qUiWt(Zo_Y_(t*t#j1U{6no81Ld8wKTFNwYJN5DH}e%=ip&c%n{Nabz+tX3_vOyI -z!4!?S=Ro*=w8HGjIJv-FS -z)P@C;45xT6Nr_79Np4}r67vItRrg)-2GwVC+ -zDkgn6S*mu@uipwhewKpEF2$rYu|+Y$_Zrc|$?>1-gh5hNaJs9R_0j3NCw($09`vuM -zLl7m2WqF%!;6wySL6Gs7X4qN-703~@dUQ8xH~bl9QM{=kh8muDzp$_+!1*QOm0zVB -zjV{9eIk%#pbt_N@08e|SAxPA)npjBgI@ShBVe>TOQr^yBe$so;x+4x)bTrt_#Zxe` -zwU_;q_$;1WRK9x{0*p69_+{h#_+@GIqTBl+X}OvRbr{5u?9!z}pae`ID8WI+L=qKH -zV@xTJUR(c**a^&W4n4S@Fx(wZk5>j@m74o{EU)0c`KRfmX*H%`gY{s|858fs3 -z&yrA1{yWO?+^Vu;!5h|PLyp^ox!U-zBTE4eBa^r}(-wN_-2 -zxdnRDbcji(C_FwEd1HkMDFC9%tWzjc^+l!t$bT#e@n>#sd}~+|IO96|*@Uo>{lQ-H -z{X8|7e2Y^;AaiJ7ZC`T8cabbcE*6b-&3%>DV#^z3_L@($``_^^Ys_5v+N0gxKHJ9z -zNd{`?c9GA={AX71Vfn37Z>Tc%#iR7inBs2oADh7}%;Qr{yOmTzF-y5zK61Q?gTMH> -zO~xkQS?~0DM7}YE#9?Q7912eom)x^Lp~4|W5LI(!k$4Q&#du7df>gIcFHh?>xS9%p -zd!wsDS1kJsW-jX0?S=7H!HAbH7fJZ_65ga$-bz$8!ATZ9>@sKR;3N+)R3Hfmzk_yE -zvI#7eR`*%I)xx*3hQa+5@W5r0S7Skn1US>R>mi5cr1b`o6HIrJxg8p~H+&-MtI7>+ -zY!V@THL4E>A-t^tXSVaPD8V-D5;|Bl=_|&!@N5 -z81fkr`$n%pc8whYh9bH7g!M!wt#`Xq?ak{PGyyTDg2o`&+g+IwQt+FKUo}So1)#g{ -zV+y?UctV|>`aZcA=Hy~#Bg4eCF>78|kssdPnLVMPx)!7e`(RqJ`f<$X4V7ReZYTJw??9}?-;H;Z -zAn)|6ydc=&x`hBHEDF7s&V6(Q!~$BPu%2T=Hi42RPr8pV9h35^r^o|7AFaA*3~#iL -z9{UuXgYoV-CbTYlWyl9^;>%;8#yKHkMkn*CZc3^tF^`n12E?jf0ZPK^MRV=t3bQyI -z*Ias!b>T52feWu$X+|ONDnYK@7OE7>;$s^r_iwGNtelWRp@SBE=4RczoBzB-$P7c^ -z6j@kV)rFc`!RUzbA#*w_`B6tj7kw0LL9M@-O+iLp0oJX`N;{B6uV-(n1lhQK&~@nn -z)V<%ok7px6xXdZiya-*2K%g|!CdAn?QT;Q0#4+@HSab(OtS_%i4!js-;r -zA>5ZQpIY;z8#)ZWbmn5{$tzHLn72VUv(k*i -z;Y|O<95;HR!p)c+&miT;FMl!lT^g8yKSG7YcF#6#Cd}KAc2uK>Gb7Pr< -zj_r?hBAgu@{z6`O{fBOm@Iz>tq)FvF07cl=9xkG}UL5e7BOBFBmjD7}8?Xu&WFzo= -zHZ2%%mlL+g=pq`ESl_|gnwlMAX$Q}%puqP1@9>3=1ET%Hmki3~YvRQ14D_F$x0cpS@ -zD=LqpJ9@W!QRDPzua|Ea=Dse#|?h^-!KA$e`1K|G!G`U>0&I8xgL|~K#^ImLRTrHjkuw6*#^%*Qd -zU05{2VOHf!9jGF7|LRq}p1FKAal%(?8CQmcLPUMKAD -zDK*r)yx&ve4TkIq@krHOp)qxOB)kTeyZ_v~HgQ6~P^VLWXenOe8<{?3%&ok{quw#zi!PVqs6{5b-uKa`X$ts$8>dt9ZfyxB<@?$fQv?vqQ7s;0#aZ4fp$hP -z5EsWvz1L<&rXm; -z3c0`k+#Ni629O4&@d7BJAB@Yf1b$L1td)Tha)v;wv@et;-LYgJ7!9Vn-#tb5<35Wy -z6Fo-th))%5XXHji>D%yUzt(JiA5<(~oV#x-FQ93bFF&wqge#PHn4hFc<>R&R=1tnl -zM@UVH2Mh*6W{eK6Me#54J6mXnwKIEk(hd!5BTa+|q#D&D+6#LLsJ7+;Cq -zz?zQFV!y$AO}h-9bhH~;Nmb=KZ7FB5%&CLh?FZNgdwDzBeC%o;Yj%ovj#g@Xn67YE -z0C3JiY#yFzm&%`M7oI17b<;doOwBuIrdeQo(sM>5LT(VeSsrdGEb^KA^e=|F6za0< -zbDv)(_^?lQy^5VmZF`fUMfSRlG#}WcK=0@-aEnr(surETPnq8~acI~bNoUHRD%1rZ -zLca$J6$Uz+e|9iAy0$x;F975FV6_VS&sTxe=V_yb*eZNCL@PKRI^(1JtgU`Km^eQ* -z7q1qt#>~gs#|MA38TE6^e(P9L@B&B9rq=a0muyaZB5Z%MNm!@z^OzGx)rC{S$WyQm -zrr;8Ycdc3dWeb2(2)mNEWh%kf*U -z08x@!R;K#-ndyM{vkwAP!7;|d@}G#h^x?-gkKMF0J=*MZO+@B6#n;%%cQ{&g*KwE~ -z7b|~#ewNIb>WH+PCO=Nbv5(`^NOvP16t(F3lY@0`eT7_C*6F9sCLwWV8Ipl7OPgh= -zgLIRFE$oB7tgb|suf6Mt*0e`$ZYJf?5&MOAG%d+=G@7k>gAE0AVaMQ*f_crQ6R -zzEUhUNRa5yTX*iBdWDlIDX?Wk&gR0Q;7}#%Ij=j{$BL&f3Xwpf*8Aby%t+JpP>jh! -z-VSblcX#GIdof$FhFOrpF?4NyaPF$yz+MrQU)1;QB7I(fG(2(FSVmC%fLPRS8#OG@ -zDpi)71w75mx$tN!H@_$K7c=`EcXo63J*avr<-F4^L}AI7!>!^49~JIiXta0b&4F?^0@IfLYIZ!d;)s$_vJ?w7pv5ptyInRlSm&XY_NUSr -zLzfR>?WQ{=ws)9FMNd?JHNS?&I)_{I*1c@2pi)+uYiE!GN+fTrNfTBIooQ0;rC-2- -z?wEBoL -z-9}S=UXyE@a%*KryXsOVj97tz -zo3eUwrJluvxL0{%n^UUJ^v6kLctR-WBXz2FODCg!wv$mA4UQ*dgMV4lw~^&A@C8;% -zqx9QzGL6JmyO$MmtfZ+Ydi}M7Z82ju06H@}ekv6l6&P?-OvG{(&pipVcscIX%voRC -z-Z(9{bEgYvClJO_cd36GqDX9(=0_c}U+j6QKo^~hd63YS9=X0OaPQFgDbB2KBLEYf -zG8j`8X{!UXBu)sPpyRiG7`^~LNL=}t>VR+3#}OR`3Zw1Hqx~Sq7f(?i;|8UK@7Bep -zUbJ~QLcN;{qHSS~HE>#wKS$@8u2@6dNON1>bf@U}g;BSs`?X1KJ~MAxjxKUXkmE^eMa60F(&2UNi>Cgg&3EVKf&#y^9(Mtp -zQCm-soHSv)(;0OL3RnDV&lKaJhrM}AsbBD&jE?7I{Ks2UL;ayQ&h#duCz1w>%C{ -z^s(JG95brVN#tvjRNI9ILt4JIe#flKfw@n2eWN!|AsPMzv%Qod_Y(1qfBs_7ukNOy?mmvTRtVOd^E5mW!1$BNahYK*%J;J -z-YoX{0q%~@I)j5Kfb)Xjzi#SQ_ucUL@dPPi#j4?YP2KAkN?sTFWL|hKMQusoDmDu^ -zQcFIBm)JTGSj$%2dTYKo7JvBFcXnodYQ-%aeXw!DN8?d|Jq0UO7Au=L%U1?b55E5aD>lRz+{VVjf9-848*;_9^D0b -z?QQA3*~o4_8f-4O)JmG1Wvmo1YuvJR2jcmbjL|0s*tu -z@0-{}#(NvPsc|grNV0O~GPm{vhQ+MAEps4*ikw1~fnoXKcUg8>w -z7E`c{))#xE{(D$#(KjFcl^}suCD!nHu4LbxxkK+a2&BIB=;OQNCQ*p6q}}NojAg<6 -z(oo85g|C7r4yl -zy;C_DCF3WCN$beKE|`JDx1Li5-(wHuuWOFbyx7H1nhp<$cGN1#MYCk3g04-}MhbcS -z4<$!p@51S6EJCG|XSHOcS{fg3u$tJ8nD(vHf_FbyGuvL4!)hz5e&_f74AqGZ5>25w -z8}%29KU<^4%n3d^mrb3eETiASCUE1kqdvgoM1a(efNgV>rZ`eeSpBFi(Mx)LZ(L`Ghm)LhZN-87 -zK=Md}xqE_utcQkIW8WvsO_5&Sr>Apr`_Iazs9KF#`NZS<>r3K82h@HMuDs$^My38d -z0pW(Va&hZW) -z)F3y|pZ_Es?wXQnLowHzdagZxQ~-98Y0k^YzXKCLfAs^4HXy`C3`GMFPz~y+;G&(E -zUsh>op(+3Za6v7e7Hh%dv`~s*0p0Rbr#K#2;9DWk7Nq5*v$WR<;eK;pLTM+ngZ8f@ -z+Fv|#nW^Yb3GL0P^irCJa6Tx%e}2D5MJ8JPq7la0O787<{kZd2dwN~B{9Ov=U34$7 -z;ASV#Xa4%ehFSQSPuY1>OT0WAoJ}+s*O*G(uR#5J$n>AM$6o6~xXH0s2upl_TCKKk -z-1MOE$|uB7k`Bm9Nv#e+h^yGC(z#&^aTN%@!UMASq3DYHJMFPIw7E;r$GFBmjA!-t -zXCc<)!j_i>z)lm42mS-&XvXY1JY4*{j~h)WC^$ab;H!Z@rQhq*D%O?`!w3^}$^X&Sjs -zx8Yv;eI~FTurq}~&5aOskjL_)mBMcgF_tcZy#`K!5CENBB~-i>-dOhL`3;=hjtoq> -z`QXW3a$LNW`-KM7ov*-8%2^=~c!7nH-8x{ps1A(E3bW!{!n2_h_<+}wx%6hEHchKS -z^HCZ50f1s9vGI=~8oGUA;^%rM5TSfBadl$aeT++82ti&a3&c-g(D~R*j=^#b1>L;! -z$b3AD*3}_={#K(#1F2EtCqbN7RfRvbQ5sX{xo`|{m7<+|mf*c;P7O@3dGnpa_2}=n -zPh0aPh>PKKJ_;^U+NiaZ0BZd#q<=6O-yS$T26Xx)jCT~u0Rlchn-CT%cqimlyXo2a -z*0cl$#4dsETvQ9Gn^wZxwvIT`RDR@J$a_&qt;_w-X?AV%pYkd^XF2r7BL$~u94vPU -z&EBPW-wS_Rz9XTFDwy{w%0^~%jVt#lXlMLb^mw@%fSZ(0-s;h$l^%_j -zn?wf8zjeJ|fLa)VBrbkG$Q<4K;p;93tm6uQ7|Q>a7_&G7NgssU_)k?bsL(wQ6)V78 -zx40!h$-DeRL7|MNTXgdfpyc;jNMZr}vg;N`@&CLp1)GXjggz8vJJwlDZE0~%qPl1G -z?znx$Yi`CL1eG8D?+uL~|9|L?-DwKlf0zAh_-e);z9{qeZe=;srU{2&D9GAN3&E$p -zPEa@2@1Vs-#^__!lBP=bw!=2@(_k5v1NEL)+?XOZ2-LNe)*IvHW3B{RD(Wvwy|et> -zJEc`P2~v2wJn240CRJu3mV{L^GP70bsqzFNgy;Ciig{DmvXGL(i$+6y47vl6JC=SR -z6=_Z6=b7GJ6=NnSi?yK^iwGwVbSa~4#qHfvtSWO_a6xmhufbMv=^>0n6bdO>{Wra6rhazslyQWYZ4BQ2`b5Rr|MK|}=#JuQ6<3QR -z9@8!~$!_#M3&X@p9o7D~ZOcewu1y6Gdz5t#XuDT`bN(UI_AoMJuR!M!hUE*qXCnt+_+XOMlqxw -zqRX%^E}Her%R{8vLq3Yq^4|Vp<_Z#q#ghks_H#kPx`SJ>r!Ma=WY*agyZIDY#Dj*q -zLpK5!2nGK3ecR{$F54^?paL*j#}6c;MJ=K>1}Y9*GdHAeHq%?EzcH#F7Q5l6k3YRk -zHuxJ~*l+{=H}ecwNEVFC7J3F(Xfc-;7CRT&Q-Y?y^X -z+Qj_F4cZx#KYf%Z2>pK_Z2OufCu^yYl<67wGO=+jH2de_=psrCsGN>_C%7x6%34XP -z74zgCXqe`IT%&fs+Dk-yO+UZ*e-|p<|F(JpD7HnjU9ujg*$)NUGM)n7mR;*~Tk7X6 -zVtoX-v%c>NvbB$Xc;St_Pd_a6j`C$cJnsK}`M(?L|D>*idK_eO<3+uT9317* -zT+23_!SCDeXqmw|IQWmU|8CGWJo1Bsy!T~h(Y`BO58E_s%A(#gLV_h4;9k$tv$O-A#aYk#HCS0^D@i!L$TFLqP*PeG -z2mNCIQP<4l{Poi;M+VQYpISIWA-{eS-L)GGmHp@5`3wK^;IFCp=k#QpyYqE(n9YGO -z8?V!)4Z#=IxOQ^1ID#p>aD0IlVr~_@wCCri73TvOs#;(cHQ1Ay0nKn9s#jr3ad58=RH~?}n!u%L!>Pk8qf=8?XHNeo@>8fnK7Nphte<6G7$q -z?H3gewjHovo|YgG3b8wFfsja7uxzFWu0M&j~U^sKgU(+@^UYw$ -znKUT*Qgb7nXQvh`axUBTmUrKxf`bmd!epXK4y{2+ox9r%S<_ia-f%=?{b(lyPT{mm -zPp2yf`e|z?<7i!lEiYeN@e5RU#0x6ZXTN2*-?m7LH>1YOOzdXZj`;Ktb3a*k1UmWY -z%ZX^@Q7x~H)#$1Wxpa!fLbpEU2b-l`9W)>M7j&zgXdKLX*Uqct;?6hwJqd&i>Y}+5 -z;+1)7D3m~yPH46uBMH)V>5K*a(?xHpjKY=&=W^?)h4re_{vC|cm@rstl*EmGi3t$te%c|flyhGKE{DhgE?DTd3( -z<`EaWy~1zgMysLB53Y8m?dIH$_~!r&A42L(Rl#SR@Uh%NlpI{>K -zml-@T`!vlt2`z~aK@yLXf@xE`c4{?KAj!o%%Xb1F;%Mz(Z|*&dgp$W;F=Iz7?cY|N -zmoKz}kcyex{`ID3VGu;jHonrfEC)pH&NtVjE^q5bd&r`p -zhKwZriDj4K>v`CiO5Y@*_$Z44`vn2Y&ArZbGlo7k#i!N2Un(1^O;{MrsdkOfnj&e) -z&)+V@87EL_#^SMY82i=8DfzE&*F+F`g3qQK@U6?0Z`FnZ^BWXB1C(9rdYEKGs-AS5 -zvar9l9Ou_Z>)puzIluRR;1>UH{a7Pr%a#R;Zbxu(QW^xB+Wi*41%*O3MXejQM$9&ZuGr2Do<4Sr{o6Z> -zX@x>^c85V9xvqDr>{lCY)5y~}yWUr9+nW(387hVo6a3??;n3!NA9hn>xPePK$pt*t -z?j7nve_hJ6-C?s0(X!=_L5Sl{Jv3 -z>GCo|+qC%lnRj=KVWcp2mfGR*y2s-lqINM$oA)&rmB#I*-?%aGt>HZIW&fBoNpeO> -zgHfWsOn8_;Ku$~7XH}}b6SLYQel+QNOBa0=16Nw|hCS0?yXShtSOQ*Po`v!7+YMGE -zU3^{e+nr@eWA+maT{M$hlTcSp8xSuPRH+WOXQiXIe7NklyLom3eI%{JAvsgLf6_r+ -z=n2ms^F9i}A&Lujp3&b!kv{}JJ@Ch;*&-C-*vlt!dW|Hdl+(JEC%YX724rBx+=gdt -z1HIF>+Z)zosi1pO9qY!IY=^I$FesWJc1d&5N1qyjFxC13GmPD@lz;x)Y-V?lxm<#g -zEx`tVlz^d3IV+Mjm?6acPnD)o6&-sn3^3p!C5@7C*9 -zh6q#7ra>(DODOT_vDJ3o({Z8Uq%9W*d(e-g635=#EADUWXfbDKJU+Ra?yd>PxozL;dDMnCRcTe@iztWSi2sRyN1%_S0|a_r^c4jyQ#JGS(AKy -zFIdxO!EbQ#m7R!R-3vvpTA3*+-crdaYVOmo>-hI3G|Z{3zhawckS7)1^3;WB|LBQ1 -zenQ2C`pR=G-rq^kC)nV&S5u_=o@Ap^)B;5?UO31vyc<<%%%8qD1eW^v%y3d#SCXAe -z`Sscq2h}*R4y7YOAl9xchb_QP5At -zarrdU%2WO&di -z(xzktcnNy)|JwDN_fz&}8lsBMxhzf`4nzCNl*^P~d0tE(ok^;yyXJ7i+MvEdWx_pe -zA{5=0b2}>{#akndx7y)!8~zC4eewm3v>mU)hYaK*+&_^UiWJgt#%&^Aj#Q0=}>bq9mP*R8AotO+qEuA+vjnO -z2hUhyog#?Y#TQqe?qSSr?*{nzAAa%aHbe^5zM@K6e$L+v74&5#wbG{Zgy({5yfY#> -zz2!6>y1(Y^HzwUJ{^204y!cv9VQF{oL*EgosiYok1`{@A^5R6+1ogY{ja#SVD6 -zm|~2#Z8Xn?!O;$WN6=lmS|?J%=IY^v_q)EU_W@rSH^RK)JdZGr`;MMBLp|y@|6Hr9 -z*T@W}taWoC@L2)CD^DJ;F3(RmbAq`U(Xcqk(5U#y~k> -z4{byYEN9@UC-8=;EQtiE1qEko2tq+(ENq -z-&XFCU~QivTDd#XsHofVblbG!`CQh&;X-m4B&@ahU-9gJIS}yw5N3JCOMxg`+Z@Pz -z1by^!&$>iy+p`^rU24nnaoK%UE~S?6&mL1|wF?)A5YNAE0l;isp7?zD-F?nkxwToj -z1ss7uHQMm}-a1^x*$$GA_RH%a;D#{({l?bA3Jy4ceem^fzo)bfaj#}Q?0a`86!Ok; -zJ>-R=XgFLCAq_9v2$$Oz55N!WRUo9uJnjqj~?VaR}G0}fC*pOXoEM(EW -zVJUL`ewnp^SoD;i5sF#+)KLIcEpeQ$@&g_qmtOH@&?+D-hdUVAi>=v6a -z{yRs#=&4S6ckkp*-Y@58TXtvg{NZDEWJKBgC893$cKvi54~2wn58j6OvEHk_+)X)f -zY*7sNe!c&Bpq^*@oJ|kNtzYW@UpD&m1di_AGTSCEU}`9Sl()_9+th=F37FoTy`@u) -zH0k8&<@3563Zhbu7AQaM?4rqe3)TKs{OCalm0CpnfL7u6U6eDh{pY0G9ilLm?I*7D -zAySjYbrdy|HVadJBV3~%aab^B&UJlS+YIp08JOS;`_2Jpr#3v|C{FC=`i&B=s{ymt -zDHb|)%zE$yYz6Psu~?)$HsPA6bmDot`&n_E+l``Irs2}!ID1d8JFxADZR?ZPtw+0| -zgsK90%&9hoP&A+__E2t$uV2`!%nbJ=X~P+Dn^)HgK3291LeF2bC*LcwFqD)?G`CLb -zsIIS0q)j9yB$-|^00~z3P^ui4$8?M^!b&3XNPDU=C$qxH;AgU69TH{LdN?k6`4ycml7nBdkv} -zA{D#ux|*YX+Ucd`)Q_?#k4)*;*kRpyRr42jl&{bVcbJubMn@+ZQ<24&n)IshZuFW4 -ze@M2|Okna@iQ=z}cn_+5UbW-=aM*yD8QgEVqD6buu%;2cwpX^cu*&L09g6-lOJ~;q -z-~zcat=MNN-I^P0&dN%y`E@+wIB9 -zToe3!{-_3i_6WgGJ+f#}sP1WJ7-UT{;<7q5WLeI)1ugSvNRzUVhyKjVoDbrYq+6ic -zS9WRyKrFH$(+WJc3hski$jj#p^D3taRaNOk#k1wCwilo2s*IIDCogw$Ba|>CB}Fz@ -zv&cuV^4?8a>Oc9XS9ms2Qkw5Wdn!8zAir*L!WrdEn>)kQ_@gw2(5steYw -zrxU7B1@hyrQ~4oUK1Fp_1%m#W){H8Qy7Jrn!}x`($Q7jkJOo9!!Wo4~!}o2F@ma~0 -zxt(}6NQG5xM!=|sR240_&YYcf%apA(G#RJ%paP&w+?ujyD_oF!p5As)=ui)TkaJyU -z7#a{fEhgl%gWXcplH$j~4FZuBAFUKWV~kOq6!YYw4r-l2YMHUQ7@-K^j=gA>J3Kr> -z^$tV~yCz=`sD4SMQsVhegeF|F`(`d7d@QBi{XumchN0v@wJO1!q1o{_TO03G568usCkjM$CAys^ru5x#Ed2eI!QmGQ;t^o!FM()tm^dP~sdY3i7Vlruqb2UDR -zNWj)vS1Y#dM5q+eMr&(}S#z&3Jk+z-ufd~u{kj2}^=CY&*^bbD)s_zOTZ16|8<+G` -zEhMA}5}UH0YNQQbrM-2i%YMFgZiCA;msxxG!5)Nm@XCt&BX4!m5Bm;AUL4}%t80@i -zMZ~9&H2tir!jwxsr`s1Sk^7Q}A}a$*jLNwI?ZddEgCQOM`3{XN{}H0->fCnQ;kv0> -zbBZ0h|Ad$N!|O7{;}&(u&EuBXeEVtH3eVb(oKvBYyX!$VRGk~)?_cc}KWaR>kf_tm -z|GJGw;)cC4ZfSX^O&CNmklTVkFfU@LO}cdyvK3l}7gROdfjGRS{5tC56D+gRq1SCl -zO;pgNr&SsOjp*88hSsL_Q)<$?`B6F+570t~E6N_itWQDy@V8)7cet)(KhccswRb#3 -zNhQgvY~Auhz>z?hpp&*^Qc0eg{q!>}Q1T?xTs6=aMy{OSI7B})eQb^v1dOzmRnwt|>C{02Tx00|(9X^MtzRGI_b%gFEKmONO -zd?Tk&!lnvEr3U$N2)t1a&He~THm&~X+uQ93%2!U)f|DbzpB>Wh-6xDsJkQH?bJy{3 -z$q`aC?M>RV-( -zs$uBK2evmVb4~G<0wn)aJ}0-YVIr-_US`v-P7c@u>ZA)Er|%{tVqWD;_aZ8$B-H<-l^3=S<7>*D8-v_~edZ$qI2O)LXU5&g4e*G(yW(RFZwYjR-SH{!x^zg;*B~g$h$&rkZXD3LO4OP -zur3je;@ry9(y)wa=ryvoE;ZPEbK`pa_&+)Ox~clV%=g3~($WG1j^%PHu=%ESoRb|a -zfc0{+zbe|sOMVxqW>NSDU7~@{hoT&@h4LpwcgFSjE!wE3X#;|4JxNs&1#KR2-iBb8 -zv#ck$S|I8|afM>IWKeUmo{bWt0(rC~4C)BVVb-$|kBScCPSqS#PXh%f|MLPwACfyl -zCo3z<(8Px+hrJC+vDXhr_*JH4OWBy2b_WWWn#<}a?);RNE(bgpA&5cBU6WD)OyPRA -z&`dKAv%1ebk4mh+mS}A#rbA%K8JrD8-wC1^A)i%ZRV}LBNd*SlfcN<43iTl^AEGVw -z=E;(=mqQ_$c~J7(SmY_&rpNDr)cvoAMbu&5+YsMo!yt}^o0b2$u9$NmAHLfCeMx>L -z>#>lFxI}`^=y!f6>P%60pRA4)X0*|e&s*H -zZtKOK?l$+0z{=*prWV{YI;plW2m1%ou$QaKpP__blBYBlfkbFOD1vuT1t}1_SQdOS -zP=vY)B}guG4EuHYCCp^vNV2D2r7MZI!D{j>JV*cRo1_GQ?Y_-&AvzZSi@_hk -z(cN6)m3$@zR1@?dccxtREA%hr$WguJFg!Ou;4V3Hb6%U9(4vZ!%PIkkKT&I)~KLwu8zY$G87pxh@{WN?HXjN^4KDr(5mhcy}&s -zIzC|tAjt)S{_>NSRHnW!S9Q9c{@217K4NCB(uQ_HEYqjD?Ss*)8OQ#=`1=ZED?_xZ -z&tAWR`T;35^BG4p`>)z`s~vZ1z+H3qd=!8d+?0!NY14yTSwLXgYC7+jB2p?hTS@!q -zHF#xCezC})PYvV^6G06V)Wr0%9Q>yoy74Ak4#hJEnLavIRB9Q_HH}sDTD`=KC>6w9 -zg>HTD*h+%D`grp>8e^I`c8TC@Hr02_OS-nc#Ck1nc}%gvM*aEWsB_}7ZP_onx(uoH -z&c|>Y!r0uqmpTdNTb$Iewn7v5O!6I)VGIV8dV70oIXdQg`}$&d4bF=hsI9y{zqUL# -zJByJcVs~-e`wBEogwrE59pN+i#IpXH$HP&Dj_Is9^LhRo=;qrn`mLH(mY%fV!6u!BAf~zVuz|r$-->Hdd4Cft9g?Gem=HhQb5MUB0l23~3;M=~a0FHa} -z?2$}_K_qU-IMc1&u}nxn+U?~TYyO(E=qhu{m&5~4<+%}ukwfXBSRz~^5=ve^f7G8^ -zn@%j4Dz&xf{dBAtnnbCd)8CTOQ8O*sT)*0?o)!{6r!12O{QQ{{xVq(8TW0dc3-!0% -z-G$FmK3C7x2F!fg&nl^OCqaU?bIfYXs>9H8qjDi;W9`YdTSKa{2fuuYsZZqK01Ad# -zQY2JS+SxC0R4-45Y37dyLbwuD##JEr-u5+W{7JEg=vG2LwjKk^3;25fq915EdG}Zx -zayg3@G26J*?x=dWVeymPNOn^CO@gWDuFq-81ct9-PvBQhk(&%fQG>`)1q!Z#78DeO -zcPV-_TF;t}3t1i(@nTJ(FdiW+i<+4x!R(R}{owgbkv^|Kve4;aTK;21n}GT3WB<=pd2cdtO6 -zHw$;gBmZ>ssm8s0)H}2^h$&t#Q4> -zD!upNC&T6Q-6=l1tiDv%TZ#C2*Pou?y~q@Fb94Z-2dLm`ZX&KZLt)gV|}#d+;b -z5y;;A=W?w3#4ShWrpJDoIGPUYdOJq3%?~<@a89Kn{fz%~2m*%Mzj#_1P4=h`{i^VVY$&akqR20DCxShz)n{ -zoUxK?K&qs%q`RStWi`RQ_WGr?C}rdjNF)*tP@Zju026JoPIfhJ#(Q4~#xz5do-*HJ -z;8+#Y!MSwC&VZ7oACJ_e*XGpL4mYq!w8_IA8!u#tgZ{~HM>w;o+3bW-uU9-*W8>Pg -zy*wjc)9>Q@y2K++VC+(bJVE$tcQ&g(tLps_)P?|Fm-OuF3j79PCS}h4no;g+l8KbU -zu^YKZ0~ahIp!9;!@1LIvQAHPdKWl%JbuCdAI&?S^nwwJyq-#}+oP6p_S=-+VxF5DQ -z*TTfg%Ep=ztDdHkHiZuw8xT1v?_Pk$zOa8#YZaE!@uCFppFDgh^dnO#S1zJKXgLhJ -zA9$C@ed7R5h&E(b8mIL?oa!;P?jdu;MC@gl}T!f -z6r}faK+l0{G_T+&6Y<8Nlzvbj+0yK?#%Sq0Kkm?-HcIfSlj+qZ!axGoiI-?ltRj&cK(UHBe -zqnIQNa6eYOY~54?50qw0?u-slvHNak@UJ&U0j9{xSqB|wpsFouk++j4~%fryb<&9>-}W!nI*^BgBP{Lx1axaHk% -z52sTGee0+&AQc_Rdaj;kORRQV*ke1ysAtq*VU(AqiUW5ZSaEX9{y9Dl`1$1@AE#4D -z6&3P9CpdWb+2+9~`zo7N%_kdHsSRkXjWw&EFoJ4WDQ16p*B>wbYp#)(l~p{oIjoi9 -z+CQH<5X69cVO6j!S;yxu9jN&I^h&|MpzRqQfMtvizq(V}6cV?mwH# -zR3|M=1r)ETy*s(ncK$qbJXjs}ZX4p%iFUp8^GdS4X#vwUUPD2Qi8CCcfuL+dC?l%1 -zXEy~*I#(1gWjR<56x-__REPc8hWL2q^y!xJW?^a*TCrj2^X%H{&|0N%NHhg}_57b- -zGGbM3w;aO#|cpaB=<8qCqr25GENfhT9ws -zP3mU{{5di<3H5eV#=T6LoC=@p-XOa3zkkuhHKY+E(j)L=Btlap==FdP(aj%(V^Hq5 -z&hY-y$g@3=0|lGtygJN5wsulp5ua~XcJsc~Mvj{Qo$k~Ot*tU -zoo$GnANRF^FKOm+HQl3gq@8gw8Nee5RsqFUJ2>9|KHR{yewE&%SDDn&DUXm^LFy_a -zWX)7=!@Zjz8|BCl#ch5BZ9b`+u`@&VF6isZ3N0kbHcF`}5@D39pD;LRRkx3$iCu0D -z1bx|aKy|d)VZROW{xHt|5#(j#L@si=2|^d}NjdA*rL*DYJkTiFXBO5E2<8LxYCY;+ -z6hI3Yk^-jXF~67NfDqsuz>$nUts+Qq@UHCu8Q+7)Q;u@PDEpReq#Y8{PM{BcRt^l)5$;SBl)pzuYpnlH2*WnpB -zRrc)<^}0`|2rA4mn?rdJ(%ePrlaeRHu|LD&zcUX!ze_Fmy!k0q=>)2mCk@uqm-x5_0_<0 -zf&Cpm{OeE(SeTA4Vz_K!b)gKN`=Ypq!#{0<^hj;l#;hT@4m_F$Pc4FXR&R9(d+*@0@RYB7hg1W~(Dg#UU5)GRbn?22XlD5C2_V6^vav?`f}TS}UEV -ztS#OA7z|?2Zux|3lx2n7VN7qvpOe68VwQYk5d;vFI9L?T^N7}@)z14 -zt+>4s;|endaWAj5nP?qA5Ik$UYIdHwq>CMMFuNNJQbRJT1p9i<#eUQQ>o&RRRcLZ$ -z+tSjl_qLz;sTB@a8hl$rcjTjMjF_ny&zxMN7yQ^Hrva<)nk421F5B@_UNKsqrqpH^ -zR$VM`cp9DVtKRnmX`}}kvc{HSEKKBjC=I+CFbJcPb}l+M)Ke}*3vVgh(9T$`%)zqm -zN~ay^mU6NGw1r$gwVx7JG}J9meO(b7B3Jy=DeX^3u1q=tJEd9-ozT%xAr5{k#+f(@(07KvnJDUt46u -z+k*XG^ET8o_!w>UisResrTB}sS-VHKL_fY1=>F&ptE|$vK!t!+9v<^k9ddiE7EQnL -zd^o^5zHy@m8kN6Vb2vMgn%LU)d4_tlqYRof>DcEaW3aGjh8KV}vx4NeA&%k^(JJ^` -z3R4j5Xbx+oxUch^^;Q^iCJgOOa~u+o#F;VXKhJFa~FBvm9{m|7ytPw{Sl -z-0qerG+68dwD?-4}DtLb?Q{=pxO~-_tMCw+Aec5@}*1USzgqO3JHFSgC((~0fkU1bjf58fPCvv -zs(8Gx5J#7dbH*kb2f;e9ys-~m=q9?EOMa=W4*@E;3H(&mEQ>ykeYW662|Yy%a)CWU -zEbyBimG2X*H6*D@hVTm^jSm$>la8sRq<%dRung)Ejt=mvxFDV*XmLC18|L8gi5T&Q -z<_K1$;~h1Lw057MDPrFVuAaGvzCjYNtp;D%N!2exlcXDSe+A`lF0QUmBM@BsWpO$j -zH_!d;5A9|J5NlyI&VPRWM1jK1e9K>VR1Z`g>(ni!%jxNd -zdOG+>jnGP~pBa%06MF`MlBpRYM<&Bd918?yf`yd8AqBUX -z6O2ke+u@ZJ3bE^W0!3l=szht*r_U8)(-o=2ymqD#fh<=QT;F&v<<_sEM@yvNRUc#x -zGSKDj%=ro6t{VRi=@OYxvg?X%UA{-Hfm%VTq?(J$3Yj12YWM(KoB^7%>5QB}=&(k5F -z)#GnkF0m+}rZ^|B3eO-v9cYl=pW!}2qorbL3VgioMr8k-gEYt1CH(>@`OpusZ}Rk= -z0p}UJ+VDidEJ}*M?*K9N_{6{!P;?N7NXcXvQDo$YAN@pZt4iM=A0D`&X!BtcfYq1& -zBMMf6T)*S2Rg+%X;040#T921gSOKXjeYr?Am1-BH0kn7UxB@O^wvlu>C^M3GN1J`k -z;1m6+69qoSsl$EDmcAfw8%&Gl|fo9b4St -z*fupCldX_hTZXP}&3Sq;IO9TyR&GL6WiCJ)ap`E9LU}Y_vr9M!K*RDdOoQp=L -z)9FmD59!#h?)zs#wH*;ci01$trlkJ7k62y~n2WiUoia46%5n8A6{#lMl&s(O5N_yQ>^d -zXUINB9$lKeVJr|S_c2G>1|vzD&7*hcM0fp7mkD7 -z-FhB(85OTR;M|cu6)7*#=N=V+{#oLbqpCIN-z}t+uU?Q?rIVyci9CigtIWLUR>K=U -zM5?NUC7Lv;_685&yz+Gye=x5-gq#7;&CuX)MY`o~vWc05UJ7sYq*Ek91+Wv}mIPev -z5EU|UliFT_3*P-n@K;eXfGM%ZALXuaNFfJAeIrj0>pRhMZNst+Z2H7+*IzLmZZEFo -zRUYe`ifh7lp|UUY*F+;9r=A09K`DJ{;7v*Iuyh_Y_t+E-lxt8Ej|{jg5_GB{*59#7 -z9V@9`Y>nGIIita}brXHbtCNaDWt;JL9H6C_$oi71dCXKzRifzFY9f>QtZy1oMW}tN -zRLy7KMZB$rhvi54TZ*C7MpS|pf2Kf~5MUAPqKcmrC!hxsz@OFoAj@>za!ZI!Z~lq~ -z>(VBLt>rxTejhsiBTs8rFXCjM9sHFb{Ad2wu2IDKMDV|AiMO2R_+z -ztN6r?01Pydp3k9s>2I*V!m@T$Pi+>V#i7yJvsI;$ag4X*lfL!zVu1zuhPmfwOW)2G -zu;3&w%+(=;ZmRP1VubGVlakZH%5+@!D50UgXEk}H2=jRV5d?tIvlC1pm4|z83nHJ1ceEW^t@Y*#oK}C0*3tt!z>EEc?1_jlrR^3@% -zWi%ui=_`F&5$IvBd<=4VL?UpI_o-%{lq{QSCXve(u;-1CJKi1ny*?*Ve -zi(2`mp6ArmnCYvn%)faIXKNnDrZD3l7BD`YJoxz^?>J{e -z))*nP>5R9{D>XwiQNF$R7p7}zc$W=;u;Y`UHyK1u7yUdG+$Cv7%b6o}IHP@bePcIiD_SjuM;$UjX>L$$xkC27UaPGs@j -z)&a${TZO!1Qhf*g7RX6_g|~JgtU#tXJG8bkG(DAZMdy?Q{3w~0ME^nLIOEtpZ8T~T4kmY)e5KY)51Ks_?vV6P1= -zHYrZRm>WhUelK;X6P?l{@78~sp%?Mu*|WW7Xz%>D^IbarGJs`1Y-CaNpH#4Cwt87V -zlV=+^86BmzIukt&kAr;KbZ`0hetLAW$g;*z|NKnjn;3ZjbZSNuE#?n`v-CPcb67Pw -zokZzax!{=y&*(}?qnv%C_qBGbg7P8vH{Z4}{3ZZ*jLY5FBJta-TllI1uod>0kvGFp -z5nK|v>HY;jnLwE=^*li#zI#2fHg(ap!_jJ1!Sq7wK9pn(S19BN6Il1Ss)VtrDX8Qh -z;rcy7J7TwinoLzy)oi{&&9`+FS8;PAxi9yv(xyc7Cxc0sE -ztF+=u25j3fn|wE`bZAW(oIl1`xE^g(g}~TGtK<+i{&hJ|L!NyC0~yi#;ZTdn?=f%d -z&x}@erhS+Li#!xG?AdGcsP$-)rT8w@#g|rG;HCvGJm;?SqG0Q-Njwtv&kLxnrv=d} -zMG9+urn+1v7qTsgd_l>)^qI1LSnD&)0yD_>b1ExHLxz&4RW}2Z2+0;~~wXG_srBPnHzmKr!6( -zMdN5&`duG)k2B=-fD+fCKQgY07p$D28}q7l@2^9%l9*hvhnvNLDS -z06$)HZN0ivQYP!AjDRCde%HlL@LgjQz1N61BS?W4eJaV7|7hAH5O#5Ao?Dni8Go5ju&UNL+Q%ZZ%J0DjgR_aKUZe}5 -zyBlm3;DZiC@=2Mz!O9IcMaF@6rwzL3_PdKe&_HS((XnP4THZZ3*REg>B9cFMXgD+p -zdDea4xFa&iXMpw@XbSEkbu&xg_7|6o-aV9)=BAdO4_O1RR&Q?+Rs7wtm!}mK*&6(? -z`bWk38SbSyd8Z01OI3n%ZZm+};JjEsy11YOQZ -zAOkA~z})+D?*j+1ny#)8rvif~Gad<_n3|gM-+qsMWd$4GNXdeoSLvHPBiw3SH{LMz -z!eu1E)T+}(%z6){eV%H)W-cE4IAAEh=IdWvS>Oy->HS+5@-%kii_8vt1P%*Mkz-2( -zN2O)~1OZ`a_vv58hW?)6<0vC3>8bIaty=YqKv&uou;XW9XrQKy1xf`Z*)W5|`T-_DCBGyeHHc*R-6yP{(hOShE~FgD3ZL{u^;-|5_WWhaKfbo -z;^e^oA06%`lsr$MPnP`1V|CUlPg)EyP4Y`h5`k@*l->t(tMLU#?p8vE_yL@Y0iY=x -z__2+@5vp#W+;Ow$_c+=a?>Kk0fK-8>F_uoUVUUlODOC3k^TnCUfLLq;=D2NCg_ -z^aJ;jK`Ye}a`nAI^*5?rlU4cN-Tn>HlPAI@(hn>gvvRxq=);vfDOHMA)L=0cXwDLX -zXI;PO*z5%Y6>tewadG;P*5H!6-6?}d073$y$Ia7!cV(`2XhnAVc&zJX)AIlqNqSPz -zZ0XO7-eXG5J_(8+YkmNq*$TYMDOSyQHGpE+b_{lt{T^SRTu -z7b9b9KkTL4D`Ix|)(@*{=H1yUs_@fFo`~bvw+H>aA!s<$V~0dy>!iqOty*4@`IJv> -zJ)F!?-3X;udN1|BK#w@Wc+`{OM6!n1e+ibGZY+UNJNIF0)&^KEq0P~Ay~?v` -z9`UF;+DG{%7mCYDuMxP@iEK@=t7muy8&`VsT-mRAS)`j!k0gJ`

LpoQDkzxN-!?dlrOSSDUu2!i8SgRUM<`{N#x -zOW*4|naNwXP0l5>u&*kcaweCT^kH-Px)yKG`zbP2aA-W7R98+$-wI@}5dqv8XCJ^7 -zD1l#@i4Fl2dKLg~9NR9xe}pFYXD>Yc=CP$mx29YH-EmwUHv0A|OV4$_!r4C4`DlkA -z$;0$&HaQ@1t(vGx`%tnFq5@ -zYaaY+T{!h)@7g($n2w<<4|GSI$;@*bWX1U~{h31_<$F!`ub5q54o|nUArQ)x7%r^> -z__>7O`dChlE}~BzZXgE*hkxi@)Sfm`peP;wLY8CHyw-I-Z}Ekj+xu$f%G-Uh{byHh -zdZov`ZPgdsO3R(5Ax?XOAF5q{>vqqI9}Y -ztIymMLF#8p=yu+b&$Ni(F_A6R))60lLz6CGG@Hnn|~xgUmTp+ -zjoIH%B#s8r0+1`T7Ba=6yJHEuki3Em^v{WyN@^<{LONJRts3MFlq -zny;$z#G{@>+qCrP7n)x5+)P_$>3{+IGgom*FX|mFTqMmto#tq+-DZmajxU -zl=5u(5e<XdL7k9gkF{NOEq -z`NJWR@UZ8i>S^{Z{+uo%X5Efas*}Y&Splm{WCc(Q-f5?jlwDnPwPv%}MtM6G;a8d! -zhrm&=#R3*7YR`7wa$#%A+JkKfua^Xs6FP`C7%AQ@zn>&QSDX0xiS{O%)zf2N3OZ%9r3jO%sJ%7eu`Z-gY>A=y4u|)o%dbh(rqrw{ -zt6kv8p1zUA7vuCp+_JH8QdvHTT<<}CoFmR@>y~UdqWJna&B$x{h-5<<`*O*t8rkHB -z5c(XV5Hr6#ZCSaB^cV2@{_dXl>7KU9|Bbmfjfe7o`~S6SrIjLSLuHLh2&JNAO%g(7 -zE5gSzWEoUS5t1$IB>Nt+jb)0;7Q!&LF8~{%+|joaJ@(BlFJV -zs@As3LSZ^-3uk>4GkACNsR+z8v9p1&$Xy2vWYEsQ-g60}Had{xz0Z4LU_Q{iNQf9L -zpfI=NKpEoSbjW=6RQ|wI!R0ZvDRXjatbJSBp(wbA%7!S;zwu(UV_Y%(V8bLuas0j8 -zS35S#kxM0C8swSgXs^3=7!0tu9BU;;Ye)k)NiwxB<-&bBWU69T%YBHSbWd5K1+t5q-?< -zs}`*)*ZwQ8P?l63H@kYFpi!bdZS^?VPaA-f^B(aV&krF_14+jV5EG~A=M1LZTRbgh -zN1Hr0>csv1X7a*NNQv1}Cd=T{y1HG7T;~@%^1MfsBD>a|2J2bsQ>K1aANg4xc+6(t -zHajMC?$;k5bz_jRJzRDMm~czh#B4%bDhHb4%B;l}Xd;*rY!7IG -z0|db51N$6@zK-kpw!+%HM=QxjZ(47OT6#(|Nx$$5_O{dp35G{5&aGUL9O? -z+o6-W{+MaqDZy_>{UXd(W}+C^Z-c64Ll5E~^cQe_v;4-W^q)kf-N2Q6@&f#K@^n(X -zp0=Vsw3zcxizi|f+;W!(=XYWj{Ala#@|1QXDQ*P=(4ij$^)L*4+C=Rh#BZo4muHCw -zTL$djUEt?rch^LBrDqA-nYP&&we}QZ0oJXbJ}(6Bu(^y4e2HAC9?(&i)qWenjA@7v -zrR{k8{*Q5H*|OW<)*akiea!L)TY?1oxReJZEe1O4yr>Toq3R*FzJ@Dnncm2$^m7%{ -zeGswbAAnC-a@8h8iHYP%%*Q!?-8;Y8h{ig%4SqNhvHItSD6cMXg<U%~_cz4A5| -z$@HDVokv_96-zUX(D`rvcD@=~BHrUf`MuUd=uJ|m;pZEX99(*SM^6u|$X6RsN7qu4 -z&c=}g0wu7Qq1lko_`BH;C-Q6icnc6)5&8>6qXi>Rc}-tE;gYZOeqiE062Z8>_JxkW -zitddYqbtTA9&|&tt)>YgnQO}ySWo#d=CQ$w^Ea9KC`v{eMGpadZu)|Z -zAO-{q6XZac!;=Nx%N{V~f6>6*zlH=^UEZrazn!QZ)AP-Tc^V7uot0Ye2N~Qi)qcX4 -zAF**;1j8|C-uYR;lD5)fvgztwzjro2?8F(^8zy-33ay&j(m2fF@^N~ZVt{iJG(%jo -zO1sY=#3z1Vny^-O#>iMT$7N`*+w?aY>B_#Ro0YB%^5VY#d3LfZzXt7bfg^smFKQZ79)@4 -z#IiH0^e9p~)$gw~caZG~!>#`IH?CQ+vf@o&N1dO9nAb<}roFNQ_b+pzmH=I!u6-VM -z+N0OObNsr7OW~XM)WWcc@-c43xmTt;MwZHp{uxj~Z-Ok;-vjsqT&87`>VlpVCt%{a -z!pQf6zr>OG3pL+u4U=yd3_&-992DrJG#Ck@M;uN9@z8q4@X;14eL>L3UcIUg<83KU -zU-w#XiQTwUxKvVITak91gz^ntP_)O#3X=2nuU#7~Z=Nh6^R~VGmR>Ffo~2;ZI4p5XW*=om|=U#_xBx**`!|2rkcq@@?RvRK@ULo?=k* -z=;)>7n4MZ@&SUuZbQ|Cp`lMRj%z*%4It1YMrTxiZD -z-got*pLc5G$!k^Tk)&a|WB7xGxAqn)cKT%c8THf12}qMW!3P6^1>e_adRdLa1KQTG -zKmO++li!jH=}-V8J<#-Tt+PO~<@sR&Z0fET!AvkKLeC&x=6&Z@{+u5C-)}0BI -zBXI5etDJ1JZWC%&Q<~Y1*7{fL)|n@>^XSb_w6VV{f6sm71)J9=ay`w=$mpl)fpOyQ-Qv=JE1hfW6dj~D<Yb8q6t8cn{ -z=dytGUiP`L^8yhl&GjHT?_n*F+(?1*KIHa3&*{xhbfR|SXj99g1h;2TFXv?MRI8fV -zF~;q*cO$_9t+)mI?m-{Vk=_qQilVWn70pdZyk1e{_HBaf+NrAQ!k6)B& -zk^@O%k8euZU{tzBodd%ZX*d$3mik#td>Hd37oEDVA7n -zmVcrBaLAT=nU;zvX0`8L_x(Og`kqmKcD<$_N`ysKK`>&0^Yt1_gq%L_Cc5k0$I(+$ -z%dQ(HC;GA+mIvF3%K;Di_o1ge821y(zsgrua$3{|M@??aE`BewiY-EUc0~!65Jy2> -zvQC=Ps~eTw)6~P6YfmY-Rf+YM;F28%1{3?cvUo$_!s*&FhqHTgI}OJ|br(+xDcsy0 -zE0WNaR&xA$c?E-{^li+Fkc)QZAeKn7SU=9C%WMYe#B0PN^%avA!f)MLX~i-pwa;cw -z2d=W31D-`seCZpwj9zW)UJRI?{AA$(v)OmqGh4~5;N}F0h4r2~w8`4G*nwnwkwX|! -zc-KnRBjoRMJkdKSc>4ew+kH6R)!({QE5BdEwBLZ}M9|lFX$g1fHBzIGIOiM8Lnhnl -zssq&N5bxAflHI4ZGH}(-e9#}qa#+9dzx&z`3;T-Uey>;JZwpR%&hLA#OwPEOo}{`% -ztD2uy?M-eTT+Eg)N{QIF9EKL^>7EM%QQi6{ -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 -ztnT2~B}WCB+RrO&t -zb9k|_?;M*q9+~gdPQy2@r>-mRX-I4!S_*Y6Z}S|8^G+{Ro!n7cX2O$k;7pCj&f$%| -z<3Ob-bl-rIi_%TsOe+(OuZ^{iPYxS(Hh4{KBfRUsXi&F>`D75Vwc0;9!@gtW4FA+P -z*eKK)_=HUl9LUe*TG*+e@&G86hN7Y+M;kk_s!=pRoc -z&?{B;_uJI0Y0KZvPM^`eBDl7ute102Rj~1$}h!G?JRMEzSR`H=}aWVeMm79cmtayBg*O;MMo^l>);RddidgGWg -zUTyV)z5c|X5!l=Jl_J+xr6qHhvp|P4{^p$KGA9omoB1RveOA>%>%zoor`+~Z_pJq= -z$|gI;A(qES_2yr3c*6QU)vLFlv~KN{9LnbP>OUOQEs0mpY0u%k*xznm9)$3p?D;hj*Ku+=%+ra1t-)ld@m-P6e&&mse`ga_RG% -zX~vSlLrPTPF!4RlaPLEc3bSuTQh#m_+S4i?97l`eoxCrw?XgajbM#ZJ6l|OB73&uI -zBIdAL>an675+9E>gNR0ct@whDb%Z9_)?NB)2&2)L?UB;T3z#EstI90br0!^ -zryQ|LN%Y4ctL-#tCi)~eJuNWKuHE_h06kHW@l9O -zMRs)xENwPtRw4Gxkfjma=x0@xibjY9Hqnl+gH>%B%fE=XjoL>m%(&#_L^Wi9HV)X3 -zL$6g0vFFe@KOY=}GsRBdZo<=$s-=uGiX`<5DEfw0Cd?XTT;q{QkZhmG8OtU|WXxKI -z(kylwYquoW(@)QOOPG)%c?_=`3J*;*UNaUjB3av2OC(OsH8jlPJ(PSdUOjET6=fq` -zI@w+oRN@d0_~uJBaYoZKR`=UI|M_f2IM_|;ai~%ZvDJAw>u?4CO-y=$bt~m$YZ9l{yNVBgb0L5V?1Sm~ykkH=k8ox(;Fgq{fZs -zHl~Gq_{Ii%!;>|Ltc9x -zEVLc=>D2HMXIqP>ZldEW=ezSWdsgC|ijPyva=v~Sf@4_F#P{^G>CuGAy^7(2=ih6gUUrc{KYhjPsN{V -z&(&mcA1%Z5J;j!`+`l?2v-k$w2EQ%K|8lPIP^hyleEB)4mkRcHJ^uOQY3O*Vy035)4`TxX4^8YK3Pk%yIl=m+slbsZg~IsIon~DW)C}t3oIze_c&_D#W3X=`hayT~wxu@7`V)x9O-H -zV>5h-%K+pm7+B7Zo+tG_u3tI3@I%zK;y91?*?jF{2XdKcY&(G-vuyPfxIcsv5AQ?& -z)6r-8@F2E>pr>6q%Dn5lcRBs}_x9OX63#GU8QpaE6*|>3 -z>1PJ@|)hrFXy -zhmpaz#ZK7iD&7?Eb&`6Y);Fi;jLXXhSeF>6S(8nRH#E0Rbno1n*rLSDtSW+xs%9~* -zbZ3=)HB$NDZoZ7z9=CS^z=%0tX;r&>H+6%UIVLyvUa}sh`^L-bXLT|9^v^pvy&MFE -zOWjAK?kW?JYb>GR`J)JR6!!>LU+9v<_(#*ioaX0P$uos@5YMQx6k -zJh7^YK?_kwqqA=LEDJc*Y_%Qk_r&}%2{~4A;-o9av824N{A-gd<+f3*$uBSMT&KLcgO7o~_j-6}bK=VPx5b-A%WNl- -zTv7VQ&gmp#e?OYR(+sheT}comzof3NK5Vu!V%8@&Q+Jql?Evn#Qy=6@kdLIVP>?QL -zrQjw#9vl#7Vqz2cd3najadI*S-w)pBmi@F*66>_NsxswQCwQlqW-*I6Gok_8g+&BZ -zxs~%qi(_ia6#lWeMTq?7wX7PJ{T;jeT?^M=g$81S2FN8ph9Jxw-dv5FnzDzG5YF-x -zKEuQqZ_oMdr*3T1VY;c033|g%Z}*9ObQOJbSa-TfF+TSsyHF`d9mKIWwL(}9Ew}LF -z3HnJKX`gG?9Y)-_l}3+rJ;CBkrEgI$G}UTNRZKSE$%ityrAP%r9>c0Q=Ck?-c>lM6 -zv%064YIdmWpgDVs4uJsG2=DOgrYj=x$t~-KadCdwsw%=D*L~B83+auDMI%ujVoEc0 -zucpz}FTDW?HIei-qnD0hiA^P)IfNwCB6WWKRoJmP*>6J4kJoLUlk;5yUJlf2ETc^n -z=JkZs)b97}ps#@AIyd*ACsn>Z*zXynW`m`Iw1$Y!&_fT!xy8i9%=I8qIH>7}?d!=O -z67md`#4#Ulbj9bs2iJK()yN|}+mj`j$o1t11O?}|x->%(kHf#ChEVj;1eD0-c=Mn2 -zBJNv8?_$g8jSy3z7zE -zQwLV;^zz5G$`m(~<24dUdj-i9y9#o1CEOv1Ys*>I0(pn?1TzRj52+B7 -zuY}F@`0m|+f|{5TZurp49igVnQ=GyJy2cWjq{TIypv^!QhwsE;eBvw3xHGN6jt(B} -zu@;ao&A1-AS)%mgRul;U19KVwdJFU)>xx4av||1Bzy3W -zOH?h~{he;W?!N!o@U@h>9IfP7$aAS+P_iH$0`e06uRoL`F4IYp(~$l$dD-prcD0++ -zX^{W)R%-kI*`V76Xy$zVMv=H5_L}rw(#j2Xo(9rOLH*CR^3VCCfVaOFZl62<%yP~! -zB-<#+MR{p}8?ue=$VlT+r<$T1Q$`A0YF_;|BV6AbJf#~0z@;ShTEPC33kVm0XeKa61N8riKzNL%VF6e*MFmfGaEhSVjJk7+Zzp7KdnSP!D{P -z#LErwLhSp$8`8AbI&PqsVT6^$kj=bxX`~wwwHurcN^wn?RtHh8F@6Vyn2`lIC+h&F}WDF&dV|9cJ -zB^)A)_fLByd@R;8@oyL#iG*S-Jl#fS`xWzKs-gy#mw$enuo`zFY#;A_py=8n8Rj_e -zM5Rw4Nn7hXxKskBz_NDlv_@!3?A*vp -zDFFe=`e$3Y8yGZd^cHIhKEqL0qT{8YvMC?m%F$R^+z(IXEwOI}Mdpzp!D(i;!ksFz -z^Ke|PW7)T8sv#>|wL3G?!6AHa|E#=Bk&qA;T+TJ;YzOa%f_2>7T(nlEWG -zBZ9NyQ=4_14jt5umQ5tJxZ>i|-TCJJb8~Yy$%5NZ3#eV(f0pKxV>fb)MyjHaRYx;& -z#6d1j6jV@9u+M#O{tQx>l2DK?(d}`iw!67C -zY!a}v>dUSP*m>Iu;1cnSbGy-N+KMxU`D6io9FMj4sH_|5r12fRwa~Oo#~mFR;jO(S -zB&^`v=O|J~bYr#Cy)Vao6cmAyq$T>jAp`d}$CyWDbasSHB0$TW-kou2oeg~GGR5++ -zecfGH)5b~K;f*2gEs^do%0b!>g;S)W>Z^M_Q?wObnf?~FlSMVTC9}-y*Nl#dp1!ok -zlr(jIoNk)Xawc&~VERlKedV%sKjdCDdiKxmU;OT`WZ`rAOB8O&Qf|O+r$s~fF(*W! -z2--MF$odOI)P8XLk*$Md83`!)6$L6)Q{~x@h-@D@6ghVy$zO=hlezpcRBit;?z2CA -zp&K#KjjdAKh)t5N9uUvD6u%$GZ)=s9YkVUvC9)|>SS0*RVfm%w`Y+$~?jR1H -z{6(L2FMzahwOlOacp0Q`TGl+18Mo*@EIa@pUVd}>*65yP>uZG%*mu_Wy;oyUeyC!JB%#O$`H_kVKbrKvn;Sn1fiz~u7s -zUQ^}eCs)RFc*lm0#OoM{XHBkAN#;T++;CSGmGGA4LMi1N*9nLs1Yg*SxgulIOcchN2M}|tg(db%vH3pE5pzcfU -z3-1XzPQS}?$Kb>OAkMTbQtycGxp#4#yop%|Qj&Lj8o{kLJ~x++<=Y+WKh3aFPv@_P -z^H2m)+$@c2`@BxM8r870IBSWdp|+&2jwcP(M{|4seBuNYf<~Z;Dl*sDyG`|FNbcs~ -z;P`kC3hDJ=v~x_I)edb}a_0L!BZ4<<2M9_g@i0ymj+vqYr^cV$?extkJHjPp{s%pS -z^LIEO{=>CH%IUNL2C@FKOJ@11=;Z@~Grhl?+811In -z=vFjzgLUCI-Kg>d13!eS*nIGe#us&Q&!%qT^@hBP@7{;K4a3tiMagF3{fo`GV=D0;6+&gE^EX2j -zrq64}9d7a<7x;@%gfz`&SuRcz6U2wFA!X+#3tXm> -z?^yt!5eFr!t17BjR(_qgyIh<(O?LOXLE`D9V -z;xdi0+Kp1)YO`DZfe)r5B_vtu+FyY}T;DqM`SY5E_Fp1L}^Y#oe7g -z4r#4Md-v_b|NfB#0R`7OI0NtFc$9#`mCRP{{)muG%+0#*ebReD6R28?lU#csRe#fO -z6NP`O+Zq!Q8Oc*N7$9mf`1u9G4?x}gpf{WAR(VxRe*B21BI=(_(1N!*>1*;dV@}q4 -z6SL+|4$vfC-CB8|YpqFOSb<|!LL~FBUSxU;r)X3Icz`>HaNa*Iq>G+mn=AGfl9h9> -zE2-3XmjZ{OMG+Uc60q?X%8>HXZL!r-k-Me|9Ry`&v8paJwcE?Z6(NNX0um}tuj+ccX5~iP;{EZTN -z4T(gErTg1(GpEB0=qhh8^%zf?!GMz8F~51QwXFhbZ4V?7qqX4i1Gsc$X#_!2VpgM- -zaMlpi+`GZdharJ_KlZ@lsQ@I!| -z@qy2jr##K-YGD4Rxkhxd9(#UGiUxV;Y`d>%49&GFc6C`cBYcV6;0UBcx*EjsMd -zTcs>5v{gJ~0-@vf-%c9^AVI}9jItT15Yk#!!SgTU=|8sHOmop%#Stv+Uu&N;xiVfS -zDrky1jwhD;Tl5z5(sDw)WX_y93iui)5Kc7$esU$#?D}n}cRt~sDjMBQLi`_7IF?X%p*5yzB(w$J>1-n^ -zUvw(IC$pJ<0-v5Ujlc0w)F3w;5!qul!^`$Gd;WYL6T=4-j@CcDe61XpSv!yvGDWXc -zegjwWTr_Z9-c~SLtT0@;?04*}N~46V_JW?xb` -znqhKsd5T}S5Xt#uy4{*It#F%Og}$2fst+zJpeqtWG!*`q$`6N}y#@)y)0dr{3%6|j -z6$eM3js|q=Lqd7K5MV<}Kq4*!q}3#%^lKyYz;3q8f)iS~=><%@-+mpA$A~Q8We-4WhM)1gB5#c!w<$B?hCdzs -z1$~GB+t1E-nZq=Ei(Jtk+1lEM!NuI)2{a#En_X@2JP(1zAs{&gPiz^0;Y4^ihUKm~ -zrmKJRAa2<8mA3XT(*n(w2H)SN!-=d3jsuNFTAq(MIGMARkfzN1w)vkK1DyyE5RlHv -z;TwlQ8}9i0cn@n2)-8g~F>6+sKD!8FkE5Ji|D3$T!Qt!W2={JmUN`=H4Tr^Vi72v* -z!Pr^)RK1Yx%FtB{j+b>v$Tq{7=52)sq@dDxd0s2NHmU+x+W%s6q$v#z1KJ=L(V4x3 -zW>w8ZZ9#61_ppO69Ii${T*%2fNwA=BXCP3Xs~i>xDd&}ek&)3bP)lEPqsK1P -zyd#Dm(;EgMLIn6nWY`Z|)Byi}FMV%K3CX)0IwlrrA3|Z0tOo?i@%A+B5^ni{t*&eZ -zM@ykGs6I^j;YZIifUPrLHJ_Q41&Xn{)5w5LD+2RjrVz8Np><}!uM~Eqv80ezCfVdaxl|~1RXCPscncj=PgoM>uPQl!)CFEP{qSLfoEGAqPe9i#df`^1XzZ? -zh}m407mZhY!Lb2R<>8Do_yanb!MQ|CaMX!RVZnB?B -z`Fo~dKi`A7b6k0`UV9kmIGspm?g~b#BOt(WdQl79f>MEFvJ)D{5h#B=TV6g}UOij3 -zt8!e^;Wfe;K`c=aJMglH(TWN8n31afjGP=`{B1yl9UR=dhpva~Ici;!cle+HSXPUv -zzOvtRELaV<6Oi%|Xf$kXUTSdU3nEMWvdZLqrmK&B`6mz9v;k>#Be!BkolQT7IeCE9 -zfh-_v;DBA+%f|<6fX&R}xL*qNL5uzh_Zhg~oRsLwkb@E=BcKI+4N4&`Wa+)~VdKrf -z8|uoWHL~qtgkiUXW0CC!UXMT?5SKtocJ_m=+m}Z9&bXiJ6;2^{FL4~~e-^iIpJRWj0tqHFksw6Dtr`aO2nWZiYidE2i=(k4 -zAKJA715q|y3KLSyIvaMq4Hz_ws2-1Icky?{nQPek77mMg(8ms|DKkPV`C+^=7MIA% -zk_heyiY1L9v+!|>l7F-NWTFyA3#}#KyM%~Q4shaE2_u3rcW?m;LSr-%&UW{onumKf -z!PYvrs>+nb3sb&J%|&0$RX^_(KGd{hyV?DCSy@yJSK -z+YQJy&ef@Z7Aaxw4&Y)6OCkDJKa0wQMzwu4v+PB9d;32&G^GoZgzD=aYyWk~yaO_ckid|-6I?bTRLFs8y0gNjsDyKei*$n|KfkPQO -z?x`<0`=24I0AB!A1yG0QqL=E8J*@eI+_XNNna0IMMlo&-$SN?INd<~#QH^SDm -z1*zN2@x@n%cSNz;))MUe-RD4#4~>QSIAi2fcs(-wa{ZSk>9^Vic3Fi`1KZ+?ztSoW -zP>a9lb7~Z~PgVdB8}c@Un~J -z9_>WRI__U=i>ex)nqffWv?N!tL9n-vstD*D;M#JTDc&K?eEF-@_tal{z^ciQZ(VY8 -zgUra8R^$8djdlXpti`kLQ6e9C@+UL;y0Ehj527Be@i4v -zxTH$SyO>r~sWK-|I%C$L9o$6@io2EYQ&B8wBWiiF?dOw#F*=li|4j$#D;sK7p1WL# -zr(m2b7(GU3|8c1N7E&&r7u8wY0l3xUUv8hIZV4|a}!N_{3qxCsY8P-HiOyuLGS%VA(#hte??e2ky6jh~ -zXwOn|iFb1Y$+h9Fk=s3;^*LFx@3GPz0``+Gl52byfo=*HjJ&jsLqSFOfI@ub4xg}Szhx?-J;Kn-Y8jh$yjtOmv8eTj&P`^)4M|Vc($dU -zchCN<4>>leoOp^w3>N!jCY&}<5mrY7RuVEFZ$_M@UXkgjU(FVk_(Gvu4UV1k&FKAW+z407dW2l>KD|yV(8Z#A -z1UU+KT}>|s_$N%Ax`Y08Lm>*WJJuW({@dtV&l2q)Ms7NR7y2q|?0SK?i!3v*x&c+Z -zW=&f@R?ABJL#INO3V>LaeOK+t0FNfP53S|K-ahHmaRW!Wqw^fml588)M}pZN@ORJ9AczE!BcG$Mw_}Pgmv~COST%mje)JD4V=z8N6BNNO}PNO@1=MUG8#$71JUR2xE$~Sp=tvJc8y-+^xRVC#k -zAF6GzazA)GYx$G%e=blhF-jYK-8aeMGl<3rgta_$D#kV!s4}}m|Lmu`eEY33u0K-$ -zlI-UgGV1ZxAcnSG-@gf7KJdBVrAmAq;Fprr!e|;UfyMYlt$8C-t -zz2hGTs4!fXb-w+XQ91|K%P0TJ?7o(&q^z_ -zi&u@3W$ZEC-{7m*n6phS^qj@4fcuC2vYlTwwb@zt1&Qi;z|cEw`*ep!bbD_a-3Jj_!I(2OTdOsfr}KpE9cJs$NwGl!$SO1 -zwyhG3QJ~6v{O8Z=fWvf6`vns99Rf-Dv($af{GZJ3=)r_XkCqv&x?NoR9unzf>*{#xgnCvj=6+%`|2Se^ -zKtY3KB+2j@C|yx56-RoDPiRowXX+t0JXV&Q(Z629u^COTym>uwD#6qAXQjZKe~|KL -z8&RufRk6UDM6QhhJAto)v@s%)nIrqITB<5(|6%ah&ritx@HCeCBKrlJ;Wblqr)15} -zX5hh(1iAdiv(_P8DcB3lk!n>MC%6-XH#%=Xefp(}&C07Xf;S@+K%_5_%2&b1MnU>{ -z2b{cn`Y+SLQFjae0D!dYV+5&mCZP8Xl$_Q3RES;fhlxS5{ps54d|UsoH`qU@2+d7Q -z1UdtU`TzNXG55nJdV0XCzyGuiWd -z{DYCgX(zrwAvWP};M5(3q_P)*F4WGPcK92RZ6e3UfB#L2Lr12*V`y$+As|0}0V%=p -zQ3rkoYNOTenguzl6eN-)TngkVdo+cR!NH#klK^nK|GUj5Hca|-6ym{v=?wO?up}-{ -z5EH@q77>X4@0a$~a4U-;;R9GtAbLj%c_9qC|Mh{3w)Xas+FpY@?UT!q9JU?o%qwJ( -z)FRc*-rR-!(Ve5)D9@N+7!I$OKed@h>^rm;kTvYH2?6b!2Y?bm6tCH({!HxZYjBzGlauF(cX{bGzpnKUcy&c;O-@v#clnMNtK)|J^BEZ+w= -z^+lXBzw+>{iT1)u9EPMVZfotlY{MJkGLaUNueVX&AzHLMq!9B(0jaUYk~bGj0Mx4i -zQHHH9f{S%(!%(;{2ui>Wu$$dQ>u|tYelesp`J{-E&hAmnQFe?M(?Vi<4r11_{;W|k -zOl~9MsjsO&f8-z@v@cN>)m4JEGs{~&R>Z&R(2;NogarnR-$8Y^7{sLlW)!03Mb?cs -zIbTfY2hGt8M116shC|%I0&X=3`M?RUs|J$`NzUr?nr%Xg^&zmFJ(=HCObD3` -zW3li2WL4+KQ;G_5vy5YS3>sdf*a*NLA_B;4Y#^u@CJ-OcWa^dTD#u-0M -zyYhQP7??zAiLSdca;+@c1Up!a4O-#)R$69^HOi@_fhj-}317^%)nvW>aH`|V2)@gM -zol2D8N4o}-q`s8y{)FsK@DS7Qyb?zKMbW}}*kdHyCtE}`U0Ip5Z00u)iP(riCH`M- -zx5ZdIH(6m6Qc@0WvdW_2@NG)m67@or;_6W7UB -zsH;8JKA5TzX&-F5^6}%_>|8!?0b$AUmlA^GP0>4Ln=`}Z^voL}yl&hmvk`TnfHvB& -z&@$j`U3D^}*F2f}F3NfbW%L`(y9Mf_rA2aI=`GmAqFzHPurE|Z&qE2yf-6H+H>i^z -z_8YrOU53livRv&XGv6-GP)@H3(l{(%&h}2RGUgrm&OnPxMWTbz9D*Rw$ -z2k5rx#Vq0&rv%N0AOCn@U^$UCPs-cMmpnxBF$POfNa%&rY015(xC -zMl;R*mhsL-t0y1I^6l$9`h?0`Y}%Ft_6*_Hb+VF|==VV1^E0j`K7*EkIlPE^sZ~80 -zb{Dys9WFzTTqm%D%OTGb(pi23)j8@AX##9MQw+*l4vdb0G?IbP<}ky=5@jv*OWce1 -z{d_RK6IUKO`}MMkR!(;JUi6ywLWO$%y+vQXNTTrndhad4paXwPs5$g`oIZ7x1_^G?&9M~hnCxq~MZRuRH%xS3RS}=G -zPABDEwHT!pXpvIaEMF)Xn(rAy#kG#v--)o$^z?bwxx0+9~$vOE)>9#V-0Pk(M+A^k*R@mS&E>7y5j6CT|^&UR+=zqQkEdf%w& -zPE>3!Db(jlc$a%2CEFz_1{s5vy@X;lpVQR2gd%yRglm#^jHTvBwov;h@-$iQyh$44 -z-mM_~hejC>;&o&*oI>|+D@W7k8nCuBK~Amw1WDR*ArzVOB-ZtP?ZTF`d_3v=hrgVs -zuexOxBdj`v;f>j2wg!csysF}kv{vb$38jI)9Q -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 -zH(=zPO%G@IrWveDz^dj0FJrFQ8rFjk)SDe- -zSu>Z#&Eu#VgcN{h7vqnCndm?u+uqR4=vr!RPB-(nOXstu`upU+f$MW1QH%~^ZK2%0 -z*{E28hzIO7?RdZSD!Hx~oAH4G)@q*wdoGu~#F<(lXhjDAd8C})%$w?RXkYa6hT@*t -zu^y0ZwJ;)5Lfc_so0*7}=zq(1^_+(y{hD+ZV=iont2LzA$Ry;6BXI1@&Gv%X@4Mc< -zFh-+YI~k!6H}C|e$rM#pKiOp0QAb9hDyt_h057&0p|S>s>grT#?&+Q(dQCf9n*1V%wf?liJ$m_(R6I8 -z&XB{^vF;v`D(~qF`NC3`hD;umx!|R6-l*nz|`Go4U%_GUjS{8ghHy6i+*M -zui11HeXsn9vkoRC^3x#))Q6a@ehfyXfZvj8`!}eP^w;tS{R&2`=UUp%VQVk%O2H4K -z`?hK}NfxIbmNRai(VUH%b@R)BS>}8jKT^@B-YEIQlGWpxWQ9K4Fshpwk5ugU9lKzs -zH#y{L+LjGM9E@3EKR+91C?(f9?I|2d==T7j2slvxMyNrhLk-z#U{s!#GENIR;bLRK -zeDe#Mr%>akB{P@SFxDh+tR|my1-ZmSfXRre!ly;3+5=T>Sevolu -z?-uMthsj6c>HP=?gZTyV_JrHlYW?hUZ6TaAMarkA4fajxIB_V8cq(Z|7h_r9p4Lqp -zrDyIOEO*{6D&1&D6ccnXdQqS2EOTGROYoM|VJ(zy0s@!`}HFYeqjfcF5}gqcKF;fF~4or0!6}<^Ke_FH*7q - -diff --git a/docs/roadmap.md b/docs/roadmap.md -index ba19d65..ce8bf5c 100644 ---- a/docs/roadmap.md -+++ b/docs/roadmap.md -@@ -1,17 +1,17 @@ - # 开发计划 - - - [x] 2021-4-1:完成整体设计文档; --- [ ] 2021-6-30:完成点火组件的能力,尽快完成一键部署单集群的能力; --- [ ] 2021-7-30:完成点火组件容器化; -+- [x] 2021-6-30:完成点火组件的能力,尽快完成一键部署单集群的能力; -+- [x] 2021-7-30:完成点火组件容器化; - - [ ] 2021-8-30:完成GitOps集群管理集群的能力; - - ## 点火组件开发计划 - - - [x] 二进制部署流程重新梳理,明确各组件的部署含义,输出默认部署配置及相关文档; --- [ ] 2021-05-15:完成ssh和task机制实现,并输出设计文档; --- [ ] 2021-05-22:完成infrastructure模块的实现,并输出详细设计文档和模块配置规范; --- [ ] 2021-05-22:完成etcd集群部署模块的实现,并输出详细设计文档和模块配置规范; --- [ ] 2021-05-25:完成controlplane模块的实现,并输出详细设计文档和模块配置规范; -+- [x] 2021-05-15:完成ssh和task机制实现,并输出设计文档; -+- [x] 2021-05-22:完成infrastructure模块的实现,并输出详细设计文档和模块配置规范; -+- [x] 2021-05-22:完成etcd集群部署模块的实现,并输出详细设计文档和模块配置规范; -+- [x] 2021-05-25:完成controlplane模块的实现,并输出详细设计文档和模块配置规范; - - [ ] 其它模块任务待认领 - - ### 二进制部署流程梳理 --- -2.25.1 - diff --git a/0002-fix-some-bugs.patch b/0002-fix-some-bugs.patch deleted file mode 100644 index 1dfb99e..0000000 --- a/0002-fix-some-bugs.patch +++ /dev/null @@ -1,185 +0,0 @@ -From 81a91cf3834cd351128fa7efa2b3c894af0be32e Mon Sep 17 00:00:00 2001 -From: zhangxiaoyu -Date: Tue, 20 Jul 2021 19:46:32 +0800 -Subject: [PATCH 2/9] fix some bugs - -Signed-off-by: zhangxiaoyu ---- - VERSION | 2 +- - cmd/configs.go | 7 ++- - .../binary/infrastructure/infrastructure.go | 63 +++++++++---------- - pkg/clusterdeployment/runtime/runtime.go | 2 +- - 4 files changed, 37 insertions(+), 37 deletions(-) - -diff --git a/VERSION b/VERSION -index 899f24f..f514a2f 100644 ---- a/VERSION -+++ b/VERSION -@@ -1 +1 @@ --0.9.0 -\ No newline at end of file -+0.9.1 -\ No newline at end of file -diff --git a/cmd/configs.go b/cmd/configs.go -index e85ba70..19a182c 100644 ---- a/cmd/configs.go -+++ b/cmd/configs.go -@@ -119,9 +119,7 @@ func fillEtcdsIfNotExist(cc *deployConfig) { - return - } - -- for _, h := range cc.Masters { -- cc.Etcds = append(cc.Etcds, h) -- } -+ cc.Etcds = append(cc.Etcds, cc.Masters...) - } - - func loadDeployConfig(file string) (*deployConfig, error) { -@@ -234,6 +232,9 @@ func appendSoftware(software, packageConfig, defaultPackage []*api.PackageConfig - - result := software - for _, p := range packages { -+ if p == nil { -+ continue -+ } - splitSoftware := strings.Split(p.Name, ",") - for _, s := range splitSoftware { - result = append(result, &api.PackageConfig{ -diff --git a/pkg/clusterdeployment/binary/infrastructure/infrastructure.go b/pkg/clusterdeployment/binary/infrastructure/infrastructure.go -index 698c16a..53c07c7 100644 ---- a/pkg/clusterdeployment/binary/infrastructure/infrastructure.go -+++ b/pkg/clusterdeployment/binary/infrastructure/infrastructure.go -@@ -37,7 +37,9 @@ import ( - ) - - var ( -- pmd *packageMD5 = &packageMD5{} -+ pmd *packageMD5 = &packageMD5{ -+ MD5s: make(map[string]string), -+ } - ) - - type SetupInfraTask struct { -@@ -166,14 +168,15 @@ func copyPackage(r runner.Runner, hcg *api.HostConfig, pcfg *api.PackageSrcConfi - } - - // 1. calculate package MD5 -- if err := pmd.getMD5(src); err != nil { -+ md5, err := pmd.getMD5(src) -+ if err != nil { - return fmt.Errorf("get MD5 failed: %v", err) - } - - // 2. package exist on remote host - file, dstDir := filepath.Base(src), pcfg.GetPkgDstPath() - dstPath := filepath.Join(dstDir, file) -- if pmd.checkMD5(r, dstPath) { -+ if checkMD5(r, md5, dstPath) { - logrus.Warnf("package already exist on remote host") - return nil - } -@@ -187,7 +190,7 @@ func copyPackage(r runner.Runner, hcg *api.HostConfig, pcfg *api.PackageSrcConfi - } - - // 4. check package MD5 -- if !pmd.checkMD5(r, dstPath) { -+ if !checkMD5(r, md5, dstPath) { - return fmt.Errorf("%s MD5 has changed after copy, maybe it is corrupted", file) - } - -@@ -220,6 +223,17 @@ func setHostname(r runner.Runner, hcg *api.HostConfig) error { - return nil - } - -+func checkMD5(r runner.Runner, md5, path string) bool { -+ output, err := r.RunCommand(fmt.Sprintf("sudo -E /bin/sh -c \"md5sum %s | awk '{print \\$1}'\"", path)) -+ if err != nil { -+ logrus.Warnf("get %s MD5 failed: %v", path, err) -+ return false -+ } -+ -+ logrus.Debugf("package MD5 value: local %s, remote: %s", md5, output) -+ return md5 == output -+} -+ - func NodeInfrastructureSetup(config *api.ClusterConfig, nodeID string, role uint16) error { - if config == nil { - return fmt.Errorf("empty cluster config") -@@ -362,48 +376,33 @@ func NodeInfrastructureDestroy(config *api.ClusterConfig, hostconfig *api.HostCo - } - - type packageMD5 struct { -- MD5 string -+ MD5s map[string]string - Lock sync.RWMutex - } - --func (pm *packageMD5) getMD5(path string) error { -+func (pm *packageMD5) getMD5(path string) (string, error) { - pm.Lock.RLock() -- md5str := pm.MD5 -- pm.Lock.RUnlock() -+ defer func() { -+ pm.Lock.RUnlock() -+ }() - -- if md5str != "" { -- return nil -+ md5str, ok := pm.MD5s[path] -+ if ok { -+ return md5str, nil - } - - f, err := os.Open(path) - if err != nil { -- return err -+ return "", err - } - defer f.Close() - - h := md5.New() - if _, err := io.Copy(h, f); err != nil { -- return err -- } -- -- pm.Lock.Lock() -- pm.MD5 = fmt.Sprintf("%x", h.Sum(nil)) -- pm.Lock.Unlock() -- -- return nil --} -- --func (pm *packageMD5) checkMD5(r runner.Runner, path string) bool { -- pm.Lock.RLock() -- md5str := pm.MD5 -- pm.Lock.RUnlock() -- -- output, err := r.RunCommand(fmt.Sprintf("sudo -E /bin/sh -c \"md5sum %s | awk '{print \\$1}'\"", path)) -- if err != nil { -- logrus.Warnf("get %s MD5 failed: %v", path, err) -- return false -+ return "", err - } -+ md5str = fmt.Sprintf("%x", h.Sum(nil)) -+ pm.MD5s[path] = md5str - -- logrus.Debugf("package MD5 value: local %s, remote: %s", md5str, output) -- return md5str == output -+ return md5str, nil - } -diff --git a/pkg/clusterdeployment/runtime/runtime.go b/pkg/clusterdeployment/runtime/runtime.go -index 8295dd8..29fab7d 100644 ---- a/pkg/clusterdeployment/runtime/runtime.go -+++ b/pkg/clusterdeployment/runtime/runtime.go -@@ -149,7 +149,7 @@ func (dr *dockerRuntime) PrepareRuntimeJson(r runner.Runner, WorkerConfig *api.W - - var sb strings.Builder - jsonBase64 := base64.StdEncoding.EncodeToString([]byte(json)) -- sb.WriteString(fmt.Sprintf("sudo -E /bin/sh -c \"echo %s | base64 -d > %s\"", jsonBase64, "/etc/docker/daemon.json")) -+ sb.WriteString(fmt.Sprintf("sudo -E /bin/sh -c \"mkdir -p /etc/docker && echo %s | base64 -d > %s\"", jsonBase64, "/etc/docker/daemon.json")) - _, err = r.RunCommand(sb.String()) - if err != nil { - return err --- -2.25.1 - diff --git a/0003-use-export-to-replace-go-env.patch b/0003-use-export-to-replace-go-env.patch deleted file mode 100644 index f0f07b6..0000000 --- a/0003-use-export-to-replace-go-env.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 0d411aace540cc13ff9af83371e6d9e6576cafc6 Mon Sep 17 00:00:00 2001 -From: haozi007 -Date: Tue, 27 Jul 2021 12:11:01 +0100 -Subject: [PATCH 3/9] use export to replace go env - -Signed-off-by: haozi007 ---- - README.en.md | 2 +- - README.md | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/README.en.md b/README.en.md -index eb4a5e6..1a7168c 100644 ---- a/README.en.md -+++ b/README.en.md -@@ -10,7 +10,7 @@ Eggo is a tool built to provide standard multi-ways for creating Kubernetes clus - - ```bash - # enable go mod --$ go env -w GO111MODULE=on -+$ export GO111MODULE=on - # set goproxy - $ go env -w GOPROXY=https://goproxy.cn,direct - # download dependences -diff --git a/README.md b/README.md -index 64709a0..721370f 100644 ---- a/README.md -+++ b/README.md -@@ -11,7 +11,7 @@ Eggo项目旨在解决大规模生产环境K8S集群自动化部署问题、部 - - ```bash - # 使能go mod --$ go env -w GO111MODULE=on -+$ export GO111MODULE=on - # 设置goproxy为国内代理,也可以设置为其他公司的代理 - $ go env -w GOPROXY=https://goproxy.cn,direct - # 下载依赖库 --- -2.25.1 - diff --git a/0004-add-hooks-apis-for-cluster.patch b/0004-add-hooks-apis-for-cluster.patch deleted file mode 100644 index 6901d13..0000000 --- a/0004-add-hooks-apis-for-cluster.patch +++ /dev/null @@ -1,625 +0,0 @@ -From ab6783942ef1a76fd77b77ac2de596c702ba4607 Mon Sep 17 00:00:00 2001 -From: haozi007 -Date: Tue, 27 Jul 2021 08:30:51 +0100 -Subject: [PATCH 4/9] add hooks apis for cluster - -Signed-off-by: haozi007 ---- - config/openEuler.config | 4 +- - pkg/api/types.go | 10 ++ - pkg/clusterdeployment/binary/binary.go | 149 ++++++++++++++++++ - .../binary/commontools/runshell.go | 39 +++++ - pkg/clusterdeployment/clusterdeploy.go | 48 +++--- - pkg/utils/nodemanager/node.go | 8 +- - pkg/utils/nodemanager/nodemanager.go | 19 +-- - pkg/utils/utils.go | 2 +- - pkg/utils/utils_test.go | 121 ++++++++++++++ - 9 files changed, 353 insertions(+), 47 deletions(-) - create mode 100644 pkg/clusterdeployment/binary/commontools/runshell.go - create mode 100644 pkg/utils/utils_test.go - -diff --git a/config/openEuler.config b/config/openEuler.config -index eac76ff..6ced22f 100755 ---- a/config/openEuler.config -+++ b/config/openEuler.config -@@ -21,8 +21,8 @@ install: - package-source: - type: tar.gz - dstpath: "" -- armsrc: /root/pacakges/pacakges-arm.tar.gz -- x86src: /root/pacakges/packages-x86.tar.gz -+ armsrc: /root/packages/packages-arm.tar.gz -+ x86src: /root/packages/packages-x86.tar.gz - container: - - name: iSulad - type: repo -diff --git a/pkg/api/types.go b/pkg/api/types.go -index 8097779..403dde3 100644 ---- a/pkg/api/types.go -+++ b/pkg/api/types.go -@@ -232,6 +232,16 @@ type EtcdAPI interface { - - type ClusterManagerAPI interface { - // TODO: should add other dependence cluster configurations -+ PreCreateClusterHooks() error -+ PostCreateClusterHooks() error -+ PreDeleteClusterHooks() -+ PostDeleteClusterHooks() -+ -+ PreNodeJoinHooks(node *HostConfig) error -+ PostNodeJoinHooks(node *HostConfig) error -+ PreNodeCleanupHooks(node *HostConfig) -+ PostNodeCleanupHooks(node *HostConfig) -+ - ClusterControlPlaneInit(node *HostConfig) error - ClusterNodeJoin(node *HostConfig) error - ClusterNodeCleanup(node *HostConfig, delType uint16) error -diff --git a/pkg/clusterdeployment/binary/binary.go b/pkg/clusterdeployment/binary/binary.go -index 40373e3..96c0dd1 100644 ---- a/pkg/clusterdeployment/binary/binary.go -+++ b/pkg/clusterdeployment/binary/binary.go -@@ -22,6 +22,7 @@ import ( - "isula.org/eggo/pkg/clusterdeployment/binary/addons" - "isula.org/eggo/pkg/clusterdeployment/binary/bootstrap" - "isula.org/eggo/pkg/clusterdeployment/binary/cleanupcluster" -+ "isula.org/eggo/pkg/clusterdeployment/binary/commontools" - "isula.org/eggo/pkg/clusterdeployment/binary/controlplane" - "isula.org/eggo/pkg/clusterdeployment/binary/coredns" - "isula.org/eggo/pkg/clusterdeployment/binary/etcdcluster" -@@ -29,9 +30,11 @@ import ( - "isula.org/eggo/pkg/clusterdeployment/binary/loadbalance" - "isula.org/eggo/pkg/clusterdeployment/manager" - "isula.org/eggo/pkg/utils" -+ "isula.org/eggo/pkg/utils/dependency" - "isula.org/eggo/pkg/utils/kubectl" - "isula.org/eggo/pkg/utils/nodemanager" - "isula.org/eggo/pkg/utils/runner" -+ "isula.org/eggo/pkg/utils/task" - - "github.com/sirupsen/logrus" - ) -@@ -415,3 +418,149 @@ func (bcp *BinaryClusterDeployment) Finish() { - bcp.connections = make(map[string]runner.Runner) - logrus.Info("do finish binary deployment success") - } -+ -+func (bcp *BinaryClusterDeployment) PreCreateClusterHooks() error { -+ role := []uint16{api.LoadBalance, api.ETCD, api.Master, api.Worker} -+ if err := dependency.HookSchedule(bcp.config, bcp.config.Nodes, role, api.SchedulePreJoin); err != nil { -+ return err -+ } -+ return nil -+} -+ -+func (bcp *BinaryClusterDeployment) PostCreateClusterHooks() error { -+ role := []uint16{api.LoadBalance, api.ETCD, api.Master, api.Worker} -+ if err := dependency.HookSchedule(bcp.config, bcp.config.Nodes, role, api.SchedulePostJoin); err != nil { -+ return err -+ } -+ -+ if err := checkK8sServices(bcp.config.Nodes); err != nil { -+ return err -+ } -+ return nil -+} -+ -+func (bcp *BinaryClusterDeployment) PreDeleteClusterHooks() { -+ role := []uint16{api.Worker, api.Master, api.ETCD, api.LoadBalance} -+ if err := dependency.HookSchedule(bcp.config, bcp.config.Nodes, role, api.SchedulePreCleanup); err != nil { -+ logrus.Warnf("Ignore: Delete cluster PreHook failed: %v", err) -+ } -+} -+ -+func (bcp *BinaryClusterDeployment) PostDeleteClusterHooks() { -+ role := []uint16{api.Worker, api.Master, api.ETCD, api.LoadBalance} -+ if err := dependency.HookSchedule(bcp.config, bcp.config.Nodes, role, api.SchedulePostCleanup); err != nil { -+ logrus.Warnf("Ignore: Delete cluster PostHook failed: %v", err) -+ } -+} -+ -+func (bcp *BinaryClusterDeployment) PreNodeJoinHooks(node *api.HostConfig) error { -+ role := []uint16{api.Master, api.Worker, api.ETCD} -+ if err := dependency.HookSchedule(bcp.config, []*api.HostConfig{node}, role, api.SchedulePreJoin); err != nil { -+ return err -+ } -+ return nil -+} -+ -+func checkWorkerServices(workers []string) error { -+ if len(workers) == 0 { -+ return nil -+ } -+ shell := `#!/bin/bash -+systemctl status kubelet | tail -20 -+[[ $? -ne 0 ]] && exit 1 -+systemctl status kube-proxy | tail -20 -+[[ $? -ne 0 ]] && exit 1 -+exit 0 -+` -+ checker := task.NewTaskInstance( -+ &commontools.RunShellTask{ -+ ShellName: "checkWorker", -+ Shell: shell, -+ }, -+ ) -+ -+ return nodemanager.RunTaskOnNodes(checker, workers) -+} -+ -+func checkMasterServices(masters []string) error { -+ if len(masters) == 0 { -+ return nil -+ } -+ shell := `#!/bin/bash -+systemctl status kube-apiserver | tail -20 -+[[ $? -ne 0 ]] && exit 1 -+systemctl status kube-controller-manager | tail -20 -+[[ $? -ne 0 ]] && exit 1 -+systemctl status kube-scheduler | tail -20 -+[[ $? -ne 0 ]] && exit 1 -+exit 0 -+` -+ checker := task.NewTaskInstance( -+ &commontools.RunShellTask{ -+ ShellName: "checkMaster", -+ Shell: shell, -+ }, -+ ) -+ -+ return nodemanager.RunTaskOnNodes(checker, masters) -+} -+ -+func checkK8sServices(nodes []*api.HostConfig) error { -+ var wokers, masters []string -+ -+ for _, n := range nodes { -+ if utils.IsType(n.Type, api.Master) { -+ masters = append(masters, n.Address) -+ } -+ if utils.IsType(n.Type, api.Worker) { -+ wokers = append(wokers, n.Address) -+ } -+ } -+ if err := checkWorkerServices(wokers); err != nil { -+ return err -+ } -+ return checkMasterServices(masters) -+} -+ -+func (bcp *BinaryClusterDeployment) PostNodeJoinHooks(node *api.HostConfig) error { -+ role := []uint16{api.Master, api.Worker, api.ETCD} -+ if err := dependency.HookSchedule(bcp.config, []*api.HostConfig{node}, role, api.SchedulePostJoin); err != nil { -+ return err -+ } -+ -+ // taint and label for master node -+ roles := node.Type -+ for _, n := range bcp.config.Nodes { -+ if n.Name == node.Name { -+ roles |= n.Type -+ break -+ } -+ } -+ -+ if utils.IsType(roles, (api.Master & api.Worker)) { -+ if err := taintAndLabelNode(bcp.config.Name, node.Name); err != nil { -+ return err -+ } -+ } -+ -+ // check node status -+ if err := checkK8sServices([]*api.HostConfig{node}); err != nil { -+ return err -+ } -+ -+ return nil -+} -+ -+func (bcp *BinaryClusterDeployment) PreNodeCleanupHooks(node *api.HostConfig) { -+ role := []uint16{api.Worker, api.Master, api.ETCD} -+ if err := dependency.HookSchedule(bcp.config, []*api.HostConfig{node}, role, api.SchedulePreCleanup); err != nil { -+ logrus.Warnf("Ignore: Delete Node PreHook failed: %v", err) -+ } -+} -+ -+func (bcp *BinaryClusterDeployment) PostNodeCleanupHooks(node *api.HostConfig) { -+ role := []uint16{api.Worker, api.Master, api.ETCD} -+ if err := dependency.HookSchedule(bcp.config, []*api.HostConfig{node}, role, api.SchedulePostCleanup); err != nil { -+ logrus.Warnf("Ignore: Delete Node PostHook failed: %v", err) -+ } -+} -diff --git a/pkg/clusterdeployment/binary/commontools/runshell.go b/pkg/clusterdeployment/binary/commontools/runshell.go -new file mode 100644 -index 0000000..266c488 ---- /dev/null -+++ b/pkg/clusterdeployment/binary/commontools/runshell.go -@@ -0,0 +1,39 @@ -+/****************************************************************************** -+ * Copyright (c) Huawei Technologies Co., Ltd. 2021. All rights reserved. -+ * eggo licensed under the Mulan PSL v2. -+ * You can use this software according to the terms and conditions of the Mulan PSL v2. -+ * You may obtain a copy of Mulan PSL v2 at: -+ * http://license.coscl.org.cn/MulanPSL2 -+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR -+ * PURPOSE. -+ * See the Mulan PSL v2 for more details. -+ * Author: haozi007 -+ * Create: 2021-07-27 -+ * Description: util for run shell -+ ******************************************************************************/ -+package commontools -+ -+import ( -+ "github.com/sirupsen/logrus" -+ "isula.org/eggo/pkg/api" -+ "isula.org/eggo/pkg/utils/runner" -+) -+ -+type RunShellTask struct { -+ ShellName string -+ Shell string -+} -+ -+func (ct *RunShellTask) Name() string { -+ return "RunShellTask" -+} -+ -+func (ct *RunShellTask) Run(r runner.Runner, hcf *api.HostConfig) error { -+ out, err := r.RunShell(ct.Shell, ct.ShellName) -+ if err != nil { -+ return err -+ } -+ logrus.Debugf("run shell: %s, get out:\n%s", ct.ShellName, out) -+ return nil -+} -diff --git a/pkg/clusterdeployment/clusterdeploy.go b/pkg/clusterdeployment/clusterdeploy.go -index 353e877..e5f69f0 100644 ---- a/pkg/clusterdeployment/clusterdeploy.go -+++ b/pkg/clusterdeployment/clusterdeploy.go -@@ -25,7 +25,6 @@ import ( - _ "isula.org/eggo/pkg/clusterdeployment/binary" - "isula.org/eggo/pkg/clusterdeployment/manager" - "isula.org/eggo/pkg/utils" -- "isula.org/eggo/pkg/utils/dependency" - "isula.org/eggo/pkg/utils/nodemanager" - ) - -@@ -61,9 +60,8 @@ func doCreateCluster(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig) er - } - } - -- // Step2: Hook SchedulePreJoin -- role := []uint16{api.LoadBalance, api.ETCD, api.Master, api.Worker} -- if err := dependency.HookSchedule(cc, cc.Nodes, role, api.SchedulePreJoin); err != nil { -+ // Step2: run precreate cluster hooks -+ if err := handler.PreCreateClusterHooks(); err != nil { - return err - } - -@@ -94,20 +92,21 @@ func doCreateCluster(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig) er - return err - } - } -- //Step7: setup addons for cluster - // wait all nodes ready - if err := nodemanager.WaitNodesFinishWithProgress(joinNodeIDs, time.Minute*5); err != nil { - return err - } - -+ //Step7: setup addons for cluster - if err := handler.AddonsSetup(); err != nil { - return err - } - -- // Step8: Hook SchedulePostJoin -- if err := dependency.HookSchedule(cc, cc.Nodes, role, api.SchedulePostJoin); err != nil { -+ // Step8: run postcreate cluster hooks -+ if err := handler.PostCreateClusterHooks(); err != nil { - return err - } -+ - allNodes := utils.GetAllIPs(cc.Nodes) - if err := nodemanager.WaitNodesFinishWithProgress(allNodes, time.Minute*5); err != nil { - return err -@@ -151,9 +150,8 @@ func doJoinNode(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig, hostcon - return err - } - -- // Hook SchedulePreJoin -- role := []uint16{api.Master, api.Worker, api.ETCD} -- if err := dependency.HookSchedule(cc, []*api.HostConfig{hostconfig}, role, api.SchedulePreJoin); err != nil { -+ // Pre node join Hooks -+ if err := handler.PreNodeJoinHooks(hostconfig); err != nil { - return err - } - -@@ -167,8 +165,8 @@ func doJoinNode(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig, hostcon - return err - } - -- // Hook SchedulePostJoin -- if err := dependency.HookSchedule(cc, []*api.HostConfig{hostconfig}, role, api.SchedulePostJoin); err != nil { -+ // Post node join Hooks -+ if err := handler.PostNodeJoinHooks(hostconfig); err != nil { - return err - } - -@@ -223,11 +221,8 @@ func JoinNode(cc *api.ClusterConfig, hostconfig *api.HostConfig) error { - } - - func doDeleteNode(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig, h *api.HostConfig) error { -- // Hook SchedulePreCleanup -- role := []uint16{api.Worker, api.Master, api.ETCD} -- if err := dependency.HookSchedule(cc, []*api.HostConfig{h}, role, api.SchedulePreCleanup); err != nil { -- return err -- } -+ // Pre node delete Hooks -+ handler.PreNodeCleanupHooks(h) - - if utils.IsType(h.Type, api.Worker) { - if err := handler.ClusterNodeCleanup(h, api.Worker); err != nil { -@@ -247,10 +242,8 @@ func doDeleteNode(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig, h *ap - } - } - -- // Hook SchedulePostCleanup -- if err := dependency.HookSchedule(cc, []*api.HostConfig{h}, role, api.SchedulePostCleanup); err != nil { -- return err -- } -+ // Post node delete Hooks -+ handler.PostNodeCleanupHooks(h) - - if err := handler.MachineInfraDestroy(h); err != nil { - logrus.Warnf("cleanup infrastructure for node: %s failed: %v", h.Name, err) -@@ -290,11 +283,8 @@ func DeleteNode(cc *api.ClusterConfig, hostconfig *api.HostConfig) error { - } - - func doRemoveCluster(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig) { -- // Step1: Hook SchedulePreCleanup -- role := []uint16{api.Worker, api.Master, api.ETCD, api.LoadBalance} -- if err := dependency.HookSchedule(cc, cc.Nodes, role, api.SchedulePreCleanup); err != nil { -- logrus.Errorf("Hook SchedulePreCleanup failed: %v", err) -- } -+ // Step1: Pre delete cluster Hooks -+ handler.PreDeleteClusterHooks() - - // Step2: cleanup addons - err := handler.AddonsDestroy() -@@ -344,10 +334,8 @@ func doRemoveCluster(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig) { - logrus.Warnf("[cluster] cleanup etcd cluster failed: %v", err) - } - -- // Step7: Hook SchedulePostCleanup -- if err := dependency.HookSchedule(cc, cc.Nodes, role, api.SchedulePostCleanup); err != nil { -- logrus.Errorf("Hook SchedulePostCleanup failed: %v", err) -- } -+ // Step7: Post delete cluster Hooks -+ handler.PostDeleteClusterHooks() - - // Step8: cleanup infrastructure - for _, n := range cc.Nodes { -diff --git a/pkg/utils/nodemanager/node.go b/pkg/utils/nodemanager/node.go -index b1235c7..d610e3b 100644 ---- a/pkg/utils/nodemanager/node.go -+++ b/pkg/utils/nodemanager/node.go -@@ -115,13 +115,15 @@ func (n *Node) updateNodeStatus(message string, status int) { - } - } - --func (n *Node) PushTask(task task.Task) bool { -- if n.status.HasError() { -+func (n *Node) PushTask(t task.Task) bool { -+ // only run ignore error tasks to cleanup node -+ if n.status.HasError() && task.IsIgnoreError(t) { - logrus.Debugf("node finished with error: %v", n.status.Message) - return false - } -+ - select { -- case n.queue <- task: -+ case n.queue <- t: - n.updateTotalCnt() - return true - default: -diff --git a/pkg/utils/nodemanager/nodemanager.go b/pkg/utils/nodemanager/nodemanager.go -index fc3f1ee..b135890 100644 ---- a/pkg/utils/nodemanager/nodemanager.go -+++ b/pkg/utils/nodemanager/nodemanager.go -@@ -92,8 +92,8 @@ func doRetryPushTask(t task.Task, retryNodes []*Node) error { - } - - func RunTaskOnNodes(t task.Task, nodes []string) error { -- manager.lock.RLock() -- defer manager.lock.RUnlock() -+ manager.lock.Lock() -+ defer manager.lock.Unlock() - var retryNodes []*Node - for _, id := range nodes { - if n, ok := manager.nodes[id]; ok { -@@ -112,8 +112,8 @@ func RunTaskOnNodes(t task.Task, nodes []string) error { - - func RunTaskOnAll(t task.Task) error { - var retryNodes []*Node -- manager.lock.RLock() -- defer manager.lock.RUnlock() -+ manager.lock.Lock() -+ defer manager.lock.Unlock() - for id, n := range manager.nodes { - if n.PushTask(t) { - continue -@@ -126,8 +126,8 @@ func RunTaskOnAll(t task.Task) error { - } - - func RunTasksOnNode(tasks []task.Task, node string) error { -- manager.lock.RLock() -- defer manager.lock.RUnlock() -+ manager.lock.Lock() -+ defer manager.lock.Unlock() - - for _, t := range tasks { - if n, ok := manager.nodes[node]; ok { -@@ -152,9 +152,6 @@ func RunTasksOnNode(tasks []task.Task, node string) error { - } - - func RunTasksOnNodes(tasks []task.Task, nodes []string) error { -- manager.lock.RLock() -- defer manager.lock.RUnlock() -- - for _, n := range nodes { - if err := RunTasksOnNode(tasks, n); err != nil { - logrus.Errorf("run tasks on node %s failed: %v", n, err) -@@ -166,8 +163,8 @@ func RunTasksOnNodes(tasks []task.Task, nodes []string) error { - } - - func RunTaskOnOneNode(t task.Task, nodes []string) (string, error) { -- manager.lock.RLock() -- defer manager.lock.RUnlock() -+ manager.lock.Lock() -+ defer manager.lock.Unlock() - - for _, id := range nodes { - n, ok := manager.nodes[id] -diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go -index 86be713..72f8777 100644 ---- a/pkg/utils/utils.go -+++ b/pkg/utils/utils.go -@@ -51,7 +51,7 @@ func GetEggoDir() string { - } - - func IsType(curType uint16, expectedType uint16) bool { -- return curType&expectedType != 0 -+ return (curType & expectedType) == expectedType - } - - func AddSudo(cmd string) string { -diff --git a/pkg/utils/utils_test.go b/pkg/utils/utils_test.go -new file mode 100644 -index 0000000..df3743f ---- /dev/null -+++ b/pkg/utils/utils_test.go -@@ -0,0 +1,121 @@ -+/****************************************************************************** -+ * Copyright (c) Huawei Technologies Co., Ltd. 2021. All rights reserved. -+ * eggo licensed under the Mulan PSL v2. -+ * You can use this software according to the terms and conditions of the Mulan PSL v2. -+ * You may obtain a copy of Mulan PSL v2 at: -+ * http://license.coscl.org.cn/MulanPSL2 -+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR -+ * PURPOSE. -+ * See the Mulan PSL v2 for more details. -+ * Author: zhangxiaoyu -+ * Create: 2021-05-19 -+ * Description: eggo utils ut -+ ******************************************************************************/ -+ -+package utils -+ -+import ( -+ "sort" -+ "testing" -+) -+ -+func TestIsType(t *testing.T) { -+ cs := []struct { -+ name string -+ val1 uint16 -+ val2 uint16 -+ expect bool -+ }{ -+ { -+ "test1", -+ 1, -+ 1, -+ true, -+ }, -+ { -+ "test2", -+ 7, -+ 7, -+ true, -+ }, -+ { -+ "test3", -+ 123, -+ 123, -+ true, -+ }, -+ { -+ "test11", -+ 8, -+ 1, -+ false, -+ }, -+ { -+ "test12", -+ 0, -+ 1, -+ false, -+ }, -+ { -+ "test13", -+ 120, -+ 121, -+ false, -+ }, -+ } -+ -+ for _, c := range cs { -+ if IsType(c.val1, c.val2) != c.expect { -+ t.Errorf("case: %s, expect: %v, get: %v", c.name, c.expect, IsType(c.val1, c.val2)) -+ } -+ } -+} -+ -+func TestRemoveDupString(t *testing.T) { -+ cs := []struct { -+ name string -+ val []string -+ expect []string -+ }{ -+ { -+ "test1", -+ []string{"abc", "bcd"}, -+ []string{"abc", "bcd"}, -+ }, -+ { -+ "test2", -+ []string{"abc", "bcd", "abc"}, -+ []string{"abc", "bcd"}, -+ }, -+ { -+ "test3", -+ []string{"xxx", "bcd"}, -+ []string{"bcd", "xxx"}, -+ }, -+ { -+ "test4", -+ []string{"xxx", "xxx", "xxx"}, -+ []string{"xxx"}, -+ }, -+ } -+ -+ for _, c := range cs { -+ flag := true -+ got := RemoveDupString(c.val) -+ if len(got) == len(c.expect) { -+ sort.Strings(got) -+ sort.Strings(c.expect) -+ for i := 0; i < len(got); i++ { -+ if got[i] != c.expect[i] { -+ flag = false -+ } -+ } -+ } else { -+ flag = false -+ } -+ if !flag { -+ t.Errorf("case: %s, expect: %v, get: %v", c.name, c.expect, got) -+ } -+ } -+} --- -2.25.1 - diff --git a/0005-add-ip-name-for-hosts.patch b/0005-add-ip-name-for-hosts.patch deleted file mode 100644 index 9cc3af7..0000000 --- a/0005-add-ip-name-for-hosts.patch +++ /dev/null @@ -1,126 +0,0 @@ -From 70cee4a328f14c10daa2c8a49e846565bd7f52b0 Mon Sep 17 00:00:00 2001 -From: zhangxiaoyu -Date: Wed, 28 Jul 2021 15:39:49 +0800 -Subject: [PATCH 5/9] add ip/name for hosts - -Signed-off-by: zhangxiaoyu ---- - .../binary/infrastructure/infrastructure.go | 76 ++++++++++++++++--- - 1 file changed, 67 insertions(+), 9 deletions(-) - -diff --git a/pkg/clusterdeployment/binary/infrastructure/infrastructure.go b/pkg/clusterdeployment/binary/infrastructure/infrastructure.go -index 53c07c7..bf6ed3a 100644 ---- a/pkg/clusterdeployment/binary/infrastructure/infrastructure.go -+++ b/pkg/clusterdeployment/binary/infrastructure/infrastructure.go -@@ -72,8 +72,8 @@ func (it *SetupInfraTask) Run(r runner.Runner, hcg *api.HostConfig) error { - return err - } - -- if err := setHostname(r, hcg); err != nil { -- logrus.Errorf("set hostname failed: %v", err) -+ if err := addHostNameIP(r, hcg); err != nil { -+ logrus.Errorf("add host name ip failed: %v", err) - return err - } - -@@ -209,15 +209,69 @@ func copyPackage(r runner.Runner, hcg *api.HostConfig, pcfg *api.PackageSrcConfi - return nil - } - --func setHostname(r runner.Runner, hcg *api.HostConfig) error { -- if hcg.Name == "" { -- logrus.Warnf("no name for %s", hcg.Address) -+func addHostNameIP(r runner.Runner, hcg *api.HostConfig) error { -+ shell := ` -+#!/bin/bash -+cat /etc/hosts | grep "{{ .Address }}" | grep "{{ .Name }}" -+if [ $? -eq 0 ]; then -+ exit 0 -+fi -+ -+echo "{{ .Address }} {{ .Name }}" >> /etc/hosts -+exit 0 -+` -+ -+ if hcg.Name == "" || hcg.Address == "" { -+ logrus.Warnf("no name or address") -+ return nil -+ } -+ -+ datastore := make(map[string]interface{}) -+ datastore["Address"] = hcg.Address -+ datastore["Name"] = hcg.Name -+ -+ cmdStr, err := template.TemplateRender(shell, datastore) -+ if err != nil { -+ return err -+ } -+ -+ _, err = r.RunShell(cmdStr, "addHostNameIP") -+ if err != nil { -+ return err -+ } -+ -+ return nil -+} -+ -+func removeHostNameIP(r runner.Runner, hcg *api.HostConfig) error { -+ shell := ` -+#!/bin/bash -+cat /etc/hosts | grep "{{ .Address }}" | grep "{{ .Name }}" -+if [ $? -ne 0 ]; then -+ exit 0 -+fi -+ -+sed -i '/{{ .Address }} {{ .Name }}/d' /etc/hosts -+exit 0 -+` -+ -+ if hcg.Name == "" || hcg.Address == "" { -+ logrus.Warnf("no name or address") - return nil - } - -- _, err := r.RunCommand(fmt.Sprintf("sudo -E /bin/sh -c \"hostnamectl set-hostname %s\"", hcg.Name)) -+ datastore := make(map[string]interface{}) -+ datastore["Address"] = hcg.Address -+ datastore["Name"] = hcg.Name -+ -+ cmdStr, err := template.TemplateRender(shell, datastore) - if err != nil { -- return fmt.Errorf("set Hostname %s for %s failed: %v", hcg.Name, hcg.Address, err) -+ return err -+ } -+ -+ _, err = r.RunShell(cmdStr, "removeHostNameIP") -+ if err != nil { -+ return err - } - - return nil -@@ -273,6 +327,10 @@ func (it *DestroyInfraTask) Run(r runner.Runner, hcg *api.HostConfig) error { - - dependency.RemoveDependency(r, it.roleInfra, hcg, it.packageSrc.GetPkgDstPath()) - -+ if err := removeHostNameIP(r, hcg); err != nil { -+ logrus.Errorf("remove host name ip failed: %v", err) -+ } -+ - removeFirewallPort(r, it.roleInfra.OpenPorts) - - cleanupcluster.PostCleanup(r) -@@ -381,9 +439,9 @@ type packageMD5 struct { - } - - func (pm *packageMD5) getMD5(path string) (string, error) { -- pm.Lock.RLock() -+ pm.Lock.Lock() - defer func() { -- pm.Lock.RUnlock() -+ pm.Lock.Unlock() - }() - - md5str, ok := pm.MD5s[path] --- -2.25.1 - diff --git a/0006-remove-unuseful-code.patch b/0006-remove-unuseful-code.patch deleted file mode 100644 index b0a31f2..0000000 --- a/0006-remove-unuseful-code.patch +++ /dev/null @@ -1,67 +0,0 @@ -From f0f5461862287cc3242db5194c38d17e807c9124 Mon Sep 17 00:00:00 2001 -From: haozi007 -Date: Wed, 28 Jul 2021 08:20:14 +0100 -Subject: [PATCH 6/9] remove unuseful code - -Signed-off-by: haozi007 ---- - pkg/api/types.go | 1 - - pkg/clusterdeployment/binary/binary.go | 4 ---- - pkg/clusterdeployment/clusterdeploy.go | 14 -------------- - 3 files changed, 19 deletions(-) - -diff --git a/pkg/api/types.go b/pkg/api/types.go -index 403dde3..71f4f14 100644 ---- a/pkg/api/types.go -+++ b/pkg/api/types.go -@@ -249,7 +249,6 @@ type ClusterManagerAPI interface { - ClusterStatus() (*ClusterStatus, error) - AddonsSetup() error - AddonsDestroy() error -- TaintAndLabelNode(name string) error - } - - type LoadBalancerAPI interface { -diff --git a/pkg/clusterdeployment/binary/binary.go b/pkg/clusterdeployment/binary/binary.go -index 96c0dd1..cc6a6a0 100644 ---- a/pkg/clusterdeployment/binary/binary.go -+++ b/pkg/clusterdeployment/binary/binary.go -@@ -139,10 +139,6 @@ func taintAndLabelNode(clusterID string, name string) error { - return nil - } - --func (bcp *BinaryClusterDeployment) TaintAndLabelNode(name string) error { -- return taintAndLabelNode(bcp.config.Name, name) --} -- - func (bcp *BinaryClusterDeployment) taintAndLabelMasterNodes() error { - for _, node := range bcp.config.Nodes { - if (node.Type&api.Master != 0) && (node.Type&api.Worker != 0) { -diff --git a/pkg/clusterdeployment/clusterdeploy.go b/pkg/clusterdeployment/clusterdeploy.go -index e5f69f0..016da2b 100644 ---- a/pkg/clusterdeployment/clusterdeploy.go -+++ b/pkg/clusterdeployment/clusterdeploy.go -@@ -175,20 +175,6 @@ func doJoinNode(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig, hostcon - return err - } - -- roles := hostconfig.Type -- for _, node := range cc.Nodes { -- if node.Name == hostconfig.Name { -- roles |= node.Type -- break -- } -- } -- -- if utils.IsType(roles, api.Master) && utils.IsType(roles, api.Worker) { -- if err := handler.TaintAndLabelNode(hostconfig.Name); err != nil { -- return err -- } -- } -- - return nil - } - --- -2.25.1 - diff --git a/0007-support-rollback-of-create-cluster.patch b/0007-support-rollback-of-create-cluster.patch deleted file mode 100644 index 4b46805..0000000 --- a/0007-support-rollback-of-create-cluster.patch +++ /dev/null @@ -1,569 +0,0 @@ -From 9fd05bda9c5789bee45de142468fec0227929927 Mon Sep 17 00:00:00 2001 -From: haozi007 -Date: Thu, 29 Jul 2021 12:04:58 +0100 -Subject: [PATCH 7/9] support rollback of create cluster - -1. rollback if failed of create cluster; -2. support partial success of create cluster; - -Signed-off-by: haozi007 ---- - cmd/deploy.go | 66 +++++- - pkg/api/tools.go | 41 ++++ - pkg/api/types.go | 7 + - pkg/clusterdeployment/binary/binary.go | 3 +- - .../binary/cleanupcluster/cleanupnode.go | 4 +- - pkg/clusterdeployment/clusterdeploy.go | 208 +++++++++++++----- - pkg/utils/nodemanager/node.go | 2 +- - pkg/utils/nodemanager/nodemanager.go | 27 ++- - pkg/utils/utils.go | 4 + - 9 files changed, 292 insertions(+), 70 deletions(-) - -diff --git a/cmd/deploy.go b/cmd/deploy.go -index 3aba440..12fdd8e 100644 ---- a/cmd/deploy.go -+++ b/cmd/deploy.go -@@ -24,8 +24,64 @@ import ( - "isula.org/eggo/pkg/clusterdeployment" - ) - --func deploy(ccfg *api.ClusterConfig) error { -- return clusterdeployment.CreateCluster(ccfg) -+func deploy(conf *deployConfig) error { -+ if err := saveDeployConfig(conf, savedDeployConfigPath(conf.ClusterID)); err != nil { -+ return fmt.Errorf("save deploy config failed: %v", err) -+ } -+ -+ ccfg := toClusterdeploymentConfig(conf) -+ -+ cstatus, err := clusterdeployment.CreateCluster(ccfg) -+ if err != nil { -+ return err -+ } -+ -+ if cstatus.FailureCnt > 0 { -+ // if partial success, just update config of cluster, remove failed nodes -+ var tmp []*HostConfig -+ for _, n := range conf.Masters { -+ if success, ok := cstatus.StatusOfNodes[n.Ip]; ok && !success { -+ continue -+ } -+ tmp = append(tmp, n) -+ } -+ conf.Masters = tmp -+ -+ tmp = nil -+ for _, n := range conf.Workers { -+ if success, ok := cstatus.StatusOfNodes[n.Ip]; ok && !success { -+ continue -+ } -+ tmp = append(tmp, n) -+ } -+ conf.Workers = tmp -+ -+ tmp = nil -+ for _, n := range conf.Etcds { -+ if success, ok := cstatus.StatusOfNodes[n.Ip]; ok && !success { -+ continue -+ } -+ tmp = append(tmp, n) -+ } -+ conf.Etcds = tmp -+ -+ err = saveDeployConfig(conf, savedDeployConfigPath(conf.ClusterID)) -+ if err != nil { -+ fmt.Printf("") -+ clusterdeployment.RemoveCluster(ccfg) -+ return fmt.Errorf("update config of cluster failed: %v", err) -+ } -+ fmt.Printf("update config of cluster: %s", conf.ClusterID) -+ } -+ -+ fmt.Print(cstatus.Show()) -+ -+ if cstatus.Working { -+ fmt.Printf("To start using cluster: %s, you need following as a regular user:\n\n", ccfg.Name) -+ fmt.Printf("\texport KUBECONFIG=%s/admin.conf\n\n", api.GetClusterHomePath(ccfg.Name)) -+ } -+ -+ return err - } - - func deployCluster(cmd *cobra.Command, args []string) error { -@@ -40,11 +96,7 @@ func deployCluster(cmd *cobra.Command, args []string) error { - - // TODO: make sure config valid - -- if err := saveDeployConfig(conf, savedDeployConfigPath(conf.ClusterID)); err != nil { -- return fmt.Errorf("save deploy config failed: %v", err) -- } -- -- if err := deploy(toClusterdeploymentConfig(conf)); err != nil { -+ if err := deploy(conf); err != nil { - return err - } - -diff --git a/pkg/api/tools.go b/pkg/api/tools.go -index a73b9ea..2e4fb4c 100644 ---- a/pkg/api/tools.go -+++ b/pkg/api/tools.go -@@ -7,6 +7,7 @@ import ( - - "github.com/sirupsen/logrus" - "isula.org/eggo/pkg/constants" -+ "k8s.io/apimachinery/pkg/util/json" - ) - - var ( -@@ -80,3 +81,43 @@ func GetEtcdServers(ecc *EtcdClusterConfig) string { - func IsCleanupSchedule(schedule Schedule) bool { - return schedule == SchedulePreCleanup || schedule == SchedulePostCleanup - } -+ -+func (hc HostConfig) DeepCopy() (*HostConfig, error) { -+ b, err := json.Marshal(hc) -+ if err != nil { -+ return nil, err -+ } -+ var result HostConfig -+ err = json.Unmarshal(b, &result) -+ return &result, err -+} -+ -+func (cs *ClusterStatus) Show() string { -+ var sb strings.Builder -+ var fb strings.Builder -+ -+ sb.WriteString("-------------------------------\n") -+ sb.WriteString("message: ") -+ sb.WriteString(cs.Message) -+ sb.WriteString("\nsummary: \n") -+ if cs.Working { -+ sb.WriteString(cs.ControlPlane) -+ sb.WriteString("\t\tsuccess") -+ sb.WriteString("\n") -+ } -+ for ip, ok := range cs.StatusOfNodes { -+ if ok { -+ sb.WriteString(ip) -+ sb.WriteString("\t\tsuccess") -+ sb.WriteString("\n") -+ } else { -+ fb.WriteString(ip) -+ fb.WriteString("\t\tfailure") -+ fb.WriteString("\n") -+ } -+ } -+ sb.WriteString(fb.String()) -+ sb.WriteString("-------------------------------\n") -+ -+ return sb.String() -+} -diff --git a/pkg/api/types.go b/pkg/api/types.go -index 71f4f14..86da853 100644 ---- a/pkg/api/types.go -+++ b/pkg/api/types.go -@@ -215,7 +215,14 @@ type ClusterConfig struct { - } - - type ClusterStatus struct { -+ Message string `json:"message"` -+ ControlPlane string `json:"controlplane"` -+ Working bool `json:"working"` -+ StatusOfNodes map[string]bool `json:"statusOfNodes"` -+ SuccessCnt uint32 `json:"successCnt"` -+ FailureCnt uint32 `json:"failureCnt"` - } -+ - type InfrastructureAPI interface { - // TODO: should add other dependence cluster configurations - MachineInfraSetup(machine *HostConfig) error -diff --git a/pkg/clusterdeployment/binary/binary.go b/pkg/clusterdeployment/binary/binary.go -index cc6a6a0..dd260b0 100644 ---- a/pkg/clusterdeployment/binary/binary.go -+++ b/pkg/clusterdeployment/binary/binary.go -@@ -533,7 +533,8 @@ func (bcp *BinaryClusterDeployment) PostNodeJoinHooks(node *api.HostConfig) erro - } - } - -- if utils.IsType(roles, (api.Master & api.Worker)) { -+ // check whether the node is worker and master -+ if utils.IsType(roles, (api.Master | api.Worker)) { - if err := taintAndLabelNode(bcp.config.Name, node.Name); err != nil { - return err - } -diff --git a/pkg/clusterdeployment/binary/cleanupcluster/cleanupnode.go b/pkg/clusterdeployment/binary/cleanupcluster/cleanupnode.go -index 76cd7ce..da0488a 100644 ---- a/pkg/clusterdeployment/binary/cleanupcluster/cleanupnode.go -+++ b/pkg/clusterdeployment/binary/cleanupcluster/cleanupnode.go -@@ -232,7 +232,6 @@ func execRemoveWorkerTask(conf *api.ClusterConfig, hostconfig *api.HostConfig) e - - task.SetIgnoreErrorFlag(taskRemoveWorker) - if err := nodemanager.RunTaskOnNodes(taskRemoveWorker, []string{master}); err != nil { -- logrus.Errorf("run task for remove worker failed: %v", err) - return err - } - -@@ -246,8 +245,7 @@ func CleanupNode(conf *api.ClusterConfig, hostconfig *api.HostConfig, delType ui - - if utils.IsType(delType, api.Worker) { - if err := execRemoveWorkerTask(conf, hostconfig); err != nil { -- logrus.Errorf("remove workers failed: %v", err) -- return err -+ logrus.Warnf("ignore: remove workers failed: %v", err) - } - } - -diff --git a/pkg/clusterdeployment/clusterdeploy.go b/pkg/clusterdeployment/clusterdeploy.go -index 016da2b..c4e0880 100644 ---- a/pkg/clusterdeployment/clusterdeploy.go -+++ b/pkg/clusterdeployment/clusterdeploy.go -@@ -28,121 +28,215 @@ import ( - "isula.org/eggo/pkg/utils/nodemanager" - ) - --func doCreateCluster(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig) error { -- var loadbalancer *api.HostConfig -- var controlPlane *api.HostConfig -- var joinNodes []*api.HostConfig -- var joinNodeIDs []string -+func splitNodes(nodes []*api.HostConfig) (*api.HostConfig, []*api.HostConfig, []*api.HostConfig, []string) { -+ var lb *api.HostConfig -+ var masters []*api.HostConfig -+ var workers []*api.HostConfig - var etcdNodes []string -- // Step1: setup infrastructure for all nodes in the cluster -- for _, n := range cc.Nodes { -- if err := handler.MachineInfraSetup(n); err != nil { -- return err -- } -+ -+ for _, n := range nodes { - if utils.IsType(n.Type, api.LoadBalance) { -- loadbalancer = n -+ lb = n - } - if utils.IsType(n.Type, api.ETCD) { - etcdNodes = append(etcdNodes, n.Address) - } -+ -+ if utils.IsType(n.Type, api.Master) { -+ masters = append(masters, n) -+ // node with master and worker, just put into masters -+ continue -+ } -+ - if utils.IsType(n.Type, api.Worker) { -- joinNodes = append(joinNodes, n) -- joinNodeIDs = append(joinNodeIDs, n.Address) -+ workers = append(workers, n) - } -+ } - -- if utils.IsType(n.Type, api.Master) { -- if controlPlane == nil { -- controlPlane = n -- } else { -- joinNodes = append(joinNodes, n) -- joinNodeIDs = append(joinNodeIDs, n.Address) -- } -+ return lb, masters, workers, etcdNodes -+} -+ -+func doJoinNodeOfCluster(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig, masters, workers []*api.HostConfig) ([]string, []*api.HostConfig, error) { -+ var joinedNodeIDs []string -+ var failedNodes []*api.HostConfig -+ for _, node := range workers { -+ if err := handler.ClusterNodeJoin(node); err != nil { -+ failedNodes = append(failedNodes, node) -+ continue -+ } -+ joinedNodeIDs = append(joinedNodeIDs, node.Address) -+ } -+ for _, node := range masters { -+ if err := handler.ClusterNodeJoin(node); err != nil { -+ failedNodes = append(failedNodes, node) -+ continue -+ } -+ joinedNodeIDs = append(joinedNodeIDs, node.Address) -+ } -+ // wait all nodes ready -+ if err := nodemanager.WaitNodesFinishWithProgress(joinedNodeIDs, time.Minute*5); err != nil { -+ tFailedNodes, successNodes := nodemanager.CheckNodesStatus(joinedNodeIDs) -+ // update joined and failed nodes -+ failedNodes = append(failedNodes, tFailedNodes...) -+ joinedNodeIDs = successNodes -+ if len(successNodes) == 0 { -+ return joinedNodeIDs, nil, err -+ } -+ logrus.Warnf("wait some node to complete join failed: %v", err) -+ } -+ -+ return joinedNodeIDs, failedNodes, nil -+} -+ -+func doCreateCluster(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig, cstatus *api.ClusterStatus) ([]*api.HostConfig, error) { -+ loadbalancer, masters, workers, etcdNodes := splitNodes(cc.Nodes) -+ -+ if len(masters) == 0 { -+ return nil, fmt.Errorf("no master found") -+ } -+ controlPlaneNode, err := masters[0].DeepCopy() -+ if err != nil { -+ return nil, err -+ } -+ cstatus.ControlPlane = controlPlaneNode.Address -+ masters = masters[1:] -+ -+ // Step1: setup infrastructure for all nodes in the cluster -+ for _, n := range cc.Nodes { -+ if err = handler.MachineInfraSetup(n); err != nil { -+ return nil, err - } - } - - // Step2: run precreate cluster hooks -- if err := handler.PreCreateClusterHooks(); err != nil { -- return err -+ if err = handler.PreCreateClusterHooks(); err != nil { -+ return nil, err - } - - // Step3: setup etcd cluster - // wait infrastructure task success on nodes of etcd cluster -- if err := nodemanager.WaitNodesFinishWithProgress(etcdNodes, time.Minute*5); err != nil { -- return err -+ if err = nodemanager.WaitNodesFinishWithProgress(etcdNodes, time.Minute*5); err != nil { -+ return nil, err - } -- if err := handler.EtcdClusterSetup(); err != nil { -- return err -+ if err = handler.EtcdClusterSetup(); err != nil { -+ return nil, err - } -+ - // Step4: setup loadbalance for cluster -- if err := handler.LoadBalancerSetup(loadbalancer); err != nil { -- return err -+ if err = handler.LoadBalancerSetup(loadbalancer); err != nil { -+ return nil, err - } -+ - // Step5: setup control plane for cluster -- if err := handler.ClusterControlPlaneInit(controlPlane); err != nil { -- return err -+ if err = handler.ClusterControlPlaneInit(controlPlaneNode); err != nil { -+ return nil, err - } - // wait controlplane setup task success -- if err := nodemanager.WaitNodesFinish([]string{controlPlane.Address}, time.Minute*5); err != nil { -- return err -+ if err = nodemanager.WaitNodesFinish([]string{controlPlaneNode.Address}, time.Minute*5); err != nil { -+ return nil, err - } -- -- //Step6: setup left nodes for cluster -- for _, node := range joinNodes { -- if err := handler.ClusterNodeJoin(node); err != nil { -- return err -+ if utils.IsType(controlPlaneNode.Type, api.Worker) { -+ controlPlaneNode.Type = utils.ClearType(controlPlaneNode.Type, api.Master) -+ if err = handler.ClusterNodeJoin(controlPlaneNode); err != nil { -+ return nil, err - } - } -- // wait all nodes ready -- if err := nodemanager.WaitNodesFinishWithProgress(joinNodeIDs, time.Minute*5); err != nil { -- return err -+ -+ //Step6: setup left nodes for cluster -+ joinedNodeIDs, failedNodes, err := doJoinNodeOfCluster(handler, cc, masters, workers) -+ if err != nil { -+ return nil, err - } - - //Step7: setup addons for cluster -- if err := handler.AddonsSetup(); err != nil { -- return err -+ if err = handler.AddonsSetup(); err != nil { -+ return nil, err - } - - // Step8: run postcreate cluster hooks -- if err := handler.PostCreateClusterHooks(); err != nil { -- return err -+ if err = handler.PostCreateClusterHooks(); err != nil { -+ return nil, err - } - -- allNodes := utils.GetAllIPs(cc.Nodes) -- if err := nodemanager.WaitNodesFinishWithProgress(allNodes, time.Minute*5); err != nil { -- return err -+ if err = nodemanager.WaitNodesFinishWithProgress(append(joinedNodeIDs, controlPlaneNode.Address), time.Minute*5); err != nil { -+ return nil, err - } - -- return nil -+ for _, sid := range joinedNodeIDs { -+ cstatus.StatusOfNodes[sid] = true -+ cstatus.SuccessCnt += 1 -+ } -+ cstatus.Working = true -+ -+ return failedNodes, nil - } - --func CreateCluster(cc *api.ClusterConfig) error { -+func rollbackFailedNoeds(handler api.ClusterDeploymentAPI, nodes []*api.HostConfig) { -+ if nodes == nil { -+ return -+ } -+ var rollIDs []string -+ for _, n := range nodes { -+ // do best to cleanup, if error, just ignore -+ handler.ClusterNodeCleanup(n, n.Type) -+ handler.MachineInfraDestroy(n) -+ rollIDs = append(rollIDs, n.Address) -+ } -+ -+ if err := nodemanager.WaitNodesFinishWithProgress(rollIDs, time.Minute*5); err != nil { -+ logrus.Warnf("rollback failed: %v", err) -+ } -+} -+ -+func CreateCluster(cc *api.ClusterConfig) (api.ClusterStatus, error) { -+ cstatus := api.ClusterStatus{ -+ StatusOfNodes: make(map[string]bool), -+ } - if cc == nil { -- return fmt.Errorf("[cluster] cluster config is required") -+ return cstatus, fmt.Errorf("[cluster] cluster config is required") - } - - creator, err := manager.GetClusterDeploymentDriver(cc.DeployDriver) - if err != nil { - logrus.Errorf("[cluster] get cluster deployment driver: %s failed: %v", cc.DeployDriver, err) -- return err -+ return cstatus, err - } - handler, err := creator(cc) - if err != nil { - logrus.Errorf("[cluster] create cluster deployment instance with driver: %s, failed: %v", cc.DeployDriver, err) -- return err -+ return cstatus, err - } - defer handler.Finish() - - // prepare eggo config directory - if err := os.MkdirAll(api.GetClusterHomePath(cc.Name), 0750); err != nil { -- return err -+ return cstatus, err - } - -- if err := doCreateCluster(handler, cc); err != nil { -- return err -+ failedNodes, err := doCreateCluster(handler, cc, &cstatus) -+ if err != nil { -+ logrus.Warnf("rollback cluster: %s", cc.Name) -+ doRemoveCluster(handler, cc) -+ cstatus.Message = err.Error() -+ return cstatus, err -+ } -+ // rollback failed nodes -+ rollbackFailedNoeds(handler, failedNodes) -+ // update status of cluster -+ if failedNodes != nil { -+ var failureIDs []string -+ for _, fid := range failedNodes { -+ failureIDs = append(failureIDs, fid.Address) -+ cstatus.StatusOfNodes[fid.Address] = false -+ cstatus.FailureCnt += 1 -+ } -+ logrus.Warnf("[cluster] failed nodes: %v", failureIDs) -+ cstatus.Message = "partial success of create cluster" -+ return cstatus, nil - } - -- logrus.Infof("[cluster] create cluster '%s' successed", cc.Name) -- return nil -+ cstatus.Message = "create cluster success" -+ return cstatus, nil - } - - func doJoinNode(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig, hostconfig *api.HostConfig) error { -diff --git a/pkg/utils/nodemanager/node.go b/pkg/utils/nodemanager/node.go -index d610e3b..a19d2e7 100644 ---- a/pkg/utils/nodemanager/node.go -+++ b/pkg/utils/nodemanager/node.go -@@ -117,7 +117,7 @@ func (n *Node) updateNodeStatus(message string, status int) { - - func (n *Node) PushTask(t task.Task) bool { - // only run ignore error tasks to cleanup node -- if n.status.HasError() && task.IsIgnoreError(t) { -+ if n.status.HasError() && !task.IsIgnoreError(t) { - logrus.Debugf("node finished with error: %v", n.status.Message) - return false - } -diff --git a/pkg/utils/nodemanager/nodemanager.go b/pkg/utils/nodemanager/nodemanager.go -index b135890..25f7d4e 100644 ---- a/pkg/utils/nodemanager/nodemanager.go -+++ b/pkg/utils/nodemanager/nodemanager.go -@@ -37,6 +37,28 @@ var manager = &NodeManager{ - nodes: make(map[string]*Node, 2), - } - -+// return: key is node IP; value true is failed, false is success -+func CheckNodesStatus(checkNodes []string) ([]*api.HostConfig, []string) { -+ var failures []*api.HostConfig -+ var success []string -+ manager.lock.RLock() -+ defer manager.lock.RUnlock() -+ for _, cn := range checkNodes { -+ n, ok := manager.nodes[cn] -+ if !ok { -+ failures = append(failures, n.host) -+ continue -+ } -+ if n.GetStatus().HasError() { -+ failures = append(failures, n.host) -+ } else { -+ success = append(success, cn) -+ } -+ } -+ -+ return failures, success -+} -+ - func RegisterNode(hcf *api.HostConfig, r runner.Runner) error { - manager.lock.Lock() - defer manager.lock.Unlock() -@@ -227,7 +249,10 @@ outfor: - } - logrus.Infof("Tasks progress: %s", sb.String()) - unfinishedNodes = nextUnfinished -- time.Sleep(time.Second) -+ -+ // sleep time depend on count of wait nodes -+ st := len(unfinishedNodes) + 1 -+ time.Sleep(time.Second * time.Duration(st)) - } - } - -diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go -index 72f8777..84ec0ea 100644 ---- a/pkg/utils/utils.go -+++ b/pkg/utils/utils.go -@@ -54,6 +54,10 @@ func IsType(curType uint16, expectedType uint16) bool { - return (curType & expectedType) == expectedType - } - -+func ClearType(curType uint16, clearType uint16) uint16 { -+ return (curType & ^clearType) -+} -+ - func AddSudo(cmd string) string { - return "sudo -E /bin/sh -c \"" + cmd + "\"" - } --- -2.25.1 - diff --git a/0008-refactor-node-mananger.patch b/0008-refactor-node-mananger.patch deleted file mode 100644 index 5a5916c..0000000 --- a/0008-refactor-node-mananger.patch +++ /dev/null @@ -1,418 +0,0 @@ -From 52f415c3888b9bd0484ba5f66b2e987e41d4f9fb Mon Sep 17 00:00:00 2001 -From: haozi007 -Date: Mon, 2 Aug 2021 07:24:24 +0100 -Subject: [PATCH 8/9] refactor node mananger - -1. add timeout of run task; -2. show tasks history on node; - -Signed-off-by: haozi007 ---- - .../binary/addons/runner_addons.go | 3 +- - pkg/clusterdeployment/binary/binary.go | 7 +- - .../binary/cleanupcluster/cleanupetcd.go | 6 +- - .../cleanupcluster/cleanuploadbalance.go | 3 +- - .../binary/cleanupcluster/cleanupnode.go | 6 +- - .../binary/coredns/binarycoredns.go | 3 +- - .../binary/coredns/podcoredns.go | 3 +- - .../binary/etcdcluster/etcdreconfig.go | 3 +- - .../binary/infrastructure/infrastructure.go | 3 +- - .../binary/network/network.go | 3 +- - pkg/utils/nodemanager/node.go | 90 ++++++++++++++----- - pkg/utils/task/task.go | 10 +++ - 12 files changed, 93 insertions(+), 47 deletions(-) - -diff --git a/pkg/clusterdeployment/binary/addons/runner_addons.go b/pkg/clusterdeployment/binary/addons/runner_addons.go -index f8c0dad..e5bc0ad 100644 ---- a/pkg/clusterdeployment/binary/addons/runner_addons.go -+++ b/pkg/clusterdeployment/binary/addons/runner_addons.go -@@ -122,7 +122,7 @@ func cleanupAddons(cluster *api.ClusterConfig) error { - yamlPath := filepath.Join(cluster.PackageSrc.GetPkgDstPath(), constants.DefaultFilePath) - kubeconfig := filepath.Join(cluster.GetConfigDir(), constants.KubeConfigFileNameAdmin) - -- t := task.NewTaskInstance(&CleanupAddonsTask{ -+ t := task.NewTaskIgnoreErrInstance(&CleanupAddonsTask{ - yaml: yaml, - srcPath: yamlPath, - kubeconfig: kubeconfig, -@@ -134,7 +134,6 @@ func cleanupAddons(cluster *api.ClusterConfig) error { - } - } - -- task.SetIgnoreErrorFlag(t) - useMaster, err := nodemanager.RunTaskOnOneNode(t, masters) - if err != nil { - return err -diff --git a/pkg/clusterdeployment/binary/binary.go b/pkg/clusterdeployment/binary/binary.go -index dd260b0..f901643 100644 ---- a/pkg/clusterdeployment/binary/binary.go -+++ b/pkg/clusterdeployment/binary/binary.go -@@ -102,12 +102,11 @@ func (bcp *BinaryClusterDeployment) registerNodes() error { - defer func() { - if err != nil { - bcp.Finish() -- nodemanager.UnRegisterAllNodes() - } - }() - - for _, cfg := range bcp.config.Nodes { -- err := bcp.registerNode(cfg) -+ err = bcp.registerNode(cfg) - if err != nil { - return err - } -@@ -408,9 +407,7 @@ func (bcp *BinaryClusterDeployment) Finish() { - logrus.Info("do finish binary deployment...") - bcp.connLock.Lock() - defer bcp.connLock.Unlock() -- for _, c := range bcp.connections { -- c.Close() -- } -+ nodemanager.UnRegisterAllNodes() - bcp.connections = make(map[string]runner.Runner) - logrus.Info("do finish binary deployment success") - } -diff --git a/pkg/clusterdeployment/binary/cleanupcluster/cleanupetcd.go b/pkg/clusterdeployment/binary/cleanupcluster/cleanupetcd.go -index 81e1fe6..ed79246 100644 ---- a/pkg/clusterdeployment/binary/cleanupcluster/cleanupetcd.go -+++ b/pkg/clusterdeployment/binary/cleanupcluster/cleanupetcd.go -@@ -84,13 +84,12 @@ func CleanupEtcdMember(conf *api.ClusterConfig, hostconfig *api.HostConfig) erro - } - - // cleanup remains -- taskCleanupEtcdMember := task.NewTaskInstance( -+ taskCleanupEtcdMember := task.NewTaskIgnoreErrInstance( - &cleanupEtcdMemberTask{ - ccfg: conf, - }, - ) - -- task.SetIgnoreErrorFlag(taskCleanupEtcdMember) - if err := nodemanager.RunTaskOnNodes(taskCleanupEtcdMember, []string{hostconfig.Address}); err != nil { - return fmt.Errorf("run task for cleanup etcd member failed: %v", err) - } -@@ -114,14 +113,13 @@ func CleanupAllEtcds(conf *api.ClusterConfig) error { - } - - // cleanup remains -- taskCleanupAllEtcds := task.NewTaskInstance( -+ taskCleanupAllEtcds := task.NewTaskIgnoreErrInstance( - &cleanupEtcdMemberTask{ - ccfg: conf, - }, - ) - - nodes := utils.GetAllIPs(conf.EtcdCluster.Nodes) -- task.SetIgnoreErrorFlag(taskCleanupAllEtcds) - if err := nodemanager.RunTaskOnNodes(taskCleanupAllEtcds, nodes); err != nil { - return fmt.Errorf("run task for cleanup all etcds failed: %v", err) - } -diff --git a/pkg/clusterdeployment/binary/cleanupcluster/cleanuploadbalance.go b/pkg/clusterdeployment/binary/cleanupcluster/cleanuploadbalance.go -index 010ef84..d836f99 100644 ---- a/pkg/clusterdeployment/binary/cleanupcluster/cleanuploadbalance.go -+++ b/pkg/clusterdeployment/binary/cleanupcluster/cleanuploadbalance.go -@@ -56,13 +56,12 @@ func (t *cleanupLoadBalanceTask) Run(r runner.Runner, hostConfig *api.HostConfig - } - - func CleanupLoadBalance(conf *api.ClusterConfig, lb *api.HostConfig) error { -- taskCleanupLoadBalance := task.NewTaskInstance( -+ taskCleanupLoadBalance := task.NewTaskIgnoreErrInstance( - &cleanupLoadBalanceTask{ - ccfg: conf, - }, - ) - -- task.SetIgnoreErrorFlag(taskCleanupLoadBalance) - if err := nodemanager.RunTaskOnNodes(taskCleanupLoadBalance, []string{lb.Address}); err != nil { - return fmt.Errorf("run task for cleanup loadbalance failed: %v", err) - } -diff --git a/pkg/clusterdeployment/binary/cleanupcluster/cleanupnode.go b/pkg/clusterdeployment/binary/cleanupcluster/cleanupnode.go -index da0488a..9d2d009 100644 ---- a/pkg/clusterdeployment/binary/cleanupcluster/cleanupnode.go -+++ b/pkg/clusterdeployment/binary/cleanupcluster/cleanupnode.go -@@ -218,7 +218,7 @@ func (t *removeWorkerTask) Run(r runner.Runner, hostConfig *api.HostConfig) erro - } - - func execRemoveWorkerTask(conf *api.ClusterConfig, hostconfig *api.HostConfig) error { -- taskRemoveWorker := task.NewTaskInstance( -+ taskRemoveWorker := task.NewTaskIgnoreErrInstance( - &removeWorkerTask{ - ccfg: conf, - workerName: hostconfig.Name, -@@ -230,7 +230,6 @@ func execRemoveWorkerTask(conf *api.ClusterConfig, hostconfig *api.HostConfig) e - return fmt.Errorf("failed to get first master") - } - -- task.SetIgnoreErrorFlag(taskRemoveWorker) - if err := nodemanager.RunTaskOnNodes(taskRemoveWorker, []string{master}); err != nil { - return err - } -@@ -249,14 +248,13 @@ func CleanupNode(conf *api.ClusterConfig, hostconfig *api.HostConfig, delType ui - } - } - -- taskCleanupNode := task.NewTaskInstance( -+ taskCleanupNode := task.NewTaskIgnoreErrInstance( - &cleanupNodeTask{ - ccfg: conf, - delType: delType, - }, - ) - -- task.SetIgnoreErrorFlag(taskCleanupNode) - if err := nodemanager.RunTaskOnNodes(taskCleanupNode, []string{hostconfig.Address}); err != nil { - return fmt.Errorf("run task for cleanup cluster failed: %v", err) - } -diff --git a/pkg/clusterdeployment/binary/coredns/binarycoredns.go b/pkg/clusterdeployment/binary/coredns/binarycoredns.go -index db9bcd5..411dba2 100644 ---- a/pkg/clusterdeployment/binary/coredns/binarycoredns.go -+++ b/pkg/clusterdeployment/binary/coredns/binarycoredns.go -@@ -362,14 +362,13 @@ func (bc *BinaryCoredns) Cleanup(cluster *api.ClusterConfig) error { - logrus.Warn("no master host found, can not cleanup coredns service") - return nil - } -- sst := task.NewTaskInstance( -+ sst := task.NewTaskIgnoreErrInstance( - &BinaryCorednsCleanupTask{ - Cluster: cluster, - cleanYaml: true, - }, - ) - -- task.SetIgnoreErrorFlag(sst) - err := nodemanager.RunTaskOnNodes(sst, masterIPs) - if err != nil { - logrus.Warnf("run cleanup coredns task failed: %v", err) -diff --git a/pkg/clusterdeployment/binary/coredns/podcoredns.go b/pkg/clusterdeployment/binary/coredns/podcoredns.go -index c27f1d1..28ae908 100644 ---- a/pkg/clusterdeployment/binary/coredns/podcoredns.go -+++ b/pkg/clusterdeployment/binary/coredns/podcoredns.go -@@ -150,7 +150,7 @@ func (pc *PodCoredns) Cleanup(cluster *api.ClusterConfig) error { - if cluster == nil { - return fmt.Errorf("invalid cluster config") - } -- t := task.NewTaskInstance(&PodCorednsCleanupTask{Cluster: cluster}) -+ t := task.NewTaskIgnoreErrInstance(&PodCorednsCleanupTask{Cluster: cluster}) - var masters []string - for _, n := range cluster.Nodes { - if (n.Type & api.Master) != 0 { -@@ -158,7 +158,6 @@ func (pc *PodCoredns) Cleanup(cluster *api.ClusterConfig) error { - } - } - -- task.SetIgnoreErrorFlag(t) - useMaster, err := nodemanager.RunTaskOnOneNode(t, masters) - if err != nil { - return err -diff --git a/pkg/clusterdeployment/binary/etcdcluster/etcdreconfig.go b/pkg/clusterdeployment/binary/etcdcluster/etcdreconfig.go -index b417861..aadc4a8 100644 ---- a/pkg/clusterdeployment/binary/etcdcluster/etcdreconfig.go -+++ b/pkg/clusterdeployment/binary/etcdcluster/etcdreconfig.go -@@ -196,13 +196,12 @@ func (t *removeEtcdsTask) Run(r runner.Runner, hostConfig *api.HostConfig) error - } - - func execRemoveEtcdsTask(conf *api.ClusterConfig, node string) error { -- taskRemoveEtcds := task.NewTaskInstance( -+ taskRemoveEtcds := task.NewTaskIgnoreErrInstance( - &removeEtcdsTask{ - ccfg: conf, - }, - ) - -- task.SetIgnoreErrorFlag(taskRemoveEtcds) - if err := nodemanager.RunTaskOnNodes(taskRemoveEtcds, []string{node}); err != nil { - logrus.Errorf("run task for remove etcds failed: %v", err) - return err -diff --git a/pkg/clusterdeployment/binary/infrastructure/infrastructure.go b/pkg/clusterdeployment/binary/infrastructure/infrastructure.go -index bf6ed3a..407c4a8 100644 ---- a/pkg/clusterdeployment/binary/infrastructure/infrastructure.go -+++ b/pkg/clusterdeployment/binary/infrastructure/infrastructure.go -@@ -419,13 +419,12 @@ func NodeInfrastructureDestroy(config *api.ClusterConfig, hostconfig *api.HostCo - return fmt.Errorf("do not register %d roleinfra", hostconfig.Type) - } - -- itask := task.NewTaskInstance( -+ itask := task.NewTaskIgnoreErrInstance( - &DestroyInfraTask{ - packageSrc: &config.PackageSrc, - roleInfra: roleInfra, - }) - -- task.SetIgnoreErrorFlag(itask) - if err := nodemanager.RunTaskOnNodes(itask, []string{hostconfig.Address}); err != nil { - return fmt.Errorf("destroy infrastructure Task failed: %v", err) - } -diff --git a/pkg/clusterdeployment/binary/network/network.go b/pkg/clusterdeployment/binary/network/network.go -index e1cd73f..0c35a9c 100644 ---- a/pkg/clusterdeployment/binary/network/network.go -+++ b/pkg/clusterdeployment/binary/network/network.go -@@ -121,7 +121,7 @@ func CleanupNetwork(cluster *api.ClusterConfig) error { - if cluster == nil { - return fmt.Errorf("invalid cluster config") - } -- t := task.NewTaskInstance(&CleanupNetworkTask{Cluster: cluster}) -+ t := task.NewTaskIgnoreErrInstance(&CleanupNetworkTask{Cluster: cluster}) - var masters []string - for _, n := range cluster.Nodes { - if (n.Type & api.Master) != 0 { -@@ -129,7 +129,6 @@ func CleanupNetwork(cluster *api.ClusterConfig) error { - } - } - -- task.SetIgnoreErrorFlag(t) - useMaster, err := nodemanager.RunTaskOnOneNode(t, masters) - if err != nil { - return err -diff --git a/pkg/utils/nodemanager/node.go b/pkg/utils/nodemanager/node.go -index a19d2e7..08af098 100644 ---- a/pkg/utils/nodemanager/node.go -+++ b/pkg/utils/nodemanager/node.go -@@ -17,6 +17,7 @@ package nodemanager - - import ( - "fmt" -+ "strings" - "sync" - "time" - -@@ -54,6 +55,12 @@ func (ns NodeStatus) ShowCounts() string { - return fmt.Sprintf("{ total: %d, success: %d, fail: %d, ignore: %d }", ns.TaskTotalCnt, ns.TaskSuccessCnt, ns.TaskFailCnt, ns.TaskIgnoreCnt) - } - -+type taskSummary struct { -+ name string -+ useTime time.Duration -+ status string -+} -+ - type Node struct { - host *api.HostConfig - r runner.Runner -@@ -62,6 +69,32 @@ type Node struct { - queue chan task.Task - lock sync.RWMutex - status NodeStatus -+ -+ tasksHistory []taskSummary -+} -+ -+func (n *Node) addHistory(t task.Task, err error, useTime time.Duration) { -+ ts := taskSummary{name: t.Name(), useTime: useTime} -+ if err == nil { -+ ts.status = "success" -+ } else { -+ if task.IsIgnoreError(t) { -+ ts.status = fmt.Sprintf("ignore err: %v", err) -+ } else { -+ ts.status = err.Error() -+ } -+ } -+ n.tasksHistory = append(n.tasksHistory, ts) -+} -+ -+func (n *Node) ShowTaskList() string { -+ var sb strings.Builder -+ sb.WriteString(fmt.Sprintf("\n##################tasks on node: %s#################\n", n.host.Name)) -+ for _, n := range n.tasksHistory { -+ sb.WriteString(fmt.Sprintf("name: %s, elapsed time: %s, message: %s\n", n.name, n.useTime.String(), n.status)) -+ } -+ sb.WriteString("#########################################\n") -+ return sb.String() - } - - func (n *Node) GetStatus() NodeStatus { -@@ -135,7 +168,42 @@ func (n *Node) PushTask(t task.Task) bool { - func (n *Node) Finish() { - n.stop <- true - n.r.Close() -- logrus.Infof("node: %s is finished", n.host.Address) -+ logrus.Infof(n.ShowTaskList()) -+} -+ -+func doRunTask(n *Node, t task.Task) { -+ start := time.Now() -+ echan := make(chan error) -+ go func(ec chan error) { -+ select { -+ // TODO: maybe we need get timeout from task -+ case <-time.After(time.Second * 300): -+ ec <- fmt.Errorf("timeout to run task") -+ case ec <- t.Run(n.r, n.host): -+ } -+ }(echan) -+ -+ err := <-echan -+ finish := time.Now() -+ -+ if err != nil { -+ label := fmt.Sprintf("%s: run task: %s on node: %s fail: %v", task.FAILED, t.Name(), n.host.Address, err) -+ t.AddLabel(n.host.Address, label) -+ if task.IsIgnoreError(t) { -+ logrus.Warnf("ignore: %s", label) -+ n.updateNodeStatus("", IgnoreStatus) -+ } else { -+ logrus.Errorf("%s", label) -+ // set task status on node after task -+ n.updateNodeStatus(label, ErrorStatus) -+ } -+ } else { -+ t.AddLabel(n.host.Address, task.SUCCESS) -+ // set task status on node after task -+ n.updateNodeStatus("", FinishStatus) -+ logrus.Infof("run task: %s success on %s\n", t.Name(), n.host.Address) -+ } -+ n.addHistory(t, err, finish.UTC().Sub(start)) - } - - func NewNode(hcf *api.HostConfig, r runner.Runner) (*Node, error) { -@@ -153,25 +221,7 @@ func NewNode(hcf *api.HostConfig, r runner.Runner) (*Node, error) { - case <-n.stop: - return - case t := <-n.queue: -- // set task status on node before run task -- err := t.Run(n.r, n.host) -- if err != nil { -- label := fmt.Sprintf("%s: run task: %s on node: %s fail: %v", task.FAILED, t.Name(), n.host.Address, err) -- t.AddLabel(n.host.Address, label) -- if task.IsIgnoreError(t) { -- logrus.Warnf("ignore: %s", label) -- n.updateNodeStatus("", IgnoreStatus) -- } else { -- logrus.Errorf("%s", label) -- // set task status on node after task -- n.updateNodeStatus(label, ErrorStatus) -- } -- } else { -- t.AddLabel(n.host.Address, task.SUCCESS) -- // set task status on node after task -- n.updateNodeStatus("", FinishStatus) -- logrus.Infof("run task: %s success on %s\n", t.Name(), n.host.Address) -- } -+ doRunTask(n, t) - } - } - }(n) -diff --git a/pkg/utils/task/task.go b/pkg/utils/task/task.go -index f896d83..8452b01 100644 ---- a/pkg/utils/task/task.go -+++ b/pkg/utils/task/task.go -@@ -53,6 +53,16 @@ func NewTaskInstance(t TaskRun) *TaskInstance { - } - } - -+func NewTaskIgnoreErrInstance(t TaskRun) *TaskInstance { -+ ti := &TaskInstance{ -+ data: make(map[string]string), -+ TaskRun: t, -+ } -+ -+ ti.AddLabel(IgnoreErr, "true") -+ return ti -+} -+ - func (t *TaskInstance) AddLabel(key, label string) { - t.l.Lock() - defer t.l.Unlock() --- -2.25.1 - diff --git a/0009-modify-manual.patch b/0009-modify-manual.patch deleted file mode 100644 index 0413e4e..0000000 --- a/0009-modify-manual.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 79aa934ed0ca0f7e2b6b40e88388872ad9e07680 Mon Sep 17 00:00:00 2001 -From: zhangxiaoyu -Date: Wed, 28 Jul 2021 17:06:11 +0800 -Subject: [PATCH 9/9] modify manual - -Signed-off-by: zhangxiaoyu ---- - config/centos.config | 2 +- - docs/manual.md | 9 +++++---- - 2 files changed, 6 insertions(+), 5 deletions(-) - -diff --git a/config/centos.config b/config/centos.config -index 71a91bc..2cdf465 100755 ---- a/config/centos.config -+++ b/config/centos.config -@@ -19,7 +19,7 @@ install: - package-source: - type: tar.gz - dstpath: "" -- armsrc: /root/packages/pacakges-arm.tar.gz -+ armsrc: /root/packages/packages-arm.tar.gz - x86src: /root/packages/packages-x86.tar.gz - etcd: - - name: etcd,etcdctl -diff --git a/docs/manual.md b/docs/manual.md -index 0e86158..503b034 100644 ---- a/docs/manual.md -+++ b/docs/manual.md -@@ -106,6 +106,7 @@ $ eggo -d deploy -f deploy.yaml - - ``` - $ eggo -d join --id k8s-cluster --type master,worker --arch arm64 --port 22 192.168.0.5 -+``` - - * -d参数表示打印调试信息 - * --id集群的id -@@ -155,12 +156,12 @@ cluster-id: k8s-cluster // 集群名称 - username: root // 需要部署k8s集群的机器的ssh登录用户名,所有机器都需要使用同一个用户名 - password: 123456 // 需要部署k8s集群的机器的ssh登录密码,所有机器都需要使用同一个密码 - masters: // 配置master节点的列表,建议每个master节点同时作为node节点,否则master节点可以无法直接访问pod --- name: test0 // 该节点的名称,会设置该名称为该节点的hostname并设置为k8s集群看到的该节点的名称 -+- name: test0 // 该节点的名称,为k8s集群看到的该节点的名称 - ip: 192.168.0.1 // 该节点的ip地址 - port: 22 // ssh登录的端口 - arch: arm64 // 机器架构,x86_64的填amd64 - workers: // 配置worker节点的列表 --- name: test0 // 该节点的名称,会设置该名称为该节点的hostname并设置为k8s集群看到的该节点的名称 -+- name: test0 // 该节点的名称,为k8s集群看到的该节点的名称 - ip: 192.168.0.2 // 该节点的ip地址 - port: 22 // ssh登录的端口 - arch: arm64 // 机器架构,x86_64的填amd64 -@@ -169,12 +170,12 @@ workers: // 配置worker节点的列表 - port: 22 - arch: arm64 - etcds: // 配置etcd节点的列表,如果该项为空,则将会为每个master节点部署一个etcd,否则只会部署配置的etcd节点 --- name: etcd-0 // 该节点的名称,会设置该名称为该节点的hostname并设置为k8s集群看到的该节点的名称 -+- name: etcd-0 // 该节点的名称,为k8s集群看到的该节点的名称 - ip: 192.168.0.4 // 该节点的ip地址 - port: 22 // ssh登录的端口 - arch: amd64 // 机器架构,x86_64的填amd64 - loadbalance: // 配置loadbalance节点 -- name: k8s-loadbalance // 该节点的名称,会设置该名称为该节点的hostname并设置为k8s集群看到的该节点的名称 -+ name: k8s-loadbalance // 该节点的名称,为k8s集群看到的该节点的名称 - ip: 192.168.0.5 // 该节点的ip地址 - port: 22 // ssh登录的端口 - arch: amd64 // 机器架构,x86_64的填amd64 --- -2.25.1 - diff --git a/eggo.spec b/eggo.spec index c0a6710..3326595 100644 --- a/eggo.spec +++ b/eggo.spec @@ -1,21 +1,11 @@ Name: eggo -Version: 0.9.1 +Version: 0.9.3 Release: 1 Summary: Eggo is a tool built to provide standard multi-ways for creating Kubernetes clusters. License: Mulan PSL V2 URL: https://gitee.com/openeuler/eggo Source0: https://gitee.com/openeuler/eggo/repository/archive/v%{version}.tar.gz -Patch0001: 0001-update-docs-of-eggo.patch -Patch0002: 0002-fix-some-bugs.patch -Patch0003: 0003-use-export-to-replace-go-env.patch -Patch0004: 0004-add-hooks-apis-for-cluster.patch -Patch0005: 0005-add-ip-name-for-hosts.patch -Patch0006: 0006-remove-unuseful-code.patch -Patch0007: 0007-support-rollback-of-create-cluster.patch -Patch0008: 0008-refactor-node-mananger.patch -Patch0009: 0009-modify-manual.patch - BuildRequires: make BuildRequires: git BuildRequires: golang >= 1.13 @@ -23,6 +13,8 @@ BuildRequires: golang >= 1.13 %description Eggo is a tool built to provide standard multi-ways for creating Kubernetes clusters. +%define debug_package %{nil} + %prep %autosetup -n eggo -Sgit -p1 @@ -33,7 +25,7 @@ cp -rf vendor src mkdir -p src/isula.org/eggo cp -rf cmd pkg src/isula.org/eggo/ export GOPATH=$(pwd):$GOPATH -%{make_build} +%{make_build} safe %install rm -rf %{buildroot} @@ -53,6 +45,12 @@ rm -rf src %attr(551,root,root) %{_bindir}/eggo %changelog +* Wed Sep 01 2021 zhangxiaoyu - 0.9.3-1 +- Type:upgrade +- CVE:NA +- SUG:NA +- DESC:upgrage to v0.9.3-1 + * Mon Aug 02 2021 zhangxiaoyu - 0.9.1-1 - Type:upgrade - CVE:NA diff --git a/v0.9.1.tar.gz b/v0.9.1.tar.gz deleted file mode 100644 index 4697019..0000000 Binary files a/v0.9.1.tar.gz and /dev/null differ diff --git a/v0.9.3.tar.gz b/v0.9.3.tar.gz new file mode 100644 index 0000000..97cea29 Binary files /dev/null and b/v0.9.3.tar.gz differ