From 3bad4679fbbc72a2a35142e1f09107d430631c6b Mon Sep 17 00:00:00 2001 From: ProxySU Date: Sat, 21 Mar 2020 13:32:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=B8=AD=E7=9A=84path=E8=AE=BE=E7=BD=AE=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ProxySU/MainWindow.xaml.cs | 64 +++++++++++++++++++++++--------- ProxySU/bin/Release/ProxySU.exe | Bin 68096 -> 69120 bytes ProxySU/bin/Release/Release.zip | Bin 194209 -> 194422 bytes 3 files changed, 46 insertions(+), 18 deletions(-) diff --git a/ProxySU/MainWindow.xaml.cs b/ProxySU/MainWindow.xaml.cs index 40450d0..3dc196e 100644 --- a/ProxySU/MainWindow.xaml.cs +++ b/ProxySU/MainWindow.xaml.cs @@ -151,7 +151,15 @@ namespace ProxySU //string appConfig = TextBoxJsonPath.Text.ToString().Replace("\\","\\\\"); //读取模板配置 //sed -i 's/PermitRootLogin no/PermitRootLogin yes/' /etc/v2ray/config.json - string appConfig=""; + string appConfig=""; //服务端配置文件 + string clientConfig = ""; //生成的客户端配置文件 + string upLoadPath = "/etc/v2ray/config.json"; //服务端文件位置 + //生成客户端配置时,连接的服务主机的IP或者域名 + if (String.IsNullOrEmpty(ReceiveConfigurationParameters[4])==true) + { + ReceiveConfigurationParameters[4] = TextBoxHost.Text.ToString(); + } + if (String.IsNullOrEmpty(ReceiveConfigurationParameters[0]) == true) { MessageBox.Show("请先选择配置模板!"); @@ -162,24 +170,28 @@ namespace ProxySU //File.Copy("TemplateConfg\\tcp_server_config.json", "ConfigUpload\\tcp_server_config.json", true); appConfig = "TemplateConfg\\tcp_server_config.json"; + clientConfig = "TemplateConfg\\tcp_client_config.json"; } else if (String.Equals(ReceiveConfigurationParameters[0], "WebSocketTLS2Web")) { //File.Copy("TemplateConfg\\tcp_server_config.json", "ConfigUpload\\tcp_server_config.json", true); appConfig = "TemplateConfg\\WebSocketTLSWeb_server_config.json"; + clientConfig = "TemplateConfg\\WebSocketTLSWeb_client_config.json"; } else if (String.Equals(ReceiveConfigurationParameters[0], "TCPhttp")) { //File.Copy("TemplateConfg\\tcp_server_config.json", "ConfigUpload\\tcp_server_config.json", true); appConfig = "TemplateConfg\\tcp_http_server_config.json"; + clientConfig = "TemplateConfg\\tcp_http_client_config.json"; } else if (String.Equals(ReceiveConfigurationParameters[0], "MkcpNone")|| String.Equals(ReceiveConfigurationParameters[0], "mKCP2SRTP")||String.Equals(ReceiveConfigurationParameters[0], "mKCPuTP")|| String.Equals(ReceiveConfigurationParameters[0], "mKCP2WechatVideo")|| String.Equals(ReceiveConfigurationParameters[0], "mKCP2DTLS")|| String.Equals(ReceiveConfigurationParameters[0], "mKCP2WireGuard")) { //File.Copy("TemplateConfg\\tcp_server_config.json", "ConfigUpload\\tcp_server_config.json", true); appConfig = "TemplateConfg\\mkcp_server_config.json"; + clientConfig = "TemplateConfg\\mkcp_client_config.json"; } else if (String.Equals(ReceiveConfigurationParameters[0], "HTTP2")) @@ -187,14 +199,16 @@ namespace ProxySU //File.Copy("TemplateConfg\\tcp_server_config.json", "ConfigUpload\\tcp_server_config.json", true); appConfig = "TemplateConfg\\HTTP2_server_config.json"; + clientConfig = "TemplateConfg\\tcp_client_config.json"; } else if (String.Equals(ReceiveConfigurationParameters[0], "TLS")) { //File.Copy("TemplateConfg\\tcp_server_config.json", "ConfigUpload\\tcp_server_config.json", true); appConfig = "TemplateConfg\\TLS_server_config.json"; + clientConfig = "TemplateConfg\\tcp_client_config.json"; } - Task task = new Task(() => StartSetUpRemoteHost(connectionInfo, TextBlockSetUpProcessing, ProgressBarSetUpProcessing, appConfig)); + Task task = new Task(() => StartSetUpRemoteHost(connectionInfo, TextBlockSetUpProcessing, ProgressBarSetUpProcessing, appConfig, clientConfig, upLoadPath)); task.Start(); } @@ -345,7 +359,7 @@ namespace ProxySU #endregion //登录远程主机布署程序 - private void StartSetUpRemoteHost(ConnectionInfo connectionInfo,TextBlock textBlockName, ProgressBar progressBar, string appConfig) + private void StartSetUpRemoteHost(ConnectionInfo connectionInfo,TextBlock textBlockName, ProgressBar progressBar, string appConfig,string clientConfig,string upLoadPath) { string currentStatus = "正在登录远程主机......"; Action updateAction = new Action(UpdateTextBlock); @@ -460,7 +474,7 @@ namespace ProxySU string installResult = client.RunCommand("find / -name v2ray").Result.ToString(); //string installResult = client.RunCommand("bash /tmp/go.sh").Result; //installResult = installResult.Substring(0, installResult.Length - 1); - MessageBox.Show(installResult); + //MessageBox.Show(installResult); if (!installResult.Contains("/usr/bin/v2ray")) { MessageBox.Show("安装V2ray失败(官方脚本go.sh运行出错!"); @@ -475,19 +489,33 @@ namespace ProxySU currentStatus = "程序安装完毕,配置文件上传中......"; textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); - Thread.Sleep(2000); - UploadConfig(connectionInfo, appConfig); - client.RunCommand("sed -i 's/##port##/" + ReceiveConfigurationParameters[1] + "/' /etc/v2ray/config.json"); - client.RunCommand("sed -i 's/##uuid##/"+ ReceiveConfigurationParameters[2] + "/' /etc/v2ray/config.json"); - client.RunCommand("sed -i 's/##path##/" + ReceiveConfigurationParameters[3] + "/' /etc/v2ray/config.json"); - //client.RunCommand("sed -i 's/##domain##/" + ReceiveConfigurationParameters[4] + "/' /etc/v2ray/config.json"); - client.RunCommand("sed -i 's/##mkcpHeaderType##/" + ReceiveConfigurationParameters[5] + "/' /etc/v2ray/config.json"); + Thread.Sleep(1000); + UploadConfig(connectionInfo, appConfig, upLoadPath); + client.RunCommand("sed -i 's/##port##/" + ReceiveConfigurationParameters[1] + "/' " + upLoadPath); + client.RunCommand("sed -i 's/##uuid##/" + ReceiveConfigurationParameters[2] + "/' " + upLoadPath); + client.RunCommand("sed -i 's/##path##/\\" + ReceiveConfigurationParameters[3] + "/' " + upLoadPath); + //client.RunCommand("sed -i 's/##domain##/" + ReceiveConfigurationParameters[4] + "/' " + upLoadPath); + client.RunCommand("sed -i 's/##mkcpHeaderType##/" + ReceiveConfigurationParameters[5] + "/' " + upLoadPath); + + //生成客户端配置 + currentStatus = "生成客户端配置......"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + upLoadPath = "/tmp/config.json"; + UploadConfig(connectionInfo, clientConfig, upLoadPath); + + client.RunCommand("sed -i 's/##port##/" + ReceiveConfigurationParameters[1] + "/' "+ upLoadPath); + client.RunCommand("sed -i 's/##uuid##/" + ReceiveConfigurationParameters[2] + "/' " + upLoadPath); + client.RunCommand("sed -i 's/##path##/\\" + ReceiveConfigurationParameters[3] + "/' " + upLoadPath); + client.RunCommand("sed -i 's/##domain##/" + ReceiveConfigurationParameters[4] + "/' " + upLoadPath); + client.RunCommand("sed -i 's/##mkcpHeaderType##/" + ReceiveConfigurationParameters[5] + "/' " + upLoadPath); + DownloadConfig(connectionInfo, "config\\config.json", upLoadPath); + client.Disconnect(); + MessageBox.Show("客户端配置文件已保存在config文件夹中"); currentStatus = "安装成功"; textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); - Thread.Sleep(2000); - - client.Disconnect(); + Thread.Sleep(1000); return; } } @@ -528,7 +556,7 @@ namespace ProxySU } //上传配置文件 - private void UploadConfig(ConnectionInfo connectionInfo,string uploadConfig) + private void UploadConfig(ConnectionInfo connectionInfo,string uploadConfig,string upLoadPath) { try { @@ -537,7 +565,7 @@ namespace ProxySU sftpClient.Connect(); //MessageBox.Show("sftp信息1" + sftpClient.ConnectionInfo.ServerVersion.ToString()); //sftpClient.UploadFile(File.OpenRead("TemplateConfg\tcp_server_config.json"), "/etc/v2ray/config.json", true); - sftpClient.UploadFile(File.OpenRead(uploadConfig), "/etc/v2ray/config.json", true); + sftpClient.UploadFile(File.OpenRead(uploadConfig), upLoadPath, true); //MessageBox.Show("sftp信息" + sftpClient.ConnectionInfo.ServerVersion.ToString()); sftpClient.Disconnect(); } @@ -550,7 +578,7 @@ namespace ProxySU } } //下载配置文件 - private void DownloadConfig(ConnectionInfo connectionInfo, string downloadConfig) + private void DownloadConfig(ConnectionInfo connectionInfo, string downloadConfig,string downloadPath) { try { @@ -559,7 +587,7 @@ namespace ProxySU sftpClient.Connect(); //MessageBox.Show("sftp信息1" + sftpClient.ConnectionInfo.ServerVersion.ToString()); - sftpClient.DownloadFile("/etc/v2ray/config.json", File.Create(downloadConfig)); + sftpClient.DownloadFile(downloadPath, File.Open(downloadConfig,FileMode.Create)); //MessageBox.Show("sftp信息" + sftpClient.ConnectionInfo.ServerVersion.ToString()); sftpClient.Disconnect(); } diff --git a/ProxySU/bin/Release/ProxySU.exe b/ProxySU/bin/Release/ProxySU.exe index 110f82a09b9a2ecdb2a87026e010d8a0ac5817e3..e9e9012e5ebf12b86a9b05425c14a27cc9515b35 100644 GIT binary patch delta 6118 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 TMIBFnT+K%RqCsJOf>`!H4fkoe delta 5446 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 WkqEwgp-$dd{j0EFd@9;2(*6fI{ll>U diff --git a/ProxySU/bin/Release/Release.zip b/ProxySU/bin/Release/Release.zip index 6f2eb9eeec7d90f5ec02fc68334561f98e2e2bb4..03ce654db93d285d1664656d575d179429f3e973 100644 GIT binary patch delta 16162 zcmZX*19&Gt6gFD7yLG#@x3pP44dAkib$)j%?FMuKrmOxJQ1BpIYiAJ@`WW_8+MT_cGlVGViv3i+mkv-{iab#WYy$+z#-m`PFot8-=1Or$_ z$lUqx?E!vvO?N$KGLyUY6}kC=gD6`AKB;>X^nKEIFLSC^KZ51n_n@oQ#CR!>d$=se zShL3Rn@kOx)?9TIytLfh@=H$3qklX3xG9*q%~eLAW9X!)FDYCB+oY@sV9mfMF%Zmo zKdiY}I^hfYhyj)$2n7r~^G8_%ii26Iu7lL7+aO&#wTiX)tsQ5kejwjBpVQuVCqoAy z7#e@}(qZ*?OCH+P1{EtxHv1G8|J z_%Jpax-h+1(#xl!t0BO;^p7UHJM;N%p&s77JvQIE{Qv`23_Vy%Wzd9D1b)|_Py*Jh zaIa2XC$b^^@+q)avC zrO~HMt^jI1pffInnDyw>b|#OFRyR3WfOzq*#MZv?wgHKZEWi{J;DPlQFPj^@ZMIoP zPU0l1zqd$Ayd$FRMT?CS)=p_5kI+C0(>C>v%%oUSVh+#Y!Y3zKSWz@(nLfHpb$qy~ z!U<(rXSXFOU;OnW*n7s!>xhN*OZG^KWE9EIQvi{~D=DAY{++*q5gS3$OX}c>q<8k< ziP?)gQBohm5-G<3#5B$IAq9zue;vmRjW+@zBeqCPlA`!v#6qoO?*|%(-zzuN zRE~SYPcbfq#HQ@O$}y7}sGc^4ih9+9ClcPiAq1V>j??eg4aZpvJt1dZuOGD4fk|e0 zS%8zZI)uMk7di|ZXpIpt{?3pCtl0E8n(JioW(J(8n5+7dFsS%-55v;Q8h1DkUEsh|F ztWoQ9!flwFKUaMNu6|w7-&#}+HN$N@t^%%yTtPMxR=4|~kem4pCk8^TXqr8(r&j3( zU9p;JS8WGeF`A)kyCSRhh&9m{@$)lgRcXZxFq6B&mWi!Y6lE_s20fW%ACncHEFuFL z5nv0JONII2tMxZNc3_z^xhbxWE~N^*-bKC{q0VKr-qo}PVPbi}_+qcQxArew z#CRT9Y z1g=^ai$8{-oN~S?9Id9xVp2<6Y$V`kV%5jg%$uWEOv?6t(k*&T;|;o;MAD;Lu#~;;GN~!FJc({PMk~@IRo@|Ej6~O-TCl&YU@sH36-#T>?Ji+Ma3Z>mLy%E z2Ms%4^h7+*Ez3z9-Xh_h{}Blb;#xq3v<9aCb?QcW_>GIg?60RY|jSDcDu`Tpf7=5M@A z0S$VNcs%Wb!eRJUOV&@Rs#qz!l@{faAh}3!y^h+vLd%(SD$yJU!neUMHM=rgAHkhd zx*v8Ho9zqskdL{{<`6o6w0Qs}cl&2Q%f~d=e~?|o+NS?tD1_xdgWJyMPEY+|Ip+Dq zl~-f8wHcyem%cPHZR*NhcS3A+rSz=HDoR`SjcQ`xl~$2>czF;Foz4^24^iQmK*uJmcGv?H=WzWd<=ou$%5L>{QXJ2mhSd2XlDy)fnI3WFWm(Zg=vm*7$Dy&I(KqdKv zkkF$)yCD4(mf&YBpog~l-XNYg!%}uqF6aNfM38hIBmO8>^hOL&{8T9W`l}51-}02Z zzz;TCZXisS1<5pvqZuaAgoW}?q&Qp=QZZyod*z?FabUtlAj#P`J!om~c9n@k>XaR= zg)vfZa}U%eC|mDN>U41diM3JQSzZUVTMyl?$YXR@fXYL=N@Z#7`4Q+ri;2P4^cvY^ z_cglZGyvUr8r?n?9s2NS&Dn+d)ky(WGv=R5`#&Nt@^+_@8Bxx3%D0QkB@BS&O83hPDD$w!h{~KfKvKVV=bA-|f8|%x>~R;0$=rW5$Xd#pi0GF;D81 zbRfBM4M4M=XPlm2b&w1|yPS83oWC~@_R!oNUF-T*Ysvbza2;#T>qtv|DFa>IJaHoj z0fy(DTRuutsZH&6SFh6&uu49&v9h@Sw@d5yMzz#nyoCi>n2JBr@$1K;KWiFo0~^d z+qaaNvWEka)=`|KQ!`3QyWptYICW8c0N|*}u4o+DVyWX-Aqz7&%dDRJypO{U$cwk0 z-iz#yZYuB@nF`nEV70~)ZUltE?j=NS%B{S2Xno*^PaVEf8b7l-^`{v@C8~gvw^P?+ z3HfFl7@ps!z|kuoux!W`=iE1vHoz#Hn>0?Z02G1Rz1CjLv8@TUNJCfcAZ0fNfR2}} z{^z&eAgXPb;!4$peg2@4tC6j&Z*|eb6nxrYRp%hg_{0xlDbIznGJh26ZqJaHbnFPd z@X6Xi6Fnnu&Cr_$7lf!5v~&-zV-&2`OkG*2(&36NkfUzv(UJyAz3I(L1=fDarq!Pv z`IHX9!5(Zzm}jA&wG09$V_UrdfE6578f)FUChFD$PP}i@$T0QXeI$cy*uzg3)Q8fc zXnlFje^)8&DPsg}q@q|OkD_kIFK1;J(x?g-G8O&Ltob*bZ0`NC+q3De~_ebN;H_D3z&1}|NtBR|>f3I3raeoScY=~PQt&$mJ1lu4tQ`h;RZpd0A8opCzY2@TDSiaZR zit};e4wb+Pv$xF8J8BZhYLzFkpf=ypStq*CaYQbv#kK43h2YY1Q#S`2qDUSV+$ka` zS+pr+?Ey(-{RaO%Se+Scu|Hl&X!rCQkTL z8RseT4OhhnTY7K|j|sw)D>9D?tYli`avr-k6WAHtH^k`E8d=g#{=I}gaB*yZbPPc~ ztYB9Nk*NyMfCUFJ!Gqrv|(wDu?JvUJW7@M}DpGlua*Bh{Wi z^3izS!5MlC(JnjMP{sdj#=og&_7v{T60D}UAl@q0y2uwQ>BPpiKBhW@rf%(Nactzb zL?`mYOVjA{u5qrlP4YpeqT;eYb5@0hx1}QeM(-s}aYNeu-MTnmcL-L*$uyFHoviwe zfpID(Wz1I-SKBXZ|a-T7`GzoEg)B_0Wo>n3cEPp#XIiEUN+ ztQ>wqW0NLQ)0ev$Xk~gASv{!ob}W2z;r4l&CS=jBPPA}YMw{cSbc}<(gpwiVwdIb^~yIWfL;h|s`WPet5q%3Dogl; z@iX;oK{|%*!%Zv6$X*d;L($?e&QFb8wA2{mjN97 ze)h8aIpN=kMcM+Upmw}niiP?cneJ~$vgK(S&d+ll0mY7p7C=+)G zX2d=-KI|ysb*9OaPoz8K#;HI#yph=M!A5Q3x4gjL0Q}qdP@!ufOp_KP6&SGrIp>l< z$7rKz+fpG-5O!#Mwx7GHF%<3uY|ip7xU%#%EzCf^^GfT+t8V~EAY%vt))J8+a^%UaN<@1xi+~7XSdV}@2#V9H9p|lB{6~4hj5t^ zJ26pxo|=Mlk5;Q)MWdv3w^&ii6RgX9S3#>Czw2e!M++>`G1mc3f*^dEkS}a@Xr9~9 zO`k=wWSoOJx0}IxXx^3rXf5B5L~%0(;DTdJcEx%12Ml%#YNeyMf)=#~;X<_}Y0cp< zyfL)eWs)Z4|MC~JIeVI|l7#a$l3I$+lEnA6lp@dF? zVv@&(Cv{17rj;bM&!A1pV}a^!EJ9D*pH;Dw2+re`sp|GnpZoO^N2?R6Nc>S<=T=$r=dyFVE*olRZ$-lH zP{A?)TBCj8CGUo^=tuP0yzCWL;=iYJvzjS*pp)u|+JV+pNZ%_c-mbF^nNeRy>)7l8 zeb1b7)I*SB-wzN+nG$$@H`mDk*m>)G@cACyUxD03iGFYQVCao~ykb{9@8n}p-M$uP zjp98lL-6HvrA9#+7*C;9w#Bm^{xLvAFh9V)d4l(0`DNZWO1m3i;_EMmuT!91XiFi4 z?RO_l&TM14-tUaOfF`{WixBD}4%8>Mvej>gML58Ff_nFcw!rNc(1fQ0{7ENVu-Uv2 z;evDx%h~s7lEPJ_6P?2Fmx_yK*4$%sXIVsW>*E&X-sfL(Zj~zCyV#|maeL6eQOX11 z8QjK4ffmHsWBfBpyl<>eK0oEZb&LG=&5mTKa7)AyJ}SmIp0ZEaNu+C!C;aKA6B?WS zzy}@hiHp2<`@>sM7rrYLuq|s^dUD~2Zdtk#R?Hvv7E}uf;rW6 zZ46?54XYAQm(4EX(-%{IjaGj*@rrc;mFR~H>tG6dtWR52yK`okiL6&%ej=nJru)DeV|_OKgrhb9?X9#lI%8 z0mwfl>ylWtG#cbKqdxeSFO8-)0(krcAMl{(s;CZBhM9W+Gsk0Eu$3XS_NX7I-Z;8` zarwF|VO{&Icg6B|X^XdKiyq(n#P-Udn`7M}56D-vh0(hm;Q{Xq&^HqdB#|cGxBwg& zZ^Nw7l!J!K-Am2Ce8<15LMMXSld@f3g+f`&NyL(P;bL7x#sjav+Dq?WL3HBkHE{kq zd7Zx7nAvRtn2yx-bFbbt)5#A4xi+SRnH*f? z9`C2G+cnM4uK##CY?Mz29UTXdN}(?o-?=!>>oOB*{g$@;a~5*?}lEk7ap`fmDXF!X^UZ*-K&t_IWx%?CrBu+*kmrt9`K(R zE_|#2NUm1v_dk%QT5WhFLPd8rI=~Tj|Ku4)9B*BF*#X|4t~Oe3>|xiFtB4%_*tk+g zVVA5%mSkx;rME6UWE#{P8k!GQ$eHRdYF$xhV`5%O#h4^3(h_Ly=pP%eOBJ1$R!>bA zjdUF{(@24vk=?)7f{6&tJBv&Q6qZpPB;$+&`ozP^jHD<36z4A3fVGh+O(mqK8nuy< zNk^KkMnqUkl(}n9{EoC^u$G*i43*6mm@+s4 zToWV_?q{43i>xZ$erOM6M#-6h+#{)jhZZ47369(IBI#oa3K$WS#_bL(i-Uv63h9EO zU1Fv`&&!aPUuOMOX~N5^{Iq0oAX_+0%WNIAQ{+b7-OR3PP0(jajl&6M$Vn6>vJs-QS}7s}Bdxe5;R46SFu7J@xvFFsG4pqeu~^!S z*_G((C$+=Yl;B2EC7QgPt4`&iny^&*AVsqJ-OCg!*JIVnxTy;5srsBlC#<3YDUmqR z&&#iWD+b$844A;p0%wN&iZ@EZ&0%0CLP{bX(~G1gt75_|v+Wts;nq$|$8cd>UbB)&+$C=3*F=@&=d@D+IB7*DB+oHI~Ou<`~i?pYDtlcT_a9 z6j^<8lHuDzTvr*?87n4Dj2BWWjc#ee-;|S*kX>;1cpD|>xJ#0o^TPO}E-+}j5;Yo@ zQ|h79h|V0#lG7+_f8!{UH+eEU#xfTFZRj+n84_w4*N8tW5wnm@0Yd5lRO?8}om4^^ z7&x{P8|r^&;M2VhSt!(9hVj#3yPBlyWnIzqnO0bhuz?<0RveJZ4c)5_DvnV~gh#^m zmvL~{U+LFt5^*4OCGNoy?@huxFr|N5II)uKtz**XEu%oe8b;2$vDbMEFJ5Ro?dRL1 zn0m{jqtVKtDlICP#M7Arm}MPCG0|np{D=!a-IZBj(ZFxRQK8I%#En!@iTkV_+%*jJ z39k-YXT>W0=6V@}t7BL@SC@)1hn0Ct2n8V`TZ_#ExeS$yvt%R+Rpguv%Py`Ni?3Z!8OPhV#S9-Bs(8|Hfa8RLf;Q5|doQE*49bR$U+fj>a-W=#4fMtl;({ z*Ju$xcQj`CQ`MbEe`z>r)}h#kiX@fjFwl%!y0k+z{a&)sF4>n(Qvza_8n`Y|R9L3U zyqYRt{+5}PlV!jQJ!$QBWA8OvA0dX z%mf}N^bdSscGK+vE+xNs!~%`NlhM##17sQr2&ts9WT;#X;l#{HhYu*}p1gGpTx)cd z6ubwDEYlhZedh7V(1d|3-s+iPqSym`^(mFo%Yj2~hk?&C| z_aXQc9^>GUoziW&|-+^ms(Ml;i{#`8o#|DN{rw578>P?>vxhbziz zz$EVA9@1!(r4?Iu2*VK$k9+U>%H;?C)jE&#o@f6eC`x?UT+&VmRm5CfiK_pQe4-ko zT_WkgMeVde)LU(|T(b0v=vnWX+lCf$Tn0ZuSi^vF^c9i+P&dtJn;%QLNML7K3es`fFBvLC1PUARLo>}5( znGSYH<9vPy`#qW{e9?*ak`Q||a*?j(B;>ailta=01`jG|iwD{TUA(6RDAF&U2&_4s z@P_QtQywvW7B`qgZp7QgApQ`}B8i5>Un8N>RF&dI2|N`J4?#p|5B5=r|59|5Wc;tQYo!PO0|-O{$Vog!MFClZxZD88roX49d{Dd*Dw>PLKK%g; zAUMX);oo@b&#})%CY6&WSe$U83P>}8k%Z_vmhTi1V0hxDo7jb6$LaW*Sr9R)TF;%F z_TjSe$z+2GTFFjYdW-wHZP`)F(&0=0ydQEeIkb3$e4B@S^6hS$=Xu`jJK&S;XyD&O z#~KDO&TM;zFV2&E$*?(@J!&rNEvmQ_FcW@g8&87YS$q5I@pxSE_0B@8!93i#v=KR% zd#p=VkXlA4$7s(uDj4M!1hW&tim%iCN`CtfvUQ;XF znJ99Z>CS8Bx|JkRVm$gl1j*wv3g|-~-Gs6ec<-(91Mf@G33Dle(E9lVpex|}Lvr)H zpALWpZUSev6Z_&zHrXQ@PT=hf5%|!r6eE|={{1m(rxcULt6s7^a9djdmejeWz#HXq zEO3(BB)uR!x)UqP4?G=}wQ}<4b+|%Kj2hsB8+p%zh4Q$KZOeBkB$@M%pN*(q493wz zr`aAB)TPe}!9R5?_J^YdSQqf=GV(duX`S~h_H-Q@-P`E4oCfTEz7=ehVLz{)+tGyC z<(uc@HMtUg1-_t)`TlU6?ni#2O-cuj&YMaVV<0Qs<=ZvbSV|4Ip(}YaV|X|QjBcrf zar$-87!E{R(HW!y^^R}AEkW22BJad5_-rM>|J3{n#<`2~(jEboyL zo)ikAq_WZmS7{*O!SNffGM{_fm=@uQ@u0cZa7x zUvBpif2sj(<3Ci><5kwZ3n^Wio219ikIj6Y*JLeiG^jRE-fwz5cV3YVyrRVf*Rb|v zZQZ~DrZ1hx`WU?-XaXDi#V0j-+Br=L+ElPzLb>@RVLU3i%cRysPT^xK&_f8C8wu0J zuv%)pTWg~LW?Lp(Vz!wb4RzMJ?>Z?D?B#Jh!`r7hF6pI?hDk>So>KG;OomWea~7$Pq>??`Ux+YQUhB^+2fUrZ)pHanX;!)`(?K9fD*~7`o!AJFFL)cE^ejUL@PzgtfP$$! zfeu`NZQe1Ezo>_jj98xo*Y@X+D@O*BAT7Z@`wm=@uxN9!S}d?R^IvI<5sQDDXY_3R z{c1@~GbvYXc_= z6djC=Z&L;~{0smacE-1>7>nPxA#g|IEDw0xp*jd&7ks@cXg7lH1wmh+2$n|LY!CAY zm;W_~#4<-44iz;8AaIcXUhS7>!M5vvw`ZxPYqpnE$MOeJ*uWUx*#AQmj+-Itv=RbH zz97tS6CRMEt%GC?2pq(DvW}5MKsBxN+51zSYGd5#bdURm@pT;xEMb5AK2h4+25bV} zGQ5<$`n7z4LlHe34_C?hQZ$i0CAV(4fSLUpAOB>5+9Kj`pDDfki3VqnD7qSAFXFH2 z;_(T8bQXrG0!#>`SwwlMMgcLF!7>0)E%QC4;0~QB#)hX+ghzbIoJ9~)_K^7jyQf<= z6!k8|y)H_|01V!VOh->l(Ar4d{!8+_blFR946n|ZbcEj<;jsfRWUB^pi?;XrO>Q3* zD~b17~@X#XdRPb`+Bu8C)G z>~KW?DQk|?lfc427g_-!+c6;W`)&CVfbnfc4 zCK{n^lF3EkEIdY2LnK+Ywk?uvXi;d*=Y5cOKD(<6+V#01`xCmE{%X=UX%EHz7wAcZ z)Pvo_E#W7*-uq)sfgPXg`@uKRtf&JQ-6u{T1p1Eh+dRvqfb~mDuN(kj4NhY`&U5)Z z0`g{eT)>9mLXL$Mh9QD+Y4y=-p=7yM2T$-}LJ! z+2(>o&+Syx?kc+>lA<-)PoG>?9E9q2jqJF4~Kvq86sIih_b%OocJ$lE9v?0F)WR& zOqr+0hfA61a1m0C`%{4vWAM{tt>JXSBafV~AC+NE(7|if848s@(s6B;w`mXGY*!Oi zbnQqRekwTy)$f4clKba7i{S;R8lGD#q%A(=n;WXkkVky@D7OF(d1(jG?gh5iE6w9e zU*0WMY^mweqeaY*Lld|*a#7A|Xk0~oH4(1Y7Jw@RE~3852-jDAiu-|%4Dum^S0BwT z!~uzUJ_1UW`COx9CP_WiEUG_|J~Xko2EKI=E^quDQJ2!a#jCVdAYp!U6;HWu6j{w1rRgrsI{JZky+8#f0!F z@HY+3y4e-;5vjoV>9_;eas8Wo%?8b@`69*c`d;XDPJ4L6Pm;tNvD=o&Q z42}1WORnCT^xkJ%YCWD;Y2?)}gRp`+V?JyU73T;aFGAH{xt#&6tf^g(sULvGS|W%m zscrzoUW{adHPFib{oG*#d++HRbn^>a+pe*0KsYg@`G=vD-lv|1wS`A%CI~m#8i$(R z$MO>WBiA*cJ+34b$0ce`QnXefy&p`YTVq_aSX!lXZ6H9h8foiw1LZKS+FH} zMK+z7=lj!LP;tv2>GIvC_q`=5nZ2qOGXOv?aCPBkn(%WiX*wFo+T31zHm%XE$L;JB zpR|iuyDU&#`3|Vc~YM<8@+Nv~AQUJ(lbNb+S+w-Q$s##^VDpb<~oj%y~l^|Z% zZ5b2O2DozJ))LFIu?Tql(&H<2eQ|iI`L?@}%+2R$Hb+KEA#9DHPKX;!g#>jwhz5|w zzx0SM(u^2QQxxRTXTTweJECm%!S|6?E3gdHf*Q?IfYFhA8M1U}OpZ?qOd^J4lBAbD zUZ}b~K0HiEK-`29Kee68A!8f}au>o0(B>$UOrvTR4WX zd|^!R9VqSx;Ot0u3KA6l`SMk)qm05}eE$m7^s!6nDO8)*r^VNbDa0Rqf;<3Xlo zFuZ*}L81HMm*top-YQ6E+D>sjp*Uor*!lWL_>D0ib*IalX!6+Qe#$WwsZHux(vRtR z#g&{G@F>{bgQBRD%DF{p`Z`)(iQ5+C2Dfg;A!;lAbI(H)`5*D>K0mnlDRCUj&y$xK1l0QDT{W8f;aX z587Obw!9Cw5zVtPJg}UPcD?OAR4S8+Yb zMrk#9pgGX`J<{geXv4$v@vL+6*{q(1v))=q0uSZjWTsiTIV+bPAuHD8iTpcOT}!XI zsJ<$GyH%O;V)vchg}wfYqlzCwC$edgH`B(<{FC_fmu}#-D40mAF|xG_eKDpj~H9cHaI>9QS90;nY>=fbUN*cfUmm|0uJT#K>im)I-AYbINQ}) z|7!KRfNU<8@MVF0uIq4=!#Cgz|JnV~#H;5linTu@8e1PeaKN^uWAXL#d1p!HRb8t} zwWR*0=R3Pvrz3geFvG4pZz;Alq$~en-Kyq}(ewNBnfFa#6~;;k=`x5dAoqZ}rgML> zI6prCaJ}8Nfyd1U*!FqW;X~wkENl1eDGq9@^L(^4`6%Prw)}Lv-aKpE{&P#P{+eqW z<8s>vO)$&8-WmXQStSrJU$oWoo(KB*JqpQfK7d`B`4 zVRqmQJa2o&%oseX3z^A1If#jfi0~xm#$5OV2!U#PKL1uuer)`EhnLmZF~ODq@vYOC z)H91K*th!$dbAy{W) zDz7#-wK2X)VcPrYMtx$5TN6~cztnL?iOY#sv4C)|5Z;$f`AO7j?NWD|J4R5@Is_B#13&8W1 z8!PL9)A!5W!9zg|U;au!?26_4aOTI;h8-`f1NZkHDk8pfVYyw;C)?-4f}Dj+(CYI+ z41fEfteVr+$;nAY1kW(-pzvr!ri>K;ypmv5X7+5Mu^IFU@N^nrHF=e?gN6xzBo-~u{~KBBw~&!@osb&F-Gvs|Sm#{UX9L`~_0 zse|%q-LRJddDpcOj1=k_9os`>?2d(g{c%iD?G{^MATyv_R#x`Gg@I!oe8G9hY#C5} z8(2$wNq9OKhU#tOzW%TFSb5Txb#`XrbJ+XMm^pkyIY=fN=nk0qGw|2y?tb&yh{fO^ zxmLvlrN%gngtXm_635(n@&5$`&+q`@x^BAPU!In=?B+rQ&Ns1E5Oq3Si)gi)3+LwM z)V69WZiMu&bYUgM#dqIYY&Mc>D%uG*nJMV#s*`x*LY=QS)21^y6TXz%GaZB`{k~R_ z{{0*=olO0s)o9-51WY%7dpPU7;l6G?AkZ=De%X(B_?OcW-)+t+s0TnK6alXlE`dy@ zJb|^=eD3$O-TmPh>$12y4+(O`O4 z*UM<#3HbKSCLj#S|5~jx@_7GOsTaroEikgaWyX%;u~idWTU#6d7;uw=$ic(J6b}pt zC>=9)9G^lukVnAZ&jvs}^lt{})D0^{Utq4nmEwO--qc{IvHSfA~Ul*6#5s z%e?YF2!8(+x;`ct7mdN6dL?>JV>0=9wcXXRz{`IMik~`hipr>SvBKDliJHj&^>X06 zKN!|1lflNq%d3M0eu$VNby@@X{>t3x4~Dg>gvAp1z74%Te*j!;`I!9y0dhBl6t(P4ITj&dLX`{A;h5tY6ZRJ^OE9wnqbnGfGQK zx$gX15y{;VumDU!#YIJTUdq?kYJ_59aK9e^HDkWr#lbZLkIS7Nz!%OJuS9rUj##^w z>Mk}>UdEB7le-@Nyzkq+fh4C|H+y>qdPG>*3e?X$@{fpEa3H7^;-`MJ0gW*Ks$3RV z(hOQ;S!|uzOtv?j(WOHd0zaeaB<6LC!q>lw+3}E(2uK{); zc=Wy>BlqB3R?!&*xfT5Ym#dVbnwe>HI+_1B8w~VSR8)Ln#l5cD^MwE25%mqvBq1ga z%o$;=c*!BS?&}Sy(rP(w7T8qW83?`+^{CP9YRzfAYTht!vE54CL}3yU7N%%cxrkW> z>3}6r0$>DXLijwMEsT`WYg=tQ&G3eI<&hgAImV^Kcn^kfLbMqOX{S7$&IN9}tmsI> zQBzXxHTP#C8-=%p`ie#4o{^w-8%^i>>TK;$P*W={=X0rsHF4gAKZsA?mw0MPP!d_Ujrz8rXW=}P+ACdNLkh{3N9 zi0F0!;A(y^`-30->mfCsFMFY{nxfH^j#8U|Ih5;$UED7_hoT>@tzabCL~4%WayZ9a z-q^!nPH^3zoQlTA##PIoE|UAN9^D}Xo~K0DIU*nBwnAAJ3&osOD>$)y14q%G(R-dJ zfPW3+F_4#yEjgNiKYIlCMfEby$q4`N`#C!YUSbYtxyxj^St2n%__Dl3_y?T6P*Jto z!RyLJqU`Am|HVwtMGqjhH1GSX=wFbK7yA0l7>9cNc#dIJ`WLTA$3DNw!5P2VIpg$( zQt*WEvXea8hn@F5<+LDhR$YhorUqQ$M0_G!+|WK@&2LL}kaK;~-W!Wmbu}Fj4NF93 zV2UwTk8?~M_)fH=uOMHVBf>1n^hT=!eTDEsl}CuWrtQT|NTmGY#%pD=U@R^`Psm4S zq#!ld$0m$K5DeB=Kn>PMKy8$0Z%fhf&NfMZu#Eg*I4up5Bc4q&ZuZ~CCj=;THOWh7 z-=MeDK-4;0RD=#$(YjYP<__?&0zD5+X+M`m@iAmsGmTRcJDjC z5>P$7^lBCA2qHOfJo|Kr36kz#Cll!EWw!`hs%mr&re`U|G2-}%RXnXG zA8#!GT75bOO`^QWZCX^Y)nWP$jpVEzO_{z2=VWP3K(x5Hr&=w&LmeKokLBoA;#)1ovFu#7RUped(9@)5-a~63lUb7lE&^Nj3NvT`d63rXNjwFZ7xaJuvim9uy%@ zsXS$k!7w22vUmSJ9;GZ^w0m3gmBYJiF4VdD+NL8?qJwHZ0QOw_5=+NEzqcXe5tUuttp zBB57Bg3GeBE5y}~O+_~5trt#7sj0i5jq8#J6)G2h;;+p$P86fKm8(n8qJ?;ECKXBh z`#nUaIi;CtqRdhf*cK{!>#NzvIc&*IFfSMt!e!9kYLA5gw*&C9oLbiViCM|9CrET?vvQaL$5l{2}ah0EM0~EaIhg|+Rxtw@1 z54x;Dix+CP{Jcx0*o%2(hriAt(Oc2Rrr7JKlUx?bsDgwwo@uaaE?xj#m;Kyq9SNOO z0HN9L#Nd=6%H`e6SChc=;yk;r3q28yX5TZDp0j@59RT|!_uAPQcdS(-=wi~eq zTdMuip=c9BQ4AttC0b@R4Jn7KZZ#%LSEQ3&G=HpXDX??dh5^C#gH^B*>K;S=)?<0) z%D)ULxZYlF{Wi;k-ZV~b=(!s;LF*H;ss#8STyY$&umEn5i_cqACaGqSDO{z=qJFGoo@Nl=Sf(RgjV36cehMln=j<9anK z5znhC7%5{jOG$sgrKyB!uWP2yS|>Gd+~^WRdZrUkx!$VemauN}7=uq+HlgLt#cN`t zi<@40tt4WgYcfBt-lHetxl0rnx2j4+BX6`LTL7vlD2WY-*Qfzay_#GzDn+`2qzJGZ z^DCe~>6;#7(Kssl8TGYT$fihC4vR7IEvhX@ZiF#=^OV>w>1vI?=;F^u}?YQp8>o|!$3 zI|f+L)WvG70`Jp+&M8C;=v|NzblB*~0$47=?TK-;O*9<+qzCfiwtmkONGHz|zs5uP zH^#F^@KtWlQ^!iyTvIs|U{8dY_$-Z;zh9IZ28Kg~Cp(<2H}9@K!G!9rAF=r9W>D?*PZ@4P%DrCPZO#N@Hsa(Y_fzQ+#lPv^pGB ze4aGFi7b@UvFw70HkVDE#GNZ2EO9-l8MVnKOJ&(HUvF2agHhu5=(pG=doy*XpX~F+ z5;M{Q3Rg6vT$K>GA`op}nS%;FN&#L$Rz8_)dwE}&h>vm}rQbPTYa?z!#1}v3=KwAj zAqr|n$r)&IlzAL0Mk;QzAyzoJ|1g#R)$_>Tqfe{BCT{^ORy(^)ZD_>X1FQ{aEo zp8xCW{@+agDZ>Bj;R3MlZ}gTHSTo%s@pXqgmmKjvfbEIyKuK>ZdI_PMqTA#CQ87MSvSD#u zwy;!jlmk>D!?3iwNb&^}HlJx^rFI0Eox_c5=vg}Fw z0SlHI)bfu1Pyu=ER_=!kMA>SEz}zFQhp1;&crX#`YFL; zfCDE=)*2yly05oPq9{UD{lk-x4P%(}dp!n}0Kyz}Lpuz<-$egaW^A2z6z>3z5T2M;yE_ zO{rADFJX-FsDTl2CTQ)$D-;dJIA_)@011O9X;q7J%ZY8Ij>e77(U@`xZI9F2+&l}1x)5co)iF$T6ib%WgA!8Vk--^E>r9Tl?T&XG_+(=x z??y^CqHUhlRNH3EPy~zZN{@y=WD!HS?5u2Cz3PKnP&i8Q`_SXNy>8UE{UG4@0Q366 z;KC3rc!%Pb)H745dlDBwWLjS?LqsIo2>A#}3HMkKe*vg@UtrX?Btdp6CJu8H@mokL z3ThNDDZ-cpW%A+Z%h`{nL~`x(w5Gmc;oD({zDeA7^!fHs4&(U1})36 zrWA#}{9|USs7KJSkyNFrx)615Q3SShnz*~NAIwt{qC%3Bw-yVN=*xZ1N|i%2)I(_x z&csnjT_p*Zfu2;N`Xhm!KMN3uxO8Tm6~UrzDr1xa3%|kTrNALlbb(-)fw4THu{@wH zu{>ZowGg0S1RyDlS74Yat3WU~@PFI6Q%-OV@De`oB!LYf7F{Y(8nugOYR delta 15915 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 F{}=tIeINh;