From 3566aded713736fb6d571d673225e698375a85d8 Mon Sep 17 00:00:00 2001 From: richard Date: Thu, 18 Oct 2018 18:38:28 +0800 Subject: [PATCH] update readme contents --- README.md | 47 ++------------------------------ SETUP.md | 48 +++++++++++++++++++++++++++++++++ resources/tml-img-overview.png | Bin 0 -> 38678 bytes wildfly_base/README.md | 39 +++++++++++++++++++++++++++ wildfly_tml/README.md | 38 ++++++++++++++++++++++++-- wildfly_tml_khhw/README.md | 10 +++++++ wildfly_tml_txgw/README.md | 10 +++++++ 7 files changed, 145 insertions(+), 47 deletions(-) create mode 100644 SETUP.md create mode 100644 resources/tml-img-overview.png create mode 100644 wildfly_tml_khhw/README.md create mode 100644 wildfly_tml_txgw/README.md diff --git a/README.md b/README.md index 8e0604e..5890b4c 100644 --- a/README.md +++ b/README.md @@ -1,48 +1,5 @@ # tml-in-docker # Dockerized TML Web System -### 安裝Docker & Docker Compose -一般Linux - - $ wget -qO- https://get.docker.com/ | sh - $ sudo usermod -aG docker $(whoami) - $ sudo systemctl enable docker.service - $ sudo systemctl start docker.service - - $ sudo yum install epel-release - $ sudo yum install -y python-pip - $ sudo pip install docker-compose - -Redhat RHEL 7 - - $ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo - $ yum makecache fast - $ yum install http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.42-1.gitad8f0f7.el7.noarch.rpm - $ yum install docker-ce - $ yum install docker-compose - - -##### 若docker host在proxy之後 - -請參考 https://docs.docker.com/config/daemon/systemd/#custom-docker-daemon-options - -### 安裝Rancher CLI -```bash -curl -LkSs https://github.com/rancher/cli/releases/download/v0.6.11/rancher-linux-amd64-v0.6.11.tar.gz | tar -xz && mv ./rancher-v0.6.11/rancher /bin/rancher && rm -rf ./rancher-v0.6.11 -``` - - ### 由Private register移除Docker Image - -```bash -registry='localhost:5000' -name='my-image' -curl -v -sSL -X DELETE "http://${registry}/v2/${name}/manifests/$( - curl -sSL -I \ - -H "Accept: application/vnd.docker.distribution.manifest.v2+json" \ - "http://${registry}/v2/${name}/manifests/$( - curl -sSL "http://${registry}/v2/${name}/tags/list" | jq -r '.tags[0]' - )" \ - | awk '$1 == "Docker-Content-Digest:" { print $2 }' \ - | tr -d $'\r' \ -)" -``` \ No newline at end of file +### Docker Images +![Overview](https://github.com/shihxuancheng/tml-in-docker/blob/master/resources/tml-img-overview.png) diff --git a/SETUP.md b/SETUP.md new file mode 100644 index 0000000..8e0604e --- /dev/null +++ b/SETUP.md @@ -0,0 +1,48 @@ +# tml-in-docker # +Dockerized TML Web System + +### 安裝Docker & Docker Compose +一般Linux + + $ wget -qO- https://get.docker.com/ | sh + $ sudo usermod -aG docker $(whoami) + $ sudo systemctl enable docker.service + $ sudo systemctl start docker.service + + $ sudo yum install epel-release + $ sudo yum install -y python-pip + $ sudo pip install docker-compose + +Redhat RHEL 7 + + $ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo + $ yum makecache fast + $ yum install http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.42-1.gitad8f0f7.el7.noarch.rpm + $ yum install docker-ce + $ yum install docker-compose + + +##### 若docker host在proxy之後 + +請參考 https://docs.docker.com/config/daemon/systemd/#custom-docker-daemon-options + +### 安裝Rancher CLI +```bash +curl -LkSs https://github.com/rancher/cli/releases/download/v0.6.11/rancher-linux-amd64-v0.6.11.tar.gz | tar -xz && mv ./rancher-v0.6.11/rancher /bin/rancher && rm -rf ./rancher-v0.6.11 +``` + + ### 由Private register移除Docker Image + +```bash +registry='localhost:5000' +name='my-image' +curl -v -sSL -X DELETE "http://${registry}/v2/${name}/manifests/$( + curl -sSL -I \ + -H "Accept: application/vnd.docker.distribution.manifest.v2+json" \ + "http://${registry}/v2/${name}/manifests/$( + curl -sSL "http://${registry}/v2/${name}/tags/list" | jq -r '.tags[0]' + )" \ + | awk '$1 == "Docker-Content-Digest:" { print $2 }' \ + | tr -d $'\r' \ +)" +``` \ No newline at end of file diff --git a/resources/tml-img-overview.png b/resources/tml-img-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..0bafb1108c0d52935fb06f8f31f051f695f72a12 GIT binary patch literal 38678 zcmdqJWmHsc^gfJ;fFi<>BHdjg-7vHu3?(fg5;JrN2nZ+)-8qDk(mhCvfFKPL14Ag? zC@K9O^m!ir{nziyf4v{xwO-ee4>RZ7=Z<~veeG*s_k?O{DB<6_cMAgp17AfM48g#_ zL<0Y*aj}6@)aIpfF`Xb;# zp^EpDN@Pm(cHi^f(d z!ijQb=zq+Zse(%$qQ@ulBuMEZ4%R>FWj`@$n^9J{E;eQ|V={J7UR%TDo+U=xsy%bC zVbZ9<@9ri3{QFm25cfp?{k<4@rgFg<<7|q&(GsmyR8J!3v-!i`-c!#R_lZdqZ!XR-~0s;YWresOPOXoEWZU|zZ|LLCzzOY7{4y3IE;du3t!uUifi6A zfaPC69xE7!j6gXxlX1&g>mTZnULymU-k0`w>r@~g6GJ)J>H2@eGegONmqt0DCGVhN zTN5pZwHnB=xAboevt%eN!Y!|1$zWVvA8*z$AwvjgY0?k~Bj#8=g$J^#_{4io!Swp1 z!?y(nZ>Nhm)7e*TDB07pW><@S_@3I<*0xvHwA=G6&mnaD&h6V0WeMwGBkEPDqEW1r zT5r<5Fy63Usr%4rk+KyLQ<;QVgoTnGU}(OUXfxHW9&@N*RNj#NICUV z*zf!}EilF$o=ONfbaaQ0AMQ+BSp6P6JE08+GUN{R)CX`pSV#43X^9@cS|4fNXxWb+ zKkVwnZHY_IYt2pty*G^JR0pLmCAQ{Tv;58$Xwe?kmcvuJ#d^c3&oWg8rB1o1MVwv^ zi0?>vcZtu+1_cG}J6;|-?r%Bzi&sUr{tRzbCO38pIJ&TmmQ=jl<-L@9mgOrH84)p5 zSdh8iyxqXlKQJ&dG$e-|&ht$CdxcBuE@$g}?cRJi??_+YZOMaC?Jb>&F<(&W7Kg(F z>|YBPqmB92LR?U=Hq^K-{j?i8qGAAFOzQgd$%A>Oc5K&qc&f6J|ItsXE?Whtc#;tU ziLzT8rCM2DmiY1Fpx6w*(&S~J4Xl{<{wB_^_B8Ke;#>Hv4!ympx32b@c&hV@;sJbb+6@_eVjbx^Wyw(%7R9i?F3E=9ei2yM?UG>@I}kV^H6L@^km2TCl>ey<7x z=w0~Mep^s{*s+?zy%*Du4GK9G^~B@msV=QT>g{=+<|a*r1a(S;MzgCzi+eh;}bAn z7<6|?9J{xBL&#ll<5~BQSN~%c*f29u8tUqa%7rtp@6~TTNfnNYjMRmOqm#nJ$HP!P zhZFwi6S>U7vK`}MhLjN&stD_{;-m-ElBD&-g$Yy!l$C;cLfwk%stm~c7Znnw=x&FU zS82ZYUq2`+VXqT9Ehb$*$sc4>y2W~H>GxKV`CxRIXtVycjh615Zr3S=f|AxO z_OOj8*~lI_5s3PvXzzY5Yo0h!E78+h`@%N#%Vpi?$}x8}zltc$G_83)l?RTSw}{7| zG>&vVnaf`8AsMc?SVb;j3z^fMkAv)8xeQ+h`SN$=i#G3N?Boi!{D{QYvZg*4+HiDv zL2rmS3?VoOz`%WpfxFKgaHCSvP5EF8SNkps_4EB$l?_t8Q^7vyfQiIt!=|*xvL^)> z0X6IZH<|h!KRwy@Y~3jBq5DYA>~1cKG-L`Yyl(!{4q-`2qM+Tepl1p10s0x7cQ0jO zWG@?i6R;VE3TLf(YxbM)@hQJ-%{%`%3o=}r%0#s-N(|Ohv3xzzMNlb>ElB#UT z@nJ(rLxFkra+R=v#X24%WQ2z35(#gz?ygopZjO3~kSY@zgk}Q~gzu~RALJ(=-ZI)Q zHn0-eg!A1H$t3r!>O+^NGnNzgc%6;+3;5M8gT zo?9;_H(~>mt5hc`9V500%K&rNegHgN`2mxDHj?3ezQhz9hI;zkwwk&!@w^>8O#&8x z(LIC)ffk>1c&v@&nT}483|8p8`idhn!C1Z_#59lYnW~46lYQH`VTtw2YbhgS&WXeq zJwQ`AWstlFd3uJ*_e#~-kfAxX5dZJra1Ea@s}|qjy=zhfLTfCd(kx0Ct7NqzPhwEZ zsFpQ#N5h(v!1{79^yyO^-}sEwz@dk6LBjJY(g=y?fS;>r-O{AJTFaL*bHp~?)QL(f z16d-KktxCl=iLbW7_ZY0A7n(gl(vvWrRsD@ZUuWmZ0+ffnJi>|(zPI?LU9LOEN%~^ zD6*l|x>=|guiMZ0xJ>rP18s`Fc7!rt+3Le*k2DwlgcOi8vBi9|P zz0|6rN)1|*yff0wZ`nScl256?z9Fsn32=HHIE3zjzwJ{pAm8&;4QnC;5sxGMFb+a~ z$c(?txY>YCXIA5|RkBexEmgGVPOT#?t%WjbckZ5$REogi_G_Pg%wQ7RXzfIMaUC&i&Yx##2^;o#snHtzOt zW{rvaZ`qrnM<5EQ!WAsziDp=PF#bXPrdP<&@8Eomu$$rRC;tG(F^iE|11pvNi@NjNDInO`5eMeJ}>!CxZ88;m+eC^tB};d zUQNtZU|TllC4c^HF#8>}+D{%@EmXWp@XOeLnFklkP!vk>$G(FU@mgZ5NxhdEd+1Nd z)Gp`9dhOE6eoyO|inBUbh1T^z)O^nMe=!gS<|OOT&B|KZT8N+p(&ugT={7_`heLm*vEmxB9RWH{^BstpBJNuU!n{v0#SxCa-e^)$u+`N{%i2k zPAnNHH{Dy@KR55EV04UIVA3JUVl=V-@qa-3-VZS>?D?+|8sRCk{fEymFeOG=xbMcD31mUoz1*fw!>$4PCpb@K0<3dj6&h3wRqb(9p|Q z41Xqj$P$y#DEubS(ErhGAP8inrP1f{Y&x4&O-k&=R#sNVLOt#@WB%8HYlK5sH7Ezh zys{ffomeEp;{ay5kNVRS3|uS3OIBnEt>5$Keojuo@T6yrjV3!Yl>u#S-vD6N=h6K1 z0q&nApo@V6w^ymtN{AGuv?kc>Nb&Zmn(#NcEDcD}vIPGIDZenQuk0Hh5W4TNquy$fR7h0&X9l42zX=(i5=Ze#)+M^kNb<>u>FUdzV?v($&rV<;$0> z`==m5MQ-=4eSwJ5wj8^|POgok9aHOB`Yu;ai;bg8B8CP#Z|{>E+zl!ndMDo|T-^l< zqfWWL`Cb`bH)DW;1!vHA7Y7{do{lE==peiL!9Fw&Hg=EKK;c2>A^u5+P5Pq4dfuk3 ztuxg#;%sGZ+P4SPIk|`21i^H>{Txbdh0ZvpaTgyvx6=LoW$|vu-88LXO780zf zwS#qN3)+4R!dD60+_cv{O^(b3b#~ZAWC+j zbD`~GDOI7Sr1S}atnY!{_(780eY9C=Y2FW1&dn_-U-U~~>s8sezH}+@oHQ_#!zWf2 zRpH3viBX1VW=6c5B4}sO&&L%GM+GZ%2F8(+(F>U2W%lJTz+{K<6RM+uF8-lD`p9i!sH<-(e)gX8(V zBx@~c0dH$l9{kKV?G6c*pDXd>Yu`wK!C4!uJGhl5Zr2~BtiE1SOB??79yfzG6yJsT z(D1v9EBtG>n!BtWLss}FQoXv?R`C8kh)%@us4$n8^us`5J{3_!x~?tSIsFu>tsV!5 zY2G?$0q=)^_Y08hJV@W$qGU+5{e)CreO0e4;?{`8%Jmnhd<%Q$zRs}HK81?RceLEz zG_`QnV;Wh5U)zr};47p1Gs(6L1o|nX|MD9J59(}CvJE`(p7pZ1!UHOgYR!Tt{KMDs zbkzALQoIz|1;wSLW}R{#8l#Ecy5ryovuF2%A1r1lf9gWyLp#Q7PcK$i-`z^e$jsCj z^#FGuWsP$qafkPJan7Yiclw0#SRQ&uNKNDcRqJyXi%B`qR&1L0evhJ!or$Th4v4|Z8XgBmm{&ds1M}34#jW& zN@VC9u>ygHTjly(3Qb+8(Njz(qQb)Z{#>PGUn^9p8A7q+)kYsGZ|pFWPE-ix`R`o; z6n2&B7-@VX@=l>r_*Qmzx)lSSBI?xHBHo@NA|EHkYgoZ`0P6UlN<~YVi1{G{vL6E4k0xZWdt6Dk{=Q}{ z=QDVMaqap^SM)}M5mi_HKtwQrE|El=P;cA* zqx=JecG}EM8uur;>`1XNHE>lBwP z0tbw$Rz$NBha0MeL2U_f?w9l=}1#^Fs+u8eE?dN&sTu-wQ3ft?K3!D?nHBp<$LnrbDyWKOqi!K zSOKp%faHd4j-R}t6PImRDgBfSj#sJW$PFu)i|0 zVY1Khk)M-cI1Gg!+*UciTtvsw~WWj%eV z$x9pp8sjAeJ-A|uS2y|N&#?y(%Be{gHe@)>5MewkC#%ipodjk$Q`b0g@rU^{=iUIp z<~FucMAyEAo#^e^n~t1FNOXUkQ3fFzj@&qdG9V!#^pAJv@_T)6)Td^JRE%L^x^K*@ z@7cqoECUdflrB{WD#mdF8$Or7FRR5DvOiPU_spfS&uER*JN0_7T#}xic^AG1TiBny z$7`k^vMKg+Mf9J&0qhDGNrp_Cg?)QAy`vteUj$5aEo!C-F+!GIx;&1o`6M*miRgl! z1m33`ig*cY;bL1x$V^LgHD~P%=Nw%jHz0jMTOfMtyR|!nl3xz5>D)w3FDBXry(`(k z${yz*r(PSE7iy4l`i-sluW(-o?k|*R6()mPa1|Jnb<2N>=}Z8=*&FLn&%gN#gNZU; zflR*tE0Fod#=^cbAJ)EWMusb(#pGbzrV(7K5fd8lhWI~-`S$AlIEtAaLKW$8G$z@3 z(eqe*&%0{LWB@$#=vkFa!#ntPT|HMS&*)||6Ra~5&jRs^mx|fvfgv9(<;ObaHiH(E%jfFRk|=(zinIn%{ROq{}1RkWCErX zV}iT#e+&4d+2IEa=Fy{q6EzR%ke)X(^;n`U4;b2H*(07q^qSB1_xJJqQs+`LGcTa1 z=QW!5_l^=E$#);gpqE4jo`FBrqJp_S0f-^6`J=?T1IVBSJN4K3CL*3Lvj#1KJif*TxTarLa(FRtk9a@DO7UtgfBl(W7(RvF=;tP=kYcNy6?FGXt+=_DuQ{w5XEkzZqD-4NN=>pYLBaEM~FT=&=%} z1d%RFR>CMZ1`EnfPnr&)=j}#LV>gT{1zp`=%d1-WgfDVz0Q8PCsPFRiSC54+K|=rJ zP#?(AK)#{QH|&RD@K6R+N<&La5IK_9U#u;Pw3ap^HQL+tXVnG)vmniUPEAdH{sywH zRi8^sf_|^_>Iv8&y49o-#@ZzhwBp)dy;yjx9`hHdhS zS@#^A1R(fL?*8(-9?dw~gu^$iNA;fb?^)h|JmEe;>5|!tW3agPT*>U8g!Ti|P)w_+ zprD|921jQq{&kQk!SLrNP_bXGzmi9V2m72YY<&2u%g@BBn?B z)l)S?9H9_meD{sm2E7b<`hSfYXgWX>Gat2%SskXF>Dk)LQZyM+OglsUn-^m5?UOG_ z0DF_e!fXm!E=uWXd zc8qVt{oc?fWIM?2*+(#*~lkcuyw+N5^74?1-16Eltn^D2hc|~yR$0OI^R!;*g4M3)! z&n5Z!oGvi-Ud1VwKul?zIJGe=VXyBU{$&Zow z>>4)`K{~wkwJHUJ*hCmGX?*A(6T!f$QvX1VZVw?K=pXDKgWGr^8_@@|)YNyWs0=DC zI-wIria~#776UUB_qhcp`mKBjONxzucJpcDcYgiC&_quCf&C*sez8AqUM0YEuT1>* z@D~HLROK_wSl30OW&7eq(-iHO2(8~1boE!}lGujOh+?}f2uF#kYf?qk1a;YNCLvdE z(3grp7&{Lu#H9t`|M3qpbgWopp{3h(w9VYa!^ff&YK=1zJ*tUHS1!Uq;Wtt7&j{a~ zVle$bu)o3d^hzy z7&FT4i=q}seoE~8mn{EXBz|+#N(-9Ei%i|1yhHhC!7u_giMrDzuAU@BZ_@CtQv4Z! zRT4&rP_=eY)F1bYfy+dXQK>G6_w)~?ih*@s4Z{L4St#4}w~56OzC^LSeO>kUoToBl zRQ7L-4e|foQzih2s@S~c`qRUgGS&cBDj+Vn zdiU=Si7*M#Of{MSY#OH@j`>#$@P`Ag1{zAuxaW5JZ~MA=4GtqRWW)OtJLqBzfQI@s z@Wpc`fB*SAmC?g1^?|GOQT?D~@=c3XtiNr7<>tOIwErCpiymmmYxRxx9}|q>#!Mwd zvuGKC?W^6J-U$EojlqB42>7i2ZMIj>fY34TfU?h|nBLG|JF5FZKpz~YJPH(R9@2`f zQvKR+EofOK&rhBb|oqnDD+{PH&%COqx~-VM{)N#ZsFh*Ji2kxx_Fm`lyXjC*doO&t&A!N$_O3Z5GMZ0@^F z4`kLKd%QiK?aAk@*HYI8xsOxciJX zsx=mrWF|?_rABoQTB`23r5gLKHts#n7?s>pC6-MY4Byw9i}h`_o+byw-RU}sC+=h= zCwQ7d`g9=@#oZYcDf&vi8^x*8yfbc>Y1}367*}p~>Iiju3=Wq=-`=SmD_ppBU>$>@ zUH`O_J5g1>uc;@xMuTv;;*vFp@t}dJN_?SrJD}uq8Q4A%5-sd?VkmB$Wxl+(UB8m~ zERQI3oJQKONgG!C<#`$8ysMaLq(@bq(D~D# znyQtjB4|)#`z(O#s!_A&-$uJaM-4po;}hneX^3xi?m0C5q~8%A2p^Zaq#96BA0v#RS+7qS((nc7sVe=CeuoUHV`gH=j) zCEfLozq=g8^YrJvYRg7)h7Z|!b_l1Jb}=Y#dJ{mi4LE}zS{AvC+6 z_V8N2_W7f)`KS7hPv%u1=l-S^9v+Fj=hpgzYW>-@v^3}1Cj{j$^v~&hc8_!R$^9>5 zv2aXQvTIvUPL94%s3m=IWsMr1yZpJafAYmYVD_Yk|DIdYP;{nGM9W^af5herB6wD% z{n>fkk>6ITfA-FxAHvjY-F`KBumzrUCw;kjn5(^$FU!r7WQ8nMTi@_3<}3*|q*Z z$o*v+0pb!Mt?v}Yk2C-=(;6e=(NZEtJX-r`79Ndm->$` zPZRI&k^9R%2n{J@vc)#z_)4zi#KZLMGEAeq zfsnK`5x(3db;xgsgi=t8y1bG)UwfpDvggOq?8>e+-(rdVQ~@s~Ljx+OB#)h0^((ng z6F&}P74M}gz!D0AGg1pk!BdX({mX5eB0p3GxOi@ z&(8}g7;e2d1D)*d(~c~)x?OMHm_FDana10%n>%-OTMRw5jOrZ#^hozK7$VIj{cJs+it zWz?feZFYGwv4)Xi?DS@d@Psu6EYmI&Cd^Kx`z|ZgfvFK+D zW~{y4%R#d<&$N@zQso-lsd0DSXx|8gynnGaIbMisxSHz_+HtY?+COI^qs6K7J1Z~M z!3d$-tw5TD{bz@H1@|Ci!AY503hsGPI~Om){Lan@n&!0@_^#Qic%TYfOExG>FVqey znIK=7HC%^8FWW@1N3?EQx+KtINPB$?ahs*U(>HjU z`5>!;7H7oMH41h@?fvpbb}i(SngUy*YMgwd_@LQK>dn(ns(B2e?+YDN^yQTAR@O$1 zV>9O6R~DGiRZAz6k2Q%^)y76Fq0%6fSZwahAavIG=Cik6O+v9Il$H31C$UDLDL#6# zN(~iYU#K5^dEIjoAmcU2%-jjgT+C;yPRia58s&o~t45+gislT@mDRQ>v*C-bc?q-> zpy^8J`QC4=&+Tk@+eC0jC67I*-vz2pftO9{tigcfO@A)*AbNtO%AOHvo@EKr2*Fv0 z6fYTv*GAF_5u*#t&TM@j#+9FaA@_Tnyvhf{-^jVR#;|k4HMyUJAcFvQ$jU=2HZ+@U zQ_7Cq709viQbW$23nZ#OeGM~5y8z=I60H*wMG6fY&J4b(=-D`7;XAHt5q*ePanY(C zRmvVO#sF2+?}t~wIOI~4u}{eaaR4f^VW8qd*`#3y2;icnk1L(nY`#5`zj6xaqi>93 zaiNoq*eiM6H&;?i?P;$DPFX70sn<}TO`JxJP;s#j`p9vxj`*-RXBb>Vw|0pJG)MOf znfnts1Q?)*FhZ8NwiboTP*sH?_uvDi^$}nH)8bk6l}zUV{bn*b%F40xP!9X?;@(dR zCha1sC&3q5M4MUci(;6i{<*8&o|{J|$~EI807)hrfTzPjTKsev3Sy2NPZN%t@xMIZ zpB(f<8fXJ5ufh%z^;p44@T^H;#ULi2atM=0P=bI8g(i?dV5}htxK#U3$HF zWnV~sydS$e-!a~|Gq&|Wtt%#x7D5PsFqpK+l~*x3ENk;B{2bwE(#Tu87YC~u-yB%S zV_BR3Huv`0vlyD=VPCgF>6v@OMyEEVI)o9kpY0hO#UNfEePb_*zr!3 z!j{NQY_6uDKDV;1sw$hbu@O?3+c2F9^sBF!boE5B%9=Qa$*_2XpD}YcjcbAVxKv(V z-fhaZz^lH*(f<_P-1|dpWt_!=lI(Tj$#1n=<67TC+L(76eSHsYIOJ2(v2PgOeHH55 zXc2A$8*b6yGd03ol1$bi;Y?4Kds#W(cxCfjzm~pn7q8q{mU8X~yO{mjL8Atnzb<`M zHM6ScPqh>nqd)XvU@)`~E0r+R9PcrrF*2yUMHP<&0R(t~uo@w@TC!Nf)KoB_{Y%WZ zQGEr$+eFVE3O#aRK9|+A;aeI8l!S{FCcia!O~>3^SwcBiBd=_E#5aY7)#JmeXzWrH zu?M*>sNmK|@5xX)27+eSdf&hjC>Ym(#w*w#$fyrLVDu@M+QQGo$Z#^tW*&e%irEjl zA!LD8%^kMZeZ>b7X69DqspdfD^KFRo=M1Wdq|KMFsH3Q|d|K#UM zB$m{%`1xXBUpAn$>UL4FITr~Baso0lGd73~W(@k%+OzB&umd}wOPGRX*IJvFMh)0a zCW>W4K!%~?s=jRqM2&IF_Wn0-jlu+b4}IUq52}epkt5M>-eYT1XG?WB7vfsy){FsV zPTrVz@KQgMPyFQ?&)I30Q{tQw4*MxTxpBPqTF6M?_m}DLTN4Z&7lN1a*2#lwBH==v zded_^ki=S7O2H{bd+GhR1jCN!xm*{NicLIt(fVRLbrO97=fXwKu&o+E+PQp z$RTI!zp&g-^^EsQME5=wP!bL)%g~I<*!fl21oq~73^#EkPv~n)^G<^8`wjSVYIeP+ z>T9iy%stN#7WX2)PlmxX9fCGccJ$RIq_Rh%MXkf zVBuSU))7|OpSexuZfW>P{OO!XcI{z_CK1*>+~=Ta(PwcapW7)YjrjkC@LD zew}IB4nPj5spQnEM78O;+Q-+#CRVlKNHM+7%}k_c+EyC9PUEJ4EW8^^iG+`*S#WOL z2wR1f>Tv9OZt8I)E(YA$RbtY2kcjtxwlz_$yczL>RnO|+!?{}o`YCj)%n~rg&2LsF zZxW{sH+mX@O3Bo=lOm@mYehv=Y0-TGD7V>(dhs6QxFyv59u*bK1nDp}ylXpK7MAYCui z2ByJ!XJ%V0;1kY+cSVqa0ll1rss_v-UkPKy<;v2NCDs!6hzsweC#Q5v^A_G?F9T^u zq6&wCxnO=?}XIoo`? z?Qu$iY^5btH*~i!kF)*p|YQ;YI?2^TWY7!r=ZXK`ro zKfuAKYCqe{B%EWX0hY1U9+-!IWLp; z;^NY07cnUX8Q`#a`CH;7uVh#OB2mn@I=NrUn-m*SRhSfj$`2z>yrNrWxB}cdg^;4v zGLgy#Qnv$qJb-?&q-m4z5C)ir!+131p|1Sut4zS1w4l|usO3P04k7X{uQU!{Ug=52 z{?nAogaKq{zquS#TLPu2YX-VfoU;DUZwb*P1gtu`bXP*s&%yr*NtI(UI>;;#^WR<- z-2z|9S||U=TG;`9_NvKrP2GU2`aTQge`-}a1)v=`EG&e$h=cH|Kw>5TpLRA^8N&jv zQvHXMobC;VE42djzj93g3BcsiBiU&*-WADQDGuWC|5LigFkFLkcL;U1-_#|AU+HeE z=>OB*LVyzeYgGPok+(&dpdkx!c`!Md&9q9ecP^wbf@$*FKScEuqvmX*wc@uXl3TH% zQ3(^bH+-n^M`R5qFKWO|F-NWrLg zsx?go*m&=l3Q4Q6qx)r2}20rKDOoer67y<0GZ9+)lk)FwYG}t>fwi)(1MGBlS+A ze8ZI9G_AzN_1Znt`a;ySf4wt)$(>+vw@Igok&JPh84$t(<6WFq-S^Pu6`u$~*7d&M zOV_sV)(paE-Z0tmrWBY{0_-`AN|ZX!CmeNEeUUTDu6o(4&U-J9WMznB(v9wYtzzIA^$HC|ej%!hNH=^z zc17{ML#>;r<;CG{TZcY5bjH$WsHx)U7*NfFRJSM1Kw7{V%zIB&)0@hEsZE|OQ;Vfh z#_&_1q=|-cuH+OWIS=wsck5XPE-uOQD1M%Q&(6^zB84jpDO)HbDhsa%J9*EHVA9@K z^g2y?*In9VOOLE$%iA_zu6C33JJlzSrP6lkY>yww1u)XK$Ur{Z%?Vplz?Iu1{Wx_B z&uou*S1!CAGqLgFIy+@x&IRM==Q~%z*|VBE(N`*t4cbRl@e3lvLedOXr?zr~Rmx9f zoih4)hOJr^oyZw#Y9ft2pLzKT9;HEiqehYUh1txr-muMp$+L{WiR3Snw#> zCZCMYvc%L6riqn|OAXu45+Lz@2>*Fke>~8bHbGn%tYSy~gsqU&THMt88pvyp zBBJEfvLO`iz|8PD^3JJj6+C{@|MGF1#M8+p%Z{J2T9;ZRB%4fKd_93L2?+xtF|-eSL!_C9IHRs!LYB)%j=7o5La@<8-{&x64(!eMmpX|>L2`Ks z-ATCp&4!0BY-b8P`=WJ(;Od$(c@G;cHtINiCvzFw^Oa9xTZ8>N`72fnl+B7PI4zXG z!pd_Akj9ir%J@seUJH9Zp*>&nrE%;P-k+CzENPYr?@wJ%$pq41=$0ek5M#oQNHMH;R`3yLK5XDkM!(pYzWu z&TLLOwyNUG^tsL-s@u87$XMwro*if&1e97kd$x}kORUlsQ>py8j?;`TCntvkH4Hci zFbr{jL9Iuy<+-{YJ75>aVvdhzWY)hkMw{V>uh()S+Y+w1_PMASu`ktbtQ3uF-^ym; z=kOmVvGJc9?bKs;za!wIw!^na&Xi3RF~kyyN?W+Cg7;2IAqaHzMEu$SK08a&8ojlC zlg4E;uTiCd86ma_VOh0cFChoC`qQvQbp1WPb`rdV$hw@lpcp8_`i9l~E2?8j|U38R*MMCgFpY+6gu0E-^$AfPsQ&xpH2o+zUURloBaclqcy zI-RW+9RHN&{$Q@F#`G9zO?!6YqtYo@BD+Q_;Has(rV}1)VM2l)WkCAT!nZzhmj5E$4Zu+J`S@n*xdN2B>sb6UPbyOwqC3)UU4*S}${Z<1EZJ&x1 zf0JgSm+b4481`h5zSR;q*iatXQj;D=_aXsOKnp0uIp~n#NvpTOZsapRpKa477170d z2{?*6bmGBb)3ISkIY2w+N-Mn8Ytjjp^qFB_8Ru8R|y{`$Fy-OfUO_Ww| z$X6|~W? zfiD_u;#x~C9DPGSdT4LLp=12XnXbUZSn>cOkRS=yC`$xtTLC8}zBfLBZ!hljCG~bS zeO|ks#}| zu4ol>9)$An`7~r|id(~g)UqU=BwagjF-o00y-}JVX5lJt*!V%nVVZ4N-}X^~=xVFG zoqVtQelhA6A!4ZolYl1%k-~JJ?a|Iiufba5kEiE)lT7^|&_rBE%$?2foYrDLxsJ1)-K5ck`(q(wM2Q?H$mFe+J9Jg|d z%WO2$?5f%NpnsrsKp$~;AnI1Gb?*yX_}a8Y(lNVjeGnl!Y1q6=iuDQ>KY_y@Xido$F}yPTjVeGOg(?H%$fHv zr38yHu^~c&3@ZCV$=zpr8nKP5V zy@<^)LNEw_@g%r&0?ZR8bCt~LWq>=zZxP=jjk!v3MjDxsfNW_;Q`I*U&cl+8lX|=W z99)YwbQ|W(?o^b%FKj0*PqWT`z3pkvZLN2`@|vcB*+dB>w$hIsD;{E2CJG8ucC^!$ z!$0>ErQV5>W+8pcgG5FzFlSHL)!*(h!wN^hSM|6DmtQcY1gSw8=bbG$ci$y=hwsZn z6wdgk*8z?4B96Scg?;tr;}pJ-iey@A)5{3UDTHO0^QRzb)r(Z+(pj4H%uK&>1@dMFWGu2` zy8jKyYlVqGB4A=c(S`@vuMFvk;4t}Df?=U^1$AJ_3*AFJb-$<0DY(QwM7Cg8ULVz4`t;7mBjQBSrjqpXRBS+ab!EAeyhJWsA~XQ=h2 zG0F(?=+s*tPi`3lGuhrnBtTZWp8_QO_@+J|w~Uek{vkv5#?qyA<0pb!8ORaBw~o7v zY$@4q8W&7p6^SSYi8PT%7Dls;`T6&>A35VAMM8^*8~pY|1lPtJCZ3hcE9uQV=!Do{QsQJmt)j)8@u>*}UoSm?N;i2SkXD z7f9r-G-=ibZO|qOg&3Ll@D-XY)t)xGm~!0Kxn1K31oI5K>~mj%A~&3>21udXQtJBF zGODKnG1I|#pZV$X%8Gwa-|Ui2eQ5XGAn_gFdPxG1k-*22g6Yk=%c*P|C@TaM7-F36 zbihF>J2xsUCU&C2aKd@q78`tJNPaQ!mNNZsxNyJrXd-RHej5i=*LXUobk®hAUm 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 frArk){AYaXmH%uWW04l{L|X<=S3j3^P6