Commit 4f27d0a0 authored by Suresh Kadagala's avatar Suresh Kadagala

Inital Commit

parents
Pipeline #12 failed with stages
10
dir
2840
file:///%5Cadsdc01/Repositories/Opal/Supra%202.0/DecryptClaims
file:///%5Cadsdc01/Repositories/Opal
2009-04-30T20:22:48.029745Z
1835
aheagy
d43380b4-9f89-f34e-a9d1-96296dc15dae
0
DecryptClaims
dir
Crypto.sln
file
1808
2009-04-27T16:06:41.290244Z
c6bc79af8d90a9bf94fe0b417ab8cb17
2009-04-27T16:06:42.477752Z
1808
aheagy
1060

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Crypto", "DecryptClaims\Crypto.csproj", "{B088C7A4-DEC7-4E9B-AC65-8584666A46ED}"
EndProject
Global
GlobalSection(SubversionScc) = preSolution
Svn-Managed = True
Manager = AnkhSVN - Subversion Support for Visual Studio
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B088C7A4-DEC7-4E9B-AC65-8584666A46ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B088C7A4-DEC7-4E9B-AC65-8584666A46ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B088C7A4-DEC7-4E9B-AC65-8584666A46ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B088C7A4-DEC7-4E9B-AC65-8584666A46ED}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Crypto", "DecryptClaims\Crypto.csproj", "{B088C7A4-DEC7-4E9B-AC65-8584666A46ED}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B088C7A4-DEC7-4E9B-AC65-8584666A46ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B088C7A4-DEC7-4E9B-AC65-8584666A46ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B088C7A4-DEC7-4E9B-AC65-8584666A46ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B088C7A4-DEC7-4E9B-AC65-8584666A46ED}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(SubversionScc) = preSolution
Svn-Managed = True
Manager = AnkhSVN - Subversion Support for Visual Studio
EndGlobalSection
EndGlobal
File added
10
dir
2840
file:///%5Cadsdc01/Repositories/Opal/Supra%202.0/DecryptClaims/DecryptClaims
file:///%5Cadsdc01/Repositories/Opal
2009-04-30T20:22:48.029745Z
1835
aheagy
d43380b4-9f89-f34e-a9d1-96296dc15dae
0
Crypto.csproj
file
1809
2009-04-27T16:07:13.431075Z
8bf343900ca3b48ce5f767c40b06d4ba
2009-04-27T16:07:17.118599Z
1809
aheagy
3699
decrypt.ico
file
1657
2009-04-02T21:25:50.416740Z
0b0214e2558d6c0c6bfad92121028b32
2009-04-02T21:26:36.208408Z
1657
aheagy
has-props
9662
GUI.resx
file
1833
2009-04-30T20:22:35.342570Z
792fd9a557f9d0a0fb51946f175dc533
2009-04-30T20:12:53.255907Z
1833
aheagy
21399
GUI.Designer.cs
file
1835
2009-04-30T20:22:35.295696Z
e078e79e99a03b1af150ac4bb97bc4d6
2009-04-30T20:22:48.029745Z
1835
aheagy
5160
GUI.cs
file
1835
2009-04-30T20:22:35.264447Z
62d8c450a737500e8cc9819779e41d50
2009-04-30T20:22:48.029745Z
1835
aheagy
14589
Program.cs
file
1656
2009-04-02T21:20:42.515310Z
18bd2f751c5459c7828476fb6d97e002
2009-04-02T21:21:28.057602Z
1656
aheagy
457
Properties
dir
K 13
svn:mime-type
V 24
application/octet-stream
END
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{B088C7A4-DEC7-4E9B-AC65-8584666A46ED}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Decrypt</RootNamespace>
<AssemblyName>Crypto</AssemblyName>
<SccProjectName>Svn</SccProjectName>
<SccLocalPath>Svn</SccLocalPath>
<SccAuxPath>Svn</SccAuxPath>
<SccProvider>SubversionScc</SccProvider>
<ApplicationIcon>decrypt.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="GUI.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="GUI.Designer.cs">
<DependentUpon>GUI.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="GUI.resx">
<SubType>Designer</SubType>
<DependentUpon>GUI.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<Content Include="decrypt.ico" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<PropertyGroup>
<PostBuildEvent>copy /Y "C:\Projects\DecryptClaims\DecryptClaims\bin\Debug\Crypto.exe" "C:\Share\Crypto.exe"</PostBuildEvent>
</PropertyGroup>
</Project>
\ No newline at end of file
namespace Decrypt {
partial class GUI {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.components = new System.ComponentModel.Container();
System.Windows.Forms.NotifyIcon NotificationIcon;
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(GUI));
System.Windows.Forms.Label label1;
this.Menu = new System.Windows.Forms.ContextMenuStrip(this.components);
this.ShowMenu = new System.Windows.Forms.ToolStripMenuItem();
this.HideMenu = new System.Windows.Forms.ToolStripMenuItem();
this.ExistMenu = new System.Windows.Forms.ToolStripMenuItem();
NotificationIcon = new System.Windows.Forms.NotifyIcon(this.components);
label1 = new System.Windows.Forms.Label();
this.Menu.SuspendLayout();
this.SuspendLayout();
//
// NotificationIcon
//
NotificationIcon.ContextMenuStrip = this.Menu;
NotificationIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("NotificationIcon.Icon")));
NotificationIcon.Visible = true;
NotificationIcon.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.NotificationIcon_MouseDoubleClick);
//
// Menu
//
this.Menu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ShowMenu,
this.HideMenu,
this.ExistMenu});
this.Menu.Name = "Menu";
this.Menu.Size = new System.Drawing.Size(122, 70);
//
// ShowMenu
//
this.ShowMenu.Name = "ShowMenu";
this.ShowMenu.Size = new System.Drawing.Size(121, 22);
this.ShowMenu.Text = "Show";
this.ShowMenu.Click += new System.EventHandler(this.ShowMenu_Click);
//
// HideMenu
//
this.HideMenu.Name = "HideMenu";
this.HideMenu.Size = new System.Drawing.Size(121, 22);
this.HideMenu.Text = "Hide";
this.HideMenu.Click += new System.EventHandler(this.HideMenu_Click);
//
// ExistMenu
//
this.ExistMenu.Name = "ExistMenu";
this.ExistMenu.Size = new System.Drawing.Size(121, 22);
this.ExistMenu.Text = "Exit";
this.ExistMenu.Click += new System.EventHandler(this.ExistMenu_Click);
//
// label1
//
label1.Dock = System.Windows.Forms.DockStyle.Fill;
label1.Location = new System.Drawing.Point(0, 0);
label1.Name = "label1";
label1.Size = new System.Drawing.Size(119, 52);
label1.TabIndex = 2;
label1.Text = "Drag Files Here\r\n\r\n\'.enc\' files are decryted\r\n\'.dat\' files are encrypted";
//
// GUI
//
this.AllowDrop = true;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(119, 52);
this.Controls.Add(label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "GUI";
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.Text = "Crypto";
this.DragDrop += new System.Windows.Forms.DragEventHandler(this.GUI_DragDrop);
this.DragEnter += new System.Windows.Forms.DragEventHandler(this.GUI_DragEnter);
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.GUI_FormClosing);
this.Menu.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.ContextMenuStrip Menu;
private System.Windows.Forms.ToolStripMenuItem ShowMenu;
private System.Windows.Forms.ToolStripMenuItem HideMenu;
private System.Windows.Forms.ToolStripMenuItem ExistMenu;
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Security.Cryptography;
namespace Decrypt {
public partial class GUI : Form {
private bool _Exit = false;
public GUI() {
InitializeComponent();
}
private void GUI_DragEnter(object sender, DragEventArgs e) {
object tmp = e.Data.GetData(System.Windows.Forms.DataFormats.FileDrop);
if (tmp == null) { e.Effect = DragDropEffects.None; return; }
string[] files = (string[])Convert.ChangeType(tmp, typeof(string[]));
foreach (string file in files) {
if (!File.Exists(file)) { continue; }
FileInfo fi = new FileInfo(file);
if (fi.Extension.ToLower() != ".enc" && fi.Extension.ToLower() != ".dat") { continue; }
e.Effect = DragDropEffects.Copy;
return;
}
e.Effect = DragDropEffects.None;
}
private void GUI_DragDrop(object sender, DragEventArgs e) {
if (e.Effect == DragDropEffects.None) { return; }
object tmp = e.Data.GetData(System.Windows.Forms.DataFormats.FileDrop);
if (tmp == null) { return; }
string[] files = (string[])Convert.ChangeType(tmp, typeof(string[]));
foreach (string file in files) {
if (!File.Exists(file)) { continue; }
FileInfo fi = new FileInfo(file);
string oldExtension = fi.Extension.ToLower();
string newExtension = string.Empty;
if (oldExtension == ".enc") { newExtension = ".dat"; }
if (oldExtension == ".dat") { newExtension = ".enc"; }
string outFile = fi.FullName.Remove(fi.FullName.Length - fi.Extension.Length) + newExtension.Trim().ToLower();
if (File.Exists(outFile)) {
this.TopMost = true;
DialogResult result = MessageBox.Show("Output file ["+outFile+"] already exists, delete?", "File exists", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
this.TopMost = false;
if (result == DialogResult.No) { continue; }
try {
File.Delete(outFile);
} catch (Exception ex) {
MessageBox.Show("Unable to delete file [" + outFile + "] because [" + ex.Message + "]!");
continue;
}
}
if (oldExtension == ".enc") {
CrypHelper.DecryptFile(fi.FullName, outFile, fi.Name.Remove(fi.Name.Length - fi.Extension.Length));
} else if (oldExtension == ".dat") {
CrypHelper.EncryptFile(fi.FullName, outFile, fi.Name.Remove(fi.Name.Length - fi.Extension.Length));
}
}
}
private void GUI_FormClosing(object sender, FormClosingEventArgs e) {
if (!_Exit) { e.Cancel = true; }
this.Hide();
}
private void NotificationIcon_MouseDoubleClick(object sender, MouseEventArgs e) {
if (this.Visible == false) {
this.TopMost = true;
this.Show();
this.TopMost = false;
} else {
this.TopMost = true;
this.Activate();
this.TopMost = false;
}
}
private void ShowMenu_Click(object sender, EventArgs e) {
this.TopMost = true;
this.Show();
this.TopMost = false;
}
private void HideMenu_Click(object sender, EventArgs e) {
this.Hide();
}
private void ExistMenu_Click(object sender, EventArgs e) {
_Exit = true;
this.Close();
}
}
#region Encription Methods
/// <summary>
/// This is the exception class that is thrown throughout the Decryption process
/// </summary>
public class CryptoHelpException : ApplicationException {
public CryptoHelpException(string msg) : base(msg) { }
}
/// <summary>
/// Summary description for CryptoHelp.
/// </summary>
public class CrypHelper {
/// <summary>
/// Tag to make sure this file is readable/decryptable by this class
/// </summary>
private const ulong FC_TAG = 0xFC010203040506CF;
/// <summary>
/// The amount of bytes to read from the file
/// </summary>
private const int BUFFER_SIZE = 128 * 1024;
/// <summary>
/// Checks to see if two byte array are equal
/// </summary>
/// <param name="b1">the first byte array</param>
/// <param name="b2">the second byte array</param>
/// <returns>true if b1.Length == b2.Length and each byte in b1 is
/// equal to the corresponding byte in b2</returns>
private static bool CheckByteArrays(byte[] b1, byte[] b2) {
if (b1.Length == b2.Length) {
for (int i = 0; i < b1.Length; ++i) {
if (b1[i] != b2[i])
return false;
}
return true;
}
return false;
}
/// <summary>
/// Creates a Rijndael SymmetricAlgorithm for use in EncryptFile and DecryptFile
/// </summary>
/// <param name="password">the string to use as the password</param>
/// <param name="salt">the salt to use with the password</param>
/// <returns>A SymmetricAlgorithm for encrypting/decrypting with Rijndael</returns>
private static SymmetricAlgorithm CreateRijndael(string password, byte[] salt) {
PasswordDeriveBytes pdb = new PasswordDeriveBytes(password, salt, "SHA256", 1000);
SymmetricAlgorithm sma = Rijndael.Create();
sma.KeySize = 256;
sma.Key = pdb.GetBytes(32);
sma.Padding = PaddingMode.PKCS7;
return sma;
}
/// <summary>
/// Crypto Random number generator for use in EncryptFile
/// </summary>
private static RandomNumberGenerator rand = new RNGCryptoServiceProvider();
/// <summary>
/// Generates a specified amount of random bytes
/// </summary>
/// <param name="count">the number of bytes to return</param>
/// <returns>a byte array of count size filled with random bytes</returns>
private static byte[] GenerateRandomBytes(int count) {
byte[] bytes = new byte[count];
rand.GetBytes(bytes);
return bytes;
}
/// <summary>
/// This takes an input file and encrypts it into the output file
/// </summary>
/// <param name="inFile">the file to encrypt</param>
/// <param name="outFile">the file to write the encrypted data to</param>
/// <param name="password">the password for use as the key</param>
/// <param name="callback">the method to call to notify of progress</param>
public static void EncryptFile(FileStream fin, FileStream fout, string password) {
long lSize = fin.Length; // the size of the input file for storing
int size = (int)lSize; // the size of the input file for progress
byte[] bytes = new byte[BUFFER_SIZE]; // the buffer
int read = -1; // the amount of bytes read from the input file
int value = 0; // the amount overall read from the input file for progress
// generate IV and Salt
byte[] IV = GenerateRandomBytes(16);
byte[] salt = GenerateRandomBytes(16);
// create the crypting object
SymmetricAlgorithm sma = CrypHelper.CreateRijndael(password, salt);
sma.IV = IV;
// write the IV and salt to the beginning of the file
fout.Write(IV, 0, IV.Length);
fout.Write(salt, 0, salt.Length);
// create the hashing and crypto streams
HashAlgorithm hasher = SHA256.Create();
using (CryptoStream cout = new CryptoStream(fout, sma.CreateEncryptor(), CryptoStreamMode.Write),
chash = new CryptoStream(Stream.Null, hasher, CryptoStreamMode.Write)) {
// write the size of the file to the output file
BinaryWriter bw = new BinaryWriter(cout);
bw.Write(lSize);
// write the file cryptor tag to the file
bw.Write(FC_TAG);
// read and the write the bytes to the crypto stream in BUFFER_SIZEd chunks
while ((read = fin.Read(bytes, 0, bytes.Length)) != 0) {
cout.Write(bytes, 0, read);
chash.Write(bytes, 0, read);
value += read;
//callback(0, size, value);
}
// flush and close the hashing object
chash.Flush();
chash.Close();
// read the hash
byte[] hash = hasher.Hash;
// write the hash to the end of the file
cout.Write(hash, 0, hash.Length);
// flush and close the cryptostream
cout.Flush();
cout.Close();
}
}
public static void EncryptFile(string inFile, string outFile, string password) {
using (FileStream fin = File.OpenRead(inFile), fout = File.OpenWrite(outFile)) {
EncryptFile(fin, fout, password);
}
}
/// <summary>
/// takes an input file and decrypts it to the output file
/// </summary>
/// <param name="inFile">the file to decrypt</param>
/// <param name="outFile">the to write the decrypted data to</param>
/// <param name="password">the password used as the key</param>
/// <param name="callback">the method to call to notify of progress</param>
public static void DecryptFile(string inFile, string outFile, string password) {
// NOTE: The encrypting algo was so much easier...
// create and open the file streams
using (FileStream fin = File.OpenRead(inFile),
fout = File.OpenWrite(outFile)) {
int size = (int)fin.Length; // the size of the file for progress notification
byte[] bytes = new byte[BUFFER_SIZE]; // byte buffer
int read = -1; // the amount of bytes read from the stream
int value = 0;
int outValue = 0; // the amount of bytes written out
// read off the IV and Salt
byte[] IV = new byte[16];
fin.Read(IV, 0, 16);
byte[] salt = new byte[16];
fin.Read(salt, 0, 16);
// create the crypting stream
SymmetricAlgorithm sma = CrypHelper.CreateRijndael(password, salt);
sma.IV = IV;
value = 32; // the value for the progress
long lSize = -1; // the size stored in the input stream
// create the hashing object, so that we can verify the file
HashAlgorithm hasher = SHA256.Create();
// create the cryptostreams that will process the file
using (CryptoStream cin = new CryptoStream(fin, sma.CreateDecryptor(), CryptoStreamMode.Read),
chash = new CryptoStream(Stream.Null, hasher, CryptoStreamMode.Write)) {
// read size from file
BinaryReader br = new BinaryReader(cin);
lSize = br.ReadInt64();
ulong tag = br.ReadUInt64();
if (FC_TAG != tag)
throw new CryptoHelpException("File Corrupted!");
//determine number of reads to process on the file
long numReads = lSize / BUFFER_SIZE;
// determine what is left of the file, after numReads
long slack = (long)lSize % BUFFER_SIZE;
// read the buffer_sized chunks
for (int i = 0; i < numReads; ++i) {
read = cin.Read(bytes, 0, bytes.Length);
fout.Write(bytes, 0, read);
chash.Write(bytes, 0, read);
value += read;
outValue += read;
//callback(0, size, value);
}
// now read the slack
if (slack > 0) {
read = cin.Read(bytes, 0, (int)slack);
fout.Write(bytes, 0, read);
chash.Write(bytes, 0, read);
value += read;
outValue += read;
//callback(0, size, value);
}
// flush and close the hashing stream
chash.Flush();
chash.Close();
// flush and close the output file
fout.Flush();
fout.Close();
// read the current hash value
byte[] curHash = hasher.Hash;
// get and compare the current and old hash values
byte[] oldHash = new byte[hasher.HashSize / 8];
read = cin.Read(oldHash, 0, oldHash.Length);
if ((oldHash.Length != read) || (!CheckByteArrays(oldHash, curHash)))
throw new CryptoHelpException("File Corrupted!");
}
// make sure the written and stored size are equal
if (outValue != lSize)
throw new CryptoHelpException("File Sizes don't match!");
}
}
}
/// <summary>
/// CallBack delegate for progress notification
/// </summary>
public delegate void CryptoProgressCallBack(int min, int max, int value);
#endregion
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="NotificationIcon.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>141, 17</value>
</metadata>
<metadata name="NotificationIcon.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Menu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>285, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="NotificationIcon.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAASLHjIEem00ZFo9B5RKHOikKeyrpBncnJPZrI/0Gfyf8vj8H/SqbR5Emm
0MhKqta2S6nViEqw33JJseNASLDiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AABGos5HSJ/JW0umz5VFn8mqQZzJ0z+bxuo9mMX/N5PA/zeSwP82ksD/N5bG/zaVxf85msv/LpHD/xyD
vP8agbr/MpTG/zyayP85mMf/NpTB/ziTwP82ksD/NZPD/ziWxf85mcn/OJjJ3TqbzM4+oNCtPaLUjjyl
2nxFruEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAFmy17o/msX/P5vG/0Gfy/9CoMz/Q6PQ/0Sk0f9Gp9T/RafV/0So2P9Aptj/P6TW/zui
1f8wmM3/G4O7/2zU+P9jyPD/GYG6/zed0f9Cp9j/QafY/0Oo2P9ApNL/P6LS/zydzP87nMv/N5XF/zWU
xf8xj77/MY29/y6MvP9Bn83WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAF284v9gxeP/TbHe/0yv3f9Jrdz/R6vc/0Sq2/9CqNn/P6bY/z2l
2P88pNf/O6LW/zae1P8agbv/Ycjv/3Tb/f9pzfT/WL3o/xqBu/86odX/PKPX/zui1v86otb/O6LW/zqh
1v88otb/O6LV/z2j1v88otX/PqTW/1G22/9AoM//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGC/5P9dw+P/Sa/e/0it3f9Hrdz/Rqvc/0Sr
2/9Dqdr/Qaja/0Cn2f8/ptj/PaTY/xqCvP9Xvuf/dt39/3bd/f9pzfT/ac30/06z4f8agrz/PaTX/zuj
1/87otb/OaHW/zmg1f84oNX/N5/U/zae1P81ntT/NZ3T/0yz2/9Bo9P/AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPA5f+D6Pr/Zsrz/2TJ
8v9jyPH/Ycbw/1/F7/9ew+7/XMLt/1rA7P9Yvuv/LpXL/0203/933/3/d9/9/5Hl/f980/X/ac30/2nN
9P9Fqtr/LJPL/1G45/9Pt+b/TrXm/0y05f9Ls+T/SrLk/0ix4/9HsOL/Rq/i/2fP7f9Bo9P/AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXC
5/+D6fr/ac30/2fL8/9myvP/ZMny/2PH8f9hxvD/X8Tv/13D7v8/pdf/PaXU/3ng/f963vX/jdjj/8vt
8v/B6O//ec7d/2zO7v9pzfT/N57R/zmg1f9RuOf/T7fm/0615v9MtOX/S7Pk/0qy4/9IseP/R7Di/2jQ
7f9Bo9P/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAGfE6P9gxeT/TrPh/06z4P9NseD/TLHf/0qw3v9Kr97/SK7e/zie0v8vl8v/geD6/53p
/v9nwtz/Hlt3/x5bd/8eW3f/Hlt3/1aw1f9pzfT/Zcnx/yuTyf8xmM//PKTX/zui1v86otb/OaHW/zmg
1f83oNT/N5/U/0y03P9CpNP/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGnG6f9hxuT/ULXi/0+04f9Os+D/TrLg/0yx4P9Msd//QqjZ/yiQ
yP+G4vv/oOv+/6Dr/v+K5/7/Hlt3/x5bd/8eW3f/Hlt3/2TG7P9pzfT/ac30/2XJ8f8mjsb/OJ/U/zyk
1/87otb/OqLW/zmh1v85oNX/N6DU/0213P9DpdT/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGvI6v9hxuX/Urbi/1G14v9QteL/T7Th/06z
4P9KsN7/LJPK/3/a9P+i7P7/ouz+/6Ls/v+T6f7/K22I/x5bd/8eW3f/JGN//2nN9P9pzfT/ac30/2nN
9P9cwev/KpHJ/zui1/88o9f/O6LW/zqi1v85odb/OaDV/0613P9EpdX/AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG3J6/+I7P3/ctT5/3HT
+P9w0/j/btL3/2nM9P80m9D/etDu/6Pt/v+j7f7/o+3+/6Pt/v+b7P7/QImh/x5bd/8eW3f/NXuX/2nN
9P9pzfT/ac30/2nN9P9pzfT/ULbk/y+Xzv9Otub/ULfn/0625v9NteX/TLTl/2rS7/9FptX/AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG7K
7P+I7f3/ddb6/3PV+f9y1Pn/cdP4/0Cn2f9rxuj/pO/+/6Tv/v+k7/7/pO/+/6Tv/v+d7v7/U6W6/x5b
d/8eW3f/R5i2/2nN9P9pzfT/ac30/2nN9P9pzfT/ac30/0qw4P83n9T/Ubjo/1C35/9Otub/TbXl/2vT
7/9Gp9b/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAHDM7f9jyOb/V7nk/1W55P9UuOT/PqXX/4rP6v+08/7/pfD+/6Xw/v+l8P7/pfD+/6Xw
/v+l8P7/b8vc/x5bd/8eW3f/WbHO/2nN9P9pzfT/ac30/2nN9P9pzfT/ac30/4LV9v9ZteD/NZ3S/z2k
1/88o9f/O6LW/0+23f9GqNb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHHN7f9jyOf/Wrvl/1m65P9SteL/MprR/6/t+//O9/7/sfP+/6fx
/v+n8f7/p/H+/6fx/v+i9v7/YLTD/x5bd/8eW3f/VKW5/3TZ9v9qzvT/as70/2rO9P9qzvT/f9X2/63k
+f+d3Pb/MprR/zyj1/89pNf/PKPX/1C33f9Iqtf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLO7v9jyOf/Xbzl/1u75f9Zu+X/Sa7d/0+0
4P/B9v7/zfj+/630/v+o8/7/qPP+/6jz/v9mtcP/Hlt3/x5bd/8eW3f/Hlt3/1Okuf9t0fX/bdH1/23R
9f961fb/q+T5/6Pi+f9Ird3/O6LX/z+m2P89pNj/PaTX/1C33v9Jq9j/AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHPP7/+L7v7/hN79/4Hc
/f9/3Pz/fNr8/1G25f9lxej/x/j+/8n3/v+s8/7/qvP+/6rz/v8uboj/Hlt3/x5bd/8eW3f/Hlt3/yVk
f/9x1fb/cdX2/3XW9v+t5/r/ref6/1275f9FrN7/Vr3q/1W86v9Tuun/Urno/27V8f9KrNj/AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHPP
7/+L7///h9/9/4Xe/f+C3v3/gNz9/37c/P9MsuL/id3z/875/v/F+P7/q/X+/6v1/v8eW3f/Hlt3/x5b
d/8eW3f/Hlt3/x5bd/902Pf/eNn3/6fm+v+z6vv/bsru/0Ss3/9Zv+z/WL7r/1a96v9VvOn/U7rp/2/W
8f9Lrdn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAHTP7/9lyef/Y7/n/2K+5/9gvub/X77m/1295v9au+X/Raze/57p+P/R+v7/wvj+/632
/v9Ji6H/Hlt3/x5bd/8eW3f/Hlt3/zR7l/943Pj/puj6/7Xs+/+D1/P/Qand/0Sr2/9Eqtv/Qqja/0Go
2v9Ap9n/P6bY/1K43v9Nrtr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHTP7/9lyef/ZcDn/2TA5/9jv+f/Yb7n/1++5v9eveb/WLnl/0qy
4v+x8Pz/0vv//7v4//+k7fb/QYKZ/x5bd/8eW3f/L3SP/3DP6P+h6fr/t+77/5Lg9/9IsOL/Rqzd/0ar
3P9Eq9v/Q6na/0Ko2v9BqNr/QKfZ/1K53v9Or9v/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHXQ7/9lyuf/Z8Dn/2bA5/9lwOf/Y8Dn/2K+
5/9gvuf/X77m/1i65f9Yvuj/vPf+/9L7//+2+f//r/j//4zj7v9tyeH/f+P5/5np+v+58Pz/oen6/1C4
5v9Hrt//SK3d/0as3P9Gq9z/RKvb/0Op2v9CqNr/Qaja/1K53/9PsNv/AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHXQ7/+N8P//kuP//5Di
//+O4v//jeH+/4vh/v+J4P7/h9/+/4Tf/v9sy/L/YsTq/8X7///R/P//svr//6X5//+D5/r/mOv7/7vy
/P+x8Pz/Vbzn/1m/7P9kyPH/Ysfx/2DG8P9fxO//XcPu/1zC7f9awOz/Wb/s/3LZ8/9RsNz/AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHXQ
7/+N8P//leT//5Pk//+S4///kOL//43i//+M4f7/iuH+/4jf/v+G3/7/YMPu/3DP7v/N/P//zvz//8L8
//+h7/z/uvP9/7Py/P9ix+z/VLvp/2fL8/9lyfL/Y8jx/2LH8P9gxfD/X8Tv/13D7v9cwe3/WsDs/3PZ
8/9Ssd3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAHXQ7/9lyuf/bcLn/2zC5/9qwuf/acHn/2jB5/9mwOf/ZcDn/2TA5/9iv+f/Yb7n/02z
4/+Q5Pb/2P3///z////0/f//vPX9/3jY8/9IsOH/TrLg/0yx4P9Lsd//Sq/e/0mv3v9Irt3/R63c/0as
3P9Fq9z/RKrb/1S74P9Ts93/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHXQ7/9v1Oz/dMvq/23C5/9swuf/a8Ln/2rC5/9pwef/Z8Hn/2XA
5/9lwOf/Y8Dn/1++5/9KseL/tPT7//r////x/v//jOf5/0ev4f9PtOH/TrPg/02y4P9MseD/S7Df/0qv
3v9Jr97/SK7d/0et3P9OtN//Vbvj/1e+4f9UtN7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHnV8fOM8vn/jO73/4zt9/+M7vj/jO74/4fo
9f+C4vP/geLz/4Lj9P962vD/d9bv/3jY8P901O//TLXk/8L5/f+l8fv/TLPj/2fM6/9r0e3/a9Ds/3HX
7/943fL/d93y/3fd8f+F6/f/hev3/4Xq9v+E6vb/hOr2/2LI5v9WtNzVAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH3e/xBz1fimeNn68nze
+v983vr/ctT0/3jb9v963vb/ddrz/3PX8f9+4/X/feH0/3rf8v984fP/euDz/1nA5/9Xv+f/e+H0/4Hm
9f963/L/feL1/3zh9P9v0+//b9Tv/3LX8v9q0O//Y8ns/2fL7/9jye7/Wb7q41S656hcwu4QAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAZmZmHWZmZv+vr6//bISM/2yEjP+Us73/eam6/33e/4B93v+gfd7/wH3e/8B93v/wfN3//3nT
9P9jyPH4ddf6wHPV+sBx1PnAcNL4gG7R94Bs0PaAcZCc/4egqv9mf4n/ZnN4/62trf9mZmb/AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZmZv/r6+v/ZmZm/2ZmZv/Ozs7/gICA/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAJn//xYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICA/7S0tP9mZmb/ZmZm/+jo
6P9mZmb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZmZv/r6+v/ZmZm/2ZmZv/Ozs7/gICA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICA/7S0
tP9mZmb/ZmZm/+jo6P9mZmb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZmZv/r6+v/ZmZm/2Zm
Zv/Ozs7/gICA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAgICA/7S0tP9mZmb/Z2dn/+jo6P9oaGj/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZm
Zv/r6+v/ZmZm/2ZmZv/Ozs7/gICA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAhoaG/7i4uP9vb2//b29v/+rq6v9xcXH/AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAGhoaP/r6+v/aWlp/2pqav/Pz8//hISE/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjY2N/7y8vP93d3f/eHh4/+vr6/95eXn/AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBwcP/t7e3/cXFx/3Jycv/S0tL/i4uL/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlJSU/8DAwP9/f3//gICA/+zs
7P+BgYH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHh4eP/u7u7/enp6/3p6ev/ExMT/kpKS/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmpqa/8TE
xP+Hh4f/lZWV/+3t7f+Kior/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGBgf/v7+//l5eX/4OD
g//CwsL/np6e/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAsLCw/8jIyP+QkJD/qKio/+/v7/+SkpL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAImJ
ieDj4+P/pKSk/4uLi//CwsL/s7Oz/42NjRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACWlpYQurq6/8PDw/+YmJj/r6+v/+Dg4P+ZmZnwAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAJGRkcDZ2dn/t7e3/4aGhv+3t7f/xsbG/5WVlVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZmZlQycnJ/7Kysv+NjY3/v7+//9XV1f+ZmZnAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmZmZDFxcX/y8vL/4GBgf+VlZX/1tbW/5mZmaAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZmZmg2tra/4+Pj/+Dg4P/z8/P/8XF
xf+ZmZmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmZmVCqqqr/5+fn/3h4eP90dHT/0tLS/6am
pv+ZmZlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmZmUCmpqb/0dHR/3Fx
cf95eXn/5eXl/6mpqf+ZmZlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmZmRCZmZnw5+fn/4uL
i/9xcXH/oqKi/76+vv+ZmZnwmZmZMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmZmZMJmZ
mfDDw8P/kpKS/25ubv+IiIj/4ODg/5mZmf+ZmZkQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACZmZmgxcXF/8TExP9tbW3/aWlp/7y8vP+ioqL/mZmZ8JmZmYCZmZkQAAAAAAAAAAAAAAAAAAAAAJmZ
mRCZmZlwmZmZ8KKiov/AwMD/ZmZm/2lpaf+9vb3/tLS0/5mZmaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACZmZkgoKCg/+rq6v+4uLj/ZWVl/3h4eP/ExMT/mZmZ/7Gxsf+tra3/oqKixJmZ
mYCZmZmAmZmZwKenp/+0tLT/pKSk/8HBwf97e3v/ZGRk/4aGhv/IyMj/mZmZ/5mZmSAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmZmZgMXFxf/l5eX/mpqa/2hoaP97e3v/t7e3/52d
nf+np6f/vr6+/8/Pz//Pz8//ycnJ/7S0tP+goKD/ra2t/3t7e/9qamr/f39//7u7u/+ZmZn/mZmZgAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmZmaCvr6//xMTE/2tr
a/9ubm7/dHR0/4mJif+ZmZn/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf+IiIj/dHR0/3Fxcf9ubm7/m5ub/5mZ
mf+ZmZmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACZmZmQmZmZ/5mZmf+Wlpb/oqKi/5GRkf+EhIT/jY2N/5CQkP+Pj4//jY2N/4GBgf+NjY3/mJiY/6ur
q/+hoaH/mZmZ/5mZmZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAmZmZQJmZmeCZmZn/m5ub/7Ozs//Hx8f/3d3d/+vr6//4+Pj/5ubm/9LS
0v/FxcX/pqam/5mZmf+ZmZngmZmZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZmZlAmZmZkJmZmdCZmZn/mZmZ/5mZ
mf+ZmZn/mZmZ/5mZmf+ZmZnQmZmZkJmZmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP//AAD//wAA/4AAAAD/
AAD/AAAAAP8AAP8AAAAA/wAA/wAAAAD/AAD/AAAAAP8AAP8AAAAA/wAA/wAAAAD/AAD/AAAAAP8AAP8A
AAAA/wAA/wAAAAD/AAD/AAAAAP8AAP8AAAAA/wAA/wAAAAD/AAD/AAAAAP8AAP8AAAAA/wAA/wAAAAD/
AAD/AAAAAP8AAP8AAAAA/wAA/wAAAAD/AAD/AAAAAP8AAP8AAAAA/wAA/wAAAAD/AAD/AAAAAP8AAP8A
AAAA/wAA/wAAAAD/AAD/wAAAB/8AAP/gfv4H/wAA/+B//gf/AAD/4H/+B/8AAP/gf/4H/wAA/+B//gf/
AAD/4H/+B/8AAP/gf/4H/wAA/+B//gf/AAD/4D/8B/8AAP/gP/wH/wAA/+A//Af/AAD/4B/4B/8AAP/g
D/AH/wAA//ADwA//AAD/8AAAD/8AAP/4AAAf/wAA//wAAD//AAD//gAAf/8AAP//AAD//wAA///AA///
AAA=
</value>
</data>
<metadata name="label1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
</root>
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace Decrypt {
static class Program {
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new GUI());
}
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{B088C7A4-DEC7-4E9B-AC65-8584666A46ED}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Decrypt</RootNamespace>
<AssemblyName>Crypto</AssemblyName>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
<ApplicationIcon>decrypt.ico</ApplicationIcon>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>2.0</OldToolsVersion>
<UpgradeBackupLocation />
<TargetFrameworkProfile />
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="GUI.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="GUI.Designer.cs">
<DependentUpon>GUI.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="GUI.resx">
<SubType>Designer</SubType>
<DependentUpon>GUI.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="app.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<Content Include="decrypt.ico" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<PropertyGroup>
<PostBuildEvent>copy /Y "C:\Projects\DecryptClaims\DecryptClaims\bin\Debug\Crypto.exe" "C:\Share\Crypto.exe"</PostBuildEvent>
</PropertyGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishUrlHistory />
<InstallUrlHistory />
<SupportUrlHistory />
<UpdateUrlHistory />
<BootstrapperUrlHistory />
<ErrorReportUrlHistory />
<FallbackCulture>en-US</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
</PropertyGroup>
</Project>
\ No newline at end of file
namespace Decrypt {
partial class GUI {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.components = new System.ComponentModel.Container();
System.Windows.Forms.NotifyIcon NotificationIcon;
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(GUI));
System.Windows.Forms.Label label1;
this.Menu = new System.Windows.Forms.ContextMenuStrip(this.components);
this.ShowMenu = new System.Windows.Forms.ToolStripMenuItem();
this.HideMenu = new System.Windows.Forms.ToolStripMenuItem();
this.ExistMenu = new System.Windows.Forms.ToolStripMenuItem();
NotificationIcon = new System.Windows.Forms.NotifyIcon(this.components);
label1 = new System.Windows.Forms.Label();
this.Menu.SuspendLayout();
this.SuspendLayout();
//
// NotificationIcon
//
NotificationIcon.ContextMenuStrip = this.Menu;
NotificationIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("NotificationIcon.Icon")));
NotificationIcon.Visible = true;
NotificationIcon.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.NotificationIcon_MouseDoubleClick);
//
// Menu
//
this.Menu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ShowMenu,
this.HideMenu,
this.ExistMenu});
this.Menu.Name = "Menu";
this.Menu.Size = new System.Drawing.Size(122, 70);
//
// ShowMenu
//
this.ShowMenu.Name = "ShowMenu";
this.ShowMenu.Size = new System.Drawing.Size(121, 22);
this.ShowMenu.Text = "Show";
this.ShowMenu.Click += new System.EventHandler(this.ShowMenu_Click);
//
// HideMenu
//
this.HideMenu.Name = "HideMenu";
this.HideMenu.Size = new System.Drawing.Size(121, 22);
this.HideMenu.Text = "Hide";
this.HideMenu.Click += new System.EventHandler(this.HideMenu_Click);
//
// ExistMenu
//
this.ExistMenu.Name = "ExistMenu";
this.ExistMenu.Size = new System.Drawing.Size(121, 22);
this.ExistMenu.Text = "Exit";
this.ExistMenu.Click += new System.EventHandler(this.ExistMenu_Click);
//
// label1
//
label1.Dock = System.Windows.Forms.DockStyle.Fill;
label1.Location = new System.Drawing.Point(0, 0);
label1.Name = "label1";
label1.Size = new System.Drawing.Size(119, 52);
label1.TabIndex = 2;
label1.Text = "Drag Files Here\r\n\r\n\'.enc\' files are decryted\r\n\'.dat\' files are encrypted";
//
// GUI
//
this.AllowDrop = true;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(119, 52);
this.Controls.Add(label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "GUI";
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.Text = "Crypto";
this.DragDrop += new System.Windows.Forms.DragEventHandler(this.GUI_DragDrop);
this.DragEnter += new System.Windows.Forms.DragEventHandler(this.GUI_DragEnter);
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.GUI_FormClosing);
this.Menu.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.ContextMenuStrip Menu;
private System.Windows.Forms.ToolStripMenuItem ShowMenu;
private System.Windows.Forms.ToolStripMenuItem HideMenu;
private System.Windows.Forms.ToolStripMenuItem ExistMenu;
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Security.Cryptography;
namespace Decrypt {
public partial class GUI : Form {
private bool _Exit = false;
public GUI() {
InitializeComponent();
}
private void GUI_DragEnter(object sender, DragEventArgs e) {
object tmp = e.Data.GetData(System.Windows.Forms.DataFormats.FileDrop);
if (tmp == null) { e.Effect = DragDropEffects.None; return; }
string[] files = (string[])Convert.ChangeType(tmp, typeof(string[]));
foreach (string file in files) {
if (!File.Exists(file)) { continue; }
FileInfo fi = new FileInfo(file);
if (fi.Extension.ToLower() != ".enc" && fi.Extension.ToLower() != ".dat") { continue; }
e.Effect = DragDropEffects.Copy;
return;
}
e.Effect = DragDropEffects.None;
}
private void GUI_DragDrop(object sender, DragEventArgs e) {
if (e.Effect == DragDropEffects.None) { return; }
object tmp = e.Data.GetData(System.Windows.Forms.DataFormats.FileDrop);
if (tmp == null) { return; }
string[] files = (string[])Convert.ChangeType(tmp, typeof(string[]));
foreach (string file in files) {
if (!File.Exists(file)) { continue; }
FileInfo fi = new FileInfo(file);
string oldExtension = fi.Extension.ToLower();
string newExtension = string.Empty;
if (oldExtension == ".enc") { newExtension = ".dat"; }
if (oldExtension == ".dat") { newExtension = ".enc"; }
string outFile = fi.FullName.Remove(fi.FullName.Length - fi.Extension.Length) + newExtension.Trim().ToLower();
if (File.Exists(outFile)) {
this.TopMost = true;
DialogResult result = MessageBox.Show("Output file ["+outFile+"] already exists, delete?", "File exists", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
this.TopMost = false;
if (result == DialogResult.No) { continue; }
try {
File.Delete(outFile);
} catch (Exception ex) {
MessageBox.Show("Unable to delete file [" + outFile + "] because [" + ex.Message + "]!");
continue;
}
}
if (oldExtension == ".enc") {
CrypHelper.DecryptFile(fi.FullName, outFile, fi.Name.Remove(fi.Name.Length - fi.Extension.Length));
} else if (oldExtension == ".dat") {
CrypHelper.EncryptFile(fi.FullName, outFile, fi.Name.Remove(fi.Name.Length - fi.Extension.Length));
}
}
}
private void GUI_FormClosing(object sender, FormClosingEventArgs e) {
if (!_Exit) { e.Cancel = true; }
this.Hide();
}
private void NotificationIcon_MouseDoubleClick(object sender, MouseEventArgs e) {
if (this.Visible == false) {
this.TopMost = true;
this.Show();
this.TopMost = false;
} else {
this.TopMost = true;
this.Activate();
this.TopMost = false;
}
}
private void ShowMenu_Click(object sender, EventArgs e) {
this.TopMost = true;
this.Show();
this.TopMost = false;
}
private void HideMenu_Click(object sender, EventArgs e) {
this.Hide();
}
private void ExistMenu_Click(object sender, EventArgs e) {
_Exit = true;
this.Close();
}
}
#region Encription Methods
/// <summary>
/// This is the exception class that is thrown throughout the Decryption process
/// </summary>
public class CryptoHelpException : ApplicationException {
public CryptoHelpException(string msg) : base(msg) { }
}
/// <summary>
/// Summary description for CryptoHelp.
/// </summary>
public class CrypHelper {
/// <summary>
/// Tag to make sure this file is readable/decryptable by this class
/// </summary>
private const ulong FC_TAG = 0xFC010203040506CF;
/// <summary>
/// The amount of bytes to read from the file
/// </summary>
private const int BUFFER_SIZE = 128 * 1024;
/// <summary>
/// Checks to see if two byte array are equal
/// </summary>
/// <param name="b1">the first byte array</param>
/// <param name="b2">the second byte array</param>
/// <returns>true if b1.Length == b2.Length and each byte in b1 is
/// equal to the corresponding byte in b2</returns>
private static bool CheckByteArrays(byte[] b1, byte[] b2) {
if (b1.Length == b2.Length) {
for (int i = 0; i < b1.Length; ++i) {
if (b1[i] != b2[i])
return false;
}
return true;
}
return false;
}
/// <summary>
/// Creates a Rijndael SymmetricAlgorithm for use in EncryptFile and DecryptFile
/// </summary>
/// <param name="password">the string to use as the password</param>
/// <param name="salt">the salt to use with the password</param>
/// <returns>A SymmetricAlgorithm for encrypting/decrypting with Rijndael</returns>
private static SymmetricAlgorithm CreateRijndael(string password, byte[] salt) {
PasswordDeriveBytes pdb = new PasswordDeriveBytes(password, salt, "SHA256", 1000);
SymmetricAlgorithm sma = Rijndael.Create();
sma.KeySize = 256;
sma.Key = pdb.GetBytes(32);
sma.Padding = PaddingMode.PKCS7;
return sma;
}
/// <summary>
/// Crypto Random number generator for use in EncryptFile
/// </summary>
private static RandomNumberGenerator rand = new RNGCryptoServiceProvider();
/// <summary>
/// Generates a specified amount of random bytes
/// </summary>
/// <param name="count">the number of bytes to return</param>
/// <returns>a byte array of count size filled with random bytes</returns>
private static byte[] GenerateRandomBytes(int count) {
byte[] bytes = new byte[count];
rand.GetBytes(bytes);
return bytes;
}
/// <summary>
/// This takes an input file and encrypts it into the output file
/// </summary>
/// <param name="inFile">the file to encrypt</param>
/// <param name="outFile">the file to write the encrypted data to</param>
/// <param name="password">the password for use as the key</param>
/// <param name="callback">the method to call to notify of progress</param>
public static void EncryptFile(FileStream fin, FileStream fout, string password) {
long lSize = fin.Length; // the size of the input file for storing
int size = (int)lSize; // the size of the input file for progress
byte[] bytes = new byte[BUFFER_SIZE]; // the buffer
int read = -1; // the amount of bytes read from the input file
int value = 0; // the amount overall read from the input file for progress
// generate IV and Salt
byte[] IV = GenerateRandomBytes(16);
byte[] salt = GenerateRandomBytes(16);
// create the crypting object
SymmetricAlgorithm sma = CrypHelper.CreateRijndael(password, salt);
sma.IV = IV;
// write the IV and salt to the beginning of the file
fout.Write(IV, 0, IV.Length);
fout.Write(salt, 0, salt.Length);
// create the hashing and crypto streams
HashAlgorithm hasher = SHA256.Create();
using (CryptoStream cout = new CryptoStream(fout, sma.CreateEncryptor(), CryptoStreamMode.Write),
chash = new CryptoStream(Stream.Null, hasher, CryptoStreamMode.Write)) {
// write the size of the file to the output file
BinaryWriter bw = new BinaryWriter(cout);
bw.Write(lSize);
// write the file cryptor tag to the file
bw.Write(FC_TAG);
// read and the write the bytes to the crypto stream in BUFFER_SIZEd chunks
while ((read = fin.Read(bytes, 0, bytes.Length)) != 0) {
cout.Write(bytes, 0, read);
chash.Write(bytes, 0, read);
value += read;
//callback(0, size, value);
}
// flush and close the hashing object
chash.Flush();
chash.Close();
// read the hash
byte[] hash = hasher.Hash;
// write the hash to the end of the file
cout.Write(hash, 0, hash.Length);
// flush and close the cryptostream
cout.Flush();
cout.Close();
}
}
public static void EncryptFile(string inFile, string outFile, string password) {
using (FileStream fin = File.OpenRead(inFile), fout = File.OpenWrite(outFile)) {
EncryptFile(fin, fout, password);
}
}
/// <summary>
/// takes an input file and decrypts it to the output file
/// </summary>
/// <param name="inFile">the file to decrypt</param>
/// <param name="outFile">the to write the decrypted data to</param>
/// <param name="password">the password used as the key</param>
/// <param name="callback">the method to call to notify of progress</param>
public static void DecryptFile(string inFile, string outFile, string password) {
// NOTE: The encrypting algo was so much easier...
// create and open the file streams
using (FileStream fin = File.OpenRead(inFile),
fout = File.OpenWrite(outFile)) {
int size = (int)fin.Length; // the size of the file for progress notification
byte[] bytes = new byte[BUFFER_SIZE]; // byte buffer
int read = -1; // the amount of bytes read from the stream
int value = 0;
int outValue = 0; // the amount of bytes written out
// read off the IV and Salt
byte[] IV = new byte[16];
fin.Read(IV, 0, 16);
byte[] salt = new byte[16];
fin.Read(salt, 0, 16);
// create the crypting stream
SymmetricAlgorithm sma = CrypHelper.CreateRijndael(password, salt);
sma.IV = IV;
value = 32; // the value for the progress
long lSize = -1; // the size stored in the input stream
// create the hashing object, so that we can verify the file
HashAlgorithm hasher = SHA256.Create();
// create the cryptostreams that will process the file
using (CryptoStream cin = new CryptoStream(fin, sma.CreateDecryptor(), CryptoStreamMode.Read),
chash = new CryptoStream(Stream.Null, hasher, CryptoStreamMode.Write)) {
// read size from file
BinaryReader br = new BinaryReader(cin);
lSize = br.ReadInt64();
ulong tag = br.ReadUInt64();
if (FC_TAG != tag)
throw new CryptoHelpException("File Corrupted!");
//determine number of reads to process on the file
long numReads = lSize / BUFFER_SIZE;
// determine what is left of the file, after numReads
long slack = (long)lSize % BUFFER_SIZE;
// read the buffer_sized chunks
for (int i = 0; i < numReads; ++i) {
read = cin.Read(bytes, 0, bytes.Length);
fout.Write(bytes, 0, read);
chash.Write(bytes, 0, read);
value += read;
outValue += read;
//callback(0, size, value);
}
// now read the slack
if (slack > 0) {
read = cin.Read(bytes, 0, (int)slack);
fout.Write(bytes, 0, read);
chash.Write(bytes, 0, read);
value += read;
outValue += read;
//callback(0, size, value);
}
// flush and close the hashing stream
chash.Flush();
chash.Close();
// flush and close the output file
fout.Flush();
fout.Close();
// read the current hash value
byte[] curHash = hasher.Hash;
// get and compare the current and old hash values
byte[] oldHash = new byte[hasher.HashSize / 8];
read = cin.Read(oldHash, 0, oldHash.Length);
if ((oldHash.Length != read) || (!CheckByteArrays(oldHash, curHash)))
throw new CryptoHelpException("File Corrupted!");
}
// make sure the written and stored size are equal
if (outValue != lSize)
throw new CryptoHelpException("File Sizes don't match!");
}
}
}
/// <summary>
/// CallBack delegate for progress notification
/// </summary>
public delegate void CryptoProgressCallBack(int min, int max, int value);
#endregion
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="NotificationIcon.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>141, 17</value>
</metadata>
<metadata name="NotificationIcon.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Menu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>285, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="NotificationIcon.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAASLHjIEem00ZFo9B5RKHOikKeyrpBncnJPZrI/0Gfyf8vj8H/SqbR5Emm
0MhKqta2S6nViEqw33JJseNASLDiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AABGos5HSJ/JW0umz5VFn8mqQZzJ0z+bxuo9mMX/N5PA/zeSwP82ksD/N5bG/zaVxf85msv/LpHD/xyD
vP8agbr/MpTG/zyayP85mMf/NpTB/ziTwP82ksD/NZPD/ziWxf85mcn/OJjJ3TqbzM4+oNCtPaLUjjyl
2nxFruEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAFmy17o/msX/P5vG/0Gfy/9CoMz/Q6PQ/0Sk0f9Gp9T/RafV/0So2P9Aptj/P6TW/zui
1f8wmM3/G4O7/2zU+P9jyPD/GYG6/zed0f9Cp9j/QafY/0Oo2P9ApNL/P6LS/zydzP87nMv/N5XF/zWU
xf8xj77/MY29/y6MvP9Bn83WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAF284v9gxeP/TbHe/0yv3f9Jrdz/R6vc/0Sq2/9CqNn/P6bY/z2l
2P88pNf/O6LW/zae1P8agbv/Ycjv/3Tb/f9pzfT/WL3o/xqBu/86odX/PKPX/zui1v86otb/O6LW/zqh
1v88otb/O6LV/z2j1v88otX/PqTW/1G22/9AoM//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGC/5P9dw+P/Sa/e/0it3f9Hrdz/Rqvc/0Sr
2/9Dqdr/Qaja/0Cn2f8/ptj/PaTY/xqCvP9Xvuf/dt39/3bd/f9pzfT/ac30/06z4f8agrz/PaTX/zuj
1/87otb/OaHW/zmg1f84oNX/N5/U/zae1P81ntT/NZ3T/0yz2/9Bo9P/AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPA5f+D6Pr/Zsrz/2TJ
8v9jyPH/Ycbw/1/F7/9ew+7/XMLt/1rA7P9Yvuv/LpXL/0203/933/3/d9/9/5Hl/f980/X/ac30/2nN
9P9Fqtr/LJPL/1G45/9Pt+b/TrXm/0y05f9Ls+T/SrLk/0ix4/9HsOL/Rq/i/2fP7f9Bo9P/AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXC
5/+D6fr/ac30/2fL8/9myvP/ZMny/2PH8f9hxvD/X8Tv/13D7v8/pdf/PaXU/3ng/f963vX/jdjj/8vt
8v/B6O//ec7d/2zO7v9pzfT/N57R/zmg1f9RuOf/T7fm/0615v9MtOX/S7Pk/0qy4/9IseP/R7Di/2jQ
7f9Bo9P/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAGfE6P9gxeT/TrPh/06z4P9NseD/TLHf/0qw3v9Kr97/SK7e/zie0v8vl8v/geD6/53p
/v9nwtz/Hlt3/x5bd/8eW3f/Hlt3/1aw1f9pzfT/Zcnx/yuTyf8xmM//PKTX/zui1v86otb/OaHW/zmg
1f83oNT/N5/U/0y03P9CpNP/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGnG6f9hxuT/ULXi/0+04f9Os+D/TrLg/0yx4P9Msd//QqjZ/yiQ
yP+G4vv/oOv+/6Dr/v+K5/7/Hlt3/x5bd/8eW3f/Hlt3/2TG7P9pzfT/ac30/2XJ8f8mjsb/OJ/U/zyk
1/87otb/OqLW/zmh1v85oNX/N6DU/0213P9DpdT/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGvI6v9hxuX/Urbi/1G14v9QteL/T7Th/06z
4P9KsN7/LJPK/3/a9P+i7P7/ouz+/6Ls/v+T6f7/K22I/x5bd/8eW3f/JGN//2nN9P9pzfT/ac30/2nN
9P9cwev/KpHJ/zui1/88o9f/O6LW/zqi1v85odb/OaDV/0613P9EpdX/AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG3J6/+I7P3/ctT5/3HT
+P9w0/j/btL3/2nM9P80m9D/etDu/6Pt/v+j7f7/o+3+/6Pt/v+b7P7/QImh/x5bd/8eW3f/NXuX/2nN
9P9pzfT/ac30/2nN9P9pzfT/ULbk/y+Xzv9Otub/ULfn/0625v9NteX/TLTl/2rS7/9FptX/AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG7K
7P+I7f3/ddb6/3PV+f9y1Pn/cdP4/0Cn2f9rxuj/pO/+/6Tv/v+k7/7/pO/+/6Tv/v+d7v7/U6W6/x5b
d/8eW3f/R5i2/2nN9P9pzfT/ac30/2nN9P9pzfT/ac30/0qw4P83n9T/Ubjo/1C35/9Otub/TbXl/2vT
7/9Gp9b/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAHDM7f9jyOb/V7nk/1W55P9UuOT/PqXX/4rP6v+08/7/pfD+/6Xw/v+l8P7/pfD+/6Xw
/v+l8P7/b8vc/x5bd/8eW3f/WbHO/2nN9P9pzfT/ac30/2nN9P9pzfT/ac30/4LV9v9ZteD/NZ3S/z2k
1/88o9f/O6LW/0+23f9GqNb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHHN7f9jyOf/Wrvl/1m65P9SteL/MprR/6/t+//O9/7/sfP+/6fx
/v+n8f7/p/H+/6fx/v+i9v7/YLTD/x5bd/8eW3f/VKW5/3TZ9v9qzvT/as70/2rO9P9qzvT/f9X2/63k
+f+d3Pb/MprR/zyj1/89pNf/PKPX/1C33f9Iqtf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLO7v9jyOf/Xbzl/1u75f9Zu+X/Sa7d/0+0
4P/B9v7/zfj+/630/v+o8/7/qPP+/6jz/v9mtcP/Hlt3/x5bd/8eW3f/Hlt3/1Okuf9t0fX/bdH1/23R
9f961fb/q+T5/6Pi+f9Ird3/O6LX/z+m2P89pNj/PaTX/1C33v9Jq9j/AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHPP7/+L7v7/hN79/4Hc
/f9/3Pz/fNr8/1G25f9lxej/x/j+/8n3/v+s8/7/qvP+/6rz/v8uboj/Hlt3/x5bd/8eW3f/Hlt3/yVk
f/9x1fb/cdX2/3XW9v+t5/r/ref6/1275f9FrN7/Vr3q/1W86v9Tuun/Urno/27V8f9KrNj/AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHPP
7/+L7///h9/9/4Xe/f+C3v3/gNz9/37c/P9MsuL/id3z/875/v/F+P7/q/X+/6v1/v8eW3f/Hlt3/x5b
d/8eW3f/Hlt3/x5bd/902Pf/eNn3/6fm+v+z6vv/bsru/0Ss3/9Zv+z/WL7r/1a96v9VvOn/U7rp/2/W
8f9Lrdn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAHTP7/9lyef/Y7/n/2K+5/9gvub/X77m/1295v9au+X/Raze/57p+P/R+v7/wvj+/632
/v9Ji6H/Hlt3/x5bd/8eW3f/Hlt3/zR7l/943Pj/puj6/7Xs+/+D1/P/Qand/0Sr2/9Eqtv/Qqja/0Go
2v9Ap9n/P6bY/1K43v9Nrtr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHTP7/9lyef/ZcDn/2TA5/9jv+f/Yb7n/1++5v9eveb/WLnl/0qy
4v+x8Pz/0vv//7v4//+k7fb/QYKZ/x5bd/8eW3f/L3SP/3DP6P+h6fr/t+77/5Lg9/9IsOL/Rqzd/0ar
3P9Eq9v/Q6na/0Ko2v9BqNr/QKfZ/1K53v9Or9v/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHXQ7/9lyuf/Z8Dn/2bA5/9lwOf/Y8Dn/2K+
5/9gvuf/X77m/1i65f9Yvuj/vPf+/9L7//+2+f//r/j//4zj7v9tyeH/f+P5/5np+v+58Pz/oen6/1C4
5v9Hrt//SK3d/0as3P9Gq9z/RKvb/0Op2v9CqNr/Qaja/1K53/9PsNv/AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHXQ7/+N8P//kuP//5Di
//+O4v//jeH+/4vh/v+J4P7/h9/+/4Tf/v9sy/L/YsTq/8X7///R/P//svr//6X5//+D5/r/mOv7/7vy
/P+x8Pz/Vbzn/1m/7P9kyPH/Ysfx/2DG8P9fxO//XcPu/1zC7f9awOz/Wb/s/3LZ8/9RsNz/AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHXQ
7/+N8P//leT//5Pk//+S4///kOL//43i//+M4f7/iuH+/4jf/v+G3/7/YMPu/3DP7v/N/P//zvz//8L8
//+h7/z/uvP9/7Py/P9ix+z/VLvp/2fL8/9lyfL/Y8jx/2LH8P9gxfD/X8Tv/13D7v9cwe3/WsDs/3PZ
8/9Ssd3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAHXQ7/9lyuf/bcLn/2zC5/9qwuf/acHn/2jB5/9mwOf/ZcDn/2TA5/9iv+f/Yb7n/02z
4/+Q5Pb/2P3///z////0/f//vPX9/3jY8/9IsOH/TrLg/0yx4P9Lsd//Sq/e/0mv3v9Irt3/R63c/0as
3P9Fq9z/RKrb/1S74P9Ts93/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHXQ7/9v1Oz/dMvq/23C5/9swuf/a8Ln/2rC5/9pwef/Z8Hn/2XA
5/9lwOf/Y8Dn/1++5/9KseL/tPT7//r////x/v//jOf5/0ev4f9PtOH/TrPg/02y4P9MseD/S7Df/0qv
3v9Jr97/SK7d/0et3P9OtN//Vbvj/1e+4f9UtN7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHnV8fOM8vn/jO73/4zt9/+M7vj/jO74/4fo
9f+C4vP/geLz/4Lj9P962vD/d9bv/3jY8P901O//TLXk/8L5/f+l8fv/TLPj/2fM6/9r0e3/a9Ds/3HX
7/943fL/d93y/3fd8f+F6/f/hev3/4Xq9v+E6vb/hOr2/2LI5v9WtNzVAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH3e/xBz1fimeNn68nze
+v983vr/ctT0/3jb9v963vb/ddrz/3PX8f9+4/X/feH0/3rf8v984fP/euDz/1nA5/9Xv+f/e+H0/4Hm
9f963/L/feL1/3zh9P9v0+//b9Tv/3LX8v9q0O//Y8ns/2fL7/9jye7/Wb7q41S656hcwu4QAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAZmZmHWZmZv+vr6//bISM/2yEjP+Us73/eam6/33e/4B93v+gfd7/wH3e/8B93v/wfN3//3nT
9P9jyPH4ddf6wHPV+sBx1PnAcNL4gG7R94Bs0PaAcZCc/4egqv9mf4n/ZnN4/62trf9mZmb/AAAAAAAA
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
0v/FxcX/pqam/5mZmf+ZmZngmZmZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZmZlAmZmZkJmZmdCZmZn/mZmZ/5mZ
mf+ZmZn/mZmZ/5mZmf+ZmZnQmZmZkJmZmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP//AAD//wAA/4AAAAD/
AAD/AAAAAP8AAP8AAAAA/wAA/wAAAAD/AAD/AAAAAP8AAP8AAAAA/wAA/wAAAAD/AAD/AAAAAP8AAP8A
AAAA/wAA/wAAAAD/AAD/AAAAAP8AAP8AAAAA/wAA/wAAAAD/AAD/AAAAAP8AAP8AAAAA/wAA/wAAAAD/
AAD/AAAAAP8AAP8AAAAA/wAA/wAAAAD/AAD/AAAAAP8AAP8AAAAA/wAA/wAAAAD/AAD/AAAAAP8AAP8A
AAAA/wAA/wAAAAD/AAD/wAAAB/8AAP/gfv4H/wAA/+B//gf/AAD/4H/+B/8AAP/gf/4H/wAA/+B//gf/
AAD/4H/+B/8AAP/gf/4H/wAA/+B//gf/AAD/4D/8B/8AAP/gP/wH/wAA/+A//Af/AAD/4B/4B/8AAP/g
D/AH/wAA//ADwA//AAD/8AAAD/8AAP/4AAAf/wAA//wAAD//AAD//gAAf/8AAP//AAD//wAA///AA///
AAA=
</value>
</data>
<metadata name="label1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
</root>
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace Decrypt {
static class Program {
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new GUI());
}
}
}
\ No newline at end of file
10
dir
2840
file:///%5Cadsdc01/Repositories/Opal/Supra%202.0/DecryptClaims/DecryptClaims/Properties
file:///%5Cadsdc01/Repositories/Opal
2009-04-27T16:06:42.477752Z
1808
aheagy
d43380b4-9f89-f34e-a9d1-96296dc15dae
0
AssemblyInfo.cs
file
1808
2009-04-27T16:06:29.555794Z
eca399ba102738dcf52019d3a933d189
2009-04-27T16:06:42.477752Z
1808
aheagy
1280
Settings.settings
file
1581
2008-08-11T20:25:55.058006Z
8c0f00d7d9b0046695a0255f1b11b061
2008-11-12T21:00:42.230750Z
854
aheagy
249
Settings.Designer.cs
file
1656
2009-04-02T21:20:21.941790Z
b6971bf7710276e56bf660c4503edd94
2009-04-02T21:21:28.057602Z
1656
aheagy
1088
Resources.resx
file
1581
2008-08-11T20:25:55.478828Z
0cd8c971317d19bbed44757809bcb92b
2008-11-12T21:00:42.230750Z
854
aheagy
5612
Resources.Designer.cs
file
1656
2009-04-02T21:20:21.863860Z
0d06ff800e05c65eae8a7e2aab27e0ea
2009-04-02T21:21:28.057602Z
1656
aheagy
2841
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("Crypto")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("ADSTECHINC")]
[assembly: AssemblyProduct("Crypto")]
[assembly: AssemblyCopyright("Copyright © ADSTECHINC 2008")]
[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("049a92f6-6bfb-428d-b9e5-71c5da734ec8")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.3082
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Decrypt.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// 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", "2.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() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Decrypt.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.3082
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Decrypt.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.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;
}
}
}
}
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>
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("Crypto")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("ADSTECHINC")]
[assembly: AssemblyProduct("Crypto")]
[assembly: AssemblyCopyright("Copyright © ADSTECHINC 2008")]
[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("049a92f6-6bfb-428d-b9e5-71c5da734ec8")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.1
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Decrypt.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// 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() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Decrypt.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.1
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Decrypt.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.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;
}
}
}
}
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>
<?xml version="1.0"?>
<configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
<?xml version="1.0"?>
<configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
<?xml version="1.0"?>
<configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
C:\Projects\DecryptClaims\DecryptClaims\bin\Debug\Crypto.exe.config
C:\Projects\DecryptClaims\DecryptClaims\bin\Debug\Crypto.exe
C:\Projects\DecryptClaims\DecryptClaims\bin\Debug\Crypto.pdb
C:\Projects\DecryptClaims\DecryptClaims\obj\Debug\ResolveAssemblyReference.cache
C:\Projects\DecryptClaims\DecryptClaims\obj\Debug\Decrypt.GUI.resources
C:\Projects\DecryptClaims\DecryptClaims\obj\Debug\Decrypt.Properties.Resources.resources
C:\Projects\DecryptClaims\DecryptClaims\obj\Debug\GenerateResource.read.1.tlog
C:\Projects\DecryptClaims\DecryptClaims\obj\Debug\GenerateResource.write.1.tlog
C:\Projects\DecryptClaims\DecryptClaims\obj\Debug\Crypto.exe
C:\Projects\DecryptClaims\DecryptClaims\obj\Debug\Crypto.pdb
B^C:\PROJECTS\DECRYPTCLAIMS\DECRYPTCLAIMS\GUI.RESX
B^C:\PROJECTS\DECRYPTCLAIMS\DECRYPTCLAIMS\GUI.RESX|C:\PROJECTS\DECRYPTCLAIMS\DECRYPTCLAIMS\PROPERTIES\RESOURCES.RESX
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type='text/xsl' href='_UpgradeReport_Files/UpgradeReport.xslt'?><UpgradeLog>
<Properties><Property Name="Solution" Value="Crypto">
</Property><Property Name="Solution File" Value="C:\Projects\DecryptClaims\Crypto.sln">
</Property><Property Name="Date" Value="Friday, July 23, 2010">
</Property><Property Name="Time" Value="17:35 PM">
</Property></Properties><Event ErrorLevel="1" Project="Crypto" Source="DecryptClaims\Crypto.csproj" Description="Your project is targeting .NET Framework 2.0 or 3.0. If your project uses assemblies requiring a newer .NET Framework, your project will fail to build. You can change the .NET Framework version by clicking Properties on the project menu and then selecting a new version in the '.NET Framework' dropdown box. (In Visual Basic, this is located on the Compile tab by clicking the 'Advanced Compiler Options...' button.)">
</Event><Event ErrorLevel="0" Project="Crypto" Source="DecryptClaims\Crypto.csproj" Description="Project converted successfully">
</Event><Event ErrorLevel="3" Project="Crypto" Source="DecryptClaims\Crypto.csproj" Description="Converted">
</Event><Event ErrorLevel="0" Project="" Source="Crypto.sln" Description="Solution converted successfully">
</Event><Event ErrorLevel="3" Project="" Source="Crypto.sln" Description="Converted">
</Event><Event ErrorLevel="0" Project="Crypto" Source="DecryptClaims\Crypto.csproj" Description="Scan complete: Upgrade not required for project files.">
</Event></UpgradeLog>
\ No newline at end of file
#region Using directives
using System;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Reflection;
using System.Security;
using WebControls = System.Web.UI.WebControls;
using HTMLControls = System.Web.UI.HtmlControls;
using WinForms = System.Windows.Forms;
using SQLTypes = System.Data.SqlTypes;
#endregion
// mscorlib
[assembly: DebuggerDisplay(@"\{Name = {Name} FullName = {FullName}}", Target = typeof(Type))]
// System.Drawing
[assembly: DebuggerDisplay(@"\{Name = {fontFamily.Name} Size={fontSize}}", Target = typeof(Font))]
[assembly: DebuggerDisplay(@"\{Name = {name}}", Target = typeof(FontFamily))]
[assembly: DebuggerDisplay(@"\{Color = {color}}", Target = typeof(Pen))]
[assembly: DebuggerDisplay(@"\{X = {x} Y = {y}}", Target = typeof(Point))]
[assembly: DebuggerDisplay(@"\{X = {x} Y = {y}}", Target = typeof(PointF))]
[assembly: DebuggerDisplay(@"\{X = {x} Y = {y} Width = {width} Height = {height}}", Target = typeof(Rectangle))]
[assembly: DebuggerDisplay(@"\{X = {x} Y = {y} Width = {width} Height = {height}}", Target = typeof(RectangleF))]
[assembly: DebuggerDisplay(@"\{Width = {width} Height = {height}}", Target = typeof(Size))]
[assembly: DebuggerDisplay(@"\{Width = {width} Height = {height}}", Target = typeof(SizeF))]
[assembly: DebuggerDisplay(@"\{Color = {color}}", Target = typeof(SolidBrush))]
// System.Web.UI.WebControls
[assembly: DebuggerDisplay(@"\{Text = {Text}}", Target = typeof(WebControls::Button))]
[assembly: DebuggerDisplay(@"\{Text = {Text}}", Target = typeof(WebControls::Label))]
[assembly: DebuggerDisplay(@"\{Text = {Text}}", Target = typeof(WebControls::HyperLink))]
[assembly: DebuggerDisplay(@"\{Text = {Text} Checked = {Checked}}", Target = typeof(WebControls::CheckBox))]
[assembly: DebuggerDisplay(@"\{Text = {Text} Checked = {Checked}}", Target = typeof(WebControls::RadioButton))]
[assembly: DebuggerDisplay(@"\{SelectedDate = {SelectedData}}", Target = typeof(WebControls::Calendar))]
[assembly: DebuggerDisplay(@"\{Text = {Text}}", Target = typeof(WebControls::LinkButton))]
// System.Web.UI.HtmlControls
[assembly: DebuggerDisplay(@"\{Value = {Value}}", Target = typeof(HTMLControls::HtmlInputButton))]
[assembly: DebuggerDisplay(@"\{InnerText = {InnerText}}", Target = typeof(HTMLControls::HtmlGenericControl))]
[assembly: DebuggerDisplay(@"\{Value = {Value}}", Target = typeof(HTMLControls::HtmlTextArea))]
[assembly: DebuggerDisplay(@"\{Value = {Value}}", Target = typeof(HTMLControls::HtmlInputText))]
[assembly: DebuggerDisplay(@"\{Value = {Value} Checked = {Checked}}", Target = typeof(HTMLControls::HtmlInputCheckBox))]
[assembly: DebuggerDisplay(@"\{Value = {Value} Checked = {Checked}}", Target = typeof(HTMLControls::HtmlInputRadioButton))]
// System.Windows.Forms
[assembly: DebuggerDisplay(@"\{ExecutablePath = {executablePath}}", Target = typeof(WinForms::Application))]
[assembly: DebuggerDisplay(@"\{Text = {Text}}", Target = typeof(WinForms::Button))]
[assembly: DebuggerDisplay(@"\{Text = {Text} CheckState = {checkState}}", Target = typeof(WinForms::CheckBox))]
[assembly: DebuggerDisplay(@"\{SelectedItem = {Text}}", Target = typeof(WinForms::CheckedListBox))]
[assembly: DebuggerDisplay(@"\{Text = {Text}}", Target = typeof(WinForms::DataGrid))]
[assembly: DebuggerDisplay(@"\{Type = {type} Column = {col} Row = {row}}", Target = typeof(WinForms::DataGrid.HitTestInfo))]
[assembly: DebuggerDisplay(@"\{HeaderText = {headerName}}", Target = typeof(WinForms::DataGridColumnStyle))]
[assembly: DebuggerDisplay(@"\{Text = {Text}}", Target = typeof(WinForms::DataGridTextBox))]
[assembly: DebuggerDisplay(@"\{HeaderText = {headerName}}", Target = typeof(WinForms::DataGridTextBoxColumn))]
[assembly: DebuggerDisplay(@"\{Font = {font} Color = {color}}", Target = typeof(WinForms::FontDialog))]
[assembly: DebuggerDisplay(@"\{Value = {value} Min = {minimum} Max = {maximum}}", Target = typeof(WinForms::HScrollBar))]
[assembly: DebuggerDisplay(@"\{InvalidRect = {invalidRect}}", Target = typeof(WinForms::InvalidateEventArgs))]
[assembly: DebuggerDisplay(@"\{Index = {index}}", Target = typeof(WinForms::ItemChangedEventArgs))]
[assembly: DebuggerDisplay(@"\{Index = {index} NewValue = {newValue} CurrentValue = {currentValue}}", Target = typeof(WinForms::ItemCheckEventArgs))]
[assembly: DebuggerDisplay(@"\{KeyData = {keyData}}", Target = typeof(WinForms::KeyEventArgs))]
[assembly: DebuggerDisplay(@"\{KeyChar = {keyChar}}", Target = typeof(WinForms::KeyPressEventArgs))]
[assembly: DebuggerDisplay(@"\{LinkText = {linkText}}", Target = typeof(WinForms::LinkClickedEventArgs))]
[assembly: DebuggerDisplay(@"\{SelectedItem = {Text}}", Target = typeof(WinForms::ListBox))]
[assembly: DebuggerDisplay(@"\{Text = {Text}}", Target= typeof(WinForms::ListViewItem))]
[assembly: DebuggerDisplay(@"\{X = {x} Y = {y} Button = {button}}", Target = typeof(WinForms::MouseEventArgs))]
[assembly: DebuggerDisplay(@"\{Value = {currentValue} Min = {minimum} Max = {maximum}}", Target = typeof(WinForms::NumericUpDown))]
[assembly: DebuggerDisplay(@"\{ClipRectangle = {clipRect}}", Target = typeof(WinForms::PaintEventArgs))]
[assembly: DebuggerDisplay(@"\{Value = {value} Min = {minimum} Max = {maximum}}", Target = typeof(WinForms::ProgressBar))]
[assembly: DebuggerDisplay(@"\{Text = {Text} Checked = {isChecked}}", Target = typeof(WinForms::RadioButton))]
[assembly: DebuggerDisplay(@"\{Text = {Text}}", Target = typeof(WinForms::RichTextBox))]
[assembly: DebuggerDisplay(@"\{Bounds = {bounds} WorkingArea = {workingArea} Primary = {primary} DeviceName = {deviceName}}", Target = typeof(WinForms::Screen))]
[assembly: DebuggerDisplay(@"\{Start = {start} End = {end}}", Target = typeof(WinForms::SelectionRange))]
[assembly: DebuggerDisplay(@"\{SplitPosition = {splitSize} MinExtra = {minExtra} MinSize = {minSize}}", Target = typeof(WinForms::Splitter))]
[assembly: DebuggerDisplay(@"\{SplitX = {splitX} SplitY = {splitY}}", Target = typeof(WinForms::SplitterEventArgs))]
[assembly: DebuggerDisplay(@"\{Text = {Text}}", Target = typeof(WinForms::TextBox))]
[assembly: DebuggerDisplay(@"\{Interval = {interval}}", Target = typeof(WinForms::Timer))]
[assembly: DebuggerDisplay(@"\{Value = {Value} Min = {minimum} Max = {maximum}}", Target = typeof(WinForms::TrackBar))]
[assembly: DebuggerDisplay(@"\{Text = {text}}", Target = typeof(WinForms::TreeNode))]
[assembly: DebuggerDisplay(@"\{Value = {value} Min = {minimum} Max = {maximum}}", Target = typeof(WinForms::VScrollBar))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(Exception))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(ApplicationException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(ArgumentException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(ArgumentNullException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(ArgumentOutOfRangeException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(ArithmeticException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(DivideByZeroException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(DllNotFoundException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(ApplicationException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(IndexOutOfRangeException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(InvalidCastException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(MemberAccessException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(MethodAccessException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(NullReferenceException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(StackOverflowException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(SystemException))]
[assembly: DebuggerDisplay(@"\{{Message}:{TypeName}}", Target = typeof(TypeLoadException))]
[assembly: DebuggerDisplay(@"\{{Message}:{FileName}}", Target = typeof(FileLoadException))]
[assembly: DebuggerDisplay(@"\{{Message}:{FileName}}", Target = typeof(FileNotFoundException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(ReflectionTypeLoadException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(SecurityException))]
// The attributes below can be useful to uncomment if ToString evaluation is disabled.
//
//[assembly: DebuggerDisplay(@"\{RGB = {value}}", Target = typeof(Color))]
//[assembly: DebuggerDisplay("{Month}/{Day}/{Year} {Hour}:{Minute}:{Second}", Target = typeof(DateTime))]
//[assembly: DebuggerDisplay(@"\{Value = {value}}", Target = typeof(WinForms::DateTimePicker))]
//[assembly: DebuggerDisplay(@"\{Text = {Text}}", Target = typeof(WinForms::LinkLabel))]
//[assembly: DebuggerDisplay(@"\{Text = {Text}}", Target = typeof(WinForms::Label))]
//[assembly: DebuggerDisplay(@"\{SelectionStart = {selectionStart} SelectionEnd = {selectionEnd}}", Target = typeof(WinForms::MonthCalendar))]
//[assembly: DebuggerDisplay(@"\{InitialDelay = {InitialDelay} ShowAlways = {ShowAlways}}", Target = typeof(WinForms::ToolTip))]
//[assembly: DebuggerDisplay("{m_value}", Target = typeof(SQLTypes::SqlInt64))]
//[assembly: DebuggerDisplay("{m_value}", Target = typeof(SQLTypes::SqlDateTime))]
//[assembly: DebuggerDisplay("{m_value}", Target = typeof(SQLTypes::SqlInt32))]
//[assembly: DebuggerDisplay("{Value}", Target = typeof(SQLTypes::SqlMoney))]
//[assembly: DebuggerDisplay("{m_value}", Target = typeof(SQLTypes::SqlString))]
//[assembly: DebuggerDisplay("{m_value}", Target = typeof(SQLTypes::SqlSingle))]
//[assembly: DebuggerDisplay("{m_value}", Target = typeof(SQLTypes::SqlInt16))]
//[assembly: DebuggerDisplay("{m_value}", Target = typeof(SQLTypes::SqlByte))]
//[assembly: DebuggerDisplay("{m_value}", Target = typeof(SQLTypes::SqlDouble))]
\ No newline at end of file
// This file contains DisplayAttribute defines for types from Windows CE assemblies
// If any changes are made, its needs to be recompiled while referencing CE assemblies
#region Using directives
using System;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Reflection;
using System.Security;
using WinForms = System.Windows.Forms;
using SQLTypes = System.Data.SqlTypes;
#endregion
// mscorlib
[assembly: DebuggerDisplay(@"\{Name = {Name} FullName = {FullName}}", Target = typeof(Type))]
// System.Drawing
[assembly: DebuggerDisplay(@"\{Name = {Name} Size={Size}}", Target = typeof(Font))]
[assembly: DebuggerDisplay(@"\{Name = {m_strName}}", Target = typeof(FontFamily))]
[assembly: DebuggerDisplay(@"\{Color = {m_color}}", Target = typeof(Pen))]
[assembly: DebuggerDisplay(@"\{X = {m_x} Y = {m_y}}", Target = typeof(Point))]
[assembly: DebuggerDisplay(@"\{X = {m_x} Y = {m_y} Width = {m_cx} Height = {m_cy}}", Target = typeof(Rectangle))]
[assembly: DebuggerDisplay(@"\{X = {m_x} Y = {m_y} Width = {m_cx} Height = {m_cy}}", Target = typeof(RectangleF))]
[assembly: DebuggerDisplay(@"\{Width = {m_cx} Height = {m_cy}}", Target = typeof(Size))]
[assembly: DebuggerDisplay(@"\{Width = {m_cx} Height = {m_cy}}", Target = typeof(SizeF))]
[assembly: DebuggerDisplay(@"\{Color = {m_color}}", Target = typeof(SolidBrush))]
// System.Windows.Forms
[assembly: DebuggerDisplay(@"\{Text = {Text}}", Target = typeof(WinForms::Button))]
[assembly: DebuggerDisplay(@"\{Text = {Text} CheckState = {CheckState}}", Target = typeof(WinForms::CheckBox))]
[assembly: DebuggerDisplay(@"\{Value = {Value} Min = {Minimum} Max = {Maximum}}", Target = typeof(WinForms::HScrollBar))]
[assembly: DebuggerDisplay(@"\{Index = {index}}", Target = typeof(WinForms::ItemChangedEventArgs))]
[assembly: DebuggerDisplay(@"\{Index = {m_iIndex} NewValue = {m_newCheckValue} CurrentValue = {m_CurrentValue}}", Target = typeof(WinForms::ItemCheckEventArgs))]
[assembly: DebuggerDisplay(@"\{KeyData = {m_keyData}}", Target = typeof(WinForms::KeyEventArgs))]
[assembly: DebuggerDisplay(@"\{KeyChar = {m_ch}}", Target = typeof(WinForms::KeyPressEventArgs))]
[assembly: DebuggerDisplay(@"\{SelectedItem = {Text}}", Target = typeof(WinForms::ListBox))]
[assembly: DebuggerDisplay(@"\{Text = {Text}}", Target = typeof(WinForms::ListViewItem))]
[assembly: DebuggerDisplay(@"\{X = {m_x} Y = {m_y} Button = {button}}", Target = typeof(WinForms::MouseEventArgs))]
[assembly: DebuggerDisplay(@"\{Value = {Value} Min = {Minimum} Max = {Maximum}}", Target = typeof(WinForms::NumericUpDown))]
[assembly: DebuggerDisplay(@"\{ClipRectangle = {m_rcClip}}", Target = typeof(WinForms::PaintEventArgs))]
[assembly: DebuggerDisplay(@"\{Value = {Value} Min = {Minimum} Max = {Maximum}}", Target = typeof(WinForms::ProgressBar))]
[assembly: DebuggerDisplay(@"\{Text = {Text} Checked = {Checked}}", Target = typeof(WinForms::RadioButton))]
[assembly: DebuggerDisplay(@"\{Bounds = {Bounds} WorkingArea = {WorkingArea}}", Target = typeof(WinForms::Screen))]
[assembly: DebuggerDisplay(@"\{MinExtra = {MinExtra} MinSize = {MinSize}}", Target = typeof(WinForms::Splitter))]
[assembly: DebuggerDisplay(@"\{Text = {Text}}", Target = typeof(WinForms::TextBox))]
[assembly: DebuggerDisplay(@"\{Interval = {m_msec}}", Target = typeof(WinForms::Timer))]
[assembly: DebuggerDisplay(@"\{{Value} Min = {Minimum} Max = {Maximum}}", Target = typeof(WinForms::TrackBar))]
[assembly: DebuggerDisplay(@"\{Text = {m_strText}}", Target = typeof(WinForms::TreeNode))]
[assembly: DebuggerDisplay(@"\{{Value} Min = {Minimum} Max = {Maximum}}", Target = typeof(WinForms::VScrollBar))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(Exception))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(ApplicationException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(ArgumentException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(ArgumentNullException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(ArgumentOutOfRangeException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(ArithmeticException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(DivideByZeroException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(DllNotFoundException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(ApplicationException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(IndexOutOfRangeException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(InvalidCastException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(MemberAccessException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(MethodAccessException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(NullReferenceException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(StackOverflowException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(SystemException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(TypeLoadException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(FileNotFoundException))]
[assembly: DebuggerDisplay(@"\{{Message}}", Target = typeof(SecurityException))]
// The attributes below can be useful to uncomment if ToString evaluation is disabled.
//
//[assembly: DebuggerDisplay("{Month}/{Day}/{Year} {Hour}:{Minute}:{Second}", Target = typeof(DateTime))]
//[assembly: DebuggerDisplay(@"\{Value = {Value}}", Target = typeof(WinForms::DateTimePicker))]
//[assembly: DebuggerDisplay(@"\{Text = {Text}}", Target = typeof(WinForms::LinkLabel))]
//[assembly: DebuggerDisplay(@"\{Text = {Text}}", Target = typeof(WinForms::Label))]
//[assembly: DebuggerDisplay(@"\{{SelectionStack = {SelectionStart} SelectionEnd = {SelectionEnd}}", Target = typeof(WinForms::MonthCalendar))]
//[assembly: DebuggerDisplay("{m_value}", Target = typeof(SQLTypes::SqlInt64))]
//[assembly: DebuggerDisplay("{m_value}", Target = typeof(SQLTypes::SqlDateTime))]
//[assembly: DebuggerDisplay("{m_value}", Target = typeof(SQLTypes::SqlInt32))]
//[assembly: DebuggerDisplay("{Value}", Target = typeof(SQLTypes::SqlMoney))]
//[assembly: DebuggerDisplay("{m_value}", Target = typeof(SQLTypes::SqlString))]
//[assembly: DebuggerDisplay("{m_value}", Target = typeof(SQLTypes::SqlSingle))]
//[assembly: DebuggerDisplay("{m_value}", Target = typeof(SQLTypes::SqlInt16))]
//[assembly: DebuggerDisplay("{m_value}", Target = typeof(SQLTypes::SqlByte))]
//[assembly: DebuggerDisplay("{m_value}", Target = typeof(SQLTypes::SqlDouble))]
namespace System.Diagnostics {
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Delegate | AttributeTargets.Enum | AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Assembly, AllowMultiple = true)]
public sealed class DebuggerDisplayAttribute : Attribute
{
private string name;
private string value;
private string type;
private string targetName;
private Type target;
public DebuggerDisplayAttribute(string value)
{
if( value == null ) {
this.value = "";
}
else {
this.value = value;
}
name = "";
type = "";
}
public string Value
{
get { return this.value; }
}
public string Name
{
get { return name; }
set { name = value; }
}
public string Type
{
get { return type; }
set { type = value; }
}
public Type Target
{
set {
if( value == null) {
throw new ArgumentNullException("value");
}
targetName = value.AssemblyQualifiedName;
target = value;
}
get { return target; }
}
public string TargetTypeName
{
get { return targetName; }
set { targetName = value; }
}
}
}
BODY
{
BACKGROUND-COLOR: white;
FONT-FAMILY: "Verdana", sans-serif;
FONT-SIZE: 100%;
MARGIN-LEFT: 0px;
MARGIN-TOP: 0px
}
P
{
FONT-FAMILY: "Verdana", sans-serif;
FONT-SIZE: 70%;
LINE-HEIGHT: 12pt;
MARGIN-BOTTOM: 0px;
MARGIN-LEFT: 10px;
MARGIN-TOP: 10px
}
.note
{
BACKGROUND-COLOR: #ffffff;
COLOR: #336699;
FONT-FAMILY: "Verdana", sans-serif;
FONT-SIZE: 100%;
MARGIN-BOTTOM: 0px;
MARGIN-LEFT: 0px;
MARGIN-TOP: 0px;
PADDING-RIGHT: 10px
}
.infotable
{
BACKGROUND-COLOR: #f0f0e0;
BORDER-BOTTOM: #ffffff 0px solid;
BORDER-COLLAPSE: collapse;
BORDER-LEFT: #ffffff 0px solid;
BORDER-RIGHT: #ffffff 0px solid;
BORDER-TOP: #ffffff 0px solid;
FONT-SIZE: 70%;
MARGIN-LEFT: 10px
}
.issuetable
{
BACKGROUND-COLOR: #ffffe8;
BORDER-COLLAPSE: collapse;
COLOR: #000000;
FONT-SIZE: 100%;
MARGIN-BOTTOM: 10px;
MARGIN-LEFT: 13px;
MARGIN-TOP: 0px
}
.issuetitle
{
BACKGROUND-COLOR: #ffffff;
BORDER-BOTTOM: #dcdcdc 1px solid;
BORDER-TOP: #dcdcdc 1px;
COLOR: #003366;
FONT-WEIGHT: normal
}
.header
{
BACKGROUND-COLOR: #cecf9c;
BORDER-BOTTOM: #ffffff 1px solid;
BORDER-LEFT: #ffffff 1px solid;
BORDER-RIGHT: #ffffff 1px solid;
BORDER-TOP: #ffffff 1px solid;
COLOR: #000000;
FONT-WEIGHT: bold
}
.issuehdr
{
BACKGROUND-COLOR: #E0EBF5;
BORDER-BOTTOM: #dcdcdc 1px solid;
BORDER-TOP: #dcdcdc 1px solid;
COLOR: #000000;
FONT-WEIGHT: normal
}
.issuenone
{
BACKGROUND-COLOR: #ffffff;
BORDER-BOTTOM: 0px;
BORDER-LEFT: 0px;
BORDER-RIGHT: 0px;
BORDER-TOP: 0px;
COLOR: #000000;
FONT-WEIGHT: normal
}
.content
{
BACKGROUND-COLOR: #e7e7ce;
BORDER-BOTTOM: #ffffff 1px solid;
BORDER-LEFT: #ffffff 1px solid;
BORDER-RIGHT: #ffffff 1px solid;
BORDER-TOP: #ffffff 1px solid;
PADDING-LEFT: 3px
}
.issuecontent
{
BACKGROUND-COLOR: #ffffff;
BORDER-BOTTOM: #dcdcdc 1px solid;
BORDER-TOP: #dcdcdc 1px solid;
PADDING-LEFT: 3px
}
A:link
{
COLOR: #cc6633;
TEXT-DECORATION: underline
}
A:visited
{
COLOR: #cc6633;
}
A:active
{
COLOR: #cc6633;
}
A:hover
{
COLOR: #cc3300;
TEXT-DECORATION: underline
}
H1
{
BACKGROUND-COLOR: #003366;
BORDER-BOTTOM: #336699 6px solid;
COLOR: #ffffff;
FONT-SIZE: 130%;
FONT-WEIGHT: normal;
MARGIN: 0em 0em 0em -20px;
PADDING-BOTTOM: 8px;
PADDING-LEFT: 30px;
PADDING-TOP: 16px
}
H2
{
COLOR: #000000;
FONT-SIZE: 80%;
FONT-WEIGHT: bold;
MARGIN-BOTTOM: 3px;
MARGIN-LEFT: 10px;
MARGIN-TOP: 20px;
PADDING-LEFT: 0px
}
H3
{
COLOR: #000000;
FONT-SIZE: 80%;
FONT-WEIGHT: bold;
MARGIN-BOTTOM: -5px;
MARGIN-LEFT: 10px;
MARGIN-TOP: 20px
}
H4
{
COLOR: #000000;
FONT-SIZE: 70%;
FONT-WEIGHT: bold;
MARGIN-BOTTOM: 0px;
MARGIN-TOP: 15px;
PADDING-BOTTOM: 0px
}
UL
{
COLOR: #000000;
FONT-SIZE: 70%;
LIST-STYLE: square;
MARGIN-BOTTOM: 0pt;
MARGIN-TOP: 0pt
}
OL
{
COLOR: #000000;
FONT-SIZE: 70%;
LIST-STYLE: square;
MARGIN-BOTTOM: 0pt;
MARGIN-TOP: 0pt
}
LI
{
LIST-STYLE: square;
MARGIN-LEFT: 0px
}
.expandable
{
CURSOR: hand
}
.expanded
{
color: black
}
.collapsed
{
DISPLAY: none
}
.foot
{
BACKGROUND-COLOR: #ffffff;
BORDER-BOTTOM: #cecf9c 1px solid;
BORDER-TOP: #cecf9c 2px solid
}
.settings
{
MARGIN-LEFT: 25PX;
}
.help
{
TEXT-ALIGN: right;
margin-right: 10px;
}
<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl='urn:schemas-microsoft-com:xslt'>
<xsl:key name="ProjectKey" match="Event" use="@Project" />
<xsl:template match="Events" mode="createProjects">
<projects>
<xsl:for-each select="Event">
<!--xsl:sort select="@Project" order="descending"/-->
<xsl:if test="(1=position()) or (preceding-sibling::*[1]/@Project != @Project)">
<xsl:variable name="ProjectName" select="@Project"/>
<project>
<xsl:attribute name="name">
<xsl:value-of select="@Project"/>
</xsl:attribute>
<xsl:if test="@Project=''">
<xsl:attribute name="solution">
<xsl:value-of select="@Solution"/>
</xsl:attribute>
</xsl:if>
<xsl:for-each select="key('ProjectKey', $ProjectName)">
<!--xsl:sort select="@Source" /-->
<xsl:if test="(1=position()) or (preceding-sibling::*[1]/@Source != @Source)">
<source>
<xsl:attribute name="name">
<xsl:value-of select="@Source"/>
</xsl:attribute>
<xsl:variable name="Source">
<xsl:value-of select="@Source"/>
</xsl:variable>
<xsl:for-each select="key('ProjectKey', $ProjectName)[ @Source = $Source ]">
<event>
<xsl:attribute name="error-level">
<xsl:value-of select="@ErrorLevel"/>
</xsl:attribute>
<xsl:attribute name="description">
<xsl:value-of select="@Description"/>
</xsl:attribute>
</event>
</xsl:for-each>
</source>
</xsl:if>
</xsl:for-each>
</project>
</xsl:if>
</xsl:for-each>
</projects>
</xsl:template>
<xsl:template match="projects">
<xsl:for-each select="project">
<xsl:sort select="@Name" order="ascending"/>
<h2>
<xsl:if test="@solution"><a _locID="Solution">Solution</a>: <xsl:value-of select="@solution"/></xsl:if>
<xsl:if test="not(@solution)"><a _locID="Project">Project</a>: <xsl:value-of select="@name"/>
<xsl:for-each select="source">
<xsl:variable name="Hyperlink" select="@name"/>
<xsl:for-each select="event[@error-level='4']">
&#32;<A class="note"><xsl:attribute name="HREF"><xsl:value-of select="$Hyperlink"/></xsl:attribute><xsl:value-of select="@description"/></A>
</xsl:for-each>
</xsl:for-each>
</xsl:if>
</h2>
<table cellpadding="2" cellspacing="0" width="98%" border="1" bordercolor="white" class="infotable">
<tr>
<td nowrap="1" class="header" _locID="Filename">Filename</td>
<td nowrap="1" class="header" _locID="Status">Status</td>
<td nowrap="1" class="header" _locID="Errors">Errors</td>
<td nowrap="1" class="header" _locID="Warnings">Warnings</td>
</tr>
<xsl:for-each select="source">
<xsl:sort select="@name" order="ascending"/>
<xsl:variable name="source-id" select="generate-id(.)"/>
<xsl:if test="count(event)!=count(event[@error-level='4'])">
<tr class="row">
<td class="content">
<A HREF="javascript:"><xsl:attribute name="onClick">javascript:document.images['<xsl:value-of select="$source-id"/>'].click()</xsl:attribute><IMG border="0" _locID="IMG.alt" _locAttrData="alt" alt="expand/collapse section" class="expandable" height="11" onclick="changepic()" src="_UpgradeReport_Files/UpgradeReport_Plus.gif" width="9" ><xsl:attribute name="name"><xsl:value-of select="$source-id"/></xsl:attribute><xsl:attribute name="child">src<xsl:value-of select="$source-id"/></xsl:attribute></IMG></A>&#32;<xsl:value-of select="@name"/>
</td>
<td class="content">
<xsl:if test="count(event[@error-level='3'])=1">
<xsl:for-each select="event[@error-level='3']">
<xsl:if test="@description='Converted'"><a _locID="Converted1">Converted</a></xsl:if>
<xsl:if test="@description!='Converted'"><xsl:value-of select="@description"/></xsl:if>
</xsl:for-each>
</xsl:if>
<xsl:if test="count(event[@error-level='3'])!=1 and count(event[@error-level='3' and @description='Converted'])!=0"><a _locID="Converted2">Converted</a>
</xsl:if>
</td>
<td class="content"><xsl:value-of select="count(event[@error-level='2'])"/></td>
<td class="content"><xsl:value-of select="count(event[@error-level='1'])"/></td>
</tr>
<tr class="collapsed" bgcolor="#ffffff">
<xsl:attribute name="id">src<xsl:value-of select="$source-id"/></xsl:attribute>
<td colspan="7">
<table width="97%" border="1" bordercolor="#dcdcdc" rules="cols" class="issuetable">
<tr>
<td colspan="7" class="issuetitle" _locID="ConversionIssues">Conversion Report - <xsl:value-of select="@name"/>:</td>
</tr>
<xsl:for-each select="event[@error-level!='3']">
<xsl:if test="@error-level!='4'">
<tr>
<td class="issuenone" style="border-bottom:solid 1 lightgray">
<xsl:value-of select="@description"/>
</td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</td>
</tr>
</xsl:if>
</xsl:for-each>
<tr valign="top">
<td class="foot">
<xsl:if test="count(source)!=1">
<xsl:value-of select="count(source)"/><a _locID="file1"> files</a>
</xsl:if>
<xsl:if test="count(source)=1">
<a _locID="file2">1 file</a>
</xsl:if>
</td>
<td class="foot">
<a _locID="Converted3">Converted</a>:&#32;<xsl:value-of select="count(source/event[@error-level='3' and @description='Converted'])"/><BR />
<a _locID="NotConverted">Not converted</a>:&#32;<xsl:value-of select="count(source) - count(source/event[@error-level='3' and @description='Converted'])"/>
</td>
<td class="foot"><xsl:value-of select="count(source/event[@error-level='2'])"/></td>
<td class="foot"><xsl:value-of select="count(source/event[@error-level='1'])"/></td>
</tr>
</table>
</xsl:for-each>
</xsl:template>
<xsl:template match="Property">
<xsl:if test="@Name!='Date' and @Name!='Time' and @Name!='LogNumber' and @Name!='Solution'">
<tr><td nowrap="1"><b><xsl:value-of select="@Name"/>: </b><xsl:value-of select="@Value"/></td></tr>
</xsl:if>
</xsl:template>
<xsl:template match="UpgradeLog">
<html>
<head>
<META HTTP-EQUIV="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="_UpgradeReport_Files\UpgradeReport.css" />
<title _locID="ConversionReport0">Conversion Report&#32;
<xsl:if test="Properties/Property[@Name='LogNumber']">
<xsl:value-of select="Properties/Property[@Name='LogNumber']/@Value"/>
</xsl:if>
</title>
<script language="javascript">
function outliner () {
oMe = window.event.srcElement
//get child element
var child = document.all[event.srcElement.getAttribute("child",false)];
//if child element exists, expand or collapse it.
if (null != child)
child.className = child.className == "collapsed" ? "expanded" : "collapsed";
}
function changepic() {
uMe = window.event.srcElement;
var check = uMe.src.toLowerCase();
if (check.lastIndexOf("upgradereport_plus.gif") != -1)
{
uMe.src = "_UpgradeReport_Files/UpgradeReport_Minus.gif"
}
else
{
uMe.src = "_UpgradeReport_Files/UpgradeReport_Plus.gif"
}
}
</script>
</head>
<body topmargin="0" leftmargin="0" rightmargin="0" onclick="outliner();">
<h1 _locID="ConversionReport">Conversion Report - <xsl:value-of select="Properties/Property[@Name='Solution']/@Value"/></h1>
<p><span class="note">
<b _locID="TimeOfConversion">Time of Conversion:</b>&#32;&#32;<xsl:value-of select="Properties/Property[@Name='Date']/@Value"/>&#32;&#32;<xsl:value-of select="Properties/Property[@Name='Time']/@Value"/><br/>
</span></p>
<xsl:variable name="SortedEvents">
<Events>
<xsl:for-each select="Event">
<xsl:sort select="@Project" order="ascending"/>
<xsl:sort select="@Source" order="ascending"/>
<xsl:sort select="@ErrorLevel" order="ascending"/>
<Event>
<xsl:attribute name="Project"><xsl:value-of select="@Project"/> </xsl:attribute>
<xsl:attribute name="Solution"><xsl:value-of select="/UpgradeLog/Properties/Property[@Name='Solution']/@Value"/> </xsl:attribute>
<xsl:attribute name="Source"><xsl:value-of select="@Source"/> </xsl:attribute>
<xsl:attribute name="ErrorLevel"><xsl:value-of select="@ErrorLevel"/> </xsl:attribute>
<xsl:attribute name="Description"><xsl:value-of select="@Description"/> </xsl:attribute>
</Event>
</xsl:for-each>
</Events>
</xsl:variable>
<xsl:variable name="Projects">
<xsl:apply-templates select="msxsl:node-set($SortedEvents)/*" mode="createProjects"/>
</xsl:variable>
<xsl:apply-templates select="msxsl:node-set($Projects)/*"/>
<p></p><p>
<table class="note">
<tr>
<td nowrap="1">
<b _locID="ConversionSettings">Conversion Settings</b>
</td>
</tr>
<xsl:apply-templates select="Properties"/>
</table></p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment