From d91281dea5d54e04e07f61d059b05772c50f2d2d Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Wed, 28 Oct 2026 13:35:25 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E8=AE=A1=E7=AE=97=E6=9C=BA=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E7=B3=BB=E7=BB=9F=20-=20=E8=BF=9B=E7=A8=8B=E7=AE=A1?= =?UTF-8?q?=E7=90=86.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 补充多进程与多线程的选型、协程调度、线程共享与独有的资源、虚拟线程的开销与限制、Go 的 GMP、共享内存和 PCID,增加配图和实测附录。 --- notes/pics/ipc-shm.png | Bin 0 -> 161407 bytes notes/计算机操作系统 - 进程管理.md | 122 +++++++++++++++++++++++++++-- 2 files changed, 115 insertions(+), 7 deletions(-) create mode 100644 notes/pics/ipc-shm.png diff --git a/notes/pics/ipc-shm.png b/notes/pics/ipc-shm.png new file mode 100644 index 0000000000000000000000000000000000000000..6f0dbef5ad4016aa0880f9f6868f841311a92471 GIT binary patch literal 161407 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 Y5%RJLMu3jFpOxw0jU*X5U7F+%X=x;#&KI>Q<)* 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
#gb~y zMk~Ozj&U_|&4J|V+(lJ z$hkBV)x$!U_n|ZxN_!-@6;Be2Okd~FKN^|^$W5GU=@L%@uKlBUvUH^+h|q;(B3=z- zFE!;bwkUV1eFuU5AJnT&4Rf94!;-A_CRuj%@aSs+PX(~1G7}w-;Z`MZW&+w9 zlM-U#6!xUGht5=ZX-uY?ooo%k!F6pH^7D0Nw~+#`%PK3K`ZoYL4ib5c)Wodr_IqDq z1Tp%pvB(hm=$I7yrN>M!Rfs-KB*#H{-iZr4&%8SJu`bfeb=W5amGXD-o z4uGy}GS6o?Wu6<->rF4&8pDDi8y0gw7ZJgvcuQ@ z?-3D0(X?T=2D4t1;nBNE#p73U%Sqg|+B^wtI?5cI_S8G>zm(k9XYats*apinUs|ov+|8~z`$2nfdcw8_Q%>;$uX^7moAed=ymSJwc{GA1PVmBQVG<+yrlZ^z<- za=m5AH@jVYk-iKkl-jYFfHXJ5XPOTe7timS#kux_G|JqLkCMYl%%;i*$vNdArbJIG zu#T#*7p>~NZ)VW+ual}qszN4q2eG;!vdUWAUhpm2%wRYKZ=RL$U zwLW!5ON&70;NMmjjiy!yCUZH=ZXOMt=`|0N&l@uyMd0ZG@L8tS%2=C;#WuYzmsEGO zPWV;$st_C;D&xT~co&1~`b19Zbt;-l0K6@abSs{0x96Q~JQLiGr7}q?;eDS>YO_~b zdhS*60Tz9N*ErgQueLKmbK_v1olb7)MjPYSfpJA=VwHU}6!lc#-9j;x>v zAr2U0y{2&Y5dHjjAfkdG!MirN;GU?c2=Ie!E!8S&wP4oK4B^nL9uWX+xT&M0+ix6O zGG%+?N&uNj6P?oSiekcHp5fNgmdghYB(Le$w4}zvbG-_$n?=AihvsrU^OJG#Tm+?K z9Trjn7nq+?mWwSm$S)E-KMUfh#NV#Li@i1@9EWZtAB$#mM*QG@_HSc8cNzxFsJL{{ z*0${WeaevcPf=;`cxk=!bA0@xwKz54X4k^^7)$aSqLMI-jb}(454TOqy>_Dz*9Go# zE<)&y9!Cja4}qHQeJ(rrOFG8-4r4DqFOTL< zA!Cgk@Sx$P*GKxtaVv;OgG2L%4qCpl%e+|&YNL=2aryx4e2jm8Gkc?VYtUC#A5`!V zZ~*AuCnawg0C-*N0tCuT&30`9Z~K+j!dlTw)@yY7Pqz|i`oP+$b#J(RjfdoA&eJrznd{B_>g(R_s`ud$Ya6C?Q}3N; z`Pxs!4qDrRUYw7aK@jz4X>t{9s&^CARO`7Q2hRp3r(SWI=mP~#HE=B1Et=(~n}Fj% z{o=xp;vld%yI&39Kv4WFH5@d18l_DU_86jk;d)dr75oP$=bDtG)o5@t^q|$eqjpLL zly{54SS?mB`*5Cs+|cmpFaM^s7c87ihM>ZGKk1GxUGVT%Ot=&ciZ5Ac``qPGL9O$ZQ>1w-O}FAg}scloVKr z{siV%**6Sh^jsmC-?0j>1T&q4OBCp}8$RAuctuTGzg_G!0Ultkmn22=p5KKTuXQp! zG-F*s;8$M{c$bg;ZPq6AV}3!mN5_8STA*skHH&pS;%X!omcO>H(70aDox-c+drXj# zmnS99y0@qQ7C6f!MMa*Gd|K9}vrX$IB6C1#)haCNZ}Obqo$}xG0K216>om}!rz>(c zIeT^z9Tm+1AXD7xGrl7ueWEL51vb9Z$~>$E4WIzP-P>)XP*z)Ru=gcUuw-6$64E7% zUlxadsIlKXa{~7Vt3wZb$`v@2xV&e68l!I>K%0z4bn4gT`Fe_q=kAVzygWV4GTH>U z1Bq=qN-YoCNmv$NUl5A)r*N=D$7na&xlYV*zo+ToTw<^iten*QT(AD|tH`~@?a6(} zK6666Hrg%VuzBTdmkZpH^bHA_uX0rHp$?{DF5_kn=W#G_x%uOWzfA9*s9W!! z-TQF|_h6+>X*#0mSi=G}B|v(Hqki?M=Bdz1;W2G!p0V*WviDh#_-OtN(BgvFn=-(y zRjUO_HYV8L;=F{yZlh6N&2b`G4MA{V68B}Wug5Qzdv1i39ki8|4CEPO2pn|WNz?A%P>U065^-!B?IZwICmyT*fp4wq;HhZkO@;U9vW(W`Pv;w}X}$Xz!;yEE zp3%Inkb6Ug&s|-nyuthQv**k3Sz(vRmzF@m^-W*HKLUke z#TlVAHoU?k$)}RKyRcPmH`xebpz?P}o4EHVbXb0foBeTy>LqL2A4eT0-)aty{JV|8 ztNI01Ao0KyzuEq+E!%I02pEb=&}}o9qeoFjzkbGl7It>;&RSTpcz(?!ZiEdux;ZJi z65V#zvdWC8=+TYsnd9@6UAFh)#GUVdX^yI{Mk0Z8KR0&x7zL@T_MxpY^Hf&N_)LtA zP1ONBVinXt)g%}+QfU0>(QXB=3#_WDY4cP;zaG|QQ7@ivF$IS|3qM*)N zy(1@*_^j-}!WDJ~^!#+8x;XVeSkv)W449`h=drWVD$M&6kz8X5aBBkqM)~&xp?x1) zjk~|Q_}W=`E(~}?vkiuI-SPmbN$2^QnYnqr6{aAY{bkRj`Sin~vV}^j!&Yz~ zZ1CyFUR=gWHHBBC%twGw$(;6|w02XxwOx%jueV4Ccb1OW{UR>ce-Cs-;iVCdux9Hr z*W>S{BZiol(`?YGGOb3B2|e6_T$_|p#H`-RmX6DN9)3o#1 z=2l92otjFs3AFaA(X!HDb=C0$db~D;aGuU9;A*OuX={VPgG=~}C@G+h0JCBgG&2Lb zMl@ZN1OArCX(2%TbUN~GsH7~(2`*HU;W9qh$0~SSxchxIB-pYpEO>8nyt3d=SkRrs zR@PG_Y!C>Wc{^M;$t9OAnpjCikMa;CtkwI+*S8&reb`na2y1=%Y%aX~(rAm@X4nT$ zo|@`u`f0fOZ(mG4ef4|8NR9L%V@mhiZYjWD_Ej9%IK|8K8<71fso+&s>GnE6hVrKO zy!f5!G9RwD=xsfaFDH21DGRH;3fDO6d=IY8PeuL4kTLs`Y`zJ*f7w(6=+JN^0T=_G z*f@R=R1q3V-RewSOX_h!v2t%<=;j?3tJ-?Q#8PsABMDN6GPNa@su8q-VKi4Bq)peF z*K1H|@lF@)yPtwkPTWy17{1^!MI__UOSCYlzBY9X0H@wTtaQy(#`4nAv!I9@u+{R* zD7E1rbZh>M5yyt8xfav*R`;J}ym@CV&+|>`*LlaSJ@18x3w@+=b8|7sqq#qRoUB}K z#G{**+koj>T3$s<0LHwWZDB!CeM4Pi!eVBNmut)0(W6~itNjkIqW$&z)Z*!e^cO4| z96?zK$lO?81XsVat?mVD z>)o+(S8YT1YJvJh&9JH2H}VnzNy#&H7+;mGEX(4eMCF7dMyvKp{}_ET`rJSJ<6?!$ zAh<9q_is_@F4(oU;b;(OrlVS>Yn&?%E)C{Pd7msglS)E}Rn>FX2)|)RtRCw4oWv)- zfmW1HR$7+Bjz~>5n`)gtrLg#Xk~9RRhD35*2RnY`5{ZaYu$i`Xp%@Z zY1Y*FSQ4(}OBwt=M-+SO301c(bN|Y2z)8$yZMMz%JMln$e-RMAh?Iqof;3YdNZDWI z@+(sP!-wElX1XN{O6>|vBBH?L}57!U=jEAZ`B7Y}xzdCT9>**_dp zwgP*K2(qf&^w(j;m466nphFs8?m*M?e?67E>H7KVF_Mo}czlnm83%XKrrTZ+FNDE0 z2LzTqlGBAf{kKbc9ch$kO{mLE)?e+&36FelI>8fn}! zHr8eiL{1702Wjb^Ee9G;s&{1gG$WqU`hxgBYSXnG_975RuhBC3Rlx`b21biPQHqZ* z<&v2V5gtfKtlzp`#>FT9CTkl&H*UtyB2ZabIavSfF8bhkp#mWLe8Jr+(zqWXdt*(C z2FEHbE{KVfT_)>j6G_b%h={S7dt z4tUbnl?A*O$)+*VpLpZF5UohNES!1yM0T&<_XHKp=FA^oh^?_T=vN5~Uj`T;!Yf5m zoa-^t`O<+u-_kNYdN=baV3`M=$Uy*J8ISwjT3ezW#O=V6!vqfVXRa3*$ll-ue|1U_ z+4?1pAyv2gw6oe3jeGl5zNwuUHt$~*do@tqgZ$~wX`U29yPxQToFISEOKGj+DU;x- zWF6{fP>uRoDX{Ao=}!D>XM`e2te zIxjpimjr(X`FV4^{PKZ!bN2C~z~%WD6|lsJz(%CPg7^}fPk(3`MX_y81W9seO11U% zB_cP&dJE3jQPQ#fIe~+ygE8eOG*oSw68AiPe#2E)1}~OD=@El~P1XQ7)hHXaU@a?I zEUdJ91_YoR1DFi4QraWyEH_lC`6^IXM3i4S={^5Okk}hqM(Yu4TZU{zKOms+|0iZW z#f|0Sp_Dgy=M@uO3rF%yZl_hSCLptAg&+YLsY#uH+(c+FkI5n$-@D-BHWdA+X&ezv z`R{{wcJhoh=~0kD zq+<99b8w{)K?x1iqT|!rGW~#(4k61<&Ic2qeGmSugz6K~EB*hJ#;buiD?eYn@T07> zOo=hAV;q0!)$tIm9e=Qep~fdfsSm7~j$vD5M6YsRb+j z6KVX5W%`@J?rx)UE?d%|E<%<7SPuo>0$?bsm|0bqF)35Q`9r9B5Jg(cG3PjcXpp0u zv__*{FqLl_sO<$PWWJO9jX`Dx1_r)P#6UmVaP(7@(a%FmR+?C4*pIT(XYA_1(B86F zJVEkFm;M|1ExCTOn`XEriV50ru%n;K2ZC7N>Qq1j+?}+nd)LSs9;x;-k^YTwZbCd( z_)mTxSf0R-)F(JXNYtNl(vh>Cyzu&Y#?04?_+|y=Wt%i39je)}rgE4o zIRxi_S_vt01GBa%r{L@%o{#{ie#agkWaZ;YHVk96d(&D13%{BO)>>t!n;a~trAomnJ zy`w*WRvKL+jO7cu&KNl04ffayBbH^Uo<2!sW>>!c6WfgjTNPn__D%K8iJofYf4+aNQ_>*}J;Ev}?W*At!9?15 zd*ONh@fCHqZS+OhqyJReU#8xg*k}#+=-sC)!jyF_>omWsN}U{W!MwKYG;2+jW1xc) z!S7Jc6{P9Y5E_+Uwid~;SemqiafU9ULU-sy@g4fVQ@zF4sbywIVKmgiQ;pp!Ttvs3 zqX?#VPGTtm*>1A>8wn7u&X0Gt_Q`p%4d_TaxzXC{Y8@p4`KCLKAY}fZXv1qrrfo?r zKg=#<<1Zw|n3gJomEF@b4vUiVZx%m`k9Ud?r~amj*A$imFG0r^2T4;>>_oOyo^GT2kG`;pBr5H zQG9KFM-Pi86+E=1&ZT=CpaPON5C99Qa02Z)d62XmKJ5(T+Y`_=fTcfs119*IiGMd~ zg%6YN^>WKE_Giy-!L}g1MP6-UEuaP!p|Gx()hJkt*NX|%l^y&z?G;9cRD=Z9)ZHOA^&Nje&&tPl#AVCH zsDKnV^aS8xGH)QB%j_50kOr=D{UHif!;3sx{ebGsLl;V+E$p0x2b47r!MfENYtKdm zBMO3m)B`kmbEXfVeGvF@RF>qNTG;7(j+RugHIHZ<;unPf8#IpmnR)=N3jU!;3?RIJM4aOv2w|3315*cCeKE z!9UF6GlL5W?zy;4H0`rAV-i$PvOL$11GoZ+*r8G%gn|6qpWbJLxs|V?*}v$Y{W@t$ z9O<7s{v*u1%pU@@{p9beitl7lU)z8a2PO{ zULHx>@+!*YBsA)vY!V>-TXs11yRGavb(&~@!?>%r|3&&|4zh=Y7QNAzd48TImzd$- zukC_7bOJC_Lk0@4GPwrpEhmHK>+>cVo&=JPX*s@>eD^me&Bsc7Cwvf;qrZlcM`#KS zR8kaONf3|0quuJE)aHb?0=C&7H-p-RJ0gm^rxQ` z;3(3?LHQ#(Pbe=T5gBLTZ9Yw|Qwkn!KOt|d!+MoJygu@5r_Ff2@I{2>^TSPIA0bHZ zp#~7E(&DXjBVZo3ML@cUGg)(a|G9NjD>2f}U!0V3SfI>L*Q{s^6k9LE2eu29?N2X1 zr-k}=un4+6`?kuLZ+dKot-VW^iv4RklsqrYwC|tK4uoN}s@+&q6uUC5jhw5eD9l*% zs2D8)wZ^Cg3&}C~MUMvM<}`$1FxOS;u{?mf!(Oi;ni_+4f2U^9nh)%aAr0vPw2A(h zwKMV(ivs_{cIVV}mT);6r;Z6G)C{FYca*#bnbk|&vgHb>+PFL7q=>cAR_n4QwK^P^ zpcf4NR*RdKSD83S5~r;7e&p_2|0TY#fAF`~|A6wx#h-pp`O!mqCD@~}9e&2c6aNr} z0A)1nHL^|oSQJDB%sPD#8*!vphFId#j}^|Q=Hn4Dk7#F+L%95lk&<5s@|On_ScNjZ4F zScqk_4?02?LuxLG-)+l>gT;&deaUwlF(94hBF^6&?Pr+-YG04!GJyf73ti>&XmBd* zl79Nni2+*3Z;G9NR-SMA3+E>%uC?*hAZ^>Yuj$rZsJ!yP2U65f(|cXL;7vlz{sHcSKHtCXZi~O^O9LkRa!FzBMRD^fAFMyzwaIsFe&wC8TO9 zCkcPwxlsRKG7(rqp^8OGbJ{s_3LfdKhUGp~9gD`?027w##BBH7*SH9Cgf6qQ$H=1u zvAwwvjGUF2?jprpM{;=b_$z`x@ELrO_ookKG1L%Ejb1*$R!0M3I_ne$#l7P)!!*kX+Iw<@Q8UX{)s@u^*RK zDrT#DlwU;HYK>In#lF532k&V51gCShMWfQMZAppp!0V1ouXVaD%f;5dk+Vg? z!aZWkZGM_QMtCmv6L8V@)%-6 zX|RbtO(txu2v8Az)a0MyNPq~w!%#m>pTo#qMDu<{w|JBRT&+y|Rl$;lQopSbk=I|6 zC7jBNx88`C<@%fBUu7WzRsf!;ArFpIMlcWA8*pJYg#umPnFxgYkF*SEiOyx zpB}Y$v1uHix{>9(|n-5&3Soe19nFh^OWN>m4u{4#Eyp~3T%Tp(?6}h zkrD?aSpwRkuq<12o>4(gCRWga<^69kthe(v`+gvqj5+O1wFCGX%h@K9U~6P84^%c& zyDo@JnX)%!;2n71X2%3AbLKC?xGgk?`PELQqBkwwvxY~K+jLI^(f>I+vHq1E40ax? zc~)RCL7Ay)%T9KSSxjWt!Nkrh2N!a2SthTrpHu#iPz8kHmU73 z-)Q96JhPs6CLMZ+IDBt=HGN@dHfF*!)Vo$-l`{q8$JVM26F-*Uns*Y^wUAs~`kz?L ze~Wp@jGc}DNKbl8EfDyCJCgYoj!2S6tHs0{+8=Nr!+rp_!lBxtu zeCODS5n5Na%EJq%A^lE@H*qG2;uYGw?-;-@2#Uz~G#xIj(OdwKHs;lB>(GUE?TG+K zKG94#jBQgP6tyw0A|bjGHC)wLBGst0r|m; z4P)>id^-hTh{J8$-C7q8=Js{@ga1xRbXZ;b=68dRf%Bu07^X+A3PS5&-gVAGrvjvb zDszx)&`(EK`#@?cB!lTZ)xC(B8w$_c_lLxpuuA z*oeGyB0>bgHcq=&Q={ez{4c;9T0M~#MgrdKcz!L~P|upNtX0aCl^TojCZ9Ff=kOK5 zAwQ|M_!L4O?ZpfXD_b{Ux?t!`%8+u|0`;>~|Ch{5dI;C$tu*GXJ|R9iR#t&&-I^!< zNqjk$cpwJi%Y@9ecVMRL-zqCRYQv!m!H7Mbw?#_D_9d&r{q3<=7%h8@h1gQ1A>Ep= zi~M!IlKQPS@^tK2_PQ!6bmwt^HOiS#(=@@*6-_SO>v;L>t;zz3$TqXmK>$5(KoC8c zc6snJ+_#QKVJrTL^b)pO&f}Y z!b3ZqgaQ=Xnl33yAcN&B6*g0Jv>N3dmcrKySwj6(nZS5B4&gfXS6%92hrb6w)&dWk znW_Q|ZiIZ(G$~8{3hcLUf>H#wH&pInD1(F`+fRvDaA#tG3kt#(7N{4m7rv9-{jm&`JJQf9s^D+ky z-@@CX_+NyZ^?R5pUu(IBJ@Nk<=lSBTrs+mD?%n8#U|#GhpCEV43XSC$7g@J7pIZ`} zvF?z66oL%YNUI=yEJ}mB+`!`hvEy^2MklwOixcwA)Ll? zb4_)ZQ@e(X=txN6^T~;ciK(fJ{dtmPbnxw)(mSMw{MH+7J=ZVz==p2}|e{n>I_$UQlieLsvzmQ)E_-cRp8=4c@jmJe+x! zIq7Hco6Ft$&r$DNI;)c&*Ukik(_?h-(aipdFh6;X+cR zW5J<4MOt2`C|$&3RF7uhM|eoM`<1q}Wr#V~azG!Rg5XggiPdmtoThfjw(?j91Z=rr%85&V)k^5osZ!08>Wo|F zPlgf_Pud%Hic7TaH^YcIH_Ds$JB-2MlyyePiP~kATUEw&1&v{lPzJYt z&<*qYpLgb-go_{skr`22U|dGC-1D5u-*VQX<_}hx z8(HuZLS53YuGmj&7SWkx;+Yv(Sk|Ys>nxTDt4)Rm2L~tNm4!bATJG=QH*W+4+>h6K zZ?1temLlx=#$?pPaywL3hE7X*gqR2G5p{M)$GbF}`=dzj(!#6rcIgSNzQAVUWw6>Y`FI4l)gAQ1l7F*#0} z$8oQQo+mf@mpV&<2t%UZ(^3jn;3hVw>K0Q3J(iKqs_RB&hV z>GLihsGIOTPp%;u^Z=Yo@Jz*_Qp`TQBl!mnzOEwk`nCRzqGV;d|dU0 z5twMLH0~a%)-wWwF|NGWh}F-ov>t?r1ku;I_=N7c9S_{k2Kh>w%zVopZq?=+zraE zAkP~g^1eH{oRG3iyh&NS2~6%Q1T_h&i~%s z!h=M3goIjY^}8JB7jO5SZ?5S?u0WOgl=8Ogok@ir2|}II)&ozhDK1cy!!#~K_MSbV z-z~lS3OQjg5E2pfV9^$P}hew_oz(zLpVa;T!4b{ zgr85$I>vQpiu!?%e?L%*D}7E*f^|m6m3Z4UXY|aj9lp2A5Z>6l@TiK_h+H#fG?v*)ene1=P+^C8ae?rF4oDO zmmx;w^QP!f-C4`u7{}@cm5#j$h0^PFNIiXC1C}3!X>9@vqdKTm&}%Z$G%C)OwW!l* zXM95ys4vB^di#0$V*sr5@_1baD#NKDe3iR!Um$Y3ec*i$PqfPP_W;V+8$P>OX!@&4 zpXe5T(SAN-zIx%Y9;cyRp*v6^8AkL4F|NWg+O+dNrc|TK1WWfwz{A0!sJ2@^09_XJ>?NEYFH#vB8`IWX9>4DIiF#RdC5Y1Y zt5F;p8ZcXL?Y$g8c$yB>w}!6ky58M!!eninL@2@S3Ss-w)L6dUYTC)kiGsjh&7qZm z^M1=g8@#624#?%P%S$kXaWkB+*uEN{qIb8J;ZF$Z0?P*eZQ`3d;`sKpXuLZ05H?QK z5<2C+#MB_Hkzz;#2Lk0nw03e{iTWqMe~3>=NY~!csNeaN`pvRGo&$dTIWk&>5yGQG=n+G=Ytt!DgX?-Wp>fs>l<0JW?aSJhmLfJtt8LFWD(2Ff zU#pQKgNsqYIuHuAL$5X@JSV$Y?f}6`veSrmmJRpXS!j zQg38rw4@A>IAmr%+_Fx~?z5r!t;@7A?@Taalt`bg`F?fLzf2vi#DjXsePwMl-bB-- zSh@kN*vp7GH#5(3Bbq4pVISgO()3h9UNq3W`@>V>6n=n-=XG=AP~ii zm~L}1=xkkv+fLD;b^_E+8rbS`3!q%$*X>xfjs)5Ci8ed5X6sftiR2;dL?{kV9(}q* z2h?jM+MWKHfBV|Hx4db`M(ubDbAU4?wWUWWS0H66JFtH)VR5C(X7Ka9BSU8ph7*9T zU-qT8^-x&kW*H05DSryfs8|HsGV}#ACOX<~7EIIQWPo?UW!1SIuCwq#Lxb>Tntzgz`}yv4 zb*J{A&;|70J%FWaekD`B3IA>lMcW8{-b$$HgDv)s!GJlD$TcDa9Ml-P za{M!jdC(gZr>QI50L^vId=)ete`EFF?5+O#`K&b-C|WZ(@4P5vz0gup-oz-V-dI(2 zoNQixz*LtD=a$3%L@!~~cuiN>gwlxMk_jG$~Ge5=Z8t7SRaj=e;#cCx6ZHD)Ex8V2X zrluw#QWtROe6(1!M!LQOuJ<;-8{^fk+GL5)ksFeuDv1-}|BYu?) z1JLMuH~E-+xd?oEsKI~E7J3}~N<*7KRmaStG@U{m*pv&4W(T$3bs%^mR8`SfW6Se*YO>MNt7 zY};r-K}uRc0qIVWl$MYN0qGKvZs``JQ@T^SrF$f#yL&`L+M%17bI<#&bIwwiKO7&P zx#P-x?VXzjC^W7%r18aMWF)S-@neB8I8s|__i!|v2T`Cx+7y`5_~PHg_%+m&q4L4x zh>Y$w>a0Q|n=ksOnB;lAW!qlRp$3^Oi+RfUs{`Wrc`)}*dFsV4zfZ64Vj9*`>+stv zXTQyt$dsJ;hl+v<1gZez2DH9`rjvzlYq_21_r?oUIHe>}t=%@(=rr*Ler zH{cf4m^P;|%ZGKL9~Gl z`a6~>Cj(-Z)Be+h*Si-sdlC}z;=>MGb!@r^B(;BXH&+5+%B zKEkmoX{H_K9&RoJ&$8@uqL|?G+ZA=MP@Kj{mV);Ir5Pw)fai3;G znQG+?c*Ij?p*7qmX4P?l!)T^ODqu4cp$Pcp#*!pp0JLpk4V9|mgTT*ga{Vrrz~M~` zZ?aoD$%gqNcmEmBhhWpEU=iQ@ssKhR#sXl1>9B)nxVarcOzN{WunxpgR~#WoY{1IF zoRo~7o}L0#m-FTuQhJG-9eQjx5D$SDyRaSDx>ASU6;%@=Tyyt*Qp)kvBUJo4|-OkIv#3TU3 zL!u{x^oH(0>r?wANn<<9C3e5f+S>Z(&z~L62aDf*j>7^Dz7McC^bj(ZnEUS=KqHrg zEJmLi_91QfAvgNQK`~{na{WN$1=B}I8smvSjEWpez)E^VoNg=)-SI6aFcE2{_n6_f zI?7iZE*qgo{mTwND4wBo00-~v%yov3yY){32DR_o3byKf;aKAO!d{)dcsZ(}9z}Qe zi_Xh+iU^rS)In#;0cXPnHzPsv7}ZRHs;;iC!a^BpahJcNo#%=8PhZeTNJw;S<$b{u zKJFuCZ6!LRj}v{_u{9};Z|`>mkSHLqxLuqP;N#nwk~oe^m-!>4%16G1*za3D6a{l9*>{7CY`rjX--@Nm}|L&L^w^Q=<4yp@U=Mf5#g!ST#yUv9c+V_+)aOEswXOvN(r;I#7`at7vV?nI z;r~aj&98gwQ1@ae!E9wUZL@Lp}**?*Sl| zvmS{O6GeToZp|oqL%R`7Bf#AUaA_!eAI5Sjzc4_uCc^p-CLSg`i(~Z+uPcftD3B}9 z{OPCWYR5Lo`|l~)$^CEX0=(_Zd$4gR%KBg&!S5%estvFNSBT$mgNl-e|K}nhQ(0=D z7a}eFg^L{Ep7O*x=vLg+KMfF=1Q;@g{MVuZ<$@~RPb2sqEEGWby2Wgs0k`*;xq<^` zfe=Zk3c>X^S9_&)wo!0*UCr%7#H78#tG2y3itA5e6Tv0DAm~)=y|+-HB8rf4ox(;! zdXNQ(CDKn8JsRP#+Z1!gQA^Mm5^L7}FgM&PQlh{A3vUy`zqRhU%0 zZ)1Yf=M_|2M+Pc<&)1gSw4A*-xrwj4;@AQG95@$&ILRBRLv5}hMJd773c6w&A&l5V zTut`%j1rdX@*w8<+*U5eB4T;W0;-An>D^NK*aJ=@B>?>Mj@Gksa-CFL_YkLep#14=QkyI+t3aQX}5U&rWmHx4)s z<4BfMal{Y8s2%jb6>Auzpb%sGc>4?a?}K#ci71Eqeuh&PsDPFt8Q@XiEVsx z=!_m>#f3g!Tz(JsR$q_lmc0T%u_eg(7lWL%f~rWQ%p*>$~gctkWce|1v_AIAT;5zqadt9DxpC?gcW3jZQ zG8?+};OFz)XHrg!O>CAtq1 zT=`h)07|#Nd|j$ z!d}#{X%`(}KT2yj7cQ$ER4ZlFJ0dXjkIJwnkJyaIHUKL`0!iyQSw$}@()BZ1tcgQO z@X9G`!GRTUW6VyR>|c?;Su6uz(+w9jI||!Cy-kmAn~EBAN5@^Lt@dL#Jrx;|K%}?R zygiMx&s7J^3~RurT?a68Yqi2ocb#6hxar9tFiFAUQ8bU2TltE~l~>r_$AgvDvn6FeV9PxNZJf3$o#q69y+qF>1wnL8dTi z00?&9Zp~zQkF;WN8xiOeq_0a|czf;sSu_{f%V)u2%rts*{;MI_r4pp;AB7KGe;Qpr zMV|B7=UF&r!tn;f$zBODl4Dn#9rk2J>JKc=;C~bi6#d}H6MN#TrYq$d+0*B zu^y#G+9Ao>Z9blrObg{d^uh5d9l>Ge2yeE{C_y6rstp3iumOW1$`I44_p`+2wB zc?h4e@&j|Y;BfKhB=Jw9V;4>X)%y7l%q&x+tL}+329)y@S(*hABgpm|4eEjBPnDD9 zwXgcRy~;vy&&ETL)pjjON5}Bk%a@i>q<@ex_1a`YijJBeRIRkC)=Rr5L`!>uSey*m zI+KhWt0GqQ!XyiGkz*vQ>SLZXJQ=GxH(gk{s18B4Gr2@XSwvBKF7LrD<>ExbSn@JS ztDFkP@lc*vHtl#(%@QN&JU=fdygU2+2UHKEAN2-dUZMe{#UmXa{&mCiF^9(L{XH*& zP}BDez@NTdNKsnW+UP-#_Qp+AB3Dlbh51>rC~a3g;R*G>cexmvRtBH1R#4*-rH_~~ z*~NnE$Sq~n&odGL$8mSN9X_qEtRs>a;E9< zqqo4fsZuUXK^0>32;>iLkg#S~RL>*NMHfnUw2pXpErY5+e9a3=-w-cH*lia|pU(`XT;g_o>rYzn&`M7? z0{eAwwp7eof_Ryv{H~7!0Z@x5G-WE+Q}5aaocKMFCt^juy|oPG-R%MtN^IJWD;w8QvP3p>K&)uOlqVCh z`gkVc>HW+WAW|PU=$t#g^Vefdr50c0J90&njQdid>I#b!;9w|73#Bod_@GA`{SE~% zZKIrQ=cG$q_F;q~{90pR*kQ5H!rLF@6$?Lsy0iu`R|;UWh9t?n&dYc+6V?C0(e$a* zFb!sqjOIQ?=8Mb*CF``}=Yi$ZobqZhl)@Hy_T(#U6vl=f&zaFa-#^rTLkYNtxh;I| z=n}c!VNHB_zZNXfcj-s}~M2 zz_1WxoNHpj?LTjlFI!KNlsg=w$<>3 zZhtdez(o>yj!1p|zi;I5-y2=(0F~m&o~%k^)|Q*V6Tkn7N7>C2x&M z`+x*3u%JJPq-G}w90yUW%26yY7tWQL3D>P`2Sl%Ptkt+FW@ zOz5WojqVRCO#+gp6Hhwh;ARVo-lHXYDdsBz?bCH)RRBkakA}QGDAz9dK#fD2s@BWW zPcOzSv%fZo((sZ7=oUF>=Bh^WsUS5=NTtvMu>n0)0uc-JTmR5`cl8@u+8`Rt3{r__ z;NNGYU}_$gx~8$_Pi3{H4wKcha8XKE+Q3B5<6h7SEVjm`?I~hh-R$*m*x;gN1y~5y zzSg40iINcNT5$mbB#=7FR-HJGtXLtP8Gntd{^Oj2%oEPL00#p0OGbKKtA;AkT|yV1g4B>++EWgr3!`6mys zd(64p@lbD{U+eA4G*lI!0%P=#;-dAgFveG2k?OJ+&Z@}DCI4;=hX{2ikS5>}3Qd4R zVoqbJu@+L7xjbg16XWlEAdG#B7+p%I6~sM-Z#jzN=9Cqd=;1BLD2&uhTs#i zrjn4TVYuR(auu26b1qeMl-s}@RRt?{QLA)j_WGuv8BA}X|Nr`t!l~hQ#D|l!Gn6*T zFoBp81u0Z47JoHxWA&c^UOZ8WaQP!ib5>{B!{)`}G8aWqew2?^)>ItY^j~HlL-`E& z{ZYIv;H&k)Bx=qIFWLl3FLN z4Lxa+1mg~$9cU{tX?>v!-;!8g=NH)A7k{1s4i5=f20*pi0@r+nlPYN*AZBza%3Q8L zK8TDS%uQvRFBp>K7t00UoMH~o0PsPzy7OENXtYuDA}ckM*l3a^Q#r##0=lLW%aW{6 zk1zeAk8 zz?PeHNMW+7uj2@#id|%`ECC(7W*VUXL>CC^Gsvg{gSPOA#v?^ms8YWLm0Bm*5vQh{(BG089RwznfY<^YS#vmrELK-BN$ zpJcylgklA)U{hojyE8CJ;i!DiMf<-&94l(I2L%=tNpJGr5wL9eU@>!H070Zk5x-y{ zFh>M5ek2bC!AineYZ#Jg^H(0Yy1(pIk(^z9`^o~@6F~-lhYxe5=w7RwL;{hz-phwu zJ{si5pCV2=C0R|eX^RMYYVH1jU>HPf2OmRQ+7wF|S92cCP=hZMZSd&xg$Ao4`w-@B z;lc9zr&%FaImCQ0+bR>Cs5HqP_S^<85@6Zu~TAGR`6SKc$nay-uZ zAD%erx4O3IQY5?6HNm44uo_5cq!s9s1QSfx7Mcc&#DpXjKi_!nyAU7Bnn`LOOn|CR zfL3t5V=k@88bkB8AQ&fN!5cHCgPKlg}o#~Gz0ZW1Inv6W_drlDYgM>rb zmLx~i{OKD4G>%GnR$`z>FwWzM{u%`!nEo4aYKS=Tqf4m6efXre!85iF)(XUIUeg5I z*&zoukfE{Q*}#j(T?Wsx54W9+V|hspg2iH(_hEru>PJu|C*BX8Vko(h5e`q z)-Lk|jZO6Ff0i)M3__rIT}znt)bY0(M8Fa(t|oPGB(+En@S7ZiTRCdk%9YgjnhxH*^A8yY)4 zw)@*I1udEQ9dDeV*S{j$(8@^ry{Hu6ZE$BFkLPc2yZ+r&T}{oP5r z1XNv1-M?>WdsbV^|NI)`_*NMAeB)5>)wRCv?%>@s5HSFNrz;BYL<TQ0fmX3FV7MqngkOh&N2_=O8=Wt`M12s4PeIT22nOEoep zFU~pFh`hb;n^goqM89jn)WPg-Q|K8Q=4cU${g&}Q3P^E2P$;T@p?tc^UJVoc*jEvU z2njb1IH^&UzP~C9BRiv}T(A1L|HhwiJtsL6%6ffD(!5Ho3UW$4f?SD9We`AMvcGry z1db*t9y$ETNU+kl?sK@q-D&-^rB_&&t6kRi9ko(2VN?P74E*OyVgHy4>?!71ii~~# zpmt%rFx)RKw>pje8Zj%wNtisO$fSps3uv=heJLsK8;*f)rwZh*r zT`5?aUyS?h1+Ii!U0o^oVc@p^%?SvBokKd#Wa!8x4#T5rx{8YMcYoY@848_Ot*TGA z%@d60qMlevMl_s!q++J6Jev#?)7CmjdRKHeEYw}#EI47iOUyJT)b(jQmeW=zD_|?8 z-2*ZK6ATY8XCE%p($dAu_cZ}&`7fFMUa{AK8sG~DCiGNRuX-USAUXzGQ|!FAnU^mEoTr?zF7{Ntb1{6OX zNRjE=p16{w4|sI!oFi7Rdo{nZWF>mn{K&MZWHMlI@OUPcrXXq7n9)G+ttR)5kwjN* zku+E9g`h7l3nd>1eC?ZBrzE87raFM7D24m(u92CFu7DTfa(;B27_qZ%%gu;9`gL;N zHu}Oai2330k|RW3MztZZndAERx5zpox|@DRoxQmGa}Tv|Z&5i*=)olzzBH0!%?&R! z#b!+%LsT}E2Zh^!1Cet()Xi&o+%7fP3166tU{!7Jy3Ik99w(2|Tx$+Q#k9p6H;)Y% z5P=)9j|LD3uRDWT{>tZ}U>`>&-$6`x7@0-EvgaAtPq z+-SEC@Kq+B>(eu0RT%a&juXpC+4q9Z_baQ7ZP29cuwL=tWU9U^YuU4MG>_X5xYyDOH@ymed>2q-IC)w|d#fdw}wk=V1c zFH6Y`WO=D8H8YOO1``BoC|=9-yif*0nzNQa2s&M$fzn?j3FA$5U$z#?w6|~nxy*L$ zJBEoPc7}htL|E;lVQm&GOI)Qn5=@c7y6XN!;V*ES*p(FGJ?GsBKJ8j_JPKdCk{$I! z%vELu5n`w+h@0x4p7&f+ceZ+sotz{b(&J~nG`$&($52&iu^ehrIb9F1|C#D?^>LZC ztam^y!~Kk-Q~zWgLB+k)WW93JpY?tnqsGy&Gbub)V!N)R>%LWaw}M+d4KZc#(?H;; zvkCe&p1xmAcyAWx3`W)vvF+8dXtg51ujR4d>nt*S?-xr|M{`#gm;xMN8%TZVOEfLnkyU+3LMa(K!Y)D}VPKy_pzY1F{OayV z&$7hQLKEk{d&$f1LzBIJ{oQvclyd#kZ?9CfOs|*x^ANt_ZC2|}eFW-(ydpb{if2EI zClSwD4-N0;F{MSCcFUOMQR(sa{jcp2GJkRRlQUW~yu!C(E-(3J7i`Eb@lE{o9Zg!T z#)oBH6r1d|yGmg3s?uVPkb^dnH`K09K5Foc8i?V`?QdB@JYNoclDaJ_yvwiG==%QAr)eS2GgP~TInjc$Sx0pWI8`5W3-0t&!ho{pz9m#*;7xCSOXGEM-|cthuHQPc z6D`F!svFncZ^=>n0*_=lDttS+sXB7FBC+AXPBu2@5z_TAEJo;k!oIMH|4lV~spsJz z_ab|D}2tj>K(89K*zS!b`0P+``Y(^Z!M4ZYZW{FX7sz*38u0idh@RWxThTtf9HwthfKs%&Xy*_{d~z= zML!J$n~eWFn_wj~iHAD=Dsj9^mAIY}gx`XQ@wtfC%^C6dQ|BLlj@DFJ&;RlwW-kkQ zxgZ(rGzNha3LUv{$b9@qj^u)lgQPFXBzZ_qRm7 zG@zY);j@O_=a<$dON^6%ED~7mzFZwN)6LKShi2=9)2TAm5l>DYPMk;RJ+5%7#p-v!Q#<5=C@zG#kA}#6UMnYU& zM^nqhfY?@Q}KDu`~}KW>x$iVM$(ekVG?JBC&iAj**#_3%6rNO06HkyrrI z6BM^FStUTfj2W`&uAIr-SX6HS2o?<&Az4+r;h5%|Yv<)h9oumCxS6*INC4av*j?z| z@fbKoDfYIeTNn`k+Da?i-HWldHL7b~5$WqEL$(v& z-}{1CvQASYW4PLGrtaeB&=4!jpI7dqU)49S`(FUtf5hvg4O=}@`QBD=*GWd@c-k8$ zekk=^i*qGMbn|M6Hx}ApaZLv67}fr0E^Ah6xt4!tD0j|q*=$b%4)bO-%&^L+PJiQ@4x-+-+m7z# zn1Iw#_du4EjN|>b$=w#P0p(Ts7LfabnYSiFR!>DFtoLkfbJ`GsGD!;_D7TK(pH|CO zC(|_F3Z0iGp5>TK+y^^8CdSV!3;7caVkNysPk3pBCOEi@hlz>HqHuDR3I!hX!~(CE z?+lDyZLjGp-yMC4d&Ov6O~v=&Adk?@5+s;9RJXj`AHbEg?J{=SaW1Lr6eTpb*zTuH zCTtEtnv-nc!hF=KV?x`O<^I91i}^>6Eu|EqgC}`X_q9JHSm(IaTt3Dh2YtY^r>fx4 z&i=F^TFTds^O5g2V$Z+o!D@EE{J`yUhVE*zYBd`nKpF6_+2m@$59Cv&SemH;*FW2~ zOpe=E1gp0fl4mrmA0ZFx=QbxoY>dOJ#}IyYl&qGVHye2yLkB4aZx^3XuFN;t zR3g?VpDd#2 zIZ>bz)970xaowCW%jfSmcw9mf?CK00MbmEAKG*gF$hJ1_{=)v*(y^9xzFevPku)u@ zdsS<5ygC8(QfM9_ihr)aNOzx(>&E}Y@;z0(`AR=O@Lry?SL($0;|JNc`WKVAcDn=jbRmRtK*>hF8YYhKRH3lHqB6)Dz;i07?8xA16Af++oUZ zI(I^+&v#j$-TPdYaG6y1Y=~X&JeLr8roDB`xW%}l1H|c!uUU|;={4Dcb_++gY|6af z7>Lg}KJ<4qrrgXf5ULxg@CT$Pq^#e-sXI>|4;&){SLWQr(Pp7PEt)3Yf8d+rZG09Y z9#Vh*kZC6+_uVa;Du{H6SYM$gp6yQ&m$)56e>TO~{_VQ78Ev_>=2gq_@7dk(F31Y< zKk(Kv(E9Fq;d8*OCX=)8F9u6o^f^qyRRNj&c|R!GO|0LU*tVJt3fapYYui*>lNZCV z0fAs9;%6>CzlrB8X{h(kLt=<_*-A*yE`NLV(e^LjpuUK2nwP&;E=x*2uKIP04ILo5 z>+sj__F_))ULi`q%MEli+U-vV1l$dN?Vw%o+YAjJxEV%xk0e~ot8H2Q!5w{;c2tG2 z-WITRK~kb3e&2`1?Dj|D7JR@Gay1dBdgc7uA~#s1qig4!|7V39S!`?}^Vf%Ld+zZ2 zdq{S`PRN(jM*|(_quXj#+(w9YN4WTyDt!U7gwF@R-J5pq7G^OWP zq|M38w7AV$4=eHQUwlwoMh7xjIU(bQ@gIa{K=ID<8PeDsPxw3V-Ru$LAMejaZD*f% z=8oSU;Vwk@--e3t*105HlM>^Jd9Q@>g91rKHA`H8pyPI^Y+ zdI+O3ZuML*jhMj})^>2@t`WOlP&0utPFxO;ii2FGgvw9j4l-VMm^hC3HxefS4H+)hXJ^o?aUnvZgK09LW_&>wGNBx%!xbR{JeR`BTO5i!K5k)hGab=6&E?xQBdFg=J#!>mlwyS<`Kr+y3j=qD*7r9d6JuUY zMGxte%0WsUx#zxg?(x=#)VRq}f8ej~v7;D#z`#{{vu!IX*ZWt~4EL?GyF>0( zHmLTpxhE~ETvB1P?pyj@W^~>q6iMK|W{4d!fqhvAJkBiTNhaXF2? z8wYbrqy)%7zCAfE+xx6CrXuCU@lU>ie`WK&f}`mhN+DTG6d2@4re^ej9^$+XJbokD zG7h4nCJZse0zGZK&Vt3$xR>HCYWef#nsj>yuk`!)LK6A#OE)9WW7cc@cS_uYI^yaTz@&$8f4vU0!ix^)syM z;Dy&<(k!tC;_TuJ*fn=~_@uV~c;|?Rr9UD$gd1`_M*#^q^gwtVkYGF(sx2)4XnUPv z6tECTS8zzO(n~HQiHd_g@Z71xIt~2y3pGcHt3!J3T;WQ;sOA(?PF;yy2s)txt(y2w z(p1PdjBVVF5qdGk&695#*KfxS1TRnL>f3*v*M?bY1Zc9Fuk1?Bvcsl(5(h zQFHD@F}dV^2M&wAz;pJOI9=6icO?wbcYNIY=a3q5LwzV-QNaMJ^VP3lou8JQ{bwBq z<^Oj$EO89x-wGw-S8RK$q6d?Fl~h=2^G~+UkQ#2w*aIx;zpONbtaL|nay#IZP?AsB z*eA20%aRXyh@_K7kOii?Jvv%<=e%I{`m;D9JZQFlfdJmvt52oR`2!*X^e_ z2B_Sp_3V^L;U%&f8lcfL?}510o%-u`!zq$*Qnl}Ydk2NBwVc>?TE0efml$1aGMe}f zw)sdQYVXyxj`g(SeN8c6zy8tssVC*O)|&_#Hst=>JCXnvZ9dACR57PBZXy^LzHWS? z?GutLVtjKrpKSnx{CPcNMM~VIdwQMKXhNV~BhS6ku<6Iehk-BQDXIDZ5>aH3@~?D> zhrw|$ucPnULEA>Vh3)kM(^2o?Y`*5{%af+VRc#F|O1NBS(~efr?39_MMWIFC-Mf&b z5N4G$S(&(io5i{+r5e$HVGms}8VebLx*Ne1uq<6XyR$kF-z_M$nD59E1W&>drm33k ztMBk;Juz1d-h2u7z6^o1JKYF!XTeqO|M@xInW`M`L9yDNiuBwFap#2^coX+~0h~fOi@ph2iZwrdW}%*qjg0Spdcev4h+_+Ti5di*8gf2t z7T`|4x4>!8;ILF60Gax3X*6wP^Skl)=@Wlj7+x^OeCGc*P&Zry(jN>9`fzxfbo zF36-kU_ROBYql%NcF#hce_umi{mUA0f8w~Nr;)VMYy!KJ>V4raX8&e1M-KFU8q8E# zSGro8%3szvNvgiyWb^I`SVoqY2mGXrp{NLtQ$LZ&=0gt7$im`X#f6PcJmJlgiZYBU z6(Ijzp{^VMh}8tM`^L40WYB3!F*;sLcRDoQl#GF$-*)+A~Fe6Wj4Oq9RE{LVSa{%$=NY?v)!ir)PY4tjMpH$_7#l9*(6uE&B!m%Q)&Z zwTu_G>us&TzvkBD_$?0hiX4!6gTD&DTD#jQXblzD#cVXY&n6L0W$~L7mK=N%d%A8Z zv#8{D@|AU}_ZyBN$J05FvuRF~uz;V8D)&Nd_F>^5&`OSiwKChLwozRiDZ7h!_8BND zMiS5g&GGA;F&fMkD3yKA?KAX;p-u`t3S_>pQq2hyVb}~a+|$-G?3-%muPYab{nLI_ z3~C-wmh;F(Tq5gG;eR`BhyU`k`}^KXBkPu59IC3UAYdN(5)(j&BNUV-p1v}*@%-?N zFxwOE(XVE!{VYdE$Z0s9nd|DR3Y3}D9iVU-K9IY?FG$8IZ49LrT24MF~2mhA#m6jYSn3_9KqjO?#S)Hnw0bxQ{X^|w4T z@a(Za#rnb;H~l!y_^(uV+MH@Bn^7Wc{0_c;|ASMcnP3X_A)Y+^>wYdgecR`W4HI1f z2Gsut!B|QwSGx0VA#LJ$YKrx-U21lt2*qlsalCPQS-PP&O^B#{+ykmS?jnd@!zZc+C^ZkG!z{9qt(7JGx2CVo=8OOH=qfc1q5eq9$9 zzO%mY4=Z!wB$elHW7mnGpjO^hpqdQDumFL&g^h)~z5pT?897~1RIN4@;27ik94oue z7@$OL8ltW%PGOJiwDm9oG1M+Xb?blz{WPzB!H}=u&dJGqW1^}wkN~YVII#IR6FU)w zg*l&&@xjXf8oCWokujtSLe@m{{=v*wEP}&oACSMg&P3=4oIatIv8jn3%~~B@_i|@o z6c5>r9f zmrx_$bIvQH&*Lf;dRl}V%KGy2u>?nWO>V|3;Pd7XK~Y?t~n4YOUzp408{12$@d{HgsB9yY1qf z!UfBnX2GsPZ}!GWR#J3kwVzm!#Zo){P$0In#>ZT@fB)~tE`13Ea(0itzr7%GUZV2q ze&;(c6a<^gzZ;pAh2o9amhXx|%n7MGGQU^5+73f}m9n@TR&CU1RS2ez$j!M=vVRjU zAMlC2HcS1h-sCi%*0~n0gLHJgwf`G9_rw(m;dlD}A&l%#XN&2m=augY17p!c zZvKI!x8cok!X^pMLAuWi=%3GDh55t;{1g#orSPQLB!)K(QkgLoeT6$;tx&Ff7c5m`i;chU z!Y{&)mke9G*N?h;lZv@L zW4=O`$o$s#szNc_sW0AGK12D+nL+{cxqJ7wJ3i6Ui#PkZsKv>*iB1pK32o*3;;VET zE{q)k$p)g_X9_PEv%#yC!|Hzt}`FB~{987z==($8dYKuxckQ zG03@T!(=OmJzV6e^Q(~MF4hWmpPT)XWlEMx@bas}tIYyk=^`&YHqt0iXxc?@-**Sj z#FQx6M7EAsCCudue`0qrF+R?|FpGr+IFul&pFR0ZOAmRQNpnCvN@uO3_9!`Y@d_{p$U@8g=;7me5DR@ZB4Tr_Xsiy)9(HrX z#Ij8A$>T7dc$XL#mA*W^1!uw0n+vAO_cL4b$@XmZmvJ6l0h#-vuU>A!)A55J1vd$0 zHfJrKoUhl+QyU1{Po9P6VOpJDDMzWcJNDnxHhm?vJf)ym7gG1Wi!#cM*%wo_;|&J; zY4)Jqa=BAlGc3P*4~IRMyPWIJ73eT_{&pZUiB`C0QrqEGpL$X+jn-0Z;dwtPe(VQt z+Ifa@wUz*V@FP)Bl#wTbN1fC>>;uMU3EvB!>eGSh8x_y@Pf^e^GGJGEQ|nj9P57Oi z89M3P6PZHq!f0x(AC~mux8lbLD1BDK!a_NVf#Kvl)<${%0jfY-OqW`3rZcXJay69H zP71r?t6{4tZDV=$^7?_1Jn^lnVvHjC=ZDv~&FMD>PT7}g2f0MaZQPEqsRH_Dm7DHD zl=eT-s?=Zl+YGnc)ec`qkz1G+4NZ-r{ap!KU|Mm=^b|qy{l0%%S;xUtyZ^>0t{?}` z+a{?-#x>Pn*vL~X>o(oByXcS*Ws#))wjYO~thBt`nw*V>G)mTLZp_Vg}Rua5+@qKBfRdxeoc@{W~jxFyJCtB_3@Svh`3LpqYGN1?k`rK~pr-stm$ooZ`ADio27Z(GL^3Gik9rdv zaz5Y)^f0-uACS0ily-Y3@UB1XzIHiaB$zrMkV9f^L_l&7SGf@14<_sD=;sT4!Tq1h zPDf(Q$QlDY&aU$<3?gekJAGsSs?yYWVKe8c`@R(a5*uHqc)Z!dUM%(W+V5|F&4urE z)HD3|UHB+`!sOJ5KMUGJH+S~jO+KFH(&mZZ6o`r)f%_`2xa{wQiMaFDXY07}+w=ZWT$97= z=>vU@nRgFSHofD*nv}C3YiAy3MYpG^YEDMY>=#f@IBr|fuRwgiBPDvmhbaDtC0O2= z^F=6+Ai2cvVq)m#7fYSHQ$ZYm%j8PP_1SShudTb`)h>w##g?Oy4|4bTuI4~_(2&=W zwSx23b0sW-FhVes{4uSrhAS0M+z?m4ZfU~P=kcB9Es_Sm^XF`21N()rWuMh)(qabD z$m`N#{(dQ|Nm5<5sF)r>v?IJtzVNQvI=XR~<$+lcO^epUKre+v7l+t#^^frkLt@Iz zzLVVf(DhZZT)W%Sw&SzKGiR0nQK4H}r~NhCoPG@b2j7Ceu~D$83BCiEX5zGwSuQ5N zVma5ij`EJmI${e`^X@_0yK4uy?~a!aMo#N4^Vo){A^_1jWf#B+{9r&OO7J>A%S7IwELOkCz=2Vt?;{9ojaeosJKy| z21j3LTZ-_i?wV&?aT(Jf`4j4#qh2{5qF-%y-a`Al5iO|@1?2~yC6(UZpu3yBe)y#3 z@C9Q8&tF$zo`Feu(bp6DqfR{3K}%dh2NX6qG3&_NgvE~b+OXJ3Wix{fGg^VD*ZMQf z`%e6Yci%4L2+)`!Gs<16v9khcK9?y{R|Kx=@P7wVO@Hv5_xo1%GWJzdENeus4u`)$ zAL)GwEyAN%unZdM7+LG#WuR%O%bzY29(x(t-fX4uQNvivSkEZ^J0qLWFq_`}fBSG< zG_~FW-w{4?p#RCC?dgcaq=+n(Y@zzwj6exZ|#=YsRQt1=?-CG7@-oKJL$ae zKedayhv!-1>fQyVZEsV2vBKw6=Af1iXrI|18Ar7BM!)9Od9HtbJdaPEcK#mhg#w|1 z+S=9Gz>4^?i_N9&KKyc21@VKOc5t~owbd5Y;sIwMqUAalrS{|YZy2v27r95`6wb5u z2lwV1iQSf@%CFuHl&nbXrcUDTyZ*(?yaaaN*ys{+YbpNzpq|rbU(P^+GEsb9{?l#~ za8y}Cx6n>*Hle*C3i#dxcO$Rmz-=ZpQ_OWdDB5;>M9s03Z9U0hR`CUXh>OE_-KS=N zGHKmFYBEm+ShlaVQUqvUjW|)l6An_s=su~SCu-BZP=9Z@ol#u&ga3sJg&_lpO_48` zF5`Z$3pHys>w0RtM*zI*r0v9h2@H!k?x#*7$arA`=k^j4RX-CAKP20sy!U8&YT%nz z?s|<0h&Z$iX1d{9P96ZmJo>Xi8uJVmM}cDSmTYH5>}4^R%q*7n~%@BA>c+56iG z0qzEfNqqXxlrh!9absM(n!AUjA2H(}-$&Tu*RYmzo!OhVd)}6yyeLA2g_Sq=lPI#rducaqbjrIbFSY zf45A&y+iHWRjDPkt(%M`o_)nh8dbnjUS1$r6~FR(X(0=YOa0H*)bW@7WW{A;RZc+b zM{{)lQY^1efTo@VimI)T@-n5}dvj7$xw9anL51Ok6}+SkLYW?a5AHrJY%?pyaYLIA zmem)o5lnM2C2NAe&n5<1Xw`Vnq^+trOH zhw_y)JB8HGN6%=f>A*f8H6MTMT0*+u<{s(KCyLk1k^mWURQ=M19C<9q@auURSxw)| zNBTaVWAO#O+Cw(*>&k@lCWU550lZ6)t!x@s&pr=5a+cG?o zudzDwqt%U}WVp;Lmh(a=vP1TRbBRV1XMXR$5V<%Fj)kDxu%+TMaHw`njh>zBR`LpW zQYimmqh4mP4(9y7W(=|}J{$Ik{GRgZE35adB%{Q5?9OC1n{Z4i2>m?*Hn9?s^Z2EB z`mOb8&gP49UcIZb->T`AI4>|uXq>+)y7-nm*}PI+s~p0(feP^^37J$Guk7I>tJVi( zym)n78Xpur;w#nP%Ur!(xVPGs_V{2g&kJI1r+Th!6zoV1UzZ`yUHIza&>V7vGZoR!j^Cn zf{~tRLmF}goWC#Ni181tJ=sSMq>MBqP}I@;{pcdmlF9wSd8dYHmbsaWfs%DODpUOS zd3S&&5bDIYh?qW#{C+sApsYGRwv{)!&VKLF_?YfQlW$YgO#GGB1iikIq1FZ9U|{mz zneq8mjjIE-6q7r7O_c{MLGxO6Y%(bE8x#UDPihITwQjYd(ai+VD2@ixxLf==iCl^+ z8bGEci`Pe?26N5ke=_(>KJyM<0o)r#rYauO+~L)i?K$OVt83%1nShlawJ-c*@b`@gqMID+)ho0q*-!4F<K`d)7+3;r{C8OrNnOD9}9OX#k~gW)8-bXm_CcO zTJLQ?RMKp}>&A4s{-=4rf6AsD_DkZ`r`L1!TMNA-(<9&uptN!n*AL&1Bh$}01lsPu z-}VIq50ED!DECd&9N3P_d9Eb02ZQN4`CWVVyGwclY{m%<*Ga|?z?f@rSladA^Jp7= zRAKM{4-#Y%l>6+;nXZeQ!(Yod(3kSSYvAln3tWFx1cA7u{!#i)$P;_(BbOp6g`C!f z+J6&}T+c_`YIk<0OfVZA_)YxR?s-eysO4$Oxf$rKc^YkSLx*v~ze9^JD)Ls;8221z z-JpP-7W0h1|viZDozc%^+>9LVY+XLNjG(fU@8nsvunQ z`m4!9IVWjqGzCNVe2Fzd6??2wkD>bLj{OlSLR_1XS0dTmw#dL3Tz<$IGe9R6FrBs8 zL~Jc{E1%D!V_aFybd8AG2;Dq+dHUXb8zal)VRI%p`b&GcBK*-7)y!fD%j zbMt8sJ6 z^G)hq@sIbv0-Hlr@bBketk}e1XufjcfGBjSLDbyFzM`ip`&(Nbn4J7pBNCa%%|1-t zPm~X8W<%U+8Nb)YKA&nPt;Jke$0^1sn%08QYxY|U9-e(qCmANk?g(KSQrmYv4V zbn-}mx0>s=(o>gd4EcDzUB>#q%>kw2;&XpDnm0lN_x5!Pw}V=exlT=_U|ED#18+SB ze#q@BF43n5daqR|jP`B!a&Pk#mx(?QX#FMedU1p9!J5{E?Og629r@kcnZ|$B9NZjS zz|k}ou9GPpN?5mXK@q|A1OHH5D><0eE9aBbY`}LIn|ltc8}a<_?CHoIoHF&34~NS6 zb|15Vb!w?^)&y$#T|p*S|7X1pC3pC96w)-*B7zQH;zJ+xT`S?0iowG>= zVL32Vt7~aE>*zl;H1_h=fd5AGd}FL`!g25P^#jjwC+G8;x#d{axT~w5^S|hfycRUb zNMFS{G&gM>oP0k4n}d;?x9FQsK+?E!op@)>Lq|t@ym8UhH2A9qU}3P5i!r;j_zCY( zr<|<4NAHIFIsf^XX>{tw@Rwbh%1H{G*_mcQN4YF&^ZBdWfMD@m4z{&H!py%%2|!M$ zsQIa}8YwGnsrOs49QpD8*YCH><1Vhp_0#$G_<{#k-?T(h4%Ft^Fosa>&RvFZt#PbQl95bUqZ_q=O7B66U>m9D6_iQoAjsiTFn%YeDLM`xyWFkHS_D!?~fDbT>J+1CgTez(s9Km>Hd@Fa5#utVYteO zXi6sRKmZq6?kRE}Wl-Gtr7sXL(>`N$E93BVU@)43;V3b7`C)nP>Eq#-)=!IQ(uLZU zJyIvFMh4=fQM4|V5erN2{P8a{4Nu1C=!~0PcGNpNAE_)`Nhd)qpx*}1;*F)ZrbEoB za&m1!@+2coyd>>aES2aM0K#bz42c&TeeO>v5{JYZpYu*lognTfhC zpY;6Gs9)i}zrAQUV4-pc?enYq^W7+pq4m`_@-oT@gfiUSNF|Opy(~wS&%9qIrGs?f zu`^5EFTdtuQavF%dI~x68zMf85qnOez9~+@gwEubt8;L8;ojPEFgm+0H(LCa5Z-$U0~}B;egzL>yrvQ|9qAK12>18sBuT&0J-i`?`JM zu8ILsSTZ>l6%)j$hCfmBxQ-oPRW`XgkJ0ccXIaORH{adt&)7Zyh3BtTj>ixQ7%fBh z4hzE%|3vSFeR!Hf*M_Z3N)wpnhH~RS(bF$+Bc(xWt0OSnua{|pHuA0s3$NZ3spIWMUeH8t6Tcdr1`poI z3+o%9Mb(AlDWD+{;=?<$4&@T-B%xT!cRXFHqB;1F^k1nXG_xpZuo&Dk+|<9^>BcItg7C0aa9Z@9?$P#>#m~ag>tiYPFx%WO) z)1Q-8EgcO1=s(|oyJ749XTfthV|nBZ_Wn`)3cVfp-$eLc(`kHF@>-d-Yet2MG|$S9 z9k2ss?~osKX1N)AFKI4@y;J6lfgoK(J`yKX%sI^Vepkz(kN{O+ykq!*P z>KgoglBAPFi5(nV&4<_i0xM_(EhjC3hLHm5sbCuEf^t!(OzC*`jA}?U%C1=UG*-8VR*Byuxzzsd^uIRJO7W#jU5Vpbp4%xvu9#ammdmj$n~+~3HKppprfUv zrl9@g=8Vg|ZIIMtwL?$OD08WDj0+3>EY)C#?(L|lqhyS8Uj2EDAwTeg0XyZ~hlqCE zt=pR8d&@`X`vGh3m+QqAmNCpx^qw7vzoVHM$eeo`ol4rzVH}w2>2{dtWE1||n1TEP z9N}g1h4IuZFEL&&pQ~jZ%994GlvBbfhKs2hZ5l0e1v>4;=Ne@$q_noFn=NQaSBj^0q9yf$(j%hB1uE~2tq2oRviB9Ii4}yYPlt6j$kYM6hjynO+xqnZ{a0+HFx&3$2N{{;(aO-^lPr$=P{q}_73WL z_BI7FvoA6$y}%OMDC$#K%zJrtDBed{CY)ztH#eZr{ z&GN7PvpOVjwPhe^GTeZrE86fay(4o<-2C|sM{&#a86(Q$rv&%$=6qS)ib2-Yf3;4< ztRqotcTU^U2Fd_l(8ktd9QRA2PzfWn0B(;g6|bf5jME||Uu<9I%P>&71-9jfi< zlUgs9EVp_jq!wS3XPe3z#9L9@u_=X%Dh%g`1hf)J!5V@AD0=WMdOr2NcRLOB0a_nx z=Z8mvEg917K!>Q3M1;jeJ`;@fq0Bd*Rk@GWNn99h8TwFq=otNU*FkJv$WPM^KJjwi zizI-+EN$D)HD(6`vNIL9^mSI4CML+?!gnB~MJ|m=QnOEer7mL@NYcnui5!s)t%&q>|^T_kC}7*5m8*ZVCi7Lj3by(&T)jSENesRqX^2PM7u8Naw7UTmJus+f*W=7e-@KV}ZjIbG?dK&B!K^puKL|N%4E_Gjmy$($RH;dz+@J$FAjm z&tUNw8(iBOTYk}K{|H!ZImdCsrQs_!>cpU%F+#+5pATS2Vy zP1QM1FxsP861V59rVtfog8MkbX0+qbn5V9g2%E?aX%3X zB!P0co>CQZ87NH!y$R1l)}e05sQewUy+?n4ZbA%Uu)I9&I!ao%T4$WfkhM27SZlq7 zo$}aap!8Q;J$GB~d31WP!P@*~TGr5qvWB8RL2-<0jL0`;`y5tJN56m5&6vEDfyQ(a zt3*U$un_Na*~$d=4$c_jKO;MQ*;dT}7PBtJoku1!8#owSU>bkUWT2o@kVDPy;)p`C z<}>CBq)Jn))~R_?qUx(s)H6pmvvJ$}`lT(&?YwoU>gm=`pC1~A7s*!GcD!A+a#={v zb}JcpVfw(qQ;g}J6cHq2_GT$jcj79)s&-!wlLI?cPOnwlDjcPPpt+rbOD#o{O|bYN0*g@wKSR)D3g?@(8~&W=Q3( zL|CO|rD^uZfm)QC(RvW`^Zzmb;QOiDwh*%bo9|G23gG+E_C}+28!w!&_CAkiVzneo zMnpy_WHWY}SUnYnz+gXIIPRkim0^|;kt)Td@^wYb{@cyha=J+AikZAvok1>D;NbYw z3kG*_4 zh^jj{sBz&D$vgMFaEa2!Te{6IB*D$zYo{Yd00W{1FlP%{Nono;>tuZBph#6FJBm$! z?nCOom)-TLSM*?0W=jz#c}C~5|JS6U>1zC0b-;+VQ#vr~Pm38bp+a{t!Y^Md*-MK2 zrYy~s{W_Rr&ogek`QPVuSJrbcf#7oRqjbr9*I(&7UpsFR{k;c7P(HVYsAOt5k`Tl6 zFzlx!rR2%h_pwEnmoCrl`*E{!EtQC0MWKv?YIuVw)kh_%le^jQYqDJO2Si1NkC`p3 zxlsbOQw1CU4{SUm#&ar?CWa;gneF5?4fQht+*pcJk=gTgy{<~^tgESzE&aB+Fj}$t zI}rhC8tHel*({vgk->?&*lW9nS|(qMGtHINi5z?XIKZ;zo6|OltMqcy+Y75h3PGBb zR)#T6e!?7Y4RT(YowZEHGs#v9Y&$EgU3CXjbSz5L`GJj(Y|dMsb{p0SbRFe(c3p~< zp=UeK7)T-SoliTlp{xW{DDHGS?)6xE8$Rq2$qdCMAq&HO7hsMao{Tg#G=gzE$}w~0 zJWJlh_rQG!&18fNmA~&76H8^fdx|&(_L2qW`N0ZPeS-*_W%u1f|9= z+!z_-K0L#HmTvSp)6c%kt1&dnYyNa7j}j7aUHjKGPwv-XQRpxftk)PCgByt0f3RL5 zuEKe|BkAof|M;Y{qhwFNRzlD(i_Kssia2?RhA}P~tXk78L=k)~moj`+f%galZ0AO_ zeQ2Sewp_p)dJoIM%oAa)J2>->}fFll^Jk&Mz?;lU_NmGq*ao z!0LkwIWh)3ePLR2p7u9#(_=o;#JBD;4wy&2WxM7~IP4&F0EnYSVdmW(ZF3!?dZNGj#K?Kp;ThdO{0>3Q3ClOM087%oWVMw~P6J zByN-fbFn!Vfw_GWs-WFUGoTlOFQvN;U=Lu!-D8~Hp&QND6u*4&O<(c~XUt6>X(rpN0>?)= zaMEP&3HeWj+5{pE$E|{`+em3 znz@e_#`cBgU-$h#uUV_kG4YP5d=t;P-vF?URsagRPH>3S;EJXP)f zxL1>xx~zusGohZBH#2~(4 z%;MsAwvMac_&CLI_1>ZGyyk->w7XIj3-gIn9UV0)EV|6J5ohdwrGam};hyax;k|L9 z)#ZV*Cb;-G5T`q12*fX+!x{tUKjr6Rdl$$HSr@;@&sgwkh{_ymky}zK@Q_j_wdaP0 zbFj{2E?4zcLrNOA;U@xXV;-n)8jxD|xWV`x_?Q2Tg<#5{-yuux@oS8@fnykV(we*r z%L*z(TNn9wC_@<_5_>~Wi)~xqhJd!`HWAp+QSmt~#Ja47YS=V}CTm??0LyUy9Uke# z@PimX;26n{=y;83F6`tpM02L{v+iXF-Jr$Z^bn`{b9v{2YS*DJvhOtZ=Btk0QP0jk zE2XE1V_~0)mF*X0x$d4A?_36gOF~F~e*_V`q#VWXV;YG+Ld}ABk(;!@`pnr_XHkoX zaoC0{qO*(t#XP>w!ZR~CsscW^SvJ805`=TAWqav_(CF&1m_5-)=+hrTSitzj2vjzA z5<&)xG0yy6-Me2ifRWYo_3AWX@bYhXeH&)0ukYJ}1#ssR7s?GF^0*DXS#Meh=q)2T zqYoHq7%3bb3k?BzgL*#Q1HKzSIBiy7G#G}R(I0DmzvMIqtbd1zR#8d%=|4+K0*E31 z2dA7|t2ds|aSEM5I$uQRtVOJ+B>5y(Ib%^#2}oL*9Sun`R}tA|$Ql;^Sg^5*ZXiTn4%V)qXpk+yftKG8FMQI%^Gj&k$jyb>NGAMj9jvuWfN z=wu7CLk>uyMDZiTa(0FTGncHwGx34k)td0}L-Npu#FQB&OhG82(#OZ%R3aSreehJ; z7HIEeS%KO?(xh3|rP#yh-3*uQcbzg=5MVv$uhfv-KaU+8rJR2e!Q-E}3Jt^BEzL5g z177TtkvD?6`^9IX9h-x9zNfgK^^tcfp={FaBHgZ~PXM**)j@qT)S9KkB5SvN?5TGI zvIYW9l7`+V;~v);q84IncIkplL#NdBvMM~JZNwI5S$D`3$e@o}pAI*VVoHgurdu}2 z&(+`jtG`~0&%9`hoxk**mQj5E{-J@JStXy>JHZ3gH#zJ;kXlSaU-&%C3?uAHZ^U4s ztxR_;axEY!Us#Hom8{oPmV&=&FnJi@dr?ApUF7sFQ`mhkYegYE5AYQK%v$*EuZ2P= zF(#ko$+SF@8X;NUrm`kXs7a>A%zO>UiAj6@`F_(uag>v*czOO!7|{Q$H{&|@X*~17 zbGxra7l;jADP2M~J@NpM5qr`NVWhztvAanH!*-j!y}`G2!ZfZ9#p zYW@`O6^lmG6{_4PjwNo5C}qXNqjbMp_1k6W)UVXGsAPYKdKCRzmX~+)jD*dmMXe5s zV@GgD_6e`-*djL#LEuH`X=pS#4Hj{Cb0RaaG_K0e*eO)R=nZ1%GLTr%1ii5lFknV` z_Ndgs%4Q03DHGKqY{8roh;=Xv#HKvQKNQ|t*}r}@Kk}!})!nBNSTBC$XBaI^CFi4{ zORld@I(5;P`$#ffbLE(+OiD=e1^z7}-P*dV$-1$PF|b>ucg&BhSWmlO_&^0V$k&b? z&Hkd-=%z|ahQE!keGU!+ntfL96J`?KiafF24n5KJ^>W`uD)K~SP)9eh4BhrFdrUi0)TD*tZ9^0Pb2;_R|(Ip zst`k&r7e6vPTEE%B@U3v(em}aSYpUT$uzujy}tKjVu91in_ySN*zmOBr92%Oh0FZk z^Xu}puU_JfakL4ZRI|>B`zDIH^@&W@II0dfO zUx1S(0IJ*UI^uL zc(jp-fX%|f3JYWII{4N{*eV^tou-5<1q;^JZXZSWC*(@6i&)Ch^v0LdXV;gD)11je zZ{42HYDaBy%cZ>0b+zaP#JB9X`w!4gC*2Jyjg5n7pC+~N$J{0NlafUO+7Tu@XBW#3 zOtZ3^(Sn=i7+D~)4WKb*OUoApVE*g+J-y_dk;R0Z9&rOB%b+PhPbJ_(W35l5Z5Bv6 zLJ}VXTAYnkBQzq2zk2q;T=4sNim}S@Vwr{19v>uz_9YiY+y-K^M~-4~OR~Ji#s9*e zuymi1aJFsk4Z~59kj>j1`4tG>LYfcW$p~9+j)@UTwmKLBL8&b0RQiH9XHu2gLRGy7 zSS)Qe7yl!(3og~bw~;eG&Ie510#K&IdD(Mdd`0fW#I15B?OjfD>+L6BECV&B4LkIC zuGS&9ZM z)G|4pce4w^B%ixWG;?3CkM6xbKd*)sdND@DEd85#tk(IK1K7fzgX9B91KYWZeC_(z zejBzr3%FZ91d+=|gxIe8u#heD`a3J8oDq;H=lahR|@uc+g8kOc3 zZ^|tmGKrVBX#U#hj7RhzsTfvY&B;$Be7yXDkb^QT_ zQ5SR9ckArK|9oj-a zQ4#1P8-9eQ#5xjbw$&S=p{>^xFa?6^5OX)J`{3X65%W>M9VRl0gGog5>5O;)ADDN* z(r-?^w&VB?1cGb5!`l$BI%Q7BO=x$Cq3_JgsbzI#Ia?2%oK|BJcxjU!h^)T^Y)D+} zNF4;HniH?vP?N>6{}K=6g2WisKfR8Tz5J&&Q(pa5>8sk7^c1_%Mw|l^?#x4hSsayE z>HIka!bA`Kyxx6(1Pn7M3wUNG18+X!?`$`kfY9$z^tQ0y$Iw?)Hp4b>7WlQ{k=KJl zt+Qtb6F+Bjtw0pG;IqBdl^^I6N-R_)VFV9|*twbsUz)Rgh|qq%n3{7vG;c%-BemqQ z0z!7?Ybc;ETY4#n~Nm$og2z#Is}|kZZw}zP7Xc#5>?~( zC+3n&dZ~4Z@$-4%y3Pg95N)vJI!O55E>`8<;%UWd11Z!YIhU5eb_}tpJlFA!s>7b6 z81RqIfW$Cd#?Fn%Jb3P1x9}BlKc})c_mC+9?<~8|)%V2(LtMZGNLVHAyhvx9ndvC2 zuB!DMu1V|H`-{Jbza8y+JdjrnXVMcn%7ZsP!fFBGpCXxtPHw#bvEB8Bj>6U5{rUDL zIY6}nO8k3fsxL1^1JoiPyH8oiVdeeJ4Byw%H%J}6dshbK^{Ph@GzBJqXSAFHemN$2 zN{joDpu{4QwKuUUhcV9u<)*&Qns|tZX(t?GPK*8}vmlWeEd>92dj{yaH+k>&(;fqi zj|S8q+-FrLS)K@G2<8xmP#U4xRfX)hV%a1!G)Didg*>!adRNZGjpXm$5FEMAeWP@I zvKutt7236oxd}9>97Qu6Hj<6Bp+WYN_U`WQy*j>IRypC~Tl!nR`=s`SFC*DQIORmn zv!S>)exW*a@-ll@TE@?{BN=Fjr%KmaexqGBuAh!C_G=L;9)AZc0i!tTNy#t>WOM45 zT3n$T|Gy7KKD-sS%;=Do{aM^ETBXJ$lB>IOr|~VQp75SgAsPQf`k9pSw(>O$=s=Iq zBL5M==c;MTX$9OQ1ER0Su0Y%~bwHA%cq8i_O3_Z1&~BUlOPbqrCDjR!jIel{r=;>X z?E!NSYQ=P@?1c@>poM48@6zmwNiPz%zwgWlVM0m{nkmIZlF10Q#9x-K4I$x;osruz zD8+pn-5ug19LU;LBn3P5Eb&av|H`M(f->cU4YTYtjS5WpVlkDI_1)b@4~{0Vw=qNO zR=n4}ITth7%}E0loTT#JrW5bVxXcN^)Fsy4l(}g6-!{3l9ZbTC#YruNWrll+ac&eDMp6MQQ028`F_2kPyaO zG7H?M1Kf|?q3 zWj2L0nI}r7O6BEx%laV8Gc=Zc_f6#Q10BI^!6DQn0b{@WtoVEE;Kg@FlG1XMe`L|G zLH`53@xajAdaB9ks&pr1-ssRrTMcUA)}xNDRe&ehyvvJFqn~mc+c3^GF}a=wC=r*C zL~S=f*;26sNN|wAxA_$Si2iCJhB4@ocdJ>cq3@vBF|Qe>AWvzP|=6;Zdj(u0Gav!*A7R;WxRZ;S@Y6F09k?G(``P z9<4eX;_i>X13s?xRwyzmz zmTMxLE^+_?K7wb|ouM576;5B0D36B#L7qh44S`eFFg-LPf8B(aBc0_oAc{as2DaSD zkC1QDR{jf>3s;K}QuU>i=(2fWyO!kP`GHyt|9(^^e&Ks<^^i zCD9%XPqo3h;>LZcdD%N=RaLvjE`eMQKc@*Gu(RgAiKfkv#VLOP?13#H>hnuyBD*CK zpUfSJf?In5-zox;)37Ig&I8x@%zvZz4|}R&z-ROXsoNjLsvn<=_MBhDs zeNYvn#1XF6UXcot9ez6jIe$<3?5^H1CDDBH{@HDZ%Xv%CxY4$K90Z9$zSwsyEkCni zv80SE*Ipa_To-LtcOGK}0_bfoQDscUZiGHW{(+c9xudSK$&{#bzC9^a zbV$2cjICRm`$Q}cRkLcsV{e)lt&J@&m_#zH`d_F6=sHV(lo1BG4!oyiupjKxuOjt| zb&Svm#A^D}SPQnQ$FX0y2zq&DwO+jZubioI`5g9nlR_GV_$oF$U!99hO-OMr(l*^f z&1-B3yLeB30Q2Xt@DH8-79E2+GS4}Ku9NG1m03cu%gZa;b~a@Wamm!kl3C8C!JX`K zzn%HJc~*h!%%Iq6E3#0guI`uA!4Zg+0yV}GjuR+v*8-}{B9CJTBc6tj6|zjqMx zg~h)nd+6kF9BV_{unHNT!Ra@0Ckt~zELIdlFCSTD;&3tt~y}Q^xa&!A5eDj zg|~Ni>+X68;E31kx1IL0te-qr8jyuByn7RDl6WSniq!^$&E`y7Ho?#CokLeVy%9;2f zuW3RB%?qOVQcy*pK6JGnII>RzPa@ryf$dP>#f1N??9fDP7<%5Kvm5)S{6 z4C%j#!_4zd_vFcLd0NgUSNcT9sZLexv6>p**BnwM@oJr6=r0LkdqYb6jO%m?$?F z^cg9vV{nKV+ubVxHhqs_1g0QRO)#RZtVMs8;;?`pv}AQ#hhHzK_%bc&WTyHO%F-b8uwU)4ae&XUl*dLnoDk3^puF%tr#@m5#*I@bBiyO^)JD zkCB&?EX8&^i0JAd5U~T+nPIp&J3)-qTumQxHs-#h0H1rwYJ)K)Y)EGo>*`g_hFUy8 z%j!RPK`4pi38uMwC26}Qot%mB^;H}zCX|J23j6P4EV>(&3%Zj!hatI>wS&s=CjNjS zgG5%RQ;Zot;3zhgW6pK>$Q4cnAYiFx3b=-vLQe6x5W-xnl!6eD<)V#`9iCd5_fsNE3XMGjM-;X>-@k3!J9xQCneEnf{VzHHaA zsp=Gto0YyO))C25j?<3`H4OzvQM#aYl;9Op_F`$o^B;>4cpwv9TmJ)r@R*iFPghXB zSC(0*X3gD}3S@p#W>I>!|K=%pFD!hXB%B^HjIftt35QyiqVB`wu*J0WGTW%b_z!{Y z0(2R~HSQslMN5LXKa=B@3=CWjzIhy5W%Gjc0GI#X=Ze(qjrXdxc+Acym;2^Tl9|e; zMDnINYMih<}c<~1Wo2i^6--4km8pU@?SqTX^In&=fq5d9S zalk@)jzJhWl#{*%*iY9L8ktnHou_{k^*JfbeJ^h)d zK=SAS7VS51V-WZs1FcVNwHGEof0Al>tM%10-?n`s6_|`U+#2eL$1lMkPp8UvUC_P< zMLvsB!{dBMSrc4;Z<(*o2V|inHy@r5lEYHnjQ`G;^SgiZn^}f@pS9^6Ttk zb8+o6gOPA9{DS<#@F{y`w1>J&PEvUGmycf_{;wS&0Uu3!*P5T%*3udjVpAE0T8R7% zpgf9Z*cocMKwkssU@osmCYL5%8iu~v_AFMVV3}(#p#--VCWXvBv&uIfO6-=z5 zQZgBH)?9kIpqh(ro)Q_oH~PyDWXC+aPR8U3v7bAa8Wa>Dx0d{a8h!eW-h#y2jQ&op zed&ux5NI?jO|}b(RQz3Rn92{vDJUT??|#Gi=xax?SE!SvqYp105lq2;+qYj-T`Obq zOeL0YEmu3A0b+~T?U!{)McKUn#@DJ87A7)44we!5)^MwIT9bxCf&2y%_t{tFosWVa zy@%oGTc+{8U4xObMS#mFgKAdbB92~MKS{pUmDc7|^`Hu%A!#w|;R1??$9Eyaotx#m z4kg_AT?5yH91=MDw^4`U3eU4CsLI0S>*cRQnWx0?_N@sq4b-+Rnnw1N^%pdAfL=DZ zXsGAPFT;oIsqTsK;w`U3h010Rlg6&Bfr{>-Ci%ma(G8l{@5^<28>U7P)lRNv|H-1z zC(R-QIMl@xRgrKe%bT(O_=OGU+S-Nn;$}vzXvaV9WKjxr?2LC@V3xsLQa;@#6Dal4 zZayJB>zY?DuyyP$;u=Jukmc1PQt1Tfi(AzgguXObZZG;Jok@bAN2}4LoQ{hZp-I2I z#7MH~KpUG{aJ+v}{8G%|jm6)OHNhVs*M^|I;pey-@uK!Juj{_&eU*-fFwpX*3%Lq0 zsCOugb!JEaA9mFC)@(-WX2Rm!)>+u07S7PfXU2=-mNuSnF3TxJDciUggpY#QQlvc| z{*n;hFJ+c??hx$WO~D^nw;$#N@w#i&;U}m^@svkr7NMlJJ=BIobP?G4GP)4#qtfAJ zmO2lad>|8v4W$mv2a4C^O4Os`+^-zxG2n0Cx^vgzBccX`m#m6;)+j*AXfH{2g!>1C z$0|_z?;iQveyy8DnEB<`yJ10$+i&PeLZ7CJ=S9=KUXEV_1$4uwzDaSF_x33uSa;&& z_umB{7ob8>&8jDJ*wIX9(iKrNhRc}bhByHL(1dE423eG*!*fcIQfO=p7@T5e4-Yx| z&CMvD{ZVHHYBaCx#DZ13?moJma)&9qdxz#;}jRX9jj+BT3(f(YBf8J zh4z;5;suRvQYa6bW#h9b0E!lFV$NSjR9AB=HBJYTr%+ZPbvNpoBR!$1HXl{5yHN$C z-g4w0E-RiBY}>MTo^fz|Rqi?w9&kgf(n?VSk91A=hf=9DtdlKb$2OpVtBwSdoW`74 z0A(Y!9t6dXKWQdZaF=|YK&khYop#-3k*u2NCtkdz6eoD}EI(e*&sT?sq-}omv%RVy zh6S=%2ju-A2MVWvXX1!EVAsE51)M6jRZ@jok=6|#ybW%`q4@C*mrX(Sjik^WZ`x*%gZEnqDskieg<)}F?CJ1mp9;&LMM_V zm8)c^(iLCJ$f(hJI7c~xYJ6;LXo~p*|H@%5E*z0ERNX9x3`cFJf=X=i6#L5XvVOK6 zFWk_o#B|2kPJ?-++bP{Jjt{Y1dc|OGR61s1V>W#_?@y)5ZBuZ)HThDCB}o!Et^wlO zsuyxk5-lSyJdE<0fwvO`-PXx!w2)JVXB8K7Y>mzdxl4e&es1iawyEp{QV@C@Sh7~0 zDh+qVFtr%`3tj(#fv6IRnnljMGDf-^X-nuyE1PP(Wslj*+j`05O4WB;%owJGfytMY z#8`sNB6qDFw4jl$SJqUG)r_xAKli>7G{T#Qg>6R)tjtFU^a}zxrFoois=@xD#QB|{ zlMZ^*(G`k|{Wf6pS3#_Mx1P>=U3~^0_5{p@jEs?Dj7N+Snpn3Ol{3Dra;{vT{r&*J%2dsR}^@vp(Yq=g{f)0vGI&_^QCt^ zpk`4QqO6~aQo4xo#W9KyGrORg507IalGwi$m1cj*{yczVcr-4bT(JZLwZSF=E2}j3i~ZL_0fD@9NylAY|H*e>uH@AsSKX|QHhF)iUi_Ba&Ove zju3Qi?YUu;s}`^KYC^OZVf^WB)4QI^@G-G;4bGG+!*+3wn(m)1E=1UIj=QDBLQQO{ zv7?(~BE*&y#|l$40om#f*~Wd~=^65>ehg51@cYw%4=u^efha7rh+N@YfTlP$4ACN$ z;~j~D@Y~q5>-bA%cg1)se!EkWFu)AwRC#J*!w;Y5N_1Nru=JHZ6)4%38ZfoNNC-q} zA<{MSOOKpHj6ltuIgCyntIl}o|;AqQpaPr!5IpWs4KJPyTR=~;fDV3-~}iHVUlF!wM&2!e=~ zU2JWOPID;(yS(S@J04rb1Zq4ZX{q#8jg7=4>`ZQ3%!;IBeu-Vznnp!Q3do0NW~&Gl z^jjkGNo@O!^SnY1;|(1!QYdc3hIn^-=<860B>63{90?%COmfGa8_zA5iRcfu!tYN}L8G|6s+@HVec`Y7!v2wuX<~Pqe=Q8A^nCU5 zf$=9G*S-DWp zlj3;%r5qqgK$DHfK`aZd|H=|9rwnq!Uq6!1j|fEdy%4N^Cg>z?JB0^Ud%F^N8)b)z zm1SE8)lh=4VMwo(L?z{3a z<~2^^ili_|0mu!9I%$-^^tY|+6(z|MP!$SStVOy;y@N3CvV+4!0A=3rmD7yLKzz?9 zIKmW<;I*bfZcDu~f*%ol{EoR^QZA14dT(YHpOZ4fNmqu~Ir<{={r%dRykvvxWQKR( z`#+#)*A+&gz(VAt7zfw^(uLvfg3n&64M}WB(U{@yW!>XOORNuw9fZ6iVGiVihu;W* zAm-YGB$#;SZU6V3sGY>1C_Q(72zAY{S?N#;3~b!#eA@cC4qC1RYxy+#VJ@q+62*8y zf%j{vPiS8Cd5daQfCj=aN{TArdSW+~#|&Q7LPCq|9ddZT}Rw9J!h+KFV~Ks3M>rRPq_r-u*-1;7 z1Cifo*Xy|GZig+DTI-prmA&|Wr@S;oL+HOpXUN52L;b2hZ1IyGKuMNtiU=1$U5;`v z{#WV2dt_Kg{pI|7qCnhHaH&vDv25m1OOLG}A2rlqlxT^(1V>K&$fHFfGY{FFor<8<9sY zVWce6VL+{)URdW|uKW(9+P`&Ta+!b4U95Z>>|pp|uKwYL^Wu}(U}fv%9J3~=n~ggt z(DB#a&%xf89IBYhsX4ac1k8cV&~>&T>3=_1X?^geOK;ed@ahZ5&4BW_=iaMIQ!C1f zDuEr|#|VtuI#Lub(tQ5Xyf5>wn1LO3gp+(Y2`K-*B)Aw3#%%gcebU zPeEEfD+tPO^f0t5Z-(9L2eqg_10KJc+4ubM*gV5I||+{ zg@5f|@AGjBJrXwjl@f~;7)-fgDu=hTwj3~HK2Te|-EYkpT$r`z$_zg2u%E!2>O1}` z3np9PTz!U!+D=Kds?Ps@u+(fvYkE#l3df^^;4UGnouZxke?l1s%!kwEDAhK9(yKyl z*+^ZY`vwjCs^Gr#pp7e4p7)A$?q7I6sNOy@%yav%U>oM{$nf!L427?4RsQca>j+V$ z8Y~^Bk9Xwod7PWh6i!M4P5tBb7KKexfkOwbUI)Kc8X6F8Zfjy^ zSCw=A6y~@$wk5z$@1OBuXcM^a>9V;iMF{T4=zf_p4`JqiURGA7udhF_)DjpN*yMM9 zHn(naeMSv6{B9*&zmmDdBztkt#bn|!ju5sQ_}jRCzTa$OXy|)=d3=8IhROH0f~snd z)-xGOTG}UQ$PhJ6Kn1%O4wC#qyL?mR~}z1e00dAshNNd3RbfTaq7V<0)v; zE4xq_+R}!fyHi%z5VF#YXE`nnC$u(TIUcO_JcRIhsHJ+alf;Klx~vtIlkU2d9)j0E zkBy~wyd@(e3%EMWj4H_a_N~Xja}v}H%5;)no*#F0t*)-(-eMGKrlqD9x1an@;+NUb z(11j8=a1?c8WKSs9v(hNI~ai*8yk!=Z-#EE2j+hPhL5N^*1*qJ0ce=k4Aj&Zh4r$Mon2jn{1lzTP9Lni$h z3A5B!2Qo&fizDASUSbbCwUIG)yE1&p={o6*T<%Zvq zyC7vEq7&Oe)$ipnrT#7`26ww|OKnJP)NQ#}sT+DgrmW<@zPPEwYdQ_mU~r{}?j4vM zNN!AWB~?s?AwY;l2Wnet2kVu;syye2pyERo z7kkWKovwpWG_m-vg{$YLrdfT7JS7cf0oPZ2e0-0f(l`IMoSH8uz(s1SeM$FCqGR&a zQp%hcA0~;{?pDpPvamVB%pGjOs$#T zMU`ZAKH$3X^;1tzF-U?wI*Lv_wc4O~;$XR}o?h0Xn>5Dhd^O1gvt^|x?(&qRr>6&u z$m*HhwSX#!6b#urcl5Nh02yJRp-KMuacFEzTSsT@K;6vTysfP*s>BvXWj9guR+tWj z)slJjm$P#c%&Jw!4AP{8D$Ga>^H^mZ$OxC?O~zwkRkNhh6lDb+Dvq6W?0bIa?ivsB zZKju~ul>AdJRurspNUGj=9xjPK0-p1i)IsymK_79+NHB?=jGmGIf*Jeuja_eJL2~V zh)853_D8i%0;c=CEjdc9o~b5cEV%2v*7D2H%~lzA&mfE}6`uWDizL7_kF_qHTGG;r zN}{#3z4kmF!~iLrk~F_)!E4d=o zE`TUb0)Y@TYDumzBZ)w5^A}>4@s9r2+A*tgsd;zQ=>^~fm6S2)JDwLml76#x5+?bJ zEj=g3YdYKFIo?Ge5d1TD%=a)bAp7YGo5QuAjOC4={m*QYcFnt@GX%}wXU^|-(mBzK zSPumX^NhlcSo$!$GFPWLpr3TyFp1o3F(k->FyAaZYk;R&hJ^@-+cd_onc^?bIwzD zU)PPObY4O!FupK*-M0Mrw*=#9&C5O`jdg4+%VtjZC=)n_{F>#`6atq0!6!oK${;kb zNRCOmu&V=`Stwks2AxY6kDkl;;>{)BVtY=D9TIy_?^i6m9yk0)HFv-L&TgMNv$G*9 zRZq>Se)qw3i$hZvhY7){XVs5@clY*{eM23@!Ej=elfrNQ@al79#KVQ(`@F$)O8V$* zo}#adA3*V?L+};P=33;`g6CX|1*T}{0D{(6o2GfaMh}zPc-i1!?992fFTSj+aec;> zdR_-LLay!K)MCKq@+@KNE$B3p)z@D{xW&nnPr=8=4vf*&(Qybc+Z_7NLVo>p-6t#~ zBl8G;#H9#|>dAQ5x&IoTvS2Fqyg%D+&-db|-fQmwB)?3Mh3geKme*5iYHEp^ z5Rr1xp!M2#-Q)2bi>rAT^7qMZeFt0Q)%D+avTBW4in#H)UVWnl3W+|tQOgwfo9y#q z+;g8ZDIB9nX=u7<*fc8Vcv_?g1!zK7qBi#nLd_p_muiPCh0l!;a)reB*hquk`O&a& z!@|PSDx@Oiz15RY2GWj?HTQ?-o_iaR6<0EgVHCcE!>TDF!r$MRg)5URjE=6vHOOFg zH{hgwVf9@i6?R)XzuSh%EwRFMX}Q2 z^I)3DzN$sm_L+-m4>wHgz}HPL9EJ$Ee{(b=0ew^s;>4ImOLXhdAww_$QVa|X#Kgqy zO(#wY3ekOZHaGYl zdY`Uj4P$9smMmB7m%1IFxLnLeW6%f%2f`{oHdfwB@~NkJx< z+N%>Ps<-F79>2D;TEF5hvh7qS`L!Ziq|UtD<$~~4OREl(vuLtAyAy0(!!IXxEzdCc^mR6EnK@XP<5^q+ zGkL;S3(nA|k5)#4r_v5I4(lym6CY-TvPZm_m5vjS$EPk42}`w%`hnd{`a2tWzA#h& z>x<|Wyw8HgLo+O{shz`1k{AxsanKO>{W{P{i*0^wF=USqM}A%lLdM;n_>Y<=+;#M! zFQ4f5d7!v0G$=WnJ`A0#)9-q3rhF?khLG*$b!U?RfE$hrt#!Bb{h+o@xUbX1ax{C=JTx?|cw?vE@wp@rXO2bQ zuRbq(Vr1FRH)Fz%`%f29^Lc;y2@Yt~?9Rvc;;-iGHfq+qy~Z-fvJ0jc#6;O@jh2Jkwv!_wBNDI%7~;~(TlPn`H4Yl z^59Y;@6*BhX8-Se%0plbo3zAx5%--oEVH6 zH?vJfIa1~LX?xjBJB^3cf7oO$YaeaO9PO;^ZnI9eZTPtXFc)firF|)bwUxc|B{#M! z*gr84dBqUy%+kuxD(k|!(Y@nL{M*M{icZr1Z4ruS_3)>C*WrfW=GJZ_0dR=uq&%bU z$tfuj8fV_-B8eAxECU17ke zk0gos_saUcX?t_JL5SIW(n~@p*nD@`6zbU0u(mQ;sH$0R&;s=9cXkU&DXEDgS*&B7e1C}y1UWbUizKQNScD_K(%KCqApdp#b*^8$*e z%adID<{JC8D~M9U`{RuF!a^TztD*KsL?pcbg2{IXCXm(c_p?#&ebFFRaJLcJpLFDG zKAz5MvvYet(m6YuA;fRTxn*k z_BsE|j>po%NuuX>U-ML?V78Uac`evCoX&X=8Ul;++=q^m{&*}=H?c$5<8SV2YU*}y zFu&iE?gIA0w0%6(d!mmHJhRY3wWT3=v}Ri|uL$IQ&0$Y7EUh)>LN=j3&neO|i6^1V zA-|SNk~X`@4t!e&MEl;tLNdmxW#ByJXZWH(fC1cT7kIWcvfSi$WRc;+Wi!iKJmtAP znpL;ti3$OhuNgX3yQ*7zULI}N>fko2`-D6<5h{Og%hPP7iThdy0@3kg&UvzRnRc`L z3Bh}B#}UD+QRwu)eH&B#zU5wpz&D_IXs!I=FEZ=JGlT1hJ5Mz7V8uO!43^>b_geKi_Wrnh~b#$nWdeL`PyPQ=H-MMD%4k09Js zydsWIKIOF1e$-|V&JbxDtKX`kte_z85mM;{eu^k5eJOn3yXg05B9kGsCwymokRJiF zQYQQ;RO;6T);p47etudC7p+Ujh7c z?sxomzBc-W-UJWG4dLXr8=@xNyTu&M@tmouWy&?KTGD`(h~Ut(=^w zkzj|jWW0}Vql8=uJvP*?mN=60(gfT;ojILq?DHFotCXjYAtS5j=0aF^c5m42bk>(9 z`a+Z^%H;ND+<>iVN+A%u`VM@H4uc|qi&6V*Sgbdu>F%{6=~APh&+!V-1Bwet-ciL~*+B8PDhyf0^9D{kwlp^9 z5P)+}+Y6+}H8u0Q130&e%mPpTzi)zA^2OBw~L_MMdGh0^`8=!l2R^VXN6H+2jEy06g4{h?X0M% zKtRP8xLR<^@IL)z?{}wrg_T)b>pE4W4q_9C{!NFC#Xx6l`a>YAtE<~}w4Y>yCR=@m z%Sf$8lg5I2BSSSZVl!Xh^kRHxC5Pw`>xRS+tghNGd0GsY)@j+)k`+&{^aA_PtjMkK2pyyo+Gme#Yga~#U~Ks2c@13#9>nv zvC)P4eX|L7PduoNq(tc&{+fgGb-C#JT%La%mcMp!~F2AyuGFk#gIQ(BWO2Rj$ zNRa)-rmG1>VHdtMu9Snk6gximV?!UGhv`z?I=e+a!*+jOr_Flmn$XbDC6^iftgI|6 zD=UbSl9J)@YktSoZXjYpF(}ewV;#HDfR?-2I%>Hxu(H~@zd2iM6N3g;QuK{S(gjZ> zPnVw_xrK$>z|5-V$#v*#7_@kTh~VxVP%XzDh*7hv=Q|Vsnf9+C@Q8@ZUPmpjUcEv? zLpvYD?hY{rt}C#++1GY{)-ADVcGpwtGNB%|De~9BtGF6z?7FA4JajPY!WeG;ju<#a z2Z%^V1vQaMVQP>9q4@;_I)oRfy;NW0PF_-MM+^gM=^;X8GS;wDKIJ z7K5k}4B_D%@_XzymWJ;>VMTn3^mwk|41qHJI?A)B+C^dXtUH{?Iq@V$g1ijIgor zMdv=_moe6}G{seK6h@20>OjQRjdxsNRo+TS^Z=8{^=L_7Ss4a0HZ}%CQpVH=GIsN! zm5!h~`{h>0wO$~Gzzc+`z~X@D*%09ZTO6w$Ilxe9)w`dp>NmM&b=y_Vy?OJ7RxzEF znE3Yck9|1^Ydt+a%)Iw&k@ejN>mwCKjF4v#RNnUJ3Dy)G9w2vcOzsr@ZYKx~+_S2y z&%axwdtCnwqoSgU2oHa}DEEW$?=fxw0*y{SIrw`*R8-W`<5C{G(<5>qPZ+xBM?;5- zo5G_}hskQjEPhT)`oY&cF6-|uI{*jR!Ij1y$6YN2@4+Q7^kLimm8nW$U_wzQ?Bcza z|90J?Q-sE-=Q~Yk%Ff^cA@)61@LcJ!Ra=nKx69m;?jO(_d}{_^trl zgCX-y*4<3igc7zf04IKKwF#Bib$=F!7SjcOTdqG~GU*gjE$>N?pFd9(^0@^YIfh*D z7VPZ!goM_!Vg7)C01Sa+k@4?4tLR}SJ>hr|f3x;D>L^m)kCO$;54Sbu=@=jg8Y@Na zarT>=k&*E|2!NcQJ69_LziYWO1ogKyk5n|N$6je2&z7L)dHq(p*N}F3M@L7D;N`6B z>lQUVz58=;j6uW*8nC;)*c;2~10s_Ne-H$c+U^edrQ=xZ*_K?vM|6tm)mls-gbZGB z)FHvaqq*-e6WPPNPLAF`%$u2H{O!WOKQ9BuuKJgFG>A_q8kvCIe)Lo+rzo6c3@k)m z^$%Vghq`S+X(uwBoy}4<){}@Pl(k^|BN_8x{k5Tq5NM2(Pg_eg9zMVLFdTUc zECy8z0-5?YDK>$U7TXUY3FSzk0rOIVhp!#7XAXh>EX-Bi)waz^obr3~M-w?x7)^`h zgoHfa*T+~?lIMqufBwMk16}(yi>e~*d@_tj6#@tfyF#4NNTgVT=O%w3I z^6`lHoiN=-k<}1O=8&+rA=TmmOqnNzAr`h`SLg+yFBQ>Nzp(m{3 zB~s^M&0ed|QP3k5yP5=VqZ2_jv)XFlmpm&=|3Jz3KuSHgqY5_)D;Zkmg zAFM1*BWZH4em;Z$B*gA|7c*2bYm;N4fPsW^nVxpYaqp>2r;-+4DG_JZP>R6_N-IIM z6CvHk>^BWouj#}_HR0Z^q0ExF5dvLlQmXN}PKPsIxbo*=OpRld1hcsv=a0i==wZ~- z?(){jc|{ENdqUff8136i5*8W$W&OOGxIOhqV+~{*AMBZ5@CCHDx3@hU*dM~uxW{tR z$tAIVm@EL4ela2LF~X1T4h{}YPrl#`@z^c!P&{F?*|Exm2=b{cyDj?w1#mch4r0)L zJ2V&x2~|Mrvl_t)MSuE~Sd5HoRO%S0tx zwmk~&RpS(KdQE9Sy?=tkoF6K+lyn{W(%gBC{a=P>-zkM)M^+k$ zg9&CCP&bMsqN0s%(=U_0BSIt8VoK=me;4z*h6K%Dy7a0gD8{m#5WcgslkeQZ_53vr z((1nb1i`Nle=2@`Jr*^wP4n6zp?%UgFMw`Wd#I(A(Zq?&ZmJ0^+B<7M#vQ~ z?K?kzYWiIvCgKZQJ=~&^vh%$Xd;sBcc9o7gzoygCXdaOCgw&9-oc0< zj=Hp?4=6T2fdXPmwRl{=i`_kirZlJY@w$~Oe=bHO_&)^+-@(m~Ym&PW3&`4qJ}Q0G6? z5J&k&W^=~CvbF}#Fs6CJHonwHAnPBZqNUaC_$~`Fk*Nq~W@f2p-QD7Rcxgd4l>#@v z!i4NbwTe4m&!gyBi--V2Ib?3`NZ^9Q?mGzkPD4n9glet1tGR5@pZU+On_7$b=YcZF zD+Jm@4P5@!L4??OvBOI93}3 z5HziJx|mNZo&oxU@%zlv>Jk|v;3@G%x0&|_q4La%QKAUDp?c$@9`my&47tO!R^ZGu zwP$ft^HJ(2zVGM2GQgM+6QDjvmrQ`jo5p;3^cOa8;B%`vo z;rS$VPwHFpe*RonE3>KDP2D0FeD=s(<|+nkpr!jW)lm)7Z$i%R%p5E8top9@e=oEk z)`dw)8BuI_xGmrl63=_}8y5ef{&@CtL#plw0x2zBs;VqQ$H5c!+i3ea#gJ5;FM%P1 zNtUrR53!g z^uVNrA<%6^ABgydS8!N{ML;dpD496yI;&m?UG{UrUpR* z5{m1dO*6)6-_uvAbHenPDaJ^hp9)oz=zp?b(989?fJiodWpp9zA)=c#jdcwhzJ4h3J@Wl zv+L4E>HCB>0Rd~~BLhi%W_LwXP;1(%Zlvw3Zw&bx{8&r>uV2~?A2)z+F|{ ze@Um&_meVzqR=WC$b=#59S&?L*6$iFI$e?>)9WK;ZQff{U6Xk1K1+4=${xHq2o`*5 z{6fWEO>Q{n-K49bH(8_%gbm^sOKkCeAa9el=!K$nrHNaTY^?N8z=#_+Enl+46 zWW6}>pih4v=Xudto;+Ec_#}l87WP-U(C3cW=o}5>zSF4AL`Oy@W6ACQ(oxE(ieBa~ z+t^8AVITxlpVE5{rlvVgWEalpb&1n9>U$+;J4C_xw*!A#hXNHAr)Tf*Mte9m$0rn> zQ$@`?h3mTaw;(dAhHZnL)pd4?_7H%bt$>o+4a}?c9wQ86Zjg0znE?e@Vp9 zj9zvXQFP>|#0)p=s)=hGr;oRBN{roLT(-)Y%Ei&!pBNi$1o%LX*Ux!Z64N};DIdD%{NDhg5boJ~k_i=7_MTCh6*)Ku zTmZD-C}MeVd{2u6+aDFN%~#*+GK>I|M9m(1W3PL7(1~M4BpU#6230N}^+E^VZ2?V| zEru%*dAun5=tBWo?j<};tcZX*3wW4=!ZEECs=+t-@Hd36QOF=deCzW~C})BCeb01}UIXL!*brA&545emdX9w+H_52%?F{Xuyb_mYqA zwrWJkx(;`HrtR?pg!;FgvAQMTbz*XA$FqLmt%-oLKTwww2oX-mcbE^A-vMN;-X8?Z zj2i8KG~)#V5^qB3muEVw0_dlFGk;1S92pVD^)I)QpFtug&t%E86Y>?H4zSvravG%i z;8O!-3T1V?8tf~6gv}pKZQ@Y@P>6JAIqrKo1-4M-9LoMRNO;&n>_#md1SoSP2(VNS5s}9gD~K!~}?%1n?i$2hB6%bkjIc zwSS--ZpfzBD8^g(IL;QZ=;lK&3Y|c`%ee3{N}?$oF%Cy7>k&d62`t<8@4Aqv8>UpJ zoDfW%rSR-`xhU|CEYJVHB6%4Q$MZzQSZW)~Pg??ra~g-$r?z3b#XlCb>?5I}wH!9? zl{IW8|DUXORsc}v;SZGB31gaLJI*QHpWoAcqpB%pY1nXqJ(>v(1C^4FW7%PB& zlEL?>{*uK(6ccnT@9GxSR#(qi`$>s3Y5ARUI0S_3KwO!PjV)FI0fvADPH#>es@pvDMDXYG)Tfm-RKZy_s#23mqoiev6Kmv zG!ZB*CyP@BpH3XLc7ifXM=&VS5+p7Jyf@M+xClTv2b9NRDOa+nUWb%;ObY(U`}54ESPKwsi> zMoDOG^`}9;+D%eMe+N0!NTUe~xdSn@9=GxEG0(XQ%NJwG(5f)Eo0z;0ln{nxK#hvy zTz2>EXDWRW)sy>MGx+JV z)n6?{QJat9`nMoyf^ag6lRaoQ?b9f_1komA=}61j9v0=tuG z(z0SE>PE5i<}7wxC3y3@e4GF@br2sS!I^7T4{DeBwt8V;O$cItjLRzs{VUTG$rXXu z!=@32_?LP=M}W^*Ehbbad2M82c3ysJ6d!26*R`Jj)Xbfsz0K|I4Z(M6=G(=!=!Asw z$BX9nS$V(f1B8cB`3x4v+UlXZ9>J`!F^3muRj$nX8tzP0SN)N(XPf?opGOKG5HV~Q zwk<#OG8?h6nUuHiQNL6Hrj2CY4B?^n#i9E41}k3ug>2{ zE%#U}oj(nKTk_)4i>0$ch=W{QV$E zhK@*E^(ou3Mn`ad0hCWVH}O~ZM}~Gpe(qh1AWl1*KOML@YJTs|gaaXEX6~gde>L#S z=kCh8X?$#w6camcls`>cMc-`0?WlQKNgwSNLmM2Vk8NICEqTfF{+XHGtv-RBo$#Xc zLa`T%{6|(r44x;n3vHgZwjKx&ho!>YOkS_68V-(cTN~pssZF zK7nn7IDb z@0Ag8nEf0q=DoYxYb0MTwumtjQ_Jt~^$@@EB7*wreIc66S(bb{1- z!S`_h3lUp7{VDi5a*iD)lY_4B!HLBBL#@wAe7n~CifG!CW?x>e!PB0UIVhbf2@=k* zjPU0iM^_di2iPb&}e^DN#E(X z$p!1=L@*5F_k08YQ@?VL9R=URK&y!)od2o=>C&-}hk=2Zi@d4v+ue2;AIX@HPw2x5 z30)-I>iD=E8Z+?0!QwP@7bM(VFNKCPVjN!C#F`C$Va&TE5!U$jgKF8{b?)zEE65Sp z-}5Nra;i_Lsn58~nah&Axt@H4^FYMtx!OgB)ZpPkzRcFeIOh#u5|TfI{JubAu^;5L zU6ab#PK{|hOzxfM6At=On&D%F{G5=}-flC&mWEDoI$je#Bupxw8l%Cuh?%Fq*~wNy z0(=An&+w)>t#sCya*I^dKAS0PQl$G;nI0Z4IhXOYoJo!_-TR+f5dRt!#<3* zD=ZD3t!#QItIHhC_DerQ-k3qV!(=2BnxwyA${mpmCR+Jtp*TG~aT=QWz#v@;I=Z<) z-=uN=M&Z3~W7V-pY;8?aRD6a`M((!ASwMDujdW$S zj8D2?zd)#bis?mAu#&EJp%Y*X*JgU5tXwJR zS>G(?;)o0=%q1FamRs)s^zJ67cZKDm5qUeGX$T)FN%SeQN`rtA({CYUNP@qA*@T z`l=ac=M)kR`ekF|97M@u$HPLIyT!SK*k}je0L||FISu7fp!Yd$3FH)iv9X_VJ0b85 z3Kw#xCYqNHloO`jH0k6k#nbWiF#pi&gIjYC7pp>>8Ux3>7;r@w{nz~QO&%u}K;fX5 zE+?^BBve{-?My&My-X!Xu(~)TY7h`$+Y?4wEv;;xM@QD5Ug`#Qb~@{i%+>jggvYNW z@10au<X4e~erq<(nw zG29Sq0ZJZ1$Ua&WK%2GuBd;OK5gru{@}z}L+r#?@pF5vjE{KIWVUPo&eL_J$J1IpW z&8hMIuW)qogx)=By-7K_W@q`bKzMNZ-v8pn5bh>aO&dl#^84YGKFaTNK6M5s_I6)h zJ|CS_pxRDsDXYt;FEUzA4$Q)1syBp?&ARuKHv93(@%IV-s;^l8q`{$+)_Ewqq5_c# zZ~!pj8Dc3jzk<-dD?jmo@m%zg(jOCSP|EIpV=SH0^|!rMIFQmE#}Wua78(Tt0s;#& zxb~8a2hcAB3$Zu&++f1bn*?HdFu$m#YrWJqk~EgHIT9r!7b!1`78T7h_`8&uk$^D8 zC_rn7U8nTzCb+HGjtcdZxF9xJcw?JX|#l%3G~ z4D!X6>rCmj3^o*=2J1gzhj{GWrbHTzcH~pQLkjkrs46YdpS|KDSDz|9!~KCjzTLwE z>9j7R?O79L-PgZ}FU3dYN#%d%UsAyPPtee0?gbbb;n>v+u~NfBY(z!j=oBiR zA;5}A7_|0Xou93P0}3sSr^ZX|B6d>DkuPP_q%jKFR#QhP^{F_hoca(CKyrbfWk-+* zYa20r8m8acJ@NP&nbNg@#TLPD?tGy|YWto}(b2%%S88=q!u!FM)fH*VbQ z$v3yL`kVClq^>xwRK@2I!kn!?0=MC{3FCl z?MG4ibtCQ6uy-02;-EvrxKLMzV8(yjepGQ*QL)wLou7Lt`qzkM;GKyJCnUJ1x1Q7* z6~#ENTYc*O6++(|eN$pf_8Lx|ss_JcM9`ce5HygrI^<%6dGP|0IeT!}_euej_7(pQ zm5w$qe7L?$L!9anJ6=3)B(w-Xri=*wq@-Miz`)JauQSsntFZ| zfWK?FUY0Fh#H)w)$n8DIZjmofjC=(|2w>TqW7Z*Oq|?W@YPbk;WF!FW!G~P((4isp zNCBIEZ>I0<@dg!cTS8#Tajo;uev@&DPpOjbRa{!Git z^c<4= z?O|l_F6!;8dcMhD*=B=$l9qq<#%y|0T@51Awew*iX_kM{?emwrVt3CIc-VF@(vKLV z-8jJhS|ldy7q9%8i79U(u)6gN+8z)oJ7vgdv8lu`Uk3yy5K*C0(7ZQ%>;aK48$J28 zu}uq;H1UoZNZ?+f_qo}( zX=-Y}V&!^lv{pexbN1l&QpFLP1;*G)))$8Sb5nGP-qm*3bi2s0RUv2!fnrf0-~#c- z(*iPSNYFva(B?MHO`ML7=x$%Pr8lhN{|2|RDj&cpnw;l2tgaq!2C&;NGQCiPdnF>{ zZ6wj5qZQQ~7N@0!6#-(6%6x=l%Z*1@N5<(Rgz{%8MTJyFdhW5MdGEfqLujE)?Vw$a z*+vN1e!=m;JUP5^RTuYO7-~A)*V5|*E@@e@-r8a4E5T5V!MQ4Ki;<;np_UF)xfHi; zR>(Oi7p@oyK+WC%X&jJ|POw;Tv2fR8a{r(z=zJT$BCS$5^!k&WoE-V+i0(kl_hzv$ zM1^F_r8qxOB)1ZVPazBgdFYGcEM`bO%U;vo@;&`*NBGt7kXw@WqZa`blLaD-aw<-{SslB%<FkMr5NFL4`<155^!D8JwUD@vBPPD1i`h)7!q{vpY^*-l*J39qU7OW zcqMHJwj7?vjn*c+?_U>kbvy`CR5Uq{W8j_NNsA|ph_ei~Q2cxf3B_D>Zf$mFNs-zn z0YqfE(nN_4)_?cs8vwOY1}3Sxlm22uhIh7Z$UI>f;KbkK)0oL25>6uppgdXg)V^q8 zP}h>XhB2*}#GM@;81dl#9s=M@d}ttp`UUXR|T6G4k=mLzhi(C z8#$7wff{&s54}->l_pzxiizD9yF}y!y5BVcX*voJmR{W#`;H0k4REt;C5!eNcWubl z#j>;CY!1ygeY_aX9gMbH!X_usbbTYGj;owNx9ALq)Gm$;0cKhIgBy$f=81vRZz_zm z@-tF$lBU~>Iu%58BovHtCMI!pGq5DHw7h03{=lFcP~0fP=B4cn+HjMU}x9uq#Y4TOV8&jFh0Q$))SM(U1~QM&t^UJm)LA>3xvBu;|V zrQJq_D>zt|f{>rt^go$$hQkPQi;D0g5bn=RMLi_qez=mbL+wnB?#p*6Udtogem{R? zHQuf-`HX73;=vjpLvHzCUH^;u()1@ z$8Y3+9D9Wi@r)tnwdt*P!VaY_Ed31HZgdo2@3MP-E87d>_FmS~pU~2Wg9>n*vNjeb z+T@x=gvjSuG11h46rF-5kDdkZJ?=`E{qB(yo>o#~Qu&*%`k#9zbGa)4f3xzpF5?-h zk`wahaAKb+0sWaeznhxD{G_&|47v<|J5?BJq`)3yw%4dxwQv7%)=8idkFI*F0vxb# z2NB}{y`(wH)&k*Wl+_MVkLb6)cY525Qwu35UjDjF_%SU3$JyQO5)&Nx6Tb+*ntlH; zjkFrK_1UEuVt9D`oDYwT+=?t3*xkL|pRRd+Va&~kkA7!MQA1^3-d|@IwU2Q<=6i7s=W%U9a1d_c6R-U>RdppoTylJDybYEU zejS}%1_qbmoH%TL&&LOWn_zAY@>xWPqC$pK78Q{)uKsi|u(%+zjjOj{h?FY=G%zdP zIO=#N{2FlIziLE26Ty$jtvSv=$fa=2!;xtZk<)PV_&{CiZi5kA^A;>NPH~9_qcm_d zFPgJmxe?< zs9OsZtq9!!&C2FH9As7%M{Z9fbWkYQ7rNiXCsfYrnWf`ozvtIokPm&pf`_q3Z2ZM= z7)C4V?2Ei@*o%we9x7vO(`P-L+fzr0w0WtfH6Jv6o9eVLAJStptM`4{532S8x4mU~ zI8+=z=d&gCa*5FYG}MchB8tCRhX+9CvEO|jB~h%jKX~jfEEWGcMp2MyvGR(jt50e; z7(}Y-BzI$vW^t*}XA%ktZr*Ym6oMW9}3c~D9O4} z+WHmOMnufVRcAg>I4>PH^bz?sE7K_kgfb!EJ&eF=8JY}n+apX=?ixfB#f&=rKZDAn&@E>^G*rB*#Q%&O-m+I}hikLnSC{Ul1iMe)E7ZZ7^|NJ(MzV$YHI!;_dE8b|HHR13Af8cEf}Dtadr zJrHEWhOW@hEv&8_7!Y2zQ^bzY3mlFr|72QI-;U!0Itt7#Oq#K-W%X$XHSQ4KiN=pe zMlqJ%&k>2Fc?AG$RipC{BI|#+Wo)E&zQR$v_?EmX5oL+?cqw45SvdQ-SqbJ!{yZHL z>}KEXS~aYNC+(dFG)4<9-R@Dd)Yls#Icmcs;W?x$`dU}bK%iIP2edNP`7Cz1V2-1R zhYe$F#H!@4+n=mAia?d#<7phfJ%17F?j)PnEAro&CD1-fp)#q~?#L#$e-U+u4!CB! z6u>&evM~J7DcKV@`DpKk(p5#uuE+YKGG|j8Bm-CcI5BBU-J9uox5Bfpw;#niQ5?q_ z0-?{9INl$lSosAUM|E|<=~pCd7`Hy3$DgtruFVz7;tJ>%X!*)Vu%_~4Q1*Wqy!4dK|^ zqfRIYn6panFjgJq$7f-3YO{RHx4mx@g!cAA?Tk&I)i=dM ziGK9nohT-lRcG}G4G>0v(@4HI3g|6Z5O0o#-eNi!=-L=R)?z8Hec6p^;2!(lFQ-x*i{gFYGJCcTVB3Xb7&@h%AzmQls$%CEJgbx%>D7V_UWr)v>;KFvAcm*-L;GxjfNVF{(8NJxaH#mO#rUhJ2j^@;6y%(|L8I9FzkA_#Z|l&nr{5_gCO-H=cN|*NzWM-!ogU-AA8sbU-(@x+Z1S1YVK~ zO4Q|F@hc+-8v)3-X*I_5WWbgpn&epYLEDxL$wtfgXVX|~oiC;q4ZLX?a3o;}4jW4xMa3i8Sv|6-%nyS=^5;V78FH$I5&CDzJSIq;D8VFPlyMhtt+?=@lgD%RChu$B+rrp`*uyL&#d{ zTK`d#T?TZgvM}%Vb?EKAi{+X3Ck}EI0dCqHk_bgg(TBf$HgGtPl01_w%>zX= z82ey)l4i5EwLHzs`AaCwEk%Y7UL zb$N8Ol&L1r0oerp$YU+^NJywcr&J9Qq-Mu#J2Dqrd`Pa9@q_#R4R_49JxX0*_KAex zMN3rrA=ym(H_~?sjEji0NOkBWL=>c}O5YB&=}s9Kw^K2@H~5FGlZRbwF5w^zcz6Xx z)WN|ET;8~6->k;VY*D5k-^ERqk-P-kWNhP*p&qHorJ@Q($J*uNm)E0_P?=`AsLonL z0>PDlYFL)5-s0ZjXRb}4uD{%(D=HFb9aaFjAT8vRv%(E+1jooN%ho%r(8 zU}!=Dep8pxOm%X?=4m5e(<;2bkn$Ke8j;b-8(fgJ*PpTFO1Uxb;B~XYgJz-Id%k8I zQt4@evZo2bVO&;yGT>Sx1s)4d5?8+Q^oN76NHiW5(uX&s8bC3YpmKQ#Ch?epY{lK| zX8L|1uu+GP1Rf@_I0}E8?-QWfhx`Z)QIy%6dQGcwT-XD$On`r`TXM+uM-c_oOW}}M z{4~3$Us*vEqI`h?6bHPhzuQIkyQj0XX4?X~+2{RcHlR&>ae#w(?-edQ%-zz2$6>7+ zC%2i#H^63ARP!JE8g!P;0*7AAz6?V^xcK~;j1Y$cj}Xb%^v!A!?Gjd`SD4ojlz^sP zA}%-DsF^-|`-^4teMf{d;1K|IoI@uWP`akZJJt_NpO9aXvjc)U;;n@>A$qG6DFF(5 zaLNF?mt+*3dFFLh8z_LZh`vGx{6rug6eS%nCQ8JKn?qFPl`CA0cPF-$$0&2o4-DAF z`uI2InJcO}L*qHIC_32LLI(y4_Jj+8ztAF}^eN(Q5$WJq8NJ7qke?7}jPc^1KIXhi zYJsv}wD;^7TUTnaMx{9c_AmhZMrLBUa~kI7Wln=WX(m7S16xzJ;S12C8-!Sg_PVAA z={xEpUQ_2mAJvHz9nm})Y7oMjJP&jBi_>rz>LY>IjsyC)ohHB3zcA=$Ou^EKfYgUN zIWTiDl2eB*6MzAfq`cn$Z+$FcSy9oVom3Q5O>A!_k(e6iAWlvQqOXM(X3fd=m{-LX zf#V00=!~&xSFa%h6+feb?0_Ym+nSO7o1p><#8CcA-XtTb378t_9PYMsd5oi2^*%eYz|h8rxwO!OJR(3g@v7t;pJrgm%*IgPv%n1ZUT zQObZXN;#73nC8PR;2ru`tN4h9vr4Yt2OMc>slA{0=qLF#AVj?m)!t)2@f-rrmAgXI9P3Q3vye$sTNUr0s;x z@L2clJ6HdgP2jgiW3BiJO6cN2{$*SIUkM}JiDo7lSGycf8_&^fN*eW~lG-`nXRYHx z|GTU+JmXV#KcN#}nq@;Em3P=uz`qBF?&cM2mx3N*FRI~7DHKO(9kyH1%o^rtc%xZn zX>7Bge|t9e7Z4n3>YO?~u~5nX-*P~BCmB#`?Lh|wRWOpmF$dbSJq$#Zg&R%2=aT_E6L zN(%r3*&F>7WxEKN#k?Hp!Cyro-)FGFuK!+x657Aw78)UYWNIJF_s_Fkq_EjDXF7`DIXtjN2XaF4JLVB(2s`U0D{w$@Iy}4ve z(jYpKjrG4lWj1lm2iNAxQrVNHp(?98e(r%TUcGx9sCw!~cLXGwjNE5DF zzfoK2-fyMm7#qLa0#5{ZV!~k|&Zv}`d%<{W563UN_ZggxX^p@VK=W(pyHOHI$CJ2oFkD`^35AVFR zCPP1gg`om5-GC`2pf@n=V^{kzz5~fGR7(gqsTcVnE<|xjD$o9 ztwMoi(f2^;k4va0EK^BT5V`*L7VP4GyCze0+CwiGua__ZDS%GBht%k9ISI-|4E|@h zlpw1wgo4VM?cTbwG#=0+=7B~C_Ja~2z_F>MK_ZH|B1R9`NX2N_YEAHB20N*AM&@m} zO!&7JcASk@>y(va;x8d0A;MsrK%cNq1u!2&dr_>mmYFysbn=19YFK zP`wO!T}l+`4r_uW#)u^`mW#dA!cS`=mtdx@?%2`SoZsgQ-HPDt5a6Vq3F2>FPp@*S zvMTc{(Svn4ICp1$_R9&5-2A*(xcdJSW|S*KyT&Ew zCoe*f0u5_)Xrw!PD9+`wa!J5M13^Y&QDPYT<{7irX%Jf^x2!LLu#ERVJ@ikAjT-cZ zXE1zb8YE0h@;TK{#{Cxq05fV$e@Mcn+4HWg2Z36y%|)0r7pH39cy=UKnp6~14MiMN z{O-C9J&2s~A9-;XZx50bbY;N}op9`C}|vY8+-X8z7XoiEAkV6K%C zC*Y+zg?4X&c0v~wY1$KbyfU_c(rM;U{*%xkzEGY2Lgod1GNG+c`&Vh^Llf!>e`(ha zH`Y__ipWoDP=QpVLK)T-`~Cae!ovQ^RBCGK{QP{C*PrBM;Fwc*4V1?~CG4Tipw$|5^!Xi>rN&R-Sii(PcXWaS+ z1_p+P;M>%z0OtTGa`y7BDJ(3^%!KgCwgJTBGPveqUsp*<3AhY;3t*{H2Y@h(bZLTU zz%F(8zWrW|l;3qIqiGgkW4P>>yaS#ECnqNZ{EMHR7%wlcgoH$E`ThRB&6#jQ#3yhW zGJaRRdgYn+9cO%ee9!w#z+H8E`fg5|J6QcecnLm1L)kkkur6ls!sTHp$A)-g~d#`Fwx= zy0_c)JkRHOzhC3L&N;8m{Ne9YP+S%|Ew6nwbamZwD3G_Ig($>o>`(lm);rW)%czf= zjmut%D=ON2D06v9D{8(QEyoA#$j1DJ(;dGuOfP9?s^;HQY~-2z@pRWzE1VT_b8{)n zWHd3EiijA$bcc6B4%Ye+2mZFRobhHs9AwPEGy3Iurq=wVSP5b#{+yK71k`SQIvIxQO7d zL(r$WH5ZBxUu0P*4kaPC~O ze*ZpNXGjL^Hy2xFq69K;#GMxvb%R(Fr1%Nw$L?#oWWwmmlg9B2M4R19a0J=Rdptf> zFkc6CmD)SaxZGS7#pZ^Fd!dsNd=?sC4Qio$qhwRIJSRdqIeY0!i*g}4z6Cru(H-{x zyqP|H_)rkC=Y7SN$2u#apu*_{eX}t#HF10`UOuk##>~LLz>_CC6cvx1=C`!1<48{j zd1Yb86I>g34va&=D|Pqo<90(l1P2F)dZBqKEv>UVoYzL<@UJqWn>Ln~X#sYwgCX~E z8&dMd65#m|y)LuV^1z~f(l)f|pKkfw#(X`YwSxuEBU+MZ`+o;$OS)D;)|!QO*w^2G z6MiVuTw4W8e@$RJQ3MmO4d=v(iHZ9fAjoa4wSLDC!KN<3si82$ZueROCj_(^>J2vpj*{aFiwoa>qq0pzrz!++KF#|U(gZGZ4BRJt<4i+@%x z^Yc3{j10%Px%Rj$JLFH?PgV^H3TlG*EWj-)_96TNCPz#~VV-m4O1pl4hsF1(@bD{k zQ=Np8w_xGtA&yV6u_6l%HzeP%!J$=n?wV4n#$-MHxl5NCD{9BbAqd@CpYG~Ugyss$ z!F+9PZ5ff(PZcap`O`&C)fcnr85sIbxV2n)apV*fD$`pW=}AcwaJ7?>lHxgbkE3Ab zzu^rC3oe^-<@J3xKYT9$3Jb`B^E5eqJ_v1Z%qJw2S5%y0s-nxcom?CF7yy;h)~zM3KDv3X z&~ee{Tw$`&bWoKn&)eucGUH`kk;r$Kaqc0E; z9(**KM-(=YR-T<>;hNm7Ba zh$naJ$AgCs?L5oP%`Gb0v)qRe3R5)hXy{RhS3YpyfXLPu5@uraNowlRj+3<=wM7s{ zS<@Up?#^v#B=g5@DBO@8Mp=j*mF*=&X%$Fk%cC2@LVHe=bdUUb_TzkleW+j>V2^89yr z#5t>~s2tdFir190!a;OvHo*Pavzl87U68e&JZT(lSTt9~Dzf(nVH;_GOu%_1t@`{1 zWZ|{*%5D(7rj_*ls;?i8^z`sJBjQYzy*$z06!G79oeu@;*x1;Ft&^nWp{<@i%eG0| zfH?$yWpi`(y0>+df_76$DJfeOc*S1#WB=ZLbKP7+k_q4EMsDjr&sIHmn zMWtJ!Hb0*1T<&&Ctu7x=$!F*0wk~;b1d)F(hpm)K5NZZU?vO$tGCmyL@^E9rhW2OG z1eh8Y-34~j-SAy_?&*2TE}cR0&5j@beBC3Hn&6Z5L1*EFV755fLCMi;d*3QqDN)kC z*G8bastQ$3b#qu~XvGzoJ9h*QDSqbOer)nKOTYRJKGXN@&1rZ@rd8)XW2?rKU&p~O z!d<|(*;BFZck;6F;#f248BMp%%SV4{I?tBD)#JzdohQDxUD$&|LR^qK&Il(Uy-j8R znl4&T$;v|DPn~>4<7m5VzTtwPVt$xZ{OK{qWX^IJ;OyAZ6nmF@`)eTmfjvND`7ux# z$urMX-E(bay=S}oy^xWguo`<81ZiJxxc#c->zQCrGVRPERXi3t3D*OaBIi{kXp6j2 z#vY6H#a7MrpxrQ39JOkZfAGL0y90udu?OqQS*9wm&vbgOhAJQ=WX}$miCi{6QJ%an z=xfo&oMb5J^h?1h&Mi{2wzT)Lu|wM(>r*RV5+>KV8MuQa=nBK1)4$sBo{D7j?1gt; z9v{5aY2SU(>~LBuWg3%@S@c#nRlb+>ZiPgQ^qLRP={52xw<83)(zWF zM^%2>acz0cT_&tXYN$JRIkK=-!^zC~8f^WIGkLSG$ER^qVPSaAo2mA%!w8=oY-|Gw z&dExLD7w9mGm(r}WtH)IQ+#ZMv(+}-XUq|y5Z#hkdHPTK8$j>ggE$QnO)kR1bk|-I zvumYQETypU@O~==kJtb1G2RY^pQ!I;9ww$+O0pHlh>{2=4%Se$)8Ds?po7D&qjlT3 z^yty;RNV1-{PXMTMVUzcSvZY8T@Mp>%K9};c)6^s;$Y1W2h~UL$z+Y2cI8o||5tiO zr&2bx)!mx3F;(+BI}4);&s)50cJ;i4D7$XlawjNe1Ya$T+2paNUHN$aJXP+|MU$ zCj$RIdGZ8)Vl)Ca`&CZ=cg9?9{9;mNU0sV2kNRVBxSG7KHRxaNhijYrZJo)#nYV|j zbdhs#8+DU!Qb+_|9fUtbC!SeGKpwt=z`#Hj`Pe6n$YFQ&^#@^#rQb|J)1rph=2+;8 zOaQy5ywTW*7l)~TR|Z8!MZw=Q2aY$eHI4i9$tF+>E;uE7Hed^)libgGOxLu(++U{w zMMn>BNoLavR0yTFj?6=h+3VrpF1+0wa$lpJG5z0gxHFQnB4s!V>Zh~IFAkwRKuHT_ zI!aKvY-Kh$-HvovJbc&}#l>I#_pj=1x3=lvBXP<}dY85SheFShkzrTzsH+ z>wW8Zhh!2_@a6DXu?dmRU6fTAQqP!HNNtU%9YT=+xjueY{`ZrUlY>8z*Y-V2GTMHd7I;-Vc7?jciq-pg2O z#Kg@#55ukxZRFFpxcCRP@fS=pWz<4o(J z8i%EJLq7A)u&Aggw5B8^?-D$M=_`#hZDY@MokE3$|LMP>80B8vGuh2%NGp+{*>eZT zW=mRITZu~a4!gJ8^qG$Qb3)!PUk>rb(@P)?F|)7~GbA?}HC!fi_o&ENZ=Kh$X}q~o zv{D-#9nG%$EqvMBhSspWRv#<%@r}tFh!XX;aV8-!7L&*Ak`bES&0YbQI{85Q+sg3K-GqG|+zhmK% zBCBr<)ka)CdDqPBq9&uI??2n0KgTTjXCA0T4d4)1<*LC%7ZU8b`I73DJpmQFRJuNg zYBFT;~kT>X}{18eVf>*59huW9_jnu7#?^EGD+>GO6*BU zhL832KUeCZRNd0&3jcd~g;7+LmV9ezvLpO#*|6JZv=C1J@|PxmeF)Kk1xW3oT#u03boNOzz?SY&UJWCGu=0aZe{GXevG+Y2qXR~l{{+p~N3?!ClM^w#)TMm4*ypWg)2s*}Yqn!KhGv^5nID}`fIwq7Nf zd-0E;r=6Xhh%kh?2SNf(fFaUFj;Wq;JDTbf6ckS@hP@qaY+FMP2h!z)XPKp zf}LGCEK@oCFOhV0&;SsZ2`)B8+gnbboel7<>g0TA8f{pVS5nGy-E{oo6Dt)yx4GQI zp^`D+%@m#U&xchZ!q9=~dMF(Wi-dyh3g~1Zd^%+v*9#5nX$J3>dQEDr!UQ(Q&lv} zMhS=LIlj0C)%_!E@xc$A`pz)>!K=xvGp7+LWpyA3pnztEo`jChhcO0WASWn3s9gEd zzF!+#j@jOb%gA`tUEtul^dEUM zLg%^6QHZy#6&@Hzq8P4^;mGJi$3@GfcbjRDbN6|ruxv6`-3cHne*gQaL8h#(?nu+V zAt(16IYLEU-HemUa+WZkW?~wKBTf{*)d#k>dVYB4!YjS*L^RE@>gO-4Ri(J}eRCh@gN1n}Vg z{pD(o??eatj{aR1Md*P+;d;uK=o59V|DB?5eVL-3zl4%$IEI!(?4N(ieW9&ibODx| z-6)*^YJ|Ujz0;e(!W4Dy&WLa+?J>=!mq122H~&$DrG@VvFZE?(1$bIg>xypXeDx^Z zvBQ>BLhPEtf;`#|{ZRFC-{&79C1*BjNI7H;)svY$7BPg?^FxP19C?8=adi#xBSUD)e>ZOQZ9 z*F}4w^V@91cOFMF4CUrU03v4Fez( z(Fj*LulX_40>0Zv_5%M2X(YO*0BzkC;H&p zXyJUchg>0onm+n24O?fgTv^3NfF1y$=B~UUl8{hxv(077yu2;5RfAPR&e_=+ zNN9j{=_=Q~x4&8(qNMLb_~){28zmhY73Kd~#$dnw+t)!s{SkF9y}ci%8gudREYt~3 z>-iidk4-xvH`UcvZSOY=Gl&O%6vMRveFdLg~1aY$gOKB8f&fyQA^&W3)#5_U!4hEICpS zlpCk$H9A@@VZ1#0>?8a4!-Vh`>M@}F#6e`KzK%5Rn&2t0gYD>6u}`K<@7Gq}bR>V3l}dQ zi8x_#nv?3V&=!#4t6H@z7k(vA7tBki+?SG&h)+y3dH4|Y1LnDTTaz{iPSMVTKN6nk zu(Go+rBA4`o!~L#Do$_HNf*0yi#RySS+J^5R8}UOq-lpTU58%b9_#vbIgTf9&}rWa z7j<)e{5Z4Ae7P&{K=X2tjEKX+h%7dxa)mdXBD!DJJuwYIz=AUQS{Kt9+|Y*sCCB4M zLG-J{C9Jx4Lfv(BFyp`b!vWWGqYAdS)&uG9MhP@)asKk6DDBMPB)=j=>5LK1U(>8l zpXk~4@7c5Gs3#p#q2?_Nh%nF^yL9vv@8Laf(8fPGd$p~i)?~Jax7K9U>T_%?s8>Jt?`VPPnQ4Y1!Ui5s!u3qJCpWSis&YD%CPuWb2+g2`k`^Xzw zia@*r&Is~4E*R92F-MtIi;aYzVt_CLg zu=hKPAn9gga9MO(VR45D#TV+>*!I4qY&0cCnJ1_XORuws`U=XwYvvOad{Ax&x5wD{ zc!{iAk+b;`2M!9hBn%8zb`Y(EW$#s5NAdQI76zK(q~os6-R#ng!6Sc7PQxrAkZR z_)eW-rJiPjcrKQp*yXChm=L2I{9r(qaqmt1>PrW~S1>m$t?*np^AreR$)~{83Bv=& zj!`bFeQYF*qX&nEu3tNjbvG_+Hc`@soK%=!bUO@3)znC(coYDbK*!eJ7b`l{L%-X~ zDGykk8aw4!Dc5IhUEPnzE?OJDdj0ynjmn(85KcaAY$}NiV5NsY(dc5jQE1$JVX2~A z^3qEMmp;T}_*a$|9E*KjCa04xqGVfiyufHg~Lw*ryd{g|M%~awe_|34~a`~z9uT8GD=N9 zmow%vK(K|_XhdBRG5Xz*;n6MrScbzbj7x|e7is=0sMvF@c9|si`QAM6>Mkts?1|~s z*RSVtHzu=tUX@1MbvtZG_GFs0!oVcQgmRnx?7J{N3mVgOl=35V2MJHe(&^w!Z{EIj z1k8b^VCGUsn+}e8&chgu)afV82dH1So4&a$8&PWzoM3EX(s7vW*|TQ=m)*i@hu*z= z2b>;jV1RX@Ux96ui-#mW0tBf&7 zA~)1-h&ju&{ih^tj_VsXm1n1a8+-*qB;DzPX%*^DwCRfa9jFBMWyyW=MG+}nC;E1b zz>!U3&|Dw)Sli-fw+q`*Cfwc7V2LV&_wo6a8ygvV$u6zRQF;No-o4*$J39+KKL=x2 zb0`Lj@ZTn2%( zy7Ul0T#W*I;@TKIcW9#Mrz#8XhUE*VM`}N?b4YPOQ5>L7&vxp#XY8aiLbY+nIyTA8r}KQunOw z?uF?d(Tf+&kbSg-QN68@!37qW*R>T_geIlL5E)}QOYYmAai(3)atRF%M%5-U5MTVW zMEIKD@q6iqj~=b7se!S`>guXvp$I+wr<4@-^XLCN=Q*J|cpxHR?Adgo>D)l&jQZRq z6$@Yo=n*jcc3sOAzj?FoJhuG6_4jf_ZRE<30E-I6LB%7|Nx)SGaAmO070p8M#Vnw< zvSh4=GgIsw9F*VJ{QM5LiyfmcnG7UTP*i*`d?%ND-6FmtoWu$?s6`a4cOp0gDoS>V zvVF(Gq@05E_xWAs7I$NvkAzNkNyp72YqbL=PEz^WAb}RwVt8ms!>;QwAQJJ9q)vP> zru#+I)i!2tR_E;U7kB^Bt57cs5XUpaBMz3Wo^)g;mrsZp(MP`_mN0n+UDEZNrabSs zG*Q{H6kcyYyL7AY!1>`XUzk&djgK2?9yxlnd{W2=(?0jTE_k3HZdKxJr!}0xklBM$ zE(q80FQ}BIzYKKcC{aJgbw6vm8-d z{yD+uCz;`=Vmbp%L=cv+5MdMGHY|c)o)OG~D>hmvOz^0EyYQk~V=qdTFP~6gOvDs) zgY%ragoK1F4gaG6G{zgrmrYt$+Dvnf@UMU5O9=e5jkcz2+b6}fX1Z|)yqNB^O9IB< zii|0`xc{AriHQ~I+;yFsH$4DXmmNuytxC);@$&W#=XodxKPDZW^Kvc3l8nojAEOyW z1+WSX8DWrl%0YBL$jJo;Di%MQB^op(C0nWAWvL{)ub%W5x2^59QjvY_VD;3wH*W{d)iSEKv*9@;--J!H~Nw*vhK0J5Ql;(qh$DA3H zY_{7=_ryjz@Y9PIdq2OTQR&2|?1(gJ(55=PSN2nuNh`ZWuNk@3yOmu}6!_oOj4H{Ze=KC;){*q8ZWZm7C#c(z|_g`%+Y zie)3i$+>LAc1#Dp78Pw_IKMA+wvs7^fcq2Zp04aLYng|Obd{&ZRQC-d`5Ep2T%K=HqQ<1yd0JM&@0lhPrW zd&$eSb&LOriqBt1WcsJY7*Ii1?M338HSStdT^;0qr!Twa;aMdr-K{UOdYfrP=XFrg z;G1E(vR<&jaf8hZgF-X``>dW-^pkSz3U0aj(W^*xlK!O-zcc3)J>PnQ~w=&hY zwFa<7ZZgiyP>W4SxMP}!AcsNi(+jytdDpBnt~TGi$@XO>00`I7!y@tw#rVreL1EYF z=p+IstQ2RZt*yTX2+G=$I&uqZ`&AzP+LEfN35 z8{=k+iHVt+C6C4E8t>IWBevw`e(1n~^mbDeZ~N1}gH!`h6lGvi;-3-pBYzqZ$Kb(A z%PT8IvJ94pS7{Xh)iN={S<*RE*kSII+~*{Pgk{V)T~Ft+`2iSn05b z?McQ}Sq+V&F@M9ts9se7zb+W@w6Q|C?$+7!E1=`@mVajRuY=vYH~Bli9rG1bGL#7X zkvZ?*IcfVHV_^>u4{dF21Tew>s*2tB)xW)r%AouAsEzX{SqFzJJV$}NbedG1ij+3g z)ukJu+LGez1bIv6#vHyl*uN)T5k-4l@k>vCnCZ*;#-u*{F{a_f+sJ557Z3*op=e0^ zjOF(2+eV=^JFOIPbq$YLzOkG{pWEEhvUlIUb*f7ZJ75W&X%yZtOQ_RXzT8-yS9Q2$1k3Ce9UP zQ_JlvheO%RQabNNTsLxxwSN4Lii}M9q)ChxLGMsaZh<%ZoW_oFD!!4vP!t|-kdt5k z#IT!O{jfgkUN4FXv78rzTJm$K8&ONPU#|b#KF_TBe5NoH3kGW6UZxZGn^8A*Crz!? zoBJA{Wr7VJ`}cpxnE-CaJIl<)%^egNh_OgeP!OGC>D+(rW9k7ZZJ=A(Odfew*cP)4 zfAPFyv}&)<8n`9h_SNwIb$xYquCaIK-as{r$z)*k6>9@DW;xQT$x6~m*fMv(dO7XZ zz|hbm&$B%O`!D&RG|_|&e2DL-={k=lH#OcG7O=fcCTXvu-U4Q<7LdjGu zRtGMGXp|kAKE-_gO;{^+ev$|R1Cpe6?Q0h2<;$<6KC`de6O0K1gV^8Jx4hBsC(tZn zuzFuzeG~9DE2V_nA8jCu%l1O3YmR5SqA|jphFe}rr1%)HaQ~RD%x*a(Rp)Szi&$0K z*M|$AnVE?@gF!9mec+yyCXl2*61bff*g*`<1o6+mv`O>_~J6+C$hA{f6!pHdFEa(Y8%EnODnYNm66fXP*(+nJz zc@F8NN%X2K%$hc2{~lwt!z?&jm_m;b(=yD~Zrr#b>$-5Ouk-20tKDs#og2WBQ2GI7 z+g|^^ef&GBor1B1L}H{3^3t6lF%n8j&!d7I`>tAD;CG#mNH4{Ou%f{AtT0xYxwg4iN?KssPo}TPa2$Y7GrL7|Kv&B0pGi5S^Dg z>wh{?Ci3W21)`?XD`2>om`9H!Z(<{Lhs_QnyLrAUN<>T+Qw-bV@uC z!yuuW`-s7DBvv}=!YLI2n3YGPle=&Repb#z|yrEK$H zSqyo*sl5DgCM9rPuqbjA6$gq@7wqiWKs+j4IGiWh+*_2F2RH1o#WfKBd&+8Za`*?8 z{ed^mPaROXS;3e7&o=+c&S9sv$VUlQh~73f-!N4Z&{#dNQHGLr#Vz~WH?Qsw`|a(Q z_pz(@xR+zK!OmQ285@l1f8w68tL31$y*HHNfAa^QwWGlFl$Y0jwHojN$XNNm0g_PZ z>l(FLV^qSqT@e7oN`^aq4&RV{{wFlX!KHVAN{dB3>oOO$pE+wWR|uR5gTMfDk+#>j z1Idpcr<>{m&SIXOUt4%;*Tkg}AI(!}r1l>^98Ax0_UzTibThn7abSI@d(@<4`jv&v z;ER`|KFy#(5M3*Nn4Ue|TLjy|d1#{qs3k)8mVdrmDD5vqSL&dZ~Q_Bkvi|;#Tie zty2d7w*Ham)LbF?+J2k{Q$ z_&`uuWLLAPbcuRH{BXZC*dAMU*VD63Cxh%<^k}fEnmu2toI$sL8~Z>RrNT(a$UaOw zCAhy};AN`9_O1*QCN86fvm+|^&eMoE=Tr}Z1@#AqCi`I%<8EfE_Uf&+4ZoYT9k#~C z7j{3z*mXc`8nYCT#kes^#)hp$$7U}>bO|3wT4hkwMpRfbn;}63SbWBAi6~ktMD2xc zr|IGzS5!7d!p-fpo9-C?5|^T>_MZ*Gv_O0tZB7hL5Qybg&Ne?2L*gAo7ZFjS8ZjVS zQ*7Psw(T-uiD+J6@Ai0wxzl_ZoYOpDG^L7x^i~oV3{t9pU9+b`#qr?J?do!dpJG>l z_bag&H-+q=QX0fz%1`X4~vH0iUX? zC%2AUfTRfyF~Q)*)!_-3`q1a$S5>^f9wUKc;6L_Rg4@9$EF3jV1&kAKMqni#`{if_ zY>dEV1DX|g%dBq0r1~fGotiuYSDD|nRaO7deauVAT9(4_Z`aVENE)WfK#9w=I6Hw_ z-Kl(maV}t=Cp&lDQ@OcQ3!g>k@zWh(g37Rc0J=0cLAhb-=qT{!+OGp(KlYtu{(XWy zv|5XE=6a-Q`vwN{dqg>SM6}MH(VeKEbpw6kc57?$14r%|&%shs>N8G|y4S zSv{Srf&zSKL{T_=^t+=kdwKsd`iv>}sa;_TE@KV9f9r5kfxfy7UJEhCasq3z^o%uF zRPu4sip{6~mE^0X@IJVeiUF!Gd*1EbTlUBMbhzilldwGM@jDfYCtVo$<^aSMwEn%~ z5!V^YkvDR_```i+!_st5OoT>tfkD{213EsuKDZTb2;2k+Mi(ITla(junllM&-1gMc z5%PIV-)l-vEqshJb`M}LR=4Y7&{)NXkyABK)WHZ1UhEjfTe=wau8(4eTS() z15EES;W^1%wJM#EXV+oM>n~21KO<(o$70Zu-%tFbbli9t(_d_8KFj;_YtzUVVXYrK zKAWi_(M;zA(;8svUz%frmhVB9DYbyj7g6_bA=%c-%3)vnnK?MN!K1(mN3nCt5)$4u zo$q2}%a>0os;G=k9#BzH;c^SY0y7>Aw~{}763Y$iB~8CIfg~mOl5Sxi?&werOLrE? zCIxSnYPjp619#RpvblKSLWXMc?Njx?JZ`NVB4wpotlCZCZmMzSxXqsg4s8(={whNs zYei~ZngGuVzMP(C?(Qy0e_*>HeQ>{7aoil^p{0tSM{VPQ{8e=17a~cZn2T%59JL!1 zeZ!%tAt!fU&>vmXzoTe$F$P!MQ;Qkt3eP=>z`6PPOLl_n09JZF3%!KQh3g;m=FLzE(*|sesYP82nvM6211mXe zp?I&o_i%X|!peF1r#`WcD6+mIzbg;N<`5gZ;H{n7O3+Le()7%7Zxb8U1L8z}&3BIDu z?U7rFsa@h*yJWT8M_9;1WB_nm)MStBEde`JpFuGE=^DDPD<7Ypj`pRU$Qg4e)oot4eP_)7b(itDCRy?FQ*GJ2lTT*>>WqTjQCj zBbHEkqbM;2?A1LdPQsd#iAWI~eJ3tP`RU3(9EnaqRzzd~d9v>v|CK?r`~Yun904Jd z#Ea-n#gvpVLF>CQh^e}EveG&Z`t88yv3p-duV^Lkk}w8Udg==n-La5)b%49it7c=q zYbJS}B-E6TF&40F|H3Lh%A#nZm2p<2ga|7O3k+RZ!V*IMTKldr8n z39;ZweQhtj(%jW3>=NzVo{MJtecWze(rq*b|J6WCyFn_NMLH0TXA=SCZ7=bRrx7oL4eQah%Kg&QFMcRIWjSCF9a4$PMOYA^S7C* zV{1*WU*5jA)Y%imd;a|OH-0lBJCf8zH)h=FB>==E*j@pYAWZ>eOm9*sO6o~S@_DIq zzXo1cKo($-u6%+`S&J(irN9=-KLB?GHu#~+4h#?iIm1J489J{F%c|tjZ#aZH={9Y( z#mnaa6hHUyn0+d!^ZU^KH0Vl3pB-YqH*_CRE-Cj;-?E=KETyQ5CB*}13Nf97a?HK> z>mWlD^U~jdwTWRp$Qri zr9QWmm*ZngXtC@!ne2tGkkU-5IqixJJ z2dEsip9Q|jZgYm`VLGhWR8`;dz5avO-mn=Qai$`nprD|owcw3FKkt7`MMHy~oe>pN zhCAjL#@1pZ_{xaW%=b+EBf(KcmuiLfs9!Sa%NP66&!LQW-|mjFU@phoE~OU#=dn{_ zzt0V#92{{!WT&yUd&twepxt!ol2%S`?iCJ>W1H`5M1A+A3+SgSH;DDqIStD{)%*Sy zOFr=703X~>Qr@Y$FEnv1#4UEpe5i>=G4K=c|4Z+Go{N0_JSHmTO0-`(bayNrJ<5r5 zp9=~)wK%0P^PaT*I0<@6Lw(_?k39;@=H_XGv-S$ZucK&Y1YU6&U6aVzHN6TM*{a52 z?9KZuz(`iT2>yrOWhNE=Ni))x@x_1sx?JIS2k329w60!#;zxs;crIw~qx>$6-4W)4 zl2d>jnpJ%)xa5LZ&85S@#U-cWfJ0b=&$~8XFY2z`4oYO1j>MfiWVO|}>u2-ZdaG)h zn}9FWS61d?Y_9*2x73$*aQCcPlr)oODOO_E8dyJmyokJ!sd_PcjS&dOTT49GwV6Lg zsq-VjEb_s3%8s1k^>W`;O0wHLwT%w`|BXfj>DU$P8i6cHMe>u{()T8WTsRPGVD%~C z1}HZqR-N|!{_4_6?`&-_wyf@^4)mA(C=Q7v4nwMXz7lnKm&Y-}|;=~xt@yupeV8`$&VLx-?2@;U!)fb=)T#FW|I0IYnlVU5qu zI$i0A%&T9sfNv36N8K<_sC6ymv#E6nb;qN+^h&+!6OR$>z(9o<@7uR;;1^1h5ga9I zavq{0L9N)axTqb;$^NLl-2F{DX6TEc0fBmqNsE!E;6S*W^+#DAEkEkRFQBd^2!
Ik06pxp>$Nu zvv~**D`0ux%u5n0ukj89z?jg`Y!EUrAXT5JyE;%s6*O80C=lGk|5~`to!cq@yEq|I z$RPufI6)E|5|+GlVrg~?Y3}UoEZ00(#9z_tAVB!iY0b~igZQL3LH3E-ndai(X?6Bc zjnv_u{=dlbNh(fht@ z?_qw>3{d$=&Akc?JkR>=1UWgI>bKjry2Kvu8IMKrq_cx0h1rFHUW zB@|HcvGd*!o$7)b?CFR-ja?%Pydgx#82Pf8oc&zq-xgXm%i=w+Mz91&2s0(*xI$=Q zS2b$>j(S|dNCk1&82nTm2COU@Y&oT#A#GdPRr_}?^R+{KFUjA|TUi!8FEdpitKL~I z#dB=DCuBV&Wf4>WOR!jxF5Hx`*ZYFlM3<+~Wa4D~j42dkVX4e!`-1qAy?$)oNoWb@ z@iDIDBPK>QX>P+h@~$e#0Aiqu9T_oF*|&f}iz4^YSl$tz)uf%Q-W2S|m&_^zZAR|V zUi|TI?q|I6>@|zG1SvB6isJ$8Zrq9;k~vT#+*Suc!@2EoA&OD}{1}~vj`2HK_(gY2 zVm`~k%nZT?KAP{#m(mgvR~+UBFiL_Z@vKJB&1+l&u|Q1%KY_b%&hD$mfswsuS5n)K z>RqZ<4q%Gz*U36?oRK;I$9}P-NL6&md#Y?{b7p=X+IQsSKz+WVf&w!IYlhNUi_ckD zdbt7IxEm?~qRB?N2}H093u8sdq=!DA2o4J3hNQ4)C$=9G%Gwj~c^zp~H@CH%XiEpL zyth|NrFj#;$-7~KivnKyDf=XEi*p%U0_Uz>#*s#iRO_%xj+~z8oGSTjZF(gNg-LL(nudkrl(q8~@ zWe*FGp#^8U&WY94)xB9YCj=^9U(sj+OF~=&n=jF$@mMfa~Ji@=RNH*cSGY#q8x_?-%Kj-(@ozKeGOu@ zO!E&@y++l!vboYBZp`Y(P3^p04Wm=vkR6wsr9%Af#} zUP=VBikzIhw7lHszzr=eEzDt!j7Gp~KXM-KVnt}be$iVLtr{rOyaM-cbu}SAD&|KI zm=~BAvSzO*Cnh?fenEW&__ijTTYnbw+)K|c`UR3cW?qp~W4|vhF0Q9H00Aq=R*ca% zz{RO#2nFuErBzY)DWNIBkMrkXAy7v!hhz(8%d+2c=~samyZU4X0pWtbF2W82cb7ee zEV+X5jYg56i>BUi2q z(7O(SEQj6LKPsF_q@2e^=#Jr#zKM+7aNAyXlQL?&X+3q9uZ!MX**U;Q<54>RK5}yZmETp`*7GaGNd*Pz{4P}SPkgVno2}ukRnff8 z{ZaLZcW}Op*&|cl{6*$b$$ckzNUlA;st{npMNhxGaes!`=g$6`?yihK<4`CP$UE33 zwny5t-ABIE+G3B?qlDp|*$2XVURg-CBDFqIoYi)7#hea*`9|O;lm!URBu;!ME+Ha7 zw=S7wccbG=XT(rlRN~vmU$bgVI($KML#*iRRFh76A_5&<+{)_})r;$qTd930uoFuD zfE4Q`t;3Pp+Lgqj6oc!IGXDC$>O zPag1AzG4Dj5Erqf8J8V`zsO%OzOv)x8*@-82DXO&x6=+7`^CeaHUXApn~mj9KYyUatV;6o5AiZO3sHt{K!y~7B3%yLqk3H-!iX_;n zT4(=>qu)<*%!MG}wQ_pLB*eM^n)&(d!B?STBdF+yVLpI=S@{Ny8lg=p=>uQEq4(*& z4W3TzgJ;C@KWsxLqIU=Nz~qj^pB^+^g3)N2INQA_0TS;!MpJ-9hO6IYRdFU`a1qq6 z8H#*tO)j)rGW+jJ2_A{Qu-$N^wKTYx($Yr-9PddzfJuNxDu~iT*O%C@9HcSxvJC(* z7Dy4wDf!bl^E|Jd?Fjja6Bsxv-M_D^WCOl0U@Zt0-5`ZSX@U@LAwvG)*cViT`CVVq zx@?s7u>)hziBU%DgyegN7>=<_QN+g$-+pAXt13(^-FsoMY@KQ|le zH`OXgHk>=_wU_Hv!B(WS$4)QXhQkRrR(kGl>-VGf zM3a+}q!OEbZuSFU!n}0}@wzS7+E7CSBjEWT=^tj}a1_T5)0Tw1w|=v!^s#YdaSaH$ zcb&%>!JryZb$XiFOQQ~8fq^nnSf=A05OD0+F9_?M!VOUAC1aer~Nslx8(-cNCH zUzOZU!uK_y^^{@^s+rO&^&-W%`7gq(j@{=0!U;p+%F{A~WNS;@RFT=G;ME7KTN-NY zp#jlGJ*NAAUhMh#fv|=^IQBXie1Z&yFZ`n2JZC>pX7D99gcs(QG0);l0dXFb67&hU zV9*ehzwRS(R?EZZjK0u6o$vJJ(Db41oQt})X>3kGwkSf~2CG64c0O`l#&A^$O`6g!TyoVZ@}_!VK2&oBPkA9Gv7t|9#>>6yhy_ z!O-f#2<6;~jOqo)O@!%|6!q#3J4L4bHZ*W$LH)yp$-oOxgeGvVfJ7r&6)5%*zc)i) z^4hgxXfW3ykoVb~0og_c7Z4;8x85H+^&);HmL1-ytB+JXgd1W3H5wrS&u(Ob3vsoN z%fxX2?ci7tba{ZX=)o~GrsU8lfV~O^bph1epqrk28;cf;P!PCgT%ZZ407Y?+`=m-z= zCqAJ-qC`x7$SWkYfk}}I3SZE7si~;=&HnNo7p%DJNs1r)SnZ#XJ-4Hh%}KC_cv7!`)p45B8;y zfQyC~d9mN<@3)5;1@{$8=?^^;=snxbu)L>2c)7EwJ5&skFv8bm0=)4W;5}MYJOI;h zYfozKYdIkis2A}vpzy)RMn9@c*8}PEyI$r~$v@BASf_9?45yW*EeLoBc!@of6`n*g zA1Y#^xomwVwG@2467Q!fMYWYt!Gh!7!F(!RqO}P5vdc_iQ`;q-N( zA-ad}8Oks(e*>M})$78Sq)R)h9%iZnC#Fkme*5ZG?>aL=Tp6ShQxN^pA;WQUTB1Pd z4PA8H1Wrr2hk@7d*!q^6#>mLnjiimv2zCib{Xaz-Ap>y;fna|gRSEorv4qxL zZy%pEv|8*_gJ||zQI``8G042OXt!7PX$GD?dJB=cl?(hsOoz0JpAl9~Af?>v;Vj3v zHt6+ht9JcRVn!Qo7@dnGezPSqdq3FsI{Tonz80E|pxp`q|!~N}h+mKM^o@ zApNiNuS78!BFw%}R2MO2r76h|AnE&O8Y_nB6nu`6r?B!-NHi81bHyYp^H!aiN^%S0 z<>8N4_a37mfPU`xDnmqHMYM6)M-5PfSns~!i*f$^y-7A^<`GMy%jm{=kI+?DS5va9 z8SzGFTl$)0CcbAt{=)e2xcaBu`HGeKI32Z_7Rp-J## z1~I$?YF}SfMb^4gc?ktBfK0q2l(w!wArX#mrmGjkTjUO&01eyjUJ@0sER67P*5L{D zm;<4GMl>uygYB}rGbuUGD&o+~G9BWCK({nQp^1R4b#oe`RpenhQPFL{ zv(bDO(K%C4)fJ%ZQ%%m=buteW7UFsj#J8J5&bof3|AlOo@(sWl+aTgQ<1JxAgc-~h zh8b3i5cT?y=}Qd;=e7Z>0uMEy!hMXv#4KrKCit#s{inIxF7lEiB9eFSf>tRy`U6E{x;xM!LSXFt zx>Qpknq7bUHlTXY4uO99HFbiao$!m??!0{Bu$^njjrv%P)bHRtfgr+Z^bi%xjD94y zp){T#L3#Kr8ETHGiCc*WsJl<@8LHgCK(d)bI)5WyzbafY0v7_d-odTWrWMf-QVcPaMIE3su;A*cll;uFGNFPUF2C8 zy_Fx4Srwy_sAL595-`neQRds*=dc;!$%chYnR%U?ucuLF(Hae0f0lXcc^hWPI_Yp5 zd5kdOto|0hTS%X|WB1~kW<8{rKHGQXL!LqS$KiKn$;5~-H`{*{)q9Mrx%zc&;${AXRJTzW0P;gn=h*K5ilAH++Cp_ z^X5%#f}z62VQ3|t(7^yU)v8ps6W9@4juJ5$kiSF| zJaeC3iQr|&RveV~8~Bov0%>9{CJ;zWaJ(Yi=XA;rKKE7|V3B+>I}PWMAM?U622vF# z3|TIo@GaI#Yd0mNo9(9HR^eyMqMNGi5<(WtfhNJ&g4`H$&s=!8AK^&eBW<_vN95(Y{^QJ zkYsN%GDEgVWrdKkw<07$R@pMjC@L#tOGb)}BvDZmC4T4e`TpL2d|sc5=lwkQbKlo} z-RC;zT;Q!79HWD|%$oSeyMBfM!R0UZ?D6&QPFh&^HsZ3TIS9}s+Yc}e59KI=EeD- zp`LWW?$v~AfFZM(V=vg%BX8b>cmrqE;ib^$tw!!h7%yOLgZ^|pyoqlAem}&|agnB` zCPGFCXTv)kq>nD&+g|k007n6NB7fiKHBe{>76Scs>?6jJdz~=#F@!6G7-V|d`kyQk zD}oyg!WpMxn4{QTLZ1ZzYffLl%BN>(P%i<)P{~rl@eTd{GC*1V5oPb2 zhyTEhqTf*rC!z0zpawLGPS1FrSwIo32H!CXT6(v5UVZg~(Z%ieP^ z%o~~`CePB+5+Gw3pW(i{QzdAs2Vj_IWNKPCG^eSdfxO7TAhEb3cJ<(j0{zxT5$67( z1HYA1VYbDbYc5~Ns~L~o_b+7R3jr8CzYU0m*if27h@=k1HwzQbNiljVD7fPA50_9B}9&qmsMWieck~l?4VZT1zaktiMUHxVCJV*I&>-3nni<-UES^FO)xH zwU4KMSKfP8%)WgO$p%>3?Wofs%%Q@B^!HtF?*f>>AmWTmscUHwd5*pIEeJP(^_gIe zT+Ek#-ir_gt_9c-oj)ikDVsWQK+)Xq4JaCjOJ5$LK_tjpAm1+7(5t4y-Vs{2HCQS@ zzVex8`5g5r4x0y~ka|bNR^0+eMew9Pit-Q@B3HV3@;Y`^&^Vx_bUIC2Q;B)to7=&17RGyoPniftTc~^ z2yOfbIR1fG9QgW^0TcfPW%dw1KbGf_6fK~Zs7~Xs%YNLQXJ!aWBT47?HK-<{=tS6@ zft6r>298J0Po|ULEd!8}(+gS?T?T-GyI7^f;E#ejMRtM@7VkrNGcMW^uvi*b!@(Ja z9Wj2II8SM5%@38b_w1(203EdK{(X|Gen3l;83i<%k;)DJwH0GoWrNyQHHN7#P_0b| z5sFt@I&Ehn@Iah`WMtOye7^>B_hH%~Y%A$W`#L&1t5}s#rJo>A*RF=Fzg(lY_KM4y za7|-YQrQ_0#SU(K$A)udH!T#Ysj0=8sPZ)tS(uNWi$M+zvkW{dl0}p@zIqisWOC$WgG>R_5A?lxhy0Ld zs~}7hK#0ic#MP5t;r`rk5CgmDdGr@x5tc9m#NqXzR&u7+?o54ea1HHPf1v*TvoB+E zJ5qQ2jI77!-b>Y^ycf8G_!PxRlq0X=Xo9E5ZmoAV5&J&`D-@BEt4O_@_69B+tyQ0O zL>P|VF(PF$_l9ABVz;>_;R}p;=Ol)sT^w#5G_V}(1~`79pae6N30GJ9TG0_aA2k&f zgpt<);3}ywL9lSz>J^x>cuYg)RTQq;w8X%&hmhlpdz4wr+Uie&!w)&ENa18m7?@`7 zV||~kBfdbp#UDVTO~d83I8H=T!z8(IYSu3$%bvihG?p#z6uT2%0T7Oco;UEg+_bd3J(bhID!>E6UV7IQoBF>b*))lHazhtnvV}(aE6Lkc=;=Qf&pl| z?S_yL%i#;PkUnySwb$^QPD~L>dpc^FWc>5qdldLm)Gwj-bl8uDDhzaToFpBv>?fm0 za?U(=3^obeqv!cuTTAQXH$+)pDJfrAJ`>TmtIP1)C>NXWXHNF+-1l`xtIA9_S_onv z7U9^AGi9<*c@^2aB;La74)%6@AH)IVgL>0ebVFsT%(|(}v9+}o`EF;1S2s37z7abV zrUQOZFP{_N!^A{3xbL9sfdkW!u_as^sjsi6?!P?Nb`w^_Q0Y&Nq5PkA+D<(6*#pjs z2e)?yo_mDD)~j^`-NYVpDyq(&9@Q5g5muXhz9M*n1>lQGj?nBbmCoS|=WGG>(<&-0 zDC+?L$Xqi;qACeyJuu)OB?4k%9xDqICU%WYO>p`p7 z6TlhtI5Gg`FCVd|o&cZ(Zdow*Qyj^3JYBdO*d3*KYre=JJUlEd1zP_@-fQ^lFSu+! zU~8}`PkTyd1SmN_9bSfTI$*EzLe3B1nK;0ge3xeHLEY~kf1$??$X|F93c3c&M3%S)#1GojJ*1awT3>9tdPn7y+&ZJnB((Kx`{DS5! z`1_;IhUND72JDw`X50Dnt_~~eINaRa?_!=|j(KOn`VDCf^pf3oj}>XElncnl4>*OY zK<4nKwK-0kjkH}90rDbyQAtVY%YfD?Kw~siR7*y(7oDA*9UXN=k9Fo{R-?+0cHPw2 zc&3Z#^O9WreU!7|l&GD=epYyIgkIW1@pmLotH}FcnrbdQosO*KqIjxG&cqzKyKK7l zjH@L62phCZ-@(zvhUI+@dWb&9M4reF3+>qygnFg|-sd`y$g%9(zJ2=%qmw`B8KYl1 zidA*w4fa$oKRb%b7AW!?Ln_y?gO&WC4oy~G6PNe7`j-lrJtlv}Yx6s$?#K_Sss?{g z!*rNRpdsS|o5Pkmh7cQ$L zq5A$ZJI)O&oSbkMJ*pRvL34J$GWYS?gsY^k>FU~vW39ki^C6arOC;B84Its;^j{NHJDme|b zJO9L!g>+kiS&#G}@1`OT?Ng`4)|i6{uR>gRRx}_%tbW(kdaJOdw(OA7mF+IuvS))I zx6_e%SbA*y-6kMVo)~nDeeQ*J9=&Q^mW!Iv6;4_*5|!qtFC*>i!xsY1S^X&_BiS~g zvqh#@6-6cwsat&VstmEoKBV_{_K$h+O^(TLl?asM@Cf&0`(%{8tE6MPvAt(Kzc!FO zzozb|A?s_GL4ktIHvw`SB0o$PGYlJc$B@4H>Se2!TN)+DLEG(=Nv)67`=bRFS#uwA^WO!a1TQCC$IrX|%XCb|4-cnYc&WfmljPhd9oo7o`e)zL)8gKa zS`#Jb<*yIb2>LY%3YZ0&W_wA>sVOXbr+)Yo63&qbS zj~lgqKM&lFCXYRzT!qO?wQPi#7YZE zWkw)}%J*J2sQo(kz?;+}E4gC+(8$oNhh4HVhJnJP)M`&yrB;IpeUSowYyKjyk#0uf zE1E^ia^1)vo(QJ0udGbzYWOD-FW$oYF-JZm*w>e2*3vgIKl9v9hnK`{6Iyv-&k`eZ zw6AOnlU8BPTI%yd+XCgR93nZ)&8sJlBui z5ld8y|1%4k1R=In!P-DvE>KS}E_O__B^mZ~hib`kkC>Xr6rL&iz$x}|viBIS%Te}C zwV?ir`D2-eZQpJ<+;KbL*b&Z2>9zHS%J!|4$A&RrjTu|Ujm96q`lKeBF`ao^V10zi z;=z%scV9ne7%b<6deDw8S6HWchxAZom)^i=nN+_C3_hvaDu9u zyC>Jk{=3ur+jkaCZb)iXzuQI8Vpe}6Ojr1NR)Q9WbCmx5wfEERtCl1$N2t@ePZiu1TSpXEcAjHdeC)pb#!+m%#NO@rs~6-L7tilLv?fpgImp#W_Tfr>yZ1QZQMaAg zSHmDP*tMa&?>)s^{@r9GqNU4}BI@#wPC8yp5zLx@)oxAeEn4yfSEzsbV9hL^$HhWG zhRWG~^kiZAv2p?Yeeb`9)~Ab%+MhyojMFJJ-sAmPDHX3Ysr-~*LVPM6Y8vnT9m0{z zG@+7nXY*Eup8FcI+N5&xB-a;0%ppT_b92g_m7oyJVjf$tXpOq8x>GcPMdp>q6Sq!_*5$2Ypoj?7{F! zUj0e&Y;0=LN8sqDOK3-`w|Lzid*xhhd+N=shlx&~ z^!Gy=pE~jj`#FsZ7U)tv?D0Yrs=scri8;QX8bX6S9~gdm)uyY8M7%toeh?GsS02;u zgGOd4x`u`if5MD;!nIczE2Y~vBQ=og25HZ>o!3t5(G8zBDt4`fRb_-KI*;8CV2f2< z&L%m_RjHuzT<)tv69=9s>qK}rn%3p@TR&l(kzdjG{8+33%IZc^HJ%njK6Vj0CM#7r zo}LGST3tT|twd-aC|Eh<%aAxobk8+}vG3k0B}?M6>J{lqmlqpkk9Kq`+T=^i${%*WVVHZedT6aaOS3(9Pfeh|R=hgSzQ5l5KM_Hl(k2 zd;F^ph-z&$_uiHwAt_sS=<{j)W2Yy+zw(jy7os6a~?y{_3QseD}t4NE%s9#(W*LtAY{u#^6`sGixS{xoBCUjlT ztR*7aQj0XYo2+kBsGEN{E9Y3-=6 zK>eyTnRzK~$+)p7zofsz-Cf$7&ysKVq~mtAJ+ssvH29Vv)xML@QbC(R>?zpCJHsUM z|A0y$B9zZru;ZZl!)&qL2WU<1Bo8SRab1?x(_WR2jPEf{Iu$)W;{NnB#yD%A3S04Q zF$bB0HbFk9<7XNtc2EB|K`?MjTO0n}=rPz@oo!01Ai_-Pl;2zS-thnI&O=KU@@>D5tEct8t6@eLM3_)MEgq+>SSZ`vEOCok%A#6& zv_WG@(OYUnLw!=*1-r$XtvFheJL@v!te%?%j>iQ>li%ad{OxC{!gaQ>)VMCPfA(V? z$3r!#QDWj$1z&Jfb`I61BqlNDdD#5*JJ0J3U984n*8LS z-yF@rdTp1(M|-RnOW%E^CL>!g>YI6(* zJla`2iOSHmzr^raIV74`$G`!McJBIfjl6#58!CyBn;RPbwO;#gFZ;bF_gMS>I67lcN1f(Z$dL`9_;9klcHU9jSIy`xaH8=YT<` z7k_%@pHGJ|LBvyc35R)TW9m#4Z*QUHs?$CD6Of;TJ;kmaTxo8ZzxcFyFbhbw{k^a! ze3<>D9Jt9D26Kl#1saw#O#tq8WX(RRZk6sr>h%3~$dK-j@xo5Fe|7>9=L#RVe`_@puW}4D{ zuWZ=#T;^VM@deiV(F^+VRb-6HF*&?sx-7Z>{l(Bprp;IKq(91{w6#(A8=1+Ba$#t& zro*czNvH^PxZJ^ zU^;~jDWgnp@1M)ofyYA3(^_=?X5dTg1PCO)w%J&otC&S+3#r_ zQZyuk&lm)4=yi9dtq}3I{;6PjBNHVV8LjdGk#yx$((FB*TN$jG`(SG}W- zJl%TR31$7jl{V*r27`}O#BxGdsVyiSrS9ciw zA(vUd-NUnb#S4tSW1TIfw&ppmVL2kimV+lbzaxm&{-E@gh|4gXemG-MRTijtCSFVk zch&oE$md&VY+}Dz5p~UOH|xEvEDG5{9~6EnkPA&bmgoM(c~zRN=K10g16>{dP!s$H zamo2TJ;8D&+veC0D1)R`b6bX{hLdvUhC<=t&DlDqOBvI*w><0Y-g#0Ua5jgzG#ky?oB!SA z@Ok4f9L1S(1Gw~9v#A0Pah)&kj@S&d*ZoFZCk z?{rgsQpEMYdm`}~QB}yCwutAs)A2w`m3cl=lB&^6P=*+Ur#)OWPv86R+cRM8ir;-o z{p`Nj;+04ftQEAem`J5P^@xta%#WO z+7@Y_k`u~l_AcJC4bMCZQFaf_?O?{kMrC{auH$@5=UE{oSaapynFjLy1}*jPtTkH zxC@y8_z+WkXuREE^?8eY(;KNQ?d6HT`1S?sME}N&{z+N7sjsw8KYpAmV2Jo{!ltl1 z=wyQFQu2K8MqyZ6?>+Pnj4-l$OqtJ^T*e{&dT#l?A&xU4&XnoeJDtxCB&YeDXKj4X z&hvUK_hovR&P}ngSr3>hNC0p^of|&mT_5-BAYMX2_%J`eKGkE);m*b=oIR1+z(2+9@{$gHKjrpCNLQRnMqK#}n^KW9`AtDn9jBKE(DP<*l~R4Sc1d$$bhTWkhXMoN8ALU9UnagfH? z3sPJpR`j2KsH<@n-%NtjJALUaEu?f9!iIB2gxBvu?3C&tg{jLAGfxiI( z-lk2=pB~MLSXf4wjnG5v2pT=*=BnhTK#vF?a1AxJ&+&e;va&DA%4q3JUzQvPu!;6L zxD$Ukq~-z#MbVp`*Z-Wkxj8gJ4OY6>{Lysq&K=`3XHW{P92p-Uht>%k7ncln8rY!X zg$BFL_2x)llbQF2{K4U|Vo1?6m zipb>Pa`HlV&ldX4>}oXQ^vs<2X*Z$S!uL@%jZ@^G7o{I5`WG7seyCaq9(DeJk_^Oq zDk@=4)>}+t!32Y#_m#!mqW3}=>p4T9dxSdrxoL32mfPW7=N>_)UR0Tz%gf0b=s7Za z4hRn*u@x6JwTK2QS1Ht02d3SLrgjk0vag`n3zIH4k8_XSI*LJ(IXwK?s}_|y=wd)Q z@_V2FujlVDSGdpca2Etsy}e~1r2wyoc2xgWiMRAU6qBKCL}#nW`Iz{zMt@ulKhb5% zpNA=v*Z&q5^pFDC8Qs@KK^E-xEzY!4s+QVZ&LREVl@e^;Zx3c5c{@gt>`i?yKoU0x zsfo+C*`RCt&ok>!(o0S!X8M@uO8{fuZ zB27-(ye;ZH2eWZ^V39DNQ6X9@;N1d0gE0{JhKL#+7HGBrV{w$)A#j4a9Y8Be4~XX= z4uK7Y%9+hDPKKV~u)+Ibj4npABem@1S1+`K9G}6k5nbC%VPlG}3zjHz1A0RbHGIMc zPQJOWW#y3el+ovc6eku;{kmvasC11|%0Ui}0Gcg92TC-?vxgL=gq_(pBX(f=u0*N7 zQzDYUUh)|7`uTIVNP3QqibXO;D-U=X=k!741NMvI?83_uFZME1;F)Fs;l)wgmJ}@@@KM4b z*B3$p{U9$-LQITkX4$IuW^fQ7YKsY|^ssW=Fa#G8eZ5fSVzM1Kl3F|anV*ZZ?5Kq3 zF4kqO@eAjJwqsJPr40Iz`07M2Hl!w66Q- z;xFl#nX!-au~7``f_lXWSitd~@>x0D+z9fSb#A83r(mbQDVMV%yG{L*@}%svb-4+a z6SFNi$I$c@o{sM3Gg@#)WuU$%Q#$dic!di=mma(82Fe)peN48{W=l#YXFy-Kdo2#F zSgHc#n;Myl3JUOM>7Kbj4a#>L+Op1v=dMdmjhnxkABIiIM6Vs_$9jb{Pmsf*MmIjA8ecu9P^N6~p|nUR6@%1f2uN?# zA$?|jw{!JAyTFUCv4vkqLJiA~a?QMEoi|9n6PD}zBMiohE1dlNk*fz?FxOCo+b?1j zAmK*gxW{?xg-TQGgUq&=xxLA4&*fdtq<)#=O^B?l5{kIiutJY8?kL)L;j7nQOdRgFYe6V^N88%He^k2?S9Xty_r0Q8>ZB^*qD|92=tr^25ODwv&iVti zu#BzzDdf3mjA(_MZZpP0be}$vZFXqmwvfT(&j80nQDU8kTiq*tRZ(YvFiy4Ov#wm} zg5~1$SuLCLLd6G-AF{3zP)q6s_NNqJ1zhh=OX?#LxrEn^_4eFnYnp3tgRYqwC08z9 z&SZ4}J2b!8DJBA}aFw6eEMN*28~4!##-1PT|VU zD!pnkmK(^m@KMRRb?3;-ZFFlN?XC-^+1spB{0`wQ7b>)(f*8iE zL=e{OO8i2N&yF2`X5*+_eRgJIo0mY#N6&G?aWZHd+}myn&?UezAYNQrKiOu4F8MCZ zztvQkZQr}@b!QlS@{o(E00+{?lx|g|@hP{P+#IClR8%SC+^>{QEmh7MG1y>to;59eT`OrBpr&+bWfL$|!V$A-I8-m9>khC_f(> z$FKHKnM13n#YVhWcu6=Oe+ATkjH~`bZ0?4@amX zWJ{WcVpVdOk*mG3L(+u6VTSjL7wzM-3QiE*RG4kC;cOl4cZ+3snn*sc^_bV4R5JGd zs?$658_dLQYWwT*3Dg^o>WG!lvQKbdmn&W{=8WRHmrkUnN9lS$3E)kLBsYHbLRTK` znxgnwhnL#MmX;r;qYygJfVhAvuh#+jy2}&}uX~0-0|pIbzh zusMLdO5)Z8c@*K)ux~~SdH6-LXX@yR!TB87mfqeb*Qd=xR|;IupkgV1zEN6&d_|;-qY=+$UxB1^c-vY2TRw z3n@D!WcASY#fpSRyVq;4Gz2+2FV+5WW_#GB&VQY76g2}mGon!4?F=hFc)pRNxxV=uQ4#U z9FeuSUq({DXdv5{{EC^V@h0N_jMeE`rB`8CfJUQoOjWt%c#0S&fijy&B)L59_(UJ< z*yCgqdSno_xt~MA;iJwFi9jLxb0g7ahQZ;>D*sb;H8u1@K_L=^)^m?i$hXJdP_ZS< zW)TzpXjS#;;WSMBXl5fO2$ImO(w=o1>x14)~lB=@7CuRKpsBx_&-NB5MP znn;Qk3W5(GegmBdMMvy+pyJ8=uCc#w!s$_z@~dWR%@I!h7()qo2L^A|+_K#M=mTMux?D8{8b?U87xe^V#<*bgV$WZ#!>yU1ZL4) zUG_1{b3?JRUDNK7Y|mKRb}bq)h3uiFjY~@tx=t6*gI|)*(>FFAN;xxPK+RRAKSM9< z{(4NSu>MKh7*WdWe&}f-WOrmEF{b?{=ky<)cUy`5!yidznE>GUeR@ImA5xD;e{rcj zE+@=)`7hFY&}rm+CNAxr>e5Hrg8XQeB(-Z$SjV!&Xdk)-!>w|NRBrqB$d?l2yLP>#!G6!rUvRcq17&y%3pQIJoT-rWjCuJbyt+R$ zcUIWg)AN`uoEL~ZVT}i-egXd`&T1Ab8v4uJHD!D{essb5HH`n3z8$a$t?#ap(JdO7 zgmFP7P9x?yPV~>ej8IgCsvIWjLUTzKN=nk}2^`*$Ootn7qiJF?A8BCEcR-QGZZ_hV z;k6or@aFVq6&{9_FJW=Uv1O4R69oz(k?5}h>>>`r**Q6VjUWgVI8jgD=!l4k5lijD z*#MgYJPlip#1$>v8UKLMVY;DWQV*lP7YUlMu0x*7Y>QV*nEKG6$>felZ>f&Oy}j7o z)<*k|MUtHKbzXv7wD*8|JV`iQ87Qv!)9Jzzh8`DjoId`8f8f{ndmd4F+K_5R9dZ~Ur5`yBTl zu~9NG*z4=EcgsRY#H zElRPR5}uJT+=3LdB^hqT0s`^>$X$$RU?qgWyZvxNdivMkvihmC6b*HCK!Tal3u>S_ z*$Q!Ra7atnosy4p@n>&I9&oyJ{`?|%UW$Zx;uXQiS%a3CCPwgj0*g&?*FLkP+NjJqS0i!M$nj( zX9bC#Uj&2Cv46~>B&2l;xE-VzF-K}gpCg#N3TA6MD=U);d5PaTsAkbQl(PBIWXM zN)%NJFh4)p6{|7dlsIZ?MGIyKO|PdE>!~xF+ry#ID3kiWsabRwvaVkhQPXY!p<}aV zGNDsnf@$Y^;Jsa9rD>5scx{%a+VQH%c_&hZ^PK1%FDe@E5)I*)yzphLPR!Szt&2@C z$*h+GTXz?mG}CwZGr?svDmr@c!>@a^-M()I1_D`zpL$*Z)-<#ia@AVT8uK8i=(kBxNR*kH&K788*UcrP@I5-V*kQ$+3%$#Jad9hH(eB;ay1wg z*_=XJXs-${d$c{q*|O95I1DnC)5&&FsmFh`jlg6cH>z2o2hSCh9pc^X+67sN!#2e$ z==2QJ*y&U#0|mlYB3kM}n@cl6J0MW2--2~%YioCW-fX?G0$$GpjQ$U@x%X?353L?t!&n$qdy9)>^+*qI9>KKsu z9?5HGj;$Mak#&zX?U{Mmwj^1nsXQyqCByai_6jfSJ>Q%GC-_qU8`Cv49T^^WeDt>7 z9Cp|(FJCIFstW!TT9bfr!8@supgK3H6+;~A5woyOAS8pH(=iR6AkI^mWuU-jQ(z-v zNSBxSapLU?=b9^?7Hzcf?m=tPjJFeG0qYi|v)Qkm5Iz6o>|JY)^4Du&guD1Ic9}Iy zFkEzD34WBkL@X3SzA7nMlkk?0PB7%*)+>68bPmzGWo|R}o}Jb3wS=7wK5^|nnv-i8?Zrx)O+mTF zESXK)0%AvnnW(}b&}ihkQ&eQN`;D;Xb(K$*A;RWoni;k#31w97;LjAu07G29AZ=h* z5|R0?D@i4KolM!8_&$06L$k@h5RG;Q$1&t!TO?=&)tWhdZL>6EGeKR{yd0bK%9P86 zDmm(!n)?3^jWtg#Vg;?-^PSpIvSzCIv3OEuDX*;L2B>+eLfpIoj!NSR>jtusE-N?H z7uGL@@yU#3oZu_E2{MA)2c7D7mmah>S%nmhwZ(C~de#q;kOR(@|?z*jQ zct2;Sn?8u_@N*6pot|g)*9FU2Eq>)n`&Sz@P3w~O%Eyn9HjvwPPP@xL2s#`TTcErS zgiy+=T&I~Lu;7npbk$gm@amc^S)K$q za5EYU)-j751@69Hy4SBxy3xiwQFLa{nCan1Wz)hR3JXPCa)yXk?<&>s_VV=Im?yHd zS()jo=Z-uaG3%a=s6rp*mxMx2K_}g7bKI9ftlW6LG_@@C*Pf$jm z_{aCzA*s>2D2WF9v5{nKZB{oL<7>|7G%b)9B`Q53&Rm*HhuA(||EODPm9F|$_1K#& zDGGiBRf=}lGLthOGV_>n>`Gup<8%p%G`O(-;_|VrNOz4v%_I&glr%K5kWpyQd^--S z9)n(x9}OLtG6u$386r&lBn@1Rbq#&!ath=~1{uEa%UD}59*I_wnUn^1>6Ph8BRe50 zW@6C@^!SH8=o%X2n%*CtW+o`dBIB3_!K7V-eqR&yO?%DZuL5Hutcq()Zbzf9ut{kkSo1IfB|i zvaR&MyNgxG>4DQH_xUQqf7{B+3fePWUE1_#+JBnee93k*xJZ*pPuYp@EjF|WxbD#R z^2O1lOr_$r0ahpZwm`u)}VNccaz#RY zlD?GEHe^0X(dG_Jf3o{l|EvdU?IHwrK;~ayXJoWBM+5$wH30^LN?;5TbiS z>8NVtWOk^f_5R0FsxrJvYt12#%v8EgZg^{|#5C6j3kSw+Sshd7*}~)OiMr+5nHvW6 z$#S+GIn>Gb<=i`J1ItzvqbOJ6CbK=;{8RP7+YDS4GWc;Jy0XqP;U{&h56W*1KC=lrfIi~6E~F~!#RoDsN~>-EwgiIo}kQ5fe2TxxjnKH2hkE6c0-^KI7r z;(s)^Sns^@dF#N=V0PKVhd @@ -54,24 +57,45 @@ QQ 和浏览器是两个进程,浏览器进程里面有很多线程,例如 H

+同一进程中的线程共享地址空间(代码、全局变量、堆)、打开的文件描述符、信号的处理方式和当前工作目录等;每个线程独有的是线程 ID、程序计数器和寄存器、栈、信号屏蔽字、errno 和线程局部存储(见 [pthreads(7)](https://man7.org/linux/man-pages/man7/pthreads.7.html))。 + +需要注意的是,各线程的栈只是分开使用,并没有隔离:拿到另一个线程栈上变量的地址,同样可以读写它。 + ### 3. 区别 - 拥有资源:进程是资源分配的基本单位,但是线程不拥有资源,线程可以访问隶属进程的资源; - 调度:线程是独立调度的基本单位,在同一进程中,线程的切换不会引起进程切换,从一个进程中的线程切换到另一个进程中的线程时,会引起进程切换; - 系统开销:由于创建或撤销进程时,系统都要为之分配或回收资源,如内存空间、I/O 设备等,所付出的开销远大于创建或撤销线程时的开销。类似地,在进行进程切换时,涉及当前执行进程 CPU 环境的保存及新调度进程 CPU 环境的设置,而线程切换时只需保存和设置少量寄存器内容,开销很小; -- 通信方面:线程间可以通过直接读写同一进程中的数据进行通信,但是进程通信需要借助 IPC。 +- 通信方面:线程间可以通过直接读写同一进程中的数据进行通信,但是进程通信需要借助 IPC; +- 健壮性:进程之间相互隔离,一个进程崩溃不影响其它进程,而一个线程访问非法内存触发段错误时,整个进程连同其它线程都会被终止。 + +因此选择多进程还是多线程,主要看更需要隔离还是共享: + +- 任务之间需要隔离、一个出错不能拖垮其它任务时用多进程,例如 Chrome 把网页放在单独的渲染进程中,一个网页崩溃不影响浏览器和其它标签页;执行不受信任的代码(例如 Agent 运行模型生成的脚本)也应该放在单独的进程甚至容器中; +- 任务之间要频繁共享数据、对创建和切换的开销敏感时用多线程,例如 Web 服务器用线程池处理请求,各线程直接读写同一份本地缓存。 ### 4. 协程 协程(Coroutine)是在用户态实现的轻量级线程,由程序自己调度,而不是由操作系统内核调度。协程在等待 I/O 时主动让出执行权,运行时再把其它协程调度到同一个线程上执行。 +协程的调度由语言的运行时完成,内核只看到运行时创建的少量线程(通常与 CPU 核数相当),这种把大量协程映射到少量线程上的方式称为 M:N 调度。大多数协程是协作式调度的,只在让出点切换,例如等待 I/O、等待锁、sleep;一个协程长时间计算而不让出,就会一直占住所在的线程。 + +Go 的 GMP 模型是一个典型实现:G 是 goroutine,M 是系统线程,P 是执行 Go 代码需要的处理器,数量默认等于可用的 CPU 核数。每个 P 有自己的就绪队列,M 绑定一个 P 后从队列中取 G 执行,队列空了就从其它 P 的队列中偷取一半。Go 1.14 起运行时还会用信号打断长时间运行的 goroutine(异步抢占),避免没有函数调用的循环一直占住线程。 + 与线程相比: - 切换在用户态完成,只需要保存少量寄存器,不需要陷入内核,开销小; - 占用的内存少,可以同时存在大量协程,而每个线程都要预留独立的栈,例如 Linux x64 上 Java 线程的栈默认为 1 MB(ARM64 的 Linux 和 macOS 上为 2 MB),线程数量有限; - 同一个线程上的协程不能并行执行,要利用多核仍然需要多个线程;协程中如果执行了阻塞的系统调用,所在的线程会被阻塞,所以协程的运行时通常把 I/O 改为非阻塞的方式。 -Java 21 正式引入的虚拟线程([JEP 444](https://openjdk.org/jeps/444))就是 JVM 实现的协程:虚拟线程由 JVM 调度到少量的平台线程上运行,执行阻塞 I/O 时从平台线程上卸载,让平台线程去执行其它虚拟线程。虚拟线程的创建成本很低,不需要用线程池复用,需要限制并发数时使用信号量。在 JDK 21 中,虚拟线程在 synchronized 块内阻塞时无法卸载,JDK 24 起([JEP 491](https://openjdk.org/jeps/491))基本消除了这个限制。 +Java 21 正式引入的虚拟线程([JEP 444](https://openjdk.org/jeps/444))就是 JVM 实现的协程:虚拟线程由 JVM 调度到少量的平台线程上运行,执行阻塞 I/O 时从平台线程上卸载,让平台线程去执行其它虚拟线程。调度器是一个工作窃取的 ForkJoinPool,平台线程数默认等于 CPU 核数,JDK 21 不按时间片抢占虚拟线程。虚拟线程的创建成本很低,不需要用线程池复用,需要限制并发数时使用信号量。在 JDK 21 中,虚拟线程在 synchronized 块内阻塞时无法卸载,JDK 24 起([JEP 491](https://openjdk.org/jeps/491))基本消除了这个限制。 + +例如在 JDK 21 中启动 1 万个阻塞在同一个 CountDownLatch 上的线程(Ubuntu 24.04 容器实测,见[附录 A2](#a2-平台线程与虚拟线程的开销)): + +- 平台线程用时约 1.4 秒,进程的常驻内存增加约 290 MB,平均每个约 30 KB,这是因为 2 MB(aarch64)的栈只是预留的虚拟地址,用到的页才占用物理内存; +- 虚拟线程用时约 30 毫秒,每个只在堆中占用约 2 KB;启动 100 万个虚拟线程用时约 0.5 秒,堆中共占用约 690 MB。 + +协程也不能无限创建:每个协程的栈和状态都要占内存,例如把最大堆设为 256 MB 时,启动 100 万个阻塞的虚拟线程会抛出 OutOfMemoryError。协程适合大量任务都在等待 I/O 的场景,例如每个请求都要调用下游接口、查询数据库;CPU 密集的任务没有等待可以让出,开再多协程也只能由少量线程轮流执行,不会更快。 ### 5. 上下文切换 @@ -83,9 +107,9 @@ Java 21 正式引入的虚拟线程([JEP 444](https://openjdk.org/jeps/444)) 需要注意的是,系统调用只是从用户态进入内核态,执行完后通常回到同一个线程,不一定发生上下文切换。 -同一进程中的线程切换不需要换地址空间;切换到另一个进程时还要切换页表,TLB 和 CPU 缓存中原来的地址映射和数据对新进程没有用,要重新加载,这部分间接开销通常比保存寄存器更大。 +同一进程中的线程切换不需要换地址空间;切换到另一个进程时还要切换页表,TLB 和 CPU 缓存中原来的地址映射和数据对新进程没有用,要重新加载,这部分间接开销通常比保存寄存器更大。x86 的 PCID 可以给 TLB 表项标上所属的地址空间,切换页表时不必清空整个 TLB,没有 PCID 时每次切换页表都会清空 TLB。 -例如把两个执行流固定在同一个 CPU 上,通过两根管道来回传 1 个字节,让它们交替运行,两个线程之间、两个进程之间每次切换都约 1.1 微秒,包含一次 read 或 write 系统调用(Linux 实测,见[附录:实测](#附录实测))。数据量很小时两者几乎没有差别,进程切换的额外开销主要在工作集较大时体现出来。线程过多、频繁阻塞时,CPU 会把相当一部分时间花在切换上,可以用 vmstat 的 cs 列或 pidstat -w 观察每秒的切换次数。 +例如把两个执行流固定在同一个 CPU 上,通过两根管道来回传 1 个字节,让它们交替运行,两个线程之间、两个进程之间每次切换都约 1.1 微秒,包含一次 read 或 write 系统调用(Linux 实测,见[附录 A1](#a1-上下文切换))。数据量很小时两者几乎没有差别,进程切换的额外开销主要在工作集较大时体现出来。线程过多、频繁阻塞时,CPU 会把相当一部分时间花在切换上,可以用 vmstat 的 cs 列或 pidstat -w 观察每秒的切换次数。 ## 进程状态的切换 @@ -608,9 +632,43 @@ FIFO 常用于客户-服务器应用程序中,FIFO 用作汇聚点,在客户 允许多个进程共享一个给定的存储区。因为数据不需要在进程之间复制,所以这是最快的一种 IPC。 -需要使用信号量用来同步对共享存储的访问。 +管道每传一次数据要复制两次:write 把数据从写进程复制到内核缓冲区,read 再复制到读进程。共享内存把同一个物理页框映射到两个进程的地址空间,写进程写入后,读进程直接就能读到。 -多个进程可以将同一个文件映射到它们的地址空间从而实现共享内存。另外 XSI 共享内存不是使用文件,而是使用内存的匿名段。 +

+ +共享内存本身不提供同步,读进程不知道数据什么时候写完,多个进程同时写也会互相覆盖,因此需要配合信号量使用。 + +例如用 POSIX 共享内存把一条 1 KB 以内的消息交给另一个进程,依次调用 shm_open 创建共享内存对象、ftruncate 设置大小、mmap 映射到地址空间,读写完后 munmap 解除映射、shm_unlink 删除对象。信号量放在共享内存中,sem_init 的第二个参数为 1 表示在进程间共享(Linux 上编译运行,见[附录 A3](#a3-posix-共享内存)): + +```c +struct msg { + sem_t ready; // 写完后 up,读进程 down 等待 + char data[1024]; +}; + +int main(void) { + int fd = shm_open("/demo_shm", O_CREAT | O_RDWR, 0600); + ftruncate(fd, sizeof(struct msg)); + struct msg *m = mmap(NULL, sizeof(struct msg), PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); + sem_init(&m->ready, 1, 0); + + if (fork() == 0) { // 写进程 + snprintf(m->data, sizeof m->data, "order 1024 paid"); // 直接写共享内存 + sem_post(&m->ready); + return 0; + } + sem_wait(&m->ready); // 读进程等待写完 + printf("读到:%s\n", m->data); + wait(NULL); + munmap(m, sizeof(struct msg)); + shm_unlink("/demo_shm"); + return 0; +} +``` + +这里为了简短用 fork 创建写进程,没有亲缘关系的进程只要用同一个名字调用 shm_open,就能映射到同一块共享内存。 + +多个进程也可以将同一个文件映射到它们的地址空间从而实现共享内存。另外 XSI 共享内存(shmget、shmat)不是使用文件,而是使用内存的匿名段。 ### 6. 套接字 @@ -618,7 +676,9 @@ FIFO 常用于客户-服务器应用程序中,FIFO 用作汇聚点,在客户 ## 附录:实测 -上下文切换:Docker Desktop 中的 Linux 容器(Apple M1 Pro),gcc -O2 编译。两个执行流通过两根管道互相传 1 个字节,每个来回包含 2 次切换,各执行 20 万个来回: +### A1 上下文切换 + +Docker Desktop 中的 Linux 容器(Apple M1 Pro),gcc -O2 编译。两个执行流通过两根管道互相传 1 个字节,每个来回包含 2 次切换,各执行 20 万个来回: ```c static void *peer(void *arg) { @@ -644,9 +704,57 @@ process 每次切换(含一次 read 或 write)约 15.49 us 不限制 CPU 时两个执行流在不同的 CPU 上,每次都要跨核唤醒对方,反而慢得多。 +### A2 平台线程与虚拟线程的开销 + +Docker Desktop 中的 Ubuntu 24.04 容器(Apple M1 Pro,aarch64,10 核,内存 7.8 GB),Temurin JDK 21.0.13,-Xmx4g。启动 n 个阻塞在同一个 CountDownLatch 上的线程,统计启动耗时、进程 RSS(/proc/self/status 的 VmRSS)和 System.gc() 之后堆内存的增加量: + +```java +CountDownLatch gate = new CountDownLatch(1); +Runnable task = () -> { try { gate.await(); } catch (InterruptedException e) { } }; +Thread.Builder builder = virtual ? Thread.ofVirtual() : Thread.ofPlatform(); +long rss0 = rssKb(), heap0 = heapUsed(), t0 = System.nanoTime(); +for (int i = 0; i < n; i++) threads.add(builder.start(task)); +long ms = (System.nanoTime() - t0) / 1_000_000; +Thread.sleep(500); +long rss1 = rssKb(), heap1 = heapUsed(); +``` + +```text +platform n=10,000 启动耗时 1424 ms,RSS 增加 287 MB(每个 29.5 KB),堆增加 3 MB(每个 0.33 KB) +virtual n=10,000 启动耗时 29 ms,RSS 增加 41 MB(每个 4.2 KB),堆增加 19 MB(每个 2.04 KB) +virtual n=1,000,000 启动耗时 426 ms,RSS 增加 918 MB(每个 0.9 KB),堆增加 684 MB(每个 0.70 KB) +platform n=10,000 启动耗时 1457 ms,RSS 增加 290 MB(每个 29.7 KB),堆增加 3 MB(每个 0.33 KB) +virtual n=10,000 启动耗时 27 ms,RSS 增加 37 MB(每个 3.9 KB),堆增加 19 MB(每个 2.00 KB) +virtual n=1,000,000 启动耗时 520 ms,RSS 增加 900 MB(每个 0.9 KB),堆增加 688 MB(每个 0.70 KB) +$ java -XX:+PrintFlagsFinal -version | grep -w ThreadStackSize + intx ThreadStackSize = 2040 +``` + +把最大堆改为 256 MB 后启动 100 万个虚拟线程: + +```text +$ java -Xmx256m VtCost virtual 1000000 +Exception in thread "main" java.lang.OutOfMemoryError: Java heap space + at java.base/java.lang.ThreadBuilders.newVirtualThread(ThreadBuilders.java:408) +``` + +### A3 POSIX 共享内存 + +Docker Desktop 中的 Ubuntu 24.04 容器(aarch64),gcc 13.3,用正文中的代码(补上头文件 fcntl.h、semaphore.h、stdio.h、sys/mman.h、sys/wait.h、unistd.h): + +```text +$ gcc -O2 -o shm shm.c && ./shm +读到:order 1024 paid +``` + ## 参考资料 - Tanenbaum A S, Bos H. Modern Operating Systems [M]. Pearson, 2014. - [pipe(7) — Linux manual page](https://man7.org/linux/man-pages/man7/pipe.7.html) - [CFS Scheduler — The Linux Kernel documentation](https://docs.kernel.org/scheduler/sched-design-CFS.html) - [EEVDF Scheduler — The Linux Kernel documentation](https://docs.kernel.org/scheduler/sched-eevdf.html) +- [pthreads(7) — Linux manual page](https://man7.org/linux/man-pages/man7/pthreads.7.html) +- [shm_overview(7) — Linux manual page](https://man7.org/linux/man-pages/man7/shm_overview.7.html) +- [JEP 444: Virtual Threads](https://openjdk.org/jeps/444) +- [Go 1.14 Release Notes](https://go.dev/doc/go1.14) +- [Multi-process Architecture — The Chromium Projects](https://www.chromium.org/developers/design-documents/multi-process-architecture/)