From 10349614e486dd9777909550264fcfd674858421 Mon Sep 17 00:00:00 2001 From: "xueli.xue" Date: Mon, 3 Oct 2016 21:15:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0RM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- doc/架构图.pptx | Bin 90716 -> 95209 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b3bf6572..5b4b1936 100644 --- a/README.md +++ b/README.md @@ -398,8 +398,8 @@ XXL-JOB首先定制了Quartz原生表结构前缀(XXL_JOB_QRTZ_)。 负责接收调度请求并执行任务逻辑。任务模块专注于任务的执行等操作,开发和维护更加简单和高效; 接收“调度中心”的执行请求、终止请求和日志请求等。 -##### 5.3.3 架构图(绘制中) -![输入图片说明](https://static.oschina.net/uploads/img/201607/24144555_SUI2.png "在这里输入图片标题") +##### 5.3.3 架构图 +![输入图片说明](https://static.oschina.net/uploads/img/201610/03211500_213n.png "在这里输入图片标题") #### 5.4 调度模块剖析 ##### 5.4.1 quartz的不足 diff --git a/doc/架构图.pptx b/doc/架构图.pptx index 7e7e91527c93d4fc48e3764f214c9011007c1504..c00888ef3a77f78c634787cb7bda1a5cd98c2a7a 100644 GIT binary patch delta 21030 zcmYg%V{m4{7Hw?Xwr$(CZQEb$Oz_3FZQC{`b|#oitV#0b-dnHUt9|Np_wKIq<5XAe zwb$BvXB6_+IV6sXJU9df2owkm2nYx%h{wCg-+NFHkXz&?9C|RoJrY<$h$O!wu(dH) zJVQMLM3yKxd7Mk%iDbg*?=zvQS24tojLA?>R*B?qVPZ*l9s(mlo3z;>Xj{c`DBA)` z6E}Ss_NmR?o0mOGc`!J27)wM82hb411f@MhXKW-fF*|fNE=i99UgS57R+uVJlS*rc zJ}enU;X|bpz!(JJRd)a|?{1HR@Z9)lQgWz`6PGo7vJKu>FC#Ob!o1eWrZFDwE_Vi2 zm6OpIP&Xe2hac{)-dlLZIHjgG&T2|$$P*|yObiXgMlEHkz~YyA$Puc@fTY+MK4vbm z1@T7edO(pu3oFez?|@qQF~Jr!e8#Sr(&|*c)?!s1!BGQ%?S(?e==)0xw!FN7A0`f5 z>-9F%TW%d`LLS;$g54vI7}N=Ge79c3gEmgie&H%t^S!Bqcf8KA=}j^j-gGXBYjC2GhWnq5YCSW_7A`=PB=Wy@)vwV!43sfP~5va8` zt{~FHGQFWd!{1h%_du&K;0P+wrbI;GAno4FeWg*Q`i+`T*3wZnN2pQ=M6r~6SbXNGnJG=`yo3z;o3rTurmT_IbdVVOYzs>&lI zC=>gNf04qy<+p$3T6r*!TOd?z))%gr9o#gACwQ`3IR zDNysI+bdr%P8rT98D;oG+feHDh%xIsp0_M6>1I!`b_Y62 zD;bJ8iR676Z|=HCu7$*hdcG}C8iwtSrUv+j9;?L}8Uqy8?ZH2%0t^JC3-}wJ5U}f% z!-5ffOMOF_4aOYeYF-0Ob{q^Q2Ex@S$KVsQ7QQ-~HC}on-d_`#j(zpYH+$K|x}U0if8H8P<5a zAnt<~%6aszlNzZ9?LB$DK`97?ub&&z&m@Uh9fMl6n0mZOcB8rttc3Gv_)n>365^if zlMIqw-H%j;Go6Myt>GU;TEj&;&a)dg7ta+_kW<)G;*pXVt)knW3fNo2myT&nR%f$@I@vC^S%{f*3+_^M@`cku`CphF2H8Q7r)UOYq` zNH3!!#drK1rW{MK$N>l#Gt?Katte1Jc(JGGUID!(M`PfH>9LR)PXG|gAhTv-5L-Gd zl^xLgPYNzT2xwBd8K|OPFqJ7w?h^ICjb+efk4W)%i7~M3XOOWa3!YMCjoG=U8_bsc zq0K!@)01n7tYTr~mK=v)&_gx^&|5T*8A~)F1$#Dr8IZasjLyAxbH=-fKFR%{fbBF$ zP-@5hLrG`8#Ohf{@{E9zdN-pjtns=xXEHmZY^L#toc@w7b8)7d6^rxy7yUQ@@Qxl6 z&ciY$)esg0M9v#1itPyo7-{LkHUvdXb=gYr66veM@+9Db2a@Az0}%2F*q*ZpeCumJ z7&~UlLGf`&?A0`7Gv!UIBo~_R@8fOJso4D_zo%QxkUV-EXddFay|lX0A%r&v%Z_q+~ZQB?PTK|2__rO5mU#-{EODCvY9 z6HX8F69h0MUwJz%1ETlL_I*+t3cWw@x1CvSjob`(dcMYQcGK5!C8luX%6KT%r!?5o z6eu6YrWGtt*jCt%dalQ!HfuDu(MO$<*&wu|&uBqIFVQZn+}`rM>z#XDk2#I>$fi@x zs4WYY$y+RlgGlT+&rnqvLXu1&MX?eZ$+t{kR@-9-j_o^PF17@;}5n(fzaFK=TZl9f#6rbF?>W=|*Qhz$0?tMUSYbCnE11EYkzOR-H?J0iH-&kftgiZh zwwt;=kW>1I2%6Y9lCn$_~v;#@h%YtaCLvLT`=ErLg6;clZXSf z#4&?$L?U}hColRuRuj7J5ppiF;6##~@DRbLE`u2=-hm`DnBZlgwJeKFlkk5^l%^Gc^>oET|9x(#L)_oMmERRBSP_fNS3GX@8N2O8l({Jb|DPZnE;D!v6 zEX^L#wAQd?4DF<~2dS1Y-NUU`buEC^}}txB)3&D#UCq)>9SHx6CNkSId1P&637km>ry^*w)!PEV7sjyG{*mGMyp( z8`KAmyHwp34%y1X=W0O9Gh_42rq@C9$1zq(wKCN*^;i`?UjThk*A2Y+GPufMAc$NU z)ZBRI zx{P0Y+s?;O>;R|KT>}1phgv3xg}#p-mi7nMDavXS)JI)t#B^Unn6UPR^oMDK)03Sm zIg8A@!RDwiWW(T-;#j9{T>;iHRWuA7N-0T;xsNwM8@XwyA?`>7CELupwY z%(CYYaNv->tz9zpG4**I>X+j*ixe5>xRxs;g}s3%HcBN??iaV^^n+Xjxq1+>?6JQC z1OG-Tp91jjPkw<1eKtg8s}ks@o)zd}ji2OuxuAkjDU9TWfU3Mp5g6ktkPCO&j2EL& zqnBz{xxekXZ_T2U?PmgeK*Ji*rPB4?v)YSNA>!oxvoSzJWtv#$EKF=qzZNIA0 zV=6X#jOxg-^|!7rCWYyLO=2}=aV6vXE7TDD4Gpn$e~D=XGiM1iTU|;4O&{8klQ&{_ zNA4ia=S_oO*khX&!~$)1D)noPAr)?O1h~s<(TI<8P69Kb5ghApCBb7bd1PnhQQX z00ox)i5Hzvq_|uF9)beO<{3}JrEvFr)W{v-t*8h@-YeReI?RDHQA(QWr#f>4< zg|t%Dis&02$7C+iT!c?K_0+NiGTjufYXtCEFZ#yz?MCIXBqqa1&Y9pg!$mVhyw*2n z@srYTvvV;uGDTfB+U;2H;KAZb_j6w(q1&62H0>9t{Prs;SK&X}dIzC<%Le?W;Z#nz@1pNl1zrU1?U^C1cN}7HK^*S`P`pKd(b!<1SxI=pd zkir-ie6AxFhvYRjEP3^yZ*}O_fHxp|=Cwn6?K_t}mFQkV?>g)& z{-S=RM@x16mtj54?mVAOqUW?VCA7B>AB@$5@7I=a)c&`kI7xxdX|0r^);zST1sWLu zDi)^5&(;dW#7u{WkPUKkFd75Oi8)F&*T6L_WSm(`FZqgsF=&6U50ARpMoR*t187ll z>uYu?)w`=q;3Nx1OvW4xq@vNoSe%xqCVzos?-^N+=y6&aL!8p{T+;cJ}Xx!7c z97@HyS(_(1xz6$2F$Qxqc;(&fhAssl4Z7SS)ZU}&&S%WJi4fG^Yny#^@~W(A|d5G!L=wk34>P^ix<>N`^E?Jh&st&g{XT%bYoIBK zTyNVTI!SY21vX392}N=Mm{G37ee97u%~vB{d&f;8rrYPdCx5eZqp?7a{33r}SzCvW zy^)({fcIyaehy>ZN@5CY>hzgLPPO7%xt)5OZ?j{$`uuIoFB z0cmy_G(?SmV+JtJc_7g9R|3Gkrnf`lkv501UC>mrye-h>Rv7vvh`skC%**3}9Z8Ug z!am>r!(8w>6uxxz*)=_A`QUW9L)zJX$gup6j>cJ2BWfaLrYqBwIqYF=+oU-wBvwT3 z-5nSoYZHTN!8q2G*}rR|o}G|@*sR3<&P~S^v80LCLiSc?~Jv{wIprIN*CN(Hrn_3>0pv+iWS>RFwKz zDrm0yrEvc?uWVM+rfOfZE>)MHhu_9!=eYW_@}I*!f5XbF?o*&vfnx3KApH0D zzc6ZyP|$D80=24k3~<#=!0r$JY1doCE@@PK2UQA@x~rNV5}oB&f)YL|BFU{M&e?yd zEBEC0SNAA+C2IFQv+tqLe1=yX#LsAL%ToPA?aRrrGv*F5>oODGgnVe+LDrcx`(e%fyw@&yi;Pnyc z=L!!m1Q=@fI=!r$X#*3&3b48_;9(fW1&n2ostO5ju+^sU}|eqp3Fn34)g&tfaj7|FipV{xrS4iz5lEIb(f=0gpD= z>U1fybWXIAtX*tXxFi)B5K^i&z+Ceow*FC8uKLI=Dx56VS&#$0^1pwYMqTq4P0yF& zhcc|1GlYJ_R?vid$ysLebS4^!&4K(9DGOvdNnz@+_&i1_c`-{FOPfjN`)v>M=D@hm z5$%(tfG*<0D=dYI-dwP)syuf2A65}jGo2msX;4eF@EqN_RP%#)LU8I%!0r~@HS+lM zm%{;bmsi{Az(2gEFd{%nGtgo#J(YK+GM|VeTf~sO1~QF9MpuM@+f-^ro7Dtk`TU$} zn(`mq_Ead)>z`QkcCfOKEZl3%EbP;?`^6*7alUo@AMAhemSK$W{gn`zLzou^8dgQ= z8jGMVty0R8=mM7v+YHDxcQCQXi`a$T2;2TDqk(f8kYELo=KDcKnBiVIU@n0)ce%tz z=66Bh*J^imcr1Vnc)bZbBp#SATw=f{#tR<2#)MLU3pVK>x58;f2JeU#e`einI%tVJ%%4nFxR=&Nv0thY+%1p^!5u?GI-zf3z!is^Htt&<& zIOtGn!lQtnoCEk3Ra=fIn%`#J82<#eTZYMqnTJLvoky6(N3feYoky(m;-(5R_uLvj z^NYD#1x9y#&PqqF|DewW{j6Z*lhW@M^Jty$x>>#9k2R{>>nE4I$lTVx^85VL=CDQ2 z#WvhZ7bD|n(Uwflb&txyfb5ME^!|_HOyofa`cffg;s7{&@B3C&7-CChdm0rz zxgcRw(BTjP_g0<`K`t)_4}UPx)fH;VJdbd&Ze?*%tQ8mcwp_h;&VE$6%|bb0wG5@Q zm+EWCK%#^EE}{F`6QLoqZ#YSjil>`hzPymC!4uN5g(Z`9DQa^NOMpXEaVGRap|wKBDC~8;hDe-&(ZJ8}vSX&G<{Cd~5lQ};AJMQ;n;{FJcD0Ok z)YNGoLMa4Z1J3wB<%@n!oX@Mt-1BrMm#F}#j8;2fQ6NG{9l=0E#VqRAI?IwwatTAs zNkbuLQS-kDaat&s$`}zl<9XPIBHL+UFNQK zov9E8e7d|2O+X{xB7dtr(rj>eGC6T!(h?Wbadvk>vqe zLzGMBdW~VVuQ@B@^myBF03jWmQ95Bu!Fz4+ZtV*>pP0EmldH*~ICSe_9Jkh-z=jH> zhC3?EF>nbL&2ilCKW-m6XvdEb-Blu;{?l`x4*YFZETWzZ;O3@HkWsw*E)!c*WalQ z+qQ;dZa8zz^C7;-J{8iH-XgC%=;l&vYNIV4eH}oiI%{KST#*&zboTi&Pu0d?XGnot zQ3Vy)SSxkum+?@l#bhm-@hsy-r9>0f?Unls6SdK*?o@Wde$j)S#yIk4S`dxRuuVB} zS;(nlBzS&8bU+$6Bd?T$jNoyh+cf30k5c*anm%jX zEHjHGJof^G)S5Y8R{Qu0)?-?nNHqeOrh`-6)}R=$4ISj#+9^)VfRl3^cdW(WBOAv#myAcmc?2U%#t3jttU@Gsf~oIn1ycWp4ijU6nML|cwF0Y=sFzP4fl1-lmAP<-n;Rfx843{JK$aLwk?klb+*AwAEQ6; zT>SFIRp^&W&zcBTV$t|~i8OP5P~XF22YGyikE^Y%*+9u+*tt}9S7ZbYL&JSn-dE(L1&yIgjp#gx*`oAFF*tO=FG zZQMmLr*I6e0%#4(&>&Ur!hq&EC`qQ#F1bAn9nP!BYFJ9~V|ZN*NAkmA=rwyM>n_Qa zwyHBS+1U)r>UsXsu2Pr3_oPm=nNHRok``?prHb)dp5(HG#$^KgmEEh6W2Z%|oI=nxWHW5!~b+ zlP8~RaCCykozdAfIzx#vxl3a~e~@%kWPii+t^;?U5^otjF4;`<@)m*h`oR>_8^Mwn zd%T^m4oO@GE9+NO=0q}XYIwN7tCdGMVKxV*<@j%?1Jh#62ADT_f!45X=+vqY`bC-S zg0;KBtkav^arl9>s|{))54}q=Eq)+_B%)+gT=b1Ta3UNc%pAGdT<5EWF}S30WHi($ zP_nnkEB|*rCOiOB-XU4?_^Sa{m zz!8?#iaNFc0JK*3y#|x9YEzimu~%CqRx)dzs1fSJ7Hd?X6t&3y1*v59>jcd;p=h3j znK#uiY-=z5TOO-Qj8W!Ttk&*1}=V?M_J+75l>|z>tYD>i;H|M zwlX4D6eptIA&zm9#4pv1=o1D@fr3 z{O`b5lE!vZxNb$M64ihA+eE5w{Z|r}M^orBQvs2jy)iO&thdV^F3g~e=@d_PUSsy_ zq7`s#elf0OPAs-ud*5^*!iWkt?9V!R_@;IRtkfDkWJp!&;0gRUS^cLa&;Mq;yoX|f zoQtpOGG7tCc7?3`ek$JC1f|G73H_ZcvrDDDv&ZHrgW?v16{ndq?uDtWzJN`nm~d`B zcC{D(wAm6U;2Q4$W{=Z03&t+|BQeD9SO@tgOmZ)iH&qB3Ac>MtaGH&L!Yhqz zk5?#yWK^MeQk{GTlH^j6NYuag#K!8Ab80CCziqxa*28_ui|c&Zj}2}rp0@GmxbPGx znugTi2pO4@a0L7VlL70GK{T`!nDW#@s7x|YuIxl&KwS%85gM%g7`kc{B8vRf>#Oq8UFhmX;fAre^Cs7Uho=-CvPRIw^Q zY}a9lxyI}$nA3&+qn1wmv!r&9RlY>@2)h7SXL9%XiV0@ zDdc;5fR+6CxXTwjF&0&=G8Dm;rfCZmV&O%>rLpwKqJ*C58A8S$%U;)+6OMO7*9`__ zF1#dXb!}IT3ms(c)(i22w(*&>lJ#xSf>FW3{NDGQC)fAiB|7F{EEI_C;=`gw7)=y* zsSBdCuC*VexW(xvG#vHuKO}v|lZ|v8rfAj60Fro)N2Won{G8*>AEB!V6LU5@klDx; zfPo;r(8?Xequ)XWOEz#Cc~kfAbGyymxe#zTP*AzXg6X=FBst? zs7fq>`8ZVSl>?I{n@-N)@a1kZ*Qia%?}M>uOw6;nSwyj+FC^1FY|n2C9W4*e^5Z*E z022j8FaPkgLITdgIMfrgyU@YfCumcbBq^v>*P6>7PVcq0T{Z5;zV!3${`P6kj^m78 ztqyDtrNQD33NZ=K3U!yUnYwUzhHcu=f5B#|ye2Cn@;d}8QNE;?af^|iUA{;}4yiqS zmeGE6t%nCGw9T&U2HH#I*{^*=w`Qx(&d77^cU^b>2GU=x?VEfXNqYaMByw`E992@F z)yX-Y)vW;by zQ)SX^+?nwbiA*M*2Ge0I;z24-=(5W&)#Ed^W&qi;0-Ymistnm zAe%Zy_N7)f*3iG?SHj#1Ci9^B?p}7irZ%FdW@YVUcVW6*xk^=4GYM!{wU%fZ74G}N z^AE!)4*by`+uO?w?}EOE``=rfJ8RceNq?C|(0dhKr#U}RU zyCySK;;)G_PXEi6L)4672?K}ZnF0FFD=Zj6(nrD)hrFe-z(=y~Dtm6DaW2(YP%76A zkt3W5Mn)J|3KIph?4(XuD%Qo|jG_ER6N4ZGJ-t`#O{JCLi`Hf@&v#t``@B88+}OHowwLzJ?`r(cDUh zv^ac2Bb>Aaq{RlU;d_X=egdv)mh!fjdJ@f;N6%rx{~~fKp&JarOAut)GoVa)cEJ;@yPu=Gdz&mw%7)BhT|ZJzYZ#(RyY^Z7-SD&R4Yb+I(J#0) z8%G7eI$aW*_rXpe2wTzD|9E_gE_)S`#zSzlHQ0|KM`Hqd_j>&5hX!z63>a;L@X7FN zq{nuS&FJSgY_)NxbJ5$Ggyf2qOnMR1D`G^Bg*`()gfd0)4?cfd%T~(OE>4SDTCRBBPOv%FI)5m+HNNfW(Bhl%KGxa3+Fm->M8d@!gk?wJ zg%1vHf!2vD8YgR{fCF$2`2t#3V1K%fOVVHU7;Ew6G*AX|Y>w2_8U<^oWu;je`w(A4 zmzr|rS)P*L%gn`zjK|5rUg9C#Q%1g^%AkvXSzFXlXs_^w6P9x&u?tp9_%7Xik75v}u1;S+l&^ zKnLkzULz;^Zmd~WX8HJS`8L4tJ=e_PUpIBEebaXS*^F@*|FeWg7E0_dDpywt($!7cZ@uj*`_n<0@E12JI)3jrUh%dr1T} zaB!uoYfab4%y`Vkvj;ha6Deu4&#C@5^60N%;>Dun?bg|4kMT^cSoQ8QoGt?`+H^!i zSzEs;8rv~9I`gMx{zn67va?;&miO(1MC$(CP2SL2EOE+!r(+Q9P9rYA6NJGBL{X@o z2sRdZGuRe=myEc6n2qF}YU&`c|K$A;q&v8(Ko)6c)ZHK3693Ael6|0O40@hV~?1S~FDr^1FOdg;=3?4TS-0B-ldW-Y(}8sl4KL5Ss3C zAV?>g$gCO^)E5(b_Y@`SH3>(fm}a5IvRD9eg>Rx{^>pO_k-RFYZtQ9w9BBB|JKGp< z#H2Wtu^6S|LJ+HrzkBwFLc~l)p_Tf--24Jw-zS_;<2brRQPCLL{w7i7odnCh^&Nt0 z4vSoz`&H);OpaM(AXth6#QU^4OdVItl6~$)XiB=LA2_iFx^cwG%U`z&jeop9Z!HTWqyrC(ij=J0xY{N`LbtHYMS|47dr>*QD8){HbYAdo#Uh@Y-iVkOUEsgQ{4?xq0kgwW?Q% zy~5VKVH-bENNC2uZ}uRjsE|fF8ekbe`ZeN?hnAku>7{G!epsvhb15!MDWk+8o3hHX zr#yN{uG8$N;vw8PL5JFrRtSL7tR0Q%4_7ojj=Mq4C?qEKB$|GVwv1D(w#ZrUGgyPQ zADLZ7;(r!OQ})^UJMPTH4Z*X%yO2g3)wR7lT+{RDpoM5IwfNvtNRjq5g-c=FK*^TmzhM36 zYO3#cI#u^dMmJ-L!MXs6#4;Mo_9GE~`&)KUAV+%U~RNVyWfg(=y6_m zsr^suI#}D?XD+NhCI9He0{sos^Ec*~XXZ7sCEKgE5VDmz5+&)c(=Hmx@Ps4dxVrzz z+XB~hi2C3lAVu*1!5csXZVc4jX2#Z{q~%a)$t3qVAP9^3|#0byggsqIHt~y^e66p_=0RpN%efKD6Dx$0` zCv4|J0Dn7P;#f*G0Gxp$>O+?MW7lkn&18?04oQN;MXV5!W@evWe>1N4(5crHOz=$V z`iq@XZvvsN$3;3l9JQ*sh$@k7M{0BfBMq>G3x#?C6Cxum+_$Si4?RF4@07}1xC(3qK2XyW^>4nSJ3 zw15CgS+CP97?{|nQZqGbm4IA2i}F^JbPXJilJkJ#rmRO|QeGd@ZggJBPFe=@e1RBm zlYz|X8z9A0V6~arU^B!jQRgHv>fw9O@gX-4>aoHuw@bsfI*GFm{v}@~VKBx2({02+ z-({-{#+8Q#Fpo}s1FLb5I&*+g$sy&tY#4ad?&lW1eeap6E16pkmrBTJ)4YrsknZ<&rc;jX&skf+$MO<)Osqs z5AvM-sqxC0{-ST}THbLoC=?mIeB*#9H8;+u>J>pz#+j%!Z`6r$_ zJ9=Wv-$F+*&rft;qL*~sR%jDvZ#(l-OQ~#JNm{Bwc_x3_2OFl2sAKGu1oBErKGz(Q z5S^%372SQ$zcIUC1v3UTL; zx#@EgktsL#&ki%;(U#s@)j~#movyteK9HJ}jM)dD6R=D!1GQ~ajKS8`VhGO|mKJBD z7*@)MDsewxUr+_>q%%MjK(Qe5luavuL41OM)t&^t2y^Nl3t5&5;^1T({Y(j4jGHY& zxK@!6hN!}eqJKH94VMSMDm_x_DSwJ#Fk75gjQhS_)>Ph0lOaXFPPKT6i zEduIP2?n=@%ZLhQco;{#OGDA#-u7yM<`nHHX}o$o-X+dIVYV$%xI1g@foCW5*h2(> zIX>u1$h9g|rfazIP?(68xi7;WzSZL-hbFT{{_7WMh%u`d+Euw}rym%3E!M-7?^(sJ z6GovI9s*i;RX7TU`1JL{hiZC8>$N~@d||HX=(Q#Ag2#MsIeJ`1bCiY6f>6ZJJRdrb zM}tK{XX5eo;6{00*{C;nS2&B1D0&0n+b)fA#3=AL)gsR!BU*QR#IRU`v;w0=v(HBr z0X@-&2JfAJ#orQrUD`0^4?lb)n_VS?wRzB*FEO4fWm2B#8vdiV5-$EDw-Rn$2K)tl zoLfVw>uryD`tL~-8k65zwl4XOWkc9qq3UNSFUIfO#H4v=FSW+uLWLH}5(5YTNB}cl znrMX-I8V7F&ayIy!irnn>EvoKBeYAR;>?S|vETqDf6dC0AKs6*>p(B-FEN5g_43ug zsd)FFMaMWX&n!^5#Aq*#jmD>aq?bYSd=LDHYo|5S5wT6peS?#)l0K4~r8xJ7J{1jZ z?V6Eg`bW5?H(pUU)8XxA5O)HA91lmgM<2I8ZtvSIQ!UUf+WY-)S4)p4HeRm@vonvc zZzpTw{bZO|v6d)E-lQQrqb*uMEo(9^O9hF{d96rII&(K4wdj#vIM>zRi&m@nD6Q;; zV(1yNG%lVd7g}j7R*O#+v$X2Z&lCIm0EBK0=X@r?W*NeE(xVjvKxZ^Q@i`b4L;EvC}UCT1$DllcJA_s`R5 z+nD)HMNyX&8y?Q1u_Ho4aR7pbhDIG;c`>8W8q#6nMM(V@L$&DfXp3-RcK#*s_-Xo* zCMJROkW9`NkyoCJ4d!Wuq__|7=hpAcnMoA16_5#9N=^9XZ^hKTHb$Y91YY7vOmM;oE?lZjL<`lsv^Y*$d3Tf=JU7 zpw=ZanwX_lI1oqv!uXM#>fY{}Z4HMSZ2IEbSU<%a%EsGV;U%ePxL_6PNXQmb~Oqf)fq(xKvfw?o|3LBb&bi@R8aQW==U8OVybqR+Pqf7S75)IYkW zI*D!>0&cD$PO_#W$aqRlZu^?GQsDpjbq3iKG!Q7-nnrB$=}{?`#`!``z#ZlO^*Hwy zmtig4(4SABxHrI=i`(DpKD4e5P{!eaw1|yHxL_a?Z(z7mu0p0j*b|D5K1LbxUHk`p zp0c2?#(L*y6Wm(Uq0Bumm~?JN*K{W92___*GyTE~3&C6$t2L(W$CO4|>Fdq?C>zYV z@Ej)$o_ou0Fbx_snf7MRNe5FVX-M-bxeqMdNs_C_LQrrpUQM1qtlYtIdD5@^lq0NFqd9SB($dnbex zc;96*2A|%zGP4%L=bu*QbBtL=Wz7y;dinN0e{4TyE0tJg$hX{KxniKe?S8V}Y7`I! z^}G7{1VF0SDS8dih4xf4ZD#HdJGfVl1@jY4I@n={0cJJge50$AzgsSa|J!}gr5XkW z@((FG!~7R1hMJ-SPAhDCwCpSDg?Hk;inqZtM;*xtCU~4|qmm*yIJ{I94gQe-tBDGu zU#wq*z!#WpZQs^6;aB80iMG9TGW&SVJ$?w>Z_14rt4~ZtDlNi3$hDittp;mC?<8_M zTWwp5c0E8Dyz=HmPJfbKcV-*+S`>Da3Bg8g@Sbu)w?7#j&QWJuTXb5{J8k zhGgDyf?a}-XS7!JU$sAVm-cwo_N9;L^U<=HWC2v_}(^Vnf2;%`x17S>%}z9Ec5|mO zuVNaQ92#dZsM+|`YgVca53X9Lv3;)YK;OH>A*(Ap2M%>ubECn>atCAKk*3@Zc91a% zTtvVC;m${>Az0+LdDKDI*pAavt=X*lwLKV}g07PQK_NNv$>O9nU1ZTNk|Xk&!d?>y z3FC&2Rx?da5VILK#HMzw^T6LNWT7C+IA(96-(x0MF0Yo(jUBvve!lMyZ!QDEKZCGL z34aqI{P2RXR6wIn4B0dU#n|~=uti;y0E<(-U|smO;%7DeSerQ9_73~{J(c)%@jyM6 z4SB-^IA*AQ$N^UoKRv(OV=1Z6j6pyQvV@41E>ocDORdG=AUDs-&TFRED^lTV^WA2` z^BQiJ|8;Wwiq;)0diK_M#JP>J{!^i^I@?N)8&QxIGalRHGi9sE!uoa~->E-KEzL6toRYSDtzczDpXwmbu25rxJtsCLQ$ck@NVX7>sqMX1FSPgSb>(yX!RgUP zP`sglVu0=Y7JWe|Vn;{|1<>KmlC&lJYf5a->WRvGL>%##`ClvH_cu7m|7|l(VSs`Q zcx21<{>Rt8qW+h!J<^y42ZWU4S)yHp)_>KRVbl759y>Su4$>}PJvJ?z`$PE+- z&m=J@y-8`g1juf${WlBz{tGMEyOPJ=_uYz+Vkn)|yeNz#MStuu1@BXG-|kS;a+TR5 z=da&^*|Ox4_WYxY9&eG~3cA&sW5Oua8w*Nf_TrMO?h@Pk%jcG1EKj(hu=(I~^Ft7+@~e;t#z6lGwLE|(p6b3j7o|B$!; zDinemMgcmEYWwMZetll9N#@jnu(ILe`%$~Dy_dhQJ-n`el2BA8DU?Dum`Z>mF;_|oIo!^~l-+O-c`VD@UC5bO-G$@>|IY*OFw-(|{oN+y<3o%+P|Ht4Su~kko%DL)lns-2o zqZGvbV{q$mlTlQ-D7LGm2Qw7BaVjIrx9ng7D3D)(y3f*c<+sCrC+*_VHs#@iAS!2o zoqN|@`;iu#5r}bxgw4-x`PL}iRs@{x(-jb{XJ$2g!^K90(_Jz#j?-F|Opl zf7T8TULNPUr*1wU8^15lZWe zZe82NJ)8LqaAIRfFQb3(H3jnDhPrjgitVvwmO4pVIXu5=pSm~7Q*!5cOtd)Jo5$8} z>t&JEok6XB86s$FnH`8 ztta74+a{Mqzs3*7R~^{EUYEKeW4k)DCM| zz>_;*VLBg?>~(!~M$;!Kh6DIl&LCF&KTqz0n*Dw5Uw$84U{CQNPV+XR$Fpzm-krUe z?0Lj@pcpe`r+3L50a&ez(Bp9gKP6D2=2ImmC-XeSNqD00!%9kk#|_XE1M?>GC&Rhz z`8TsxGr9X(ZZ0f2j8_~if4!F1i{Uq>;kkDKsY0)=2F+mIzVhqllz7IL+N?0yzD-uz zQ}{KSI(ZD$+^MQS!vTS4`zN)kP6M4fI=!hy%$atrG&@g8fHuKQwQahs&Xd`pUr>#I zu-Ijk%i6vZdgoI4eUw`Hc6EK#StiTb;t?(VNowEwuf&Xw--)#7xIE03igIl8{WjoY zq*J#36QmzPt&CVi{vMdS0c@MUTGUy)K0FXocrMQ&WBLL&whuLONAJ9*e;GEyx1|-g z6>DT5>Nm+zDo9tYGm0;Hlvu4j+8NUSEP4C^z8@Ct`%ftZx-Jlan=Kt6(@OuIV4g`|Zo{3IAV?*RsDrufswxnTNv4Qi8@v48g?Ms1S$$ zu~3l!AeidEV$aWd>5rn(GcxlN`=9Um&v!krvgx@xR3XGzchOMVgQMz(PP!<<&sCgs zZNXaVqzk|$!8%|Mr5Z%!3uO2EnnO?vZs$U1c1Td3f&0n=l2YPQk4mfkq)_<=@m*LY zu8oH%kqRAT&NP9+(z6}rHA^xS^?ZY3ZtjA=torn6bf9Ltq^3fmp_E|$g@reNNqGMv z?wtf~g~ExQ=rusOL``Oq<>=y8ECVdRniYF?uGL~fucI6ck3(_4A^*ppabta_0NsWG zotlP?zkP@R)00D8Fw)zid&hr0ZiD5x>PS~kEAto#ESoDAj>6HW`+Xf9ui$z zl&Fq)^s1DUEDy~u%{PKtl_?migy&k-+}|el7!&+DHKrg>1}Z=3WPUsIETJfg#FVy~ zM8Nv{EOQe1pt<3a{16`8XoeAaz{1XfQ;GZ8Xp8+9fRX3LrPyv`Im=liFd4WWE1T3R zm|dZX9}9X$oD5|OyB&=EdR&~6mqKZ>BFh>nlQq*4>TR?Bf6BP-xTcmRoD-x+>ACbM zO_UBns(>^>Is&0X1Pm$=nka}wx{62%a;S51~1WI6kqenn`Kq1c+)rjZk*z{_6Pp>rU+krqYNIRD||Z)$I+6?a5CN1TEcS zj-;NuTq?5Cwx30#>XP&a&8n9wI3KEDTY(GVR>}S)}J?4(gpLDuH%y3PWs1;vQaLp z6RLAVE>=l&*aq7falazk@=2kQsjr3OG|et1*?~NMS!{96m3MA1tJg?xD-*SgByJd%V!qKrmJtU;AS!9l|wW0CS)k(ZV_ z%QMP#`jVGT%K{Re^+x$7`E4!j1SVK)3oe9QQcF^pUh!*ly?=B=srxOT!*L-o; zN^XDKQ6*)iJFp#NtV)QR8&zMFn7a_Kei?C>ueVey?rh!V+u=pHi3${B#*DVzZXhMo z#FLxZCDZC0larHDxPpk>s0xC6M`6HN(MJ<8eucA9{gzmDJHe6MG%DBYCvwB{(UV@R zSvc9+A^p(nmq&v|)Q*T88(YhD)-ccX(Y43m5TuBwr*L88jESxX;T+_}a z^b6MVV#SNKsSt%3dDJ3`Q-4ub-=Z}`NKpujmoX=XD^H%7&Jbwf4} z(?x2P5XP2uX}xIZVF)wo=YaW>bqW0%#P&NSVPba@{@a;I!k&HKTa|m#oiNfahnP;A zLZF!`kWo8bA8%GvL<(=aWv2Az6mF2^>hwqmg?9qynUTGqlAW8|9StoFTv;cp?3H)@ zZW3-)Y;AoRn*Gw<{be<@g_!CREJEkS)KVn5O)x|8Kj`i5-Z(%0fOpsLZt2Yig;`4i zp2tJfuys0Gw)*xDPp7}Od~Fd;B&8veIK!$Y5t_?lT>L!^GnIW89t+jw9pf(GN0WG2 zY5N(8-`5`(eBUpopI%d+JG;_Y7%!*AK=A_SxpA(O_nW{7g?m@{qwV8xFK^zOQ~Qip zd0 z)}oyw8$M5bf|aGDmv7^=z2=E%qq@z6C+&o(FZuD=7^%*_*e9wjD$nF!O+^vJ4=6I6OqTtT1nx1^qC{aGs7NdMdE^f4h8LwilMM2&AF@k z`5YumQzzYMG1q`EvCW*_rBJSekFAMKf6mZ;M^E z&w#&ec%Z1qbxDi0@J^~@MJ&2gdK^*8U$6P`C4Z$99dT^xg6Z;uW7hC4X`$tj_|6|+ zS#EXD!anZ)puL+C-F0tVOC@%{U%r>`bQk@H4H&>S~h~pr-5jiJkvpYd9#qO9;1eyGb4$^YJJ6Pvn_?5 z6A8=R%QxG{Ml*}hqq+=TDQQAkNz7NO*}4)GcCDLK4Ne6&KXClOncS}pw|k31T^1*u zs@dN>LWyt|%}r&rMQSz6m0gl7Gvs_lwn+5CK0kcv$N0-J51UVp0?IE;l_~R zQ|s^6-31Niwdw~%GyF${si|de#H4I68|S1pmY_R4a|9RH#4p+K%UMdanIeOm@rL~i z0=mLjlA}Xg4^rLGi8KA;@X+>75HvjeL$tHYA2(O_7hm6lG39 zZOQE&I)qx4inhRZ={(&Z5ndPWxi+Pv+~njw^m=u>3>BJkm^uj`(IxiJ3GnE&J{9}( zW9G167$9%G(k33t&L!~Ng{QkLJ$rAiTF!6s>p<;F#W(-E-UF*e+l%wec&{1uj!*pD zktdT_zNN@Tj@xHD%2std4C(*Bg7oN$J2+GSSR7y>AOP;X{{H$BJtDRmoV zKh}sqxtmMt_rFJr-WLoW+S+WO$4^OaNXuMW>ekeFK=0%>FyGGp$0waEE>*@|8OqNN z^7R;Al%P;`?9sVyg|wQq)S8=1)t%``;djr3tCP(>Tvxl^mX1;2%Em4Hr+|k0+cEZdFqnQlAguVrQ9U>a&L#6kJS1Cg$r6K5I`b2zGAhRvw8P zYY?IdEnCKQ8kgR`x~PZ$_(bJ-de~6RL<%}#*pfwOmP)&yZal7Q zSb%8PAslg238Ao&R~j5Ey^%0b=8-17l_Y6OZKyRyZ5~(o(v@IwjRkO5x?Aum?_A&7 z=JzL$u@zx2*$P}WdL`crq?Ql&3{-a|Go*Z$tkvAEM1K{DGC_FW+flizcP6^mHu}vB z9}cUjf4nFlL8CWEeKFx$$xtUC4)7S&t0$LrC3aRd%a|&poGpL2JE$-i^+e!#w^SQz=Np=Zv3&ABLap8ob!rQgOccKyS(>_bV{>nd zZZ?_i?T_)=*2uZmlPfKCU$0huP8?@uGs!^qoVRm|2puaXO{NNVj;9!?ES~5->yfLY zpk(S+*`n1w>J;59YQCvt^am9>JIF8STlaZ9DyFsvq^n%Ps!r=A@6O9AVyF``7Jhh9 zsTxM28X4>>BXLc8k$xVG^u23RUKmuEY>mcI{l~9=o+zR+3&vv%*2Cf{Y|CU!1D{J! znW3AXxE3)_v-z+W+s2RTWUrjG79^Jc)tI!bzD_naP_nMuT#cw&HUUlogbS^btZL(w z`%gbN=+%}#kq4}-3Z$}tZ#j}PuNLctaTg;4~WofUmHbug0U*%&1DHz5!aqN zRBBh4=xzA}FN`7l`v^qw!zM|C@+Ac$NuccdBY{bSu36#`c^w1zDuhwn_dYOSU=hIy| zqBV*tf6jyb&$-ffwvoBGex^)2=FLFU;!_-&&$yVpZNB*%H?bg7k$ZAqckgTqq)}l% zTa1uoJSZy`w!eVAC>R)L1|aDU1EqnbW`GHu2xQN4IEa%a0p76!*g(8FzzKJ!CdSe5 zfjt<2k^AqsTF{_=92#B@lPe8`Vh3cvzsvy+-opr0FxbH`beIC6FgC=8v?%bqIkfUU zaZte`{Q)az4&}N3j?Z)ynl%o&pxhn;6tVz>xDR9Dz+i0uLJTv2g%-d`i9^Tz-w`+t z7|hetSHj2binEK)uRj@3-U1MZ+X#TJ5Hq-D1xYj_N<1zu0CrdcLf{exI0hdRBNI@T z02erpfe6II0Mel?q1iMtHB z2*{a=G0_5``&F|KnoMNI078&w)e&$Xa;Sp)%aVzZmlfwP6yXe+0C`*emk=&@Kp?&q zrUON+fYb0Oc`^WUzCy#}6rj8~xMB_IkL-g5$=3ww@ARRZP!3dt8o@_a0wvjn2~@KM z*x=<#e|s<;=RUlk{kvAFHHfbxZnalwE>Xu%8O*S zVH<#rd_)g^IiMP2$W$SyncN2_bj{F&_#N7v{aeOd8!{^29zq=+g#3=mu_vRp4^W4O z;ong+STc$pLV=2wP%lco4867!;0;SiHDn_!)aqua|M30uEy2{TklExQp}7z2IfYQG z2bg~^+`yfTvW5yLn|MHzgGS1EA5e+LGE`u+4ZuiA-hzUq4v=a$u7h#fkaHTe1yzJ= z2ZAPQ020JI0#w8}7tVil;)oD1)B!jJo^^yIPBRAoaD=`J!okBw3oz9YP~rZ2nFoo_ z^e@rJG2oUXa26hB1){NlDjaJKUdKYuwzgme77*nAdm%yzgF$-yM*{7^EiAyNMV>RD x-dYA}=ig;ZT>@avcqe0Tyr++Z6W-h9z^l+$j}lTL3?>ErW{$yNtIiNF>_6Y|N-zKb delta 16972 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