From 6c0377eb0b3af09a5ceabbc01a555d3ca185f89c Mon Sep 17 00:00:00 2001 From: dathlin Date: Fri, 16 Jun 2017 09:52:58 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BD=91=E7=BB=9C=E7=BB=84=E4=BB=B6=E6=A0=B8?= =?UTF-8?q?=E5=BF=83=E9=83=A8=E5=88=86=E9=87=8D=E6=96=B0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=EF=BC=8C=E5=8D=87=E7=BA=A7=E5=88=B03.0=E7=89=88=E6=9C=AC?= =?UTF-8?q?=EF=BC=8C=E6=A8=A1=E7=89=88=E8=BF=9B=E8=A1=8C=E9=80=82=E9=85=8D?= =?UTF-8?q?=EF=BC=8C=E5=8E=9F=E5=85=88=E7=9A=84=E5=AD=97=E7=AC=A6=E4=B8=B2?= =?UTF-8?q?=E7=BB=84=E5=90=88=E6=A8=A1=E5=BC=8F=E8=A2=AB=E6=9B=BF=E4=BB=A3?= =?UTF-8?q?=EF=BC=8C=E5=AE=A2=E6=88=B7=E7=AB=AF=E5=90=8C=E6=AD=A5=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E6=9B=B4=E5=87=86=E7=A1=AE=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CommonLibrary/Common.cs | 2 +- CommonLibrary/CommonLibrary.csproj | 2 +- CommonLibrary/HeadCode.cs | 73 +- Public/HslCommunication.dll | Bin 340480 -> 343552 bytes Public/HslCommunication.xml | 802 +++++++++++------- 软件系统客户端模版/FormDownloading.cs | 6 +- 软件系统客户端模版/FormLog.cs | 12 +- 软件系统客户端模版/FormLogin.cs | 13 +- 软件系统客户端模版/FormMainWindow.cs | 147 +++- 软件系统客户端模版/FormRegisterAccount.cs | 2 +- 软件系统客户端模版/FormUpdateRemote.cs | 3 +- .../UIControls/ShareFilesRender.cs | 8 +- 软件系统客户端模版/UserClient.cs | 9 +- 软件系统客户端模版/软件系统客户端模版.csproj | 2 +- 软件系统服务端模版/Form1.cs | 256 +++--- 软件系统服务端模版/软件系统服务端模版.csproj | 2 +- 16 files changed, 830 insertions(+), 509 deletions(-) diff --git a/CommonLibrary/Common.cs b/CommonLibrary/Common.cs index 20b6ae9..09ed9ea 100644 --- a/CommonLibrary/Common.cs +++ b/CommonLibrary/Common.cs @@ -12,7 +12,7 @@ namespace CommonLibrary { //初始化模版的版本号 //预计第一个正式发行的版本为1.1.0 日期为2017-08-10 - SoftBasic.FrameworkVersion = new SystemVersion("1.0.5"); + SoftBasic.FrameworkVersion = new SystemVersion("1.0.6"); } diff --git a/CommonLibrary/CommonLibrary.csproj b/CommonLibrary/CommonLibrary.csproj index eccbdfb..b3cbbc2 100644 --- a/CommonLibrary/CommonLibrary.csproj +++ b/CommonLibrary/CommonLibrary.csproj @@ -30,7 +30,7 @@ 4 - + False ..\Public\HslCommunication.dll diff --git a/CommonLibrary/HeadCode.cs b/CommonLibrary/HeadCode.cs index 9b8c959..148eac5 100644 --- a/CommonLibrary/HeadCode.cs +++ b/CommonLibrary/HeadCode.cs @@ -15,47 +15,48 @@ namespace CommonLibrary /// public static Guid KeyToken { get; set; } = new Guid("1275BB9A-14B2-4A96-9673-B0AF0463D474"); - + + /// - /// 同步通信的头说明,以字母A开头,后面接B,C,D,E,F + /// 同步通信的指令头说明,以10000开头,后面接20000,30000, /// [System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Auto)] public class SimplifyHeadCode { - public static string 维护检查 { get; } = "A001";//A开始的表明是系统相关的 - public static string 更新检查 { get; } = "A002"; - public static string 账户检查 { get; } = "A003"; - public static string 参数下载 { get; } = "A004"; - public static string 密码修改 { get; } = "A005"; - public static string 更细账户信息 { get; } = "A006"; - public static string 获取账户信息 { get; } = "A007"; - public static string 更新公告 { get; } = "A008"; - public static string 注册账号 { get; } = "A009"; - public static string 更新版本号 { get; } = "A010"; - public static string 请求文件列表 { get; } = "A011"; - public static string 意见反馈 { get; } = "A012"; + public static int 维护检查 { get; } = 10000;//10000开始的表明是系统相关的 + public static int 更新检查 { get; } = 10001; + public static int 账户检查 { get; } = 10002; + public static int 参数下载 { get; } = 10003; + public static int 密码修改 { get; } = 10004; + public static int 更细账户 { get; } = 10005; + public static int 获取账户 { get; } = 10006; + public static int 更新公告 { get; } = 10007; + public static int 注册账号 { get; } = 10008; + public static int 更新版本 { get; } = 10009; + public static int 请求文件 { get; } = 10010; + public static int 意见反馈 { get; } = 10011; - public static string 网络日志查看 { get; } = "B001";//B开头的是日志请求和清空 - public static string 网络日志清空 { get; } = "B002"; - public static string 同步日志查看 { get; } = "B003"; - public static string 同步日志清空 { get; } = "B004"; - public static string 更新日志查看 { get; } = "B005"; - public static string 更新日志清空 { get; } = "B006"; - public static string 运行日志查看 { get; } = "B007"; - public static string 运行日志清空 { get; } = "B008"; - public static string 共享文件日志查看 { get; } = "B009"; - public static string 共享文件日志清空 { get; } = "B010"; - public static string 建议反馈日志查看 { get; } = "B011"; - public static string 建议反馈日志清空 { get; } = "B012"; - public static string UDP日志查看 { get; } = "B013"; - public static string UDP日志清空 { get; } = "B014"; + public static int 网络日志查看 { get; } = 11000;//11000开头的是日志请求和清空 + public static int 网络日志清空 { get; } = 11001; + public static int 同步日志查看 { get; } = 11002; + public static int 同步日志清空 { get; } = 11003; + public static int 更新日志查看 { get; } = 11004; + public static int 更新日志清空 { get; } = 11005; + public static int 运行日志查看 { get; } = 11006; + public static int 运行日志清空 { get; } = 11007; + public static int 文件日志查看 { get; } = 11008; + public static int 文件日志清空 { get; } = 11009; + public static int 反馈日志查看 { get; } = 11010; + public static int 反馈日志清空 { get; } = 11011; + public static int UDP日志查看 { get; } = 11012; + public static int UDP日志清空 { get; } = 11013; /************************************************************************************** * - * 为了保证您的指令头不和系统的冲突,您的指令头应该以C,D,E,F开头 + * 为了保证您的指令头不和系统的冲突,您的指令头应该以20000之后开头 * **************************************************************************************/ @@ -65,13 +66,13 @@ namespace CommonLibrary /// public class MultiNetHeadCode { - public static string 所有客户端在线信息 { get; } = "H001"; - public static string 关闭所有客户端 { get; } = "H002"; - public static string 弹窗消息 { get; } = "H003"; - public static string 时间推送 { get; } = "H004"; - public static string 文件数量 { get; } = "H005"; - public static string 初始化数据 { get; } = "H006"; - public static string 留言消息 { get; } = "H007"; + public static int 总在线信息 { get; } = 50000; + public static int 关闭客户端 { get; } = 50001; + public static int 弹窗新消息 { get; } = 50002; + public static int 时间的推送 { get; } = 50003; + public static int 文件总数量 { get; } = 50004; + public static int 初始化数据 { get; } = 50005; + public static int 留言版消息 { get; } = 50006; /************************************************************************************** diff --git a/Public/HslCommunication.dll b/Public/HslCommunication.dll index 949e39ab03823ad20739ea00df07988d53186d8f..42d488a6f92f9f01c24b0bc04dded56597e1e801 100644 GIT binary patch delta 179951 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 ZFqgeA1w08r1po{H001C9x6xMv_5s9IDZu~$ delta 177254 zcmb?^37izg^?z^AY|rfM0kgBrEDP)o$1cq&BFBOt3yKFSq7qI;L_83rk;RK)Xgs3E zC^3$S1}|db5tA6N7-QlQqee|M##}~Sa~X^#@uwylui*dteO1*xGrKtE|NHUzu-#qt z-m6!yUcGwt>X>aGHEnyP>GF$*#s4#Psipt@!D<*hPUK#^AzGdu(B8)yTx7!-1GZ@`%DERbxiE_$vC>Wmyl8 z-`KtJ1f)F?!5%L(UBha{#L+5M+5GtF*R;xn0=H3n19+W5_}{-gWF69dDHyc~5PtEC5z_+%ogoG6lR3>4 zz>1Sm7Vz@GvyKhmbq3*Izwx-G1|Dq^z(2la{;2`H)1h*RFd;F`aJn_75t#mswZ|WQ zMRn8Qx>?f~8-g`O`TsgNesEzzb(4S7mHVzW0JRz*H6dz^1E&ye6147lz0ojhwO%#^ z=?U9SLR*})*GQ#tYCG9bG1e|M!Lioh2`Llzrw`V4YVua3X?Im^Y#LQa@SVEO**-p6 zBiq+3DW;ot(k*U^l#wGPrJWX&l6DBMvOxj(R$LVvu@;cDX1eL5S*BoH72F@WF0vhx z1nLNU`)(7;vAqHKn{eD^$Vdo`N8zuIHk)2)buK4LTa%k%qqxmz5U9hk#2<*)+Qurk1<%O3-FCv6 zHlDz?cO0_QyQ}Kr)0*Y`czm}{2X(8XlYiYoB-RNvD}t`Cnf|4ZKmHi)9<$~k1Fgf# z47uabKv5%?4MF);iFB>PjoD5t5?h+~P@lw-S}PXW9j%K`e+6WmdQq|(G!MJn77#=u zli(fAYZn>mY(-~_s;&i^hm)UZY^kKq060H7Ayi9J>LN}$?yAD-V>L@^Z6{shp}!}r z>QpotorYGoA~ETZUTa}oVvw(kyzL(&Pwcx$Na~Y|^zydlpxmNjBQb9?60P#$(IKsf zzz011Br(K?Mzh*8vdh=>&BNqk9%lBgHp+>6ZK!5_#HmSpS-f?y`c^EuJIabre^9ks z)LH>j=r=5H_pZe=S)PwU$m$-7^n_*Crt3O8027OUvEFh(3A*rd#BypbrP*|c0m>Ur z`c^!%q%I!YzGl`h*qGi3B&MR$q)B$U$5BGIusokQ?y6D6XcopPUN#T<{gV?%v)vqe5}?Vma~10`dXT{cRQ2NFS;R*M9dp0weHy$ zl~SGghHS+t;wWO`9PY0_vc` zP}gD@e~tPqt+1mj+=-f@bayJsMD1uURH41iMH3XOhlT-zL{lOeRWdpZ2_-U0RVS;b zVYs4{R^zWPxd1PglQmk2X{2@Cqt+aXX$~5E!W%~{GYt;Gh~YR3PxNc*!zIt{6J$r! zs8-e1Ts%0#B098)W7%9zx~)Hk;e*g2qI!^S>u*NsVBBtNGD&Gih?S4rH2$}IICxg! za;K^5r#~5RkmeAh3|bmmdkFw8Uw!Hk#aeBrCDV4%BOGW2iR`-i^wSCtV+83wZ<84w zKm7x~+D*d^;J?u@Cwz{wh973d_bN=w3||Rzz;+xN8%!^i zPAY~+)+^y?-hkk!!HMlpow%ZBobg;`s1!Z9E*Cg_grjtC{PDE4g*PGHtN-~K<6}d* z=)#aL4bR~(b?jwIRm?}C-ea(RAbT(Jo8DS7qpS(pGs2RY(^j#jXsA*}Iv>-((;$`)XEB4A-rVAB$Sv+T5c2#JF_hs%RQ z-0vT^U}b7 z@FoO&&!ZELaT8_++8U3!orMbr4qF-h?L6aKs1YQSrzFvPSZFwKuz~NoZ?6*!-#OSR zG^;p%znnDMSOv7V${_sB`z=1auya6@KW^8gc?L0(hlv0t0Y<*FB#8o%8 zH&cZYH?|MVz8=D~*zSCQ+~`h6Ug(=!@1mq%d?|CJE=fr!EmgF$?;3omk)7?20Zf=J zmD-n+{@f*|HaYZqQ_JsvDKpokNAfCT2MYYx@#~CQs{%J-=-MCvwtKW_mq_oedzS|O zb`I{Jq5GFx&NRatngbcrkwX)C%3CYvl+>h&xoBifG&P~xItG=(yow_JC+{(qk67`?9h2AyYrhjhvsJcnuOE5RDA4O zI~_~Ir&B{*%sr_vsqNt5=xRiof7;%MX=W^Y`)tbSzJO=NGb|4-(WBVqGh zXB=#}qYY*czUAq0Y5?@dy|1*S`v6eNXN&YnMzHVAsy2FGtWDaON36p^5DLkLZGCxB z&_r7?VrzGN7$B^T=$jj!h3d)Zlkg5iVci&@5{cT_Ho{t4hZe3Mp7vpSNvq-HF+p%* zD=0)w7hZc$*Q=(QI=dd)FWX?WLdba-JfS?BQ0b~5 z@Bdsf={a#xn!;R!E0cMw@BK{^tEeFH4{ILw7N2q z|L66=q*<}IzB1A;_8D%5AYIbgm67@_oE`KeRnmEtk(Tf34164gbZKRz=Z`<;@KTMq zqB7Fd``4C<{MyP$H?$m6Ci0srBTagG#@?mu-BB6o(y1fM`qTZDk$${ zt)Z-OpRJ5^_FE&%Ovdw-k$(QObXH40Mg_V)sU44*o`!#zj zD{k@CMd)r3Jbds`|a#cw++a4?l1F0737`24N=m0F|A zD&jV@-fSv-fgkq*tD6F7sG+RYv;Uu0zcHK$rApWu%+084cN$fT4&BE zv#=eNks4pvXx3Y`$PxOfB#7%jKXz@Y8cnZ^H1C=g6L!%h9Z(tRuJ^KK?9H!?^xnY} z%o?*UX-Q?I$DhrXS=d#TkuI9qTGn&dRYn^3w{d2rQL}euWu(pb4luC_jl@;e3JN>) zg=CpCe@SJeho9{#E9uLXk$(3fo}jaaU!eH&$&e z^H_dZ8R_`jXO`9J@ybX;?;lxaET5^2RP*I|WrpSX%1Haa?Uwlwf2fS~$A4@obLO+r zifVN2M?nZs>)z?W~M+{(@0uPU3BqkqR@%mQC;Osf={~m8;53 z*n^dkI{rB}h?uH&dZIE?ms7v6RQH~%jP(7&c(aD3MgCG{q?f+`nKCWkRT-)7^?7cDX;Ib*}_{vDmwIj`HffhNp##AWj@cR!dD``$;q?0!fEfd6Hm62}W zF}f^(wx}}F(jiuvHCnl6Bwq(_yV{R5OIKPD>-t724ghm~=HHVBnfbe&8!oYBSwg(_ z^8UuH!}^TMApGwyJ;X#G?c4~f@L@~Ml>3icU}h449iao%)fQH0%#NwQZtgnCs04N= zG%vesNa2O9c^NFSG5)>dvbBNd8S!>og?(p_n}Ve<<~{hO5rGhix;)q$g%uHQZfaik zMeO*%E&=Rn`NELG^|J?It>ymN6Kk<-MFK6^sRtJRJ-c-QzN=~@SnmloBgXnySrM}# zk*jS#1Qo=Yh*q=U#J~o$4N!$*|HOi8olN>#r`dLU3VZKAxa#+X^X81S!Sdz%kFh_p z3eV3OI}VdCQg~?bF+~)rgB_E7QklPhm!?wl5o&U+h~d%wSNK@`!%DGX@@CLICOOeq zT(wA%mIlK57-es}Zk1Y+AB0_NSD`joH6uI!bM%s+4Z4@2jD#JDR=a<}TWxb@a5om) z6LsAu;IlpMt-=GFOzhph19Y{EqDJkah}&)!CD?8={&vp;mUk$5tjTyQiDmV0*`)(( z9|OsVlReX@qIZPk$2~MV>XfSP`2dhj*pLyAc_=2)(N>dk;z`HN0+8FdhPeJ=NH0!w zlF_uwMDIva!zYwNE#`Skn39Y(JKkcvrB#+%+M_%zC$qaM6-&mZL8z#K0(1X}cZKR? zJgo4r3f!rXii7zh&okU7)fOlh5D8V2qKfPT_;|C2Me78%N=f~i>Ku>j-09tRswP=8 zEzUC2-rk7{=Ij$rgdm+nwc6HdJMJrhW(zs)n|L#;HdNC6KuF_1c+QwW z#oQA7hNwFn;!pHV$+x)km&C?~#D4nqc*qPEuL5TJVxlv|``fTgIN2=5a~h(}%QPFM zH2fI$R94HLj;xZz#s|~E+!$S@`B*d+c86l;1a^*HZQ7t40!?hTtKC1BNXPUJ(&QE! zEuGbK_6vqQ;IxZ8gb}|?q(w;MztI%b21r=X>Z2J3VRd;Wy4Fy|{HQ4>1)fP!*V@HW zs?)Ky0jQBuL*3E*K6=`oJ6bDv=(D2@LtQ(1_pl2`HPwfiShlXC4G9}V&CYnJ&^rs9eTmtnEk7Iv^Ncq4?0wSF=e>&`$w zurt-eRshF}x77%uhp`P`il9nql9aTEgPrp9BoTUBV?lpdq;#$3F&@r#P_VCX}< z!Z!~c;$skGIsTO+jrLg5+Db7y@1o>nR|$?pyvwHQgjSd|wS~N{(UvXbc81WUDpD6l9>4qR6R5jv5CrFfOUDK~7=iVa)@$ou#~x zQH9G68}374$@j(&mLFhTC3_21Gm~~1`z2uVM8eY)U-h zEdwq6;duR!%lGZr_{%TZ`1>AeAfkHKvSz(I){7zy5@zMSxrNR1JA8C_@_)y%$C~|PX6I@#{}4F&Z`XXPY8(TO zmZ%O|T7ly2%>?~~O8VT-T~^Bus}uH~;-Wl;h$B_+Xp15CLDkyvQpiuM2gNo3pCY#R zOT`8O_RI!B3`0daFX9^UN%9H=^~ez&K6)7iHE#Q=U^%RhhMs8zMP5vMD?y3kRT30y zq$*NYEfG|&dUal?1SNt{f~uh}$72;>n4P_XPFS5#X3APf^r1VNj}_WEC=;R5B;bR_ zo@D%~M0~)JBmDkK#O;4_gSE|w+H9*Vnpm2&>}f^+rUf?J-RXiU-g(MujJJY4EZ7k> z7rC1D(@zdF(PA?%*&B2)q)xPaj+C<1jU(lMSgC09ZrFYq@-b+B%p{77v&_tjs0l>b zInqD|w?chp-_^#?!c0?T5dQg}CCs)&JBRuh`0I~er#bT92ZGAs&fZNZi2s1Q>JN*| zf}n7nr8&)Xe+YiI!K;sEuM58?@%!@ddosUo#dli4)A7jO6Mn;Eie|4MysrRY$D^ZV z-u+6Aaa!!$G^VN=jw(cr48gFtB3Q!p=;G+I(%rb(V!<5HJC^=`X ziK+u$We|SIAGVrZFm`TM2tV_>G(wHO?5zia${|Agzov&Z=n4_~JvPA1sQ|As2!C%f zI@2(kgUK@tJwK$%SS`S-48p&6Ys5^aFuKkO5eEEliqSYAs0<=p^!n1Ufc-=G3oakG z&J-NUs|;=*ZhdQ%iTbPlmXYQ(8)PxPi&#fNGX_C#e86A%Sd*a-#X-l7!kj4^P)7yI zVZ@Hsb`F#G1M#l(N+6Y9X$Szw{E>>)u%sghU_!5mM!n(_o?pZo0$3=nPtDyYvntpc zph^pL)Uvn{f8&~k!AdbiLw<^hkj8P7rv{N@Rf#ehkG|mq77jF6O(?iu;|_gdq*;Zq za|bb58!Zei%OMe>9Yzn9h#5=gTA zU;ldWvAP^NR}0%$k8FL|ueNhAKM4EJhu_Wb}AUdsymp zzsmG_$^y|oxGPd>BTMDkN`w@SFI>1}w2wiGC=affYz7M}!hpl^ply^Q0u{tGME(JG z!N$eL*r+a}=7Cf+dw}SQoe|x&v#&)kL8La=+54(>P}yAt($cy(#suBKh&2cyhd1Du zz-_35LkeduZK#@9c>0+3!fi`C{6j#gceHKKF@QY=+t|>1 z4z`&Iw>jwq;5bhc4P^W++Vh+U#zf!ZI31QP{NUKZ{*kQPo^TcFHlRB3YB!5VdGri6 z?bAmJ!gEf-8L1DB_RtFT%|M}T`D7D6+x5g&V|%TV_!px*dtneXU5Ak&jLs%9^u|32 zGfI`>A!Jn)uqvid5-t;ScE)o>!Mi53rwQKmRX9d|Q}}uIIAgahIm>SF%Hw6l#k1pg zfCgMn=-CnOEYSdJ0%jRvj4ruT=AFB9;bYO=Q=}K4&_!jz;(Vcgo5| zGpmzE7TQ`^wPLz|{P8p9XuGa#iVncv4s($D*$Kv%PmJTz> z*f~P!@#(TDGmSOHc&0Lb1KQ&|PNo|nH(Lnt=5E}-;cS}+)Pd^tP`tLNSC~-}q@Qup z9TB5{cJA=7pk4nHH`^&tkjfzZ+4rpo(sT1e_^01K90O|LS*aW%yw`kE;IQP52ob)$ zPpYUUDueLHyyzLDZ|4?-@UQ-7l^N^7kjfzZQ|-&lN(MYD*eWBcBc3>XemIn?3?jTU z;4m{x+BvvH2L9>lqs)+u0#pX!_u4mSd4<%f4*1-8}&vtG2Tz$j^4o>1Rnaf&Eh>t%cd$cEIxb#z=NofVmo&**Ahu zCfceYdy7NUv=zW9lR!6mZNDYimB?x>T;6rm62peEagMtY6?!HQ%=El%wcK? zK^tQ)o-eR?0R;!;gHJs(bSvGt;LSY*e?mJ+5&u4FSrZlf4ZoTZir705_3dxj*>BpRzQNCSpp&f z2L*Jm0CftG*|zFC0yP~I8!!;;1XGFV@kk8LdZ@$!l2`}X$x68-c0$3dj2u)~MeUHH zxO2581q*^m{miH#|h9j z{0&)?#WMwThX8S>rJWrMjtQjepGqVXn$#HrH9(+(<4CH!+GMQ;+9W{STx(|+X;Mm( zsk&sH20BN8ekwrCCGtwuC+iiE@8$%GTchpl`chI2$p%eI0i7#A!J!GoRKH|D4Rn!E zI!1tkP2CEpf3m*@x>|sy3J|s-`^BP4CX*WK27zi6sGX(qY)m$4pt}X=AK=-}2K(() zd8uSd1ASkBo)Dm53zhj}~4R+KhpmZ{= zfqpJPO9d#{nW2C($&3biUVtV6$hWh>26F|~oNU%m*9a6MohUEZP_BRmCI@PuYX#_a z=@h}nWChfcY|%hB3D9E#^gQT=>glHjB?oD!3k7PYKn43u6{*3=!5ZjJ0fIh&Da4zL zNTr4(hiIUU0<=hgf(=WGQfsnR13g0^zY|stqz)@3)s}42Q1FJ(vs5cxA@6|a{GC?s zOupkEtmM=S4mbN^l&_+WInxh72#=$?tx`B}>sO4)KD?P`n8-YbTb<02RKIeN1UiR4 zd+SMrXmCtsWJz85)We$dt{?7H|&5o+ASmz1S+pam#Y!=XHDm#aEnD`W82;{>%1#E&O*0%E9-gVuXr zoo7e_p3Gw1XbmvX*b#3s2Qk$IPg1o$ z`jEZDFy)>LM17M$inV+DqgwSome{-lSi!#QX$qZqgef#)tp`3lABwuYXG5@i%CyaC zkWfPI8*8*&z$S3FkVrkk9d`*Zz&SvszQ@JG$1Mo%1|&~^7K>Xw{gBjX?M_49gS^v` zY`uh)LnKOmS0@nWjB6!(KEJ%rq)y z_PxH#geo;JE-X_*?mh}MchCgfMF1~|Cz2`7zrHjt*yU=wN1$2UZXl^hBQ+eP*yCzr zTA$Hsivd-qfiW~E>Jfm#qZ{@KmnDTJdnAUEr zCR7b(>LhDcH@2zsx1x~=&t1Ug^Tw#u}m;A9bH;Umld*XGkaGCEJri86=pIKQJYA%;T285 zJ)w`4R~?Ox1kJj9E8tj))L2L$n8QI*;@m^{(F@8=iq@_ zo#)|i+=Yum0ntfYR8y~} zyf0{=KuaD}vV+8|RI6#oCjz)uTv_#l(+B&5q+&1G?kdu@I=>D0xQkxF2BdEZmBT-1 z(&dDN?jJ4OD8&f%^!b2tz=6`!o-EK)S;N6!1Gp?zDe71~GYUUCJw3dfktP;f+OrFV zjlb~cBN=v(#&Pq{k23)|v)=;kRb>nlhc}Rjc*lVA4zo!|25oL)Pz5UG8m&fa3qxXh zrqz!_h}q4wuPW=J=B2W#IT$y0*}3CjF^je{wLy`wo$0v3ahnDd#%_v_(MZ=la&oxx z7~;UiO>8Q{8R&2Q@)<=-y@WK2@(`Ehok)>`N9!rn`fKN$V?s^h@MbwyY=br6&7yb% zb>1wBwXH7YEep-|DvS*)0g~wSk!|r#R9SX93{Rj_!pqLDGx0Pl5?W^O zi>LttBZG-&N750|+00V!3Z&;(f~M73qw>@j*2t=@ok+p3L%L7?dA14cK{2MId_Ash z6D;=>RM?n{;96Qqyo7BT41DZc^aWu!oZcg!BxnBx3#11>Nl=5I9{VK4^Ct+^VDO{M zFbkY$DLnFUqnU<~Ta<;m4^y171F1#nPT zUoJ?U!+|ud2h#2nNEmk-l1wTJrd#nQm)xN*?nQnrhs!uf#VCtySStyMz1U2MH^${6 zKe~1%21rFQFg!QvwI#_gE1cg z8a?Ja$%Hbxip^SOZfn(WZ}qT)rf`#=-g)JAfjPfu(`lV9G>JmvZXI%AlNgUVhJ#8? zs-aD7*G%=Ru|;KM-Ym1>WP^<5675Q-7*oOSM*K@QsPR0R?3d15+kFXcjD(Q4;$gKX zlNjQCjPc%u{N^y_eHL#rmM8nQ=nIvT{q#WIDEFNv8*~4F!mAPZH0Z62z(8HjHcB=O z>@MIXg)oa_=%E=fsHD6rk-?|9xLV|kvqt9Gs{>QnV1|A*Joj{>CaEU)6q*&Y!crp1 zqEWjE#(vv5O+HizTkrMGU1I^QP6l)0ZoQH(gE*eZx2V5=35XoI8J9^>j$t0|3PUDN z5J(HCuTd6+>@@DAA?UYJ` zFjneOd~h;t25XF*PI9mwtF7b^HCQ`t187RysrIsZ&^0U{-Nr?~F3mv(5v3u@YM7R*Ei1~Vq zl-aQ^Kob*xGthRmv9bdVIvYfA-)1O7GS!EDR1F@~H;LOfi+nwOLu%pXEe(F|foaBI zs`ySejMJ<{$J23|^6ev!rnZDOJ9oScbF85rJ23B-b2A5?Y2QiE#Y{%`dMT1CB zH&j1?jmhW0Vg&PJ+)#XgFloD|Bi(k-!r!>(UjaydExSgqLi6tTwSZ{5>2N_FNkG2ZG-#Wm* zp*|8W6`l}E;i&IrjUxjos0@y#94$vFDct_*nqYCdh{qtxAW|MOtkpE1om(B!AN8A2 z3^@$o1*#}O<*-@KnY4LLVdp7L{y#6N3YPRD`4a_|-Ur)3xAz^d&oDdG^mwi&)i<+> z|CMjS!v)&6zzF>%w3Z)kkaw@dHwq}=q4&zG54B%jc`bc-BNNz$W+tx9&$j~0pll74 zjuE_9z;Krm>+g;q!Q(8lN~~)IFXbmvC1IhY7hZ!h0JR72r73?B1H*7(p9`KtYYE%b6fmhgLRk_ zcAO9WC)QJ)-HwY!*O4IB!8XCX@BXY}pQ>O!{h|4~CV|z>X zxA)eppyWU1LV4U^v2LIEN4`AGu$-^j-=63~05 z>>IU!WFW9QZwa_9W3~?UQ_C_%%wm1@zhL(8|KHXO$}VQMaQ%7deaw7uf2Fd2o#C6M zWjn{-R5V?zMd!tI@ub2RzA$8rhTm}S5oU}phF^^4*i-_K0fO2vYUgmXAxi0a5q)Sf z>7QKq=>r(EdT6~F&f@^d1<(< zID{AaeZfyXf1;TI+Bq7QBK|e}nqvB+-k4!lRf^$@=_~jH75{H+bi-l#)KdEBY2^RZ zLfhp-#%TBh?)A;q0XrAM3;iPa0dl2%Kik6H>e3ERuWQ;vT=XC4y6C7J!etP)UAWZ_ z&J}Q3eLR)BG`gWWUKf(H&4GqX45jl%kkS)EU(E>XiYJ8n)^lz^gbk~g#XH7e_4Kgb z1kM{K+a=a868!BcipiN=IXB7-R;*~2GaK%Ep0-g!1RM(!;CwXrz@(I! zVmNgbx=fQGj$8Fu;nj;ri6(p(Edy@YBagVQ-Sij}jhY4pFwv;(R0q^f7&Jd_z{u1R zZzF5s=nTbp@#!B{+>z>)!0^WnSlQCb8CSgX0Vz( zQGCIi*(v&Q3SWX2qaZ;!=?&kGtfXC^C0lCqvTnR7$Wn0(+|;jzmmY#kOl>w+B>8V7 z{$pRAh4oXb2JeWmNRyfLYLaLvbpmjzL>?SK5yQNb-NdWKfq_O1{@+bhXZ z8fv1p#5+?7s95B^+rH0c@%PX!eK(8ak;wl=v-B*35HLmZRjWj~R_CG>vW-YrmOvVX zzlHJX8b$vW0ooZ9*eGf_Z>06Je_CGz400kL!Q_(s$N#u4oP$I}J)`bE00KS-atsRAJk_+1T-;)gB3bE#Rx6ry z?8kGwt5ETXdzq-5lUb6`b2dHe!f8_egbYkd8PWZJn>8CAN{NOvVK1P@pFq=>wZa#{ z>7k0#n{#Qi>k_~E0hL3z3{!v($`o!O6RPDmu#}`CYGGm>6;S=KOw?tGavWbZTqI+9 z(^;Sqm7md)pH@P9BT`oFqJuj1YP>XlHteJosqwxJ!GLU+;9F4yI%yhTl_mT2`6~3Ju}{14`S!mf*T)V<;1(|l*7!d8Z$!XFz8xsVL8S+ zOi5<#khx~x3F0p7jM-;nU_+VwqA@zNG|_nvIaFz?ebq0NN!ZII-vs`BOAZc-6iqtS z!CT9Yh7mM@-Ieamcn&8;l-af0hEKhK@7gdeg0!T|ln^ML>8nHcGPv5sU=f(Q!p)bC zYU_e@vl|U1h^;7;f^c==jZ4S-oP)F9@*iaO&-R&9^@K_XRpglb@erP!y}*!?C zZoMD~e8<9t(+d6lCVzF${$|bI&SBDMVlJ5tL(Gs1f+~Xqy_rim7nUGFZes{P^7UGC zDg^K|A#UpFVgtms+}Xv_a(W=(uakh zBYsw~qyOzoTaM}jUg(#=AE@Y$ymGTS6=dhmE~T#>_p^%~{gLy}2q$JCywER#A0XSk zH+62A9WZkah-;g(&`YH7J@n7qB*zStMGtL&HxUF=+=Rv z*j$FG9T(0dVZMh)`*a_+*!*Ojiq@pvs|lbt44~^#d+?xA;K8=QgH^(Vl2!%C=w>V{ ziK-c z$_nmwzF&gk-p2|kz#t;V>Z*tsEWKFgW|7OQ)3G$c5uw_Eux~yjwB6;YR}RMk-?2 zsaWR5%jc5$md z*8NvtAQn%+cCTUP0A$wT{*$&Q9*p!clhqT^+QwS-vt~8wXU#wZU}}p^P4K&B@pMgF z6Vp>H#HrD{UecN~5lQiuAelcZNofXTwy9Da&tE~us7R9fmGd+G%Gp;@>h?87=`v%w z6V;L_r_O-8gvhS?5PwXZhg4l-o%>B>x!>X+xY0BP2L+`U`DrjDVguC3VFb)hO&2_n zf6+B4qYH0*sl(S@{OAkE9I4G2YQ~l_J)9j@sW*DBDECmNl=t~wcfJ6Kb0M^!nFbF% zHf>JX2Gd~l2W8Kbi;MWm+{TWY5#!d#UM;|6k05 zdsP8;Z8jt(^WaXtl+A-nr@;-BuI^#x!W&H0m&%SH0PBc`RkkCdCcNS=aL_EnA79^LrbX5Ne_cG&#O5AsGpediyWgfE zyB&YjkpVv@^C5HF(i(RsyG7{)^ozhX6Ho;6F+Ib-&YYx1!K|J?awOCf&lF~j^mdFH zG_%IuQ%_$F`+E_$*W43VUC~)8r4lo9Pfic!d?OdSyqf_FCOGrF&$EIUb0n`axYYO{ ziaAP2s^-)o@UGR-$>K?;`XSdMJFSebT8Hc=pS^|&{LGrB zI)JeO`frYjaFS-rR;{#bQkGd5km*CiZKV*+Z%y)C?d=aQH=~Ivu_+IgFdz(TJU~^F zLmH0`cEUAdLg{9@XPh55Y-8G|a@b|){2r~^Y0FpJgORa&5!5XqdJ++*q}Gn{MjXd| z7-iLALH;m&s0$?Vv49`w7_jqk-V5oNJ0l4NO-3XD^;cV+<8oi6#5}yu5C#5I(Ju>= zso`J>ib^|h>!gE&;|i!Ldx5YJER}PA!DMi@P{GeyH`h!REp_Z$`+9z&Rylk4QDBzZ z*Xn_Vd)R)6`YB(}tOZy-Fb!SX}hvG6p1Oid`@828);>(6-H6qJH%>0%M(gkjtM zbdX8afKIr3yQch3!MxQJ?b(8ES`;v8PyvB0g^v-?(C{12J0uKHgzz$9FNU9pZcF-yM5Y@D z#m?nR>GxCgnTj7`t>d+WzD9fGN4Z(SR6j(MV#?4ELQ6QYu9uXJybWbu`OrKQh=OBH zCe3hy=@~97@xB8sz(7mb^_NZz0|U7{ZDSem9SWF3$(Mkxy@KD4T)!-E-iwZcoWZ91 zuXe4J?1-gpf}fAEyJSo31n}@FHle`vh*&3tOg?eMX46=3J<#dtc^oJlHsvW**m#O3 z+W*9(E-w;O(C*wGupZlBE04Kl_utcdpN6=xv_Ctjw>rcAm0+$uih~y zu;v?H7M$>zz_Fnn6O;Rtj4+tzIM#2`8=w(Xv%e))8+{2k z^2$D5t_fP*$AcBKl&Npm(7So-i>KPSFl#T0TJCNY{>@&;Xn4=^WDxAw<9-?~s$h{- z9T4f+i)>UhbhW;oTnCnp=c_T9#FkKDr+9O2k?B*5y*~q3VC9O8Tq>rJ^+_LwOk}M9 zN4y=qiXf-2lQK5i@nntr6H3|YoK1?3v<<8-H~Yc@L%;P}b&ZUjE`BVJz~avIUQ33* z&iQPrVb3eb-HjK-@8X?sN>QU2?ghUGNorp+_Ck0U71n>fWxwwt z4V^`fTxdsuK9dE2dy$o$X!w)!q~WClLh!qV$G<+*{~q8{PRUuWUxL%pvs_q=FWSwV zPBnDylwzD@!w$t04wXrfss3W-lKsWb;TRS{OcZcEDT{G8G;P7ay$b*$xgw0>GPWgA1ywo&xP z@}YVDl(_NL%7A|WwxlPojqI~ zXO-0c9#u1$1^S8nt0(~3zed$WF+JIrqTp3PC#`bR&KAPLw!IK`k?&LSXn1sQDnXQL8;Dhax6m~9hEq7yjA`3K)vFnwI+=e z-4kSIg^DeHSi-~(D42p%jIBY%&__um+|cXb2dKy(6(>c%!h&~qF)3*z~2Fr@cIkw=BiR{KCl2~iED2xhZW(L1XP&+ zfU-P#rm-R>uyGzrL03aFp{v33KsDeqNNQjiBo{k_)vtns)F={LF!IRYmOIQpNI^VZ ztWFT!`vJR0q3*}cGupI_SsYQ&|g zqpkqCfOSddF^IEf7plia>Txk2E;=FW>0(X-{g1f27bv{R{jRg<1o#4+4 z=4hmi3o# z$C_;!lm&K>(kA>J54n+|ZM^4S26-hAk>KU4SiC`S3DV15fnqe^!GwN5Nj3LHq-Vcu zhBAGd$l=KJ5ToSX0AC=$*F%7VfUP|(1+bj}w+8^eHxm#D)IM15= zh&QX8=p_VrIRx0Z9N=>Vcs&H*C5$IhI@6f^>cMR0KY*E@f%zT7W z{xSY^^n8yznWfV}JA(DoR&}pzy`19KtE9%Y3)fAJV~1ta)?TZo++%Pgs@ligN}bva zmO|WVUM*JPG$P@~E6F?f`fUwqLz_$Z76FWOA>*w>nzMu4`r!V z&sd1GqmN)7>+tWe4y;_yEA}45UthC*jTV0@D)&q%`6J4x{b(N$Ce1WK4Sv9=mFcj! z2`dI^iX+{cs&>-(D^ZbTwQ|;-&M|EHSP~A3N>|UNX>Tx4Q*o0XUm|#x0mJ_-=Fb7xjIww7ym+92cwmBcw78>g2DcaP4GmjxYFahf;8z zo+}^|^DG6WE22Im%T(zWRtY=2YkeUn6)e;YUHkMApw^+`eEr<*d}u1vo@&Sw5XXt7>scivt07j*xu$m^5E#o8 zP0sWdo!;SETnzF!8Y=s)F>PWu^H;G5)Spk8o-*RhL(BcZ9?O)BOQ?JJ(%<0`+@c{u zx}c^fScs+kgj$t-0+i@|!+s@ecRT+vRdkU7vN&>C*!bP_U_DdWcDrT9b1Ndhxn}1s zF1-0#+UKyXZoc3U^&|ZLNYC>g~q2im?XEN&c zKjn2}hYjn-ub^)HD639iwGl9MHRwliN0a0?uq{s?GSJmwa@+c{rjo=4QyszVUuzI` zkMOpC?35!b)!W{(;INck59oE!P*9uHm#s;Eayug z%lYypwbn2un85_cNQ~ovi$8iIq~=F0gGV_Rd1Wn$t$uSfc>FT+b) z!h2bDW#*;5-^&LEk3V$b&&9L5|9}MdkCK{k|0GZTlp%g!i$jt3N^#01y;45kD}|Os zuwef*A$Gu0Le%rp6e?6{3R|)?g(56XVV!hJuLkvd4UGd^2DWtn1r>64Nv*Q?8lk#M z^RsO>%>Ug!@=Lx<5W~i{j0pE-Ph#lzRt&JjK%lD&Hrg__uj#&pX_r% zDKghKc`t1!70AWCtIa{55=Rgl*Z7zczfm&JW+O4_|Kx zUw86#Ydg5if0eII`5XBN0xem@BN$mp>O1B>5Oq*@!bhrUXc48(0nR~2sPh~nc$y5aRM zb5_yLQOh*^+s}+IichHw(m!r)qlpdLxofF^8X-PlR8av`QdPj2zZ(~Za<2>Fw~uQL zPQFC)DuV_5?B0XIC>?b{)Bo1H%S`V=g;mBP{=U)j{Q7`Uj;gN_E_%Jo?3V(9%3uNK z)DH_!aqJA?Pd?@F;OI^yuQGV62CSyFQiT@&cvWk#=>iRREByc7I^j}l=p))IRpa_D&C68LkGHw*u0FbL3I`AYgqW%4?LfelAq^lKk z9dlyA%5mh3{)Krz?%-8542j&hXw?GU_}wE!G41>}QIr$O--ZVUkvG8&VqZrI8}3{9 zLd>g0zMS1oJGp-ZiF)4KIZASbT_;BprkAigWW2XoH!MEQ)QrCkU9?$+)RnHQ>Q zWS>xdVb|;tn}>|?!0Z{7=TgR^>Q za5`{l_}Qfb>bU^+%Td>#L52{AzVr;`$Yp5xZ&B1W_7)BkvJ+0lq-2pNuGWC#O4Cz87Vg+B~d>28Opm7@6$(ybcxQFL)zhKT5Brs(B(?Z7YXAz5GG zh93*iXo|1lYz|xoa3vro^5q;-R{JGW^|;1!5Wns0B}VeeqHTTn8Lj<)a)^(XWoP}C zQxkMnEUHQT@;j8j6FFl#l(W4qe>*>lOvY; zEBAeQ7XzRO6^J_bd}JWzgrEAo2eB+=9OSqz<70~W=#Y3}&J*MP)r$A;&m3T4uV#&v zEGKkm{S@dKO8H;jO(xz3e#Jcx9$MTcGV9A`N^awD`=J2D%h;LK_?o@a$XuBNt8*5Z z0Azm!$)2krZ!L!$KzL4hvhFcJW!(Nw>b)4IT4MprewzyA1O^bl;3JI_hg%rhzi{K+p3EO= zjbF?zH*Q!A5aTCCPIZ1|>2TsOjO)WQh8k(3R;>-4k8N;)rK=7s9XA)ZN{(2%I1XpG zlHn#U_Q$c)kGhQaz)nAF+E{6B&*|tt2-ts-0bvdq2;f3JLx(|+ck{4|5x1Y1aQ+<- zA`QY=wnu0XdK*ae1Y;m$F;8rx6?1aL_v8{xB?Z0Z$#(mJU^rCCHL&EYHtE++L&ey0 z%3vhG?TRao(UkalUzB8+D;%-s5aoXsxfypDYGPqXxD65lT|tP6?22-Fz#f+=}Tq$6UylSg~AQ& z=rW2VRGRX^{k{OSmx`CGHcm4Hnw|e2G`m)AxcT_S#~f44P#!EDs$`?%aSc|qh?w@a zpu(D41?_k_B&l~^D#I^1(KRF#4O&($M1cLm(4VLLQoxB2UAqzDQOipxO?sLI(H+@M7d5zFR}S#aFP@FdQI%5^k?L zhfVorkyaNbK0C}`qhzr7vCjmDv-D0k@eH(jJfVi!QW+dmNe0{@+&vBz!LQcm?*_*h zSC!1*>9FZrT>m@}$=`){yJojDo|W!xPsRfVzru*W9ZpS-z`czJA`p8p9vrv#Xgkmk zN{vTUy!sO30UrSStcs0CwKg8r+IUne<54z*myF=WHeq;JP4)wBgICj<|6LomL*;Px z!_M+Vq1xXS3r~7zgD(wpXdh*o*Qh|I3Z>0lKGxO7df z1ye=-<1F~L`DSyArI*gW#&%T;abK6$r$8frQ}}vw_p<#*{+&lvK>`d&!V+ZF5VjCb+}Ot0t*ZY)474Om8kJc20o$Ae-CH zv4#9V=KLyQt#8fLaMAB84`5b+H$w6hgPHZOdq7p^?&2#a2^{5Nrw%b@iE= z@%|mcn^}Pr1W%=zrtd}M>!nIKV-IslqpQy)jg0#qNx}L4GoEUmQM#1C+LorUT}o4^ zPNgZ-`_dG4z|s`h~&3O;i2h{;SPqRTEOb2h~L^ z|GRvsRRO^3S3m!~;5`rL&p>>iuWBjae!gb%Kj5SLeKc17hkR|yKfs6k0hq z#Q_12=B3bTRcJ#rFC{iqtI`@ARaDxYSV;aZ?H~8Y{ml0FPs8*7HOu}UcorFC+=;B% zXcb}q`jZD5U)#=6B1mV1{juQ-%<>OJpfb40v*y-Q%~Oda@f9{)(i!NCDzTbuT;zVpTqm{!Ak~>A43?nm!qYFbG_LN& zQsMm<2CeH=cnu1dX3vR=<)~fVyU7T;d&o#aGm;qS^yVW`%m;qJja$*k$F>&-_>@MBZ}Zf+i+(RA&xofDMQDX^IL5z6)=fW!o$kr_^oaP^8n-1m`zVp&3f1Rpn@~0;o z>%t2HXAxFWaY8OZ2@(8O=E17(rr@$0Ov9>GNOfPKx<#;<>ALvzZ-HgCm^TLm5E^4B za=^m3w*&zsv+?TzaWZKsLMIco4K{w=8zBqgWcGI^P73DB-8hes$Wu$Szxh!3`f&LA zBfc6JlF&oUo+5r^yed$!Y+uxEU|U;>f)OIS-PGBPkCKY%hLt@PYEa@*F)M8bN%9kT z1N`^|Z@@P@!3Z~~t)_$x!R_U-O6t`ROxfNFrU%}n09_x{0Q_+*r+5O+`0;5rehJ){ zP~$T0B)ykw$JAaMznB;YA?H;c8 zL9GMpCwuZsw&Y8@H1yLB(PD<0!Rr9948`R%s+Pxz{wsweo`lz&n^p5h~Lj^=|; z&ad~AXVmSIXSF+rPq~5QbF+Qdoa(W2EK|D{ckik*<{Ykt%HYcMhVM3;y%Tnh%xU-! z)^-%Zs|>=gI&+k%otvxy zd?vmnNY7Ci8h*t3q2|I`z^e=%_x&Dp{WLXnj2?UD!eD!joqGnz*|bpvuOD@;=%Vf5 z!U830cP50W&qBT7u^=8=C%+cTbL^JK7pL@&7(ENYZSgFi(_XjZ7Q7mtqD~uEcQ3&^SLPH=?`V9&T}@VRU*j$2yGln)JQz<2nImmETT(;n1r&2&*y@=K>(IRv&^)tk56!;}LRc!nY3+Ou zUa{Lfw%b`oYDy~#3wE92uU9Jj-ft!ap1qE$PJ+6a#mm=ecpUF2Aea8G(z7gcIm?9a zXXpRGa*|kSl}gCMWd8T6Y@Ck3ue_VGSr6{%C`^5|-Y10PEkZ7QNIHb$!{RilKEx5+ zIk$fZ-FH_wvb0>?f-6i5+FrlHW3LW33x|78tTB6P&?vtJZyql2;g5b{PfH8S%5E^I z%C&?Kup1TPz7%enIUgXN5^KZ#lg-&ot2+rQII!k5(f~MK3Xjb0D$s?GjVQ=$N*J5f zaogrxP=GSy9cNE}4Gv<;-k*MGFG$~|Yjrw&@#gl!S z>TWzer@bUeuyemOG}W(zD#-@>yPrdD+WR}D2$esG4YtR*5X8*M=tGC@yQ1*$YfUC7 zeCKDUnO$2!Q1~hF*Pmk1K~VT(76N0=$?H@!8vlXZtNn6jz%oJMp90VBZicY(Ka*pbcJQYyCKF`-2 zS@BRDBxR-wWHj(Y`H{WcXy`BmCA(&4`Z&iyICl`(@do1$TAc}PO+!lDc_DVSA!cS3 zl8S|V+^JGBr4R~%KQBoRPjFqMK)h{8Lucv+c}C9zcHjb=8ayf;)fMY zXQ$9Xgp`6~CQQ!0Ue1!F!q>Cf(j_b*-H)~f^PDnd%@WJcI{i&-t4)>9)G)M~4HL7I z0#F&uwLzH^q-p|GkG4#kuf2CofvMRI0j#Eg1`V5#A0d2OnoJU#%rsCiF9|TUc%CihjUS(aHvzit1gK%v`SB^LPB2t` zXbDS#TM_`_j-Z^tmg|uu21iQ-GoCa(L)V-3-^DLA;O-w)AtuN$?tM*-)=bC(+6w=; z?L@dv<@*9qdRnf#g8*oK@+SEx-O6HSU8=0i3XU~+yNckO14e-vP&t>4JG?~BzvX%tU zG!v!a8&WKd%t-r}CUIykP2s>;n!>T5H09Y|DZl8ILVHz;^-H#YX%c&QX$m`IX$pIT zPRU{hXJy&yO28_PRGzBiN5>cu2k|3c1&}hXjvHNUAhd%D`5!|0m&T0_Gfkr7M&h@m zz1Nhoi@08w_wwk`y>KSiztR+JQpx(g4(PBCga>r42f`y4tt(m@qY#Vct=`{Q(C9M( z_xz2K@Hnw_+>j2V79Y=BW_AeKxj%vo99^GFIzt~>7#uB#i)a|GfzP8yKz^{w7~`M zo$7U<*<_Bu&vFq(@|YEaEUfjA#rwxjFqfpL$e6lgMgmv!t4=ca z9@@D-DFIS`U;g}jvlxo7kIJCHZ~pa!V}h{KpF{Y`e>u}PGio5H92WkU_6g>!h%Wqi zNLoeBu3x*zEIHV@S3+Vt1}!oxilC)3SolY?2AHX;o%>4&|K>N3z)g==y?uUFqkqrm z&k4_6}#eP`;Ny;HQD@+}k1iTW24@ql8)gOF$~8%o034Vb0XT=ieU~_WDS9 zuaE4p*GKy3^?!T6C82sfZas_?`oBA1@Sb|U2FUi=`*~&ROZw2u)>BXtS=)PS?Um{PSNS!fDY_MZHI55aIA8EkSGL-U;DP z+_lP#2Pi;gFkpdkhZoCnfwJwH(Sf;+Oz($`?7L$7Ac0P7MZve-sGUjvyf!LoyWAVN zo4afZe$H2+>8zG)QmVdt?-j>1M02utAHSF)QA>G}DOX?sA)s**<)A5D3zwE+cdI|&SZ z?i~=A3Px4SPgqk*Xxrb68D}8sq(qgq<%sY9BZ2Thw?c=)|0|CGZ=1S4NW z)IekYA}dac~20cRrLe zgCxX0qc@>lnR!Lxba4rqI+tF?&|v@6kf9uVP!U6Hmb)H3*;qt2%ZIGLZs$-`x^|E4 z+SiOx5EVOJ8L^uZb|}k;?v{N^>fcYKjL!sG?6sN}e??K+@U|7B&B`A+la9TIHvDaT zof)M;jD5e1u~io~g$M5=$~qWYwEuGloV{4vzoeb}7zDrtos}JDZ$7s0<_ArF{9i|# zsf3-QDbWC3zg${0La2?M=%_^iqYo^+1GQ_4;y8rJt8pj%wxBZ|RS?0;g35F(gq;H_^_}-KBb&IR}k{6te-9}>3W=VZ4&ES;oTmoTG4U?OfF++hgFEdX}K`z=Kf9{#% z9aw~tS*ifExm#+xSTzahEAoDC`o(Zkpee^ZQIuu%E>C5HK}8@ep2cRC>gu4HAsfxh ze8P*RE2+;tbBgJg;Diz|6#Ej$q+)?I)i%{NMr`+BFp{cntacBfAmr1R?|H$ud>&f* ziAV@e07@EH>g4<*#$Jvamvd;sy^>f+bFaj^{6I2BefUL3AXT#JEZO^JyI&^&&z7YW z^7Z)k4M>AZ!=XJzkVm3#B?9*FO{-&OVI|nkwJ<^nc;;#)cm6pY^pi1cM zZ2%4bNc5`vXyl||5dEDjgE!Gj2U3_=Vf7YDLF(Ifw*yLz?D%Dn&mc>A2i_t=#k|FQ z;3rr3z@>Ui_;kFbe88N@n7S99x*H$#(o8c$vkr`U%K+9^FP&Hkp{Q>GorZr-i2R35 z?Z%=7%W!s8;jPyO^rPz&uERZf)oiCK?Vsb%T4DOTSLm|K}VFm_aa3b>^REGaxQeHfJ(G<;`av-~p z1$Z9Yo6t1Pz{n#Oh1V5K#kMBA9>-V2qVT$suQ9%6ml-zm*u{kJQ_Q!YM^uV_A)-$} zF@E8X!5~Hy7SuM;J067e7nr}>)W=&T=^5_?K1W+OgX8P(bHb}UZ1*0(daFZp??eS^ zT>{v#LpC1bhq5oKPcU@Gt))@RI#XHA)z(~d{{@tvRxjbSH7(`;?vwCU8*@*_qb}Z} zjA9k2OPwC5zPII$L7_`(pRYnXyCVVQ$ zwJgQUT6t-0Rax;tgA{CAtwzF&%BpE?)mcfCl|&ZDm$Mu5H5k<2XgBaX&|RAl%GQWXlrss6&NRs1u67TwxTbu zUn1HBQz)NLq>P1fQcCnnA{r&4p7mvQC{bH#zL`SJdK`f-f@G&;x-W%Jq?RhF^>%Rz z^{1_=b7)g&Qc{;}*8QzWL;m_DP-EZl1oJ!5ij48nY58Rl>9z&=fqXkNYPdT3(i9>8Ic=a0gc+98#ik1RB(Ha$3)^{0dNR|luO04=VxXrVPNlzn zTh-hPr+Z3l(jU=pC>Bi}1=7S%yYw(ECr2~Ss&}`Tc%$^>DLSsoSmXw;$dj%;RmSqB zk?#2DjgrD|NwDHmmd!GHz~i2zGCX#I8Q*!D7GBS~P&F9p2>2-OTp~`6{cCZ?CS;f=q3S#5)Jry>?V8%yI^sAHu#~jCp zU@Ms_G)`SOjkI|k^1`PxksZf`*8W3>8s zCi#c@J9Me~=O<*=t(E%uN!ph9LV@}uNU0CrD6YQk=~hOX1etCDG7<`a?Q*X9*@L0K zqgUuVCC#S?NnHVI6fAd^Hl3z&HjLveU>2D_b--eS>`B5(r$g}fI6;ZotX=7jZlw-> zV;o;*relJj_+@ny<7#FAJN4L^p`bJ7ru32ABpU3=l7ZRjF1g9wWm>3RQg@+eSPlO( zGIwSC>0e@S2ZEF^{L1zH^)%iM!x>`YWh*Sr8R!4Hy zw{zk@p9;P}A}7M_Ri&x`CcZzRDm}FkSy0KHNr`f z0=u*jonr;g&spVD$dzM|u%|2b48@9<1IZ#@AH$bCt_O1Q6p3)^Ezjhbu%Ec%36TqXB zc6r?C@<=c`W{nKUaRU?mqF6hb@!D)Q@g9cdJ(+LwLC&if@f@>dj&~ zTR~|gCn+XW1O;&@t*<+#vWL6b#YU%Vd+Q)Gz>u?8g?g`2F~^v#cEE{=5e4GYqe=T) z2zTG*7NR&So|RCbE!minbJ(uDQK@fNxj)p6WU@M=H>MH*Wk)3`E5h^^Gk1rXKwV|g z!}N*cM7VFnr|>%35*l)qrLmJ<=Q_8|J(xmfR3$o5^oaUz51GJN`%HY=!8m<;x<)-HR69BHhV-%kFBb`h-?Bg2*2Y$|TfI03)g+ z_-$Qd?)E5zRX_y8n9kt0RPT~X_3{{h|LqR8@YJ9M=m~;kAuVYg&8yBUmPab@!^K@v zaMD3Z>u80I9Z_}+tU>;`1MBn7z)B`Y3>*x@FQ?!`i zzFIY%RS}^_Cqq$ehH?qR_8@DNJNi1Sv41pbC#}SKN(-yp$1!?f3aWvLW^a37n(BkS z@rPP__Mw&Tr!Sl#h#EUd7RgDn&`wg!qsAyPq)Lj(Rg#qyKPQLsTn{1UNbCp8+jO}k z3yl(wmgLNY{bbjgj^hyMAP!$;amPx>AY$D8ze1K$6^f=lki@Vhy0U{(Gl8IlM(2iq9cs0^di*NOWbc_OM9}-?n^Ses4S^R2y3gDNT7GI zoefK>OTyh@Ux?0jd%Y7A5$eW7t%rRHjNH!=B#!%cBRg{!{9ha6K7B;;0M2fg3}LHJ zhOkj3L(16ylR-3OGK3{?AW4<|e-;}&!Qx;CV)D-EConK3f}Pml3T?%|iVYssgigmn zAn;7<*x=bejtyvkj&S@6{QRZI>31a6)VQ#*5@nAE1urouP}?mhgNJ`$d+oJF@$)sJ z-N0eKlA=~LOlYs5ZtPCm=;ASI(&MvK^+L8Y?2d$RXIeL7?;!o=xx0c=sYXxg*Y@an zC)N;7R+Hwj$F6tzcMs#T0p_g!hVv0>_?^Kr#B!=((Uc_GlfSW(B+-!kjh*93Xsv1O zuJJSr?ue+0C%ea!w1Gp=Lz2%yi^gguqs+;9l`u+3%D1AZo;!~4#)Ka-LOIE=9|@vW z-zBuwacKm)ui^>cEvc15JGgoBM&((P=q~K2AX-iS2yHb-Py+Wz2(9?;P0drxfc}>7 zMj{O_ZzR&}?i-0D44O4ItdOXW*s=91iKI6BVbe*w)h-Y|+N-a$q zLBHlj0MCD5Hf3*YY4(y`~ddGbcJ|IUd9 zwWES)6+jZ&%Ay3i%QV9GV``q_CTUO;k6w~nwxCjDYFjy0G3v=lMkTo$G6-)gqtXev z1>}tsuyxLYGK#eCeob{?LPK`y*_VX60f8{KcNv`?MfVoIpRd(Fq$Cj#$_cegG^{v5 zv(n{tG9{_`159J$Edz|CiP0NzrOp?TgdHE!dMBR4|Mo#7@e<|)x|P1#DxD#0nwK`M1LKu_)P8wSMldXa3ibk;CnhT zaVUSd$T3l~AU2Wc&0VNCRb%48$nKP2L>#pH?v|A3^LQOa@FE6$S?YUSoQ2n;zWIlE zc0C}*^jiqvG6|uNP z;ZtAF#NoXc)5wN}$6IL3=V`+^AF7r2pXPac>jM|PQI-Z8azE;zXZz|!YVVP0QqF3F zyDqQZF)*%0_%)PGiDSu9o=NRb%X1ep^m;@e6;aV(ZAVlyGN`OnK|#%ldIu_Y#Urlv zH?q7=QjDg8seS@|8r9m^Uy^uj!rwSRl7EMWjR!KRPfvghoZFgsVnW-qQ05g{7aE`B zF$hd~-x|ZBK+%_slvya@uA`#DPPR6x3A2>8^Ccbf?UIzQFt>X1nNau5XCY}r3Buh` zh^8uv*e|N?z`G<%oZIFUj%1ixPD;{9cw5C}Lb^ER(E)+(n8X{~+@Twzo{O{M+;M_8 z|ASs6gI-lhdI@i<_*6(;z4W=cgt|e2Fy4}?7h91DSK7v4DX9Bh250mT=vipN?kTm( z)`VlQkjV4|Zbh z5!e9%=kLBEPMQ?Qo%Dvd;Lk)E%u{hmGA~iC*Vb={D|z~DB>nooK(C=CIwcRHM7Uvt zQ0;Te?z|{XD2n@PN^#L?{^Uutc_-`X5vu$;jGnZLZ;J(!M>b}X3}J^&hOqY}L)d_m zA#6Dg#9gI-jH+Oy(KB%jqB7`Y$gi1#_9^J6+6;d%BX{3v_7&?9Rkf9(@FgMvCVNGj z%z2U78Ru|R@#k!a@}xQfz4!-zK4a^Fho&smAB5sK8!_8xM{{EhY;aYxv`i zdLJNPj(WnK(I}jFIxcMKjTVClZXQmTkBm8U?pKd0jqkzoM#-c70r@0jd8ruhHeM7Dp~eEur>= zpkvd-Y$iz~H~~o`_|VoPIBEWD1Q+}hFrSGxA(CxKRI3qO$x9u<1$qVqgt{h=;6%8A zlTfX6%jJyVgrer(bz8*SQe2GSfAUOTom7jp&^AYKicB7PY0_i}YdRUirkM<3hjAb& zHf-ao+^(tY)CcihyfE)Dt*d?zp8|D8_LH@F{$ONxr?)#aq0^6H!hJNMpSwHa$K1ZH z%^E-E_B|JbT~VzkxO9Ujp(^gD(6?qS-5oJo}ra$bD8_uM93x*qp zIqZ+*k2*^B5Cs{r8RyDw*^%X@j=C^Ik9 zn`nE5dP)E1u379MEeho)06g7_ai8xJc)FEfIV|zM6!&ofp2#*DMr9PW$jNdo)O<+uJnxTAf-~ec+(`=`3u8sAHKa?k@}5X6{irB zMs_Lytr@D)@A`;sn|+_?I&|Lki5^PRMrq2(!1%JjH0b1nP|xi?NFPIi9U4*A7qV#@ zR;|~YicVMjdwjAf~J;WD=xB^5wvF${z76U-k7Zmj$e5 zx`S^DqYB4S1Ape^uvBA&tk!cBsqHo#lbyPiR_zc9hOZGzx*jUULAfVy-=TfVUpXI_ zFz$RlMjhGeb-G+#Z=dQ`8djbLRrwJ?*McB?olvE&t{KKHsHgsEN5@~aR?X^qlIufl zz2QRMR(}iHvf3K$8=M6=850{v!}{<-WBB9xoNtjmeGZX2<{KYxN&mSs6mK63)J3ybXgV9;9CentRFs%zP`DF4pU{16U;QFU(mVnCl^6hzWkxqq zK|?-D5Z}{-C^%ba!kbxa%H~O@CGl6Xr9Ty%|J-Mp6;6MDcSnDBW}z3=#;8R#nxyST zHN5{Qe-QrNu9NlFXvDO#Iz|PZn3hIyLsr6*0uus~0uut`5 z^J0f;zhW8lTxgcE4TXGeqt?u;%C5 zvh*%I{4n(he>b*iUy{6P0rT(I=1*R&(2EuPTx1&0SvR6;U^?s4F7BKBhOz!|mf=R| z;g>IJcQ6hP--NpyyvSyt&*CL*BYZOewI5&&V=sGn2ctRI5n@$Gd0QlSBe%qUJj7Ew z_HdQSuFUc7$!7crNjLDRynK;cAx&j_8&XB}zWRtqa*|JtIGET;qdbG`QFli5`n3wN zOj8@6@dzmHl_^i-I3_zbBJiMJ8!rg`<^j$yz+MQRJcZF!{?LUVuF2F75B^N9{g;9< z^ZkW>Ne12-@eDS{CXPv36Z*eW+@?oX8FrlPp@Xt!}KNm#jZ>^LFSD`qHnL%0RCW zq%UkbIsOcV)u`z0@Es>E(a%c2pfFqkOG7VPr<&SF4FmOKCOC?TQu#l_RC*S#Aiok) zj`oIKCEwAI;oET&xdWHn4&E@9J#l;jmgD^O{y4@a>MlWHWboJLczu}?D~JDqTS&Sa zKXPuLnT2EA!)a)1{NkfpNeusvd_oJFz4)5bF{rVI9H7;y?~|b=julX|f=Rduq(}MV z6&@AQ0%R*xvo9B%YR!5cGj^y|K#2japl^nO{W3JE! zkvl0?LXjxTXN-fa^^j$=YF^BCH|5~$szhONL-Dnd1Uuni3JRW9pD3Ab$ci`IbzcqB zr{FoB!5g_3OjY6USv@@J-pIw*dX2s0L0A*JXDnX1be`m0yXFXez8~BdqHBa7;rs9t zpO0W{Kzs2=?#IQD6QQ~V)j3f3xO8sGMG%4^eJ4*V(RHo*8eJDmtm&4EQH=N)wLxVW#1Kf(a3RP&^fBKD~NQ z!Zb-}b}5>kiYVnVVO{Pb{q-?-v5_B zy`Um@R~db{E&+eM1Yqmavc$Y*2;H_+8iii56ZTfiQG|wigp!XRCeU3i6TXqU_HGn86BS zWm1tvTC2xv0>w(N5n7`oF*k2_5l)EQAyAi^(8R5q<_N?%*U48GZGZSZsW`oL(?p*z z%&SoEZA3T}lpNvEB5h2k+I~k$&!$StO3NBPLbl;82&P~_H#kbp+*$8&gQFCz6C53` zEBOzmUgjK45T9~+S%ZG$ZO7MpTHsbvW?|_hLr9h~<-*`2$66hGgGYB&8Cx4325A!m zCgpN3XZOJ$deDuxtWOz+j~A`@n7VNaIK1XDgJEv*Kr_MC&OaO5v~#dke%i+!LE_j8=wVy?uP!iSef)Q896p%z9BtAkDr28wwA^(ThritKk;~pvxX} zWi&x+K^LO6^ufp_Gt<J3G{nj z$=4AT|01&xx(!oTEuo3d?$1_)%d@q&+w$$&wYhWZKUyeSubt5!cq?}% z=Mu)fRy%2BHXUcKR1C(V_PXUc3q|^MZDTSTLBDU@(~Q?ogI(Cw8BV9i7VAYKZn~FOrfEpLI&-msdrI1JhEd0**1lx3Ow>U{-D_W%QxE9grVB zCfZqN5q>PT@+eOq`*dZcy>Dde6S^9@gQg8DVWxmDQt_Ib6UVQEG!@?|gwQ)DLfvv-2YguyCj!oO4%uBMvR;)^ zv_-2l5{sUwXHd?r3o-8mlI&(*Rf>KxMZ)1*OJl2#_Egy`xA)SM05zyPXS6SaLs-~( zmOeUEaG^rw7Pu@jnK|JPWb-$;enW{+>%}LaI5?FzqJEaEpB4O3cwG5{;^EMbGqqa$ zHWCJRL~k_jmtNY{c%zgBI2RB8@!TxEMuG@NAxMA8!dm_0#2aO%4*k@t=IL{QK(7#_ zU->~Jj&)WaQT9fup2Kj)f`C5J0}Kj5hG#|@@zn;F!=W#IzQ^gJZ+zW+QG=~3?(OH=nSoqkrsXtEPk&qK~xxfGJ1x4(ePMy=$j@BHpa(LbiglV z+E|8n{VHUxeR%`Y&Ay>jL}d6-%76mo{bWyO{DIi|6I<~Pi}Mm0KE&ZI=xe7N zhe3O1S-;N>6WnF}G!$NT=Dv(P_2<+Wni;_yb<{Ohx>P|TqbRQ^ZWM_S7lIV~=~xM! zLQ9A1#|7SSZ&2ge170ICiU#LcBk+s$2RAQe^Dv)K;Cl&@BSe>h%23VM%{8{S-cw|6 zP|~-tY>_kdqmC6+gK+B=R-<7GznhHyrfzI__4%wR;M(4PPKT z@&@kBCpB+m4{jrG^3oM5$%ZN{=wwCS0;u+(mRQ3yPhjZ^`rNn8_cfQ~n3pX%7I5WA z<>|KuF;9O&o;k=fN9CCg|EufvG-K8F>$|@Dx;eFjNvbFZSSc&tUt>)tP#iw74zvB%N&& zd!2;dVJ`%qK^$4m`e&0X4`ip z^l>^9v2KSb!(`(+2ssO-gX~i;YK$L76dnyGX<52AAkLxtBs_dF8UUVcaoOI5;Q_wC z;eC`J2dSoIMLwWKKg4B3WCU0+Qssj-OFBZ9w&7k5cX^OH79=`A2mofDu5E;m*T)W? z>FI5M*0oOiW4MfyQ;X>v4-rl&iF92COSu&y&sL=zICWxtF{yPaQ40L2Vg|!frjJmF z9Aj!`nl~~Wc}SrmYuE)cBOe3j6fIMVhSMaaa~M)Io+;a^Xcy?BWua)+EIj@0^U`vC znu0gF8p@+;IRtsO_%U?I33l-K3c(Q~!!t>r1K^FWiPLxaG^!6P2fadE3i_dgEPc#f z;=oCPI9Xp_zfc<-N22V1S9Yon_0Y#rqdp^_prANv3Z9I?frdmr1vrd~?U`eV?@Eum zMXrNS1*tP{{_6dxK8#&+D|sR0?+Q%ch|#R9;d6+M{6}nSbyWE!Vq|cVC#SMC@SFDW z_8*>%DoT7|Aw!Oha{AV|%0?Y%7?n=EZ|C#`7JT;h+|8=k;esE z=3vXshvV1^Z{!Q8j1MHl`pv<9Y%~mZt6`6=cjxd8oxqNWHYb>CRiRv&SzGc9pZUBN zlFj0)PuxVhfV9d$2$!3MZ}1L#5uQj5#|7y!9tYS;IR1BsAg6pSg@fEKY^!hc$|rQi zC22n*bF=UI=IP*LeN?p|iH5$PdxC!Y>}_%o>_PR&WTPrj@d??wH5m5zrs(q z(C~(@@f+EXi;)w~!~w?NFzE{}j(p2RrZ4gxesjeYs4>wOSrJ=2*HdZt`{odR*tcq< zPJFlnCOqe^v3jId9`qe;u!e1@Zmp*j?5rP-)+6KkbqNJ~ciRXZHF%pG1g$rn%?sf- z1I(MRuhel-Vn1nOKM`Npc#6|y*z3Iwn85qPv!DTo^qKSxKd_j1NHvE*Jfxb(U-emn zi{F{Ar++v|NomGTe!v5(@xcQpK1^#=820jmj+~`^y*El79ItTa{Y$~1y@EoJzT?z+ z`e~#$N<|&|zg;j(_hfhlh2TC|tTr2)RFzg8Xm`~gF*3?GaTx9vG{4YRmNUEfjOIrc zxU+PDBJ(#F&90Ib`7e*Rer%pP0jQn#*d__%I!VS>T3H1;)@_8Hn*VoCEPsioD7zUq2+LYLu|7*YShVw^LuBP=L_D#HOJH#??%`$~|LJ;J z=f2duLKk93_)3^F;t_tyCz6(sPFHe$kqni{jQE&P-7qVX$(!I}rFc=!UOwQjLV3!Q z3zQs_#9Eek2G}<~utxi9aRR}`;x5*oiXPSMTM7XUS&(i%sx>v;cYYgY0Nd0ELWlYU zm-?4KqFyf@RnOykz!9-tCf`0%uYzC!v_0}mYKdtEMh88zHuhYn`@NAC@=NupmeWW^ zHL{Nd{W+@6*KAr7A1|W;kVHD*g4h|2w*%vDWGUc+*pL%EUF;ExZ{C{f0q(peT1cII zYWc;m7~5&Cj=)su8%kCMXimpcM^0w#s~E_X{Ip0AScFdu9em-XsBhzKI4utvxfj#g zQF9GqV(*^d$+n#l?u?&&@i0QP46kH6;cUe<5krsu;5=6;K5*Y!?Eo=NZ6u}Fx7$RZ zAtyLQ@Zn?sD&97-)KGxC)3!ZYrXO;$8Q`-G4aL9;iPwA*(#5*o2J{qvBdy_8OAO$b zk@Wb%;RCgsj-C;B#~(LN(bECAV}+pmKIfYQbcWvOnQ{7c!5R#H?)acEWaxL{!uUeO zhB(8W=NN9rX^jd&`pSJ>wa@TI&x+GG-RN#_gF*^H`pdsOR*!}lu+EM%+&KO){on}< z3c;nCF(^6z!0SD>POo7kj-)KDGm^3#&XN06(Sb5|hNNf-s@4b6*5C1^V7p)&|eL2WF&u3 zkL;Bg?HFCz?3GIE-r$Qf6k7755+4& z;HOGKRpkwz;b!bJW`KT+YQWj=OtAIF6hrZZ%fNvqCmh}=i=$80^hR0a@Gck;Lv|4U z*c)Z(LwzIVU<#iGM6QI8S(tnJjAP;%t@^HueomN@k1ZLc{omvPGp2LY)c$JxisRxh z-K=8`76rr5hfAUGKq}sE_MJ)J*$3c4th!^{S(Q=EK=cX-I!~Ep&JVqH$mq=2WOP+x z)`AWrKn@%ct&i_@aORpYrNh!lW~2fJX?tpl{|ODbX%frFnkcSs!Al_ zy1GpNoC;y%QC@7M(Qc9<-jQ8uOwaN0knUWF2OVR;sYbVikWL{;f9u&Hrz;=yvp2dW z&TwAC!Fqf^7gPwE8N<49zOv4D`=<_#y}r`Z<(U4uFEmu5xF>tp#~?_rw_U_S`p%)T zL%?=xA~M_#y|`-q#jWVhC0!?>yErzf0V^};8|)gVRSb>Sg?YHnF?=2v-2TDk!&jjp z_8*dGYhAomr}-N?Lu`&rxxF%J$;}K;fT5k06})wU2}B~KD@GqJ}D5 zSsPiwtj&uem`!mzQlvXcW%5;!VPr?b-dM#dPtj6$-WAA_iC3ft=&EouI6lUJg`I#8 z^RDMm?}%qOzEnBC1=-Sj0@>`+DKoI`SI*W`dBdAvhYMocS9uD{E>tD|^{d?Y`*EUgwJ>>@tfP|QmFzEbYdg_XKS3@61!~ytC zWvyTB30W5_wkQ3a-7v}9D&tGq&e%Na62-lzouRiFGSj}2X+uBeY4|cD{gJ53jNm)Y z{$OMPuDN^B1&ri1q4l#ll>ry3omw#NmEws`Lp-|7%Qqdq&n;`x&CE>x1)7*--*=%CxV@62_2uB#eqapNU$ba;exsrtE0{cPorYQ#ob z(I!lCdFp?k%OkZ=(GTBH;)Jv{l3t#_oo}PsL&kDioi_+;z>5N7yt^Ltd>VrQNwtaBcU&)>*Wlt<^o5H==u|p!A z2~4k#aecnyRCh(l8@(jfC+Z0XdnjvP-7_4YeMc`%!mT@Oi5|r;OkXCrr4HYHpZN6J zCveQz9Y*MMGbGw{2A{jv9!<>btAd#OpyaVlfV;bts8@?)@+^Lh{4YAvzp2G5N zO4A)@b&5|dEyEPIyo-B#BfecxykKp@n&)m#dz^U~bz3!Gu+KLD<6Z*_=5#y7oq| zh%?++yH>B-qUR|DqrV{)rS3kN=(afhiD$Oc{vPxSkuX)EkDE9D#Q01ld^7VhAE0M=&X8RUXW2-Vy%H^nGTtI=oZ1cvl9isFQNb@yT&ADmdZRnz3VyesyY7!r z5C|JygABVi9-QTAJm`X- zVUwcJ$Z$Y&@k|hZg}Hj^BDQ}X-oa!MSHE?bUOw_hua6h8e(%DBNwY%mn{7EA5?&oVl`qV67f!t4e?Xyx3DzW9z`Rb2DBTpaWrXB0i!x2b+X?2A8ZFaNJXT4=UMjWN z7p_HHL#2i9lNt*@${#iBPMR*Bxbuj^T-UPh23WMs>EdH)Sfh#07xi@UdMLS5m1e{A ziMsn?x_Cdb!^HR+$irvu7BS=jlw~Z6Kla0yBoQ)Usne$(_&IEb509=eDf|%OcEWQ_ z8xPx6?4*{oGMyzYuW0Q|8=Y3g!(=ke z$Jx%%H@f%9?h`HBS!PG1g5~(fah17#+`}37qruHuxF-IpWSaS{t|2_NcpRk{mhi)@ zjB43t-2dG5I$Xk1bDAP@@Qm#dARAYUh3#-`VwGOQGGtnV6^g`WgRaDp#xb-!M#hjZ zQ9x1^dD%%-p=yE;mDRQaK2-J_()lpq=HP|-iEDE9@@(|-B?~<@ldn;gZk*picRQUc zm+93SLEm`BDQzIU3Pft=@EDEs z9SAYmezglV49=TA+Ot6WM8^rMc}%yXcs`3Q$C%`&NB#pP;g$#& za4_-(AsEZ90Q2H|y2Lw9oX8u+^gG?5qyp`SF44nGk^*{HHe4MY@Wcrt;MCPRBr?UU zDqRWPh*VMJ5$0_E|>aHHPRfX zQ(h(NNKl5qhL2&_R;Jtf%OpK;CTUK;x@TcS+|@;Igfiaf4OFRs@9$KL>9?ISuuapa zEM|7RV}-7A1E>7l3@Op;a53j-74`04LBZW1ubXg<{0(`jT2dLV|Eja@dr1m&>1GPc zk3Z=C{_h7TthC>%^Ycb;!Q%nQCM1jpAHK+0y!;b3L5&EV%KR2)zLq$rLEHhUXRYWP zk8l5!T3Pqzra8+T#~W7`Pqk&k%27&LYJ1V;!{QDidb`%vT%BqiK`8}qqk>NJb-}v% zvQb{2)kAxdc;?94W}uUh`9~KX72g#Sz4MPV7nI8Uj)crzaAM~BCLB4cRmqWgTHg%Y z5O1aGY31i*bsz@&KgP__4NyUk;wlplGar6h%|;adLFWBCDooIFn3AeLIjphJEIRg3PJjB%htx}-;UEi zGdoQ$LV#W&_!Q*vlEqq%ss_7Ia`%?X+EnA45aBJA4B*_z7k6&b#lGyc{)o0r$re93 z-i8+TpRU^)EV&nQ)DvS4WzPNMNQO^i|5w{PywP_+7JZ(1#yQ->zuAcH{_ZFpRwgwf zddCNrB&_8}_fgbKBI;dS6TD;9PwR&y6o8-aR{ohK;L^F{9;f`a)?L={Mkm9~hxbEQ z%+3yCF}?BvWuy=T7}A2i8)@}+CWbBjcBVpM0pHJ9=wv85!V}Wo2Zg{E%7#h|&P~&i zgK{d5WzJ31&{dH2U9xBv)58uF#ye?GS6=mfL5N)`0YHeRMd@CTX0Z!So%+5(7i zQ@vm^lb+>frHQEojC7r{Obm9RY{R3b*W)cs#^J)6R% z?(MeN)JLM6^3#k@bRVN9KuKo28@S$2S0_wljuqV(;VS#Dz0u>4j6CO>ACLL@<&kzvfQOVLr>0oK(_~4_u@j2~Y%Pcx*hwL+WR`AMZ^wKi2G##d87gfZ}_=n(wm1+ha8 zlS>2dbzGVwRGE=cK# z`pHZkzwSm2CU7;~1cuP?P2X}#y&DcIJ$xAD{DbW;*z_;C-ps3v!%erulaIxd566?Y zBDwx>inzy3JuYa>K0QtMNs>#YP4^;M)bs=aO^@Q*fR^HKx=rqH_e=tKant>{D{T6w zTz3((xamP5ctoyu$n_z)-ifQq7~>s8-i2$!IEs7#siN?avAZ{Vs;b9b-CMT@#FyE| zb(qW{#^%JM#e0+vnnUe3eH-&_@{IRX#HMcY^e8~<_H|{ZqY`k=h)vH8}@R{yFC?{DMPP4~Xh8>tAEtFdk%1aTK z2XXny;%uCo76`RVk=G9L+9%5^DhmaC;a3x^RSxw!I3UMdP$WN8;J_S%1w)0QLI>pN zR#q13=s;}8W++y6D3~Ix9i$Z{ODlym)RE|+OPXC4LM0`t2EObNs!3puZY2Psq6Flq zRv9WB8bVbiNy{q>p{^386+;**D^XYlgoOZ#U3o4x@Fwz?m4-U`!mlORsS;M{?118S zY9H$2z#L^*)=*am<`k`{G}J9wSSf^6B@3&tL+wM|Q-t{;ESxMXlvf(+kt{6;Y1PTn zN+7IfvaoW<>XjlZyEN2W%W9{34;oias1Ja#N4CHyVgjdZ#gNc9SwgTp)Xx`wJ;6>D zXaoHnkhW8Ps9oql2j<8^+X)SDK)MCwmWK{X7FJ?I+Q1ZPen>kwSy~aKS;^8W%R@EE z!ocPa)g}uo2XIibtWX|=4R&CMIl7gWhlZp`%Yn3^$*>mdhGxO8;U0ApNA8@<*zM^`h^D_#_Qw0bK&ntx|1rZQ%khGKI9F*he*HL8-5w!>V;5#{Qd=c6@TS456*bs zjMgA!^cmAI8@@r6@%{@&>Co7G2-2GK2N>1>6f;o0c~R-if&=8xHmi~lJ0s9B(BGOi z5TRmkIqX)bGl2^hl$e;m3VX2T2jpWiIx!dGQrDcHZkUXttbIT<=jIz`fJkU$m|PsOiwA%&k#a4&*IxCh+UI?af7Zjq4rYZqYJZA}s4Qp3z39UtA9cw|N5cKEUSYFS)TH{a*w2)6pC4(}_Vu`>OzYI&enT|v1yhDCT(b7q2GNxYgV zR?3bZ$lpAh()v)E6#RUR{hQ{LS`b}c(71;O7)DLME|5PPRNjumyEfxx>Sutq4%ckR z-O2C}DpITAtSF^OJr3D$s;C55b3QQU3|v(Gevg!uE^M%>5|;&wd`S2gVZ&I@NYokz zU93^K6y%xxnA3|uNt1vr)VJNu{z$=CtPkrBK|>;LY!Ff;yQp;@5P>d%;$i>6otZE0$JK-E7z6PX;rf5iuQ%a@d)_Mep zK&5pM#5X+*o0&HddR2Fn-^%4CvMzzNnFW4xDZ!g`7FoDcSzwEUWD%@c#VqoGFh}5m zEV2yqani9p?Sq+XcXfh{BT2TKWQXFS8rBx1tiB=~=3(75=i;r`t>#onw`feMG_h zb~nsrZdRCM8df6_|0aU2McFkQDb;7^Yk6#4=00B7CQ#!W@FRv9u1S2vN~7q2RNYqF zyns1Z2tKKiW7cO_d4LBF2oAlt8`vh0@>iy4NwY65Ff8nkJ(-5}J`vL9FnM+?eiTxY z|EzxKt`Cx84Ou(8tTwuhVQm8@#rC%mevZJQ7W;zvF)!nALCMw;y_^DB4rw>aEIp{p z1R_W&N-9JV5krBn-iGD{mF5xx>~1;>wo}#E?xO5Gz=QB%^pjSW5TVg@6e3m_=9-4J zzpInCNxQ1H5hDrP#tT47p(t4n`czGJtC>gMyU4o&{>Ly2UFJiPvd#x4&`3R53 zSrus_G5a=Ba-9}5qa2!|+V9|dB?HxuXp%P^r1iSsl6=HZz*!GyIC4pExN3^isB64IBpUU`gG+EurFhOcpcQe%>6Wi;%8V$$eYq6!fzG ziIP;A+1fe>YtcEhzmn~vdCD{*18_Y?O34p$c!M>+qV~!7I{ zBXe?des@SKG|b;$+i+NOeh7j*u`L&4KI1Wp(8E1^p{A+)>UJ-V0LECobh`SfJE1wh z2*llu7i(23=q~h-mYWMQ!7QDALUV4BQO{cf$>ae6)MTW;&a94r5GNW`s zb8dyPuyo!Wa?RC574yg#Dp@dxw91h}2yQ${*_NHOzjex3n~41+s3LdF%F;mc;~jhYizddX%T7C1lK= zCK`5J08IeekVza2t#KYBBshR_8x>ACI1tk;h4McXSb#FCG>Zpe`liq*nU{d;o{S6S zB{GII5(X-S={#`DVoqe^id?<)gt~&hru`;bkd<$u&E(ZAZjTl>oq*p%NL`1N#FNV1 zpH0NuK%_VrJasXw#{mzNL*Qw=yPNED$WDKwhG9GhHmu7vJBKmzSPq0HB6#*9!)d@p zwT+ZjX&u@VBm*dJxp2X;uzMLT3TD~ihK$UdnCg{|g=WUX*S z+9s;XFrVdxUJlMKi&-{f02X$lRS)Zgl=Y6llSa(bN&iG5Tm|97L634xA=|A$TXr=D zpbVY`Xjm5kz;At{{2U6Eg(p(d-$=R{{t+In1OIOc^v7lHOIyv?$T?GT%GZG@3;jFc zM`}0+D~a+D=ZgksQEZh)Gl)_JYC;O_kMVyVuz`Mo_9bU3CgT`+{nly;h8eu&klJ}?J#1m!mT+F7lr+Y7S>s3 z#4*xVCwW5?R{hubv06~*c*#BmND2TnsjN>0?UY05*~k)eTbG)GtpXYP8D@%UK(GKs zwYO-Y@u2WOlxCj?M4%%ksM8CuL5-jd6m&gOy6-{IbGQ{t97p72BFEvPa$$a|8V@6u zW3G^>a{uaLdlHK_XqXK06fbr`I+F8&m0|;+LN%Eep?XSKy#JIz&noNH?m%)TWxWr8 z(6ft6KQ|9X3iJ!`qe^{0Xv|ZIUr3bLgefV?1rSwhUrdsxNJ32%31S_?I!()u#{rp+ zIjsd`z2(Q27OP&UP#ekxa89+_$skxWSc_18gI#5r7SR(TYRbxNWGta1I)Ib=OU&Iz zwa!CI$GfP6<(l^+#Jf^-GMT^d!d{LR!scc@4YYYTp@RvPQV&H+O8w6&sJ>GKKx;qp zR~^cnK-#Uc5@4M|3DS?*Ta{71L&{oCgo%`d8Vb=~tF?@x57(k4Okumxe(g!5MTLo= ztJ(8AtXENr{G}vp5o#U`yRZ`3?yXcq(T8wYE>-4zwEQ>54^Kqld`9MFK2wLuVoOAXQ`>9(I}55}5vIIAWDX-cN}>|wIhHGRKanb1vCV+AfS!5PRvn)xq5ClmY{=6YV(rO{FL;zvkc*CcUo zv({lRs=Z$$>CGg@lF4nIy;TMM>A>=H5m4eDb1D$Z z=^vt*4$(~FrGElg4Gmjm`e%i0G9&CWHvNWW-{yR1aDwJt(;1cVEfltz;fvxkmMEpH z#)ZCK8;H}6nrlh?B8cT>aI+pXN}pLsS$7d}F`22TYBlx*B*lD{6mSfNM{A4ZhGs0b zxR(q=a6xrEf*)(OMyq~9NAbENq^NePAf3*mI#p*HX$0UVomRq9>mVQ`{;}w51OC!! z1wr#xS5yvx{jDvXz{E((YDV{AkQ6ZL0-XcC*@2#+&}>FY>{iwrxXQY-gbB*)mon>J zK#1{J1xlqIWVn@Zn@h;7P+1%?mmmeJ9!S1(foFC_5|g1T%&uf+5#m-6=c}BD&M_GG zV!#=InR_T|EH29Kg$^=UGnBb8v$)mvflQVEJ`=W|^94qPVog>Fq%0kptB`{2!}wu7 z!J6+;Nm3xTWmTZLT8TFVhini{80LMv)ZqgD_0;h=edVF?iE*V!hb!o^lDe&qAzVu~qRn8cb9kej?fixVibuSN%C zA!HQsBXNP{rw|`tp3=%;4QdG`Uqnh||AetnO7A5^-1caV+k%>`eH{eWy(oVmCpa_% zm2NHv-g;2@v}N`I#N|4hO7+wHGr(VSF$nn(;!LO_IdYm)bE;&jZ0HFtRD5pr3SQmE~=~U?Bu1p#xGL?PI3slP@4! zcAz>)UTZ$GHg{3nNq`GaJD2B2hbLGwTO*5IX+m#eF4rmoNEXS=HbjA~LpztyN;s~n>a1=?l ziv6u}GM-Bm`-^e{4bvk))}}HW71U0m_w<}Y6o7>(VV4a z%mPdvwIs|S57x*LL^e@twhCK~6SpI2btUFYVkY3C5K$s>BoA0Bhsa-enL-LI9&4#z zpkrW#pbj18CbI0qeTuqw68^A;r%{S2?ay(&Yl*)Scr_1UIh7k3g%J z!-HX6s+my-&ckAs2ezkQQC(oArja5%Pr^}(rnfHZxo{gbhwH3_ZWih6-nb$!#5$_1 z-8BtLY9uX=)Bs?m1086OIH?$ttshZR=?W~dayt!3K_2VDdRNf!?{KP48Sa z4+D)Oo`Yr=%DPb#!_BCeKt221YM!bK@jBdkElv_JtW!Z8=z`|fMZycIrDcH0XS`%Q zRULLWWC?N-kz*;j6E3Q4e}R;34Iri;F*9&cZR#W{R0f1pCo4wvIH^FouR3Zn8IHsH z8JBHOvk&C52Y1$0nvcy$m7mQ~74z)Y$l;W>OyCe9;m>cN*8{;Mq9m&uF;H1ZQY%l{%6(dZ$LlqZc|s!NoKVzs_urofyhrOu6d-Hg6<~y;Rl0 zdq@fIbj?e-=J&kNcc3+%N&jmN7d%=UYe`vq4pLT_Lh)bCS5?nAnk4K2nM6KJw0JUJ)V}1hj^AEVH4*R8CcT%se8-5%GlNKN9!KWSvTsBpF`Z23YY5@hMMaB9Xg#=ZWPlz;D_G-a>fPt!Z3G-q>B}!Cv*OS$Av=&bD zm@K~=C9*`;0U9qAZxOu?7i2yTKg=Ll(@xWr5F~+Jfv$q@pmd-FGt(08tiZeg_YweY zUQ}E9UxeCQsKrx&nwx;PWo=#QH_VYyRC_DXV$663r#QJ==L-%+hZ0WF%P4Y<=81PX zMAe3M9N;o*&y?k)*_cAN5I#ZZZL}xY%XwfzPl%F^cNDS0I{C-G=l^a zr;uU@E+|74epD+SPiC8rSR#Dof%ZG-qFQXARLZjM)!=s|QWU`)_${`0=re~jY)3%% zz>oD6il}A}eQ~Qa+YCOH^((+iqo`p2Qw5qqsrPDxWO@{k5|Kjc*)H?N6up+HVYn!@ z7f}q|au5Zs-T4E&$O@93MzWr`s7juVlywvl-w^@Vg7pWfqgBiuhw&)2P_vF!O@!mb zEZm~YAtFM80qoygb?~wdd~R7FuNXdeB*}lnMQvWAu~jwBB_|bpi;SG}E6*hxv8bRR zcaf7$*pzTdX1_-OX6?{iWh51k(~%%?M|{2+L?n0$DXB0XE#w69%AgO+Z*k2hfTxke zdhJIq*@QdEY%&t2eJFEde5&klI^{!ZQ7xZ5%Nlh;V>}Wti#v*>1dN%@2YFdd{;ehu zO7u@mu#n;(jv+}OTu_aF(sMnXZANIj`b-G06NB$aoSZ{0OvzK51zQL*b*K&{AahEK2+h zGN1Df1_l)JbmZB4HwtB=1VbQf+w(0g=L7H|m{uYE;|nb<58?mq5V{H4W5)TLQQrw>j#WvvgXV5f)aWE|M6oia~;MX7|2Y7rI-S`hI z@){JY2j3|u@vE@X<)8_J?{n~N2H$Cr`zq>u4EWzfmG^+$L*7LFnRd^s$1E2`;*pX`>Ff9yk}06{af>Vk}RfoL`aZb5^|K;1u! z`_)j!58Pv@nqtsD2cF)yTIEMZSC(i>Y)jloC9;-2?che-j)IO9JK3z61RhZi@wK^D)_$z^*k6#{1>=f zFw>JAh|=BytDS(%KLG42SY|sE&fX8JfVV$n9RiCU3YzY(qd|k`Z7B90te6c;*w3Pr zz_C-dkq3ud&dJ$l&0DB!Jo`(DDk-@dF#A0MxixSVr{U|8^3^F0%!@@`Wi2A=33iO61-{JQWl%fpgD@6v! zz(l`*;WU(Z2?X4POm;)q`>29pz&!vVd!X#K;N6Zo-U1~rK&GpJtA0^g=ol2FAFOdb zEcX@~>(`+97V`cH#pj|u?D`S)zYRj0V1Z}w{~I8BK#|u`^8IK$#VBnZ;8mbmf$C|` zdW9+PMXB2%(+7~jPFUg>-1A}IRmdar6q^Ypj)66|Bacp~ioq!TQ&995$T$^+;g&)B>Tgj$$mBf$#~_n` zLQp;!KY>DPVTBoBxCcTvAfpFix-&rg1{7F>>i8VAeStS1_(>=cgHkUdvvYuJ0qsY~ zAPfs!4Z1=o^$LC`!-*{hz7kd#NBe-p~x!yKMgY0p(?q6u>u*IZ=?9uiI5iPUlhm- zA~N8}jKRvrbY>dhGTgyt$>Z;(;I|G2Iw_FCl1Z3|D&a#|L_QT3?3Xk$8xZwCkZ~=-1`Jb%bq~n>r7$E`#W9hxMrb&tEBHr* zbMTd@P;zCMYj(v2+8(B@;AN&cSRBidJq42ES7;c44uEyw^8##yXUX3LP|N}Wj=3&n zint3g*{XRJp1`^bRNS1sQKPOBfO-;UohLG21+g9{X8%P}9N#56K|fRsExhuzR~&Y_l{!zo~MWB<*I>|w{f4x+z1VuCfV z03|I!)+df7Gp9i?>3WC8x?PiCDaL6mXKCC8Fm>&@nt*nf%>jCY&Sg%if;CHp2K%2( zfDCD#<_M%<{_F5#P0}(X%0Hbny>NjZH{yr2Q&ihS(_qqNNR`X11|psS!14iYF|?NT z4{vE*pp(^(2u?Rt>U|rYGMtuf_$>I_matc+3c9Kn=JtYA9UE31=vp2A4e!KRTb}}D z1}VoqjZ`{Q1D`<(lW(7O4^uxgbq7;Iw-oIo+(OtRObIOb98&3+fBCF+ObYN~Gz&Qh z*(!w#4L6hJ8Kwlg4TDqIAjgSt7%Fu;e0lg6(ye(_)9ri>sUHdJ^afI*;5?>8%6V?; znK$VF1#Ruogd5z{HB1Q$qg6S^+BzC3#ZiIrA^a^fIf1F~nL3`SADCLelt{KQ@Tk-d zH}wWn|0SJ$EQS?@9`Y_yBJfM5z9af`rbNuK7*>=rm%6EI+*B8gnBm{aaXwR`G$SjO z`h+QwG8_X|_*c@6Whw*y-)H3@xCnb_)}BlWVLvx@EJ)75FB&%SSDm_yDdE`Vrsn;I00!HQ&}}9f#^`}VPao*RRMW$QEjW&#+w!H= zt&dgeLqk`-$@e~|Km~je01Fs?zxu*l5JwJ2rsBSu2W9kn@u2!x-xoY(`8B;W^(jX@ zPNDt?&DRH^?EW2@%CQtHvC)5d@g_I`9Je3b-BZJN_=Kx)0R4Mk1Yj=*)hg-z4z3;yk!iei#p|ytac;$O?)+FDneIwr&VNX4Cy@L1 za;QtpBQgV0R^qZeG7~9pP|6sYrSns&az)qsSET;EEK!1RQL{Ss`)<#HLvB_EdG78i zeN2kCq^PK2HuAv-z%nCqkjTqk#N$R}!-(H1hOkUu77jHG#ZGw9Q{`C^yWmBSY2TtG zmHm*ePxMnC-U`2oCYzHPGKIg}?&tCFT@DI~U>VDwiQ_Ub-r@j}7hHH(z;RxAPyDFE z@^iDiL9cUEepciHnA<0(yyx+BdmgrihHD$QDg_!(o~6&0DU@U2fYi7jj$5nGS0^sr z7zx~Mj^dZ}AMZ4YmCImv)u#bAheoeSdq6K4Ep`Ypvwjf2m`s9L%5FXY*6)Jd|25cuSn?)oIsmDl`*!2dZAFPX97z>O;iDG*mZysvd1XaA|#zkY4iZZrB9EaB@x^~p(l@&1y!q$B?N1v<_B#cKxT{V2FR@XTN zY>_BTTx47S*^UJhP6(?uc)aLD@beF3jiU~bq2CVn{#ll}BQpH4j>3y^F>4V+tMgN{ z5jdH{-CL~A`)mA=63${og&9Z-JZ}a+^kv+xJa1*!9QSl87FvB;#qY~;$Bf;2Y_N01 zENSYCk#A#U$&*p0AYGaTk66!=aV3zE9pN~_FTf{$b_HMI%?#pOmGapYe0-PHgQ1Ky zCUMFOkFw(ze8}}9+SE*Q>Pe5<~g{LOC!sH8;^Ta(H=(H zWw`&TOKjR6e65^&iMfLRGJXrekJIdowOIP#lm_F2fqw>PWU#Wq=!N5;iT{oG|26)D z&FJR*qVEVje+%%x2ma^aKPP<%M(2ED@09C<`Hunerli}qTWI7P z2ec#2q3tH(8TT}~p40A;JfHC)us$QhZqJ_%ay?0|_XP-fD?mY?%Js4igxuPJkX>^9 z64wsK0R@CVBiA0ihgj}b{^+dpZ#&Z?qy|I$Yy;r#q z20taVG2}D0hi<|3hOWfU@5XfBs>kw=@T{t0W!_S?&?q%Ns`|pN!a2d+X`DmlIuqAY z`m+)T$#t?^ufP>w zRy=SaiZ}JZYq0-l`hgX`4#s9caMbQj-1v>VsGnmi>uFgcK};Y+CiiY9>ferBYmT1F4m*)NhGBG#>RoXUV&@Aar3~N0bhPF z)Uu6z)?@j8O)wvMWcv*brjM5LwS8*G_SA9)jx)$Wn;o) zg2sq3q#q;KNphVh*G9o!Ip$8#c*c@u2(Er(@mR_^O|Iw5_0|rQ*8XtPEVl9EGtNAm zb+bj%n~q@mvm=<<;v?A@?;PLUFKE0zp5mUENam9!g~#}f_a;&FH*&3;!gTwotk=0y z*|=^$=8LLQ<33z{#v8{hG%Agfx*m0v#vr*KjjPXy)Y%*Ae)V2mX8`@MAl{Lyx1OXW zxcZC%^&4>gS3MixOSqOAbEi@C5?p=8)6+gi^Bgdp*b&nwP4^j1)3@My3$FRbz!@WE z_>AnCAESAWm^orbzA;O#4RSqa<_H_0)w75=YZg1$jdI;Hiyh|NIqXjB=d%5uDc3IZ zsLEiu9wyhQTsPv{*~pt;HovnmWd7l}9w+IQlHNAIA0XEY#Z-QLWO&{~v4b z0-tmJ#{XaM_vhZddv?0Fd*_2~%oxMwG-n&b#;`fh@gBp*oFWnR*_{zzgvcS%7K)+} zQK|11i9%Lr6}6QLQ7VdWzV*MZ>-`?n;rsi3|G%Fez3%IIUDx~Yd4JxY!|wZYAbZNh zxf3xuanaB?m<;4OJ2A^QPVYk-OxiE3&}-7y=$}n$!um-Reua0#?I%;Q8C)!T1~pJP zV<+mPs6Mc1#=aT2!(sdKjNg)cz?exI!rF{Ag>^9NBvkrtl6E)`&!mP+Soh2v56Ta) zc3~C1{{@d<@FgA}a=;6MfesYk;vr%rdK)s?@W@2ego%DoBx;UFAUo8uK zth503LURsY=ipn=o`ZGVDRvk-O8S-{3eSgf;A7~|nX04bAx9C%K8N94E*;C|KsDf( zFIaAf`$YG1@CA(F*h3gQ2NwYU(7@OdcXN|_4qU}^FY3*1_k-@^;AdFEbe72wyP2xo zFS{3jr#Q@1$3_$=-en4Bsw>`SYRS|@e8`l_)LMMXG?1x_xWF{dcG<*gdWfrx4{)%T z_=%Uvg}9c0n@KYW)4gg4H@lt0+|DoL?dpZfyZU{6fs#euGPd0(UD^P=~5NR^35Q{Jd z@FY?$JT8_RE{tvCa%+(8j>Q_WjO*OTvGrmlXTGIrjZuo5a|IGE|9Y{BQ$N$erXKpf;h<&*C!#yhgMU(?C2>ONJ4z25?*HJ`20T0L6NZ27xaOTuHk6>(vs4(0x z^9hVihj)b4LbQi#dB+s)jPEEEHVakr30L!u@U&oW;HoBHi#IMWo!d{wY8)JMAmzd_ zBo(Qzi6{Rb=+-XfOX);yt_&vc(_mCB@pPLLd1?%5KDR(Fd zMtYsZz5fK(>8x{E7qBizO@j5Tn^|{~ny{atob|HzN!;yT_ilo#Im9OswV@Arvh1{h zPWL07>-UwkTJQ5G|AVXxSXcNr#=+X+-x9UIgEB`tXw~LBDD!u=8wcz~Pw#*esDlG2 z$IK0AfDuquPSxYr=;#&DE@+9gd*6Wd6DQlg&WCzxz zs-xL%Qnvy#+tmFSHI@CDbw5M9GK%W_615F{7xk`N8@Oij$B(SnS$}4|iHe1zsp`yV z>gf=+$FNS0-eeUpJDSF6K1UymrsmgkbPL-rvArXPYS_>ERt(j1g6+x}sv)?(NqzY- zYLI&ys8^pf7F9sY`ZRQ%>r>$jwg<9~u1`ZZk?s3gi#TTq+DVYyfYxzW);_5CFrfxJ zu(pW}_MzU-TGW7QUebWNzNWz@6QQ)h0SpJnQ(#U!6)R?Yc|7&^$@m%gNA}ius$y6C zLukJqUyOPrei>>7>$&)~Xnzy`3~G78EWC2ycmkFED1mDGg6*pbRKv{#YQ<iiOSvzJa>|k@=e?v)@mqlNNnfH~O!~$f&wm11TtR5Sn%Lq8 zw0pMr8Fd8f1oq#@`Vi|P)>SQj#lNIKYkd+=@UF1_+S-oi;cjgLQ3tl!WZ>VPZNhx9 z`8L#*vNp6B@3Ef6sDNr#^9q0b!YY#~;GIkxUPv31%)Hf}x@hSTgLYsC>S#1;6I3hg>8Ki8gwYQ>Qk|cn2RC50uXm(X@Owv- z0(CmkdJ61B)kSxrikfsty!NW}VOaSSK2l^_|vY&JOnMXZtO-PjuRd z{z}&KU7Fw-_{A=?iT>1uI`JDS{*`YJF#TviLQ%)0sQ!lH<>(7is6+3kP=Qa-FTgLA zMkpecy4x`IgkeC7)I`keluFU`RLUH{_9(Us&^BOtSMty6O7^2{KaRG5r@B)8+q#}G zaQ?sCm4@_94jf}$-i?x;?A8Mt*wc-ge4|@$w2yY9%n#ZAjP(-hb@uWOS zOj<#ov0h@m&iXs+Kl)IqC;CukNgv95f%O&Ea@OOlAF-NW@P|)dDiGS23dFKD?@KeF zeP5aZ-C48PKb&vYz6tdFuj-uG9m;j6x5uoKt%PC)&&FD;CllK{7wxj|M|gd@zVB>2X8Xkzy(x1pbw_$d6U%`GDqV4 z_ZdRrmj|`RFJ&g>v`4)k6(?X071)#Wm89rQ^nb(A{e#*E;oa`TA{>6;HXTj! zXXR0yF4m>2=34%kH;$Trbll)D0gsQ1a11Vr9lyyKT-1a$nKcDfKo8dJ@zkvm<7qi2 zu--R*6PA5wJTu^9D(DeRe3Ky?0k4@RD2h$JMqsJlkOlcPB5J#r8 zMEzt+Th#BSbV8L=yP^h7CA;y|o~WItW}^0=+AK0F8eiuKt8DLiRp3bEYdXVJr0H|7 zGZ+WR~F#iCf# zi{2i>1FAHA>>V!ZKuCScTo^JO-#qCFt(aDtAzyko6rOOHvDlX6(;DfVrWBtJNY_Hrd2T2r=ReK13EUx$0>Z_l%}Ql&`Mvp$TT0G_Q}J)q8j0^ zC%Brx-0m|~_`zO{k-kp|2Uy}%u!HX&5eQ2)75bhPq0p$Iip}!*3c30qv@NB-$be45pl~mMc$=&doM{p^4u+mJz>Iv zzS$D%*L2Hwh@_u=DD#M*atWGfxZBI7cVa*Kj+M>t&@Eqcl1#dTRIoJ+<$f2#F#9~* z^Ce)tHvE356k}~6t1;1Gan$~%YzKKv#qf>&i0l9t71;v)&dW~t%OjVwwf0*Eogjos zt^3ZO*> zp)1^GT4?L)A8d4m09<68Y_=@_NTdX&!$95c2AL|xs|oK}nx_!FrL?2bGm14@|IK&<0FqZeFJncQF|gy8s7 z*Je1*%S;mzHM$(j@C(s&O-t=@vJW^lEq6Ha>%-ZaHaMK3FRakC-Qj?~uuT!{cf`ql z5Ru4DaD)9|gd$s=0E*4j6cpfueqb)Gm6`>6@1$1BEI58A^?;ED7iwi@gAJz*Z9uI9 z!bLVr)0BeLA2u?nwLJh1D6$m>d|(WKQ%o+~0|Avt7fl^}B;dRp2+%?e&9Z=H_-$|q z(|p^yfYxFVBx>3m&;co3W%3dZhS~SfYNj>tV!-FdVDM^5b*_Oov1>!X(u&9hhXX8@ zq2R=8)*0Uq@WbzG6Yxi?nmyDoNLK{jflmDT`NAFQY8j3{X{mDi0*6>eKnast-cfLr zX+C#t6kKFlWos2wU>OBzcsm#!9Ucx^fmE1`-~SRW4%&!Vtb?nAc34KkQBD73@@lIJ zzRQ%Q=?v3qO;t>ln!aUiii#iz0lz?C3Q>-4-G)+yJ z_G)U&bW>9|rjB?OGnMPhRHP|~>9D3eCL3OP&&R*1jG2U3@Ij^(niepf*0h2t1otkK zxq)efre~Q-H0@@(py?n}qt2?_J4}U4c>Mc-ahDFBXS%NGB2(Kgs^Cvd^ECa&RHn%z zgof0TqA~-R(ltdfE!EVR>69YV)|xRORTWHO8mg%`(?(5$nW{A9GR1aP6^FnXYJR!IaojmFvVbQ&T$A0Zjv#ZfhD9 zYEpwK>8fA>2a7e$WIC$JWb(>Tng3wQ()0w=YE30fm6~2)is+@vy~5HEm;R zo23fA%rsBan@nYzjxkxXRpx1?bWNW#E!A|H$vma;24g^fRS?2y5Ql2=WZI}Hh^b0b z3{&g?RW5-kUsE#E4ozK|t}!jN-3&jAE!a#v=+VhQorq5m>Glkwh={WmC*EDIs5Qo% zki}FCeIxuVxv*E$#E8!=W8kKyB@y3R@?hQ|Dpw4fFmoIn*Yr|^o7;F;Jy^w#MEKxu zYe$Fh@lPGO3gP+?ZV+xoM7R~g-W)~6k(1n}!u2~e*X=$?8Kz>-Vr&-7zC&}}=DJtm01?K)~yKA?og@Qe3(6)kADlHEb;}nh4jk_Ej=GN7emAy`oe879390m z+sV3a)>U91t>{Oj)i9LF1^AXOcmn@crkD%Dn6h#ewTS8^pMbnRV9nuuYNe_o%a$4N%79vUx>+f>fzv!O>?e8{wLc#bRtD z*v3;W>TiIj@b6--)AkxZqTwkhAu@4ozl~2jcnS`vAe_SBCb+5TQ+yEgCJ33J3VzM8 zL`^?nxlNF+={Clm2B#+X7zaEJvo-n0JZCL|6`CSrb|P(KG8ft!#k3ZsP^N<|V>%#J zYU&(wUOofYG-bprgJ-~&uR1d@rc!POx<#I*?C6*S#%5@%X=031Y=JCI_hV)4?@Z@LAZUsT2!73r7|4ym$_-Fcrg>nE4!J7EtrW@NG;ozQePS zX`$_Bj;+&V)N^2LmnM5Xr`QJPG@11=xDBprY=gn=;5AV#QyRv$L#(F$^`5gn4_TVV z*4v4c&r}RE>m89Vz(Gw#NIRj?B-ORY>m9Pb1dHy_DeEq{$g~iiH|w3Z?uL{?ZV(RF zyKdbBg^GB2_rh@Vch$6*_jn%yU$O2^jJ zkCP|hrl!sHop1u|Gq?rYuKG@K5*lfGqrSt0laQkET`c%M4ApcN3%(E2G<|`wQ?N+W z4;VWIC7K}i1ET^CX!4D%L^`FZZfuL2SAry*TaeyjsdgHzMPSnv$Y*7Of7cLr7{f;AXB3uX6nov=H0iu+l(#JQs3QkNG)%?|X{t2kGo=?%ITx&I=)_nd(?Z*e4ddizP^_sOW1qoBlko`9U-X|t ztcwaB2KsBi3brg%)f6}CC9A>yD0jxTywR_=FJP#qO-Nrt36l$UHA=>7JB~A{X?X$Y zU(FXUHALT^B*WJj!G6h@(wTuhlq zfWCbqldTpaFTR(&0_n@SPG0v{Vdipm{ImTS?-W;|L&tjxuD73 zI8J^Cw>33v?1b+iV1?>hXN-LhH#H4zd>+ZZQpILAUWS(nH`4TYW2d+VLz!H*XBr>% zxCYaZ@b5pDZD->T5f|y;fyOV(AD~3jp~iXQ2ROi_miI?k`ZzVAmiH%Ex{AmJryKv` z@e>rSR`fa2b=aoqa$~e`LQ@pXQI9Yl2eb8iw~=O$d&!H6dP>)e8lYgKAf zq<=xNrqm{8onPU&rU6K|Az+=#%t!h+jLVVXtkconQA== zQMiH71ur(~C8fxFO3|xGhB&v0n}7+viJlg5`wq4Bw2FwQRc1w#ww^Z8k!c~EYvP1D zV#OUgV0elPI`i8mJv_a{@e(d)+J0^_%+ps~P-qhgPNdt4z$+mc>|*FM+&oVjyC_p+ z8{hQ2w2Mkj4>nzfnb$Nu*3>Edgl#jIvpv_;0e*rWhsf9TQ`415MVhS5oFYK1(-hFm0Rdu{rh3iRc?OD`npz?SiIgp>!Jf@_cm|6_ znuZ{Sh*O$wm^c+eMaWi_N;4r$I5p844Hw%q(He~q*EG=@jTCL4Rpn@n))hreF5ARr z=Vg>wr|JG?%OFbZQkhWHEE%GO^EoaDOPiU5*BM=~j)Nm!pr8wOGL>mM(5#n?78`e} z*de4Car;G8%>-X3)DsJV^o$of zH2%`eiF8;I$mYq=SghF1mGZi8EWGyA&`Qt7qAiolwxIbE&n6;E(~9ORk@8h0Y-pb3 zl^|~4p>AGHMZ(M6JUrjLmzUX0Y}r>+X)+{=V#4R#Y( zm{cv@gn9c-)%*vEy=0o0{ZFoxhr7GjqR8f*W&7_*>A+pL;gVaP% zQO4wg4oO5Q<*J1tNxfuGG4w4()0295ri+Uv<3bzF_1+@!5I1k5xt=LzYofW{N0e!z zx!zaU4s#}Vw4X@4Ln}S|iFt}}4DoAQaq12^@oK`@w`z`S zHuM=LvNSbmdDwlJ$fsvU;ywx5v`p|BE)KuL)xc~lI8t;xs%U=8WEd?L9aB_}vC-nR zrsEjP6`3a}b{JlZTZXie$psOul3|Rvaz>Tg)0!yatfDuVGLh)`2S*v_>EMSFcuSB}dw9roj zni!$UXd5S|itp7RF|Z2u;H=cE4z)X*|a67nw{8VLCn&ZI-yHVz~Tm^TaIC>Qk-;mSXAy;;^Q7 z+fMSGEdtJ|*cmMNpvd}M(Jd_ZplDU4$kMKtoGY$WEAnj@wPOc8QXQ65r}NW4s>CYwtXF}YwW*7Ath_Pxq{ zgXxr}qf9q7eaPfouV)7GE zTq<^H>e*o#EEPu;LH`a>KFh>8O(T((i=v;@$mDlOhLvLDbwx8e6q@#xBH#w08q!rF zj|or2Fm<(PbW5df>PWQrPQQsx>2ANyvFn^k8&|1)wV3xWE@%6$Q=D8YR%^P|$%$9b z@6crF>=foYaaf~oX9uhk=QM?Nj+5)fbxjRAJ7K->`c+k$*twz4lOk4Aht7xHpA;Q6 z^}uo)#6V5iSZ;$TR0JbBC&NZD?>Dtb_jm3kH=1I{?+S}L7uuf^H#M#89Od)0ScjJh z&<^T5q*76g*K85FcZu@ZEY>lpQQImm>X?6*WO!C2;H8O_d5~#@rgxZ%HGRNjCT!%X zVDm_6EuIx=ngUWfAdS!zm4aWjh?$xir{LEqVyULq7~3YcXiCA@HgQl9?>o1P+xJii zK1Rs~^PzW2GHe&KO-8kw-7Z$^;1mvS;hxU7t-!8r7Y8+Mz^-ivRO$$<2B2{WylNu*q6xTFuO?ASH!iJY$;nrl^oBDzA zlAt$Y5gksgL~84c*Z)xSr&FC`m&oGaeB0;P{4SBN>2hkN+%1YU-AFxP>=x@ZL06~P zBX()>?CO9$;;5#eu9fm-QKc!S>jC3saZ^(QmfI`rc+nRg|K{70vEW|O2$9xI*RIL1 zPvkMF6|+wqR59CWEVxgc*7P}++b6DQx{R?`gvC#d=nag$A|fh^(gK;-FQOt(s;c}xo-q1$EKt70}@L`Gdp?v@O%i7kq3UAvu^uZe@2`gB`{ zvD2D{c5{l?#T89syE*Va8M+Lf7IzB94hp(X5dZ$0Z<~X`gQArRLUFg&es2gbyrxa< z1C!xRG4CE~g_o4k#+8*8<@2V9#Vf^#Lb^x!l!*~c_|;PPIQf=Xq^VnXC%h%LY3keE z^gATV6q&XW-LKgXiAo)u*xe}(3rjFJZ=2iQf!997YFgU;ynI_^Xq3U2#~Gt;aR{yW)bTkRIpdd%_;7nrPBv8Qz4DsHt<0IC)&8YZ`3! zaKdrnWOUi4V8Ih&wx&5)@Pt^Q2#R||`J5EHG%ZIuB~IzgC$ZcI;-aRlSndM>VQR(f z>aoP{Ly@NG3#2n*5z|7r+QUqSkHj{{!ytQ>_`_!L=M z+l$hZ;Zt#uNo^yaiY-wpR*@0q^Qkzc=^D~`ab44|8B^Rp7b9XRbD`~-ULTmo=VFn@ zmwR2ae=bTiz1z$5s}jdGRb#A5T+nnAW7WdmKvm=0`Ij+0-Cb(%(F%=}X9(l`r)7sNRxH5L~{06uS;mNz;x%I7Q5ib;*dH=XUD#WyYOZ3z8^Y2`(M_!M7txVP)pAQL)iI-QGW<(iYhP0fQA7t-?y0^} zKK~NtJVsUUwm7bX+pyrj#nNsy1*bXwEv_@+xn930ACM7gs+tFpq@1V7wx(a4w8+(( zO8Ys%B6sM_9hm7Rk29(E++~E>T~)KcUozNaaj%*NOB^iS z`^ZX7GcjhD#hEH|36j5T+eguwtU`N$%+gefu^>5(Ni`oL%lh!~&jmZOk|9)<^sj0D zZAYk#9iXadmVLqzE>CG1ogL*9Df0%ZSSeDJJg#X6Qj824q+Gszam%}eRRN>fDZDM zj$IsZ!qHjI%jJ%O_rNHh6uDYc2vS#hfXQ@0GsHA`j!_L_51BAV73?_>zrm2{OJMbr?@kGdeu`_GR=n}SW8ct&zUr$j|61Mfblh%j|KFRyO>9%-!HIE6^fi#&ONNiBVz?6`?D`Kr!5 zIfAJsb2ig_I5ucvV4hr|>Dxgw0>{a1wK6Bj!#Wmc4o=2|_m=8TUc7;hb zF+ti&RBQ>y+A`I|2Hr!{bmnWEdAimjO^~goQZ4wW{}3}yPLP=zV~04gGkHu4ZOw9MkUKQxVXQzN)|pc=Hc_6_WMXWhysikA4~dhLB)$EYzMk7M zB+f+4*I0(lPm(({ofwh~h4P}N3rw-oso+BRe#qg#LOD;lR%5EX zIfF9QN}DRr@mSQ*?ONkxPL(00lsX@8g)MNODibxWLYgKcW^zvj_Eb)nX_}~`)8$Z2 z)V2HMYNmy7VMw>2`()nzsvIrE3|Ydo5KdrhhRmBqv4uAJ;cliW=V_#0?qn&>Ll z`{fQzbQSCU@~|S_@Mg($?xk6ohD;gf%^mU3fHm*VusBL znk~(a4^VH`z`S8E1kIHtnjRlk7WA+z)AZc1cY;irGFxSy8D^73a>pGy9psW#iflg* z`#9(kc~g_;@XwL#b5yzL;a>;Mmy4KGM~mealTj^2u{@>7Hep1A;9_}E(|sf2k?^Y@ z8a7<|X2A<&K9kF~c0~8!MY2fKGb4H!U>DzQKp5qLm2yqta^}- ze+z9NVelXFrb>lxNAwR~BCFAdi>w@lOrL26<7hr+`ttgEz>b&rren@Fvnm>7_gR%P72b z1YdQ>P1r1>@yZdIugPz;#kNTvR0MIOv*jk4Rz#V+smZ71Y)v$QpOy!Z?i~M06GI*74SIaJf}(H|Jk$Z48B9$ksFNE2OpyjhlL z3JP$-W_f^!e*gP=^m(~Op3=eVqnE)Jc~KG1^{ukwBitFJ(2%Y2Ad_0A?edByTBhyN zYd&YfI%hIGFI#Ea;f#~d%Z+!a!2Nj%#gvK1zf+j{f=p+`qmwgFydW(LxEfm+{(!zi zMrgY2#P0=UD^1qiIJr}1Y6{AA!cLjTv<3#{4hwlv9_Ll4*8LuNg-NaKJ<_(BT9}WI zKFmEGvPVWMg!ghk4S89@LJHzz7;;Ysy&_vNtpUrJQEvNX$fGLu+L+TpugXlOHSjjZ zUXz)NxZ6Bx2W39f8n`~Db?8A^c89u#zA5dCDRT{8|2;M*v`pq}Tsn4Q=v(rlrfXwY zhaQ$G|4^yd#=aPOL|)X?EAQLTqcUZQiuKC-HS}FR6#+QnHYzVL?6|zZF+~tIB0t}&neExVojeg?b7r;(>YDQGua-aa!23=U%Vhgj$m42 zTOZdZ?2N3^bgOflu#aTka_*=tWL%rDk7dUdiW-hH+k|~816HbPT8_&OJ1WSBbPy(;MT4hkY*hYI=WMF4A#L)#LKRs^kSt*T!{qRLR>+ z+-*}<%Y?_Nc{MSrWuYS5s_}6cE7tVfcqdfLjhbE`|BmeoxmVN4@nK$H$m2{dsK(4M zWvf+GrwguNEf?fAMYdnYJMqyIWt!v!2bdRRCF4Typ5TP9I#rX;n#Jlx`pN!30tUnRn1M=YO7ibF)|$8;7o{_=nB6jTkTMkfFz7*nv#(`jBT2_BKa9rrp7)KmxqTMu#*a|f}sx6O9_gs2=O;E4;fDQ1mAMa_4>vk8t%S0PJHsQ4p*r^7#8|&bNS^d{P>kVqSrvS2l82~gtkAT1 zQaComR3bn#pL_unUsZLg?mzG7O$G#{=pRciW` zsnJ!+oDbGQYH+qDKc=HhY9_=QRZOcOqVSQ3SOdPJa;qSt@av#hBLWGJf2&|p;S(6_ zsDlp|Za^BUX=Pyv(risH7FM{&8ml#xGwsrJjw?N`>3gP&ngS;8q2|9=%{QF<3Q{x? z-v0-EC%=uDrh~bY&mt9SnmL&oT%_sI$<*&Hnx5oXnWmkSKf`iWn##Dro0>kHe1RIg zrkekH@)O~)Mk^*04>FADj5KU{BG$;eL&?yVc@8R{O_KLQ#yqZVgtP3aJt}_n@6Ld~Td)7yiqI?9{KNYA>t<-U?j5Jv%lF^d@5kP) zp-CLseOOKPQCropt4h_jtG46Xeif~~^ZE0x>A$I=AHK8Y4@;(+{NuW>**O23W&OLH z+KZv;KimZ8zl0M_s1t`#rJe^Au4z(5)pmT>ulDNycPj-u`p5bIcYUut9;!oX!rtwW z+TW>8-`lyl&F_ve?XdBoB&<}{tXazc)NoBs?Z)n|rhA)I#|za(Wvh;=!SClod;VIp ziuV6^dv~|ezh9a^cXVqK)u2|8((Ns1_3c45;0@HjT1{$U%-YS&( z6-6INrc7$sfQQhwz(Q0vcnsAFt5N?dXD$0{*Y+3l|If=;+oQUBS8K1Dnj>EA2JU9o zMDJYyoc{*2>F|GE0+pkdKy~Pk&D8EnjjbB1y*j?^bkFMe>-m4T*EJRW_l?~xTeHNf zyYHsdtk&9oJpZXZy#Lw$bJhQ?=dTun+cN)$=Krp9e>XNN|L>xqJ!w36{@3(Qt*yT+ z@ORBCzpAcwSyfvdyk}H`1J!^aR0~9-3ie0{GC81JwF}p_RYg>VT5~ns{d3NrJp=kt z^CM9Wn1K4n8hHOt#cJlkpR4GYMJK4;Q1P+)s5Pf$wKM;J+cf{x@~Knfj#+>1BQ1gI z;@>r+YRKsS-eRd8Z0|DjFZB-^ihgRP>%zP%E?jFsi2u zssX)F@y|N;EM|`?rT%17`W5F~9ftG2X682@e%F3z1kL#cs0J(_ao2xO^Ssrl>LN!{ z^9@k(p=H=<360sNvJxn2=x7Vh?8qLB(%-)ncH^)W`l9U)Ls0QSY@_a~YB*^$dDN)X z?#iF-TqiX=5!HZMs1}%yT2q#yYL)$A|4)AlNGQmqVpCBqFblP2y?%qXgzq@|i}Ldr z_>Lie7^$$gcfo zMoK<;NdM|P4pqZoEIRvbwX{P^hJ5-hQcRB9-eUVLnUqq#({#xqp z2>tO(D-ReB4v0rh#%IM2U;9$3OcKl1R;S8fa~a-kO}`fX0E_Y2Vz*$O_cy59y??_e zuAlJs#mBBM_6`)gxonI$?Q;g7w*Dnv!W%EX^;sZ7#lL)33J(#Cw|07nhQ7~<43X=5 z6g?AsPoZ7p`!n0WiEKfwXTVdwp)y-+@r{zZ=_e#p`iZ^1iJ}0*?WKo!#J&RWnxH2! zWxzUnsmv9-?JuLh%)TEpJ^U)suJ8kVwlw807C-rU;M1zz{8MD9c+bDBQ7S(6?`CZ0 z=z7#)=m~eUHN1eH-W7nl96enfYm8ULM~ixx|%Lh)sbVED>B?1$uC~Wm?c2i-*h)dc<-IJ&REH1-)wVK)ZumsvHjK zZXTj{WR}|xFd}k@TLz4a9EG03$UHY;ij9%JVmhWe@p2AYrWmw;bBhuC>n?*BakOqS zUiNUgZmgAhoot;hZBemS578iM3_c@Tjaesrl!Avyk6MB1jM^{f$aPT*t+CuiTCML| zNk2k8SnsMeL!PVmyOlaI)_t)wU+^t(&wvl{4(bfp>$}NF;5D59^egOo**31iJppV{ zXHnnt&z9?DXZDzJKf1SqWpNf;2CR?su(g7%ap&cB`C42u?3R8Fo1#CtVT!F>_G;MO zCPa2aU-2p~UZ(As%=LA`G0w~oubEh&T;9*A^BQ{4bZa=uwj2AHXRDA~8&0xi$kPos z;SyIi%)&uC-_U_m^=iYHv4L@suh~4rjfUm6RB3DUob_XD0PnAs0gc|l=u^J$*)DO- zmt^xsAKFrJTtBhl^u+s>GhjlauP`T|k?9l}Fr(3B?CC>|zDHN*_);8+8I2qsRA7`x z2G8vb=!yQ1Wq-Ucxg+#x{JIA4UlGfvs z1IHx&6ZOTU54?|Y^X-h@EmM554Z3tWUeGLAiVaw7*+yZ@Wsqag)XO%0^d03hT|Ch; zPUadfwH)U&-T1QQR-;`0)N&P;z2*C)&m4np5sSh6WQb=?Vr|FjGL80l&sesR#@fHt zW-K!P+x|%1;YF=lndHp3>Hsh^66?~^% z3>R)^d5=Axba>CF0xqGAL(R5FN3ugZl0P2p3TVTc-tj?u26v?biaWaO6})&Au)3r9 z0S*FPtX^QDHJxoN>3m*J=Vqo`c6VL|b1Wx2e`0r8Xv* z4r?y!N=yANm+jdGT@JtA(yhxc_EO8ZF8{U{SZKu+SZI}Pw>;Pdk2{t{U6z@!(((is z*op;KT3+tr=11$^$B%|L#c!phN!n%fw`T2%x|^FpP0RAzZJC3Lolc|0*pM~^%Wg>< ziMlf_m+P5;(fu4ff?AGcX?}c@HVyqZP|a*ZbbkP$KHdb7Z8Ysp>zgj@KL#`^$ACtq z!t!p9Req`1EsFlD$9lhN%b=d+ejaX#S*fjC7K+|7v6%3UaT^Y_^j_(g?YAu9>2Lb1wA4e}!>vjBSAK${ z9&WADzxRuGOHaRrO%6<#{y*?a5pJ|O~dz5ngMo4Xq?KJ9HdvfUP9oz%RC!^7=HZ$C%8aLc3`d{{#=asNNv zXwqjZKE8y`VPcFCeL6T+TITk-j2j8<2}1com&Mqve&|2m_cG38n%i`YAMB`rbA5-S zF6d{XzSWOLaZ1*Cxzb{0UAAw;J?3&F*RntB6-TyFk@W#CSi5XLM~+*!Y#NE|?D-}R z#l-A04&nAl_BqtYvvHtsx0;OG?uqO#9J{e$T9-!uOO6b;5WK!R*YaThYmO~^nAyRH znH_wX*}{8{ExhO0!h4Qa-9``S7VxUu^Z_&hU3dZXEz1(r3Q&8}H3KpN%nH~wU_ihY zJ|bni{WO4v>-Pb)M$N2AxX#Qh)zkX|aLXP@lc*i)7T#H98}5Tv2jC8Skck`WtQ~gB`+3Z6#UFt~q{|b_h8^sn+v3aq=8DL+2`!g791gPZlcN zh7Ma2l!28#9+YjJHEdlFbumw5Sd-ek8Z=$JKI~*rE>~B;Ivw>!P=WRB;kQvMh8w{d z;?v<_UIo^R!##stoO2yp$(DFrHE~xuUHpt!Mot%Eq%(N2m5$KsIZ23#BYj0F+D`|s zx0)ljp)MNvQt)=`d;WN9q;=~^(%r1DjigeCM()F$k615`Jc#y{N(K0{1k1AprNyf7`)u^ zHa|<-BHEyB5uNdpM>wGkB==1O?9sr`)Fvkd!NS3 zLSx*6@;(YRW4YJ4?#=SP3XR1-A+lwGdy(&XJihJ9s~<+qG!EMhbd}m}psUjoc!?8u zJQ8>e61axx?w?QiHOxbPJ3)pow%(Y4`xSThe2?(yGBDpBKF2*aKO#I-HqEaWUh2NR zpnrIdIF1j+UTkvj*0b(*zg#dpoX*SUhEs>OhL^jqn)tFj#?g;a{~ewI-%X5@71p07 zs&i#agokW8DJmkz`lD~-h)}r;Z;uF-T_?4U_`!Y1BsxszP3jP_8)$BM$ihjf5x3kI zOlllKC$|G5GK5Jd%b~J);i8C--A5EIN8M8REGq2{Z^7xp9axc^Tq$o^yH9>If(HC} zL^Vz&TGPo>Y%<11c0B5^$abh_gHzd)f%-yZ4yqG!SqoUF-?69GMURPpm{I^wG*}m- zUaP+z74OZ#mpvUrjT9M%4LsaBd)pw>N}eohR)`G-S_g&rK#}#qFdrzk&PQEjU5dKY z`UGkN+j55wc5H>i22E`n&VqGleI-ZFvVY^f-)w7-bW$Y>EQsrz{u~uv4 z4$0vT6MG~H1Oj%2Z9GLl8~?mzrRaP)$&rgX13mNEU&RUr|0qCz4Es~q z##1b+jXk+q(PKgp2VCrOv0cJi%AQiT%h@hxyPEB4wsS4iFrJ-a)h@POY}a=qPdC>2 ztfg8he>2;MSj{i_!?03;7%PQi*iL0TmF;e=32eBWp`7h%tyC%4C@O4Z3$~+Kam%FcvLClev{Tv6)k>bt?5}1| zHQR;+kTp*V{MXWBZ6rIm@32UiV@^7!R#PJ5|2FDrHRgPnkN z+K!?Bfx5>y=UAQ1j@yw{7{&Qt&EaZJy;SD~M`_(loOB5bJYN?)c?q;qGajBB97pSV zcv52?o-aGbLA>Yds2QwdIkUiXv*S|T0?sMG{LxV^Pb%x;XbJ0f^nYhYZO7CHP^r2y z4wP%90>?1PEBY8VV@0K$Dvnljb=7Qx7j@CYYlEX}w1?LcM`Cm|d*Zz|J06aXNB>Av z@~5yrRV&qRW?=Y6bOxpd#bj_&E{AiyC|rQi#W4l!FTkAVV_Y0{ada_8BkL{Z=wghf z)+=RyDd%iQ&vW&*b96grmUFb6qt!}Hb_s7DWN&IRMk{&hdmqBpk;>6j_IG1XE_-s> zGvE6?%q(TQl>OyeskTFG$M|r~K2&Ea+o^2l`tbbEWtU4UC6%&W%1PyHm$O~Xb~W3= zmns#$lpmv&JgMwYWlt{Kxoo?%QcfxROMQ9&U(JDPRh^xx6L#*eR`R&mc5$?n?NYYO z*)C_hn(b<~V;o$AgUY6|oyvAD+qrDJ&^B>SGL&+llQB?EfjN1hzTc%3FqqA&Sl%Bm7*nVm$6o{LImZ< zL~vQQQ`t^sJ69`3UF>(Ur*`LauT()!BcCqbZyId>R zP**9}Q&%b1!*(i1ooweSHQ80f;L=J3O4%;uXiOA&Vxp+JBGwYtGS({AYR;)jY?rW>Y9)Ua+t8Q_r#2x^Y7?@ZtVOJlz@1<%ZAx}&Q_8H? zN*>XSJfa!eCPdQ*#Au~J3fo1jC9LIIDO$yLHCIv1HZ-RiqFGZ|bG1^wtGQCjsb;&H zqmW1*QzTMYFhsM)XeECN+fLRZ))Lk-)^e?sS;clW*H+CoBvAuGE9FG99ix>zsb&&? zsH7HTixyNYhV2-(ovcNyRjkmGa-vyNSe>jztR<|aEvdFrw#!({*;CGT6>D`%lai_# z@YUN?DQgO=leLJ|rIqqa*e=ydo-($pSfMr7!y40?qA_fzusT_bSY2&en9=R)SGA!6 zkW5;{TEd#rmOM_@BGwY6?a5!pTGWB;64o--D&^_OIjmKz(1|?JtSPKTsCfQU!cfwg z3$RwPLKiNOLYl(rWG!MXVJ%~=V#Sx1Qv<9itWMS<))Lk-)+$!$iupMI)3^avCu?*M z_OM3xB)f#QjJ1jt(#apqn!@U2En+QUEn}_9piJn+`K&3dPFAysKT253SgVw$Hx(#j zP01wN$y&r(!dk@&eYk4Y6jmo|5o-x+8EX|Q^yPfk6q7%ktVOIPtYxgx{U|ks)yZ1K zTEbe!TEz-k+(p(R))Lk-)+$!WrX1+c&9kNq(V+#9G2y##%Lw_x~`SD`ib#Ez2iQ6)O~Ql(l3c*=4LL zlgM_mmavwwR;E z%38$=vpADAg|&pWjJ1jt9-tg2DgOP-P&T&(?Fm?m=8;{(T2@3hxJaW}bF2_K4*wT) zQ2|UvX#@b%@Dpzrfa&-dji2}7Ctf&&-*e#Q9r!sDKmGCZeyGAXa@P|>L;*e~aFa0K z6jz0hTp*v7C*@`7XLK=4qtrNLd}VxZ)Ukx%o8H%0_E^5Q{Al^NrGeW_x8-j8+^)O% zTKiZ>Sf^U=w?1UuY~5>p&3eK5t2NNQhkK6uOm~<2yYA=QFSrNVTG%^L%{o7tb?lxoo~fQ$o)bJbdG7N(<9XiG@QU(E_UiAo z+Ut~8ly^7pRo*Xpzw6!Br>{?;&wV~4e8>9E^xfe5obP_$v%cqizw*86+uQE6&$Mr| zm)lR;tL%0C;{DqDE%1BJuciOH{-^v~IWip9faHKa0XYE$0nY|p4)`VDc0fqr#=sW> z%`XEl1@;Zf4O$TNZBS0|is0+P?jcP>QbP(tE`@}Lb_neinj1PZv^4aM(4Rux!Xm;_ z!g_{18@4CxKv-E=McBEp%VEy&r^EMz2Sp@Bq(_X2m=^J1#FdC(9PYY!`9=(0H&hS5 z)rtjghy!0-0mq_fHN4(v9%@oTGrV91x+LI*(vX?Z7w2m|m7wLwq_gJB8` z#VIx#r$o4(izO6R6`^C$Uaty`Oas>qD$A)&;DKSs!D4oOLbh2G*xp zH>2YCKg;ku>x--}v+ieoo%NrrZ?PU>eV6ql>j$i7SwCU@OnD+g+yE}HHjgH|E$bKc zXo0^aHQ`?jmiktA0G0G)G{XV3XW^2|%3 z=x6OHvrkuw4(m$(ab2l%FQt?HN_r!lquV!1c)1->xaw#<-my3-fyFcq#)~T$&kK@4~KP3zxbo@-z`4cFA)r9IWJ6y+Y z-3C9QN(jbn9v=vYYRBj2TF{R_ub@8^H%WYq8mb*!!ixSPVWkU}BXK*GxJ9~SV7{gd0yjxdjJ8L$!=w1pM!a7XRYD4G?f8;&R68sdKImVB zD)BXVzUc3RYKLd=WsNo{MaAn1@kT?uVWlsA*zw+Me++C!mAIWdFr1BQ$ERNgpnof> zz->MdqXSWG_{d6pQ7b;2G6?-cahW9yLAAs4A_Sw`Q6(OnLeYLpgrWZss>H)oIOb1B z#b=a>2(X*@(7gx@%*0W!!+B8`1LsgB?oy)A^SOvd&u6F-X5&su;%=rs>RjAWN!;Bu zL|us2ze#u$cUcntf%`ZKOK>kIVFm8zB&>s$s2gy9Ct)Lwsl=DOv_pLw#}T)`t@t`c zd|N2)1tsjp!ISVZbVJ>T`$Gw@Ku^?H@q!SEKOyu+J%j@(@%d`~P*36*Nqnou0Mw6g zbR<;bC`dR5Ik=Rc;ZF^CcPXlXDtsA_#5XdGMEl>kzm#wr72lX`;!ab-Z>(WrEV{y3 zBgHuMN1zIP-1-Ex>!J$$t)KwyXjHsqRZK#=1*(8HVlvvTS(62w6|_Z_&`!`9L3>mQ z9R!^XbVQZVN!*WiXJOJuig*BBT~P5Q-C_>fsi^pRX)zb=ZmiwKL+I&&N)J*qQ8R@L zwU3yO{w%Qo?S8Do#iQsMfhr+iEJnKk6=#E3g7!32yaHV;L;F5~7l}xG2J&)*`^8GM zXR^)`tI%F6oLV31}eTy7T=qL^M3+<2z;p0a~LQ<75JQ_?PyOz#aGYci)bV~hALns zzJ>;;6{>($@+Gt%N5%JJ;{}frR-@vJn&r!AuR+C^nah1>uR|5ELGDNUNmP7axO^4u zji@+~Ps`U4HlgAx+vOW*m!JxKqRT(geuj0QEJx2P@(_CVqvG42<=be#iYnkW`3~Bz zqY5~P*R@D^0~OyvF5g4@pQ!lOaN`8pO;PbJ*~a^5C!yjED?Rb@2njt<1!Nc>qMeQ^ zV6brp?Lnw`nYHl|+PSC#rWzlkJ%x3e@hN&{8RyY+KdOM)#^-21fGXfYqZ;iwsQ4yk z<4d&Xq6&D}_zLZZPz5YDjc*VZp$b@HTtfRFtj`$VqP^L;in_)49(Akn1LnMF{Dk&S zQ~|q;8)(0Titm*+enERTDvpzJ3+;WVI8Mf|Xzxd@9x%~()aYwTv>tT7?Y_t3I}f8y zbR9FT&bd18c)sNIo!9-|J$+i+UvvZnLn;$<%Q)XheyCqxg_lVUvT`(hUADX|8%LYzg#XKMa` zY<&r!<5aouxw&(fxiehnb{HJwUbrAA+wj_SM^xH0P4}ctcl1GaK%tqL~--}Gspw4kHDmYh)$3b-G&V%SbcYb{K&OP6szVR5}w(It~ z=59Pj0SY@CuJdRxwH=NHICj8+(4mV|B2Jtvh~=`UPDg2E^$Jt<4s%hZKIe;Q8{n2sQLV;tkKbSn3RVVXQ|8A8CKswi#gf-uDZ1i_ zE$UXeNwdD5jp;F+L6<>!J>hefwWjWLxBFazDmPKjHSiaT?4Tt@14@MyViBa+oaL@l zjMAO9n4ugwzKKHJ7L}sRiz1Ij_`uvL?S4D24rBd%M$JhMJxsb#+G}?SrHB%9*y2vH z6m8bVCmF;Ww+HJj@qE727su;Q6UQA=4C1>}7S-;iz1e=amg#YIN3Iay$J~&3LxCGQ z28^ri2}O!}U2J&iEQ*9eUM^7d#X`<@!(DE~O32q8wgp}X;IM5GRjnzKP8ArB>}2`2 zjqCQ2RByJq>N>z_3wUF2X2%~f2N~PBl-*Tbb z<#jn7q6iLqH(d0e7dgH%ROC0Tv)O*WRt2@;st9;9cJw)qxaE6ud^Q<3puRuBya6va3?? zcr_`fRK|^qiPckr9=pqF5BT@N$+^$rbq4o&T!G*|KS{cLj)2|fBkdQDeeWQS8-MF! z;`UKHL+O~tMAU8P?dlK+3RQDb{s>9cfTolfireBIlc-RjF&tnT@gP1@Oq)c4n%QB} zq!N^ig|a4@ATCyNs+clRg7L&n(m*-Cz?l4wRN%H?I6ra}P`p#8OcqD0D5y!Y$=pcN zn;fb2C|NkrB$brNgo9H;v}kfJD)fd0%%eJr29>_a zn@DxVGYQO-C^_hsnE>!2Y9!u9HOtM6Yk&$BvIpE30b~X^fu+6H9`X+X;r_Z#Deb8o@@ZOWh$y8qOe=^}97Z5crn_ba>bJcl7IVe%kJgEkPVS{B-V}D|EJ4r} z4aVMZO^6f-G6WPEERVlEB97aew>qmPSt6!aub@cZ)563lj8EPmP8)YOh-0>A$nG$h z0p=QqHi$RwR-*2p$zn*+y}4++Xm^h#{ih+#2zwH#WUlhso*SwF+Xr zFCtzMnxY^;QKS6I3+0q$6LagR7^N$x}qj9es#$iq@R;h@v7utSPnuRP8oMc|1s^ zrz2$|^TX}&Yd49;c0;J!Onw}HWRo~y{Lm)BedJPN*(wfDS}V1?Etnt7u>>9A{<`=i z!T1EFB0}#NNhXTM$6ZRieK#X9ev_$DLW)IAt{%VdQo?!SMAHQ7-Hy@~EA&7RJ9=Gd zgOaHD1bj38+$F>r;|HPZX&B-7nM;Z6s8e<s5;CjdCJk2 zkXf55wOZwp;B2CVy}4hhvhYAIW`sK9&^0JshzNoyf)GqZDz$4O()*NPfH)$B@r&;y zPF@9ZBS;`{L@Ua$J%KVs4*a00M{r}ILya%Hj8Mn_xQtj{Um#wS+5%467_;taQ^Qpsb4)N^&q5Eue_(5?E7Q zp;}H6#ENdXqbTa&gh-Rse0{_w6rs&z)P#(J&WupV)6r%OvGsxwu3N3~J}{gl3QbUj zHW#V@_R%C6a_T}kVnlKjinqIhH=PMshhz8>=@ScGYe;DNvsJ%u{Or4lm4!k_<|`R5 zm(a(rc@J^YLOEImHKy8=j`5rDeJ?8t)^^v{3y*8>A+C_=Dg^Oce?Uq#6I8vZnc8l{%tXs4`{f_g<=NVJC;MntSu5gPe&qpqX6 zeJFI;x|^w?M86`0JfmhKF+~21TWGaNcd(19hF|ax*_gm1rkxjj5^FbXh!3;{CGJm& zHUt9Ds5cTyu!y?pzG2vSn;b#0nq=^pOwQ?Vj_G@uN+QXlxksN7-H7k$s>Ww8@_y# zt2I%nu3zC{<^9KHSY~Ih2+Y zyxQe_)+(w+0{lqI@=`p6(sYWa=vcqzL>g1#<#H_Q^TKy5T0EW9gTpMU6k9x7E<0Ko zRB1=}nCOx<8)_C(d^;MoCj3auCLKfhB2ogd>^W_`M$> z*7g`dJ8uvA+F}lcyFEVdrJ9w{q16u(PfU#(tvv4xrTiR=GD9aH&v_bd=sDo$hvcwF zYbeSN_+Uv2c!wx$cksDVg%j#9v>NXy7d=6!Cb;<&S*L*{!kHnTP-_E*MuwxqHxg}I zu88(K!hENwm7Hm0xE#Do2v(#t%0+^Fh}srchV}92L&RO9v~J^TK6|<9N7kn#tGBnz2hyor zG$&)#_(}t8P)%iev87$H3>!H1I8l?fs_@APL>%^Y>wp7{%n&EWRqRK1B?{qm5`OIB@yi;`DiRr zN`_F*uJb;oBZHk>jTV`@J8Tbw{TECzg4+N~7EqgHNY1Oe1;o2bBZhCf{B8(%G|G%x zi;)!-g*_fd8aA^m14d?vaqB@YLxD*UW@M2Jrb{SH$qd~sD4G`~eI-U?g&`Y6aw5ox ztgAaTP%o}9F($({1}M?2Gi}MR!JPR*8l<5+tyVyEHkh!3PUQ<_ROVEsAB;Hwd1|Y} zWE>?h|IsjIV@f44WpF5C<(ahD>pK-x_t}_aZRiwXy|Sh=S-Y5OHBoHPV4Qk9CdN^g zFEjDDQjew%{q`!tIW>yL0?g3I=6rdG1tr1coZ#5RXO#*v!D@!{wooHKWO5E?*x^IH zlEFCQ-ej$c^k9fdaqVIrs`ji*qM_3%kR$dm(-1^COrt`?!*q(GSWSX-5g8Yt%K?nk z=a`UQ>}D(I&?m;kaZ}^FKT5oF)U|gRzZ_%Ypd|P%6BSzRCWQ>6!}!8Rx)nq1T$~9= z4S%Q)zt`T?!4yq#5k`qSBc(V3C!X0~NT=NZJ!7EO*-SGcAT6(|0yuB=0m{f#)gYU` zyn*U+||T4#{c#% z;^^_M*AT@t4oSomq13{)u{$A_Y6jy)ROv@QQ5OtVZ?Zibxs@&1ny956E&-ga{Qz{iL)W+3TujQ{*G z;(~>KB+0a5fq_>Xzx`U`q;OQuGqz&Q9qb_7J2f$gCRM)bDi+&j^Ifi_OGu(wwOb1$yEP;xGioM8)`v-?q`YcL zpgOGviWPOWtl0w2KI(QA)vHwfLK3wyg4!&Vl0p?R`Lt>+go@e_HFIIL7f*&ka_h39 zR!Ve9Q&6TFQT1G95kgLguKQJcFdQyL$M;-E#K+vniKC}=Q6B&6$BB5V%7#=ntH)hl zL}%Tqs3x0|0}XsuHByh(y9O#3Lu$KMlC5RrD=XlC)HOy`sfs@fVrI})B_p2=CBU4E zt5lOVGOqC}A1A&v(pr-0_A?OWL0K-X%JyD8si7_oB`FX}>gs^}eo^K4l9N#pcJ6$w z7S*bQKLp`FhfSqvx1X=0a;l^ja>1IUp)4fBL4zA)P`(He8++Lkbc44lD}B+Yn-r5) z^iqo#1!a7~Cy5V_0*R)YDl^??0~?{B8{NrV9d!grZ8VJl2#R`fsCM#o!4pRz+OE3n zen&ik;;FhCin}y_74e1>0*#egAH0^5ptj=8MyiLZJ*R3b3~UsM+On$pZAl;FLS1WJ zjb;*tXMp5hM)j3Xspkt|+>+NIr`RLf?3lB-#A zb0rAG)TB_!$vI_IaH>+(7wD-uWXL6{6-X$21vRLaWOKN?0~#%)yhF+FPX@!(_#HPA zXO7bStkfgDTF8&6dRMB*8OfhT`Gi}tXDK)DL2*4KfpB((t;pzfBu^&pVqK_^%SeMh zC%F445iz7fZP@I%5#0y5;nN_<#U^zr36VoiM`CRtWhF6MwgYMCSYD%vf}-1{^7yoy z2Gwj(N{^Cc>6OB+@@Qb=GQL+}_;L?wn))~QE5cGQpeDQDh0&|`>Wa#TFotqedU zIX%?S@uq;EWPq1sDwxSuSOw+7O)96;O_2l_ct|-0;Yiqp*tC;M*~5laK$%#HN<`gW z$v+O?O4wG@$(j_k>)sUj@YOoS4ZT@WMEmDo7`b<1QMf|x?1456HG}TU46H)L0+e50*={6}5ex!+{!mU(~HxMHPsBYQs(s&eP zR4NmT4z)O{<{7FiReG?Nl5EE*Z=zotWD#X#DJ#XgjSw=LZK@}n?nw9IV0M7W%$P=t zNePUkO1?o-kNc70PD%k!GV1D&JMbeUttvf`l#0tC3#bW#Y=4+jlYPXMw2}i;qIm%7D>;tev;=1JDk z6H%n)ax*T70lft~7j8$z^!bT3J{2DNV1iDYMy z3Xxn4oO2wM#`+QB)UQecYTW)j@w$arvrK{gjkN1rCRYEQ_PMx{*5?e zlo>GYTC80yMo`5gxjh~g7H`lXly(oA;RFQ6>2}$ju1ZA+40XheJLyYGN*;09fjgUT zX`}=$Yt-#5Ihz4&TvP72l`lA*D3a{BhdsTU7+?a>dtGd)c91Mm?%<$O2!UCvC@p@3 zb0-BR^0ij~f)IaNu?X<21~BV0hfAX05^$Q7CJ;6An5cgwP-na5rd|Kbu6b ztl{qTdbxDgG?)F#09MOnx2qRQT4P{m=iH%O&RNKyM$hi9*0g?E#EzzW)ap9&1sK<$ z?6$cY_D~*84BP}zJL*Omcfm_`LttVwYVNSh%cQ_Mv@=4|LRfIy2V{~D zA<3R|%TjRIDolWbVG{;Z6+vLh&DC2uC4*{)%T0%hC9!8(Jy@2vAhym>qFeJi^g2Jj z@OC18majs&S(h5~b&=9JKin48Ua3`wHHr*Pxy4$IaSTx`?Q+K&PMz+KU%H+6XqUdhL1;n^GG1jq$;Nt}e zSVRT~ujXx{cwQ74tJoZrP)2Nssyz_5`cRrIid3`hY!;9bu!(MedeADNxN|6S@z)e0 z;W#+Zf=D~8Vz@Fs`3~YutJNg!4mbw(avY=_@Aj*$ZpMk~J4JnvTO`F;|JOB)YPn zZj<#4O5{j6+6xbzMMRU7?2CBGcmp*wN)CvsY;~imoRbyaXhk{1w_NgmzC-63h#;|C z-Pvt;eW;a6f{9hu{Gg^?l$`Hp((pAGO_$}GhfgMJNL2&!U@+42&J2=mE;+5SR0x!v z-zI0Zw%t=h(HbK=bDpLKiV<>$jbStgktDYy2cwmEu?0(jNx7oK+PxiR^L1GVv$5Mj z`@<30AvIbRJ1T`@a*E_i?gEM>bh!~qbh`t@<%e=7qEU7Qg-6Mf9Ex*ls)KaNFIS6w zx|&AGWL>t`qU11+_WK1cCTLBM2&P?}i!}WX4}^crrNFHvz$DY=+KpIBN;f{(h!I@7s32>cJKyow3ghUPiEDG>z{}`^GeQemy;=X#l1AlF5SxSOkRv0Np6=&N5L zjwAM{o&l%#hC?fauuE~yUeJ9(dHnnTL)1oeR^@UIeHitFiy7n`UVp|;p@L@RQu2@j z3nQWjxP-S9^Tr{hEpUy@Fi?Oc8ky!g4Or$Zqg=tpx$5C`qm3ZK!-ZmoH(&=N$I4YB zMoQ|TdbGi{Iw|*%LtWT7GEqQ%G!#o3KmNhjh}BiV3m4DRl^!fdsD5r(55yp%wZ9~B zK}XNc*T+YH9sIPEhlY?nIrK?LD5kl9!$*M_&(T#*X*3-P4jB!Z+uzGLi(RCL1-f2s zL>evBZ@6iprg%IGqQWX|gy~E@in8$pO;%%p7>nePO7ljx+9wg^@^dyjYp(-olR?hU z`+T7c>Lr6*R2!ATT`-lUFfCQX;Rq~-glwR5axQRz^?{#ui>`7fiZr=F%SzpltjGuZ zA~>m6=;TneXr<|R(jQ}B)u%vf&Kv_aZQ6jC5g8veb(DgnXbZH(All!I(J`v!*A3X+ z;-Vw4ChvxT(CI8mw{+5z1Q@7}R%15_tsFLF7TBpL-S=1g%w8!TS`eLZm(yfRI3wqCyXgHrkycu0$f#P~?V?BnC7pFm7)XI(2C1Y+Gkon_IgAEcP$O$utpL#+ zYe3^m{+uI$O6`KiLxL!gEGeqG&(Y zNmZk$-wn`FspijxQ6QV3eGr%IMIk`W(t*e@>GY2;y_fKf#8?}`MxjI#_*hpusAYIH z8KVC*i}F#s#(DX^vx7SIwnj(X4vIm+9II&}L}>)j_}CEFR81|~%A6AoJ%%Rf@-SS4 z?GkB?0vR^2gJ%=g+yTQ|>X>A}K_x@cDiGh*;3L$-xMsJOf$C8<+0^n;qvwgDntPzt zdf;fn$|_^mJYWb)6spJ5+Mp5_VjU!uJzBaEO~D#7xGh?e^@ODenByUh4QDt3_JXx~ zn#iZ*8Z*A}o5b<4{S>Wb0;z~Mh03A0RtgI~dkR#tsCfgr*TqAqq@y*%MW*FNojlmX zinZD;fg#h>DoIDD&m%RXX)$lxAxYz1_YqZRE?dwdUSBTI2TM}Z+I1z;jv!yV4tsLM zT)hq9YSinB8Y~p^m84b-RY_lEeCvJ0aRD*a*9vW_2>dLlaV=cXY~|Wk&=hJbNb?P~ zzOI%au8T=84(kcS6plGYzz*(~drguXFWgU@5^KcVTF^&2HE$AL&$FOLVj-EQ)m-L#^TNM_pOu7hGCLbf!hu_`>^%W6u|huz4<_v zkS(@&o&_hgU3TMI3)Yf>lTCfz358gGDA2I-56jFf;}lciNyWk*Rt>7v zU>>R6AS=aFZtzJmeVZ0&GMvaDe+t6#!A?9AA3yUg;*325L1*iceAD4UOrXUIom{C{ zJM_kH6JBCZO_W$FVAP5*x?F&DYj*oU8uuO|iVJPY$;w98D8~;y_7HLO)Xq3WzqKLQ zWw53)e*Qbey$iKkgbmk+MNJt0%Ok{cGFDHreKysA)goTjJCk5Cn5y^p&X5&$Bn*Rb2!$zR2b{l{%qC-0x;7k3 zj}rg-=5YJ)RxYkoiHTJmu_DXbDLbXbP>YYT`82HUfuleM*=)c=IUvxLw6acn(c=w| zxBZa#`$9hNXXEy?5LL!Ie?%Nw==KWOJ%L z!8Vb=Bw2^gI&8wW;9P}G#rt~JKK{&O#N(@ZZ;4G*`&I{yVCyg2D7d`vgXNiehV4+* zO0hjY@Dt))2#17)%?*u&R`5Dcmb zWzkS_k_w)&E{bHj$5(XJN##U-;PrcY5mbKZh2PrUAj*9f{4Sf8--uc@&vt=mkd zp`w)yxjP|n0l{r$qeG|A5l}xHW__7PChZ%)>tVu9HP|RybsIig3njtWY9(yFu7v1r zowa$bS=dL$G~KK}mlb>+ykQeI8e=YnB@!?gw{FHWj}WUTq*P99H;bAx3mawd7Gz`$ z1%+{y%Sk`@qw;md`Vb-virr5HEz>wpqV0KHP>&EWz=K+qMweJ2M~76 z4P%1hXu0yR!4fu%R`BBMVVw&1G`Z2m6Wvn9}C0Il3Ncpe_qP-Aq02%JLM`EyW6|$y5#`VN#yQ&NZC`-duN+#W} zSy9896CtjU_a#xttH;PrSsSzv#l&J-xXh|}k5E_A&20|Jo*q+mwxxSf+UJeAhe{E) zV(5Yr;|oK+1k37bAsS;Mah@|^rvN3|YDyJ0SchVzm;`Qa#16svdaT}WI?`Z7)i|*g z8YaQK1&0atVD`i^Sh{6Kbk$RVpn&vVTHNpI`2(%-$?$9UqqJMb5Vw-@z?y?y+ikI^ z*4?mG0Z$dyohX433r8iQzz{Ex{5LY#;0o!d?#0TbEf6KfHFkOHH-q;>a7r52{txCkb21@^4PMUUUE zI)(9rKO^F!bUh>v%AHtGFxRJeuvH-H(yoi?YE}Wl=JNqDX?QB`G@{73m}Qh|+mGmY zU3BKHZgBPkfv^}aClfs|GWel5g!q;hqGYhz6LiI>gcWu8o|u!UvR_7RTUm4zQ^7RI zZ?Pz*r2L5>+knV*F#)e_Ft8gbA7=87BtLLed6&J?3M%8feoh=Wif0NL9Z+xNhslyt zRAKoA+Y1;R6Fr3dD(s)~hI-a?A)Ojho}3KkX1~!;tmS-5RpVZ^)B&HMWaNX2OD*YS zw%rXB!EnIPp6t6GQt;MCzAJRRax`0t!DciB8%Fg=J3flhKBukjEJag&r~oU8V4`Gl z6c1a$loH-CmTu*7IH+p3<;$d#E5|ajly7mco$~=E7|!+KgVQ> zRY$o~Y_%!|>NgwhHf#pyr&xjZzz!E0HC+`FB79Y&=qpQc2rTw8U^a%0a4Hb-a)UsT zV>yvVv0gF9g#|}OuH_@PIxoWB`Mg?^+ifG#^#u7s+laT21lx@rc5BnzUMv z17URNoF|DCF@FAOVrl%_U%|@lkDnqgI>pvYLTJ)y3w7-c%IF26@>zb^@2oXDtlUnd z%awkdF~&a`60bWXKMh|VpM^J|rciXe>+G46#_F@gX@{Y7hW@V zA{)G})rA+g8t{@XSiSK2Ruswbj+Y;vQt)aQ1TWzwEO6W5ovQ@Ax>bhPw)*DlT*ml? z-x9V%+20WJ#IBp)_JdFVDfB$^(d{n>Up{r`8^`VEi3>+3PN8MI>tCzaBz-m117=iO z_4evFZdqL=tv2|%xoxXcQ}AtHbh4YYSICN2*k|+F;FXqgsk+Z2+TfjxQpxMBx~$cb z!vSx6O`$pREZbSuv#d}Tzw<@R&cjRN^YEF5sreZ+wK6k5J4dX{tjx@=5~C^0#q)Cr zZs%8K=H{kXW+1tMW^gwAP0BCAR|G6;>ocoRcX1ZCurjl44ldB_)V5j6+NIlOm)71r zvkIjyorU4T1#Tb<-@pYrFgu)|npi(8=13{0C?TwI1ZK*k~r zU~%SDJVQ9coTg7j&?+&tym$L5VOhJ)vi1dB6w2NPolWgVJ65M5y&GzLVR;S;?nb+( zj#}Mj=Iw@JUsxt)iFtScO+vRLn7d`|7nZfVh+V4y)7!S@g$n|xh{c_AkoyaOA1(r; z!M)8xIo$RlR3;1GLdvOO` z%t2Y!p2Gur05YG$z+1Mgy^N>x3I@@XN$alw5CIUcz~4NYvaHW6t#3D>anuCb>qp^Y zP#EBZzpDTptWVAV+gr~cEj_w$_SxpcCE&7U%lZ=3SYE_s=YbSn!RJYOeTkUG*a0+6 zO<`V~w_GrO>z{}>j4qg)+rA1&v|KO;_&XKN%mXQT;BIcu+=9hp@_^-BxOnDGV%P~p zzO=q)Y5mxx^%Xoo%lau8ws1Xd77@@0@G-!1(FDl)zQfHensUJ60o<9*F9H^!qY>_x zmaMJe*9+O#YW%fvF=4c?O|1ltwIA<*v5VLc0Kr4GO+GbZQmFZc_nMd~ay(R0(2#6O=wBv{tHlfSLzckY^+J|68l9^S)+ zFF7m#j&Y}pb08G1!tw*800fV5Y*7rvlU524_s0Gv<{zY8MH#c0Af+ zS@*$5A*S(=0i-i94Hz=eCvZKW@RZ4bPcbRrl<}#5AtISmOaTG&G6B_@o7+7%e*`)> zfw6V?;o=19ow+TjTRL+qvmjLuLmX~r0BD`@gMT4jw`a-hX9*|`C~EO!Kr&p%Q!f&G z$Gcu6W=Ez>x(ajWdU(pB6SK=u_afjk^A@v@MW3CUUWP~85XfD~A%OAbw&9%lqvo~& z^(3JT+!5PXk$DHtw{k&{>_$LBKtoW`qAxD~a|Me&Ke8TVe|`InpZlFTz{2v5xfx9K zAdc7H4*d~WYrq}M8H>9EpiH1^tP^m1Aap0y7H6#Z6Gq!H4$X19=T5}pY92@zXc&_g z5Dq|bT{h_+pCEs6etxtFgMbdqY{&(w$9iEFO+!`a0}yr^u-XE=uniJ@dD-l5xVQj} zv$(W=@zVM_FyZ_(oEA+zi8%xJ45OQ}Tr@v7ZMg{l-?jjE@bPdg_@UQrb3j>dojbv@ zHo}9noC~7_ihH*?EX<{M5jY2iYgv2N)J>3ac=YCku7@(1VeueL`Ti`{j*z*13zKV4 z&6;Gsh*7&2VD}V$vJ6F@T3k4sTA3MP`E|tt))2QWLko)_;4lQ&o`Mbg97L$1)-JKPKrWmtB0Q2=m29VT_IT`__66(F_%eb@%V)Pt2a zz#jz9iNMZBPe@@Re@>jppA$_AJ$i&m^l1DaljzZhu`s`d1)zq#Q-|bBmx*)-DCh&$L`{DVR2%`GkuO)A|!f zX#EK=;*MbUiN(XjFj{*8hzuk4)ho<*lCf|Yt4}PxN)^!15vqXnR@r|_Y*7X7@JM}g z=zzc{w$KU>Cm0<;YX11S*O(Nu_QV8`SXNC0g2~d`GVrU^XUx48%0OX^d>Aq?;Nm=% zXPArN3i1LTVxh5i7X~`$>`9>szko^tK@4Uc7RP{+ou;Ao)X}5WxmPX5U0Vun*BoR% zg$3ajQ7&K`W9>Hl9E)F!LLg6gjx%sS@17!n&U8$0@584n@aZaix*DIZ1CthpJ1IDC z$`YutrLu8lO!Q##To3xfqVK>Qpic?|otdOFA=(35eZ2;o+Lr=x<4MDW;VIPif^c41 z|H7g9v+v^t@{qmy!vO&Un+gV0&QWL^o&(7B7njyw2D93-{>tJa6xjeDU>5sCFm0@x zc0hZF??CCm#I7)z^51|Sut5(qpFaWkWbF=29T*PhVp^F%?23s}nOz;h^fqQNtF7G$ zO*~5wufdkSsZC61-F5ujPRrVtO+5rn;Oe;TD<;b6da#cGde34h0+mcp5GRPEv6zFa zW$kOG7BdyB36_nc@O(duPtQ)zj#d_rXe^w!v9x$(mO#UcNA%HWcOIE94x=_WpS+gtiE3V-J{ba69REBKbB>!Cl{j`#KH7e`6m`+HmIcvnH7??gbD` zXzTEFAGWOh0O-urv=5uI`^N+Z+J@Iu%L{;Mz?y0MW1W2k*zrpn;Yqh)Oa>dtIiRE! z%Z76vO~WG~1WYlDqn)_pyYT5j(^5Ne8|X>!v$ui5H(jsOKuRuRGjtIoKGvbjc)SJh zVGeijc9YH?05fH$IgW?GQk+mQ9)M+|gt=>JLjS(l_3>9WaI|d#Bm`#>J+shU@kwsdY$! zGqkjE6|}Moa~E)w+45DE(MDlwBv+dQxo$Fo>#z_3fuE%4qvH1W@W z&=O{6{1hV|QrPX<0NHQ=`%)Xjt-(MY+z({z+!_?*0Axo~JI!+I*cHO_Tz?e)CIAcX z1Y8_-6u926j`#~^?ezmt2*Yvhs*~oh0}9l*)9m$urS->_)}IFU#h0axyC4BoaF!`X zfJ`1UCu&-6JC{ZqUjgBYdtQMiVZQ4ZVTTwBUj*hU9urPr{)WCLVE?)aqVjUjd(z1faiSJll#Kq$M8w9g}=V{$`6Q1_*#On?OAZ4 z@q8zRq4<`^y|~3f4`Ga~6SF%pgkX>dw~(h!hV}?HDpn>^aKn_7mW{_?Xj9XNnS6a0 z2x*wquA}Bm%Mrpz>!4P!qmNBWoG|@~^<8EUKm#T*<16qR#A|>KE$c^{IQuD3{9cR& zzy;>NN9X4N(2qh9Fg}RAfEKXDffP0h3qW)*ZcL;YIJ>ayT!gm5OIhFtJe7%9-uR^% z+*!W`_jfEdZZXh6c*Ff3%f{1N$?f3K;L01}9sg7S(nm^+|8r{kgwe?>%P_AaEm+o1 z1zEJRd^~X1x^)FK)-9IxGmn(mX<2t**#-8)q{>c6ONiOI#ZTQ^?D zl4KJ+WH=vXo|k}zESr0c_E;`Vh4`{9qrtk4+0jij@hwnL>rSTJ! zSg}_K#13{99_&6Wpv}PM`b863z6f%bmtiQDO`B!YX$JF_Hs3ru0>WR~^y0Bv)(+ro z2pAnO<2V-)vkQ2jF*t4dfaw;Xjj4sBfL8&>5MbK$nW}G+H2d{o7K41a;IRPyKq5@0 zgRK;pI*boH+Rz`qS)3g&&P-cIVQ?_8d9WE@Sp-*eGj2i(npmGSm^53@m^YKWrAvz;0ORA;?v9yT0QmL5{K0r0S`G($F;z_T2LvcK*OxXg1r)&3#pT`qvj#B&-ycHM z;PT_R8bl{B7jC|L9?ZOXxK3`bn4eJh=DV@=w|O-d!nhP9LGZvCm)wD=?K;cm^>B{| z3n>$ix4;c#%|mPpSQJF+@n{hOz_>o#j?DX4AK{jc1^09F3d`oft>QrbTPd@_gBZiO z+6;UK?szl@m2s0mQcxK}F6KRM=QW4hf#>)?3c6o?AkVc+DM#Q#L)$eL!dV- zhL$m%PZNtkUO-WcKyyG*lUDA6_y&w&8Ds~p1z*rP6&Mbt4c<7oFo4gmST?`D0vD_X zAOkK4-{QN?ee;K7hfwhAm<^Vfy(Vn#f-n%c4#3qAX$O+RmhI-f5O&^9%28eNQ;WAkDY!M_Ca9!+iE9+`8_Z{H5q%;v>#0Rn?4C$>Kq zvFEZKl8|ejL7dtkF~1!M$g=r6$i_E7dFFFSo5~DC4Xk0{@Yg&hn|1GAJTX|mflG1) zB07M;uP@@eS%@<)L&$s%NB4l1U&efCS_+oUSAfzWj1KO?{KEXaX$nokUQ3ruLGaJy zgo|OU<9BYKK4JcVDUa3;j1O*~e(f7(5TNj4;N)eP=hX7jCEGDN@C8jnXkZzX6%2a( z+wIeD7-5dW?M%%ttj=!VyLa#Qy}P#WTE$-H)(r+SI5yjNfqQZrG_)5kSYUh^pT34q zVAC(H-;YlZ;?u+U^n-c4kcIzE`abqt_!RBd)*{%jsq{2K?4Fe#e{f;??5Wene_EKn zdury;7k5lww{86Gh3Pk@*6x50#;zUw-ydf?>+m<+Uj2mI8UOoxZD;)Nue6O1?3!*& zg%2$)O^4rbXe~E=DlrPd=kWh}`bkH>@l)eBDUZK&9CJ_o^vl2emgadMdgiay>)w0U?Q>UJt7p9B`zIwo^yju?>CWSpURfPH^MK0} zJ^sxPK6Jr@f5^vnizT&z0$3LRqp8nB?j?tgFJE)#;-d#6*;DbM% zd0^yvhxMi3eKO`hz>_^i_{}FjciZJJt*xB#+{xZ!)~>qc@zj^zwRzpm->?1G)fd0@ z4IjGrnvXa3SRZ^>t*gg-TB`?eE6&%)%DvyP`l`LYu|j&am&BB$DRB8cP?dq@x5y= z`P97d^c5$*LX57wY2)gb9z1w{^s?C#{GSvh`yhj$-bJ8pT~ z-wqLv>*tJ~5-)dtw|LqAdFZ%j@2CEty)U%)qfh>5*RJa=KfmKw&F3z+UV3T!YY&k1 zzrXyKdv3pO&yUZ0-Kb#1kNy3__ukI5zQ=s>{$cQ4rJtVl!^}CKTYmhZqZV%d?QOT; z`SnZA{q}n<`^;Nk_hhZf-1P4Ub_A@id+rCy+ea(5|G4d#%hDgI53Tbzl)v?fryscg z<^w;Ey1x0ne|__=XMXtDN3O0;eUEzJ{rlg)?Bcf%8he)9LxJJruz zPyXRo+duPx!BKA~ynFAP)1>#j_ZiPk&))wZA34MMw&O4R{C(|@|K{gJMdSYaC%0a4 z75$mVFTUqZ=iU4I(?>Uaw_|+Z`s+V>`IA???R)nz8^vuX*7wqsaUIbny?qc~$P3><7-?9qBoCJS&}Zj`Jh89`o&&U%X-8Q-7|Uw)@KJ zWj8)J|D|K!{f^(+emc|t>>j=HhBMF1eD4n*3_pGUG`dLq+?6*x!@cv#U;ec9$in*j zKDzglzr5Z#r~Eyz@WNYmEMIw&{obpddgx=nuzlphCq8q`uiPg@tndH(1KTL&1mWe! zM$z=}Vr$`r%RiC6^~q2DC}w=<((Ttb_P4IN+k1uU;Rn>~?+reTHeWM3hkfLvUtd@F zu$?O3c=dJjdpFLzVE5lXeCiid!pE=q!=Jxwee?ZO*T3+?XWsw&9bfvzuGf2(Ja^oF z+FwZRl9xZUd}Z`Kjk_+~li0P8cyfmpU>)P1B+hsTz3P7A+na&WX}`In5Iy_(4}SZl zPrc)Br*$vC>W1U*$v&S=KK*Xu{u@3n-}PJa^M`^*`5&44%Y5*SyYt5Be{{ZR+w-XV zx>Jt*jqRRf^Ny8$zqt6G_&Xn_SO4&b1Mly8Hqm=-`S?Zuu2inPV)J2A{J=L7d+ElF zr)zsY|J*vdVq+kKLa8YTY#$IUZ3y`s8~%8x^0 z8vb$LW8b}OZt>@*?Z5hF`wzd;>OS81?s0zmeFqm09Ul+=?XSa^-dA+pDPHo9Yk&OC z%N8=WyUZt1{HYHWyPoIl55AfC z$By|ATzbwIGEaYhW9q@thfX4XcGDG~`Fj1W_j>>J_Zzm9xhG@9 zX%o$}3RaH(BLx+D$lu*YqBNKTR$i>1x}|DRps8n4(7<6mT2y}gNxYn3ZNfn}|%B$^u2Qr6{ffC4~KYW3mhgRq`o91wxCGo+}c009RBQgTYy>nY3;fwK(g) zgiJPFZ}t5Ls*Zp(k?i1-m&AX>HZg^-dxUmAjuFXy_`lceB@Kah;X6f;#Y$ z_JNqGB~Vdxo2GCZ}6b^uyKrx>)DQl z^DimEiV|n|DPR;vFbc=LC!z!56z~vAk5o%8Se*+N#9au5=!N8Y9|{rkf5;VoD*+JF zs_Db+7E*BA8$z9aq42BqbbZp8TC`-^Hgc_@pN082Du&zoOUx|1G;D$)L74@IC{V>LMp6dc6FyW> z9fZWjClRb1fPKv!sjYRCRMu;MDJKqg>14m}QqBVrH*^iEJ@Mtw1{`5i(^cwV9={?L zUC&fXpbQYMY`3E*=@7?F)2Cs>8l%{YE^vy09JGX!NO0*aZ;Q1b(_qc0qLuQ(*1D0t zo>#%hNm4@U^33R<9*-;S+gJBr{C=GM;@77LV8h7%Uyn<7-v>RV`rSN#8a8AWaRwJZ z%KjjzWp0dxj)>?BvK;yMIwR((%^;+RT3V2=j6AoY;;%%F?bpf=xOi{oHWzk9S^FKZ zE;RvL`QwmRP2$QQZ z=yQ8;kPeVNb63pE02^6MAWe=zk)W@ORj)=u!0GrClO>gHmkH1DOwwtt=#`@=r!}V1 zZgA1F2o%?18xD<9Ro8grc*k7M%M1a6nqwaiA0CKPRWNvSmj1VYzVm`d^rHk1@Oz?S z@lI>vD?a}kz~E#8r1JO(9#dx{3jx}N59Xoe4Qc5Ke&H#;yTtJrv(*6sC6(=D)3|HF z+&tQ8F#IbQmG+de+XL5cxo;6)9SSiVl?H# z`9ub);09{P!ouHT`VW{DH!^fR({BTX{;(^N6<_!CPNX+n#)iFT8M25C!OcrUTkP{Ke|Z?F=8)qu zcx*=#ljfg1PnmK)mtP=bGkTN`qTw%~{OHSfcFZ+bmDmZG>p9XA`B`SBx?aqXB-BaE za8e%M&xjZ8cHjaQ{~QIrI84gcn`Q3N44vu?sRe>eBF?>3 z6bD~_D66I&>e?7bf_VOvrF*ao8sZD4N*BQP(x34OQ3E_25xboW#ZLniA)c7f1y?+b zGAA-TnVUZ)fjKcX0ljCY=KBiMi`n2S89oPsI2ZBj0`yl|JJeIHx;NiU#@!ajBI=&T z%v2+|Ga7yf(~NX6#P=i(lf@U2Gya}efz)SzQEaLWgbjNvYP~`Ql}#*t75+2-jGqdk zOWw%|p?a!++adIZNN89=`mYUBy&4%3j`>;SSw)TkJJ63&S{kx^V;W}h*x?{(E2$VT zp?klBd=Q^1rmLdvOJ_g~2qhjzfdyKjzi;?SwYN(yo&Vq7ZHkmvAjsz$C~|?a0|CH) zTgYMKwB}jqnvPpFBI8wI!1WPp4;21v#w4mMhy2q*n3H?V{`19^`P)E*ZV4AF7y5-t z&e;n*j)*E8=w3539=!pK zNW?d^8M89SIW(H~7Q>wC^zf_T<`h+ty2emh|7z z(>JkFgnQ+K{2q|fBgiS&uhKN@KH^8BE8px2T2wrR#z?N!!5C01!}2 z!JBt<6l$2hJV}+IWDuV3Y$B~_B~vL?v4KkFlfKFlLHS_PWoGhx55G)G1AW?*8|_38 zLVk7}4+H2xD0rVw;zyykBUfL4Y>xDe2Hxt?6{h?OWg$!$zl~7I#Xa93(MR9Q7$Y%l zt#}y$x~72bqkKpB(`Ghcb(R6#@2#Q6MgNJ)h?Ij7EHBx#6y>@DMo! z+RZqt>4{7zq-x$%srk7*7;v#DRC)P_3#G5ra47$=!EGy4qjrG)OgYDYafw@;KHeHj zk^GYbxh-{I*#_WZA%13qS_8^@HBIv?laPMe(BE|wzymLji1y5zFy^_S+?5Nj(t?{u z*}b#VPZ<37sAiswKo|zh!8NkKpe`{QQb1;bobb<`0-Z*hR@Huyz6D24tIyxn?hTWW z!4OKXX?CU$#P^@ZQPPBeGxB>GI(ROjGU++T*SM2Nb_pXC={;2XbNGe*TZSA9Y!V>A z1s+gd|73K;nN`cSM3pW@qMI@e-p@%VO4BlId;5pNBjED0nLE3uqN_l(M zzy6KeG+d05z5MxCPFD2rtRuLi;zh@@8@T^Y5IvaiTf2XxCa^MljInHcn*e}k8GJe?;7lN=BVB-HJ zZX0|G59_^QohjUZIj2?xGOA8C=hU6`#_o5G-3@M`gz3|wqF$8EX3Bm4)qL2pW=tot zst@L2TAZB{N~zZcLxl*r7r_oO4qVImF+XlChf#Q#C6ey9VZhj!s47%CHMN0#Nj;$%vl3ivoAr)5%9+@+G>H_CeT zaPS)WCRbd4d3rWvvK?84ydxcNu1}Q|I2RFfIssqmab zV&S5-yH|x6#qWlE5eKEpfMiu`u`Y%fAHQwg3$1}jkaDl<%&F?sy|rqMqW!WlASMlX z>v8jo2CW63`hEh8)S;z(VPUF4*=^(R?z2_%($ociO_en)BN#hGh=iwogvR%g>Gz2H zzwp8pJnAWPog?Onv38hAuv9@AhC#R&J@O(S;eB}v6*Y*^yU!5ADObR9&(6`&*tg2= zF3o8yWuJy-qo};3o(L3|1F*;9Xqq|aWp>Nju<>t7w<9pz8Dq~2-L%=oRDgoUX=>yV z*yh83oqCUC7_j=;Hi%4_Si@>+ECkn_2?Sj(pLOu#O{4C^MauuMsGRX&*}E(49nVH{ zlB<+C2os^HkqWT!OGU!WFgy`@qSvR|d@4VwNcBdSh$H}f(DCg+X4r5Bkn_0+vZ)FQ z(;c=4g^JSL1^)_-(bDNpdIQ`c;>gViZ3TgU!A7-E?y-^^t$uaXZYYWHghn8Q5#&^b zFVL3TUd9~|1XNF&NyQ^IsIA^%4W-o3k)|%$^_;!9b^1<|w@rdOYC~RFicSn8+n!z5 z6>MN3Am-P>+@3-|JO-U2W*9aFW&si43@of^&$_+8Yvo zW5?CC8J$U>^CZp{9s5Iqpm?I6J7I^iUImJ|sd?>^E_+8xm+J4s-cl{+HJ62Q6VE~r z;Jbrtcsi88uxaNIyla&3p zkE0Of?cD;qXql)jTYJ-0n)EmAsWpgy9SDgi8*qiR$H-b^QR3zhyjq}F-NivT`El`Y znm+=`-@>aKu+<7cg-hc!&JI>{^oYZIC`P<;3p%Sd5{PsF^IJla(9?6bRq@Q)zsU(m|k0d!;BtoO*eiA?|o78lLZ9F)G2Yz5u*2o4m2ET_J7tL z?YIG=8I$vVD4S%X7LpkZ<2@u{CHCL$yGjz$ICrqg35le3Zb4pDj5*r6GcV{szXGsd zgm-&nbFI@88f&EqRP~BO{e#KIV{dtH-5nHVlNDMtX@&I|%t*8F35%3}HA;Lm9yjt# zD^)i*r6a19M$szJnos$=^)9t**d6l?>~ACYFWh>(gpqyDeOnqKu}B7^+i}pS2ibn< zGV*PFk}ZxL3<<0-Y0qdV8CmmmbP{(%T|%L!T*u6uph_3Tyg5m~>W42O1}|8fXp~DfA)`q< z8GC~H>!@TPG3ap240?JEPmqt~QcOUcq#hKO{vETnB#&Mm&5&b%h%%R4ARL|!w^LXS zAe{H@mQg=-J6&7ES$MUOn&E!*KA;<;xi^ar12iq+yZy$4Z(L3+Qz&QPCtCRi zSlc_wXX@%7y|z|u7~)S5Vdrbd>!KnQKHE)a86?nP>;l;j(e<_<7v#TCu$LMe?$GHYup9C zW}ENAm6se|2^!qi%DR~1l!Jcm#xfTxKS5u)=4i;07_Vb9c9w-%r3YCf{&F^?8!=V2 z-1Rk@L|$rt6b9I0EfniD!CW|0wR3zm}wchRR;7AeI9pYW> zqZ_WYFPFX<%G_EyEcv9@pg#^;h!p4PZ7nU6sf66|;35#kay|3TSJ5Vl+3^_D)O911 z2lRr6BWsR(B}vb=*#z<-_H`Fc(1T{|!Fw#Dl1B@F7*OZhNMxp=s;Bqa^wq&o(Dx>x zU8AYT$1v)vq<*Fqhxj2h#i=C~L)_}Id1;Pe^7enK$1xN?b|`sC8RFdkLGYFs21(AQYy_iebC1L*_q4n!jMR3izXFwalU5e zOd1#zldt1Oue$-;3w8?iUV0a7{$D)Otg(*>Sfj|YHvDDDMXTtR+ojpH1lu{Zee>^s z{V9cP7COv+Znpg~bL7S3uy48f?_dYuPH%goN)v4f1KigC>ZkI0G_|mLJJPkkc`qp13=;H<2b%xW4 zkF4PNqowGb!U9JZVQFMtHho(~U^V}L)sOf3EAmn|^Y2Dn6sG)Ak`7dC)~>|-WG35W z1|~cK&gkGmUe-;rf;q(T2z>?1+BaP2=}nm(T%i%@cMkca{zk|U?BhEM4IrpipeP-g{0QVJ8zhO(rEzZ zuw=VLjFD|&_eadq_)RGX&-uno{!VaQoJ;U*9HU^!`mv}zTpdjGnxpQz!nEa{S;Fkf z$ov3%#z%nSfDXTl>IWr{>)PY8EGB4+$P$yC0@D0Yk{kJyd`!Da_i9!vL&Y+_yU0li zwthw+Qy6y2|JBDglu=r;nPM$}y4dOHbdaJ}<}T|-HCL*S8!I}O~r=0DK>vDXh)=F)=J)_pnzhdQDfprt)A5H z0$^zjV){~sgev3?d{9ySzFs5Lx9e}sqf&rHUJ~kPZa0x`=BQW=k31rOUMmge*Ni-# z?A@mU^8?naf@iZYpwF7A8;iouS{_$Q6>7wkdL+XQ2cM^iHu)@rl+8=(f**nwrHzzm zBcsx(<#)4DTcK`!xAOS;8H)E=b1)>`5Yr_S|5~yI2_QfMoA2ACG-b)KNGR+k$$K#q zs1=b0oSJ8b)xK(qNjgJ+W16PnqD!(Fglfav&j;M+$lc1iWC6|Z;wlx5_&jL&XcKA_ z#wVCe-YJ>Yf`t%OvP70Q3eCc~756(#G<_;(Z8md{_Jd^;6a43_dKPH|X9Wa$kq6q5 z^^G@|5pO&~cQodX3mt?~D4q7gBvy#1>_gaiN;U5jKy1vcv+APvIKe}R?Z zB&Hr)9ai4IIj3KGm|7|X5Ov`*=kU>mxwmfZ67hjg54qGy!On7$fjd)&HAU1>3e&Uz zw+R61^$APLy3*l)Wq@-vD5*Km5ok;~IK1z5%)`lyEFEMQukl1D2|2l!`D|Vw|BkKr zY`Y72#JGWnWB1Bz4hT6UJYuDilkA~HEi8PrMM;XWh$O~XJnF*@)o&S#)9~L8Q`spV zzyQu}iqJ=m5y!#+(#nJJ8h6%jT;=l&JfD0@t2m$ib1ErGB}!_;n6)xkJa{J3nAz;0S>T&To9}h*@8}LRChMW?i}zE4BKu~n;M`A z{DHs;6Y}*5(G~1!YOfQs+P4r^1Kb0L6kG$h6kG&))f_xS1pquJ1prc0L{qIFN85J} zRz!n%jWJHiwPBa4F$EwFm_r2s0000000000u0xmJF$Ed|phK7XF$HF}GzCThFk + + + 一个线程安全且高性能的日志记录类,文件格式为txt,编码为ANSI,支持4中消息等级的划分 + + + + + 普通的消息等级 + + + + + 信息的消息等级 + + + + + 警告的消息等级 + + + + + 错误的消息等级 + + + + + 日志记录的路径,如果没有设置将不进行保存 + + + + + 获取或设置日志存储的次数 + + + + + 文件的存储读取锁 + + + + + 日志列表操作的安全锁 + + + + + 等待存储的日志的集合 + + + + + 用于保存一般日志级别内容的方法 + + 需要保存的字符串 + + + + 用于保存信息级别日志内容的方法 + + + + + + 用于保存警告级别日志内容的方法 + + + + + + 用于保存错误日志内容的方法 + + + + + + 用于内部保存日志内容的方法 + + + + + + + 文件的存储状态,0表示未存储,1表示存储中 + + + + + 存储一个异常和简单描述的信息 + + + + + + + 用于存储一个异常的方法 + + + + + + 调用此方法可以获得所有的日志信息,可以用来回发给客户端查看 + + + + + + 用于清空日志的所有内容,可以从外部调用 + + 软件的邮箱类,用于发送邮箱数据,连续发送10次失败则禁止发送 @@ -707,11 +817,6 @@ 流水号数字的标准长度,不够补0 流水号存储的文本位置 - - - 文件的保存状态 - - 当前的生成序列号 @@ -762,6 +867,11 @@ 指定一个新的文本头 + + + 高性能存储块 + + 包含整型和字符串描述的数据类型 @@ -859,6 +969,7 @@ 数据库的连接字符串 sql语句,适合插入,更新,删除 返回受影响的行数 + @@ -867,6 +978,7 @@ 数据库的连接对象 sql语句,适合插入,更新,删除 返回受影响的行数 + @@ -875,6 +987,8 @@ 数据库的连接字符串 sql语句,选择数据表的语句 结果数据表 + + @@ -883,6 +997,7 @@ 数据库连接对象 sql语句,选择数据表的语句 结果数据表 + @@ -891,6 +1006,8 @@ 数据库的连接字符串 sql语句,选择数据表的语句 结果数据集合 + + @@ -899,6 +1016,8 @@ 数据库的连接对象 sql语句,选择数据表的语句 结果数据集合 + + @@ -907,6 +1026,8 @@ 数据库的连接字符串 sql语句,选择数据表的语句 结果数据 + + @@ -915,6 +1036,8 @@ 数据库的连接对象 sql语句,选择数据表的语句 结果数据 + + @@ -1052,194 +1175,85 @@ - - - 一个线程安全且高性能的日志记录类,文件格式为txt,编码为ANSI,支持4中消息等级的划分 - - - - - 普通的消息等级 - - - - - 信息的消息等级 - - - - - 警告的消息等级 - - - - - 错误的消息等级 - - - - - 日志记录的路径,如果没有设置将不进行保存 - - - - - 获取或设置日志存储的次数 - - - - - 文件的存储读取锁 - - - - - 日志列表操作的安全锁 - - - - - 等待存储的日志的集合 - - - - - 写入文件的次数 - - - - - 用于保存一般日志级别内容的方法 - - 需要保存的字符串 - - - - 用于保存信息级别日志内容的方法 - - - - - - 用于保存警告级别日志内容的方法 - - - - - - 用于保存错误日志内容的方法 - - - - - - 用于内部保存日志内容的方法 - - - - - - - 文件的存储状态,0表示未存储,1表示存储中 - - - - - 存储一个异常和简单描述的信息 - - - - - - - 用于存储一个异常的方法 - - - - - - 调用此方法可以获得所有的日志信息,可以用来回发给客户端查看 - - - - - - 用于清空日志的所有内容,可以从外部调用 - - - + 用于本程序集访问通信的暗号说明 - + + + 规定所有的网络传输指令头都为32字节 + + + 用于心跳程序的暗号信息 - - - 说明发送的只是文本信息 - - - - - 发送的数据就是普通的字节数组 - - - + 客户端退出消息 - + 因为客户端达到上限而拒绝登录 - + 允许客户端登录到服务器 - + + + 说明发送的只是文本信息 + + + + + 发送的数据就是普通的字节数组 + + + + + 发送的数据就是普通的图片数据 + + + 请求文件下载的暗号 - + 请求文件上传的暗号 - + 文件校验成功 - + 文件校验失败 - + 文件保存失败 - + - 根据字符串数据生成带有暗号头的数据 + 不压缩数据字节 - - - + - 根据字节数据生成带有暗号头的数据 + 压缩数据字节 - - @@ -1397,69 +1411,69 @@ 使用代码编辑器修改此方法的内容。 - + 用来保存的文件信息类 - + 文件的名称 - + 文件的大小 - + 用于用户自定义的标识 - + 文件的上传人 - + 文件的上传日期 - + 文件的描述,说明备注 - + 文件在服务器的实际存储路径 - + 文件被下载的次数 - + 文件的后缀名 - + 获取大小 - + 获取文件对象显示图标 - + 根据文件后缀选择需要对应显示的文件图标,包含了二十多种常用文件的图标 @@ -1502,7 +1516,7 @@ - + 新增一个文件对象 @@ -1529,7 +1543,7 @@ - 根据 + 根据文件名称获取文件类型 @@ -1540,9 +1554,9 @@ - + - 将所有数据进行保存 + 一个乐观并发模型高性能执行类 @@ -1626,6 +1640,11 @@ 基于TCP的服务器引擎端核心类 + + + 实例化一个网络服务器类对象 + + 所支持的同时在线客户端的最大数量,商用限制1000个,最小10个 @@ -1637,7 +1656,20 @@ 示例:"#IP:{0} Name:{1}" + + + 客户端在线信息缓存 + + + + + 一个计算上线下线的高性能缓存对象 + + + + 计算所有客户端在线的信息 + 所有客户端的在线信息,使用#符号分隔开来 @@ -1704,44 +1736,45 @@ - - - 指令头接收方法 - - - - - - 数据内容接收方法 - - - - + 服务器端用于数据发送文本的方法 数据发送对象 + 用户自定义的数据对象,如不需要,赋值为0 发送的文本 - + 服务器端用于发送字节的方法 数据发送对象 + 用户自定义的数据对象,如不需要,赋值为0 实际发送的数据 - + 服务端用于发送所有数据到所有的客户端 - + 用户自定义的命令头 + 需要传送的实际的数据 - + 服务端用于发送所有数据到所有的客户端 + 用户自定义的命令头 需要群发客户端的字节数据 + + + 数据处理中心 + + + + + + 基于TCP通信的客户端核心类 @@ -1782,6 +1815,11 @@ 远程服务器的IP地址和端口 + + + 服务器的时间,自动实现和服务器同步 + + 系统与服务器的延时时间,单位毫秒 @@ -1822,30 +1860,29 @@ 启动客户端引擎,连接服务器系统 - - - 指令头接收方法 - - - - - - 数据内容接收方法 - - - - + 服务器端用于数据发送文本的方法 + 用户自定义的命令头 发送的文本 - + 服务器端用于发送字节的方法 + 用户自定义的命令头 实际发送的数据 + + + 客户端的数据处理中心 + + + + + + 心跳线程的方法 @@ -1863,26 +1900,36 @@ 服务器的通信地址 - + 客户端向服务器进行请求,请求字符串数据 - + 用户的指令头 + 发送数据 - + + + 客户端向服务器进行请求,请求字符串数据 + + 用户的指令头 + + + 客户端向服务器进行请求,请求字节数据 + 用户的指令头 - + 需要发送的底层数据 - 需要发送的底层数据 数据的指令头 + 用户的指令头 + 需要发送的底层数据 @@ -1916,19 +1963,21 @@ 关闭引擎 - + 向指定的通信对象发送字符串数据 - 通信对象 + 通信对象 + 用户的指令头 实际发送的字符串数据 - + 向指定的通信对象发送字节数据 - - + 连接对象 + 用户的指令头 + 实际的数据 @@ -1936,6 +1985,22 @@ + + + 处理异常的方法 + + + + + + + 数据处理中心 + + + + + + 用于服务器支持软件全自动更新升级的类 @@ -1970,7 +2035,7 @@ - 获取或设置一次接收时的数据长度 + 获取或设置一次接收时的数据长度,默认2KB数据长度 @@ -1984,6 +2049,13 @@ 关闭引擎 + + + 重新开始接收数据 + + + + 当接收到文本数据的时候,触发此事件 @@ -2005,17 +2077,25 @@ - + 发送字节数据到服务器 + 用户自定义的标记数据 字节数据 + + + - + 发送字符串数据到服务器 + 用户自定义的标记数据 字符串数据 + + + @@ -2040,7 +2120,7 @@ 服务器的端口号 - + 设置文件数据 @@ -2317,11 +2397,6 @@ UDP通信中的远程端 - - - 头子节数据标准长度 - - 指令头缓存 @@ -2416,6 +2491,145 @@ + + + 超时操作的类 [a class use to indicate the time-out of the connection] + + + + + 操作的开始时间 + + + + + 操作是否成功 + + + + + 延时的时间,单位毫秒 + + + + + 连接超时用的Socket + + + + + 静态的方法支持类,提供一些网络的静态支持 + + + + + 文件的读写缓存大小 + + + + + 检查是否超时的静态方法 + + + + + + + 判断两个字节是否相同 + + 第一个字节 + 第二个字节 + + + + + 判断两个字节的指定部分是否相同 + + 第一个字节 + 第一个字节的起始位置 + 第二个字节 + 第二个字节的起始位置 + 校验的长度 + 返回是否相等 + + + + + 读取socket数据的基础方法,只适合用来接收指令头,或是同步数据 + + 通信对象 + 接收的长度 + + + + + + + + + 读取socket指定长度数据并写入文件流中 + + 支持写入的文件流 + 连接的套接字 + 指定接收长度 + 是否回发进度 + + + + + + + + 读取socket指定长度数据并写入文件流中 + + 支持写入的文件流 + 指定接收长度 + 是否回发进度 + 套接字的属性 + + + + 读取文件流并将数据写入socket + + 文件流 + 连接的套接字 + 要写入的长度 + + + + 生成终极传送指令的方法,所有的数据均通过该方法出来 + + 命令头 + 自用自定义 + 令牌 + 字节数据 + + + + + 解析接收到数据,先解压缩后进行解密 + + + + + + + 获取发送字节数据的实际数据 + + + + + + + + + + + + + + + 一个网络通信类的基础类 @@ -2426,22 +2640,19 @@ 用于通信工作的核心对象 + + + 网络访问中的超时时间,单位:毫秒,默认值2200 + + 当前对象的身份令牌,用来在网络通信中标识唯一的验证 - + - 判断两个字节是否相同 - - 第一个字节 - 第二个字节 - - - - - 网络访问中的超时时间,单位:毫秒,默认值2200 + 分次接收的数据长度 @@ -2450,40 +2661,6 @@ - - - 读取socket数据的基础方法 - - 通信对象 - 接收的长度 - - - - - 读取socket指定长度数据并写入文件流中 - - 支持写入的文件流 - 连接的套接字 - 指定接收长度 - 是否回发进度 - - - - 读取socket指定长度数据并写入文件流中 - - 支持写入的文件流 - 指定接收长度 - 是否回发进度 - 套接字的属性 - - - - 读取文件流并将数据写入socket - - 文件流 - 连接的套接字 - 要写入的长度 - 不带参数的委托 @@ -2505,12 +2682,16 @@ object1 object2 - + - 将字节数组转化为16进制的字符串 + 带三个参数的委托 - 字节数组 - 字符串 + T1 + T2 + T3 + object1 + object2 + object3 @@ -2530,6 +2711,39 @@ + + + 重新开始接收下一次的数据传递 + + + + + + 指令头接收方法 + + + + + + 数据内容接收方法 + + + + + + 同步数据的接收的块 + + 网络的套接字 + + + + 数据处理中心,应该继承重写 + + 连接状态 + 协议头 + 用户自定义 + 数据内容 + 处理异常的方法,该方法需要在服务器端进行重写 @@ -2537,14 +2751,6 @@ - - - 用于同步通信中数据转换成实际发送的数据 - - 等待发送的数据 - 数据头 - 实际发送的数据 - 指示是否在发送结束后关闭套接字 @@ -2663,27 +2869,42 @@ 修改数据的算法 - + - 操作结果的类 + 一个用于高性能,乐观并发模型控制操作的类 - + + + 操作状态,0是未操作,1是操作中 + + + + + 需要操作的次数 + + + + + 操作结果的类,只带有成功标志和错误信息 + + + 指示本次访问是否成功 - + 具体的错误描述 - + 具体的错误代码 - + 获取错误代号及文本描述 @@ -2691,7 +2912,7 @@ - 操作结果的字符串类 + 操作结果的类,除了带有成功标志和错误信息,还带有一个字符串数据 @@ -2701,7 +2922,7 @@ - 操作结果的字节数组类 + 操作结果的类,除了带有成功标志和错误信息,还带有一个字节数据 @@ -2865,7 +3086,7 @@ - 异步的多PLC请求类,可以同时并发的向多个PLC发起请求,该类使用非阻塞的高性能方式实现 + 异步的多PLC请求类,可以同时并发的向多个PLC发起请求,该类使用非阻塞的高性能方式实现,需要好好测试 @@ -3811,25 +4032,24 @@ 根据自定义初始化方法进行初始化串口信息 - + - 超时连接的类 [a class use to indicate the time-out of the connection] + 一个负责压缩解压数据字节的类 - + - 开始连接或是请求的时间 + 压缩字节数据 + 等待被压缩的数据 + 压缩之后的数据 - + - 获取或设置是否连接成功,默认为False - - - - - 用于连接或是工作的套接字 + 解压压缩后的数据 + 压缩后的数据 + 压缩前的原始数据 diff --git a/软件系统客户端模版/FormDownloading.cs b/软件系统客户端模版/FormDownloading.cs index 5bb4db5..12b9b66 100644 --- a/软件系统客户端模版/FormDownloading.cs +++ b/软件系统客户端模版/FormDownloading.cs @@ -22,10 +22,10 @@ namespace 软件系统客户端模版 public partial class FormDownloading : Form { - public FormDownloading(string cmd,Action action) + public FormDownloading(int customer,Action action) { InitializeComponent(); - net_cmd = cmd; + net_cmd = customer; DealWithResult = action; DoubleBuffered = true; } @@ -84,7 +84,7 @@ namespace 软件系统客户端模版 } - private string net_cmd = ""; + private int net_cmd = 0; private Action DealWithResult = null; private void ThreadRequestServer() diff --git a/软件系统客户端模版/FormLog.cs b/软件系统客户端模版/FormLog.cs index 7ae42e8..30e3657 100644 --- a/软件系统客户端模版/FormLog.cs +++ b/软件系统客户端模版/FormLog.cs @@ -30,7 +30,7 @@ namespace 软件系统客户端模版 } - private void ReadFromServer(string head_code) + private void ReadFromServer(int head_code) { OperateResultString result = net_simplify_client.ReadFromServer(head_code); if (result.IsSuccess) @@ -40,7 +40,7 @@ namespace 软件系统客户端模版 } else textBox1.Text = result.ToMessageShowString(); } - private void ClearFromServer(string head_code) + private void ClearFromServer(int head_code) { OperateResultString result = net_simplify_client.ReadFromServer(head_code); if (result.IsSuccess) textBox1.Text = "清除成功"; @@ -88,22 +88,22 @@ namespace 软件系统客户端模版 } private void userButton9_Click(object sender, EventArgs e) { - ReadFromServer(CommonHeadCode.SimplifyHeadCode.共享文件日志查看); + ReadFromServer(CommonHeadCode.SimplifyHeadCode.文件日志查看); } private void userButton8_Click(object sender, EventArgs e) { - ClearFromServer(CommonHeadCode.SimplifyHeadCode.共享文件日志清空); + ClearFromServer(CommonHeadCode.SimplifyHeadCode.文件日志清空); } private void userButton11_Click(object sender, EventArgs e) { - ReadFromServer(CommonHeadCode.SimplifyHeadCode.建议反馈日志查看); + ReadFromServer(CommonHeadCode.SimplifyHeadCode.反馈日志查看); } private void userButton10_Click(object sender, EventArgs e) { - ClearFromServer(CommonHeadCode.SimplifyHeadCode.建议反馈日志清空); + ClearFromServer(CommonHeadCode.SimplifyHeadCode.反馈日志清空); } private void userButton13_Click(object sender, EventArgs e) { diff --git a/软件系统客户端模版/FormLogin.cs b/软件系统客户端模版/FormLogin.cs index 07a6685..493e437 100644 --- a/软件系统客户端模版/FormLogin.cs +++ b/软件系统客户端模版/FormLogin.cs @@ -93,6 +93,7 @@ namespace 软件系统客户端模版 private void userButton_login_Click(object sender, EventArgs e) { + label_status.Visible = true; //验证输入 if (string.IsNullOrEmpty(textBox_userName.Text)) @@ -174,6 +175,7 @@ namespace 软件系统客户端模版 OperateResultString result = UserClient.Net_simplify_client.ReadFromServer(CommonLibrary.CommonHeadCode.SimplifyHeadCode.维护检查); if(result.IsSuccess) { + byte[] temp = Encoding.Unicode.GetBytes(result.Content); //例如返回结果为1说明允许登录,0则说明服务器处于维护中,并将信息显示 if (result.Content != "1") { @@ -204,11 +206,12 @@ namespace 软件系统客户端模版 // 以下展示了服务器校验的方法,如您需要数据库校验,请删除下面并改成SQL访问验证的方式 //包装数据 - Newtonsoft.Json.Linq.JObject json = new Newtonsoft.Json.Linq.JObject(); - json.Add(UserAccount.UserNameText, new Newtonsoft.Json.Linq.JValue(textBox_userName.Text)); - json.Add(UserAccount.PasswordText, new Newtonsoft.Json.Linq.JValue(textBox_password.Text)); - - result = UserClient.Net_simplify_client.ReadFromServer(CommonLibrary.CommonHeadCode.SimplifyHeadCode.账户检查+json.ToString()); + JObject json = new JObject + { + { UserAccount.UserNameText, new Newtonsoft.Json.Linq.JValue(textBox_userName.Text) }, + { UserAccount.PasswordText, new Newtonsoft.Json.Linq.JValue(textBox_password.Text) } + }; + result = UserClient.Net_simplify_client.ReadFromServer(CommonLibrary.CommonHeadCode.SimplifyHeadCode.账户检查, json.ToString()); if (result.IsSuccess) { //服务器应该返回账户的信息 diff --git a/软件系统客户端模版/FormMainWindow.cs b/软件系统客户端模版/FormMainWindow.cs index 2205b20..04dcdeb 100644 --- a/软件系统客户端模版/FormMainWindow.cs +++ b/软件系统客户端模版/FormMainWindow.cs @@ -16,7 +16,7 @@ using HslCommunication.BasicFramework; /*************************************************************************************** * - * 模版日期 2017-05-20 + * 模版日期 2017-06-16 * 创建人 胡少林 * 版权所有 胡少林 * 授权说明 模版仅授权个人使用,如需商用,请联系hsl200909@163.com洽谈 @@ -56,7 +56,7 @@ namespace 软件系统客户端模版 private void FormMainWindow_Load(object sender, EventArgs e) { //udp测试 - //SendServerUdpData("载入了窗体"); + //SendServerUdpData(0, "载入了窗体"); //窗口载入 label_userName.Text = UserClient.UserAccount.UserName; @@ -94,7 +94,7 @@ namespace 软件系统客户端模版 IsWindowShow = true; //udp测试 - //SendServerUdpData("显示了窗体"); + //SendServerUdpData(0, "显示了窗体"); //是否显示更新日志,显示前进行判断该版本是否已经显示过了 if (UserClient.JsonSettings.IsNewVersionRunning) @@ -111,6 +111,8 @@ namespace 软件系统客户端模版 账户管理ToolStripMenuItem.Enabled = false; 远程更新ToolStripMenuItem.Enabled = false; } + //启动定时器 + TimeTickInitilization(); } private void FormMainWindow_FormClosing(object sender, FormClosingEventArgs e) { @@ -141,7 +143,7 @@ namespace 软件系统客户端模版 { UserAccount.UserNameText, UserClient.UserAccount.UserName }, { UserAccount.PasswordText, p } }; - return UserClient.Net_simplify_client.ReadFromServer(CommonHeadCode.SimplifyHeadCode.密码修改 + json.ToString()).IsSuccess; + return UserClient.Net_simplify_client.ReadFromServer(CommonHeadCode.SimplifyHeadCode.密码修改, json.ToString()).IsSuccess; }, 6, 8)) { fpm.ShowDialog(); @@ -182,7 +184,7 @@ namespace 软件系统客户端模版 private void 更改公告ToolStripMenuItem_Click(object sender, EventArgs e) { using (FormInputAndAction fiaa = new FormInputAndAction(str => UserClient.Net_simplify_client.ReadFromServer( - CommonHeadCode.SimplifyHeadCode.更新公告 + str).IsSuccess, UserClient.Announcement, "请输入公告内容")) + CommonHeadCode.SimplifyHeadCode.更新公告, str).IsSuccess, UserClient.Announcement, "请输入公告内容")) { fiaa.ShowDialog(); } @@ -208,10 +210,10 @@ namespace 软件系统客户端模版 { FormAccountManage fam = new FormAccountManage(() => { - OperateResultString result = UserClient.Net_simplify_client.ReadFromServer(CommonHeadCode.SimplifyHeadCode.获取账户信息); + OperateResultString result = UserClient.Net_simplify_client.ReadFromServer(CommonHeadCode.SimplifyHeadCode.获取账户); if (result.IsSuccess) return result.Content; else return result.ToMessageShowString(); - }, m => UserClient.Net_simplify_client.ReadFromServer(CommonHeadCode.SimplifyHeadCode.更细账户信息 + m).IsSuccess); + }, m => UserClient.Net_simplify_client.ReadFromServer(CommonHeadCode.SimplifyHeadCode.更细账户, m).IsSuccess); fam.ShowDialog(); fam.Dispose(); } @@ -246,7 +248,7 @@ namespace 软件系统客户端模版 private void 意见反馈ToolStripMenuItem_Click(object sender, EventArgs e) { using (FormInputAndAction fiaa = new FormInputAndAction(str => UserClient.Net_simplify_client.ReadFromServer( - CommonHeadCode.SimplifyHeadCode.意见反馈 + UserClient.UserAccount.UserName + ":" + str).IsSuccess, "", "请输入意见反馈:")) + CommonHeadCode.SimplifyHeadCode.意见反馈, UserClient.UserAccount.UserName + ":" + str).IsSuccess, "", "请输入意见反馈:")) { fiaa.ShowDialog(); } @@ -274,48 +276,51 @@ namespace 软件系统客户端模版 SoftBasic.ShowExceptionMessage(ex); } } - - private void Net_socket_client_AcceptString(AsyncStateOne object1, string object2) + /// + /// 接收到服务器的字节数据的回调方法 + /// + /// 网络连接对象 + /// 用户自定义的指令头,用来区分数据用途 + /// 数据 + private void Net_socket_client_AcceptString(AsyncStateOne state, int customer, string data) { - //接收到服务器发来的字符串数据 - string head_code = object2.Substring(0, 4); - if (head_code == CommonHeadCode.MultiNetHeadCode.弹窗消息) + if (customer == CommonHeadCode.MultiNetHeadCode.弹窗新消息) { if (IsHandleCreated) Invoke(new Action(() => { - FormPopup fpp = new FormPopup(object2.Substring(4), Color.DodgerBlue, 10000); + FormPopup fpp = new FormPopup(data, Color.DodgerBlue, 10000); fpp.Show(); })); } - else if (head_code == CommonHeadCode.MultiNetHeadCode.所有客户端在线信息) + else if (customer == CommonHeadCode.MultiNetHeadCode.总在线信息) { if (IsHandleCreated) Invoke(new Action(() => { - listBox1.DataSource = object2.Substring(4).Split('#'); + listBox1.DataSource = data.Split('#'); })); } - else if (head_code == CommonHeadCode.MultiNetHeadCode.关闭所有客户端) + else if (customer == CommonHeadCode.MultiNetHeadCode.关闭客户端) { if (IsHandleCreated) Invoke(new Action(() => { Close(); })); } - else if (head_code == CommonHeadCode.SimplifyHeadCode.更新公告) + else if (customer == CommonHeadCode.SimplifyHeadCode.更新公告) { //此处应用到了同步类的指令头 if (IsHandleCreated) Invoke(new Action(() => { - UserClient.Announcement = object2.Substring(4); - label_Announcement.Text = object2.Substring(4); - FormPopup fpp = new FormPopup(object2.Substring(4), Color.DodgerBlue, 10000); + UserClient.Announcement = data; + label_Announcement.Text = data; + FormPopup fpp = new FormPopup(data, Color.DodgerBlue, 10000); fpp.Show(); })); } - else if (head_code == CommonHeadCode.MultiNetHeadCode.初始化数据) + else if (customer == CommonHeadCode.MultiNetHeadCode.初始化数据) { //收到服务器的数据 - JObject json = JObject.Parse(object2.Substring(4)); + JObject json = JObject.Parse(data); UserClient.DateTimeServer = json["Time"].ToObject(); if (IsHandleCreated) Invoke(new Action(() => { @@ -323,36 +328,28 @@ namespace 软件系统客户端模版 label_file_count.Text = json["FileCount"].ToObject().ToString(); })); } - else if (head_code == CommonHeadCode.MultiNetHeadCode.文件数量) + else if (customer == CommonHeadCode.MultiNetHeadCode.文件总数量) { if (IsHandleCreated) Invoke(new Action(() => { - label_file_count.Text = object2.Substring(4); + label_file_count.Text = data; })); } - else if (head_code == CommonHeadCode.MultiNetHeadCode.时间推送) - { - UserClient.DateTimeServer = Convert.ToDateTime(object2.Substring(4)); - if (IsHandleCreated) Invoke(new Action(() => - { - toolStripStatusLabel_time.Text = UserClient.DateTimeServer.ToString("yyyy-MM-dd HH:mm") + $"({net_socket_client.DelayTime}ms)"; - })); - } - else if (head_code == CommonHeadCode.MultiNetHeadCode.留言消息) + else if (customer == CommonHeadCode.MultiNetHeadCode.留言版消息) { if (IsHandleCreated) Invoke(new Action(() => { - UIControls_Chat?.DealwithReceive(object2.Substring(4)); + UIControls_Chat?.DealwithReceive(data); })); } } - private void Net_socket_client_AcceptByte(AsyncStateOne object1, byte[] object2) + private void Net_socket_client_AcceptByte(AsyncStateOne object1, int customer, byte[] object2) { //接收到服务器发来的字节数据 if (IsHandleCreated) Invoke(new Action(() => { - MessageBox.Show(BitConverter.ToInt32(object2, 0).ToString()); + MessageBox.Show(customer.ToString()); })); } @@ -439,7 +436,7 @@ namespace 软件系统客户端模版 UIControls_Chat = new UIControls.OnlineChatRender((m) => { - net_socket_client.Send(CommonHeadCode.MultiNetHeadCode.留言消息 + m); + net_socket_client.Send(CommonHeadCode.MultiNetHeadCode.留言版消息, m); }) { Visible = false, @@ -491,12 +488,82 @@ namespace 软件系统客户端模版 /// 调用该方法并指定参数即可,最长字符串不得 /// /// - private void SendServerUdpData(string data) + private void SendServerUdpData(int customer, string data) { //测试发送udp消息 - UserClient.Net_Udp_Client.SendMessage(data); + UserClient.Net_Udp_Client.SendMessage(customer, data); } + #endregion + + #region 后台计数线程 + + /********************************************************************************************* + * + * 说明 一个后台线程,用来执行一些周期执行的东西 + * 注意 它不仅执行每秒触发的代码,也支持每分钟,每天,每月,每年等等 + * + ********************************************************************************************/ + + + /// + /// 初始化后台的计数线程 + /// + public void TimeTickInitilization() + { + + Thread thread = new Thread(new ThreadStart(ThreadTimeTick)); + thread.IsBackground = true; + thread.Start(); + } + + public void ThreadTimeTick() + { + Thread.Sleep(300);//加一个微小的延时 + int second = DateTime.Now.Second - 1; + int minute = -1; + int hour = -1; + int day = -1; + Action DTimeShow = delegate + { + //显示服务器的时间和当前网络的延时时间,通常为毫秒 + toolStripStatusLabel_time.Text = net_socket_client.ServerTime.ToString("yyyy-MM-dd HH:mm:ss") + $"({net_socket_client.DelayTime}ms)"; + }; + + while (IsWindowShow) + { + while (DateTime.Now.Second == second) + { + Thread.Sleep(20); + } + second = DateTime.Now.Second; + if (IsWindowShow && IsHandleCreated) Invoke(DTimeShow); + //每秒钟执行的代码 + UserClient.DateTimeServer = net_socket_client.ServerTime; + + if (second == 0) + { + //每个0秒执行的代码 + } + if (minute != DateTime.Now.Minute) + { + minute = DateTime.Now.Minute; + //每分钟执行的代码 + } + if (hour != DateTime.Now.Hour) + { + hour = DateTime.Now.Hour; + //每小时执行的代码 + } + if (day != DateTime.Now.Day) + { + day = DateTime.Now.Day; + //每天执行的代码 + } + } + } + + #endregion } } diff --git a/软件系统客户端模版/FormRegisterAccount.cs b/软件系统客户端模版/FormRegisterAccount.cs index a0a7897..de92fc8 100644 --- a/软件系统客户端模版/FormRegisterAccount.cs +++ b/软件系统客户端模版/FormRegisterAccount.cs @@ -51,7 +51,7 @@ namespace 软件系统客户端模版 account.LoginEnable = comboBox2.SelectedItem.ToString() == "允许"; account.ForbidMessage = textBox4.Text; - OperateResultString result = net_client.ReadFromServer(CommonHeadCode.SimplifyHeadCode.注册账号 + account.ToJsonString()); + OperateResultString result = net_client.ReadFromServer(CommonHeadCode.SimplifyHeadCode.注册账号, account.ToJsonString()); if (result.IsSuccess && result.Content == "1") { MessageBox.Show("注册成功!"); diff --git a/软件系统客户端模版/FormUpdateRemote.cs b/软件系统客户端模版/FormUpdateRemote.cs index 9d80508..66571ff 100644 --- a/软件系统客户端模版/FormUpdateRemote.cs +++ b/软件系统客户端模版/FormUpdateRemote.cs @@ -48,8 +48,7 @@ namespace 软件系统客户端模版 private void userButton_version_Click(object sender, EventArgs e) { - OperateResultString result = UserClient.Net_simplify_client.ReadFromServer(CommonHeadCode.SimplifyHeadCode.更新版本号 + - textBox1.Text); + OperateResultString result = UserClient.Net_simplify_client.ReadFromServer(CommonHeadCode.SimplifyHeadCode.更新版本, textBox1.Text); if (result.IsSuccess && result.Content == "1") { MessageBox.Show("更新成功!"); diff --git a/软件系统客户端模版/UIControls/ShareFilesRender.cs b/软件系统客户端模版/UIControls/ShareFilesRender.cs index 6208b63..3f72234 100644 --- a/软件系统客户端模版/UIControls/ShareFilesRender.cs +++ b/软件系统客户端模版/UIControls/ShareFilesRender.cs @@ -43,10 +43,10 @@ namespace 软件系统客户端模版.UIControls private void userButton_refresh_Click(object sender, EventArgs e) { //向服务器请求数据 - OperateResultString result = UserClient.Net_simplify_client.ReadFromServer(CommonLibrary.CommonHeadCode.SimplifyHeadCode.请求文件列表); + OperateResultString result = UserClient.Net_simplify_client.ReadFromServer(CommonLibrary.CommonHeadCode.SimplifyHeadCode.请求文件); if(result.IsSuccess) { - Cache_Files = JArray.Parse(result.Content).ToObject>(); + Cache_Files = JArray.Parse(result.Content).ToObject>(); SetFilesShow(Cache_Files); } else @@ -55,7 +55,7 @@ namespace 软件系统客户端模版.UIControls } } - private void SetFilesShow(List files) + private void SetFilesShow(List files) { panel2.SuspendLayout(); //清楚缓存 @@ -113,7 +113,7 @@ namespace 软件系统客户端模版.UIControls /// /// 所有文件信息的缓存,以支持直接的搜索 /// - private List Cache_Files { get; set; } = new List(); + private List Cache_Files { get; set; } = new List(); /// /// 文件控件的缓存列表,方便清除垃圾 /// diff --git a/软件系统客户端模版/UserClient.cs b/软件系统客户端模版/UserClient.cs index 0edb85a..922765d 100644 --- a/软件系统客户端模版/UserClient.cs +++ b/软件系统客户端模版/UserClient.cs @@ -69,12 +69,17 @@ namespace 软件系统客户端模版 CommonLibrary.CommonLibrary.Port_Second_Net)) { KeyToken = CommonHeadCode.KeyToken, + ConnectTimeout = 5000, }; /// /// 用于使用udp向服务器进行发送即时可丢失数据的对象 /// - public static Net_Udp_Client Net_Udp_Client = new Net_Udp_Client(new System.Net.IPEndPoint(System.Net.IPAddress.Parse(ServerIp), - CommonLibrary.CommonLibrary.Port_Udp_Server)); + public static Net_Udp_Client Net_Udp_Client = new Net_Udp_Client( + new System.Net.IPEndPoint(System.Net.IPAddress.Parse(ServerIp), + CommonLibrary.CommonLibrary.Port_Udp_Server)) + { + KeyToken = CommonHeadCode.KeyToken, + }; } } diff --git a/软件系统客户端模版/软件系统客户端模版.csproj b/软件系统客户端模版/软件系统客户端模版.csproj index 5fb8654..2131c0e 100644 --- a/软件系统客户端模版/软件系统客户端模版.csproj +++ b/软件系统客户端模版/软件系统客户端模版.csproj @@ -35,7 +35,7 @@ ..\CommonLibrary\bin\Debug\CommonLibrary.dll - + False ..\Public\HslCommunication.dll diff --git a/软件系统服务端模版/Form1.cs b/软件系统服务端模版/Form1.cs index b6b4dae..99c1fe9 100644 --- a/软件系统服务端模版/Form1.cs +++ b/软件系统服务端模版/Form1.cs @@ -15,7 +15,7 @@ using HslCommunication.BasicFramework; /****************************************************************************************** * - * 模版日期 2017-05-30 + * 模版日期 2017-06-16 * 创建人 Richard.Hu * 版权所有 Richard.Hu * 授权说明 模版仅授权个人使用,如需商用,请联系hsl200909@163.com洽谈 @@ -167,7 +167,7 @@ namespace 软件系统服务端模版 using (FormInputAndAction fiaa = new FormInputAndAction( m => { - net_socket_server.SendAllClients(CommonHeadCode.MultiNetHeadCode.弹窗消息 + m); return true; + net_socket_server.SendAllClients(CommonHeadCode.MultiNetHeadCode.弹窗新消息, m); return true; })) { fiaa.ShowDialog(); @@ -177,7 +177,7 @@ namespace 软件系统服务端模版 private void 一键断开ToolStripMenuItem_Click(object sender, EventArgs e) { //关闭信号发送至所有在线客户端 - net_socket_server.SendAllClients(CommonHeadCode.MultiNetHeadCode.关闭所有客户端); + net_socket_server.SendAllClients(CommonHeadCode.MultiNetHeadCode.关闭客户端, ""); } private void 关于软件ToolStripMenuItem_Click(object sender, EventArgs e) @@ -305,31 +305,45 @@ namespace 软件系统服务端模版 /// /// 接收来自客户端的字节数据 /// - /// 客户端的地址 - /// 字节数据,根据实际情况选择是否使用 - private void Net_simplify_server_ReceivedBytesEvent(AsyncStateBase object1, byte[] object2) + /// 网络状态 + /// 字节数据,根据实际情况选择是否使用 + /// 来自客户端的字节数据 + private void Net_simplify_server_ReceivedBytesEvent(AsyncStateOne state, int customer, byte[] data) { - net_simplify_server.SendMessage(object1, object2); + net_simplify_server.SendMessage(state, customer, data); } + + + + + /****************************************************************************************************************** + * + * 方法说明: 当接收到来自客户端的数据的时候触发的方法 + * 特别注意: 如果你的数据处理中引发了异常,应用程序将会奔溃,SendMessage异常系统将会自动处理 + * + ******************************************************************************************************************/ + + /// /// 接收到来自客户端的数据,此处需要放置维护验证,更新验证等等操作 /// - /// 客户端的地址 - /// 消息数据,应该使用指令头+数据组成 - private void Net_simplify_server_ReceiveStringEvent(AsyncStateBase object1, string object2) + /// 客户端的地址 + /// 用于自定义的指令头,可不用,转而使用data来区分 + /// 接收到的服务器的数据 + private void Net_simplify_server_ReceiveStringEvent(AsyncStateOne state, int customer, string data) { //必须返回结果,调用SendMessage(object1,[实际数据]); - if (object2.StartsWith("A")) + if (customer < 11000) { - DataProcessingWithStartA(object1, object2); + DataProcessingWithStartA(state, customer, data); } - else if (object2.StartsWith("B")) + else if (customer < 12000) { - DataProcessingWithStartB(object1, object2); + DataProcessingWithStartB(state, customer, data); } else { - net_simplify_server.SendMessage(object1, object2); + net_simplify_server.SendMessage(state, customer, data); } } @@ -344,186 +358,186 @@ namespace 软件系统服务端模版 /// /// A指令块,处理系统基础运行的消息 /// - /// 网络状态对象 - /// 实际的数据 - private void DataProcessingWithStartA(AsyncStateBase object1, string object2) + /// 网络状态对象 + /// 实际的数据 + private void DataProcessingWithStartA(AsyncStateOne state, int customer, string data) { - string headCode = object2.Substring(0, 4); - if (headCode == CommonHeadCode.SimplifyHeadCode.维护检查) + if (customer == CommonHeadCode.SimplifyHeadCode.维护检查) { - net_simplify_server.SendMessage(object1, UserServer.ServerSettings.Can_Account_Login ? "1" : "0" + - UserServer.ServerSettings.Account_Forbidden_Reason); + net_simplify_server.SendMessage(state, customer, "1"); + //UserServer.ServerSettings.Can_Account_Login ? "1" : "0" + + //UserServer.ServerSettings.Account_Forbidden_Reason); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.更新检查) + else if (customer == CommonHeadCode.SimplifyHeadCode.更新检查) { - net_simplify_server.SendMessage(object1, UserServer.ServerSettings.SystemVersion.ToString()); + net_simplify_server.SendMessage(state, customer, UserServer.ServerSettings.SystemVersion.ToString()); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.参数下载) + else if (customer == CommonHeadCode.SimplifyHeadCode.参数下载) { Newtonsoft.Json.Linq.JObject json = new Newtonsoft.Json.Linq.JObject(); json.Add(nameof(UserServer.ServerSettings.Announcement), new Newtonsoft.Json.Linq.JValue(UserServer.ServerSettings.Announcement)); - net_simplify_server.SendMessage(object1, json.ToString()); + net_simplify_server.SendMessage(state, customer, json.ToString()); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.账户检查) + else if (customer == CommonHeadCode.SimplifyHeadCode.账户检查) { //此处使用的是组件自带的验证的方式,如果使用SQL数据库,另行验证 - JObject json = JObject.Parse(object2.Substring(4)); + JObject json = JObject.Parse(data); //提取账户,密码 string name = SoftBasic.GetValueFromJsonObject(json, UserAccount.UserNameText, ""); string password = SoftBasic.GetValueFromJsonObject(json, UserAccount.PasswordText, ""); - net_simplify_server.SendMessage(object1, UserServer.ServerAccounts.CheckAccountJson( - name, password, object1.GetRemoteEndPoint().Address.ToString())); + net_simplify_server.SendMessage(state, customer, UserServer.ServerAccounts.CheckAccountJson( + name, password, state.GetRemoteEndPoint().Address.ToString())); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.更新公告) + else if (customer == CommonHeadCode.SimplifyHeadCode.更新公告) { - UserServer.ServerSettings.Announcement = object2.Substring(4); + UserServer.ServerSettings.Announcement = data; //通知所有客户端更新公告 - net_socket_server.SendAllClients(object2); - net_simplify_server.SendMessage(object1, "成功"); + net_socket_server.SendAllClients(customer, data); + net_simplify_server.SendMessage(state, customer, "成功"); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.获取账户信息) + else if (customer == CommonHeadCode.SimplifyHeadCode.获取账户) { //返回服务器的账户信息 - net_simplify_server.SendMessage(object1, UserServer.ServerAccounts.GetAllAccountsJson()); + net_simplify_server.SendMessage(state, customer, UserServer.ServerAccounts.GetAllAccountsJson()); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.更细账户信息) + else if (customer == CommonHeadCode.SimplifyHeadCode.更细账户) { //更新服务器的账户信息 - UserServer.ServerAccounts.LoadAllAccountsJson(object2.Substring(4)); - net_simplify_server.SendMessage(object1, "成功"); + UserServer.ServerAccounts.LoadAllAccountsJson(data); + net_simplify_server.SendMessage(state, customer, "成功"); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.密码修改) + else if (customer == CommonHeadCode.SimplifyHeadCode.密码修改) { //更新服务器的账户密码,此处使用的是组件自带的验证的方式,如果使用SQL数据库,另行验证 - JObject json = JObject.Parse(object2.Substring(4)); + JObject json = JObject.Parse(data); //提取账户,密码 string name = SoftBasic.GetValueFromJsonObject(json, UserAccount.UserNameText, ""); string password = SoftBasic.GetValueFromJsonObject(json, UserAccount.PasswordText, ""); UserServer.ServerAccounts.UpdatePassword(name, password); - net_simplify_server.SendMessage(object1, "成功"); + net_simplify_server.SendMessage(state, customer, "成功"); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.更新版本号) + else if (customer == CommonHeadCode.SimplifyHeadCode.更新版本) { try { - UserServer.ServerSettings.SystemVersion = new SystemVersion(object2.Substring(4)); + UserServer.ServerSettings.SystemVersion = new SystemVersion(data); UserServer.ServerSettings.SaveToFile(); toolStripStatusLabel_version.Text = UserServer.ServerSettings.SystemVersion.ToString(); - net_simplify_server.SendMessage(object1, "1"); + net_simplify_server.SendMessage(state, customer, "1"); } catch { - net_simplify_server.SendMessage(object1, "0"); + net_simplify_server.SendMessage(state, customer, "0"); } } - else if (headCode == CommonHeadCode.SimplifyHeadCode.注册账号) + else if (customer == CommonHeadCode.SimplifyHeadCode.注册账号) { - bool result = UserServer.ServerAccounts.AddNewAccount(object2.Substring(4)); - net_simplify_server.SendMessage(object1, result ? "1" : "0"); + bool result = UserServer.ServerAccounts.AddNewAccount(data); + net_simplify_server.SendMessage(state, customer, result ? "1" : "0"); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.请求文件列表) + else if (customer == CommonHeadCode.SimplifyHeadCode.请求文件) { - net_simplify_server.SendMessage(object1, net_simple_file_server.ToJsonString()); + net_simplify_server.SendMessage(state, customer, net_simple_file_server.ToJsonString()); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.意见反馈) + else if (customer == CommonHeadCode.SimplifyHeadCode.意见反馈) { - AdviceLogHelper.SaveInformation(object2.Substring(4)); - net_simplify_server.SendMessage(object1, "成功"); + AdviceLogHelper.SaveInformation(data); + net_simplify_server.SendMessage(state, customer, "成功"); } else { - net_simplify_server.SendMessage(object1, object2); + net_simplify_server.SendMessage(state, customer, data); } } /// /// B指令块,处理日志相关的消息 /// - /// - /// - private void DataProcessingWithStartB(AsyncStateBase object1, string object2) + /// + /// 用户自定义的命令头 + /// + private void DataProcessingWithStartB(AsyncStateOne state, int customer, string data) { - string headCode = object2.Substring(0, 4); - if (headCode == CommonHeadCode.SimplifyHeadCode.网络日志查看) + if (customer == CommonHeadCode.SimplifyHeadCode.网络日志查看) { - net_simplify_server.SendMessage(object1, net_socket_server.LogHelper.GetLogText()); + net_simplify_server.SendMessage(state, customer, net_socket_server.LogHelper.GetLogText()); RuntimeLogHelper.SaveInformation("网络日志查看"); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.网络日志清空) + else if (customer == CommonHeadCode.SimplifyHeadCode.网络日志清空) { net_socket_server.LogHelper.ClearLogText(); - net_simplify_server.SendMessage(object1, "成功"); + net_simplify_server.SendMessage(state, customer, "成功"); RuntimeLogHelper.SaveWarnning("网络日志清空"); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.同步日志查看) + else if (customer == CommonHeadCode.SimplifyHeadCode.同步日志查看) { - net_simplify_server.SendMessage(object1, net_simplify_server.LogHelper.GetLogText()); + net_simplify_server.SendMessage(state, customer, net_simplify_server.LogHelper.GetLogText()); RuntimeLogHelper.SaveInformation("同步日志查看"); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.同步日志清空) + else if (customer == CommonHeadCode.SimplifyHeadCode.同步日志清空) { net_simplify_server.LogHelper.ClearLogText(); - net_simplify_server.SendMessage(object1, "成功"); + net_simplify_server.SendMessage(state, customer, "成功"); RuntimeLogHelper.SaveWarnning("同步日志清空"); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.更新日志查看) + else if (customer == CommonHeadCode.SimplifyHeadCode.更新日志查看) { - net_simplify_server.SendMessage(object1, net_soft_update_Server.LogHelper.GetLogText()); + net_simplify_server.SendMessage(state, customer, net_soft_update_Server.LogHelper.GetLogText()); RuntimeLogHelper.SaveInformation("更新日志查看"); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.更新日志清空) + else if (customer == CommonHeadCode.SimplifyHeadCode.更新日志清空) { net_soft_update_Server.LogHelper.ClearLogText(); - net_simplify_server.SendMessage(object1, "成功"); + net_simplify_server.SendMessage(state, customer, "成功"); RuntimeLogHelper.SaveWarnning("更新日志清空"); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.运行日志查看) + else if (customer == CommonHeadCode.SimplifyHeadCode.运行日志查看) { - net_simplify_server.SendMessage(object1, RuntimeLogHelper.GetLogText()); + net_simplify_server.SendMessage(state, customer, RuntimeLogHelper.GetLogText()); RuntimeLogHelper.SaveInformation("运行日志查看"); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.运行日志清空) + else if (customer == CommonHeadCode.SimplifyHeadCode.运行日志清空) { RuntimeLogHelper.ClearLogText(); - net_simplify_server.SendMessage(object1, "成功"); + net_simplify_server.SendMessage(state, customer, "成功"); RuntimeLogHelper.SaveInformation("运行日志清空"); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.共享文件日志查看) + else if (customer == CommonHeadCode.SimplifyHeadCode.文件日志查看) { - net_simplify_server.SendMessage(object1, net_simple_file_server.LogHelper.GetLogText()); + net_simplify_server.SendMessage(state, customer, net_simple_file_server.LogHelper.GetLogText()); RuntimeLogHelper.SaveInformation("共享文件日志查看"); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.共享文件日志清空) + else if (customer == CommonHeadCode.SimplifyHeadCode.文件日志清空) { net_simple_file_server.LogHelper.ClearLogText(); - net_simplify_server.SendMessage(object1, "成功"); + net_simplify_server.SendMessage(state, customer, "成功"); RuntimeLogHelper.SaveInformation("共享文件日志清空"); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.建议反馈日志查看) + else if (customer == CommonHeadCode.SimplifyHeadCode.反馈日志查看) { - net_simplify_server.SendMessage(object1, AdviceLogHelper.GetLogText()); + net_simplify_server.SendMessage(state, customer, AdviceLogHelper.GetLogText()); RuntimeLogHelper.SaveInformation("建议反馈日志查看"); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.建议反馈日志清空) + else if (customer == CommonHeadCode.SimplifyHeadCode.反馈日志清空) { AdviceLogHelper.ClearLogText(); - net_simplify_server.SendMessage(object1, "成功"); + net_simplify_server.SendMessage(state, customer, "成功"); RuntimeLogHelper.SaveWarnning("建议反馈日志清空"); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.UDP日志查看) + else if (customer == CommonHeadCode.SimplifyHeadCode.UDP日志查看) { - net_simplify_server.SendMessage(object1, net_udp_server.LogHelper.GetLogText()); + net_simplify_server.SendMessage(state, 0, net_udp_server.LogHelper.GetLogText()); RuntimeLogHelper.SaveInformation("UDP日志查看"); } - else if (headCode == CommonHeadCode.SimplifyHeadCode.UDP日志清空) + else if (customer == CommonHeadCode.SimplifyHeadCode.UDP日志清空) { net_udp_server.LogHelper.ClearLogText(); - net_simplify_server.SendMessage(object1, "成功"); + net_simplify_server.SendMessage(state, customer, "成功"); RuntimeLogHelper.SaveWarnning("UDP日志清空"); } else { - net_simplify_server.SendMessage(object1, object2); + net_simplify_server.SendMessage(state, customer, data); } } @@ -557,11 +571,11 @@ namespace 软件系统服务端模版 net_socket_server.LogHelper.LogSaveFileName = Application.StartupPath + @"\net_log.txt"; net_socket_server.FormatClientOnline = "#IP:{0} Name:{1}";//必须为#开头,具体格式可由自身需求确定 net_socket_server.IsSaveLogClientLineChange = true;//设置客户端上下线是否记录到日志 - net_socket_server.ClientOnline += Net_socket_server_ClientOnline;//客户端上线触发 - net_socket_server.ClientOffline += Net_socket_server_ClientOffline;//客户端下线触发,包括异常掉线 - net_socket_server.MessageAlerts += Net_socket_server_MessageAlerts;//服务器产生提示消息触发 - net_socket_server.AcceptByte += Net_socket_server_AcceptByte;//服务器接收到字节数据触发 - net_socket_server.AcceptString += Net_socket_server_AcceptString;//服务器接收到字符串数据触发 + net_socket_server.ClientOnline += new HslCommunication.NetBase.IEDelegate(Net_socket_server_ClientOnline);//客户端上线触发 + net_socket_server.ClientOffline += new HslCommunication.NetBase.IEDelegate(Net_socket_server_ClientOffline);//客户端下线触发,包括异常掉线 + net_socket_server.MessageAlerts += new HslCommunication.NetBase.IEDelegate(Net_socket_server_MessageAlerts);//服务器产生提示消息触发 + net_socket_server.AcceptByte += new HslCommunication.NetBase.IEDelegate(Net_socket_server_AcceptByte);//服务器接收到字节数据触发 + net_socket_server.AcceptString += new HslCommunication.NetBase.IEDelegate(Net_socket_server_AcceptString);//服务器接收到字符串数据触发 net_socket_server.ServerStart(CommonLibrary.CommonLibrary.Port_Main_Net); } catch (Exception ex) @@ -570,13 +584,24 @@ namespace 软件系统服务端模版 } } - private void Net_socket_server_AcceptString(AsyncStateOne object1, string object2) + + + /****************************************************************************************************************** + * + * 方法说明: 当接收到来自客户端的数据的时候触发的方法 + * 特别注意: 如果你的数据处理中引发了异常,应用程序将会继续运行,该异常将会记录在网络日志中, + * 所以有必要的话,对可能发生的异常需要提前处理。 + * + ******************************************************************************************************************/ + + + private void Net_socket_server_AcceptString(AsyncStateOne object1, int customer, string data) { //如果此处充斥大量if语句,影响观感,则考虑进行指令头分类操作,客户端异步发送的字符串都会到此处处理 - if (object2.StartsWith("H")) + if (50000 <= customer && customer < 51000) { //H类系统指令 - DataProcessingWithStartH(object1, object2); + DataProcessingWithStartH(object1, customer, data); } } @@ -584,22 +609,21 @@ namespace 软件系统服务端模版 /// /// H开头的处理块 /// - /// - /// 指令头 - /// - private void DataProcessingWithStartH(AsyncStateOne object1, string object2) + /// 网络状态 + /// 用户自定义的指令头 + /// 字符串数据 + private void DataProcessingWithStartH(AsyncStateOne state, int customer, string data) { - string headCode = object2.Substring(0, 4); - if (headCode == CommonHeadCode.MultiNetHeadCode.留言消息) + if (customer == CommonHeadCode.MultiNetHeadCode.留言版消息) { - string content = headCode + object1.LoginAlias + DateTime.Now.ToString(" yyyy-MM-dd HH:mm:ss") + Environment.NewLine + object2.Substring(4); + string content = state.LoginAlias + DateTime.Now.ToString(" yyyy-MM-dd HH:mm:ss") + Environment.NewLine + data; //转发所有的客户端,包括发送者 - net_socket_server.SendAllClients(content); + net_socket_server.SendAllClients(customer, content); } } - private void Net_socket_server_AcceptByte(AsyncStateOne object1, byte[] object2) + private void Net_socket_server_AcceptByte(AsyncStateOne state, int customer, byte[] data) { //如果此处充斥大量if语句,影响观感,则考虑进行指令头分类操作,客户端异步发送的字节数组都会到此处处理 } @@ -630,11 +654,11 @@ namespace 软件系统服务端模版 { "Time", new JValue(DateTime.Now) }, { "FileCount", new JValue(net_simple_file_server.File_Count()) } }; - net_socket_server.Send(object1, CommonHeadCode.MultiNetHeadCode.初始化数据 + json.ToString()); + net_socket_server.Send(object1, CommonHeadCode.MultiNetHeadCode.初始化数据, json.ToString()); //此处决定要不要将在线客户端的数据发送所有客户端 - net_socket_server.SendAllClients(CommonHeadCode.MultiNetHeadCode.所有客户端在线信息 + net_socket_server.AllClients); + net_socket_server.SendAllClients(CommonHeadCode.MultiNetHeadCode.总在线信息, net_socket_server.AllClients); //触发上下线功能 Net_socket_clients_change(DateTime.Now.ToString("MM-dd HH:mm:ss ") + object1._IpEnd_Point.Address.ToString() + ":" + object1.LoginAlias + " 上线"); @@ -700,11 +724,12 @@ namespace 软件系统服务端模版 } second = DateTime.Now.Second; if (IsWindowShow && IsHandleCreated) Invoke(DTimeShow); - //每隔一分钟将时间发送给所有客户端,格式为标准时间 + //每秒钟执行的代码 + if (second == 0) { - net_socket_server.SendAllClients(CommonHeadCode.MultiNetHeadCode.时间推送 + - DateTime.Now.ToString("O")); + //每个0秒执行的代码 + //net_socket_server.SendAllClients(CommonHeadCode.MultiNetHeadCode.时间的推送, DateTime.Now.ToString("O")); } if (minute != DateTime.Now.Minute) { @@ -760,7 +785,7 @@ namespace 软件系统服务端模版 private void Net_simple_file_server_FileChange() { //将文件数据发送给客户端 - net_socket_server.SendAllClients(CommonHeadCode.MultiNetHeadCode.文件数量 + net_simple_file_server.File_Count()); + net_socket_server.SendAllClients(CommonHeadCode.MultiNetHeadCode.文件总数量, net_simple_file_server.File_Count().ToString()); } @@ -809,27 +834,28 @@ namespace 软件系统服务端模版 { net_udp_server = new Net_Udp_Server(); net_udp_server.LogHelper.LogSaveFileName = Application.StartupPath + @"\udp_log.txt";//日志路径 + net_udp_server.KeyToken = CommonHeadCode.KeyToken; net_udp_server.ReceiveCacheLength = 1024;//单次接收数据的缓冲长度 net_udp_server.AcceptByte += Net_udp_server_AcceptByte;//接收到字节数据的时候触发事件 net_udp_server.AcceptString += Net_udp_server_AcceptString;//接收到字符串数据的时候触发事件 net_udp_server.ServerStart(CommonLibrary.CommonLibrary.Port_Udp_Server); } - catch(Exception ex) + catch (Exception ex) { SoftBasic.ShowExceptionMessage(ex); } } - private void Net_udp_server_AcceptString(AsyncStateOne object1, string object2) + private void Net_udp_server_AcceptString(AsyncStateOne state, int customer, string data) { //此处为测试 Invoke(new Action(() => { - textBox1.AppendText($"{DateTime.Now.ToString("MM-dd HH:mm:ss ")}来自IP:{object1._IpEnd_Point.Address.ToString()} 内容:{object2}{Environment.NewLine}"); + textBox1.AppendText($"{DateTime.Now.ToString("MM-dd HH:mm:ss ")}来自IP:{state._IpEnd_Point.Address.ToString()} 内容:{data}{Environment.NewLine}"); })); } - private void Net_udp_server_AcceptByte(AsyncStateOne object1, byte[] object2) + private void Net_udp_server_AcceptByte(AsyncStateOne state, int customer, byte[] data) { //具体用法参考上面字符串方法 } diff --git a/软件系统服务端模版/软件系统服务端模版.csproj b/软件系统服务端模版/软件系统服务端模版.csproj index 26ec309..f9f58f2 100644 --- a/软件系统服务端模版/软件系统服务端模版.csproj +++ b/软件系统服务端模版/软件系统服务端模版.csproj @@ -35,7 +35,7 @@ ..\CommonLibrary\bin\Debug\CommonLibrary.dll - + False ..\Public\HslCommunication.dll