From d5970f76ced5aa9d35454d725ec4524f18fcb769 Mon Sep 17 00:00:00 2001 From: Heath Volmer Date: Fri, 23 Sep 2016 10:44:21 -0600 Subject: [PATCH] Working through connect/disconnect details --- .../Pepperdash Core/Comm/GenericSshClient.cs | 173 +++++++++++------- .../Pepperdash Core/PepperDash_Core.csproj | 2 +- .../Properties/ControlSystem.cfg | 7 + .../Pepperdash Core/bin/PepperDash_Core.clz | Bin 679182 -> 679299 bytes .../bin/PepperDash_Core.config | 4 +- .../Pepperdash Core/bin/PepperDash_Core.dll | Bin 28856 -> 29368 bytes .../Pepperdash Core/bin/manifest.info | 2 +- .../Pepperdash Core/bin/manifest.ser | Bin 649 -> 649 bytes 8 files changed, 121 insertions(+), 67 deletions(-) diff --git a/Pepperdash Core/Pepperdash Core/Comm/GenericSshClient.cs b/Pepperdash Core/Pepperdash Core/Comm/GenericSshClient.cs index e5e40d1..4fc6401 100644 --- a/Pepperdash Core/Pepperdash Core/Comm/GenericSshClient.cs +++ b/Pepperdash Core/Pepperdash Core/Comm/GenericSshClient.cs @@ -7,28 +7,9 @@ using Crestron.SimplSharp.Ssh.Common; namespace PepperDash.Core { - public class ConnectionChangeEventArgs : EventArgs - { - public bool IsConnected { get; private set; } - - public ushort UIsConnected { get { return (ushort)(Client.IsConnected ? 1 : 0); } } - - public GenericSshClient Client { get; private set; } - public ushort Status { get { return Client.UStatus; } } - - // S+ Constructor - public ConnectionChangeEventArgs() { } - - public ConnectionChangeEventArgs(bool isConnected, GenericSshClient client) - { - IsConnected = isConnected; - Client = client; - } - } - - //***************************************************************************************************** - //***************************************************************************************************** - + /// + /// + /// public class GenericSshClient : Device, IBasicCommunication, IAutoReconnect { /// @@ -44,24 +25,39 @@ namespace PepperDash.Core /// /// Event when the connection status changes. /// - public event EventHandler ConnectionChange; - + public event EventHandler ConnectionChange; + /// + /// Address of server + /// public string Hostname { get; set; } + /// /// Port on server /// public int Port { get; set; } + + /// + /// Username for server + /// public string Username { get; set; } + + /// + /// And... Password for server. That was worth documenting! + /// public string Password { get; set; } + /// + /// True when the server is connected - when status == 2. + /// public bool IsConnected { // returns false if no client or not connected get { return UStatus == 2; } } /// - /// Contains the familiar Simpl analog status values + /// Contains the familiar Simpl analog status values. This drives the ConnectionChange event + /// and IsConnected with be true when this == 2. /// public ushort UStatus { @@ -101,6 +97,11 @@ namespace PepperDash.Core ShellStream TheStream; CTimer ReconnectTimer; + string PreviousHostname; + int PreviousPort; + string PreviousUsername; + string PreviousPassword; + /// /// Typical constructor. /// @@ -143,7 +144,7 @@ namespace PepperDash.Core { if (Client != null) { - Debug.Console(2, this, "Program stopping. Closing connection"); + Debug.Console(1, this, "Program stopping. Closing connection"); Client.Disconnect(); Client.Dispose(); } @@ -176,26 +177,43 @@ namespace PepperDash.Core return; } - //You can do it! - UStatus = 1; - //IsConnected = false; - // This handles both password and keyboard-interactive (like on OS-X, 'nixes) KeyboardInteractiveAuthenticationMethod kauth = new KeyboardInteractiveAuthenticationMethod(Username); kauth.AuthenticationPrompt += new EventHandler(kauth_AuthenticationPrompt); PasswordAuthenticationMethod pauth = new PasswordAuthenticationMethod(Username, Password); - ConnectionInfo connectionInfo = new ConnectionInfo(Hostname, Port, Username, pauth, kauth); // always spin up new client in case parameters have changed // **** MAY WANT TO CHANGE THIS BECAUSE OF SOCKET LEAKS **** - if (Client != null) + //if (Client != null) + //{ + // Client.Disconnect(); + // Client = null; + //} + + // Make a new client if we need it or things have changed + if (Client == null || PropertiesHaveChanged()) { - Client.Disconnect(); - Client = null; - } - Client = new SshClient(connectionInfo); - - Client.ErrorOccurred += Client_ErrorOccurred; + if (Client != null) + { + Debug.Console(2, this, "Cleaning up disconnected client"); + Client.ErrorOccurred -= Client_ErrorOccurred; + if(TheStream != null) + TheStream.DataReceived -= Stream_DataReceived; + TheStream = null; + } + + Debug.Console(2, this, "Creating new SshClient"); + ConnectionInfo connectionInfo = new ConnectionInfo(Hostname, Port, Username, pauth, kauth); + Client = new SshClient(connectionInfo); + Client.ErrorOccurred += Client_ErrorOccurred; + } + PreviousHostname = Hostname; + PreviousPassword = Password; + PreviousPort = Port; + PreviousUsername = Username; + + //You can do it! + UStatus = 1; try { Client.Connect(); @@ -207,7 +225,10 @@ namespace PepperDash.Core TheStream.DataReceived += Stream_DataReceived; Debug.Console(1, this, "Connected"); UStatus = 2; - //IsConnected = true; + PreviousHostname = Hostname; + PreviousPassword = Password; + PreviousPort = Port; + PreviousUsername = Username; } return; } @@ -232,10 +253,9 @@ namespace PepperDash.Core Debug.Console(0, this, "Unhandled exception on connect:\r({0})", e); } - // Sucess will not make it this far + Client.Disconnect(); UStatus = 3; - //IsConnected = false; HandleConnectionFailure(); } @@ -250,34 +270,34 @@ namespace PepperDash.Core ReconnectTimer.Stop(); ReconnectTimer = null; } - DiscoAndCleanup(); + if(TheStream != null) + TheStream.DataReceived -= Stream_DataReceived; + Client.Disconnect(); UStatus = 5; - //IsConnected = false; + Debug.Console(1, this, "Disconnected"); } /// /// /// - void DiscoAndCleanup() - { - if (Client != null) - { - Client.ErrorOccurred -= Client_ErrorOccurred; - TheStream.DataReceived -= Stream_DataReceived; - Debug.Console(2, this, "Cleaning up disconnected client"); - Client.Disconnect(); - Client.Dispose(); - Client = null; - } - } + //void DiscoAndCleanup() + //{ + // if (Client != null) + // { + // Client.ErrorOccurred -= Client_ErrorOccurred; + // TheStream.DataReceived -= Stream_DataReceived; + // Debug.Console(2, this, "Cleaning up disconnected client"); + // Client.Disconnect(); + // Client.Dispose(); + // Client = null; + // } + //} /// /// Anything to do with reestablishing connection on failures /// void HandleConnectionFailure() { - DiscoAndCleanup(); - Debug.Console(2, this, "Checking autoreconnect: {0}, {1}ms", AutoReconnect, AutoReconnectIntervalMs); if (AutoReconnect) @@ -300,6 +320,12 @@ namespace PepperDash.Core } } + bool PropertiesHaveChanged() + { + return Hostname != PreviousHostname || Port != PreviousPort + || Username != PreviousUsername || Password != PreviousPassword; + } + /// /// Handles the keyboard interactive authentication, should it be required. /// @@ -344,11 +370,10 @@ namespace PepperDash.Core if (Client != null) { Client.Disconnect(); - Client.Dispose(); - Client = null; + //Client.Dispose(); + //Client = null; } UStatus = 4; - //IsConnected = false; HandleConnectionFailure(); } @@ -358,7 +383,7 @@ namespace PepperDash.Core void OnConnectionChange() { if(ConnectionChange != null) - ConnectionChange(this, new ConnectionChangeEventArgs(IsConnected, this)); + ConnectionChange(this, new SshConnectionChangeEventArgs(IsConnected, this)); } #region IBasicCommunication Members @@ -378,7 +403,6 @@ namespace PepperDash.Core { Debug.Console(1, this, "Stream write failed. Disconnected, closing"); UStatus = 4; - //IsConnected = false; HandleConnectionFailure(); } } @@ -394,11 +418,34 @@ namespace PepperDash.Core { Debug.Console(1, this, "Stream write failed. Disconnected, closing"); UStatus = 4; - //IsConnected = false; HandleConnectionFailure(); } } #endregion } + + //***************************************************************************************************** + //***************************************************************************************************** + /// + /// Fired when connection changes + /// + public class SshConnectionChangeEventArgs : EventArgs + { + public bool IsConnected { get; private set; } + + public ushort UIsConnected { get { return (ushort)(Client.IsConnected ? 1 : 0); } } + + public GenericSshClient Client { get; private set; } + public ushort Status { get { return Client.UStatus; } } + + // S+ Constructor + public SshConnectionChangeEventArgs() { } + + public SshConnectionChangeEventArgs(bool isConnected, GenericSshClient client) + { + IsConnected = isConnected; + Client = client; + } + } } diff --git a/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj b/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj index 71d09a4..ddc9b86 100644 --- a/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj +++ b/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj @@ -85,7 +85,7 @@ C:\Users\hvolm\Desktop\working\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\bin\PepperDash_Core.clz 1.007.0017 - 9/22/2016 9:42:40 PM + 9/23/2016 9:37:04 AM False diff --git a/Pepperdash Core/Pepperdash Core/Properties/ControlSystem.cfg b/Pepperdash Core/Pepperdash Core/Properties/ControlSystem.cfg index e69de29..5dff7ae 100644 --- a/Pepperdash Core/Pepperdash Core/Properties/ControlSystem.cfg +++ b/Pepperdash Core/Pepperdash Core/Properties/ControlSystem.cfg @@ -0,0 +1,7 @@ + + + MC3 SSH +
ssh 10.0.0.15
+ + +
\ No newline at end of file diff --git a/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.clz b/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.clz index 2f42194a7436fd45db56b5c3ca2c64e3b9106a67..619db53b327525673f2797508d8738da4fdaf85c 100644 GIT binary patch delta 14299 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 - 9/22/2016 9:42:40 PM - 1.0.0.37279 + 9/23/2016 9:37:04 AM + 1.0.0.15511 \ No newline at end of file diff --git a/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.dll b/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.dll index 3216370601a5c0d53222ec5210a334649f112378..b799be7187969a5f8266bdc7e6b54d900a79e624 100644 GIT binary patch literal 29368 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 delta 13542 zcmcJ03wTu3wg1}tJZ9!hGRZtLGl2k;5MYuJ1mvl_BA~<_`)+$y-?E{f&Z*7%7R!h}twd%ckuNLobt#c+Bu($XBzu$M~ zW7gTfz1G@$?X}lld+#&hu|KHC-c(y}sCnqlx6dX2bBJ_xSOtk%QDJ+P`>yN0Z-m}{ zxcj$58?U*JXf{{xAev)%e4)#T9y3weLsWvt{%eV<+-g1CJx>jDURi{y48E=IcT|JA z#C=o^QQK(ZQfTK2lR! zuiX~0lWUP z+Co_ySqR&t&8)>ws;5FHru#iTXbJ2TjifqKQ=}bt(qzF6xI`&t+-w^4waEX~XqLN3H zV>gC%JLb#j;7X5W*1Q@%8HEdlk7>uVq?LtkF4ij23zeJd*V=08Yb%6$~f| zHa2)*9lUKe#uG>Eeh_LegLWrZHIQ&}<=mXkrNDIT;bC-l3b+^prrT?U`(FqDc&+sB zZH24Q3O~G7>~I4G#O0V9L|Ky=ui%NHl+3(L=|JHuHT&niam;I501pdkkE7{Mo}>DU zwO)&9HH|Fd$XSU-`gbrcVqhYUWx&}54NPJG4#uM4F+`)6krxi8qo9IW>fgb*h#@L{ z44yVG^x+f48`ypE#-KOe-~jM3pgul>UcO20N!CDRx-C}a#hNfH62e$;X( zl|9kd=pAXm-D#!r#z=$aLYqH*tKf(|9pXH1PBtNNgeAlcV10~~rXeUISnc)tyEG{w~bOq4|l@N+;S>A z5#s29wcC*q9LI*cu|wGHSlLdlN{kb>*L3>;HY4oWsx4FcmlKO(N-o<5)YzB!=_v*One z<|01RvM4#Z+9Hi1Qr2tp+;7_}aKfP0L30MRW?q1N<_LV38w!yQq&=iop+{^4klj9v zo5GMBO6j)4$9PYtJ;%`-lM!j96w1{>GHyoARm0(h#1RfXasDXy{y!A;TahjbmMoGN z{9~u0X0G0S!WlMhp{5o6{+5L2Xvn5LXKz9*a7a~(YGrsx{!dUns&SsnLgTOsMKAuS zp$f*FVH_2>p+5G(!EuX21shaxXh*Fg5xBgv5Hr{qusZWt9!*%x{8Hz78vhC#!)Y1vv|r`gyLfG_X4VtA%kgcc=S%y>l)!sU7-!XyKiXC)iuwtv)&` zrqCsa(br}e)8%kFcoBpCe@O>es1m~UCt=mhfJynn+C}aO&_P%ffBJ1WlLU5l_B3-Q7`vp3z9dMyL(rB2-*gj;fx$z55N$n$g?Ik>nm_qnND zrh~(V^0GeT7!!}_lV`J@6dK`f2MnZPh-(!_;GM=*^6^5-NE%y~=B6FnPs{(Pqv{&3 zBVHlMUq~--?mBD}ehk2U;bi+aFwD-hTOLhUd8Z5P4}GT#2KA@vtmDpzR<}06Felk| z2Zrl~LrE}c?+RvDqYbjXL+weBkpr7|7)5uUs|Tf$S=MiR4%%6klCuaK2g8ueVO$kN zTosEW(19wCLj8_H{TU62Rl46OPXxTPQ@Pt+o-%O{aNK3FDek;jEDyu6hEG1XgbhiIZ~HmMrDX;3dgjqxjH4EJViGn}Z-jbXHA-@B z&Y{8fnUL({Dx7%v!S|JhEYe#;c2>bf(#C($k-I%!n{Q@GdtFVTWrP5F`unGQ9yF%I7 z;9|1+!*%DOSNIsIOXudGTFx)%85w>swSDZVyKg4q6GiD@MrY4ru~jl(2g`?28v=Vp z7IBUyIj>?ky^C??$yBc0#)|5)(;?(-e+cUAT=$}ibd$7LG+L~f(IlhMG6089Sg5RO z+X3yqCE*Ptn4RrDT2VXX%ifleJ+pIR$0lTSwJVS^%sv^@b5iHmMNh62Y zvms?#*|Xh=$@&4z_G&F0d|5Ml4v3>|>^N>`a+Je$KKyZVaFl!Q>(I!a<9?W|%Flxk zHN@=fxl#z(+4)i+xuMiy!u|UZVzGY*<01x*($300M(=qZi2^s1#zN%q#h*d_LEVlS zbUNU4TpTb1PF|MdwLCrA?7+5T8rX!s&GCbc!^z=9#|!oAibv^TzZJa=$LjHNy9G1c zk7Gu!W%C_A$nv4;1m0tCC0WbXn7Jj;&0T;#hk7-+3sDXSQkzf3^u(>Gh2uEew>@g* zE^?=)r=R^z2*^+*inyzdXb~seuXWY9`oHT&ujMgh7r4JpPq)2>-9eSLd2vEUoNzFx zvkTEBz0N_)8wfm4RaJa_AmZCBcIm=wDV{CHGFu))X6tCiaeW#xjf_RZW5lMTKW~DC zQ@EMp0FU_{4Pi;!JiiREooY@B{&t$(#4c@dt$u^@Eoew&!R1!qB|iuHQs8ewzER?K zPm<+eGY=CU?UVCf5dD9(vs~UKVeBv)2arCq8Nh6B)9|*uF~xiae|uOkxNwEu*LPbr zu^8JgcBB1M`9+Y(wSpi#I5-f>#g0Lk@8WP3G3-aU63DR6_lKIuU4qJ?I@vLjZJ399 zm6Uu(T*^$b3>QkTT_eX{W~1!JfOhZhpPGW8cD!~FGH|>_-@tQVkwc}ObXykL#7kL7 zV+CKkU-qv&1q;{7ykijgr@&Ec4Yy^|R=VH-a?PMl_6j%&WAbuq9S**i zd3n+Os;WMJxwHUdv>f9yGO*lo)TVN1$jPnXHta#=+>BEa)7dsW{Z~j<-%f0_-G)}z zVQ2QX<2!j~+9BG>RoFE7kzL7+X*+v6xUzA$_Y4>mDA==aK>Z-!9vEcPV;EC48w8tQ z@oi2GtaW6PMg;ZRk?zca=SBKF!Bg!%FfdaM$01I~q08Ro#Q>i2YC^FT zgI+0*4_EfJ!l0KQaDO>)kW%gkpaHjZP|CcIk4yIqI(_1&Sm1-#5iP{M{Dw5jb62)4 zU4AJXf|t8+MIwZ{bLP^QQ;3jLV2OPL2XJptTkBZ zig0T04#blsV*-A1Sk` zqWp7h)6{Zq;`>5>02-lRma{>B6j~W=vTYg_<@%FRj?nc&?-csDaDNM~P2*yD7MdGd z1BFGg11g5{ikMB;p&X%&F&^2SLUo*FD&t(AiSsC%;%v$))Y$Z3{MNWl&q(<0Y4aUc_(UT0rBhpkf7NO!Oalb9`)G(r zUJI0fT%90S^wRjnql<6!y9D;bDU!Q?&`0N!0&hQ1DOJ%zL7xCck&%EP8B=WNApEAn zXpEo?EfI7MPzdXM8FgVxULye<1#+jhgL8G+HxB%r>jW*Etgd%sLepdNzjhh{)qPxt8 z!0j=ANa+70>nVWGtzU!Qt$z=ivk!ybY`+KkW`G;|A`pW!qCqY<2%Q<^?puQ~6{Q2g zYH*uFEVEjl0s3<2EM?mtp=Ms^=b;6l+F5}53!IxkzvHyQpg$zGm{H2FE9b`-&Re|- z>F|3{7$|h8&_+;2qr$ouRq{ef;mcoopofJe!C$|6jl_F z^&PXBDkT4)YOm#*TaYBZ&t7Z0SwncME}y-ndrTa|deH$hQiR?%cMo1A;aL=UUGrk3Hw3B|rn|5D*7qr`3d{^O=t} zTg^boCc?YL+J%l&KDqvq2ctjhv*KxKOauN5Y$C`?a!!@YKL+chZRrZ2zs_o zI;2l+Mtnpi>Y}d%-CU0}%djlK%+3an*&6sO(C0q7DPXFRv=a9)mV7)AR--wi3fc#~ zF*HHYVZ{M8hHmo_$J1E4&hPN;*rmoeGI8S~+7^5^Sf$3(1R(UkA^1jc7mcUc!h}nM zyMg9=2&3PPO=p>)4Z$yh4o##7eB^`}?e`JK#YB4FN0lK)LEO){hhc(heKbzcWJY=N z7S}|Y<}*j@5o#ixE2t|tSsxFy(C7U)G*O*ESNgoYp(#L}9uJ1r(24Y24`E_vs1vzw zB(x3SU9P72Xs;@B+SN%u%I{U9oV993FLSbUy_!Xj_#K|&Y*x+mbHBs0oGtjl?UmjR zx6rBd$6i!}H>IEYdRIA3K;exT z^p1}{c3xMltkmm#+!+P2^P6!*DWFk#=W~T?89oN>RqXs_G#R(s41#8Acs*TC^L#W1 zXgRF_;()rvQaVT13+f8qVc9@iJs$iN*DL6SUer(Hc7^K!ubW zP!PX#^1jKbtb_P>PnJxVOv>vHn&rc~k|r=$_-IN=9B8YL<_PaGL5D+}=Q`*mA90@R zpx^k2Q`tKD&_|rg*3svJHUv9L9IUuBpJ*kXnsh!-rwiOmyg6P+R|@j7*LAeT6Qyk> zHQ?PTsEc-$jMLZA+dldcc%qai0d1iwAMplsBOUJ}-hghT{3IXp2DFvt`iM86t#qM}=9TWEZff_@;?mtf z*Z7F1;wEx^#8Yt--R2{n3YU6(#8ctY6CRSqd^6`iMNgFS6~v=IMOo9nqMBmvt5VNY z(`!;bSVVs>^>0f}F)ePPxO^CrxPSaf6p9)D8)eVvzo0LJ{sYvcuRyIl1tUCqZ)8y^ z*MMrO`@3bfyWs6Q0$^0BVG@UEpn^InMOxd8zP-7BH zDry(%bx`cNVuQT$>j{?ks3(85=x*qxnl|yD0vY5MRefJ-Hi6;~WxiJbu+%fxI*QBn z1{G^@ji#qSm6%=_q-Pvcje%kRH~z-RiXF(arG0l5m%V9vMmi`i7wi80GNuNWN5*PZ8)eEH$5}KSU8S(9<%2rSwvKvns*ppEO=nZ^oYk{UH7eBaxS?E9kTM zRHI7DxJo9P>18!4Q3GlvJ}_QWOA=ogb*dv_nD5HC>r_d_|1mEVqu-@?#a-sR)UVUz`;$zEqP!6u*Wg~qO>d-sO3tyO^h2~$r=CmB zvzXhA_ao0GFGoF}DY^+ez3xW+CaXmZLQTrGy6L#QJla#Y0Njwe!@9y}|1h;#y-WL2 z4_a&dn)g%BK<2NhUszpwdiq_fTc4f&(AudNr+EOm^uJkWX*Ob`$e*WIr?t)AszF$< z#2cU>jy6j`Z8Pp}Is$*R@|ZmW*Ta7X9ZcInPo({zag?Wt zOq0+~p*w^=E%Z&HN=a)%n}jYD+9`C0&^=5O>W~1^tk5L1#Z8SHkgqnlrq1ZEE6r(A zZW7vznmTi#lv{)@Ma@KWBj_pSy`b~V7eOyE-xRJg#T21ULR*CHw7C97>wY6{ACmIB zQYQRi-x8I{%VV0*CZP+3wg~MM+9h;{(49i}2z^@Un?hAUx)(Z4Xp_)|LR*A(3Ed;~ zkXH`%%o}g3_!`}zpVBYu(~OnIL&ht{AB}%?a}(+=u#xD3$lM9!t_r+DA-q$=J7v66 z<2T#I<&!LANW8l`x?V%yKms(OZ$aP2>y&_Gzli(Egu(eOnorNSXg-bIjYLB9pp<{2 zXQKQwp~dA&ljW<;RiK`3mBlsn*8QNHgRHeJ$mLt5e5X)P^7}#V#gqSml%{ z-jv`E0>$&?_@%~1O&zF`Indw*P}4xcJQRkbsKE^3*@z!3%JEJBf7t^ZM!8caD-Wts zTZ)>E6oKRopbE8Rs1Jh%={w-zwJyF2Jp5t_=_tzOSj_y_w@jl5B8}HEDbx?e8>2k` zF-|3_h9L(i{D##Z<>N3mMI&W|qc9S@5fwTHiu~to)u+q)j1MuE2S63QC<488K=`Xfg9SWIPxLh!#%rceSL6;9bmhg3NS2!$6I_VF zQ7O7nZ>A^B8)?7!Dm`W0h_8F*!x1 zE}5ND?&R5ZZpWNSJAoo^{bTJv ztlGN#FB>ShZTn-^cRo;WeaQZ6KN1_N!23@FLct;k>QLPn;c8K{aU7lOCkfR!epsXti)a1GGTaH zdPt+knc6nEqZoiZBK)X|O#&~?2B+N@Tc*Ud5l{g$z{3lu2p1A=^y0bhl8XnN;bcq| z2}TCQI(ORafzG=;OD6W3IT2|f+Iep&v+;B?c5Fx_gpY6Y*j~x8?tzP^xXDFVC9Hss z)#?E0NVM}WwnbV;B0W17ovc*4=bhHADp~k1I2ysb72o%-#kbYna!FFnbnm)kZRF1D zIIg|Vlh?T;F70P~|8vGY_0m>1vSgj(Ei#40*0XI%OofieyTQ@;PV9Mj>D(gdmVRq| zAJdI4dnDB9|DT=Xd!oxeRNW&3H!WY9`0|DM<&Ol*KECDtpKjl0oVoa;kL$+ubS%Ho z$iIHag3MdXpD-@^?9!!UDqs8Po*iTNjx4o9^&4hw_^ebZh3%@V^B*q%WJ_-5$3I&1 z_OG_4R@Pj$_KW(dWkZj<_od(8RetVs4{W&Xo$G(Qe(^1@|L(}?_vBY?f4jB2<*D7< z9{raE+eR%3Eq|c)CkGGQG5T=F`}61&IZayMMd)@9(0&FN$TcSTCLx_2Me4bNPPf0sVjX0lt2E|JwwKKF%kT zhxhj%=KBYe-SdOJNj}}l&u5cQAMWqpn?BsVPmNz!>v}qj{mZPK4}ST)nr5Z8IC=E@ z{=Q!|gz)eC`_3<`a`F5AzEAV!ZCkB=-{1GDs^1pNi{JP6U4Jo@89~`@ip8pI=2^Yk zo)W;{_xF8ize`WzA54m+`Ls)@r}-*h&hq87$eWKIea{g2UP$B@`Bhsjo9etBf2XOI z#{ zN1OZVPR7f+x__v%#nY_Ke&65sq|TeRu84rIpZ;FI@9(=AQiqz~AAR&HZ+Im9=Pwx< z`tFDHeT_MNjX6D8H*K{zZri$;tlPXfTef+9o=wesIf^`-?oak-`_uco4=11Azn`5y zBqshepG~v9*{7dQ9{RMtJ^U`+Z_&#Jy5GLv_nCv+Ls7l;eB2+Jk8kHCjcRxnvV8Vn zFQ4q>yASW*f0*4nzyIljor6jK;M4v6`?KjRJ_~WEUE1FQ_N{0i@9pbRJPzw7I`=;K OCI1hyzmS{-1^@sGsTi~X delta 472 zcmV;}0Vn>61&IZayMOl{>^*o0kj1iCtQXIUdU2K2xqQF#fd0Sx0AD}7|80UqAMfn# zo!{Sk`04rnbZ>umXK#9MI{9>eI=h$c?wn`)!2NZ#uBXG;zs%bC;Fr&-sn@BFeV7r*cC`!sLfw$h`fahi_QZEMHEGy!q(S_Y9Hmg+zXlU$xb;sm|N+cbaNB zKB*R~Y}zUeN3}eA`0&##+smh)-p{h#g9iusgXzQB&cpoPgY4kpr#{s-!<1(41$mg@ zk2d$!os5@tb$?N3i>Fze{l35NNu4)sT@e9aKmEOa-`{sLqz*N|Kl|4=3-rLuscpTPEbnbod OOa33d+Mav`1^@t6briJ#