diff --git a/Hummingbird Nest/Form1.Designer.cs b/Hummingbird Nest/Form1.Designer.cs
new file mode 100644
index 0000000..fe506fe
--- /dev/null
+++ b/Hummingbird Nest/Form1.Designer.cs
@@ -0,0 +1,280 @@
+namespace Hummingbird_Nest
+{
+ partial class Main
+ {
+ ///
+ /// Variable del diseñador requerida.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Limpiar los recursos que se estén utilizando.
+ ///
+ /// true si los recursos administrados se deben eliminar; false en caso contrario, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Código generado por el Diseñador de Windows Forms
+
+ ///
+ /// Método necesario para admitir el Diseñador. No se puede modificar
+ /// el contenido del método con el editor de código.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main));
+ this.tabContainter = new System.Windows.Forms.TabControl();
+ this.tabHum = new System.Windows.Forms.TabPage();
+ this.tabListen = new System.Windows.Forms.TabPage();
+ this.gbHumInfo = new System.Windows.Forms.GroupBox();
+ this.gbHumPic = new System.Windows.Forms.GroupBox();
+ this.tbHumInfo = new System.Windows.Forms.TextBox();
+ this.tbHumPic = new System.Windows.Forms.TextBox();
+ this.btHumInfo = new System.Windows.Forms.Button();
+ this.btHumPic = new System.Windows.Forms.Button();
+ this.btHum = new System.Windows.Forms.Button();
+ this.gbListen = new System.Windows.Forms.GroupBox();
+ this.btListenFile = new System.Windows.Forms.Button();
+ this.tbListenFile = new System.Windows.Forms.TextBox();
+ this.btListen = new System.Windows.Forms.Button();
+ this.OFDListen = new System.Windows.Forms.OpenFileDialog();
+ this.SFDListen = new System.Windows.Forms.SaveFileDialog();
+ this.OFDHumInfo = new System.Windows.Forms.OpenFileDialog();
+ this.OFDHumPic = new System.Windows.Forms.OpenFileDialog();
+ this.SFDHum = new System.Windows.Forms.SaveFileDialog();
+ this.tabContainter.SuspendLayout();
+ this.tabHum.SuspendLayout();
+ this.tabListen.SuspendLayout();
+ this.gbHumInfo.SuspendLayout();
+ this.gbHumPic.SuspendLayout();
+ this.gbListen.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // tabContainter
+ //
+ this.tabContainter.Appearance = System.Windows.Forms.TabAppearance.FlatButtons;
+ this.tabContainter.Controls.Add(this.tabHum);
+ this.tabContainter.Controls.Add(this.tabListen);
+ this.tabContainter.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tabContainter.HotTrack = true;
+ this.tabContainter.Location = new System.Drawing.Point(0, 0);
+ this.tabContainter.Name = "tabContainter";
+ this.tabContainter.SelectedIndex = 0;
+ this.tabContainter.Size = new System.Drawing.Size(373, 171);
+ this.tabContainter.TabIndex = 0;
+ //
+ // tabHum
+ //
+ this.tabHum.Controls.Add(this.btHum);
+ this.tabHum.Controls.Add(this.gbHumPic);
+ this.tabHum.Controls.Add(this.gbHumInfo);
+ this.tabHum.Location = new System.Drawing.Point(4, 25);
+ this.tabHum.Name = "tabHum";
+ this.tabHum.Padding = new System.Windows.Forms.Padding(3);
+ this.tabHum.Size = new System.Drawing.Size(365, 142);
+ this.tabHum.TabIndex = 0;
+ this.tabHum.Text = "Hum";
+ //
+ // tabListen
+ //
+ this.tabListen.Controls.Add(this.btListen);
+ this.tabListen.Controls.Add(this.gbListen);
+ this.tabListen.Location = new System.Drawing.Point(4, 25);
+ this.tabListen.Name = "tabListen";
+ this.tabListen.Padding = new System.Windows.Forms.Padding(3);
+ this.tabListen.Size = new System.Drawing.Size(365, 142);
+ this.tabListen.TabIndex = 1;
+ this.tabListen.Text = "Listen";
+ //
+ // gbHumInfo
+ //
+ this.gbHumInfo.Controls.Add(this.btHumInfo);
+ this.gbHumInfo.Controls.Add(this.tbHumInfo);
+ this.gbHumInfo.Dock = System.Windows.Forms.DockStyle.Top;
+ this.gbHumInfo.Location = new System.Drawing.Point(3, 3);
+ this.gbHumInfo.Name = "gbHumInfo";
+ this.gbHumInfo.Size = new System.Drawing.Size(359, 50);
+ this.gbHumInfo.TabIndex = 0;
+ this.gbHumInfo.TabStop = false;
+ this.gbHumInfo.Text = "File to hide";
+ //
+ // gbHumPic
+ //
+ this.gbHumPic.Controls.Add(this.btHumPic);
+ this.gbHumPic.Controls.Add(this.tbHumPic);
+ this.gbHumPic.Dock = System.Windows.Forms.DockStyle.Top;
+ this.gbHumPic.Location = new System.Drawing.Point(3, 53);
+ this.gbHumPic.Name = "gbHumPic";
+ this.gbHumPic.Size = new System.Drawing.Size(359, 49);
+ this.gbHumPic.TabIndex = 1;
+ this.gbHumPic.TabStop = false;
+ this.gbHumPic.Text = "Picture to hide file in";
+ //
+ // tbHumInfo
+ //
+ this.tbHumInfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.tbHumInfo.Location = new System.Drawing.Point(6, 19);
+ this.tbHumInfo.Name = "tbHumInfo";
+ this.tbHumInfo.ReadOnly = true;
+ this.tbHumInfo.Size = new System.Drawing.Size(266, 20);
+ this.tbHumInfo.TabIndex = 0;
+ //
+ // tbHumPic
+ //
+ this.tbHumPic.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.tbHumPic.Location = new System.Drawing.Point(6, 19);
+ this.tbHumPic.Name = "tbHumPic";
+ this.tbHumPic.ReadOnly = true;
+ this.tbHumPic.Size = new System.Drawing.Size(266, 20);
+ this.tbHumPic.TabIndex = 0;
+ //
+ // btHumInfo
+ //
+ this.btHumInfo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btHumInfo.Location = new System.Drawing.Point(278, 17);
+ this.btHumInfo.Name = "btHumInfo";
+ this.btHumInfo.Size = new System.Drawing.Size(75, 23);
+ this.btHumInfo.TabIndex = 1;
+ this.btHumInfo.Text = "Browse...";
+ this.btHumInfo.UseVisualStyleBackColor = true;
+ this.btHumInfo.Click += new System.EventHandler(this.btHumInfo_Click);
+ //
+ // btHumPic
+ //
+ this.btHumPic.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btHumPic.Location = new System.Drawing.Point(278, 17);
+ this.btHumPic.Name = "btHumPic";
+ this.btHumPic.Size = new System.Drawing.Size(75, 23);
+ this.btHumPic.TabIndex = 1;
+ this.btHumPic.Text = "Browse...";
+ this.btHumPic.UseVisualStyleBackColor = true;
+ this.btHumPic.Click += new System.EventHandler(this.btHumPic_Click);
+ //
+ // btHum
+ //
+ this.btHum.Location = new System.Drawing.Point(147, 108);
+ this.btHum.Name = "btHum";
+ this.btHum.Size = new System.Drawing.Size(75, 23);
+ this.btHum.TabIndex = 2;
+ this.btHum.Text = "Hum!!!";
+ this.btHum.UseVisualStyleBackColor = true;
+ this.btHum.Click += new System.EventHandler(this.btHum_Click);
+ //
+ // gbListen
+ //
+ this.gbListen.Controls.Add(this.btListenFile);
+ this.gbListen.Controls.Add(this.tbListenFile);
+ this.gbListen.Dock = System.Windows.Forms.DockStyle.Top;
+ this.gbListen.Location = new System.Drawing.Point(3, 3);
+ this.gbListen.Name = "gbListen";
+ this.gbListen.Size = new System.Drawing.Size(359, 50);
+ this.gbListen.TabIndex = 1;
+ this.gbListen.TabStop = false;
+ this.gbListen.Text = "Select file";
+ //
+ // btListenFile
+ //
+ this.btListenFile.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btListenFile.Location = new System.Drawing.Point(278, 17);
+ this.btListenFile.Name = "btListenFile";
+ this.btListenFile.Size = new System.Drawing.Size(75, 23);
+ this.btListenFile.TabIndex = 1;
+ this.btListenFile.Text = "Browse...";
+ this.btListenFile.UseVisualStyleBackColor = true;
+ this.btListenFile.Click += new System.EventHandler(this.btListenFile_Click);
+ //
+ // tbListenFile
+ //
+ this.tbListenFile.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.tbListenFile.Location = new System.Drawing.Point(6, 19);
+ this.tbListenFile.Name = "tbListenFile";
+ this.tbListenFile.ReadOnly = true;
+ this.tbListenFile.Size = new System.Drawing.Size(266, 20);
+ this.tbListenFile.TabIndex = 0;
+ //
+ // btListen
+ //
+ this.btListen.Location = new System.Drawing.Point(145, 59);
+ this.btListen.Name = "btListen";
+ this.btListen.Size = new System.Drawing.Size(75, 23);
+ this.btListen.TabIndex = 2;
+ this.btListen.Text = "Listen!!!";
+ this.btListen.UseVisualStyleBackColor = true;
+ this.btListen.Click += new System.EventHandler(this.btListen_Click);
+ //
+ // OFDListen
+ //
+ this.OFDListen.Filter = "Bitmap|*.bmp";
+ //
+ // SFDListen
+ //
+ this.SFDListen.Filter = "All files|*.*";
+ //
+ // OFDHumInfo
+ //
+ this.OFDHumInfo.Filter = "All files|*.*";
+ //
+ // OFDHumPic
+ //
+ this.OFDHumPic.Filter = "Bitmap|*.bmp";
+ //
+ // SFDHum
+ //
+ this.SFDHum.Filter = "Bitmap|*.bmp";
+ //
+ // Main
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(373, 171);
+ this.Controls.Add(this.tabContainter);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "Main";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Hummingbird";
+ this.tabContainter.ResumeLayout(false);
+ this.tabHum.ResumeLayout(false);
+ this.tabListen.ResumeLayout(false);
+ this.gbHumInfo.ResumeLayout(false);
+ this.gbHumInfo.PerformLayout();
+ this.gbHumPic.ResumeLayout(false);
+ this.gbHumPic.PerformLayout();
+ this.gbListen.ResumeLayout(false);
+ this.gbListen.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.TabControl tabContainter;
+ private System.Windows.Forms.TabPage tabHum;
+ private System.Windows.Forms.TabPage tabListen;
+ private System.Windows.Forms.GroupBox gbHumPic;
+ private System.Windows.Forms.Button btHumPic;
+ private System.Windows.Forms.TextBox tbHumPic;
+ private System.Windows.Forms.GroupBox gbHumInfo;
+ private System.Windows.Forms.Button btHumInfo;
+ private System.Windows.Forms.TextBox tbHumInfo;
+ private System.Windows.Forms.Button btHum;
+ private System.Windows.Forms.Button btListen;
+ private System.Windows.Forms.GroupBox gbListen;
+ private System.Windows.Forms.Button btListenFile;
+ private System.Windows.Forms.TextBox tbListenFile;
+ private System.Windows.Forms.OpenFileDialog OFDListen;
+ private System.Windows.Forms.SaveFileDialog SFDListen;
+ private System.Windows.Forms.OpenFileDialog OFDHumInfo;
+ private System.Windows.Forms.OpenFileDialog OFDHumPic;
+ private System.Windows.Forms.SaveFileDialog SFDHum;
+ }
+}
+
diff --git a/Hummingbird Nest/Form1.cs b/Hummingbird Nest/Form1.cs
new file mode 100644
index 0000000..e240e89
--- /dev/null
+++ b/Hummingbird Nest/Form1.cs
@@ -0,0 +1,168 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using System.IO;
+
+namespace Hummingbird_Nest
+{
+ public partial class Main : Form
+ {
+ public Main()
+ {
+ InitializeComponent();
+ }
+
+ private void btListen_Click(object sender, EventArgs e)
+ {
+ if (File.Exists(OFDListen.FileName))
+ {
+ if (SFDListen.ShowDialog() == DialogResult.OK)
+ {
+ FileInfo fiFile = new FileInfo(OFDListen.FileName);
+ BinaryReader brFile = new BinaryReader(fiFile.OpenRead());
+
+ byte[] header = brFile.ReadBytes(54);
+
+ int inicio = header[10] + (header[11] << 8) + (header[12] << 16) + (header[13] << 24);
+ int tamano = header[6] + (header[7] << 8) + (header[8] << 16) + (header[9] << 24);
+
+ BinaryWriter bwDump = new BinaryWriter(new FileStream(SFDListen.FileName, FileMode.Create));
+
+ brFile.ReadBytes(inicio - 54);
+
+ byte temp = 0;
+ for (int i = 0; i < tamano; i++)
+ {
+ temp = 0;
+ byte[] tupla = brFile.ReadBytes(8);
+ for (int j = 0; j < tupla.Length; j++)
+ {
+ temp += (byte)((tupla[j] % 2) << j);
+ }
+ bwDump.Write(temp);
+ }
+ bwDump.Flush();
+ bwDump.Close();
+ brFile.Close();
+ MessageBox.Show("File was successfully created", "Goal achieved", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ }
+ else
+ {
+ MessageBox.Show("Source file does not exist", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+
+ }
+
+ private void btListenFile_Click(object sender, EventArgs e)
+ {
+ if (OFDListen.ShowDialog() == DialogResult.OK)
+ {
+ tbListenFile.Text = OFDListen.FileName;
+ }
+ }
+
+ private void btHumInfo_Click(object sender, EventArgs e)
+ {
+ if (OFDHumInfo.ShowDialog() == DialogResult.OK)
+ {
+ tbHumInfo.Text = OFDHumInfo.FileName;
+ }
+ }
+
+ private void btHumPic_Click(object sender, EventArgs e)
+ {
+ if (OFDHumPic.ShowDialog() == DialogResult.OK)
+ {
+ tbHumPic.Text = OFDHumPic.FileName;
+ }
+ }
+
+ private void btHum_Click(object sender, EventArgs e)
+ {
+ if (File.Exists(OFDHumInfo.FileName) && File.Exists(OFDHumPic.FileName))
+ {
+ if (SFDHum.ShowDialog() == DialogResult.OK)
+ {
+ FileInfo fiInfo = new FileInfo(OFDHumInfo.FileName);
+ FileInfo fiPic = new FileInfo(OFDHumPic.FileName);
+ BinaryReader brInfo = new BinaryReader(fiInfo.OpenRead());
+ BinaryReader brPic = new BinaryReader(fiPic.OpenRead());
+
+ byte[] header = brPic.ReadBytes(54);
+
+ int inicio = header[10] + (header[11] << 8) + (header[12] << 16) + (header[13] << 24);
+ int tamanoPic = header[34] + (header[35] << 8) + (header[36] << 16) + (header[37] << 24);
+ int tamanoInfo = (int)fiInfo.Length;
+
+ if (tamanoInfo*8<=tamanoPic)
+ {
+ header[6] = (byte)(tamanoInfo % 256);
+ header[7] = (byte)((tamanoInfo >> 8) % 256);
+ header[8] = (byte)((tamanoInfo >> 16) % 256);
+ header[9] = (byte)((tamanoInfo >> 24) % 256);
+
+ BinaryWriter bwDump = new BinaryWriter(new FileStream(SFDHum.FileName, FileMode.Create));
+
+ bwDump.Write(header);
+ bwDump.Write(brPic.ReadBytes(inicio - 54));
+ bwDump.Flush();
+
+ byte byteInfo = 0;
+ byte bytePic = 0;
+ int bit = 0;
+
+ for (int i = 0; i < tamanoInfo; i++)
+ {
+ byteInfo=brInfo.ReadByte();
+ for (int j = 0; j < 8; j++)
+ {
+ bytePic = brPic.ReadByte();
+ bit = (byteInfo >> j) % 2;
+
+ if (bytePic % 2 == bit)
+ {
+ bwDump.Write(bytePic);
+ }
+ else
+ {
+ if (bit == 1)
+ {
+ bwDump.Write(++bytePic);
+ }
+ else
+ {
+ bwDump.Write(--bytePic);
+ }
+ }
+ }
+ }
+ bwDump.Write(brPic.ReadBytes((int)(fiPic.Length - (tamanoInfo * 8))));
+ bwDump.Flush();
+ bwDump.Close();
+ brPic.Close();
+ brInfo.Close();
+ MessageBox.Show("File was successfully created", "Goal achieved", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+ MessageBox.Show("Bitmap is too small to fit the information", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ else
+ {
+ MessageBox.Show("A target file must be defined", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ else
+ {
+ MessageBox.Show("Source files do not exist", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Hummingbird Nest/Form1.resx b/Hummingbird Nest/Form1.resx
new file mode 100644
index 0000000..c559096
--- /dev/null
+++ b/Hummingbird Nest/Form1.resx
@@ -0,0 +1,272 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+ 124, 17
+
+
+ 445, 17
+
+
+ 228, 17
+
+
+ 346, 17
+
+
+
+
+ AAABAAMAICAAAAEAIACoEAAANgAAABgYAAABACAAiAkAAN4QAAAQEAAAAQAgAGgEAABmGgAAKAAAACAA
+ AABAAAAAAQAgAAAAAACAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAMAAAABwAAAAEAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAACIAAAAeAAAADAAA
+ AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADQAAABUAAAAUAAAADAAAAAMAAAAKCiiv/wUT
+ VVAAAAAkAAAADgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAABAAAAAsAAAAPwAAAD0AAAAoAAAADAAA
+ AAIJJaJuCiiv/wgehIEAAAAlAAAADgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAG1h0OMRigD3/YoA9/1Nr
+ M6QAAAAUAAAAAAAAAAIJJKBpCiiv/wcdgYEAAAAmAAAADgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAIAAAADQAAABQ+USdZaYo//42+
+ Uf+Pw2v/YYA8/wAAABYAAAAAAAAAAAAAAAIJJaF9Ciiv/wcdfoIAAAAnAAAAEAAAAAMAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAACQAAABEAAAAXAAAAHwAAACcAAAAwAAAAOiQv
+ FmNwijv/saYm/87Skf9dfjr/AAAAEwAAAAAAAAAAAAAAAAAAAAQKJqi3Ciiv/wccfYIAAAAtAAAAFAAA
+ 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
+ AAD4AQAA+AEAAPjBAAD9wQAA/+EAAP/5AAA=
+
+
+
\ No newline at end of file
diff --git a/Hummingbird Nest/Hummingbird Nest.csproj b/Hummingbird Nest/Hummingbird Nest.csproj
new file mode 100644
index 0000000..70bc088
--- /dev/null
+++ b/Hummingbird Nest/Hummingbird Nest.csproj
@@ -0,0 +1,135 @@
+
+
+
+ Debug
+ x86
+ 8.0.30703
+ 2.0
+ {6156AC38-6A5F-4826-AA6B-D57A308472E1}
+ WinExe
+ Properties
+ Hummingbird_Nest
+ Hummingbird Nest
+ v4.0
+ Client
+ 512
+ publish\
+ true
+ Disk
+ false
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 0
+ 1.0.0.%2a
+ false
+ false
+ true
+
+
+ x86
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ x86
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+ hummingbird.ico
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ Form1.cs
+
+
+
+
+
+ Form1.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+
+
+
+ False
+ Microsoft .NET Framework 4 Client Profile %28x86 y x64%29
+ true
+
+
+ False
+ .NET Framework 3.5 SP1 Client Profile
+ false
+
+
+ False
+ .NET Framework 3.5 SP1
+ false
+
+
+ False
+ Windows Installer 3.1
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/Hummingbird Nest/Program.cs b/Hummingbird Nest/Program.cs
new file mode 100644
index 0000000..7063d33
--- /dev/null
+++ b/Hummingbird Nest/Program.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Forms;
+
+namespace Hummingbird_Nest
+{
+ static class Program
+ {
+ ///
+ /// Punto de entrada principal para la aplicación.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new Main());
+ }
+ }
+}
diff --git a/Hummingbird Nest/Properties/AssemblyInfo.cs b/Hummingbird Nest/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..282a239
--- /dev/null
+++ b/Hummingbird Nest/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// La información general sobre un ensamblado se controla mediante el siguiente
+// conjunto de atributos. Cambie estos atributos para modificar la información
+// asociada con un ensamblado.
+[assembly: AssemblyTitle("Hummingbird Nest")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Hummingbird Nest")]
+[assembly: AssemblyCopyright("Copyright © 2013")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Si establece ComVisible como false, los tipos de este ensamblado no estarán visibles
+// para los componentes COM. Si necesita obtener acceso a un tipo de este ensamblado desde
+// COM, establezca el atributo ComVisible como true en este tipo.
+[assembly: ComVisible(false)]
+
+// El siguiente GUID sirve como identificador de typelib si este proyecto se expone a COM
+[assembly: Guid("fdf2218c-450e-4872-ba5d-b9106d00ad11")]
+
+// La información de versión de un ensamblado consta de los cuatro valores siguientes:
+//
+// Versión principal
+// Versión secundaria
+// Número de compilación
+// Revisión
+//
+// Puede especificar todos los valores o establecer como predeterminados los números de versión de compilación y de revisión
+// mediante el asterisco ('*'), como se muestra a continuación:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Hummingbird Nest/Properties/Resources.Designer.cs b/Hummingbird Nest/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..d9ade52
--- /dev/null
+++ b/Hummingbird Nest/Properties/Resources.Designer.cs
@@ -0,0 +1,70 @@
+//------------------------------------------------------------------------------
+//
+// Este código fue generado por una herramienta.
+// Versión de runtime:4.0.30319.296
+//
+// Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si
+// se vuelve a generar el código.
+//
+//------------------------------------------------------------------------------
+
+namespace Hummingbird_Nest.Properties {
+ using System;
+
+
+ ///
+ /// Clase de recurso con establecimiento inflexible de tipos, para buscar cadenas traducidas, etc.
+ ///
+ // StronglyTypedResourceBuilder generó automáticamente esta clase
+ // a través de una herramienta como ResGen o Visual Studio.
+ // Para agregar o quitar un miembro, edite el archivo .ResX y, a continuación, vuelva a ejecutar ResGen
+ // con la opción /str o vuelva a generar su proyecto de VS.
+ [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() {
+ }
+
+ ///
+ /// Devuelve la instancia de ResourceManager almacenada en caché utilizada por esta clase.
+ ///
+ [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("Hummingbird_Nest.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Reemplaza la propiedad CurrentUICulture del subproceso actual para todas las
+ /// búsquedas de recursos mediante esta clase de recurso con establecimiento inflexible de tipos.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ internal static System.Drawing.Icon hummingbird {
+ get {
+ object obj = ResourceManager.GetObject("hummingbird", resourceCulture);
+ return ((System.Drawing.Icon)(obj));
+ }
+ }
+ }
+}
diff --git a/Hummingbird Nest/Properties/Resources.resx b/Hummingbird Nest/Properties/Resources.resx
new file mode 100644
index 0000000..73a0deb
--- /dev/null
+++ b/Hummingbird Nest/Properties/Resources.resx
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ ..\resources\hummingbird.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
\ No newline at end of file
diff --git a/Hummingbird Nest/Properties/Settings.Designer.cs b/Hummingbird Nest/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..80d3468
--- /dev/null
+++ b/Hummingbird Nest/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.296
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace Hummingbird_Nest.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;
+ }
+ }
+ }
+}
diff --git a/Hummingbird Nest/Properties/Settings.settings b/Hummingbird Nest/Properties/Settings.settings
new file mode 100644
index 0000000..abf36c5
--- /dev/null
+++ b/Hummingbird Nest/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/Hummingbird Nest/Settings.cs b/Hummingbird Nest/Settings.cs
new file mode 100644
index 0000000..ec1b67d
--- /dev/null
+++ b/Hummingbird Nest/Settings.cs
@@ -0,0 +1,28 @@
+namespace Hummingbird_Nest.Properties {
+
+
+ // Esta clase le permite controlar eventos específicos en la clase de configuración:
+ // El evento SettingChanging se desencadena antes de cambiar un valor de configuración.
+ // El evento PropertyChanged se desencadena después de cambiar el valor de configuración.
+ // El evento SettingsLoaded se desencadena después de cargar los valores de configuración.
+ // El evento SettingsSaving se desencadena antes de guardar los valores de configuración.
+ internal sealed partial class Settings {
+
+ public Settings() {
+ // // Para agregar los controladores de eventos para guardar y cambiar la configuración, quite la marca de comentario de las líneas:
+ //
+ // this.SettingChanging += this.SettingChangingEventHandler;
+ //
+ // this.SettingsSaving += this.SettingsSavingEventHandler;
+ //
+ }
+
+ private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) {
+ // Agregar código para administrar aquí el evento SettingChangingEvent.
+ }
+
+ private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) {
+ // Agregar código para administrar aquí el evento SettingsSaving.
+ }
+ }
+}
diff --git a/Hummingbird Nest/hummingbird.ico b/Hummingbird Nest/hummingbird.ico
new file mode 100644
index 0000000..6206302
Binary files /dev/null and b/Hummingbird Nest/hummingbird.ico differ
diff --git a/Hummingbird Nest/resources/hummingbird.ico b/Hummingbird Nest/resources/hummingbird.ico
new file mode 100644
index 0000000..6206302
Binary files /dev/null and b/Hummingbird Nest/resources/hummingbird.ico differ
diff --git a/Hummingbird.sln b/Hummingbird.sln
new file mode 100644
index 0000000..cf27135
--- /dev/null
+++ b/Hummingbird.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hummingbird Nest", "Hummingbird Nest\Hummingbird Nest.csproj", "{6156AC38-6A5F-4826-AA6B-D57A308472E1}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x86 = Debug|x86
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {6156AC38-6A5F-4826-AA6B-D57A308472E1}.Debug|x86.ActiveCfg = Debug|x86
+ {6156AC38-6A5F-4826-AA6B-D57A308472E1}.Debug|x86.Build.0 = Debug|x86
+ {6156AC38-6A5F-4826-AA6B-D57A308472E1}.Release|x86.ActiveCfg = Release|x86
+ {6156AC38-6A5F-4826-AA6B-D57A308472E1}.Release|x86.Build.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal