From 49b4d8aad2ed99ee7e5d578f032b6d392d37d6a6 Mon Sep 17 00:00:00 2001 From: Don Mitchell Date: Mon, 23 Dec 2013 13:57:48 -0500 Subject: [PATCH 1/2] Presplit stack diagram --- docs/architecture/presplit.graphml | 547 ++++++++++++++++++++ docs/architecture/presplit.jpg | Bin 0 -> 43129 bytes docs/architecture/studio mapping.graphml | 605 +++++++++++++++++++++++ docs/architecture/studio mapping.jpg | Bin 0 -> 48247 bytes 4 files changed, 1152 insertions(+) create mode 100644 docs/architecture/presplit.graphml create mode 100644 docs/architecture/presplit.jpg create mode 100644 docs/architecture/studio mapping.graphml create mode 100644 docs/architecture/studio mapping.jpg diff --git a/docs/architecture/presplit.graphml b/docs/architecture/presplit.graphml new file mode 100644 index 0000000000..0d97955595 --- /dev/null +++ b/docs/architecture/presplit.graphml @@ -0,0 +1,547 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Studio Client + + + + + + + + + + + + + + + + + + LMS Client + + + + + + + + + + + + + + + + + + Studio App + + + + + + + + + + + + + + + + + + LMS App + + + + + + + + + + + + + + + + + + MixedModulestore + + + + + + + + + + + + + + + + + + Contentstore + + + + + + + + + + + + + + + + + + Discussion Forums + + + + + + + + + + + + + + + + + + Grading, +Analytics, +... + + + + + + + + + + + + + + + + + + Mongo +modulestore + + + + + + + + + + + + + + + + + XML files + + + + + + + + + + + + + + + + + GridFS (mongo) + + + + + + + + + + + + + + + + + Assets + + + + + + + + + + + + + + + + + xblock +runtime + + + + + + + + + + + + + + + + + + auth svcs + + + + + + + + + + + + + + + + + + SQL store + + + + + + + + + + + + + + + + + ? Discussion + store ? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/architecture/presplit.jpg b/docs/architecture/presplit.jpg new file mode 100644 index 0000000000000000000000000000000000000000..024cb8994bb3a566babb32b9d4677bf2447fd0c3 GIT binary patch literal 43129 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 literal 0 HcmV?d00001 diff --git a/docs/architecture/studio mapping.graphml b/docs/architecture/studio mapping.graphml new file mode 100644 index 0000000000..da3e274462 --- /dev/null +++ b/docs/architecture/studio mapping.graphml @@ -0,0 +1,605 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Studio Client + + + + + + + + + + + + + + + + + + LMS Client + + + + + + + + + + + + + + + + + + Studio App + + + + + + + + + + + + + + + + + + LMS App + + + + + + + + + + + + + + + + + + MixedModulestore + + + + + + + + + + + + + + + + + + Contentstore + + + + + + + + + + + + + + + + + + Discussion Forums + + + + + + + + + + + + + + + + + + Grading, +Analytics, +... + + + + + + + + + + + + + + + + + + Mongo +modulestore + + + + + + + + + + + + + + + + + XML files + + + + + + + + + + + + + + + + + GridFS (mongo) + + + + + + + + + + + + + + + + + Assets + + + + + + + + + + + + + + + + + xblock +runtime + + + + + + + + + + + + + + + + + + auth svcs + + + + + + + + + + + + + + + + + + SQL store + + + + + + + + + + + + + + + + + ? Discussion + store ? + + + + + + + + + + + + + + + + + loc_mapper + + + + + + + + + + + + + + + + + + loc_mapper + mongo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/architecture/studio mapping.jpg b/docs/architecture/studio mapping.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8654dcc6219463c5b12c0b91a2238073b58086a0 GIT binary patch literal 48247 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 literal 0 HcmV?d00001 From 07ab23b1e59ea0ad82748f3f05fd2b5726f47ec2 Mon Sep 17 00:00:00 2001 From: Don Mitchell Date: Tue, 24 Dec 2013 11:18:29 -0500 Subject: [PATCH 2/2] Locator as prime repr --- docs/architecture/locator_ubiquity.graphml | 669 +++++++++++++++++++++ docs/architecture/locator_ubiquity.jpg | Bin 0 -> 51876 bytes 2 files changed, 669 insertions(+) create mode 100644 docs/architecture/locator_ubiquity.graphml create mode 100644 docs/architecture/locator_ubiquity.jpg diff --git a/docs/architecture/locator_ubiquity.graphml b/docs/architecture/locator_ubiquity.graphml new file mode 100644 index 0000000000..b71c38996b --- /dev/null +++ b/docs/architecture/locator_ubiquity.graphml @@ -0,0 +1,669 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Studio Client + + + + + + + + + + + + + + + + + + LMS Client + + + + + + + + + + + + + + + + + + Studio App + + + + + + + + + + + + + + + + + + LMS App + + + + + + + + + + + + + + + + + + MixedModulestore + + + + + + + + + + + + + + + + + + Contentstore + + + + + + + + + + + + + + + + + + Discussion Forums + + + + + + + + + + + + + + + + + + Grading, +Analytics, +... + + + + + + + + + + + + + + + + + + Mongo +modulestore + + + + + + + + + + + + + + + + + XML files + + + + + + + + + + + + + + + + + GridFS (mongo) + + + + + + + + + + + + + + + + + Assets + + + + + + + + + + + + + + + + + xblock +runtime + + + + + + + + + + + + + + + + + + auth svcs + + + + + + + + + + + + + + + + + + SQL store + + + + + + + + + + + + + + + + + ? Discussion + store ? + + + + + + + + + + + + + + + + + loc_mapper + + + + + + + + + + + + + + + + + + loc_mapper + mongo + + + + + + + + + + + + + + + + + "Split" +modulestore + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/architecture/locator_ubiquity.jpg b/docs/architecture/locator_ubiquity.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8a699ce54a68af488c3aeea348cf5fa169f05be5 GIT binary patch literal 51876 zcmd>m1yohvw)aLrq(MR&Bm_xGX#}K|?nX*Lx%eE=%K(n7q>Lnha1Q_wz#jlU4~PQ~ z?%zkbkNf}y1qBuL0U8EACI&h>2Ju5YY@mlG`vq?Ua39>WxHpf8Kn>i(ML@(w zfOi6vU_X%&{`3O=@4_@=Q%GQzxYcD zNhxU=Srt_^bq!4|ZDSKtGxN6=mX1!&F0O9w9)2JF0|Gw<1xLqxj*W}|l8~5@nU$TB zo0nfuQCU@8Q(ITx@U5e>tGlPSuYYWOVsdJFW_E66b!~lPb8CBN_xR-W?EK>L>iXuF zUI+lr$^uh)8x`%{>h=lS>FNAxpU_-=3LVnDC|DmW7ijh4YHHXgwe6gtX z@^(}jPURzlHx8p{gtS~MbjQC``;%t>oMOKJBhCIzvA^jx2Vfu~fRl%a3y1)hHw+ox zX#Z3z;)7bO=;#Dl9}3E4iVMmsORu*EX%Ug(h`#g1CQ8HXXG(gj zre5;GfuIks4hO&$b0^X}ni0&jtf0$~5e)pj#%O>F>D?-U12e)sa6nQ|RgLXq>$>AK zWS`O)4rH6>kH5lDBXCoVo=?o6gNP_ZwgzWy2h33Df18+)cgad}Rly}6=N~$dn;Xu@|9vmq1 zihzYSltKbpm!>oM*q7P`EEzIdUkWPzBU%5`>!qBdtrJV&=x8Xyfw6k4@!yoZE_n(E z93!sc*N667uS&IqQ@Nc6LiDG|b=HK(rX*-Rp8z?C^YBlWo?@3I}pN%D*o)9?37J zeyn&{Sa+bCWO9SH;mqQ(JF>^fszib*HimB3?pPy=YbfLhE?EQFOqPwIbg%5iVaQ3c zgY?6JHwZ)#gD)Jz=F2!7q^}#)IuLp4v-Vq;b>r3a2X3Z%oF(iDJ^at7a_{1i=XQ4J zx}e2^iaqsB^}hZHKDyAZAR2mdkHp3&#d%BbIqN1?uWjeLrPMzeGb50G_FSXcWr#zw zx8SL^@H!|R4O4ryOY%~}#a!(HM`w~X#aWs!0t(d`b^U88xskLZ>w~Fe3o~?!N+KKF zN1lGTeTx&(e8Sao>Qk&v^;uRX;M~qm$yPiVcW{s4z^gBBL!rW}74jU#psyOkF0NKT z*jtd#W!-X=aNy8)^JNi{_ti?A+g($>75U2X@^Iv{3)07HSNr+#94yAFT94$(l&_?g zwKxM5)htOdoq0K`2G5=v)!Mj`86#cn_!wrv#-Q)d=X*a)x(IkMWYmS-%RY*ShI{hb`v243N8NLsY$ov+R>TKqtQtFCCu=SYd zSUO#9-V{k}ql%wb7tS(==mzajVYJCe6 zEZ?$w7wWR3Ie^`twSM7p`*UkuIr+diPv+qZS^hGl{5eNo{$OW&exVMDl9#^RhSS=a zl#zt1YReRvr8Z3-Y68}toiT3i)vvz?Ig&R@&<>zVue(QSsVN>ZRe!o}F$zyRn_Z?| z{2c%KY_a-AH}zdZ=15)%jY{Jrp6paHrCRD>MRSd6Ll`cl@wJJcPbg+jtvr_du*E|z zy9~iFCPr@)Lj>bpJD~64Uj6Qf(`we7D;%JO1IlZ{=0;~q5{{n<{^{~-1EOx+vyG!KI9u7Q&CM?Fo0fHMyR3_Mwwv>9Zi=)LCN4gSZBfUIL4h*J7 z+oF4Fk6w;Nch0hYHDl58BYMeHma5DidOLZ;II%%s(m7_zSC!1ax_6+mb5XHi$d-6i z$b-;JOe2VcNj1jR)oj(CtBsyxc<{{MHI5u>-<;beSSahjs%%3qSc613!4*5kF<1Nb zqc5hjw2T8y=kIVQ*4HlwbzW+YD&aFSd@BeAgpm1zs!+VE9UW}%>>$5O+kthy4 z)^R5F^ICRWr+`&k>|4_=wM^Y#BJ#hK#9Al*ma4XXJf4^mY?C$L_)a(9>FNBAwsRJH zm$i`C6utXx%G6YqS~|9(Kt`!|8tVBuefZlU) zL0tz|M|*y@txUU}45xH4oE9x}8(E!%^>c0awbQ()i;jJgSmWtllDY7?M=<{SSBpc! zm#C%|WErZ}{wByX{M`u1Lz-I)-U`JUukmDMOk=qQxTD{YNa3*RuJg$B2zq}=BWaaD z%bNPm{E4=rD%M_t?vi)%l z=_lw;q}&^!txK_GQw+j50|!tvQlTyp=gPHEsDUH)!2>w(G+x3I@~w45 zWS0fpX%`N|1f-x$cZjfzr7Qj>IIvdr7ujDRZ>6qZH882b2w*;NK*<(Lt`9k$JB1+r zaC7X^7e1y4YE|L6_)e-oqt$plDlEfy>ONo;ST6ke-wTi*3!eDBH^28)jR`W`b@>c7 z5^<8?q@Md*Z~oZTn|vME2e$gai;s}c0~ysKD+b$?=Y(*eeR2y9kZ1m}uOgGOOQ*+P z-$klupgDTKnMdpIWBm5*50bGn;u5p6@MSrNyy&J&hoSFznt9(tXAnJ|&P(MOdo2yi z(W-J1E1z|~SyLy=Cjp(g7yGw=fY2W#*?Cv(8*ssVW~G$iBm|0 z$SkvrRlQ+${l5H+fT4fN6-sg^AIfbi`F@a?>pve713p-RIvhw1IW)KZAB@U>Wox5< zm2UKRP0eZ$itWBKOyG9g>G9<5)%^T3Yr!zHpIa}lX}1QqSOO?IZ9?k_0~Rzp)`Cm(Cmf*nVDX*kJGN=)|5t_EndTd@@bh_ z0o;YosgcI~9!7=4E5VDiK~FD77zG@N+zJudXQG5fX^)_QkyR1l|8&!Z1A(pUe5=E^ zXkezArCvRvA+qxG8q2K`_6^*i?GO|LPXB1p|1;MKhOazf;wj8vc3A|uk+9N3{=cKQ z{+k~h$EugEOXjJP!4GV0tk-0i>0IW?hKcAtE_}- z^O`@mppUMJPb+>x={`II{na2g96*kNoJdd}#a?y5AY39)LJ)B1BajUisVQF?zG6GU zasiXHkEPv|r`Nx5xC&dCbSCU!D-mRP6HHlr`&zH5^OdA7rUb4*Q83Y=f!5zd$q#59 ztA$Nv+7n!a>cf_GWl3MhBYafq^1p)vugmkd1Y^!nCH~qs6ag>={-&{peGMIf14mjQ zzCf!42T%<{MYc{s%%k082^yuEmw9VN4h5eM2dK78m;OuL@gdg6t*J)_>ty>Nyzob1 zQoj#{az?~Kk?Sc89qN}H5BcLTGC8)lP)~7t>8O@ZCUz@SwA*soTG$*ziY!EtxFS-| z#dG)*Hwum0L{7N(;K2DBh^eG6Oy_LB6b?C)kbGS^0;ZEUl`sAgOi{{i zOYBzQ+4!?^I8y@Yc`eUzR@}oz>u~eXhu`c_A3KgXm&%utRl)&1aFa3v1|AR$$}Xkh z?^5e9n%Hg>n9ns|NT`VmsQq2H|2WOpe^oa0de-%~d5!peV6*?V^OS2^bXCy3r&Jew zE6E12W2M8)8Swtbu=))K!XPsfrztWwNdL)XF#K+p1*%GS)!{HmJ0#Na|EP)AFE8O* zk+c*SXzmUg)6W{#CO)sKb!(mCO7kU=8oo&%Cx7iQS-wnpO>zzgZjM3sHF9V*-p|Rb zPV+E-GIlam;)Xi&$?Uc&xRudL`&Y*-jc_o$lz==l@4 z;>}coIc8S^GQPTgc0r#x#KIIqv1*!e1GBT6md^gfm!P6Yh<${lPE6%}Iihm#z-y21 z3kDrjiBHO2pEkan2hfNjXSV##g#s8mZ;Hce6Sj1bPFA(PQXPd#qvY~Yg*xZ#sLC%C zG3#cOtsG-GdNog~N?3ETKm9Cd@^gNIpqJ0)%h}FUNltZcALN3r?)&X`<8|xowm!v~ zIZY45#C*lP+KBVkU4cj2MF&=@*7WjLpAP0W-?UTv=vYKW7`pGHLZ6OV@!;%SOpgr_ zq9?bg7$$ec+W}bXXtA<3j50P%;3qRzU(<@>w_4J^ZleB_RL}6jsFt*XbDX#s-Rg@i zOJ;p-qzpy@F`4WAAmt>r^~8JH3>lR`aRj)|dZ$a_z;svyEYMN&{P!uH>lImgl*vk( z;t!7DLgGKnZQM3eZw?e--)cc?P-F2V|Koc%GAY;|Vs(1&Q6*RZ!FGo`)0=47B#4d-3x?;ty2G8N05 zWL*kxH}(kLDiW08$!1AX)D|U+nd@;i#7TsGm2}Z(egs=$#u1OtKjQYkCJc6G*(Mz`pF-9thY<2NTE3C+Yv{{mAbz zw&(W?D7bK-p$95=VxsV75MRlF(1akSR7=m2C(N8YIq9hXBVmfVIO&Dqy`;5LMJw&# z21mQ-=xr3i2J&S;wd!cM_3)cXW6nzQRZ*PK=(=t!&LkLtwl%h9qq~h6kJ5MQ8l3KE z&Zlp)IgEmo+HdT)?PDgDbc*yON|Hs;A<^VR_GfyMyW|ojm<4jK_O^@#0vu_fIihru z3jLlRR3o=F`dFF^Ng-wPOG2ytWY@)UW@s8VC@g)$qT`7>4B6)eakUCpgizm2_4KU1 zd`p+H=8i7gccFdj^%@+{iFZa=rJxU{UMA{Y#GB`6wdLE@+$30eeP4K~EQXk5?<+lo zZJX`%^N8=UQU0tIj|M8z!-elQo3Vo3xQ}g_k(a72l;%^cAX4Sl z&t-k5B-Nu3ST%As>B5C7wDx+!MX zXmh~}b*q3+zD0v6xD~>dxsL+OU?aY}GNWoXPomvoXk~L$n2qVl3LUSfCMZUNX$cF>>-uppc=|tSa`9rkJGWX{BT;JHyd&n+5S0+P73gd|d%A0Ig=+yK zF59r7W41dqk9Zi8Hstu`+F-xQ9C~Y}TV##@bN?q;OB%_|hb&9v!U4(x{_5`RbS>`9 z!nDQN`O@P-ceAux?4=X0KrV>sn#k5Xmbz|6dU=H2MAfb5o&vh1t+gY`0A50|hC^8| zFXug8p)SooK24Lr%PBFI6Cu#b|u(C37Cm2H@H{fD6`VtaVy3wa=pH1{*` zTt_`eISiIYm zdaOpnzm!Wct) ze0y1EsXf!UfNS$6zGFuo0lT4FQb~Sbe-rX{K1iId2ybG zRng=yeCGmAvk{2B-7&`1K^|C$;0nH8-CJZ8A+Q>;Xz&{EaCK+di*D3GzE9)}bwcu) z=I!a$~r+u`%@Bn3H(~|IIq* zGlH0*;uzMnErb)e_@)UZMQw-+*XJ==RvILC=Zh&(8Tvm4-r^4#)>WJ6&GrmEnNvXV z_Eh?-VY3(}W4p8oX-2>pof-xx&4OKP?QS{sAYI z*2*T(X2epm;eZceD)d9dZwn>!mW>z=2+uf_SE*UiPo5LAu2mf^LQ5^!eVuheUiDA` zu_7&J)L>rvM+5w;X@+H_Rp{9&1+7;fwPfv)h2i-L6~sF8Qu#fjf&;H80*e0e2b1rT zR}F6P&)J|4sz6BeTt&&+O1Ap;^-uq5&1DQkY1$gQgu{6=0gcIU;P5SMpc^t=LsnF& zLxBKRjY|#SKq)EZ9oA-fM&&WaF>SeXlg%P`@KG_Th0Ge+W6t%q?-YBK8L2hw70L1cT@A<*KKPKk&-rxp|n^H0oHnr>yZx zPec*wu93>L@vV`&4SLb2vN~DwACzi)YA%)*cU8C3Bv6x<<<4)}4tX=V+3e{wjL`@` z9?z(lP}ztSWpG=E0~U4;!hyNXZcAMT0b^E_1Y80kJZ~RQE%n#MK6=7OqZ`+gFPd7A zc;1Spw-BNe_DJ#bK%Rv>RkZq^;7hZokY%}cP=?M}?GJ`^6LSf(u-eBo0`d=f&z7UE z5`i@srTE=fBjE_ge9M?!o{y*p=TE29LmdOce0@i2jSs>fP}e{eRvNJh-9GF|O{h5G zm0}2=y%XMJs}ouIQMBvAsi!0Tu7q$54!p(Hy%z0l$E@<3lp&(R?GeM~O4K{MRPT+y z*t7V6aLUr@b3!6q-N=4xg9KWDYI2u@K$z0JqC#?=1*;9`n(}}2-_;UDoF0?4Z zcQmH%ghPOU)_#}YrPbEc@q+YAR@sC%?d*afC&FZ8IIV#*J^7Jav1M+)g*tz8>Fm$q zskiM5^}QxWqp^XE9py;4FCHzJQY6oodh78gl>PSm ziRLV|JQ!eD$r7H#-0cv>*>+AP1CEfRpyU^a$M^G{3(SklgeA%@PDY>|v$K01Q&T_s z7g-KiR(+9(G*@2~WX@nAzgApaoY$P|b9NQ9)9HLJSW%{?v@4T#U(@0u(KN57!sl^_ zBcB?%W>TDRR!p>lc7FceRD;vN+aS6hnbe2D{R{V_0`vDnVBFtCt;?k^7&=*F!P5TZ^4jN+YT@q z;dPnjv1BLlZ)}{o!1OXc95Mvgn?)UAgg!%khv4Hakg9rA8?gVLZe{*8se-QfJ?N0s zAWdr1)`g`7jYpcWlsa^ES zF>({gQNX|T;k2a={cC*+UAEYtb0S7N|3>LX#L#LUn zxd$ZcH4SweQ`*cUh7qS)ET?P)jSHb#N1KJK0`yf?5xO_p(}wt(p9+q^ zX5JaP09c<9$|dka(?>sVAsH^OdJ7vInFk9>jsqOG|I3FO~b;37RA>#Y}je z5lg@W&pY7xIINFjO)wyLUZgsv>MXOma9x&q6 zyYg_Vhzhb`UX-c+l9H8o8wzP^RVK+UJH}AaV@=JQZ~2=4e6cpcN6Tx~z9Yiu6l+<1 zQoVJ2|6D+_x}_$3^*+_-C-T8YaL&q;J)Nh1#zg!2Zd$y*wj3Bi-eqihG&Qa9T>a>K1b61AtrzZL z!GXY?nh(^n3nV%ih!_}Hs#s|^@>Cb)>B%1u7*8DHs;RrGA*i(hzI{?Mv}ewl@&?N)_3AkodDcFA<$|zn+9vq7pJytJPh}|F;DAIgbp>WVa;7m%X)yuW z<|~0L|JVXcsY(~gQZT>7Eg0q@sN*=_4dCD=xGQQSw7de@i~G;JPqGYvl^%- zz9loy5pWNK(v)3C03e^MP*FPG}Nj);c3~jfbOBk1WioU_+)o7^wBbXv?nr8ibnrT zZ*ja~`w3N9m1}9F^Zia~@<|4|Wjob?wgn}>9i-m8Y~Hw=SiUJu>JNlnsg?Nti2%%( z`jB#8Pi(lex3wXVupvNTp3`m%R$q>}pS_opx8=)J=x)6gW)h&vu-)dVw zLR(xU@Nk1e&%#rQe0Y$he)uzN3rH85B>{_IeN$CjlkY>m&|3+~PQ=wTN%XxsSEuX@ z3s*hApu#Pd0L*8t2ruI=T}Vv=P9|I2OaVgiOA~#0#S7syKi>z%XxWh5;wje0xKeo? zq{Y<(J&pa$&)j-@ccN147|HRJ8e40kxX~X~wSfNAshz#N+f{O@Gm9*IExjEdAy@Mz zKG6E74IHRqF^yN41OR;NaW4iJbFu-B?heM|V`kj>bY4AKjIZV( zT}<#BFym5du06_FcX8BbORGn}ZV4)saG+3a;@x>=xucQc0bNKFw5N$!PGEZJdIE=R1=FNyku zWX|d91rw`5`iKU%y}L+I30>LPmYY-WmmXILafh_jeFlY6GyCzh>k3t%af0=|xI0g5 zru@j9Shv7|q;P>}7wRFbcvNUU=fK~;B*B;<_A@GSlUy~8Xd4))7g9FkhKA-9Dg%aw zkbLI|P|55=8GU9{&wiDZ5yA?*VpJwsxGb7Z`fBbv-DW>6x}Xg6vh^aC#zDvvyGJOd zm9(n2siU;PN_oja@=>>@q{gV`!(~XV4%eR~47)9&U8!%Lt5zjC_T(`j#;n&x`kbp7 zT}|Ea50LbR5)<85=Et$9>>wX(ij+;yjFRO~Sq{b3{D7LgapeDzlWf?m*p$cPr+?@x zg^3&p39!wGKF{PO*>5FK_p#>mv6T1%<;Hpbb{YmI*2U)7&Kah%dh`j>lC{Iq$tA#x z3AX*n*Dg1LkYZna0D+bzS8 zcd*wR<$UbY_wBHqsRC3MaNdFi0FV$_-%6mVE%9#dyGujhMG|_=)2h5n-RBummwJ%d z_oZukbodCT$noKV1}nos@%m3DtH>pPj4Ph3w$xh5&^)B3PO~GWdN$u!>cHuzUnBf% zd#oy8Tzc|wS&M?J&fjqM$rMw)t1K2OnF-pN?DgsvOzfuT&fm86EJrp$fF}NtzN%q1 z#a0GbH(VHR-PWHLVX}n@>8tT%I?~-i*QA^0?LF=7yqoyYX-jsofAX&ccz z)b&k9Fh@fn-_tK{Q*V&;;lPp|960V5UUCG9KOsxEhmv-E?Xg{Sb7|qfo ze%@VzRa3IegG-UK2hAYnumZ-r*bl*o2`*qs^1qOk#`ixL^+*{~)s8XeH9_HsFXc!~ zjHW}$6f>$|*{aG0_TUoC<4ZyE;3$U*iN%iX_g3u`Jh1TVv(kF=i(@EbUeqvglnVWf zjS1E-CYEmGgm4$e(V=fs4kYl^dq)3T94u2SkKqelB?%-EiwT=AJr=GZix4^{%$6P`rgO^7a}_BzM|Px7}tBsw|e3N5o~Cl5a}9q`Gy z-Fz~>AeVvB45tBjZxcl>bU6m>8R{oWzR0*bY226G2lj(`)%Jz@=+*ynzM-HYd39&* z^~UL%brm-Ia7Mn!Sh0r4nnCKfc=hC;`b^9oL0Os++ne4jZf^#wexg|r+NN@l@A4tJFj%z#~^HT zU-%3`d#NYUt8;0##;Drs4MTehCcA5Au}?IeSAH!$S&gSLb+K1`=UnM?jk32>TQDsx z1g@*g*zU<2B;i4A4Sp8?&NyZFdrz4SoGZV*uShBEIf`o64?H5kiYjbguhd+6!Qw1u zh*1{6T$BZ^kenfnT-(JGT~|cNy|R)Ww-KHsuTQ)rdhRN3_5~chg=mzrwu@p*hBP$( zoG7DW?GS6RS+me*PPCDuW!wE7u|~TOxWilLTgZqUdFpf6Bmu7q+{61wZJtKWNz<<- z0M&74Idc6G-5K4iW0QQQNlj;Ulvtw$GF2S?~We~HSx z`=Xl_Y|wWtgy<;2tD2^E63ty{Y~-WlzIWU6vn@(@r!UC;9j7U1;$ZH~P0ul0rys}; zxU7fhI4*Evw{+Zw#O!Jmi#6EfuSz_$l7HtkO{~W=XOJQak`%J_Gw(jGO@7gku(d_b zZgRO8>A}FwQw`@vD?l+s0Tl16e_fd=w&~7<2<-CbuwNtuAQ_%(f&kvx`Xzm_^`BV7 zBPP={s&smg8136SHKh@R86^x{9Z@ozmr>#*{?emj z1wJDHKU(ykPi6H@|D2jb*Abx_ev)Zd6GG$=Xm!uTx+AKF+hwheoHKE%$Vwn~0xJIg z!!Wu;4nb|O0|(5Cb?1f9GyHDh#z0G865L2xuh#lleJ_DePvVWn#*Eb{H zVRyFBjAH}C{`T2j* zo3_sPn7#_sK}EC0#unSYvKGe_FA(=B!RFR0J}^PG$dU08^t*57mCJlDhScJIIAN29 zFT(-0Y|RpF$W>OgYokHD_{0;+xB64A81|cLdUw=C(D-RUhS=etiha8SFj4J> z((P&ytw%eOG;&#;c*_v;2|DmQ-%Q}`#3a}xPHoW0mETT8Q(sv(y0Sj#0Y0d)v?Q;; zqQ%1tF{xd#`=I>c9gJ%*l`ep%9RGt|BI>H!q$Ul+K!AXT4eGAj7Qww;@GL;C;HQyK zra=U>FJuqrla`my_fm(mH59O<{Y0!nrEvjgKctFhre@dmd?>>82O!y_f-YL1lz&HC zF332tqRYDx?dU#a_B>PUK*kvcBBj1E6y-?qVhH%l#EIC?@=%){yB+r}Bui22G(U2F zwg^S%87-?DlF~i)yZ8hLye?ViwhqsSe#V#H>UkCT&MbtFDNYnQuJUWAd zN8ohdf~fNJIAlA4K|&nTdcro9`w^rjrMcO{TEIXxrnSdfEl3Xs=ny*~=jYF1(Zlir zi7SvWyhV^5Gjl`rkJvH4UoU6~Pq)gpI5p7!PF?HoDv7LQPYYZWojchYI5Vj##K6vMRE)n?hExOFQv?nsUDfKOFn+ zf(E*mR`LOImimd%V)9+pY!=O3zKMj&wFDLPEqI3RR~#$1fvRQCFH~nY_T}l9Vp_dP zaRkXcR+Nlhx_Jd#u!mu)7+zn+YlVhbZS3Jd2FQk5YJWi*?;1BnIPBHhBlIoz(LW-qU4w*u`sDvF3Ut6%VDs9G{*m zeozG=I|Q97ge@4&$a%do8;+%RlzKVRYm2PFK%OGe*!K(9p=}ICVf9R*j){9!UNkae z2R>uPRKa}Sj(_n|iOFx(AVn%e!$=)k$=-%IkvK52e?V{p<9U^nm2oqg!!w;f+U5Wd;vGb1ZPT~X4&gjz& zE>w{zVv7Jp@Yr(Oy*O{ajqujFrLM7?Y(3X*$g8INntB#9V*Ec?B9 zWI-H@Ux|Z{5v>4daMRul2N+whVkCCQ5HXK=BTqJj@AE#)Bkv}i4O6OU4q0WanmUC8 zUF@Wv8FR5eET51$O9x)cqhEeIY9o{zSkrilC#X-V5*SHdoVQkSBfjg=Y8xN7YaI4C z%s7mI<^_S8*{psO7izEeal=( zLO8UTQ^nKSiQ921L$B~Dd4*a{qB2lMaS)@%##)knOp%(avtg+DWA~u{9$G{!9(_8q zoc-|OaIw|MzcEjBe}?wYZ;x1hbjY|W=f(~wfT5ai^)HGDeLsZ8~xvt^Bq~438 z*4v^i%B>fKc|{TEOEP&^2CwVC!h|uF1g6BY)NIPztrbh=&^B5%xXK~3FEG~6KTwa2qr-x=d(p?42 z|1^dliJUx|0{OLGARmiEW90m_YZ&T(9&wAd1lf5Ni#Kz6%C^F0Fd7OT=H%?+>*H2# zq0$ltU4Z$+yU4DgA5u$aLr@m&2-U{t3?|aZm3qy!#EaegJdQq>9*~>D7c)BCQI+f; zme2Kirul{(lTH&wDi2)zPb!dd4ACiD9Aj=$_*EL7JLXJvzf4T3CG_|#vF1$pn#-Y! zl&T$rw{I(LUG>B=MhDNf9HSIpa-Q#cfIL@3+}A5iJ3^v7NK2i*P z<0Q0j29j6koRt++yzQ`CwOQ$Tg?%mJt=%p4)+Hm^)zNW7)7Lf_WvC|SvbcH)jB(@j zDp3%Ztv`LBp}4QAoLT2276Tx<#lGPgF~v%_u+{E&LqUMsw^_Z#VF7 zCq)pp=e&x;eq2HF?!LYkZO>m~w{TW~JSdBeJTLDX2sdubuvk zRY;wg7<<&$>n%vwGy~JruX>ZL&Va|f6fDB}Y$lgkDESM><^V)3%&m;x#Z9@4%(wZW z<1^rDY@-ke{e^n2Nx|T&X;?eWylTOER>QF`8W)GySstORYJ+&&Tiq%FNZHzBE>>yq zoG_R5`>Z+hVPu)$9t1~&yHptMT=7yMc-Qu01`&ZP!N?3hJP_+R; zY>afMg?ew%<4K!hKY3TISM0Tn*u>`DQWD#i2dM#xo^|JxIJ&HvUZgg`&l;_ZBknju zw^(5Frp?cIO9H(4emY_r(}kN(PS7CyBO(C zOM(671=lv1=t`pB8TJ<$K zh3JID!sFXT1tJu2<)g{w#nB07vzS+t&%ngY8@X+};_0=Cff+IRr#&4fMHH?S+WIkC zLKs7B_^8ZW;%B6(~ zCRh{n_jYLp#CmG%V@1BTQ6!*9$xa+phw+f^DgRLQJFJ`QZCi;AG(*CXdV{H3VyvRF z5+?uJfk0%|l@?+t*-XvbR);tPP~Jt7Udg}U_xLUMA^t0Baeg}ZpTwA7hfYXogD@1B zLkV!@*oD0J6u<5%C4Fy_*h;+=X+A5&SLC+IRGN~W9NEyk_uvqdKbYYcZ4*#K2fsDq z4y=Ih?X;e~iv3VzL86yay?TJ6&?@C=QIho|pQ&4(Wz*>NF$N!EdQL5OCWU+6CDZTT zbZ->0q7I(EeqRbXvTz0+qUBV=(QSveaK3H6*6aeyWW8C?dP|C8R=%=JW7MTqp!~Td zp?S6x0;8j{tua_zV;p|Qd{moQ7Fx(kk4#cSP|$Z0jq!HsZwVHzQAmwi@wZc8uqse^DzvCuL!sSy)z{aT49frJ&^=$ z$Xoa`f~_)G63EfLi`I$ZJ|-q~$s3o4EI&X+Tv+y;6sdO01oOiPIVLZ{8BnOs+SZU% zm9$IgME#}yWO>ex_J@dH6@h-RA`o5H{fK^IE&r0+!JBWpi9C0Jal!Ir!AgVC6=i~m z|LM7=H*VqeXkOVYvgN8Xv8*L&&qq!C8PFNd*X};*30yw94Bo1opggE`=$ux6XVecjX5{L8Fb0wPlrYhleHsKM2@p!|m{~ zHbGJrLFKmNfOB47E;CUA>)LywWDhdPBSC9E%p~K)_R+zmPi#dI!5GhUyKw4j#wG}` z{d@%cCMyt7hvTD?%8>y5+N!!^iB8v>B)0o8q$pKokw!T*QOq6Zn#1zNL-)?k{&wmX z-&v1TVd_AlCH-9`bPd+q}ca^cD>6>f~yHYQJzgRqF$rlJ^>pc?$kjHMN8_-n;?>jDd0dQzLw@rP1}9wCjP2s ztV!zL+;ZwwB8_cLUDQk^XAMGF!k3sjWBLFg2E?k2NSrntQ53Mqru_$2*4BGXl0_#k zC3)eFd@(S)8|QOGG@n6rg|t~^6fNQG6c=7ODvw9i^f_A7+Lwtq_b2Bb@p3g_WpSrs zTg*igJy##?*SO8fqy2zF?fvVE8vZ2xDY4o_A$Z!}_dzc;xEMB_ri4i*X-0DBZ#lN; zU&Th;RPgbv-(q||SCl$B-K=fFJ=Wg6$&^?b$j^vZY)Ir&-kd>^N?4R9QIx{q_tEbu z*m0Q~N@j^2v5xR93B)EvjCB@DkVc|ZQgy{;kROo6wV*+a~%W5Ed znWEGsBm5<$VuqW-?3sV^S9_cj;_jZdpshVO$Q(UL*NFid(Q$~kKK`vP_a!Jh}YwgTT`~^9-XpE+cTctcFcS~aB?lhxIm9_`!y;RA_ zC=yCDLyOd-;4aUAX3{!MCp;gA6z9kwuw1TIqhg6ZHdG4 zavGn>q?bNXt9YtP;8f3NDa-aNLk5^o|V=4u3a?k~Xr zjVbu*>sqfM>Pld}SVX?=rU1j&q*@o6+rp&OHrKrOY^&B%UBX1;lApGRYRc(0^BvF` z<;rXyB;1!m$>&wtT?htttMzOKq@-bE`{S>q!P+ewbEnHovQ+Tc94*=aY+zDQ%yrM^ zUDew7tJ;{&NXWPaioqpbgz~qls%ErtIoBj&R@-c%#FOR2IE8l?1`>++E(EzRaCPQI zEo{k~tJph`ED31B#0nx_paAL`K~=XQ&3vr;_~f$RL>;Y$o|jQ_ncVQliNh{D)hE>^ z{IAD1VFOmC&FEiR#)?K`w&$g3gqxeOWdYOhV)HzUxWtbfKFD+VA&`CZvT} z`vU|`;>=q~7XXNVE(3hD-b|5KwX5kX27#C3Qcvaw+ArkZIWH`41dh5=<`MM2XFE zeWCz8k1vlOaS|O*N}L2yDQh*u)7q?>6I8>LC-bzg1oAJ5k({U^Ezj{0B66)#-%i>% zecgkU@8S}=t+CXb2l76oF*GkTnpDt#K>w!DVD{^P40X6WOO6Q>dFKn;(3CZ*@D9KB zf<(20rMS4nw%R}?jQ$o~KkNPyPHI*Mly$3*; zNCdhj4pcOztM&}4x;A#k(Dy<<$W`JDV0l_EkhkPjSJPTBTa$e%2}P?Y>!mtJQWpud zHez42V%H^&DeSG4d-|#8Qw>89Pl_ZyR^57e+n}`~3iq9lXL@;j2Pd`8xi#ZPL?mP{ z#=%IqjQ|dqI2Se;d@AN9^)qF5nAv^Xn9{wC978_q$q!OUvLez~YZ&8lvov>)m^G&M zo^&sf`l_wk{-nWDYi_^q%{r>v)wP+wqT`x!BRR?C=3`zbpuV~2rD<2;vkL}W_Y&I` z`p!>KVlP#2?;5tiM3kU#)%^CC1jez=GL*yqY)z412@R zsZF49YLxy?&O_ob|6{aW)_a!P9`c!#J?Q&japwI14wL~g^WS^NA}>#w#B;-z@!2<% zMM0h#HUy`a8ITK7fKm(*OI5uKA38dlhyTPurfvca8R}=O62Ckc-CCaZHdP8!q1z!fR-urpgXFvb@ z?(h4K@Bcjxk6GZj*1GGuuj{<7^Son1fnuN_9OnqoA3*WH+VOXvb&F(PQ0?Jr1Li(C zTY@VMVtm;%k9~IGnlR9fZXorj?X#X)+S|0hLX3zOM8Eb1HkS>Lakmjyxp#Fl@p+-I zmv%;ga@AHNfL?qBplJtseE*~uLjZd5{ttSw9Y8PE8PoFokT-SVxNB$mg9aQ;eXj5a zxf+nc!?gGZxtaqYS6>4{g=|1-J)T7{LgbZb%XLZA5AJCkP)&jH%MAgFG4c^mj@=B@ z4WLy5Y->wZ8Q=ln>hg>q3~O%4@-Mez1U5%Fz_&ho4{VM#0N=WJi}94;3jMT(3jjFL zkkZiK@8_IOKU57S_6l0m8s9&@FueUz?#5JixqXj_@Xk6z{`~`%tSsnrbu=_wer>0}#=_g8(M_LMZTV(*P5_G9NajzC%4THTZ+* zP6j?m23YMcjsaGCKfr1y`0pA=BlG(Wp}!CPz%L#7$Y^`$&^UY#rH=1U5p9 z_?8Lr-dnatZApBF_=&m0_lHW%&1VK!_q0C%^TAcuO?8Lq6z6XjKoNBe!uYbJBRS(e zl>T<^;&mFI(2RJL_jMC|awfC54!mYP1`PTvzza%Gc(1I88Dbl0qc~_j?P(|j0D!+v zl7F*2lz~x{`PY1xviGsKZI3pm&%DG}HWk#@Q%bSRl1|1VBaNi^# zdm09hO@IH(P*lEmts4-D52b_GO?up+Fy3Jn<Vy_krRNt(}sAw^%?8R4TKb|jt-I#J*OTBWp z)ym<%^Q0D)9F-1f>?DFqA%N0`QfQP5n#})Y^YfpY)BgiK&{lZ}4oC2C>a@ASN;BNK zNNTm^)fS}J`&8Ev`AV{DOYg9-?$oO4&q{jR(=}~SF%c9o?J;_Jxk<_Jb{H+Br$-`U zMq6IcOz@;>J*yZ`=|J|OH4QiCG&bfJSL=-X}^JdGoqKx@mk2?v;GU;};Ib150 z`2JPo-O=_k@E}yRS^R9h*{8&5OinJ_UkT48?RKxyZb@qdW4_=YZrb0uH@`bB8;R?X zd+;^uA;6LX@w{YB2_wR46?-SW};T!9fPFs8t|%fZ1LX_Z?&i;Ex+Os+nZWto6?0Po7H= zD$Qz+I?^4LxMRw#b$Uo~mLmf5TnO~EfctU^n7(-&@x-ZEBT=9Q{ieTo-q1fD^ya7w zSDZHN)vV1e{yFD&IO+iqX8#}fCwsM`Xs;^a{Bg;oCDAm z;{PJ@>o`HWNAn?*iM7a35gSc?>Lczg;BD;zIAc(5FZ#hj-{^@n;P5~F{0GpRzq|La zp;m6m=}?xB1^cDOYgEnQSN{wLNCDrrdo&NIK1m!zhN1yC`wlwd-UJj`z5xI7zD4(S z(#{A3%O9*spy4zpu*$?dI3PT;0pC6aEUi3E4%^!t>J^!BGN71<>rqxwp zdn@$@0$1aF9`Tq|3Q7F*dN+Q*{!f;K7GIVPk)WTJhvy`&xc_N=%9F&Ps?>Lh#yG5Z z5>ct%>>AL~-*OF%TWF@Qu0M=TQFXR;g^rcwLRH}XJHuO#^;?s8BOhS0n$f>dioxJW z2#)gTkaMIPS!i){bkP4;##5U#LKy^J@N4w(Ko^k~VJYbn$jVF5o15KcNls3_tZwuh zxVy#+K(cq+GVL{`8aWLGy;ak`U_6fxj9GkRDq5XGQs0>Tq&h*}Q|^8pXOFd$Gy6#3 z3+Eu`bQrq8Nof)4NQ69U67%J((K!+FqYP!HEd2y4d+DATAHH>XrQ7G5#W}%#^=%Z! zaZsNk+N|}q%P72gkx_A4ydLknvrR4>Z+j>ZFF|supOz*)r6^LgMXUE+^=b`2uauUh z2<%1aMlIS!c;PG6;wRy^OSsm8o9-s}QLIu*GoSP=T*KP6c)#h(@f4a&fYyyo@4VaH zb8!t`+%^zJ&mp)FZa-wXfRupy4lU3_=&eoa9wIUG!=nmO~SkymtM z=Jxs|;ry_?YQ08bp{+x~H2__5CDb*%*%<9U+r(9rH*cS$r{+Ng@3jXfuEs(4R&#D3 zNl$EzY8UjUW<*|d&dAWUNqrSyaI)y0Yg;3i6R|CZ5!4I!UA7{Pw)X@Wt1YhVOX3<` zU9ZbHd#F}qBhOw*`mpmZQ7Z|mFE`Stj+YE%6@O()V;@;+&;vPFuQJ$ht_ROCl@>+_ z7&*DGj)2GaXAcB04J0foKWJ0-mBQ8jjvVfU;D|{2@oPq^qa6i-WGt zJdHIu_}$tPOE}BlK}lx38YofF9QR|B7@0XoT%wdOi%6UcBsyKDoLj|4e4nqYkl~E{ zD25qpy}>Id!5f_3Tdo5(JLU7>Xxb~0c4w65xK4+TbHY9R6j1;VS5+b;iC#Ohr-yAE zP7VN={M){pscN-A3G3TxzA>{1U#|?I$sP_~NiQr1 zuHYfCk7eMUyLGGnNPK^FuCknsxY9a+z#D-N?A#-mhp+z18Z82doIuOl= zUVH07He4ri%v%7Fa3vrzHq>0aq&OBCTK>nrU}>A|JiV!=z<%&*7?bv+;r!=YK%jAZ zJz-OqTjk`5czzGBvyWlz7yTLXqWxpD_`QcuJH@(ONII3-JrZhZXw{3~=!0K5aIEV}Za)(u&(Av;i%+xbD&)3u_&Dm;`@p}= zC2?@CML<6Qhi6(faFEh!?HgG;i(Yc=^3j&1l_!fQtc5u{4Esxa{99!#X~}eL3Nxxz zLYNex!V}m2Z*o=UgFiYi1L!<0@FfLdfzEIHq)M&%;4(CCYk*$pWz2qWb8~#3l5Npf zYc*4%%_lIMnm~>LUKKU?vp{ERkylQhma`xvHkAmiX^#10a9kuSzzfp zuNkMWO#;dWj;9&m&y9=l7oyYbbL(JFkH@=F&t~$-_bl%erua21A~G%(*PPV1D%KZ%|g&T-=Yr3Sh$AmrQWuPEHCO(cD&f&kS{iK%`a|6 ziF_Ym?A9oWuV2hSHlMgF%f3tmS@b$@BYTWyKaQhpL;uF$7Kp)<^ASD`k}zn z%ZrE-sDy3y7`p*GJM2pTpm1}j%20K^pMBX$C|)AUbJIYIFeT3+&+O1|Zx1|?vF3u4 zzeRlzZKTLjVZ-85;7Q_=HP6Q=AOV7FUI$z25+4^eY-p zCpnaN0X|Fa9UiZZO-W#JXLKeeWqaR2nzhSA-}aehM*KvaZ&c3d>h!zb>ta=1q4k&F zGwRItb}(s#!*6L*9g*wgIXya*7;RXe3i~vei&1(SVL131Ug`-w@ts;tLCPNQYVFjH zD&)zy-k@7dF=HYp#M^a^mk9D6Bo$4(NnCT9@_Lf!Y|ri%>~_58n~K-GI|44=2D9F@ zr=_c?B)if~N1|)RPt|ObAz)>;V}z1~P!9*&@kLt`{7~?X4E+A?4FgzuFiHL~OJifC zPyxeuW`t&?DQ9(`99nqrvijL&BtB;w6?rsw1Bl``qkQ&cA=7V5tzOkS^GxbL0{5$ z4tSK~F{0j%Cd1VVYxVW<;(iC;xX?mydC5rz9@Srbkfjtfsc914yL5GE3fg>9QodZr z^~&(J+IqaS?`emvYLr`{YGwVq?EWAkGB-ADolL3h`!*D~-gEORb z8la+83o<;)O^a{Ilte+e{t?nS?79o4Ri56HcgLm9@Eg` z9WvDIvvtK&xY?~HJ7=yV+j7&#IL0xmNz- z69PUW7W^)xyCfSj`5Jr)0@lgFBqCx)=Gq%Ta5L|W|kNX zxgc}Lxjd=?w1L)v`ve0$C5db*fgcNOiVSCqlKQ;JAIpkhdi$@y0_{H!F#d=MemaL+&wYQ`bHHjC zY8qWq_WRIzFSacLO#)=)jsP$N5E&e1`CM{XxqGyKrtO1fxh?oqw?DAfn~GHReEWXz zP_P)$#@{r9CGpVmf%XGK$b5oTz-nMc@ zMkS64?;{EK8i81tDiuI{lmCIm8*amoA8*3XnIK5nvL{((v&!{7*J-biPrMfqEc2eo z5D`8AHs|;U0NgwY*)Sc29H;>@!*Pb;QdBekZC65=h_G+)bFGH`Yb+l}$Sf2jc*ZK@+XNTj6ri>b=dIW`vc2rj6_Q;RtFhQ1o zZa_&{Xmqj6GNu98s5<_xvhsJ3RI=woDWkfrwh%Pu!F--^)!n=~aODShH&h64nte-w zaqa@>6iWcv;^HCnw?+&z!e*80AePS|aa5iF7xl~lh<~AqK&Aumj(*6#mboupk{mB0 z2!L5ctCgiHQt zc>SaIjHaiI*8a!e{y#PERVMs!R%Y4gSJt17b2m%u@ysQa*>)pbxgVd)I*zeLk?G{EY>vN=tUJ+q&Wn}0Z zSu@|9x>%)IywQLmjFX2$(Y2ClF6&?xxVvvMb!QHS5+rjLh?>5V?RdMxWS1}0k#0Df zfu1DfN>lV8n_ie#M zHcm(PIR3DTfbsc#wfq|k^S^A#{<@m_gIjgK*{W}P3ht%eZ1J15K=!$?KU`%6zj&na zj&Pk+J>7P^h);J!y2vVs>BXS0!-}m!ET>7V8~At;ocLw;2l$=?O(KuSj@#;8>FulcDaH6;UyEoaLUMFggdVPaL6ANUj zGn|XzSZQPbb2~@;Z_T2nNBMFi6lXfM*{Cyx?X^gX{o_f`57bsYqOHxEbw(ssGe%L> zKtXP@rK?8-+5(K0xwDh2`(OqZjn+rwQwT}>vFG8{b$=H)l4SH&-7a`pt!=doYx~lwFBCPhFV|nX_v5!+CKb*gQ<sMCB0-Wh^g-t<-q6fd4!+ z(e?YP?MBcaC`TY@3g&t!Phjm8#boJknapS8S&BM8-P2})ig}an8-Dp;-DYB7OUeX# z*0uOk+kyu3W6ntt^Hq~kvTf&{-s_~7T5;A8+)@XJj@&HWnYE9D?2Gc&-FB-ae0N;W zwZ`4oD-n-IGgiz#(r6R!)F!!LzSLwKp4(HbctFD3eoKJlevoVbpT1bZ^QANwWG_q3 zB%3iFR@ff59F6;BL0xwd_}9H(OY(GHp)G?w*KEwKWdzCnc?c*qju3s0oPicb5tUr| zhB@r6*3~8nypNNljr(A3>~l}%Cl5y;1LIt2zilQ2=Ive3;!8KD(teXS1Qf*eV4r3! zgZt7A0Qs27?dQ{+UOp!zDWU~PJ`aQHqs7VF$cj_O?m#L^ry$myf)Z08eU!}r)GN?p ztLx~9AZu9n7OA#z0gx0_0o^tRJYb+)v_6_GqfIxfR9$U+D?UftP*U+Ud;0}eFk zLyCDUo)V5ij%xrxkU!ESf9H2+93~?IcHuiLfa|zv2k;ias~i_7vydq*z&RY5`WH*} zr@$raZ?21hnoun3vt&hIoYd#}RJBRUUt|~eA(&80ERiCMqD8~m%^LiL`EHupK&<%3 zJD^N#2BU^UEW31y*t=>%b$xUCI*butg^b1g-U})4dIS~c?cb{>9JeOxOvslxwHGzh zs#Phm>NZKj9l8}AU{3Xx(5TIW54Xd)aEqx@ZA@E%nd*Zy`W^tM1_Tcl5dr!OIa!-C z4SBOAnle#enZ%iBWyUF;di?=ipBEA9$gZ+Y;i(1sB0KPxh4Y=aGFM!TZT^%lzRk+k zE4HM2Y6H9GqmJ*E?aMT11OU=rg{Ja33O5QMivGtD7`L!%O`YvMshV@z&6)!}^!3X0 z>bT-F_DdBWoOCZeF0m!wwwLcDpB2#5^M1`Kct$;Rid}y z5Ae2s+~D1fc0Lbol+j@+<88r`+4=7vlZ{mD+$}Plc~2QjQY0Vc)Y7ifn%MzH=FRbH zz0}li@2x5r;ml-T*GktaqK+BLV*%e6$q+b@l$fKtG2^2%4ZA&-WZ^M)Bp_gEAzX>y zL!TfwV((^)Yi~#LB`Ut}!948`2IZz;g4I;#DEUZa3gIh)^LR?lb`7yfQG7WHT zWZwAf%bWswUsQXFECL`@gbc4UT7t&&q4!_zU%~-?ftl%fhnpA(_#=2{aF{!1`1ngL z=i5EXs9HX(N2Bs{l^IGt*q=cBgfKBQ*O{(MnMgkY>lymGk2KRXNAPzm4P@&81xx-s z(C0g-%`~?IFXJ>PZaVY}0VECN#_bNw*mYX!>5t%urz@0(pW9^|1@Uwscrifnk4b~z zx}Q}E_REH1vA1q-M-Zl^?JKJ1?ISpy4Fv9PTGCj>oVNvTs@(V&2B9U8Zw;Bs^4F3D zitJH2_4VdH_R0Bc1C?>S-$C|}d*j3729k;&#!D1SVdjqB4oXk8a9JaiOK*38ejMP! zF}p=gP%T2gV$fibb%;rCsfnvZBV~q_9aP-wB)$#ZCp(QefKqs&OF9zCp4Y!7qz`J9wk)=YuyYkh7nFwhRK8cpPN9uIvj! z>mvQFly?S#&hSUU+0Vy&c>Q#|2XG$75@daS34k8JmCi^Ij8nETi_{SzYIz&Z z)z^l>bNQy{-+wxTq&?ByT3Eq;g%0^C^jWae)e}LpLUXJfSwDThIVwaHw$*>Vek{ad z1)h9p^wn2{@GImX@z=L)efH~tAlJ2lKh%nIIP%kiQ5dV)NH=iP^@SdRyCys}?T+~d}JTNN21l)5wZ21{3D99`?t=rk(1-cr99Ex zb7DA%7n>0ySUy$44cEkwF%@+2rzs?*#_<@dIu8M5EdFkDnwz+D&-}p}z*_z|oHyU* zO5~9g-exb-axB`FQY%Jb<#^9360l}_X|{9|0A=l9EEg@SHni@|I$c5ltSG4IV9iZe zI?fTM^X37-!s(RTqZNqv#?dkbbc;ZsPaw@#1fXeJS(r7gyX+8=g=s*hJME-ErVM>; zKA=37n8YAS^cFM9+X?^kOAqTuI2ErbT@@$5E7{|~q@;v0DA&%i7q-EId-Z^{+{bT_ z%0PtsXaER=g#yTz0dvI_Nq&ult&s0!*~_+vUcZ6K0-g8~_|JkH7$7_)(3YaH7cJ4j zt5-cFeDC*_{4G2H@XIpu?hh}4lvQ;QvyB-&MvA$&?S62}tq)DaERa^gB)od-;~v9S zi7wg;8Jox7LEgN4h&#Y^V+%cXggP2;5|!B00u&O1=j|>ptcC!A3HpD^v;5P|5FYF> zI#K~({T)J}SPJG~lW1_Lg?KFlze3Z6Y|N(Q7@+`RK3wDCh3sWS zuG{n;+e>NLL*n-xP3QyLGuVFg4*G#3tbUORXU<)+c#;b%-{j{aZcY_-T0UW zz2_C8Xq+}d<||Siuyf=;ZGmWs_76^vHeeGsH+Rg_ZZWsU>u|hj!awZ892mgt^9v{I zhdbIkCM=Yky z3(4``SQzs1VU?Y|T9rZ0k8MYMq$l+bL^bld2N064ff|=W>kfr zf`J3!E2T`mG*4~!?@m{bIyAjftnLBMRT_Q_AQrr85VGk%3!HGceqGjDe$N0^9_)Q& zi)O|p@7DsYPnMAVaZ#gq(IU3*Ab05Cx92MJx^2EFLCbvYvUDzD`~sw1s$EJUxy9b} z&8Z#q!|YL-<+@!$4?D9PiJhb3J^@||mR6b)Tg_;7wGjP?rp*~^A52^E?idI9-d?tj zg~|>ppb6iygn;pPI``8Gvb{u;Z{OMGOQ(`coBBACnM9k=(uqSjkbw)-^qXnRv#ZSY zWX~DM^OkxRmX5~EC7l*nHjd+sYSbpHcqUx28g$V*7m~c&@7Bl8VBAjF-<&@2+0+?4 z^xwVqra(?4c&Z|r6~~5-&-Xu0eW*>L0D3AS`k$x%O|Z%KxS{`OTU6&%)Awg{(2& zD>b$8-fP;+;R=oApPr%8X4q-sgc!$PDnRiJr8k}PnIpZj^|^`K=y_-=c@=6KP0ywH zbiRYa_bPEhM^j~k=53z1F=foReFvdFj|VqoQ#Y|>|2g4r{A@iVSQy#`n^K-duoWwa z!rWFc88MdE?jQLRim`TmP+ufKNd=;y4mp76+zO@^bg!9qm!_l^&VeH^LmW??z%dOm z!8a`I|KUGlu(@Y2#yX^fi69N1;s;q9XM0&CBE-ZW{`5Gc#y&5OUf+K-*>w|KL z1NU%aTgtnnI|4+m!6F5xcVx||_a0GoHV87JrcyD~jfyJcS;uSVQ!LCTh!mW$gRFo= zj}3Y~0ByYCU>jMPv04uie;rScRV*S-L6-D^U6{`NG@Sjoz;c8`f6v=a_F3#@lNkY| zK>sQNq^NaG(VK3IeVWpZ@A? z2z6ejXXN=w)?K-uRF}QY(cSs>MPokP!8Iz~2RcvzUZx)cZwUOzed$A1jWFJg6tKF@ znaqsl#fxUJ7odeiIKsd7>l%kVe*8u{-CE_^A;E!L$AM6e%-tWw2(2vh@GZXf{7 zMpGXoSWzES0GUB{@L?I()H9^k8CUJh=w2jK_GbCpJJzQWW^>f{^5+}(En{2*Gj!kS zeWIuf5$U*TUK5o_Nxa#!QVF9ZjwuzFqSi-aVpK3=E|+kjX^DK@5hQ%vC=|&{kyT(*1w3t61tQWfePLKx7USD zPdc1J!dyr8B3(9XxC~_6+0q*4WTNA%#41*Eu{oK?%^|IdnUEn@MZo(6*eRXRbGa&< zOKfZSIWhJ5h?}j*3i2zDTFNv`^Eao4g$9Xdj|zx$J0j7#kUX}M6WslhT~wqIeL&$s ztf73zgEalXQ@Ktj93`1`gL-qaNK(bR<|~S+nOHCH?1`=lAdb33Ir{%=AVnytGyZV6 zs-VnFIyMuNLhdXlE@n*X%;G*yiBYKo$9cZ6k|mfo4c4v3A?HvY;^<65Cv)|5ej7H@ZYoAOv-pi<1^XQ*Lb&xGeZrf@VThY^l zSg|jJxp4NDAe3%nf0k9KO3_qgah0QJm?cc9+(Hk5Ks?J9-HFLkvofsW9&}xwkiW1f z0YvIXd90IGys$jO9#hUYzR6RDm12v;i0?7i1|`Cmu}A5hB{U zeT5ZakRq>>ZE*xAVbHEjIZ2G<3C2lLieq?Hzx?`+iA*&dmA-cuOC86l8^=Q8>opQ_~pbFo?Fd=Y5f*8p}^{l!z>>TJpx_I!tuE=1i{3=q@NA{u~M z*)-Ui9omsJ^tonczIcYGkFwC=!*c-NDt~l=GZecph5{?uglP@!yB*EmZD)=64w^F& z)udWlLK4iQs|kJ#Hhr;OA(y4j3~^D4fd}6J-x)@yp~-Q*1ZH`4$tL69ol%vdb5 zyzlW|`x)(8!d!wjl3KlJad1T^@aU^Djgp$^?gxRzlehrKvnT#7r7`~nRsS4u^iEdG zanEuq$hOZ!k6sYPrbj;@?SoWg5}9t`_-Vc#>2kzM_+y0_{9}b&YGMZyq~xrg$L#S+ za(a8*t7{2a6qpm=I5K{GjDoIWg(@RG0vkRatJWd2#^6*If~Ht&e@ScZLDZoJ>i&$w zn0R%1)*d*N4pTfmEh8{G8SVr|tm}>DyepFB`dC*Ain!iNTBXY3v;=3<2k`D@D(GpK ztdPXe-iA$K-AVc<{GHoF;QC}(KH~608w*yD$n88;F^YA>L-_P(vx8kkgU( zpxcF$gLmJ`cZ|6g0Wzr#ny@nKtckheB=v=v`jlH*Z4aIYY)EF3FpDj`Fg4gU_eyFt zP-v@7I-R;w5oaqG$(5i2;6MMuA+&9UKD{fm`pWu{6?9Ua=T2LT68r_*Z-S*pPG*Jd zedXi**|$z<>xg+-X)Nb5p^s&mfQ{W>d0F|&Gwj%b2a|SuR|e6vxm{sSRf0+NBELPo zPmGd|FfC`h!J;b0j(tQcYDGJYg;r*G_(QLM*bmh9=U#K2nYtnl=cat>1f@;Fr`V$4pslaT61*B2zkB0j;~P*DAL<2n}10*kqJyJ_dXx zf0JZ2Soq=Qi;&_!V04t90kxm6^%o-@?q^6xKYUA>HNia=_biZc(Jo-=lH%SES=mpb zV5`fJghK7}WZCqubA~(B4Oc=Hdr7=Fm=x|{4yspZAm1^qM@mQ8TrxBgv$VHAy|zOQ z-f$A{sw=QfIlu|UdF4l(w;Av1UfJK^;-YJLk-_j0qthQ$n)GibYjM9!yDod|EDxpT zz>MUGfQ8ELvHlwJMgaFlsonXkaspDg*xhzflJI3%-o^-;`Z?M2LrvKI>#kQkk2fsS zr%@2urkCoKm}w$j%ANk6?dez(%PE~}3a~BZyPrbb7e36jJd`^+Q}K8}!!O{#)$jBC z5GO2k&&y#9GHIafhzuqN#6@?7bPkhJ9ZmDSATmdp4G~{li+U2Oj`FU_VNB)-*O?ei z7Fg!F_pRcOI91J)r8)KEK%vvfI;V3bWL~V90B!cue#%x+0&?L{BE}D#Z944k4KDeR zLq$KSg1l;DY(u7esE?knQY1NSdYG${@BRvbLQ}4btpQf~*3LbO9jaR_kS>OVTPw1P%bvMHJ8+T87ef zC9m9N`Zj96W(h6<+4MbZ!|z?c6QP~)T;B%ZId}PpCfeqd6U}7b@Lj=v%DWVMm~j2o z*z^*eCdbOFQMU&Aso`WiZ4N-3UUmo1b`92un2X=_%zsjzT2G!7`#fAg1SltH1XIH%(Wc_BR0y!v1C@SxJhpG^ z;)aXO4AbfkUlfpKHRae>r}|Wx`5oi}q;tw3D+a6ny!+X@uW?KtoWyal8lCTFTmXgq zs9YKcr^&^F3Z6Eiqa^KGj~~YXAgbTvtIigZInTPE&>IJzAH)_J`fyfKSd?#FBUnFli7Xopfu?xKqFSqkoV5Ib2a_wed4EuajL5$+_!26B6?C78|@(LX_bPp1#o zt2E5o$CUDe;zK8x3Kt`{t5T=g0!^Xwutx{@WzWLU*WKsBfip~!l1-YM}K|P=Kz5^=lST?u*f|L!6o$NA5VP5Ct>&C3=mPY)f<}%z8S)jRFwzIFnQ!a3R!>LqwnuHL1WDa&Mzfs%IJ^DrBtHtx+c2uNA5xjF`@jECC<`~v8 zh@c(tkAAIUZqqN5Yyez3Y5)dbVn!(M;t=N{+TG-2-jC);URULXn&Tbg_aX;roqn0;>V|6=~*pxrFab(MbsP+X{XE^MTGer2lLmN#R#d4|uE z&C%!<*8{>66*ZWOg(e>|L|HP@mPSOC?hGmbXIpDUN{=Fk4x2_A!!m=w&D_yv8a_Vp zULZU#LYTfMG_#=|g4Jd2#I_ewY$!nL(wH={{GshCkA#2y=1Qeh@TN~vSvXI>{4@2z zDYpw<60PZX&({#L=vP@KQ&uw;ud}T${i{oT-eld;+mc~8EIvm(v$xxHER}YP%oUPJ zU#$D#d~?i$B|}b2s^iSWHd+!xB$>J&R?Csr@TXXF<15nViz#xaVB{t|1pz;2k7DHB zr%&;w7*c$|-EKCx+|R6&vch6iVL*N1U1{pbaee#}|5$*~WL9si2~2BSsDBNYXT>d@ zml$+R2r#m`vpGZr!W~;Pdj%icaqITmzUpR!A&)E221i8{T}0W(INZz7w{Ns!*jJsD zr^vCdOGGnjm{xELFRh}z!N%xxjpK|kryn#ewOH*?n^$J54c(E>92SUCC@?!Jff+k# zd0@DR5a3S5+AKzuT2vnJg|U~cS*?dE*2nXy_kIWuquG!$+0gAs>9_^u#>icq?Zn?< zI|?F>YKKIN+(tNg6`Pb=%}3svG-~<^)a_fLY-6W6lyeMK?wg*VLGHY2V#@{a4{C^A zGeg#0u# zJ-G==tu&7Se^fXDc|k~!q#1ANU(A-?2)mU>pQ8AfREvsi$N@gNk>ZwD?yEujA`$Q0 zQ8@sTMc&8ic15@L0otRDdLA(ad{^jxBiEQ$P+uyWcb@79oAkW7QSRE*VmODlGAcmE*<(b#j0e*+9Hl7`j*aoz#WmEV#izhik?eGICFEdBZ};)_OvlwbZ^?T z6V503G9$sH))NafW3+mQ&R2cDmTi(&T&*uR^xarpT;CZRYclB%HJt5_Cd6ag}TAU^#Q2 zrT-2pO>uy{4yuyNO^|trZJ}~y843FidJ_`<=vdG#9|9Ks4q{$Cp~hIS`N$(mKgsRS zrR5g=FlctSjKKNTo=WHJfE+(tj1SqqTrR$H9Om07Wm0md0{`V*wP{e-+Z%MPIGNFa zFSA-*lIsPPnV@~Fy>+ioFskb2PNGbceF$|}ah6RYGS$4`Vab;&mt6sAny->u#RBSk zx4F~U+t&9y#?ij)=4RMU^3^_?6@&ZeWZwqdM#2tjLuP-@uJ+S2Vx0URfTUGz;B@F4 z)p%)KfxWg~FrOMJAk}X<;#Q=vv3t_ExjJ5!EB?@ce=aVFD@-ekV-$$mbdDOQ8dEq{ z^)Mi73U^vJ z9lE^>uTp?GKGcC5Y(8aMsrgdf&rL0RT!VV@2FO*80`pJnAu$)1>>=MZ7SVT5NILku zp?9Q;(p0i(tn~O=T}dxmerZm>DaH1&M^_arCXZ@;qCw3%d$>FJ?Q1k(L}6Exx^!KD zAR_g3;ql=L7`GJy$($PaSkn+V2U+4Ep*}y+0iFW3c=fp*+Id=jSYWMNnz1#acL5|f z{3Y~J_MG)nJc{zRPLVIt{2e{-@w43w{3IGmiBn$u(3bs5rn)X;w>+s5E`DS<8yjCX zc5DuyHWfHI3OQ3Y{sX4~glY-XThQ0FR7uhEJo>`hVE%cdEI@ughF3o-D(X<<7*33t z5$d?2Bk^>oL)5R7$TNIKICFSj;w7z=ul^oC)nEl|CBzXQevGN_}wZ(b>82~GDQ5~TLGyN&`_Je?%%V8N=YZj+Zgrj( zQe3{8cJs#Q38BNWTVKHcbeTK4uk(?xh8W2>?r!;2h{r&5Rs_{pjs>USaoKex&ve62 z^>LbNnjUOIuysd5gf9HxtUXmPpP{0O=m66|T8QawW}V7T8+mB&c6|d;*VA`#hJCiH zi#UcGnm*Ol%jrU&!|sQ0(eAD8GbGguP+nnYuckCD5FBh%)CA_l`=;^({arU3O>aQG zau<133RS4)oDO?=!{BJnJaNpge3k#xefd>Ou^GV4aHz0r0^hB&gl+K! z>QOb)Xdxo+glBYAx?I*I+JPIf)AwW$7&$FKX5Oa!P~(xAjjlz3aa)0}bRzo4^ICS% zZ1t5x&rnPI@KWpLtIo4KrJ{wh4@;!(&9W?5>E^!YDV|J!`1VUx@<3qx0Lau2H}17a zIHB>hZ7|Ye7uY;dO2Fs+28t5BDp;OQ{35*FI460eE8jusfcxNo=c5KoCAjAh&n2Dl zEi}7EB@Q?_v2Y}Ek*MX&{qDm}NF&?pxW@pR&H56uTFp9>7)8UmFq?T|tpU;PPwx0g z9bE&ln`+AVHo)`}3P^vIDpHgab8#nhG&BRZ4^IwN=oIYBoyR!bFK^{r;v?H|D=}%) ztGd$6aH5ZT44gC2-Bwufj?mErrIfHqc9NPsHQPqZ&WG!h{pw{>vLm&a&14`9u1wbHBM0Vt~cKir$tx&8dCh|fPX8d0MTv=Cv2ltAv= zpcWaSJ8MiT|KTQ8<^)3!d`;qD|2mireylbzT@sfnpr}cG+rN3&kz3EUFI(k^RZyqi zs%1kvi!%EZJz=Jp;bj$iIBig`g1bAGaClC@(iO`MmPdyAUXJRA9I2+BtjU%B6}?s^ zW@&Vy^7o@_P^&_eLP^nMPUvzo=yO)C{1w#8{d=-!1^1+JyF@QAjj8z9W$Ff-L5lRy z?AcAuEt7rym<4`ai@W*rA$M*mckjnK3EpE)Y}@oWd#rcYw4L5F(BX*_#`;5E+8Z7) z(^#KNE!G*k#VHoY!j0N9bxIVI(Q$iPSFG=#rf(>#XAZ8^45X-3Mm{ ze%SDCY?b_bgZ6m5C>`bdxSv|S2GCarVb1ojmH0`npqsJhs=SS4cKRf1G9^nx=}RrC zKA6MP^r3?xygHC}zk>TNE~|3_aOTb>2!lR<(|i}9Qz-*gF%bNc>wD#!YE2V?As8C{ z4qGR@TTOhxYro(H8JKvJ4_i5QVv=`hHIRkmErcf;s8jdJet;9Y2i`E50Pokq&*%A& zxa<3++c$l@x4(nhC+V`z)##}x_4+woDmE)451BtwwnUorrPp256l}(z6F!}q7lk@r zSLbdKYoUwR#%OIF~V@!L!i?(k8Rt%8)@)(td2Y zwU<5a0^sf30++TUPLq1uH0+as0*I@vGkYFke_+rvP2s{;TB|Ol&lr?}=s7Ygz7Y1S zXG!0b>XNqfW|hkgUtZ9Jx=9+_A@W`z%G9(eOkwcYm;waD@|v`_TcmF^jQ_3h3gp&+ zqVA~O@ta*(#?z{*7*YaGo+kOs;A6rrJ)M54GP_+%x0Df^N(E1!;YZOWE^8KQysxKJ z&<1b1ElnyfzjOl_?~m{Xg@;2(9`Ys5qhBAjrr`7Ri{}6oGs#i-4k2KZVfHqzD%OxA zmE-*@G{6*Z%<3}xu|7DY9CsCE1-$Eay!M zFdNMj^NwTQgSjr|7FzjUqrO>W`55j|dSWtmU?I=3;JX9nLDv$taakpH*1w+AUd&Zw#M1IUuhC`Bc3vyM+MV`&9P7|1-`Rcij7M@5_0(4>j7xsH(2D)?DA5^PArU&5Eo8HHURdtA3)f zqTM$h$;d#X6UpM;Mw-UM#P4$JB!7XPsI~nCGTDzukxd!jL+<%|0i}cIy&YE%fJDxO zsw$FypGIrp;MY~cVo%mVG8QO6-j~kT3n1`rED4#E0)NhX29@d8rR6Y^<5_7cVjF%H@@$d`2sBWa))<_GFA` zMox>O^1{wdYk;K(Ialb(DEj zn4Wv`XtYRaDAD*ms8)*_dpGR_`To5=^Xq#_B}_vC-C-?-rWnHMywvZAg(Z%PzPKUh zu`08tR|`WX)SyXBHC&+!hHph5FBWX3JcQ{dwoMxi-z|10L3XGfY?ud&T*2Mmob2!Q z7&V8FKKz8_a$pJ880gj`>edU%Z3zn$y&ARs*zWJ}rS~Tdi>7sp^}NJS>&>H!rEPNw zqh8K(eQPYud&5;+q2f&=;hqWtH+{kB249OD;=0y}jpnA>+SZtbGTD)?nEP6KoIFR52-T2wI8rWa zs;{ZsbCksy<|#;gmA%SBb>2ys=m=uFivFUlO|qjbqq5A@A9qll7W;sug0Q{~ZMH7n zAuz3oxsjU*<2d5)@e>nlD2IIEfl-)Kbf-QG)L8JnD6R5Ve^Y-eV$>7BQCsiQJE5lp z;^zHv=D?!9N`=HM0&`8~4ph~JFSBoyEB;HJz8uA;;^#zcpL(|N1y!ooTH?)|Xr?W(;z-a{5p0*loO*}% zXY%#Dzj{yyOg?3!+^||~Sl2uOI@?PyGk_)CeoF~-kEQoDPFl=^s(y;qsy_Sj6V^M} z7y)$lj}EpRhov`=%lMA7`t$ZaATjc_oZkLf;dbwpk+QjY2|b|El7b*-0$+`sbzGxZ z@0ixOu2B;nnQwlgh(>YN@qCv6XT;VFpXD?+Vw^pbCO!%?gkI-p=~sbizu$cquO%qfOv7j>kwQd#R-oy1N&$Gpt z2qo^SFc}>dSM5aQ{f;0q5Opo`TM9#;=~ezo+gV*< z_ALJ4g1M@r=t$9!rZyI!FgYu2{q8`?GRJfA+(1G3J{072u* zw&=Tt-1p`5a)aEfa;8s&*H5JS_YHdyN~Kk-678=}h7?ch>+GLI#_o#xs5I>+%rX?J zlX<&pFVS{<6}hR{uz-rJ3y?sIyvGcXwF4GOel1}LL$jmVF~~zXMrd{UBlY}@JX5El zSq^w6)N?*Cl4i7^-FIZ;D4Dg_W)c(kw^st+AkFFP15a`C>j*i3mC_c0#xA->KK9P< zIkg_1aqsOno^graf9J^o7a-vEIoiy@gS3iqPMKpeoP}pv#DMm+-zJX#!XbtB>S{_c zBU4{JC1ZBC%vC3|%zvyVlL}^CX8U+845Ge`aM9aWkMS4!xp!IiVyxhCq&iwO!xl*5 zWf{!vrLv;ach8E!C#>4z5M#a{$Wy=B)B|5u^lA2)fODy!sp!E&e zd;pt!hOK}O>9D9IT^FTe4hYXM1(6#dsD?_xcbI&ZV|4cd{69R1{f9^E3MW zbCjO0m8vOiVN8)viGiM~Edg@b(0FL0Ct1k4>zP{&rlim)-?)y?sYE;~4`O~baTQ(i zH5g;Fo@O1?ND$+a<*}cLB-Xw&x90p-P#BBNY0;jjdx)V#mZ!GPsUS~I<+J(mFk`)F zvQBwKR3Vsy(=b3rzOG4@L6EriR0&I7J6;=Rx-GUDp zWi=_s7^EUa)K)$%BRS6G|*$fAqYqKtnErs}p2_L&` z{}x746Aia$!hP>i?~?L5TmjrI?}wyOKJ<_tI$jTI^%iB~~Up*=W-M z*MFVsa6{Eiwpq~<=}7jR!K1Mf_MoLH-GY%=kyjbhRT2x%R?SlJcqj)Wo|d4x5$t>V zwUu>dB(Z=lALCkA+344Y0Wjg6NE<>e7$~ywF@FHnu+M|bd}f0|e?K?)h6*l+UO<*S zk_VLllIcT$XhR8$t;uJzBSGX~Q53X_I>!Bud2SG2BxDRm(V$%)b;0@0i@Bs~gukty| zawNzUTa^UM2xrNSUc(d{$fT7tk@tpO9q+k5@xZ~!xg7U?k5+)Vp}VHRH@tg=Uw?a0 zdx?rX|57RNC&4PzaSu8W_V1mzqDJq;CSyASVqP;jz3>KMB1O~6r)ZM%yt7kvmW>6} z$!goLrOsRdl-~E{<=G2bcrYLrxwi2F*|eEtRA%`RdJ%mRG;iu5X47*WE$(QUK=lw^ zlWG2;Z`Z$&kUueCw=yW>+el7I+kE<%kOaR;N;68^7%Y4u+)bqN{acv{eJEXMFoEY)nWc9nc_CyZE*$@~lZ0L&<4nMf$E8A<(RQ7#l!w|Kk81=+T#}qbH^}IF9 zedUo`w$k^$fyVF4+p0$W(a;U%RiG%e1D&`yqYixT*kJtk=jn%T3RMn3vZgRY)zRvi zfP&5x{lvwb6I_No|7D|!MT$wOFukiH1rwn`GmxY^{Mv@tst>E^QREIp;AB%!Z17rG z5GT&GVe+w@Qcu{;Ye!BvVRR@_M2qQ%m}+=|dg!>YKbQq zY-tQ4!S$(5{=ZHQae3$y(=%;ho)5xZB^Po+#9Zyf@#s%uzmBF7-03{s5>3@R)J!CW zlLsprRZ`zGQzjBx$(RVf-kaxrXFFNWV!0SACRgt^V2LkG&iL)UL0{vEgX^`M5<<0? zSGAD0R!iN1DRw}sK+NI{*Ze2_%68OjeI>WePg8~|^_0Pn9CwZ3ZWFJ7RcD=Hhmt*z zT0N9L)1YlQ9TI3RXrN3UTx;%29rvZP5*iyRU{* zZzpY+NUv(<-3fqAl5fy|+$;!*ULZI4RL=hA)uToLz(Q0HXw+)@p=au1KtRx>>>KLI z)H4CP|K>ZDY|MxeSYRXYz5>|OMrzbfg0~X!4PH@L+wM`D@*K_@MKDN_z&ZL`nDhP< zlAPJC95G!B{-Gg2fUjbH(xX0UUY6D=ZNc+7C_&jLGS2Tj&bFbQ;?~g4`Y=;s$;aLU zT_!39qga^9`W@ii=eM4AEXK_Vd&_Xr&#`&%YP>OCLN<|I%9ZaNzZY+}i*Y$t;d7Gr zj~~xZ1+wqFqya-T-dpig0O=bH?fImZP|0Pvo!Y1 z>Mltfo0Y5$a{=miWa-}!nytvkh6unA@jE|}E+LUGF4ar?H8{wcg{Js*Lo*F?qqz)i zh<8UA^Vr*4K$nL1HgT<}gUiBqy9T=QHEnExfUmBl06g0bV(H@{aG=gkb}HX)6YJ6x zw*|sTrtx7i7bq#(BfBZgy?2?P8tnckG=|!jc=lHJRiU@FX6(1PJdv1E(GYWZJiT1j-{N2QzdAa&r>R5*EG+wYS(?-=zlB!l?b~Jz#KLe0Pn!okG z`y%?Z4}rQ&!k&&Re4x5#LfHTf)P5)VtbPN^r+|Ra*K+8+-0RPGqQE#0Iia4^jbPbQ z&giC0yF_xr8G`USZH=C@VqZ#h=5|im2*mR4>3wMc%vO@k-E5NZRCJN*4~z}JsJu0C zPE{@ACmhY{r0ri|!*t}@!~=XGGh1wvm5^3GAIB?o(l1gB`wb0RKf*BdEDS%yc5NT` z_rG_1#81C(GR1$}v>iN;p0@oglp(aG1CTS8K^uVr**KB4Elcu#dYq8L;D@Ge%s*5r zC}W3lnW*t0gK$waajf0GTn)k;0cezOS57)QF%`mc?z*_xm7ArSuUO9hYNT97#L~jE&^b_z{~N-I z6uMYEaQjL6`6f2$J#+N3VZ}Opqk%Vwk*nBfBWewP(dML`vE?=SZdRZ!hNl45rIeA_v^SG%rVO>FFfMS;Xqa|s*V*pAT^o0l(QYCcS^ zYdx`@ssANpSQr~IPkl0x%p5GJ|Ixu@o#wk%^W>!xV@tvguMriBnO%o9iR;4l$-txI zTq-JO2e|qWLa4}-Ou<$Fl|@oOV%$YN`j*Lw9=~@3A8T;*kwkc=Q?dTCGQVeovpN$& zy>^sjAKy+VE#Y((`-SpHf60b7F9*ygP3x3vf|pIKIX?It6&8Do%C$^pFt>-_8Fkrk zWau+}=v*Ok&6EiA0dtSBicJ}R9G?QO53M~#MFW`uz!SoQQ@sK9A+C?_uh{$VzS%dh zRNtz!fBby2{0UaeRWiq33Lg&lz{lL+VHCgrD1b*vuCqNvgedX-og3LxI?D4XD>6Uj0BPG5qJ|IRX@RS=?{@FWxYC{X4D_Yhhv*W5h_ zR?6;_rW6R6I{?|`l_})y%{#ZZPDxH~sKyNjR4;3f$k=J>4ZJimWv^ zr>Rk*wS*DGH-DFoImAvxUOYMK9@t}=t}Xt2zJWZLIrnYk1k-v`y_YRx3c+09>EY6W`Z-*!6*agI0=Eq4QJ$9LgO2mXJF2 zCaO6nhG4NXsvjZnf?pJT5b%0P*XMwIq2OdUm9OBG>!yK_k~c}$(PySu@Mi=N^kTrn8J3`L0KDwLfB&E=az}STI0HUW^7)fYZAx{~&yYpn zl_TIls!tN-_D_~H!(#xtLj&AI(%(0+74Ka0${$N`iR@Sn3{`K>q4s5bl}U#dW{B@@ zEkqI)s{F_ zAME`e&OlXLWkW;U?scqXoYJ6x~w3TRcB*jNmG^e=UKz}C8p#6-7n0{-J~zf#lQaa7ijo<5%iCw+%-zKHd3rS zA;Xj(=s0FS4E0&llLX2L4Qy~O-PCDuQ&a-VdYfDGo8>loi%#`^LD!L}a+$>BtqdWC zzlkF908s?w2U7@6`?;Ud_YIQ=fRuIh!LHmj{18zdb#2sM>=NFnh)#AxkiV!C?-+AX zYr4HUp+QKH;_0-HRmM9^cm_%c4R^ba28oV~;iYfRADD}F@gfv3ceh$yX~()@q@xAAWU=@Q$W;xN580lCHH~s0<1?w$muvBoE`0F z?-?bjU5{{Juevg1v*GDH`=X7OuK1@tHR-T-3tCzNU}jX70lF_VBkq^5H5!`BXxvZ| zTrP;!Q?lyHALSp2&mZk+r>pz(^z%=z`~dJxxz#DY=VRvfwuiQ_*gZo;t?&qMNdgcT zLQbXzLkt5!6Cp1s?x{&tAevxL{>=pgqIdwiMn#%LQ574Z^oJYv_bUj%z&&W$3O{t$ z4BZV!ne?qz6~gS?3BJ;x)~EY0x6n5um`3FM`wyU1&GbA|mXW%1;j2cq)4qr;jAk+u zAy$e}=}$=paWCrK+lAzz5ojh^t>Jm&@dx*nB;IJ@=t};O0eJZ$#D*J~xb#H6Ax5D& zl*kLfCUk@O`DV8n)mqKkH7=qw9!*{7U_bg$ywy{IdJ1RB3lL>?Hn zP`QagjZYmxP#~lNCAMjB(D|uTo!I|Yf5!PHW<#f>(Avrt;J_tt{}K2ZkCL_vefFRK zSd}H*1cPbi(Pg^F8V%*hm62V&X46ir$Prj7E5pPFrs9eFHSNP^3)r|eHgdalU1d^$ zZPJ&!fx90_^bgf3-dKGzyjIql8jyIFLC#(SD>C45;`dd4hQ+p53KAcre%qWVqv0@f z!dvYRKAEq4+4H&%n>d*8Q(fdr4UnE;jp#U_fcypelG2iZS*#5Laf1$xvTh!g?{N4YIxhl)2j5wvo0vwE` z&-e6J-e3SzLEqIIrl8as+7SgT*6rAOD;WA(C3mu1I^(D)sA%UHLh(m8Lh<)&@m_OI z^{R)L1)HReNJHLBuItn5FhCt=82aO?#R%C9jxa&6J2K?R_=*3#3mADBv~?Pr=ZlR+ z&($=l#I!D$2)AMUQ7KinTgpSN{yc8$*__O)A$poBS0w*X_zQFPjF=DWkWf{Zu_j5$JH@hu-FFPr z1(Xr72;ZhCGu>r7RxW$I26WiNr$~K z@$h+TA&qPw@QmVkdHHsA%5qN>A{b9{Lu!{OB+uzTQlvqjQ~)(2JGniiSSAa#B0n>8x!z9Db@N#wpvLw>3z7)d&NB6quNhq|W!2(TG5c-Dw8I z4SHd}!MG070Y?gu*wDU+KeD@#U7t8$`iM5uL2J)yY7c+^5y!rp!}%`3#uZ=~AglfY z9SRnrLi*?~9*&Q7T$T3#3P5G`UvkC5e#Eifg8OjLrp=VMfc%IG^lDLq--&D>(EN+x zZA6L_Dw(bROS~=prUIoH+ZqLQ<~sbxvt3AGg2LKaCF-U73A+}wAKg@L9Jj-2=mF$W zU&h|d=*qFakjUSZmq=eVeyET-S~Yo?4|w=F2Q8amU5Bc>eY2>S@_(218yu@ubr?6K zc>ZGB<$t|?NooZsAT4yZlbXHWAtQnzyKtic81h}-A7}M=wZ1tX-L&@F`mCp-Amf6Y3aICf z*w5|Oi})T^SJ&6SS2TM|_qpt?*56_j04WDlzVH`_(55+$Rb!H!bMRQaS{Nl~3sgDn zo^XZ#1=>u>ymHxvh$RGFGd{4sqn}qKk6YJ`@g>mN?6_bRn4FO7+=8y+R2>%YgM0(p z#?JYn-2{cX9RcNFRIlZG)V(lwU*z*7@9ru6GxK#+kHcEQ#qGCCgsP3O+q3!n zS6lM-2EfB33=#vpYW9Pz559)Wszkt(p?(8hy+0X&=TT07fu3q~n##)9wE^5Q;oNI! zcIXasIdsKs0?6-kra-6P*%ST+auEiSgHoo(0#A&i2DWB818H%#8(K2w*EJhILD$bH z>+Dzl0uksdZ7u9jngO92@q49D0bW>D#{8FrUhTIUr6A2tko(vFjr`hw7RdY`erJn{ zTh}>#^tE`&U_Z6lG4o!JfuVx^6PyvAq-w=J#YGhA2TxGwnD5S=ObHELk8euBXTJFb zrI#|Y{oYUgJa)n_s+fD_3cMJ5}83=R|8pj zUt5Gn5YSg64%j>b**kvI)&rQ^!1W8~a7d9o_(EtO{A+Cpu=RUw%aO&)y;Y0XWje`^ zWs_wV=BWSB_D_$ILoC=RP^qkEVv96J6Jz$8DT!Dt=>Ah=aDNZY+-rJ{8m>YcBESUr`$nf|HIx>AIAxwbj8;;)N3?M9DR9nL!uK|+Ad6f;&F$n5NqkV2$%bWj?_`Y zwxEt`BzcAhH}CVUmx*s-=EL>1b6mf zC|6&jV3={>uW@qt=JsItopMrMwIbWo0slVoK{_sM$^>saDnF`dQMUauMe8QNaJ^8K z`={sh_@NF=DSdpf8S1xM-tVUJ5EXJu<5iVJzjd0VLwlv<*>wZGDSGhN_fv~)G^_5GMz|UEVrV_o=Uce$%eFH-bFdj3JYTuF_g@C_iF?&Dm1oLRYe6T*7v=FP>Y#k zxyVE~WN``42ih%HkI$&Kr5GCC*48EIrp@_>(;q3B;Tf+p!9L86SP!m}zn4c3h$NpN z(C*x34ET_E7&Bi`NbsXo*qDmAT;BMfUHybdg{3^{=Z8)S+8n2~RIN4+fQi|dh_e&i z?7QiYM^EWlWPPX8oV5~vvm@Jck_tT&+1p4<)x#FTky(~fOQTm@KE`4bU4ZljhX{=#Kl?fp8bMeyt2>z zbu{+JQ2d_wm&^F`S_a;+<2VC8UdjbZ(w#@qDr`H#TFj3fI5bqubB1IO)C+8R-P yBaU91wK*x%#9$pFXDRxXm|**F