From d1ed5e50e9c42020cedae1fa2baa7845f0b3675f Mon Sep 17 00:00:00 2001 From: ahu_gq <57164135+gq-hefei@users.noreply.github.com> Date: Mon, 26 May 2025 19:37:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ems_c/clib/clib.tar.gz | Bin 220915 -> 220418 bytes ems_c/kernel/kit_db.c | 3815 ---------------------------------------- ems_c/main.c | 44 - 3 files changed, 3859 deletions(-) delete mode 100644 ems_c/kernel/kit_db.c diff --git a/ems_c/clib/clib.tar.gz b/ems_c/clib/clib.tar.gz index d44f21edfefaaad1cf49d1dd182781e416834a69..8c812e289329a99ac545c69a6cc57b08a5e94aac 100644 GIT binary patch literal 220418 zcmW(*1ymc)*Db|Lu~NakNLw6=yB8?-YjFuK#oa=1DO#ks7k77e4{ia1I|L0uLO%ZA zp0hLa?z{KR?3{gj_MKgt$X74^|3E*{#c};1sUT&@5;^(lhWkMwA-+Jx_<_J* zj5zgrNfEXW|5=>*qI_@c3yxZ@rv)u1T@S}lXSYz)8OqnM!^AtcZ?md2)8M~PolUAl zKt&~`zeHlb^1GnHa(YBpe!bZqtNK?{tX15xau}H5^xbO=Do~^>qGNqS>%w>K5j73I zmU$9A8~tLrd+mQKym)bX1>kPWm(jLh`kp4XEzGZod=y3bUZFCvA0YdFnp_eJciD#5 zqVwI*tL!usOkfF+ii*!$9w_j=0_gwula*B#nv36>joQD1wtEg}$OX|!ruRp_EJ<>T zZ+yFM#>eDYZW1%>-(@P>*$aWO>||$~eIpOyWO#yyjqxkbbXpJQU%ba@xFu0Ij;gQx zyU_5qOX&6dcXFQJUuWI^j2{Tckc|9G9n_$~$n=C!NV~(yI2c8biYwcQ7Z|^zu(B!1 zwaV^Yw`Qcg=hUOWRFW}q`bn|2cvq0#4Y|$B(=0!9Q>9Oe>O4g0=yO|-s>V6I)Q=2~ zQX-CC7-zMa{Nw2Jw8ferVAPn#p~F5-qGNn?o{_}1EzDZz*fvaFJ4ar#`nh*z$#D;n z@x8B`HPP+Ea`pSlUDvMoL7Sgl8@lL=x_MPW$KI`70fRI>ZXfmeh)J;ZH5>&uoqHOn zD}|bmxR@Mydv`4#>6$HQe49_p?uH7<(*{~y#Pfju0=GzQx_Ph_2ELoZFxIAhTp;9D}=aJsPlUD zk_ca%<5QV%9qYoH)Ah24C>XWDjCxw?ZgAtD^mg!>JPtbpXL}#!R(fnTL7z55jx2FO zH~0HDru4@&cP9q{*6`g^rP5;6`n#+>`a_X z5dp{rb&VjR>S%LwY*V3BIX>^o?Q@u}aS0;;WfEi+1bG}UUHMQwW)O(U$UlKxydTx6 z1pQ{>f{;`3Sg{9lcLwynqV47X77PB}X1iW)EtVvN2t9%imhQ5J;E$R^Sst#4{p0iO z#U7W3f+0V)dP`yy-fRst*A)EI#aj^Kc7k&-04M?}x*}8$H{Q8kUP6VuGQP|#>NTpY zPFftyRj91mPt{oF5ujL2?>z~oYW9n_7GF$*v}e?Xx_91y9=#N@bAkpFEPm^u)Msv| z1ljsNUEJ;|+`GpERGc+CK3TI|_!-4}9(yZvsdz8mCU_z&<3SPBrhfEKvnmQOMnTAL z)U|0moCwvI?=eFW4^P?g3_d|^i^hY(5#YCe$9nPhbbeLL?dDziK@9t%LH#JV%KXT0 zlLEEOS7-`N2^mZQz81k&pOd1FJknp+GFv9(7sWryb2D_FecfcRWF7%5Dmvvf`${72 z*5Wm<5bV3V<5CLgpY3DccFun}jAQT<*mM{2I-&Cc$zQr;C0*kOga5S)9Ck0tIDPu~ zAnupE_5Bg^Js9c3*b$BJ`6+mPZ~bMnZ6s^KS)qzvwEM^AF4|DTkwO7?J@_%oWZk-VOW(~)CJ%jl zti(UVDk`qL^h9S@KlKpIh&c1k?$%Ig0?f4?p|cOrTMlF6Qc}k@y;lGFhJ-eumfC?F z-Ox|%r$V8`zac8u4-kE2_UIRkl^AFQypX^%?_~b>b4$pldkN*h#Kw|DFzizBksYGU z!%Mdjh_65UlR>I9;@n&6246u0LlTb{k9+5x+ZioqFO8+S$xG87-oTJIgdx0hIouyL zwtMx`XNg=HQjUGO&jh;GkI()koD^S%ra0Yl@9FdR=ghTx-TRZBPE zj?y25=AGKm=xkhv&h18!RHnx>V5Cu$GK7b7Xh)VL%UYr99mm(@Hm8ig|E0F{^G>Xb z{{VCT^Iq|ChC$wi)LdZ6!kdgik`@sK6Pnw==5eN5t(WEQ!6H2pfS-_Hg-wR$w?|FO zML72U_f;CqRG=>Hol?9KJ&w&kZ{?CJN`*Ao$2UX2rQ%k*eUa{!js57aLE$JVeCfmA zoSF8|Fne*k!g@i;C;lSky_Uw*-uav-^32GtqfpSC=}mCxKFR#gHJqA;m{4*p|9PV3 zY&jz#%Dca#@-)8d`0RdxqWDp(6zxw!dL4_0wI#v~-Rcvs`QQ7$-&xeeHn%DW?Ze6Gg*agLM1s&QrocE z&_*4SKPRY|9k^^jl6$)h(@h%s|7g ze@q&By_XE?IEfgaQ&r*r1;vZ>{QM?u2GC$)SyQm+k(OQVJ1_s48Zu;{;510X6!E9B zw{7`c&8`>zS!B|h+C#e7nj9HJ=hwX@Zo#HgW7{JI89(Gvlr{de!O>rPvjL_`CRyOe zz|9OPdtAS%PIw&|q4=7lN*{guIz+8BMB|)!hvnLfvgcP-S7$Z%4qU*Aj!H0Uw4lRL z)7tJQOjZ{II(O0JI&vv9Lz&IbbcT;&L2Y6WX@|na9DH_qo~%$-LeR~}FtQa7RY8aE z<7KcaWmo%#*+_Vy7~)&6-u;G3FU?U93rGFtzfRasr@!m!pX7sd9@t)p`;dzHZ*p(} z-}FJqIzu2o1l z?>{%jBjf=J^fhrmnuIoS0x|k%Oc38fpUt)dq1l!QjL=9jallYVto=7{g152S|U z=S-o=oFe0nPq3OsZXjQu9;xBzc^Ii!*k%P@_SiWUURTEE^Pa^%@7d$)&?cTo#ZVeE zPqMyP&ehTLZ9EQ3&%{k!(&zQzl2JnuZJAC9;n)1(b{Emu?)B-m4t3T}SbHvbCg49D z$^FhkWAwzP>ku#E+3b1Ty%;<$T~k51-0{z@emO(j_w+d=oZfGy{zg&1zOKOW2LFi+ z00mC}^9TK%HuXOr($$ zC54PKjCn?RpV41);Dci|@qd2d_hd-ZXG3w$Vdmg}=*=@9|M>(xkJFzS4syt-C!A+V zMKQE|+9MAn2Mu`+!tsnCpJ{~8fOyn%5RPXLO*u|KQ#pVis&&uaWB_&oz%vG-(azwddz-ZMNS^3O4|pC|D9A4O}9 z!&*SDDg2$1$&?SA?-m}@{p9~ZeJiP2U{^rIiQ-bf)7aY*P@% zML!foZ)nK}SRGR`ue1&?zPU{L-5B%IMz4N+#UkLJ&yau(#hhklm`Q4g;HOtjZW4G# zPiF+${4ck<7yJ1;v&thcZHKa_Pqbvz77Y|t%xt+TvGMY@7&eAyIe@ZeM2H1Ut$oL0 zI!`?ElkJZJ%z0WelfIvAY;cxpU&uwVjavT`sp@g6PwY@`2?I)2d@XI@_Wxz>pR`C2 zG+svK`JN(Ai^#Vu=)^lE)(1P1#Gx(&@omwI!`Lj zfo*mt_WR#1!o~Pi%aN*G6T4j7adZSHiC2Up;6-dwQ1ZJ6%@ME4C?$_}j|agh z%#$#V4N#prQ2(<_yZ4(>?5w(|{U6Ou6a%?3>n`RU{_BGW;Y0F0$x*q^*=0VPe|JR1 zQs7Yk9ppX+*)NB1hex}6=Rf>JA6;Ui>ALTFLb2=p}D6Hggken0#t1@x9X_# zn%J$xvi6t+T&~g-`dKN%4h|r1HbD zP9YK5<()r&PVwsNTQpcj(vex>+rz3z?69wrlBFQd&fp z2*7DuV|Dm`%g?Poy+)E@KSe3Ulti1n>R_}WWin;2Wh6W!lm#^=I?#$T@f@P3-v=l& zZ#)s8xd++{AN>4v$wyQZQQH(2S9PTOQO_o{!N3ug-=L|D3l)ZGBH{?mjKm5E3k?#s zoMCH}MOoasD>|S?twWNgvd$NNd4weS@J+pKMVj>wP()%aZH~6 zxGMO0^`>jx%ZTNm6#3smbhn?F!p&?9ueemnohVYbL8!$|Wd3)`pW=j~?OHz>Yrohq zp(x@&)ev2fju2$)gpEImuVDwryr;C=onj>&r z25;2N@9TiiyP99eaXufxtapZLmn_?V4?Yx>beKrTdRwqSaeV1#ZuKL;v+GjR7M=&2 z^LKgkvEVt$2zJ@nx9A12FFW6#Cm?KlTZ!aO1-T7GU98-$v|~kF=5B^tTPT5iLCU`} zzw9?va|MdXQThJh^{r0k_5B+X(fP5M5GWFK-}tA~<{LD{_5OrO7CM4^c(d#1d&*RS z`cQD>64z-mQ?OUN`)tIq{@pb{ljJJPy{D5H~yQU+*d zKXeW18&|PRO_~>n-NHv_eo}0a6ayrIB=I1GArX(+C=XE+CYW)1FEZDYfGU|S4gad* z_INqu;W=#(QP_9s99Ce=KNT5noG}yr6cUAjxYJRl_CzOwDI8&U$;O?LTh_J{QHgym zoWDlb+$J!Wg;w{ikC_*cW!<{;1*0P})#XfE{)Uuf;f~oE_x<8QQ z6${uqrvl6K0ld0gtc7QP_gnwoXFV$0y>)kbe`_2z@>OTerMZY2NwF(H%ST(Jv*zI8 zHrsi(0GB8?^0N!5OOM^}&SJuLAMFuhfU0-13herU#9A5-j*WP-@d+2lZ$P>^F{dRGfCzME++wH*69N+sv8#+wno8 zODP!p7r1?(I83BoZKBEiT?3-Svi7|#{plN-+TjUT zv&HgV{Pb{r`~X`{@n-+&1G7IhV1%_nN?^p{eEJVx?j5Xd{;gqE>mBx;2GQ@<@80DZO7)S%yMhJ#WU)F`X=Vu%Y7L4b!a!ls}$jMR;Fy zUli&EZekFK6^p%&6@elr;aRX^m2p*7E^F_V2hIsWn1){knR`B5102)xZ|Ah5KksRSlT2?$YnU*Y+oCmQ7)>jLhEzNN-xu|GK`o1u z9O>UdUW9kD{p6of&e@Uj`-gUBncXmg`k5BLZ&5>gndLj{wANcvmJ^3;hBAo*M82nz*sXwF!9HCV8OqBM^Vp5>{6B`>+;# z%@JJq>AQBM3*~<(9v_r}CG1FfAg%yJD8lE>`cq6#Ku?)>} zFXHZ{-i!j_omKEg1c!8kPiMzkU`q9^>JU8W06L|vyCfKX+SdAN2+J(sN*KOBF7@STs+C?-=v zOLWimo60h>+4mN}>#pXE~eil^q{@zk_UYyWwkn3(f#bQglu}3?n zLfy8Z_h0rEgGAn$`6f-j@H3p|j8{$JOc;%suQ zt5uuW=TE11zDbP*enyx|*(Rw&_|Enbe}<%H=Wo4ReC@OPo;m_uuKBXx&8ZIkMnJUN z>p>|iu=wmRB?Kj&)}&t6#0lHBlr4SXLkUE&BexveLUv&T9{7jc7D=MzGa`m^*n8dC zN8~))K#Jj)elKHFFFj1<&I632!0Lv;<=)70ppo|7veoi?L8zd+p+4xtq{p|3TiNnQ z7t*dV^1W7>HD7&upTMjiFJV$Buhq@!aE?9)v8OUow{wE_1q@gj-V*_EzIz?Nnpy9y zz5myZlGxmFMRhDstE>!5Ip)t9?}KX&ftf$A@Mg*}KuLD+a6ZD?`bBfy;DXK7^cs=7 zn2Yw1&x5+vEmlIYEJWX%23|4uAvje8=N)%Vx z6begN{rHMKuuoUHtTwTO#6=rI_TsFFNJ!PWs7I~f7zy{f&E|GPSV+{qh(4FJF`{e5 ztNEUD(2F#Bp8(hEM-&XDu%}+x!jW1oIH5v^Xo&AuqmS}ev6jurEk*+1YTfzp!%#c+!-R36$?TWlHrjWJ4m^6!tMXLuAmxZ;1#3im#NdQGxt`AQ z?{C{elw)1^n@wY#+hJjI9*^CBx`)29`UxgMrADz8?)+%p3YCWP5{R|s(-o!QtniVV z+SVT#@`YyniMJVrv+Y1#kB??*NLs%{bj!IGHInC2jf}1K&A|rpPL!euTZb<) z;bP*kcAXJ+Pfk+-x0KgNu`p3R|QY)Mpo_z;IZg$i3?U;J*g(&$fH@JYY{azzfF}<=G1Yb{oH#hUJraL_fyh>t z3b$7MNF^RN!oFZ7(l53pE>rD$=dY=&p2oCcW6%Vi_`C+8WahASw9sMVA7Hez)FHPM zTU2J+fAjBJ!$|^Gy*(vPEO7}vBfJ2qt1YU9_>o`#D522o)`ES_VQtt`1YHAf8U>Xg zbhGY}_1sBtp43M9e2v5obrn7I<`CKzW zIrzuQx^J2<;ZCjbXVb*5d(0}!F_`M$%a43({g0Dv_sZX^ic&h;SD&IeXe1zbTYl*M ze5NoKoXTH~so(!K>d>uNII|v_QT6b#Ff^t@L_V}GS@ee~Krs9YtOvsKI1X_OGh*bYE!94O>Lqf6|N1bH8MqUHI!e)E~RN!W92h^<{ zB_KnND4N0RRkff^RCB_$gZLp->;yVXotu!o!tuzkuaG+4IVK73!1H&Y!}NV+g`Twv zwj+a!T5>LD=v+xT+!0uX!UVHUJ zDU+mT@*Z>2O`@~YrsV4V!o`l@A{v=U0ifx@Y)wSJ>xNlq5z`Bq5wgy~*x~ie%hJ+2 zI_VYq+wweK7dI<$5na&X8#2%A&T5!j4s|1U)?dK6Mpw#oi>Fa>)M3`#*Hy~AVi2c< z)vAOdt1lVzA5~gnmf3B3 zuM_CUNV#`}R6KOvXgzw8-cOQKA z^`GkI{iRsQvE?<6ZxM!RC$x9p1jydI{}MPkv@ZhO+nS98zdIMC$mY37jRqeg#{2hw z0t>fY-ipnhdr^x0xJV5IGbojl50amKFb%m$G^LUsOq(lOK5DQBkn} z>O!6>b&79;af4v+vki$Fa?QwPF>>wGZA&ns^@<05SKukl zkZY1MRzQ`%!{fwrlUWq*X{=ktW~gn07;3vG{MF6wE~rWo%L5UZwA~h{i{2jRi+MK0 zT7)uE$j9%1pT$&5lZ2$pu}>xDutPVH|1ln`!We5>3}@vk3-~V6MYn{}1)+2Qw)|-O zlBe!LeKk)?qF)+sC1WG-1HXfcuutU@n;dR(l##(sJxC17?n|rPOpha+&zt$rC}w zJZfmJra|LP{qW07Qy;B((CpIs9(6;}D^4cN-S1>E9;&g8$%U(S;yW2x&F13yp;f!= zh|z`oPoAc+zpEPlZI*Qn5dkKIrtLj|cB_###|CDVryh<`Wj+|4S%HmjPFygfRv;CV zTxvq7S!D#Xez}#1bx~Zu=tP zvjr~UudgjU+yqVGxw;ShO_W}HtM(VZfH_}Vlg8=OsO9WumpfC;ZSdK@z7xwf*YOx; zi_WV7>YNOmhT6p8Zf`}# z?$Rz;FIWcaWT?QE$M0>ZPu~N3s?)bqo5CiR^(UVA@2V;jwo+?RF1HXb!Ub_MF9%JM z-ENcmzMP32$K%%|h`wHqq=H&po=GbOMdf6-&dGvPj# zNiB4HgE{N7u1{J5iR!b2^+7&-8|B|z(4eLUStrc5ipcf#Y?|kJr+*B9@Lg=f zgvT9nGeEe)Peu-wjMibW?7)kSyQ4oMRlC)Ij|)Uir(l(_wHtfj_7;Efc!FKHFGcE} zj(EM+C_YpiV_New&4i|)#-(C>XAFnC6<>t=p!X0RWfcdMlH(k`0@eTNri}7Pwfjy{ zuFceAXvz5jo65ZfSx1n*%Fh2d)G}%}CI3YzSp1s3rAgQ)`7?8qd;dhon)sQTwh z_}V56JidDZMh6D=gbZhy&QI+VLoPwtdzup*_Kn$da%Pp{IwSgFjU2Y`xP5tMn#ruq z>T$9+7@eVO{{gtVSS%WwpEGdo)1F68{+5_<5-ioO1r@xSJU>%zKP@sEyzGE3^dZc?f^TIWvUr0Z_vx3X zZUycU$U5sDM-yjdtV~rmf{Bd2c+H4^I|Svb2+9R-DIme!aTymiG(nr9gxVl>B+es} zs6_%c{z!V(I=s)#Y{A)4QSz0J)cpE8l1+pNT*17!3Vpl3uS~8@)&Twuwd?TqE*ma$ zP=81~5cqWG?10U|xuh*|5r|b8Ni{Lo+Usvwq_`W3 z(#AQH5zJyvC}}G3MJ%Y$EE~J%inl`Ex_7z9`t*X*4Hc(U3v;4z$B=Gw2Qg%qTPt~{ zrIgm?Lk)PouKa{LBg~qux615ndXl7h)J?w9#i#L9ko7G6j|<-n>-ConwAMmS{=elN zg_Hvnt`6xbK|5&=x}4Of+(`qjtUJ^NyUOsI#F|=?oXPnmN`6>2+sD>;3RMo7tjW5A zi?nsyj@YDw*=rTu(sw@L_DK@1+7M)Ye#O6*f9}3t?I#n^`I3El69oBScJ6~Agz1Ov zr9OFlUm^Rv*%K_+bSj+ds+=QnAX%XzKjF(E`bRhkEo{;f{3a_%f1du@+=@RV4ah`~Yx3Rh3_08CWtwfk5bPc4D+jb&QyoC3DqA zP&jQW`f*>+!G+XYDTWnJJ#KCR_Mmwk>sg;QbT*%VHslnvP;sg-)uxj9?d?NL)uVqL&f9q_142cpqxmI#E@>uU1k( zAr7U`t&zfJcjok+)5!F2C_Tysu4nrgfh4AI>l(1tuY#nxiaX}~MFhNKyX;ahYFqRs zZiYVDi9#5j_VM;{xE-9M`|x}iQH#941x`j1Njh^oH_Fm7ExAwB8dIPM^}MgX z3sX1>@WS)f;ypOw@{W^WSd_eK`kEn*070C0SVB+bc!rsl#WaIVQ@|#QYS7 zx3Tb}9$5H^kn~zW8BBawP0|uk_}n{o?(^3p{jF#w&sU|#zmcQ(yw=%;LTEs(P=425OFuGY28{62l{X>}yfvN6Tk0ol;}-qBET`L-=~Y+b z;??RhW^iA5Zy6@`r-`e3UpWG`VeeP=UQ*KRvE|wsZnOnJ@q_HBBmT52$rv*3b$q)@ zdYyhnyC+Jq>CG>$Rm=Ou)g^_{#Sh~|`n#N8u3u%uEQNX5-Ti$hCU6XVkn!p!vOja% zg~5+j^-;`ZH0OTjwVNOCpR_PpIh6nly2qkZE1j%I(2yZW|L18~3R9t$H{{mwCAd89w;?Kliy< zCSkD%tJ*%+<5;U&>8=ENvLTxPw*82Q{K!XRZ0K80w6pWgh7O4=m(|}pB~c9!1-9R+{f+{nC(3PF&y0{o4XrhV$*Y?^ zWHGe=^QRq_wtlDmJ`Qc*Z?VLyjR^Yc?hi;c>0S){P=>vLz-BCl%Y`ToP1$b}7$5(H z0~Imo`qzBs)A77idxJ;DyBVBhch3x}w6roI^KPxjKefPp;G2i*JwmBgRW0PvoM4ek zrjW+K5mzn>ui-Pn$~7U)F48dwn03+fH2bML-jgZ;tTa%2tiJ48Ts2U% zk{984*|u`~ZdWV8z^lBYhh*c7i6!@ub?8|B_+FagwKj#KKS?BBJ7>bfe>5Z%Q`SQd zfsm^Fv3{Y&hl59}BEsFr&%m^;?bD@tD~lm4#GlOHXf*$MfpC1qBz)Hs#F&L<`oc~$ z@EWva#95mu6%-E~tZoSnC*=(KK}ItYHEe#@(_$*2d<73yhA|i47u1kX9k-TC6!RPOO)lEz!I@fG#3_61~c2cb*0*EM@8EYxL@a6z0=yc@Q`_LVlV{0YX-;RXOZ_ zL@%!LbsXc{r{{(KHt&ia6@z`S`yo7c8^g~Hsoy9XEw)cDhoi5bH-if2J1@ zB0b1l2AzJm&p{oTzf;U@5rn*I-*SoEx?Qw~BDI2SledZ2M^w^QnXR_mPx>Z`G7(8&S{%J$81u_)i$sJ$0dugbsgxf^ z!yzuA-K;`v%Np$?!O`ra3hRTLt~=4^w&lKM{2Lvrxu&7M<>)-4OTHg}nh2}gYmfv7 ztjs#mHBnlNa$ovR8rZHKUA|;C#)j!tZNP{_hinEtqzJ(t+I6;Q>msP;P1 zNAK}mcPG(3R&R^kW3JZ#Q|Y~IC2Df!^%p)y4Q?@e?gB;Z>+v}i=5r0$%~$<4U(=>v zPw11QL}g7Ls~ayC-P8V64g}33%XgOZ&bgid$K<^+?pOMk!bC8?!tJZO_^`f1Ipa*7A4J=D8c==YCoeWYwz2 z#`CbH;%U;+%^-GeHJZ@Aa(E9geL1$B^1`<|_(t+S;ReAlM&~3l!FOj^!u=j&(gPka zD?-QHSHz^YfQIzlFbX@sd^9~lOXlG4tJo$f_Ruk^4LG2pBQeuQ?@SJa-zx0V1gY+P z;k6}veg%pLB@d3-_uaqD_^7+XSI*Jxm6yI2dV?vT>iO6==ZE(Ao;|Mq*rhQN#6%f+Kt zKId02?=vzcc)`(o)uNkGKX>mk5nimmDw9j2?pLPEFYKsaT*e<*-2N%P4203O=p-hS ztbGkF&%`!7DQuz5Fih>&PFNk(AKBjXHa{2Th5nmUz79DUVPIR=r5?p*M8@9glKBRI z;*aoPu0?8f>g7&QFYL+MhYPZ#fGj1StW=L2esvx&TcX=KunCSGf3ePu9e^~G8fK&y zF>mVf}gp&zjExjFK?Y?gp&Y8cXJXxHxe?!S%4-%>zoEWiTZZ| zT@pV1633^pR?KLA0dO|-(-P2(lz}^Sk&VQP5SUHw2`*c2^QnTwszUC`Fv1G=6I;!P zVE6pEu4LMktXZoQEUPfmJBmmv)6b`0b2{dRp<>}l;|>awv{S7sc#o&b``}qeGS+0Z zMfE`W#c9RDe+Ak_lur!2Wo%QvinNF@7jaBF6zoZ^e5}Zny)6^= zAwU#u&Y$e`S$<4UZ-GR))b;Jb1;$8cYnB|u%7)OSRyJ6`mwe4jQ(cU9`oPfaqKTQo zEQ;%=yVmIY0pHv;w3I5*X<|@k(j3#|BDE}d3CQO8v})l7)*sh11{*u54OTX>mDQ7~ zr~U`Nvl8tpqulpkY@8P4C6k6X=DP5S75W@~^=50brSE;zOK&q!txnIV+jPc!f@aj! z^vOQdc~H>se1D8T)%&=QrICjuK4o8<{IKZ~v~~8MTTaq}KZcJcQ(!wo0Q>mhO|KAFPY6Vgiok{Vt{B&aE z?I|RkeWFwFyNi9jL-cJ$u~;FcIcj=fh-{dYo(yirI1%u4QT=QG^|H4ZtnyWvP>Zc-aZi5C#M-<+-tY zcRt_PRcN;i1g_I9J}^jr>vV7-&TzPO)^+qC$Sd0 zOhoh!x2=3~m1u?{q@qn@o0~lwRUQDAYU7v#bw5ZX(%(7EL4d;7%6u`FG?{e$b+KQ} z?;CD^Pp?wr33(i7de=qj$v-6Np|mJ0yydsNan(9*BX24Ly-^hK+7thp$fz;ua5O_))4z=l@@sXbY{i_ANEdc$IG@5} z``UczK?1yzxhr%o96E6M(DN(NL+sQ*97HX)hj-5&3T_ZwRy@tZyn21+GT8phP8NhF zbS(TuXJ=mEOEz>JOT_0#o=22}UBLwzH=j=tlcvl-7P%rwRnL@+Ng=6iPS99Yv#R8~ zmv=F@#?t6*1re-A(^hzix}cPie*IH7gz&sFDaAG<-bRlUPfsrnsK6Rq^F_9QBLsvf z{cF-3dyY4dp^&kR?%@J;qkBUXYmW|0>m1AosF}d9QG5epWcyIliLH%#sXZi#(rgT* z!R*ZTPWl1ZyZsCmqx*T z4?&)PdM3I5a+Guy2u(#$f+P^B22JkM!)&|3Omw z$Nj6Tuq9FS#>GHmB^evCFEhR*IGC_5uB- zZEl%W=8yfNr6DHBSDRf^Cg(bdmYEV-(tRa1NzNs;ssh;s zNgINNo4gKymO_4jfGkwGJJyGc9^WJr=1Uzs8*FibL(*;M2oTQRP+K>l z!WPVHEtBQ)pCvAviyAI0nbk#ZFF81oVrsyw=-{1EJ4MEDY_Ctzm2A6RcTksLD&Xz! z6BV2wW3nW=o#gz=_gs|dc-aDd4~&bxMB(A`K^d)pyrX=`$O9wkafKve*XMh`E{3*; zkXP4^#(vc-ht9zcGTuvNQVy$Q=$6~^O;^9w$7nGHfb{yuONFhh7a&Fc!^d`f1VRkK zuzx?ZZfot(xt4eI%eLifDr;K|M_}dM!`!+3Fp@3zV)5J} zo?bm!Sk@h;0Ai4FrOdJ-B8avxe}e%3qcr0;@nhEnVA7v0()Zh;mAAclicJ^vlktTUO?AxK=Gibk z4Npw8i@yy&8_2wyJcPW8>=Y|FT0NK&+V>$}(d%AG$4jvz4!v7;6nU{$YWsGvnG@QU zHtxn!s@Bg%cHzWml=dsvU7`Vv`WO2B8!r(O>1++SMz)*0rv}yP$0H*tp4j=~AR0c| zoFH&`^Ml+cjyvUY-ydHEYo-vL)cYq&+hB2W#IMBteJ()cG--om|KhTYsV9J6HuQ=; z*oAgO1o!w2hlxH@BmGBG!nlfX2!n|T5nW^4D+tL{WrFhiZK5B-lzk)J(}h#qj_EPt zOvQL7>#SRTd{U1nD>H;R#wysKif^<#!PqRv?+sb;3jLPef{dM-VX%O>tN`Fe#x43J znz7l&)gY}%|MmdiJ7nw|2z4+U`U)>5=Q`=8=LPU1SWopUG?b7$D2fD}cHkG>d_`oB z&q2-nRwC=+YiiWHkA*nf{XK&(g!H;dGAjInW8SGM;5@I|RF-?p{9NR33g^~?6)!+n z)8*|wgiYC1G~9?Drhq(Z>mNIT^3Hgq$XnRRX34pqG3=xG)4+6PS&M^EC=aSD4sQM9 z zB3;I+=-X{s&~v4=NNOZUC&}6$sF6*MkS^5Uxe4z!{9DJ*G)zY z;?J#xUZ`yc45(dDYe8!ERihv9P*_n04Y#b*FnM7kt^5+PMg(6qgjIfv$6BVbpBjo= zQQIEQpheDT$C@~J60RM0M=B0R+DPstZDs^rTCalEsBWa#B}<6q_0_@mM=F0z|MM%> ze;IYd7WDy^4Pi7v))W$6YPw` zu>I8Xw&sNVr~56|WS4rjPEKd2H+wSe0chgU+msz`*7w{l@VLwJPbms52uc6&dk)dA z5sg{eOn%hE!E+0ZsBf`v@?N+6I=XjrGi;I5a@N|>&2ndvsdenXuZ)$IzFf>^d~~Yk zU|+V-@p-|f%<_UaFFpMNA&Ef0`*mnF{(k^HK*GPUpfN*@)yJE}>f`AiXOc&$oss)` zU0}Ov593KLk7Sz5Gozl`pC9WCdSz&1bDg;j+`V6H<8@GGLOp+O`KCH5cWTVt3Nd%9 zY0N#iEWrF>T^-*iM!cnUSohKVp;W{hsH1o zM=@Aw99z$6BzcS;ICp=`mw||QlmPg2{a5AK9P5KY_~knwVtp5|o~lDW1-bvX&cvrM z8N-t60^DAl*jVw7DZ##22MTdEFO5wrfu4N(jq-nqLecoCsho9F{In;8MUGUsrYod=<@eZRWYFQiuba4we z-cOZQ5q~Z-IB?Ymwd-4`VUT_t(ys)P2X32;Yhb-wJ76MWo&nz_a7(_({%}7;Z1ArSoTk zQ@wxhI@T_g_r?9~(UiWHoSRF=QQ{w{-^;`8cK9COn?mkNA^cJ8wxUBied2Hx524qe zEg5bv(DX%lmR}40Trl56(Hk4^1!9vr?cYwL@fzE+3Xw0W{3>PLhw3x!3pk^D&uPZT z4B+E(Sa-bxWY0U5>;t3sH4=KlQ?lpi+%R?Rzapk5;ZH$@bn(dsVuxgUPQL2@d!u8< zsQ$n5T`*q$C$UFLS+%G6xm%)v5Brt(omQ$_s*E7riaRdy;``GSfA0u+u>|qrTHwWK z7!SWa9i|KqJ#&5TX>-|Lh5HbV$-6%kaXS!>9)P18^<&g$QM@e(x=;4;(*eUiSuPhx zJTrsbTc(}`b!E6*92G}PXr5fue5>B4`FsW=Z*Dk^^d9HpoC4k~VZ7OZcvE?r@@9|) z=0zd$a<+xR&>v$!et&9}h+!GRunRDJ4LLeHf1w&7q3xSAuH`1Z!@u+oNa0q!kI__CP__*#95%*39#d^TO=ke@!{5tb^QXPCA z&w~yV`)ZQMBRfLo@f1ap$3yK6$}O)3epWJm-suqYcnD3DqKjm`ekhWYTt{R!d2fwr z9*^GNH8nwOvO~ldhw5MK;PQC%^33vhu5p;=@#xm*2yypCxCvf@yR?RjU#jow;N6}Y6J0aOe^t%=N_QUXN)?x z4|GoPTh1$UymJFIossPpneKo7M>Xj~i``?qQ;YPgGWRMVbt?XjXDaXy&g$z9eXsgT z1y|djrER!uDA+k1w=1irwr~h8i=6uh_kfTX!Iy+a!Px`md|y_h^5r=D${Je6z2x_; zdaRf7YM;of@2WLkHJPm|i07jW*8ILWJH%a>FJ*TAXAQTWpwm`XoBL2zXF#436LfjH z9Ax5J$vkJLKa!&rakXh&Q?I|cI*6a*66^oEnwA-DBAa8NzVE9|WYZ+JzEkHn zjje0(1oCa4n!w;6o;a!U|A!||sqbT?&_6xHyw8E(9h+Y8A1~;5dBgc*?~NXnJKF!o zJ6%WiN|JR&W}ek%otKlfJZ)*7b^Q2=)|q!NP=1e_o@Gn3E>-@?&$eb~q~tBj%2{E3 zBrPX1EyMaqdS0?Eb=*=(@;_7PKlo?=#%De&+@_UDe!9wz`Ja24)<sPLIzK$*Klw_>_V>EpD^&jFAh+zcW)-z~9+f>6v-zd-?YHbMKb(vy*MVG%-a{rcg~$PM^>JsFHMte z^4vLkb?G*FvQk?*rh@|1a!Cyuy-G`J1OnynMR&}cKa;&wd@9Mm;TiuM8#;FF?JC=i zo7#EI?mzTue)f#?+!<*rXQa-u@r=-VjDC6k=;n^id(R);;(yNGxvt{;huhAdEa_NV zCWsT}AK+S=mANeaA>d>%zN(0S4!>B_GqZB?9@c6#!b;2YZ+zXqZ;OBH%ch^0*O!`~o1U4L zn@cKG%G3U|qW&I3JCETWtJ#B{>;1<*@NeAiFXHSLe5cq6{zFPHFZknZxvT7;|GB+d zTcFX&E3$JGMOdZ*rv1v3lEOL;mvrpd)UoM=e`C3SYXxEQtLqiZq~W8MwDZ^t9Xoe) zmFx%e$^cS3W>PM-Zw%k!QMLyV!^iP@KDS7ExnevR83#QAnXWcz(p*#WUA1(i@<6A#_@s+N!vd-eQMBK*8^iL`~6d%-^ zuDql=Ml~!uCo3;&X;ua(9)*>w2zzo?jx8-mAx>LC2A{NKO%Flcs9sH&JVB=IQaWtz z{24Rn%Srb^1%{%P@24%84!9Mq@gLgSv9U;pj<8n>YZa(oiWHmOhJb4t!hTAJy1XXd>(@9j!*+w}CDhCP<=n|trf z+`qYVXWmMXw{4|5rHq3kUp)KGqhT}FunS@fIs_k@f|1h{zbJZVlTO`*vMwsdKhxZL^U4k3x+M+aG5^(zI2L(r z*TbV<{Dug~LfH-WSL}|uqOczSyE2Qsly0;ml4|RTRZ;W4 z(zl?0)Vf94c~FQ(grKsppRg`5r!KUQjWwF3lCohH&ZGGXpwbb=rg|m_w-MjSk)tTq zs5cJ32vWh}suMf7s{q`UT1TUDfD-bnCmb+v3!MAv%cHyYj(@ID>dBp`$HzT+m~j?^ zL`X$cty)K_298Fpf&vC{dFpC7!Wl;|j&M#))JGHkdd%8}Fc6+CG#k((=wOI#D~$kHYR>eqi*4!#E?JJN&Y$lQ>lr@`Pi5cGxt(es(%) zY&!II?njPs>k9Z=^|k3|vuZ7r&g9|f^F-Y*KBBB-nNRannYcFtbcUi`H`bv8GYbMN4?DJB6szpY43l1``KfA z&prQ;T8cZ);d4Zu5IdC9Bze_T9v_8jK9hq_U2gfT%h#@^oR+8PnOy@TM-SxdxqfYH z>$2wMH@bV6bzXWKPgn%g(F{^+#BBD)lYNm~CLR|}^_a7~dBe&ueX!!zIGM4=n!;@+ znnGl3#<_wKDO@nFY{jr^Zf>DzSoQP@a$Mj<+n#|ITb37C2h^C_*iQG0+f<2Kf z(M&SZlju!Yl^u}T?!H_swZ&24$)y&nPaW z7cgoac4o)kbNydDvu{`&moMfzM!R|4ie}{B{7E;gENp$+Yzlh7A~F|a? zIXq%=jWJ1{X9U{i9f{2MkVPmoh|^PfIN>e6HW8 zsvo3FUVTbB$;zAJe(7c-YJnMM(i(~jvEA^(VN-6NzPE z3QsBL%f|1v4rtN#L^7U}ufnp(Wx06QHjH<-4DduGmg2)x|B++Es8ir_e&xP><#}17+yogEOd#?B14@&F*+Km&e1AoCmdGGS6H!sRJXK_!xTsOVNonguvjG|d(1=#52iu7T`2Oan~Qv#w=x%+_g+>O&da|dEssN=D1VAtN90fO z4FENN-W5l=D0X*|AY+@O$&Pr8)_pFK?6M;coXT~Odf$_d=DN*yzg?LqauV_(P7L8& zy5pI+`67mD>HIwA>OrAu@xy-cOeWHs%`Ydyj&mlRu=tra8j&|x;X36dHLs!@#MPNN z<#2wp^31zA?7;R*?=FaK%)3tH%T8jbn_YYBoZ8+wwXtw*%Yxd~3u-saZV1m#rnbzk zuP<~yT`2vAD)fa%=#=`*SH$T}zPGulwct)I&VLJKzxVHdkha#m-ZU;^0T$Y&)0$0W!E3*C9(;>MH9SmEKp zHNiBzo-9;c z)~n~M0&3)YXKub~;;lCxk*s-SIp6o8_ILWrnS1109P687a!W1jw*PwGS?J0G`SMJV zd~CljUwiYKwz{k8&2R01L4c$MIeSig{G$ADb_}HQv#e zi-+&-i)Xf3JgWUr`;c9dIh<^;V#O91s>%mlLcRb!tMoUS z+~b>dlV$al>I(Z=_fU=6e)h`e4;8)XmfqBfB%o|U!haAt|9u$3)J!3386-d*X=Bf5B ztkH3f0q^`G#^&L<8?XiNAmHsf{bB-R{eT|;?gtzwX6y*y4*}l>O#2!84dA${2ebux=7##{hRuX6#+SHvG@LVm#Te8#!~YnmAw0KE5l z#ts8EwK8^+_}4M^0r72s+{K!)nNybh99(fvi1J3$$=v|^|>kdP2z^1=|-hjtng5H1) zuQ0X)aQkbF9R#d-ov|MRhX0DO^ML(7V5|(g`S~9))&LlKi?LR~9VZz}%Sxb9u2auF z>owoj%RJR(mvdYQKOgFh$?}im=sU$BFLaQ&Fn;KH1#m5dXs!qk`i8vAcI#_?_TEn_ z2t|KPfO0`Mc+}tVsKL*@_-O0o zGkD3+v@XFw^mp--_A%BY=t~C!L;hQp{vXm9pl|osbUh*%NVgi`!&n1bmHC(L_T6Uc zMq?}mPYyiu6#Z{h=GX-K4$#l*oW5?bbf`ps#g?%j^fs)cCLgD#n+MB=3~!0&y`NQZ z`Y`CRa>R?rmO;P8mhm|72P-hYm(w><_hq|F_3uj|X^au@9Ko8rx5(!4-r?bc5Zy<= zAUYi~2pJFSgI5mK>JM1-S-{V#f}Mnpm4o__C!*-M0`wiAA68`0e`)I&13h%9Wk+tK z+m-&?DaU{w@+dZ1Ve5E+a@J*xty65cYGC4z84jb|{Z8x&`xi6`OtEwi)I3mfPSLVUv@d!5KqUUS{b^dB35Z zv7JS#O`{f__JjRhVqdb>=m91EL9hH1mI~| z61(1y+den}`jPt>+o<~Bl-+*>^b4O8d!#wOw_REPi04iBW6u)fpY{ya3{`utwc>3S z=;58%lRQov_bE1R0nh0N8QY`k@RTh>H|T8x*gMo5w8oZU2k5y+7|RJAj_ZSUL$mdF zEc!vv-^6}7OYMJy-TzJ6&j*p~9sU22)A{-bJ%s(WL9E^5zUIM}p&PtAM5N30k3Bp5 zjAe)8p25)2bZG~^{y{(eEbOS}sdih(R?ycSf()t+9<}K`pg;aR{N%Iyd#8FV8Fzwy z>IKBQm#@du>zW65mJWTTRR6gUlEyd;o|c!fo|G|kX3udF^oCch+#>As8QV@5K<_zT z*iJ;Rr26A~u#?d7q&|4nP`$p&lCcT&6DJU>YAoL-les49gf{S0zQLGTTYU8S==0I% zqtE}vXVWYJLlU}wk31&vTCD&c+5D;B**@!P|5momycd)MUn<*I%66G-r!N<=n?w08YvQ4A~AzDA}}g zSBv>{**+-;o+{f?eQmlqew7p79dgP!U&>eFn(uc^$X_QBOt#H=FUa<_a-!eLwyEdu z`!hU8pP1=?@EN%LBlw2|FU%G3bYy}*a53x|pMGR~vUYj``nwa*kJpV)4~ZpdjZcsAfJ{sUV(fxxo}5)CM@Os@$~EP><#!kz~a^YKSlQP`HJWT zR8e3PNX7JJey=C+H1curt>SqQ&t9Lu8(s9_dUU9r_E}CTegYJIHX_7#<#f9D_3A}; zUIo-+$fmx!nx!;v>BsPV)g?WA-l8{W1NAIq^v$UzQS|U-cz&pgKPRZ$!&Stp{~dJk z?H14PAO?JU1kaDKG5Ge*;P{P`@Vu{@KmQvn=i6WPZF)WnReg_E)3g5u{5KC02B^13 z)9A5ICW+?8&7^UBwiGcGIT@rX5 zE#nQST2xhjj?8QP6gm~nC@-U_jBF5%%R{7prBR9@(ST8~bk2%u?z$U37*1QK)`3mf?6@NJeBNUegN}-)`JseP6Rz})rMlEboTsiGF>aA5w z{avNKoTb6(4Z9&O=B4k|0$MQ;q+?{^?&@ zeiD?BaVt@p%V}xW7)NQeWqh=-u{eyza^9#j=3r0uuP7pwn~Ve^(Z6!iGBoBJMKsU# zC1ln`Mt?22p=b>#ON}K6ZU5S7KS!g*SPcXE*YUkwXn;WC;kcq5buJUNNH7Nondz|(?fA@MvXcvch7^PH#R z6vV77nOoTnMGPMtSn`Q0=vgz)PD5iJZv+qlO9Az7ql75=q?ev6_LBihs{_BFo^N5Q z(o1=yX~ykved%SD6q7#V*Dz%1<(v{Q&Z7h?oyjR>#v2IZ(gmDSX*@%eCA=}!xC7=Y zT{<=CrQC*s)3BkgX3)tyhK%qBf zSqUgxa!vXv&v3^%YPr@mBhR7(~AY zj`7T?_z~UZy=M+F?FC9|`YFVnr?G;Mb}ho&b2WdS9`-bqTm!p?viE47Ys%(utN#nk z>G?!C;RD8_SUH|~<#c;kX*>+2J)bQ96!pOL@B2uI*ZKc6quz^1^IYrwHJ*#pQR3~FrCZgVh#=3MCOTwR+Bu{;PsBvemuS5n<5q;Y+4MnV#)_(`kJ57)j8-vY zD*Y0Jeh5KZQ9YG5;bI+OSn(3nc{?~a@HIarC<^{h$iTb}{t8}O(#aFleP9dz5pPr) zA0i0`=krF$xNHV3D&7biA0S%=7w|@%@tq=CO1#lz`~)EzT*MpmjUHsU;9}lbYP^L7 z5M0U|Eyi^;X)|xEGv2_W3NGV~jm9BllHiIsE>$7s?|8-H9h`4J^t-w^hj^)IPbrky#LAGo4`j^oeksn&dp6`vWI~% zfh0^O0m72WN(hiZLKa8}5R;%mX@|+oBpI2^#91J50V-;-+6vVwwN|OMm0A~E+EQy< z>Z_Hym8!MWrCOJ_*4MtJE-igqU%%%$%bj!Y%%E2L{eJ)7|BEs+=eg&cXFbpJoaNqY zmGX81Ck2=1W|*-CDm!mI1h#@N5J=uGkaWQn^!HyNP)wUeoL>e$!Lr$mlezR-yw(Y3 zHEs4R1ThaVeUmOm{TCA@E-c0KgP(RE16)?nX>k{ZJ$NF6~YwK$$Zw={L@;?yiAMlB?)(gSCHSP-$55Mzmhj;!CWX! z0e@q98h+2bHvb9)nbW2Nsl|2}k26(;G-1ryYUH0o4eLupqU|`3w&oKSpUA*`&-4&D zSlbfiCa9E-HF>*baxqwr^-wvs$i=kXT2+bd{yYmsW0{SjnS<$&)rzUcuVTS`dT#%3Hx9J-|mTi~PFErmHzktny z4s5s!y}LC)DESK+J>!_#S}PVHCHqQ{lCm6Rc3BZJ`ztdpMws@ZH~x~cU+DH5@-jeg z?Oi|&Vj*^WhJ}ohS=jAw2!jt}XtT~DgR&SiFKbU0cDud;Wq9{|BEt^AWV=IoL+Jc& z`3CI#yaMdpgR$3Ih*^*I3OjcG7U}%P3etHwc7D)=oqwHl9-k2T+ zQ?>m>>CBF!cu@W&qHqu!_%2bCiAeS8axxICXgrT7hlD1N$tDnuwE-8wtm|;DXFZ!_ zAL}L3((7Ks;l)vR6Be*o9Shp(3$onP8$XBK#BLNH~*6)Bk z^R3w+&jQJG7|61{q~zwryM0yuPwe(4%uTFcBxCumZ0x*Y26nzG4Lg6Z0y}>JowD^O zbFuTSm@r$*=Ao26aG;b<6r+^xtVF*UosWL;MFsuhNz5y)N*WSVh?|GjSOp;_4;tJ4 zruYP6{vp=_g0X$N(K9X7$iC?Cj7C?CcjrU=J5#XXoc)XFKwdr)!Imr#}(1x)vu#)_1ay zr^}}yPcLB3XMHjsdD^-Fd0I*Y+yRm;u%3rr$vOf`uv#r3r|DK7w4GtS4y00OZAr)F zyVAcy7q&84S(zIrcCIY9gEFl*#9U1yoOpdK*<|37sp#zXge~32TCo5M7jXopG3!!7{{iM2$M2JgD zuu&c{Ts+LMRv9Ch^_%mMwVMfR4`NneeJ~qY+ae)r(}->DBewNu87}RXJ_7yQ z#%1NGfc89DJ`d4)NND*R8ThZ~Bib8DfO(Dtn9t%2**cE7i&Xkuq<%_PmgdL1xk#43 zjosWs#%OOIe&QQ(WUFHaVfiuW!FI8%>=YVZCd+@oMmLZleQQ1$P6YQ4h=_lhkGQX& zj~=%4`_P;1i?VXB(7}FLb^yiJ|0GylxEgJpBF^MZ%<8R=IEapL_tkctth_5U{hBO$ zu<5h7#B6QB^(E_dI7_fzXv3yg&OzMsatZD^IOD%rR;ml)9ei7sZ^RDHCAhE01z_t7 zY1qNHi94R0LvTNUwtMBQH}RTWk%I@M?vpJjuQa*hNkC!yo@_yxo8^i(VEoy>FI&)nvgHaK*tQ?Y zS*X~2xdPvCYda!aP*l_9ik|?-wja`-AqUPt?0wT%67|1QX&;EucE7BA7pl))Z2Pfn z!TE*bOt5#`PZ_cE2zf_oC#HG+3CZ>|Ib#K|pXPXWKJoHdf5meF4ub7JXvIpY^lW7L zAzAqhbU7bH@rZ1B8GcqS0`Fk^gN{Y*`JW zay*xfUSH0{0+Zgan7J){UTZQFB{bIFm7wVs!4n7^et z&O`CNAZKDlGwt%{@N*${30Yd{{V0GJWn~ut$<1?yT1sV^oS?n-Fl(5aAr7FiQD1JLFIUR+i=-^FMH;&(7I|nT_I1VDda$0I~6reyW zXsOw;5{-PWDQg#$S{)d?Z1d=~wT=jkd)s_k>UBJilBlGmK8K3DFEA0a8I($&#)}J0 z3W|HdLD^Pivb>3cehB=Yt=d$C$(BULP(#I#=D;l;Tdk=8E!SK@1YJi3T_IQe4ymlC zvaOUWh~OJ&aiLtX9E(e6aj{%cfoW_bEjs0jVoaBoLU9JM(}k$eCQ53P409GVfzn@~ zf|i+-bx@c)-PU8WY$)U;_EHihY76VBEu>Lf*g#1%QybdIE#o-)jy@`#e5o`Wdq2aZ zypO%VY#TILp4ECkQ`h@hy55I)?}Xval%;Hn>uh>0pW5p=v^3p8*xN$cvr)Z#hL$dr zN^eE=e%7R%1K8){1C_NhQF%!xy=9h~&ORC1-X-anxO9A}%o7(T}9; zqr9z@N*~AG_nQtx{l&Xqqq)m8z5uzt5m+(QfU@OgzHU; z3p!YEO{MJyljYYiN*tRI&yAD_$*~`Wc#|m;FV#6dk0awCEgh>kg*|+OmOd+2{0Xt$ zOpEWz6)#~V`z9@Z!BlZ4n(!^OXjdwp!>iw-#qTQ>-@&Wjrp4a03XI;iTd5XaNh^D9FI^Fk5H_8odvQ7cGjyN&UzR*a*fzf0*)S1VSa9p6riO=^V;4dxD0 z=IemyT(#mm=-}_9MMpu!uhHD^qQ&QmEAW7t?XW51uTcDQCDk}yA`###w2aq?1^ggO zQe;ytSZ%2bDZ1OF+y$bY52C%#WGM%CUO5wk=J!oG?_-Kw`p+4d5SWzAS!6KXZ?b%D z7TO%T><4%-AqxF5SLnsq@lR+eovQw)+<5XaU>r3~!%p(SEurm|ei=FVnMtVu;DV!- zwuelX>9hGL`Z-7PBc$XJQz7QZY1GLcGud#`X?FZKUi*c~iVS2|m@pDNN(nevSuq1m z^f6OD_IaqX;&0gNwKD1^a75AXZR@DGYvyKwOlh;E)wyqNtr*J2=2Eg%k9`h40ZXuDH98l;~>VK7icNn zaS@u^i_~PY9m~K;d_+84v4UQ(%)qB+a9CVNf^H(aUTc{rYM)i0|D*X!< zPnncoBH{+yKTMXHV6=|Epse4gLXaFG?BRcDDa}!W41K@^J!UD&+G66waurJqc{_p%&Q}<3-^Wsc!g%`w@;!~x zVRoF4NxzkrEVTFOw0Cf6i_wN=C`twNIoE8nDVB$^_pf2CSqk&%t1z_ArX|@Sqqi$o zEMLQ^3GJ_h_6O7o0eJ~9jN9WD!tW?y-4ReT56X{??NVe6~&7Z zy4JQ)vD^Uyn77S01sRmWq8bT>{R$bjby8^&8vcNyTs8;2WSZ?v#qxnB)*&WV$MwkA zW`#^<%#OWih-WJ~Sn+tpLrCB`N+C`@kEBtTl5b~`;SVt5#B;i~EsAnKRL|H7z)Cw= z>o0+?y!&BL7X5H8f=ZWwX%ywlwk{~-V4?JR5PeZYUda$buuv+4X%zVi^Komh_%Z0Q zD9vWa(E@+6r*P)1qwU(0g%zv4}zU@g7cL-Qv6sveR~o9f4VNJ1%t2Wl%`yDYO6vm&wVX zO&q!%)MZ-AphFzm4iVJU%Ak`Rx(s{hX3zs1`ZjnnQ$K?q;m|HzEIEfkPjKiyTmbTL zdO7q6N+-bS<-C0zw-aKVUIwjlg4#{L%vDk1d;dgW(gZuxBj4~f7y-`8X{1UG>d>@* zsOVKZ=<%yuD_%71AH&y5NT#Q93+VNUnq8o%yKya3=_{o@6>Y;cxEFGXUQPSGU=X-l zLu?RhlAu>ArGEo{SG|u52j8L;ZF!4QvRI>NBSh|6?=aR_go;-7pSZ}mcm`>*f*elS zfBYinjC2B6kAp_pf9xVk^R1L-W&g>GDA9*<$w>=k|EY_L`oShm-=QQb``@^zI_!~5 zxAF2@7fDrXVYHb(LkTVt ze3+kDlo}>JDky{zLCuoV5n0uHxSI6O974~&S7}YMBS+|Y0x&yw&LUOjVnNw|WEZ99 ze{-1bwo>dLjc6CWV)J3F(Ldtd5ahcj`4t z&=@7J9iGQPJzWp^$lE{^h+u_3y0A_u1e1C?C(Ptf}8F{5Qu>YVuqCd zG%jMBaS~GXN0j}ysW`5DiT0D0#>MeXAl&(@*`!JZS)1Cwq1Nw>V0kHCH0^J7{-=pt zUrqU0OQm&ZTv|jrcjbuOALgYYD$Bcbh`$1^iYl?yJ-j?7NJrv|Rn2IjRT13GoTQ|` z`#imLK(nl?!6`ZahgK=a`f2-*+_lTOw3tAa;pMdbhwoy_J)e@Bw*S~&yC_K)P!iJi z9|s6w;X+Du+Wv>`+C|9v&O9XRjS@;${SkiZjw!9^Mf5XQ3lAP(wxPJ74$tnnuf}ykaZDYl)POjHqT5WYzt+ul0v)!g0;7*$6Okj^|gR z@104iRAB*ajBxPBY(~>o%JG}odSCos**ag0OV}3WaEa)P|CTNIVqDW8bYe|H=S(Rb z_mZp5L9~x#XEos6&QDXy_G!NO7aE0+WY<#)*_io7wq6I1a*D^YQ&J?WA;FmfeiD0Wo1GC2Vgt zbH#7$q?BErO$G<}=A8m*yLF`9l+E1r%RB3ek5jbMnVxQhHbvLscK^-UHWZ|?fA_BX zL&uX1hP$&Z6xXSpU^}-zMX&AVb%@XVVYY=Fh1~xd)TtW8=v+t{zvdXNw>X_M?pnx0 zPGL3=ITsX-l6)td2b2qn0u(Sq3w2A;?29x>Tu{_P0S*?WE}&*Mi?jXO1wv5T%0weo zor$CHcore9@?mDan%85#AFevQbEQ3!bMb5i?deq6pBj5Y1CA;QByTp z$ubwSW+WCo5%G8?p{4H!6xgaMC0qrx5HJ3CrXfjrGE=XVUuNo+ay(P7lwW1)mGV@k zsFbHOlO!o8if*HUWtTC^}usJ&dHRv>4HTL@ubzn+1wY5X>raN_+li@cbLi(1q- zEpdywAP0VQQZlz3q_ytTEb7@>AoDSaRGG&tin*6HoUT4f#99j*TSJ0_Xw_NrSsd?L zDz)=1@>}1esOm2K2K~Vk!FvI7(ffF>!#S4OxcCMFsL#GRnR)pw7Ro+YO?}NR$*k)_ z3-d9(pqVX5b{=KQ zy%g=SYnZudGC02h(7snrs?=aXlfedq3^p2M&}U9Er8uS|!zIc9SJbP9tWd0=#F(#U z#Aq`3n?_89Mhrzh&me>OdKs|!j1GC7AcJOX^HK&u>%EHEf#$ldS^{XVTu7=kU_q0? z?=$o=cqKzGgI6=OsXf6dn{}R+hU0yVEb6;#X8FD^v!Se-aSNsDJv+c}qtrdlUMqS) z(@=IJr|ve5I!ev$8G51Ik)aa`#Xg}E$^#j3q1bUkx{0D~{X9i?r51hWEd{g(r;#cw z^zLP$_pA&SdJnSDJCspClf*+}r0vsT-k!mt@qwMxSKgQ*AG(5Ks~g)(f4srCHUaXY z-{astKVv%XZ;>#MyIQ8pGG3jd^!{6-d#nwG;Vs41NQAI!k3?$UgCfQ zyNbSwSbom|2X_@cidbIdfJ3{AF2V8iItLuyC1|KdXPL_~dW=$&+;>@IBmy3TYunUTCAWX>Hg5Kk6{4y`c&xCOa&l}tt+qD4j=LNc2VLl1>!GYhVj-8`r~${^6vmGMYFM%H+|NF zv#FHUW3(Sh&!Hk{EjkCwqrBWvpFc$#ALS}0<207evYsIn(gn$^U~f7brbj@SRe0Nz zDU(WR-+8oNlP0B?R)CbQo=vJOpev$#?_^@iPG_r~*WAhEl#|ZZNDl&pNGg{~DsBIv zJH;_`Tqmny-qC?OnXp!+%ZFo3SpQ_t4(;VLdmyRk5;Q@3x^32MvTS?juKJ^qWa6k! zXX~Vg?*wM+Uydac$Z9H(wEZ_=rK&rS@Ml#T=R#}*#PgkIkO-bMgerA-(h$tkd7*=p zd+;Jy1@mL7KJNWi)km7=)Fk=O5uIfItO~IoPcK$gqj(Nb;trlmiF!y&%wsJ;-0!E8 zD)XsPAJ|T@U#~JJdT2XE|236+v+V-@gA6~_!!K01FDMBF-KjFOKDfQ^nQin6U$Q#` zkQeu1kWpmuUEZ_`trv7=6kPz=>lBk;;p;-7*!!p2C zbPguklWGZ`)x&UHzi%`dpP%D=?!&Noi$58km#fSxp8}s&^;0ydMU>AgU9?_&_o;Ig z@cAFJNR_#IKC6s;I*oi*8~CKV6BC@z`?gXnJhv}f#rbRz_~r19A$;n~_sCdz!26``Q+=S?Q4)t9RBVkY@UQmY1q@MIcuy}fLHhF!7y0@IP+ zswjHsCd$$a8<~k}tIG9lpgKIO3RM>7rc=c@Z=6d2ZB&=LS#r2MjSp6)%N1#Su@ID=Nbkj3^qAg^dYhRm&L1$gWgQ@#3q z1Ie^KmBvReYWwh}WZJ$mjg8)em<-OsHEo%S#=D-@o78;jqbQo^Y@|xVQx@t|U$&C+ z8M$Ors?RBrxj~wnhBvk$qNM44YFe5ud#BOHuJfsL(lnpCWEw7wBEecukCrIhi5ZM0sWW;d@Oj^r97UHI-`PP9<1kw5A7F&Ar8|=RJCt0OX)xD>ZHQ~i zm(r2Wr7cM3-%RQGtTlhUihRSX$Ohi*0+$zI!L)x81b~yKs&dREt}+n;Y;C434r_CP z^e$+5R|%;ykG5P(1#*>X1vU3pr%JE)f5A>OPUqn=0`T$dnCff4Nm~;j6kTID`c!xI$NthFyKYWK z(X}>U*3f)nesM#Ptdtj~Z+03yezJ)pSCpY6=f>LvdCP|BvJ>(^t38MK21PFHKyQYb z`l^0$i}!EBaF_AxyE^>gZ@Bmo{2L6uW7*ShaiwUbV{G*GxGNn5%(G_t56YbzN-Wz- z4kBsRoGzaru2&aC**_Tka@$645;-*75ZfgMZ^nH~mTBTEDPiiXJPglsBo5%Q-! z&1?eo;Jjq76()jy?1*D8uLSycXq~%!v%v0eF3^bU`WKSNm7nvQITm2c^sq};BmTrD~CcMpaLRyL6t`n%**ch zWTKrno_~XWSHREtB1wz}M)J0IttWya;YfG8=0fR8Ir8{?DvDWNTpn6;ld;!&Uc!h5 z2cj!&&Kz#q7uiaIm|~DJnmn@QzXzDiLT72AWKLJE8|-8h;J*vCM6Pz>SQ2^zFET`8 zG;tc-%Jrc-kdkK`Gpv2`$bAm!eIG2c5K$(fCz1KPIH82%Vt= zTTfWNrF!d>F#Fhi;AlmO1XaOJhi9gac=;yYLc}~1df^|h(q=bR`op?Z5pC=Lh#QSN zy|j`U4ZE1tb+Cf`Qp`7nM(~o={3%64HGiq&d7@3K zZKq%mZNdu!Nb}Uuht*0=sIPrJ0(D+S@<@j;$ zdkBU;t{r|{tW2pq0x(E(V7smp$)QF_ergxB!FFj4fO2W$7xc}b_E*UP4sl;c3D5Yd zhC%Y&m{TiRU8>8o#H9Vqnn&&MF2Y9Nq4QEV4t}sRXBx){qz`giETx z{zsKXgEKAeh>J^&j@;G7285TclrVu`LGc0ev~FTEV-+DTI(>0<^&b^Tc7sRE>$~ZY zJWoEq+)zXOh7G$vH$Zp%lq%y;-M=tfsZ0!QI`o&Q3}%OLn>=E%wmp_{`{VU}4@VT8 zK_ovd27exL!7*uL8|S=dfC6=7($cR@oL=TQN%)}1btu7LpxY~wmp{6=MR{nDIOkc0 zmcB;|Q4l*-bEIlMMGw?niH?&FXw@)sLaqKs7>16xV{rdBCahZ7IieuJKPF8QnjA^m zrBSi^P6u#yiK)&~M9@1q>Foqy>Eo@&LKE{`fh0#EKq#a?eEerPKisr&F}lR-q9vK~ zk#NozgY)UjIx8bRxB=zszgrfqJKVVvTh+N_>f6Qgk-)iD%>Ok9xoTAr)GnEiu8_KG zDhCA9PAt4Kf^`^BU>J#Rr&BvXa2QsWscM&u(ox%?BredE9oX=7r2aWrL(pWUHY?QO zimWf`RWU7zlv~aSg~h@?6;bfCd>3(cp~C;9x@FXB^A^ObdDMCelQ@1AoIT6T3_qKC zfCOIJqI&r)K65v(NIppR5Dz|8Ys0?x&kfr)OyZ)vLa4bhVhkNE7Lh3bp(Xk)S-E-j z*Rs04fPM#ch^9&^r2fo&@iU(m?e6v0!vMmC^TS^ef|qY@l{ZYJYz6Aoa+ z`{L~CviN==!1xf28t!1{Hmn~!fT~hLzOE1tqCoXqAd!h!`2cgwYheMrZ=>ppbXIIf zk?9Thvl7)BoElibf;K92BaNoB7$zz6R7Has+s(H!!Cy&>R_6;B){AO2nK{-5u?YP= z6>EPk-J8pGCT+A_Di>|bGS$_~#sst~SDC75e8-rqXbzWhCMT_XEw~)wt*=zasns)) zCQr46x%=|CPG?=ItE49hHJQNN%a1I$0!k{EDwif_VuO3!D!m%5bt;aw3o6~Ld-*l( zRPCB01?EScmNcqfcq&@>7ZFx2RNhK)xB$9}b()RYXPjk~{0Z1?NCHjSHB+`jS}$DI zsx|xoot$%x#>=xxlHhusNrSSn`XLK0mqz|Bg-Hf=#IZzXC5X8k6dfsoTE>0tSBJ$_ z6fRhPe6{1H^2Y4S#af)yiWm3he5pykn78axT+>OCXBA)w9K|L)sl`a@9AjOtG!0H; z<}M{+)j@h$#o(zN65OPr#nkPW8{krVO{rwy?;$D`s&j zchf$U`3q|U{slUTEoZIDc?UK5^MnohYVDd-wPx2HZOO@sE{Pn2nj^8;NfknWP0{`j z;2n>(7}rS`L3Lp#!7qM9StVs@EDK4CUPFAi2`?OB=k4%#2s5`#P#UTAQX~cY2t{n- z2NG5s^tt(7*ai6o*veqtz1xCX<*XW`M5TF7rlt}Ti1l@k(a2kQPMmv)A;DI^CSb>a~kSYvV@#DrjVnCI3gObJa42WAxaJKUS00@JUJvw8w5u)(iPPim2oh zL7~{zpW#V!na<5v-gMe_0vghd?MJp$O$E}E+eJ9lYL*+J*5Kl>+7#eQ zWoIX<%W>uUj}4w}rjj|DH7(WZu-RvsBwUuia;#m-4=2yo8W(Gn+@iW05hA>4POH}{ zQlH9&D9?1)@R>YrreJc;bmuZ8m|8;x}u6>F_ucJ!~D!}^C444uVtK2zZQ z-?+V*QF;dT$wNI6FVU?8{zmah67zn@_Z)K#u4N1bo`QY0kl8w_Qj;2WJIR+GiuNI0 zw{}SBkBP$*oU*!7`$V{cHl<6q%1b4;T=ksIn1p98dEyvOSC+6H!3*mgiHBPCWwqc= zUT0|yLgEgt=R=L-`MSgV@gT#=GkRU?o;r-?q!>@G2=B6YZnskQ@7ZoGN$^Jbq-a$S z3Is-tJFL!Y8Hn}0*Zl87RWOtIf_Q)JRD<2|PUlBd#)1k`Ix@zTCz-T0J9G_dj~-O6 zfruAG#9gu(P-*hKstrD_2-nx((_~Da*#x@*7C=?`oet9RQ+eOY+nus^&M2j(oNM6t=ji-m! zHx@)2gXTc^$F1sAkV$6ZuD`(R+MJNJQzL(wE)%#BlhXx{3Cl@+3i)I`W<+EwlSRkT z>V7S9h+g{(5gsWfuW%_3=C~Szikh_@SApJnV!P}Gm+YIJ>bV zC#GuE9T`ov_~Qtxcg~G#CO$l9$m>`F-c`zV`S>BDy(V z=AKq9KvO4t6gS7T5}|CC$nVQlW))AfM3QXs!$D%(!b#%jN zENDM|(hIjmwW%r|=1mOzq9WnK`ys;h7b2pv)>;)&yW%KXHG=8HzHG4~tSZA7K3^0} z15<_@-j46^j4?9$U(vkm!zxGU6_?L}t6P%qRyxq@wTg$PS5r?~h}#Sio3r@C3>V@4 zIH?!tl5&0RyhQZ{NtkQO6Bk{h;jMGtTo9Ql+qCboh!MemOw7t`qHUCHiJqm`23y2~ z1uIi;hHCI#-i8Loy5a?@)KpQskdEMfoKNCv;ylAms`(8`1t%=J1= zgU-mxLJSO*>TpbHvD7BR`Xa_L$pglFcqefDj3_EpS7trvC0f?qn(phs;z0V!aPRI^J7`{;hvXCYhD*8147yo+_0oTIqGqS-_8GU#vB zpV8vsf~j8?=Ilj%d`;!62lJW!wK*^DZehf(O&DJqZY7z}s<$X9vd~ef#X;UM{(dNY zypX~+H*3QFmqhRF2z5Cw*ana~*5Xv>@T?-dlwDfLJECnGlTkOG&>P^$^VV!RQ%=?D zX{(D$wCstdJXo2RXS!wWD2Uc#b(z;1i1|WJVkqqEtaPen?U9-A0Z{rqlp`ArTq zhJnrsh$$%jV_-?vVrr*jf%ta(%Q0yyYk}6ii{OjCl=QVk$L2U_r<1KyMldXYZw>D| zR+}sJ{75rU%zE{{)BO^@f^yHoq71vzT_90c8AkV(I)Gk3nm1&Z zWSJ&xwnE(&)>6$XbkFE~UgU_-%eB*4{*}A5mNF4y&>WW;_sCi)-acFxby`p#&6vBh z7hU&W?3to2CHB&$Y|$SFjCjtB@WN!fpQA)#WDoMPS8lhLAYAYWT3=SrAc z*gY;|^FhkDsrO@FPRd$qR$0v?RuI!^wq|D5NaPF3yhA~$es^A2nETU;qHdynUbQ$l z`D<3G?`^{@VaU3<9X|rXY=bOg%q*eZ+6^7A1}ITg^g(8^(U*h&Rc$LayZ+PBKmO%J zV8~ZvAF%-<@~LgWX=@+}dIyeu+gre1Azkc}VR0zn?z)8Z&ZD39nRs|z?t}V>eM7zw z$TXIy|F{+^0`%gz_(rHl>9A}3MmZT5-RpU!vTTZhL3tiN=_4Gp`g48~(rj+|#v$Xu zf91?_Rn9ff%nx*GGecH|@2uJ+E_yuQD?Bl+PAY5}RKe0*@CoA-d&6^gl0{u4_LHu? z383-Zk*;+!h!P%m!z`6KNx#9BR?&0rl5t-ZSDwm_nmUP~=1nI5!TKR$LGA9B&^@OW zlW!N{kI6bs%Y+X;hE+O-K*Sd7MO_B0lfDNX-(3O_yLmCC2P+57wzwhI~q+k!!y?$PgOTN;Y4+Ks;%kI(x@hv)UuB*NZ1qOEJ? z7P9s0+A1ZXeK}Po%c@Enp}Cko?-wP_%eCiL$||Y;1~+QL>X;0jq7155Nf#^yk!}`B zLmE&>2_|bT7}tFLXyzhFPLye(6+;j;*cxN9F3962qTkERoG+&3j^I}xZO5~m>M@|y z$*R(o#y#p84rnNr{P}~9N_KSkZd&R(n+mmmb#QE8z%`{!&BF8$t)82<*r}rPPTaWV zrtZz`h<}f=cJnhEy{-NgR@~7DtHIxMA3a?$`-8 zyO~$(lM^L%>V>OWoy6*NeutVFbbiL~rWCkM`2iDaEky2eo#R02L}b=JJ1)X#qs(I? z(sG1BvBGR|ZKM?Px#$M1WIIyqbAf6*CRqkf=b15W{{>*ai(Or#e&!cqfnSbr6D>?+ zYD&v;AxC%WmrcR@d<;4hXpNo7(PBEmnhzFNnZpCffmX!pcstcwggmcRnaWh@ZGU@G z=V1c#WDaC1<&;gO)vJ%1{kwjC{^TWYT-Rhb!xI;Q>{r`c0iS0h@r{T$xe&5D-(!Y& zb?F%KO~RnUW1m3#=T~NT%V&_1_A$)pp)>4zk(kxGw;}5h0n(dq?G)L4^BVD8`x&`) zt4Z&Vf#aIw&hAUUT@}s)c4Cth#XY3$xRTjn~J z9mqM~WML~4A6ON>6Vj*Vh+xXk*~o(jk5Cxj*~kUr816(&hobIsn*m}(NlIqaiej;l z5nRZ25Ht1yPiqUHv8KP-f8OXg!KQ!c^TDobuBAIc1kddO1&q(LyKWTwk6x98sDMDj z$?rI286?QuPM7b61%G`OU>_({J!S+1o417cE*@>qAL8GNbgN`IFK!hS(D`c5NhI+T zmdMNj0w=e!>-_KfZ1IS0;Dzy_eT33dGM8~JQxAkZXa%ZkFx>8PwIg_cLo9bZLi^U2 zB06Wl6C0{J8oOFbdz-h2qh9-9c0_x+hzBCc5{wpbW8^SvzZu!aheO&0%_eYyrlLm( znEjD13n=fX;U7gZL}&!!;=Kw(n?VL&CqG=>dQj(Xq5r-07mzjK$G21DbD_38Dav5V zxc$?HfE3MV*u%ez?V!XE6TGrR4W$t7J3V`VOi>hfk-j!E?N9pbRgAF>|Hp!(k0{e? z4PpNm%!3T=Hvdv7)cv_n^j3!KAg+%mec{{6O*-iV2Nzx@&?j(YW&}>}4$Ak+$X1-d z?IB!BAmnN{kVY8o(2)^im;l`Stymi#gen`4Cr7ixg%|TEwUJVEimBgR^6D$Vn*%xf+POe>FY zTia>@ue)Qe*lbouc5MrB)p+#CTV0JmT039ALPR@;eUE$1sJb}sx7leH+!@z98JQXX zK5}~Sm^f=-h*r(Uj(rmd-a!$hg2p>vjFkm^rJI*DNUHKFvXNeiw@=8&FDuK73b=Zs5YA-RrjV@`Ahrm4`RDgG4>WQEMkz%83@~Nwibu(5t zN#5}}B1#pACm5Jb!UH1~S&RM#y`QoNBiV)O4bIa_Xk=we^bBJ7=Ix)Q`h<>*&m|ow z2&)hEOx}@!lYT`xnK^_&{i_H%`z^Vv%e}%cqp?@Vw2mNRmjL;>vOFM+y}XW^b#}$5 zj)3~hAykgiZ}Sp(8m9m)WV+KKUN57`*xFBeua&q<6clY#lxwFMbEeXYFvRdpzGDZz zmD2RRfpmj3#+B2FsArL;>6Bk^ z3B)=2c3IxAs=M}uKqb8NYUn~Y^5di_?R-!`ChBZPv}=KJMMi2#9FuiOn%co*cqsB( za55`75T@z7o3&vwSgU*jzrM|~tDAdMojqo@wBZ{VCe0n50mTDyz0;DS z1m^Gfx8NT$5-{4|SXptRy^a57pQ1RzHZL8=)#l8>T<81z5FE?H<4-^CLF$ud%#6uk z4p><}LX4m&=pit~%HeWE{gU5R`8EcLbwt!0yAtWspd_P7F~UxdU|I^56#Lq1{Op7! z>X`)wKFCU7+!F@2N0>tZ%vs*WeTT%)ozR?-ksWG|_VXIr_{=|ewD*7&%BPMa8&mXj z5g7T2g%nXY?_aa*k8BMH7v-|6S{JxCDSe&K((`o%QABCIcDj>AwYuQO;NZgLXsvP< z@Kux>$tMZBNXCOF4r59pN*+g%K={W=)c&rZSH$>%vn)oDm}+%)@yhrWNm{73B81X+ z_ew(^c;{==Q%2Walx35hAh|$s(up{mKNN!TBgRHh+(pgtme=-yMD!%-h*XajQiFN{ zMuP3YF^g21nAmof>J;)%qsYm!j#1k5@!&mHIl3){Fn`=RN_^z_`A;LkdUGol zs;vaZ0j6N6g+^8_t2h)tWGY{=YcM2>X}qZT96~+F5WA0%zQ9X85wIinl_lYo%`06% zeGx~2RNgSh6(xBF(vB1!KqJg3kqvK$dG8kzNunG%i5P7m-rPrRT!JUDRd7HcexZAr z&E(ot?PFZaqUf`utp;vY3#J~U$0qMCB2Au==t)Q*|Lz`14JvGo)*pVF`vhL}sJ0bJ z%1T8$QHv-Pj|@z((S;&eMrJK>>y-0!J`WF0f=AT;owT73F>4gw6@68OMZa*FrPXafJ;2Y-@{NBv zTv*uL&Kk@mb43XQhe;$x2`j&lai_u&?cB51 z?610j9~8Sm_dVgRKRFf5<$WPA!tcalB2Ip)keRZ!velCqsT*Hm={2KU5oRel9-_uX zw7l?x)quEe7}#-1;Jw<#jb$VfYuSK_G9fnbZ}w)}@~a-noH5q&_BR97k&_+V-dz|L zTU3TKw`+Ju8uku3yd!&ep6ydTcT|ekvd>k~GDYc|1++oTvXzR3tm!D>7JJ!kQJCiz zpWzlJH_!;|rRg{1ip_k@cw)SxLtU1E>r)wDn;Rzr~ zIpED7QMKq{f=d%bU62`P>gWsRL=S^YOptNAb0g#^NiVne8*I9Ag3n{%=_Cpp@am zmEJf%eAqqJ;%3?M@Mu32g`eOe%ns{fI*{I@Ug9q3r2u)FspLCLDei)1 zQKBvhK0u8RM_3|}8E;`c+mBc;;S$m04}qndvTWc*X+hih77$aHKRhzT;=4XuI=6C4Rn=F|&ehq>p840%#nSqkzK*34u~ zWR*>#W>KUuo`Z|klGr<7h-H>=YuEbc*5u( znQ`M}HQ`j`nkyw}OL&i$M~9B?wm>wKVFDFh zmWFQ9ajAbJM6LYGgnr9NpmcmstH;QPG|$pTr}pST2=mfx#u$dsV{)JvisR~p<~_Ef ze|@GoN}Kyuvw4l$OrPoM5h`y;<5#w+xFgVK0I4I@V&#%tMA6?wER~*i9JGLmHrE@u z5EhO3;1;T;P$jsY5x2I#mA6hxrvl;hkveKG1RP!}SvAq|7?x7|)9_su{}IzL+-BOn zJ&>wRu%2}XX<#U%uQ*TXnJYsYX};of>QV6n5_CG^?<+DfDt*T4x-vEL3=#V?X#Dnp zQ*bjE%jSpV9G33PsQo;~8!9F05b>Cy7-u5{Msq=O_F9Manb~bVGSzByjE#&ha9EV! z7*Rdh5!A3^{rjgIIPBRZr_p`;r?6(~v>?3DZ<(a_eLBK^?r@FG)bea>Wj1Cx`Zh~) z%oCnHcDure6B*=K(o}GDX58U0GH%Kv)ORRXeQjCf5;(N}F+vIuj?k(2nx-N73Dml| z-?1R>z~l2IHE|6im)$8{88n!ezahDzVvTm9;3nom8>8R>8LNl+07k2i*FsY7yD%?(@qyL^8`Mx2~AQ z@$0z8Wzk5w%<%;&3SLMi72o`-Z$4;L%7PlUJQgNa)kULn$Bc@Nd8T!nB@V{bSC);8 z=n^EcmM3Vn+B0#I9pM~R6OoUUiHWR(wR*3QLKU`RA^6=6Y3l~j39k>oe5+1^I71!6 ztmRNBQ18Tr1|K$j+S!)s&y*-r8pY+r5{~C-SHy|}J4|6F9#>n+f<<09$i&7JL;LKJ zO0A+CgLproEzN0j0IoX@wKq=Wii*T?u0?q|Aic6S$D#+{op!*fy5EjF0T6`-_mGT+ z+nqsa`5DgV;47p*?&T%`;na=i+=7B|pb3Vv{~UUDa3 zrA|-VpcWnNN%;f3u84vx5Y2qAJu_d9DXSpskxgxWPyu3JgquH_D&>=ms=?loG%4aS zt^-;fJPF~Z2(BCnm3Y%NcK{~71zEC_Q0d=EVKy&U@<0K;Yzujh)?dmjnjRl7KZD%L z!U$t8Da*MD0Lt-ME*z#S=LL$?+Gaw+9{sNkL7uu{M1;yvWH@VRuk=;s*it@1R4im&hxY>Oar2d5z3W*0#t8pYLC7^CsiI%qAX=L28{VKq@sK_kF{Ak_x^60w!h7G1g>&^j7^ojaKu7r8x3H~TOFJ=s5a;#r?c6Z)l zV%-()-P2J@IzLtpl~x@SLgmCK?BaXJ;opLNGLf;q< zR5Ws&x@x15Os3NXc+d8a#rNI@$eHaoz;@?F@wUX+yP;{DdedyP&}o2@VZKfhJT`kB znc=hI1NhsQCi1pX0;TPcio}~I7AphdBH-}}C2rYwZz1HVLrAtHKQ>$9s$&$s>xpGE zVIF|^-k{yT#np}O)FRTn~i4Y%2iGc|j@ak~yhEd0A zj~JR#0SoA-e1$~m%SGn93~f9@uLu!>c*S@md%QTjf5UtG{1Nb*%I3Oppqi1ne4E0a<68ElLfnHyM~oK%yhy~Qs3lUZ=soEG$$J^zM%SA8dfg#C4(}|bm~Na z63ld>t?X{woTOD@AQqkSnk7h{MpLOEy8}IEruNKf<)PN9$)AoTtk3@=2T54Mo06_m zgV~y@;G}M6|ww#z*vldlrWyi zA$hDlKk?pEz_+G%TD*le`gaszo>4FtJ8s;-eDF4&)q)xDH=Y|p>$1}QSA9?setdNN z@Y`R<_aE6A(iVOX?u}(>d}cb&14K~dEq<|RZ9hN8Kk4{=PQ_VO`-4(}2@N&WDra8b z!zjI~{gJC2d?m(pwekQmVbXDpI)3{oWq(w#|v9P{`ers95KRcZx6~YSm?TK1lwZKUngl@!pGra<|!A z+ayH{KBMn63$MTYrnIASr#f8`K%Jp1rq?6wEAyso5oc7_(wAJ=GCUQ ztz7vYyBx5r@`W#MNuehgMn_l@ih)R^b(dC zloxeJ{1YbnI^4I2BILm|-Ggyh+r4C>3iH^e2LGm>?h_e}_rOYf_Lhn9Du$!=2D=uw z?Btk%ZYM&mCmwH=d1U5>bQ?M`2?zyX8X1YaMQ5F{L^_G z7Sw-p*UCV@d*>qTo|AP}d_9H+sj|CeSNVr&ItDxp9DD#xx}8h99m|H#N$vStRhkH+ z->-S{;M-{s{_+UViCDm4JfUTxqQgN2`>)ZRp?@Q}a|vB;#^du*|Zv)7p(m@x!ElKc9p|$5puvKnBw`bUO}>{xJ^CiqlF4fN#*g#@v_3 zC&^6{myTQ^Jl7^4jZRKVzx`>{dRSz^0nE_v9Z1)sJijvDrt`|m11LamjBcmw#}~G( zabR86(UHpYzV_TLIJXi5zTlU*uEE5~sSyzKY3A0ZI?n~K^Wm<^mwH}41vECDK24Mm zz9!Dfh)WI;mZtsqZZ<^U-{3*xP~fbH?lmB2aodMD8L{Xq2kT+pC1bN&Zd{NV7xWyd z`;ps5Pi@T~Vp+U4dq87-!3Y06=WUG}U^ zclL#w*6-D{F>s z zqpsgprgxdO3UJ5-YW;n8bZ=cTJRoK0-~}5d;QYKvuy=kh{#lr-jN>z4&&?JU7dVa? z_nJdqVWLLybbsA5S(dm1fK)`A>CvVlAjEgtuIewF?vxiM~a-3btEzyvJ&JbN%dVh<&6^(k`8~! z7Dy^5|JH0SVi}UoqY}IkZw>k0YGc4lj|q5?6Rb}&Bh3?`q4ZDUc)2{Ho4TYWx=?U7 z688W|&;5MFxSp1CW&yOaRN2+gkQAdmM&^tYSQCV1?Z)zO;FDIF{Q9Y#bwGy|&i@cQ z^z#J?JC(E8pF6DE!gTZWDuPSHpnU;OXUQm#u|mfpbb)rks+>nWbpelD9`lToiA_8e z|D1D)n}FO+%A0^NGbUjuR7(-w4J2i(;gU18lBhwSO9!*6e5$62;fS6LgM;3@~oO)LM_heoEHxUZ;d?@`KGCw#VoCdNbuZ{HRw5 zaAJ7oG|RbIXE)gQy#&T8Ud$2 zXP!%uuz9^D=RQzY%VI;LOrrcMN$c!N0snSR?N8<0ZG3-s#3zX;(hn9vs1au>dX*wF z68h6D!V3MqH1Qbs#Gp<(BQcVIl`Pp%J1LN#0FP;b_zQ((Oe&oB4czK?77M0wOE22p z5RL0))FbAFhO$%2mYOt)_rYz9nDzN1Y!Wxww6FZl3{;wpt00zZV!z}4eU=z~EHXb; z5t|1uU!ClfN1UW@x80~0S$w*@`&uffOV2S)!4f*t#lMzzI&AmgbRCQH6lZ`3F_VP| z)U4e6I<~Us#1m_rMb+D(YLiCTNA{^8IZM5LjGW&b%icpNNP+#OE^Mf*`Wzl*2LR z?2%lF@Yro{S*G5S??0yks8XL|vVK2bMmTxq3)bMFziZ#OjSMsk8I{a>t|r7tN`^7p z=YZ9#l}!nlL+U>wl1q07EtoU%SUygW?1wK@}{S33lgRpeIn4!B5kXHm7+y z*za9(Byq5Fp+xQo5R`74zH6fmRl0EExgw?>f3AV+FeqSvI#(z+DQBzsoAA=BfH4-1R%cZ=8+?*Y1mCxvbP1$UE#L|^A~{X~M`9CPqOcoz}6nLVJ5^SimGvIz)$aT0j%uOTV= zYLRhTNB?^4R$SkfJa2DjJpF@?Y796wZvNZ>G`Q7l>u)a+ODo1EYomG~dig>GhO;WPuy>K$3K4--}|oj4==BbD`au&`7-+0xic*3 zBYXjQiAcEm_myfea{lcnj-m{}ezor!qQ0*OvP%f#=|cjqhir--U;$6SRnV;2_i%O< zz~>tNv2(C4!q+YDccgbXmj=M_ZP|Ge0tlSX4P{+>nh&`dUU|KSXWWUO=brkQt$SV{ z*=-51h%_+Q0pAUmNWLcShpL{sfJTp|BHOc{X9B}hUAG>VO;Dv;IDU_9q{_`<7GKIP zz)iw{)kE+5Ne`Ty2g~__?e6=th4+YJ^JRyOuQ?CW^A?d;WB#7EvP;?PD&`dHt69s0 zYr4^CO*>ieudbB$_k~g{ARsg8iLxZnvW)r~_Ixe5M_TQ^QAG*mIw>iy?n~+SYioBx zOztKfkh?U{0W>YerrYtf7sl87libguBp>&5h4oQ{y^`EhR(x=rGOu=GE`i|hAVWSK zjP=2&XzUP#<5%0LIKZ<0bvkDDmdYhSM0I8gv7~u|^!CM9A@GdAQSo0faNzUYkB_oB9%)KFQv> zoH($0l7`&5HHxry){tn$Gr0?noLw^&9pe7@sQU3Scs$dPHW~n3bX=eXnt&emyy%aB zT}U0BXJlv9<{$PeprC633e~s2#uai`V}Lg4{sQ>#2fR$AmJd$m;Fo1ltEe12r%>l# zPBhcF>Av(jB3&2482$n4_%Txk?m(d)V6E{-w%Pku-%eQdXD^+u@F;E_k|mjvhZNm| zMa3r+h5*lC+{s@*duNP5L6w(_!kOJzw!pFK)dJJr|^Nm%b}cB}kMVu>EKfQM-D|8J26sKg;c*)L>R# zQD6VIi`mmonX`{MOQ+WCH$iOXwhF^}IZGV(yasUvd?s5xrY=r!7Rdk8r+Urm6-N)8 zMFqfv-$#kH{uH>NU9U6n9Z%Z5eP;FJ#_*cJJRK+8546YNdRAC-vC z?$9Q3So3#E$_pa+0H)MyL0?wBHo&$w}mDzwwba$zwWLU|^G1?U7u|C|sc9VjVw z2j8OYNrMBDgKv@by!0ZfXZi;WGxiL2o%n(?*GjBHwYH*|;_l!>bgBhL`~2a8*r4di zf_g>(-=gmsylK%2w1fu=gXc2!L_oFvLj4Kd`W)HD2A)gXLkrc)YnYC;GYR4Q4-EIX z(FgiD5Nw;aXV7Z~9DIwi2NeP62JxN%=77Bu0o|$@NQ%B=1NE#5&YTO*N7G{o2i%9~ zR0+&O+aZL09*5}s83-Wn5rBG@1!oq1y-oqU#@d+KPr}KO9Vi zzGofknGL*KC6E+%XD=}b6QWZ!5Wv`jiwNX_^85oPLf4Z6@ty*-aYyoaS z+j9r)*#-6w9=Hgx!Q3-QN%9AxQ$7$7(5no%>!!HOqm^Io4CtLkA=cEJ{(X=edOj?s z2>sP@bp29Sz2?9(>E#}$|HAbJyBvp`uKShikTk-jrWDa2@y$})t660#?DnrpF3e$c zm@|2b1I}1u{(HU(bJ#6|_-fGep{Ezg9_|<-IzYvp!oNT-;yKKj5+oQ02@Im1!)~ny z9Db*DpaE2_#NNfdAVI2+NW*V=|EpF(AOPnE@z8jnZeX19e{nR(91SF41(jO|xez7= z{mB7o3}c?>_YTKFem)^UIz#by@t5)cb>e;Kl}Jd+6IyPmPAl@AzV) zBzCA^^*T@^y#0+0n~cEi?0omO*y>(ItEpeYf?eNZY9CVjAz^8-Kg`SU8ifEx9R7pAm*Ax9ANv12e^N&6=04tptL zIs1DBz7x{Z^qM!K1?{XTD9?l12TY{IMjC%tG|$#E8(N7=|1zMa$a*?ov-?yDg_vZ#1b6T-x*cHNT*K`{@0{Lz^AJQ>mzc((8!heCIsX zZDzVKtIvlaIE^9Jtn!-bUyXw?QbqSZQJT(V68sLw&1Q9f2f?*>=Xng3U@X;p*wa%W zZDVd)GH|=|@m~N0G7*-E<&DzG#kby`KH5{er^{VtG1uO^zyfz%j=5GZ(wJ)$pzK}7 zna^${URnRoOj2k|ja!Ka!iHB}@5`zRVVc(>LkQE%UzX^?(iXVSkotLu*C(y!r<4|r zIP=}u#CbjZ1$OhwJ!Q?ogOl!*5V~Fc*o71Nh8q z#RY~AjQ5S|dmQbavCs z;v8EGT}(@BNxS~ZbYG44FON3pb#nsEgOBj5F9jZal}g9LkB3P9_+=g)JihES_WAMO z-M`#enrznBN;K8N8`7rLfVt$j7~8RZ6*z#=ELz5h(wOLR!>m+U2q1zo2uB78aGJ<) z(;M@rjk9Da@6 zgc2PKm;IrOjN1DmT@<}y--U8dad&ZD<+rIp`^-A@{g6*i=Xki{q*N~05VBk5^B3~p zTE~1Fr${|fX=a0`-~2;ZnEZFsRyp;@q2sU2L*_a6k*<~#h`x(@9?t}Xi%lI9M9X(Bf`%(EynFn`z&Y?j!EhVo*jM(kACz9!qX;g4&;S!LeApm zawG1iaD$uOmS__;=+p(+pyd*Fxqv0P<1otw%+B*x$OW0p(B)l5jxP77NS9wZlGfvD z7PtCY5IEz$rL6aei?2o8*T{M&G+C};yCwuCl+H|-80DdJz9=@ zAG&HCq`qc%VR_^I*ST~0KZ*WkS7(IpPyb^?NWO@7gVq=I%hcXy#Qz$y0o%JE>|&J( z!26iCa}Vry;#SCIi;%OqRNsYqTL-W2fxIMMgWj*}j8I)8`RNmLbA;CCRw=hw6K=op z?VFMg=jT?rU*bE-jk!U>%XKunWgT-Ub>Ox{x8P;)LyNC}0)1%Csm%3aw{bwzqT{1i zr9Xvs%v+LwcW25Ix7Q>uw0@Xljck~N<2dCy^Ks!j*(^R^RQ4P3E;*JS%o+9Lc40#_ zZtH&l{DOAe+RWk)+cL0u_A(H#Wngn@GEiHj4AlKU%RrNqf#lWvGO&ogEBsu%THO3* z%gqFM7whi8lV6$8U9I-IG7n^Fvl!C}ng{f;>AqSl-OZBjW<@?F&SO&+w+%E#+qO-d z!Tt#Q*2(m9y0poQXl-<@Rh%vUSNiU8$3{y3JHtM%686!00KS(vQ@n3JgfY}f-~J)# z+uza2{cnak!CExG)E*M;WA+&Ub>dxzFGMz5C)-8mjPHWh16bPvdmQAeRr3ozih*Z8 z5I&h!BWM@ZXH@j*nLmp@UdSMP(r_hwPP}ib629qJg?PVIDSTAFN4#&U6uxS7j(EQW z-^W+OdQG=@-$Zrng@!KPFA*NdIGv+tPYgqb*4yX0s1alCE}GL?4RdO@Y3}k!hYI7# z1LG-=tX5&F^1xJ;N7_`FnmjNy<&j@kVZ3=@yycN=RhWi6Fb(AquL{$c2d1$+QmMlD z^T7DaBep+qr+PA7x!#YJ<*s*&I_A(#xnmA_NY5OYJMzHX z;fX9%VYcLf+2RrB9~&l|2PW)^xaIt&{Vt4|+b3x!$R5x zJ6F^BcKA{U&C$a>5A%7%oJ{>CirdN%8M_l;$xlBaX=Z`FO7ab=pQPD{uJmBDD($PqrVmO_m)Ec3h3`s=}->=Z$UmAVuigmE56#6xwe?XyspfviYLEqlneprGJ!Q*zbw1@t>+4~T- zJ$tM+)1G;1bM4tcDf4+f=JQ!)KA$aZJ_j+M+e@Lp67-KL^pBNBe<$eQSPK2Mp#Qu= z|M}ABZvg$JrO>|-^uMpr|9)xomxKOnd^UYd_-xk|Z)qOUmr{--?u z{#!Z@Z*{YX9e3}M@wVqE*0+xZYiRBE8No!gr%WV6)4Boy?yload(|4k+MdxMKAC+~l zh?Dd*;Cw#Fg2!n*gN4UKJkEnZW!=RhhbeybJs!UmatU4%o23lD`7oD5-oFuZ=@a*W zuC@67JtIi6n?PUIXgrzliS_PiWD7LLf|KB3I+&-ij!kcOC40bM$BrKQ`=nqYo;8n= zH1ERv%NPv#$*$d=x|w*G4Ne!u&c8r>%x%Oq^rJo#bf+Qvgk>Lo-=Xv|Z2up9c>Er3 zE@MxD?o&pvsPRtoJ%RrG`wVNGK>t7k?2&>`C%QBA>mhh=arm_cz-^W~PBMO%EJGF( zC>NS9l3gCReHXemD0Og9tPAPj`mBWH}^nzlki&+0;x>0~{E_Yk==*A2@%myddjV};i zS~vF3pc`9f(2awjdr<1eO#DsrJ#kR#2EHd`T>dXU5_fb3Wf|}RkD@E8OmCHC$Wa32 zLgTb$`q+8M^nNMR`^9{cOy37tr+bD}-;3hTZ5?~nEQh?6^E(E<--P8|giGET0VbyA zsibpD?E7Zy7fe=yx^DWYZ-s*QRAa_K7~Mn$pkB48POOsZc7?3*8o z_!8YuP<*MQ?y+(5|MZ6gR}%P6?c^KU?eGh)a6d&CwBCWf0Pkqo*xYn3N>dll5gFC| zO_U=tN;x9GL+dvUd}ki`O&^JTDT?u0J6U8Mz2Oh8%$kqvco@Hv-&y#4#d8cK4qf`A zVFicoDeS{@SebY5w8ldD=1Idmnc%~ocfto75t&c?EB>w8H{1WV{q=z>unRk7AIwED zYfN)Meee0mxzne990%lz$`mKO?t-u_!f%%LWk7p1)#n;X4G4da?j8Ak<}w)%4`6>> zqXj+iQMo@pToI#OD;`UREwtOnCR&GC8>=6v$3WnTsN=Ym}0AYmaws~sI#x7YWzJ*?uD(RoQ+0WzS^OirEQ5iwx#Yvo;UNQAN$EX zW4{Wy;rc@3g>I^PFs&^)ENsbS!U|=}+~bU;+kE5$0UyT=`#@!~F~53CoZVA>og=U< zv4VM}VHW!sJgR4CJ4a~!2PDJf2g&@>b!4Zsk<>b2rxNhNCxFN55_uThCT(fxhCbEt zI{b9rhPt1A7J@g|HIXYTayDpx-?$+nb6WYh$L#zZ!rLW$(64Jek1)wR5~oV1ssJ6g zjK@g7jkz4$eErzG*mk*o+q&iYjXCSLoz_qCuu{Y?BAjMT9zMLee3%kmYk*xMergzh zW1WMx-GP6=$DPC5u*2KlP%dv@Rd}0c&rhS^AwB*oIsPh)e~YX4dVV+K>iq*v-2FV~ zlewRDBKBG361ko?i{K@fvf9&tg@}Y6&8NLMi-{H9nDCc|0dVd87%{173sYtb|3L?P!@X-x>Gqx#PAjW86INhw_~9 z_ORrsELs`svb2DF)QI_!KC@V>We#56f0=`m&M<-NSu8+xrnS=Dq1htxl(Z_xzPU&z z#X3i5&oWz}b2vkw96zJGU_UfrKZfT!_T!G+vA#%S{Q_`LjWJ)|r!A za`FGxW#*X5m?hw9Iosryi3H!oYq4!~)&l%mc zN9H;3b+49ou3E8kHl9(DZ)W%VGdn-Rt=NcaX}78!yLG-Q({9}_^Mc-;lWVuO%))N% z@vzWF#cmy`V4*6TCr=hnBtvzaH-0`R`_PdEo0iAA0{c?6l;di}?$q(NG~VT(2X9@T z{i!bh{-lm=zQ_lL-^*ocNR_G1d$~*vY5r!CsUec7f4C%mhhVnb@+8kQy36qsq&(UA zZvLB`e7CVKoNLbE%yN+hYi;?#dQV<7$WI@2z1@`z!@e3j!mCN%c-|t(4ZfS`S5AE{ z$}<*lP?`Lnms3{A8ekFHtLfpnQs;1nt1oc=*jM=c!E;P)8Gdj>B+U!;1FdRtrxB5N z6cLUOG$-nF&%A03YQv{is90D|Z$S7l{@=sgUB=wuoMwHD_osLUG2Z=n?0o7K__m7Q z#l)>OT%VI~XhqD$zzk~Ex$XSwdF)4>V3ctiIFKd=%tfhI4Q{K@e%Z(WS zLZ^HrAj=J~M~j{ESsSMpXXsj|yv%N=ys>#sd52GytAKy5Q$DgpmMMR1j#EB+tt{KW zRoN`!d}FXdXKi_=nCfLCD9_446KiFDYF{CQ%}>XI8f#iI8+<3S@HO%E;4uezW_BID@ILl9$dkF>c%*24Jp%to z5%_BfKV;S%9E%jqzr-Ia0{@>9e#%F`)i@6Rzf~0e8i7Aj1pey?{|27Ne7xxSk@$Ox zz~4*wp}*!T+E<(Zu_*k0fq#7w`2S`K_+cZ=6@iDY|K033wQIm@b{97{ zi;BSgP2znG`bnNO!n4Lm1w7$2etynh7S7>4?FSKDqm2L5%lJ>bi2u-jW40M7@~`O( zeESrS|BU8~^<12iF(?bVXkibcSbsJD?OKxmhO1uqhdSwAyNr3XXT&0gvSJ=Xd1D^g zeKKPnLwRE!*?m0I_fcaWcC3Tu;Eb-rk9Dlo5li;-xQ{J@M-M#lUaV#+Hcwg|DjJj+;2KP!yeyPqTfXQc1gdfPtF@?a(t(Y^P8+@_%to@ z_u80a_TaVMJe~krfrmEmn8I?((dcK99~Co}U7+31e`ixkxitlS7fF}yE^PXAMoaY5 zeCS8txCnVTgSkCJae{42%x2i2mOS>RMX@){j=lNai__bi*DhwpmbtBI$)j^EQs-Jq z(7EhB#pqmipV{hM^Yl8``H0jxwluACkI)={$;Z7d&$$1X#@#PK=b%vj!2Ro-Jg?_&adP~WTms!K z@7Rlk=jY}|<4MW^pT+Mi$}pa-I1|%v#@r${^o0CB1HXJ%xikOQ;5$Y9uL1oxfeG3+-G!h# zKdbF8(N>YwcI3U>+)y=7gk;>F!-D zbs1x}+pvbiuB^5yamSOlVw&;(PJRP6Bo3L>&W4F=$!-UM)DFf~X`?sPqjPt~F z_*W|US7zeBa9-hk_mAbd z>-P8@(Z=KK^;vOt=~Jq)cD`Rk>l|PGujGEgzLMTA9*}ELD$bL6aPGBn(%KWAo1M5l zhZ*z68r~E4sdE1p@pnDXzT75a!-+PL!$NO$FFAGI$!q4nk*_xXkG-b>tE$TOoOADm zdjXMx0t4kL&r~!)WlGE$@5M?hO-6BY-ZTxr8Vw*1F7Jbe`mTS8ngwY^8c1fLWJ0M4 zYDrIDR!%RUG->m!0lWt;VCB4eGf_I{t+n?)_w4&8;575z_a5i_F8l1g*4}&Vwb$Nf z@3q%nxbDbzNW=}{C4>0}?YyCi(QDD@o%#jR;*K}Y2i}4&s9lh{X3@S0KJDD7-=F~Y zjnP}&zGLJpR`tVyaHGZNcd~=nuxa+Q1L2czc`zxTg#5Text(*7eOrwl^cdM01EiDh zDbVlhTZ(w@-^0Bw`?0Te#s-|1-M))Em>-PeLKWJftNxYp)$zmlWKr+AV*A(`t-rMg zv2!yF9v|vX9tio)*JnkX$OrNkm1}nCZIg!W>;NhIo z33%hsc9!9KmO~PDK&IC(K#|%r$cYVw^#BFFZB?h-++u$Af zjku5Xp)S)(^tXry>B(7CPeXlmga~P^xPHXG_`k+~W}93iWKS5H0j8k(%wk z;G9dw-7VJ(Y0AAq*#>?e_pKHE#9aLhDVEj4+w{eF*!0C}Iu>Ftq0`5&MtO`DuCTNF zD>_T&nD%JP6#+wB2hFy;HO^ulBf>8oehs~pzeL{>OxK76-^|Kj`sNNu8#^ z+kZixBfYo=p#9>aVYcN5um3tf^>6RRa~7uWxL3QQg}yORK8W4zmx{KpjhaX8!oxtO z771mK@iHZ(^mi;8Sf=c_{u!c7ebGBKnYw|KDQnQR$<+UZoYeRF?x$&gCplT~r~d1Z z|BINMEaKz@(6|wE4vellr&ADoB%m_Y2g3G4%oezNcMtUEQhOnbk#%q&#GKBlS2Twb?bxSZZ5m5*G~4tqIa zcGwa@knY8Av(NlnEpBCtTLo8oY^m^1lSWWIG4}JXnf)5$54D8~V08K@N1abRb@`+} zIbA-v=fTS8qI<{FhE{Elmf1-5Xs1Ox*`pDkx<`7bJ*2-pt9|78gv*0%dtcJphIc;P z=09R%%jQ4oL#<4JZ&@7L#<96Cl$96Dct-4+Cc+-%Z`^Nsf%z~5x&v6BoI;+y^5o(@ z5XLA<!{=>=Ig7iB?=xnmr&~*T6wci#JTpoie;48V z1oB7j+(hEt$vL02vo?X;5}l~X^qQofsBWSE`);DMIrFHK@=U0Us@jO}4_7aCK-fck zVEgtrjeUYTd(xKnD3>f{9%F5()7nx4Wi{Y>b%&7bTC+0UhM=A^2=xA&c;0@-3bHX1 z`zKO6*M3Ls|GH7Gx;k6E>srm)!sAKrc;nRp-a1CpqXOs8cZVg}ZO!-1V>ERBrY(it z*A~t*`7IZ=cSN$gs?1OKgHFwd>|a~f1?V4tIC)M@R;?yj7x=*=ekuIG@O~l6kM!Gl zbd93ZH>5b}p5w&;|7A)b)Ba$ZoJ&;BTW`|zhR418;U`Z2ZM@ccQhd~Nxf{=em@NZ4 z7jm6vvHK(!V9n>c!*V>x(UvkVlU6y(|#eKs$;YU z`)7bDCt)0%f**uGRsEBoyqxqeFBWP~N%#9upBZg7xV4*|(-97)9J1as3?Yv|Z5gfl zq1B_(I}ZCF^%H~4+i}X04Ev{KqHB36fa*O?vHkKH5?wKO<|0b=Go!nio;;lC$-}+$ms%G*xh4chOx?pA~|zo-aT@Av~x#xh?vMXT4=$Y{cNlC+^+G;+de&O!TB-s<*Ujr zd-!)^d~*2{g)!d=@@C=W8F6*+{ZZ38b-H*mPY*D^03Xtb>>|!tZv364<8Q7^@4mDB z)M>Jxy5H)xpE@q{zLhO|;G6ArhgJQ*EkqB_)|2YpBbPlwBpJV2+IgDhWiLU_z5L&e zakEG8w3ooNtK6$m?E=XDD3LpB_c*7-^$(8C2yA;WcUG>JQ7XE0db;yJbF~R=z9hy| zyyspa)4N%2dCSEXtlu7_?ay|~+MQqbGwI`QXKhUHb=vD3Z6x!VaZE^7?MUuqWu}XC zAJakCp|qbH-S^F{PIFfpwu-ozGC$N__KD-w0R54Y5+( z2SmTPc)!kbzxuudcz=w^FShF#cSl#y#tYJX0LS`_tJBgRM{N80b-UcZ_n!o>fvbTNCd6Y3L&+WmbUPXFhM`hQiJex`}n&-_a#TbHD3>k{P0vm(_c ziLIt8%pbzZ=BjBz8rkYxL2Y zUPkt&<$8y@me=sc`M^sAyj=V)+$JVJC{mvtWDSnz+OP)4dAk$effk%+JAn?AJ+$2+ zwo(j6bPAK1z5(ymdX%H?M{td->Sb&S%+o&dtNR{L7}@tQy%y$Q1-wb$CiW{kgtF6u zH|^^Fp<{=~I*wZt;(E^)4dfdG`Mkb&OkUr-Kz*$Iz3Q8O!8fn`<-6yCrsovLz#Kn> zy!96}ne7OrGC9N_cN$Qh+IO&h3XC70;}yms)=j<{u$Le(^y3BlAM(8vg2?|T^d(zN zC)y;P({!R&I_Y|KtkJhTA`kIw-{+hXWo_}92j_Q}?Wm5ny)IVMVfJ{p{p(IY^Ue=d zf2&#Jy^s1|?PRuD$a}OKVsk#0PxPm4-uKqN4#&NjmGdt||BtcyKa2tYs*iC1`1r)> zrO+P1mQ|Qqlv`k1uyVyLb8$f-zArZ~&&bWo$%b!%kdR+sOUO=0En4|-PL?epF)=CO z&V@@LoH}=9c1}W0esMx!UWRS?%A)*)%;G}){VIQDc4kTO)GVwgNUg7U*7#xw<&8U> zYu@UvTlLk^ZR4}QI{HM{GwXV`y&zX@biVdV_qMg&6>oMO+|<3grR$ld?jvjSGp%_U zMfs^2ML7jFz?L6hC%;zRy>-8{@sPahb?1SXS^3U=Z_B&ZcfWo_uHB>-P1EG34yg&_ zi_NnAD8{D7FQ@q&&6~Tb8!5$Ub5rHbPdWGP15`)zPWkAXu8l8uJ-Z&;Krzg~F8PHf zxyIhJ^?7Gwqc>Tuj%K@a{Q*pWvR;O!J+a<#WS6|XR^GK4$QTsS za^qTPvi$sRTCppcHY6{bw!^!8N)q7sfe*QU=fOjA{U(kI#y^C4f4LseB=1ow-U&A-|@^}u(6*btnC!Uon9`9MV zxu<%ET=5*0Ha9uL?ryGkG&ev;yO`iEANzK8RUGPmwNYNTzvsEv?oLItVjw7WWs!|! zfi{AuIgizLJ*gHe$ALMU$5`0PpM z+=5)&LV~s=cST-~S!)VMxbxU{dELv7<|DKi!TI(Ui1)nM0@dBObisltUC-5Z?SDqD z*e)MAOiObdIU;X-v8(3A?(O@0wGYV1D$2>Q-Iv3vPs=F&^_>N_qB42?TfiR1J<3la z4ufkCrJ<{$5(GiTFS3chs@V$4}oBip^=r5mqn81X5{6$>QBomoSUC*Ey&2reI$pY zYq71wGd+`(dRIw7R^kl!o0zmXr?_xsfot4x@M#F2?jQamgx~532U?co6lC93l#!o9 z+p#cnL2j{4g)ht~w&fHpD#*(%$YG7()0Z!I19*%GjSs#@3au}rAY(;N5g~N$@)cS+ zOQCB#GqC435&PzKJhFDq<}VJ`{rTOdpKN;`pO!h7_x$n9!pzh;Vzln|1+Zb82)M0l z6eSzpFF{xeVd7dvc>=;x2%8`*hwwcJqt+>k6T&nIjj#|YT(2loAY4$PD0e_Oa}$&U zVH1Sq5Pn>#D0LX_P?Qr8?tMj391xy^@G^wuyA>ryCkP?0DvAZd!bU|&hwuP|b_gpE zLVgI(A5xT7{0GJFKz;~I|5Z`+u)x`SQc?Z^!in!g{SbzI2=znQ3gKD^kN%sY?1C`q zG|&&>xi&?)2;uH?iV|Xga?b<(5LSPtC<`F`2EsfDEB*lOhp@C$QT9TZ)T<~TLs-|R zDBnPseMwOw0tCVQM@2~rp!^PFd>0>CEa*$eh|wXjBrOVlX{!|_QPA+Fz^@R}EG*3o zKYV`y(&l4=HPl?Auhpe&k?#Bav$jx7ihv&qN-N;-Yr7cumBVi@q`yG(Ce{Sh8gf4W zEL4SK`b6m4*&KW!gJa!C;dckXVry?`e|LwtlH$1Ei-j@ ziloVilZH4?DvB_Y;1t$`){aQo5~4e*qg=uIQC^KTigGT1;8<#mwSl?=qO1ODfVaK` z{Y>i*yPM@hx&9c^cZnLmr4^JZSodj2U-q)1R7zU8DO&=hI@Tdr#y5a-qMphe;G|ng z;tRgH)x_Xv59G0Y#Z< zB5=ECMGooim1wt-GO7V*;#)2nQ$1;H26!Hft0alz!zNk>!p}jv{Wy$g%BR$tpjwmk zOAY=lz|Wt6c|k{Mv|=NrKNAWN9tG*U-h+9Blk0~$9?S%I5{%!=9Q;vEHkScB>;pP4 zp=?Su6Kf}=Y`IzbN7@mHQw})Ur=Tw>4ee6Rl-kKDTjC{IlM|dr955f8rhGUp)x_6M z(oH9Vf^eK)w!-|7^`d~N4dVt=h^{#H{lMLS03Qnv6O?G0d5EQR#D3@ zWodl00Q{Rz73Gq|!4Fe7?5TxxfS-W*>S!Q=HyNxoKdW7uvL#K|3w_zK9yr=IG=@{=WbhBdSWaMMV7u_?;d}P#nl~F8;ggq zxOo%}N3giFiiRv%u)ju2iWc1IxQT@o3?AbF|F6F&D>1yp2r;OH2h)J5zXY;x6}0ob zFZFI{L=T3KPNlDr7Ra&*m8_r$77t`$qzb>@J-t25oz5mkpUI=XzbKUcI)<;XxLWTe z7XNZ2jrX&-tDQga)AX7+FwzhBSVj$p!{Ok=#5b6Hijq!m2pFmAwf#Nw=FXjEp13r# zq`+2UPM(@HHSv~dB_uZOvFV9Z6O*P+pG4D%+M5nLI%w6YFRj>j(Q9rcS~bKMpM~)l z5)Qey>3wIEQeY<3{d;6Gyz7jCCP2{}4SGXvflbhf#(JnyCk2{ddeP|vLjfv%G7eD2 z-|#SI5CirAg0v6b^*2Y}jpgl!nMOb1rVR*|47=hW=`1Eqj7dds08EtnNf9ad9)s`k zH{Or$cfmZOpE9bIkYU(sh9ny%-4czINl!r&^wk6`Z3klX&qw2Xfbmc8H?WV;Vr&9h z0x`k(CiKcV!!+Xt$Yxp&bGKneAXX`u9)s_N;Z_soFq(=1&2Srugqik3v4)u>5@p(V z14NQZ#BBN$CTGJe5}9cF4j5^;okS8%pTKl!m`x%xO+lFF$0TAgy#Z`BSV&~PsQ@dr zl1Qp)CCtc%6cSlx8jrNyapO*)Gu<=|=r`OIu^S=}nF;`Im`|uKG~u;d!`&oeGeu(L zp5Qi!l$s_%mlzgakG!>;4gt3f_l?A^S#7!r1k$j`xDQHOW10cq55rGKz73HIQ#2Ov z^AUdlv`W(o_)-{t5&1qqs!e!>*YLook0DZL`Vgu9B_U_GscAGs9yD1XPm}3Q`1%=s z6?6+knoUn)v(pJ}ttM328#0Z*hdd_)=`a)*5I9N#N`ekz<0gj&KYb&1TaAQ&5fFkM zhIEZcCIT5?dcO8$$m?O2f_${Rp@lxRIoU z#^d`Y`hI9EbofmnNM*>az>LZ88z}^ub(r(Yf3x={@NrdT|M*>Ul9_DH+$>FI(q^)> zO_xk2OVgxH(j-mVCS7S-XxXM|X0p&E6J{n|fZ9?}5Kt3EK}A{=uq+}fDmz6{KtXZC zx}arK-dFSm!KE(b_k7PecjnGy;_|+}pU?mI|2b{$z2`aSJm)#jcAj(2U7$o>y39U8 zs%mpNk*l2|MYk6k7eeR0NN{^m?jc;;NNw%TTq$rLuH5@@jivhZ!rY5-{Ua)$ zUX(Y9>-khZ-I;d+*ZZh^x-0KVq2`~4n%B@!pK&v_TaC$jmGDcRWL%nCYyEPDg>JL_V8t@S}*AD;6} z3Y<>LGw?9^bjbcl&d&j|rQAa;=T;Ldvzg9CntLCSJf}pPgZLxW2HVOmA`#?NWb^AW zVsuU|FPgoO^fhONxc(JsNX{yLEj#B}ryeI9c}plDd`-`rOL60KX?ad+>;8E z?}VaNlc#a)&>L8+)m^Gift=w)v}Rm@Ak5gu8T(BxN7p-0;Cx zjX5fs=uSoOsNGLAIU@R;)EL48>W6^P!4d92fNV_X0AX`F5MEFWg!x$*jI{YgmgBI# z+fw}s^*>SlMnulWMe|VcbT%qhVz4oG&I2VqWuWB4g`ni^baeKmJal#$?2*h2h~BRs zv!K02T}OGwo-&}_RSvWtPXk(C0npZ~K#N^)X85@+Ts0qPGweY7^gQtJ!*0&QUqeiv z(SL72{yFtdAm4`BgfWT-LX5jLAlF?${ze9nFXsa4oCoB8QGvXLBOlKL^6zB8(CR7> z;%irs**G56d(&b~d|y?G`^F(Ipr3GCK9z|kdZ7CT_61W61Af{Vcc6*yktWPBen>sd zF@}Ih(LO?AaQs~Vk_GL{>eWE|Hs%q=0CyLWbRf4GK)xak$e-rOcX9f^>jd(VQqbSX z70g}&`p+%_{TJzQ6o=raj7fMW<5O^-#+Tq$4cB~Z*lQc8sN?r~7B!qN$>>qlhe5}~ zT@c6dNc zc8t#y;P~D`l&jzz+yfVD{4yJzydVvoyn8-6>2#r!hf>i=+-qnzR>GAV`K9P2KJAxj z+~UF7%+s#-`C8&4qKG!A1H zYh13U+9Jr7JQT%cU-6HuUHUFs%kF~EW|w8IF*m%W^Toc;EIi3!-|!H zR+6jZBdWfD%Fex?$`-4Rd(@oYQL^yIM4sbbHGMyHtMK+Y+)mPwr4~(e`xVFM)r>2U zr#erO-a5XZ+Cg)Q>ijDd^gh*&e%n-Mkb3U;qH2c_Ggaqq(hJ9z)C@2;M|FN3F67Iq z9pvVz&bTIeCu> zBwF$CxZ*geracQQDEvC{%<;II@c~Lz6!O--A_`V21-C&pbqLnRE6N-6vch|JZT7{F|Wmq5qzL|$g$M?i7D#ygNxn1;?3h?G(I zXRvCnmIKF=SGbH6*ioqEW3(tNJc9O$v@Cd!;=-3mCmc>K8-ta*Fom?!;nMOj3{(_; z5q`2*%Yj#~EPNHxnx}C-FDv{cnSf)yNL3YH1NT%SQl7%4&mz*oG1}y^=cva`C z5aed}_&Cg^RiIJ|--Pn5*0PahqnbZQ&7~N` z+cf=kQL{s{Z$iylwA!gj1HKJi?b3=i$(luUF8Be+UaRQ~DdD=+@m|gTIn?BxyVh)z zYvXmMHgcA|Pq55ZI1DMjUrUG9XBLh_J|7SrYgG#V1P)GW`fkEma($)a(PbdB6Xqa9M=#Dh~(RrNYTZxzWe>CP*Vdz(mZOmV`gJ8l=uc`2o6A~d2nKCPw0T3=2nx;PkC94ADs z&Yaw7+#&dp!kjsv_)bB8Ds#RB*LasmHZtegkjC9w`r8D)h&g`_-|-odEOR*L0M$Jr z`Qu_|HHiGImd40-K3FL{1hTk?_^@<;l;=kJ%NaBs*6xSfDF>Q+H62Pbk68N!&0b5z z=4(*<12ey*=|z-s6*?Z!?2~j=xEw-z$aFSb*bmFj6|M#1M?@-B2>Ve} z*vDZ4k7)*wco0kzMF-1{qu zB!ox>L5k5F&uaRo(Cv>nHtY5aD8G1b;Gp8zs!O%we&#Hl>uRl1&`5+iw&{8Ul`PFM zo@Y1GMcH#X7(LVZ^{d1+<3|}MaGgU`89&arA2BkQ5ujXVbCgWbcE6cUQ!>GUr_8jj z*xDV4>Ar7!na=hPW+NW7Uj$4_8j59~B&9cAnUC!3FH#4MSNV1MF7kz9c+Yiamk`s8 zH;Z^sf*@Pb{y;S4&e!pbH7BXrkZSYJw33PG(ndqlpeot##$@PNHp*o456v7GGp8PW z!08spNnBrrGPjE|{Nu^@h%y^d=Cizvo|AG1pV4DJS&@?8WQXUo!)N8M%I5CF{x~`2 z{AQle6zyRup5LP10xAJ|(TFlG`%N;H{5HpT(BL|1Jinb^XL6jmv2rI7rF9gXF`{vB zewP}`M~K5C;I1?TI_vTf=v>Wb9e?IC*vkwYuQ3p@-H7EHV|5k+#SK{q6wk>*pm;5h zhCjxm;X6tYC|(8EX54^b+xT<_qT$SRM8n1D5aY6R4Ar+oH;ieB#(0db^Na}+T)y#c zIu;n8Ag4Xo=q7lfv5SsHMlZQkr|}ySw99yhj>Sec^?jc4I&o*d@e2x=N{sE0pYbfY zyi((NI+hu~q+_{(TMR1<4-Kdbj3zoRG&XC2jaz73T4(GhYS$Y-D8}&;ItGnrNb$yv z)EpdNapM>!$PGp@)xFV}UxwqRava}Js`ydkzo_KLjK@e~A2+5c_a@^Tbo_+TPp#i< ze4FqeGu9Gq$BhRGev9EFSMf<>nrQfx(MyB+t;V-V#cnf72!$kRqT@#GsuZ8?r- zljeQXc#*I@V?0T{e%5$~@O&$;zYxQB-U(t*6`9lq>b_c){Vr0i1y~PT*hUgwh-Di^ zy9?7qPxi-a`@go}7I!JZY2K{sS@G4ZX@+S!BFHrL{DPh+q2#c6I>_kHl8+zyg4BCrD`uQVQMh9=R(? z_X`$_L?)t#n+l{!+Li1L#JIWh=U+#l%*AlVW?s6I?LuD3+!M%yBmRCt%nv;X({Q_< zD2SSJVVSCuq>OX1`F)Ju4;iGuUB1{U3++tu`M00|oQa&ZH*)JsJDJsi>N3FDDs4pt#qt-GzrUyk8 zyo%SpkI)w_;E7uMd{UjFg}hk3{WuX>w1_7f?Jp6UqRRB8bZTC54{2M`VxCxqy-V#5 z;%?Cry=ZQ`WHy2K8#T+=TKsKD#ukD!KYW-B%S)o5?X|z&(7aCo{=a+}D4Plf)bB(2T zH2P#Z8r@_^qtj?q(T-AAoL;@FFovXF{Tz_Aa3sHW(_atCwS-bs6Hpw^7ulAm#;uXIM=S_VTrbt z*x;(u8=bK#4eEPPWr~lg)9F0Sc!cV>n)JPvVw=?$Q0!wI^V)pAL;{CpT$m4WUX%|t z+J_|)<0#yj@kl;jr!Ii*K99j&bl}%!2W(1qJt?c}yc{5|$Z=h0pNHja%(7g&?ZUW2 zr24MDY|N=_ik6PK&mR2@%G+E6_Dv`cFXKMg0>Y#dVY?QtiJ4qpvVfAJm{- z?Tg^imHJ5_Pjy{o-wfm~Ab+n!{vHyu>l%stAStZtT7g{ACP=wl*Xi@9&eBZP^#S{{ z(b`ki+8?ym{*b6`e?K~TJ@0X<9qSCP5A#HtVEIRQF`NCH;K=Iw8!9^p1F~#*6 zYlHV>19Oi3C6NDFjsSxz&e}ud1zh*)KO!2m1CZet<`2WS+Ax9ez*^vH#lXJ!bgHJf zzGVL%ssEw~`4ZOya~|h(&IOkqYG3Rof zJo^_w(-Q?4%LX6w z`bMPRCURZhR+cbUnlK+mNn-u01>FElNL!bR!t~tvsv%7cxq7>3@flbpq)J z$W^(%n+v_V6X};ApYP3urreA44K#4LzR$})Ozc_m8`4DA4|w`fq<;l`&u2QQ{7Iy7 z`-?>E{I~<<+qiLKm7BygRKgpzCTlA}!Ny*Bj;bf93_0d!5;& zrg+~W-O}!3IhUa&eZ4GJQ;8*AM_Ov*wIaH@SKh{>-gG_*xwfmEXE$ICMw{AM_e07a zaRbAtkIE=*FO<=lR@R#h@VG==4~^4YX$2Sa(nln?@{d>mFHI}H+zo^WDqjcTWogc< zczS#}99%dQcGKdhKNeHJ~P&sXr%DxVdEtq6zuk#7B-AdIj;6sb0>s5btU z)IvL!ng&C=|J?%56Xp$HH{l&SEBZo%C{m6h`qcf0DlY~rZ%O4n)u&D!LN7m=%56=b z`u3rwpT0-bKPm5Qst*MsiuR?{d>=3I+#$i~FQ?9j8t7A}53TfGC5y_gTty96UI|D0 zQ0hE5Tz%?|L(0lYS?oqx>>d;w#7O#h>U{WTed@JCN>lySBD+)GKvMYu$m;3TB0<3S zvFF^_49&Yd)wYgc8?O`vN6b4;ZdydqP%S6(^3+O@sZ9;l{vwB`SD__sYIh~PoOWd@ zcXPyPrSXFREKIe76_b}q>7Fy&U z+pkMG@*?M%Mc#dB)5Eevj#+}Mr7yK8mowt(OPk&}Dst|VO;sL2Tsodwas|ino=X69 zK#RWt%*2Y^$I7FI!L8>`Go7oXA+P3Ta@N}KS?ckF0+o47pn6kIg(-vIv*p4U3~_$B zE5NT4A2sP$w0BsRFx>r>Cn14pRv;ANfM^vpc&l@jG@xz#6>`7DxGiNK5QwgiYSeWV zrY(Jom7$2)@=d(u$v7|cgJ@foDUjUrtPo?OHWd+V-( zUoqSML4~Q!kFh0YCmOE=;5L>A%x~|DR|oZ`WeZGtZ(|-wuORNzQQ|C`c0kgvG`$krxJ9pjE?D{~0DKXqtjrMyqe^fUjp!1Oa`v!a-vxmp%8{Y=3^)6bmGoH0MM zOg?$vDAh~&89$Sb?x*lGTwI`&i_1{bz<`>kp?Pnmq`omKYCad`&-)jdqIxUEBiKRw zxeF86-=$>oyEVX{LtKSTz^Ox(t0}C}{*c0Ba!|K&*_c4tCW$LsB-Hv(DRZxoZgA!L zpvXHS`}q#~$-SJxN~7#(dPWwL9!(Z0vJ_F8j*N@EJk#k@Qx!}$_57ig;}^#_HN42g zQ)g}J?TeE&wbI&@(s&2V`_Ysvz&2ha3f`)l9K5{}tIBR(WXXG+LJ})5xg@|!;gEiE zs20&O0oGq3b)y!O6at)Yl3a`6ngFAs%8w7#Vy{knETs~Abr{ELu|Y?Gw*TaSXAae3 zWt#w7gjh~W#eO`+VUjN#<5yDTX!+|yD~I+9!gtFaA0_fDvEZS7J0)L~`Y&S4Ya{W+ zM3Gm_BEKQVH1aTBw4G=)2)N{Qp%D313=aU6}|z}$?| zOGRw7k6ZXh7sJB0n$Cq=6JTOZLO??qCBok z>IWs`cuKWgU{sKL79S1y04d51^3-zpCj~#svzTa#%VrlkX*=*$< zKzXw!1shr()8QvHhmamcoQ)3x^8t;=URO)vIu(<+*F9$JbwFFzrYNzH?h-8;+tvgS zT5Qu&E4mW>!H=uW&TZ2cNPkdS4QI7olPVRd9EXnX(DL{?j6Ni%%e+tjSq;!}*{7!U zvH@?3X|fm_cWMRurO}Sd0?$Qf6=WWoOYmU4>440>PG$>jyg+kGZ4?uT3pJ-?TICc} zYPVJ-@bjRCyF}2%U1FA!hCVi4j$mr3#s`$^I|TO0sA`??nrvLEmB+EMN{fq(MPz@q z+26Y*rlF{dLVv3@>BPcK_pOlN7t?AgW?4^29Lu8mQ(R+?+S962 zj@nA&F>w2Kl^ewC;*N9WRCMv>rdq1Q+qqq>GN9su9e%N0q$lQ&ygqWo%OVMYW>L6ROmoJxw{QMApM5!}luMQ)-DEi<$~$_GNMM z_=Y-9)E}rk0ZaI%I$s6_BIJ6`%tuhu^v4!a_oQXmdC{bxzp1iSfDc$Gc-5p}tjR00 z8{;VWrP+dCQ1F^b!MLE{*JeI{?^w;FFhHA{`uY;dtvM#|-F2qSZEBgAXWxHV2*akf zh;i)R!=ll2llyC%+LlVb$S3^7xOSdefW=LWBKO12&NtJ$6{Y1T5bQCoHcu@OwJM@M z@eg&lB?+2!Y$2{G?!2ru9pU$}#(6yKJat)X4m{VfbubZ{nq0Qp3zfLbF4BLzZ1qyO z-MeM_FPE+UG8R2PlU2p1J69iCJ&F8#WcuX0R^Go*G=ILdfaj^cOY!!jZ| ztaR)K$Nj1PGEwREs3&;@l{qK;^KeaJ#k<-fqvMLUH`!EuMEz(+A z-v)yl&XvA-^)PPIZj?InE@jOyaGfguDI>B@LMkT||OD@4@Zz?4jFu5meTbv$l&XC+$GSd8Xq@= zu|G(oklGc)t*8!lL3VD2p6$wZs76{2oI!!2XRpjymC=;ZjVDtol#Gm4DxoMTbLdi0 zn1s;4kO~M&r7cu&vgN9Jc1DJ%trEbVWkJ@6yXs@ui9@-RXfDDAtlFK6@>!*XryBR= z)LSa9E<&L>(6JmCp(90Y%|OGkhKx!oUrZHqWknXNn8)*Q3zDTC6ZHxTEX5UNF7E(~ ze zzbp1bq-ic9E&yAV9wo^^-oH6Hf*S;a zmS}E967;Ri!Z%Q}x;_EWR&QZ70PV>U%H}%abK@FYBbhQYr;{Z#(v_5dWRTy)ogT^o z9k*HhIXg>H>8J4L`_+Hu9oi$qd;ZyXZY$Lj;SefT5BB$0^@oDtaCKi_sDG%TzG`H6 zY~n!G;MhcUQ}ysz|HyBBrr#b|0nAAjgKqJM5Hei>O1Heg52X?g-#=PIO6vQ1}Kko zg!7IrQveQ4^hbPayEk?bfILL(ifRl8>5}{mG0GPRg+_+M5wn_qcq~#ye`9fgi5SFe zgp71N!rw$|X?E{$#5WQgqy!COqkWMf(ayvewcr=mgMmnJJmTvQh61rV{=P_`s5Fdb zC{`^OlmCqIf9c-y=!_ zX{3ML*FQ2G7>fwhfZ=V$B4uGOuc0tiv1?|8pnpYEnX!RoRx^7wvw7GYFC)wKFt@(X z&5D}YoMx6)%`!bK%UjFT{jDssMV6$a+LEH_j~;3sVClPLySryS^8OtnVYN?*?82}eZ7<0YMMxyny9Flnr zRVjUl84m-N>t#jNEO!etyx>b&8C&LNbC0s}L008vg_Ep!hgP+~(IeDJ%WqEFJG;bwaw2&3| zusr>eX6Dp0h>RB2z?nAcHksy?tPrPsy|9^8w6H=CE9l{xn&V}eUN)zcdCJ);H%oW3 zat~xrU2gQUE;kz>VY=DoW|mEi@vwI_qrce|P?7nhYQ&kNtYnZaCdHm)g+pwahn2cn zrkkx5y+2Ewwg@I17M))yPVbdGxJ&ZjaoP7{^8CEy!GFrWe?y*~UT~R&m9vtSFJy&1 zWE{kUW<8T@X;(8d+-#nQ4Uy8gSwShwYhkO)Bye>zt0M+hKvq<~r4=f<)~qtjtJHEX z_Pb5JS|->h^(s?$H#3zRL24xR{GBX&7tGr!t#UP7LV=fMQ9sLBwO|2hWi>wmbE>fS zlvFo2_7stqa+J-($;%cA;4%Ts6U^uoST>7Ouduo%LD2#)+NnRv@<~X#%XT+gq7S** z3TkH;TT=EvxhNy02@oUn`EJOz<|r$QT6wQH?TqsP@wCi&ka_h8v6&D!EITNhuC~UEbcX!!-sNq>&=Ak30 zu$!GX!B!n*9yheRshPF#1|}i`b2DMiX|ApY?s?^G5%K&e% zE;sAwVHZSL(I6Wv`@aJIKbP@d$auoTRvu+ro7n}#!5-Gfo7`LWuYp_jW8+NySZUFZ zx*E{6>Pj42#b8SAObT4pGn;9kY=Om+$2V%=$uMr{q$(A-xWvunwWV5QnxzjE2oLaJqU}*58ocD#7WlIO#Q7B-H%>JL%1$mdT{Y<4;}0 zf%*nh9NlqZEEc^LQVIV-H8_=3ynRET1|~VV;M_ zQRG;1mDrfA@L`yTCaKk(tY8CTLB?aj%t_W(%PMYW#co#N1}^uxEOUTD^M_d8Lu_u1 zjHSs%Eh}RUM=@rd>t_C=Y>8vt!7ns+HnLt)q%rzC3G1nD5A}M2?6k|u&@@lqnfH_H(s#!-fNG78>c$6I> zfs|3uG{7pVnPUn>IXsB}=vaC#%WLK#H?d}kplp#yRn8ZZZ2Oku7E(H{j1bv=w?VVXNFXa<|Ic+6kA8p$PY=5@0rJ&br+SS@ogaXQAb zNkvLA_nXfJJ->&|@gTs=*}#@G$CaG7n$4xyoMs*#R&0Bm;%!#wMTEiUi>&BYHkZ#6 z7c69pn-QPXyP2nll~71h4dtcWd1Q<{++NfSr)2lq23b4(?c#c!cP?|%Y>2|qX3i=S zf*i8_;?yK~;_!kSGn*-4@)i6r(Sta6^z+9i@n6mJ=}z zn6(v1-Dqb{6Irwt1aV26%QE%P3{5%2?M?%y+A* z*@~lVPDFHQxz?bv5`D89vtHt7c{N+&!6a-Y>8OXzb%Re?#COt)ypntIc3livRN{@x!kwc zaK)m*E_VPfqhtz9^wuD<+0=}q^IX2xlo|6y=B=pZ>Ye(Wh|$n zR?OkOG>6yIdsz0lth$xeH)C*EO+!Qvn@`TSh1E8*6>h9tt>|IJH0rc4Crw*-fp)UM zHaEy8e^tn*2GRq|ar#QWg)e?QAeTEnt%~5N5NxexFYu6J728N7ax<&(VjkN} zlQTDK?m_>GR>1u z_b(yWUyWXg@zPbpu*T>mnXRV3b3D+VobwQXt;P^Hw}s^o$hgezJ%(W}(@Wt-1IyYV z2S3tHx+XIrY1Q{&xXmktbyJf|doW?|;2|58p&%=719Q=lY-*@;Cv%YOb^#5ISQMEN zRf~FHN~K;_LmJ-<0l3`of8_Q^JxD^GZnm8wxn_254}zP#5tjLGrcUVgyB{>sm9m0X zggF$hIh!}YfyxBoK9}n=#>myepOZSaqKm{78e2*J&J8$LZp3<1)+AO^=WT#5%JR0t zAI*YyR}^pCKZchWOJnCEJ{A|aVa0S!ti<}{#Jv>O?JC9GHfr+A%dm`U(`?~0=x7OF8O~n-hd|SZ#aAG3&R;E&<=WS}Ee{Vddw+>L|IIC(F)bS)}MaY!OLdfSpHn*u&*b zEce=``0|XVhisGPU^ZWgt;~ZG!$ad4-y0z#T^2!5p2-K%;xY(-%~7n!W;df7=ZZQP ziPPn(7!Nmz(eWnfV(*sc&+_w8_5r!t?(`yBYNzQi8P^8Z?7^aauN!OBc`cI6OPZ5Y zY17k5(5sg{4^47J^nQ%x9b-l<$j#x~B+fF~3XNkqJ=j1XU8!nDG>fGrt&z`Q*EV&vEiF8$8B}kFk;(P>z|bUM5yiJYr$zC?BG9Hy;8i zCD$C5h!kHf^P4kZhv>}QcIx$>&IC3MpoW}5z5(;WEh`0;5%C} zS0sB~w2RH7A#*jG_aGSxv+a~?6BKqhcL^hxMyTrFQ^*$d&mBGrw&yF>wJg3avy(3{ zB&?x`1!u}zDN>~(uU4e8L>@K;^zCNV1BFF{Wz18GO*M+3h%QGps~$l7SLtPQ z_p$t)2si5o;H?_HY+W z7yVu92NWFHl zdE`$^nSCczt=ogucj{*22DWM^cF@SvRqjNLHkVr|4fM-NGRG^jyB6zI`X_;d2PSm}PsF)${uOwpYvzMrmbseVp3W=X2lg)>0Hz z-HUI}`g$Y5abMS%-}+hH2)>q!@6m1zgocBDW#g80zV>bFwzhBU?ecYPR`z!EP56Cv zUa#Vt7@G(O{I!Zduy1Q97zy?VN0hbg+uJwB%GEU0qU6BvNMJ0ebdN z^{v_1-L-i;RqIp&p-?d7>mQ3Kd$-~X&c2PkiqD7J9vXcS#n%y}M&x}MzHo#}jvwSS zZsfO?%_`*ZM zP-M@wV(;z)B?4H`X5+4vul0o&9V2!h!ZZ zV;k#mdqsC7FxqjDvvqWjFBG`gHy8>|j8i`Z|2si!FLfsJH$G(CKM^{+Z)74sTnLQq z8xB!Z{A0v$I_~}#blyi42SWP-T%!g?f_)L{D9L>=GNcR<4}zhC+k@l7{j&30 z`3I%2QF+2T-@zHpbYvp1_!&w`u325NP0zIWAuiD{d)ru-+*5Rco)Fc9G69ILQi;zhu0CM+=R(xwo!rKCUeqZ<4_(X&*2NmB4H7Hn3o!d{W zwyL3@x+e%h=ZJWpNquKvpKtrY@qo#mnwg;5nV`Cvp!%7hXuSHLLg9DNMeW8Har7)_u`~9InIBelqo#5E|;E10yOyXbD zz8U!vJGaAa-Dh`ggDP$e>9z+8zad()!3H zW3W&v0d^|uHt%q+saYXDxZ$oE9T|>9MgmpBol&}P&v47gctgFrYLNfmLWKslcCVph zU-;ly{}4Hc;6%7;Vr>8Ln7=9lX@x111lGT|YMjJDEDeULNMVCxgVBusk-qSdnGLb~ z1H>&-d-%lReloCj|2}ea0l%*|5Qz+r4GJ}a+@$AR$89JE1*gs-4u!T4ks}I*z!}{A z#U-*g#@JafO9hQdp}vs{3qD9N*Ua^OA-`2KeZI9jHm}*+ASuubxp76Wp`MZ zm_nkaTy%7AjO3_wkYDEtM+3{oz?k)ZKY@lk#&ACsPU7yQ<@g|ung&v(P%s#go)lHr zL_#Cc{!f^N_&ADYxkUT>M*7JnhdCyU6!9KgbkrZ5AS6^5V}}oq7fjUE`u2&zr+=t# zcueUt#TAy~iVoAe)Hr3G6YOXqNy^Kt+Y6byF4CnHdKkE^)#)lY1JM?Gk*3sT29NeODbV_b>!j}xCF zflYn=r2VmQWTY=NYGJ)d*CwRvD4H4&fghJGxf&k3aGxW+##!69ORa=5Atx{r=}(AV zMS;FZBs9Edg5)0^TzJYU3@Tw_47GIjXc*X zG?tE0K-3o@8-&y0l#B3#i!xZ(r1X#aMRViktbu~Bh%z=YYPzWKme88u@JLwjpQ}0q z8z!=Sdnm$|=CQAdcby|176VT-8mScuN`mYs>;VzTkqyz2;~Tv=64^Ms2LT`-nq!`< zJrWXp5g2=gx%fs5bVeSbUYGu5;wb!D6T(xG7-!;p<);Uj?8G0dF6+;<@w+4_VB`8sd z7FVE!f#_g_-V9S8d7RtZ-#3OKaLuTn%b16HUB32?HJwt0WY}j`BKw zaI?sj8@vQ04aR2DwLEO~lcMf$cq`dEtln>$$p88h+8osL)?n+DmG4bg!!N&l$BdLAH96!{SVHxeSw#JM_&Xa3$282?4rrS zK?TZ+_7KF=0DlRzip;P(nZszX&XO8rtG(8VQeq5k70ARGA2Il}VSE3$$s|%CANP*F zsO0Lri6TPg|E4ECbz_M8^Fz1wko3 zqwWAsKH^ZMJSLb#!wr_21lxo#Oe#>PcN6OH)h>55&bE35aIwqB<0Tm~`i9MJNjxI( zJ17Q(jR8q}C!cu5#lvREyhX+yelcr~A5lzG4h{@(FNyx}deH!YFK)yF0O{4tDY-H_ z0ZZwiXc?4uw0Evq+qHgOG|UiG%R!hgV?=~%lA4&S0V34qf;a%xf$mf5SaJw-`=$TE zA{B<%m{r$UBMEDa=qN@5fuIil@Om;zf>m1DRAL#p*<9`1ht~?(W+~?j_`^? zJNCv$ujce`uVtzWU~CCTu1ladTLuO;QW)GBpg92)WX)R3s;}8(jhE~?IxDiQ@$OAF zL*h$}7;NR#$_&+nq)E5eaMeZ}hCYr`1TRbR3CBn<=*NV^I%zT&4CH#jb}`g&yxl%- zH8G)x5D<|hU!&$LrhVh>+?~;&vN1aQHrL@y$2&6ypb?c1Oa0s%P@V0h6gAPS+UQlC zvKI5vx?0{N6z|_h-X}B`8K4xD%Tz~U0M^NiSPm03>>1`hU<3;_Vq(snwvQ_(d{R4w z@0gF6vptJe$RTEv=sGCd+AmCOGssUI)P(anr+ph=8{Zstx`MaDm+%0R4^zUc2txpc z8}Xdy4J2+PnOufkFP)s2F9eMxDya0 z$W?UVgZP5mwt#;)9JOU`CA^oL12abMIG0l+q}32-o6!-Pvu~Ve8Rp)dd(t%ngWSLE z*e;gF;#U1@64Epu8VOGLc?cf$U+^@ed*IlyBVdl(lHE1d+c)3w*nCy)% z*I;MCH^93|PK7fBlYHvFbiZnV3EHJkp+D|(!GNt!-GT7c{H?(f-S_Y!VJV>lo$f)y|FEdfr02A z1zdnoA_@b?BL@`%N{-MJO|A*eTr0H1%bmkDRvP)#FS;yaS)K4Do1oN^oA2i8G`fdk z?cV4fni+IQCM=Wqxcv0L=w?L@R7rEW^YCD>=kkm7)$xQEw`RRr{ku3qQn%f3Zb7_z==kB79_GbWBOy zFcMuJ^l<~9vE9|NW(T?Pi@Anl86<8ENjjn#Tanf{VcWhMZ)`c8Gpd{0fE0!qgIZ>k z2^&>F(=lop`NGjzcXa9+rMG=JL@MR?Z5+OMVwhYu%{ca2=BXko=ehuY5>pMny(3A9 zB8%;Pz!C9rsjq)8xlledMTY{cQSuQZ7z|+z!yG`&WNmy>E-K+A5@tNZ7ZyzA;M)m; zJDURJn0SDfFb;~re$>ySk5FKcm)RRQ$VYA;rlb^phXWD5KxWQ4_|^veK&*#5w)R@0 z)R>(3N>6l=r1AO zOn|SgRWNnfXIVQA)>zjo;u5u3V1a&a4~kGQy09~DM&5G0fjs6!bRAwQXCqq0Y-=ze zW|dvrwr%0Nn#188VVVn(h6v_Hc}5W`87d`*`vVEHk}zL4lgcGHz%7T*)OPiDv~S?E zwS!pfBf3mh^o_}YW)qe(V|xIoCKr3l~K^ZLgvOr{Vmwz@=r)^+&kSa01_ zLSZso9zSwR7TW|Q_7Db6v9d2_`?!OHPt5`1(J(x}Zy(>&HBB@wl#N^duJK0a0MTWp zVRX{mls4DA`J4hnG@n@T-O;mWuKV$oX6pj4Sis%KmrfA5QUD-{sRb8KRf*ShTwN{B zfAPvUdetaNf49n4dN;~%)MRi?c_S%YkG>o~ z9-e|%q9uVdMJmw?aI+g>$1H0K4$s0S7lnl&38|mc4TM*{!{{d zfrOiH{5CyBqlB9;ayQ`{B;1_7w((G%*7IJegwcAmadd=^Yb6M5`Ke(n_na` z=`{JgK7r47%JSwHSWLb>BH`vYVN8$toP?iD!2hx)C-+^FLR`J|5)s%;x83#t(<}7|*T0_s;^qS%-I+`TN`~ z@F!-$^X*ySS*gkK{G8*@nDI%WxAmA0vHo&WMES(8Znz{o@yj5KQSI<)Z21#e)CyDNo@Wj_Be`yvxUyTLo z5~^eZ-w%ddwhx6jh)x|3_zm z-!%*T%aWeN&!{~q;fWvp_=$uke*54*X2JivS>UQo`n`nD&$wps10Gv)Jk7I|-)c*4 zj~C5?XJQuk<+H%wHw*km*{{T}8GT;D6TdTZQo<8I-gipE6W_uAkG@pc??+7&bUQ`$9~3fBdwNjT^m>KpUp8H>(co7*>a zuOaBV%{zQu>t%)Yo!bbsebXAV>bi|vI@&j4udBCfyKj4Y$Hp##^1JxW=d}ERNMHYu zc=7V^z<^I|Cn%$wN_i@0;c@&IW3bBn-C5MLO#NI=)e$8lqwXvXL3KhOsj@m2G9dIJ$` z1@I+pv7j6t8;2$j#1%8q%R5|>Z3$Z*rHB$^c5%i{ED3vaql6&XAJ?LFb2;%j%J}Ud zk^=Q2u5!YzaQ{s7Boq*}g}5}^y~(q0+b6v#(C6b%X_0)%qxKDt#1oXT+2`{Ojt2P_ zcPIiKwA39WgYd^yHnk9U{U?=57@Ms#A0$k6zXFQyp=$h=W9n%*4q>vJTV}nr)^eW} zHWr3yIN=ZFCBGkd#+{t_(V5*=jg2U*ilUCHNvBZ9H-;&g`2=ccD`uCX(=GReL$dpA9X)?1u1|9b> z$!s@w#XaYyc)|xqBYk`590`f@ka;y0j08LsTzL31q*cRyg{Ox4!b6J3e{hUyigP3+ za?D$NtqC9Hg#sgeC@8PSMFJud4n99yhi-BRD2C$&jpm2%pA5W-n?$4U%O!l|izf%!=9j1Pm z`%*_flf1kw;rt~HWNee?HiMaa&qZ?31`E9;+@ z{4@Dx);HyPDzSaJjz0NWk>2@t=zk%hzPTU$nykM*;eLX|`oBo1Z|)O#KQGg>v~T`i zmoT%wxj(R5)-U`!`uC=6Kd~LN{?Y`vnsEM;GSesGckL|nCziFV$?HEP>tEIIx9jK6 zQorLr#ChG{@!#dM)PL`<#rfL_i~EUXtJUQE+nFOu`Vt1fME?M78&=1ga7I_y!2bKVg*0bFY(N;YnFR!ybU$p+WI=hTeG~jp+<4n#z^waa$nc~ z{5OHAtlQ1sdGWW({k{DEOMl7a|F35De?$H&YL+L+-{bw?(Sd)WeSZAe9C^*TPHdi}#-0CY1`~RGJx$hoPS$%)mN(C4oNb=XupveMC9Vr3t`AgL z%Hy~7)d=4L+b$=NiRX<<{MoE`7S%K7a{tKBoCj=^?ajuQHuHnh=BJ!3?Sdq*Yu)A@ z%8y=nvHzOqFZ=#&w>*2^v$vJLw6o=vA1N~5rNsFEo)l%WjiysBD?}Hwi1rENrlQpW&avz40{5}{=LzCU# z;FtwZ)hzIPXQA^ev%s&M1%B-;@NdonzjGFNgF4H;wUV4~Sf@$GhpAccm(PNK-z??l z&QiW>7Je?9h0agTfm8&D*zb3tT*b7vIg;G?A~G#4991!I0b+QidYIv9N*<(fY>e z(tJ_IfY{~26OUn_j-WDLK!H{wLH;bqKqxpmV_ydkC+-V`B1B0fxMOqoP6e;@^U;{k z-!MXjN5_@1NN{KbSbGnKw+~|r3VCs>{IUHBbH|M@wvPwL17p6xfk3~)-`zGE2oCuB z4l0N%5L7fMBYwH(E<+9xYR1K#mKA^T)40dilK#U_m-*(OYWa7*8uK4FOnoF3r4LK_ zBY&GkS4F-S%{Tq6E*<)~)RU(Y;FS_?`Z*JBrtdG2<6TPpIC;_nPqVdMprg=l}h^zjoX zb>H)rY~>BgpCom5ytD31&P%JO+*--=C2su(<{#xf=g`{D5X%E`Bq-)W>CEbAb zE$NkL-;!=c`<8SE+Sg*~wP@dx?m_#O^k%egNpC~@mh{Yg&=0k*I_e&j3ZK|@I(|3B^ z89Lv`+t}H5=BnxG8&1)mTRF0A_e)ySTN!O<{(9+GxNiN7`ta9FAK2W>Z4W5Tig5sC>3sUj1f#NK{8KOK%AGIH zZ99XqSEHSE)XqB5PNpW?Icb~fraVsPE9=haMCVIX26<|med@HX-#Nu;Yk8X^djZV^it)_>2h@{MLV+XWoq*%ol8L<)mck*&|bPK+dE>Ps*?D6CB8+n ze~jwALiKg3tEC?K?u&EU&Y;{pf#c064kdl6SmNlAILNo;F`_4h{u1jiM%ihl>Gbr; zCf;`w&+hc8bcx3+@xZMiy-cLHy{IcoOc}nkqK)&XL(zXlZG4w>cl&(Q*VQF|z4S@0 z2h&$5-#I-;c|dvY1KZjr?hT!G5zpteJ#e~2dEmtoI=k8)a4X6Nq)$_t%1;SBwCK(j z<=||(Gd-=}0p3qfvpc3;#P^q#DfAV3@zy)jH|*Al?=Mqdx3nF6@nz_MdMEmDn)JXW zWuY=<`|19+2fj_^k*9bkw;jLcvmv4@<21?wuZ!9w{{5cHoc^jZ^$eYVq4RM4UUoWt z>Q-v+W%?`2I%5<+_ykWNmP!Lv&r%9cM|0IRr`1TdZ{90Lb7-RdbPH!smm7-PCez$ z2xLR@J5BkT`^a~%dq>EQ=KtFPlYE_IO7>JI;rc55?MdPNpH$rr(f{MwQ}2IA_^V~m z>rW|Dp!vhVm7>(#BJ5z29iJ1$(ZOcoI3#gU9FP}BuRAA7@A?FKcT0MYN88AWwUIir z4ZmzdZmS3fvU4504GH#bm_I?|>N&j=3>+2>4|@ zU?~@!nYhKYh5x#6>Bh}fE8PqH>2Y|YQx!{vxO~iCWS#|XPH3#nD6f9@fnVJ4rC(e< z`RX;tmdV0s(!81Ezw@yH%tHE;;E$zWz4ddi-FF+(Nv2Nx7w8`fy2}=X%iNc_!xR3X zyQ-Iy=I_J1&qu(7Dyl|I9iiEqqWt2$pMLF@>t4I((O*7t&oAD4?W@eM5z zJanrdJc`6JV^ma^z6$rFVE*F&!}RoSI$uv`te<|L&R5g9_>a@mxF^L;=O^e~@u%tO zSLl2`opGwlh}F1F0i)JwK0DF^1OuFMh+L(Kb^-%n4QYs7$IEuoO`w@DcJX}*5h zNifi(v}e0Nk#e)%@gZ&V&tCW*pC-VGLbr#gjCJ0FwJv_RU$^;h(*b zE$iXg)y6Z^(~T1M#%xjVKKk29aK6@H*4rcMA^-dI_Z0Q>K9T=MO8X}^-@Hk?=!KtI zXD%>nTo*4+$p76t)BJuS^FC^G4LnC)m}|@taMlI*fTK}nGm0|s;ZgbshW4ydOhBHPwip> z=hFfqE+K4l%kP<4WF*S3u$$!*w;B_Fb#`;h#HM}>+ZA}0zEw@$kcJIv?K^YvSh8+Q z!|R1oY%GQ0Eo{1K+ktHvE$wLyJ4tD{saV6EvHF61Jcq5Tspn7u?GjusoQp@Eb&U-J z^loZXuPok*8uL(lNx?b13AT_Z(a;6`#v;sEw6CD(M_v572Ag8Xo&0(e%6zf}*QvH2 z@#bt7VtWVIHeJI@8ft7KbhdwiaHiCy@tgJSFqM=B`}a`Feg$$?@I;RN8EPq|ktYi6 z3&`S9ns~x({{&%4S;-TXc0602vWh3X_M3sNnI{_U4+2{YPqf+JLY+3ASZ}|L2v2F} ziLLe@qn!?(*l90AqO;)LRC>1^uZc@pn|CcGhU^hwThFN;x8ubsDcw8~vHt-%JsF>( z!~y%)k=SH_l}GGfL_3@3fcr`Yqj=@Gz!h zO@Wx;rPm0)mRh@?*ZI$ql;dfh+}q1$zR(EcED!8dQA=6Un{PjlBR*2?K>}~M%zm|D z^R_!pcy_cQ@wV_<(;QpI{2U0vTNB7JGj}pDm#q4t_8_ZN&B4D#jEc$M9X&Ysy;B67 z=yoSK>*9w=Agp44Z?5&ihm({wXS85CR@)?3FDIk2mi9~$h1xydUol%UXD4%mtJ~`pU5<9z5wf%O zU18|4mdBC-k+mq9sIr2LC2sJ(_1M5FGttoWLJ00D>{)a0-hhvt!UE=3ILrEuNMosZ1Io{^aZjqoqMxH9yJP{9E9#I`}u14YcrpxWlkrmnS z_{5)UYWWh*36D>(el``71^HNV@kkHBApJRWN{t;_3ozrrN^ zq@W#P7!SC@;g6@aB~>iGk>5||&Z6OXq}&){*g#x)fzcm#G!>`#azs$9GK|ILDU4|> zaPB+bg1g64dg)~frZ|pLgCtyYm>HA0pok?h8JQl*=Ni)gU*Rg-G zvJmCz?b^sudTXvw{)1znuqbl+ok1TqN?qjA6^GoQd0e{64;Zd|f1~MqCZCO$SMSl~ zCjPvH$m8kho&W*I*ZWi7*T=Ov;g7B_EbGzPewJqBOTt80b5jzT9q_MhQPfD!u7;Z) zsmUk4C^Lg;vREI4g#^aZB(dfm4wWY%6TOVD0-r_;Ly1CnWf`yGPHBrlb=XUKKgn=F zx6tN~Bl^Esbn+<%Q0mHE_XaaJ%gm$Xj!su|l5Vica^~=U9>U+oqvUc5r3L=JK&hZj zfh{n*g{7Zl6yMnQMNDOUQ{!{WWMC@=MI)6zDK$c6u6_j4$8PBlzMnz;wD`i3XMn#Z zrTKBon!f30K5kD^#mFP4!cEeVH0J^P!t6@^o_#Cv%>HJfmEF`03Cr*Y5XtR>hIKtdLB}aF_0}Yik{Scu8L2FHgN~GOt*Z^3d_QB8|_$*PIpLo zZeLs)5XA=&8bTi>8=F9Pl2_@E|2o_%AHR6x-^;m4xqSxzjIUdMHh`Vp#$lY@y)^fN zmFIl>IEKT>DY%>68c^`C+DX8GoQ(REY|WLP|I?qO(?7%I{ZD+EH^lSiJ^uXFEE}Dl zA3e}4Z~?*%Q~x(;{^KeFbhM*7Ta`={ElTfdnUkDMs6@<8$thoJYQX`?Dd8mJ9?7W= zzl<&NeO(Di3Xz%W1FmNik=dwx%QrQo6_G6yVL1bv>>5AnWFoU=F|1Kk4x0kR9XLW{ z^MEG*e)3d3fSCN3$e8oDTmNr|viM)V#3>j@=t$%Hd3XSJIkRDbVOhiwb~Y6dllzw# zJqb|^&{)*+^6Xv~5qE)(0$@zCD=D3S|Wy33xggLIiQl9@8lm}T7Lse>0u_ zTDMt)Bi74jfD0SrQ`aFJ>z*EmT&=^b`H&0gXJR`FHc zTLm>X;U2ZM0BnT>5PqF8ZL@3{Gmv~9w*n=1yE{<#tHyV5xU+0Jd|_WKeIP3dBEvV3 zWOC#1*ZGg1=3(ojXIc3yOT*2`CNcMOsosV%#l*}bq&T#ggu0CNQ;*2j70>d;EwZCq z?Z+u_D{$KQBy=lhYqTiUyI@pcyF3v(c@ILZGMk&Se+(&{gy>DwGeAmz?5CI4O({OAgtf6Yyj3;be`~dKdc+Y+PVy?<)&Xl zBe#P4*VZ&oDSx_0%<}XcabBZ}h~NGUpEyF54bN;SirIMWMrD}H=;mQqLXR$9$6#Mk z>Sm0$sS3^3>ET;8rcZX7*c(I?V=IEnIp{dQO=Wwm8A5{e3v#tW(f;@~5pZ|9x-^J( z4{#XPN?tFSUz-bs^>?vjX;b(_+fB5ITE~&Lf^V&-o*VWTgGQiy@TP zuG$6drO01JAPH7$%ni5pE2LeOdtO0de=STZf5X;X1%jmIC9(W=1n<8PG(6{JJ}Wl+ zp1cu!go;y1A-v4*{P8vTkmg?T7z>TO-f;W%f+w|Gq^bCgf%TL<*?R{?JfoE+!^_Gf zdgpW10p?7n!2&)M-m;{k&{c+I659_~tL4JoCnlqN)7M-pYekQ0`ntnHNZQi3OohAf zPTrMH`+lUw9G->J!7txB**OoH^kl+*he8>!=f^!78{OqLo!i4Z8%gJ7g(6jmV}*%OO;Rf(a=!6rYSBS|X_b`~N4tX+ zPNS}jNIyQ+WAR8Npt$cKK?@Q21QN8{ue4{BtwI3&6tYmi=V6=E()vdNEy0W0?=K6O ztnr~@$$kTr9|oLVBwSqBw5IVb$8=avcXI_-U`&>`ms--6lAP=6Ys1^vA82MxpKE^& zf}@pRJ$NT-QT+Qwy=Pe(KBcQ31v>OfBlF63YVkp>-CUq$i=-~Z>=IZ}5t`ofp^=hy zRk%_^;gFr>(=1xt7!b(e#QW9f7q=aPSKHFbrJQe_>Xc0qOOi^b7V9eV97VJasg_#! z`6p>}>v2O^2Ie-!W!b;&eZc%qt|jhF!A2AmAF7SxFTl_5(cHoqFNt69dnyEp<9)s< z`tu);uhOS3r1+?yLO-oG1uWV7mwnU-F5$g&>bw1u$&wQs*&aQzL40zQIVL2Dp86-98rgg-hCMIWK_Y0Xw=a+if6{-ODzHDp94Q;hZsJA>j-_m(dfMCU8p|VDg!3 z!cY@U8Z+@YMd^P^>Uk(!)j`x_w!JFZ_dfMvKNGNB>!nDxZCfqllrKxW(%$GCfU=?sH_nUBHa{KCJ@v zc<^iYcJc9@JhODhz$Rf2kppQ_=;ghy<+wfd6R9cRrgtFmUPI$q)dkN0MW{#mmfcm$ zp!-aqPiNpuEb_B7^Hqb^o;{vN&|HenfpgTW|DDPQc)oUQm)ahaD#!F_wIm1EmiWgI z&lUCd={csiM9##Z>J#+lplIo=Z)kFcLliuN4L6j4EqIY0b}Y%;lv&LFj1Qfm=bfCLOvC&2)GB z4yLH+#g&rpJWUorOP4vSf$qUGK9A5;XSpNXFj@Vwf{3|kA>y%pDR@3DJUV87^-xBYCG7GI zZH~6|sW>tCst>Vb#)WK=VZRvJ?^N7{jXwdT@W;h1mC;went{-UO>k{ph~_>n4e1uN z#TOs@SI6Wn3}oTo6;H}k9d4_aLJ(g8*%#g7?aRm7o)7$4sk%?A)Hgimo9!nd@;=Tl z?nyiYym`<(?i82SfQO(NH8j?*!=>(*J7veZAWq+xqH`eQ5rpZ*Ga3FZ zg5yIMxLknz#ghP0d39*Bimc?}D*lPoK0LLrF_IB~o-L0K1(>CHVe2ca! zj7O*R?ljo6w$9^;poWYE^yJFjg0SprkIhun@9XQ~GJf(}qTA^4+4E1#*I=LPp6Q~7 zEt-02A3_spa8;~;fE!9{tsSkn{8*~mx4AQG#s}Nu;P&Q+jSAhPXIg&W;|$N$moneG z=||EJiqFr3WUre`=vD5o$LNnQ_faXj{MRDaH{B~Mbiuz>>x8w_JN8}2s16}yzGgep zvmJ_Rre3EfPo%&;lxcXoY|_+Pq;KDfa5SrfS{STjYaJMdL@sxt|$s_JV-XL42@l$d(xTf8DScq$Q->3cNez}?|Jk6A};Jd?4&gCyuRN( z{c|;fHIQi_;W%L!P~1)&kl4K*yYriC*#z$m3pvuO)P}`lJr_@-M6~VNZ)^&t$&AJi zb#E>?Bn+{&T@0P%p%LDuh6F~p3{ujsJW>|WQ8Mu`yRH6yr-{1~>eq7k@CRG6wSdy= zcXViKCTZ07NRB}U|4sI{M%(jK2hLbC;3@F$slwcnEa(Rt@~B_fth&xaSlwG`F=vAH zA6+D$>L_0kGxMg@anH|Q6K>^eUPA6}7QBeB8LqaLZQZ`)?ApJW;xxP2dZ_2zUaoIT ztMYnzMbcljd0o6TiFMo%GW$k-VOAt7S-%EvE|JCU)!#i~YU?yhQ8hmaJ?>(z;AZLO zE@cupwqb5w$~)a-$kt0FJy(l`+Jr+`CbzZ0KPj7^P;8}+Cu^e@aNO@?~-Lu3i)brEyU~|! zj{xdxvAmZLk#CBp*UMx98D%7dENSyHTJHRQOC=og+EDMdYG~)ph#*bca~nq3;8J+0 zS~B+Dt>opiSr(JrWw@F0oUKY4tE|xLPM^)Lt}B|i_gj5jyF|M`Q2+Fj)%}zfjE}_e z!Z%2l>tb^AHf4>VZt=u5_Nj;KzC=JxAkG(mn`Qk%a8#;@xyT!OxgE`gr#y~W1;PY3 zcbQyZ8Wc|Qa=b;iD4Lj+N&DI%>@Y~T=HD7Hzr#l@ z_3>J+gnapP#>V@lIqS%c%o=I;PoAJHxsX_hSZ3h4qa|U3&N^=hdq47^pT;kI6ki~yf5lm1BMN^qPXxf ziZnWLTFx_W^$n3NT6BapS~O$gQgrnVe^bha-(HRua*IA;gYSH;FZ`we&zX(=dfTI6 z7^m3CyBqvnb;<|3%7t+(H21?#qwwL7xU9j3@3+CWX00UdU$@3s;dpNX6esgWzilBL zeS|)mmMT`z%Y=xgMSiP*v3+;0+`4#l&SlcDmd^kB$&mi^PzzVqzjm>_RtSdFDqK5E zi0~|O7B%Vzx=V-bQWLX4?!8$@{yfi?TSZ3+*)FCQ1&Hqkx|~MaQ`CfDFx}s{=bHV; zSMfUU9H=C`h70A<=-967oRxedtFpFAtS{OilHHsr&980fhHZiqbL(EC@=~kN4?}#D z@Bz5g()tFEPyBxr5^YPw+sQJ2Hl$bxFZOFPwFvvW1i!qJ&hNLum82W0@nWHEd!b)6 zoqL91-gjh5uxPyw5W(fNujBQRxnZ3|`AEE+(HtS{vo8J;weVb3(=jVkWSl$9sDKTz zO#2Lq!iCbrJ`W|8V7}3wXApzXa8W2Um7=>uozrg zP?R@p5xMKAE53&aslXAJu+$}c_85O5`*1=GsVlM z;00=t?yd3ZtV7+(M$z(tyfqlW?vmyk;ntz%CAvNUfio3Rm1R@bWd1itfTLPFX|tf(^w>nHEx(p+*?ptSABSA z<*Xi9OS+5sir8v7YAbKCt3Ny$bx9D7t6a^h(aeF!KkU`{NI`S5PYsI*_Vion~x_D{G0Tq zJ5!WM8~1xb*45X9hry_?tWp#3B%TS&a^@lTfevyDZRc$D&fMtsr>V-|b*x(!!>S-# z93iV(hsC(~k8r!@tw5IO4fPPYuQKwCr#O#o-mnqKIy*X%Bj90jkpa)KbEG|PB^|2x zqSZ9ErM66UnmsJ6T%Grpeb|SbIsxsU?q+<`Gs92|_?Y}^grZSeDGp%S(VJ(G`#a&X zw-rR%`gcWFaKFR*AZ~v+SsMCsz%5vUo~XV>p0w2%Q-&W!lp^GW32ezU#BOT>V>{L? zRmf>QIB6ge61~b)Ge5o=QIcA{@lw49(g6=und{=}Ip~MGCd6J*D?P&}I@&6P!!H}z zxUi)vilXGFtY?c$LiVHDM_$zz9BJrWnV*Ho7zK}o$d35D&o8^$5Z#Z} zJr8_bu8U55)qD|8)y0wVg5Co^ZqmSPuB4)Dr;x#XexuuTW37l%^ClKwCtZ_Qfh`Jt za70;Wt=SIa0gi(l(OAzXhy7{e8q4$bsdthrome1@g?~-(Vy}e-{q<&>#X1u0>1JEF zrIMC${@XIrnq8HT%?wP*KSKkFstUI1k2JO~F<`Q`((64;@5>0j&&m_ExL~DZY zHC7`;tJOx;vN9C%*0SnE2Z=R<^4*XRDDU3?_-@?~9VD_TYrslyLkYZ&D)@1fXeY*K z5Q);ros!Z>X3%r%^?tlv8Hk z9q;Zax^N5R)wbMwc&mL*ytX5({F$+i=UsYe@j{rea_Z;PBD1Kx%OOpO=4Vg!?@Yd-MzCB?_2yV6ok2-Rd7ev z?y@OSle#5uIdUGk_D5KpkNpSO2VDQ;I59L=lz4a;|FQsF%f$JdQJQz<*S6(t3$NBx z9zs~2t#mzT3T*GRKilY?GU|E+O;z2k%xnwG@3TC8PFFlgAiF78Q`pCQ_N-rPd;<7+ z<*MAbm=+cH8`{|1A73x-J1(~bxwi#raEMRacJo_za|8BQ9hFxdmAafxd1+6ZXin)C ztA>dbn_fhN+Dr{vckS9t^~V#o+f2W=?sgRNy^eXJ9c5&`-W+${+wKkz%(lXAMH{`) zL44yNipIVJjJ5#JvBgK>cItG9X;!&y>E&8Cd!Fk{8V&gLsR5o!|MZFb_2-wtgV<=4e)7GoAA~XH>B5t+SBIi`M9sAb86Ds$EH1OOYRuq>7#9kP#BN9%l7WH z!)~ARMonFCv1}HC;&^glnNh&Q+eafSq!*3|H_;NK z*5;9LF`xOwFQXjjmXH9v(piQ~l=WeRc19+%AJsm60OS^_aLcWB`Rr3`v327X>)zMp zO#Rs;Tf_b;J~SjZI%#X*C2}L&J^+?XqBj5CeZnAH?QDRt7CG^P;sR2l<9ouU$WmIf z4H3pK@>6u`UH%e(Xm|qFjnHN!bh>3RitMsK#6tP2q18$Fz`reW&;#X%^d|>^i09wk zW7Au2b>0jnnO!lckNIoI*b~Yj{Z?BKiFKrKYZL9_+jYd=3tuOJf+b2mj2Q&Wkiru2 z{s>Kn`lW#JH25g;hc>iTPoBWYP5F;StVNgFBRdjtgkBf8n(4_^;&>|tgLuh4=ow0z zIdU(%zU2=YUC(UHfE?YK|FG?sVbmDK96_>(SFGPlF=RQJj>#DmF)PKp;yXMEyts6* zb3?gp*p0%N!Nudot5MQ+Z$EWqvI^L)sUp21Nx#MJf900Mt;!y!Q#VQ&rI&12@#EeM zj?v5M=}cl;&A>p~0@F~fty`gQ-Gn(T3l$8tvUs|W;5|-XSk(fw|BI)wd!otBJdGYL^O5-{a=%l$s|tH?%8Uw|kXw}HmprdC z;b)pt3e>9-m*2WWRg|vQ+7iTSeM%6>h($c_8*#^AD>_lv2x&S$P-6NDFM^ zUwHz4{@FzH`SwL!QlYMlI9{j?l=Q{D1Cm$npr250YKrNwTX(^t+OW%ED9DaWl6ym^-y3E0gWM!U+TOf|Fj zjG$@OLTo-G+sTXvf2GRbD;E5pR|oa{H-v(u4YcvU9gI^%&Mv=(vW)_f$9>3C`97!@$a0VKbIP(Qx;74ONYFhFav- zyc*=y2zTx?%WZT7On@Guy^L&?S)dmv)Ki;wRsF3PxX&hO2RBjQe87{w!9Ou&C2#I9 zA@FH@XT(zMhw`c!VSMN9G_BlL@Lu|f`8w&nPT>CUw#hf=NT|IK2a%_qWYuMOdXc9F z<`BaT)jgfAUf0FK? znL!vm+8R;xFQ#mz$&%eQD`}y6GfZ@ym)C*2N@7>=52xNnx~f^Q3w=+>4NUsfq;Thg zRPTi{LVcr+UmQQFoFJj(+EhTluoT0*uDNvimZCg?-)&)Viw4lUoPXC19f5yo>=?k` zm131@;s&#RgjVHw2x^Zkt@<&VURnB~bh!-|8U2Kvy79{Y*#e+_`dYPQPq>dXJEbX zt2imG*e`BLh3S#iJp%6Qn@+<-MUH{awU{ql3BTTpn7%|)g zO2b`gcI^zOSpo!+%t4;V7LL>oc%0L^ttjWyWfWUEG+^x;CQ}~YODJuhAH`^t0=>e) zjQ`Pq^dOC74Ad`2e#>5d)b_DGUT}+e^#GCOx7L`_Z+M2TmPjd5U7Y{MtdGuRQg7|k z?Yz6i`Gp{BF+1N+O7(DSVZ=Q(b70Aazg&^J&YQ0meYu}e8tM`}d!YMcQQ{P&;ABvv zv4ZAuszUM3MztbSR`6Y$E@xL|p4yr$5~jC^QdCJ;;9>*zkomfB{P1)M-6TBd8NoQK zp69`N_B-R|D+%01wb2cw$!X*J+>9CFTnRE|#1%->>O4aITLCf* zQMyP`3>-Eh94`#&CItuyeJpT!Y)oMr1EIka{`O;i=@{Wf%DM?^0c=JZPiuOsv#Eh} z3>dH2d}gUTdhE$que9S_g0kTTR#l-@Vzvr%>f_;C9TZq0YY?L` zv5@pts3Y2hSGGw+;2aR&`@TRvgXv4$I*O6=`%ZA(u@aY8E(df@)HNayQ~%+`951dK z!8*zpFSZyX=lERE?D1{I-mauyEB!gPlT%Ki_;P5EMV;D5(^#>AS474+OZ!o}uy^9$ z-igyjseH9P{!3@aEQw#nuMkQ9yX~Buy{uKtVbQb)fQ56QSY!=evk{GI& zq4CUA=h}q(1|HSI8HQw$T-{pP+#DLGSO5!EH)kK7j+KefdUh1uZ^QAu|1=C8m5B$c6ir;1i$75B74ZWX;n>&X$$OZ|8w+^RFV+Rxhi``Fx1^pj_HUQpiGbQK8A zn#8BU@m07-6{_@ELBy4lS08dy?yMB9ewe%j(GCa)+@(o;phDvi_V}sxJ-_hobmFCl z{7T|Fdh$tAVo%)ST6_JE8itp4g%9-bEiXo^R+$bg+cI?kV%r0^Oq({$>1>&z=)ta} zonuJb$4M51gh%^g3o9p)P}0dTJx7+H(s8oS43iyLCC$oXg|CtyqJJnqqtf0a!Mwss zU8iL~8Dm(nm68R0infp>L_844doYfGat&E8pE}^qwsH+ycP#=1>v<2GmB|g5?F>q{#3&|1)uN)%Sdl`c*$oMPi~Yjo)MTjljC%f!)P z?vj%uSwU7E3umPSWTIg4+^k02RNMLsy{$j4%ihBxtqToQxJjU#X~s5>1K zW6M{8VT-CL=mD7SsJow;=|sJF94M~+7PT%&B498Y-_8_J3DbV7;=qQRRJvn)k=hQV zb2?&w=4M01lFqK`%KX{d$q=oyhrbXR8yUWX#X0}O*C%UQ4~(G} zuSV?ND_`=B_$}Rq3vEn0X!u}}BjCADf zKVJk$K+lLY3@onx51iFL=q!m#)#D%}MdRsN+jHYGu&zWs_R?k2dnM!F4J!pEOtOsZ z(N4?SHu|~Xots-)oAAJ#j{>e{R!a6@yKJ5>a&Mg#nZ-iQ{@4!jEUWPRz_3AYbozr? zd!|;tsp+iB%W#ls5|x)Y4YE@Y^Hd(O@MW@;V9HNzy?vG6|tKx19tI2uu=DBnAkP%fW4C@bF?W z8g<2S(6BL8;^h3i@1mBWQZk18a}mZLogted_C|t6&Ee2$e~xJD1BpYV>Xj86O&zlt zYY~`Uq2SX8gG-Q?(H*kMFDQ9k)BbC*@6>7bc9D!8{DU&Ofm3-BvjB*1GR@fuasKJT2QCz_Z6oF#O*e0DnCwEP^d+N`6gH8-;zW0ENY zAqSkIDx>3k8Gc)iPs`ht;W;Lar{^rXL5=ZZi(H)yoI2t_s1*OxzD+oV8=^T$zWnEsX&W zpq5#`w2yZ|IM+%zAdO(?-8xMMHnNTP4~zSD#w*SE6zFKVRj1&(C1fR?78A#3cWhb= z|KsaN+Vv0-Q$aP+#oeBS(UHn~#Jx>CqbA3cUx6S!>lP#Hm*{n?M)1y_d86ptU=|rI zhZm12q~jd1nAJJ_ig)K=8K?`?T%HbMpJ>w_a)^kxN1f(myGlT1o>127$Fqw76jCKZ zAG(?u`2xFxM^7}`MM#+BIl9LRj8Ib=c^D!hrywdxbNTzbAiV2|V7gy7wiA*`V}S~o z=*~R&pIgc$uZG+&J!MXRm4(M(34HICQNNI;UGOI-g?f9MqKqz>THui_^##XBD3R*t zon_tjJR8JeH8z%W6H@A=wFb4 z<9hd6d5dY*>w4;iZ`b?nqLP|eq`T|>_dH?RnhcMwMlWovwIH~UqY%8(E=BRo$oEl! zwhYwj>Q<9Rl_2)GE--vautt&lC$;gjaDNTDP`uQ;DBB8FCTid zYupKwBevN>c}!|m*}B9&uH#%Y{_6EK%jR6dn^U@&nh}8;a+Ij>zP#yKs@G(Csbp?; zT=+KFqQP_yH7LGtA@4awKslCZoFq0tx7-?)=6TZkxqSL}sj=N12IR8+6XnbevGukd zm6rpwt-7`@7K|7#L zs@i5hR!))RoK*9rE}r+J6Ww7ylNrU634to=d0CV8+1FL|$j1QI@5%`C5_r|dAIQ5= zGzlX&m{dn$tjrnd{-_|@kkBaqUWSN^+1_Xp z0x^{?K&H+iyAQae5Br0t_2dn4;JK0k04_8uZh)tZw|b=41EQ{3gI8UEI6tMnivm^8 z0T6I4uA1Yv;HT z;F!m157n1Ptu_|be_{(`dL(mlf4|JLg3ovc0jJi8VMg*kjJKScKpz7mq| zW^A-b=$Tg%EI`l>oH4k1r>9W)i3&6SVP_1t69!pc<&rh-CzNJtL%bLnQ)lANt|TdN zCLu@HlfV2tp7*AnvH3SCT<-_Hzs62FPksx*tTx83Hjc@0Jg3zg8AKU-A-*BjXEgyh zGY!uL^+qH_9khy@j0DW74rNSXw|O{D(-U0jM;Ly^g4CD$LXR#-eN=!kp#5} zM+-mtibm*+87PnjXuJ>UZ1i2kj84@m6kbdx?Fg*YS7z2>2Y=;6kwTFU%%=1{Cj!?nz}moJq~F8Kdgr1jznS>-&deA24IE@#FlP5wLfe;E1m z@CbPW;Aa#A-W$fF{ihPuNz17he=~5U-M&c%_Knz#Q0DvZ%G*3Ri}ndp-lXGpXvwDlx&x0PqxOKH_Q(*cmb&u&`(zb_c;g>ZJ$LZuLvL5vRh zXYO~V|2^+NF#kyS$aKtu`y4H>CSc*XN&dU?#>N7Q`Oh*tc$i)2Z;N zGyBBxEe!ZKL^GRqAM^25jS`&);~29GitLQ!LhiFD(wh1%x9!hIQKJ zUz#me5lr6LETYSs6tQ^@z+zZyyoMME=i z0IkVTDv~P;RHj0pc3~RLg-a3xV)g;lq8YiFGF8AKS!&l1XgslF;mhP>+zny34JiyR ziiNM$4?g^*DT2KoDC>pVg>0H~C`)E7THnQhf!61N^k0w%{F)Xjfl!40t2Nkc+0X1R zADx&nKzI2ResP8c-Dp0*i5I897-Ze5U67!Ml7b6#fh}=&nk4{UK?O(F@X=6U?I=#= zCSzL|05{SR+cmLxL!XIm{tGPmb9zUfVG>} zp$>4i04CG32{)9z@hi|{gHc{zT!$Zk^w+0gvxj@^;;6-n)Fwm}=(rk1to(SuAkPF7 zYXiHV@3lndklYrJxfHS#{129nfCvQI{~mz=#`FA71OgbUF4Meb$zSBE$t%Z@oe0S9 z`CyJqX$f9ne`uG*{_@v*X}`!RIsf`ASaL6v9$1e|-!Z(Gvcqba>X7e@;{3k4I>@&*Fo(nFdh6Af0ch?n1N{=a*3j>zqFLZH%I(_ z8a^Qu+x4%%HSN?F5ayih-^jzy%vuFN?^;8gkkcmIew#vE5(y{u6ls(6TU5h$~BgAqiJVVxidl^;H%|$$&*E;LSD6lG`~w zGARyvpz&I~A3S+%xRuI>(2+-f&C`C;OP_Qnp1?-MH+5>y>^gx{c9k~9lfseT2&R&=g|0-5_}CnB z8ZLSXt1ASs_TfPELf>yR%;iPY&<|T3S(#owns6d^NYZ(z{Yok{!}Jlq`qXJF==4## z)As4XRi)cD1U(JYhaa8xC*4Lv%$LS}aISHU9WRvcxy@F8EQTXV2jdu1u^5UH%!6rkkcdGRd8U-SD!+kY3{$p z_+dF;J3WK!C(QP=!}|YH5bnmxt{AWJ>5cEk^#5zYIMX~w-w$XbyRGS43o>})!$8Cg z%Z7ZWxp42L+nRy00b*$=QTJOLE>a98%5fvD0jV-ihhYN@_YuR~F>uG3;7mtYC?5tz zRdBrN_BNwZgVG?N1LG_W?k>{hjY7K>-8J`MzgtAl|84qTh$p#4T*SlOx{Fz2?*+4%g3!nmo1<_|%i|rpj zV=U|Th>RbXd^;LH(u7JnvQ!fDP7;6;!-w5$WROn~n`t^rGVAWsk4J8w(h;25_0ZB5 zU;!S!B<SdnAY4(>76T31yhg|3|_Z6%a*tu6O} zAhY~g;hwwf_WkTJOeDb4x{D8S-#8RxX=T(rb>DE_2+TTk-w6JW=To^Gcx%R>+w+ZJ z7?I*IP?uZ5ZR4A;S~nK=QQ+Ka0iI6QUf`U!j+=Kbp3bfN#H5M;6&_l+KaG`}0jP2;gK7OLYmeHzG;x)&G?2w`O532k0>OH+Gngs;`$ zwfF7@vYfkb$bZMvDbL-8v918yK0wa;H2JT0(({%VD@yx4kHZ^o4s@@8=Y7pvkgGmT zf;P(C)_Sz!xhL6nw?o5+V6Q&m%Jz%QyUmKStB&iKHc4w=bnS!R%FoVZ=Pff7r%m!J z9x}odyN~smDvH>xc+Ad+@DD3OwJfFJCo-oJP20Vgbk}7*ZBTSah5X85uhOP5ZHx80Q2{kj4_VtAz4@Alxe*7y#V=Y1Kb={!jdW6PYH$gi--@$ehn;FC4{jHI%di5VtYYE{39zvu z^}fvD-#(@v6T{Tn)@4crfE1>)M242iM>v1>080ODgEkc*GcXrLb-87=fTu0GGMy4M z=ggX^fzA(Ot-Syzcc@r5$Y!M+M>`f6da$HS<8XzhgbbirQ&I^yLqf9wnTCJP;eYE{ zc%pyx10KPs*ee8bP5;~KL-_z-fY8nu0F07kHmq_4m^6Ngzaaeof-=-+2+N1QA03wKR3}F@UQ*zA#8b0~7hzPDM-QiTHm! z>@A;PTh`hK_yD+9I0jZ!{r(Q3CLs2|?i32jmJcSbZI`}+??-|&RY<>%Z!J9uKO;eFc)h6ZZ(eL`7rPao}KeVO@6;+{U|3*w{l4PlIZ zcJM}`X#!rKPV=E@V#@e~UhDZ(bw`xo`T1fX*NtQ4lroEMc~z9ADTFkJxuHBxOG1|^ zZ-J~)muKkK{qw~hwBs$nTD&Gpn(*1dg?|mqm$KC4)OdwE;lI>$<<-veLc;d&ZOW^` zap7uzqII*VB>Gi7_0)wqP5B-f=vyb8s_imRC0VkoX87DNvD1n@us(qOW zV_uXi;E(#}H#6oX2mKBS%67Rb(PPZ%lLfK-6a(4>o$(hxn%Un{JL2$i#yb=GD0Op7 zEKBf7cV@4Bur$<&9~ zqMF`i#iFpe6CqwFWQu4cZ3}^Mn5C&kpz3JT%EBmiMuVbLDq~}d7~^`(KO`sw3G;sd zzCc00w6GO7Ak&mziKyawQN@zU8IY;Xb?Ow2UTXMy3KcJ#G^;YX_2e6Yp0kvYum>Y& zFa@4H6$%>(2W`X*+DMV#Mk1b#6ni#O;@OBb(Rgi`O?0B!l)`MvCYnvTXEu&!Hts~T zsmM2*%AncAf@TvBnoU*EY^w9kW?Il}PRci%>G@_eBj0Qip4rUIH=9|W*~}JZGbd;^ zbAx6>cC=nfhplKby_5P=6IAU5exq6VmS(XiXa$QsrLPT|L*0}LTpv{6hQBEAUle#s zb(tSjmzt^6qqxo}X=pOk3sxG%r^=l4t)3dv^sjxS)d=r4j5$Wp%9Se{ z4Xy8}VccQpD~+N%jBul2>^7d>R->rFC~h=DryCX(JdY9@4Et0h6fZ$+;Yy=ylcDPuw(3Q7 zl#1_yKBFXII0+*>(he2#*<7E3#D78w;tu34B*< zGVGa#w#hIz8(P9JXCdaKR->-oIAxQu39YCzPN9po%P{E@N*EQmY%-?f(rPTjWu`F; zmt967E_F21aAdQ{l3z|n&JhT-2aWnoMD({t z>FdVyO~%YtV^PAWJ7`c<@ntv zJ`drt%VR-KoxcqPcsq<}ulsKaHG(TGc{u@aYr zai+Mmi^vb)k}+Z;5?!VD2p(FwS2X>MRznkEQ(x9fs;HBsLcPX15m_tv9Y)?(W4q|< z=t|?HO~$-dqak4|KWMB>80!y`w*J;AdINfAwn80C1%Y-^a`B`k^`_^IqJKjfGQiN- zTUKhWg!av7H5Md{hJ(g(QR%AR8tU&ggC?yv0YNEG{U4sj{{J~o{a2dC=@|UPXgOJ(AAq(_O%bDlRJbclI=r1%HDxtNYyX?WCt}kqx6v) z4v&s^4v+MA|9OXx(f8hgUTVPb-n~>+FRE!D>e@4q^0?hH+_Psao#R$?%8pd7Q}&50 z$#o>A9jUIKXw$@~B@?5XCq^yxMXm1G=?h72vRbmN zv1Mt4rzgIKlXQrobpyi}Bs+%pW-jO&O=a24N^Xge+=k(S9w9hEc1_z>q)Vc##5*>g z*}enXv^ljuHNc9(_PTvLA}<)FQN(vd7_0!?D#?x8lAH*eAd4Fr81Eh)%8U*V2rcSQ zccce|EVrZvcc!~~Q#&Bt-i{2l7$jJ&w~h_^+qQYQtEY3ct2?EP(TLWcPLj>TIFp$R zhq?w+P~i*6`qppVnOM`fTpSURs2!xCE;Ep-71l}Nu08#y4vZ{oPSp1D-!{s$cl*XQ z^xc&nAL{NS(;6O2*NzQc&_C2un}P7sl$g$Rb?>VkAyJX$50BQ8@(d64W)r#xy3&1K zaz9yTPb!@uO-sV~`@6}++j{nQ4Rxn_k{zi`rhiE48DuJli1nkx)UsSGxl7|}T0*Xxth7n+ky?n{l6u!Iya0qq>=9qsB#$w7r_?OyMzsAmt2C;4`< zHnq2FY=9a?%E}U_ISD^C5Il*B+LIgBuWMhsW_6oSd$+IYP^iNwoNGdJ3!32Rk5W-|MVyr+qL(AP=??rA$4_hcsL_8i?d_WkV-Gc@Wy4-bQ;A*^2a^FanJA=<%A-2 z_jUCTDP5iz(^8BXuYY#0k?Oc3wZFL`8+&^8ZcFyAGkdqo8+-cK4vX2$-)3po6Neut zz}OHD>Pz(`h_O*NDvV_qIXg1w@{L1#hsD56W9g30wX3B`4fm`bOZx_>{*i7rOK(cp zm>oE>5n{MyXIyf4D3u&ZjV5Wmmg1Gk@ED}m1+7MvQe_76Y|^hsJI01Kq^MnMhR24) zIf6c2_3=gayA^7L`Gtl6nvkhmKtza+2dT3#jELewRv3TUwy$ot)9x z>GkYDraQ365D8tG%xM3fF_Q6M|Bzs#N3JTM_+sVN(u}niwTl-BWJk$Hd2OO8`T*Xr zD8xIwWQAM{3H6XGIH?@8aO?3+7m!h!cu4N)O3NFPYawVwa;dy7 zlh@_)+M?`%3}8Jh^yIc4IW!MZ?~zrEr6IB8h+KUp$FfZk^H;FOrnJ(FfnJy-uP3&5 z_62vy~Qr*P-D9(@0yV@ zp8q`s@HvO-@1?#3v2(yErHr9HBe=hl#-VG6h1R|9PsX{eusPD@(p=D{SpjAH}E%shml zCcDMrkYDFXQ8L>`iLBC%fdW-v+MpEz{V5~7*OO{Hq1F}Y?8GIesnP{ zswUAaQUM-v|08Dl(d-V#8`fA3Y+5ABk?cB?cEOqMk!1Hke~LO~pnnhY zq%+dYXa$2@yeM7`@?r$0`h+Be)I1)Ltz!$a@rEyvoyb`erJ{qU_9V{(astHgFB&E3 zh-q&;y$;K+%_+(5T3(q+o9-CFg4mnLx5-f*eD zkw_n)e3{fB=GPQDfi;Hx6STCa;hy`cZFJN(jS5b90_>!cVkJd=29uDz#m&PQ=dDF} z3?XuIhbaWcn_U_oxRchb%Q+spheyV9x%Q`qSc>gCc5K^`opWf)S)0GJ?p(7yyPD#T z?a$jew$WZ-zu3Miq+V-SyD&Xr^pJe6Z9jASwvAgmc?p;7iV!a<& zb##hmaitrRti##SrcunCYliy=vUM2SZ{+Z*n1nTKa!ce!=-c0SSJU~Eutm)t|6(# zS+S#I&uZHtd@k7`a2>6l$bv}Ql&#qjOo)zI=S?J=70G-gDH|kZD;N7+zE14!T9cv% z?d)goQJyTp06XJkw=G?c$yZFr?d#TW5Z0UI$=|c^iHC7}rosx(5?|Kr6Uox-Ji;Ow zp|xQ@kBmGHt=Zelqr=Wlp53|!hR1p^2j(mq7Ki}+lES?Dds4j6RK&{MH?(lq38u5l zMB+I&n{bQe2n~DotyRg6FQZZR}R`$G& zXZbcR^Yx>*8i6WpA5IHnhXQ%V9yCfZ5K05WUQ^msS{cPoCU27=CwkxJGDm@WroYFp zdSVsDba`5#<|g+t!(du|NHM^W!+m9`)*g*`Y#g>7U6DxRO-(veWNW(nF zf^Ocu$+C@dG@X1A-PDlwb(M4@ptClLUd;0^39*Vf152?HxfDapghS}_XIJF{v3uaD z8FL1tPUevw?e12Rdq-0w-E@-ut2}4PU7&AqO*3THxk_UZf9224xg8}erF(3YY9AOI z9Gc*K6Yc1wE}(J~T!E|C?BtEZL_e&5wxCTyL(V1Agl*PF)}ypsweq4)Dod7jTmLBa zUr%y#|M_G6WZ%QyT<5b`?s#^P$)!ZLbk3uM9^&Dqt9u^}Nxms|b9Psi8#%C%6^k?I z96MvZ$u~R4pe@;cVE@f%s<(}H1Z}oOp(1;;1zdLbbq)2V#A2714=~`~q}=&RD;t55$kgFd2&B{cs-rW&a{mU*~Le8$A(pk z&w(M`&?C}W(j(lXLTU0g^UySuP44v?(*$n4MUUSx;z^_r+g>5{cZs>kXA}JNc)k|P z4Fu)T02U|%E$tOvfnwv(Hz*c#TzJbFA`gm#YIaPKq*2maE0I7r4;QBuBntX$iRp-3 z=?RHG@#bL*f-SKUAH9GnzgwB0=DKd>?LNAqDo;#u9Jj7$+4IixgX+4HvZ<0HzdlF8zWv**R<$CoH0 zlg3-hvH6q5+sdUilf_4~=g;TImuAnM&yO!tE}AsHeA4sNb;VJR)lU}hX3v?=kFUs{ zL!KXBsoXzld~8CTh>uSZUo}O1^%U{briedjLL9gYDX*Of#_!_qiT(Ql1-}E##XEWV zC+d%gpQsOgZ&|OYe0d5weE~WTzYYJp0{lNE`47fFBjYa(#Q%W5C-(1;W&S4u`EeeD z>g#u}l%O+FKMV2v&Lr`5s-PdWCgW$K{-4ZrCdP~WwsI(7Mu?a6BM~ zFU$N-1oGc2>3b(|$m3F!CuO{Me26^2M0r8Rd&ivEGX7UG-aCJ$SjOW8ScvzI%#o+5 zD6Wh@5TH{d<1Y>5_xfE~kT17Ww72eG?@>JO&1Kdz5YEOi1+&O*+4(8lk)N2i|6&%ZW+HT5bw!t*TQ^$2Hr+)-qTLr$CF#| z$FH8;f&B=f=*OlRVFdn3ocb|N@m-^%N!iR*`ZB%R>+_K2htoZp{kex{ngCa!ji!40*}st)Om+_p52ez|oE~^thm*Yn!+W|0`0>DW zvTKZ(8y*}PNM%wzbt@WMR!p8LxtI2^N%3%DYA7>0uIwG{8cZd7#s&w+sfaI>WQTx1 zYwkhG;FG2ko>%lC*uE#se9lz)JW$T-T14i6GhK%O}>fLh31vaeRK~bGs)_6tNZ{D`LZF6$lx^*4xoypF&)tlQXmY-7^ObwF2SFKvV zdE@Fe$)>u-<@ufnlKMbuC@(#Apg)rr;rHewH+F7G=Jbr1fR=U2XVbb5bfFzx1N|4K z@<>edjRYOzfk%hLgR*%vs3}AyFUs#=Ax-Pb1S`#Vd`<+XvK}ixUYAVv4h~Z~oK+;= zz*9aGP(-+g^X28ai>RL70LK(gW}U2?hkM!Cz8BpP?52Fb;zZ9Ad$VP6?v+XVWRfRP z15Ur-L$69*dVDa`wTG^mQE~0_?uLdlsX7{l>i7Y&+WsDeLw#N8KBcZ_e27YlYi3lW zc#k>w14&97O$~G*qr4j#$S8HJuXUN!0s3ZRs2d$-9Ir0bCkL9op3z)Lln^71DB<1n zZv}`j5ny(@2K&2-h2ac;iP{9^J?XSkM*|`01L7c3A_8}J+6&?-q-@fjJ)^1pUWlJ3 zl=o=yd-Q?l1WN565-t+HyS8v{v$Acq2%~im5J@|k!fCe&rj)H`_%mUgY6%ZAouvE$$yb34d+UDh z>iM<2Pq6>ff%4w|z`I@)5O_3j{b-=P=TGyliHiL4LHS)ADDUl~ylZgH7UchOS>BVs z=ST6bs{#dr^?y20-rIk9*XQ1*{=P5KaZTSCQpuFeTenpmlLdpLG%l{-;zufm6Ysk+REbo1ODdW8I-ah?)Sw8VL zMPU7*3i zytAh$|F0K`>!Sg`bTDtdI=TF=ze-#`5r7ba^7GrS|C9KVxVFgpvHjntOdNkPOb1My zKfCT1S37`z1^F+XqI~by#r5R3ng9Osnfy~%-+kf!y|fyAAM0qK&vM$jHHc5}+R(71 zNoic#K!5bLe2LP~*x1zAtR#ZE`o4U|up>z%_}4*imGAA+|BHUm_}UAh1Bvc|{ylXR zuIs%pQCGk4?aTh<^I!i{SAU>oS^fK4$J^RJ-NXJHmXX~rZzlV1Sh8ffl34owvL!zM zkK4cKf3p1Uo;`Kx;rFGEci#UE%bS}izOk7UKuI)Z*{W-NUl_yZFa7WD|Mx}E@1p;k zmo3ll|GI|vNeBMY|M~s@J_!0P`@gx7`#it@o0cwb`pf$7KjZVU_RZ@wHMd*Rm6g1A zIxhV>t7QBS-Q4bPmC}MI!j!qn9Qi!i)Sn;D$iI3H4V2?8UqZ$QuGf4&|LQLn%HB=9 zULj5!%U=EE;D5RLRFUuME&119%l+r21^MMPS?;(jcYI6!HRuQS_Prtbe?*Eccnvl? zSndg#FL?F*)N_3K@#%Ou)AMfX+b+wUEB!&iYq2cvUA_9wpmLt5-pR-FW9^XjP1O%0 zvL5g1^=?SgKsT-5x)c3!-1C)t>5dE|{oFHtaQfNNmW8KY=sf?=Bj390(nnwV1@g_M z|2ElvQ(jkv%~jFTi;mB1H+AKa(ErEVwZ~OeZ2x@_6iqsqkH}21G$|kXLd7KMacui4 z%(&MqE^dxeKu!rD?@526h=S~ni^=jjvh^HK6k|Crxnh$n0Gud%>S0)Eo9 zCsWDqQ&QaM-~5|Key5Y)8RU1C25T#xCcpDEcrGr_+UOT1!}hx-Is+gOWC|KY51dW{w3nqs*c~6mmje{VGBxGI;;1Y;nT0!i!)|_ z`t#|vt20wZuYRF&;gW}jC1pKwO+P>G=J|i`GkQ+_*eh3m+yBAOb3c3H#UEFNCCo{T zKKy2Q$+xfd?APtvqd#2B%{|eW@tnMfd1A)Z{_yy# z|MT`J&E)4{lXWFDZCm1pn(&8Po2=8(T3#PP+o2`-sV3`v!c6MjZK9{EiTrjG`GqF( zKbXiTnDDQf@P3nZD4R^==b6OwUncUwCiWMZ#PeMf`LQN^M-#rn#GZ8~{%$kTbKOM# zD-->6Jd13B&o#;Cr6zhVn($Lh?0mr_o_3S=YBJG3%tX)ICidTA!hdRF=VTN8wI=d~ zCU(}D@U25y=Kra+yzZ%uiT(K|`g@qHpIT~Se~MXqndDU;6ZxM__@_+lj4+9FKdt5b ztTxdz-bBwBt>yKJbp3Km@ws54=W=jhjkEky!t(Y;E$%SjX*hptg?!N#z$bA6u`(F= zg5`jF;^gJ31^74P0H>n3KLor4OYM@r%7G)Uyx$?RFpF z=TT1=wC6AH0WL>9^y{e(T34-VG7$W=f``$bPZk5d1NAR!1N`fafS*A<|Bd>)e*!oi zCz2pU+VLvO>TgAU^=xWzuB8 zpJN;bqy61a0`7)(cExzU?={MwK|Rmo_jn_a&qsS68w1#hd?xBIz6_YR?-;a`{q<(@ za~=Kai*a6=1Go#up$Y97c@(f4_5XtMtKR{<74=U=JA?lOxDMBS96>vmJ_5KD{T+bz z^vehQ8|r@;?H_p>a6gp)5bcRQ2)GsM?}YL@jst!I<>?%j=2gCuS8LJEZ&LtUu)oYi zzxFKw{3G7LIMB{L9{}EsaVtkY`U}7vF>b9<&*y&yd=&X~toLjp;Ga6#9 z{*Hd7oCEwM@*g7~d<`&P7cv{;T=@{-`RK2@F7Dqh1vFidW?UqQ>krwQLtF%h8}=k6 z&q$h=<*+Z%W@Kfi&bMb~1{k_`8&SmeDNLFT8)T4T%j!5s8YP`=Hp3RsCC?BiXe{I!iG_4w8{3y=J{P8lE@LFk!4}bR z;d$v0cY6Nmv{a=|v;#I_5Jimfqg&ZJSa}+}BzTY6P)C4gVl?2w4sI9j?AOdbv;enj z5nkAzHE5taW&%l>bjNJAR{+a9*m>2^8q7tbP}Y3dpcVCtH{Mlqcx%$#P`E66@w%Bc zNVnh%?iL|yRNQm0t)!q!36j0movE^cerE_L(lZvax1~P}CQY9^ zD=j0{F?(L1=4NMbZ?P22ZlQKItP&065nCYIOkqnrm1mhxeN1QD@Nn@KXe#|&TE-l< zpHvd>A(=88up*VN;%AC70;SnjHZ#dc+k$;&=a`Mk&Y|K&7VNc3I_ylg{~aA4*nYw- zox$d!ZJ8Ws=4AU^iK6Mn_9GTU)O=|)K@FI;1{D$~bntUCGU%HZ%}za&WzSfMC&A22 zI_l4-j5o-$+Hm``X0-{+4XOl-idf4Vy$nzWPiRwsAuz78lQU8cW|4~u z>%-()$%VDKsWbSF>6vK*22wne9u3pvZ`Z_H^r7N#$PjTDAO{bK#&=st=FX*G(2V?@ z-3-W;R^5w~Zo0yLf(*a%Q7iU;5VD#$ANUN`LbQMuRZoD|Or}bOT1U&D}Ge4NBb z!~;*K`|_H*NQsy8BTC}s^?U;*Uj9C5gv86=H^fQ2yhVmC@$!<&c!`&{!k8lQ?IeDh z#LKUO&X)N05}z*d@>0wN5--0>pCj>BiC-e|@^g|riI<;;ye0AS^OJmu?Ms5?>_o@)C8g#NRCOWfCv%dQlJs;@!=9LKi7(oc=^@lNQsxl52l2CZ?>5o1_=yU$wN6Ck^ z2a{)Oh0oRe=J)&a7`8CHU*I5yiv@1Q@OpuR8UDM#Aq+1UxHZFz1a8CdGXjS)JYC?n z3{Mic9mDqvd;`OS1a8l8Pl3Z2?jZ1u3|j=YGJN(r$Kl|=z#YJUfo}r;1?~v`3)~6( z7q~O{FK`#|U*Ma;e}N;we}QiS{{`*}{tJ97_%Cob@L%BDz<+_egZ~2e0ROLX90~pl z+!Op4_;&DL;5)#7fqQ}f0`~_01-=vf7q}1jFK`t2FYsO9zrc5c{{r^~{{`*`{tMh6 z{1RgJQVyFI2!yHco_IE@Nn>7;1S@zz%k&z zz$3wbf$s(XIVQdNU|-ssAAlA!k!M`Y2t$(kAcPMzXg1=Po zS_Q9B@G1qbP_ReAixr%$;4B5tQ?OmZi3(0o@I(dM6dbGIXa)CIaBl_Qrr^$M`zts^ z!Po9q+F!wS3O=sjUle>$!Fv_FL&2LB{H21|DtL{8S1EXff;|detl(?~XDN7|g6#@U zRB(cVCo0&c;8+DmbF6z}H;}f{Jt3dbkC+BWXL2b&)CVr*ZT(f&9y#=Ky&XS^yowx~{wG_2Sc`_2PzBx@D)n|GJ|SQLq*jg!-#eSUtQvtv@H0rl*$GH$ivCE~Vc{ z>#pOD_PRUv)4MF1@9jpv-;p=- z+e&Km`_jl24T_4Bu0yooFrp-H*Y;*M1?)gg4y!0w>Z`bFEVbwq{gP34ZJt6ZOV-`N zy`vbmH4O6Vo)yyw%iea|a1*0{IIn+B zZ&O64TD2iejqc8BNY;l8Wwkg$d=}z_!H0p=2UpfHR|1LZ#7bg$B~`zRnC-GPxf71L zZB3Sn7+cj#ZHj1oYJ0hD$Ml&M%x%jykl#rR^>radxO}rJh)`Aq6ZS;c9n@H8Ry0v> zh#F_MPs@6U&M^I1l@mN+pAXp6`LAUBe#*KMg^os1*V3Lmw5S#-%kwun_}Q* zFz~`PW?+9|;Oj&o7`KYGMM6DS>YnJ^VnGwbt}wG8lVfZRj!C47;Yt-dpo-;C#qI;V zihV8?g4;+d(3n)nKXE34x+A>l-lN0xdR~G(?2d+nC%2s@Jt0I$x>p zBMM`-XSQKwYe#Xh*NkFL27l7;+7?KcDomG~iPww0);GMQ1tXqJloKYL)J{5QR(*^8 z@Ye<4W}YE2Bz&yv$-=Npi1JA}2MDDYrtR`8E!eQ}fHq*jA-+Y=;Cq4%hgxr*k9A z*!T#9IV?frBWqSdu2+%F?MSSP{T?*Nkg+S*Yt4O5K27*b1KM^nG!j_xDjuDKKYmRs}0Ti8KdaLhLAD=*X5zXJ&}^0mi9PbV?}ZRAe5;)9zP zer^{Yx*$2+aiO|(T?HOTVPg+!z%J{|t{36l!;_qLC|7(GmWiNa?`QxRGWP;@aspKj z7NlEf-*XLedB@JITp?{_kqzuz2VnDDL~>60?g9puS7YaMA?XRho72 zqt^qc_Fm-XPo!gWdptE?}8M+tQg|RO%+B*V!)Ag z4a||EecX}mm-wK2AczgR1u*LD-;R0e$JE0Wda3aBugWCs)3mP~=BegtEIq z`o(w%Y!$KR;y$B2_k%q>z@8{!&$5dUSUxCjImhiAO6~I`c;O7o_Ze4aXKjoj=Q3*GrF2kmK42e&$E%%wBrz%&yR~dWuvC zN(XhfACulaNk~^V-UOrr;j}-$sB~*8nfwz~>vrBi(PKOQ7=~3{R9@>(E(tv^n zg97Wiow}t=%1UOgb#d}F%w9IQ%}1S)bex$~YTLxFeX-aJBEj?++osHJsxfZcCbf=I z|94K?CW|PPQ6wxTA$zADDlUaBSNO=`Bs6JA-JR$o14lPLaP(urPHbpla!M}YrM4#2 zQMJW;z`}B5Ts@oKIkTHI$5h^CcGgZLS4fgPu-BL*8IUAXFR~;VzlSHu`g6wQEzgZ4tE_G-zBf7J)9IKRhe#q(grfeXxv9p7>*`YKl3E38tXOl_XvLTHeEt=pOtI*s#g)B>w2oJqx0Ko{ zaJmB17f;BanVCeRJLHA#^rkF$uj|uf4RFlA8|Fi;Js*$P|`*w1STyn6Z;VG%g$m(WW!< z9PD0V&!JsLd%gjC{&9}k^TIA}&yh29jAQ%k)Z7LMOcW=OeiR=L$LZnRDvwTjZ-O_) zHI5i)Vw$BM?>8#Nb>~bSNjGY7y$i0KBCZF;nG|;SQMn}u&-{Fv-&u0owC zjXI^=0mQqqH<8X%*sL>^DV^zo-J&zybL+qBOn0#ycf=FH*67z5QY&6Umn&{ngIkVz zxc@5^_kVSAU-~AP_oYpu&F`;e^(2yd-s=kW{8}4`-#DeBI;iLdsHkKoujuYNV?UZ& z$NSNk;6OM_YH17Zso92eH<6Q1vJ(}wDIHewzr~vS3MpOVhfY{%{W>R~gcYXmg(*0=KgsFQRoT}Xx>TUN-;kJ(yRe;eR2a7{U00PQ8E>;eUSD< zG6bV%pe;%7M_qz z>t<0R^G+ugnaMOV@3 zzJE0E`2EmPe6(Kk8eB5V;87X1#=35s{ua6D5V3oXfvLJHh&^e+ZyZRaw{0^bpiC5ZRs&x8M9vQrSVXV7~UccG)tF6zwft(%9S^zX0An8*rFQb#MyZ{=Uu!|kw84liEayZ^A_@%d+B$;6rF?gQgE>== z9ShhION`#*xpC2e2IZtMB*MOcU2*X%Ncr0}i-jsX1RG^Mf=TMik{P}k+2FAtSWv@7 zebOFx(r@I`Tnqyk1uoTdTP*QN07&)JHz3v5b4jXuYE7x$eS)NVn?16YMNG91MD7Wh zI;>IYVbc>r%2v}ozQ)T2WVNRdaJMG8Ppotd-_=?zAs?d7|3k=sf8>984q-O0rI+F- zT(Y>o1>}BATrmxvx!*mtkdqBzfX!Nn^|Bhs{Tf)ODfwoneX-N(I_R{U>~!XFDKs#w z=Z_N;?`UskH#s-MLgIfA7EI=4-_%h4UX334$vkWBKJ*w0UB=&QH5|Kh7~-|!cqKYs zC&HtUyC17K8}cG|64gJ4v>bo8;8I4@9W4M|34m4&dT2e{xlM4I9Z$#Pm% z@X`@W;984;YbVdZHL5timxx?(d+(KFVvO;fAS?`}C*ur37vO~&%w4}NN3=G6q_QTM z2_dQVasHS1NN`l*Kt|M7jkSlcHjLGVvtX(&pA(6X0A&0FBi&hgASW;=AZ(8}_mvC-shV${#5w7k4&t_yvj%6(vXC$Z=X5`^4x&C<+XT2}m0atW12b^S0THB}iVt(Fk$CU{T1dlJL(6lQRSW6xbk_2E zV*Do>5@~NNAPvxvNNvX*!6{9~R$DKrxi#6=x9#j9g>Mu1w_vB^v`&LWQvf!_HtOmi zwn1ePcTx+vIqhLovq`zmsL*#+sTy+LE0G?RZd54U<);v6&sD3To!9Kcph!`?!Ct`s z@{)@(BOLu8C#1$J(k1%?+F!Xe@UR z(&-EczDlaW$scm6C2HqZQ7x@MUoGd44}VrQDXqPL|FS6M(Mwbq&how_+o>RYTkfe= zfyz$HyD|;mmBU9d|Jx|@zeD)0xNp?@TzZHi#>;-j8t|z?#>Z2~k^ceH^L2welc-y#w27ga_Bc@qZskpwhQs-T6Xh|>zlEFcW zp@uh#Ek@I5M^#x*eR#$U=GIA)t(`wk(2p>+wo`ssJjRR3Hf{;UT5uN|H?}dJyF?87 z(@I)x@f-OhgKZ2%Dm|;TJZ7^w>l<*^1CPM0-@Kk?-F{G5$W;Jf3qTfF9AaA-2q6i3 z7h~!@ZFK5E#l#Z~dW2wNLnXu|^^Av08!cNL$iw)p6 z2$W0WUc#aq6b~Vj`a<4iI~#y}bgq=~(VZ4qY)3vW90ERCNIE7VIcFw30yqd4)62VvsF*3iU{J0K>0nV(2s_$5N2UQ4T?0$fd12yCe2%RIK@515~QEXcwf_^CX;sF8boR0e&%#riC3#H!G8HEsEu%uZWkrA~28mU}ZIlY`E7+g+ZTKe_6KrOgTDOLIN>~hs%K{;t6QxMyz%SbT0R1NFd_2#fT z;;@z;fMLyBMZ*fP4C{WamqFz|RCeD!OSyo$rKS$iVGoVBNL*7(6p z*7f&k)OG(-VK4_WuTmV}fnno3rSK_8f{NrQ|HR}Dz)mvf3S-(w_ed5Z1PkN$>MVS@ z!DQiiWFcukurN%ruxp=SVP7ByZ(@ui_VOsX9V@vW1k{uWd4Ro*pO)Hj1UZ>M?%`O2 zMOM_PrFQ#SOGvgeF}|CsB6ibND9pTxCtup4g+X$-9q&PKRoA$*2Dl zT83#Yt-mglq<^4WLofz0k1t%+RqwX7*2{vEA_9Q3)}yyac3gvrR+%g-S#alb{hUnANbTKhcH+FOYBp}^C7TFbSfLtyVR7>j}JLU92Jh77uh`oUS zvgj}SA{8(IoP1uy>m|zJy}HV@TNBZ4RqO@3m9d2E)^)oYRhmtG_St1gv#FuOE<=Hg zG+POr((Ld?EzMS93fJ|dH$Xv}t)|DAKb~fD7_VtIZ}9h|2WhsUN-X{;(s@^DHi0pa zNDfjAHN4TQvp-SvpQhQ#wwMf=NU!<{=js!fW!o50d>f0~`RP#~X?9oW~g z-s&p}Z(RZ`zQ_IlIVASiBAI{3Ej2mZh#U^x4IJJmIpqBd4#x_XeuTNR^%uosMZ{q* zd*KCa@?x*tnfXHU<*mTo5>)5e`KSpZdnxE^wYF9Eug5@QvdTICl^Z zMGn*k3VchoCLz5;N(N!I9UQ` z5aCeR(#JQ>M1j+ha44W@>Ko@Nf%8j%z@bp5a;s0AwgP86;ZXRq$T!Y+g@`kqa3~~t z*Eh}vf%7WiP?&VrR(=LbVnkQtM{MoI%=RF73Z8x|^a_7gj3b!fDWuxz9e%5TKSFC{ z6k@F`^f`vpPQ+P7I23us_{PZ7!`pz1>RH6aLtDr_i`5jC|InaaO>DI0lKnNUxzx*@ z>Uxiz>Ion{YB1MaS{G<-e9dJfKgF2TI)?wLHJA6W_I<2{H5XSU?(>Gq#ejA|Q!EBt z(D!+d=W`K-WA1iA-{;){EgiHL^69$^XeA&NR|3Z3O29p-)|G%q@)b6D_jiGAD~&Gs z@Qd;D+NL>{nnYzjUDgc%JaB?%QFs%bIiji;;)zIKKi#LlpV9;B>>3KiF9X6wAGl$F33$d?)j9=pSH zXSZt-c`w(H$mh8}PM!sA{y#c^J~DTEEmwB{r@s4h2XG?Cn*)GzqpbDkY~2AoFvHY} zH&82HE&whLeo0*P$?V^K;5>8IW7dkWt zUg*SW^g^H6(QpEKt&uN!0b@8&FAI)v$m7lH=6Qt^@PUO0LJy=to>6qd!wO`W!*Z>78|A zmoWkd3yoy=p9YeBwHC7b(d)@_N8o*8!DzX&ldU`XyVvTIMD~!17E`OLg{f5)hN%_R zXlk!O8ceOKP#R^JT2(`)wrCwpZ!Z{I0soVx_9b1hU?=LLG_{J5G_|q{Osy=%YT&{s z5}V$3qAprYt)w#`_$sM-+leBorS(B;WG~>q%+#*FLs+ znXR^Ha3N~&&W)hK?Gs6Z6V^6rJ5i#~jccttQKBK$R3O9TDuI*9?Ql^uxk^mox}Nj~ zC@{HddW`wwCYQr_HMzXO-;*AgTtk(L>ub_=-j&HEFb0yxL5iV9+FPqB9h71HP(+-R z^7zQV7CMlJrEIHb_|bOB<8T7g*Ac0{Yvf1%w;d7jV20c-$(Ul!>^C^GAsb+3qdudV zU9-AT`NUlP}XBjx75@DMWLpRQh=c~eb#e;~azNbmc2dH%(uC&!<`mx61pdUNY4 z>v5$}hGTEu!O!v>+7w*#g(@$fD>pwVvOlJz^q6cr_Z7Iv@Ppt0PgjG(34>B5uk^D1 zmyTDZ%muz}dDUV)XeBs7j>F{eXo4w+RzV<#qO~B0^VyJcaMKXfPv?x-_kgM<5fbAl8^zWkeuj zuy$;f7J(#zq&bnBS3-`%O0Fbu>hWFKbFQ z(_ev>?gu@o^-F`(vDi6t8Hoq$r@%5E*A06CXvj!@kzU8?rqny5)SIjUsfXK1>XX^9 zT=!%AB7{fon~IjmKvj##Kvfu#fvCpF;0mN6GEfz2rj5uz)lg)Rkp_`LCpf)c!2e`q z@W@JC8CYZhKo}V)LNYRtRS+4-Qmh6pd^oY`B{C2bq9OxHXF%{(QuPuUNUEjvKQ5Q* zz=xl_ob=INz<*g}@a82dU}R8t0F|cwa%JBB_JyezJy9>tq=Q}rPawT`Z-s~q+G>5y zUcpcHaV4YBfLcCXp-bEh4V1(wG-!2D3k{Tjuu2563F`m(ww2p1vY$ znT$rJ@5inxmOzwH#GYC%?`R`1oH=&Gf}+v*D6iX0X3m0wU#v z2U`e#h=eB~;ZG#tT884P!cE;YWk>ND?K8hF!+p1^6E{Amd0J+u!&_;*(i)YkNQ^yB;C;y%>L#+I(@WtKKd;tmMD zG8s?nD#(=9f3XO-1%>Rf2o%yDw~1NQf5SH)o6ww2FBST~P?^*BEiXVEPM~u+OkmC! zn!sBZ3v=3v`su%z2a5Tw-G1t2=)G7ioXP&0g<&-0ZJok639;adG|9`I0Gh@nf1WjGytw;>a|gR6W58$SVe<32D^wcby_UB5`0s0ML|W7h@p1l*W7%f%!(Lk}&38EW$h%~0Gz-9!x* z7l!CJ40f3>Z$(QG{gljCs?a^j>}UmcRJjy7S~FVS|FckLOtp~jEu@SIuP(&eHS^&n z3fI5HeSaZY5zX;EbtVjGPBkG}#&uC%ZXKMwpwV)_+0fA@pIOM~J;-N}tL<4ZyV={Yq6a2B0_Jh+3TC*ty+jpQjPf!vB7TDO1s{19%v^+j`|bi z5^;nZECR^*@p;;9A2TnD+djA+rR_%Q^>fwyj!ZP=R*Z7{WiiNY-za(i`+Q0atJRfN z(BF&m`72*-eMJK1T5>}tjIDqla`(sqhcwC@@J;pjfqIN>l$qiA1i(vRk4+Nc(ZL?u z;NvXzco#k{WRK(UF^xT@j{@Wx^@DX z!y8y6g5Al#%R#VN-oS1FFc`p`omh1wRSn=K%K(1G0R-a!3S(#hchUf2UbqV%B-Wo}MGev%3VxbB#8h ze_68qMjTJCg)p9$Jza&S1nhJ}NmXh}jVKAL;x@ zqWI=4Ai;VS$8EDAB8QPDM?3ZJM#*f{q$&`ef6P{g+}y>&Ue8wJTVYv*XaQ%KdkkIx z<7+9$H!4+(ZwGK}TOep{Nd+^yS?hAoOlBY9(;bfKdKgTk_?jhpvt%@SCK#yk+(0Ga zmp-pq%#(i!i^sMKWNF#*uL@Bl%z#Ooxf8Dj^XHJzh~S^$<`l%H&D@i-K(eu7n0L%l zlKn!MgYub5vN4lQ$=-~Ty*v*jn>~Ugd-H4|*|-0q1jT5@&-h>Bu06cQE9)mXD#J)R zXlV`F(lJU!wTimLB_t#gk*f#^xgsth5xK`nBDW)ipj2CW#ZaoL(`ns0G^W)ywDU<@ zqpGG&Myvf)?~TlP*V=2}@}4tzzUTS=5ofP``K`UzT6^!c*WRzAegJ7qZUtz+kB)#8 z&&pkJBF63@Nxj-q0|^C;W_H{9jm@kVY{BhKvQcN%Y!)pzeh%9t*xhjgvs~OL*xg&K z`BjizPh|JxQeyYP&5Yd~lnbhVqXFESTi}*HNK>CKs`@k?bfYK8_qeILW;{eLXN8XV zGk=a;kTRu5$$z9r$z$Xku%qU`j0eh{Ra_@X0mfRJJy!1j<5kng$_s!=&*JvK!ORhH z+;rwBD#9M#w*jn^vC1BF9FtOOM5iw)QagPpcKVjB(CIUlP^Z7Pk*%_SCnidoitcyR zefn>vDEc!L12!n4uzRCoVxHKj=!Fe_TBaSrvWIKFSPzH(UcOV$aTE$(pky++JJ(4!9=pp{ zwrZUb?c;li(rL2UWDH9g-gUDcg8SLaJ^b+U+hxZV-7Xr4wrn)*FSKkx!d`YVLB8 z%-rQ7L2;L}WOSFis2bemB0(sH;w~2{nojys`%I$?9Z+uO|c#_{&np5-usPyBrH!e;vWy;2!FRm z%sf?^(r!eh^{D}+{V0VbW$ap1TKGz()NImPxog=>@TMUfJ)~UY*3yal$BHn>E^~R3 z5Pj807M2l^3nmFMM#><9%iP%{(UnaST757{DDqU-xVBPeOH2}!&6vN9EOn4#5KWy! z9=4l$cF_`*=SFAf?I8rz*%`W96?X~!^K~56Kic@&cJcysQ0+LV73*P8+a>e&|JSrg zE}?Gd5`t4+FPrp0;zBQz>}*oxcI z2P*01oKo=6G>Z3rv~pd6N*3+&3Y7{Usp5A5PH5DgK&4xF2P;IIeSkuD?QB}PzCfj0 zb&EA>f1uL+xj0^HVp;G&Akj6sNiyj{Akl5O2RNxL*qcV`i%NQ?#Mn|BZ;-p&WQNZ|LMDrsJ3@4r+!xzjVW{05}DRe;FoOF7h%AwNvad%xyN%zIRV zm``$K{K1Z#4J&6WC5!Q{jiHOSN6zF*d+UU9*cQR-DnD1yy5dI^ZpT=7x#6Zz64^6Y z#31^#<5UvaS0ri&P9>4uC{a6cDv4|+qdIndUWV6B7TPyTMaizbBnj;psow6KNHIt3_y~C45r)AYNtjL1c3nvbi{p*!;(8c~bhl z^lEQ*i8Lu;Y>zZ4H5a>>lr9vznv~8I3nQ;iNcLi3a@EP`NvVtnA&gor8{-MDU{-6f zFvdxV+T+RC3*ME`3n{Vu`;R56F>WbwVvL_Jx+P=0i64VlR&!%qeZbZ5R+jKDU8Njg z`=KJCQU|qTmr&#^qXOEinnUeGM=Q7x3;s|B1wDDe^dgchOWGcUe$grz z-B?7gjAuA<6fhIxT?FRJcppDiYbOKSS%dAo5JTuTX7zlFZK;zZrBz8#qz{X{JF4D z=$22uGxPN%)6esHf>#fX*SC<@%f-O!@hJZNvw~LU>zifTr{}QfJ}g?si++=@nXfBa z!S}G>3M?4R3%;7q&DVh!+4?76TL0wB=Iajd^VOao)h*1|%~wgJiv0>=UsePq2XgGydHg9OG+(dn zb|v`-^0@h0yBis+&*A3l?r62qYuM;@D>QmAf}elospcz}gE%0WuY)fm)=YaF4}ckgFugd;j9k?eJ)bK~(c8JMOwp+9TQWtd z{Dg38E;mK}cexsndvm!dYGKMeHe0A?pyso?6IrbUhwtcq;nZG5j%FE+0r_+^%C!IHz~B$u7$SRMQE#C#H89q zOsf5cLR;-3wADp5E<#&h%>cA8)H5?+sI9q2<2{SKAl~h0!t#X<`LHv^{wZD9qz#%t zr!o7G3j%#Um;`#_3gzenn_9ercM?1F*lG;o9YhaWK_?!2#K1`ruEz};M7Y{TgsYv! zs2+z1SG$OCwetwqp)(o`xQYmj%jUZdjC z26>lX)~I;2LEhyJ8WoQ=$iJMSQSo$x{L7IV6^=2ue|e-veb`U-F!$7`!~J9*bLTV~ zfyA=lQGT+M`MaeOX$+9)0l)^C+cXJl?IOo3ccv}j6|6L6neMMBaP-bhY|3) z9O#h7F;62YZ>d65Q<~Rl^~As0sQ^%G!n;45XFF!crDFX7M#=7blZ|!Se{l` z7Hvg*V+=E3vz$%gT37UxE3L~*6Q8%6;m95S6xOqGiLkKaG~NFc`J9jmeCA9gJ})j+ z9OX^-(kHupIz_C)-oxpSF1CeGji5ADQnkO2Rbjv zSw~1&#TgB0V2+&ib}4JmR);;)<*ZG@CF;|s)ydEOa@J!~*1oNdfqs=c>v1WoIN2es zt(UVdm9h?Obwu=>oYh~->fP$RC`-{u;;oBKcTPiXU7Z%E5A~H^(jAStm z${D-RtCq&hjDk-ue15Y)%6G+0%u9(J62^4C$Mm^#s?fs^l2kps?{}bwuP+BZyf&Hi zaONV^!=^Q88&adHW%@RA7x;!JFzx5pmcf=E{^fRMRh44FIPuMUhK_U8CyfFgPlp*XgXwy222 zQBki{S}$ero8%)Gvgrq-pdgBHIEz>j8?AP!5Zl5C>RxN}e2Hdkw>E8tjn(GO%64lV zrdDqj+pVUF_!3MkkIzF9SK{*$;ZGYDTgh8ZThPLuc!5}M2%2x0tOw11mC`~{nS4GN zu9mbOeF#f$nXEtSwKqlPngY-0rxw#Dl37ffNKj(hhRZQ+E~Sn_;0`xf zt4T~7ul4=Lrer?E2K(j7swz2lbz7S0hj@qU6J`bOP8KHbO0cR~QK(ssi$Sy8Cy-_( zrEtxnRyUxekfPP9f}_Mbi;ku+HXk{RO>|EmSw2QUE(l{2!=j9v5ys}@ER4;Eg|TV% zK^U7NLUoOQPmr;TFgD6&_&=pA`a4|IBdd~?9(g9&$va$kCElE``wTzyFG$vX-CM?K zyK@}C$%~+*&p0aid=lBgNR)t4q}d>~DD?<5FccbKwWj59iYUOmk9nzuVKk+u*G;=P!6#_Jyv{xqI_%=i3y zEY~YR>@V6((jK8hHaa33?Km6r6IEaMmPFwTKb+{w7w#Q@OTO@XVyWq>MD7dkx!%=) z-I2(B;onswt3%_ZEk=~e>Q-dcXCbuLV=VvvLxSv;ygf;phL@Y9{lvw&uv+M{27i8@Abh$9=Q(qmcVpaz%@f=eXa_z!k-NDIfV;=W z5O>?-Te-~>wW52l=%28t8!ws|uer?=w1WGw;FbAMux>OJ92C#p<^ya9eak$-=(Kp* zZ9aS*=4hP9-RAwYc3#JJO0btpPb>J;dcsiUY*_Rp22c_eI?E$6C0k1m*BB7bkL+Wg)sZ2pT_ z(R{Vm{6%cO3pRi1F>3xHrFr9%r**!k3`$c{8`e`^6~3oNyqVDp9gXBc_Hzi?DZkB* zY3-Pwd%d_!^{rubm>P+j(_81DIU+ZJxD;K;DV-RFR4<89o|99adl>nFFtxS(!pCh{JM^aba7ROC2)ct52%@jrK20qLO zv*G&+)}!u^|CoEOtls#KQr0*A~qvls}xhdo^4EU4C>QNl^bFN)K3Cb zsCOY$3qn0SoS^pApoVg&+ug(vk3j*m>H{ttr?Zbc!S_<_bQWN^^6QuNWQxNS z$T$M1H$4KVcjtxD?5uWJ1D=S+hGoycBYAJMlSN$EEN#>5?ck;C&^dUMwYJ{$+3rU6 z`fOeCC3?WyddSF%Yq<<opo?|;Tn&rJq*na!x8q6V6_!DF-jWhY@l zf<^e)ajxc=|N4TrZw09C%@BA7CeK?Tu@kTW9u@kTS zHnL}WKcA^$b*yY2N38w~YvD{4>+KrWaK!rdT);Z-5yJZSXpZ%IsVUaiBCv%Z#9F{^ zx_W`obA-n@bab6r_LN-{mZQV!bk;v8{o$BjFqi_XVMbLu}QPoSn3~VDrMfA=|sQNBX4dUR2=@_)$wPZA<}O(rpH8z9=#f>eQ1!$M=bQ{grU@!3N| zVja}A)jH_22(jAf7oo0pYM8pe8!kHJs}X94Y{L#2IR`rAz!2(?9+B!)=pSje+F2In zbhXpH*i?4BW+0}NFm;8|#MJ#B32R?p73*%qx@I}i_lg(l|`mlCWK&{ z{|r^J#4s#1VbZLj9rPVQENu`=wl`t z(h?@Ec3x%*`|nTz_3H^L)FTKrA_kz=4<@L?G^mN;W~-gx@c*aP&e;&t)y~lnC)O}& zhRJHjuk296jjwYW_&R5e=5+iB`*7$i=)=kf`F-wC>a(%1&Z%h-D;#wAJUv}s-&~&o z1OF6Wb!)5&gP)CsrgHF95at>YVz$0HP>9saA(E#dNQM3{gq|4<&`%E{7>|bXIjk## z^6U(4eKVu*zprn`hB{l{bYtiOL)10H9u47@j$(mt8$FmKteL?PzFlD2JH@Pb?w$^P z7?6WM&xJTy-?R;Jw!TRzz@poyt5}C*HveML_?G06@JsprT+tEO89V{{|68d^o@OTVq|7;@Ma zIUMz80YPd2M>DbY&IKd2Q8HORso zW<)jxiUC@sNz7P;KQSEO=k_P~pHCzB*uJrU!EW_1=jQkn)?WdTt6~MSXPleMZ3QnX)y` zA6qy(1=#Aq*xDRGd?dHQImER<{S@F#pgJ=aCQTIrHAEYg*$Dr;832DEhhH7Q1*(yC z@DUUh`$|)8mie*%LT*N; z`q`Qp{|{ zA%8ItNB_g#wLnKzr0E_MMb`)Fs^ep3u8){b=%f=K0rDV(q#?nOAPF++Xw&I?6B_zu zKSFR^2ZabBL=fa5vIq!*ju4ztUg0%6M`cD=ah)T~I>*7C+)n2(GrI1sObBQsUN%sB!k@ml; znvCW|93E#*7ni^nX=?FwY0{jVo?!`GQ*BxT_o4KT&#OB~+{tqCEi3C%$Ue8Zn0)1H zAbBGi${8Ne^C9lLgM2LP+$~q`CvA|MiiTISB0WYC1bW6oGK1mEcCSWlV`U~z=eOg1 zn<}xps|_*_Gr4l>fy}qv1^WLsuK#Peyt9v)4b*TG8#Fu1NY$`!Ze50JVYitcZ1dtvjkF?LMpp=fqjK-=QJ#NI0&LYmxR#F zUJPOa(P{K1rFmk!%y!%_{sbLOXWAqe(++><34fjL#E8RwlKwW%`n6|Z;C0VA2dlz% z5Kd3UFEjks7$FN^VUMQB7$ccR#uy1wWXw!4GG>sbNo0(XV6a1qj4@JJWXvi;0{B?n zlA~>6WX$c=BFB*OZ8IWcjD|>LOoNz2B4hYdn^2s_urQc5FEuRYVKI$jBQr+~u}Pa3 z92T?tPd#KfOk7$$Ok9>6oeMEBKl_qBAU#|Pn-}j;m2t7hm`=w`(G3S-I{jh>nNGj^ z4x3I5Q~7if+0CO~3?kZo;m;VoBJy7N!kdB#n7aLIA+^(!LBEc!9KstB!WQbil_U{=>3e+4G05g*j)&+&98Y~kjIRHc z1_M7eIbv@E1IN_D`u}ad{#Q{3zHtJ#-2XlqgXd&*7kN41teqtit|D5yJOqz!B6YBt zb3rBhjI>4qXW|b+nIBFup#3~chISgDZM>5}d-7Wh+8-(hr0t_@+%3R7HyX8lJ#E`v zHNfISUJ61|X{7<_6ZrcRGiNqd{8@1+Ia4Hj(C^BqW01I%M=E(-ia!bfpQ$kD@j{VI zkB@;KyQh=>9=(~zmrfZFwvZ1Rk-|Z9R7%(60Tyn;f`j?@OUeoFmMnnBI1q;fLrkm4 z6mPO80;ToI2I`R})L#JVPiqM3H*ezcPZYHfZ}QnVxvJxGQuP2-UCpb0R$+=a`8QL= z3!&m8P;m~gc(j7sQk&+}^{&Dg=!X?zyveCBlxVBq@g}dD`ndx7xeogI_(s;xY|`lP zBHG96lf`%wg{JPCZ1k*F*v6Y&UT&u(Y;Fb+6vZ#g9j3FE6GYcZ$1R%!fMF#7)kC(1 z<>nG7RWwOH@7PZ#`0pnfY+q7hdQ%oib5k`T%`a|Xq$!>(3abj9nid*Nqs^HtcR!wX z9}&90$<+N==zjAw(*11SeNVaAy*>;dw~(#me)>KZA=b!F%j*LpjBriU)@XEoVS zwmo;jFU1OHEYX3PFF=m(OTSBk~%l-()HKP<2niJwmdOt+QFCl}9Az41Y*f%U^tGS&vb zIs&l%mXy@2IL)9KTFfaPHi!7`3xd8SOp z@@5&|-NA~_bLtz2UgQ+z6r7^GINuiAc8cxai`gkkPBWw&Dy63=_oBog)df3B45+(u zWvDFx_1!80b;WfI>L;Z#RE0r3cNI&zyexzD@k;R!uiBf7ztqribT_%e>ea2M?VP?7 z#+7>~PqY2cBP_AAeK)?U{9=Q0ZEl%zOX>PiNhmk-TK@fy5^kKHq<3>&Q_62bCk|BmS$uKbNT=YbotQ}M zy%XZ~bYBz?(02#Uk}K9ujD)k72d>8zoum--853%=7PsKEjff1V;1)abtD`*)Pg_q* z9uIpoIa5Y5b*792$(f?b;7kqDG;yYk1maB5N5PpgQkXL}g;1jX4BRw#M!ae6bg?)d zd{kxJG-ou#Uo+rI#F^qxZ9;MC`7oF^uNj;*-!#YDnK@#Jt=hb1z*~JM{n!M~PofVe zV3+C$xoPeQ+%$LKOZK28+GuJbg5y7^Cg>iIBa?7C+1^r2D(Wea-ak$z(!1trCcU3e z;L^)_&jR6M!aQ}Nu=B$UIpjjOOw6DgHWpcKBl;Yh938VyHg|a5GR=SdlJ+APSL4gT zl9!V9`cGfr;9p6g?{phC7kxs1vv)_Y_5m@55p=`v(`?o0uG^v1OXK)vPoV}$fg(cz zTx8l)I|L+rznqY;{whYoSI2WZaLrt3=GO5{0eq9ZJ6`rK4=Kx@KS#`0;n^H1Sahp+@oLj2c_VaBBR`_n?`}$1ol}0C8bQ<__kl>>VScd4lSe*9#3aF%z0= z08Im+dFe8S=4u1Y$22zj2csF9Q$m>7!(V5ZSg-(GmMafTz7SqqHUhmSd{JPyIQW|?L8=>e6c`lx=`}KivVlT{#bE#b6}Nv2Ifee7MrhwJ zbafS{)^;Ioti)}N8!G}YrqISjwZ5O%?=3?kC(|O$QHlY9Z+or>2fZjThK!4{_ z27R0X{b~w*dw~J{?n3_6Mu6tAhxWxNsJlL2hISo=RwqEa!DTu~2528lAkfBgXqyT+ zw1xLTGZzccdI~Z{m9>FCwCR5P!*dGtTpsg>ZlJBd;1;6FzDH;OQ~3t+4c{^aB?IzX z0Qp0gFyv?5vQ{3+p^8yue{v7}&qS3y>Kd?%Dx2@hpjxlW`x>LlCYTobW}xAhMTCY$ zBNz=g=btaC>_wt^#qf>Yd4%ybG>Up6A@J}u_u0xpO%9a$%_zI5viqr~Tjw&^pPOTP zi4&kt0qEbqn8!cnalt)CL!j&OOi^WDlHjSqqssd8GDVdgr&IM0qXwjN={Y8Z-v@+S z#}S0TyoezzHxMT7wWW@mQs=c?Lc`B!xbx$#3{ho!MrDdByM|)D(}eW{r;N27u>R{< zf;Eq0UF+glPu^pTbqRR4=^Fs+bc*#KM-7M}R-GI=jVgP{zO`63RDUxkQ&d?6)fbC$ z4cU1326;5AVKjHZXuQMu`+uYOX#VtF+x}mr{ok2GM)PnZJYFV`=IAK#NPP}1)R!w2 z+Bho1j4sbHN0k{fn!XlO-LdYZb$-9mewIz@&UL5EGxEDGyw^aQqI(S&?*Uu6ZGQr=@{%T*TZym)u+ltpxP%{Kj!AngaQUXvn0;n+@)YDGBjFPs0=43Lj;BzY4`@duxz3*~n z5cs+~82vE_)aZzxI{yFXzw_t9^W={>Pkzji>R78ES)5wGthZ->c2+!F-|=$#m7Of# z9SSGhs(WTEGGFs2+yw<=-JTf@=y!f)MAh6{DDI91eTn8sEaYCG#ll+9y&#bAs!jQR zhyHlGzGtJp{PF(wF4}6kyGLKO9y-I>dk@hJnzZ8(z=70aB`fa8k3Sf6#1kGN2BvmzE)mpuYMN!SA zsQG?W$%Rs*`Tk%esd~-NVPA+oM_q6qY9Zo2&mJ0a7Ajx&fbHa`l=`U9y`=~w5#{{w$!8D zCZfr7qj>z0aC4xAQZN%e3DUoWPR5YKkyv6L>(yrbAhKrUKnjIat|WD9RIyNM^NW4Y z?(EyNR3rtOS4f8YUhdJibfQvtgGJx=L%qFSEF@COj-Jp+CVILf(S+L{2}OP3MP5AH z)h0KZeu0EGCSPrGFzvym+dR0exEn~}hW7O3f2;56)K{*ztzzF_Q!*Y1YwT!cX#(~eH4q6OMyp_4ZukI4WLYzLokD)u}C7~j|Az& z0$6b*%-%>$)ncfy7Q*X<=4JDYPA8Z*g=K{bj0`4bOL*o3pJIztTBbH+(s?W-182<1vfLt_kkHUNLdd{IBM3u9U6nB^Jjk+gk`~i&ii!q` z5=1$s`ctZ-Se6>0zDWa9TrIH(S^%sBSA7W|P4*=cu|QKYf&OexhW(hxEnYkWT}l(O ze4>#!{1HxuT#6P}1HLe3nC1_}(F{bz@l13nk>=*Oh9)XrQngq-5J#{uqarb13t}W9 zPps7!bSa@^0*|LDk_@AKRcrPog9$InN+JNEK$!pOYh!=%1&+-%ShIzxhGv;WVN6cz z{F8@ArX8arkp(ns^i_``PAhaR6i6ygKGHqqf9ClIAWhSc@kNqwlk^+w`Tq*;CBp$| zI6g13P~;!y3sr#@y#d9X|5s@>H1#(0e>sv8v^U$Bd`9yLv8g>7&8KQQ-#SW_=BfG2 z2E{eO5*4`}&0u;)^TnkUTc6@Hml12%!m=rhVo?15wOBzPMe_|w#J2Kzhd?!uP%FcF z&173xX^=tb1%T8*Hz`HQ^dP<2tyh^^;X@D>CVPEpfsO5Zup&j9UTMVTdJi5(#u%=R zd{!inP{L#f`Uz{$FS8})&lemZz%P0zr~t9N(oY;fj``qzfnYDLME3Qdo&%FB6(K?@ z2V0}uC32BuWRoC61*sbio{<6}PgJm4$pb@)3J8KB)pn$|9?_4i!Y;*zovF>w%KH~E zF67q|9Btr@zVPah+_h;!NLh?5tayQ&Jq}8n}vpIv))Ke zI&JtY@|f|LS*3RBI>+3;(4Z4^kzM5+3oZuQY0nXc4A?6$8Z&t?fG*V66wfrI=Ne~K z)HPI8HrCYFIq-(n>h9jdo%)JxBF~7eBU?26+n4qoS)cBHQZ%h4e>o5I0W3N)2`tu; zr5qMXYayweIIZNOmGv{Q-V#TaTD7|O@D9t!X4Ti$PN}H8Qz|RY`$TjRQAqfA)E7gl z)5{)1S~%%V#54^aMR%pLqQRr!A2g%tnqj4b5sG&S2)M2Y5#@rd7xhS3yI zz5aPE(z6W_2DWlkC9I;9ug z3u;QX3{m(D`7zhR(j)c_bd>Qxnt_Qv%b3iBRtBZCJ)y<*2k@rWcJ&_Jj2wP_+2Ot? z_NA7t(s!&!hApaI)9CTes-KfS{*?aA7Jcy%X5Zdb3rsO>QOex=v-pQ{4f_vKgSfFs z$dIhXz+eDw`GUcSA1|6A?)LB`Am|{xqI@z{z-*#j0`;YCAxZAm$`5J1T^NZiAO#J5 z#*>iwldy;o#U&TQuy~4nm$bjQ_8@n#d`*F{mY_#baiqHvTFWBT-h))I170;kn#c8f zk8DMD2x2+e8eiIbbZu(ovi>#8k&}aLCEh*)-~uTA2=--S*nvU5qnJ2vQJg-`(|id_ z8InlKAX_i2HZ8I=C8bLx%?(QFQc0{}iHZ}F0%1#%uMI0no04KO?#t^Bsb1uuh45Yh zPr&^OkI21Kg~v!#3yZnINL-KuNKeFqLsBkOF6=5{=|Fq|>9paEIRnv2NRmlv&fsP3 zd1aGlsbSZFnQw9`=bb5;@y}A)V3wtZIm^ULQzFJ=O2RxfC1JjrOJUwxW@ZW9sp48# zbV7(iw#yls-UOQl^d=m#i+Xc`hRi}(#X&Kut-i2dQ}KLH1i~$bq@j|=uBEh36ZIwL zv9s5fm=Eb9qz92lpv;-4#WZ$cf^B81{xa3TBFf7nx@obPHx##;4T|J1V$X^Aramv- zaZ;SZAu+L%U9i;!UJNPEEKJJ|pC2u^_>2J;%eW_r^kg$G;LOgtCoe0Mm!&FM)x}ve zinAKBT}pO1vM@Wx#?>rwU^DZ_>#)bUs}uY(wgB6$%iz+nTK&tq@Jec~3;QOppP=vA z(D%~wy$64U6f$-(7{A0#0ULS&aV`6GWq9KXpEQUxQA(BUtOv78*!oTdlSr@u9Up;8 zz9y8{mv8NVdWZRRi5HgmN;Z(=Og08(DJ@EQdVUTLjeRD%$#{TdnFu4+YeHof3|g(c z#Ewr;&xTLd+OYiuyOVb3FPKKCQk>XCac?pjjG$?!+Ti08Ug`wR{1WrLA6k2K+6rZe zPz}-zHW@8es3;d=`%W7a;_eV*KjwbH5cytW=qG6?SUbrBF*!31JDei_oREa6M|Y%6 zzz37up~5%wN!t6)C{qlXG3Vu>7Gz)<)#(KV4p|?VS;)L-X7!6&OklLrkrmI1m!to4 zL_f&}wv`)&)}g?uGx`&$VKN`&^EPD5%lwgb3_VTZkyv!8v}e;-*Doce`EJE?9wlS& zxw3wCU86HMhlR+{ifR*!V4CU+1QC%E5q!Xhcl5|QtA&tYfU9j3(Au>BWbex3qpI%x zJ@?LJ=1ww8a*|Az37IUAKv}{f0)j?BQ7ATQrBYFL1)IjOq@sm_3uvpYK`o+1Uu@OZ ziWNjH_W3aGR;5L&6%l>7v`_T4rTw^-V$S=1&zxCq66O8*KA-1&KAG=5=XZYV`JL^~ zec)6BlN!xjCn!KqPge8G)P{K z4T;t3g>6@>*1K@Y;&0DiVHxA+u2|Np+0qBtrEU6KjdPb^$Je?z%g--6^8QIjyZP4G z+}uyQvvkk5!mwpDx7#$`$o8~{Dt4qU)22*CuUERg`GQZMW*K>~tUnQ?uehXbVX8r2 z1!?}w$4b3~Wav7{`)bI@Hx2sJPyUrUZOtbT{m{+Y*{4C8ZX(;qfL?S&p2M>*-P1qw zmoM+*U;4)R`CcVC^wf>|e&{Q5_|uL0_-}67er|kw-zdzD?@{Qf{`cG{^7hYB=;Zg_ zz_9x8e-WMho*NCl^COpTd0!d(({~YaJ0~}OeGjZ2`CmlW{`ESz^p@{EXn6Hw?9=mp zo216~ip6F-v8ccCv1oB?4v{&kKiBNdZ-zkM{3d@6(IX&D&shNb$k!9~+}y3o3XgoF zKes`D{(mmr!=Jl6^`pP{1kp!+Kk+m2v&&yU@y%HqKQF%hEK8OpDxKpBY|Cm!+wMa> zsu9A^2a4r95k6H)37uW@S2iOfg9Lw5pq(>!z{?B^URNxpO zpN|x_l)4f)-KW$qfCv3bJqsM`D)k=lk%&@3pJg3es8l1c3wR1}Rf$qdfPV&F4g5zb z_<Ak^g%M{MNDH2ewWEKXA_!@B=GP1wZi28Q=$w zJstdcmi5(H;0IpBU$o$3s~3PDxO55lfhT+m{J@?z@B?3H2S4!M72pq8);%5I2ez&P zKXB}&;0Nwn4SwM8%fJtOyTA|3djkBx`OktMIQj+f1Mk=k z{!l7kicMaLOV6;xs+g!O2n0KYW!0lDfxphb_9*`IwiSt;94VU~&A&Lf&N`uD!jRGR zwQ2sT_=KHflkiNpg`cr)+qP%!v2EM7ZQHhO+qP}ndgm9M^C8tqRaYe+I@LQnYh4TL zH5M0Ta$Ip`wqF&-s4BOZlJ*Z}K_VxRjH(@bVw{r0y=GmSMm2VkM3!%H$C4stQYNHukO)Yb|(lHu{qbptl&)T^fBK#4AJKog{v0-0 zqdy23pRa*Ecf`dz_jk9GFMMZ#^ndidvwdhD|27hhq>9HUTj3I4vH%_L5`|j#uieCF zyr=F{a^=JOTI$1Hi#grQ+9f=mm)n`OUXZ6tREp;^(O*G~?^r)xY{%zY?)OI}Qs0-r z9^Y~WTlb^e=`lXQkLqfPXSX-Li90g*)LVla->Jb~ra?Z0ry<7ToX0!9l>J!OH98!=}MOTp7{A}xD+Gec1+FvJ^43(afrv6^ZE~%_sXC| z_F?^R)YTi9_hHR!?5xjRDR<2hW2~Un$a{H;DdDgl-`NiV#0!H>3j6v z)B8l5~1`h&kclL=D$=Ztw_+^2)F5gqTws(GIr z{7~n=$s468#L8B@=1$WZr-+PddC{fHsc?U0X0;LR?9khI9 zt7DYI@ln`(MjIlQtBr>4fV2S#5ou2w-hvayK;572V0^7q69pm~@Y>KGur_Wip$|1! zfFYGfKb8^9-|0>-7&V)ZzM-$0_P^gaCQW_C1Wbe!&8MHS#ta*Ps6Ui9b7@zEkfL)B zpDlFA)HBlyq0PFU88yMbQ`S~HP=WcU?~;XE)gbV6>AWd4(jox;3wGX6S0L-p@}?0a zUGT>p3H*dK(|)sfAw%@FAb%VlO?D*|*73<;9jWAD;fl=?0VHP0GmgiyTU72wr1G zFKtqksiY|kfLBdrfyno-_{#|%(gBl@gg6(@bW&G;i;HngDG3O%3Xdb~8Sd;`r`5}&@B=D^e3)5Rl`6aNWOkz!%n@7tHtVk zKsbfH#!ouXxGgJfR>`{QN^-wG?I;UGz@36oCW}f!L(VRnwh@GiFRTduw77E7bIM_u zd`eoCOuCr|9i3uPzY*!|Ma-Q6@7mPYuTO|F;vFyQ1)<2Ms39%VE(hj39&3MQ=WJ|` zMrys315qUN2|B;Gz)+i~w%u`#+M|kgXscI$AR=Zln6VYUKQd-DxTq7LQPnAcmbpW= zzw6AtWA4aC^gx8{Vu0P1_GM#UykqWaW>gE^dL>wKD{$=KEWBgxAVtqinCx<3{iZq1 zq(D*9wQt7#Mx+gmr#&r}MDxJKVJfGf+Qzk(zd=NHIXL--M2V9p7io_26^U5R$pqna z%lQUVifMkaKr4mTH5ZuYqj|3|&L#L0wg8cb=fe}Z#${Em?~2}cuVAq|0&ph$5x;r8 zI~E{a@rMk#W9t#U!m*j7*G_jt0GVgj*u=*1((HK)KGCL>3+5X&yVUy9Wwvw~Dge*# zRD5y=+P?l@d(cA!YgEsfD&f92id2U#$eT<6ZeWvSEdR<*u)y1dgig=EWHpeRJHFn= z57oBHfRdYnn|2Ue%2!8Yp(gzHfQ&ZMH;&2cK=j8(l$Cox8wiQ|&|{uf|6-)plszGw zsw1{8{OQ{d9c|MCZH@ZFrCB1`YTvcr7c>Q0((J)@GFzUsm`kB|&ldw?)jwPyeSLSh zMP=R@c9SF@!7qP_+_IvATL;oq7ouhDm3kWc;V3)WW1wJ*)MGRnUV<$%+eN}GRLc<-%#mkLK>oWTh+t!OCepio zP<}bJp={TX@p1#+DK`6XJDunrvpso=d3t41knpHV&+@f=hu*&m10LhI2(ZK zc(L>hgfVQ6_PDbMkSIhkv--mBGo+cO5B-9u2oLlpE$=|!+>?m;-W7r@Fphr z`0goZg;VoNMEoZS%z-1a73XMjPS;jX;5$D8 z;yKY`2c_;8eE9w``}U};O%A%Ri#Ay09#!_{0XLO0$FBT9*(I*(;6?Gq1avGEMA<8? zl*k#YXjGN6_844?WTv5$JMwC3KD>WFn8cIMcyp|3k%~5(spGH2fg=R zTSl2*W%%&mR4LzvS%DwX%sQAtnpZU*4TYB_yp2 z;-0$63Z(Ji_xy`P^oq-XY4wT{x8ZX#(PX3^m<9PfL6QkH8 zd&C+DqZqASKhc&w3k{AV3k?VFbXei<=;y^``ZK_Ze9ALN`(8;wnohG*W4BR#iPI*Uvaoi|yi$6! zEMa5hR@uwqT<+5gUg74`dJH&@6|0P6#G}sMJWqY;M6ibrF*v#*|(S)&<9L_ugt2dAPvd>^1M>r|ws zgi@BjIOX^smv2R@DYp(kH=WS~Ef}ak)khehLKpe5xreI%a0oC=Ml?@$;uH9!+i5tY ztw7z=r`Ie7x_9N+$SifpE)($bh-@!nvA3#Z0~Q{xLYjKV_{k8s2_$DWtsFW{&bEkwq z&ZKRsEi@vZmaquLmt3+s#v*p<9(Kv3m$aeM?{Nluwhc~q9=f*5}4>{j{? zKJxEHgE~`2b|^T)u?)d19&x21>cMEOTMxDg?XXL`GGM}tzZl|w8N{AhG&T>*L!wod zr8@pR#v=cY@PiJ__jh6^L%>Z!-x>?zLYS=zL3&Z_FPbZAOjdZwvMl8-v-O3R|!Sy;PV&1fZ-73vd+G zyU3LvmamMRG(O(fYT?MO5U=kacl_@JYE`8lPQSZtsEWL3X z$xf$;(z(eJjRZ&&yl$Qy&qAlMK0p2(QJ79>MgxH$}aAQhFo{D_{ z%#?eh9u7R0(ci;t;^-Y9p@7x;kL+N&M1lN{VSvw1V!w}U%``@!1A;qx7NkrG!EB&K zi!vH~4gLi`nG&c}?%O@WF(w8Kkd27$eTkLC4ra>p_8;Xka1K8)WEnHj9WdyEKyc=? z)%Y(lE3AT2P-mU?3o6xzBDfP*1Gb7+nu$2DAVj|&RMmcYS3+1yB?!lyAov+K#~Y=C zy2u*p1V5}72MX9^KRhZ`nHn|NYOz6&>~I}6cetWy+JVp?YdKdS7?w;$bgWK;AL(v3 z#Qhv6zs!gHsMxKP(nBVr|A5&*o=~%lK(j8MMv4rTr6Io(dU7qi=g>l6l<3_x|HG90 zf@929Gu)?!I_7MKHNPq)eTgG{V@t>dsr64u_N@JhW!JYq9^}rh(*v45! z9`FWsHj$s5ueJ}nMdyjmL0?`m*Bt#4!+nbb}w_i2%x+04%jPxhh@=-vh`(zgFtdfjy|D@pzTLN8)fp zc-`YHb1Ox}4o5oTr#va^-_^SmRPs`QQPI0}Emt#yGI)CNiEX-zp=q_hmKg8UwbyI% zTuu3GX1OH31+Y+7j|*)H4W6QY6IFWRKiHiKa4pdNgrkhn>!)*Iv;BNC`tUE91JOrNq7ckC zUb|mZYDm1uWrz|T_PZA(f#ACL(-hcz^hG0KuPK96LdB(f`YA2wP1T<&$VCrik4rpF zVxEe%J~GNxU9fL22dSvL4oZjuYzsKGr}IalIEX5bjDU>8iUdgPUf5Ta zDUCsR``YyiPaObv`Ge^#CZWC{yo0hOg8eNS#D>a|d4U4yRm_zjksv!J5b-qha5c0LlbtSj(mlXZU!Ws03Mzd2 zc35gvm+!$!0f7*3aw)w!BJx=RB^>quF{Mi?`1~Z1F6bgZ0-tV4p3Hodv#(FTkIOzH z*YJ9jFQ=6c?epnM6z04@`9}7p6_-Q5v<3i`@qp(*8sbCwLE&NtGe)@9_V!V-{`6M^ z(7fL#g{TqAU^QROeTVF!0u?~1EBO1%XZ#XM&(JTt!(2kkr7-kv9h~hEgn~6@>BFfht_#S0#*gd=}n}$s@o@ zS%`{d%(Qlx%iPIxSa^M|VcpA08Tjv9a$)8boX~1howJ_F6^B2%Khn>c_<;(-N{9J& zB@?CA=|{WKak_;Sj$nDIP42bI&#KaDr{HQp+T?3m$#f=7|9~(LxR;}YN&|L9K`ob= zwY+ef<0aiq{lcJc2O}0EwWn2=JMChdU@7feed>&U!D%7j28yJ9`FT~|Lk~FeMP+0| zvo@naes$>Ao+5zxY-&5}_j@ z1%_=w%9GjHpG0ohi(HGY392ovU^Fw{G{d4bw_-LA;s;P33R!o`Uj{=INue~4 zMsLJ;akIcTpGI$Z+BX{YlqEy^*xQP$8{Ang$@~W-r-J!~+5DzXUOd02x)jn90H>-G zZW`8hP1hyUq1;tW)}kQF%YURwi_M0LLsgVR;|Eq@&t_ zj=Y>PIZBHVn!vV?yR~_*RV(4diXOx#x`watke5oczS{3S1{6}`mCD|6>Kp#YyTJzO z1A|uYK&Ob1o40rxTDdzx{uwj-=@5T*U~@q(vn0#mIhK zge3~KWMUWRMO`}cH#s=1waM?qVE#D$8`_6*jL0ntZeh4*6QduHcUR}xQ3|yb8w3=T z1k*}0IBsQ6?2%BqQoDZ{?3?7fJljz+ykiTtO-A6(W)4Y-l0!jqn9d2`cla%{QD)yN zIp*!p1n;o3iTsJ|h!sdaU+u882bIOZ9o3FKgGS4C75Ii(fnufm+}o%U6OZ!YL_qR{f4#9C8MhWfK$fXIm@thrVK?2?n?#f4_9=6c^ zWo@1Z+MrmWo8aoi0ao-t+|NTx`Wr6 zh2iilNK;smpjyu4%k~Ma2uiHyX9SB{PyDxFAX+9ue=|mC;XNL!`Ln&Zv!f@aHJ^~5 z8V$;eyauy{uCV!*w0vZ^AFJ|*_sL(jZL&vr?aR_9BUi>y!UY|KOT=DS?C=ug`PP94 zWIf6f-ATcrprGL!wucQYpr9MJ4-tTr2>9a`M@N9Xt+-dMoA2{B|Da2#FsE3>_ShB5 zAX~9ma>-q?*e7avnAf;|y#iq;(hCQQS{l7ZqVj1Wav?QCj@7T)MlH7raJs6{>3pK; zOx;<;PwoKf7^!F`Qt~(Amz3_`x0XN5xcS2s(7?>1h4(nSli?P)U{^rKeWg zPDDF3A%-W^c)mJj=Qj`oP^~fzN<<*FS_5;p`zNH z(a)8n^f{rkikgZ1gFL%%TAaS43?HCNp}0f%*&+d|-%)2v?1FY%)cIqHCy4QAu_X_hj-k^x3te=eKgsT4<)32xp;XjW~*4B*LYUd!MnoF~?+B0>E zCwA)GhKz2Kn2cZ|YdJoHhF7z_2M(}gEY-ed`?;Hf3@BC0uGrPaLdX9Fy{Wq; zkRM7@z55{CDW07Y16AwWcQ0C0V`ZtN*3X+eV`ToF*hez07+bk$3?4iRZ(W88sd4`x z+A}Mo&&im*T=xm~l`)+f#e+wh%E(u;Q1hN%!9-#MU1b`^k*>@CE7?ymJHslwHxMwm zgt*x6Do?+R1PIUc$|9CEbE7J+SmW3cD+bT7(^XD>QdTZ+?1esY8>>qIv$M%^veT(S z;oDR*voQ7mciWHoDk_w1cxV``NLIyGsm^jxYksKsyI94p*KpsS*KJs^F*`ns4KE}S zpb8WWVf*c4_%HoPIoF5}?v;Scq?-*PR5X`hhL>6U zbE2+)Upl64FOFTq*x|?%I>mFsA~gPC2;DO~xUjk#J9xoQ1VeIA<{bdWwb2}=QBrTM zUPgv74Eq&ezpd5|T#$Q12q@MSeAK%uyzcLx$eaDck)&iB85^_L5qdPEd|5tnhW8%;T*l7;hDBhG+*?!Qs*BXf&J&KnTe{Wdr@h^csh821h%(QyIY!MLY_ znP9vRcAhLN$XqqZfld?|MnI?%<*p*l>I38LiojK8K`^iDhZcTbt`XN0aBNDSut%>l z!5M@z)vSJ3h!A$8*0TQ^`>nI*AiV64Tn=6`L(9#3&xL%<96Y(~Bl~mLw(~RNvl=}^ z$8D0+9XIXdVY2B(3yXgaWYgaVVNFA6eWhqxmK)_NY_ z#6#XaNNtAv{~hiJfphXC}n#U(|D}U$Cj~ zkv72?_hAf1Mllp%E*b7^MIqkmk!G}gpkG6AxU&_|{~yoD;9d@Kt4q<*N)Gw@=%6=v zZ^%D)-9zl0E!nJYJ&&|hY1rM>2$0aBd9aM-4!$L7ToHB~DA8Q=?vp!q&_qGzs>e>| ztwvJ%)s(?HUwiumdQ>Sr+~ul1?hjskT*0#Vn>;AqokbUnLAwkPVFJS#GjEjUCZ zUls zWjyGbo4|hP>fGdEb|@^iAp^h7%lz-R88uu6$8TJN17oDXMN%erQYPlNK3;TWHHN%? zN9w@TVZA#>-p5FG-m9HY^ESMU8_Q=obeCy883lh3q(I#fbp|)GnTY;Q`xDIESPDy2 zTS)?SM63AEKfkIK0lSaOf6&ZNBCtz%#5X=2kr^_Xm>rBvct~-4v9O2--zR2!-S?v2%u3>jvY_#!=!!2uO zo?DC$AME?ow$_BE?PM}NvR(=`)bF?*<7k}k$MkMj=36ZtB(xxKo%9JGcVUw4JhaIp z8!(YA%k)@L4xWncqcRM`AU#Jiy$EE0F96VMzceFFpjR*K`?9V35>!aTyw;~!TpNp}mVbr>=zeU^_l zgE&rRuK}m{Sl>J57-uk0T3J6~59)g9DP5R9Sr5p2nJG6iyie_tT%#klr+a|2WO+n{ zJsqP$HX;pZ9F4NH=17qj9-KQUkn0;!j9$9^a)wYx;s5Jt;Gr(V7O?I?XcN_ojl9Jq zaM6#L=jOH_Z}S+{)9ksXC9FnE#9h2kY9lrjhe>@n-TYXbTWU*dreAb1iIAn|<{9w1 zr+h-E{kS3McD5-k4Lo7)1u7fJ#+6C1J^I~GT<%Knu@OQB7tpCA}+_i4C zI+4e8tQ_9!jH0y|+tF>B1Pi7~_I2ah-olr=iyql}Wbh=#{dwpvm;-vt(1#g!*sT^y zF*ym1jUK379zP}?HVW(nxm3kqU87LQti1MC$V_*Uv=E$HRZpvB;&c})V%@xch};aa z?{dM~-Xif@V)Mt)MN^<@Hocl6PP?E#plj@mh8}Olq{57f7|ona)I7Jhd{{J#75Cvq z5?oQ2(ht>^S^-M?@(L|A5r{sw*S975d=5z4P0>o*@kSf}Q-;vR@1d!zzD z@Op=pL@RKcT)PgPN$ve?*8J|L-n%WUg^+%f_Ha z$?NoxSy8)LxlhX+l8gesbEiH>q&F9WX{S3U#Mcjl*V=pPEn$DL4cBMlCMg zf6e-G5*Jk$l2crd2^#cudZ@5-R1K67%B8c%OUKaHgJU8puK{Ya4<& zzZE|8Qv5EFD%_?V!)7!Vpr23rnApJFK_qCCQ}9mLnxr3%p?>2#do5Jm3fx)W^2)%t zPVJhvCqv{M)xl&?t!G!SqdWfn{+S1Q;<#6PF*mCf!{G;Es^aeMirh=Go7Le$(Tzjqx# zE}Yy3v5Kxool_uCxRVVx3HOkb#2vr1yh0+ia=RcYerF>PPW z?HbNB%N~1eQ}`gqNEvoUMCqAn}ckJQN)RtbizzcyXSsk-F2D=a`1%q~HI zI!*jkY}o?6aLEU?J7Ji(I~vj5?pt~ zq$1xfd+KF}zsox){|3?PaiDhOFcYnW!zh#J^JPE7$j@Rt&Qm?Peh<4s#WUWeeS%K0sNe9?KtM`irSmUBWVF zET^tW!ve-mwxu{}2NHe870zQEe1(o_SFA5nN)IB>W|ZUP$Z7kUQlqZcZUk6h9HyD! zoX|z>wRVz(j^a~Y7+NU)lAiAxqo3KlJA2DIC=H()BoW0NJr*Mqa{)FQVxCIFf@st} zJUd4r-N}~(AyR8ICNNwN!$4f*?NNOdp#^@&f0 z>rYunl_3-lrOHFv?^sXc-shqt867b7KT0zra6@+0Wu%vvTz2vUO8CT}nz{FgxT#b+z4@>h^ zli`h%F>IkK@28tkEaQ#p>cIv_UnYspl$%-aS!e!JFKPv?;0V#i4vQ{hf?m5B@&_A- zxZawVqQIi^={dn*xVNHjszp(paY%>Q)$S34?>5wnyp5q0JO&P#z5vPyNFL53_C{q8PQowQEhx_hh$ltopdtQpU zYPa<1?jVYgb_*}a%F!@upM4O67op&W4L!k5{_w~s!AQ&9B@I&py2ZUMCUtvY@FCn! zH+iT@_|A0+r43Db_f(Ni2>wEdN8k#t8+-#Q_6|)pB^DIr$Knm)9(AJ3L5sBKd}LOu zOH~MtB@?c;FLYJ--w#{hz!zn$i0q3=uvmSOe6BvLQ(UYLLmIBv6!RWjUZ6xxd0^lW zRBB=SG&VLVvS#y@iTJtG!K%HQpjAv?B{?k5Boge8w$gk@fq0t6cbIQ0jK`0BI6IHa z{k<-Z&><}YNSb0Gq!t)!JC&l)y~I~tb_10x@Vmsc0GTjd;L%Me=i{ zezBnxt@#qfk||WEWdQnh=84(sD*8eT@^s3XS+j-xA*1+u${U%w)!%D~!{^N<>Vmav zz%k|ZL(R=s_(G1QWXH|-gU*=Gj3J-{#AC)ZpyD=1{-l2 zn)gqx20wcC&U)n5B#oSmfWc#ZSa0Sbx%->R8UT=vY~uZXT!w|0iC11G;xTW&RNUf= z{M77J>{Mw>X)G~ohC#;5c$d`X{!fNz7didnkEnA{7nQr7vg}4ySZZ9hy3LRs-FNGq za9lpVb^zTM_=W>Ti!OVKGn)-9tMqZl^s<)P*jgJDk=8Tv5jS#}Y)FB)jk=O(^?**+ zur3*|1&*vvZy`~kwKtfdGy)~xqTMKWq}35*PZ^*GoCf)yPh0?gUa;pF;7lKX z50y#4e{(=vzoFO}eihkgkI4^-MFlF1zh0R}4Fz)2&|4%Hq^Eq`O!IKz7Hbv(u925K zMQNxm6s36Wc>|BAPCE#N1o_yTX}-tyT-UUsr}sz1^Vx z>2+>bsn^B%TcW(kep|zI05mChLUQ3*Ue(P#5rLJUA@WWx(=_8kt8XL&K4ze%Uj0$TEz80TM;- zE!h$?@4p4M8XW+qr8zk~bw{S3jM)v33$NvZv4B#baV3=0P zbn5d6gsLSx3P#C=inPk)^J=Ncx*!eElRr?_(zE_aXCERhy(^KUa9U?e;P}Q1!_;#< z{_-h9`)EnoXC`HHJ9T|1i5ZO4qK2BBg4KgoN?@wYiFz->NYJLnCrIZ-5J409Vl2Zf zI%rdl#t3VjQFY{abp@^ouAWGs&(rf%VU&bPRUnDQBl>4rG2gTn&D8w(lL)VeHJe-# zapM!LTUV(0vXn0DG49E^$qNiLs6+%k=$8wVJFZK$CCikjzxk-0+%Bk!o&PbOVU4jB zbzLkm!b!lqakcZB@X47zMKyJPGKr1p#xS~z9Ac*m44N^VIZ6h9Xb4R*88<%``}PHcuJcsK<~}rI81W{l&H3#^`^%bydhk z4mGcKCH7=?w32nck?tD&dx$4GvkLHISFq%`hU;QnvB7tU`3nrJ2y`3RCpod+rB02& z#5to|llv|JPlZP$g8b=mQ;41Y1|6O0yhT`P*?|FT;u6>zqUi@OcKsp+ZTAz&ZsJ1p z2^H5CWr>dy@&X!U0Vb;hZ)qXToC=(EE5X9A!Y2cfI8h;)>L?lMuqJ>VPB#A;RtOBH zrA4{y1Is1(kL$|sD;yFT(P64d!AaT}$)sV4`cd{#tPW$j zm~j+8sL%{CBUOZS`P&vXa1@me)+ZHhwWvmwz`W%-Uo->fU_CdC^vs2qN2Pab^;6 zmS#cv?84odD2;%V3fNc3(N}}Np##At1t;b0%y^*OJ_;<+6I!oDr4j=^<fHIi$Ku1KNcv(J7LwXZ(nH72za zRaGU?ESJ<%4DBd95o%ybl8Gurq=HlBO_Fy}8@9Wd>l>Cg0MZeu6Y#1{Z@Goj&kCF< zvndnV(k|D7p|GdJ&9E}8Dh?P2f;rlv&J_=4aYhjk6{4PsYET)@(ratufYK!@jUV}4 zz*i56H+fw%PfwcQp90}_ADJ(_9dl$4<=#8;VS^pB_D=G4(wxY)FFHguR9 z$z|N?ppE#rmdsI3e`^Ek&cbpGJOz1^J28jU;LX#`uXqf1e`liVQ2z&L8+N+nzPdL% z1650CGZbC6N83eV8jP_=smGzu-7%e^U5u0^{a05Irz+K;(j+(xgI*;PU_xu5ZTA_h zAO#{R_nTf67jRi51i-)x~@#$)N2J$2icS(XT-? zwF{Yypt3aKkY{ZLG#Myq1C*qP*xK-)7U)zU!j$9-_l`4cbm^`e$F&*3yUgJG)v zsCShcl)C)^>j>;~UDGSW1abV2C%qV{b6wM@K~;z<=}Y<5Ni!|(%=V)?=n=34d$_Sx zpyj=)PG!5M1Hfmh!1wX$0A0HdrS^WReWEiL&?>Y(gklZI)FX4*NxDhapQ85UNE81g zOVhi-eKzgqw|@&GZqd~y;qV&pFvPDMy8muw8i!^37g$37N5k%qUwURVsQ2sG_8rUr z38yekt#devS#3?G7-XOSzam z-ipCd(l59}*upQEUUawL@Nc7^u{Ne2edTX^S`I_*u_bV7Z9+1H5T+UpK&l6awoZ`X zVY?PB-Mgfq>n$Znib`u^)1bEs#b;C*JH>jK{|98t+*r-l23gXI;6?2%@?~Ch%9an* z2OqW`on%nd8#T1wn9bps!jH{zp(3Z%fW~ zTxI$%p-Xr4E&wqIg_YkB6G{(aCY)tzq(OWB>?!#?e5rgC6seFWyO1?@!Gum&T%U71 z5OX>ZGl;Ykh{sRVP8HNDgq0^7gkN3dTi6=C+5XwlOTnNkw2Y(OzyP=Y`%u04H{#_M zDw27x7fiOsBp{8IITzN-cm-X9e$&^k9__EArTX+DHA?E=ZaX(_kr#MjCoTn3?Kb*P zI-zVo^3viYJ=DeDz_Ztap))w8LGKnM+scVd(ktjUP$-Urp`2WXG*bf~5!%ZJGcz2G zBrR-U`e^k$pk%HnebyY3W7^9nTZTV1FvgDR4Q$1q>iV@V9Uh`08NZFq#sy924D>&z z>L8MCI7$361EOXT7h|X~@J0^kVt14B1Z4qp38>7F;&y6;sA)%kk_Vf%*{WknDdA`> zJz+%MSO*y{r#=I0VvqgY7=oJCw5_~l`7t|OKoKNa&2Pnw^S|`-@Elmf z`_yPlkUC6P6sc~BEhUV$#M3zv!?r_6)_<_tX_*Z;Cm>V!s{Ip|@a@PZas z;DpDD(EBJT!yTxV?8OID{{YB#XlHENdfKrqVV?X(V68gJpSywer@0n1hRko+9swEqyJN%o72c#{wO`#seOv_P*w&>}oh z+qR>q+BFFcfI^vC=MHl1*VzZBo+UZd$9YFI)F8~Vo1fc}4?#97dYY<}HYCa!g^~%X zkW<4{Cb)0!%Qj(sx`S*prKA-_O6j{1Nc%v5C#JtWh!R8TQP0j>IEj!pM0>%lbhv;Q zEm-SNq#84hMf#Z&)A%4MWYE#V-Q@s{HhxGMb%aVrIw-I!5`xI_N*b{|ddN3PuAo6u1IvjqPT<1?F0f1jG2O*) z&uo#-DuJOK`v-_2dxeIMe`O06j_W!ALqQaY z-9$x=7@9D1w_fU}KdSGK(laEk-BH%W9Z=T6!NXva8F{kMvn8yZfqWIjc1o2`N<{6S zn_MWYR>O#z8+>h$l+xborgWt32_9ISEwslDSH{Q~vO$y5;saBG&w43c+_}(8rTOZs z?0`oA;3-cJ7&X2xS8;y~cj(LCk%?0)O@|0^SOkBsCJU=0$oQ>w>U8XIWe|9d7i!RM zxs%pskz3!Qr~gEINBaqxY|<}=lbPCtai)KkJ%G5OmhtN_RAqB)?$z8gZo~8rbwajT z?w4kydW0GZy=5n&{+py=x^(Wb0`eFuoZhe3eFMW~W&vx>zIOvhEmkIMefxCbY``}k z1bKJrSqXyYRIFMlo@~HXJ!vy%@ww3Lakmf0rLD_ynZSxJZ1Z8e?49U`0Rw9d<#r^~ z>Y$CxRm4HKImbtv>r6vq+%i@!QzsiT+nNNEJPmwwtQy#9s011u3er$n8X?s)T~4BR zye(KeRlo#WHRzHlwX(rT##djZxV%)P-XA7VvO=m}j9LMnkBAvxS@bLbLYM`D$}@Ib z$?1Yw18PBXH}qf&?CR6t4`p(E2^++)%OM&4hxE@t3Ro!Gd9LFYkDW}%M*G^Cu;ah# z6@QFac6G&x1#o@C^Pq}-_`@rA{`8cnQP;C$O_&X4EJn(Pxd!G|_0nbbAI9>A)=`*|zs45Go7TE=2YX4r&4~7U zuXkJ6qdTiyFFn6RHy4IPoi!iYw;qSm0=y|ki6PAPnUDp{J8Lo5+rhw$IT)LYu{?uQ zZms;nY_>a|Og;}&o{6vewP-(T3y=?@!3zNuh{|>5!Q_Yp`~qL|@ZkIrga8WvP@dq* z1S)CD5Xrs7g}rhdZ`yA+`3Vq&ur?h}roB&dJZEmdX4+SMhOuOQF-UzDr*>1eeu9^( zYf6JavU?tUc(XF)*1hO)cZ3vYx|qE$PfdLg=x=n}JW*ZUYQ4!a86Tz_rLA(doxe!` zo999hV=GlH>*fMWzZ=Y~c>R3)lp)kUQ0XqRbqUGr`0Zp)kS1JpzMuxaOy8Z7e^m8P z1X`eqi{1Y4*GtSKUeg<@1M&!R86oBQM9d?-aLf|;_d%0fr!iv`WPb%Eqe}gZyly? zv|Luyi4<6k#v1ZRkMhT6G*C6OP0Dp9u@+8fp{PAJ#q{LTsH0p~YWJrxZ&GqEl1?V~ zUHgT-X_$)hr?wli(0bo2Z8COtQ35v?V@_<;w8{-8M;XWe$y7Iu_t8Rz13L3H?ren_L_RHzQux`#bur$Ud%i~N&ThtE{ zZce^P(^MyK5vr6Aj^Kq6eb1li9(>R>aPAzNyMOfp_2Lj@S-CaD$?z^4`aOs zOz?q2$JtK})D2!$<7EtV`D(Hy?P~SkWDZkHWe%5Jh<{yH#%lB6Kjy7FZk%PDjeKnM zd2;9?akOCtw9{b$^S2(eS60qv32B?_r;FUA&FUGIVv3iIoWqcYbr9z}><4!Y$o32W z8?OP4ki+mjuDy7DjG!D_XzMmwaG2E#JR6ME&ye<2rx6)+UrKOqa~at2n9OM04L@EO z6&GmL4TIYMF?G(tv3$WEk8RtwZQC|)Y}-z5Y}y-AcY)}+aZ+F#pB@8ggK?Xpc_CLI|@xek6 z(N0P9bTRdjwZ{^*eC0IovOEvOQh~sRx8X)d!R`NEnI}}25LJ8}`1V<(9FzK`7WVey zYY{maR75}nW6#1NA#c%vTlX8UA?@m#xA%0=Vzdy>XhrVx4?i;Ma+fi*BM{nT|5odm z1kt}y(`ufd|J48L>RM4>BFnXz*_m8)E^i;Qe(>8=?f~WlugAvT10J zR=55x$K|yI)WbilmLJH5fcz7BxV6cXwE};GxGmY^aQ6df2oWrGJ7Vw=0=lFm^exPV<}B-RR@v zSwy)-3yog~jUHWm%899PZGzbnlor2?LGS81vOo8=;Q-XJ*pc|b8hPd~;T83j7nL)j z)l({cGM366E3*-D@?E!4tJ1n@BtMc9)1d>>xGPW%U5;U1yr_|6VeX|w8TIq3#7@wq zcgSu3Epqen!Iad3AJrG z3c4X;S+pBHf8m5;!N=5yG5mNobA@t;@q;pk0a2R3=e{P87z&DM-q&?p&NcwMSP%>) z2c9`pH-U=Bj1J_v3g^PvyTTjT&kG-H|#eJ3ZzP4=#MTG$Uutw7}Jd< z$y4YM$~f@x5G{iQZW$&BmdBp)En$D43JBGuaHO;=eJo-4tlMr#&_uG5K7MSgKd2!U zXVk!)bII|3eG(UiH+Nj}Q3Wy(Y*iTw_DQ22LG6Vb@E9;BG)Q5CLC32m2o>%?)lx0} zC&-QaUL5~qpNct`cJqX1r=EIsy}ElAKU<4%c%7)wE#+++iUk7;b2J5bJyCL@sg^Z2 zSFoe?4w#7zRgFX~`nuv+zf32%E9?<4U0j1DxouuM%orJ(xW0W&{ff=XiVThA<_ZID zGU*CQwS%N7!LKvEEX6USqpYLlor-SUFbu9Uanq6@;~|d0xFIe}Z;8IhExgiNOy8Vv9hG+P-(9{J^sMbvZZE)Q3 zxWeP?J4M|)#h%x4#X)B^jq27KtCcMCZMrBZP9O~n-R1%m;qp+ZL?cVLiCHp;P^M!+ z64@;#9^hkn%pQawm||pqJWzG9vI=Lm}Kv2B&NVfYi>g#l;8`;_ZpprdY(}r?$ z!|;?UY$Z%qWS59=caX&-4Vq&J8&3;Y5Y6>o#<3uisK7?79&I8i_)4rGgR(ju^5bZO z(BvH#rdPG;Fmh=9%pIrPSk=0}ZDFCvEz+IRC?y*_9Rf(!!_2N(u3MqjEXd$AaGg9( zD3ccHOzOj)5ecAZ)2&@dOD7Da9`IRGj z5{>?@-U2=}442Bg(i5rn;Hgz`D>m3p*|gIa%QFP=$ht%|j6_8jch&%%ks?Y-lsIHN z0tqk-jY27$2pnJJ>7bxniS#4q0@E`ih$cl(zfu!=J8$?01hR|={c&t-7548(88({+g4v%3E?dD+X;g`;QltyzeX=bSx&lkXG6Mrycb=#l zX=~i3TQA32DFHTU-ISvqvyb=r`4VSq)z;~0w1U9%BpX0XSpkx(QME_%)J<(L&ULiUdUd z0GoV8jbHXwR*(d9V~M8Fz_39CkF*Pu8XJyk4hc*q3wCbEIoqxLq#qA1PenFt7qO;U zeQzLErF`R6XT`;Egm(j1u_S2Fgr{Y!(*Xk*Cl#KA@Fn2yMmt++;5IQF-=jhW8(N>X zHVD12@ZP@<9B|cCvnAgCcx^4(bjwyS9c5rfWBmd32GWFb=+|IAbdrht#P>9=179F2 zEHKCv)4%2@-f4lJ2)7f8{vhz>GM(^4?JT8w`wCM?7{Z&+pjzOYD5mJHphcM?fJI&m zSgmN)MkEiMehee(Q1)tMOym?<^C^6MjKjo<)X86kztr#4uqvCRTlMR04Qkl36-|^u z&-Df-g!Q95=;VHp3t1Gb%1;ji#i|KN83(}8)7Cg}>Mxzd5Nq%n6ILd{SKCRwb{&s; zX{?xFY5ugCCm;B&ru3@UuM`^&71wK>NCqDwgbek(D5?WAn4DuGik`+pq6!ZR8z?x+ z;^rqD^B~-)d%%)MH9VgY$Iad?(E5Hp%Oeu)m$^W4Z9x;92*SLL?dZ$u%%mhYbRP#h5?bm7eV?B5}{6-v& zFFTXf^?Tlh_<-IK0nk%!F@YA41IQQi%SlF(=Qo~M+9|>z=X4_S<#{{)To~uH@VVP` z#51$?KD$PlyB6uJPB=Nzff?BeLEKeqT2b7YTaCk7gFLiRtf+Gc@umogkBjaWNuFE{ z5bcU9DycgAp-dRX@a}j}23X0B=_wIVo)~?hy0xXV1~vS02X84BKda~g`nQ-F79DLA zs7Je_ku}KNC_65QJ=piI5F$lW4QgdE{fOwlRa&Cps+9z|NjmBCemo)UZ0~k6h{=J< zaDez2A}I}9%ItQO@hElM>Z0E!n;koeXSGSyovVI01wB}oiC?Br`B4OTJK6ob?2>}Q zM?y1I&xm8uI##KviD{ZiwNk}kghmjy4jYrF*rG+zy;5uDxpS*Zb=?Z*syN=U*${JT zdWF<9YX1cD>Ye|WWxro%%@;Vc*GxTIvDm?AyT&gnC$#z5?9fQpMA>6DPuMm!(%m?_ z`G!Sv+hBYz6#OcYgeDNmc(Hm2nti&s;~%#k>9l{48Cc)C)V4@f0=VB#Mp@_ zYwO5A#LGCjJygDRZ05y)+MbatmTp>H zv+a#DaonIG%7N0>Xbfvb%ABX!G!2#Xdd|5?%?Z+_J+Q+-lade8gS3Wb$BJW0DxpJ{ zw@ybYC@Q6Rae9P2$o*WFtw$wR)P=0b!XVE)3O9={iAj^UzcVdZ&IKN zsL)F3Vh%l_au85tTwkx*EI6 zwg>Z)URc4u#H#2s8s2I1Md<9c9{3Sbs-GVs|@_*(B`%5OafQS=SDvUal@37qU@;zyVn_`29viPY`Dgu}p{saDo(tgMFs`vr~pP9@Ck1OzVNxv?fK6jA_AWmF9)Hpwizsy!azI0LR|I+8e$}K&^|O4dq0V2 zLd2@Y$hv05@F!kY{T2Ud%Iu1zK?jR5E>LqGr!4kY?M1WL_Bth^NhEeeI-ct~Apw1~cun({;qiQpr;^ESxux zhra>^c~=1h=8$SwVsUs#AB$(WCBp%#PPsp;JDj)WsW8sW^zYKi=oPa5kT6v@+7xxk zM%xqzap8Lz`EqWQ9C^tLpUZ;CiQMyGM}+2<;tZZp6+4njht{~p9Pra_e3bOd z#I?0KYOD86K+#j;D`Q?#Z^}O>If0ilAEu5O(Z=em23I*?KP=d(j>^2vkBQn}TYK`Y zZw;FYx|FvVSIN?yZO!l(e>c*S?qLZdK)d83dM$Ta`aHe7zClKS4UU6dj^jCw|Fo%8 zxA??1p-nuSL$OvUzE^@;c@ElnXps&^)-(xeKJIYk`wp;bEV9XzvlFc{kE&8sjexIJ zwEOK9{66_W*CTbp0m)%opCTW*nUE$qA4PFXm7-5M@-NGq zyh)pyf3xRl5X;*O^j#y%8~s7+PslEfz(cjCn6U;p7zzR|5N-JBryz8j9-_)&DZyc*Y{6VdxFD@r(`RIho{Y-*dRW^iM0#J zi+`>McTaB?$X|Gd^@La@OB0MgNXhfXVOXEvRDygCpLQ`OyFL9gsn6Oi-@d8)b{F?= zkF*QPS}Q+$?%9jMdtNPpDd#UbKD&JJw6VE+Q?Iz=ckM_EE&s%yX&v4)=?T8xE2J43 zzioCp{TFGemfIGfeUYEsSMvn$)R}%xLfuN z(k>t?ZQiugE>3$d+`NL16_1Ya(*&O!-Fq>n>Q9b7==z==SM%nYK3gN2FFyXP3VM7w zSbm*0J-_k)moaTMfWao;!Rp83{oVY(ki1j_(9_88*8bkm<1ipF`6=v<(6o~)d&MRD zxY?rlkZE6Nm zi*Vu`@Ow4?I4covgtkoKz^8nq88h0q^74K2R#}dm?_pYcR+3xb8E7KL_r}<}%04mR z8!JBf)FGRU@m?t8k^25>U;6P%cetLf-T)wQ_%PSN2XNhG%#kx8{@Sf4Bn~)+defC0 zuYd6K_*UxiPq+i@Dx{^s9Ms`Xj=jAi-@{6dXLDA3Tz^%1e_7Z@Y?IajDoKy#2#5iT z$oH7>34OEgpPy6bPxXxgyL<=l0Y?`%A9db-jHgb%o>-IhU#;F>eBC2otjC9+<8a=a z{0DZ=wDK0!oN0!ABZv8~h)?e{@q#=ipVdDnj?;_b&$&lE#Yo6Ji|hL(-&bV-0Dj2n zTYNtvu>Dm0c|Fj6jjGCg5AAByKY?xudY||G{XhASBqV4lI4ULIF-VXiQHlpClQ=Mu zy+E+R3slv!gt1UCR%tm3nGKbBtSPQCOdG3C@78teku`dMdZ>3}(&#!wtw*@Rgxu z0wV5feQ|F64)7~@>?S?L8zJuN6~wm{C;($s_Y-ChE_M#+{_|>(6#mOUJSd+BSoZ@ZKBBvf zKfEXTMrQP93@%V#&|yH@!0a(Z??k_$#oi6eEie41%lhmX07fgHGQcJQ06Qt@fw*Vk zm=lk4%n)!wl@Rd$5okDa*a-Co*#(pz^28wOe`*>SP(CLJ@v&C)xta}}AGT}LPBORq z{-qj{OR3~P;u5IX@Bg_{G3)@})f0dJDc=jUnE`C!gVeuYE79<}4W-|fb{h49PoE@R)ou&b|r7>B;8-B*V{ zSC(Z%sj{-QS9!p&&K9l4$*!)(S{S^Z}OZ@Wq8fX*hEbEtABMMKyzxu#%GX zjhdww$l{ZlWq`;6CYnoCZ5*pU-Nwt0n&lfU(+Joi`cLe{OBoXjJx3<=D>v$q|1sw6 z>k;NH#tG*A>rwge-*glULxT3h2WQ^il<|+xEf2%Mu`$j5uX}XoT|a92$J4v-dmmLS z!uCr=Z0K*Gmt{h^#$*)H0OU28qdN}Bd)17T1r(^;XRu(IUw5(2?Bb+oP0P}{d2^dt zxy7EV$FRRr=IGHcbHJxW%sFV*n=xRmt-LBVa#;iRr?DSIVJ+qiRNB~DTt}zh%!9+I z*G@8<>|Hk82vpoeld~o!p3=$z;0} zuMlSRbqHj9PoX7`ICoT1iOHu+v=*Kw9=9soQu*As@Ul) zXgb?>>{g>TAB}oSOXzGtmQ1O&E$93!#*LOHA!OPbJS-d1K3yetTW~ZrWkH9j zjb`HvQ!7I#IbmWn|NW~aT5RJKmquLvQFf8|{E5=G%Di@q1)^2V1iLaco~tSLELv1f zsjiA&CtuXta}haih{)>;A;XxhggSK)!wDNi)J#4Zco{<;4{JhJdZjgNND~J^@z872 z&Y;5BKg4mVXQ2)|baW*?$FTyhhhu5^@7qi@&CfS^%2TqZz~~YyiS~;s<}$T69xrPJ zciS|+8fn;ZJ@P{xuW)sx@Eq1-xU=xGDv2h&teg#oQ>5^^S;buZ0`o1^8~yal;)vg% zC7Vqkce=yJXjWOCm93;lk+S+wVt#_%{=5&|+a^+LZQVH^dX(A!y3_-v$Z1y9xEp2J z8+Cl$`nmQqJMF6%$O)$^CGQia{03~#)xws!!zxvQ=@fM(#n{AB7Br|Xo(z(?T=}cB zHuw*utda4zg{e}<{R=Df3g4^Ryr)z*7sz6Tsb|s8QTeemf)ifl6z0=|JJuGlTKUd{ z6|cQD*bjeC|9+~V@?L%_EpOH4K7d|3vZ{wI!UBZhRrzRl41FCgw5~{dId6HaNaYlv`i#y1YxS@S9##{mH%L_=R z#v?plVdmynOzBbNk2FM_UGPch-@6LrwNW|5f0;WrXkT3TO6uFo%B~(h8Pa_JrhK~i zBc=Zw7pk(eBTM@J-r4#`K1cY`?Yo4bS}W|c@=kMjm&mGbwt3mSFLmqNRbw@#k5tU? z)bzY*(AlAHr%rfN$MDpSr^-lmZ}<6$V4XMT zNIt#$fIg>O3|&f^oNqCE(<=ioEv>ylcj1lP$9sMK7goG-Y-QVjfA>)Y&YjCM&C};> z>XcROi$S~FLL@2wGvnErd{sdEx_@o`17kZH2t7AlsbJ$5zvnV~lNnV&j)8cMoxTniGkRw&GNF&X%krl-Nb?WPko|JUntIVb zf+k$Pn6&~34qLy~M#~%TQ`p+&9HzPmpE~s!ct;8V6z6kPggSyo^MY5uj6511Ak*pD z{{arV`_l}$TE0a@KWDc>4%5LC#_AW90FS!?y|3i?J}A1d=jnSd1$_8ZlD(fFrlI1a z1b^G$L90L3eIX10SRvo+row%B)E#f{0bUPsx~f$!=4)^+j3V*(V=1cQmZ$On6P`@n-v{L!C7n-P+}h0*zv@mL`@53R@@g~UKfNo}-_#y8ang4#uQ3kY#_uxj zzsS2zJiYp%`1c*@kubKC6N=dYc%Re@cATeOj*n|vj#Sp#rT%gEMG20T1VBzHie z74|p0SAa~J#Dwb~Zj3F5Btd8llkTIhOx|A1C%eDB?e}?hq=4`%k=~)Oj7J8RuYK)^M~~ z#1ww5VP6`WHT13b6LJj8D}c_p?f3n%oa2OZ!nLY+5f16&%=j%i#SdtiA_`E2IP%%? zAlpu-_d#ctVXhpi0E+O=W*VYG436~$b z>k)7Kv3VGnUi>wrb+dvWXej!9qjj_W8pf(}+FAVBSsTc@@NK7cgOC#tV%4)sKE7rE z;YsnM<@}s|4=fn#v=jeHc63^hi`lRveif*Bi22w<6@WOaIeNxqz0+`H7!70)?8J+{ z`H*ZL_~iN>KR-Ln2x<_IYQ<@k1A8;<&5R&BKO4^o$%k{*7wF_qa9DH7`H|3P%)htI zMR25#%#MDIN91kP zzCZpv+lr3gyyA%IA>{0+d?Ld?tP>|gwG8F&a#F1|vI=D(HMJp8Vs}4kLyh`ARm~>J znqU?pqfSVEmh4fL1iN}1drYI%czT4cX4uN0VghGLlj};fjFHs-$bL1_M8uRjJP$^lJxI={F zcZ@8!4@%ctpAWGlO;$>^TG#v1D&{GEW}h13+1prAz>c<0m0r4bLH>1kAx}!)9QXHO zO5E9!c-{}=RhR@J`S}4E>n`R>p3{6s{&621R7dz4= zv#1_BOP~oePHs7GxIce$&TOdK*yvnvG_z_JDT+gxxfEI^GokVzho(k^kBh4cDoP?} zSC_wk3KNm&VHZ8CpeqUQ;+dXXV6=oWBu}qi_3KpXB_)yLadGN6v99i^WyZ6YhFV!+ zruH;6F2PwPOQRhbD4)dVg2K^=x?PO~#?mi{N5hNf;V$N&`(5D;Ik}83%hnrbqu#2o zU3NlZDgESyMN@5ErGsv-j?7rAOa4K$kq6abS*v%a7N%n*owAITqGXEoq7K#3vIONN zE4?EJqw{%El+1A2F2$fnqL_S=TtUD6#+l0}o8W^zKHfKs`sjLUl_maMQ5$O3)nW2I z21s7p9;)G;U|*TDPh+iMt(8pts2d!rDMyO8vm8&m3V?R{poS+ki`fz5e7rIK;_U%n z!~8q(%6H_0y&Lp-5j!{fBqf7D_JHHy11ahcWwUtGa3u}p97Fn zOYFfpb+gWtPCY zjfX%cIIIgi1On9i;Xu?)6v?R^Iit&BZM>kbhohro@t_q<-_f3H7@>z__#h&;XU3oh z50~nGHokAp;2Mu-$Dk%Rm+U?bWW17RVu&OS-_XDq?WNl-RoI-fW80u9o^SA=6~e6Y ztD+^Kf~$40Gya+>5t-jTNc<^K@bntt&v-u@J|2GeWoE= zEQ3);?jdtHOjbOjSCMc^7GIvBL#)|fT*>=$1k$5`f!iDG@4)?bEdQ|mQ|z6oTl?^K z)=#1#4_05^p=_+{UmY>~t#IwEc*b1Qw=m)9%zCqq*h3?5kXXG5`%!TDv$tH~&DgVM zug&^30PJu6Aws54jG=m_Pre}^?46lg_i#e9SNm`W3s2OcZ8#6+KWY2!aaY#|5$+Qt z4+7d~@M2?8vYG83{iV~91HCz{Yg1FHlnrS2Ycy~DYi7*Hk@&o3g5MEm&xfGc?i;Gl zvXVunVL_)0LaRoGxmA)EQ}1h-=@XY7&y`b`vj-pUQq_%!Ma7q%cZBXb8i0udzBNNy z27W>fPBF>1%Zfm9>Cwo*QA z>x2z2l{QTwvQLnWeqZfT8<(?rY@PX}y^WXa1V4*yYGLLH-dvOqjR0(SaR^nj5sjLq z2M!1^st-$wB`wqo2rXzcPG~PrnoPAef=Sivn~mG`Qye30FVQ5cx|kQ<3YW_pcgCoc z)mo|Wo<5g;`VnB&U1o-Bfjd__W>F5gxy}J=oT;}q`Rgw?7w3{eU9;PZ8L2K`Bu)#R z^%tZ^f?G7-QM8t8j~jOk+U>ck+08?fe-}`9m+J*yM;K(;Z^3;gs}U?bJf_mtw=v_R z`0YL7dHbfC)Ii_cp#Y0&E4kh3psQwM=yYk?mYP1N9u^i*``En4PuC1@bEK%Ls6l`e5h#^{M8Vb1n6sQRGpS2OWKpoUF94RxrIlSTJpEw>`pL_bVF z`mZhW5&jNa6-Ck3E7})9W_5sNY5DZnA26yRsnx5&*{ADMrS#RML~u_UC=nn|CgUB; zTcZhZ^NjS1PYVfPc^*rc?{VgC^iM?$^h^B+)t%=~=xnQSA@bXH(&xXB!2eUy zELiM9bd|L?0L_h<{^aotcT5PC5_FfTEYBCL*O!0Zrt@kR9W zkt=_;6Pn9i^wMu@dIRUImey;_HnAmzPd<5GWsa-xKgF5NhX?8B_jJ6gxs-xY+XhhK zVINbJP;FpZxa)cY3K+KF4O2lgsJ4YhnjpG}woyiQ18qRv5bH1l4DF`J7gy`i@F4YQ z9R_=GAPyKE;(P2M4#=L>_`5`NckaFq5G!ZLn_%6l4Y)zuaJKPAFR<>g4Z1;B=$9An zzF!Zq9G$GRkP{-Ga zl!eUPM)2GgjM?C8a45@`=I6@Td0A^NJMuy-Bp|pESm?;Gh+K8#NSZ`r;C^khS`0-L zW{)C)T91aAT^#n-UzhO4UVmeqK%RLBR@rZRtGiX7?|485S(Z2!{}F8%RD4Kx^kkb0eu@BTXyu#2@iul+_ zZwF6zwxl0t?w3{V)Ol?!#6Br+&5j668|gqsnydxo#fD>P_M0O?43wV)LdNxPBdt8O zSSu)Qi@Bez=Q|xlZI(@lA4Z7ASnI_P+3~O0Up8a4(Cc*<&)LooBG=g+>KLyMGS}Ii z>KJbg;_Km->r_X~nRR-zH?VVAaq z-N2%ovYE{nbx&#wT_u5&pww%jzR1#JJ6nBKRET*E%R*bZSR@d&#~fjB-=FDlnu7%{d(in9+Y!k8YZIfOQ0mnvF0Fiy0$tsoopE zHmEc!xG&FC<+e0H`IeaGb+M1?6`bldvkn;j6F4S#PG0%8@(e~`N9k6ia1Z+PRh;l& z7(?@KM#8`p$*%Akaw`lGdnm=LwYUMGK;_Ot?N%F%VFMYHgX|i`4Wh&Ga!jGoMYQgg zl*>g|IgVSEYtfriikT0uS28cbb@%+gc6a$8XB8l0vzqA#8A25u*m+;-7exKIhH~+4 zx3BuXa9*nu@Q;Qn>P8)!U~XH2$c+~>rX8J4<7yB($+P&jo0Gysh8@Zx1ZfT$1pMPP z&GjO=GDtENzj67q<@YsvKEgL5@%jNPjH=~M>sG#H3dA1Fq3ie7kS!I+yK$2(F$!bW!qs}`2VUT!^yHt8s#l*W-LbJ2b*m^%! zRZ5dT#m?BDiJGKKUp?HZtb23O7V{cML38?E;`frl%ghL@m0B`sF=b9^6m;YcsPX|e zR)Z?{Gz+f9rO>j{lK4E2LSz}&FzA--Q67~R&3dfQeCs%AH_q|~zyz)LZ{IaO*#pBt>!L$GlMgecg=t zQjr-ao{=?nG-OIn!c>S)`9Ruo3S*wnavet_5Zqih@k}TETJR-S@*w%o0Cp`i)gau) zDBOm-6SJj*y*tE6hVavL!Fx=MaG&ch3nfTa%b#s*WTXH`(jCH$H3TP9I1UptgkXAN zmMA*}t0e}z<>J63VKXmRSbVyG;+N9WPi!^IFcwaTOolM>FQua*6C?->&7Y2U-bQz0 zaBVV(bO`3>!$DzsA9LJTszQ!;;UU4Wo$igfgc^Nv>?+6YMB@oI^`K}`8^r75Z=WED z_pp4P%02zVNk1%^Asq3uF)%=EGlSuFCSki~V7tB^n9Q$;HY5uFQsQN;_$o3{dIlTz z5LiM*@|+tjfR3CjkLA{m+h1F%CCp;gt|7lRVO6yc%O)`e7M% zeG9U5dyKT~l-nAPOtTWCcCV{%grxTFVRQM3u_l`cq%x~U|@ z6IThO5p0`C|4Q0L9dXv)vL4b-a*ZM7{vDcN-eBd#lex)zM%m$+X;xhv zcnup({a;rCPINv=s{_gE>fgcM3_)GPtbeQvkAjIH(vlwWo5?X6_6Vj(I*PR%yM-Km z$iVpXVKP|(0QxeS{QiQ5l{4-cmg?M2<=OWPYS-NR~{c&Snkjy*~zu8IDya1t|* ze@7QhAJA|B>9mQGmEuc(l$N2$vBu!J@n^h#{Ib|Z-z~ycP?4BVw>wkJB*=RYx|mOV z(>Gp;VZ!P<9*Fywb1x^N5!Y3X+9K6X=a9|c7a3fI|Hx!*wV9$Ts?SB0&*2L>Z+voy zE}We1T_Nup2ubcSj2cCr3?@busmXr5l9I=fw>%$IF1=>$B4c`s?l=wO+^_-r6$fhE zwy)^R$p)`qFhf*lI~0Qh-JPQPpMq3aU2;lbkxC@sp6gvg0dMdu1L3sSDXCStA^vj{ z_ufY7sne?W5v#{7T%%vPkT`dn62p(xGl|u!e0t>Z91YtVYcecP9oqRO%iCTn=n*di zUF`7Vf?0Dgkl}Y?Axg)BAQPCM1>LFOmg4pHQxU7{17NXSFM@7-3+KEb`tM7WVT{(y ztKm8iqp_K`)B+!b=L30LL`3K}_Iqn}pw$|@p6GrP1W?Fl)Z?%9JOgo4ivLZ@6UN6L&DeiXS?R;PAc-9n-X{Ojg*2gD%X&Zzo_we@9o`X0kR# z4ces4wJKNeD~3Elq`Gtx=aJ%F%$tQ-$-|35teMT#z}haQ3rox5wJhFn$>}B_ygW`5 zQI$6q%(00{6u0;;4QG!f--#k#iH+7l)M_ zCwySd>G*_g4Z>QPy#U;~VaF3+SahF7EO&WE@!X#bU-sAZDy^$qBGPAi0y1K2esn4u zcf;gQ8^$EOQAJKN=&K-PkX%4lUtgbO;+VMFoHhrUy`$si@F5r9rlG&a7yhH~>DTvn z!6_Tly=y!lg$PczQ*6A=2v+e+;e^|_YwHY$Q`8@84Eo2}+~v<_{}i($H`MQ-ofl$p zp?R@e16e7zDTPBLizAX3d5fd4M1oFBtev`bQbub5QbEodF(;PgIwuy{G1?d{UT9%ctCW`_&YXGv&l zVJE3_@u}xcj|GF}lj!j(=qF;chT@<2miG;>EDgZQN688&!gxG<4BQ3>J&Wb$A1Yiy zfBRs)U%@qcDRG1Vqu@UyU|yR=^&|1!r`m7I1D{y!39rnb_Hl&Ye!+wVindT)wKygm zVB5|!NiJkzVZbSa$6oXb)ctLpF_$8mZt9rpVK%eo0HrZP?4T*(837(t+E>z>fqYL- z!!FtZjxa$Xl_~kQ(vZG9V8n=`J_J{pP8z|{J0oyEbF>I>mtxhJ2O_X|jmbc8NI0)q zihHiysJ&;`Snf)!9{0k=qjfoq$iRp6ow%I21#SS0i~p|g!6&T?+ibPn*B2Lqzd3Mt zy(HmwqCl4_E6CC)cRon^LKH z@{5;}Btgf9Q(Q(;h~1;)ys>vbWIct?N>2A1tH9dl4XumlYUv`%Rh?JwlKWuA{8^~) zY$|$zyV*(P8{Pvv(f%yjl&f_!v!$;|IL3b~{7b120dt}Z->wdTo0~8XMoSM%0clw> zzVQ-P2F7Qt9!8AfInlD{jFvz;v^=$on(w+pmRv6mzc6sI*gYxC>cV73nmXJ>Y z#_(?EhAG7nR4p__ZUnQqpjT9=yo#+XNC32AKvcngO=AST8su+yv&H?dQ;&VDYKfk& z+5BaG+TSsqqxp`$WQkl3o%P@qk$w0DD-w8Ts$BX&<~6L_E(yL2GSA6# zkyr>Lpi(|Y#Aw=kwfFs8zre3u!cWtNzNS*=!rnU7CVy1%M9ULZQ3~^0pvg)9MlT^w z*itD|lvI`L5!vP6gV%6j8cUq$<}*Uv6U50seU0g>*f;diKWby2cRR$l{@?l?!$C%r zvhYv4{^{z(JYJzH1cgF`g)jK`cl{t{OeGQHU;L)9KBddE;d?x|@Yi+#wx0I4%*sUmUcr6ewjjpe7o4vAW5} zbTC3Pq<<;RxVR?Y?Y6<{axTh;i;g`t3j%Alkq;rg9D#ZI?KK`k#$Qa;h%i$`gqm#V zp+wJFSc^Ep?a)LHbH_;W0g*H!i<$Hs)NfcO+emg(&2$qG)Vmf2>_P$DH3zB2z9m}wCVU2% zt-xY&Sv#&5mKERmaD`{xxuj=(J1oVFq2tK<;uSA%gtpWOz&(@-6c8tGjs8R6uro-dP7+M7QT!z-li@7eUB ziU;ECZL_%kc^+nL+S_i9xxG$(@q9Lb z+NspOHP~I=t@nP8;QJVGubt*C76Qt|`|U$OnDgi%CF74)T@=VgBB9KJcqWCHz=G)I zj*0LWqL~W!fDJFoqG^xLY7i_TqBzLm7fGF%eVXvDLy0gil9Tq>eA$7_EoV-M>C;s> zC%qt~ae$m8bv%eWJyi_+Y~fLn9M>sODLM=hdXyWfUJcMPe_+>UD9*yH!z%R&BUxO^ zpaf|tP%7z!&21~_JEhKY8o$}TpeL?A`)P72C?yKR=15d%frX;m3PGa0RE)`j;=w`@TdHPXnPcQR18=kTKT*}!I95}1{>@FRR`6#i!a z;ZevJuRfIYh^*&0yx}-k$V_b$Z-(C>U|MK1bLa4%W)n8B2*zXO#TAsuAX1!RA?mj9 zv-9UF*M7UhJsG2CjUud7W%u8rdsW_lDS(Akkw*yZ1`^D!&wP_~WU^A_<5!2;5sP(? zKHj+D9?y;(ICMkM6Ibl-w!7LUp>QI9O44dZtjY=56{+ z{}Y8Ob0W4^$>vbRKa$-~`=fBpnb;IWsf2hgUs8L<#|>jPG;$M-gIBi@)y;*x<%XSD zd^77ed-h7lN>yBokL8i;rp^fwlFu^zJj_IJm%L=9iOXva)5 zXHQw|Jkk^tH+cx2@(DeQJ1h<&KqRRGlw}NP*2qWKuo@q&|(R6oMjSX?M|6^mUO?SmJ zU~di-<4>%;9D;3%jrXJzpX0d-pIXe?hhvnRnS^EVGRYchDc)U2S&XyF>+d`L-BI6F z1`VWRWGvL%x9bd6K7K3k721C?qX)=0DmK=%?z*@)Vzs>`PE7j0!#8ob7u31-vk4!N zu6QY}5|?l{Jpoj#Z67KP(y?}ArapRO&xRnn2b;nEtglCi+fu*`$9;_c!^uc(i7#ZrM607wy)%C14Zz7Ec-#ZV|Oq%2G$+ zm?pPU8bt?FbBnwLp^|cpv1~sd3H=w4Wh+JYz=_ur-Sd;5Y>JmNsz+RaqP7Mg1AN!^ zno$r;ev3n=k5y1T2LSMEkAjXo#L}(1`CDaoG|pA@-TF_ehfRZxsK0u|X$e|SR zNRxDUwc|@%)l&4ZUv!b~7pPMyfdZPiN}Xxu)h%{@X^NP8swx+{8(sM5PIID{ZeNU0 z^0c7&$zT+5(!&Oom$vbY{PNNv`61+>pWF4{BvJT?t1GzdUV2MLd#_=#;#ijzKLMoA4n3sG(ur?X|BBNVNx@FSyHH`-CgUcOxd z^^vcZco_EqQb-O8elW?UI?2~>rc__|ZPxB8cTY^_{IA}9JY#fE zm?PKI>P%J40ny6Kf6D5N=OMnZT>wBZK-XLhwL7s@^j(&rFEc*O$PNC+H_=$ko2Y1i zn~vLtAZGhM2)%Sz2|wq;hZe=(0z)kCR@4=M?`fCfKhdj<{z@4glRoet>1|HrsQc7| zWCA}pqr9G6@PCF{Nx7QO{f0gd%e(jTyT?mL)a{4x?_srVni`#^9)Or9fESghp9SeI z61*I;PuvoTSCy!}!NA@N7nYX5r+B}Fe>aY1lLK{hW{N8DXy00V06UFA?OGf*_;crH zR5fsyy{0Y=L?GGh<^lS{8(lXzHo0N#e!AsEbgABrsGV{x`Y2q;t$darH2!_sOwLDNB_AY zxUb&+`9FZ=s3LzCb|O*9fbOv>#xkWePN&1hWI zY_wtOe&KsP^5SNV6PQGJY69VGCnk+*L(z!DuX`Px#>&gE!@>!eePDoO;XsV!6YiUA zI&srN$|(KOU7|Cic-sH6_bkv+6IIM`)19M?L`=2T;dkAP^bBmXDti zB_ZiRgoK!M5Ou^RAL!781R)RzhJYaG2t?%*{_%4{#!(53BCEniH=T5raf$1=pdz*R z-m3Tdy-tUOkvTiNn|Dt4eO33?ty{NlecpXl^+FDu^D3(AM6ag!=~~r-rFbPxGg_WU zT9`a8x@e$?ekj_CvYw2|`J|sqB#ooUkSy!ZY7`z(LldAExly0xM*XnHsQH#_!u=AX zu6|q?^)s*h9Y#I6j2rdqH`%EF$*l5s+gh*gXUhJ^t#bR;*2S#ZLRNWJvC6a8nwj1> ziVVpr_?d4})AZr@ZE17oEz7|Tig(WZoJ=eLW8T>}2)|;BH)tfeasNdrh}opeskBd) zaXy72H%*69??@?gB!nJId%QA_GHk3;Jsub6 z^7rV#cC2@NSZ+L{dY}VI?Vuyndy`tc<~)r9AMyX<3EsbN)&TSIvF)ZVN?|rthApC*BT9ZA) zg7xJSsSkJcY+Io5YSI@*ggiMU2{rBFcN`=752I zJRJ;l*56`XVKst?o$>BGG2Nrf?60mX@g0m^z=todU%C+opL@4~T%K(kAlCXG+{Ho> zE^ck9dd5IOmJia})=#`3A-o`!1LT720sf7twDt6|qa;chZ}Z*dQu)$v*}s0}Tq z1v*#gja_B}qSPWuiaou0DDI=#18*=Kh{{C7ua`S;@dj}IpPixmD(Z1D1@bsd+9sjw(qTQc^V zx@WHjn+JloL3x4Dx`2cg*i)}iEJ2n z@}%P!sa$?xk!$7D80idE!uX2pc&Nljs*<(h6$~N88Q=Vwm%oUa59ZtVHf@)44>#X_ zx0Csn-zuAL={oA6E)CF<-^a zSa7RBP4Yb$N^yV#;rZgBkb|LMtoUB4P5Mn|R1*m@WdbJ=DjiEh zd!jmbiC(Q0arAUR=X3N|hS>Z*!N<$QaUVaf!7@)Uwa7_bQJMXNKB$kZ z`R`w%ikjp@K9iGA=H%ykEA#KQaz))`Bu{>#tc64$EhLf_0`d9rWNw8`a6<2F17<=TK2<%@>GxNu2)B)&JLzp%Mk=uCpZG7*&Rl zG>#%evexk-mYQAy%r4j6f=wHzJ~#mLX5N+o0l(uT_z#9EiO|MI|wzah;+?X5w&S0Q^gIgWb(Jx$LSC!afszUTV3?6*Z;ucZB48V8HJJ(6~WK8()!>S31}f=@17( zL0hBAKQ+a3U{jV38SKY-Gs}RL*1-V=^oc(I>~#}zZID;KB387 z*J|$XMhSoGkX}CiR%yA)-%7bDyj;W_SGIvhQd%`je#^IQ}wziiquPW^Yzw;_^ zg}3We4aVuO!Bh(kD6Jb5aJx>SyKc7W>;2|*-Kt&OMNpljUIZ^**2kb?8qH7)PrqD$ z>-5B8wa)_M8C6K|70AmQ+7o90(i2rY@V!I=eMHiL83)btHlXv)XCmxT34*W zZ=xmFNpwZ_l4bwZ^f0YRc68A?MWeY{H+Cbl{(T48tYfp7vLg9^TNyWpYRfo*m(j?} zxHwoYW8E?)ZveW$HvnDm*LHDqh`A7w_32f=jSeaC3)&q&rJgDOmXv!C+|z}-%jb-f zyzcTd4(=`&PIn(xE@znkcQA=-jZ;RWy5l?wiXSuXfRhbZ{X z7ooyOgx_%y^16@+Kbm9_JTH1hAgB9z(TR_ZIUkaB=tp@oCqMg*e={C)fi$M~r1q=* zYQNgA_N)DBzuK=~b{Sg1n_9s~M2=o!k?aX+*7W35`vZ&Sjkjc^rr~{(B`H36p)IjL z(Tz+=wU103X-!}Blr6zNGBR?^$e5`!0FIcjDA6|3mXa}YZblmZ=A! z*pwoUyWVfXdd605;7&{T$}OJkV-01?E*;$zk$CCos`{eb#!Z{uYgT%8zuK@Vr@?uk ze!r_B>rj1BdBc&Ml)2Fh`Wxv-hBT`dHxJ$v^yBLu1I^Y=6sop2w16PM0co zR2rf-?}7?bDl}Ls*~eHN{D$v`Cl&aehoAKTV~Y+lwjE$kfbSg?AN?l%sncVY1#21| z%ectyikE()G0s`Y41CXJuQCA#jiyC_O|gS`P5Hcg$pG4CH13Wr>YIG zf9K1n%vI~%&gG4{`HjU}+|CW$s)aqHK~?Omt9Tu3i8GV5_P1wSz4KthANRU*-)`Kn z`+h4DWq=^oMd@}*06GFw_M9lKU%f+0w%bxbj>eaqbrpvjUOOz>i9p=6K0a)B5L>9%>TuOPlGg!&uNypE=80 zp9*=)#q`=wUBz4Of>%@~$<4F{8n$^0n9;Dg@tKL1^mw}s)Hf_G zK0Vp~Y;#3w?Wq+$tusnUNt8!I3ZoH1@1J3#abV_rFbrxC3GoXPC~89d!iB2wRP^Kt zX%kWsqf_G-CO>D>jJF&=-JaPJelF!UDKj-8@=o}V95daPk+vu`(GPwU;zzfP{}tlz z^2LK}Gi<4elhWf;Y`lC^=RS~}VVCh!<1_5G^aoQHCa2nb3a7>=CHW=rX*r6%TENRK zOTm*o@u~6iZ0S^x2}$#s^PdG(+X92baczyIfWNn@t<> zI&|OF*Sb!Ng4#f>LkYE;68i-V@`mB0pe<_{%L%1#(sc! zdd@|FR{%bk!C1InlD+{r7T~ERjLinv{aMET0Pv$_kRISvn3uc{@R7|hZUI~h&=4R= z9ZMM-2oQIF!~%SBJ7eh?9^W;KdIiy-|{;pN8}RZ#{#r93?3e;Cz5# zpFnzmr_MrpfMvCeeF*UESB(7?V21|AItGIJ01gY}8VwVA*F85~(k%(q_3jvC!rk2i zA+8Vn;%qQR<0Q6o=%mi!Q$jjCV{%CM^%_6)&Vd8u^b_IdOlB-pWd|5P8-5Omk5Wy7 zktdpRd@5t>Fe0XN=yLspPJwzC@)!&FmjHjzf zGY$S@1&?2>j5*5KRZafiDf#CBzW;H??$wlUj8eYsfd38j1;;e{-KXgHeZYSKeZ)LX z`X`n2b$}lLeaD|Q^1bV=e@OQc;2+iCA5`!I0dM?>u`L?;*DLZ*1boiNpdXF?-_pxA zmr+lmEwH-g+T)L5HPZvHomxvR?cFf zD6>y~*BF;SR?ssMmi5{s!ezp__=5<`<@{&AYR~(RkF;9jm;!XB4UjZIA9NCW5B-}^ zWrm1b5|C0CxDhb=J#cThy~q8?=oRRJ41;=QAzE*I5%jA+iBW^`6Ni%i81$TmAz`@7 z%4jeqr`jd`UodKD_b5a^1s$_tSkFol!-%a(UyM=1d!uCf`#}MQVnXX5gFeo%u{Yia zn(&z8po?6jG7u>UBTRPaw$B+ynerf+IRO5QcLrh3l6h`F2;61H6eja1AT$1&0-@%o zfvs^Y1;Wh>Z-Kx#3RuiPL#JpQPl3VarRZ$En*x#MbfoUe zJQ>t!X2{^NPWXMnLURO+5XQ%Q{0T6{=0a4+?4F-Mpv?Rxl08A<>@u$di!eTE#@8+7 zW;;qfCwMpnD$Ea{s^UntN;AHKFwQl74r$((^htsUn8(Tqv^a2CTt4t`Uu|d0OK_E?6w&1Pk<$wdUY$p`-Nb3rrzD~C6*qy zIh(_~J%#sw0(x`Luspo~6zI*p!f;QteiP7}dxxFmmg_>xodu(Ka498&Hst};>DR!( z-Jv%bGnJw|K$M~%$aVm?n}h}#uqAZ7Pd5xqtP8H#m%98nd*1>dWpO?FJ$91aWRvWd z_b#s`fh0V#B%3z`NJs)n2q6+c2;vfUHxEg&aUZ-Yf`F|^ZNX}5Ujgc~8WdYw5i6p7 z7_GKy+lZ~Lw0}^nw%4My)>?DVnVE0*+b^5y|K5M^@BZ&~A>YiLIdkUBnKNh3%zTg4 zIFOa!frv$=3#2Y72Vf}5%A;Vu4N4-^LzEK0iBo=t13`Hm8=?#%d&*6Klb}2X_=(Ez zQPK+fL`e$1(X|I4b7lj1rPXM*7kxe90>w0k%QpzH9 zoRmrEPbpieU=PrK9Gi@S?L`x)d>sd|VndZz_D#WlY_VfMj$~s$8g1wnN^`J^E_t`6 zimSwYkcjdiPCAMkT{~q#JXXvh0>i;v&WOiH~9NmFNU3ty8d|AsGw4 zMwPZ2XBA~;4sz0-jhtjBU}KM_V`B?&duU2 zl8I#T5lw@F--jm3R5}*6OhvNuj7awQ6qMl(JC)&mP?P1j{IrJngW@hEz7-vRWyT~r z&?F@Ogbj(OCn9kx?Vy4wNc=4kiFZ=sj&vmcR~+t2@(lFWrEVBDmeX=xe58tBioe7v z`e_G!H504&FcGW3gFRV!5$87Ld7Mg=TP#?`VbFvW=;?uCnNENl>b9EB#xeByfT?8*q^2%|MRCI|9Fa; zs8rzn6G}5$CuO6IhGGznlQITvw+PZaK()Llp9411IUCKQ_(kO7DDCwN==duK6OfNR zsD(ntw^4CdigLFxQm9=NPh+9|6umhWud@j*D^!dPqF4Z}Q6}TUM%j{y*JasAwvozi zGa6SV5q$(@eH?AxRBYZ^8#ZqT!RFm(qRkVqd4IQK^D6Dwymgasp_lP_P-M#%Q9i9< z%qNOItoCQP@KZ8zxv2c!jMZ8)vD#(S9@^0bQI6xxCuD5Ke%dC=Wu^$3&xqn3Napub zkw8DL;*?M#lCddNDEKx|%N|j_MpJ0NC|^S@~ zE{Do32Sxco4S_F;q8%i!B;ZTOlrLxC)t`a{elJsFj^kIzcpntba;qp`f})w<0Nlx< z<+x~h5{hPh1PW+*Kukal5VD>@n|DG?z$`I4)a1eOlDHQ0MC+H)0DMO@ARZlh>zhn8C&5>42NX3@GIC|JHHCZcdHkc3{cd|xynyXm4870B{1qns@YW~}|i z1U|WZBxHOJ8+%fe3jt=EYk5>O%>!X(?LcN9Qm-|y|FwcD#*x`I_Q1Nh?s@- z3K{8OEi6xqay6tVv%3>Hvu>9DqM9yd=_85Z>E3qIk}R1%fWFMiL~~@3C|e+GR0)Np z3|V#*RH|gdsmqwP26Zfr<(acqBgg3yZGa`~O&pUMER~w|2#P9GvY^RH&uT+Pv!o21 zC$h5^VSU+B655T)SzTa#ELJHQrzv|@0dQ!sN$EHN%*c8WCxuCp1?_o3*6r9^lO-zW zxmlZF2w0}DRAJWrXqcw5lq2g6oKvPr310%*MOjHO&MbD8D$T+z7Rz*&s?53tdC6g^ z>a16g&s-_-E=bj6IgytcEUz)^E1sE%*w}+ zf0LAeT5rzE$Nu>OYuF+o<5wubFG_MD(42Zpf#qwG=|RwutgQ(D1}h|F9Y<^NO(_Ah zoLQML0a%7uYQ#Dhn{b4st`x1a(Oey6$#+HTVN}~=EP113MOj$B#gcZ}`gzQ~oh837 zTkpo)J6N*CV8z`!%biR(e=uZ+{C$GuE-3*=>wg%sul5B5%iSzjCRS=R?qTvU5G&r9 zXZbecKaN=AQ19<$$x32PN5#KSN_YamR}t$ev>n4NnWI?WK{Y+jlE0p8{Vp zByTQY76P-Vg}9ZQKS)o*^uvj;ww3V7*^GGP=mAMS2%?<~qWz9!8UwT`d8qaeNl7o` z#F23p)$n_g{2HWe*_M-%X(QOltap&ZQ>w9{o&6|pT-IzP`~#MXW1an&+Sym4K{+j@ zA`uIy5b8?C8`y%!CE0Aj+ae1rPfDh@v66FWH-4m6aszVmV=42CbfD2e_!B7`{VikG zGnn_3l!gs3Tbt3sj4%d{7Fd6WhU00;f;8_bu&zYWKf`iQ6j)P{+n=)BlLf$%8zLF) z=%G9-$%Bxvec7@?HqC}ACT;QV0PjQQYDeu%n@n}pDP-V#AS{>3vJ9AZi}G9Ig~;@G zfhFbD1RB2`R9!ij7{d5dlW;~)ydFJz+D8bbeU>7ak+|$y`HvmFZ@{HlfW*Uyw}Ahv`nx`1ER;kOXNb zpr&=0ObE3UMmo2Gc6BT^N7{3K1;1@UxcJ#<`#(hJv2 zWdj)PEF~V`*-92%tx6r3RGacNbo3|#RAvaN(bmxjdBdEZLQL7 z!)prY^AhD{;JHqD1SDLq><0NXD1U;sFI9dFgL9cuhVM2}9+`~SVz~O0w?Xj+mDwqH z9kJu}D**Y5@@rfGD}SGk*MeNU`au=Hs-%H}d`;N}xnEa)4So6zU8P`2ce7QYxX|yOl3P8}Csr#o={c z5?-H$>$er$CBIiW5B%Jx>;t(CE7t(daph^CaKDlOvKmny2FTOO2-N$Gl9Y>A3uxX? zl@~ydo>kt2RzIiQ4Rn5%Ha#1s@3dz@K!q@*Bxt@^n7kZRYsLn+%*0KvnYdviNSkqi z=t%CyJinSJNcq6OIFEvJ?P8JXQHbOPb_$}?jGJVF=`2(ymLwtEX!-!Rb4rt*K*MUn zm#~OsNl#_qnM<4ziN+Zh(<@dk;R%#jE?*1r_~+n~j|NlRC}zBzfqR>0`1wWtG+aGh zse*+Q99)NH!li=k9BjtjFbArR5T6S{GQJ-pXPLOuMfbZ7&~;vE4z(RGqHmHXA4fI^p^;ey>4-Y38Zxsdn{cgc+66tHJvEMP z@#3l=dm5d^4SBdI$hNbIEf3ZN+0*Hgz-ZbF%9EXAL5o^o!l^zxm(E&qO*mU+&!9z$ zOyIT(*)wUvX-Wpw$&eMzv{t90(b|xVM(aQl8ZE_yt6S-FP}n*{{$^IB(gJZgR@zF}mlb%Xp!}0=r>rz$ zrEi+B(yMW@R`3n%M36Q@wzWu3&5jT$6|Y4ios`H6cD(-1jzs845Tw)4Vr!Lrxu(cM z@i8nih=+zsC*8&w$iX6?p^d#E2kX5piEb;cf|gtBtgZ6XfI4TcY`x6%2FNO}%OhCZlbm!;!nLh+brMw!6E1D7Ym#tf zOXi}MSl80o${-e^YFIB%L)9>fg}BVMu2ZlDX0Z@gxz_axiohZk;v(1DpjH7(;bL)RB8vQ zTOtJ^!&V{_Tck+2h|`AhJvyuACQvuy7?iP9$(0(kR`Fg$J54vv40MOuf(A>OOm(*) z1J$S$w@8#4G-t|Z(1a;}MiZ!ffL;)5z$qJVfKf=k1S7<@!GeTyEw(F7e}sq$S6Q}A zCN{X=1J$>6Cf`L@LXrb?+_qW%3E~@VT_ziDe4mCIY&{&m5iGo|mnJ~DI&lWRN`8;g z?>99g{#&@I;N$pbP#%LBn1SmhBq;q5G|P6ioConaqG;P{x(zMZCxkG-zwwEU2Os}J$ z_obfY++e*@00y*ezkCxCkF$NwGzrbXuK?Y4fD^wLy4iLkCmsTYwH;){1*rs-%l3Ks zkJuEmX#1k+YvIy|wWV*?mi`heZAyhfXS;>AIL?Io47OWoBA$u-%M{IMdH}3}?JG2q zV8YR3yNwPrvmhP7tG&~ z<6%}|UY~bBupQS{cz-fdwwPW-_8*`GaB{^^dKK3PC*-?;2k9Hwhu@uAj<(f^+tUsl zEz75<6Zuvd3t`WGX_Mr)eU=gi9&g z;}%>=nN7InvYnxPT1@A`&9wb64ToB~=_TapN0~U6WzWWYCu~2q;K0V$Rn8tmk&GlG z4|`-te~3!|wB-b(Z^QIiVAu9jnqOdm^g}?>_AJe>!Sou`wdYdKK>B%1zlS{iEPWKx z*#y$G_g|oF;rCT${}!0Fy_kl2buXszOGUO{WTB?ur`Ts-hQr~P6dzx-Ir~mfCfl!Q z8o%5!+lPuiYQ{AjzMgaTX&lrq(KNo7l&t`eJ3i{oILgmx($6EOk#w993z*xW{A&@Y z^d%I-Ss6QPPNi)7jcMjIz6i1XmMasLJjMW5@q2N^Z{WJx ziMKRBb~*0B$cInvF2S$K%(o+nw@-36EeEyH7N29s!$kQ6r(B9ECrygaTuiagaB%)) z+zy@|KY67cPZrnZqrH@J;%#eax~;4T%l3kKj8CO1e|SaNCIoE}q_X%dI<^kCs%{{1 zLK~PZ#3R3ERPdGd@aAir5t)iJ&Vfdk*Px>y#3#9rGFE;is7?JkHq}OGcEQ&vBRv%X zzZ=twj?wfcpz?Qmn2TGgm5+j6OGo13ailrE&ghg8mEJMvu8K~7H=^VsihTHF9qm|Xz&{#O}dxu~}MuRz&J*}N{U0NI2tb|zS8 zdI8o1U7U|*PTC(w?Hov2sBA+(UYrR-~$z>7PnZg0;; zZGB$V?cd^(e0^LJ?zsTbYv%vsW|s3b7v)nqsIH#vg0v(ql~MY|PGSC!zQnTQxMcnu zMr&2kez{YqT6ZhU-o@{jV<;O`lwa+v8sr!mDh5?cSDY31Q=!{-R{iNKEN7?MYa7rp z9gLf{meLsAi9j=M$@S!h2L>HI+tqZM5RZAq$6$t)-Xn2+H!)I=N@^ecF5Cz2kuvN9 z=vOMQKT~;~IH~e4NFR|THgLQ1&tngakxZrtJ*?J0tF>kc@kqAv=a~C5LdVi`{8bJ| z!Wz{vLmf*$BRPno)_m0rtocxs75Y`UuKXvl=SE33PKwfD533u?(7MxwcqCl;86@~P zp_&)sb*~fDx^JJMYV+e{w%Ulw1qis4q$A~fZ)CVX4VU>K%Sl#|>bEN664#aXLYuvX)UUGO5hwO=FRO3o;) z+M0(|xACg0_VC)Ck$Ept!_!6-Htt7u&Ho<9Q0>fPGgUjYmRKWpX7cA)wrXe2&s6Qq z6~q>?Ge75OYq@$cJL4hT&^?QGhISY7NxLf*{4|Ic{|S^{ddCp=**%<(u*tn5U+t=Q z3=Sp^kk8j~1^ZWnnck>@@;Qbzy{7_3cICTajUxTcK%H{rZvI(L`ZQRy(oz5wW1z{#gpE|p9Vi=%3UqkW5`F%+u?MW{NykLB%FjXqR0gYc?;vTOcB z`=hI>$XDr;PqUJJ+8ITwMZS zelwqgoainCppkL-gI!Ksr2yax1~|FP`3S@4XGI>`<;24}>2X5=9@a^R1t%WRLAnMH z=%m9&CvI#*dL`?Wd$?LZVNg`&nOS_&z~{=}?wbGQU5xFkczauc`Fz~(kbZ8+U|6q$ zSmy7JMq?=FRg~WWmCAP1kvo}GR_tVWABN4(NtDW|X%rO@ZK{ynX`D5~z?t92&}@kqEb2S?o$*3Mb{?IQ(YnODzN>z-mLWMlcB z-TAlUtTWA!J(X5g!;F+&)rrS<3&q!APyS7go8f1aNO=1CVwmFJRDRPN)9SQ~8v=Fm1+h4@<`UVIG-;glTrLO;W8509kp&QWVSrPkKSYCEOY zR+DeWVe^E{=gQ0T??-aa$!zs_xC8CL&(zcv`A_0KOlM_kw}99D8K5cBZ)9q=RLL{m z-+q{}F@KEnRm0md2wdg6u>22Y?pm)CsuFxGH%qnsQ17cU_p`68%HY|5R82J#xr_nle>pHPFRwq8McH)EH=uRvzR6DUo=1$^$yM?MW z{-T^?eD#)3O>Uo@!Ax#_X{R84TUJ9H zpfY#Hp?YB3rMXd#-A*a&;T9i22V<2Kch`DW&Jwl?_s>%sw@RAHtwMeRcEf6k>J%`a z??63WBc;>r82Kn)G}AVno`<0AyiHZl@d{oG4_urh*GZYpeCWQ$5$@KE>3A`*ipjv&Xc$)Yp=SV`|Y9_Y40M5 zTe8(vhj{h~@6gh#1gS<9$6ACGKZyf8QHmQ~!%)5uo{@e4Ogn#=L$jx!V*+y0)lH&Q z&6wUKR9}a!7!%`gt@Qw>kssEdw~N%-drY+P*;}amA+D+J66t`rb0xz~2=BoRI?*RH zQj`K!XMTx3{yies=5_g*Xbm4%(;f4l5F_nrGXi`r{dK3M;=h|5+RfKNY8P=YY9h&#U>^n^o2A ztZbjg`Tf1hL3>pn&o0n#a6#qZ%BpQV`*l&v!Ru-bs~HCuRSq^W4*sO((+(=WAAJU+ z7&mhPBeEx5mHm58wa<-W4qI*Cu$y&;QC!Govpu_6r3oURH->gs?ckIwoD!SfHi((H z$tfQ`x;y_B9BEfD0L%;Egg=g5dxR>^fRhz_I6R9!S0V_D9>yv0NFK&v-Ez&M5p=ST zRQ{3r=_jsPREoCi$TBp7;J071_|IrH?=!LV^Vckn!|jq`p8n-Ei+_^<>ElUw9~bUx zEZ&0o_w)48Yv->kVb!N{^DqqQ8t9%=sf@(gYlNz*3YPaY$HDyb$t?esYtVbbeb3r+ z=;rTYn>)O5%fh1~y%ZYvMeLwmIc&1JqJ~=Z-P|+s2}|~)%sp`pg{;sY!Y1`gSeQz} zGX>+&L)X>>`v(PSOSmOfH}YcF8X{cwb1rYYw(6@qyH(8wyWr!E{02U36lX*s*VbbP zlqX;}-#wS14uxCsJ~D#0!Aa$LjO{BH;Zu@Q`9eNQ7yTRsT;9QTb8#--r(Ma%?0`_0 zkAv8nRL39v^n~r@*I>4)4+Q;?J2RcF$G0t_bE35b6&n_1+v@QYL9#C4YqD*Ne}kGe zDFMqu?{2FZ^aTWIGVlGf+o*kgw2W>7sP^?SUh^|TL`>7T9A4SRpZvJ5jNhR%CNtxY zM5ysk6yhCzM2{kjov7pNCgds5kO-wyMT*bt#Dh>AEfIW196o|LSJ zsquKriIgeG$@3EzBvvIh;eGxygv7)}fFTHm6o|qafQa6*JSNGJ^w)mA)-6`Rr!KWRG9!JBfEOEm=-TM;QG4^4(&QuW*#Izx0k~-tg@LCNX(DYs zr!Xn1KqB6yD{5<)k`%?k)U>GFX;c>UZeCF<)9Fc39h74LzV$N6O^YfrBSXx$Vq_+v z{glTU3wKMtR&-J}OfdLB=`5fU7ojpcsx!fa&EX95{JBw7f$_qq0swFzAFQY6l?ux^ z!&qNYbl)MU*dZ>qs=$0J>Ss;%mzU6XIEjwm5-i`8R!U2jmTKgVfU-n!4XAdxL!5wK z1<{qLjIO*XEeajli)mPmun58yB!pQ~UP6&EirWpr%wK zY6R5ACdjK>5}g}WSsfS3_?&v8tE3^O{6JC8&%nD6sG$@8k(>lq>T-&B8`a0ZDZQ_E z^Cx_vx-c&k@FV`bZnt~h_R4Zsd1+x^??7mKVfR32Ue&zb0e4@><7Id}F&=MoZ!qu) zQ04`940@vxKc-Y*N8ppRWQ*57;O&d1HQ){Q!rvz;?(z3-_4+>vX6N9bAcTUQet+i< zM-TQ#)EnuczXCyz$J+&YFk{f>Lezj@f5;tlEp2LP004~KNDNB!`XCy|q65J~_#04* zQ9vjHQE9?h84S|b-)d^v(i?R3`MMzib4h<^u!oTi4fFyb7Vq{3eS<-l+voR2%6K}1 zovctVR$~I^z`qr6`uiaTUR0l5b8#k!D8Wa$2& zXEVb@qCxkd%iY)O9SAbg2*Xz?vy?`fw1hxJ!6c~@wfv+cl2qeDV%|qg`-m|}QaT8X zpkZQ{w>pURJV`lEl0w8BBuO3LBBJs7Ma29LM>VY{;st{wpWan1<)xB@3&bQ9rV-;2 zl6sbyhDb{XNjI(|inJ(|SbB(EkPPA>V#T0~C|jj@X(SgClDxw~CLt6^vcMuIo+3$7 zbt*CUkjboE1}m4el@MuOhE$tIM7S8QBFV-OAw8r(D$FE>PHZ~>XLU!}CLnKTZQm5|lZMC@N8bB0L!6ifLr= zFtI_-OonQc&H)S(g#cSXWwag8L{@W<6f=&?m`F^l{u0DHNpcuUAwwZ7&-4QHYMR~n zQ<8L?kmV%F_zFrX$r-*D5pxa^m&*wbsU#JJV>wE)juH@*wS`!oCZ=OYNYW8wH)u-_ zLen~k^$1Bb&LpWvQDQkAWNwgT0rR=iVJQuJA{&^W3~Z;9q9HPK2nE=TJgy^aFc>23 z7+fOzL=3B`907V0Cgo=GAclrf@)Qlb$elcV1w+zI-lk!YJkP_apl)5*bLoDPUrHul zBI)wZE@G1t9V9zM%BdLphg2CBMF}rM&OSwETp-zpNT$(#oEV3RrGuD{l9VIFaf~bo zl7wcmV3_1qlhh(?e`N=02$HTKX$z9p5t3X@ti$BmOQf)xB-fxK0Xqdj5RjcrqXL-~ zq@y953S{mOnLb3!&15MP$YreQE15ucGkMHszyn+!_i=eV!R2s-hof8`f8=s_hKIHe zV(B7TaP^biD@pbx7*-&UYT4`{%Z5n9C6ZcArVNvwOQg7(WG*D>A+q==Nev=!@g-7H zO(r?X%r0WCCJXnI#v!s)Ez(PiIH^S4)vC(PWfJ8oXO``!2(lusk2@cC(b!CqFA&fl z8yhAW4-oS($-J2)b&>fS$h=`H192UhNAr<%+&XG33=pE7FbvZ?kiZlST1Y+v&Sk)K z44O$j7T-%+SuO2sgjZqEOlI!KdP+yhY_K4tVwhN8BC|Utjud@tqzDwpYbQDK)OBR; zFex4-)@Ei1_OiN%$vVcuA{`4EpfGZZlp~TNIp`n@DcPc;2_uS=Sm%>UD)MGKvpvHk zi3OSRf*}-S9<#VjHmXIlq~a1}Jpfo;`*X%(quydurl zDpJV?lF=;Xq@zw`G&2J&?~ocq6PqCW649s&8R{~Q+RRWosSS}Sdr8?oV%>4DBk6d_Iz~*?4+J|lw}X^JcT|m%j%MP4ST~)s3OcA~T|7iGLTsj+ z#hhtw2qAAVLcc)`3qYydp!y^^bcz+2tlBfPJPBnvfJP7&Cm>Fy^w}L`(mT|<=^*t` zvu&7^g~)s$Z5txK5ZM8+JuoliRFliVg#rn~6-JEFK^pdv8GCW=hN}V{-wFY!YBf>z zqTdDa>Bb_G9;7ZmOf<83C+D+1&)AP)oK%4ZSVD7P0H0n!rw}gjEN;ZO8Rcz`lh&tw z@)A_4nG__BYIHlR9HeBFWH+NcVG(4+#V4_V>RnG}g7a2QiX3D%tlOGV6G7mR zYYGtyE+~`tlZH%qz z^>{G_Ni8hBhG8mACpH*M)kwIGbrSaxJOXu{tC$=W(44I?Dx18IOdlnA)#$|Kjgrh} zkfPLq)pSIvfuWLwYaLSv8Yg!~Grrs&Xs2KKZ z#bDj{@ePle3!K_V$;@gp$ANu?obJ=GMa;RBBO_RvOs+c*lGGJA!qbb$oV{ckSTew zsF}n=yo6;z-DX(-9;VmjB)OX;^^oKcR-L?$Bc`@&``CJ;?~^nIwXG z%WcE*lxi?suL$;W8r$-JLSxOSvB_T|mi;7i7`ImdmbD*ew_>J_3r>-=AX!Fd>S@N~ zDCZSlLceQqHA&h_imEYgGj63qw179T|KBRa1#D&rN*hJCMa3u1VcB&G1L@l4gQn0SCGMBvT2lrMhK}Uld4JCFj|rMBUIY&5XUfD^o1kDycoAw(v7(! zo34(*m|20MaUR+dE42xMMvEEI5{Cml8uYVydRM1uxf*;shTWypg#dhQV8zOFmYCsifXdZ zK`KVctC{#Q7$%SK-JZKe z=Iv#p$d{AfQkUpH(z2Y)hh=69$sNXOtEm zB^tr8IekAVru!8YBdAsN-DLGJSqVpUaR#wM9BSQ9Za}Yk?hx79j2k5$dcC|FJ0(LZ&meQ9 znVIBs94AC`-SoP)8m|@GDg;I+vGBh)zF{J+Kbe?70=<9QY3sUyY# zD4ThKWS=DptX7VZqzf=3HlwP}Xd!9F*MQNzc#2X4Kn2{Z{iJS`ECM31c1SydxrfOl zus7iIf!>0io57Mzeg;O{K9cbaI;6RfHC39MPG-Pz_9c=&OeP&A8Ampf^z$U=dQvb< z@?Hj|V>WBQv^0(6NlPd$GN}E^7$UQz8EIt3)3|5LDW^$}ERuADn2IhC zBA?tnL`vmng>~pcg6~I7^KoK6PQ-5GCRAi{{ku|q8hF%jAxCguU0g3GJ4p6B;D0|& zvYsa9XNYL*h6w^z2=r(uQ<|5K{ykcnQ|Ry3qt$?mX&VAy0g@8qk zE`TT>B`IL>q8|S+oJo9jwHhV5ITZ<{a<5#Q43$_zi}4 z>g0q&I7c|&A-O}a4ftnSL;=GAl zg3@M^#p>Y)27GCViy!F=Y$x)PT6wB$K83WGc91p0q+=9kI~WNtu~&c-H9|6$qh`bE z!`!T8h|-dG4C$yP;eleR^aU|J!fyfH=ZCp-RWn%*Ho=PfkwPX-NAgf$ zKEx-(O7$hOh+*bB$gIPp3P?c$mYuVY;1sU2764J0ZOM8LOoE*WTkbja zpAffMo~k*md5bzdxsQ@5K@>@BXC|imQ*u8F*j9~}ApZiHGDOxLL$oE;c%1?wHXVhr z2g9ZX{eyDc4uQe&5*_9sB^cJC{0p!o7Wu*5c*e|k!8+6}zGf~1+&hwoqPECJ*(Mld zqQ@hTkm)Sb$ug68=3E-iR)sS?N;nqOd91X9IF8^n0{$l0Ihg+Efho3BlY$l)La$MO zCi5&Q1z<)ssoYPNjglomeCiO%I)b@}$u#iFz*IU%aYbwa`)q#(%;FJ}`%@ef`Nnjz zbQE*5q1p3pCXIj#J}fwx)*<8HNcMS>zXHz_<{6z)dBlm9Vtqqy~A2A=a_6d5ys_G7!z-u_rv zcMXVUAsVmQA@tY44+Wnc-0Ym=#4<#3jzq3`M@Xs~&pv{Cf#UHxP=Iu1lQ&XbnEW|( zWSG&OxgWO;%|Jd$HQK3HpwTYaKq_FW#BpgSuw0wJkTmVZa~g0GbDDueJE^=t7C=x? zji;9dKsXOPoUOQwTH8U^Lr!lH4SQZQDcegbhsiRqC{X3)FOd$&yozS#H)Kp(Elmxr ztD#uE;Pv}`ewTY7C~RrN51zYP+69*jZ^Wr|1qIg^0>SS%M0`# z8E8Ro=YY#A^g)Yi5tX9U*EXzJ*-Dvf=npLI^?Ta~A+N=$R@J_;L2w0neE#6(P!|BP zQLd(jy5gcz7yCT65cGErxP!gE0ZOCZUDp}#)@~kXDZv|jnu6Z`B|E4X`!~D%-m6{R zeqU%1_-691N9Njr`QX3!p0_*XU)$Li@RVQqmzJ$sy~fqv*SQtQclC942WT@~P`B5=)k}4u ztIyXN1eT%4x`RDJ546VT-?7>^*z4xaXro_RceVNkkV#)xmkZmo%6oN_XS>ktYVmb9 z40LXWuH`i|t|K)EeC{pYpsUNnDsS^`3wKDZ*Y6AX`ik`cryfv(5@yo%dy(BOtQOZ& z=&M!UPLHc;U@#PfXt&_%g9@3@pmEzkXj%pGK=T+Q*f?O`rE*{I-RfGsW6-OLr+7Tb zIUZCp9#lFWRHgwfXQ${5@?n~_vRHi%;%`7jjEGyFLW}uU6=TdBGyRR#_t<&#S zn-sv}wH}Y(8whA5R>CCK=vdy%Ej*CF=PEeYrm9A}|LtY%Ips#~{JKVm3px@WW)NJ#PpqJ|! zvm$6jdIRl&KGsnyy!~qeo!#D5oq*Tf9t81VHFSuyhWdq7LC%qpdX&zfD23% zh?b2N7^DK!-H-G^e}g**aMS<>3I;;p5)=pRL9ZKBwAQl~hP>C~YWD_%y#w8>Be3P% zYAmB#7=a>(mjh@1)jcpMeSYK!@5Q5%*b-^b1eAFfM_ON63CPT(aWL)M#!kOS+qW*) z(lxDhtDC^WxdhKU;xTz1^;QZ&zoiFBmA(wqhrTOE8-sh0#9P=?0^~oB$96z0cJbiqiVx z;xal&B9O9*asW^>POUfZ($GL7OnAXMUub|y1*{D~JP^>K9#J=qU_zB#8ZhizQTH|V zU`ODb2L=Wl7SNZ@zVPg`6o*htu`cb@rAyS#r)KqXv~-LO*7;~C8(LlMt7})S)(k7? z1??bnyZgN;YBr*<=?$(GE9;l6X?MXWp%#VNT}l~Ui?H>9URmu6cJ{TSv5k`aicbF) zjrko6GP@3cO?7Cv8(hm88(Lp6af^nEa?U1t+LgYND#6|FVbu+) zo;A2RL17@&ubQ>MN`IZNw=cltPgNZ|HUMn9HiK8nhsV|`+H^{|mrYRNdEdzt6gtuk z)V<7Qf-wYFO0WOwV6dfkGrC%I>Wo;w+Mu7wg;8v0!^NeJ7gsT}NbUW;EnePdEbi3A zOW0uEj3QLcfvcYy7_5nU%Vj()=V1j8**XHe3f2Ba#%~pll`UN1S9kKd*V-q|>4Nyx^?&O|jTf0U9scMa% z=ZnjVwCjWh)ipxDkWGI$C6*&=yazc6R$~R$&=sD*ur%u@AtZU^0qErODOfHPNjXTP>ZbnS;mp}Z8>h&+Knl^>ix z#yWMA0?bch6FNord$*$fh*4Q7mp9eXPVUX3J#^tC8K_F!g{Jah18cm776rfp1p?cA zesvw<_ql;m-C&41m&{vKhh(&@%aGSVSk}>#o2FmsfaidiPTP3C$^u$D$;$QyU@;!R zQSVWQNf&jhcxqKJ1U*|j(AkFuU)67qcRL>}j0(uM+=b$*ME@3-KIq@#5;-zYE(y>{ zhbb!^>2&sTf%V@pe(W>4U^_a4$THJPw2ckm% z%6YBr+9iqJ*VcAOXn@Wb)U99b9#n+{D&(Tp(G~8w5^NgvUSe@k5#UA|2Omm?3L>&l zW6}|*P&G^hf*x=`LGaX)gC2MXf-$I9GNV}Qh83^Z-{J$Ub<_VQ`Gp}!k> z;pS6KIipe~!T`>m;q4ci(poVXSHYEj5A}jQ)Wzabrd|&Ey|~o@o49oZV%Dn1NAOzU1P5+u3#UHv={aVLj&H0-QEGH%MHm+zq@DQ z_R8|Y@=|+YH~qg7(7M{1>fqWL*fHSl@%sjRp+I41U|a8ir!a^kCjgmXMci8ov9Z*_ zCb0Zy~6%&a8XZ=JF~7{wOO1Fb4howsj9`xd9SBS$0$!-b>>%c zugJsJ+tG8KYGiy}UDSSKduX|^YeF|TBCZLyx9VbE=nvr-UIKnRa=xUtzHVtl= z#JJ|}0o}?7vOxn1tnMSQMF8!H?Woi^DxvnlKEQ4AaLb4rRXF)a>`k%OC(`bVXm^z~ z@iMKg66hm&tozvRqYxSdmx>y!TEAc8ZnL(Bi!P-)LJKnO*b?nmtBct!n#DQ-BilH9 zM*~~4va72F9Q1lGtX5D#>XvHuY}G1@i@@T9*K3*`+AXoxZgj&C-2lGmQ=LfG)1cdR zRJGAV#5TfE-omlyQmD`8^WaiQyPQ+EJot{sYBmW{x=k)RY9gJ&oKy61=?*j9|Lh#B zrG^%!JLxTtcXwXB7O1+J9Tb*M%w_~f^OH61x? zbF(4VitOvBTV{MNuU$oVwp+u~0h2AWCDgU06DYGPY#<kYPPu-wTEA#9_HOfxt>hQ;gu^0nMr&g6y=;3;~rhalTke$w4C%o z;x=CZSD|fwpawjJXG^rFnngX>I==Hq_vQvebmxItbhJZ!69H7yOV%u- zo5W!3sJ0cCYkVwqHGo41SpYvI7-Fl@&5d&C!_A%C~GI1+V6q9uaA z6U=PXmJN4zH5-$WD%>HzpYqeKY9|V@g`Jjc3GX1`v4X3Mwhyccl?3iPK)ba^KgD?T z<5Z7+m?5O%q$3W^9PJNw#}O*+E@(r_Ic?052&hv8#@@> zApiv~K3HP%J+1NkqZ)s|zPDK0Ai8u7Z!2kbS6s0cSWcJ>nyAwCZ-%u(d-&W;T{Hwk znoWqPlMto=%s0U`)F59&Aw=h?MJd{Ym{%Nn}S6#{;@o4#B?0Au3y!djMk zMjVPcUp9yC{U z_JU;x7+N}kg(nQ$W2N(o&*#TI7u4!x6__C3HqB~XL zO{ylU$KY-EauXKu{)%;JXV|E+0Y)dCu!{E54g7MnXD&b=L~%l&_;D}jY9<6cvUUo% zz}TwU`}P%U_gkV8PTU|u{ao#14r6#@YEbph`F;tQ*HHKzfh%Vv){1MgZZBIEH>_H< zlAeF|2G#^%#RM9{gd3I__^~ihA=&Hp>eem+y6?x8i%Ecv9J-!c-@c@FIa^yY33Lu{ zZ)XMW!bXlR5S#B&^E(-8bskKu#)FAYmuROLzIPFkrDpw3H?$jE^xzMrf<8WV)!4bG zwhtMZP?$_F+jxp>WR__Y<=RArHo<*PK19PF1(+DNG04vrwwD!EQ9Z`ZO*RjQ4}c?u z+G!y+Ou)!%cE@vjZDR~ZeyYb)K?P)BBzpBuGnUtAPkAcS|vda;q}S+}}XPZu0G zjnh>JJ^Woee!G%xkZbp)*}n5uy5oaxEjS6B87E5N9sbt0eU&Wy3x5^mCH0k*y5DpB zRoBz5Wnm5vbFYn!e+_@V_IIxNWcZ)pCkvu*j}!|o2_rG#vha3HxIuVZjs+(Iz7cRd zJWe=ji3N`r8kJaZqi|bHxJf8Viv>>*@Z-hf;faDhCfqCx&WHt1686M|Cktl^V!=~{ zJMNAJhsK_W1y_W1kHmtf3P(@Hf~N^5ej5v(E}V=B&k)YUgl7upV#2e86R*aCXA8o) zSa7RQ^M_b)o3JM)eA0Lzg-@OUK4k*<)Cu6zCV<-~fKML>!?&6lgujgG;rMZPDMr61 zbNJgj_;e00niUPNpmjv#!{6g7ET!@B{n*dx4C?6Yp!nnU;kF6*zmwC^zhm-y9Ik(N zIVu`v-m>}S3gXmnzK<3SHG2_^7)3^u9MO7`A}^ahi7wmip1Ncqmv`Ce$jsz zs+i-eU%Ik#c)i5ruYT%EHQy^aT>aM7`|&KCXdJDl_^HA@kLz<{<9Aa&$J^C@N@u+N z*-7E!?b|-8cjN8tmpPs7Iy&E?@bPxm_9Ik&SdNYUX-@V;20sTRa zum8HrwG-gq%<=VKH#ugA-QMF9(0PK>(SLR5EQjmA0CI`L^)J7VCk(EC#dj8ot)F=$ zHa}G)HvbKrzW(b`>o{Eh-s-*y=Qx_npg$(+k+fkI57eJ)0~d} zyAv-?(B8Kufa5zYW5FlIG5Y#1%Q)g<^Rs~C>%aN1VgmfN6Tml503Vou&jY+({r3iL zn}E)@CV+pJ)6sv^>B%_OFY3o0)p_uj6VQ2W0{A6PU;lwLDW1XgAM(iLaQ*iTX2i#) zUo-){n$yvLSZ3`6_`jY&PdxFl$JezJ&^a&x{MHHJ$0mRebN=<;Bg!Z+`vy*4hf8x!4}8fSceoHOpF> zmejeN4yU6GUt`Px!;Edbhpb+YfDw z#?YO*K?fp-D?u!HGjyNNtw)b}^XkNhs4?%&(jS<(T;2UXdQ9jKf)4gm-H%jUTpE!h z9!8CSBrDe8FQRXTV)T~MSa$?Wc&DW1<`mp;?d|Jx(PyAy-QKA_DTeo<>qHepd@8ob z3w_=b$tx+1b%!5+BF1}lsIxD|U9{n+n0Tj!haI*&1cFj)qYd>&)uwx11q?Mc*j=`% z%|}e*!T4I`b#GNgM&sd1V2m;ps{a4tnb4@G1Y9on_D;08v@y~BJ<)wLQ4d6g0)1ZZ zV01yj5!lfm?A#1t(9gmiH8$W2dL7*ZA;+NKH|X_)F^GWZk$z#XN1&;m&Ondg@az}> zVk`{$S&n*>r8eP$JioWE6A^iAurDY$sO`t7qua+L0k2zd1ijlKNv9fz-$&1R9o`=9 zX!O9a4yPCm{+y5_;-~;m_{x2#3J6dJJNtWqGStJWW<)m!0)hiy!;d%eIy|T!P#&kC zfSSbPr*PKh&3^AzHASD3;c?o07UjkNi+;Gnj9XCZF@<`*p@w!HzEPKU=*p|-AZn;T z4lwA_wea`e*qBc(ub!8v;fK0%`udj(Y;Q1JUXBh&`2HF$J48)+b)AFX2a`4B)$v*2})n@g4NDVi|MapN#D1VUi6{j*}j}G-G82bMItggIz-lT?Yx&jtmcvx3n zJ(p5L{hCW({%gAO>iLx#)_hF;x9iHQ=N)SJ2i&ic@E3fYNs$soO;q~?ZSXW*>hf_l{iN@FK@6QEx2B98@s^>E&o{Nod z)P=th*qMP^UOf*w`3cLv&iPl%tLHaoczL_7ygvP|!1_)tukNFt^{@>9j2)~o8l zt-AWv^TZQBXJO;V@c&O;`SAYx^DL;;oj>c#v-6`!dG&mt=0#p!SHE6=%_5_vmRHZ| zwyWiJ9bng$S9twJI=EVXjt(yBLYp|=CgbmRUS3aEk2`CE^1tBaHxJ?_d0i_Cm20f&M>v5xOkLFi&Im686 z2YR{4t1y24K=TyiRtTZ7it{QssuegFSE1pS}y|FU9dk*@z8MgJZh__Y6Z{r_Jt=zrb+(V^&N^|kSGGx*`4K2*=K)ljYPGAI{b z(|>}W+P$lIeG~PAQHl;#%`|Wts58r2*I>V#L71$`Pv>dOuX!SQwyDWH-+AuC|B-Y@ z$&MQf(%%qxezp+NhtC>>Lp880L6~}P*4XdO(}xCUew6o8=iSQ><$Y|s>@nbYe?+Wv z(y27LDf_$3qYe_{fBWdeS- zOn^@&z@Iw-pMRc!4&Fx^>)iZ+z}6P}pJxI(?+WZZy*G=cU0iXW;qYDj#=~5W{~HcJ z%HdD*fv|?dckul;gKDpICr$tAsBz+RgyJ9qVv^K31@YM`1@J{H#Ui1avQ&^PEE zaCx_T-2#2pTEExV<>}lZpa+ERPq`4~3r9{Yqs}n!C&53NUfDl^|3%_LI8WsNaGXd& zjYc=qdwY}6DqYTDAzQBr%XRYp4%F?9ur@#O1zjsome$cq@Eo0+B z^1?ir98_yK#($x;^UdLaOsWTkByBTqG^$)UkIlq zntmdjmTCIIaN0oA$HHks(}%<9IGVmLoQ|jItHWs{O?QUVCYru1oKB$W+Hg9Nri;UA zGfhtqr;}(}38#~3S`4RCX!knM_J`A{to`A18f(9r25E*ID9w5%e@Ne? zOJA=`@6x69<@-Q@xYpUJdFnpGYcrm zhWCrl&{J}J7D{*=FBks_v=20l?AtXW?8t<+ECf})cn<(i0?DyAZWXa<4d+gwhMuPF zJ@C}Ui~k%O>w2o;oFp74MK7jFau?~PBm>ZPc_i9 zW(d#n@OfFAzG=<#P_Fi*g|hp?DReteqe%f$zx{A*?D{i1?7+nloMS6){5Z0wL(o9aDhP)krB2ru4>#oYI@?!z8e1Ep1m6m8nqZ zhK8s1?0QPrjg%H6rCDK0N5Yg+7~l&Cpp87Z;(bqJiJ5k7kX)Pz8BhOE)qw-M-g>Ix z{XN&-yYFDbTL&6GJlOF5EWCcW@rN2U83Z-C2ekFTn%ki3?$Bupi1Q2=?}#d9o!HOu z@FEWxXE!yRq0I}c%On2))onO4Ddpi6cYs{afNtD#;AfcQqP>xFJ>C>@u;C&=HUfm~ zxo*uh2hIQ+C#f18TytCFflOX>}{ZudIqijzC z9iP)7U@G-0E%PIbO5@cJA~b$yil%WDqfyOh{MMw>_zb5(Q*XMVs~P$)OcXsBMo;|*?|gk&ENe+9aW%AG-(irt!e{jzXaC%Y)am z%zqS=wCJrXU5M2jNP%1E>(5^an`+al3*k?5vK zv?mfBj6}CbqI)9I8zRv|k?3ua=+Q{@o=EgWBzjVf9=sJhvGFF_IbgyXZ_0QUbmjD1 zQDYxhy^kn2orz$c5@@px7F zZhfC?Ioi!PUZz-7dBUT*9WeI2KNhM2sz1_Eoz18k8P(n})x}VTQT*Hl&AfG7Gq?Qh zUp4clztLuv0~0%ROgI@6`{F4R=i^i+PW_ED@h0J>G=#&eR2^Qweoq}%_JTjM~VMX-WhEMPkNPHV}m(SlH z{>%)X>bRrG^2CKZ9=!O_om3t%4x8xD>+bQ{b7lr|?AO=>A&<{q*iQNJbmCjS`>?%* zPz;3D7r;l2UpsL3#bckpc>n3wAG`mx0|zhMc#pO!Yy~?__|LS%)Xs{}>zF58)LMegncae;FHl2*UO6jE(&g!fPPJGtY*@k+TGG z=PE(mZV@M$`wO+lI4zvSn#uo9Ixs+t3I@PFH$p4hwlyJ&bN9G(+Gc2qk8YGdcT@_Pm$^gtM7AE?^~O!%m3>~ zWAxc0^|@~K9OD=H zjM4C;@zH#q;h}num|7n`qmAJp#~Yn?@oqEd%*7K77Uf0-Jv&Qx!qjrFQ!{4x9#lZvmubyxpO zG^w{N8pTu4@83B)dJRTdG~(+PWhoxt7AgG& z^JZq?i|%AG?mXm3_)Y93zd$V0KFq1035)4zsL4=C6WOL57y*VVny{NHpn-<@G*MtGgGvkw zXrjo3H_#iZX`<4!8Y(j^q=_2Sek@Z%6OAT(pPiwWCfZCdVLeM|Vx4IkCh9Y%x@C|DxOj9w(m4N)7G(Cj`Hc{Tr{7?3-1v-i5!xoz@Q)~ z8$%=n5CVjxF%beG0RdkjhECF$bjNfzAjrZDjGB|<5oVo{*~PazI^(LG85JLlqN9Sd z?#h|fvp&v@=zy;j;7W)m|9a1%Vp$(15^dP5o?9H;JZ?R zw?z6aA^3h)`!#q8H8kx46zV=SK!(qQJ*Mibfba(ofD|lpNx9u>`ov>o^3Uk1BUJ#lt2VP1^){c%i!E{LAo;qm+aDz)iV7N6frH;1B9Uh&}2~@SXXFf#d%G z_sb8vpN06{5P#GCGN^j~9;rOb3iL}J$l_&2yCe^k{0^fXl2!qk242_Tgx2Bk2)w0V zi!0#*G2bQN81=|lNcR04obP^s<5~(jAn>1B3+N3(<^M`M;9k%e^h2u@y&F=F<*kM( zt-l2N$3vi^Ngmkk5~^9Vd@@eKxiajt!CkPq25*8f2>#XqV^#wh2Cv6s)(V?Ja62rT z;Hxl?g7EUu6|8`<2^uJ_2fJV`1xLed3%(0ogO3_-5H}@QCPVkILRZLRz%k~%5)|~D z6aIGM;+h;#+yvMlg3uy02yYp4Bu_p{n3_Xt@56sp$#)Y}JrRV=eCv=z@Jbx_z|6jw zNz0Ni3~m}<^(_Rs#o(gyH8RQb;b%0j2Vt-F6@$!SBGU*m14O0}WZuUz1ye%BI+!T> z)2J&#qrEWtlKup$XlM*3WZeVASWGB7xN8lah6#uM6v{bN;)5CC)OUl}I812zQ6Nso zghz*CE_4Pa0{Y`XjK@Tt?f|g~m?+fWgOoEdFrhegCo}SH1s&kw87fGe4n6DGxob=K0jyCD z^WCxY#x3E8aQbYLe%+R$Af#XFhu(7R+_R-<0xCwn%=2Hc5VMM_?Q& zNb->KW7}^4WQ(;|k3yf;B16@))?Zy<5;8 zjg4TKf=&tc9cm6Oa1nDzw4=s4vYJCqV#QF)g`P52(}-G3f>i`Rkz!U6wRhlbW%dq^ zQ+o%;sl5YnRm;)#Ng0a=;`m^58oAgug2PO`B?NbX$YGYFX_`zAvmBoXgveo*;}6~= zafg}lF#2;E5_OX$?SUojde!HLu7M@(dd&k{iwBmp>-8X1#{)~+b(qLNf4T;U3@mBa z`&h;c$D@XhN3d#gG$_Rb$D=;phvRTO>gN(QI3D%sBo4=;J`2Z*O=pyAko6e}iwI(*5QI82?(-{}IVdRKSXEfx( zH%7#!GZy>7Dj+tUu|&Jj!E8EXslVO9Y&v6=7mNgA(-{{RTqcxk<8tkX4%4P{yTZRjP4R(EXH53_iA@*5rVk_-FeRa0 zZf4U}A;M2=x-N(kn{K^>%Kn(ih9nQfJvaDn!MVX;d%&ji?7$ok*mRzqI3930!P524 zmCK#q+1bhpT_LY^p48cDz!z~_owS`kH#u89aJG6ALCDMlXRG&09M7Ev+gG6qBOq=? z@^0AkLf`~YE-W~RH@sb&^6=46IPPIg@7OddwN8?Y@(yG2woUnPWl0`ufGRpEHs@al z^l8R9gx*vDqX#QocNDUplH#EOfkLS4WSKDLsI(0yBm*unEoQVKx#nOGZ$Wv2FXVRk zihV&j*A+n3SMnu??>zS`_e^&^It?7-CAWJHl0cp0M^V%hl%v6(grXqjI#Yr`3&{?j z+fB6P5LlI5W;2kok;xrZC4`9CVQ}gs*M~sfI}YVjhLU_0oZ{Rt2>B^X&9DMaRNfpn z)FD%5a1xRmjq=FF5wJ0E1hqG>K;~;V%4=zAzEc+SDhOE=3eS<}hMCI5aD50mZC>F| z=Z7IRta8~YXs0Wx5E#Y4s1H?yff$`Vvztg}Cpk2kF;U4VeTAW6gWzU^;2Amy-l2ow zDGhBPp=GcyA-Y&V8bH)?#Z<%#_|szQ*+7dyIu@909@9+>V$u;8Whz#Ni4_j%D@ znf!)Ul27vfhg6nM_JW&}vW~VkaCy>FSy9>*i>Eh~cEraJ5j> z0qov%TMFX@BL>ko9$|)xrbs*n5@<_>pKo_1IuN0envuL&Yddjku^xs& zB+B3jKv$TZ>K9?MV7=;5#^nI_*u@_YW7J@ zr(F&=y>qfo?-5s54nLt?Y@#xQ#8D_~kE#B5)xf{2#{EhqnkmX*C8X-g*&#Gl4#JEH zD030x4n)pIvyn^?^$tM<@jUCz*@)*20DD$9o!?m9)Epsr*@^ac0D0z-Wa}3%Sb`JV zI$L9L4&WI8GAmosQZlwNijkp{X=E-X;%kyXVZcd%ne5%Lth=RMfE*>z(SWX*W-yyr zE=e)%F-S0v&dx*KH!rDK*s^%Z;`xhE#13#c7RNBvC}SvjenT^>GA<1DeIgAmD0?XaS}LoF88(@JEp*e#gb z7?2hm+mzIlPbc4Jl$3U-((!0jM>HPojkO`NwYROa3N543%8HWG4*dTTB-Y+oUxWU( z!qvvk-b6f+PL`(Q>tpdXr5Fk{i4w67j#7Y;#c=DTXaYm~SwdS^YqFCi!`;x*_O^D8 zHb*Tgz&ztYYhKnAscyhBa96Z#9T^?;uf7JinnMaU!RvpCXnerST5T-ZL!G!ol`$}LvXxaG&CJ$Rx?5UMy{vi>?)0HIcFhq$n^!Ni-vWh; zyQwS~t7J;X7c_r$w9+VuzZS815I}Mv2Z0*m0aR7fh_*iUgO(w~9U0K0z*d`D-o>DMC zU;TP?OG{7dnrU#nZNRsG$-daa4FQy#j-!^YIhT3+!Ch6eXh~#cq{g)52)Fk9Cbae$ z5ADRz56jGpOI@)U5qZHO@*v~hK zE6nasSox}X&%(;jG4Cr_`7ZOGgO#tD_a&@+-Mm*}|PGT2^Po2 z#0eJiVK~9!_}bwF-yu<4TlyUl%kDuN`6sA6dsE2nHQDvgA&KC>t~^6b$u9p#iQvDA z^Z#v$;IoSJ=VQztIzK7Xw%;JmF#{G2W`rAJF@$2oao5zw{e!^e;=+PGuSvFy^84- zQ@M8@*0iYvnD5(%(;LqDWafu~0-zLFVFI+hWmKHqvMw3|!QI^n?(XjH?(Po36TESE zcX!vI!L_jv+}+)7=UaF0v(`ELj`QmdnyzT(5j+HnL^L<#xB$rLKNEI6Lcrlcdsx@-yto4RLf_~M#?1}-Gj`YeH3F7x^wHZ0^gB@iI((VW4}0WD{6r||M$dB6DGXZ4H7W7oxB zcBko2^(PKL(A0-oLSKLlUW@xO@_t-+>_vjy@k$HHg}o-*@=1T+lx-Z34ZbiJ_?2y% z+&B;A%Sf0zetV&Kr-+#w$zR*6BGE5RmK2~i!Hw9G|I zzyPVWp0&T+hMZb$g7|-oDUW>0tb38xHJHIy8 z`HQW{;JsxYg?i^-8ptPQJI)8>D*e2}3x2RR`OsbzcxZQkf$>!K`}X!p$=ndru+r=c zOe!?MY z`+V!=D98H-{k!VoRV`g^hWTqR0(_n7PA=$TC5F)Bb-Xm2w_61NqdZx)G`IibnL)tg z(XbWf(J;(#FeRd~zBKgFfEPwMgxipQl%#<8aiU}DYrB@X z#MgVxmsV^my@^?gJU^Hv@p?)KzRnDBI849}k$>y^kyX zXPUPZP~cApvaMat8?KxN9?`d+(*hm$3s5bLxZidLZs86TyY`m%+xbH@DYJUD)E1u- z3tp3nS}{1YxgG}qL9T*0HG-%r_ZN7lmxDa^yQ!;}NWU-5GhZ3&;~86?dX6nsJl-ui zUQg^FJ%1-@QF3WuL&^04h63SNgJ|H7s>*C zt~b)Hs!ZgtOY+XkzH^heK8%#vo9=A6+NG9Ok40s#I6&heiLsCH>uk4x*DQep`GTjc zJj43N2TeTc5BJ|S(AA1r*N*7FeW3Pg3obotRo~^ta%Fp`1sKeKL%k9{`6?<=e*6_5|)GUyXa0u^HpIL7qd>p37P5%9xce6(e zuHk#Zp(A>+hlgk0Pe{e8#!hyMYCuiUc+_OxJbp-~V?8k9aBq@|Y|!-3%85U6XIoYr zA3;WbXIOP zsFf>>y-LgSOl{^7Oc92{UE~-H-pOlxlDrb?gz&hp&iDXP8NBmesCM?r%Q=Iho2+cI z{U?cD#&wEI@T6YJ%~}&Ko6jGjV}j(Dt+R|j4N)GyxbYKUJYt|pb5UI)sl4Y%(B{sD z9lqdmxjsGc*E;#W^9f8`dHrbsi<#buAlQ3+_2(YBdb*f|v+g!p-P$-x0;zP*kb|TH z@>`Ex1l&P8H?=eS&c1|URWUm^ZMM<)f)iJoF23&^b2c&4hVe(ckFT`tgfY{-v}-@F zy!hIy@pFGgcY<`ee0jM9KJp19vUvF9UmN5mPdmp^?^;FZtajCVg{ACkQ*lhD+Aj;Yw(Vg&^=2R zma;g$wY}A!yGr4EG&_#RH+_2N5{1 z6VZlBRAo`eNDvE+;l~%lMhpI`%{dhgtFK3ZTfPya>R{jnGEf%aEvRg0R)OW$2QF1D z9)hOC@feh`J1it$Hr--R$QSP-Ozd1dfhm(NA(Jj7L)&&q&c^e>O0Scr(c|e?*ctfJmGO&Fv(ng5QId_yn69zLSk83VMUc>j#V7F- zpJx~*i(FrbpG$ms^QHdGXy1PTdnX3RdHj;KTXf6{;I|q&rB@iSb{bYE8)yZlCm5?9 zMV2eDDI+=oCgtVdc3Ba!gtkdsV$C;#g@<~WBb?+N-xrs}Gkh^kD!}55T*C+shW)*SbwaK z2>Il?47TrtcabHkv)a7Mz_X#CD*PGBxN6sL2o{&#g+Vy7SXcZ zTQ`R`O+=HjL5)G)??fd?Vg`X>W{btpy`DT#cRxABLC=C_{n^42UXvlp_L=lvk&gR0qt~3IC3a$xg@9Hi3s>A;cz1Oss3BM8_$Y(0)TLQdHK{B)}p*u!+PjPBfb&EEI}uAwLIBXed(*KZb~TfL$uj6|)Me^%|y z^#c`wpe$sl$cC;(8nchQ&%`B7ycHRaG&#b*)(@dxn;Id&cnB*eWE*tuh_#JyWNKPS zOS#5jSi_8UgOX<34CAy6cr-D8Cbql|jr5DuT=yUHY-bL;)%AP!%uE}h3@Tyu>j#TQ z)FQcq3%He|gT)}+A5kt+nLmFuS?~_;EA^*%G+$4&kt=5Q_*XVX1DYG#lC-Lth*>?p zN!K$KzI`#3XSH$nIxQ(}2sC&xwkZv%udYNN{#tDopb)&DdTlisfQgHQ8nO@dO@5N| zWxXj0m+riJc-wW7*>lq%6Gzf2 zPamxmhb9|6W1aba>YZV?%ik`I^YYR~nMz}N@x~eal>L29p!NBz6xJ5L{Y*7IV=fx?V@ zi<_VfUKYs-X+to5e4Z;-vnbM}B2A_G)d(GlNUe+#S`TcY(8lU!?9{hMvUTbat!^5$ z_p~_TS7t@dxB3g}qu6HGm2<#;fi#29_LtNeV+O(OBt4fqG>V1W2ePjwZ|-4)UosdKGybAo#u#TOLC4`L`j6)2@r z+hl~of5_yjvZB&*HFdM&&axJF8plqU^2)K`5BoG`b+9pHdTZ62z~Vb~@mk)IaFjH- zr6o1kx)o?Ugkv>Ce9D7q^jiY5$|05jk=nD<=T-~^p|?>Py`!lX06JR}nSCjL;Vy}Cp2>~|)LxDp z&i3s(zxphaZxc>n3yKe_yQA>)d-l= z6o@@stkoK2tTJEU2$7>Zofo2B##5dm7k{>CE6gZy+ zyYcv+OmCtA$l!{>vy&_&6HGGZvt>pm7b%lR9=l8o^uDm_VPe^by6&OxiDfYj>=~P$ zd(gS8P)JFtk@*QH^pHstAtvUOLo3QZsF;M9V!l0p_m3BfO;XduS6B5wVn6vU&``rz zSaVacz}{(O$KB>nOhX|0MN=+3?s09|3a}&#$dm$bhWgbwibszrR7mL1NhAFla~Dkm zVv<%{qxB9MgG(}Uow7`p7&f z*f^(Ue+ba%wejV}IsC&d^z+jAN6nA@fzLl?ep&Wzwz1vd^AtGn->SS`5THdU5^fuw zxlUxX4@x7T{4tBW5;D~jGvv4%YKX>r=k_A&(SL3E_PaF`GkaN$Yx^CBl4H_QpbGNE z%A{jV(~&{<`E;w5BZZ#oQ0`7aki}AVCDc5SN63z(Y2aQpT&zIM%2j zf5J!9ojL2lVqQsy*t}}L;1VW&&b5PBf9ufvxCTaYcN1u)I)Get?47Ij6sh+8{`$o3 z!{*)-Fzr;>Q#Yi()44LEes;5RslLPe+h)n}F1KL;4jIFLAeS@=BV1{)_7d-E;cUj{ z)z-fk&u`&1<3UhYa4_cAxV&$oc0(*Ci`1(R(_tTH*X`iLvEZxdutTmtF*d%)^x18e z+;oj0R8Zuh*IT|(9mG>F45TyR5W(%BWS#60;HDmP?)X%~n=o(Tl*#+N@C#qRG8;b% zyvfJ7x3|g1gtK?beB;`v(M&$|7~1V%PcCZLQvZ`;X`rxgDOE% z02fcpn|m;p4^+SNF;R4csbH9!17NUHFyv_mJ`4sbsIONn`9m0c8o&_!`*@$q*8+PZ z=F$%)z!tqH>?ah}kw?EGdDrrQ(RSlC+gTg`gel+Nktcc4suMvC!V=g)dvpoAi@F+) zWxx66o-9$-cHvU2OMr)3<$Lf};`w4fl-HB!Y209?u4QwOiax!Kqx;OK( z6;*&1Rq*PwKk1ev%6kjdlLO*-80#`7+Pf3_I}zw62R*!ZeWo@>*bi&$UZU&lHmNrl zL$`wa=l|~7-ZPd5+Vq#iiihg`_o5y5&B-^Z{rAG-Z>}Hl?HeOmHeG1X#^)3(_<<)8 zFZP6XX6NP15Bduj537Fy?qqlTr(x|aSRU9AU?zJfy5(L(t`~3~c$+pTd~0;60`#4G zd56VHFWkk(pM=7DYT7nzMQ}hkZ%WXP!*4Nv&~AIZ?`rs;K5SkcT?PL*hQHW%%&0e? z!D&piZP4PSJ;|qfSGKsu^gm5EvEF1dv{c@oj$K1yZ3ioU4TvO=lK4oh_2^SOBW{oL zC|=hVwsP_=t+g8#k5|E98^E%#&x_(d1H18T&;I z*6#pKZIxL>I9GE?t*dWT1|22X>ltJT>CA>^XB8k`3SAIU1SwHX1im7@_Ad_q_>y7! z^{QUqRMLNFA?O)Z7fN``sat%-ZVC41PKLbrG7s!er{Xw@WgZyfO&TG!&Z*B*t}9ZN zEhi9hTQX2V44)4VpCREpV2S75zoVOuqYJfEGQ)NoeB!Q|F7s@>L;fkWbO3<(b0}&z zK~iG}q5eu>DDo4$=4!^JCC)qPgnKUR%mOUR*&ec0SMTxFsjCt+acPkjj3?_fLsqBx zZV^S)J%Sc<;e6*?cH3Tij>zF~508klqPsnK5bw4?iCv>!7%Frdtu<81T1{cu^x7yF zkypGeO2Zo2p!WH5#6%y*2q1BEsf{oY7-Z@KL*=oOUqK?$f{KN|=8?NoOJgGcTad!T z!{>TB3EKxd+4d;rhCFX2Lha8Fr@}tsREBBXW-bd9WKSWp)xg{^ZvS%?QLpidE(3Ai z2x1S`wNeO9ww6VJ-5RrOkriWn3BfdA!=bD*9<#tKf&&*tw%6?h`n@H}Zu%*?&i3q6 zwD^?Y6%(61-8FuaR|=V8`@{|VH9m^hDYPp=qZmP=aMgWxaD z360nx;&!xCOs*n-G*Nuhi*7dGWZU(CS<~7z-CdCrAHl+3q-#FBM`jgEJ_&?{30mj>e5BFdH*LM&xMju&<|2T}DAZxF@DZ_RY$Au1O} zFwoOl;VYj$(AO}-%vs;r(sRd%grSCB;%6}5Vbzz$J|I>1iBvnXImzF+zHy|-Byvij z_tCQ|i`BF+7lcEtD51}ap)+I6fAS~lC%?IZ9-4wf@lKllu6|8@SjB}{Uw^d#y(*g` z|L2ZbNA%=N=+24>6Wvf$sBRrpdTrzv(fv;Y^a4z$I6*xtF|nR^rA_fDyI!YIak&`5 zH;F=AeP8-r2!d4;iAVdNytD4K75^`#Xy8uY? zUsemDJ13R~gXjanbRUVAX$>QnD_)hs?P{BX&f3WjFBy7gwg_pY4U4tyvC?{n*1z1e zq>*2V5vA?uc_;T~L+^8AlYFzB6*8RxICYuV-%JH^TYOSj2V4(c-jt_Vub4{9_%(VM zilOAPBJJ%vMnHCufr)FGDh)w&7?+D-CMKP?tJ_@!U`|HQk4RrMwD|RlP6x>Mmqdc z@37GT?GfSl8T6NN6rH(A-Tc)pFz|WZ7ccKa%VsqiE@tv!`lz!|d|BpzO?oEoz0zR( zRilsy$1m`$Nb@OT$akivlE{9vQ$;A5Fi*L3q){SNzx1OJ$QZgxjh0bYzdT7ZE-UmI zL*mc6unVk&9NYhl8#^$e+u}u2?q)=}OyBuVM%fD~N@I8`dFL-;rm;Q{Cf(r(&K@Wb zXe}rK&5=-#L3M8_7wGk)E~1*5s)dPgC`VSPUY?JNgOkwJdBX(gh(Ay0u4i-uVG7k} z0k{9t7tx~O)tquUDgsTW9VUe<-FgT`Y?^5??fNpk|83v2WfCj0VFP*p+5>)U*nuE& zTUV0%?sEx2tPxXUeP>^uUJ?)TyzsjG;{_2L(_uC_Xw<4$DNmSnHMOIPFbg8|f+q8{ z*XQU}X}&jk%pJ)A>^jM925}tDH4t*i$op16RN_BDtEPpB9)nPWSR9P}JzWt1nNOkm99YDfn z;sW3q>P+Yc2Gh*iB04pUdTdn{LMKlS9D0Oy;ZWC)MN6{g`>dTIt=AGSp;5`1s-(Ds z&NeF|!Yx5jbqdRF@#W~jW5^R?giSrD1CQRsTXw+HCrtQ}$D>8(Bdkgf8oc47R?{ z!WS5pG$K5bTSOILOjHRg6W9h>*<*8s2RIltVRz%P90d~FZxL{P3fduTn5)imhdg{S zZN#y5tI+d`dw#0aV^#G7GbLD*()6VM5?HxRR1C%>3{ULZ{OXcQ=DIbl9aW-XeQE>F zAx~)Uv~n9wv}uXy(xV&ogWPg&3BozU1hI(x{sTh|)9*I6e}bPGd?VFWVjIMq^{}s}F0Xt1Rx|mJAv0jO(8}f7ThMUawa9<5fK%z<4x0dy1CQ0@Kda zW`Z;VzIcC6Mzuq|FoXg(py;brdD|?j)i}#V{vv(`Ud~346oyLMwIBSJB!63?Z zKdiJDwPVyJEyA&~e32ea5awXqnDOZ=Aq&ZJ1S1yva)FJ5jGbCSiKA+Esj`$Qm35f5 z6m@9ugZhTU7DIosfD*z)2EGJ*(W}y3!RPvS!pjF0>YoK{0VHxZrN>~?d)Dvln;o(y zOGQr~u-2ZkcFwo}H^H~dZWzmrLYu=R)&1jcHcOrbGWWqZG%LjXkO_rbOzw=jg_ej~ zq^i2w5^ZK0-WcVWVN6BJ1EtUUPUO?>4qFH{2PlJ`k)PCt*5PF{Yjixvz9!U3VcD0` zW+1rMPCUjZ6}gKt`gA{@K~67`UT2pS@bmjJe(RrSQN$eZkv_*jW4SGfTII*~gZhqh zG3YFa9rohsoF<_*WPE?U!6YR>0oj;}a~Sb0*KEQ75-_?lFq+m~rZ8cEnw6Ht?rh?6 z55t4;-b}zcr0N!XkO>I*jAcvt&iOp~-Z`7E7AjXrr{hOyVyNTpH~N$z z!GeyD7%UZihwb9!jK0RYo!ARXQ{2&jJe}C>$vU~68_Vb@C zNU~I2Gu$Hpc;Gn7{xR5TCm(gmaTwqy`||J-K5*hoKY9ZxsBm4i`Bc=J>`T=APP3lQ zRkiObJzdO~Qs!|jt#;1fZ%T7c6p!fXinZX0WGM3x%hfUvaQfCC$vnjS9UT}!eIKHg z-sDoMVw33B!9G+ORiZ^md!GaPA2Lsfb4aw(P@!`lmC z+d5K1^|sq_=T7{x9TsQX76a6JaMDzZ0yQI%sco20X*&3X&XQaAqh>r+L5pGjyjU~U zPmyWn>jS78LJ=)gx1^m7)Bkg_D*h)?CYS9Mg5~rsMu`2|83$GTv7HHZ6~y znPj8$2~l6yO&|uxYqE=y9%(6%T{?r$?MSM+^PM_HP2|}S)whENT{@+zgj`iNoo?`* z+VoAz!?EH#1P(S%{ovg6hSK-_+@$>$Iy7T#%Ga)Cxi}Jt8rB=|?Sc$i%w)yoB&%|$QpB~=&|H~j*o!2=LLw|*kw3$L!x%49Fq0>eST_DNW6hih9*yI- z^mP3i>&n5MY3CQP(Cybr0hPuS>+0bW_`LX1+xz}eTXA9gU>`g{04{}U(29!qaEHr< zziy{O0131T3xG!%=oNdtgY1?GzzJgMNF6-#_(+wo(PTe`6C1oYnns0w1eHH2|ESw{3-!qwIHzMGo59HM=bhZXW%tSE{Z?ar%Y$ z%I^`LBoYfkw{fxDxBkstmu{eBjt*<;4 zS?D@2NSP93cXhuqFpwIysnmfYt+8_z7EfQ0QzVv>i0Xcad zq7bXp4|68IBuTA|cZ^AkA|L^Ho}oy4T1bKpQ!#<*Us5Vyc0)z&ibkasF$`L)DHc!#!I!g){sI&yV@$fG z&UEtdDHT2-UZ@hw`2`^$#3?HfhS6Ip49h*9(S2?|nPpQ})A?}@Bh9NV-S-HKc1t$X z=_|}e5Iq}ym~7b9z?ZwNc33;oHp!LY@MOLM_b$mJFB$4G{$#FV9KqzrhxFR@ z-5Lyt;$~QDOd#-1&{&G7jOrs>^X=4wL~RwSPJw9o(=WCuy+(`+E>3|NMy!3QaYNW0 z&hs(}`FgwlZRMG_&rA)f>fabXnzi3fCk<*#b<}GcGBdjzT3)dZJwq2;UJtzP8m9}u zb;i>Xv}BD11O|NjSmP8$hQO1x-mf>V7p4g@$?S^F3AEl|z2?~MA4E@oL>BkNHt9nI z5FI9rj^6({?XrOXqNwW9vd3FDW8D06soAa%95H~_b za>52jdix56KTj6Vl58^w){%>F{sL?zfhyOT4-zAb3==?2$IKZJOi zJkj?1cLY0|uBZ-*&x@bH@Y+~m3r2pfFiYh_E7gJ(5LuT2XuuWGb_SyofK*$8P~ZNN zMATGmV*M5Kq-9$W5O@-Ht58RSunc}Zh-?j8$JP8*;^l*yTL3}aCjj96{^fBhunNp(@hKUGoVsdox%5O)2=RY8z5=P#IF;t$Ke%KivJ?;@@eg8qk;NLW z=E-yLVaWdx>;H#&hVp-qVAfvC73-pEHbRX5Gew|nsX#k$P}D^Z+w#>8oB>5A0U-|m z6*tHt9wj3SO z{+7Z3PKo)m&7zl7tv8GY1{nJZUzKLQlp)x;>Z9!8FRJ-M5SXM}WlGr!704&qjyp}U zNeSUep4j6>2<1j)P*P024;cz9{^~KFEP|>nA)LZv7|&lj(`*y<9zfr${iXLGH^3T5}%P?e|epcZkw>cN2bLKXH>;YdKa{ z@lBO;nEP8Shx9)MlAuEJv$U(nf)eT-J>v<;hz4Cf7nQwraDD27zy)>MDm+?QfNJ%P z#sDk~Qq*^47mu-;roW-2ZUu*DR73X!r+~m@5pFP=x~9E)jm>8g#9mEXDOP|``k4iQ z04W7NY)}IKSg7@RRQ}B=lI)d-_1}7}BDh8$x=u>!W_QA$7%+GL4YSIwNE~D|m#IPt z__rDV(5oK&byjf<*zAoCta6Q&dl&iZtpG)0fSnk~{f9BLMjTLhzB*rf?fy3A!|3k& zCu6#)x4GSShPuz79>*y>hAFVn1f@@aR#qO9VktoAnCxc(2zFZfiB<~)d*hXUYWcU9 zb8*yTk=gM;cv*>~?(TnCK`c*i>dK!rdX3cHDWxY9atp&>Urkw}8=9p8D99NC#U?pG z$b>8tt#Au9s1<&Lb^c!~sv$uQZ?imY%4zqv^)1pE0n;TIQ#+yVN>zW$+s0KECmi`! zl%WS&+^DBl#6`Zbd)9;8SH!u40)X<`ukknghMaP*T8kN_y4jZSCyva2QzY0K1hSXI zj+;yDNuv22TK~DU#ON=Ie30qqg})wqQUBzx{(Ipnakhc_Pc(dtvP2GlYuiI1OXP?_ z3a0J|^2>LXsZ^}sXlDv+UWasCwG}nM2Lc_=e zXJ4%@>=g zy>NJg*5hqtWebVt2=1LP#WvU)nS&9qxMkCUs7W-bME=`T`5wGgjujmcdTJ48g*Rx@ zEuLU?dv7lrZ#9CX6Ct*$2jwIbZFV4*ge55S`JAPDp!4gy~Qa@Gz~r~sxoj}f&vNoU*0XW`?ld?TM+4V#PJDb&a` zLeMJv0qR?W6;3AVT=g_rS{Mpdu$2D;dtGjf;(urBHPAq6VZ0+Y0(?Y5HIFvJ;v(H% z8kdY19AZJq6^O+!s~YSdZ{^hg(~yD3!GI!eVV zbZb>qo(3P|Wr21&VJJJ89=X?^yGNE6*Ah{+@ni;#>5qwz62YW96W>mF%ikEnWMb`B z@}I3V{hG`Zy(ZJjeE?!3(8abUIMIF>dyGx<)9-_Lb{mj-Z_NBA5cl18vcQ*9i*3;K zW~KRg4*TKF%*r^10F)em568mQjeU)k4fclKN#5R~BK}g`<`k(_gCvi6My5ddW9oqB zJpcQfb!d-B-hKhO>Gh*yvi4JG_aT&)4yKM5#*YZ5=MUty)=s7l;6wZ!LsU;*-Z>(c zglGI2Y1I08|6zrFCtP8#ko~WvPA2cp;8_sqSZ(!ydmjzI=iTo+)TF}he%+AS$`pYp z#B)TK;7sj5+*iR~(}OL{1f3(~OTgs)6RHsE6-1E!e#A;2-!*-b1L^-ThF7 zny-Y|-E$!NY;-F_6lHJ}G)wEps*IoK@0H(p9eL6m6f-IPMD=QG-@yCa zcpd#WmbR$hese;Uta7GjMm{$9MZPa*elA%h;;4Oaf1&PvmmeHFgPQEUbblA`zAQ1_ zzE|DPApK?^p!jj083-PiR3)zIAOVagwvW_q57~A#% z(yb13pk-l4h`3sK>suNjE;VSG>JGO}Gq}ni+C@Yq+I9BJeV%-9)nBDGE%MtcMR@C( zWY-xgNG#lSrUK$ia1u2_U$x{eRQqFHwe*%R@o$1Ky!iY1Ktcu16aB##C!FnUI?*mT z|G`xc_>+)0k^ctpE<6ej`v+A&@E@{f1@vD984aJUTLck|Q2s5Fbq}CZ&kl$rqV)V_ zCQF=|{tbk9-2>+TP9l}rRm8f^GzRFT23ObZv>ZKA96Kk&7k$E8L3fi1ldgMoDlc7t z(5e5)&A*Wc-27H7kg{TgOgN|9cVtJOOyhTXXi%aw2Kqf@!dw6P+zAgQF4VPg28y{j z)QcCC@)v~4QStwd5NQ-3JGk02S;lh;l7$t2gS~2TG4*{@a(RFn6nzt262UqRLTTS&{O3Nw_e7Fm#& z=%6N`+|vZ0<=%zudX0fBFHZ2Ekuc5_`~WL^2O~J5Io6%T|7uX-1tor zR5~K|(?C!yVsZ96LB0`jR(cBJ>Wa00uY~cMyt!5@ z=tVv`(w!IlRxerrYP`w$D^y&2-fz^(rLz&7<)NBo8H+T$!P z(use)hRNCmY0?YvTladHJ9tPf1oFA@nouwOjpUwI>x6^Gr<^eN@zZfNjy`W*ip8}( zlQs5$9^=wT_oc`BbKDSjH1F3b9($bIHV)OW2Oz4qo)0*`W`H{MGfr!ZNbJdC)f3m4 z0BBz7Fum%b^V;tbGOD2BSI<_t{9o>qw7p~v3?9Z*4^Sl$Ou(esRz6lqhPXqi ze&FmnQslv(mmRu%jjfMlENRYm77+SeZLN zNl>xpXYZ6_p4qVg{=c0k)dTAbjNHGcpMXEtAn($~^y!K(s6U1g+^R^ zz2lG72P)%$$U=R@% z)o?a6FmUAGQC$E?>)V_5s2Hs~hiDP#ReukU4K9!QZj%*um(mrI6&1oc*CitzmQ=bS za}VZ@kaVPC2_=J0j9_FsGT7H;fdA8Kr*7|cLGAvz@sJwq2&w9j38O|(U4{rI?D$h)- z_Eomzj>$2XR&DiTj!M}z3;FWZD)+ULcA!0j%bG>DTV`ug=j5|X>&mCr_BP4YLbc$o zl)Y1h6-C>2YsXvO$&!r|%*^p_qe$CZ`@QqJyFkc41`a<7J{*369$0LtDK4(o-Er-F zNE0dkN!m*RJImXQOuDZPh3`E6$$kv(ukP>PIu{K_%vV*99`#7#lVE1s{Js)83NCD5 zot#)_$`-?w{Ko(m>nV#S?h=VyTp?=+}GJ=d=Cw<+w=`n(h^mjkHyRq?#kEh;qVxu=%E$HbHnN|h%q z6BUfI5sWqn5G0IN!jWYh!^!Vf3R!SXWGb~ej5X0k00s>>3*jMB~TlUk?J3M>di4M zZx`U9PYa%>Mtz%mQQfKPlm2G+U_mV$HgShLt6`b;p~C8oEYuNd&AduIR27IVS3Tx@rDZi3@xqpS?8P zqttWFen6#@bs%^E5)d`ecBv}-@vdntwcjEq*c`hCs($y~x?3!0XrTNVI^}~qAQ2M( zQBBQ6yF3vkE;l(0+$}r9R)1v{peS(;<@VBG9^k;xDpVR1XrZ3QH8dXHtFp+zIY_(X zV-4PpsULQ=yYp&s57kGlvV39cCObv-g*X{9EZl}}9JCbj<=DQ#*A0rjsX`*+UE%Q! zZ`a&*&A1!+bN9GRqI>R&r?L{+aEf8EZHo1dEvn~Nr?WC{vy!JBV>UKbae37xx2L^{ zZDAO)A~{uGa%1;~*s`LfInB^%VAax-=7q!3dTLbNsdd4<7?6W-Zba4>U^Xd2J8$<( zVUeL@U9+ke{BBho>4&}usVUXOamh-C>uJG_-3?-kdJ}rXrC~$K=0epT{;FHf-KkN_ z2qL`+4s9&+`xlZvjs5VC7NL;gShp~J_~dg_u(?yj#UGzt_YpCZpVWL~><52&X@tcR zu&H15O}JmA+?8nG(LuILkxwADU=ST>Q3_149?t#gt4Sgvdu+?prx(=N6s@Vmk&~jn zpZ$%qkI_$P_M7G9+~Qfe(I(?dV8FD8Z2E7hU5gaqGi#0*r1+|A^UCS^$m#kR0z2JH z@fKUCRWiB<15?fvbI;(T7kS&t!!qL1M9TQ!N&9vosD1Wf1-3Qn3_{jQaaB|B00fdM z?d1!de6D`!BHwY~-J=27q z2#34)qc9%oU>%VvFYoJMHwZP9d&0i>ZxCXB6ZO#=!do8bdV2O?d(ahg9E-V!KC{BA z@6fi;pR$|x4s^a5uC6+Fu(&uiYd)zBYlIf`Ig?Q@Q~N%i7fSWPZQ4C?Zuty(%HFp* zTTBqnba;}F%imSx{V0ja;mAkYQlWGy9=xsdJ9;9~v(APUIB`ok8CT{|b>QHq%=?&C zX4s6u?k?tl7cnzgVKIPi;00-z25fmF@qhkE2UnSS0!{xvNSBy(oN$?j|CWP8<^A=B zFVQP!)Hi2zjDP;%1w)o^p6+U5tT+ef*5~VukHsG9bkg}jL1{qSOT6+vWx~$VtO zj=aL2sgf{V`4H@p2t)c||9IzM#2)L_L{^KBk&BVwoj3w-t0$nO{s^eYl0Dlns>jlq zHepkEXCd*m zb2BSzETr@>qDjRVMFRH>`AMYlTnKLdl z{=OG35B+7gS=%@*{q$&bLWCyfOL|Tw3X54usrVTV5MNr6AXl~noN$CZ2Fqm#tT+dW zBGS90UVLsID8!OEYQE1i&e}1?+R=>G@UrZX-z+*>E@sEptuzw(3#WHiJlnc|d52Oh zU1>>(LqNBo4u+ZYY*4tKuCYE}&YOoFEi<@$w0+zIt<*IPYcPSb_%KWyfcljcB1}41S>BnIgm2gAuop!e77Qy;x{Tqb~@& zFVUnbha`TPs6p4F2(&YK^5jS#G^TS~YnJ~Jb5N*w5OR5UavwGC?wus2AmsJDitPgJRf~g z!j{N*Uz$aODxm24V9eo=c~PpsB^8qeD4}j1Mjs zN8caVj`#_jMMZ76$Q}qk-^t0r+m2GjgUz>S+3R z^GCOY&DYZhjYtk6iONH`+QaecB>5@tSQ@C;@U{zca^5S*+p9 zt88ip1=UJ`jwIcj)cfp7)J1!;jDB!OiL#G#!pnpOy-t$#ei7!%*~DKjLILL&bh4hw z#hv=GMy5 z#=dkLv80bGPRbWK+(PAtbirG0_s)_))Wk36bdz<4g+f7&8y;wfmy7=3krzTN{NuQdq)p3raABJ4VN)ZEL(p>Qrl2)91E_TpcUI z;z6R{ACZ3U0QQ;q_P1U(H94RsQDQm54Bi9WFU1!`BUfiIQH#aUk!|@<@v!l6H7a|v zvm_>W^TJ8Sp_jAgk!LMR_J<6_R}t^zbPW{Fy+C(v$!6Z~iWw<{7kW6f?;Vc7Y>ezF zSTx84nFKm3ds^iS@pjvKI&>x998u`c^qF6%aVWbuX|qT;D&Uh0B9KucR*nX9FizTM zw9q;$45v^jj=4DR32jS#CnF|+VcIu}>5tL_Z(xhiWUgn;F|hGDKaauoC1ayGHF4v1 zJsp2K?Nz+v-V(G+&gFjfrYbVF%NcSL?FghY@F=tA-kaOS9!f0CN|SJXh$d!8G*Q(q z$@M=HKK5u5BwJ)xxSHUdh@YlhSg|tmhb*KqbXC=-D0ldO0-FtF@-2}W8LuEdH_bR8rX0TFle* z(!>Hz^6sf;Ozmyh7RD~8^C2DO7njCQY0U0kCC-lvnRLRtEsL9KUk~QyyqNi`m zQUS@mdT8?n_}rj4Az@;J1H(hRNA~W~JZq&%&C@Y0COZ_DdU6M0t8l4&a(-b>bb)mt zYbHEKTvNoxM@u)5&HBzGQW82zOp2EBBr28>j;$PN**Fq&Sz!B(NdN8&zj7?o?&Rxk))q5@Iw) zX70t*PI;yn%B1Ez*Ele>02TXh6kVR|OLo2v89$)=PVcG9d+J{L?)Tj|*mrl)bnq7W z_+s8O4|SZEx;`N0sxHfN_~R+^(mBKmdAotoh+G5W7#GWzym!7h$=zz>I3VX)3Y#gL zCxOS~(kl+a;I0}tM4;3`FZN1BlBjfDCO;G_vJg`fP?}a(sVUzQ$ESvpVgiR#grt>d z7IsI_q*}z@Z8&hqBgn|^J$t3Q$LIj$hJ^U^415yT(_|X=InR;&XGuAkPO0#|9-l^f zy{(iqvLH_6DGH<%$A+e7D7qY;^fve+w$@pe?$Y9OnL+}`gkpGbcef&#*GYxIbju35 zr7x!vNxB|r@*3p}ZM5=I2i{>_sGztZlLFO-fZ*Y~VThoiZUl6FUMSFwMg}Ul`GK+F z!NY|4#bOIniC*DygNJdgBK(7vtFzB{8gLJEu*C69PDU2kpBq`qBY+IV$~yrEC_T=X*;#z-Dn52=S=>uYu7K(=<%0@}LkLSqCH$r>PpUL96a=s?Hcc}Uu19mn?MQ*H zF{!5FjnF-z6{xxQ;*xleoOEiTw`O)Ss6G?jzi z`FJ=5v_aki=X3JfN0$G(AeusIE zBhDc`1WsL;&#?i#J0L{B_1VX%Bkyts5Ch53!w5itu_vCuz^%oEOa8aKXpSPCBjC= z-H&~aP8LFdq&fk4t&2z^ypV#PI53L9=sO1N_wK;OfCSWn;#MY;#Sy^`V{WpmH0cru zuw(+>-P44(NkS9eD$a?klek*W42X-Ib|QJ2Vtovk6mfz=bjB^*JxvlwNE@s-D{*`E zoo{>yX>W(Rbzy-;(2ohDic#cGLixg+#GxsbE^&Mhb}gO{I?K{sUKEk%FtjMzm}Et8 z$0^^rB?Hps9$q_LTM(wO;GWEst@L9S@!6^LOj6!F=)8omF%wf5h;r8j*d%T zX+<1XgbRpdDxNGmKj!Fyua4M9Ck6*D_afP$#Xc|K9{~7Kgym3Mfj_GDK-so7;M>+p z)7}0!DNS`GMu;#>Ln17GmAV0R_u+#>lcQq?V=>u*GJj7*;d^*K)!VV1tj15p?54wP z5yvk=_!C9YQp-_vk)2H(_BuYa*yBA<#uxmo3$nz2ex%IXO_awAGp8efyag@2&UEYNq2Q(i9rnrX%1-B(6crT5u1j|9kXd9b$2ke6Q?s?A- zt+^_i1?o}4Ma@baB%!IZ6Ot;zpc7F+++s93Y~$KAJ1#Az3`>^LGS(YrTLck9{SS! zD*Ri*W%5H>^RoHX+I4ly<=fiAviXj7PyKTFHN_tsD#;gvb}W})r(M^xTzq3raF9)C--Cqj0)9W?hYm;a zV>*vcJP2 z_z#5V0KZ1(%PaBl?RuT?D}et_>F`;M?_X!g)cFKEekG=cQh5C;T|! zyh07%#tVe=iaDH)LpZP6!}eb0pX(WC|KfVaS;e@XKToM=p30GNuIDAdU*z*8oa=3i zaGvLm@e5tbkAEBG^5fr8x%@w+l%M~ei{&o>o_61TsLOwcm>Iz%$@Ul3L^lcj?H4+o zc)#?W#^e3o_xi?+_rupI9qh;c(0IH*Jdjo8i9dG^XH{Dq6gcf(F579NundtsPOEn! zD-wD!AS!rj>VS<$2EAiQqp;k>~V>zPg3kJlRZw_ca?BlcIz79xZKW7!f|fI zJ;HI3sotLC`cV@BDSKS`=m_Ds9@e8h$>*h}D(aX07|&rzD?^E=dJ!#Y1G!MuJ4wtk^IrYWFvc3zKYwy zXgBEsHCtk}Dg9Hsv{9?IBqg+GYtJNX+8H{8BOzl0=t5soL*uMMu_hV;({Y=_PNg-P z9~nhtbOeyW{175TgNQsbjL2|4h8znIvxkF&M`M|ch_EjqkDe;dt8Xe3(jC?ntm@ut z*cGQCIG^qehp)fr+J2q|)Swq%v#8I?o7w7HHWh2v97flevmu(`OE6R;~YZwBQtg2g& zvS3h5O?p|bA2kU(eX*cRJl5a#dc&VPY`a`*$m7c4l~n{|O=2Hmg0ZDgHzA+ZZU=Pc z8f6_eT!lzP+_BX$H?ozbb>J)|RK_!RH`f5sjgr_T2?H7-oM784n~u7!oa)+HXm}i7 zDJ-v5^POd>{brymyj5@bu2rsYSnJKky4&mhW!LU45Te&4&IwV!0LSdMc%6XD>)2 z=z{_VZ|m{xGAo&YE}&CelPSx5f~n8H*$O1=u-dAzHJ#25v{3$LhtKg3)<3c%NCLa!8Ts1_m7n7ztS6xSS4-W&#=A{;@_3Pe}l@^4jUbcYK$OY z`@aT!j`y%GK!ro{;vDcfF2ow&iI9ID_#8iCo$r$WyTIo-1nXz-Oy;w^5B#=&MEU^O zWBq+Z{C1cxAJt1h$N~RT;Im)F`kOBKe+7JwgR#C3;*5Cxs`pV9t6?*an`|9Vw%-q0 z`AK~tKF4Xc|0VwyDnIi%uJR7?mw=yx{oh2;cJ0$-fAvJ5cIo=L1@h(V;4R3X<9WM} z2O7hWSpGkO-}ZA0f!gW9zcmx(vmd@wh}t2aMNOBzKg4JM`!nL_y72oce>_j-4*;G4 zeNQIdCoB1x_**G_mLn;AuNdgF(@`94hg0}BUJtYdCych^Dg1lS1-chH0JL35slSKb z4)m)Kdd2#S^c^ADxftkedJZUGQ8g|0|LPxk37-sF~olTYF#ZC%=Rz&_g9R- zqMnb#=+ZBKx|?Zfd`}Ag@jaK! zP-L{a+-q`a%HHYkbkaL(NSM}%W@)wp*m5k5#~?EWd5naij!};&uV5&=tehn~je{Lt zj0Rw2WE`RfJe~|W!^;DE0ylaB^YV1^a;mFyj6lf;C0%+$2VX4P{RbG zP_&PNpHRn3;qq2}E)c|<-5ZBn@XK4UP@Q>l^+*^wU&ra2R7P>XaX+6Y4v7+o_mkDT z_wV`$;!J^{4h6loXmQ30}HwvC9km!L%&9^&b9x%gu^UoxR%X=~LYI_VD$dWU{to za+|a&1*IY-ILVSMF}k*rkutffAu?NQ;?ZlCqgfN$5VA`NZ~c=EEV_?bZ^dS(jEKOj zlyA;-Y+2XE)uPtFA|q+0fS+?cF*S$B0H#25KFIbz*AvSMNAA82?fU_FQ&W5ijnOR} z2c4x_w6#h4kj(*laeOO?^Npj{4$*t^vg5zmr-(PQy{=ta7c2MR6VDzajl16dO*TE! z_si*(5$r-uc2dysbNPd@FHx5+G``oq$P4l2O&Be0ebI5U4(;JTuZs!H7WFE@nMcFR z$~Hi!>XqGE)!IWXNYQ#V--t?#bF{NOe^KAV360HX8fkC%jNN8_mQxZUv?xoDKGwfB1z{&Wp2*KGWU^DiM0m&3DzKBHog<^Cyns+)OtYa8Nv z9+pwc_%b_}q^a(&uxlAfQ-g(}%4m5@{CH?5!H6!UJ* zS)$IyoL}rEzi@FO1>;k)SuLexLV>Z7A^2-{;{SOucQD#C$*sl2KB5|xrie&TIvYT5*{O=H6Q$ox$0;uU zTRz6IH;}P77xY1L+3NzaPkV&%(_gB`BVSiY$E!U$s4HKa+b3TBh(}qM_ReQBWo{jQ zytQ5aMEJI;>V-H&cIqb$thhZ>=YtJT-w{_&lP;rJ{1y@OiZXLdhxs^A4m8IT-(*5Ww! z(qqF&7S!N2uzbr6*Au628_Z@3cTU!r8r`a@UMxKjBjA7Fr>$Q6ZEth?Dr0)vS!4bV zlilbx9NR%9sBA?I?lxGnMc+7N8Cp@=*bT4j7-f7w2QSZl&>w9;_o=*W43k%p)Ua z@&W|W(-LoQCU%iG7lbd2fpqC!eh1MzC^i{?v4DWLZoMcs!WA>y}JZ53P*Z zFf@eKj_fp*y3|1ReSq$#rKjsSY-N=MVS}?CSKCZ1KLyD`EaEeqpPW~xQp+d|1q9(#kOj3*#MV%5{TR?=Z`#l#cx& z;-zdo&5m#M(XW;_X0ZgmKF*f}5rS2|xM=YHRp8i(eIt`nQTthqJrW-HjqIY%^RwiL zbQ3g2mw#pAR z*MZ(SL5flXkf!W9=uN<&a`vTrI1F&C)ZogiJm#ab&>zuY^;!@#g}%+N#e%?;4yeyNmM5O%_-+ zEa8ltoL+4%t_#_iZc5@1|dTkaMco9BYGLYn}&hnMr?!X#r9*-9PoIi?B#$@@EZ z)T^@}04>p9IovBx!J!^2lv|sKdh@WXn2F0=r1SGE{$E% z`JbFhuUFNhDa|(b?`=u4^o}m`I$CG}@uzd3=7iJGd-xEZ{Y}YD_+%SX`J3Ets$e~s|nFG^9r}!ZpCO02Ks?0r@pg>DOKZuEypkIs@ z)bVKzI(%vuBEaKA1`Wce9XqYShh)Ml@M*hGL&*X0aC>|d4b+|6=PeY;?ZXQ-vb=eR ze`0)tBnQR9&B#E%;Sa^ZoA^zfq9dpJAz)KMBT_3eKr|dd4hVqfsY02#1*71e_~WL} zR}^D@lk}|g;f6AE`MiSSkpYt6b>x63xMqlo)yCf?&o{Z~I5lFe@UAh!gd+p~FJoOE z$r6Xuznq*H%F1}nxpvw!%(x!qI*bqhz0T*0w|G00`X3RR*Oz<_OfNt_E~Y{EZthp$ zpGogfeZtFxNE+_tnIV5hU7yi1Rq=e_v*n5I8HiC6&u3MI$mRbJozDfy2t0f4|EG|CjO--1 z;<+Q78Q*0qft63X=YwQmL3iZ7w9h`w=R`!$a`C`B@<)#6Kqc?#ZPb&{Gv)AXKs;vv z%Rbj2cm@E^!2B~{B>RZTduRU~!Jbpm$~;B_LZ031&l11qs(xX2U?($&j|B# zPVlqLFW^~1I>TWjDAN>95Af4($-%M-aks{GxPZdvbG=Ot>ttU)wAKPAv=d!4j53&yNiPlaY1TiBY)g;JjCr)??{N7bR$r|f7UJ)R z7#+4&VMjuiYGg9L&J{-=%@!syzu3~>{dVH}JTSHXc^zE7zu!7Y!4=SX+jIH%<)y@E zBKRvzDP(YxAoO4VXt3Zd2;ymn5eCH^URV%K)yFZ&{kwdGb_V1 zEn4UwUZeYe_{I-w%Bcbv8(jz~fp+q$h;zFE@Z_OZsOr3!yt26+S0yff-UGw>zl1mK z!u79x4noRo1!rE{1>xM^ypH~JI-BcEYGKcYqqhU4HjDVR#4=uX2GAW^s}z;&%+aKn z)g}Mdz^yuLTP(3NODGyn0Jk;e7Zv(A8DeG*m5Rh2+`|%E{g970XTZL2`Eh>?UCiHo zN1MJ`rb0%o@?TT(&vRL(Ay}xh+;QF3Jk?a1vT#kKD*q0;Pil}Tb~C%b>~MEkjceJK zs9t{|^HS3$RX@fYRO_^T@DrdSR>+W#Y#Vc2r~g7obUA86^~=d(t>IUonMW^4{<=cH zYRlMc!>R5A#dyJ$04L~CNFrp3^7-D7>ja%!Kl(rV#?E(Av7F@Z&d;cZzK4ZVg#(|P zSLDTJMC-y7uSKur5`QI;z(fquR$gr8_`QqHQoZ?b{hs){-P=C85qE(bGXXt!ol(=2 zRecu)h7|XYwC?b;iSyVK*{kfuc46K|*^ zZ)mCv-)|e=m{4JSM3Bm@F39mgFdEac|7Lr*nMG(Ur3UMu(XPqx-9OzH1lPJ-a_re3@|1syhujY?*bp0N)I!!5Vlxhr^ zc{5|PW!7cthQlYq%EY`RgnjheGh)UkUollgUngen8~=*>gj-kb3(80&%a3K8A(Qyb z=)z3h5*ZKsbq~^i{$AoU!GP`IY-6PZ4=kk73hIjt%kbBR!g8hbWijcq6IFo>+u{~Y z-OctQ(`(S2mhwY*ha1mghO`xbm>F%RZAijs$d`)Bw)GLypicf|AO3g)c}M`)A)98= zJjNroQ-CkAdB3UZ=lgt?CDI5D?<##tAka%wAel`*O{GwJ*~tt_Oxl0*+TWLp6y!MLi=78 ztNPf0jBcg|<)jO}39|oa@}oQdrUSHx(>ud`q+!G}xPWX4-wZj}RRK_u+t)22?_?`@ z>#nxBlQ3Zp_3F)4%Qqw9J@xU4r8En$nsOrh08iMPrW~Q)-kG9! z<{^o7N=+|vX;-WJyJK>j#~-V;vXdqp#wa_xj#OsPc_I#h(}!SbH*u+ZJzKQ!(g^^8drG+gABI2DcdR0Y3 zqlaI!g?P^4ULN*bm0jYkY)U*8;VpHd)h5*u_SaxLV*dN#NT++6ZGdJ=*gtIiph0$0 z{5*R5IC66}lg^XWFxF`eU$n_lWOt;2ctByj1#7>3 zc7hCm`-lZ@qNG@k90KLd_~}4|TiGk4>-ERM31o<3?MyWU2gj%T^ux^`CkD5FeD^}| zYB>g-pO&3$amL1uhJ?fyz0!K-74DjJIgn~f%lEfJ_@^=5;|ZI)nY1)y7gtxFTV<(a z7Y!jk9aCRznPe-|h`b9PjKyy|#J)sd;~$AE&Hkwc=IAedlYPHO_N`+-(u=U~q(*GW zv)EwNC?iKdy?X#(?J49=jC+*g%^c;HE>xFc#F%<2?{fA0`~@On_VHG!rd4Ymt~N7x zJy>usk-j@`-2nIi92l%rE}uL%A$F}0ozI^^ZUJo*sw4872}P8O2KUpUd{+xbECc8@ z=t6A!UTwvpbEEE!xTe?#wmg}u?V`BX3_{iFgmc`t*Hz;IO^6I{c)|sVb9L48a^l5@ zyMQ-hGJZ~WcZS<@D&4#f_I5GDw>o# z`LnW`ak<_Z2Dg8+l89~-VCBO%R^c7Dl@$Iz73pF8(RosZ9qar&>`}IQvIk1Xqn$to zt$Oz{?=kPri)^5rBaJW39<68Reb$lK@crZ3Q6>q!!KB!-GU*QOZuVGAx_1A5Uk%Pw z5DUARueePA(2&l6Zo`!FMMvsJ$}auOpXL2;oy)C;YrM9#NdgmA`#+ZO^dn@7${bpsMHsT-6lCN^A3@goO zXRfd>J$bp;qRhD-{Y@AatXE)h91q^TurWkgz$1=tOx0hY{ONJ(DM!HShs$!7Zk*#f z3`~PnacZw2>%LoVj%>3m+VGf|B9KuP$pROzswok<}wkmwZ|>`+Mq&wP52=x1d78G< zKFw;RV1hbc7qhzQ3_6OJvyJN9kbKhD)MUK{V+*}#ASN;lgl;t4jES_Zv-(Jh`L8C* zj>;HuZ*o8q89FE&>+D0txGVBW?EtO5+kL`GYWGeQ@@)ilm3&L&(?66+XC9Yi_4Mal zF*rS=RN>HBJ=j@2!a3o$bDg_XKapYG?b#^sO|^5aZcJ?M+T%p!r-5M}0NkRT<_mPq zk8PNZC>&4pS6@Mo zwD~~aW!d=4#N4OGr4?cm1*iMO#0nbC#`Fo#q>4tfh^!q_D294n?6puyjF`%Nm@g)7 zLR15$4q!SPHC+*^xJIQpbrP5dhzATP-nMbk-*j>IBR+9-+QFqY0i5LzcJ+4QnI}{t9PE%+ z2$6!F`;VGWLXj{F0%wD~V*q=Tn8Y|sfO{@V^w?3mHw7+0i<-?A_P{l?4Mb|-_~CZ` zG(N#uNML&@@Rj0pW~9O9$L+ zJyVXyquSX%10HKVZ_U^i^m(%el3o-ooBmEP@gZZT%6~iw64yV+x|x#$AhfP3`v}Vj zMFt4R8AUDoi7Y6|B+EaX{}~`YbN`qNPAmZNfT~2|uEf#?u*4!T%4tE>3X2q9MY$qI zh^Qs=3Zp#BqZsTkH*gBq-4kzBlN)5sBGetJn`qxZ^c`v4WQ#0jZsU=kG@PC-LI3M_ zrm0NL<$N$Y64m!5+Z2uLcMc71XX!_x7%o1|ucRo>QJFE@Ma}?Qe zWgb>}q!_F+4`1>kO||vr&cCP2kX2q5XZ`1^m~TR#fZG>JZThKTEP$@}pQwn8!_D6g zqAtk2Ic?--(8}7!&6>SeBMw82m)+my5$kk|p+1K}9I|`(^UL=W!$YvXJI+}8>mD@1 z6HA+@NL;iai6;m16K>k6HRF?JeswzK7W`qp*k7@3Y>jm^7vuD|v2KhzDJD-k475|( zjT3)+e^n(svs{hNuP-9L0SYR*A8G;z@|J+Z2A_) zxJSVJ3@*{M@|_kCSsYJA^#LaRHpWChsQIcxZPhZNrW?R?lKisG_(p58_`zQDVYqBJD8bz>Z^FB$B8jr28xda>n(da=aKu*_SbVor>-)Z`0p`z` zycwhwQ7P{Xa*<4C7I{Em#-5Tz5GZgEHSw@sg@X;ruvu$ge+=3YP!(SisPLc{)Ms%#0efjNK73>L#O#&YgKPjxgToAx%NAq&P^u`qQj9K}__+bzLy7XkUAk;_(Xebci&?ze1FMqeD+;Epipp zIuvI5VmY($DAuM;T9;hmK233%e(JN1?$<^?sd~TI!d0vzqc2N9;}fl6FZXb-?B8Ac z!xl^QAMFVhmKmmL-r5XnryCVLQr!1X@&9+PwW(i&RDkpZ)>R$HpQ|9|RWGH>O6CMP1dE_M6YjWod@G9LyjC}7!HPik&O4f}sjPgqJ#7!U? z(|TVEESD!PSQ46jtFMP!XAJs$(korITaLTZKk8aQ_ zt7Zc``JK^R1xS|x>1)<@sU^o}rDKc< zdzbk?js}n69$f@6o++7p+5=eV}ViPklsB%OKioYmOw1jPcxHrV< zYKjd6VAZ3m93vX>@3VPQ?Z(PIb5$-|>}qP}{u2J{)23b0(MDjF^Dx6&2>*>LD`cU1 zgmFoQ=g}8${}zr#Xj?sEAcQ{{!5U^fUmbXyXCCD9v1-ymCFoLSwTV%oQ71rI-k zs?-hU0+UdAT1lwv%y|~}gRUWD+&L`iQN>*cSF^Ku{Ptd#5n&tuY;N^CnnfH08x{zt zEu@0GMP|8Po54;P&%PiGwbSXn z)>$E)2|B+2xu;JSJNkNpd!D~2|L#-|$5s5 zpViy6fL~O8N>yZ5(XyGv8EYbL?WYMe-tC+f^Y1yz`5rb69&!1MN!v1uqXyFKsjM2E zG8g-uEGhpNfc2@B6$y5HI^TksH59Vw=7QWl>|;uvg8s%|6(i#p^s8*>=f6|lj?$cE z1!MyE)y~9Y;R@Ei5V$s~kmlX;eU5A&jsz2AI>?QFXt~L2q6pL@Xu0VVgA^RN9b;~H zDj&G5byRY{+HEYTGFXfcIC~H&PlCav#h9+=n6!NKe1m4Mfv4^ZPXRP%Y@NzG4kHVO zPh>S65BXt7+ieRmx7Ol2dZymDV>KPDau6FkpmWTUIu=<%;IAV5fwp4VWd-%)M%rJ> zDl4_L-=XurNPR49zrSs-8R(r~nmnC_ZH84@W?46hbn+kfHC(ZC&tHoO_Ror87^z6; zy|`|{kU2WiM38;TLhUgT zS6mN>RpF46!#S>p(c>DfhYg2dcg>>T)5)<9;OAQ2b?ZMIf2Kr82E6}6 zPMTcT83odbQhZ~~iapW=D<~Xb|+{1sS_L|j9{)+|@-fEYQB@<(U4a`<9% zW%K4L?Y;2J>}{V>kK~(on>u;XR`agmd@*jXI*k`b&qkJ^J9d?psEh}#dAT#iMO4fE zQ9JGdII>-!ETWfZ!CP}arK_=>tD5cPQ#IQ-_VW4b9m04YEfS{GtCy)&YS+ELYP(Lv4d8urec%m`bx)hs=EmTKrFH*j26*ybD3Vlku46 zy1Rc(At6GIQ0ko~Rb@ypwO@5pU3@(hsnYFn>f`z?d;Zr#74bpX^0ig*_OX{hr_&kb zkDWpO-p(k+i*ni}*6olJ+Cb~F#2Cx6%+H>Taz+EBBD|E+B4!<%ucPNvfYGEk0dsz) ziFX==SIp}^jQOiIZDw{Yk3ocOD^EJ1N)9QMPn-JN{JZq;sC#I=QdX9;I))Py^h7px z){bf2KXuS_29yaW8WM4zpA&8$1e~L$=pNc8n1<4%i?90|F8t7)-Upo(wwC?8ExW$; z%x-XHP0AQZ^bMv~i~C2biLMs*imO(HXf z$KP|hJxa8X!G||*&aWuzQ`)LlbvoVZ56)+MM^ zH}^_%MXuY?T;YCUL4CquAlvnbaDjvd+xru(;J>q`Wj-N?WP@dgxSAi)kN_W&?>-kE zBH85qZ7l4zq-6D4$IPs}BllQtHSN|cH&TiEV%9GnLBcbvKkoY+?3nNSYLzm+mhp5_ zZwsz@*2o?gnnQpj3tAb6%V3;k|Wyp_>v zRRLEJ{k(dS&2QzCvAROy9N+d7$(r=a1H!UX)f2&eq?|Af9o}a*ZZ%hN4`^pj%yJLBy;-BYW3L|Te4i+EsgKP}E`|LKpBAo{ zs4JX?pYE(OU86@^$GXSM5prz+?6H9LCLZ<|?xx``*KIHSyw!u?Z~m4=5`~O+!2&h| z;ol2p+dkrK#yQ8??Rr!BK0Gbf8w+x^Fa?bj3x`^cnaHvBsr|y8WA-7m6{7=$KG^*y z#M+j&_nz)oqr|eF&Uyqv(>jPuW}rbomt!t?d(K;iWq^}4aJxPEnrR9|xql3n^lLzR zW3uYm?KLS8v7Yr+exYtGlGNBdW0b%i#tpyC4HN(3zckHG*akm8FyBlmdr;+fauFd^Oe;vu~RrK^eI}9yk$fM)Mpc0AgSeVPHYSl*qZbs!sgKdL=S$pqOXzV)})PQ1hA}7`dg?EHxxho_? z)oW&KD~1tAztYMS_VhJkTf!F*`#PF#L}SqU_i!z4q%{Ihf4h}_zC~>Ln(94L>7Nj# z&3mtRr)UQ1sTuNfhU(E91g%X*B;Vd#8XB5w2RI_ zjwcfv3`P}`epEr|TzV)08`oqNE^WM+*=GNUNeL)?5H3Fg=}yf}uBf#EC;5IUd<pJh_3m0@$Okf&L9JB z*2A9V_I$BLM0%3)aYH7x(yq+Y1sm5bP^E4n;{^ErZuZAY-7m|!)2NPrNN=ib!SZ-0Atp3~Wo;Gy ztrw&}F1&}K=6gNu6(KzWv%oWRb^W#krSt1PrCwkhitnC{AJhkmh-!tI@>kB=E49)J zPRKuW{ds>2W2j!W6~kKrq8hX9-=LgBF0j%BTKY{wI^t0W=~7hJ=0kWeRijf4r7@58 z!oi)k5_b`i#%dM^A(88Np7)3n6mt(m0>}?*%Z2Ad0Z|o7Lsk;Q*HW_p0!jd(!fp9n zb-mpBMhq8#CT1T{DMZqX;y`Qn<_Sm0-TIK>ZqY=|TYJTS!}YxAC79#Yer=MFv*ahVh=xaTZmB(@JHo^p@ z<0YhI5d@n6a6L2 z#(%b5?RC~`c5%$d-{eYkl=rZ)#GE+fO-I3>Iy?md*MPS z!|2?$a#8+$C%rLtCKN9o%M7CBvQYK?72GP`IhmV_|khT^oF=SlWO+bV5ara5#G7MfcCDuAet*8*RiHbzoAUC zq1=aZazBErz0-Medz1YKBk%*!c6wJ%n2jpcpI5)pqCa6^mhXn9<5KgI#iwGu?dAFq z*Hq-o_4z-Hk7NN-Tk0QQ(2X6IX1J{F{SGN;%S{l>tF7B?75;frp@&!#c0IU;j-TDT zT;S5V9-Nh_BQk|u_kYZ4&qd2UjjMu9b5&5M-sNwLtoZ?ar0a$q0=trL^ z&lzt%bs(&ED>e>}@H*go6?*MEUS(5el}+tIxe$jr*s#gSIpf_m#cmOn+q|Lqo($0x zR|hLeHO!aoiRsMCmhTA%$^t3UqonqLapM_YSXQ#9DRl%6G!J&K}nv-1A523j(!%((NwI4E+}`eP4R&;9j4RxhR;VT3$w-AfF9UJM)x zY#H1_@}@@*KIB)PwPG$y%GHJ)AvrC1&^D>YRp$9z{?rw#ZyFfgi^}`@ zz^}gEM8pZHxggwSXV$r@iPS>Me3r~?U~_S{{VWEo&seTn9}|{}G*DQxZ?TSJiUpNf zX~pMO!Q^?L+RNxKK_j_@PU1UX4_%1&^{L-KJq)L z*_x#OF;KO?j(lBE^;--p3xROiZ7t1g^JX{PLW)t_5#>@%j@l8K_zeK9h~Vfmr0t>A zC6Wu0pI*5T4ZouXK`HeHMqHD3ii1w2IKTPsC2f+Q`X2t6W_)nxWqH4}?=(vLo zDCv9Z-?X{&R!|?Qiz=UdWdy9< zJKa$IMu-ieJQo^-#sfV$5Ub1tqklgla@$VR(Y$5H%A$jfeH@?Xz zuFHz8SBY9XNCSYtmVpS?Hg(?#w3)zD9XG$d8uE*8%btG<`76<#3ZioHm+oXXNOkS( zp>tGD(s1}|qWi}Q(sLTFttmWj3vBrm)^ zRLy>aDX6Vsq^In@ig!

rBaM?`_LY$6vAiA^+W8 z$%AuuU3h@7X(oKHP%`|fJAc@kF=4WvJTKCc#S_T4+jv>`+P%D@?+s&{QeA{)xT~mR z@}N+6O726&sx-2!&6{wy7(RQs1+{|eWi)`fDn|)34mR!bRR&BUx8=vUFG_=|M28R7 zO`$i*neYdm2VwhUe&k9{%=o-jiNOld-BIY(5{cD+RrB#FN^t452Y9s1AeOG31N2i%i3Zz_9vT$Ge{VmquR#3*T}d0cftY>jpwdmi-k z+6+{xGgj*0ziv^mmAV?J^g!JS`I=Sg4Wmet%rQZ!6oO4yzcrh+2Z__SRyg#PIu8Bi zSh*q=NDf0MHR_h`$Ai6oSc9%UnQcQenr(xic3B_!+)t+++XhHJ*MMyU9{YR0G8kpS zWfSvd6N=mos9NL3ׁ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�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�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

Z-9IIA9$eHZ|($j7z<(r1nmz^I5f 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 diff --git a/ems_c/kernel/kit_db.c b/ems_c/kernel/kit_db.c deleted file mode 100644 index 26b9ca1..0000000 --- a/ems_c/kernel/kit_db.c +++ /dev/null @@ -1,3815 +0,0 @@ -/***************************************************************************** - * @copyright 2024-2024, . POWER SUPPLY CO., LTD. - * @file kit_db.c - * @brief sqlite3数据库操作方法 - * @author Gary - * @date 2024/09/10 - * @remark 去掉sqlite3_get_table即将过期的方法,补充了设备、协议和点位表的查询方法 - *****************************************************************************/ -#include -#include -#include -#include -#include "utextend.h" -#include "kit_log.h" -#include "kit_string.h" -#include "kit_db.h" - -#define CONFIG_SQLITE_PATH "/opt/company_ems/db/sqlite3.db" // 配置数据库 -#define BUSINESS_SQLITE_PATH "/opt/company_ems/db/business.db" // 业务数据库 - -static sqlite3 *config_db; // 全局变量,数据库句柄 -static sqlite3 *business_db; // 全局变量,业务数据库句柄 - -pthread_mutex_t config_db_mutex = PTHREAD_MUTEX_INITIALIZER; // 全局变量,配置数据库线程锁 -pthread_mutex_t business_db_mutex = PTHREAD_MUTEX_INITIALIZER; // 全局变量,业务数据库线程锁 - -// 设备配置信息icd -static UT_icd ems_dev_config_icd = -{ - sizeof(ems_dev_config_t), - NULL, - NULL, - NULL, -}; - -// 设备信息的icd -static UT_icd dev_icd = -{ - sizeof(dev_info_t), // 设备结构体大小 - NULL, // 初始化函数 - NULL, // 复制函数 - NULL, // 销毁函数 -}; - -// 点位信息icd -static UT_icd point_icd = -{ - sizeof(point_t), - NULL, - NULL, - NULL, -}; - -// 时序数据的icd -static UT_icd timed_data_config_icd = -{ - sizeof(timed_data_config_t), - NULL, - NULL, - NULL, -}; - -// 故障数据的icd -static UT_icd faults_data_config_icd = -{ - sizeof(faults_data_config_t), - NULL, - NULL, - NULL, -}; - -// 北向配置信息icd -static UT_icd north_config_icd = -{ - sizeof(north_config_t), - NULL, - NULL, - NULL, -}; - -// 削峰填谷日期配置信息icd -static UT_icd pv_date_config_icd = -{ - sizeof(pv_date_config_t), - NULL, - NULL, - NULL, -}; - -// 设备拓扑结构信息icd -static UT_icd topology_icd = -{ - sizeof(topology_t), - NULL, - NULL, - NULL, -}; - -static UT_icd advanced_setting_icd = -{ - sizeof(advanced_setting_t), - NULL, - NULL, - NULL, -}; - -// MQTT断点记录信息icd -static UT_icd break_record_icd = -{ - sizeof(break_record_t), - NULL, - NULL, - NULL, -}; - -// DIDO逻辑设置信息的icd -static UT_icd di_do_logic_set_icd = -{ - sizeof(di_do_logic_set_t), - NULL, - NULL, - NULL, -}; - -/***************************************************************************** - * @brief 检查文件夹是否存在 - * @param[in] path:文件夹路径 - * @return 存在-true,不存在-false - *****************************************************************************/ -static bool file_exists(const char *const path) -{ - struct stat buf = {0}; - if (-1 != stat(path, &buf) && S_ISDIR(buf.st_mode)) - { - return true; - } - else - { - return false; - } -} - -/***************************************************************************** - * @brief 拼接路径,将源路径拼接到目标路径的指定位置 - * @param[in] dst: 目标路径字符串 - * @param[in] offset: 拼接的起始位置(即从目标路径的何处开始拼接) - * @param[in] max_size: 目标路径的最大长度(缓冲区大小) - * @param[in] src: 源路径字符串 - * @return 返回拼接后的路径长度;如果拼接失败,则返回 -1 - *****************************************************************************/ -static int path_cat(char *dst, int offset, int max_size, const char *src) -{ - int len = strlen(src); - // 检查目标缓冲区是否足够容纳新拼接的路径 - if (offset + len >= max_size) - { - return -1; - } - // 将源路径复制到目标路径的指定位置 - strcpy(dst + offset, src); - return offset + len; -} - -/***************************************************************************** - * @brief 读取文件内容并存储为字符串 - * @param[in] path: 文件路径 - * @param[out] sql: 指向读取的字符串的指针,内存由该函数分配,调用者需负责释放 - * @return 0 表示成功,非 0 表示失败 - *****************************************************************************/ -static int read_file_string(const char *path, char **sql) -{ - FILE *fp = fopen(path, "r"); - if (fp == NULL) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "打开文件'%s'失败", path); - return 1; // 打开文件失败 - } - - // 获取文件大小 - fseek(fp, 0, SEEK_END); - long size = ftell(fp); - rewind(fp); - - // 分配足够的内存来存储文件内容 - *sql = malloc(size + 1); - if (*sql == NULL) - { - fclose(fp); - KITLOG(LOG_KIT_EN, ERROR_EN, "内存分配失败"); - return 1; // 内存分配失败 - } - - // 读取文件内容到内存中并检查读取结果 - size_t read_size = fread(*sql, 1, size, fp); - if (read_size != size) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "读取文件内容失败"); - free(*sql); - fclose(fp); - return 1; // 读取文件内容失败 - } - - (*sql)[size] = '\0'; // 添加字符串终止符 - - fclose(fp); - return 0; -} - -/***************************************************************************** - * @brief 判断字符串是否以指定后缀结尾 - * @param[in] str: 要检查的字符串 - * @param[in] suffix: 指定的后缀 - * @return 如果字符串以指定后缀结尾则返回 true,否则返回 false - *****************************************************************************/ -static bool ends_with(const char *str, const char *suffix) -{ - // 如果字符串的长度小于后缀的长度,直接返回 false - if (strlen(str) < strlen(suffix)) - { - return false; - } - // 比较字符串的结尾部分与后缀是否相等 - return strcmp(str + strlen(str) - strlen(suffix), suffix) == 0; -} - -/***************************************************************************** - * @brief 比较两个 schema 文件名,用于排序 - * @param[in] a: 第一个文件名 - * @param[in] b: 第二个文件名 - * @return 比较结果,用于排序函数 - *****************************************************************************/ -static int schema_sort_cmp(const void *a, const void *b) -{ - return strcmp(*(char **)a, *(char **)b); -} - -/***************************************************************************** - * @brief 收集目录中的所有 SQL 文件 - * @param[in] dir: 目录路径 - * @return 包含所有 SQL 文件名的 UT_array 指针;如果失败,则返回 NULL - *****************************************************************************/ -static UT_array *collect_schemas(const char *dir) -{ - DIR *dirp = NULL; - struct dirent *dent = NULL; - UT_array *files = NULL; - - // 打开目录 - if ((dirp = opendir(dir)) == NULL) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "文件夹打开失败: %s", dir); - return NULL; - } - - // 初始化 UT_array 用于存储文件名 - utarray_new(files, &ut_str_icd); - - // 遍历目录中的所有文件,筛选出以 ".sql" 结尾的文件 - while (NULL != (dent = readdir(dirp))) - { - if (ends_with(dent->d_name, ".sql")) - { - char *file = strdup(dent->d_name); // strdup 自动分配并拷贝字符串 - if (file == NULL) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "strdup 失败"); - continue; - } - // 将副本指针推入 UT_array - utarray_push_back(files, &file); - } - } - - // 关闭目录 - closedir(dirp); - return files; -} - -/***************************************************************************** - * @brief 执行目录中的所有 SQL 文件 - * @param[in] dir: 存储 SQL 文件的目录路径 - * @param[in] db: 数据库句柄 - * @return 0 表示成功,非 0 表示失败 - *****************************************************************************/ -static int execute_sql_files(const char *dir, sqlite3 *db) -{ - char *sql = NULL; - int ret = 0; - - if (!file_exists(dir)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "sql 文件 `%s` 不存在", dir); - return 1; - } - - // 获取目录下的所有 SQL 文件 - UT_array *files = collect_schemas(dir); - if (NULL == files) - { - return 1; // 目录读取失败 - } - - // 对文件名进行排序 - utarray_sort(files, schema_sort_cmp); - - // 遍历每个 SQL 文件 - utarray_foreach(files, char **, file) - { - char *path = NULL; - path = calloc(PATH_MAX_SIZE, sizeof(char)); - if (NULL == path) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "内存分配失败"); - return 1; - } - - // 拼接文件路径 - if (PATH_MAX_SIZE <= path_cat(path, 0, PATH_MAX_SIZE, dir) || - PATH_MAX_SIZE <= path_cat(path, strlen(dir), PATH_MAX_SIZE, *file)) - { // 修正了路径拼接问题 - KITLOG(LOG_KIT_EN, ERROR_EN, "路径过长: %s", path); - free(path); - return 1; - } - - // 读取 SQL 文件内容 - ret = read_file_string(path, &sql); - if (0 != ret) - { - free(path); - continue; // 读取失败,跳过该文件 - } - - // 执行 SQL 语句 - char *err_msg = NULL; - ret = sqlite3_exec(db, sql, NULL, NULL, &err_msg); - if (SQLITE_OK != ret) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "执行 %s 失败: (%d)%s", path, ret, err_msg); - sqlite3_free(err_msg); - ret = 1; - free(path); - free(sql); - continue; - } - - free(path); - free(sql); - } - - // 释放文件列表内存 - utarray_free(files); - return ret; -} - -/***************************************************************************** - * @brief 初始化 SQLite 数据库 - * @param[in] schema_dir: 存储 SQL 文件的目录路径 - * @param[in] db: 待初始化数据库 - * @return 0 表示成功,1 表示失败 - *****************************************************************************/ -static int init_db_handle(const char *schema_dir, sqlite3 *db) -{ - int ret = 0; - - // 设置忙时超时时间 - ret = sqlite3_busy_timeout(db, 120 * 1000); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "设置忙时超时失败: %s", sqlite3_errmsg(db)); - sqlite3_close(db); - return 1; - } - - // 启用外键支持 - ret = sqlite3_exec(db, "PRAGMA foreign_keys=ON", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "数据库外键启动失败: %s", sqlite3_errmsg(db)); - sqlite3_close(db); - return 1; - } - - // 设置 WAL 模式 - ret = sqlite3_exec(db, "PRAGMA journal_mode=WAL", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "数据库 journal_mode WAL 启动失败: %s", sqlite3_errmsg(db)); - sqlite3_close(db); - return 1; - } - -#ifdef INIT_DB - // 执行目录中的所有 SQL 文件 - ret = execute_sql_files(schema_dir, db); - if (ret != 0) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "执行 SQL 文件失败"); - sqlite3_close(db); - return 1; - } -#endif - - return 0; -} - -/***************************************************************************** - * @brief 根据北向上报下发设备Id获取点位信息 - * @param[in] upDisDevDbId: 上报下发设备Id - * @param[out] p_upDisDev: 用于存储北向配置信息的指针, 包含上报点位和下发设备信息 - * @return 0-成功 1-失败 - *****************************************************************************/ -static int kit_get_updis_dev_point(int upDisDevDbId, up_dis_dev_t *p_upDisDev) -{ - int ret = 0; - sqlite3_stmt *stmt = NULL; - char *query = "SELECT udd.dev_type, d.code, udp.cloud_code, " - "udp.cloud_name, udp.point_code " - "FROM up_dis_dev udd " - "LEFT JOIN device d ON udd.dev_id = d.id " - "LEFT JOIN up_dis_point udp ON udd.id = udp.up_dis_id " - "WHERE udd.id = ?"; - - if (sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL) != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询失败: %s", sqlite3_errmsg(config_db)); - return 1; - } - - if (sqlite3_bind_int(stmt, 1, upDisDevDbId) != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "绑定upDisDevDbId失败: %s", sqlite3_errmsg(config_db)); - sqlite3_finalize(stmt); - return 1; - } - - int step; - while ((step = sqlite3_step(stmt)) == SQLITE_ROW) - { - up_dis_point_t *temp = realloc(p_upDisDev->upDisPointArr, (p_upDisDev->upDisPointNum + 1) * sizeof(up_dis_point_t)); - if (temp == NULL) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "内存分配失败"); - ret = 1; - break; - } - p_upDisDev->upDisPointArr = temp; - up_dis_point_t *point = &p_upDisDev->upDisPointArr[p_upDisDev->upDisPointNum++]; - point->devType = (dev_type_e)sqlite3_column_int(stmt, 0); - point->devId = sqlite3_column_int(stmt, 1); - snprintf((char *)point->cloudCode, MAX_CODE_BUF_LEN, "%s", sqlite3_column_text(stmt, 2)); - snprintf((char *)point->cloudName, MAX_NAME_BUF_LEN, "%s", sqlite3_column_text(stmt, 3)); - point->pointId = sqlite3_column_int(stmt, 4); - } - - if (step != SQLITE_DONE && ret == 0) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询上报下发点位信息失败: %s", sqlite3_errmsg(config_db)); - ret = 1; - } - - sqlite3_finalize(stmt); - return ret; -} - -/***************************************************************************** - * @brief 根据北向配置ID获取上报下发配置信息 - * @param[in] northConfigDbId: 北向配置表数据库ID - * @param[out] northConfig: 用于存储北向配置信息的指针, 包含上报点位和下发点位信息 - * @return 0-成功 1-失败 - *****************************************************************************/ -static int kit_get_north_config_by_id(int northConfigDbId, north_config_t *northConfig) -{ - int ret = 0; - int upDisDevId; - sqlite3_stmt *stmt = NULL; - char *query = "SELECT udd.up_dis_config_type, udd.dev_type, d.code, " - "udd.id " - "FROM up_dis_dev udd " - "LEFT JOIN device d ON udd.dev_id = d.id " - "WHERE udd.north_config_id = ?"; - - // 准备 SQL 语句 - if (SQLITE_OK != sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL)) // config_db: 全局数据库连接 - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - return 1; - } - - // 绑定参数到预编译语句 - if (SQLITE_OK != sqlite3_bind_int(stmt, 1, northConfigDbId)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "绑定 northConfigId 失败: %s", sqlite3_errmsg(config_db)); - sqlite3_finalize(stmt); - return 1; // 返回错误代码 - } - - // 执行查询并处理结果 - int step = sqlite3_step(stmt); - while (SQLITE_ROW == step) - { - // 获取上报下发配置类型 - up_dis_config_type_e upDisConfigType = sqlite3_column_int(stmt, 0); - - // 根据配置类型分配内存并存储点位信息 - switch (upDisConfigType) - { - case kUp_Dis_Cfg_Type_Up: // 上报点位 - northConfig->upDevNum++; - // 分配内存以存储新的上报设备信息 - up_dis_dev_t *tempUp = (up_dis_dev_t *)realloc(northConfig->upDevArr, northConfig->upDevNum * sizeof(up_dis_dev_t)); - if (tempUp == NULL) - { - // 内存分配失败,记录错误信息并返回 - KITLOG(LOG_KIT_EN, ERROR_EN, "内存分配失败"); - ret = 1; - goto error; - } - northConfig->upDevArr = tempUp; - // 获取上报配置信息 - northConfig->upDevArr[northConfig->upDevNum - 1].devType = (dev_type_e)sqlite3_column_int(stmt, 1); // 设备类型 - northConfig->upDevArr[northConfig->upDevNum - 1].devId = sqlite3_column_int(stmt, 2); // 设备编号 - upDisDevId = sqlite3_column_int(stmt, 3); // 上报下发设备Id - kit_get_updis_dev_point(upDisDevId, &northConfig->upDevArr[northConfig->upDevNum - 1]); - break; - case kUp_Dis_Cfg_Type_Dis_Point: // 下发控制点位 - northConfig->disDevNum++; - // 分配内存以存储新的下发设备信息 - up_dis_dev_t *tempDis = (up_dis_dev_t *)realloc(northConfig->disDevArr, northConfig->disDevNum * sizeof(up_dis_dev_t)); - if (tempDis == NULL) - { - // 内存分配失败,记录错误信息并返回 - KITLOG(LOG_KIT_EN, ERROR_EN, "内存分配失败"); - ret = 1; - goto error; - } - northConfig->disDevArr = tempDis; - // 获取下发配置信息 - northConfig->disDevArr[northConfig->disDevNum - 1].devType = (dev_type_e)sqlite3_column_int(stmt, 1); // 设备类型 - northConfig->disDevArr[northConfig->disDevNum - 1].devId = sqlite3_column_int(stmt, 2); // 设备编号 - upDisDevId = sqlite3_column_int(stmt, 3); // 上报下发设备Id - kit_get_updis_dev_point(upDisDevId, &northConfig->disDevArr[northConfig->upDevNum - 1]); - break; - default: - KITLOG(LOG_KIT_EN, ERROR_EN, "未知的上报下发配置类型: %d", upDisConfigType); - ret = 1; - break; - } - - if (ret != 0) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "填充上报下发信息失败"); - sqlite3_finalize(stmt); - return 1; - } - - step = sqlite3_step(stmt); - } - - if (step != SQLITE_DONE) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询上报下发配置信息失败: %s", sqlite3_errmsg(config_db)); - ret = 1; - } - -error: - // 清理资源 - sqlite3_finalize(stmt); - return ret; -} - -/* ############################################################################### 配置数据库操作 ############################################################################### */ - -/***************************************************************************** - * @brief 初始化 SQLite 数据库 - * @param[in] schema_dir: 存储 SQL 文件的目录路径 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_init_db(const char *schema_dir) -{ - int ret = 0; - - // 打开配置数据库,如果不存在则创建 - // ret = sqlite3_open(CONFIG_SQLITE_PATH, &config_db); - ret = sqlite3_open_v2(CONFIG_SQLITE_PATH, &config_db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_WAL, NULL); - if (SQLITE_OK != ret) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "打开数据库 `%s` 失败: %s", CONFIG_SQLITE_PATH, sqlite3_errstr(ret)); - return 1; - } - char config_schema_dir[PATH_MAX_SIZE]; // 假设路径不会超过 PATH_MAX_SIZE 字符 - snprintf(config_schema_dir, PATH_MAX_SIZE, "%s/config/", schema_dir); - ret = init_db_handle(config_schema_dir, config_db); - if (0 != ret) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "初始化数据库 `%s` 失败", CONFIG_SQLITE_PATH); - return 1; - } - - // 打开业务数据库,如果不存在则创建 - // ret = sqlite3_open(BUSINESS_SQLITE_PATH, &business_db); - ret = sqlite3_open_v2(BUSINESS_SQLITE_PATH, &business_db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_WAL, NULL); - if (SQLITE_OK != ret) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "打开数据库 `%s` 失败: %s", BUSINESS_SQLITE_PATH, sqlite3_errstr(ret)); - return 1; - } - char business_schema_dir[PATH_MAX_SIZE]; // 假设路径不会超过 PATH_MAX_SIZE 字符 - snprintf(business_schema_dir, PATH_MAX_SIZE, "%s/business/", schema_dir); - ret = init_db_handle(business_schema_dir, business_db); - if (0 != ret) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "初始化数据库 `%s` 失败", BUSINESS_SQLITE_PATH); - return 1; - } - -#ifdef INIT_DB - kit_sync_dev_data(); // 同步设备信息 - kit_sync_point_data(); // 同步点位信息 -#endif - - return 0; -} - -/***************************************************************************** - * @brief 释放 SQLite 数据库连接 - * @return 0 表示成功,1 表示失败 - *****************************************************************************/ -int kit_uninit_db() -{ - if (config_db != NULL) - { - sqlite3_close(config_db); - config_db = NULL; - return 0; - } - if (business_db != NULL) - { - sqlite3_close(business_db); - business_db = NULL; - return 0; - } - return 1; -} - -/***************************************************************************** - * @brief 从 SQLite 数据库中获取数据表数据。使用准备好的语句(Prepared Statement)从 SQLite数据库中 - * 获取数据表数据,避免使用 `sqlite3_get_table`,因为它是一个过时的接口,存在安全和性能问题。 - * @param[out] outData: 用于存储查询结果的结构体指针。 - * @param[in] tableName: 数据表名称。 - * @param[in] columnsName: 要查询的列名数组,可以为 NULL 或空数组,表示查询所有列。 - * @param[in] columnNum: 要查询的列名数量。 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_get_db_data(db_table_data_t *outData, const char *tableName, const char *columnsName[], int columnNum) -{ - sqlite3_stmt *stmt = NULL; - int ret = 0; - char *sql = NULL; - char *sql_columns = NULL; - - // 构建 SQL 查询语句 - if (columnsName == NULL || columnNum == 0) - { - sql = sqlite3_mprintf("SELECT * FROM %s", tableName); - } - else - { - sql_columns = kit_join_text(columnNum, columnsName, ","); - if (sql_columns == NULL) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "构建列名失败"); - return 1; - } - sql = sqlite3_mprintf("SELECT %s FROM %s", sql_columns, tableName); - free(sql_columns); // 释放拼接好的列名字符串 - } - - if (sql == NULL) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "构建 SQL 语句失败: sqlite3_mprintf 失败"); - return 1; - } - - // 准备 SQL 语句 - sqlite3_free(sql); // 释放 SQL 字符串 - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备语句失败: %s", sqlite3_errmsg(config_db)); - sqlite3_finalize(stmt); // 结束语句 - return 1; - } - - // 获取查询结果 - outData->nrow = 0; - outData->ncolumn = sqlite3_column_count(stmt); // 获取列数 - - // 如果有列,继续处理 - if (outData->ncolumn > 0) - { - // 先检查有多少行 - while ((ret = sqlite3_step(stmt)) == SQLITE_ROW) - { - outData->nrow++; - } - - // 如果没有找到行 - if (outData->nrow == 0) - { - KITLOG(LOG_KIT_EN, INFO_EN, "没有找到匹配的行"); - sqlite3_finalize(stmt); - return 0; - } - - // 为结果表分配内存 - outData->dbresult = (char **)sqlite3_malloc(outData->nrow * outData->ncolumn * sizeof(char *)); - if (outData->dbresult == NULL) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "分配结果表内存失败"); - sqlite3_finalize(stmt); - return 1; - } - - // 重置语句,重新开始读取 - sqlite3_reset(stmt); - - // 读取数据行并存储结果 - int row = 0; - while ((ret = sqlite3_step(stmt)) == SQLITE_ROW) - { - for (int i = 0; i < outData->ncolumn; i++) - { - const char *text = (const char *)sqlite3_column_text(stmt, i); - outData->dbresult[row * outData->ncolumn + i] = text ? sqlite3_mprintf("%s", text) : NULL; - } - row++; - } - - if (ret != SQLITE_DONE) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "执行语句失败: %s", sqlite3_errmsg(config_db)); - sqlite3_finalize(stmt); - return 1; - } - } - - // 结束语句 - sqlite3_finalize(stmt); - - return 0; -} - -/***************************************************************************** - * @brief 释放 `db_table_data_t` 结构体中分配的内存。 - * 该函数用于释放 `kitGetDbData` 函数获取的查询结果数据所占用的内存。 - * 它会依次释放 `dbresult`、`errmsg` 和 `db` 指针指向的内存。 - * @param data 指向 `db_table_data_t` 结构体的指针。 - *****************************************************************************/ -void kit_free_table_data(db_table_data_t *data) -{ - if (data == NULL) - { - // 如果 `data` 指针为空,则直接返回。 - return; - } - - // 释放 `dbresult` 指向的内存,如果 `dbresult` 不为空。 - if (data->dbresult != NULL) - { - sqlite3_free_table(data->dbresult); - data->dbresult = NULL; - } - - // 释放 `errmsg` 指向的内存,如果 `errmsg` 不为空。 - if (data->errmsg != NULL) - { - sqlite3_free(data->errmsg); - data->errmsg = NULL; - } - - // 函数执行完毕,返回。 - return; -} - -/***************************************************************************** - * @brief: 执行多条 SQL 语句,函数内关闭连接。 - * 该函数用于执行多个 SQL 语句,并处理执行过程中的错误。 - * 它会依次执行传入的 SQL 语句数组,并在执行失败时记录错误信息。 - * 函数执行完毕后会关闭数据库连接。 - * @param[in] tableName: 数据表名称(未使用,可以忽略)。 - * @param[in] sql: 包含多个 SQL 语句的字符串数组。 - * @param[in] sql_num: SQL 语句的数量。 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_exec_db_data(char *tableName, char *sql[], int sql_num) -{ - sqlite3 *db = NULL; // 数据库连接指针 - int ret = 0; // sqlite3_exec 函数返回值 - char *zErrMsg = 0; // 错误信息指针 - - // 循环执行每个 SQL 语句 - for (int i = 0; i < sql_num; i++) - { - // printf("%s\n",sql[i]); // 可选:打印每个 SQL 语句 - ret = sqlite3_exec(db, sql[i], NULL, 0, &zErrMsg); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "执行 SQL 语句[%d] 失败: %s.", i, zErrMsg); - sqlite3_free(zErrMsg); // 释放错误信息内存 - return 1; - } - } - - sqlite3_free(zErrMsg); // 释放错误信息内存 - return 0; // 返回执行结果标志 -} - -/***************************************************************************** - * @brief 从数据库查询电站数据 - * @param[in] p_station:电站信息的指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_get_station_db_data(station_t *p_station) -{ - sqlite3_stmt *stmt = NULL; - char *query = sqlite3_mprintf("SELECT name, address, lng, lat, time_zone FROM station DESC LIMIT 1"); - - if (query == NULL) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "内存分配失败"); - return 1; - } - - if (SQLITE_OK != sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - sqlite3_free(query); - return 1; // 返回错误代码 - } - - int step = sqlite3_step(stmt); - - if (step == SQLITE_ROW) - { - snprintf((char *)p_station->name, MAX_NAME_BUF_LEN, "%s", (const char *)sqlite3_column_text(stmt, 0)); // 电站名称 - snprintf((char *)p_station->address, MAX_ADDR_BUF_LEN, "%s", (const char *)sqlite3_column_text(stmt, 1)); // 电站地址 - p_station->lng = sqlite3_column_double(stmt, 2); // 经度 - p_station->lat = sqlite3_column_double(stmt, 3); // 纬度 - snprintf((char *)p_station->timeZone, MAX_CODE_BUF_LEN, "%s", (const char *)sqlite3_column_text(stmt, 4)); // 时区 - } - else - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询失败,错误码: %d, 错误信息: %s", step, sqlite3_errmsg(config_db)); - } - - sqlite3_finalize(stmt); - sqlite3_free(query); - return (step == SQLITE_ROW) ? 0 : 1; // 返回成功或失败代码 -} - -/***************************************************************************** - * @brief 从数据库获取设备信息 - * @param[out] devPointInfo: 用于存储设备信息的 UT_array 指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_get_dev_db_data(UT_array **devPointInfo) -{ - sqlite3_stmt *stmt = NULL; // 预编译语句句柄 - const char *query; // 查询语句 - utarray_new(*devPointInfo, &dev_icd); // 创建新的 UT_array 用于存储设备点位信息 - - // 构建查询语句 - query = "SELECT id, type, code, protocol_type, name, " - "sort_order, template_id " - "FROM device WHERE 1=1 "; // 基础查询语句 - // 添加结果排序 - query = sqlite3_mprintf("%s ORDER BY type, protocol_type, id ASC", query); // 按 id 升序排序 - - // 准备 SQL 语句 - if (SQLITE_OK != sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - goto error; // 处理错误 - } - - // 执行查询并处理结果 - int step = sqlite3_step(stmt); - while (SQLITE_ROW == step) // 遍历每一行结果 - { - // 从数据库中获取每一列的值 - dev_info_t dev_info = {0}; // 初始化设备点位结构体 - dev_info.devDbId = sqlite3_column_int(stmt, 0); - dev_info.devType = sqlite3_column_int(stmt, 1); - dev_info.devId = sqlite3_column_int(stmt, 2); - dev_info.protocolType = sqlite3_column_int(stmt, 3); - snprintf((char *)dev_info.devName, MAX_NAME_BUF_LEN, "%s", (const char *)sqlite3_column_text(stmt, 4)); - dev_info.sortOrder = sqlite3_column_int(stmt, 5); - dev_info.templateId = sqlite3_column_int(stmt, 6); - - // 将设备点位信息添加到 UT_array 中 - utarray_push_back(*devPointInfo, &dev_info); - - // 继续处理下一行 - step = sqlite3_step(stmt); - } - - // 检查是否完成所有行的处理 - if (SQLITE_DONE != step) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询未完成,错误信息: %s", sqlite3_errmsg(config_db)); - goto error; // 处理错误 - } - - // 清理资源 - sqlite3_finalize(stmt); // 释放预编译语句 - return 0; // 成功返回 - -error: - sqlite3_finalize(stmt); // 确保释放预编译语句 - utarray_free(*devPointInfo); // 释放 UT_array - devPointInfo = NULL; // 设置为 NULL - return 1; // 返回错误代码 -} - -/***************************************************************************** - * @brief 将 config_db 中的 device 表数据复制到 business_db 中的 device 表 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_sync_dev_data() -{ - sqlite3_stmt *stmt_select = NULL; // 用于 SELECT 语句 - sqlite3_stmt *stmt_insert = NULL; // 用于 INSERT 语句 - const char *sql_delete; - const char *sql_select; - const char *sql_insert; - int ret; - - pthread_mutex_lock(&config_db_mutex); // 给配置库操作上锁 - pthread_mutex_lock(&business_db_mutex); // 给业务库操作上锁 - - // 清空 business_db 中的 device 表 - sql_delete = "DELETE FROM device"; - ret = sqlite3_exec(business_db, sql_delete, NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "清空 business_db 中的 device 表失败: %s", sqlite3_errmsg(business_db)); - goto error; - } - - // 从 config_db 中选择数据 - sql_select = "SELECT id, sn, type, code, name, protocol_type, template_id, sort_order, remark, status FROM device"; - ret = sqlite3_prepare_v2(config_db, sql_select, -1, &stmt_select, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", sql_select, sqlite3_errmsg(config_db)); - goto error; - } - - // 准备插入语句 - sql_insert = "INSERT INTO device (id, sn, type, code, name, protocol_type, template_id, sort_order, remark, status) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; - ret = sqlite3_prepare_v2(business_db, sql_insert, -1, &stmt_insert, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备插入语句 `%s` 失败: %s", sql_insert, sqlite3_errmsg(business_db)); - goto error; - } - - // 循环插入数据 - while ((ret = sqlite3_step(stmt_select)) == SQLITE_ROW) - { - // 绑定参数 - sqlite3_bind_int(stmt_insert, 1, sqlite3_column_int(stmt_select, 0)); - sqlite3_bind_text(stmt_insert, 2, (const char *)sqlite3_column_text(stmt_select, 1), -1, SQLITE_STATIC); - sqlite3_bind_int(stmt_insert, 3, sqlite3_column_int(stmt_select, 2)); - sqlite3_bind_int(stmt_insert, 4, sqlite3_column_int(stmt_select, 3)); - sqlite3_bind_text(stmt_insert, 5, (const char *)sqlite3_column_text(stmt_select, 4), -1, SQLITE_STATIC); - sqlite3_bind_int(stmt_insert, 6, sqlite3_column_int(stmt_select, 5)); - sqlite3_bind_int(stmt_insert, 7, sqlite3_column_int(stmt_select, 6)); - sqlite3_bind_int(stmt_insert, 8, sqlite3_column_int(stmt_select, 7)); - sqlite3_bind_text(stmt_insert, 9, (const char *)sqlite3_column_text(stmt_select, 8), -1, SQLITE_STATIC); - sqlite3_bind_int(stmt_insert, 10, sqlite3_column_int(stmt_select, 9)); - - // 执行插入 - ret = sqlite3_step(stmt_insert); - sqlite3_reset(stmt_insert); // 重置语句以进行下一次插入 - if (ret != SQLITE_DONE) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "插入数据失败: %s", sqlite3_errmsg(business_db)); - goto error; - } - } - - // 检查是否有错误发生在sqlite3_step(stmt_select)中 - if (ret != SQLITE_DONE) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询数据失败: %s", sqlite3_errmsg(config_db)); - goto error; - } - - // 清理资源 - sqlite3_finalize(stmt_select); - sqlite3_finalize(stmt_insert); - pthread_mutex_unlock(&config_db_mutex); // 给配置库操作释放锁 - pthread_mutex_unlock(&business_db_mutex); // 给业务库操作释放锁 - return 0; - -error: - sqlite3_finalize(stmt_select); - sqlite3_finalize(stmt_insert); - pthread_mutex_unlock(&config_db_mutex); // 给配置库操作释放锁 - pthread_mutex_unlock(&business_db_mutex); // 给业务库操作释放锁 - return 1; -} - -/***************************************************************************** - * @brief 从数据库获取协议信息。 - * 该函数从数据库中获取与指定设备 ID 关联的协议信息。 - * 它使用准备好的语句(Prepared Statement)来执行查询,并绑定设备 ID 参数。 - * 函数会返回获取到的协议信息,并处理查询过程中的错误。 - * @param[in] templateType: 模板类别(0设备配置, 1北向配置)。 - * @param[in] relatedId: 关联数据库 ID。 - * @param[out] protoContent: 用于存储协议信息的字符数组。 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_get_protocol_db_data(const template_type_e templateType, const uint64_t relatedId, char protoContent[MAX_CONFIG_CONTENT_LEN]) -{ - sqlite3_stmt *stmt = NULL; // 预编译语句句柄 - char *query = sqlite3_mprintf("SELECT content FROM protocol WHERE 1=1 AND template_type=? AND related_id=? LIMIT 1"); - - // 准备 SQL 语句 - if (SQLITE_OK != sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - sqlite3_free(query); // 释放查询字符串 - return 1; // 返回错误代码 - } - - // 绑定参数到预编译语句 - if (SQLITE_OK != sqlite3_bind_int(stmt, 1, templateType)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "绑定 template_type 失败: %s", sqlite3_errmsg(config_db)); - sqlite3_finalize(stmt); - sqlite3_free(query); // 释放查询字符串 - return 1; // 返回错误代码 - } - if (SQLITE_OK != sqlite3_bind_int64(stmt, 2, relatedId)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "绑定 related_id 失败: %s", sqlite3_errmsg(config_db)); - sqlite3_finalize(stmt); - sqlite3_free(query); // 释放查询字符串 - return 1; // 返回错误代码 - } - - // 执行查询并处理结果 - int step = sqlite3_step(stmt); - if (step == SQLITE_ROW || step == SQLITE_DONE) - { - snprintf(protoContent, MAX_CONFIG_CONTENT_LEN, "%s", sqlite3_column_text(stmt, 0)); - } - else - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询未完成,错误信息: %s", sqlite3_errmsg(config_db)); - sqlite3_finalize(stmt); - sqlite3_free(query); // 释放查询字符串 - return 1; // 返回错误代码 - } - - // 清理资源 - sqlite3_finalize(stmt); // 释放预编译语句 - sqlite3_free(query); // 释放查询字符串 - return 0; // 成功返回 -} - -/***************************************************************************** - * @brief 从数据库获取点位信息 - * @param[in] templateId: 模板Id - * @param[out] points: 用于存储点位信息的 UT_array 指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_get_point_db_data(const uint64_t templateId, UT_array **points) -{ - sqlite3_stmt *stmt = NULL; // 预编译语句句柄 - const char *query; // 查询语句 - utarray_new(*points, &point_icd); // 创建新的 UT_array 用于存储设备点位信息 - - // 构建查询语句 - query = "SELECT group_type, code, name, data_type, " - "attribute, func, reg_addr, bit_pos, bit_num, endian, " - "precision, ratio, offset, is_persisted, storage_interval, " - "mutate_bound, default_value, min_value, max_value, dev_type,id " - "FROM point WHERE 1=1 "; // 基础查询语句 - - // 检查并添加设备Id条件 - query = sqlite3_mprintf("%s AND template_id=?", query); // 动态添加设备Id条件 - - // 添加结果排序 - query = sqlite3_mprintf("%s ORDER BY func, reg_addr ASC", query); // 按 id 升序排序 - - // 准备 SQL 语句 - if (SQLITE_OK != sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - goto error; // 处理错误 - } - - // 绑定参数到预编译语句 - int param_index = 1; // 参数索引 - if (SQLITE_OK != sqlite3_bind_int64(stmt, param_index++, templateId)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "绑定 `%s` 的参数 dev_id 失败: %s", query, sqlite3_errmsg(config_db)); - goto error; // 处理错误 - } - - // printf("%s\n",query); - // 执行查询并处理结果 - int step = sqlite3_step(stmt); - while (SQLITE_ROW == step) // 遍历每一行结果 - { - // 从数据库中获取每一列的值 - point_t point_info = {0}; // 初始化设备点位结构体 - point_info.groupType = (point_group_type_e)sqlite3_column_int(stmt, 0); - point_info.pointId = (uint16_t)sqlite3_column_int(stmt, 1); - snprintf((char *)point_info.pointName, MAX_POINT_NAME_LEN, "%s", (const char *)sqlite3_column_text(stmt, 2)); - point_info.dataType = (data_type_e)sqlite3_column_int(stmt, 3); - point_info.attribute = (point_attribute_e)sqlite3_column_int(stmt, 4); - point_info.func = (uint32_t)sqlite3_column_int(stmt, 5); - point_info.regAddr = (uint16_t)sqlite3_column_int(stmt, 6); - point_info.bitPos = (uint8_t)sqlite3_column_int(stmt, 7); - point_info.bitNum = (uint8_t)sqlite3_column_int(stmt, 8); - point_info.endian = (data_endian_e)sqlite3_column_int(stmt, 9); - point_info.precision = sqlite3_column_double(stmt, 10); - point_info.ratio = sqlite3_column_double(stmt, 11); - point_info.offset = sqlite3_column_double(stmt, 12); - point_info.isPersisted = (uint8_t)sqlite3_column_int(stmt, 13); - point_info.storageInterval = (storage_interval_type_e)sqlite3_column_int(stmt, 14); - point_info.mutateBound = sqlite3_column_double(stmt, 15); - point_info.defaultValue = sqlite3_column_double(stmt, 16); - point_info.minValue = sqlite3_column_double(stmt, 17); - point_info.maxValue = sqlite3_column_double(stmt, 18); - point_info.devType = sqlite3_column_int(stmt, 19); - point_info.pointDbId = sqlite3_column_int(stmt, 20); - // point_info.devDbId = sqlite3_column_int(stmt, 20); - - // 将设备点位信息添加到 UT_array 中 - utarray_push_back(*points, &point_info); - - // 继续处理下一行 - step = sqlite3_step(stmt); - } - - // 检查是否完成所有行的处理 - if (SQLITE_DONE != step) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询未完成,错误信息: %s", sqlite3_errmsg(config_db)); - goto error; // 处理错误 - } - - // 清理资源 - sqlite3_finalize(stmt); // 释放预编译语句 - return 0; // 成功返回 - -error: - sqlite3_finalize(stmt); // 确保释放预编译语句 - utarray_free(*points); // 释放 UT_array - points = NULL; // 设置为 NULL - return 1; // 返回错误代码 -} - -/***************************************************************************** - * @brief 从 config_db 获取点位信息并同步到 business_db - * @param[out] 无 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_sync_point_data() -{ - sqlite3_stmt *stmt_config = NULL; // config_db 中的预编译语句句柄 - sqlite3_stmt *stmt_business = NULL; // business_db 中的预编译语句句柄 - const char *query_config; // 从 config_db 查询点位信息的 SQL 语句 - const char *query_clear = "DELETE FROM point"; // 清空 business_db 中的 point 表的 SQL 语句 - int step; // 查询结果步骤 - - pthread_mutex_lock(&config_db_mutex); // 给配置库操作上锁 - pthread_mutex_lock(&business_db_mutex); // 给业务库操作上锁 - - // 清空 business_db 中的 point 表 - if (SQLITE_OK != sqlite3_exec(business_db, query_clear, NULL, NULL, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "清空 business_db 中的 point 表失败: %s", sqlite3_errmsg(business_db)); - pthread_mutex_unlock(&config_db_mutex); // 给配置库操作释放锁 - pthread_mutex_unlock(&business_db_mutex); // 给业务库操作释放锁 - return 1; // 处理错误 - } - - // 构建查询语句从 config_db 获取所有点位信息 - query_config = "SELECT template_id, protocol_type, dev_type, group_type, code, name, " - "data_type, attribute, func, reg_addr, bit_pos, bit_num, endian, precision, " - "ratio, offset, is_persisted, storage_interval, mutate_bound, default_value, " - "min_value, max_value, unit, is_show FROM point ORDER BY id ASC"; - - // 准备从 config_db 执行查询语句 - if (SQLITE_OK != sqlite3_prepare_v2(config_db, query_config, -1, &stmt_config, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query_config, sqlite3_errmsg(config_db)); - pthread_mutex_unlock(&config_db_mutex); // 给配置库操作释放锁 - pthread_mutex_unlock(&business_db_mutex); // 给业务库操作释放锁 - return 1; // 处理错误 - } - - // 准备向 business_db 插入数据的 SQL 语句 - const char *insert_query = "INSERT INTO point (template_id, protocol_type, dev_type, group_type, " - "code, name, data_type, attribute, func, reg_addr, bit_pos, bit_num, endian, " - "precision, ratio, offset, is_persisted, storage_interval, mutate_bound, " - "default_value, min_value, max_value, unit, is_show) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; - - // 准备向 business_db 插入数据 - if (SQLITE_OK != sqlite3_prepare_v2(business_db, insert_query, -1, &stmt_business, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备插入 `%s` 失败: %s", insert_query, sqlite3_errmsg(business_db)); - sqlite3_finalize(stmt_config); // 确保释放预编译语句 - pthread_mutex_unlock(&config_db_mutex); // 给配置库操作释放锁 - pthread_mutex_unlock(&business_db_mutex); // 给业务库操作释放锁 - return 1; // 处理错误 - } - - // 执行查询并插入数据 - step = sqlite3_step(stmt_config); - while (SQLITE_ROW == step) // 遍历每一行结果 - { - // 从 config_db 中获取每一列的值 - int param_index = 1; // 参数索引 - - // 绑定参数到插入语句 - if (SQLITE_OK != sqlite3_bind_int64(stmt_business, param_index++, sqlite3_column_int64(stmt_config, 0))) // template_id - goto error; - if (SQLITE_OK != sqlite3_bind_int(stmt_business, param_index++, sqlite3_column_int(stmt_config, 1))) // protocol_type - goto error; - if (SQLITE_OK != sqlite3_bind_int(stmt_business, param_index++, sqlite3_column_int(stmt_config, 2))) // dev_type - goto error; - if (SQLITE_OK != sqlite3_bind_int(stmt_business, param_index++, sqlite3_column_int(stmt_config, 3))) // group_type - goto error; - if (SQLITE_OK != sqlite3_bind_int(stmt_business, param_index++, sqlite3_column_int(stmt_config, 4))) // code - goto error; - if (SQLITE_OK != sqlite3_bind_text(stmt_business, param_index++, sqlite3_column_text(stmt_config, 5), -1, SQLITE_STATIC)) // name - goto error; - if (SQLITE_OK != sqlite3_bind_int(stmt_business, param_index++, sqlite3_column_int(stmt_config, 6))) // data_type - goto error; - if (SQLITE_OK != sqlite3_bind_int(stmt_business, param_index++, sqlite3_column_int(stmt_config, 7))) // attribute - goto error; - if (SQLITE_OK != sqlite3_bind_int(stmt_business, param_index++, sqlite3_column_int(stmt_config, 8))) // func - goto error; - if (SQLITE_OK != sqlite3_bind_int(stmt_business, param_index++, sqlite3_column_int(stmt_config, 9))) // reg_addr - goto error; - if (SQLITE_OK != sqlite3_bind_int(stmt_business, param_index++, sqlite3_column_int(stmt_config, 10))) // bit_pos - goto error; - if (SQLITE_OK != sqlite3_bind_int(stmt_business, param_index++, sqlite3_column_int(stmt_config, 11))) // bit_num - goto error; - if (SQLITE_OK != sqlite3_bind_int(stmt_business, param_index++, sqlite3_column_int(stmt_config, 12))) // endian - goto error; - if (SQLITE_OK != sqlite3_bind_double(stmt_business, param_index++, sqlite3_column_double(stmt_config, 13))) // precision - goto error; - if (SQLITE_OK != sqlite3_bind_double(stmt_business, param_index++, sqlite3_column_double(stmt_config, 14))) // ratio - goto error; - if (SQLITE_OK != sqlite3_bind_double(stmt_business, param_index++, sqlite3_column_double(stmt_config, 15))) // offset - goto error; - if (SQLITE_OK != sqlite3_bind_int(stmt_business, param_index++, sqlite3_column_int(stmt_config, 16))) // is_persisted - goto error; - if (SQLITE_OK != sqlite3_bind_int(stmt_business, param_index++, sqlite3_column_int(stmt_config, 17))) // storage_interval - goto error; - if (SQLITE_OK != sqlite3_bind_double(stmt_business, param_index++, sqlite3_column_double(stmt_config, 18))) // mutate_bound - goto error; - if (SQLITE_OK != sqlite3_bind_double(stmt_business, param_index++, sqlite3_column_double(stmt_config, 19))) // default_value - goto error; - if (SQLITE_OK != sqlite3_bind_double(stmt_business, param_index++, sqlite3_column_double(stmt_config, 20))) // min_value - goto error; - if (SQLITE_OK != sqlite3_bind_double(stmt_business, param_index++, sqlite3_column_double(stmt_config, 21))) // max_value - goto error; - if (SQLITE_OK != sqlite3_bind_text(stmt_business, param_index++, sqlite3_column_text(stmt_config, 22), -1, SQLITE_STATIC)) // unit - goto error; - if (SQLITE_OK != sqlite3_bind_int(stmt_business, param_index++, sqlite3_column_int(stmt_config, 23))) // is_show - goto error; - - // 执行插入操作 - if (SQLITE_DONE != sqlite3_step(stmt_business)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "插入数据失败: %s", sqlite3_errmsg(business_db)); - goto error; - } - - // 重置插入语句以便于重新绑定参数 - sqlite3_reset(stmt_business); - - // 继续处理下一行 - step = sqlite3_step(stmt_config); - } - - // 检查是否完成所有行的处理 - if (SQLITE_DONE != step) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询未完成,错误信息: %s", sqlite3_errmsg(config_db)); - goto error; // 处理错误 - } - - // 清理资源 - sqlite3_finalize(stmt_config); // 释放 config_db 预编译语句 - sqlite3_finalize(stmt_business); // 释放 business_db 预编译语句 - pthread_mutex_unlock(&config_db_mutex); // 给配置库操作释放锁 - pthread_mutex_unlock(&business_db_mutex); // 给业务库操作释放锁 - return 0; // 成功返回 - -error: - sqlite3_finalize(stmt_config); // 确保释放预编译语句 - sqlite3_finalize(stmt_business); // 确保释放预编译语句 - pthread_mutex_unlock(&config_db_mutex); // 给配置库操作释放锁 - pthread_mutex_unlock(&business_db_mutex); // 给业务库操作释放锁 - return 1; // 返回错误代码 -} - -/***************************************************************************** - * @brief 从数据库获取读取时序数据配置 - * @param[out] timedDataConfigs: 用于指定存储间隔类型的的时序数据配置的数据 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_get_tdata_config(UT_array **timedDataConfigs) -{ - sqlite3_stmt *stmt = NULL; - char *query = sqlite3_mprintf("SELECT p.id, p.code, p.name, p.storage_interval, d.name, d.type, d.id, d.code FROM point p LEFT JOIN device d ON p.template_id = d.template_id ORDER BY p.storage_interval ASC"); - int ret; - - ret = sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - sqlite3_free(query); - return 1; - } - - utarray_new(*timedDataConfigs, &timed_data_config_icd); - - while ((ret = sqlite3_step(stmt)) == SQLITE_ROW) - { - timed_data_config_t data_info = {0}; - data_info.pointDbId = sqlite3_column_int(stmt, 0); - data_info.pointId = sqlite3_column_int(stmt, 1); - snprintf((char *)data_info.pointName, MAX_POINT_NAME_LEN, "%s", (const char *)sqlite3_column_text(stmt, 2)); - data_info.storageInterval = (storage_interval_type_e)sqlite3_column_int(stmt, 3); - snprintf((char *)data_info.devName, MAX_NAME_BUF_LEN, "%s", (const char *)sqlite3_column_text(stmt, 4)); - data_info.devType = sqlite3_column_int(stmt, 5); - data_info.devDbId = sqlite3_column_int(stmt, 6); - data_info.devId = sqlite3_column_int(stmt, 7); - - utarray_push_back(*timedDataConfigs, &data_info); - } - - if (ret != SQLITE_DONE) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询失败: %s", sqlite3_errmsg(config_db)); - sqlite3_finalize(stmt); - sqlite3_free(query); - utarray_free(*timedDataConfigs); - *timedDataConfigs = NULL; - return 1; - } - - sqlite3_finalize(stmt); - sqlite3_free(query); - return 0; -} - -/***************************************************************************** - * @brief 从数据库获取故障点位配置 - * @param[out] faultsDataConfigs: 用于存储故障配置点位的数据 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_get_faults_config(UT_array **faultsDataConfigs) -{ - sqlite3_stmt *stmt = NULL; - char *query = sqlite3_mprintf("SELECT p.id, p.code, p.name, d.name, d.type, d.id, d.code FROM point p LEFT JOIN device d ON p.template_id = d.template_id WHERE p.group_type = ? ORDER BY p.storage_interval ASC"); - int ret; - - ret = sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - sqlite3_free(query); - return 1; - } - - // 绑定参数 - if (SQLITE_OK != sqlite3_bind_int(stmt, 1, kPoint_SOE)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "绑定 group_type 失败: %s", sqlite3_errmsg(config_db)); - sqlite3_finalize(stmt); - return 1; // 返回错误代码 - } - - utarray_new(*faultsDataConfigs, &faults_data_config_icd); - - while ((ret = sqlite3_step(stmt)) == SQLITE_ROW) - { - timed_data_config_t data_info = {0}; - data_info.pointDbId = sqlite3_column_int(stmt, 0); - data_info.pointId = sqlite3_column_int(stmt, 1); - snprintf((char *)data_info.pointName, MAX_POINT_NAME_LEN, "%s", (const char *)sqlite3_column_text(stmt, 2)); - snprintf((char *)data_info.devName, MAX_NAME_BUF_LEN, "%s", (const char *)sqlite3_column_text(stmt, 3)); - data_info.devType = sqlite3_column_int(stmt, 4); - data_info.devDbId = sqlite3_column_int(stmt, 5); - data_info.devId = sqlite3_column_int(stmt, 6); - - utarray_push_back(*faultsDataConfigs, &data_info); - } - - if (ret != SQLITE_DONE) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询失败: %s", sqlite3_errmsg(config_db)); - sqlite3_finalize(stmt); - sqlite3_free(query); - utarray_free(*faultsDataConfigs); - *faultsDataConfigs = NULL; - return 1; - } - - sqlite3_finalize(stmt); - sqlite3_free(query); - return 0; -} - -/***************************************************************************** - * @brief 从数据库获取EMS设备配置信息 - * @param[out] emsDevConfigs: 用于设备配置信息的 UT_array 指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_get_config_db_data(UT_array **emsDevConfigs) -{ - sqlite3_stmt *stmt = NULL; // 预编译语句句柄 - const char *query; // 查询语句 - - utarray_new(*emsDevConfigs, &ems_dev_config_icd); // 创建新的 UT_array 用于存储设备点位信息 - - // 构建查询语句 - query = "SELECT id, type, content " - "FROM ems_device_config WHERE 1=1 "; // 基础查询语句 - - // 添加结果排序 - query = sqlite3_mprintf("%s ORDER BY type ASC", query); // 按 type 升序排序 - - // 准备 SQL 语句 - if (SQLITE_OK != sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - goto error; // 处理错误 - } - - // 执行查询并处理结果 - int step = sqlite3_step(stmt); - while (SQLITE_ROW == step) // 遍历每一行结果 - { - // 从数据库中获取每一列的值 - ems_dev_config_t dev_config = {0}; // 初始化设备配置结构体 - dev_config.dbId = (uint16_t)sqlite3_column_int(stmt, 0); - dev_config.type = (ems_dev_config_type_e)sqlite3_column_int(stmt, 1); - snprintf((char *)dev_config.content, MAX_CONFIG_CONTENT_LEN, "%s", (const char *)sqlite3_column_text(stmt, 2)); - - // 将设备配置信息添加到 UT_array 中 - utarray_push_back(*emsDevConfigs, &dev_config); - - // 继续处理下一行 - step = sqlite3_step(stmt); - } - - // 检查是否完成所有行的处理 - if (SQLITE_DONE != step) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询未完成,错误信息: %s", sqlite3_errmsg(config_db)); - goto error; // 处理错误 - } - - // 清理资源 - sqlite3_finalize(stmt); // 释放预编译语句 - return 0; // 成功返回 - -error: - sqlite3_finalize(stmt); // 确保释放预编译语句 - utarray_free(*emsDevConfigs); // 释放 UT_array - emsDevConfigs = NULL; // 设置为 NULL - return 1; // 返回错误代码 -} - -/***************************************************************************** - * @brief 根据指定配置类型Type从数据库获取 EMS 设备配置信息 - * @param[in] type: 配置类型 - * @param[out] emsDevConfig: 用于存储设备配置信息的指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_get_config_by_type(ems_dev_config_type_e type, ems_dev_config_t *emsDevConfig) -{ - int ret = 0; // 返回代码 - sqlite3_stmt *stmt = NULL; // 预编译语句句柄 - const char *query; // 查询语句 - - // 构建查询语句 - query = "SELECT content " - "FROM ems_device_config WHERE type = ? LIMIT 1"; // 根据 TYPE 查询 - - // 准备 SQL 语句 - if (SQLITE_OK != sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - return 1; // 返回错误代码 - } - - if (SQLITE_OK != sqlite3_bind_int(stmt, 1, (int)type)) // 使用 sqlite3_bind_int - { - KITLOG(LOG_KIT_EN, ERROR_EN, "绑定 `%s` 的参数 type 失败: %s", query, sqlite3_errmsg(config_db)); - sqlite3_finalize(stmt); // 确保释放预编译语句 - return 1; // 返回错误代码 - } - - // 执行查询并处理结果 - int step = sqlite3_step(stmt); - if (SQLITE_ROW == step) // 如果找到结果 - { - // 从数据库中获取每一列的值 - snprintf((char *)emsDevConfig->content, MAX_CONFIG_CONTENT_LEN, "%s", (const char *)sqlite3_column_text(stmt, 0)); - } - else if (SQLITE_DONE == step) // 如果没有找到结果 - { - KITLOG(LOG_KIT_EN, ERROR_EN, "未找到配置类型 Type 为 %d 的设备配置", type); - ret = 1; // 设置返回代码为失败 - } - else - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询未完成,错误信息: %s", sqlite3_errmsg(config_db)); - ret = 1; // 设置返回代码为失败 - } - - // 清理资源 - sqlite3_finalize(stmt); // 释放预编译语句 - return ret; // 返回结果 -} - -/***************************************************************************** - * @brief 根据协议类型获取北向配置信息 - * @param[out] northConfigs: 用于存储北向配置信息的数组, 使用 UT_array 存储 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_get_north_config_arr(UT_array **northConfigs) -{ - int ret = 0; - sqlite3_stmt *stmt = NULL; - const char *query = "SELECT nc.id, nc.protocol_type, nc.config_type " - "FROM north_config nc "; - - // 准备 SQL 语句 - if (SQLITE_OK != sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL)) // config_db: 全局数据库连接 - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - KITPTF(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - return 1; - } - - utarray_new(*northConfigs, &north_config_icd); // 创建新的 UT_array 用于北向信息 - - // 执行查询 - int step = sqlite3_step(stmt); - - while (SQLITE_ROW == step) - { - north_config_t northConfig = {0}; - // 获取北向配置信息 - northConfig.dbId = sqlite3_column_int(stmt, 0); - northConfig.protocolType = (protocol_type_slave_e)sqlite3_column_int(stmt, 1); - northConfig.configType = (north_config_type_e)sqlite3_column_int(stmt, 2); - - // 获取上报下发配置信息 - ret = kit_get_north_config_by_id(sqlite3_column_int(stmt, 0), &northConfig); - if (ret != 0) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "获取上报下发配置信息失败"); - goto error; // 处理错误 - } - - // 将北向配置信息添加到 UT_array 中 - utarray_push_back(*northConfigs, &northConfig); - - step = sqlite3_step(stmt); - } - - // 检查是否完成所有行的处理 - if (SQLITE_DONE != step) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询北向配置信息失败: %s", sqlite3_errmsg(config_db)); - goto error; // 处理错误 - } - - // 清理资源 - sqlite3_finalize(stmt); - return ret; - -error: - // 清理资源 - sqlite3_finalize(stmt); - utarray_free(*northConfigs); // 释放 UT_array - northConfigs = NULL; - return 1; // 返回错误代码 -} - -/***************************************************************************** - * @brief 获取所有削峰填谷的日期配置 - * @param[out] pvDateConfigs: 削峰填谷的日期配置数组, 使用 UT_array 存储 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_get_pv_date_cfg_db_data(UT_array **pvDateConfigs) -{ - int ret = 0; - sqlite3_stmt *stmt = NULL; - // SQL 查询语句,获取 pv_date_config 表中的数据 - const char *query = "SELECT pdc.pv_time_config_id, pdc.start_date, pdc.end_date " - "FROM pv_date_config pdc " - "ORDER BY pdc.start_date"; - - // 创建新的 UT_array 用于存储削峰填谷的日期配置, 使用 pv_date_config_icd 初始化 - utarray_new(*pvDateConfigs, &pv_date_config_icd); - - // 准备 SQL 语句 - if (SQLITE_OK != sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL)) // global_db: 全局数据库连接 - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - return 1; - } - - // 执行查询并处理结果 - int step = sqlite3_step(stmt); // 执行查询 - while (SQLITE_ROW == step) // 遍历每一行结果 - { - // 从数据库中获取每一列的值 - pv_date_config_t pv_date_config_info = {0}; // 削峰填谷的日期配置结构体 - // 获取开始日期和结束日期 - int snprintf_ret1 = snprintf((char *)pv_date_config_info.startDate, sizeof(pv_date_config_info.startDate), "%s", (const char *)sqlite3_column_text(stmt, 1)); - int snprintf_ret2 = snprintf((char *)pv_date_config_info.endDate, sizeof(pv_date_config_info.endDate), "%s", (const char *)sqlite3_column_text(stmt, 2)); - // 检查 snprintf 是否成功 - if (snprintf_ret1 < 0 || snprintf_ret2 < 0) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "格式化日期失败"); - goto error; - } - // 根据 pv_time_config_id 获取时间配置信息 - if (kit_get_pv_time_cfg_db_data(sqlite3_column_int(stmt, 0), &pv_date_config_info) != 0) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "获取时间配置信息失败"); - goto error; - } - // 将设备点位信息添加到 UT_array 中 - utarray_push_back(*pvDateConfigs, &pv_date_config_info); - - // 继续处理下一行 - step = sqlite3_step(stmt); - } - // 检查是否完成所有行的处理 - if (SQLITE_DONE != step) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询未完成,错误信息: %s", sqlite3_errmsg(config_db)); - goto error; // 处理错误 - } - - // 清理资源 - sqlite3_finalize(stmt); // 释放预编译语句 - - return ret; -error: - // 处理查询过程中出现的错误 - sqlite3_finalize(stmt); // 确保释放预编译语句 - utarray_free(*pvDateConfigs); // 释放 UT_array - pvDateConfigs = NULL; // 设置为 NULL - return 1; // 返回错误代码 -} - -/***************************************************************************** - * @brief 根据削峰填谷时间配置的数据库Id获取削峰填谷时间执行配置 - * @param[in] pvTimeCfgDbId: 削峰填谷时间配置的数据库Id - * @param[out] pvDateConfig: 用于存储削峰填谷的日期配置, 包含一个 pv_time_config_t 类型的数组 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_get_pv_time_cfg_db_data(int pvDateCfgDbId, pv_date_config_t *pvDateConfig) -{ - int ret = 0; - sqlite3_stmt *stmt = NULL; - // SQL 查询语句,根据 time_section_config_id 获取 pv_time_exe 表中的数据 - char *query = "SELECT pte.start_time, pte.end_time, pte.power " - "FROM pv_time_exe pte " - "WHERE pte.time_section_config_id = ? " - "ORDER BY pte.start_time"; - - // 准备 SQL 语句 - if (SQLITE_OK != sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL)) // config_db: 全局数据库连接 - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - return 1; - } - - // 绑定参数 - if (SQLITE_OK != sqlite3_bind_int(stmt, 1, pvDateCfgDbId)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "绑定 pvDateCfgDbId 失败: %s", sqlite3_errmsg(config_db)); - sqlite3_finalize(stmt); - return 1; // 返回错误代码 - } - - // 执行查询并处理结果 - int step = sqlite3_step(stmt); // 执行查询 - while (SQLITE_ROW == step) // 遍历每一行结果 - { - pvDateConfig->timeCfgLen++; - // 重新分配内存以存储新的时间配置信息 - pv_time_config_t *temp = (pv_time_config_t *)realloc(pvDateConfig->timeCfgTab, pvDateConfig->timeCfgLen * sizeof(pv_time_config_t)); - if (temp == NULL) - { - // 内存分配失败,记录错误信息并返回 - KITLOG(LOG_KIT_EN, ERROR_EN, "内存分配失败"); - ret = 1; - goto error; - } - pvDateConfig->timeCfgTab = temp; - - // 获取时间配置信息 - pvDateConfig->timeCfgTab[pvDateConfig->timeCfgLen - 1].startTime = sqlite3_column_int(stmt, 0); - pvDateConfig->timeCfgTab[pvDateConfig->timeCfgLen - 1].endTime = sqlite3_column_int(stmt, 1); - // pvDateConfig->timeCfgTab[pvDateConfig->timeCfgLen - 1].workMode = sqlite3_column_int(stmt, 2); - pvDateConfig->timeCfgTab[pvDateConfig->timeCfgLen - 1].power = sqlite3_column_double(stmt, 2); - step = sqlite3_step(stmt); - } - - // 检查查询是否完成 - if (step != SQLITE_DONE) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询削峰填谷时间配置执行信息失败: %s", sqlite3_errmsg(config_db)); - ret = 1; - } - -error: - // 清理资源 - sqlite3_finalize(stmt); - return ret; -} - -/***************************************************************************** - * @brief 设置所有削峰填谷的日期配置 - * @param[out] pvDateTimeConfigs: 削峰填谷的日期配置、时间配置数组, 使用 UT_array 存储 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_set_pv_date_time_cfg(UT_array **pvDateTimeConfigs) -{ - int ret = 0; - sqlite3_stmt* stmt_date = NULL, * stmt_time = NULL, * stmt_exe = NULL; - // SQL 删除语句,删除 pv_date_config 表中的数据 - const char* sql_delete_date = "DELETE FROM pv_date_config"; - // SQL 查询语句,删除 pv_time_config 表中的数据 - const char* sql_delete_time = "DELETE FROM pv_time_config"; - // SQL 查询语句,删除 pv_time_exe 表中的数据 - const char* sql_delete_exe = "DELETE FROM pv_time_exe"; - // SQL 插入语句,插入 pv_date_config 表中的数据 - const char* sql_insert_date = "INSERT INTO pv_date_config(pv_time_config_id, start_date, end_date, remark) VALUES (?, ?, ?, ?)"; - // SQL 插入语句,插入 pv_time_config 表中的数据 - const char* sql_insert_time = "INSERT INTO pv_time_config(name, remark) VALUES (?, ?)"; - // SQL 插入语句,插入 pv_time_exe 表中的数据 - const char* sql_insert_exe = "INSERT INTO pv_time_exe(time_section_config_id, start_time, end_time, power, remark) VALUES (?, ?, ?, ?,?)"; - - pthread_mutex_lock(&config_db_mutex); - - // 开始事务 - ret = sqlite3_exec(config_db, "BEGIN TRANSACTION", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "开启事务失败: %s", sqlite3_errmsg(config_db)); - goto cleanup; - } - - // 清空表数据 - if (sqlite3_exec(config_db, sql_delete_date, NULL, NULL, NULL) != SQLITE_OK || - sqlite3_exec(config_db, sql_delete_time, NULL, NULL, NULL) != SQLITE_OK || - sqlite3_exec(config_db, sql_delete_exe, NULL, NULL, NULL) != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "清空表失败: %s", sqlite3_errmsg(config_db)); - goto cleanup; - } - - // 准备插入语句 - if (sqlite3_prepare_v2(config_db, sql_insert_date, -1, &stmt_date, NULL) != SQLITE_OK || - sqlite3_prepare_v2(config_db, sql_insert_time, -1, &stmt_time, NULL) != SQLITE_OK || - sqlite3_prepare_v2(config_db, sql_insert_exe, -1, &stmt_exe, NULL) != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "预编译插入语句失败: %s", sqlite3_errmsg(config_db)); - goto cleanup; - } - - // 遍历需要插入的数据 - utarray_foreach(*pvDateTimeConfigs, pv_date_config_t *, p_pvDateConfig) - { - char timeConfigName[50]; // 存储时间配置名称 - snprintf(timeConfigName, sizeof(timeConfigName), "%s-%s", p_pvDateConfig->startDate, p_pvDateConfig->endDate); - - // 插入 pv_time_config - sqlite3_bind_text(stmt_time, 1, timeConfigName, -1, SQLITE_STATIC); - if (sqlite3_step(stmt_time) != SQLITE_DONE) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "插入 pv_time_config 表失败: %s", sqlite3_errmsg(config_db)); - goto cleanup; - } - long long timeConfigId = sqlite3_last_insert_rowid(config_db); // 获取最后插入行的 ID - sqlite3_reset(stmt_time); - - // 插入 pv_time_exe - for (int i = 0; i < p_pvDateConfig->timeCfgLen; i++) - { - sqlite3_bind_int64(stmt_exe, 1, timeConfigId); - sqlite3_bind_int(stmt_exe, 2, p_pvDateConfig->timeCfgTab[i].startTime); - sqlite3_bind_int(stmt_exe, 3, p_pvDateConfig->timeCfgTab[i].endTime); - sqlite3_bind_double(stmt_exe, 4, p_pvDateConfig->timeCfgTab[i].power); - - if (sqlite3_step(stmt_exe) != SQLITE_DONE) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "插入 pv_time_exe 表失败: %s", sqlite3_errmsg(config_db)); - goto cleanup; - } - sqlite3_reset(stmt_exe); - } - - // 插入 pv_date_config - sqlite3_bind_int64(stmt_date, 1, timeConfigId); - sqlite3_bind_text(stmt_date, 2, (const char *)p_pvDateConfig->startDate, -1, SQLITE_STATIC); - sqlite3_bind_text(stmt_date, 3, (const char *)p_pvDateConfig->endDate, -1, SQLITE_STATIC); - - if (sqlite3_step(stmt_date) != SQLITE_DONE) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "插入 pv_date_config 表失败: %s", sqlite3_errmsg(config_db)); - goto cleanup; - } - sqlite3_reset(stmt_date); - } - - // 提交事务 - if (sqlite3_exec(config_db, "COMMIT TRANSACTION", NULL, NULL, NULL) != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "提交事务失败: %s", sqlite3_errmsg(config_db)); - goto cleanup; - } - - ret = 0; // 成功 - -cleanup: - if (ret != 0) - { - // 回滚事务 - sqlite3_exec(config_db, "ROLLBACK TRANSACTION", NULL, NULL, NULL); - } - - // 释放资源 - sqlite3_finalize(stmt_date); - sqlite3_finalize(stmt_time); - sqlite3_finalize(stmt_exe); - pthread_mutex_unlock(&config_db_mutex); - - // 释放 UT_array 资源 - if (ret != 0) - { - utarray_free(*pvDateTimeConfigs); - *pvDateTimeConfigs = NULL; - } - - return ret; -} - -/***************************************************************************** - * @brief 从数据库获取EMS拓扑结构信息 - * @param[out] topologys: 用于存储ems拓扑信息结构体的 UT_array 指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_get_topology_db_data(UT_array **topologies) -{ - sqlite3_stmt *stmt = NULL; // 预编译语句句柄 - const char *query; // 查询语句 - - query = "SELECT tpy.id, tpy.parent_id, tpy.menu_tree, tpy.sort_order, " - "CASE " - " WHEN tpy.menu_tree = 0 THEN tpy.name " - " WHEN tpy.menu_tree = 1 THEN dev.name ELSE NULL " - "END AS name, " - "CASE " - " WHEN tpy.menu_tree = 0 THEN NULL " - " WHEN tpy.menu_tree = 1 THEN dev.sn ELSE NULL " - "END AS sn, " - "CASE " - " WHEN tpy.menu_tree = 0 THEN NULL " - " WHEN tpy.menu_tree = 1 THEN dev.type ELSE NULL " - "END AS dev_type " - "FROM " - "topology tpy " - "LEFT JOIN device dev ON tpy.dev_id = dev.id"; - - utarray_new(*topologies, &topology_icd); // 创建新的 UT_array 用于存储ems拓扑信息 - - // 准备 SQL 语句 - if (SQLITE_OK != sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - sqlite3_finalize(stmt); // 确保释放预编译语句 - return 1; // 返回错误代码 - } - - // 执行查询并处理结果 - int step = sqlite3_step(stmt); - while (SQLITE_ROW == step) // 遍历每一行结果 - { - // 从数据库中获取每一列的值 - topology_t topology_info = {0}; // 初始化拓扑结构的结构体 - topology_info.dbId = sqlite3_column_int(stmt, 0); - if (sqlite3_column_type(stmt, 1) == SQLITE_NULL) - { - topology_info.parentId = -999; - } - else - { - topology_info.parentId = sqlite3_column_int(stmt, 1); - } - topology_info.menuTree = (menu_tree_e)sqlite3_column_int(stmt, 2); - topology_info.sortOrder = sqlite3_column_int(stmt, 3); - const char *name = (const char *)sqlite3_column_text(stmt, 4); - snprintf((char *)topology_info.name, MAX_NAME_BUF_LEN, "%s", name ? name : ""); - const char *sn = (const char *)sqlite3_column_text(stmt, 5); - snprintf((char *)topology_info.sn, MAX_CODE_BUF_LEN, "%s", sn ? sn : ""); - topology_info.devType = (dev_type_e)sqlite3_column_int(stmt, 6); - - // 将设备点位信息添加到 UT_array 中 - utarray_push_back(*topologies, &topology_info); - - // 继续处理下一行 - step = sqlite3_step(stmt); - } - - // 检查是否完成所有行的处理 - if (SQLITE_DONE != step) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询未完成,错误信息: %s", sqlite3_errmsg(config_db)); - goto error; // 处理错误 - } - - // 清理资源 - sqlite3_finalize(stmt); // 释放预编译语句 - return 0; // 成功返回 - -error: - sqlite3_finalize(stmt); // 确保释放预编译语句 - utarray_free(*topologies); // 释放 UT_array - topologies = NULL; // 设置为 NULL - return 1; // 返回错误代码 -} - -/***************************************************************************** - * @brief 从数据库里获取保护算法的控制参数 - * @param[in] p_protectAlgo:保护算法结构体指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_get_protect_algorithm(protect_algorithm_t *p_protectAlgo) -{ - sqlite3_stmt *stmt = NULL; - char *query = "SELECT transformer_capacity, ol_warn_limit_value, ol_shutdown_value, " - "max_power, demand_switch, target_demand, de_warn_limit_value, " - "de_shutdown_value, backflow_switch, bf_warn_limit_value, " - "bf_shutdown_value, soc_forbid_chg, soc_forbid_dischg, " - "id " - "FROM protect_algorithm " - "ORDER BY id DESC " - "LIMIT 1"; - - if (SQLITE_OK != sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - return 1; // 返回错误代码 - } - - int step = sqlite3_step(stmt); - - if (SQLITE_ROW == step) - { - p_protectAlgo->transCapacity = sqlite3_column_double(stmt, 0); // 变压器总容量(KW) - p_protectAlgo->olWarnLimitVal = sqlite3_column_double(stmt, 1); // 过载预警限流值(KW) - p_protectAlgo->olShutdownVal = sqlite3_column_double(stmt, 2); // 过载关机值(KW) - p_protectAlgo->maxPower = sqlite3_column_double(stmt, 3); // 充放电功率上限(KW) - p_protectAlgo->demandSwitch = sqlite3_column_int(stmt, 4); // 防需量开关 - p_protectAlgo->targetDemand = sqlite3_column_double(stmt, 5); // 目标需量 - p_protectAlgo->deWarnLimitVal = sqlite3_column_double(stmt, 6); // 需量预警限流值(KW) - p_protectAlgo->deShutdownVal = sqlite3_column_double(stmt, 7); // 需量关机值(KW) - p_protectAlgo->backflowSwitch = sqlite3_column_int(stmt, 8); // 防逆流开关 - p_protectAlgo->bfWarnLimitVal = sqlite3_column_double(stmt, 9); // 防逆流预警限流值(KW) - p_protectAlgo->bfShutdownVal = sqlite3_column_double(stmt, 10); // 防逆流关机值(KW) - p_protectAlgo->socForbidChg = sqlite3_column_int(stmt, 11); // 禁充SOC [55%-100%] - p_protectAlgo->socForbidDischg = sqlite3_column_int(stmt, 12); // 禁放SOC [0%-45%] - p_protectAlgo->dbId = sqlite3_column_int(stmt, 13); // 数据库Id - } - else - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询失败或者无数据,错误码: %d, 错误信息: %s", step, sqlite3_errmsg(config_db)); - sqlite3_finalize(stmt); - return 1; // 返回错误代码 - } - - sqlite3_finalize(stmt); - return 0; // 返回成功代码 -} - -/***************************************************************************** - * @brief 更新数据库的保护算法数据 - * @param[in] p_protectAlgo:保护算法结构体指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_set_protect_algorithm(protect_algorithm_t *p_protectAlgo) -{ - int ret = 0; - sqlite3_stmt *stmt = NULL; - char *sql = sqlite3_mprintf( - "UPDATE protect_algorithm SET transformer_capacity = ?, ol_warn_limit_value = ?, ol_shutdown_value = ?, " - "max_power = ?, demand_switch = ?, target_demand = ?, de_warn_limit_value = ?, " - "de_shutdown_value = ?, backflow_switch = ?, bf_warn_limit_value = ?, " - "bf_shutdown_value = ?, soc_forbid_chg = ?, soc_forbid_dischg = ? WHERE id = ?"); - - if (SQLITE_OK != sqlite3_prepare_v2(config_db, sql, -1, &stmt, NULL)) - { - fprintf(stderr, "SQL语句预编译失败: %s\n", sqlite3_errmsg(config_db)); - sqlite3_free(sql); - return 1; - } - - sqlite3_bind_double(stmt, 1, p_protectAlgo->transCapacity); - sqlite3_bind_double(stmt, 2, p_protectAlgo->olWarnLimitVal); - sqlite3_bind_double(stmt, 3, p_protectAlgo->olShutdownVal); - sqlite3_bind_double(stmt, 4, p_protectAlgo->maxPower); - sqlite3_bind_int(stmt, 5, p_protectAlgo->demandSwitch); - sqlite3_bind_double(stmt, 6, p_protectAlgo->targetDemand); - sqlite3_bind_double(stmt, 7, p_protectAlgo->deWarnLimitVal); - sqlite3_bind_double(stmt, 8, p_protectAlgo->deShutdownVal); - sqlite3_bind_int(stmt, 9, p_protectAlgo->backflowSwitch); - sqlite3_bind_double(stmt, 10, p_protectAlgo->bfWarnLimitVal); - sqlite3_bind_double(stmt, 11, p_protectAlgo->bfShutdownVal); - sqlite3_bind_int(stmt, 12, p_protectAlgo->socForbidChg); - sqlite3_bind_int(stmt, 13, p_protectAlgo->socForbidDischg); - sqlite3_bind_int(stmt, 14, p_protectAlgo->dbId); - - pthread_mutex_lock(&config_db_mutex); - - int step = sqlite3_step(stmt); - if (step != SQLITE_DONE) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL语句执行失败"); - if (step == SQLITE_ERROR) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "%s", sqlite3_errmsg(config_db)); - } - else - { - KITLOG(LOG_KIT_EN, ERROR_EN, "错误代码: %d", step); - } - ret = 1; - goto cleanup; - } - - if (sqlite3_changes(config_db) == 0) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "没有更新任何行。请检查 dbId 是否正确"); - ret = 1; - goto cleanup; - } - -cleanup: - pthread_mutex_unlock(&config_db_mutex); - sqlite3_finalize(stmt); - sqlite3_free(sql); - return ret; -} - -/***************************************************************************** - * @brief 从数据库里获取调试模式算法的控制参数 - * @param[in] p_debugAlgo:调试模式算法结构体指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_get_debug_algorithm(debug_algorithm_t *p_debugAlgo) -{ - sqlite3_stmt *stmt = NULL; - char *query = "SELECT active_power, reactive_power, pcs_switch, id, protect_switch " - "FROM debug_algorithm " - "ORDER BY id DESC " - "LIMIT 1"; - - if (SQLITE_OK != sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - return 1; // 返回错误代码 - } - - int step = sqlite3_step(stmt); - - if (SQLITE_ROW == step) - { - p_debugAlgo->activePower = sqlite3_column_double(stmt, 0); // 目标有功功率(KW) - p_debugAlgo->reactivePower = sqlite3_column_double(stmt, 1); // 目标无功功率(KW) - p_debugAlgo->pcsSwitch = sqlite3_column_int(stmt, 2); // 充放电开关 - p_debugAlgo->dbId = sqlite3_column_int(stmt, 3); // 数据库Id - p_debugAlgo->protectSwitch = sqlite3_column_int(stmt, 4); // 保护算法开关 - } - else - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询失败,错误码: %d, 错误信息: %s", step, sqlite3_errmsg(config_db)); - sqlite3_finalize(stmt); - return 1; // 返回错误代码 - } - - sqlite3_finalize(stmt); - return 0; // 返回成功代码 -} - -/***************************************************************************** - * @brief 更新数据库的调试模式算法数据 - * @param[in] p_debugAlgo:调试模式算法结构体指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_set_debug_algorithm(debug_algorithm_t *p_debugAlgo) -{ - int ret = 0; - sqlite3_stmt *stmt = NULL; - const char *sql = sqlite3_mprintf("UPDATE debug_algorithm SET active_power = ?, reactive_power = ?, pcs_switch = ?, protect_switch = ? WHERE id = ? "); - - if (SQLITE_OK != sqlite3_prepare_v2(config_db, sql, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL语句预编译失败: %s", sqlite3_errmsg(config_db)); - return 1; - } - - sqlite3_bind_double(stmt, 1, p_debugAlgo->activePower); - sqlite3_bind_double(stmt, 2, p_debugAlgo->reactivePower); - sqlite3_bind_int(stmt, 3, p_debugAlgo->pcsSwitch); - sqlite3_bind_int(stmt, 4, p_debugAlgo->protectSwitch); - sqlite3_bind_int(stmt, 5, p_debugAlgo->dbId); - - pthread_mutex_lock(&config_db_mutex); // 加锁,确保单线程访问 - int step = sqlite3_step(stmt); - if (step != SQLITE_DONE) - { - if (step == SQLITE_ERROR) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL语句执行失败: %s", sqlite3_errmsg(config_db)); - } - else if (step == SQLITE_ROW) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "UPDATE操作中出现意外的SQLITE_ROW返回值"); - } - else - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL更新失败,错误代码: %d", step); - } - pthread_mutex_unlock(&config_db_mutex); // 解锁 - sqlite3_finalize(stmt); - return 1; - } - - // 检查是否实际更新了任何行。SQLITE_DONE 并不保证这一点。 - if (sqlite3_changes(config_db) == 0) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "没有更新任何行。请检查 dbId 是否正确。"); - pthread_mutex_unlock(&config_db_mutex); // 解锁 - return 1; - } - - pthread_mutex_unlock(&config_db_mutex); // 解锁 - sqlite3_finalize(stmt); - return ret; -} - -/***************************************************************************** - * @brief 从数据库查询功率分配数据 - * @param[in] p_allocatePower:功率分配的指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_get_allocate_power(allocate_power_t *p_allocatePower) -{ - sqlite3_stmt *stmt = NULL; - char *query = sqlite3_mprintf("SELECT pcs_num, chg_direction, id, allocate_mode FROM allocate_power ORDER BY id DESC LIMIT 1"); - - if (query == NULL) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "内存分配失败"); - return 1; - } - - if (SQLITE_OK != sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - sqlite3_free(query); - return 1; // 返回错误代码 - } - - int step = sqlite3_step(stmt); - - if (step == SQLITE_ROW) - { - p_allocatePower->pcsNum = sqlite3_column_int(stmt, 0); // pcs数量 - p_allocatePower->chgDirection = sqlite3_column_int(stmt, 1); // 充放电方向:1(正放 负充) -1(正充 负放) - p_allocatePower->dbId = sqlite3_column_int(stmt, 2); // 数据库Id - p_allocatePower->allocateMode = sqlite3_column_int(stmt, 3); // 下发功率开关:总功率(0),分相功率(1) - } - else - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询失败或者无数据,错误码: %d, 错误信息: %s", step, sqlite3_errmsg(config_db)); - } - - sqlite3_finalize(stmt); - sqlite3_free(query); - return (step == SQLITE_ROW) ? 0 : 1; // 返回成功或失败代码 -} - -/***************************************************************************** - * @brief 更新数据库的功率分配数据 - * @param[in] p_allocatePower:功率分配的指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_set_allocate_power(allocate_power_t *p_allocatePower) -{ - int ret = 0; - sqlite3_stmt *stmt = NULL; - const char *sql = sqlite3_mprintf("UPDATE allocate_power SET pcs_num = ?, chg_direction = ?, allocate_mode = ? WHERE id = ? "); - - if (SQLITE_OK != sqlite3_prepare_v2(config_db, sql, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL语句预编译失败: %s", sqlite3_errmsg(config_db)); - return 1; - } - - sqlite3_bind_int(stmt, 1, p_allocatePower->pcsNum); - sqlite3_bind_int(stmt, 2, p_allocatePower->chgDirection); - sqlite3_bind_int(stmt, 3, p_allocatePower->allocateMode); - sqlite3_bind_int(stmt, 4, p_allocatePower->dbId); - - pthread_mutex_lock(&config_db_mutex); // 加锁,确保单线程访问 - int step = sqlite3_step(stmt); - if (step != SQLITE_DONE) - { - if (step == SQLITE_ERROR) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL语句执行失败: %s", sqlite3_errmsg(config_db)); - } - else if (step == SQLITE_ROW) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "UPDATE操作中出现意外的SQLITE_ROW返回值"); - } - else - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL更新失败,错误代码: %d", step); - } - pthread_mutex_unlock(&config_db_mutex); // 解锁 - sqlite3_finalize(stmt); - return 1; - } - - // 检查是否实际更新了任何行。SQLITE_DONE 并不保证这一点。 - if (sqlite3_changes(config_db) == 0) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "没有更新任何行。请检查 dbId 是否正确。"); - pthread_mutex_unlock(&config_db_mutex); // 解锁 - return 1; - } - - pthread_mutex_unlock(&config_db_mutex); // 解锁 - sqlite3_finalize(stmt); - return ret; -} - -/***************************************************************************** - * @brief 从数据库查询工作模式数据 - * @param[in] p_workModeSet:工作模式的指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_get_work_mode_set(work_mode_set_t *p_workModeSet) -{ - sqlite3_stmt *stmt = NULL; - char *query = sqlite3_mprintf("SELECT work_mode, id FROM work_mode_set DESC LIMIT 1"); - - if (query == NULL) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "内存分配失败"); - return 1; - } - - if (SQLITE_OK != sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - sqlite3_free(query); - return 1; // 返回错误代码 - } - - int step = sqlite3_step(stmt); - - if (step == SQLITE_ROW) - { - p_workModeSet->workMode = (work_mode_e)sqlite3_column_int(stmt, 0); // 工作模式 - p_workModeSet->dbId = sqlite3_column_int(stmt, 1); // 数据库Id - } - else - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询失败,错误码: %d, 错误信息: %s", step, sqlite3_errmsg(config_db)); - } - - sqlite3_finalize(stmt); - sqlite3_free(query); - return (step == SQLITE_ROW) ? 0 : 1; // 返回成功或失败代码 -} - -/***************************************************************************** - * @brief 更新数据库的工作模式数据 - * @param[in] p_workModeSet:工作模式的指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_set_work_mode(work_mode_set_t *p_workModeSet) -{ - int ret = 0; - sqlite3_stmt *stmt = NULL; - const char *sql = sqlite3_mprintf("UPDATE work_mode_set SET work_mode = ? WHERE id = ? "); - - if (SQLITE_OK != sqlite3_prepare_v2(config_db, sql, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL语句预编译失败: %s", sqlite3_errmsg(config_db)); - return 1; - } - - sqlite3_bind_int(stmt, 1, (uint8_t)p_workModeSet->workMode); - sqlite3_bind_int(stmt, 2, p_workModeSet->dbId); - - pthread_mutex_lock(&config_db_mutex); // 加锁,确保单线程访问 - int step = sqlite3_step(stmt); - if (step != SQLITE_DONE) - { - if (step == SQLITE_ERROR) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL语句执行失败: %s", sqlite3_errmsg(config_db)); - } - else if (step == SQLITE_ROW) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "UPDATE操作中出现意外的SQLITE_ROW返回值"); - } - else - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL更新失败,错误代码: %d", step); - } - pthread_mutex_unlock(&config_db_mutex); // 解锁 - sqlite3_finalize(stmt); - return 1; - } - - // 检查是否实际更新了任何行。SQLITE_DONE 并不保证这一点。 - if (sqlite3_changes(config_db) == 0) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "没有更新任何行。请检查 dbId 是否正确。"); - pthread_mutex_unlock(&config_db_mutex); // 解锁 - return 1; - } - - pthread_mutex_unlock(&config_db_mutex); // 解锁 - sqlite3_finalize(stmt); - return ret; -} - -/***************************************************************************** - * @brief 从数据库查询DIDO逻辑设置数据 - * @param[in] diDoSets:DIDO逻辑设置结构体的 UT_array 指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_get_di_do_set_arr(UT_array **diDoSets) -{ - sqlite3_stmt *stmt = NULL; // 预编译语句句柄 - const char *query; // 查询语句 - - query = "SELECT seq, type, cabinet_code, strategy_seq " - "FROM di_do_set "; - - // 准备 SQL 语句 - if (SQLITE_OK != sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - return 1; - } - - utarray_new(*diDoSets, &di_do_logic_set_icd); // 创建新的 UT_array 用于存储DIDO逻辑设置信息 - - // 执行查询并处理结果 - int step = sqlite3_step(stmt); - while (SQLITE_ROW == step) // 遍历每一行结果 - { - // 从数据库中获取每一列的值 - di_do_logic_set_t di_do_set_logic_info = {0}; // 初始化DIDO逻辑设置的结构体 - di_do_set_logic_info.dIDOseq = sqlite3_column_int(stmt, 0); - di_do_set_logic_info.dIDOType = (di_do_type_e)sqlite3_column_int(stmt, 1); - di_do_set_logic_info.cabinetCode = sqlite3_column_int(stmt, 2); - if (di_do_set_logic_info.dIDOType == kDi) - { - di_do_set_logic_info.strategySeqDi = (diFuc_e)sqlite3_column_int(stmt, 3); - } - else - { - di_do_set_logic_info.strategySeqDo = (doFuc_e)sqlite3_column_int(stmt, 3); - } - - // 将DIDO逻辑设置添加到 UT_array 中 - utarray_push_back(*diDoSets, &di_do_set_logic_info); - - // 继续处理下一行 - step = sqlite3_step(stmt); - } - - // 检查是否完成所有行的处理 - if (SQLITE_DONE != step) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询未完成,错误信息: %s", sqlite3_errmsg(config_db)); - goto error; // 处理错误 - } - - // 清理资源 - sqlite3_finalize(stmt); // 释放预编译语句 - return 0; // 成功返回 - -error: - sqlite3_finalize(stmt); // 确保释放预编译语句 - utarray_free(*diDoSets); // 释放 UT_array - diDoSets = NULL; // 设置为 NULL - return 1; // 返回错误代码 -} - -/***************************************************************************** - * @brief 从数据库里获取温控算法的控制参数 - * @param[in] p_tempCtrlAlgo:温控算法结构体指针 - * @return 0-成功,非0-失败(具体错误码可通过日志或其他机制获取) - *****************************************************************************/ -int kit_get_temp_ctrl_algorithm(temp_ctrl_algorithm_t *p_tempCtrlAlgo) -{ - int ret = 0; - sqlite3_stmt *stmt = NULL; - - if (p_tempCtrlAlgo == NULL) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "传入的结构体指针为空"); - return 1; // 返回错误代码 - } - - char *query = "SELECT mod, work_cool_trig_temp, work_cool_hys, " - "work_heat_trig_temp, work_heat_hys, standby_cool_trig_temp, " - "standby_cool_hys, standby_heat_trig_temp, standby_heat_hys, " - "standby_max_limit, standby_min_limit, standby_maxback_limit, " - "standby_minback_limit, temp_cmd_normal, temp_cmd_heat, temp_cmd_cold, " - "temp_cmd_open, temp_cmd_close, id " - "FROM temp_ctrl_algorithm " - "ORDER BY id DESC " - "LIMIT 1"; - - int rc = sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL); - if (rc != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - ret = rc; // 记录sqlite3的错误码 - goto cleanup; - } - - int step = sqlite3_step(stmt); - - if (step == SQLITE_ROW) - { - p_tempCtrlAlgo->mod = (temperature_ctrl_mod_e)sqlite3_column_int(stmt, 0); - p_tempCtrlAlgo->workCoolTrigTemp = (float)sqlite3_column_double(stmt, 1); - p_tempCtrlAlgo->workCoolHys = (float)sqlite3_column_double(stmt, 2); - p_tempCtrlAlgo->workHeatTrigTemp = (float)sqlite3_column_double(stmt, 3); - p_tempCtrlAlgo->workHeatHys = (float)sqlite3_column_double(stmt, 4); - p_tempCtrlAlgo->standbyCoolTrigTemp = (float)sqlite3_column_double(stmt, 5); - p_tempCtrlAlgo->standbyCoolHys = (float)sqlite3_column_double(stmt, 6); - p_tempCtrlAlgo->standbyHeatTrigTemp = (float)sqlite3_column_double(stmt, 7); - p_tempCtrlAlgo->standbyHeatHys = (float)sqlite3_column_double(stmt, 8); - p_tempCtrlAlgo->standbyMaxLimit = (float)sqlite3_column_double(stmt, 9); - p_tempCtrlAlgo->standbyMinLimit = (float)sqlite3_column_double(stmt, 10); - p_tempCtrlAlgo->standbyMaxbackLimit = (float)sqlite3_column_double(stmt, 11); - p_tempCtrlAlgo->standbyMinbackLimit = (float)sqlite3_column_double(stmt, 12); - p_tempCtrlAlgo->tempCmdNormal = sqlite3_column_int(stmt, 13); - p_tempCtrlAlgo->tempCmdHeat = sqlite3_column_int(stmt, 14); - p_tempCtrlAlgo->tempCmdCold = sqlite3_column_int(stmt, 15); - p_tempCtrlAlgo->tempCmdOpen = sqlite3_column_int(stmt, 16); - p_tempCtrlAlgo->tempCmdClose = sqlite3_column_int(stmt, 17); - p_tempCtrlAlgo->dbId = sqlite3_column_int64(stmt, 18); - } - else - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询失败,错误码: %d, 错误信息: %s", step, sqlite3_errmsg(config_db)); - ret = step; // 记录sqlite3的错误码 - } - -cleanup: - sqlite3_finalize(stmt); - return ret; -} - -/***************************************************************************** - * @brief 更新数据库的温控算法数据 - * @param[in] p_tempCtrlAlgo:温控算法结构体指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_set_temp_ctrl_algorithm(temp_ctrl_algorithm_t *p_tempCtrlAlgo) -{ - int ret = 0; - sqlite3_stmt *stmt = NULL; - // 使用互斥锁保护数据库访问,防止多线程竞争 - pthread_mutex_lock(&config_db_mutex); - - // SQL语句,使用占位符防止SQL注入,并根据实际情况选择合适的更新策略 (UPDATE or INSERT) - char *query = "UPDATE temp_ctrl_algorithm SET mod = ?, work_cool_trig_temp = ?, work_cool_hys = ?, " - "work_heat_trig_temp = ?, work_heat_hys = ?, standby_cool_trig_temp = ?, " - "standby_cool_hys = ?, standby_heat_trig_temp = ?, standby_heat_hys = ?, " - "standby_max_limit = ?, standby_min_limit = ?, standby_maxback_limit = ?, " - "standby_minback_limit = ?, temp_cmd_normal = ?, temp_cmd_heat = ?, temp_cmd_cold = ?, " - "temp_cmd_open = ?, temp_cmd_close = ? " - "WHERE id = ?;"; // 更新最新的记录 - - // 准备SQL语句 - int rc = sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL); - if (rc != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备SQL语句失败: %s", sqlite3_errmsg(config_db)); - ret = 1; - goto unlock_and_return; - } - - // 绑定参数 - ret = sqlite3_bind_int(stmt, 1, p_tempCtrlAlgo->mod); // 温度控制模式 - if (ret != SQLITE_OK) - goto error; - ret = sqlite3_bind_double(stmt, 2, p_tempCtrlAlgo->workCoolTrigTemp); // 制冷触发温度 - if (ret != SQLITE_OK) - goto error; - ret = sqlite3_bind_double(stmt, 3, p_tempCtrlAlgo->workCoolHys); // 制冷回差 - if (ret != SQLITE_OK) - goto error; - ret = sqlite3_bind_double(stmt, 4, p_tempCtrlAlgo->workHeatTrigTemp); // 制热触发温度 - if (ret != SQLITE_OK) - goto error; - ret = sqlite3_bind_double(stmt, 5, p_tempCtrlAlgo->workHeatHys); // 制热回差 - if (ret != SQLITE_OK) - goto error; - ret = sqlite3_bind_double(stmt, 6, p_tempCtrlAlgo->standbyCoolTrigTemp); // 制冷触发温度 - if (ret != SQLITE_OK) - goto error; - ret = sqlite3_bind_double(stmt, 7, p_tempCtrlAlgo->standbyCoolHys); // 制冷回差 - if (ret != SQLITE_OK) - goto error; - ret = sqlite3_bind_double(stmt, 8, p_tempCtrlAlgo->standbyHeatTrigTemp); // 制热触发温度 - if (ret != SQLITE_OK) - goto error; - ret = sqlite3_bind_double(stmt, 9, p_tempCtrlAlgo->standbyHeatHys); // 制热回差 - if (ret != SQLITE_OK) - goto error; - ret = sqlite3_bind_double(stmt, 10, p_tempCtrlAlgo->standbyMaxLimit); // 开启自循环高温 - if (ret != SQLITE_OK) - goto error; - ret = sqlite3_bind_double(stmt, 11, p_tempCtrlAlgo->standbyMinLimit); // 开启自循环低温 - if (ret != SQLITE_OK) - goto error; - ret = sqlite3_bind_double(stmt, 12, p_tempCtrlAlgo->standbyMaxbackLimit); // 自循环高温回温 - if (ret != SQLITE_OK) - goto error; - ret = sqlite3_bind_double(stmt, 13, p_tempCtrlAlgo->standbyMinbackLimit); // 自循环低温回温 - if (ret != SQLITE_OK) - goto error; - ret = sqlite3_bind_int(stmt, 14, p_tempCtrlAlgo->tempCmdNormal); // 循环控制字 - if (ret != SQLITE_OK) - goto error; - ret = sqlite3_bind_int(stmt, 15, p_tempCtrlAlgo->tempCmdHeat); // 制热控制字 - if (ret != SQLITE_OK) - goto error; - ret = sqlite3_bind_int(stmt, 16, p_tempCtrlAlgo->tempCmdCold); // 制冷控制字 - if (ret != SQLITE_OK) - goto error; - ret = sqlite3_bind_int(stmt, 17, p_tempCtrlAlgo->tempCmdOpen); // 开控制字 - if (ret != SQLITE_OK) - goto error; - ret = sqlite3_bind_int(stmt, 18, p_tempCtrlAlgo->tempCmdClose); // 关控制字 - if (ret != SQLITE_OK) - goto error; - ret = sqlite3_bind_int64(stmt, 19, p_tempCtrlAlgo->dbId); // 数据库Id - if (ret != SQLITE_OK) - goto error; - - // 执行SQL语句 - ret = sqlite3_step(stmt); - if (ret != SQLITE_DONE) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "执行SQL语句失败: %s", sqlite3_errmsg(config_db)); - goto error; - } - - // 检查是否实际更新了任何行 - if (sqlite3_changes(config_db) == 0) - { - KITLOG(LOG_KIT_EN, WARN_EN, "没有更新任何行。请检查数据是否存在。"); - ret = 1; - } - - sqlite3_finalize(stmt); - goto unlock_and_return; - -error: - sqlite3_finalize(stmt); - ret = 1; - -unlock_and_return: - pthread_mutex_unlock(&config_db_mutex); // 解锁 - return ret; -} - -/***************************************************************************** - * @brief 从数据库获取高级设置 - * @param[out] advancedSettings: 用于存储高级设置的数据 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_get_advanced_setting(UT_array **advancedSettings) -{ - sqlite3_stmt *stmt = NULL; - char *query = sqlite3_mprintf("SELECT key, value FROM advanced_setting ORDER BY key ASC"); - int ret; - - ret = sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - sqlite3_free(query); - return 1; - } - - utarray_new(*advancedSettings, &advanced_setting_icd); - - while ((ret = sqlite3_step(stmt)) == SQLITE_ROW) - { - advanced_setting_t setting_info = {0}; - snprintf((char *)setting_info.key, MAX_KEY_LEN, "%s", (const char *)sqlite3_column_text(stmt, 0)); - snprintf((char *)setting_info.value, MAX_VALUE_LEN, "%s", (const char *)sqlite3_column_text(stmt, 1)); - utarray_push_back(*advancedSettings, &setting_info); - } - - if (ret != SQLITE_DONE) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询失败: %s", sqlite3_errmsg(config_db)); - sqlite3_finalize(stmt); - sqlite3_free(query); - utarray_free(*advancedSettings); - *advancedSettings = NULL; - return 1; - } - - sqlite3_finalize(stmt); - sqlite3_free(query); - return 0; -} - -/***************************************************************************** - * @brief 从数据库查询升级记录数据 - * @param[in] p_upgradeRecord:升级记录的指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_get_upgrade_record(upgrade_record_t *p_upgradeRecord) -{ - sqlite3_stmt *stmt = NULL; - char *query = sqlite3_mprintf("SELECT id, path FROM upgrade_record Where status = 0 LIMIT 1"); - - if (query == NULL) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "内存分配失败"); - return 1; - } - - if (SQLITE_OK != sqlite3_prepare_v2(config_db, query, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "准备查询 `%s` 失败: %s", query, sqlite3_errmsg(config_db)); - sqlite3_free(query); - return 1; // 返回错误代码 - } - - int step = sqlite3_step(stmt); - - if (step == SQLITE_ROW) - { - p_upgradeRecord->dbId = sqlite3_column_int(stmt, 0); // 数据库Id - snprintf((char *)p_upgradeRecord->path, MAX_UPGRADE_PATH_LEN, "%s", sqlite3_column_text(stmt, 1)); // 升级包文件路径 - } - else - { - KITLOG(LOG_KIT_EN, ERROR_EN, "查询失败,错误码: %d, 错误信息: %s", step, sqlite3_errmsg(config_db)); - } - - sqlite3_finalize(stmt); - sqlite3_free(query); - return (step == SQLITE_ROW) ? 0 : 1; // 返回成功或失败代码 -} - -/***************************************************************************** - * @brief 更新数据库的升级记录数据 - * @param[in] p_upgradeRecord:升级记录的指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_update_upgrade_record(upgrade_record_t *p_upgradeRecord) -{ - int ret = 0; - sqlite3_stmt *stmt = NULL; - const char *sql = sqlite3_mprintf("UPDATE upgrade_record SET status = ?, err_msg = ? WHERE id = ? "); - - if (SQLITE_OK != sqlite3_prepare_v2(config_db, sql, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL语句预编译失败: %s", sqlite3_errmsg(config_db)); - return 1; - } - - sqlite3_bind_int(stmt, 1, (uint8_t)p_upgradeRecord->status); - sqlite3_bind_text(stmt, 2, (const char *)p_upgradeRecord->errMsg, -1, SQLITE_STATIC); - sqlite3_bind_int(stmt, 3, p_upgradeRecord->dbId); - - pthread_mutex_lock(&config_db_mutex); // 加锁,确保单线程访问 - int step = sqlite3_step(stmt); - if (step != SQLITE_DONE) - { - if (step == SQLITE_ERROR) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL语句执行失败: %s", sqlite3_errmsg(config_db)); - } - else if (step == SQLITE_ROW) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "UPDATE操作中出现意外的SQLITE_ROW返回值"); - } - else - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL更新失败,错误代码: %d", step); - } - pthread_mutex_unlock(&config_db_mutex); // 解锁 - sqlite3_finalize(stmt); - return 1; - } - - // 检查是否实际更新了任何行。SQLITE_DONE 并不保证这一点。 - if (sqlite3_changes(config_db) == 0) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "没有更新任何行。请检查 dbId 是否正确。"); - pthread_mutex_unlock(&config_db_mutex); // 解锁 - return 1; - } - - pthread_mutex_unlock(&config_db_mutex); // 解锁 - sqlite3_finalize(stmt); - return ret; -} - -/* ############################################################################### 业务数据库操作 ############################################################################### */ - -/***************************************************************************** - * @brief 批量插入时序数据存储 - * @param[in] timedDatas: 用于存储备份数据的 UT_array 指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_insert_timed_data(UT_array *timedDatas) -{ - sqlite3_stmt *stmt = NULL; // 预编译语句句柄 - const char *sql = "INSERT INTO timed_data_storage (dev_type, dev_id, point_id, timed_value, storage_interval, created_time) VALUES (?, ?, ?, ?, ?, strftime('%Y-%m-%d %H:%M:%S', 'now'))"; - int ret = 0; - int total_count = utarray_len(timedDatas); // 总记录数 - int batch_size = 100; // 每批插入的条数 - int i; - - pthread_mutex_lock(&business_db_mutex); // 加锁,确保单线程访问 - // 开始事务 - ret = sqlite3_exec(business_db, "BEGIN TRANSACTION;", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "无法开始事务: %s", sqlite3_errmsg(business_db)); - return 1; - } - - // 预编译SQL语句 - ret = sqlite3_prepare_v2(business_db, sql, -1, &stmt, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL预编译失败: %s", sqlite3_errmsg(business_db)); - return 1; - } - - // 批量插入 - for (i = 0; i < total_count; i++) - { - timed_data_storage_t *timedData = (timed_data_storage_t *)utarray_eltptr(timedDatas, i); - - // 绑定参数 - sqlite3_bind_int(stmt, 1, timedData->devType); - sqlite3_bind_int(stmt, 2, timedData->devDbId); - sqlite3_bind_int(stmt, 3, timedData->pointDbId); - // sqlite3_bind_text(stmt, 4, (const char *)timedData->devName, -1, SQLITE_STATIC); - // sqlite3_bind_text(stmt, 5, (const char *)timedData->pointName, -1, SQLITE_STATIC); - sqlite3_bind_double(stmt, 4, timedData->timedValue); - sqlite3_bind_int(stmt, 5, timedData->storageInterval); - - // 执行插入 - ret = sqlite3_step(stmt); - if (ret != SQLITE_DONE) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "插入数据失败: %s", sqlite3_errmsg(business_db)); - sqlite3_finalize(stmt); - return 1; - } - - // 重置语句,以便下次使用 - sqlite3_reset(stmt); - - // 每 batch_size 条记录提交一次事务 - if ((i + 1) % batch_size == 0) - { - ret = sqlite3_exec(business_db, "COMMIT;", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "提交事务失败: %s", sqlite3_errmsg(business_db)); - sqlite3_finalize(stmt); - return 1; - } - // 重新开始事务 - ret = sqlite3_exec(business_db, "BEGIN TRANSACTION;", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "无法重新开始事务: %s", sqlite3_errmsg(business_db)); - sqlite3_finalize(stmt); - return 1; - } - } - } - - // 提交剩余数据 - ret = sqlite3_exec(business_db, "COMMIT;", NULL, NULL, NULL); - pthread_mutex_unlock(&business_db_mutex); // 解锁 - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "提交事务失败: %s", sqlite3_errmsg(business_db)); - sqlite3_finalize(stmt); - return 1; - } - - // 释放预编译语句 - sqlite3_finalize(stmt); - utarray_free(timedDatas); - - return 0; // 成功 -} - -/***************************************************************************** - * @brief 根据日期时间条件,删除该日期时间之前timed_data_storage的数据 - * @param[in] storage_interval:存储周期 - * @param[in] date_time_string:日期时间 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_del_timed_data_by_date(int storage_interval, const char *date_time_string) -{ - sqlite3_stmt *stmt = NULL; // SQLite语句句柄 - int ret = 0; // 返回值 - char sql[256]; // SQL语句缓冲区 - - // 参数校验,确保日期字符串不为NULL - if (date_time_string == NULL) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "日期时间字符串为NULL"); - return 1; - } - - // 使用sqlite3_snprintf构建SQL语句,防止SQL注入 - sqlite3_snprintf(sizeof(sql), sql, - "DELETE FROM timed_data_storage WHERE storage_interval = %d AND created_time < '%q';", - storage_interval, date_time_string); - - pthread_mutex_lock(&business_db_mutex); // 加锁,确保单线程访问 - // 开始事务,确保数据一致性 - ret = sqlite3_exec(business_db, "BEGIN TRANSACTION;", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "无法开始事务: %s", sqlite3_errmsg(business_db)); - pthread_mutex_unlock(&business_db_mutex); // 解锁 - return 1; // 直接返回,不继续执行 - } - - // 准备SQL语句,避免直接使用sqlite3_exec - ret = sqlite3_prepare_v2(business_db, sql, -1, &stmt, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL语句准备失败: %s SQL: %s", sqlite3_errmsg(business_db), sql); - sqlite3_exec(business_db, "ROLLBACK;", NULL, NULL, NULL); // 回滚事务 - pthread_mutex_unlock(&business_db_mutex); // 解锁 - return 1; - } - - // 执行SQL语句 - ret = sqlite3_step(stmt); - if (ret != SQLITE_DONE) // SQLITE_DONE表示成功执行完语句 - { - KITLOG(LOG_KIT_EN, ERROR_EN, "删除数据失败: %s SQL: %s", sqlite3_errmsg(business_db), sql); - sqlite3_exec(business_db, "ROLLBACK;", NULL, NULL, NULL); // 回滚事务 - pthread_mutex_unlock(&business_db_mutex); // 解锁 - sqlite3_finalize(stmt); // 释放SQLite语句句柄 - return 1; - } - - // 提交事务,确保操作生效 - ret = sqlite3_exec(business_db, "COMMIT;", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "提交事务失败: %s", sqlite3_errmsg(business_db)); - sqlite3_exec(business_db, "ROLLBACK;", NULL, NULL, NULL); // 回滚事务 - sqlite3_finalize(stmt); // 释放SQLite语句句柄 - pthread_mutex_unlock(&business_db_mutex); // 解锁 - return 1; - } - pthread_mutex_unlock(&business_db_mutex); // 解锁 - - // 释放SQLite语句句柄,避免内存泄漏 - sqlite3_finalize(stmt); - - return 0; // 返回0表示成功 -} - -/***************************************************************************** - * @brief 批量插入故障数据存储 - * @param[in] faultsDatas: 用于存储故障数据的 UT_array 指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_insert_faults_data(UT_array *faultsDatas) -{ - sqlite3_stmt *stmt = NULL; // 预编译语句句柄 - const char *sql = "INSERT INTO faults_record (dev_type, dev_id, point_id, faults_value, created_time) VALUES (?, ?, ?, ?, strftime('%Y-%m-%d %H:%M:%S', 'now'))"; - int ret = 0; - int total_count = utarray_len(faultsDatas); // 总记录数 - int batch_size = 100; // 每批插入的条数 - int i; - - pthread_mutex_lock(&business_db_mutex); // 加锁,确保单线程访问 - // 开始事务 - ret = sqlite3_exec(business_db, "BEGIN TRANSACTION;", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "无法开始事务: %s", sqlite3_errmsg(business_db)); - return 1; - } - - // 预编译SQL语句 - ret = sqlite3_prepare_v2(business_db, sql, -1, &stmt, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL预编译失败: %s", sqlite3_errmsg(business_db)); - return 1; - } - - // 批量插入 - for (i = 0; i < total_count; i++) - { - faults_data_storage_t *faultsData = (faults_data_storage_t *)utarray_eltptr(faultsDatas, i); - - // 绑定参数 - sqlite3_bind_int(stmt, 1, faultsData->devType); - sqlite3_bind_int(stmt, 2, faultsData->devDbId); - sqlite3_bind_int(stmt, 3, faultsData->pointDbId); - sqlite3_bind_double(stmt, 4, faultsData->faultsValue); - - // 执行插入 - ret = sqlite3_step(stmt); - if (ret != SQLITE_DONE) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "插入数据失败: %s", sqlite3_errmsg(business_db)); - sqlite3_finalize(stmt); - return 1; - } - - // 重置语句,以便下次使用 - sqlite3_reset(stmt); - - // 每 batch_size 条记录提交一次事务 - if ((i + 1) % batch_size == 0) - { - ret = sqlite3_exec(business_db, "COMMIT;", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "提交事务失败: %s", sqlite3_errmsg(business_db)); - sqlite3_finalize(stmt); - return 1; - } - // 重新开始事务 - ret = sqlite3_exec(business_db, "BEGIN TRANSACTION;", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "无法重新开始事务: %s", sqlite3_errmsg(business_db)); - sqlite3_finalize(stmt); - return 1; - } - } - } - - // 提交剩余数据 - ret = sqlite3_exec(business_db, "COMMIT;", NULL, NULL, NULL); - pthread_mutex_unlock(&business_db_mutex); // 解锁 - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "提交事务失败: %s", sqlite3_errmsg(business_db)); - sqlite3_finalize(stmt); - return 1; - } - - // 释放预编译语句 - sqlite3_finalize(stmt); - utarray_free(faultsDatas); - - return 0; // 成功 -} - -/***************************************************************************** - * @brief 根据日期时间条件,删除该日期时间之前faults_data_storage的数据 - * @param[in] date_time_string:日期时间 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_del_faults_data_by_date(const char *date_time_string) -{ - sqlite3_stmt *stmt = NULL; // SQLite语句句柄 - int ret = 0; // 返回值 - char sql[256]; // SQL语句缓冲区 - - // 参数校验,确保日期字符串不为NULL - if (date_time_string == NULL) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "日期时间字符串为NULL"); - return 1; - } - - // 使用sqlite3_snprintf构建SQL语句,防止SQL注入 - sqlite3_snprintf(sizeof(sql), sql, "DELETE FROM faults_record WHERE created_time < '%q';", date_time_string); - - pthread_mutex_lock(&business_db_mutex); // 加锁,确保单线程访问 - // 开始事务,确保数据一致性 - ret = sqlite3_exec(business_db, "BEGIN TRANSACTION;", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "无法开始事务: %s", sqlite3_errmsg(business_db)); - pthread_mutex_unlock(&business_db_mutex); // 解锁 - return 1; // 直接返回,不继续执行 - } - - // 准备SQL语句,避免直接使用sqlite3_exec - ret = sqlite3_prepare_v2(business_db, sql, -1, &stmt, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL语句准备失败: %s SQL: %s", sqlite3_errmsg(business_db), sql); - sqlite3_exec(business_db, "ROLLBACK;", NULL, NULL, NULL); // 回滚事务 - pthread_mutex_unlock(&business_db_mutex); // 解锁 - return 1; - } - - // 执行SQL语句 - ret = sqlite3_step(stmt); - if (ret != SQLITE_DONE) // SQLITE_DONE表示成功执行完语句 - { - KITLOG(LOG_KIT_EN, ERROR_EN, "删除数据失败: %s SQL: %s", sqlite3_errmsg(business_db), sql); - sqlite3_exec(business_db, "ROLLBACK;", NULL, NULL, NULL); // 回滚事务 - pthread_mutex_unlock(&business_db_mutex); // 解锁 - sqlite3_finalize(stmt); // 释放SQLite语句句柄 - return 1; - } - - // 提交事务,确保操作生效 - ret = sqlite3_exec(business_db, "COMMIT;", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "提交事务失败: %s", sqlite3_errmsg(business_db)); - sqlite3_exec(business_db, "ROLLBACK;", NULL, NULL, NULL); // 回滚事务 - sqlite3_finalize(stmt); // 释放SQLite语句句柄 - pthread_mutex_unlock(&business_db_mutex); // 解锁 - return 1; - } - pthread_mutex_unlock(&business_db_mutex); // 解锁 - - // 释放SQLite语句句柄,避免内存泄漏 - sqlite3_finalize(stmt); - - return 0; // 返回0表示成功 -} - -/******************************************************************************* - * @brief 删除指定时间字符串之前的断点保存数据 - * @param[in] date_time_string 日期时间字符串,格式为"YYYY-MM-DD HH:MM:SS" - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_del_break_data_by_date(const char *date_time_string) -{ - char sql1[256], sql2[256]; // SQL语句缓冲区 - sqlite3_stmt *stmt1 = NULL, *stmt2 = NULL; // SQLite语句句柄 - int ret = 0; // 返回值 - - // 参数校验,确保日期时间字符串不为NULL - if (date_time_string == NULL) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "日期时间字符串为NULL"); - return 1; - } - - pthread_mutex_lock(&business_db_mutex); // 加锁,确保单线程访问 - // 开始事务,确保数据一致性 - ret = sqlite3_exec(business_db, "BEGIN TRANSACTION;", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "无法开始事务: %s", sqlite3_errmsg(business_db)); - pthread_mutex_unlock(&business_db_mutex); // 解锁 - return 1; // 直接返回,不继续执行 - } - - // 使用sqlite3_snprintf构建SQL语句,防止SQL注入 - sqlite3_snprintf(sizeof(sql1), sql1, "DELETE FROM break_record WHERE created_time < ?;"); - sqlite3_snprintf(sizeof(sql2), sql2, "DELETE FROM break_data_storage WHERE created_time < ?;"); - - // 准备并执行第一个 DELETE 语句 - // 准备SQL语句 - ret = sqlite3_prepare_v2(business_db, sql1, -1, &stmt1, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL语句准备失败: %s SQL: %s", sqlite3_errmsg(business_db), sql1); - sqlite3_exec(business_db, "ROLLBACK;", NULL, NULL, NULL); // 回滚事务 - pthread_mutex_unlock(&business_db_mutex); // 解锁 - return 1; - } - // 绑定参数 - ret = sqlite3_bind_text(stmt1, 1, date_time_string, -1, SQLITE_STATIC); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "绑定参数失败: %s", sqlite3_errmsg(business_db)); - sqlite3_finalize(stmt1); - sqlite3_exec(business_db, "ROLLBACK;", NULL, NULL, NULL); - pthread_mutex_unlock(&business_db_mutex); // 解锁 - return 1; - } - // 执行SQL语句 - ret = sqlite3_step(stmt1); - if (ret != SQLITE_DONE) // SQLITE_DONE表示成功执行完语句 - { - KITLOG(LOG_KIT_EN, ERROR_EN, "删除数据失败: %s SQL: %s", sqlite3_errmsg(business_db), sql1); - sqlite3_exec(business_db, "ROLLBACK;", NULL, NULL, NULL); // 回滚事务 - pthread_mutex_unlock(&business_db_mutex); // 解锁 - sqlite3_finalize(stmt1); // 释放SQLite语句句柄 - return 1; - } - - // 准备并执行第二个 DELETE 语句 - // 准备SQL语句 - ret = sqlite3_prepare_v2(business_db, sql2, -1, &stmt2, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL语句准备失败: %s SQL: %s", sqlite3_errmsg(business_db), sql2); - sqlite3_exec(business_db, "ROLLBACK;", NULL, NULL, NULL); // 回滚事务 - pthread_mutex_unlock(&business_db_mutex); // 解锁 - return 1; - } - // 绑定参数 - ret = sqlite3_bind_text(stmt2, 1, date_time_string, -1, SQLITE_STATIC); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "绑定参数失败: %s", sqlite3_errmsg(business_db)); - sqlite3_finalize(stmt2); - sqlite3_exec(business_db, "ROLLBACK;", NULL, NULL, NULL); - pthread_mutex_unlock(&business_db_mutex); // 解锁 - return 1; - } - // 执行SQL语句 - ret = sqlite3_step(stmt2); - if (ret != SQLITE_DONE) // SQLITE_DONE表示成功执行完语句 - { - KITLOG(LOG_KIT_EN, ERROR_EN, "删除数据失败: %s SQL: %s", sqlite3_errmsg(business_db), sql2); - sqlite3_exec(business_db, "ROLLBACK;", NULL, NULL, NULL); // 回滚事务 - pthread_mutex_unlock(&business_db_mutex); // 解锁 - sqlite3_finalize(stmt2); // 释放SQLite语句句柄 - return 1; - } - - // 提交事务,确保操作生效 - ret = sqlite3_exec(business_db, "COMMIT;", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "提交事务失败: %s", sqlite3_errmsg(business_db)); - sqlite3_exec(business_db, "ROLLBACK;", NULL, NULL, NULL); // 回滚事务 - pthread_mutex_unlock(&business_db_mutex); // 解锁 - return 1; - } - pthread_mutex_unlock(&business_db_mutex); // 解锁 - - // 释放SQLite语句句柄,避免内存泄漏 - sqlite3_finalize(stmt1); - - return 0; // 返回0表示成功 -} - -/***************************************************************************** - * @brief 查询MQTT断开记录,根据isUploaded字段筛选。 - * @param[in] isUploaded: 要查询的is_uploaded字段值。如果为255,则查询所有记录。 - * @param[out] breakRecord: 用于存储查询结果的UT_array指针。 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_query_break_records(uint8_t isUploaded, UT_array **breakRecord) -{ - sqlite3_stmt *stmt = NULL; - char *sql; - - if (isUploaded == 255) - { - sql = sqlite3_mprintf("SELECT id, reason, is_uploaded FROM break_record ORDER BY created_time ASC;"); - } - else - { - sql = sqlite3_mprintf("SELECT id, reason, is_uploaded FROM break_record WHERE is_uploaded = %d ORDER BY created_time ASC;", isUploaded); - } - - if (SQLITE_OK != sqlite3_prepare_v2(business_db, sql, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL预编译失败: %s", sqlite3_errmsg(business_db)); - sqlite3_free(sql); - return 1; - } - sqlite3_free(sql); - - utarray_new(*breakRecord, &break_record_icd); // 初始化UT_array - - // 执行查询并处理结果 - int step = sqlite3_step(stmt); - while (SQLITE_ROW == step) - { - break_record_t record = {0}; - /* - //永远不可能为空 - if (&record == NULL) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "内存分配失败"); - utarray_free(*breakRecord); - sqlite3_finalize(stmt); - return 1; - } - */ - record.dbId = sqlite3_column_int64(stmt, 0); - strncpy((char *)record.reason, (const char *)sqlite3_column_text(stmt, 1), MAX_NAME_BUF_LEN - 1); - record.reason[MAX_NAME_BUF_LEN - 1] = '\0'; // 确保字符串结尾为\0 - record.isUploaded = sqlite3_column_int(stmt, 2); - utarray_push_back(*breakRecord, &record); - - step = sqlite3_step(stmt); - } - - if (SQLITE_DONE != step) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL执行失败: %s", sqlite3_errmsg(business_db)); - utarray_free(*breakRecord); - sqlite3_finalize(stmt); - return 1; - } - - sqlite3_finalize(stmt); - return 0; -} - -/***************************************************************************** - * @brief 插入MQTT断开记录,包括中断原因、是否已上传以及断开开始和结束时间。返回插入记录的ID。 - * @param[in] breakRecord: 包含MQTT断开信息的结构体指针:该结构体必须包含中断原因(reason) - * @return 插入记录的ID;-1-插入记录失败(包括SQL预编译失败和SQL执行失败)。 - *****************************************************************************/ -long long kit_insert_break_record(break_record_t *breakRecord) -{ - sqlite3_stmt *stmt = NULL; - const char *sql = "INSERT INTO break_record(reason, is_uploaded, start_time) VALUES(?, 0, strftime('%Y-%m-%d %H:%M:%S', 'now'));"; // 注意分号 - - if (SQLITE_OK != sqlite3_prepare_v2(business_db, sql, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL预编译失败: %s", sqlite3_errmsg(business_db)); - return -1; // 返回-1表示失败 - } - - sqlite3_bind_text(stmt, 1, (const char *)breakRecord->reason, -1, SQLITE_STATIC); - pthread_mutex_lock(&business_db_mutex); // 加锁,确保单线程访问 - int step = sqlite3_step(stmt); - if (SQLITE_DONE != step) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "插入数据失败: %s", sqlite3_errmsg(business_db)); - sqlite3_finalize(stmt); - return -1; // 返回-1表示失败 - } - - long long last_insert_rowid = sqlite3_last_insert_rowid(business_db); // 获取最后插入行的rowid - pthread_mutex_unlock(&business_db_mutex); // 解锁 - sqlite3_finalize(stmt); - return last_insert_rowid; // 返回插入记录的ID -} - -/***************************************************************************** - * @brief 更新MQTT断开记录的上传状态。此函数更新数据库中MQTT断开记录的`is_uploaded`字段。 - * @param[in] breakRecord: 指向包含MQTT断开信息的结构体指针。该结构体必须包含断开记录在数据库中的ID (`dbId`) 和新的上传状态 (`isUploaded`)。 - * @return 0-成功更新记录;1-更新记录失败(包括SQL语句预编译失败、SQL语句执行失败或未找到匹配的记录)。如果SQL语句执行成功,但没有更新任何行(例如,`dbId`不存在),则返回1,并记录警告日志。 - *****************************************************************************/ -int kit_update_break_record(break_record_t *breakRecord) -{ - int ret = 0; - sqlite3_stmt *stmt = NULL; - const char *sql = sqlite3_mprintf("UPDATE break_record SET is_uploaded = ? WHERE id = ?"); - - if (SQLITE_OK != sqlite3_prepare_v2(business_db, sql, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL语句预编译失败: %s", sqlite3_errmsg(business_db)); - return 1; - } - - sqlite3_bind_int(stmt, 1, breakRecord->isUploaded); - sqlite3_bind_int64(stmt, 2, breakRecord->dbId); - - pthread_mutex_lock(&business_db_mutex); // 加锁,确保单线程访问 - int step = sqlite3_step(stmt); - if (step != SQLITE_DONE) - { - if (step == SQLITE_ERROR) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL语句执行失败: %s", sqlite3_errmsg(business_db)); - } - else if (step == SQLITE_ROW) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "UPDATE操作中出现意外的SQLITE_ROW返回值"); - } - else - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL更新失败,错误代码: %d", step); - } - pthread_mutex_unlock(&business_db_mutex); // 解锁 - sqlite3_finalize(stmt); - return 1; - } - - // 检查是否实际更新了任何行。SQLITE_DONE 并不保证这一点。 - if (sqlite3_changes(business_db) == 0) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "没有更新任何行。请检查 dbId 是否正确。"); - pthread_mutex_unlock(&business_db_mutex); // 解锁 - return 1; - } - - pthread_mutex_unlock(&business_db_mutex); // 解锁 - sqlite3_finalize(stmt); - return ret; -} - -/***************************************************************************** - * @brief 批量插入MQTT断联时的历史数据存储 - * @param[in] breakDbId:MQTT断联的数据库Id - * @param[in] timedDatas: 用于历史数据存储的 UT_array 指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_insert_break_data_storage(uint64_t breakDbId, UT_array **timedDatas) -{ - sqlite3_stmt *stmt = NULL; // 预编译语句句柄 - const char *sql = "INSERT INTO break_data_storage(break_id, content, is_uploaded, created_time) VALUES (?, ?, 0, strftime('%Y-%m-%d %H:%M:%S', 'now'))"; - int ret = 0; - int total_count = utarray_len(*timedDatas); // 总记录数 - int batch_size = 100; // 每批插入的条数 - int i; - - pthread_mutex_lock(&business_db_mutex); // 加锁,确保单线程访问 - // 开始事务 - ret = sqlite3_exec(business_db, "BEGIN TRANSACTION;", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "无法开始事务: %s", sqlite3_errmsg(business_db)); - return 1; - } - - // 预编译SQL语句 - ret = sqlite3_prepare_v2(business_db, sql, -1, &stmt, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL预编译失败: %s", sqlite3_errmsg(business_db)); - return 1; - } - - // 批量插入 - for (i = 0; i < total_count; i++) - { - break_data_storage_t *timedData = (break_data_storage_t *)utarray_eltptr(*timedDatas, i); - - // 绑定参数 - sqlite3_bind_int64(stmt, 1, breakDbId); - sqlite3_bind_text(stmt, 2, (const char *)timedData->content, -1, SQLITE_STATIC); - - // 执行插入 - ret = sqlite3_step(stmt); - if (ret != SQLITE_DONE) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "插入数据失败: %s", sqlite3_errmsg(business_db)); - sqlite3_finalize(stmt); - return 1; - } - - // 重置语句,以便下次使用 - sqlite3_reset(stmt); - - // 每 batch_size 条记录提交一次事务 - if ((i + 1) % batch_size == 0) - { - ret = sqlite3_exec(business_db, "COMMIT;", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "提交事务失败: %s", sqlite3_errmsg(business_db)); - sqlite3_finalize(stmt); - return 1; - } - // 重新开始事务 - ret = sqlite3_exec(business_db, "BEGIN TRANSACTION;", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "无法重新开始事务: %s", sqlite3_errmsg(business_db)); - sqlite3_finalize(stmt); - return 1; - } - } - } - - // 提交剩余数据 - ret = sqlite3_exec(business_db, "COMMIT;", NULL, NULL, NULL); - pthread_mutex_unlock(&business_db_mutex); // 解锁 - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "提交事务失败: %s", sqlite3_errmsg(business_db)); - sqlite3_finalize(stmt); - return 1; - } - - // 释放预编译语句 - sqlite3_finalize(stmt); - - return 0; // 成功 -} - -/***************************************************************************** - * @brief 根据断开记录ID和行号范围查询断开数据。 - * @param[in] breakDbId: MQTT断开记录的数据库ID。 - * @param[out] timedDatas: 用于存储查询数据的UT_array指针。必须在调用之前初始化。 - * @return 0-成功;1-失败(数据库错误或其他问题)。 - *****************************************************************************/ -int kit_query_break_data(uint64_t breakDbId, UT_array **timedDatas) -{ - sqlite3_stmt *stmt = NULL; - char *sql = NULL; - int ret = 0; - - // 构造SQL查询语句,使用LIMIT子句进行分页 - // 将 SELECT 子句改为选择 id 和 content 两个字段 - sql = sqlite3_mprintf("SELECT id, content FROM break_data_storage WHERE break_id = %d AND is_uploaded = 0 ORDER BY created_time LIMIT 100", breakDbId); - - if (SQLITE_OK != sqlite3_prepare_v2(business_db, sql, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL语句预编译失败: %s", sqlite3_errmsg(business_db)); - sqlite3_free(sql); - return 1; - } - - while ((ret = sqlite3_step(stmt)) == SQLITE_ROW) - { - break_data_storage_t timedData = {0}; - snprintf((char *)timedData.content, MAX_JSON_STR_LEN, "%s", (uint8_t *)sqlite3_column_text(stmt, 1)); - uint64_t id = sqlite3_column_int(stmt, 0); - timedData.breakDbId = id; - utarray_push_back(*timedDatas, &timedData); - } - - if (ret != SQLITE_DONE && ret != SQLITE_ROW) - { // 添加对非SQLITE_DONE和SQLITE_ROW情况的检查 - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL语句执行失败: %s, 错误码: %d", sqlite3_errmsg(business_db), ret); - sqlite3_finalize(stmt); - sqlite3_free(sql); - return 1; - } - - sqlite3_finalize(stmt); - sqlite3_free(sql); - return 0; -} - -/***************************************************************************** - * @brief 批量更新断开数据的上传状态,使用事务保证数据一致性。 - * @param[in] break_id: MQTT断开记录的break_id。 - * @param[in] ids: storage的id数组。 - * @param[in] length: storage的id数组长度。 - * @return 0-成功;1-失败 - *****************************************************************************/ -int kit_update_break_data(uint16_t break_id, uint64_t ids[], int length) -{ - if (length <= 0 || ids == NULL) - { - // 如果传入的id数组为空或长度为0, 无需执行更新。 - return 0; - } - - sqlite3_stmt *stmt = NULL; - int ret = 0; - int i = 0; - char *sql = NULL; - char *in_clause = NULL; - - pthread_mutex_lock(&business_db_mutex); // 加锁,确保单线程访问 - - // 开始事务 - if (SQLITE_OK != sqlite3_exec(business_db, "BEGIN TRANSACTION", NULL, NULL, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "开始事务失败: %s", sqlite3_errmsg(business_db)); - pthread_mutex_unlock(&business_db_mutex); - return 1; - } - - // 构建 IN 子句字符串 - in_clause = sqlite3_mprintf("("); - for (i = 0; i < length; i++) - { - in_clause = sqlite3_mprintf("%s%s?", in_clause, (i > 0) ? "," : ""); - } - in_clause = sqlite3_mprintf("%s)", in_clause); - - // 创建 SQL 语句 - sql = sqlite3_mprintf("UPDATE break_data_storage SET is_uploaded = 1 WHERE break_id = ? AND id IN %s", in_clause); - sqlite3_free(in_clause); - - if (SQLITE_OK != sqlite3_prepare_v2(business_db, sql, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL语句预编译失败: %s", sqlite3_errmsg(business_db)); - sqlite3_free(sql); - sqlite3_exec(business_db, "ROLLBACK TRANSACTION", NULL, NULL, NULL); - pthread_mutex_unlock(&business_db_mutex); - return 1; - } - sqlite3_free(sql); - - // 绑定 break_id 参数 - sqlite3_bind_int(stmt, 1, break_id); - - // 绑定 ID 参数 - for (i = 0; i < length; i++) - { - sqlite3_bind_int64(stmt, i + 2, ids[i]); // IDs 从第二个参数开始 - } - - // 执行 SQL 语句 - ret = sqlite3_step(stmt); - if (ret != SQLITE_DONE) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL语句执行失败: %s, 错误码: %d", sqlite3_errmsg(business_db), ret); - sqlite3_finalize(stmt); - sqlite3_exec(business_db, "ROLLBACK TRANSACTION", NULL, NULL, NULL); - pthread_mutex_unlock(&business_db_mutex); - return 1; - } - - sqlite3_finalize(stmt); - - // 提交事务 - if (SQLITE_OK != sqlite3_exec(business_db, "COMMIT TRANSACTION", NULL, NULL, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "提交事务失败: %s", sqlite3_errmsg(business_db)); - pthread_mutex_unlock(&business_db_mutex); - return 1; - } - - pthread_mutex_unlock(&business_db_mutex); - - return 0; -} - -/***************************************************************************** - * @brief 批量插入插入功率数据 - * @param[in] powerDatas: 用于存储备份数据的 UT_array 指针 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_insert_power_data(UT_array *powerDatas) -{ - sqlite3_stmt *stmt = NULL; // 预编译语句句柄 - const char *sql = "INSERT INTO power_data_storage(dev_type, dev_code, point_code, value, created_time) VALUES(?, ?, ?, ?, strftime('%Y-%m-%d %H:%M:%S', 'now'));"; - int ret = 0; - int total_count = utarray_len(powerDatas); // 总记录数 - int batch_size = 100; // 每批插入的条数 - int i; - - pthread_mutex_lock(&business_db_mutex); // 加锁,确保单线程访问 - // 开始事务 - ret = sqlite3_exec(business_db, "BEGIN TRANSACTION;", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "无法开始事务: %s", sqlite3_errmsg(business_db)); - pthread_mutex_unlock(&business_db_mutex); // 解锁 - return 1; - } - - // 预编译SQL语句 - ret = sqlite3_prepare_v2(business_db, sql, -1, &stmt, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL预编译失败: %s", sqlite3_errmsg(business_db)); - pthread_mutex_unlock(&business_db_mutex); // 解锁 - return 1; - } - - // 批量插入 - for (i = 0; i < total_count; i++) - { - power_data_storage_t *powerData = (power_data_storage_t *)utarray_eltptr(powerDatas, i); - - // 绑定参数 - sqlite3_bind_int(stmt, 1, powerData->devType); - sqlite3_bind_int(stmt, 2, powerData->devId); - sqlite3_bind_int(stmt, 3, powerData->pointId); - sqlite3_bind_double(stmt, 4, powerData->value); - - // 执行插入 - ret = sqlite3_step(stmt); - if (ret != SQLITE_DONE) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "插入数据失败: %s", sqlite3_errmsg(business_db)); - pthread_mutex_unlock(&business_db_mutex); // 解锁 - sqlite3_finalize(stmt); - return 1; - } - - // 重置语句,以便下次使用 - sqlite3_reset(stmt); - - // 每 batch_size 条记录提交一次事务 - if ((i + 1) % batch_size == 0) - { - ret = sqlite3_exec(business_db, "COMMIT;", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "提交事务失败: %s", sqlite3_errmsg(business_db)); - pthread_mutex_unlock(&business_db_mutex); // 解锁 - sqlite3_finalize(stmt); - return 1; - } - // 重新开始事务 - ret = sqlite3_exec(business_db, "BEGIN TRANSACTION;", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "无法重新开始事务: %s", sqlite3_errmsg(business_db)); - pthread_mutex_unlock(&business_db_mutex); // 解锁 - sqlite3_finalize(stmt); - return 1; - } - } - } - - // 提交剩余数据 - ret = sqlite3_exec(business_db, "COMMIT;", NULL, NULL, NULL); - pthread_mutex_unlock(&business_db_mutex); // 解锁 - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "提交事务失败: %s", sqlite3_errmsg(business_db)); - sqlite3_finalize(stmt); - return 1; - } - - // 释放预编译语句 - sqlite3_finalize(stmt); - utarray_free(powerDatas); - - return 0; // 成功 -} - -/***************************************************************************** - * @brief 根据日期时间条件,删除该日期时间之前power_data_storage的数据 - * @param[in] date_time_string:日期时间 - * @return 0-成功 1-失败 - *****************************************************************************/ -int kit_del_power_data_by_date(const char *date_time_string) -{ - sqlite3_stmt *stmt = NULL; // SQLite语句句柄 - int ret = 0; // 返回值 - char sql[256]; // SQL语句缓冲区 - - // 参数校验,确保日期字符串不为NULL - if (date_time_string == NULL) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "日期时间字符串为NULL"); - return 1; - } - - // 使用sqlite3_snprintf构建SQL语句,防止SQL注入 - sqlite3_snprintf(sizeof(sql), sql, "DELETE FROM power_data_storage WHERE created_time < '%q';", date_time_string); - - pthread_mutex_lock(&business_db_mutex); // 加锁,确保单线程访问 - // 开始事务,确保数据一致性 - ret = sqlite3_exec(business_db, "BEGIN TRANSACTION;", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "无法开始事务: %s", sqlite3_errmsg(business_db)); - pthread_mutex_unlock(&business_db_mutex); // 解锁 - return 1; // 直接返回,不继续执行 - } - - // 准备SQL语句,避免直接使用sqlite3_exec - ret = sqlite3_prepare_v2(business_db, sql, -1, &stmt, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL语句准备失败: %s SQL: %s", sqlite3_errmsg(business_db), sql); - sqlite3_exec(business_db, "ROLLBACK;", NULL, NULL, NULL); // 回滚事务 - pthread_mutex_unlock(&business_db_mutex); // 解锁 - return 1; - } - - // 执行SQL语句 - ret = sqlite3_step(stmt); - if (ret != SQLITE_DONE) // SQLITE_DONE表示成功执行完语句 - { - KITLOG(LOG_KIT_EN, ERROR_EN, "删除数据失败: %s SQL: %s", sqlite3_errmsg(business_db), sql); - sqlite3_exec(business_db, "ROLLBACK;", NULL, NULL, NULL); // 回滚事务 - pthread_mutex_unlock(&business_db_mutex); // 解锁 - sqlite3_finalize(stmt); // 释放SQLite语句句柄 - return 1; - } - - // 提交事务,确保操作生效 - ret = sqlite3_exec(business_db, "COMMIT;", NULL, NULL, NULL); - if (ret != SQLITE_OK) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "提交事务失败: %s", sqlite3_errmsg(business_db)); - sqlite3_exec(business_db, "ROLLBACK;", NULL, NULL, NULL); // 回滚事务 - pthread_mutex_unlock(&business_db_mutex); // 解锁 - sqlite3_finalize(stmt); // 释放SQLite语句句柄 - return 1; - } - pthread_mutex_unlock(&business_db_mutex); // 解锁 - - // 释放SQLite语句句柄,避免内存泄漏 - sqlite3_finalize(stmt); - - return 0; // 返回0表示成功 -} - -/***************************************************************************** - * @brief 获取指定表中特定dbId的记录数量 - * @param[in] db: SQLite3 数据库连接对象 - * @param[in] tabName: 查询表的名称 - * @param[in] dbid: 用于查询记录的dbId值 - * @return 记录数量(成功返回记录数量;失败返回-1) - *****************************************************************************/ -int kit_get_record_count_by_dbid(sqlite3 *db, const char *tabName, uint64_t dbid) -{ - sqlite3_stmt *stmt; - char sql[256]; - int result = 0; - int rc; - - // 使用 snprintf 合成 SQL 查询字符串 - snprintf(sql, sizeof(sql), "SELECT COUNT(*) FROM %s WHERE db_id = ?", tabName); - - // 预编译SQL语句 - rc = sqlite3_prepare_v2(db, sql, -1, &stmt, NULL); - if (rc != SQLITE_OK) - { - printf("Failed to prepare statement: %s\n", sqlite3_errmsg(db)); - return -1; - } - - // 绑定参数 - sqlite3_bind_int64(stmt, 1, dbid); - - // 执行SQL查询 - if ((rc = sqlite3_step(stmt)) == SQLITE_ROW) - { - result = sqlite3_column_int(stmt, 0); - } - else - { - printf("Failed to execute query: %s\n", sqlite3_errmsg(db)); - } - - // 清理和释放资源 - sqlite3_finalize(stmt); - - return result; -} - -/***************************************************************************** - * @brief 插入北向断开记录,记录最新连接状态。 - * @param[in] connectStatus: 连接状态 - * @return 0-成功 1-失败。 - *****************************************************************************/ -int kit_insert_lost_contact_record(const char* connectStatus) -{ - sqlite3_stmt *stmt = NULL; - const char *sql = "INSERT INTO lost_contact_record(connect_status, created_time) VALUES(?, strftime('%Y-%m-%d %H:%M:%S', 'now'));"; - - if (SQLITE_OK != sqlite3_prepare_v2(business_db, sql, -1, &stmt, NULL)) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "SQL预编译失败: %s", sqlite3_errmsg(business_db)); - return 1; // 返回1表示失败 - } - - sqlite3_bind_text(stmt, 1, connectStatus, -1, SQLITE_STATIC); - pthread_mutex_lock(&business_db_mutex); // 加锁,确保单线程访问 - int step = sqlite3_step(stmt); - if (SQLITE_DONE != step) - { - KITLOG(LOG_KIT_EN, ERROR_EN, "插入数据失败: %s", sqlite3_errmsg(business_db)); - sqlite3_finalize(stmt); - return 1; // 返回1表示失败 - } - - pthread_mutex_unlock(&business_db_mutex); // 解锁 - sqlite3_finalize(stmt); - return 0; -} \ No newline at end of file diff --git a/ems_c/main.c b/ems_c/main.c index f7b7f79..79553e6 100644 --- a/ems_c/main.c +++ b/ems_c/main.c @@ -28,50 +28,6 @@ int main(int argc, char *argv[]) { void *arg = NULL; // 初始化参数 int ret = 0; // 返回值 - cli_args_t args = {0}; // 命令行参数结构体初始化 - - // 解析命令行参数 - cliArgsInit(argc, argv, &args); - - // 是否开启进程守护 - if (args.daemonized) - { - daemonize(); - } - - // 加锁,防止重复运行 - if (checkDaemonRunning() == 1) - { - // 是否执行停止命令 - if (args.stop) - { - ret = stop_daemon(); - if (ret == 0) - { - KITPTF(LOG_DAEMON_EN, INFO_EN, "_EMS_C_V1.0.0 停止成功。"); - } - else - { - KITPTF(LOG_DAEMON_EN, INFO_EN, "_EMS_C_V1.0.0 停止失败。"); - } - } - else - { - KITPTF(LOG_DAEMON_EN, INFO_EN, "_EMS_C_V1.0.0 进程已经在运行中,不可重复运行,已退出。"); - ret = 1; - } - goto main_end; - } - else - { - if (args.stop) - { - ret = 0; - printf("_EMS_C_V1.0.0 不在运行中,停止失败。\n"); - goto main_end; - } - } - // EMS初始化 ret = initEmsSystem(arg);