From b3574e5e23da50a21821b55ed8329a99787b4c77 Mon Sep 17 00:00:00 2001 From: Ilkka Seppala Date: Sat, 22 Aug 2015 19:07:01 +0300 Subject: [PATCH] #143 Improve example code and add class diagram --- message-channel/etc/message-channel.png | Bin 0 -> 45921 bytes message-channel/etc/message-channel.ucls | 304 ++++++++++++++++++ .../com/iluwatar/message/channel/App.java | 5 +- 3 files changed, 305 insertions(+), 4 deletions(-) create mode 100644 message-channel/etc/message-channel.png create mode 100644 message-channel/etc/message-channel.ucls diff --git a/message-channel/etc/message-channel.png b/message-channel/etc/message-channel.png new file mode 100644 index 0000000000000000000000000000000000000000..d29490724b688cc934076455d2d17a8f860bf799 GIT binary patch literal 45921 zcmb@tWn7fs+BQ6*h)Riqz)*q;NF&`SsVFTS0!j=qbf<_QI0DjA(jX-uoq`Mvl0zd5 z-QDr78TY>L|K9KOetI81@te8kT5Fws9Ot<{C@abl-hkeKKp=!q<)u|25L`|O1V{WD z4)~-G&%6KvDPevp{aD>KVYSxlBb%nz!bIQtGZ)R^M^CDignNrA#X^RU?u9*NJ0hZA zd0zZsiK58H?YfQU)&xIyI=3`I+ZAH+_>e9IlbIH&=k_A+KaFWgmb|UCMkC%|Y01ZJ zHem`!N{4?b^^HUD$FT+T(&rAI3iTA8IBF(;6W$wA+c-N~%u;!=m*b%LGSOlAAb&?S ziU;fs^CutkY>4vjzYr~9W%R%PweW}HL4pu_dzzYGNn7(ft9UO#Ad+p55tkvq-e*^o zl#qYFH9V_ff!%rGk{8g*Fhxv{#ZjGzhu`34tt|?=K8qK1#(_dWG5zXZ8S zHK&PgQiyVU=Wk=p*s6lvC&|w-2-xJ0fkUmUaAK*|Q0@DMV+9rH`eCtPPI{G-QdYU? z118gd?n>SO5xQq9bNvt3iBq`f`p}SU?AY$kbEHUP#e<@l+5M-jm1-U7b_;CGkSy$?tRsbr&%XLE2E8Mzs28E@fwZjU2(v*8PBF}ZrgPWtdYAvjZ*Ik{HNCMal)uY%K!Pvf7`)T zSPk!cV0;kYbgX&_2V5-({%Hu=TYVHTYH)zhSK*f-clnK9qRlS0+mZK&Rx_4vLI3&H z9W^v(-4CAy^o9pItqbK<IiNvf>F{bOEW?JM6_1TP*lX+Jz zelh7$xWOE;R-)Y^IDyut{O6lfzuAS)NSsXzh;DYCDb?=I!9C3mPY>!I`Xmoutj2{x z=?uPgRsuUzdrMT_5^h6Gj-YR=!Jhl;>%Vfp&v!nfa8h{UdUhGL;k7N5RGUTLgx*!-2eJnZySkIls1ufn~3iL_5=$K?m! z3zdP%M;%$+^ZGMpW@YPk8PN;3G@agP!Zbe>qpIAx$MX8UPjn8Y{&`@Mr--Qpl`X|%58T`i&9jxTpAm`M8@*9qEGUkC zDCtIiyTK)4`z1j^ol0%1CtfVM?47BEcG~#Dmyrb~5B~8b;U1SHqXCSG&R)TqXiz#5 z?z;J6g|5o&pwe#YP@w)~#&Y8#12ujSVq9$3bh+LWEeEe$x?MiG*+8`?HJ|o#!mHb6 zE9b|G`msS?7t!h{W1yw5_J-tsXjko&1f0dxvfk&(t?wdQf3lV+g?bKB*3QWp-+>IRHNXhVx^uk z_vSVIezl@+7FG%^-Nwon?$$~zabs6Xe$6Ka8%|nrCkqV)$D6`OH6=E(56;@S2__u} zM1@e-aQ+??=idkQ*=zHFA4{LvA0*KwoTpKrtd`ert)EB9oxdJ`c}|=qQBmU2V~zT< zanyHtzG)$`=~&qo51njPH9Ep)9g*`zUgKn$gK5~XP4{oJ z<=Ah~l-L_Rv8g)>AB$J2S*a`Z-Ze4w&^mA5Ukjb^Ld)4i8BSD<@0V`!b2#6{k+kODX(kl+?2Xv@pXAlc^N9ATyNB4w9(Eg>BJO>I zYQ8;X+NcNC3HRwRTlek&2QVCo7IS`Bu(u@~>vTj!WzX)y(9TNG#o&f)Rr<+k zVf-vY;i9MiQDPxkpIzl&-(truP!tO_)N#lwrQObQ{I3|sY^r0#ahMhP-yhHKP;Sc9 z-J~u2zZxTz(HY$T^oLm;1f71)o2qASiaY3V!he4C6&VskhyCF76|C=63{)K3lW~;LJ98@TTTBzu?+q}~GZi~{j4{RbWYw3>5?Byc zeLh;xSjut4Gn29&TTrb~OQ10);-BI-zzYpQyO47X4YUmuQ2#xuK33;VDagPv9w8P6 zwWZn*k)@H}*(IA(kTO!sI9h5OEZ?^1hZJ4pRa#5lsV_&QCm!`~+uj#;KKY^_T+Ohh zXz8BUx4g5K1L03MRz{l$I9ook1NTq=RO=;IY8PH*5~ z{jTpaHU(M1#u<-HXMU%!FI-OVf_Vy3nOHAgO+NkRQZn{rlz}*`6uK{3agTd}QFQV~s~ zfeIB@4<>7>m+OVdy_HwvOCJCFA<5q#+Dsnmog8&hxvRlSt&l(^ZNlWc0Z)F z*g&dP1E=nY`~T$-tgI61eyVrNx0$?Wm{Ms=>*|u6D6fDbqtO@C8q7?Afq`e<5-WP7 zv1Z9$`%`DtJ_jv6r!DkN#DPs+U0u>8;91BU9AHAqPZX7uG&MB~4QjtQ$p&||wLQ(( zIPsS_^yl)6?=me!DG17eXO(F&I-Q&S^XKjgTclrqzgqZ+uCA`%PYn%?S-5Z|sGNOo zVb>;OVq#*T2@lvRuCCTCM0pj!>ZjnmPz%%R;5ETSK!9J>t!!)_Ns3*+>i-joL~d;r zZJ|&#^L&O!?V76Hx4>hhP#`bKoXyW6w%$ZUL_;Xlgc`)a`)JN*i}Sp>z5Q8Q@2fdc z@Zh!UnD-GRBqV@W($dnJCWe1@@bs)HD&nRf*iEdiu7(*`LJJM@HFWdu?CgU|uK^Pb zBq?w54O{V-bT_Noy1VNXqGbGZJ*a8sQ-?(oKdtKN>ROhM)i8jkA@@Mp>-(so*!p3b zfluojI)rR$6~bsXD={%~aBvWa(xA}A-u|;aBL)fdVDx|EWA;y-{CNsN!lk=7x*XoQ zgRt_kbNaxh6!`;KDT~j+{(fH@EqL`THD)J%Bo-}@Jpz)r+Nvt3{ag)@?1Mit(Qs>P zglt-R2`C&PZdWmSQm05XP?oOUSYI!A5k?sO6MUnkh*3&F`iRxG{#Ggv6j4@I_H7WB zud%Y{USj}uq{V`Hpc#F5STP8rpM2*3#qKL(G_ZlZlFQ)57FdN*cyj0F0SWH9*Mjqa zQza(SFh+y#BdIVO3^(VGN66k=(UUBurll<#TPrOs-P_w!%xd~&50tL@7GrP(Sy@@Y zgx>fbZ`<11{)Ux;ZKU-s9-L^KVNNh}1#<#|SjC#oAX4(jb;ZRDGoC&^5-Y3VOGyH( z*ct|NHBl(k5}BdBqN1X3VmC02<>har*EMc}hnRUWiooHbAdvp>CK10CKeb5)5yD9R zW^!eZ8Q?L93}%Ti%l-ZR#anos`v(VuS-nsM@)cLBun742<|WKoyq6A6a&vPDq&P75p(CXP7=wIB1_NJ@gM2wADu zZY3ksM1fdsy!s#s_VBuAauT>jhcNl~n*UP1#!V0%6kmvrUiyw?FF<)Q9e9Z$q7|3YJ z`<>`LRlO^ft@b1f482%!NV;LSg6!_@2D=%mgj}1SolWmwva+(uD<~)%v&PzC0@h`( zZYG*BGp9DWI6F&6z-?^y-Nj@vi?9)37O}=GqM@NxMtGykR?vz+9tgG9oZzZI*3y+l zF>158*O!4>0oLP7At)xcc5t%iuK(ICcMyt@)n2#;#Lk5gd>?vqGc3GT`Prw?P?5y$ z(RULQ`t!zMp(_|mm%ko911#v{Qh@z``kQAHF$gaB80|j`f-Y2deHUF_TjPuGii#pT z>L>@c0~yD@{*@rLX(F!gu9l&X6Yf{l@XujRMpq!MoEVMq-Yn!@VS}W%q&L+28u5BT zAmYEJaUkhG=jTm_v?21u1A>{D3hU417x%#ne}SW`VZi04ALA{^UBXxaA_d(4{K)pH zQH~_Sq}}`&0`dI%;R-|^6sAq8DqMWtju{%2ydNdHDaTN^o--OMG5OeH4F6|(Va#{nSbRB=zjDpU%LuM_<$XrgztL3&H+=taW&oQ5#ul~;l zC82*lH>!r0Lg`kfgKsq$?XNJnjpyehxXPCn;y${(vr{nUY+H*6bI6K*itb*Lch!7i zaDpjlkNp4VI5MU%&u=ma_p$6A8V2pzW42DM%N=Dy;T%7aVm<3z9DM78kJnRd1eHGBPwJP=P%oYg=DN^rAbYkD4{M(H_Fn|)mHCT)m@qDfj4jg;4u8tAnq`V^L~YBm`|tcNB9}nB>@BW)gI(d-;%jY-dzCl>>jOTi zaFBh%{)&d=1y+}blR#G|rY9-+t%;Mcwu#z_6DCwWEcQ&NA6gvgPJ0Jae*NR10lJ8g+4Cjh z`e{G2b)V%7P9L;L(?b2hi=&fY=VlV8oq>jX=kcp=$J3Egmfb1NwrnsxhJhJMN6YsK z?2*44wV$yN@ADv-u6_}RKMgR_Vo_4wVS}HjuHwtIt{%H{gPAQeU_0I_Uby%{IwGj~f#y z{w*qCcp~D}PN>`ULt_^okM~xlCQlL$rZXOoU$zi4-XnL(UF#k46TU4~3 z{l|eelU_FC0_R;Db%&!TK1+NDXQ{DP!gp0Ue&`cA)|Mr#r4K+UT!9n)|YO`gJ zfUJul4r>(4`lX$Zz}K!3V|RjaiQwQ|`03u7?ndoobn^M}EZloNWy}VKYEJUpI*uVu zvT*b{BdkVT^Fq%TnCg~S>fc`WYFto8(;sJawJqHm<)58=P}0RjmI3#iG_+n}NoKZf z2_SUe_+uB))7i9&iGSfKAW#D*0h$MDos1V(sUNRhz{|Q|t`|R9gV$91%!Nx(x|lp4Nq+6ZhTqh zIm-HxY$+o!;mB7|Wt(-mgfOwM?3HZF`l7{wVb3^EB^PXbBRv)1E!rGfL57CIJ546x z`*D8+46wznD|S6d3@MP}iU*q5b5E_Xc4I!CuCn&%SM~bIvYfSqZm`u5x{k6J2qK16|r`-ShUc)glEu;?kur53M6Y zMhj_cN6;LW8POB|!{vbn_XhX4$96s$SF7^vO^bZS&qCHJwNrLV5S#fK3i6z<2&7!S`b(@qdKEY`f?G6CFW@qx@%l{y&85zs`dRzP+Gw{KtAYe4idhd;yJVFD+RNJs^eLCC9`c$X!!qbnK&t*8!MJZ8$hM$aob53huhn(g$O;289NN zx!R(Ew;!>WKp>PDAn~utLh)afMW-m0_>qtq(QU!U$>GZk^#J#%k1@B`=;VXCZUhw8 zU8eo2OG}Yj5Z~vRq@8{#f(cWrkUx@G`ew%|n-+d;+u#54$Q>^Z?jVhrwTX#|T+PC7 zXW5PrW<1wGkh8GiXhsc{RZROlt1=ui(t_GXqtfF3m(#JWa+;U!|CWsm)DoGX zm-*d&OEpL7v-7-MM^kvv*qY_Onyt)C;?S;E#^A!3nwypU14+b*oOu<|kp|je*Ii5n z{jJ>7!C|K{0RLHB$2mA}L_|b7Xl#AQqLROjOH6*Rw{x#~x>%1S>GjFV41fpCN0(O=1XuzJLr-a7mw*N(=6 zc04@Rf$W*6h?-C#;E)3CbL{Y1T3VJnU;uN2y81k74IoJbg0PhR;V> zAcb57wfex@;iE+=RFzMc{>Tu0W*EsavX(6G@f6g7Ojfj7^}`E9ObJ}{el!j_9|vLS zsDZ9-g!P~gz&DiRS0LBJ4?uwkf!K$%M%C8VV$9;G3gEPSja<~q15vnV0ma!oLZrE5 zs4b6Cg$kVzIFRX?3o+%hX`da(xmVP;P2Te}hM@|2P)nqchD2n;({tBMODt*?ClbDv z1>P=hrGZ2SKH&$2QNZOa!e{=2m+AntE-qHh9h63hygx){Af?#ui{pRyYM%J%!K=@s zmtRq!zNPia1}=h97YG$o(M4pli1VL#`>i1FwVOr9U?3g~EPS z{~+$u064L&>~xN538L+XiKG5En)v8#)bT1RP(Y*r$Ql%ukF906Z`?b6+^r)W&=b=$ z0U&!`US4*Rl<%B0%rB!MgF~xbueMjMD@dJHT^RJBX#i{lmHzZ;Ht{_n;f9m5^IJq> z;P0iBExE3_`}IN!NebYH(tf#xEZOG{d`&WCD|=Pn1o3VccQHv?U?MVPmVC=yBvG+s z1TbQ{+S=NUM79E{4Rf#{Xz1}{)5_0)7D~~(6iLxLJCxu6%XgYOc|b6A;gfUZ6&B{=#xW2gIauvUV5MIM<;bsBez$+RM1~hc zqOx@6ZTP`9e6H_x4$F`^FQ8Zkyjf^`iLnS70D{9mixBdk4*@StExUHY&OI{};=qZL z>#{-IaEIJ|F(A+v1=ZxS9B|GZEZ$dRz0{4_#uA8aze(cq>&Vy|b!P=={+zc)kf;a5&W(nE47z(uP&BttE{XXygugEa%=XZYPs`kIjUAl96Susi{>m9)=aRMh*^Y zH9fVpVx~IB-|Oq^i;8-!_;8cE9(=I1*JCkB`RN<&{?e=cnX^5#j`oC-_r zAT064or$pMvJtDK7Y5T?Rkv^8P11vUnhRd@iy*Mcxmv#vl{@&2xj{CK-uSb3d~;aH zLt#%#%azj&&TgIx8c6WlA7sz`=xAw!r8T{l`aT1->7FfPjs6Hjw?S?a)?U^lOd1~< zA%PPgxzNro53V>>#xCf!7ob*(OsOCsBC+Cf_zVWJbThK(mkygn@XMXQS$p1k2UC7x zcCr{`QeIun`Y4oWb6CYvuGmV`a_!TDr!~XC_y#w-2~xU^A76c5j|1n8-%sND6U~qMYzg}LhlW(vwS+42rTwtFCb>QI6H!ypl z3d3<^>#dgCq4}a*)-wI^1^JKBOtA{FC$$ozmco_XOgk@3QUN5L=}fucz9os%nd;=HA}`%tz=-y0&g8a^^=aJz^o)aj_()>$S~Kp(O)M9d^eC-YzH0@9 zE)cs^lFN%YBP^HA`MzKkwTtw(rM*Fs z6h2c__@qa34)V34)#2Hw?4TKk_gm5Y0r!n!A1;coeK8n<6cTwUe1xG)2IT2GfwIyS z@^*ISyP^7Ba<-OUEoC&_b6xss#S1Ls`w^A!5sG;33Ae)$qWFQtvzw;rRa*_4Oe;N4 zV4f~6nl^G-{nv@0&<_X!J&5unP>v6>nv^DGFDu0CJ9v5N*SbZXd3xo)#@G&qY=Bg_*H=d|~En_-V|NLdpJ94lS7WkIIxB2F?_i0H~fJj$59!bNx6 zj&G|V6pF|t>@6)>CuwQ7q)oIx&_KT4)WW1T(WS^oF+(rQUapL89H=beV!#Y0k8 z;8m1#JFQog_aVL|BPi5Bndps-+Ltg-hqt3}uOvcy{J$~jo3qicY0xkL z+M=SOV(=&5fVkZL-dPc|svZ(i>3u^>P0ZG9=ceU15n>mPt@ZY&hkS!g-4No_#<&W9 zdw)PM%ICtZbP|7K+zd|9deT_qi;|_ zHKS92pTC%U-o{GvNi6orZF$chcEiqo(;IA|f&)@ZH#1g#sa4s>7bLG=3{9 zGH^Hz7oue!`D|m)-7F&7+3W3SG^4(k#P;haWk+n>|8m-j__H&wQmfVFWmu_B#^su? zK{1S~Zr0Y;K)EUR)88?hf$o5+By|7htFO>W0FEr)4Zaf@nH(KeJ$XRjAJt9#ulRmy z)pvWKXt-y>)w$Sp7 zeJf9PWU@ArYxK}vSH0XEjycJ=TxBIP`PZdysFfMAjGeLoCtuJz^74A|(6;nr z(6PN-^+dEa-@9i?&tx>0u)5WHJ-en-u2H12LW`STY#lJM{~S)8zoOZ%xObPdjU7}Z z2cx4pB_pej!fY+7&p^pDu8^icscdphO}W)m9gK(J2nh+1EJ!2zRL>S*B)8q(234mX z4-+%Kj_(P>289ML_;_~k8P3PjvckJD5Wlx#cQ3o+9R}c&&(bp)TfyO>O3$OHN+qjI zvY0V7$V12yfzQpZCE zbaA&<%3}(rErr=Ba6UdUPF&DMJU(_8wg5V2md-G&b$^+&|v)o zhG$HO|KK?&v*$QAD!M$WRp}*2EE?0^#M3g_7Ts5NmCr_S_~v98_nBRVhew8e|H{hV z^2JUQIg7;U4g$G;R&JQ5XFuP5??OX#bYnEvFUVw;USiQ?z@s*4(e_|zbdEkCmq7cIfFb&0M1w5^UlpJt-E z*gJIHjB_c}(70Grg3B+*7wVq)u#!s%Q&3+VT`a_0>WQ6TT9mM%z2VCzt8cMwS`s(k z{sU_?!QpmJj7SB1 zoHU;-`Ao~=7|-9&{99Mo3%9GMwsUe*HKl_WyCU#!HBCI%F9_cC)N`9CQ~y#p+@ibK z0;rDId(*$^`f_vq@vD!&t@tAp#7fZNHyg~=L{}#P=7VS#f!hjtBfz%q=5KhD2)pr&9j1U)|clZOjo@n z$0~7pFL&@M-eE4Qz#36t_@48hLx-3{m*%uCDkTMkTBYirmxaeDhVI*6y4hh8U0a)A z6C(@^dhD|t#6$Vl%_5d`&~8f_U)x>ZALCPKFy>a&ZzkMP&t@0}%hShCSbkOt{$-`< zqDwyio^Q}8zzQ8DQR+6`7y#Pq8o7fTQx`;1hw`;kI#)ZJ=4(;!TwV(`^NnZgRTkjW zSGe!NY7LY)ya8l=!bLl5e&+AvAJwCb*1E6oqk*DMV7(*#a!tP#KWb zi>A;r4&Xo_ui7Yy0<-P%IzjV@K|2)}dC1MAGMZX0;}o)g2Uii#l_FbDrV#(e!!S(c8K+s$~+-fzYhBkF2i(Z-j8ag&vd+^C7XF%~#urX_g=Ezk7jw>1!ko zXy;1H$gNe=5(NS>#h_3#7Z6x4g&R!LU16d+I)G#ZZBDm5{HNbbO459s$-vOCo7Sis z+Q03s?Y*u zWMYDd_Qa{se4I6#@OP=ua~_Ev66D%tw<9g_>q0KDINtRHqWjJdW=rb_G=zbu6w4qY zH$E<2AsG}$x6#o2LCBi8xS(>=LR0GPrd28*<6uF=cCXF$d2FZl*l!-Wkl~4Y7NzgaHD0_}cX^X6vp#KlDz&K&GGrM~WGuJr43yq;zOrus>7VZ>Cahdw>_Ml@+Q-N6;SSI-sI>}FV{80P-8{cED(zK8tYDt|xwTE6 z=JGCgqPCa;7J-?6-0>`ZIEPd#v;zw(G(PI0l7KIK@Oo&`;RE%M@wa(#kh*HLJN$%b zmru?Z@r0M?1+N0lF;W5GP38ta%%YfbL+8a044wqMlyJ(_MzVt_JB~QV%sN$Qn)4w( zyywS{*^l-UQQ0{wWA`vpkEH4Wgi@XJRS2X*Hlwk|?!a5g@EMA%e{Fidd0kn^I?0GS zXZU4{m6Gxk2Obs%FQy$NA8RNSb%Ov`uotJKxOltgd_f!<+PF6Yeh)OxDttfI6GxFgmZRuGl5`&^iQnXN z*<-{^&U-x?la@wx=f$LV$44n5R&WO`C2$Y*aOXESzxOWfU_)Bk{2#w__5{Y)58Zj++EMUA^kt%P|NuViHVUJffSHCxD3*K^~Aj8 zw9vF(6l=;T$!|h&vGLN(DvJWwSJoKtkTe?k6fHze1V-KZmB>LZz8!5bDOeU+mJXxV z9jF0*vI*v%dS@4wrc5VY^^_|g0ar)wJbny<t)lqfx9yZLFMG1qGfBA|mdPD`I4tY(2|B-n$u2}p_=kgx0_>x?f!|ADV z<+djI%AS!^8sfn%cf=gT7jo|;70gs0V5!Do>_(d(e zeTr#c!sE_YWTCYtFSrwM#~%0n*mCaUEfGqcPL|x5_XS*X6Cvmt7d*QxX8u^OTNVks z&b$2sJDFu`6pAgcLtZy6WZrkFPk8X`9#>@o7>FG!06pf2RbmI+8J1-H$+y>DdUzl1 z|1Rl^BjUb_Puaw9r>H?%w;8d4XpxC+CuQf3@0mfNRlA}&1+ zljM8;{T-7A`DbHLcn1TGy~$ABN)o_akx0EQZhJPlU~pcA=Hh#M6DCHp?%3 z6~8Er8gR*CqV2b_c$MnTO)@)kg`LV_4wbb&?8fo z7rGLAv_oBfzY%re|6FaTlT~{r^TDH`ah!dBF{>*ddf+y;_g|wE0Ye&hvo_T3(0HU8 zF8_vkhJSXx(^Q?mc_dmW!^x#VnP6$>)mc^7RkKwQq=N7<+dXiZ81-3f-&B~0*}X42 zbqofe%QxuS!Ht1jj$bN-4lp4V^ppB23<8kU-crY0si<2Uooh+HNI2b1-0&$sIuwa& zt6xdZ>zFDRcaAB|KVs(a6IdHoFFZ1P=9)QXR!}1jbDtRz^vJi?cW}rWzhNqqeZbV| z0y`;QJw*S@HhqS@D5i z^%QBWOyU}ch)@3POTfA2g#TFBA$ZH^`e`qu=9sA0b00?faQ* zYN!1Kx`|a%TYt-Z6}pp2-*P({DNdv@PEtEH=r}O2^PQDDUS$3J>6|rf$fO_vuCMrUIG4t?3A`BS*HJYwV zTS3)V>{%*J-rFB)S^vyMq&b-dALlYNa(@7ZcQ@!O82N1K@6oorS3!Sj8lVh#iGIvv z^HG!vw{aI$k^L(R>9bRiHMKWXSaZ<5(yo5$vpdkSJmq3|931HNe~=X4vdmv&UowvmdG)UVCtSXqoKewJjiV z@Y`CTbj4Vy&h@MVuZOp){`~#K`^-BvF=G89zcY@Am>iNve2;{Rs1<`sRU)$;YKKeW95 zu|w#I?MHQ&dib`GoyqJ7a~OewN!w*}=|87gf*~jBbO|1=fq4A`s5n78n4)_^*FZ; ztHVUi3J1MYZ`_aS2Na%0hJwFG91PlWp`nLmtl9CXJp<&+_fpw*{jInjW{ECS6;nli zuyHZr34!D~1&Ip9aSAv78}HoEcGHHH3?uN#J;$9P&dDQW&xFd#hn&MgpJ~oFx;b0r z6Wj07;Nt@ZONH@GLw65WPD8-EzW1$Lo)n4fbF!tw5Ww?19Pc|*t4 zMFH9Bf81a?4h$Ddc%Ku@)hZ;BvaYi~E+*$VX=i;zx1MHYEV=S_Xt&98w#?ykl75kh zDA`83S9fzx@|j})`exj=X_8$2UW2RYqzIMw0@*q>d9~qt%Uneh4nYKNUPW$&jOW-J z9l`dq_Io6J>sz0jNusbvjV%YmFx>W}@WOwzYVs<>pJjgp7FgWCEz#ad z=Suyf5%y~a&Fp$x`&!LiM=b1~MhX(N1!-e+paD_LA}!a_Vbz8D#)V>FHqdwJn&xtnu@FT4Nh z)6;?IEY%f*xa!B(cQ+LRa&_;p@bl$YW|M z5X~0)wJ8|9N7+ko09RRYO|6mv=%NFDdJ3O78=R^-S&H*|xnGf9@n{Ei$;;9&5bE-g zn>*%Z4`+hgV1*W2ZzKa(;f!bbu*YKUe+91o#I~iw;0)H!p(*ya`{6@N%sHS* zw9UXk;VZko1c6URl;FB?$m>oj&MWE#si*)g(5JvE`Hx<@5S+T{5!Zm=owis3gKOBO z?dXut@QJfyMs)7p^zF8u!!*Yv z!}N|ZvQ6y!Zlp;1w#(>$A08bw-Uod%Qc}j6-;+c((d62BzzwYZO@FSV=fdG}c6C(Hg`;Cucb7x=pJ zHUD?i>-4`zy~x|cg0&HWh!)oy&uViC0u{JJqnY@+SJH866rcS7yuB#L+a!&FQh6tK z7lfHQFvQ$J7Bt}7z6O!XAVL#Urae8@=LiTdF^adVyizw2Xr3PuB#sMktmZtXjjt(Z z=-s)E#4B!G5$Y|^Z+(&D`XSEORWD}1jdF1BdYmyWyHsGGN{VZudJyUbd$$=DeM;yXNv-Y*v#w7RYTZz?t1PBxb^2U*D_ty zRkZMv=7W%?k@^qTDBJsfa3Q$8o$?7+11-P6vq%nKzW^QjMj+LR^K_K-D@;|*OXJ|Fs*jRUf z+jDS5^o1BZzeLX@YWgJiVg4(!wU}pDwB|hIh1}_9GC=hPg)vx9z+qmhu_K5Fy}5scj&vb$aRY5_k{3x%vS5u<=6>)D&wqv& zQg8SWsw%Ip|P50cO*N4Yf8>Qx+`P~`_=r#XQ zRTYeZDdWcR0z@h#et_C5>6R%zou)fCD%DwY6t*u09p?D>c+g~S*Bna#WbQo)!mF1b zJ}1C`?)TUAm1nz5c~WAhKf0mkW@cw+UlzK*9I6!LEc7{B$#@#WUo*84vz_}2A?q*D zilMlXUszT|Nh$0MqaXVOhwN`$oYj+~`ip!7QzmS3%WtK2%9Ja7xHZKQ;TfIO-`@{t zrplVMUgi&npkuu>#qkDz&DtVte-lXsKV`a@O@5sizQa&@j-j>FjYtNo>gqUT)X%^D zRPL)Oxd8=1F?DzzA$30*wi$oT{voT)<8@OP7Z=de3}9oY0)m-&0H(!eKZhMEj0i>3 zfj~}_{vcBKs7=Y+-pPq?rRJAp{nSO2;St%2p~aQgq1kpqazZ~bgx&ie%dkvU5;{+i zHtdD97XW|XKmhY3`K6sR2-99*c-eT(-frNRhwl3=9E;D6F%?e+#QmWV92Hf)(WXE; z?+RX}OBP1r=UbsvKA-pHq$}LJSeQ6wYHSGu+_|`wKnAkEwu2;3Hz?$sR{tUSSh2-* zHU0O4f-nX#3WCpyZ`vLclhP;zckD|Mi$#v#AX@4-=WS$r#$p{Ve?Yo@n-j>aa~OnW z-$6eXKA}RAgGwd;KBiF1VJu;f|_))Ta7S1)nA>BKiyI7e$>8kfK9Eq=J)Q zh)e!n*(>f)IStZ^GHo%ND|-_9l@cKfQtCBu^|6&Id&@kiq<9u~+IheA0;Bdq*Jf4& zaEmqA_qF6Jw)C=0o!*mb$Y&&ba}VQ&M!UdXgV}CBn8EB_Xv+aFl5Ck>w5R-=$F%wDiJ37EW4!Sw~ANT8JPVTj3Z|n!C=5c35cos1ZVATU+8IT z=;=uEnKq*~&=fN(I9x;9yF7>Rdu)%_W4Sq~Qaj%$wY|5?{Kz~@dIxS&=JVzEfqqCP+v)`5GY{(s<9pK+klrHnQrPsGYm? z64``DM=*#8Z&AZbj_p4<9J@i>EZPj8>8pF0JGfgC3GHLkawyJgV=L}8=dCGtsxmx0 z%)Gwp0=7q&y`>y@>EL#hqc|jKbk)(AZgO_(g_IKpN?8aD45Y8xmkVzHFlGRKm)R@8{-Hr~tmk?U$;F-#Z8?Hj=36hG zh+0*0eqg*L9C?95zZT`u8Y=Vm=J7m}SNio)u$74kK8{Jo6VMV17NPl24*Jw#cz~S_ zR?Jeac#-JlH%Huo|Apoiu>y-W{NGN&F8?yM{^1^hDxie<6joo2mDZxp{@XTTV2UP zrf`Gs(GsvKwsgPZx{0SbK5lF{_HM8OCD;9aOpVgU+LeJGHf92g(m7y$J`4HtM|bLY zNaAAQ;uLe`JKx*BMIEMm8I>O}1!DAFf=(*pSKzMZus!!wkR|IE%rJxt`N*N;qv?aRd!>Vm=)MF-lNEH^VPI}M?ecw6Y&91}SN2>F$!|Ccoji&bh8P z&inn%&2MJ*?Ad!_t+j)R10J)@)VLW6k_#6PC_05Ny#=gXQ9aZF zskRk4pC-tyqq*d{+`WX#=9JWzXx^!i5KvEP5c78bF2CTl{eu3zHyUcfyTLcGosifHFtBm zG~UiRFYYi?Aia9U3N9MV04SInbsi-}&uDsU1UL_U`Uj9qZLK@#7d(d1d*YU-o)Jqk z)1oIEJG4^er&%eHl2wt5 z9zm7p!G`7SkIS7q+;&)Nsf$xf%S%7Jf#k7~068V&`Q6BHMesZ{PAL#$1+_dl z2uJLkiH4)OMBZ!-A?O6F9MJilIuHmwyu7@?vwN*{Ry5|RRlV2!aU&BpR&U>r#>PIf z=kP!reCstYWRj*y1DVeN4K~id0}qaOy?r&~1UO3O3`-0(yBmGsYE(R1cr*26V>i`X~bU(8@ zy7z$z$|+hbGF%T!v7+oo*5~6HY%Vc{>tZ358iSgmy6q4%Z8qv3mQ2BO?nLtni*vby z?}F^hfk{~)jG!XO3fM3C$7Yt7Gt|i_eacL?IB#P>z(i2S#NlT0=U`N)zpM?T zEkS`AbeJt4!_1+XZqLVm9a4(ufE6=^cakU31GyYz;^YNk@%@M4(*E`i3O-!KUdyr7 zAIqrl&5k)DeJOMrFcVYZj6RQSewAx9e>x zfB26Jy00|NDbJk$DF@D^hh>8Yj>JwR7Z6A~^PZO0X;~{TsT^W|jMSM8jfJHSF#ua&rX1EFGDanwKfDDy zlIUE6=TGXpP)rzDu}i&%thRUlWr2s%jq4?BI`+&n_kYANpkD=Szl=^>)E{udwws58 z+@w(h0Yw8S7^ucG%@&;;u&vf3Y zOF0Gz@8L2r0@#f-icZoucVFM-yAj}*!VzGfUs>7N@&=9^ho|R01BTixh5>K(V?DE< zNbKj@E~#(OnXJuQpRV8Af1)&GL1*CEgu3(}8`JATuOFIJB+O4XoY(s1>Htm$#>V8? z3j9{sW_5@N{H9KWku@RPqttPKjS?*et49e6e_}qmVZRB(ODs3lh7pgUs&jkK0pu-K zs1g&DuB+PcOwqMRelYSBohdJmJ&3aO)YS7&cYlE5`M-VyI?>>{i5Z`>Iwm6g^1G44 zweIe2uyH;5lAaojhjfZDJVfoSu@b==%3v0n2zI|o2mjUdb~f_K(NXVHu?grXdz&IX zUG9;gC)?16hGZ<;mH$#xthk8gXjs2C(QO0lyB{lKB2{9?N^P!&#Jds4)^L<6dUV!A zBi^GM6EU&tz6%jf$vH~b{E<${u}YK!-`w$+!#M5vM=2@)8_+}1nE?UsY)X^Z-fZk` zDk+lOd$VTpdZ7!gnDkVx|1K|GoSoVFQ8KsN&CV=-|NbXvE5Rc-LG7I>!87ukI?lL< zFVc=Dg-fubX|V_O-g&XNH-Ux5xnKR8-u>scjNtc@#}i)?m2`21$d}I)GgBedi{jM} z)7@Y%1SkVdM#Dwmv&ouzrQ=Q>S@At7+r@;8lJirMPTaNp38Kp~x|C-M;aX1M%A}JM zuWrLnb*Eat^KvtZVxb9oQ8xt(Su&X|`Y$EH@`*TB)hy9o5Sdx9uxT-?zbN?&hG#d3 z$}BK46rYT}j|XL+)==+$swE@%=Wi?isTKq8D_maET?K}?{*2xK>edvTV_%{dFdph| zZgxDhU;?W&&xkz_z4v@BA$Bey)C0OrwHIH+CNFeMTd5NpdH)_>0fN#PiJ}(=9m-6$OY}Eo>|2xJ58KQ) z+f{X@(M}pgP8vI`DIpt;ge#Vl6a%7>-jR&3gsuk2%RX0 zn?HLuaw+~dqUV=M1b_uO++P$xO%?)x7nLiiinn=0FUR-25$oONAvYy@d)H6Xw|94U z5Wd0BC7L|N$obyv@ikpk8k964;?yDA^xpA3ISDC_rx*MibxF8){kh8g9GP(~s7~}TJm}V# zDUKE?%^V}+!$%$rA+F4cl^OZ!wdbFRWNs{|O#>Ah8IRA2Bls)SnTVaTqm8%s}BkztLc_Fj^|gu=JT^g#@rRG9luuVnm$wZ z^Y#kPbnj9-=R^%MTNTm(=?Wndakb5qS!k^6_AcwVj<(?jJ$W09K^;ElDl1cX&;@Qn zWB};_kBGlmOjK$;*n2PjV}WX5feQ`fq+HO83q9nd0?-TWrmfz~_A>~)$LxLR;A8Tq zL%pf6@0j1anAs3K8o2-l=u@6x)2|C^^PGkE@KYY49{oaFpW*VP&t^O%T)Xj_jUzv= z))4v43{g}q&2}pkI%keY@7BF6_61h@e>}8t@uEX|#2}8;Gq?ipAGIEYdv13ud(~Kr z`e~%fhGEy$VSRh4NHcjNapAs~m1BrFktt z_1pa)LHJBF$0I^7p9SGA&&*Jw=f1aw^}pK&7xc2GrmAn&vtKd*>A~9UY+~J5EOPe$ z_`~2&Z$i38w$OzG`ao%2^fluddMJ5eLU`wF%T~f0(VNWzor6=CFp{0La`=aQb3u8Df$4n zP-3O$rvKT)^MTI>WYt2j-4#-N^SE1RqJ3@R7YT17uJmTmklySCQdGxLKHhn=a>zGi za&L3}6x|r05ux^zmm5FwSG4+#RhMO5(vs7juQFv)@5}e;Lrf=!9U`1fc~ZHanpf`; zEIUv9$LHLH9*|6H7`#n71-9ys_i=jveddGcP3?^HbUzaGh*;5pDMYpPnFH%i@a6TzNa9!aELg)I zQHgZX!wHqL@m!~D1*|Ee2+p0<-oez~JG&}Nb39L+e@?`8j)?mbq^}~z%yWrG&($c~ z>9GfzYJ3^wv|5IDH=l|>U>8I8$U5Q-BLa8&JYjspL_Mk1{y$=S8XHa3j%TbC1gAX+ zHANz`5F}Z=&+;FEr0i4R;f>(U`5Y1Hj0K_TU2=MMNT#g(7=;P(F4mIMyw>_c{;^ha zZhXL8kaV|N{=(ywr)_!<$i-}>lMGI&>rA=NQ#l&04$QcKqWTqX->xf{ePIWkyY)vn zmlt}WWZy`kF%GHvN)lbLk3;D_^-jXZq{nM3!GWEKaLmacRn4ruX>)W zn?Icw*Fw@dYuOgHg++~7Y`^_#haM?y9=E=BK;mU`z1uxUpH3UTW%{{8Ld_vq+oxai zZvG*~L~){qY_=QRpmi}vrD9c2_!-XD$jh!>!tu6$3+M2fYSmZfIB{-1H-(%D8Z*T4 z)J;!&7&6Kl4rd<2(}i#H-gAZS*31Wu(+bV@-00Za{CK-v)2s%ei4(*QH|D=O%t_G5 zQnRS`!{7By$DU5FQ&-Yi&68E2=2-bZp*_Ez_iH7sqW=bUo=Gk*;~Y0$Y+PUWK{A}B z^f#M=H7EA1M#HYO#4F?OTCu%#GrXU#=R8PjOrmEiFxqmi#^v5MvORN$&5yPw*|)ku z&US^UgnW1JS8WBK6im-g@2C#XZ_1;WO>Mn7uv6>O9%!$8W?}f6$s2B#^q~7!cr8Nq z?%VqpJ)(NfWEL_MKa=m#=bY%w>xXEg9S}{_2#l}Lmv}O-;`%6bQ=PM!lQe0&@@1Yy z`4_rcEs2dWh9`uTFC#jqrPtRe*YSEdIVqQ`p&%na1gRcz&>7_lbS4+5e^6VmV{B6W zO|(6GH>X;W!=6{mU-WN^`I?Kn7T+YFo5?8(yc9(WgL(Wd0w?l`r= zz{{GeuN!$N2$vvjNP=d%M@t%9Y-5yZS1NVEXn7% zO?$TMfBrVWCt#mwNT!^JxF{3+l}q>acsLu=*Uhhp92Cs^MY}%+Soe)tc>8PN?NAI{ zFo_n;Tgc4?9(|W4aCXMGo6QgXN;h;>Y>Mx1{j!%u^eY!7j%C*5rR)CVwrTDHj}?u6 z+wJap>IJ`^Cq6Tk`mg%#(;1=n&oF8r$F-BP=^&H~oEy1ywhvg~!5sWeeKk&x7vd>r zU!_o4ovQEp1lF<>JJ7Q$1ky;Uv7W{W(d`d6g+_upbHK;XIP0eY-$$ z$*bqBy^A24{G_$cVL_)}nWkyK%2~nH)MH%Brrtf$_EhPTSAw(m-@A7)+sL!j;m5h6#*)h3W#{{Gm>S@Z9CBKk9Z^+cRv{x( z-i8$awN~quSe#GAYxlpmWp+!u2iN6D#Vu(i274FtHsy`2uhex65eM-?vhma3KJP5w zJ3&W5=FnZ;^!N1YGx2U_5bhC6w)*eoe#)it``!39Ca7*IuG^>h#k3(uc4$mDn6Ziq{P9Js7H7I>;J`VidT_Q?Y zKBjJI6i_LJ%$JblcsJa6W4MDW1=SC$<2O_&mG?kx`TNP43^BmMwy*dvG6^{X)P(mT z0Wr?!^-BLI?F0RJ{{aFo_vJfrcTvupeEyJN>++R4fyqV6W%4;}~p0}u1k_PaZb>x49i*tHhx;&`9;9qJ2u6ihr`aUF4f zh^W18sXkO3rgDe~o6yHz=x-cH2zr#yRFi7!?}0huqBtHa^z4%RuEPVL&1g+zKf5f1 zXAXTR1WEs*xD{yJhr}Vy=Q|Z#6Fo@yyyg3Gsj(|Fu4eY5&NMf+5@o1Odr;cmq)e733%wpkHiOj->*(UZSVqe*k$ z@N1b*pK$y@n)wkA`*v$MuXxQfYW%X}6ika^bN*36;SrvGs)qYe=kkSREaBrC4O#$F@$>v-P#`3Z?%w1`S^E`vR%;cn#fj;$ zES8XZFES{4w5g>pHF)CW`z?5R7Zy8;4!Eunh#foJ7<^;abh6BbkPlF4WsR6P{%74h z{=dO#w~=c?=}&88CjyPS)*ZXDC?3-XVYzP2U#kz1ZrUR7B;DHA&T!pUPhxTnBc%zT z+B}Kt*&0`xQ^mLS2&Vo{;%N!oFS;Lh@3_P7n5lRR^V-Gm5o_Oisuvc+A$xxOGMiAo z)qqSKdA0NB{>H2QWJ*-e@d{epvW}y6x%E#EE0WNB)_fpRaWzD>yP!vy(JdsdQ<65I z)s{<8Ul#>m9oO6`Hr4%R`<(Aj?YO*qz!Gv%Eg5&o4|_^B`hWBB(&jhc&F38iw?&s( zvz%n-o%{7^tmYApjF4>5Bl8)hBAJdJ-+?vMP)$73`#BQke$kLIN>LuJMQvi7!rpXp z0NXht62nHme(@TAtcT5Ig=S9NZEenU+p01me>joOewFDD1LC2pWQKZ{%OG5Se`_mK z$EJ|){_zzPyS?xEx&K2t{Ikn*CD_V+U-s309<-hfi@&C0F87kc?j>@aX7m_oD z=F>Qj3)em~OV~A$Uw9oy4EWW|(z{Fz2Y+g;{8QQlU3>;!fB`S3QlIE0;~cYUKZ|~| z@}X=CDN*vOYqP-Y${vf_Jal4l^d@7vF#!L6GvWu>SHqV-37&u-e=LL6O zWVJM7O7zK&#(PXoEllfLjwu+4?pJ!H^riY{Y@7agnl;JoTA{(HDvcw@iRS0A+e{|k;SYnz%Qo7H{^DTuhIPEyc_#$zkOJdyuf$6oLxrfrOq zECgJ=xU+b#m1cPz`*N*5{5~F~T5(-f7rLvi6rlGvy}uqf={O^A9IDhZsKhDNUsh(#<`YSQ@5R8^G}p!*bd(3#XMKfe>_LTJlxGs zX|0xX2Z_ylcZ)UA2yAb>joK@qz0@06?00gomSR#+Gd4sR+~gvDv0gH9+2uyZkNg3 zX=4ujohC9$wzqDrD!@W*TNYYeb6`3h{_Nd~k1cAvEx^3;SK(c2@JBuOtyAa^|2d&Q zLFeD>0r=hUuKNmPRnT+Qxut#AR=@eafoTv}H>**9p;V24n0!Va!3=lS9#%)0f?9UR z0!OQF)c>z&4mfY(hNslg|Bw1*jocpv!z`=RzAhfre+m;E>ifoFG+VXGWGO0GiI+2x zb3T+%i#2QPmbanVe6&1wo%<_Or0%uQPLxZ}g8jF~o!5;t>y)ZAJI!6hrF*rZ4??`P z$7xV?G^gt}vcVZp$;6z3R_ETIR-25Nab0*bm^tWVa*vf@gOcds=lB_0!qOOw8=w)s z?4o!JT8Ly7+h3eugpLOipJMEaFPA=#`d+myrVv(YVd|$`GAevy?CrWI_888=@*C3Y z9?rbi8f6sGu%A*~8rujh>c^qRO8pC~1)PZN5_SDH zcl{4fDxYST6~~WCYX&yqtdcXgI+E&73_6Gvo34L*_6bx}o*|eEYC6TI{nO{Z7?WE7 zCilRqeW^fjak^RyR5o$^?vWw)4JY@Pj@+Lw)P4Jd|NL53Q$#u?))(kIbTpzjzRp{Q zuty0a)QU81UVWWgNRHzAQ; z$CRL$j>_YY#=(wer_c7M4@M^7$$A9^xg)HK4aIYh-xPCwd3HhCtTyo!YSF`l?@z$* zhVLw+$gLwk`iMs)5S!peM=M~COkifC7AZFxq_q%RzYra*Ez(0pvLG;g|7+MM6T~2E ztj)SP$em^;ACr&7=zEj5dYQh8?v({k zJNoUKa|?(bWfi-`+L26c>vkL)zOx8!&ZOG@N(KCc3#wo*iRh42=F$bscZC)-sPQZ@$5fBy=7(7HQ(v&m3FcNqAsedMhAu zFkWw5tU`Ww&k-*_Eoa1QCxU*q>Tf0$! z`IKP6P*3{2<0No_6PAC#qXbxC%^vB^uef@au%{2vJB(J(8$=Kf?)qo+?9}HP{eOB1 z%bd+L0X1j-!%_^*^_rT2$uKxGxQNg#a;^H@W2T@Ku3YNbGyK@1z) zu1>J<8~*shzjm@T^8lB0h|xQwthyBuc&j*5kCIFb`xS08$bY_THmi0_U|%1PwyS<1 zb?If#j5fQXXJ_ga@6X!oozN(=#W5oumX(o#rm4|1an~z{*AX&rcKe|rJ^vWI7KjKa z+;@*M*CtL&xymLp>`IszYUN&qrm*^;)Qw&4Lt)@(pZOEWYpH?ZrKQgmD$igff3Fgs_Jck!wP1d=C=EmQvap+thTn+t<_iD#PGGmAqJc2EwNeJdfZ>9 z{XWYhJ^mtuBAU8XD)1TJK1(7I=|30f@&}q4_t8 z6~CgL*@E_YI?3Y9?fiTS>?znzpsfR{tE8kP*|0p!z&T=wC`31R0%x=}PLodDp^r@~ zYuo39a|>pbZr8byN9Z=MKHALCFQ?=TT4+duBXiMn)AL{25s5h?^Ojj-p|+enNgRL8 zom;6OAFIIn-P-6%@H0dqxxXsCbNO(YkmU2&Tzavdug}h3?Sgv~OGSiv3#I1t9WCXd zrK2m#)__^>$N8wAb6KKx!8c*D`J3&L2klxOeMfTVO66+$=RcCZWBMOe54;Ns+)tMJ z#*ekOuW48M?J{E4oF}Ul3DSKt1X;2ji?%bt&uDUaaVynR?LOs1PG-RM3rn zPd*;XVNci@y35so1(jI!dsLYvbbW9$u28enmBsgxZQL>A)0sylzuk->roH=*mZzbk zpU-mJ0_o0IXZh_ArE>?;j}tA&PjDS#Un)5u6`P9};~3A=fLq?5Tafz*r!dWp7v%Z%Yw|46Z5lD?zc^&$*RXAFcP-%9GI zmDJ2S(%lC?4KpG7$kX)@wfpRhmywvYUf!{9OF%B&itwYScxP_X3y*n}X1M(@=Im|g zVClQXh&**ukan_m>!*dCe>FulYa~zC-?WraoT?X?-}#Da`xLG04Mm^Q88$0B=lEq( zRJ6)`TD|?^;?p?oO^|VqaTYc|PyY^FXn;3Qp!2l_-j|!dJ1A`e--r@S62e1@|EtnZ zJ~KD>Ja~3yZ{jIbjE`Q7&+6boE*MIZIFBN`;eDIE?Prm%ILR2f$mklWlI0Us(vM-0 zQE70PVOw6a5 znEW1sGwFw_uYMZvt34>?H==aDKin*r+=>q#rm%MazJ^7s5X8Vs&&^wTo6d>U?k`>F z5!11+g9daehu*+MduGTNTc&rbFR<^L({6U8V_dG3W`zpW2ZxSSV4bvw+XtVv#!hLn zvr%1!&8Kj_d(7BsMwrnw(be;Fb-oDU&1jc9p;8rPRTb?=&Z<`22-&{uak?e;vuGt* z*pI7|HExg{sQlXYnRq8uNAWwX$|hW$!qjy-*2_ekO^ctT-i8`iM5*W>-jU2-ew}4_ zzCQ{dd_#L+6fyVo$I25&Z6c#sPxq!^Nma3RRW;;E)xErLg}^NV7pwdvQ6bl+dpsJ0 z$x;IZGeSb3s?n!(@fBZlclWWUXP~w@O9d%Z1xbQXQ1)d;_ChGmz>GKv)y=%jh*eUF zb&0i~ZoB(1AL*}z8CC5ULzO-DpQXY289RP7fGaroU4(t5)bcLckf-K5OLFU{E6LgI zZS}s%&U_UlI2ELRB0++eFK>tBzkJzBXrvu@U457GReD&eml2p?<2}cnH_omm-{n_R znyp(u(dFJ?_mK4)oQTYjXnK3gvutwt*r^~<(kGRVs~`!D4E<|o?m>~)@bmfMR;-&? zvfI00&%gAK;3Aq0XX|HFFTCy9%xzztgEbPF7o^XlY!!XI`pwgCd}N_jiw7~v}NR& z1G!}EzjFz_>VINW?IY;@5+a*5%gn6@MQZrj0Ia}@0+(0&Oii}^Qg!#*_1KtoQ!5zn)Du$p+F5@dt!=ul>3&kAMv;8y>ElwR*nX$}@i$GnV+@k{CVH zML)~SV9UyV^`W~6Hv*Li>uciivkcVy{-GWc-0Rj4z+DDb`+1c6s{r#~0^o)%1 z%1Wvq6vMFxdCPX{rK+*p=cV%I1L73+Rz9Q~=@|+GE{s1Uwa{;toTDGCdC9Bz!DeET z5bb$sb=7~9VAbQa{ib52m;TiY3by06k12Hw`a{sPd*`KWr_0TisQ#+6iD(R4grb{iYAUj=ZB`J-FHF9n}91_OXWg-HB2faY&1wiVrZF{zhc9g-%)LN zdv_#n`am>Bueyo6Q7V2QAqcbyNZsdj-HAv@(#8;=$i}7KlxUU9@XTAVi#f?gp!9o; z#gjAnLxwRt%Qau6tKE99-s?37_N@PLaeGe;OnZKt-mR}JEC6gI^w1-uledAROePjM zemj}e@uBZm*vW_O^7uizZ7g)44OxXAMJy!~Cd*543Ri7%+rn!1dtRt5$I8)lq{Zx^ zrO!&|#46V8yY!xPoH~?V<03}}4y*}~6&s=tJ@vb34VAm5K?HJnG9s1^;c;_T9NyoM zKf)?dFp|m0P@yS}rJ0`D7FMxl@Kq7fybZ#P&Jp9itJ#TiI z8rMlN9SzFKKXtUAZo*PvF_f3Aec8@C9(^;AluV)0WDA7Iy=Xm&!U4u z7ghY=MR8E(thBmq_o_Lpc>OS#iQq!eKpDTaUTYMBrIgBKkofP!G0y`Pcr(!mS%m^l zsjY`Z-o4@{1iFA=AW{+2tRC7nZ@A4_3PeS_en@=;VxvX+wWRm!hka_B3M5hcI%QuM z^bF6_9>2OollO_na^{Wpn0EUJE=;qGmq8A_G78{a^ z+d00;`>N6oXatTljNA0KWvDfT9eOq#ejIl1cif4b6wRCTs{>S}HfxscR>Ah=3H0+; zq%LFKNl0^H^j-SA6=~#aiIXn$?~DAGe?&8b&`-gVppy__s$>9Y(O1>6?@VP94gs!+ z)cvbMI^wrV9KFb09NX}(yQWmTySrmUUFaqL=T!b1`^1uAl7{{f&)l-Dnt<$%qIFDx z27xl&JUS}Vt9<^0@)%<-)n|hhnh)&22XOVm{CTSJE3hOqUuY`a7mwPD{PNktLTbEdJf_kg6$=1ho9>$}N?G1|;Z5Jpcv#N*$VbI+hPn0g$!gDwcCM}xZt7pT zb9xif5F<2OlD6VWvt?u#_CsEjp8yg|^dR=eb+7Du_%bD#R>GIC7c>X}e6=`0M zMl1bQDY>api8p>YwbA&Ns>8QRb#x0xWnuIa*MU=G%uyG5a>Oxp z_@XNj-(5iXk_;OV!QWeGG;PGRPP2!u zmUtC{ZRrV%Hh`q_Dm?a!vX!Q#MS&NVrBXRJIjjMX*uaia-pkbdAt-&{{08s+7`eRk z1Tom0tjn-#Xyl0(=Fu@;2^fWu+&ats}mXv z^hg^TC?k{I+ct^ZPnJ?1RkaA5{uo>j^#GZ$_%NqNnwpy4=3^_x1-UHIekmTB@h^dU zRfNhjGXKI5O#cmi!%}quq{`RWsC9GJH9(JcN&wj`w%=4wLOtyIsW|J7CN!0R%ML(l z0g?keApQuxK_pvH6!QQAzro>0&24Sq3~Z&CN(dM&2vi56HQc(XM{BQ!9esT04bw)w z*(n{ipmQ2N}!sa357pWwu6k+gs5?#JE!QaiTzgIRuLrR4;{ex}Z%wGUE3<0Op z2^edtBgz;gWl63yc`tlJ9&qwxJ4Ej^+HN2Odchh2m{!Htu+qj!iHsV*z)6z3ZM!lg znIe;O*RAE&q!e*{@(LS!J|j9Hk1l@|}!9Q5Lx(yp7I%wg)| z(P1>++^dKD@Q5#B&j>dn8+}6)n{G!qtUnYW%DD1#I|%?v>sEh@Dmk|F_666pQPVYU zBfnTdV(9Y(RRQ3#VjTJF$4K5iKJD!6070>L-n=3;K>V?8(RQkt`aK{WU3q1!lcFZo z*0Rwk)E=R`8*Df5zhKXaaN51{IW&B1Qe56RG@wK#`ItmSMeR+!LYQA(u6L`>0kC&jWMn}^sy{tIL%5nASqY2hpxo4X@M{jgdV|5D z!@PbmX+?$1EK1(z{z!r%$0}6IZwovjWI@4LvR{^@J%>Q8D0g?w7P8YSyU$;^iP8|! z1Dm)rr|cSQ?dO!PXP6*tc;(C^GYD?YU{XtChZ)rZrHbV1f-P zhQf`OJyeWOA7cyFvnHntC?*#m;irz`mU7i*SA4R--}~$lBCO@$d|Lhiscc zY>46Or)`;W;>{(JKUAKrjXKyTS%%Twl^4_>-rJuKQtNxZsw(E5gZFka!weJ}lV0M2 zc~ubeE!ehPxxqyX+Oh&*a{&>+u5q|1eFN=$12^YARy!0dQ3NVNF*Q))L{yV2TS~MB zsj%6Y-W+S+r`%?jRbxLZ(_aO7Y&_ksF;D@c>l@Bs3`4UJ)btFtu9adX47tS76OJb@?PWw~{#m-Sjqm#E#>*$SGlnBI3O znK>96i?W?Udanu?2tcF~{N)>fWq=zPzNEode6f?NLo;6OcC)siHQblhLKL1Dm$?L+ z;N$;v*qsAO?@`hG&;av7UPuq}`3*(_S$3}b5_)-pF9ymA{^ekd9i?3->F`IG|%8)02ghC}c z!?T0|nTKG-sm4h=Ryb0$L&{Lz)iwJffMcfei#tzLbx+DKKoPYfe9s7UdME&ix$KdLt#=fQ&L>29gaz#LkB7$&|6Y|q0rIO3sZm3{pixF z+svlYjf&=&0JJsBxnpO0G9Dzb^}8GiURb z@BCo|0h0)V6sQ@f!fZ$K%TVkP5e}QCGT90NEw&+rJK}4!z+_UwVi-KIAg%0aMcy)z zyvz)U_|WYZu8E6*glBvp%Vpg!?S8;c_f<>slf}Y$WDGJD+4@TDFtMJ~k7tg6M(R+} zALO0?TclrDEYGdh!Sprg>4%q|4lFDzpxaCL5QtvhevE2rYxB8jU2Sh}<{_9OMFW>^ zQ^XLOec8(dH=klQa$y&b#zlr>`G9TEX|R>ed}=>(?9WYrAPc*sKf*2?H`r1zZ0dx; zgZbM4G`mC%S{jpIkh3$#c0GL#?N=#l^kPRYp`|8&AZiOlX?b0-i^H(m8o?v)s{VeX zb||hF*GvH?v4HtYy2X~>O0X3EfTi%Bc=#9(Bd;Hnsk9)FNdNLUl1j5+irlh%0(LSb zc+`fC0kzpt7I5G2dJf_pB1+j#liJ_ChyQq*Y8#NS2#*2`_wH#fPKlTB3%gIdUZZ)o zLI7&-v8ayj0z7cZVl#tgLmE%9RGmpOkb#|gG&j(Gh&+@4qW$i6B`67LkMdgO1G~ry z2SLco=U&D}+P4u&z-9Iv$?c_9+AsTe4hGVp;_3=nA$*jM&Gq{D(x;OCf$+6AmErMt7 zzVILTzHLfJu@6BV?zK{ZfDHV(T#YXS8U4+qs1;dpwA?P4_y-^0@RM}mKbgOmN)>~O zrnY`p(v9+XFJ}fLaF6#v#cW7Z_l>|t6ip_U%Lf`rPKI&Lt6#AWMKe}U>Q@`%PW<`d z*Y}TL*Py&%_OdVu{*ViQ!EC*DbR#v*fY$gvO>>>pvW++LrpPg%ugJ*Yn#apO zqs8HF_4#qNHXm;*6+}22PEc8bzrAT6iIU0WHz5&Gs8dWocDST)qQ?po&O5jwP+Z~H zxOpHJQ0bf`j#En?)!k4pTT-J0IRZ6d-Xl8&Ho7CK?(Rz*!{|?3P|VY7Ck#-9$>xm>2`xM;Mxb^j_~fK z3wG_%<$$_rTRn}PkG2i$LBG~C7mjZL>0=64jq3OZATz$HtEKoS{zkP_l}386`)%#t z=Hhd7DUCsUnw7tJQrLyEOG0_W3cv+b{^NpUoU+QF1RpP_Ca}ItWjx{dpWz5SP6^pQ z%W4K_6v?)RPRl)*etx|(CJk2wY6b)c6rJhRL1+KNG^S88kKQwCQwzA{=H`ys;9@Fg z0*j9n7!y}&QT%HlW_+dh@?j1W9mTPI>@F9VlS@zNbHqQ4uy8`O$`I$LhheQ*&k_ zbg6LoYt~>d>gaEERU~A?wB#o5v3u=3$>Pm3tYv4M|NbqrxxDu^pQK}W_Z#ydn;(Dj zm*02#(ukNq4b;x<&`+7J6%4lHfb0)spNsY0&>OPjgDKtJM)?2v{oC=u{a^W2P%o!Z z7%jvYnrTr__PpRnR82KJ(zn&`{f05J`44rp-(`}+gStJ{`oh(qIP1X%qz?D}XV&r% zM!Olh#kX{y3F`VwooDTJlPk1xa6!M6Bj`82#{|Ypv--hlw31Jgab%X2j!dObwq$Gs zBWiMH);2cI?Ypoxq2jKCTB2Iz$RR!RXfGWA%3o&{uC1!g^R3MKm0~ZQ!4!+cp@@RT z`!23G<6-v}n}hiIOuVYw%{0@XQ#}jbY1%^$qf7&THq6EsPhel#$~@2H(nHa}i#TX5L@R;^fVxSb;D z^snBZsI*A&99v&s2U543b6@CFMzPeh`(CBgXbHG@^N)-^I|-~cX}#9ztWlLvY(DsA ziM7qMOZ&e5EJW|Lz}cvMPCdj-zLbngHUZ*o#8cR@oQkrZnpxIfMEOxS^@7d!O6QMb zYbl9FDtD|nVLq|sSHxa2c0ahkTW@C#zJ3!t#2PIsZQ|`G*Z=MPX)y2FfYO#&mfzgi zIB0ncz8`dJXQ$wq`(>0AhuP9RrRB19uF-{WKE3;`n{;}v=_&2AtkdM0%|iuxBwo2l zW_6WY-cr%wM{0|+n{a%qeL?rm?C7upXXJv-)sj&cMqB5x%SkMZeuKJ{n+!PK-7ST| zXN12w#f}6z6nQ~jXSwRg3g{EWavfz+)|y^XQjTa_DZ0q4fTa9=_}ULz^XbBtk6c`%OBHNGpH@pnrQC2Wj~_J!-``G@>TPNL=yI=; zvo0A2dmK#CLf!8K@NZu{>GF`&m1t~Ud(yF-xnQNWTt!8hfq~!L3c>3wrTz^ALunf8 z?tS7-&d?{u<)U&-NkdKLM`4{G(f?WMWm4}!d+A~p*yZoZD>mepYPJ0Ka-%zdxGUQR z&!b=GgoTN}uGCi`g%r&6*@8v5Ah|N6>h^z#b!^)_S6+{|w|{@<8)AKFV88hPiHqR3 zFMR$3jWGuI-{b_yAqa}Oz$-)q;w443{{EkV7Vk10G#?}0+|4N#BDtCo1*{Bz^@$kC z(oje&QB~r%F#Y${b1~|1-Z`^B&fj|0ff{stlv-6F_%Gmg->IgI0_3uZhjK|7jzWId z41tgYeWslWyREsqFp_u-$m;Bw-H5_2fO;zW|L!;Ywz=>iAO!I-Xf6Jl(B-z{P>VaB@*W~%j9#h)g9e_SWmJ7nNwuf zyC6UrG?#u5@`d!|^lz`8<&UiHZls*m_%h=H&DfODw_nLos8106Uz``afk)5hiEkN2 z@cAUe{D$~$q;=&S4?-^)u{%V|ruWz-@`ViHhSH?V@5KlfWaU5gpO!+zzn=PSWSq87 zxycFY%k%Z`6Dy9}P%jchN_4JrWgz?kg52PMwdpt9rv9&8bI$Ww zohWYHNi3>$yluI}qUh%C1fu~)cE_Zz5~uSn(4j6CYrdU|)56l14=D{s#Tu1~QF+XS zHC77D1A6Fc_=@A=gCD@e~$9WRNB1kISTzZ)mBp z)QTM~r`nFq{qE<0)QY0t<>eUF^KTYlk*%iIzFhT98E9}t7I#Zd7v-(L*tNT1wJGt0 zPn%|(#c7`qoN*c%{!fn5u*i|QYv^q8bjI}ul?XE>4!z|zsZlXH9dr;{ixJ&kuzlvk zAr<~<>%|Jw^FEFM4PVbR(Px;_`|wekQZAle80-(|9#?%|md>bm%LDH;{X^s1m)mxW z>K2bd>5!@BS2(#7MQWuPSy@bHx^!*uLp@fO|wECe_CsG z+EOPW`K`ZAm_Kwj0~K^!jo;+TBJ`RA+3cT~n%vE`*KHn`@y24D#C1-CLhn=sgVW|9 z1`cUT-7s+EzOXYsEPg-3bgPUF_;HtW)LfO&1QEZP+qcigr|Z$r59@>e?#lNYBqYx} zN&d&q{g>ZGkDu)#(R(uSbHsMUMshY|S`g(d5m6f%N zDXL&AEWSE95`?7(z1>aBvGTZf5iR8PKv%xoD|nr@>QHl2zss0TZq)g3!gR^Y)MWie zH`ysD&9P8=z9GQs$o?5uR?v;!0 zC!UX z;TD(#AC4ARFZbOAJqB2)y!CHKvUs0;2d)eIwg}xbwj}9DT|{dsv7-Iyv(#O=S4Yj> zshpIM!2ZI}WLaK3tdp@GnL9}33Q{4NWgmMZkx-e_-}9{r2F2(G>h!v6ku4VTCGoh5e%PIB+X%W@y$PK2%IdhEXnMzL zv1F{(;uSUoiF6fW<=If|^=xYC<*>A3M0?OoE1+Ens!{6H%*xb>*!ctQF+u&seVwiu z2m}&lFF}7!Oa1mgCebF4wD-FjAn_UfZ0|KQ(3^g=4Cy7|eooj#X*>A0exH?+Ny2Tf z!=~)3Od_|+t5_Oxcwl=zKT|-$MY)vmb^@DwaHOonPdJ>a#;B#ynD~t6kP{A%zT`mT z#&U)7=Z@wWN-f^;Zx>pews69YK4uvL#uzl7wBB1hGf=;+eS zPVSocN+v(@pQYFWXeB$e3dO9)&r5bQGeP16#ZND-mRZAX&)|olH!YVw|-ctSaPOU5iy-wffb{-(- zJpa`z3Vag6bgpsVjq|6@%Geo8)4y=kUv2Wn%`Ej?w@$k4@0Q_MBmSAc@WIy{v0RmC zvq4qpXa2^acKGIsUu6Xp=XYJ=(uRYj!hHh6itANnEB^PuE>lpIowmE5fMs`SWHzRKqcDU|qxmt(0TVuJE(pvkbJAD^lgvQVG6v1Yz z5PL-ehf{UK0-p~y+B4xhfjI?K`~`krGshX0J~@x6s?n_J=t&!E8tzr`(|&wcCEg&X z-1+csQdG%an)s5W$)AYg>ogqK%D|+)me;STu$X>UzF)0bQ@Yv=W+Y%{L~iooa$lzW zOJJQA;(M>i`umnaksdm!CT(097zk(Hf=PQ@*&OAb7Y9$a@9uYEw#vZR=#wQy2XTkZ z{D>mVe$v@$vmY;d$ng_4`Ob!}aNy<@FxEy*IfljR^?q+P&&Bwc4%f@@8sPis*ze`J zWX0IPEpzQ2?*V)8c|jgM4ymH4U2dm5SQj|-OISGEPdVIl!0wk%DPM`NZIMjhT`(_e zkUl<8J`rt8OWg}I|C%WfABd>tr(NvWWz^fWQ1wO!^%?o|-R6-|rm9X$dL+nvP1yJg ze^GEf%3AjIJO5o%*#2|4jNkNK&vd)$veVoBZ_(G4hfCKA_T1}|=M?<$J6FAvBNa^- zA62^AY9Owx;3EnWmlm(s&ADv7>j>#D9!%B_mg~xMHr(+MWqaBDvDMx^_*Ga+&2X9Y z;0fh?Y^LaX4z2LVlROxwEuX0%p-W290x<=44*6kvQSb8weDZ|p_t?mD8A2&I-G~N1 zDCKr99gY_pq6xht6>F>I@*91JdzJyqy%Uz(dze@`0%xsD?Vi45U+r)OB*|zK#-v`b zR&e8;x}rBW!*o$*?s~9AYt^lS_K&B&-+SrXV`Nn33GhEPvLLy^*)aCe1R2S0Df`#_ z=QELQbHGM=Y>hd|Y$a=!z?NXL+dtpx`>waa115;@m$lqnl-NtXNGcWxgE-7pQGo4i z@-rNb*NU*l$Yr-#BCMAMK_=h!*>eqzE26PNxckqte1mT@Y}@DnFmssm9z5%2T| z{c5}4QUk$%_wwGJ&&bnl8OcZ%OIG9eV|j}e>4)mooGM>%Os~0vhH}y`yim?PG#2=q zqw;VPU*xyHSbneogH1r>cf$90;FIB|k-N*tahj{wbD+f~KIWHsKD>_ZpQaNFHkZ6Q zK^H`oAJ)xuyf0kp4QEl?`_|T0kk$uDoUV(1U3Qt?-4EbUF`m}fa-_=(qZ6_3l3DN9 z{5&0xMNh{=ayE=5>57r`pI&yIkxo?_#N3ibecU-t)87=iFdTq&D>t7aQ+y-o)iOaf zBB5hGa9`!efN54qvq^{qqGFcmOb;e|ikJWuem@-d&N1{coJhA(FRmFdRUYv7{M|PA9*%NiM0|5N z>ztM+!_e@FmM&SgpJu0d=iU@~Fqf1LjS7wYGaj!6#nn0YR_X+VhliSt(U6hj~sPKqf{;dj zwh$s2w?h0gUwUCHc~T^$yWZeD<4^(LfKoIUPLqlX#IFI(ptQWaCbxoW&6!BjS)i?d zj?(r&;g6KkN7XY8piFXtYwL4B0kfd9k>JB{fdK?zl1p(k-`W4=q?(5u9-RAE_s2vOx&-2Q$#+*AWJlS&3r$0 zZgZ}q)7g~2Wn=7V#jmq=^UFDcm*fifO}g&8*=zJBWaMT-OgPQvVyRCrysL}%&I_N9 z+5<)9K@2E;rmO{)szi@K^;xsG-;U^vKyeV|Y%a4apZls;4p&ZhC7ZX8ED@nGv42fFwCfeg z$+`MnGDXI9m5BGHg&&x7ZdCNmKhX?$Py`dzk_#I=gJf}fQcY*5x#k&BO{eXY?enev zN)SUjeH7TCpq8D7v}qd1PI$VAuw?nX@$+K1Kr#0oH}^iPGeV#2J!UOJ;8O;32U8IP z^AIVxRRTgT^i)Qgp$~L@-+e6lVJA|S-89_@FSToJUVaHDp>k`uP^NQI@5j9hT&{FW z=T!u~>Lwc6Qtm^zou<y;2u`k1@Rug)jY__dmr}INLd!~iS9m;q=O-6v4qesA5 z&ynvcWn_hj-N_6 z)V~23?w0IVr5~}$Y2N!r=0#$kEtAq`Ywb;p5psYt+RyTI>zibH;u^2>kUrxPT2@xP zONDFBea)yW>Q+v%q=$EtV^M{SH^YTvzb5eJ>=tykMN|u&4|k!njHdT5HVx{C1}0cB z-13B2bKsjx2PDL?|K`v#fNOEcWoqPrc;nj@l*c3A9UIwAkDYAJnc{OMsPZ!hIitA3 z!dvDMVe$qHo@{#&Gp-Di#XE%=hWKA_*=pUC;iTN&Hk&?vYvFjq`;!l0Fc=`?OL3TN zM!Y+wMFTEB^F4r!@tNmSv=|a~HLMZN83F-3f>mGxMtxmX{c?llBkI(X@&UkRs-4|? z1J`Dx@=5cKH#`HzCA=HC^qpD2ICvR3)$ZWRfDpKP%^9biQ$vN=h*qwGYW$BLsZ{Lt zvZY^kozjo<{Ix(Y7ca${kWCiu{B^Y$C(*%Fdn84nK#E?SH4?p}si6UCCT$&j2XI2b z9~t3zQ9nY&5=%TG`}9Qc=3h6Rcv6q={es=PQUcg*tiC)M^f48Ek~z;_F+Z9Cb!j{$ zT~Kqvhj8cVTd%Exnw9yf5=U@;T}s>Fcu3B<+cxI%&&wn{fK0O7^u%eN2EI`Q`se?a z6dw+~k_V{1!M?uJbbOj}+Y=-A?o=u)hwlrKGB4}8w#PArq(cc;REB2AE&MV%Q zkPGA>m}YDt1hXKoeC}gc>T}aTYVL_y9z}}{QCG|_p5bda`cy~xYtrJ_krs#XWB)0@ zaXC0R2xvc64^>KbS}hL*z^No=95%(6b*@>cQyzm)=7lkPOqkA#0FFk4co2mtXd% zj=qNnNC-eY*)`k9ASnbVuB%t=MxTzwy`C&_1U0u9Jw?-~PF;IzLB37O1|)RN<>-BQ zhl!B8Lm|u&K~fS?TG&n~;k^lRN0a^;kZi6y<_A?Ml&hQDg-0IHDkqKN*L<~)d^0;h zrPgfMzeRxrxV#lMtyI5WWI-Ngy&D zc%|rbWeEdq$1 zqNB3k>x>2fq*r_uCH%Iil}Xn82`QCO*y;fkV|d=zY1ak)IOSjVqA=jWiGN1uKgA$f zgGQqpNA>M{u7LbmVvzv?082xEtgZ@SrIr)sKkX9;E|L&_89Joxi0;Hs1bZxL1zgPc zU!VLZaZ=2=zObOyzXM{4V7d=SulQ+_yR`QAZ$6rpj6gl@SCRx&#kS%>qJQC&n@4SfUW~+3(MB5LB(<*Gl&lB|nh{=VE6K*Tp59(6K_zP?PH<}o zyg!UAgSx9-m4YE&1=nr5|8%SzBM=B6REsh;iRlR-yOi5IZxD^T$@lvs0?mX6ctK&@ zCxD#`-`43x6=&I~+4y%svO<~|*cgn^;~>69dR~((K+?|H+5;{|d(D`k{(hFT6d;Aw zY2)Nn)HR#fuH@keg_=kdlgg`urp21t)~Og5#j6QErNd<%fGSt%ooRe~ZmC|9_GdWi zq-L9vHB{l8*_zH4@2aWSb~X%0A9IqP>GyB~cl`80v>X=K?~Ox5&J|B9Um zH%?+Y<5O|5_JTSdB-*!Rey{Se@2{F{?Lnf9!=36@^Cs|WTlxct%ki-7DxW+o?)mZTGJ zu?6D^XHaN}etkPlk1rF76FI!TLey?!x_n(mUQkX+{k@J;sqKi*?lS+vy@ZqI7nwuT z7booeA_{O@+&mX-Pah4+IO>>CR$4j<{#IA-ZewA?ZrPDxos%+et6S>&l=Y3O&$YWP z@5%SVvpGx_2h&+E!MCe-PN>ZYkCA8*T7rv-JA&Pytl({(QM4sm3m7 z>}+Wo5D^v-vv;o^x|dnpVrzdLBKPI9sMhrj*0&334@{9O8*F;ootJ5>JZVB|4@LmG z9z@|YK2P0_o<4Q-290+o%5&uX%8X4)O`=PUS-wZ~ileon9Yj|oo&_Cz2b&36ekoCQ z9_Lj(#Q3dsLZ|sioCCc;U0uq3dkNP3l&t0??~7uN$J4#>F@w~};)VKn^zoU(*tJ`3 z@Iv?ysLQbOIm8Q5VZJT=k{d|ZhLimi2-%Xp;#eNL6e##@M~G|d{Gya9ila14$G%$g zbI9jut!djuLCAW{N9Nq504JeBWmIj0akf9c@>0yvh7V*;g~Ou?V~7k`TlK|j#Yl|&{P}c8g{k1{dH*rj`r2$zBW9Wn znWnyv7ZfayZR?~1tIc-#vLu`u4O^v2@dTep^ch+>zmxUnLDn++85uA|_M}z~cA%ue zGJ)OB0hmq!2WCeV#g(f2(8Jd!B>@{aL0bRMCq-%J#30VJ*#hj146t~m_bW=n=L{fr zST_Hy_O)3+H9K)S|KJ9EvN=)_OC(b|`Y7w}JiG_=-sO5AB((0}Ip?w5lYrD{r)sd_ z-PpK2@NuqT+h5fHnyv-cm%K+3YxLc5ZYxRvofs9f$_|V%OZ4-bYGSHg8PLf^M_%~c z2H|S1Yp-jSRSM%D?NXm4b@0C%m30%K^u3cqG;*X+aEs6?|W z6J$$+&)732LiN9XYYmE$h9=#z>vOZ9vjyrQOD7)I$E*Hz_8M$w7Sx-WX7k>;XbDo7 zM(ItunzC=^$p=dQXePRly3y+b-pvCe2OeD)RhZ)az?6c+HXtl_%RY;DdkLyB){Lyl zj=WmU8X+W4E-yY&sU*86F&;^AitnWh0erz7?t-KIslmYEmCB-dpRSDo79Z@B9 zR)J(z0i=T0pe0fY*&;bi$iZU(jVeHFhdL!ZCwu+l=;u?Q02m^i4!8iFKvnM<4uw-u z-h5B08xGp{Ut?d70iHo-M};#U0~QoK{Q2({Z;0sGgQ}F4q08}U?jeBfu=Bv?< zios`icOsYC$?v5%E^c0L35yURq|p~-XT#h*z0QgBrrpTePuR%lcdqXj3DF7nk$DbA z(j$$8{?|w!dc>Dls!fxcQye-vmvQ>>csVXD_3cpI(bCtg_LB(!Gf~(YC}QptfnK$0 zfaz?&_0RscNLJ}e*1W;Cr(R2;oZ6&!D3B>NL790cu*L@J_FUul0Q>>1UfW_l>~*05 z)=Bu+&+M#u{nQt>KlFKXjX8QOJYKjO%3)P_0jCGH71qwurT+Y@NHLQ5D@@7?!l~PuT8K$KWgO>=*z)aVh`U>`h zfJ>Wic(@BjnJ3o+hIX)wLn$o)=%PsMi{(kJR zH?D)hjW|k)S+*B^4SFf3Qr_Sys$E?^UY57X(!~p1{^G48Zi-B4K~|t|5qmsjc|_$F zBR8q=lW>i}g6vmeI5GwJi9fT%Ce-ua%yIj6zbjKaZLwv*CX-JZ6L=V(j{p=m#G!Z@ zjc`-PN2ApuhCcxF~>EiXkdJBZ>~$@ zywoTYb5|{#d=C)cHY;(}liK*>(2p(V`tW#&Q3b1BOhxKLAHN-s?3`1xeUo}uRBzBw zk^N04fpQx^89cAvr4}@=d;7NvH40LGu|M8`MenP_1ExbfSzX(=>mdi-+so2r@_aX@ zLvx)qN4EUVteV{oo&P&JbcIWp_Ll2$d_1cHC$5wrox#$3PHDp}ddFp^t=SA>P@o6q z%PJoufY~3z!(}`I^UBN?C=i3VReL6jzGczcR}z+PDsETmBrR{yM3L3Oh!R19`(34S z@LKmfN3W#zl@BxAFX6L>kUto8NcZUifw-wu*J*m#=$>JW{7Qa9*fI=*#E7c-EZ(?d z$K9J#Ww+ORUUq@aV*ZU(OHxn>mh9G4!n|{L#dNt^Nvgq%ZQUQ=4J~uSKm9FAnV7e_ z8dm)IbHXzho^D^daSEOx+|w&Rk_iX*YkDTuwko75IP+w9&xPiN6IcYQJuBJvm3TNnF$?O;k1}jf=IhbJx|zr!RRTbqID=qJ3w(D}3G$=B_556Ewu* zQ=X#4D*{;8G?piD6^E;Q$*9Y6I_CQL17~`b$*Uo^wZ0W&1wxNb=?t;VyBp;PJJj;t zTkT;>G93pQKK;Gubv{W#VH#wz=&D1$Ci%9W$qeO8ez122y^Lk5W-xKX^m!5i8Sano zM<}!8E$uuoI_H{=v5^9M_nY{8T)zjk>8VS3g)va0rNVnA*g=)9njg0xil%F^ahwbe zPzqrV5@gsbEb`JhlG>klzm^ZJkA>B)jylM798?|>Cu}SY7CXdYJMq1+2LJ>kn!|A| zZ?gIXW08w{Rn^moC)80z>EF4bQ2V!+MA^EIUl5h6oldSBP(h9}N-d6flJ_DQ-vq|b zRW;H#-<`Q^RDgjnQMbR?EWNLF=14J{=5946W`1MyS>zgCYl4idHKBBO3s{|bidXn& zwyPcmnVSA}H@wEwwCz!u#)a*iY|RxlH1$jVF+)q2FjOGxlxFld=VSWOn#+Nl!v4B> zZwJPB*9)tBB8DE|+#4XUm-AA6iAA#L`_Wu)!bYXfXJa@i>aR`C9&_&vS;;!`k3XJ3 zGSmC6ZZG>yj5@?Z50~2au}!tL#EA&jj`RpVh#10|_1({Z{Ej&0h8H{;j$e*Hu>1dF zUc!YO7_`Mkk6jn}7|;sb}c6$b6!!JVmQ1aoUG-Q8$B z8SRl>*U}mfFCIWfHs~D-XU=shpF?qW(HGJTFPLw=X$Z}$id!r9tx3V#v}`Be!XaX@ ztn+aOJQE_w2hLm>wFxtDkQ3gR$XVYpB%5??Lf(AF@{Q7Z`-{%3ms6%skpWTa=;inn znQTIO^zMXb%LF5yMsc+vv2{@VgI;3cFKt;gE>=LY*_BF*J?DAX0uIZ&OTa zlj~wp)Qqn|#SM~Xx?LQ>jWJt1$SYiFdT)=lh@-otM%n+k>h?F7ezlP~q>7Hl(3*Qm zW{bXKnmaO>V4ijMG3%A^MY5<)V=vX|&1?UAu;zRxv)L0kPn&jhhV-p_wRRsRI_@() zDYPa+o?k=f1IO*`E=F~Rta&4vYt)_AAA6=3)aC*;n#6dpmpt9a$=fe(oZ-p}=}0<` zP{pDq)09AQx7Dg}G~}5B zs73`!=cOc?XU^GK)G{Zg|EQY0;_548EN*IkW5?uGiODdr#2u1v*h?Mf;VxJecJnv; z#hJ$)`ezVe!25FNGh@v?Rk^qXcD8>@f1nw??h7SUE=Qdxq{1;l6HMoYx<5XGipC3d z-?hQC)b|FDuNx?W|4lUf^FM^c1yf_%{}&#YgTsj7ar&k-@%@#ey5kR;?u;C{aL0~4 or2g$hfB=!h(UXrIGhRD9j$Qv48GcRrB56uglr$6z?^p%@AJkEm4gdfE literal 0 HcmV?d00001 diff --git a/message-channel/etc/message-channel.ucls b/message-channel/etc/message-channel.ucls new file mode 100644 index 000000000..27e99e539 --- /dev/null +++ b/message-channel/etc/message-channel.ucls @@ -0,0 +1,304 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/message-channel/src/main/java/com/iluwatar/message/channel/App.java b/message-channel/src/main/java/com/iluwatar/message/channel/App.java index 64201fdfb..b4d7b8576 100644 --- a/message-channel/src/main/java/com/iluwatar/message/channel/App.java +++ b/message-channel/src/main/java/com/iluwatar/message/channel/App.java @@ -1,7 +1,6 @@ package com.iluwatar.message.channel; import org.apache.camel.CamelContext; -import org.apache.camel.ProducerTemplate; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.impl.DefaultCamelContext; @@ -19,9 +18,7 @@ public class App { }); context.start(); - ProducerTemplate template = context.createProducerTemplate(); - template.sendBody("direct:greetings", "jou man"); - Thread.sleep(1000); + context.getRoutes().stream().forEach((r) -> System.out.println(r)); context.stop(); } }