From 81f6ae10bb924fdc285b13c584127ef70a55fa50 Mon Sep 17 00:00:00 2001 From: Yvan Janssens Date: Tue, 15 Oct 2013 22:49:40 +0200 Subject: [PATCH] First working version of the netcrypt sample. --- README.md | 21 +- netcrypt/SimplePacker/Form1.Designer.cs | 190 ++++++++++++++++++ netcrypt/SimplePacker/Form1.cs | 73 +++++++ netcrypt/SimplePacker/Form1.resx | 126 ++++++++++++ netcrypt/SimplePacker/Program.cs | 21 ++ .../SimplePacker/Properties/AssemblyInfo.cs | 36 ++++ .../Properties/Resources.Designer.cs | 71 +++++++ .../SimplePacker/Properties/Resources.resx | 117 +++++++++++ .../Properties/Settings.Designer.cs | 30 +++ .../SimplePacker/Properties/Settings.settings | 7 + netcrypt/SimplePacker/SimplePacker.csproj | 91 +++++++++ .../Debug/SimplePacker.vshost.exe.manifest | 11 + netcrypt/SimplePacker/bin/Debug/netcrypt.dll | Bin 0 -> 9728 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 6962 bytes .../obj/Debug/SimplePacker.Form1.resources | Bin 0 -> 180 bytes ...implePacker.Properties.Resources.resources | Bin 0 -> 180 bytes .../SimplePacker.csproj.FileListAbsolute.txt | 10 + ...SimplePacker.csproj.GenerateResource.Cache | Bin 0 -> 975 bytes ...acker.csprojResolveAssemblyReference.cache | Bin 0 -> 6118 bytes netcrypt/netcrypt.sln | 12 +- netcrypt/netcrypt.v11.suo | Bin 53248 -> 69120 bytes netcrypt/netcrypt/Packer.cs | 46 ++++- netcrypt/netcrypt/Properties/Resources.resx | 6 +- netcrypt/netcrypt/bin/Debug/netcrypt.dll | Bin 8704 -> 9728 bytes .../Properties.Resources.Designer.cs.dll | Bin 4096 -> 4096 bytes .../netcrypt.Properties.Resources.resources | Bin 1868 -> 1963 bytes .../netcrypt.csproj.GenerateResource.Cache | Bin 917 -> 917 bytes netcrypt/netcrypt/obj/Debug/netcrypt.dll | Bin 8704 -> 9728 bytes 28 files changed, 850 insertions(+), 18 deletions(-) create mode 100644 netcrypt/SimplePacker/Form1.Designer.cs create mode 100644 netcrypt/SimplePacker/Form1.cs create mode 100644 netcrypt/SimplePacker/Form1.resx create mode 100644 netcrypt/SimplePacker/Program.cs create mode 100644 netcrypt/SimplePacker/Properties/AssemblyInfo.cs create mode 100644 netcrypt/SimplePacker/Properties/Resources.Designer.cs create mode 100644 netcrypt/SimplePacker/Properties/Resources.resx create mode 100644 netcrypt/SimplePacker/Properties/Settings.Designer.cs create mode 100644 netcrypt/SimplePacker/Properties/Settings.settings create mode 100644 netcrypt/SimplePacker/SimplePacker.csproj create mode 100644 netcrypt/SimplePacker/bin/Debug/SimplePacker.vshost.exe.manifest create mode 100644 netcrypt/SimplePacker/bin/Debug/netcrypt.dll create mode 100644 netcrypt/SimplePacker/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 netcrypt/SimplePacker/obj/Debug/SimplePacker.Form1.resources create mode 100644 netcrypt/SimplePacker/obj/Debug/SimplePacker.Properties.Resources.resources create mode 100644 netcrypt/SimplePacker/obj/Debug/SimplePacker.csproj.FileListAbsolute.txt create mode 100644 netcrypt/SimplePacker/obj/Debug/SimplePacker.csproj.GenerateResource.Cache create mode 100644 netcrypt/SimplePacker/obj/Debug/SimplePacker.csprojResolveAssemblyReference.cache diff --git a/README.md b/README.md index 75d0193..dfc47d3 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,24 @@ # netcrypt -A proof-of-concept packer for .NET executables +A proof-of-concept packer for .NET executables, designed to provide a starting point to explain the basic principles of runtime packing. + +# Implementation + +The packer is implemented in a shared library called netcrypt.dll. If you reference this library you can just use the following code to pack a file: + + byte[] arrayOfUnpackedExeBytes; + // ... perform file loading/generation logic + byte[] packedExe = Packer.Pack(arrayOfUnpackedExeBytes); + +A sample GUI has been created in the SimplePacker project to demonstrate this principle. + +# Sample files + +In the /sample firectory you can find two files: input.exe and output.exe. The naming should indicate which one is packed and which one is not. + +# Warning + +This is a proof-of-concept code sample; it is possible that it will not work on your set up or does not work at all on your system. +This packer is also considered to be highly insecure (as with all obfuscators/packers which provide security by obscurity), since an unpacker can be easily constructed. # License Licensed under the GNU GPLv3 license. diff --git a/netcrypt/SimplePacker/Form1.Designer.cs b/netcrypt/SimplePacker/Form1.Designer.cs new file mode 100644 index 0000000..9e4751f --- /dev/null +++ b/netcrypt/SimplePacker/Form1.Designer.cs @@ -0,0 +1,190 @@ +namespace SimplePacker +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.twitterLink = new System.Windows.Forms.LinkLabel(); + this.sourceCodeLink = new System.Windows.Forms.LinkLabel(); + this.madeByLabel = new System.Windows.Forms.Label(); + this.inputFileLabel = new System.Windows.Forms.Label(); + this.outputFileLabel = new System.Windows.Forms.Label(); + this.inputFileLocationLabel = new System.Windows.Forms.Label(); + this.outputFileLocationLabel = new System.Windows.Forms.Label(); + this.chooseInputButton = new System.Windows.Forms.Button(); + this.chooseOutputButton = new System.Windows.Forms.Button(); + this.packExecButton = new System.Windows.Forms.Button(); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); + this.saveFileDialog = new System.Windows.Forms.SaveFileDialog(); + this.SuspendLayout(); + // + // twitterLink + // + this.twitterLink.AutoSize = true; + this.twitterLink.Location = new System.Drawing.Point(70, 71); + this.twitterLink.Name = "twitterLink"; + this.twitterLink.Size = new System.Drawing.Size(56, 13); + this.twitterLink.TabIndex = 0; + this.twitterLink.TabStop = true; + this.twitterLink.Text = "@friedkiwi"; + this.twitterLink.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.twitterLink_LinkClicked); + // + // sourceCodeLink + // + this.sourceCodeLink.AutoSize = true; + this.sourceCodeLink.Location = new System.Drawing.Point(132, 71); + this.sourceCodeLink.Name = "sourceCodeLink"; + this.sourceCodeLink.Size = new System.Drawing.Size(66, 13); + this.sourceCodeLink.TabIndex = 1; + this.sourceCodeLink.TabStop = true; + this.sourceCodeLink.Text = "source code"; + this.sourceCodeLink.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.sourceCodeLink_LinkClicked); + // + // madeByLabel + // + this.madeByLabel.AutoSize = true; + this.madeByLabel.Location = new System.Drawing.Point(13, 71); + this.madeByLabel.Name = "madeByLabel"; + this.madeByLabel.Size = new System.Drawing.Size(51, 13); + this.madeByLabel.TabIndex = 2; + this.madeByLabel.Text = "Made by "; + // + // inputFileLabel + // + this.inputFileLabel.AutoSize = true; + this.inputFileLabel.Location = new System.Drawing.Point(13, 13); + this.inputFileLabel.Name = "inputFileLabel"; + this.inputFileLabel.Size = new System.Drawing.Size(47, 13); + this.inputFileLabel.TabIndex = 3; + this.inputFileLabel.Text = "Input file"; + // + // outputFileLabel + // + this.outputFileLabel.AutoSize = true; + this.outputFileLabel.Location = new System.Drawing.Point(13, 37); + this.outputFileLabel.Name = "outputFileLabel"; + this.outputFileLabel.Size = new System.Drawing.Size(55, 13); + this.outputFileLabel.TabIndex = 4; + this.outputFileLabel.Text = "Output file"; + // + // inputFileLocationLabel + // + this.inputFileLocationLabel.Location = new System.Drawing.Point(75, 13); + this.inputFileLocationLabel.Name = "inputFileLocationLabel"; + this.inputFileLocationLabel.Size = new System.Drawing.Size(245, 13); + this.inputFileLocationLabel.TabIndex = 5; + this.inputFileLocationLabel.Text = "(choose)"; + // + // outputFileLocationLabel + // + this.outputFileLocationLabel.Location = new System.Drawing.Point(75, 37); + this.outputFileLocationLabel.Name = "outputFileLocationLabel"; + this.outputFileLocationLabel.Size = new System.Drawing.Size(245, 13); + this.outputFileLocationLabel.TabIndex = 6; + this.outputFileLocationLabel.Text = "(choose)"; + // + // chooseInputButton + // + this.chooseInputButton.Location = new System.Drawing.Point(344, 8); + this.chooseInputButton.Name = "chooseInputButton"; + this.chooseInputButton.Size = new System.Drawing.Size(48, 23); + this.chooseInputButton.TabIndex = 7; + this.chooseInputButton.Text = "..."; + this.chooseInputButton.UseVisualStyleBackColor = true; + this.chooseInputButton.Click += new System.EventHandler(this.chooseInputButton_Click); + // + // chooseOutputButton + // + this.chooseOutputButton.Location = new System.Drawing.Point(344, 37); + this.chooseOutputButton.Name = "chooseOutputButton"; + this.chooseOutputButton.Size = new System.Drawing.Size(48, 23); + this.chooseOutputButton.TabIndex = 8; + this.chooseOutputButton.Text = "..."; + this.chooseOutputButton.UseVisualStyleBackColor = true; + this.chooseOutputButton.Click += new System.EventHandler(this.chooseOutputButton_Click); + // + // packExecButton + // + this.packExecButton.Location = new System.Drawing.Point(317, 66); + this.packExecButton.Name = "packExecButton"; + this.packExecButton.Size = new System.Drawing.Size(75, 23); + this.packExecButton.TabIndex = 9; + this.packExecButton.Text = "Pack!"; + this.packExecButton.UseVisualStyleBackColor = true; + this.packExecButton.Click += new System.EventHandler(this.packExecButton_Click); + // + // openFileDialog + // + this.openFileDialog.FileName = "openFileDialog"; + this.openFileDialog.Filter = ".NET executables (*.exe) |*.exe"; + // + // saveFileDialog + // + this.saveFileDialog.Filter = ".NET executables (*.exe) |*.exe"; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(404, 98); + this.Controls.Add(this.packExecButton); + this.Controls.Add(this.chooseOutputButton); + this.Controls.Add(this.chooseInputButton); + this.Controls.Add(this.outputFileLocationLabel); + this.Controls.Add(this.inputFileLocationLabel); + this.Controls.Add(this.outputFileLabel); + this.Controls.Add(this.inputFileLabel); + this.Controls.Add(this.madeByLabel); + this.Controls.Add(this.sourceCodeLink); + this.Controls.Add(this.twitterLink); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "Form1"; + this.Text = "SimplePacker (netcrypt sample)"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.LinkLabel twitterLink; + private System.Windows.Forms.LinkLabel sourceCodeLink; + private System.Windows.Forms.Label madeByLabel; + private System.Windows.Forms.Label inputFileLabel; + private System.Windows.Forms.Label outputFileLabel; + private System.Windows.Forms.Label inputFileLocationLabel; + private System.Windows.Forms.Label outputFileLocationLabel; + private System.Windows.Forms.Button chooseInputButton; + private System.Windows.Forms.Button chooseOutputButton; + private System.Windows.Forms.Button packExecButton; + private System.Windows.Forms.OpenFileDialog openFileDialog; + private System.Windows.Forms.SaveFileDialog saveFileDialog; + } +} + diff --git a/netcrypt/SimplePacker/Form1.cs b/netcrypt/SimplePacker/Form1.cs new file mode 100644 index 0000000..94c7264 --- /dev/null +++ b/netcrypt/SimplePacker/Form1.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using System.Diagnostics; +using System.IO; +using Netcrypt; + +namespace SimplePacker +{ + public partial class Form1 : Form + { + public Form1() + { + InitializeComponent(); + } + + private void twitterLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Process.Start("http://bit.ly/168dEqY"); + } + + private void sourceCodeLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Process.Start("http://bit.ly/1gIe8pZ"); + } + + private void packExecButton_Click(object sender, EventArgs e) + { + if (inputFileLocationLabel.Text == "(choose)") + { + MessageBox.Show("Please choose an input file first."); + return; + } + + if (outputFileLocationLabel.Text == "(choose)") + { + MessageBox.Show("Please choose an output file first."); + return; + } + + try + { + File.WriteAllBytes(outputFileLocationLabel.Text, Packer.Pack(File.ReadAllBytes(inputFileLocationLabel.Text))); + MessageBox.Show("Packing completed succesfully.\n\nCross your fingers and try to execute the output file..."); + } + catch (Exception ex) + { + MessageBox.Show("An error has occured while packing the executable.\nPlease note:\n* Only .NET executables will work\n* This is a proof-of-concept packer, designed as a learning aid for .NET developers. It might just not work on your executable.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void chooseInputButton_Click(object sender, EventArgs e) + { + if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + inputFileLocationLabel.Text = openFileDialog.FileName; + } + } + + private void chooseOutputButton_Click(object sender, EventArgs e) + { + if (saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + outputFileLocationLabel.Text = saveFileDialog.FileName; + } + } + } +} diff --git a/netcrypt/SimplePacker/Form1.resx b/netcrypt/SimplePacker/Form1.resx new file mode 100644 index 0000000..816f18b --- /dev/null +++ b/netcrypt/SimplePacker/Form1.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 157, 17 + + \ No newline at end of file diff --git a/netcrypt/SimplePacker/Program.cs b/netcrypt/SimplePacker/Program.cs new file mode 100644 index 0000000..b340cbb --- /dev/null +++ b/netcrypt/SimplePacker/Program.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +namespace SimplePacker +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/netcrypt/SimplePacker/Properties/AssemblyInfo.cs b/netcrypt/SimplePacker/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..588fdb6 --- /dev/null +++ b/netcrypt/SimplePacker/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SimplePacker")] +[assembly: AssemblyDescription("A sample on how to use the netcrypt library.")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("@friedkiwi")] +[assembly: AssemblyProduct("netcrypt C# library")] +[assembly: AssemblyCopyright("Copyright © friedkiwi 2013 - Licensed under the GNU GPLv3")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("b9da217b-997e-4f15-a7ee-4927e541557f")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/netcrypt/SimplePacker/Properties/Resources.Designer.cs b/netcrypt/SimplePacker/Properties/Resources.Designer.cs new file mode 100644 index 0000000..284aeeb --- /dev/null +++ b/netcrypt/SimplePacker/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18052 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SimplePacker.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SimplePacker.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/netcrypt/SimplePacker/Properties/Resources.resx b/netcrypt/SimplePacker/Properties/Resources.resx new file mode 100644 index 0000000..ffecec8 --- /dev/null +++ b/netcrypt/SimplePacker/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/netcrypt/SimplePacker/Properties/Settings.Designer.cs b/netcrypt/SimplePacker/Properties/Settings.Designer.cs new file mode 100644 index 0000000..ceb82c5 --- /dev/null +++ b/netcrypt/SimplePacker/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18052 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SimplePacker.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/netcrypt/SimplePacker/Properties/Settings.settings b/netcrypt/SimplePacker/Properties/Settings.settings new file mode 100644 index 0000000..abf36c5 --- /dev/null +++ b/netcrypt/SimplePacker/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/netcrypt/SimplePacker/SimplePacker.csproj b/netcrypt/SimplePacker/SimplePacker.csproj new file mode 100644 index 0000000..dc16e3b --- /dev/null +++ b/netcrypt/SimplePacker/SimplePacker.csproj @@ -0,0 +1,91 @@ + + + + + Debug + AnyCPU + {4E860FED-781B-4060-865E-54594C9BEAC3} + WinExe + Properties + SimplePacker + SimplePacker + v4.0 + 512 + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + {6d18501b-2516-4fc3-816e-775d71ab923a} + netcrypt + + + + + \ No newline at end of file diff --git a/netcrypt/SimplePacker/bin/Debug/SimplePacker.vshost.exe.manifest b/netcrypt/SimplePacker/bin/Debug/SimplePacker.vshost.exe.manifest new file mode 100644 index 0000000..f96b1d6 --- /dev/null +++ b/netcrypt/SimplePacker/bin/Debug/SimplePacker.vshost.exe.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/netcrypt/SimplePacker/bin/Debug/netcrypt.dll b/netcrypt/SimplePacker/bin/Debug/netcrypt.dll new file mode 100644 index 0000000000000000000000000000000000000000..0e65581a6ad1372bee97cecc102ee42b15070366 GIT binary patch literal 9728 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 literal 0 HcmV?d00001 diff --git a/netcrypt/SimplePacker/obj/Debug/SimplePacker.Form1.resources b/netcrypt/SimplePacker/obj/Debug/SimplePacker.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/netcrypt/SimplePacker/obj/Debug/SimplePacker.Properties.Resources.resources b/netcrypt/SimplePacker/obj/Debug/SimplePacker.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/netcrypt/SimplePacker/obj/Debug/SimplePacker.csproj.FileListAbsolute.txt b/netcrypt/SimplePacker/obj/Debug/SimplePacker.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..f1442c3 --- /dev/null +++ b/netcrypt/SimplePacker/obj/Debug/SimplePacker.csproj.FileListAbsolute.txt @@ -0,0 +1,10 @@ +D:\Users\axqix\Documents\GitHub\netcrypt\netcrypt\SimplePacker\bin\Debug\SimplePacker.exe +D:\Users\axqix\Documents\GitHub\netcrypt\netcrypt\SimplePacker\bin\Debug\SimplePacker.pdb +D:\Users\axqix\Documents\GitHub\netcrypt\netcrypt\SimplePacker\bin\Debug\netcrypt.dll +D:\Users\axqix\Documents\GitHub\netcrypt\netcrypt\SimplePacker\bin\Debug\netcrypt.pdb +D:\Users\axqix\Documents\GitHub\netcrypt\netcrypt\SimplePacker\obj\Debug\SimplePacker.csprojResolveAssemblyReference.cache +D:\Users\axqix\Documents\GitHub\netcrypt\netcrypt\SimplePacker\obj\Debug\SimplePacker.Form1.resources +D:\Users\axqix\Documents\GitHub\netcrypt\netcrypt\SimplePacker\obj\Debug\SimplePacker.Properties.Resources.resources +D:\Users\axqix\Documents\GitHub\netcrypt\netcrypt\SimplePacker\obj\Debug\SimplePacker.csproj.GenerateResource.Cache +D:\Users\axqix\Documents\GitHub\netcrypt\netcrypt\SimplePacker\obj\Debug\SimplePacker.exe +D:\Users\axqix\Documents\GitHub\netcrypt\netcrypt\SimplePacker\obj\Debug\SimplePacker.pdb diff --git a/netcrypt/SimplePacker/obj/Debug/SimplePacker.csproj.GenerateResource.Cache b/netcrypt/SimplePacker/obj/Debug/SimplePacker.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..917527f99f8ebd00d11d32c30b5d0e2fed1469c6 GIT binary patch literal 975 zcma)4!EVz)5Vc#|jqMbi1F8@lBE$iyk(H=aaEXve6{u*XK&y%a9M;~ky2{2I?XIf^ zet;`C{(+z2C%AFs4l^rSRjq|OmS$&n-pc|R2rOmC^QWrc(TQD~+yzf~}UyLt|s z5PL#HX_a0Df&ZwT<7#zMdrKHWWA~Z>qa>v87FS7ZmtPh1@MvW$Eb@tx65opd(&Vq1 zId!@mONe)TVsUg41_2%Y_u>Wuk^{x~l#%|8e{Jea)MCjr=!_^Pio;B+Gr>W3=-^0v zf&e>Zq7xmP4S`N;Iu_nR^ s+4SAB?;=S|n!o>^eGR_-_~QE{!l~&|j`V-lKhrhJ^$1SZqa0cK7cZp=dH?_b literal 0 HcmV?d00001 diff --git a/netcrypt/SimplePacker/obj/Debug/SimplePacker.csprojResolveAssemblyReference.cache b/netcrypt/SimplePacker/obj/Debug/SimplePacker.csprojResolveAssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..95d9fa0114e1e568504f2322c428decf9fa96eca GIT binary patch literal 6118 zcmeHLTXWk)6qX#@u~g^MLLr4xTw3TY$O%cB3v_7e)J=vav`Hy2br5TN?TF~&uH-cC z3%vH78GZ!AWrl(B%H@#<-gxB)@B?@P&L>Nbt#}|Q^)Ph0nH=v*M|)Q1eCOMB{(cd1{PJumo%!?`~qP;drBn=) z`=h?2&0AW|F->0bXa%me$lMK&6-|ysD}5y55Pz%MPYUW)hn4fJJ(!psifKu`@y}3&HXh1iNF{Rjq8ANw~-Bp(*AuZGprZ_bzXH+y<0f z-*Sp9S9@T&QxWN)L<$9(~6$wX24G+qb2Xtf>Wwn-1gkU6~kMs7YjD` zN}^Hox^#+$U0C47dbM@WU-@8fJp_RJc816f>z#)HGk9s3%;-HZW4R?qm`2eza*&K{ z^uS0+LcC@=4a61JhCzV9mvRW=35X{l4nsTz@ifE;#1RNEsPZhtQHbYAB=GFHo&0a# z%bHgGt>ql()bD|3(yNCZ{%5h(*(7UgLI|xRxk3?UtD5ap6<(ps3rP zVew!u8K{J$i^rr`EGEYWutiCqHh%x*RXQG3f)ArgFGQ8#K*AN$y8?R9{Gwx0)Xt>ckXL6)pGfu;pW!>--h z(*ZWP8Tupd-8=ioCqFMLFVR3b1#y~0@(hVK)G23aEF*QI0X)~KsLDvKsM2Uu38@!V zdO50u)Ql==5v6pNF02GEjSc5vfCj$USFpebgUoFYWQw_Ko*=)c4R_73Y9@!uFlAW)k#DS7xSXSLHSJQ%9tXAXYyl|{O6uR+aVSsrhC~rIP zBg^tva?2e%74Q{qb77SHN|;Kj_s4JD+7Gx!Gg0k_TIsK^BaFbKGDadfPU7`&x88~9 z_+C#EcHJ~F*()Ua0cr`p!~F4m#noTY1U;rqk~oOWKuaJS_L^yaac=2!LLlm=y+SCK zzSTS$QLiQ(99>jPuh5zieYsDT2ZIO(*^6XNPLUYssLhr0xIRrnQseO3KVSpfWI~4x zRc{@=hIYFCDJ-oA$FwE8;wU-}IG32qQ+lwLK^^Ckd9&&W!`rY%I)_wS<{aA-j(JEY z_&atL=IA_hjTz!_IER1i@r8UYH29>xSJ%$6_DssS~?1Zr7{5w%7FpUhMEd7X$4~;=3o7oT2EY!kkc*SsH#w z|H(NL?*c<}*=%-UF6&poS-%3#wkqIkvjWbB&v)ri1)TLO;MP6VSIVn2ef&o{_&=EQ zkazuCI11~!l!|{unfL=uh6(8o;r4s#{VVTvTJSmYJDPJZPVIaY#j%Jgcz=eLLFi#zvSCva7WU!-uITv1D zpiUh86iHmLVNzdaA2@=33>!awxvl7{e9OQVNE%X#8dT9Jn0^}qK#9o_!1k87 zNTdC{CMFmu(U%2$z**%U6IBxQp$JJQ$?$?4$Gbji)EawCt+X)()Owi$oC?pds*yPq@MgGfujYaFWLsG{5g$UK>CaZJ3s=H?gG*fFp3YMvHN!mH;+vI ZdQS#c!HFSlQrB-oSVgBQR?|)Oz+eB}o6i6M literal 0 HcmV?d00001 diff --git a/netcrypt/netcrypt.sln b/netcrypt/netcrypt.sln index be6cfcf..94c430a 100644 --- a/netcrypt/netcrypt.sln +++ b/netcrypt/netcrypt.sln @@ -1,24 +1,24 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2012 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "stub", "stub\stub.csproj", "{B1FA79EA-6C5A-422F-BD84-C7F96AEFFCA9}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "netcrypt", "netcrypt\netcrypt.csproj", "{6D18501B-2516-4FC3-816E-775D71AB923A}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimplePacker", "SimplePacker\SimplePacker.csproj", "{4E860FED-781B-4060-865E-54594C9BEAC3}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B1FA79EA-6C5A-422F-BD84-C7F96AEFFCA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B1FA79EA-6C5A-422F-BD84-C7F96AEFFCA9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B1FA79EA-6C5A-422F-BD84-C7F96AEFFCA9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B1FA79EA-6C5A-422F-BD84-C7F96AEFFCA9}.Release|Any CPU.Build.0 = Release|Any CPU {6D18501B-2516-4FC3-816E-775D71AB923A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6D18501B-2516-4FC3-816E-775D71AB923A}.Debug|Any CPU.Build.0 = Debug|Any CPU {6D18501B-2516-4FC3-816E-775D71AB923A}.Release|Any CPU.ActiveCfg = Release|Any CPU {6D18501B-2516-4FC3-816E-775D71AB923A}.Release|Any CPU.Build.0 = Release|Any CPU + {4E860FED-781B-4060-865E-54594C9BEAC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4E860FED-781B-4060-865E-54594C9BEAC3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4E860FED-781B-4060-865E-54594C9BEAC3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4E860FED-781B-4060-865E-54594C9BEAC3}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/netcrypt/netcrypt.v11.suo b/netcrypt/netcrypt.v11.suo index 7132a76f7a23e45669b56979e13aff0449ad5bd8..fd0a9b1e5c9a5d602c4f9b866568b10ebbc75656 100644 GIT binary patch delta 6572 zcmeHLdu)@}75}au!6Y_>1W3SnnKvaiUmVAI0L6)&@XE7ESFvS4NMZ`))x_qNP`fIE zJ}6CmCaqc#qK&pPm9c@@O1E}+gh`Adx=w1PZCy2{ZGUV`-6WU_D`da(*Y}hS3+>eOi^u4yrp~BCGX=olQF>z19MMjGZLMBRV75P+^GMbh zO>Jlx0WMQW=rWp_%oFlZ=pdPZqp z{c(Mz^sa6;eUzF?27R86XQh1oQr$PeLLK_d%+?q$Yw3;E`|uoUkR7}5^aI-f9vNS_ zJ%Ik*z~evw2m-f^CV%^>UE*@w{XOUil1cfq7_y=U!PU@I|b|ZpKQ*gI$rA#yiZr&mO@Z!XBaWu{ZF-*c5C6 zEST1$TBG|qkSf>Yqm!9!crFHHpa5XcEd(4u5#R)hff7I!z9g>xAnMEMnr?m`Q&*$4 z2B-#VfLeh2>+vMll$Dg1Jhk*uG&TcUVnooD(uH>SZGBAOjbrb+In=NyWW1u+p{}QE z#{MLp>b+vxW!mM@qPhU!@duI&~wOnpBg5w37?&`RD^QedcooN)}%RgCNUd5%7Irkd=4GQXlKqs zQ52PAap*Up@1oM@j7irS=b?{}k-D^Oj%+6ZwKPk8Qm@o1HKQX$!oE0#Pa8WL3cWN^ zG~u6aK8q5q7%3G8sNCGXr4e4@RK(uXl#$%kF|n)KbnPiJ{wGrWEDJIkvJf9&5+^=ErRX&xP) zcGV(c8Tr!!Vkuos!$reKV~kQp{&ego2R&W|&%*neQi_HFK%voAe-blX7PPBvl}TdX z$Ocqqy3$s!<4B}R)#swIk9M}NCbw}}Xu(PY2UwL|w32^8K-AII1+^wI9~2I~DwTW- z>vbHmRAEW0(C`bo-oES8UFAB4%%bUOwnS^Lqq7=WBv|Rhv6X&`r`H+tFnPSArznn& zP81s5>M@B)sPP@5E%Ib(^@odZg8rtSp{7;5n7cxR3`928l5 z|Geh8@Y)oPd}A6!^?4hMaaiMbW-#`=Fu-dk(lvB9->UDMj? z7ymZ$EgYv66^-sj7^b|ukZc}%W#U~*M2W_m9z>sR+`qr?Na_C_y>5Fo!1=^>#H%hu zs2zY>c-PEmbW0n--z<4R+lbqE6Y7cQh{|A@<&d~jawGmdtcV;x58vj>)uPbx=K04%lO%n4XnaXrso>rAfo{Xpem+Rm-cjNUiA7x@lCqy;_@x z`X3Hum>MC;haVek6ZLP;HSx7GCM$eH)(Y)Iw|0uplzt<#)3b}`)2qo)P@rQk0_jkD|MqB`ga=W7{p zro)nLs%q3yJpY9Km_}>{*XvW-mD{NsJJbp3U6PL;+c7tM%<&r`yv&f&3(-+KZc<1= z=SP~v>&j+>vIqH~cQ2&&#Eh-nlQdK`5|+z)W0Nl*H#yX7!`^i$S9l|a^Io+>HJjpg ze38bh+VUXwWcLRYT&9a^TNtP9m@K|kZkH9uN01^Elhq_JnPR@EUem_ON;rn)hW9Kp zYRt`_xcj5$Pmj2VB~zX? zJ8*kQV6!sJ^_iX1=Z<`cDx8(Ow3301=ZA;jJz)HnWF|Vh8Yv;^fI+k=$I?$PRc6p% ztY#{&n-}tIVCSY&bJK9PAkG_XF$wz5Xk1T|zW z4xNvXYi?xNek3VuKlz@ZGhI1#KHS-ynY3~yAMCA;M1uGhN_271uLCk&4x~}qsi`w${sfPpiNEQ;XC6Id8+Rgk7^>+Vk)rxzh9+}?QO{?EqXs>T+ z-P+#U9N(Y|Zh13BEU>lq4Gi>`JKe<&M|p`=u5^@J9aV0pwWP#ZZk3%5 zdr6^O_0mEts-^raXqYO45u{?vf&jg`;b zHPMT0GaFQc(}!a{IiUh-vGaEJZ@<`5vSdgQ?pUtJej?7d-9KYY( s`m&~kxKLga8P3kT73Iz?K5^bJQsP1(1>XvWF1o_Oh)WZ8U37{60^&C%9{>OV delta 3811 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 delta 1565 zcmX|BTWl0n82--eT=p_M<;=p;+m`7r(50odh(s!KOIK;raxEngB(Sif7T6B%7D6Sk zYbpka5Y{6mnkYQrtq5tdN_aBSfEpD70TXzD@F2t&C77rPhWO8Hb&~o1@B44_pP4hK z*jr2;JrFOxwP6*;uiKCsLo5W;l0&UHFLjhg*BHePpvQGA0xtVXjS+nlpp)*J3)G7% zv6*5WO9pDlW6@nJ4zU(iFV3=O^6C*mE%T5E?WRxIG@hO#f z#U?dcQ$*!z&Ijz!9LuXvb5*4L|0{ajjzC4_3yqW#(YWT&bis%}pKwip2PQjHiNPh) zDkRrRb^&#Sw!a{u1C2}Yie=x!#wPY z$1M7oMXKiVs#XnLj~KVYm`JEi_YA;|W;VfnbsAgN&op|AtU*f7q!!K1WW_nTKHly= z@iEi=t#RZ!X}rs{ZYep7+|H8(`Pt%6xx2PNk$n;%J5P}_*aDU2bFW^pPWefCpqJa# z-z4!|$Sl7cxG9N#eSsL&Hwb@t>im=pB=!MgWKYt5N%Rfn1_ocsyXC8C8@)|7(cgz( zh`Zw^mh^Y0$UY!_Kn#SNSgR<7BW#ZNFnpn)%RN37HS#q=%j5GszFuBNFME%?RSx1K z`3T`z53hPSO*tZ~Sgx#ODzb`O`=;XNzvKB&D`zAX-zz^8{y}~f54~uQI!6s6LrCLP zcA;QZ^SXYdPY%3Mod&0Udd*WKk32M$ zg$S@Y%0bkywTeI^+pWAy9bQvT5SEma2zVVjsP-Zjvvh%4bbE~gxTDmtl}uNs5H_fS zB55QUM~gb2r75S2&A=(PoVB3^7YS$M1mOr?l-e*4H;IR^mN4S^>u`p60^bs@M~rgz zU;|;F=jrrt8=97oE05Jux7T_L@@yj8f^F<7wqOtO&(O~1vXuCk@05nsa)Wu_Cz_%w z#ery>I3HaQ&)6v^yCUc88pzl=bay%#yVJ?;7}!p#GiRrVZ1Gprny|zkv~wi72bbDe zCpRpvPi_^Hs+0c3`MjOoynR?aTfMM6Qf)ACw5ByYX$7sF#(+&9M(DL`P2l(szh8g# zVQuPzQ-kMT5MQ4WL$w5sN8)ziLUrAm6E2l3^GMKEsd2Bynd-J?(^Nr0791ZLM6Sfbi delta 35 rcmZorXi%8Y!F02CW7jiwfw^Ws{}%hdb(tRW$)|MBjK0kc91ZLME=Umf diff --git a/netcrypt/netcrypt/obj/Debug/netcrypt.Properties.Resources.resources b/netcrypt/netcrypt/obj/Debug/netcrypt.Properties.Resources.resources index 5dc2a03b7c4c62814801d9bbd5ac036efb3a7f9a..f728092ecea105f4ae8639a81214d089520fb55b 100644 GIT binary patch delta 107 zcmX@Zx0-*#C8q1V8?U@$n%v4PDIbuSl9HL1u3)PGW%=f(r0RJF`x_b<8kt#7KENij z`5Nv=x+M@?!FofDE9Zo^NV#abkMv<{9 delta 34 mcmbQrK9zk#0uv+S=0qk%M&TE;|9<{A{Xz$$ATI+1a039$#R?(- diff --git a/netcrypt/netcrypt/obj/Debug/netcrypt.dll b/netcrypt/netcrypt/obj/Debug/netcrypt.dll index 15f63ab37ffb8bb621bf8159a0b953a931257821..0e65581a6ad1372bee97cecc102ee42b15070366 100644 GIT binary patch delta 2315 zcmZuze{37&8GgU>{jeSToX_XjNfU=_Tw163K|?!6(~vezx)RYgA?Z(1mYVnoZXI9h zbD^OOyF^TFrFMjmKSqbtL19A$3SBm|{V@g`m8J=8L2AVi6I<0y(^P5QB%}#V3VZJC zX!~Pl-}^o9^FH7Ey?3AA^Hqi_JDxk$_Jh|S9;4dvCz4jyu{xqw5NehDZQuN*z4}vq zL?bS-g=or&4zP5f1&oQaRh(fR%oOjkHEfmmoTcu>eD}B? zr$h?*JBa$~iI~R{?N1TCts&1^wRxRF{gT)#?I^3wb`w#MxUAYM01{3!tf6p4ic9Bm zHkLzBv6HnCWxL||;kbPV;A$@0CdPCeCJf!mYP>q8HC&^ia<%9qn$hew1U)wb*YCRJ zs*e(80=2M|MxjANb5^;7-?`Hr0z6Rcg2-MCkGN*9aao|CVZ@DC$2YmbW9N-J;&pZ! zq2dFsxE-h~zDzx|OvRUQ=i+2E@P=|%D-YOfp<7lRg({6(7qmNJRuhjU_8T!CH6q zS6?afguULChlz*n4M6tSVB+Tuo$K~JfY;8VI%Y(;&LeRi!Ipg8)z>3jz1O;ZuS;+c z8v%&dyQ(FItMsbXh)0a*=V6M$YOB40h)3PD_1JQvkJ!|DNyG1iwMyw;~7q^I=l+v3)+go6q0TGvnSA2lT(-M(vZv`3bAQjo&;|(z@Uza`! zFN`XGm&7l%raMM6*=(*bW!`7j&`vvRbq|k^^sMW-`<_h;{r=lhy_w#2eA1dJ$+9p2k8&;hq6jO#bpjCy^2cb6nEAIWf!*PkIIM8+=f-D zTXp%Js>@HPF7vp0SyD-;e};Vzyh^{)y>LuhQiIf`Er|=^ZTG*4mLd9fV}>|-{KuX* zSM%QYJmJ4eNyI{EA|m1cl-l5>YTjRH4ZO~j=+rNj|K*#YD-@G0`jj$sm~POpTml}E zIq-yMXXK~o13D(}2J;)iY1lft2*&XEX8IC1MN#k%(POYD=ylj}j~Vpr z5qchsLl>lBFY_ebWD{(XK4Y!0w}5Zb2{y;R!+gZVSCOOAR&AkJ|4(1ye|mu&t29yb z#Urt?;5TxGOnz(Lo;)Hh$2Noq9LJh|BtJ_#>`YeNh;1%U&*bt}aWqrROj{+Z=y(|h z?J7Oub&*5M({@2b+pW@=^{7>}3X@j07Rgx-O<`$IFlZM_nOwo4@mZ&2O?MC4`Mfph z_M_81K4VShGWpz-R+iib+gF(SZ`e!me{&<{WTr#|*({A_N{_iU?6#(7s`ywgOS`Nm zw!7nQyV|y**w7WuT0{2qXwiN=m$i!GrG^f%*wC*H<(wJYu@=Jd2ouRf=ScD{Dq(+% zG({FrFFipyDgYnHNs)1y#kQ1yrwNbkhMkB`LT!V!=}|<$2D&Lrd3-1!_9ph%A4$)( zv#~d}%-{Omi`$ehu88*&6J^C@j9aov(OkgvvFOogjvv#2l8WE2no=;xXBAV@bzLJC zt(;6Ms!7Rc<*d&nT{fAdE0|lESIE_X@auS3@yd&Ma)8i-rWCEb9Ic#AR)r_4(_h2% zAeQO%yX$Pw8l!t4j%K3MIu?mmo^@wn6?{Qp{%g?bNyX*-64EDiakg<^=x4n0bIp{P zJ4^hdv6Wq2h&1)G&gEAW2@j1H{1Y6)JI5jX=Z}pKjmIiWf9t(@ap09_PQUZ+^^eO7 t$5;57{%Y-Y!+p%W*C)<3H!B_^E;VN_nkHM&TmJ21eGA;Y&F0r>{{a!3=Z63Q delta 1565 zcmX|BTWl0n82--eT=p_M<;=p;+m`7r(50odh(s!KOIK;raxEngB(Sif7T6B%7D6Sk zYbpka5Y{6mnkYQrtq5tdN_aBSfEpD70TXzD@F2t&C77rPhWO8Hb&~o1@B44_pP4hK z*jr2;JrFOxwP6*;uiKCsLo5W;l0&UHFLjhg*BHePpvQGA0xtVXjS+nlpp)*J3)G7% zv6*5WO9pDlW6@nJ4zU(iFV3=O^6C*mE%T5E?WRxIG@hO#f z#U?dcQ$*!z&Ijz!9LuXvb5*4L|0{ajjzC4_3yqW#(YWT&bis%}pKwip2PQjHiNPh) zDkRrRb^&#Sw!a{u1C2}Yie=x!#wPY z$1M7oMXKiVs#XnLj~KVYm`JEi_YA;|W;VfnbsAgN&op|AtU*f7q!!K1WW_nTKHly= z@iEi=t#RZ!X}rs{ZYep7+|H8(`Pt%6xx2PNk$n;%J5P}_*aDU2bFW^pPWefCpqJa# z-z4!|$Sl7cxG9N#eSsL&Hwb@t>im=pB=!MgWKYt5N%Rfn1_ocsyXC8C8@)|7(cgz( zh`Zw^mh^Y0$UY!_Kn#SNSgR<7BW#ZNFnpn)%RN37HS#q=%j5GszFuBNFME%?RSx1K z`3T`z53hPSO*tZ~Sgx#ODzb`O`=;XNzvKB&D`zAX-zz^8{y}~f54~uQI!6s6LrCLP zcA;QZ^SXYdPY%3Mod&0Udd*WKk32M$ zg$S@Y%0bkywTeI^+pWAy9bQvT5SEma2zVVjsP-Zjvvh%4bbE~gxTDmtl}uNs5H_fS zB55QUM~gb2r75S2&A=(PoVB3^7YS$M1mOr?l-e*4H;IR^mN4S^>u`p60^bs@M~rgz zU;|;F=jrrt8=97oE05Jux7T_L@@yj8f^F<7wqOtO&(O~1vXuCk@05nsa)Wu_Cz_%w z#ery>I3HaQ&)6v^yCUc88pzl=bay%#yVJ?;7}!p#GiRrVZ1Gprny|zkv~wi72bbDe zCpRpvPi_^Hs+0c3`MjOoynR?aTfMM6Qf)ACw5ByYX$7sF#(+&9M(DL`P2l(szh8g# zVQuPzQ-kMT5MQ4WL$w5sN8)ziLUrAm6E2l3^GM