Massive music editor overhaul

Additions
----------
-WAV drag and drop
-BINKA File location verification
-Feature to combine your Creative world tracks with a checkbox in the editor
This commit is contained in:
MattNL
2022-07-30 23:39:52 -04:00
parent 6ba76b6a3f
commit f92f5b9b00
11 changed files with 3672 additions and 3180 deletions

View File

@@ -29,169 +29,193 @@ namespace PckStudio.Forms.Utilities
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AudioEditor));
this.treeView1 = new System.Windows.Forms.TreeView();
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
this.addCategoryStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.removeCategoryStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.catImages = new System.Windows.Forms.ImageList(this.components);
this.menuStrip = new System.Windows.Forms.MenuStrip();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.creditsEditorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.treeView2 = new System.Windows.Forms.TreeView();
this.contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components);
this.addEntryMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.removeEntryMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.contextMenuStrip1.SuspendLayout();
this.menuStrip.SuspendLayout();
this.contextMenuStrip2.SuspendLayout();
this.SuspendLayout();
//
// treeView1
//
resources.ApplyResources(this.treeView1, "treeView1");
this.treeView1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.treeView1.ContextMenuStrip = this.contextMenuStrip1;
this.treeView1.ForeColor = System.Drawing.Color.White;
this.treeView1.ImageList = this.catImages;
this.treeView1.LabelEdit = true;
this.treeView1.Name = "treeView1";
this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
//
// contextMenuStrip1
//
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AudioEditor));
this.treeView1 = new System.Windows.Forms.TreeView();
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
this.addCategoryStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.removeCategoryStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.catImages = new System.Windows.Forms.ImageList(this.components);
this.menuStrip = new System.Windows.Forms.MenuStrip();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.creditsEditorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.treeView2 = new System.Windows.Forms.TreeView();
this.contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components);
this.addEntryMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.removeEntryMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.verifyFileLocationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.metroCheckBox1 = new MetroFramework.Controls.MetroCheckBox();
this.contextMenuStrip1.SuspendLayout();
this.menuStrip.SuspendLayout();
this.contextMenuStrip2.SuspendLayout();
this.SuspendLayout();
//
// treeView1
//
resources.ApplyResources(this.treeView1, "treeView1");
this.treeView1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.treeView1.ContextMenuStrip = this.contextMenuStrip1;
this.treeView1.ForeColor = System.Drawing.Color.White;
this.treeView1.ImageList = this.catImages;
this.treeView1.LabelEdit = true;
this.treeView1.Name = "treeView1";
this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
//
// contextMenuStrip1
//
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.addCategoryStripMenuItem,
this.removeCategoryStripMenuItem});
this.contextMenuStrip1.Name = "contextMenuStrip1";
resources.ApplyResources(this.contextMenuStrip1, "contextMenuStrip1");
//
// addCategoryStripMenuItem
//
resources.ApplyResources(this.addCategoryStripMenuItem, "addCategoryStripMenuItem");
this.addCategoryStripMenuItem.Name = "addCategoryStripMenuItem";
this.addCategoryStripMenuItem.Click += new System.EventHandler(this.addCategoryStripMenuItem_Click);
//
// removeCategoryStripMenuItem
//
this.removeCategoryStripMenuItem.Image = global::PckStudio.Properties.Resources.Del;
this.removeCategoryStripMenuItem.Name = "removeCategoryStripMenuItem";
resources.ApplyResources(this.removeCategoryStripMenuItem, "removeCategoryStripMenuItem");
this.removeCategoryStripMenuItem.Click += new System.EventHandler(this.removeCategoryStripMenuItem_Click);
//
// catImages
//
this.catImages.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("catImages.ImageStream")));
this.catImages.TransparentColor = System.Drawing.Color.Transparent;
this.catImages.Images.SetKeyName(0, "0_overworld.png");
this.catImages.Images.SetKeyName(1, "1_nether.png");
this.catImages.Images.SetKeyName(2, "2_end.png");
this.catImages.Images.SetKeyName(3, "3_menu.png");
this.catImages.Images.SetKeyName(4, "4_creative.png");
this.catImages.Images.SetKeyName(5, "5_mg01.png");
this.catImages.Images.SetKeyName(6, "6_mg02.png");
this.catImages.Images.SetKeyName(7, "7_mg03.png");
//
// menuStrip
//
resources.ApplyResources(this.menuStrip, "menuStrip");
this.menuStrip.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.contextMenuStrip1.Name = "contextMenuStrip1";
resources.ApplyResources(this.contextMenuStrip1, "contextMenuStrip1");
//
// addCategoryStripMenuItem
//
resources.ApplyResources(this.addCategoryStripMenuItem, "addCategoryStripMenuItem");
this.addCategoryStripMenuItem.Name = "addCategoryStripMenuItem";
this.addCategoryStripMenuItem.Click += new System.EventHandler(this.addCategoryStripMenuItem_Click);
//
// removeCategoryStripMenuItem
//
this.removeCategoryStripMenuItem.Image = global::PckStudio.Properties.Resources.Del;
this.removeCategoryStripMenuItem.Name = "removeCategoryStripMenuItem";
resources.ApplyResources(this.removeCategoryStripMenuItem, "removeCategoryStripMenuItem");
this.removeCategoryStripMenuItem.Click += new System.EventHandler(this.removeCategoryStripMenuItem_Click);
//
// catImages
//
this.catImages.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("catImages.ImageStream")));
this.catImages.TransparentColor = System.Drawing.Color.Transparent;
this.catImages.Images.SetKeyName(0, "0_overworld.png");
this.catImages.Images.SetKeyName(1, "1_nether.png");
this.catImages.Images.SetKeyName(2, "2_end.png");
this.catImages.Images.SetKeyName(3, "4_creative.png");
this.catImages.Images.SetKeyName(4, "3_menu.png");
this.catImages.Images.SetKeyName(5, "5_mg01.png");
this.catImages.Images.SetKeyName(6, "6_mg02.png");
this.catImages.Images.SetKeyName(7, "7_mg03.png");
this.catImages.Images.SetKeyName(8, "8_unused.png");
//
// menuStrip
//
resources.ApplyResources(this.menuStrip, "menuStrip");
this.menuStrip.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.fileToolStripMenuItem,
this.toolsToolStripMenuItem,
this.helpToolStripMenuItem});
this.menuStrip.Name = "menuStrip";
//
// fileToolStripMenuItem
//
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.menuStrip.Name = "menuStrip";
//
// fileToolStripMenuItem
//
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.saveToolStripMenuItem1});
this.fileToolStripMenuItem.ForeColor = System.Drawing.Color.White;
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
resources.ApplyResources(this.fileToolStripMenuItem, "fileToolStripMenuItem");
//
// saveToolStripMenuItem1
//
resources.ApplyResources(this.saveToolStripMenuItem1, "saveToolStripMenuItem1");
this.saveToolStripMenuItem1.Name = "saveToolStripMenuItem1";
this.saveToolStripMenuItem1.Click += new System.EventHandler(this.saveToolStripMenuItem1_Click);
//
// toolsToolStripMenuItem
//
this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.fileToolStripMenuItem.ForeColor = System.Drawing.Color.White;
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
resources.ApplyResources(this.fileToolStripMenuItem, "fileToolStripMenuItem");
//
// saveToolStripMenuItem1
//
resources.ApplyResources(this.saveToolStripMenuItem1, "saveToolStripMenuItem1");
this.saveToolStripMenuItem1.Name = "saveToolStripMenuItem1";
this.saveToolStripMenuItem1.Click += new System.EventHandler(this.saveToolStripMenuItem1_Click);
//
// toolsToolStripMenuItem
//
this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.creditsEditorToolStripMenuItem});
this.toolsToolStripMenuItem.ForeColor = System.Drawing.Color.White;
this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
resources.ApplyResources(this.toolsToolStripMenuItem, "toolsToolStripMenuItem");
//
// creditsEditorToolStripMenuItem
//
this.creditsEditorToolStripMenuItem.Image = global::PckStudio.Properties.Resources.ExportFile;
this.creditsEditorToolStripMenuItem.Name = "creditsEditorToolStripMenuItem";
resources.ApplyResources(this.creditsEditorToolStripMenuItem, "creditsEditorToolStripMenuItem");
this.creditsEditorToolStripMenuItem.Click += new System.EventHandler(this.creditsEditorToolStripMenuItem_Click);
//
// helpToolStripMenuItem
//
this.helpToolStripMenuItem.ForeColor = System.Drawing.Color.White;
this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
resources.ApplyResources(this.helpToolStripMenuItem, "helpToolStripMenuItem");
this.helpToolStripMenuItem.Click += new System.EventHandler(this.helpToolStripMenuItem_Click);
//
// treeView2
//
this.treeView2.AllowDrop = true;
resources.ApplyResources(this.treeView2, "treeView2");
this.treeView2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.treeView2.ContextMenuStrip = this.contextMenuStrip2;
this.treeView2.ForeColor = System.Drawing.Color.White;
this.treeView2.Name = "treeView2";
this.treeView2.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView2_AfterSelect);
this.treeView2.DragDrop += new System.Windows.Forms.DragEventHandler(this.Binka_DragDrop);
this.treeView2.DragEnter += new System.Windows.Forms.DragEventHandler(this.treeView2_DragEnter);
this.treeView2.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeView2_KeyDown);
//
// contextMenuStrip2
//
this.contextMenuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolsToolStripMenuItem.ForeColor = System.Drawing.Color.White;
this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
resources.ApplyResources(this.toolsToolStripMenuItem, "toolsToolStripMenuItem");
//
// creditsEditorToolStripMenuItem
//
this.creditsEditorToolStripMenuItem.Image = global::PckStudio.Properties.Resources.ExportFile;
this.creditsEditorToolStripMenuItem.Name = "creditsEditorToolStripMenuItem";
resources.ApplyResources(this.creditsEditorToolStripMenuItem, "creditsEditorToolStripMenuItem");
this.creditsEditorToolStripMenuItem.Click += new System.EventHandler(this.creditsEditorToolStripMenuItem_Click);
//
// helpToolStripMenuItem
//
this.helpToolStripMenuItem.ForeColor = System.Drawing.Color.White;
this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
resources.ApplyResources(this.helpToolStripMenuItem, "helpToolStripMenuItem");
this.helpToolStripMenuItem.Click += new System.EventHandler(this.helpToolStripMenuItem_Click);
//
// treeView2
//
this.treeView2.AllowDrop = true;
resources.ApplyResources(this.treeView2, "treeView2");
this.treeView2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.treeView2.ContextMenuStrip = this.contextMenuStrip2;
this.treeView2.ForeColor = System.Drawing.Color.White;
this.treeView2.Name = "treeView2";
this.treeView2.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView2_AfterSelect);
this.treeView2.DragDrop += new System.Windows.Forms.DragEventHandler(this.Binka_DragDrop);
this.treeView2.DragEnter += new System.Windows.Forms.DragEventHandler(this.treeView2_DragEnter);
this.treeView2.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeView2_KeyDown);
//
// contextMenuStrip2
//
this.contextMenuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.addEntryMenuItem,
this.removeEntryMenuItem});
this.contextMenuStrip2.Name = "contextMenuStrip1";
resources.ApplyResources(this.contextMenuStrip2, "contextMenuStrip2");
//
// addEntryMenuItem
//
resources.ApplyResources(this.addEntryMenuItem, "addEntryMenuItem");
this.addEntryMenuItem.Name = "addEntryMenuItem";
this.addEntryMenuItem.Click += new System.EventHandler(this.addEntryMenuItem_Click);
//
// removeEntryMenuItem
//
this.removeEntryMenuItem.Image = global::PckStudio.Properties.Resources.Del;
this.removeEntryMenuItem.Name = "removeEntryMenuItem";
resources.ApplyResources(this.removeEntryMenuItem, "removeEntryMenuItem");
this.removeEntryMenuItem.Click += new System.EventHandler(this.removeEntryMenuItem_Click);
//
// AudioEditor
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.treeView1);
this.Controls.Add(this.treeView2);
this.Controls.Add(this.menuStrip);
this.Name = "AudioEditor";
this.Style = MetroFramework.MetroColorStyle.Silver;
this.Theme = MetroFramework.MetroThemeStyle.Dark;
this.Load += new System.EventHandler(this.AudioEditor_Load);
this.contextMenuStrip1.ResumeLayout(false);
this.menuStrip.ResumeLayout(false);
this.menuStrip.PerformLayout();
this.contextMenuStrip2.ResumeLayout(false);
this.ResumeLayout(false);
this.removeEntryMenuItem,
this.verifyFileLocationToolStripMenuItem});
this.contextMenuStrip2.Name = "contextMenuStrip1";
resources.ApplyResources(this.contextMenuStrip2, "contextMenuStrip2");
//
// addEntryMenuItem
//
resources.ApplyResources(this.addEntryMenuItem, "addEntryMenuItem");
this.addEntryMenuItem.Name = "addEntryMenuItem";
this.addEntryMenuItem.Click += new System.EventHandler(this.addEntryMenuItem_Click);
//
// removeEntryMenuItem
//
this.removeEntryMenuItem.Image = global::PckStudio.Properties.Resources.Del;
this.removeEntryMenuItem.Name = "removeEntryMenuItem";
resources.ApplyResources(this.removeEntryMenuItem, "removeEntryMenuItem");
this.removeEntryMenuItem.Click += new System.EventHandler(this.removeEntryMenuItem_Click);
//
// verifyFileLocationToolStripMenuItem
//
this.verifyFileLocationToolStripMenuItem.Name = "verifyFileLocationToolStripMenuItem";
resources.ApplyResources(this.verifyFileLocationToolStripMenuItem, "verifyFileLocationToolStripMenuItem");
this.verifyFileLocationToolStripMenuItem.Click += new System.EventHandler(this.verifyFileLocationToolStripMenuItem_Click);
//
// metroCheckBox1
//
resources.ApplyResources(this.metroCheckBox1, "metroCheckBox1");
this.metroCheckBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.metroCheckBox1.ForeColor = System.Drawing.SystemColors.Window;
this.metroCheckBox1.Name = "metroCheckBox1";
this.metroCheckBox1.Theme = MetroFramework.MetroThemeStyle.Dark;
this.metroCheckBox1.UseCustomBackColor = true;
this.metroCheckBox1.UseCustomForeColor = true;
this.metroCheckBox1.UseSelectable = true;
//
// AudioEditor
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.metroCheckBox1);
this.Controls.Add(this.treeView1);
this.Controls.Add(this.treeView2);
this.Controls.Add(this.menuStrip);
this.Name = "AudioEditor";
this.Style = MetroFramework.MetroColorStyle.Silver;
this.Theme = MetroFramework.MetroThemeStyle.Dark;
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.AudioEditor_FormClosed);
this.Load += new System.EventHandler(this.AudioEditor_Load);
this.contextMenuStrip1.ResumeLayout(false);
this.menuStrip.ResumeLayout(false);
this.menuStrip.PerformLayout();
this.contextMenuStrip2.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
@@ -212,5 +236,7 @@ namespace PckStudio.Forms.Utilities
private System.Windows.Forms.ImageList catImages;
private System.Windows.Forms.ToolStripMenuItem toolsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem creditsEditorToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem verifyFileLocationToolStripMenuItem;
private MetroFramework.Controls.MetroCheckBox metroCheckBox1;
}
}

View File

@@ -14,6 +14,7 @@ using PckStudio.Classes.FileTypes;
using PckStudio.Classes.IO;
// Audio Editor by MattNL
// additional work and optimization by Miku-666
namespace PckStudio.Forms.Utilities
{
@@ -22,6 +23,8 @@ namespace PckStudio.Forms.Utilities
public bool saved = false;
public string credits = "";
public string defaultType = "yes";
string WorkingDir = "";
string tempDir = "";
PCKFile audioPCK = null;
PCKFile.FileData audioPCKFile;
bool _isLittleEndian;
@@ -32,21 +35,21 @@ namespace PckStudio.Forms.Utilities
public int Compare(object x, object y)
{
if (x == null || y == null) return -1;
return (x as TreeNode).ImageIndex.CompareTo((x as TreeNode).ImageIndex);
return ((x as TreeNode).Tag as PCKFile.FileData).type.CompareTo(((y as TreeNode).Tag as PCKFile.FileData).type);
}
}
public static readonly List<string> Categories = new List<string>
{
"Overworld",
"Nether",
"End",
"Creative",
"Menu",
"Battle",
"Tumble",
"Glide",
"Unused",
"Overworld", // 0
"Nether", // 1
"End", // 2
"Creative", // 3
"Menu/Loading", // 4
"Battle", // 5
"Tumble", // 6
"Glide", // 7
"Unused?" // 8
};
internal string GetCategoryFromId(int categoryId)
@@ -90,9 +93,82 @@ namespace PckStudio.Forms.Utilities
}
// https://stackoverflow.com/a/25064568 by Alik Khilazhev -MattNL
private void ExtractResource(string resName, string fName)
{
object ob = Properties.Resources.ResourceManager.GetObject(resName);
byte[] myResBytes = (byte[])ob;
using (FileStream fsDst = new FileStream(fName, FileMode.CreateNew, FileAccess.Write))
{
byte[] bytes = myResBytes;
fsDst.Write(bytes, 0, bytes.Length);
fsDst.Close();
fsDst.Dispose();
}
}
private void handleUtilFiles(bool extractFiles = true)
{
string asiPath = Path.Combine(tempDir, "binkawin.asi");
string mssPath = Path.Combine(tempDir, "mss32.dll");
string encoderPath = Path.Combine(tempDir, "binka_encode.exe");
// Deletes files so that System.IO exceptions are avoided
if (File.Exists(asiPath)) File.Delete(asiPath);
if (File.Exists(mssPath)) File.Delete(mssPath);
if (File.Exists(encoderPath)) File.Delete(encoderPath);
if (Directory.Exists(tempDir)) Directory.Delete(tempDir);
if (extractFiles)
{
Directory.CreateDirectory(tempDir);
ExtractResource("binka_encode", encoderPath);
//ExtractResource("mss32", mssPath);
//ExtractResource("binkawin", asiPath);
}
}
private void AudioEditor_FormClosed(object sender, FormClosedEventArgs e)
{
//FreeLibrary(library);
handleUtilFiles(false);
}
private void verifyFileLocationToolStripMenuItem_Click(object sender, EventArgs e)
{
if (treeView1.SelectedNode.Tag == null || !(treeView1.SelectedNode.Tag is PCKFile.FileData) || !(treeView2.SelectedNode.Tag is ValueTuple<string, string>)) return;
var entry = treeView2.SelectedNode;
MainForm parent = Owner.Owner as MainForm; // Gets the MainForm so we can access the Save Location
string DataDirectory = Path.Combine(Path.GetDirectoryName(parent.saveLocation), "Data");
string FileName = Path.Combine(DataDirectory, entry.Text + ".binka");
Console.WriteLine(FileName);
if (!Directory.Exists(DataDirectory))
{
MessageBox.Show("There is not a \"Data\" folder present in the pack folder", "Folder missing");
return;
}
if (File.Exists(FileName)) MessageBox.Show("\"" + entry.Text + ".binka\" exists in the \"Data\" folder", "File found");
else MessageBox.Show("\"" + entry.Text + ".binka\" does not exist in the \"Data\" folder", "File missing");
}
LOCFile loc;
public AudioEditor(PCKFile.FileData MineFile, LOCFile locFile, bool isLittleEndian)
{
loc = locFile;
WorkingDir = Directory.GetCurrentDirectory();
tempDir = Path.Combine(WorkingDir, "temp");
try
{
handleUtilFiles();
//library = LoadLibrary(Path.Combine(tempDir, "mss32.dll"));
}
catch (IOException ex)
{
MessageBox.Show("Failed to get Binka conversion files", "Exception thrown");
this.Close();
}
_isLittleEndian = isLittleEndian;
if (isLittleEndian) Text += " (PS4/Vita)";
InitializeComponent();
@@ -101,6 +177,7 @@ namespace PckStudio.Forms.Utilities
{
audioPCK = PCKFileReader.Read(stream, isLittleEndian);
}
//if (!audioPCK.meta_data.Contains("CUENAME") || audioPCK.type != 1)
//{
// throw new Exception("This is not a valid audio.pck file");
@@ -112,7 +189,7 @@ namespace PckStudio.Forms.Utilities
foreach (var property in categoryFile.properties.ToArray())
{
if (property.Item1 == "CREDITID")
locFile.RemoveLocKey(property.Item2);
loc.RemoveLocKey(property.Item2);
else if (property.Item1 == "CREDIT")
{
credits += property.Item2 + "\n";
@@ -131,6 +208,18 @@ namespace PckStudio.Forms.Utilities
}
else
{
if (categoryFile.filepath == "include_overworld" && categoryFile.type == 3)
{
PCKFile.FileData overworldMF = audioPCK.Files.Find(file => file.type == 0);
foreach(ValueTuple<string,string> property in categoryFile.properties.ToList())
{
if (overworldMF.properties.Contains(property)) categoryFile.properties.Remove(property);
}
metroCheckBox1.Checked = true;
}
TreeNode treeNode = new TreeNode(CatString);
treeNode.Tag = categoryFile;
treeNode.ImageIndex = categoryFile.type;
@@ -176,26 +265,6 @@ namespace PckStudio.Forms.Utilities
if (treeView2.Nodes.Count > 0) treeView2.SelectedNode = treeView2.Nodes[0];
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (treeView2.SelectedNode != null)
{
//var strings = (Tuple<string, string>)treeView2.SelectedNode.Tag;
//strings[1] = textBox1.Text;
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (treeView2.SelectedNode != null)
{
//Sets metadata type to new chosen one
//object[] strings = (object[])treeView2.SelectedNode.Tag;
//treeView2.SelectedNode.Text = comboBox1.Text;
//strings[0] = comboBox1.Text;
}
}
private void addCategoryStripMenuItem_Click(object sender, EventArgs e)
{
try
@@ -210,7 +279,9 @@ namespace PckStudio.Forms.Utilities
PCKFile.FileData file = new PCKFile.FileData(add.Category, GetCategoryId(add.Category));
TreeNode addNode = new TreeNode(file.filepath) { Tag = file };
audioPCK.Files.Add(file);
treeView1.Nodes.Add(addNode);
addNode.ImageIndex = GetCategoryId(add.Category);
addNode.SelectedImageIndex = GetCategoryId(add.Category);
treeView1.Nodes.Add(addNode);
treeView1.Sort();
add.Dispose(); // diposes generated metadata adding dialog data
}
@@ -225,12 +296,24 @@ namespace PckStudio.Forms.Utilities
{
if (treeView1.SelectedNode == null && !(treeView1.SelectedNode.Tag is PCKFile.FileData)) return;
var file = treeView1.SelectedNode.Tag as PCKFile.FileData;
TreeNode meta = new TreeNode("CUENAME");
meta.Tag = file;
treeView2.Nodes.Add(meta);
file.properties.Add(new ValueTuple<string, string>(defaultType, "CUENAME"));
}
MainForm parent = Owner.Owner as MainForm; // Gets the MainForm so we can access the Save Location
string DataDirectory = Path.Combine(Path.GetDirectoryName(parent.saveLocation), "Data");
if (!Directory.Exists(DataDirectory))
{
MessageBox.Show("There is not a \"Data\" folder present in the pack folder", "Folder missing");
return;
}
OpenFileDialog ofn = new OpenFileDialog();
ofn.Multiselect = true;
ofn.Filter = "BINKA files (*.binka)|*.binka|WAV files (*.wav)|*.wav";
ofn.Title = "Please choose WAV or BINKA files to add to your pack";
ofn.ShowDialog();
ofn.Dispose();
if (String.IsNullOrEmpty(ofn.FileName)) return; // Return if name is null or if the user cancels
ProcessEntries(ofn.FileNames, DataDirectory);
}
private void removeCategoryStripMenuItem_Click(object sender, EventArgs e)
{
@@ -274,27 +357,81 @@ namespace PckStudio.Forms.Utilities
}
}
private void Binka_DragDrop(object sender, DragEventArgs e)
async void ProcessEntries(string[] FileList, string DataDirectory)
{
if (treeView1.SelectedNode != null &&
treeView1.SelectedNode.Tag is PCKFile.FileData)
foreach (string file in FileList)
{
string[] FileList = (string[])e.Data.GetData(DataFormats.FileDrop, false);
var file = treeView1.SelectedNode.Tag as PCKFile.FileData;
foreach (string binka in FileList)
if (Path.GetExtension(file) == ".binka" || Path.GetExtension(file) == ".wav")
{
if(Path.GetExtension(binka) == ".binka")
string new_loc = Path.Combine(DataDirectory, Path.GetFileNameWithoutExtension(file) + ".binka");
bool duplicate_song = false; // To handle if a file already in the pack is dropped back in
if (File.Exists(new_loc))
{
TreeNode meta = new TreeNode("CUENAME");
var property = new ValueTuple<string, string>("CUENAME", Path.GetFileNameWithoutExtension(binka));
meta.Tag = property;
treeView2.Nodes.Add(meta);
file.properties.Add(property);
}
duplicate_song = File.ReadAllBytes(file).Length == File.ReadAllBytes(new_loc).Length;
if (!duplicate_song)
{
DialogResult user_prompt = MessageBox.Show("\"" + Path.GetFileNameWithoutExtension(file) + ".binka\" already exists. Continuing will replace the existing file. Are you sure you want to continue moving the file? By pressing no, you will skip this file. You can also cancel all pending file operations.", "File already exists", MessageBoxButtons.YesNoCancel);
if (user_prompt == DialogResult.Cancel) break;
else if (user_prompt == DialogResult.No) continue;
}
}
if (Path.GetExtension(file) == ".wav") // Convert Wave to BINKA
{
Cursor.Current = Cursors.WaitCursor;
Audio.pleaseWait waitDiag = new Audio.pleaseWait();
waitDiag.Show(this);
int error_code = 0;
await Task.Run(() =>
{
var process = new System.Diagnostics.Process();
process.StartInfo.FileName = Path.Combine(tempDir, "binka_encode.exe");
process.StartInfo.Arguments = "\"" + file + "\" \"" + new_loc + "\"";
process.StartInfo.UseShellExecute = true;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
});
waitDiag.Close();
waitDiag.Dispose();
Cursor.Current = Cursors.Default;
if (error_code != 0) continue;
}
else if (!duplicate_song)
{
Console.WriteLine(Path.GetFileName(file));
File.Delete(Path.Combine(DataDirectory, Path.GetFileName(file)));
File.Copy(file, Path.Combine(DataDirectory, Path.GetFileName(file)));
}
TreeNode meta = new TreeNode(Path.GetFileNameWithoutExtension(file));
var property = new ValueTuple<string, string>("CUENAME", Path.GetFileNameWithoutExtension(file));
meta.Tag = property;
treeView2.Nodes.Add(meta);
(treeView1.SelectedNode.Tag as PCKFile.FileData).properties.Add(property);
}
}
}
private void Binka_DragDrop(object sender, DragEventArgs e)
{
if (treeView1.SelectedNode == null && !(treeView1.SelectedNode.Tag is PCKFile.FileData)) return;
MainForm parent = Owner.Owner as MainForm; // Gets the MainForm so we can access the Save Location
string DataDirectory = Path.Combine(Path.GetDirectoryName(parent.saveLocation), "Data");
if (!Directory.Exists(DataDirectory))
{
MessageBox.Show("There is not a \"Data\" folder present in the pack folder", "Folder missing");
return;
}
ProcessEntries((string[])e.Data.GetData(DataFormats.FileDrop, false), DataDirectory);
}
private void saveToolStripMenuItem1_Click(object sender, EventArgs e)
{
if(!cats.Contains(GetCategoryFromId(0)) ||
@@ -307,8 +444,25 @@ namespace PckStudio.Forms.Utilities
bool emptyCat = false;
PCKFile.FileData overworldMF = new PCKFile.FileData("", -1);
foreach (PCKFile.FileData mf in audioPCK.Files)
if(mf.properties.Count == 0) emptyCat = true;
{
mf.filepath = "";
if (metroCheckBox1.Checked && mf.type == 0) overworldMF = mf;
if (metroCheckBox1.Checked && mf.type == 3 && overworldMF.type != -1)
{
foreach (ValueTuple<string,string> property in overworldMF.properties)
{
if (property.Item1 == "CUENAME" && !mf.properties.Contains(property))
{
mf.properties.Add(property);
Console.WriteLine(property.Item2);
}
}
mf.filepath = "include_overworld";
}
if (mf.properties.Count == 0) emptyCat = true;
}
if (emptyCat)
{
@@ -319,10 +473,16 @@ namespace PckStudio.Forms.Utilities
using (StringReader reader = new StringReader(credits))
{
string line;
int creditCount = 1;
while ((line = reader.ReadLine()) != null)
{
ValueTuple<string, string> credit_entry = new ValueTuple<string, string>("CREDIT", line);
audioPCK.Files[0].properties.Add(credit_entry);
//string credit_id = "IDS_CREDIT" + (creditCount != 1 ? creditCount.ToString() : "");
//ValueTuple<string, string> creditid_entry = new ValueTuple<string, string>("CREDITID", credit_id);
//audioPCK.Files[0].properties.Add(creditid_entry);
//loc.AddLocKey(credit_id, line);
//creditCount++;
//Console.WriteLine(line);
}
}
@@ -341,11 +501,12 @@ namespace PckStudio.Forms.Utilities
private void helpToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Simply drag and drop BINKA audio files into the right tree to add them to the category selected on the left tree.\n\n" +
MessageBox.Show("Simply drag and drop BINKA or WAV audio files into the right tree to add them to the category selected on the left tree.\n\n" +
"The \"Menu\" category will only play once when loading the pack, and never again.\n\n" +
"The \"Creative\" category will only play songs listed in that category, and unlike other editions of Minecraft, will NOT play songs from the Overworld category. You can fix this by adding your overworld songs to the Creative category too.\n\n" +
"The \"Creative\" category will only play songs listed in that category, and unlike other editions of Minecraft, will NOT play songs from the Overworld category. You can fix this by clicking the checkbox found at the top of the form.\n\n" +
"The mini game categories will only play if you have your pack loaded in those mini games.\n\n" +
"You can edit the credits for the PCK in the Credits editor! No more managing credit IDs!", "Help");
"You can edit the credits for the PCK in the Credits editor! No more managing credit IDs!\n\n" +
"You can modify and create PSVita and PS4 audio pcks by clicking \"PS4/Vita\" in the \"Create -> Audio.pck\" context menu", "Help");
}
private void creditsEditorToolStripMenuItem_Click(object sender, EventArgs e)

View File

@@ -125,26 +125,6 @@
<value>127, 8</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="addCategoryStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAABSSURBVDhP5c0x
DsAgDENRxt7/wmkNSpRGf0CCCZAegxNMM7MlGMp3dIU6dxhKf/QMNxRogeQC8ivw5Vn7C0heJlFA+kL5
jWAohxRkde4wnGftBS90axNmphIGAAAAAElFTkSuQmCC
</value>
</data>
<data name="addCategoryStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>168, 22</value>
</data>
<data name="addCategoryStripMenuItem.Text" xml:space="preserve">
<value>Add Category</value>
</data>
<data name="removeCategoryStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>168, 22</value>
</data>
<data name="removeCategoryStripMenuItem.Text" xml:space="preserve">
<value>Remove Category</value>
</data>
<data name="contextMenuStrip1.Size" type="System.Drawing.Size, System.Drawing">
<value>169, 48</value>
</data>
@@ -165,199 +145,216 @@
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADS
LAAAAk1TRnQBSQFMAgEBCAEAARgBAAEYAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABMAMAAQEBAAEgBgABMP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AIgABTwF+AccB/wFP
AX4BxwH/AUoBdwG8Af8BNgFUAYAB/wF0AZYBzAH/ATYBVAGAAf8BZgGNAckB/wFPAX4BxwH/AU8BfgHH
Af8BTwF+AccB/wFKAXcBvAH/ATYBVAGAAf8BdAGWAcwB/wE2AVQBgAH/AWYBjQHJAf8BTwF+AccB/wEg
ASUBCAH/ASABJQEIAf8BIAElAQgB/ygAAygB/wMoAf8DKAH/gAABTwF+AccB/wFKAXcBvAH/ATYBVAGA
Af8BiwGmAc8B/wGLAaYBzwH/AXQBlgHMAf8BNgFUAYAB/wFXAXsBsgH/AUcBcQGxAf8BQwFsAakB/wE2
AVQBgAH/AYsBpgHPAf8BiwGmAc8B/wF0AZYBzAH/ATYBVAGAAf8BZgGNAckB/wEgASUBCAH/AXcBigEe
Af8BIAElAQgB/ygAAygB/wOWAf8DKAH/CAABFQE2AUkB/wELAR4BKAH/IAABCwEeASgB/wEVATYBSQH/
SAABZgGNAckB/wE2AVQBgAH/AYsBpgHPAf8BeQGRAbUB/wE8AUgBWgH/ATwBSAFaAf8BMgFBAVkB/wEX
ASQBNwH/ASYBNQFNAf8BFwEkATcB/wE8AUgBWgH/ATwBSAFaAf8BPAFIAVoB/wF5AZEBtQH/AXQBlgHM
Af8BNgFUAYAB/wEgASUBCAH/ASABJQEIAf8BHgFOAWgB/wELAR4BKAH/CAADKAH/AygB/xAAAQsBHgEo
Af8BHgFOAWgB/wMoAf8DKAH/BAABFQE2AUkB/wEnAWcBiQH/AQsBHgEoAf8gAAELAR4BKAH/AScBZwGJ
Af8BFQE2AUkB/xAAAzUB/wM1Af8YAAM1Af8DNQH/DAABNgFUAYAB/wGLAaYBzwH/AYsBpgHPAf8BPAFI
AVoB/wHNAcIBxQH/Aa8BpQGoAf8BpwGdAZ8B/wGZAY8BkQH/AYABdAF3Af8BgAF0AXcB/wGAAXQBdwH/
AYABdAF3Af8BgAF0AXcB/wE8AUgBWgH/AYsBpgHPAf8BdAGWAcwB/wgAARUBNgFJAf8BJwFnAYkB/wEL
AR4BKAH/BAADKAH/A2sB/wMoAf8DKAH/BAABCwEeASgB/wEnAWcBiQH/ARUBNgFJAf8MAAELAR4BKAH/
ARUBNgFJAf8BJwFnAYkB/wELAR4BKAH/GAABCwEeASgB/wEnAWcBiQH/ARUBNgFJAf8BCwEeASgB/xAA
AzUB/wPBAf8DNQH/EAADNQH/AZoBsgEnAf8DNQH/DAABPwFjAZoB/wE2AVQBgAH/AYsBpgHPAf8BPAFI
AVoB/wHNAcIBxQH/AbkBsAGzAf8BuQGwAbMB/wG5AbABswH/AbkBsAGzAf8BuQGwAbMB/wG5AbABswH/
AbkBsAGzAf8BgAF0AXcB/wE8AUgBWgH/AYsBpgHPAf8BNgFUAYAB/wwAARUBNgFJAf8BHgFOAWgB/wEg
ASUBCAH/AXcBigEeAf8DKAH/A2sB/wOWAf8DKAH/AR4BTgFoAf8BFQE2AUkB/xgAARUBNgFJAf8BHgFO
AWgB/wELAR4BKAH/EAABCwEeASgB/wEeAU4BaAH/ARUBNgFJAf8UAAM1Af8DwQH/A8EB/wPYAf8DNQH/
CAADNQH/AawBxwErAf8BmgGyAScB/wGaAbIBJwH/AzUB/wgAAU8BfgHHAf8BPwFjAZoB/wE2AVQBgAH/
ATwBSAFaAf8BzQHCAcUB/wG5AbABswH/ASMBJQGCAf8BuQGwAbMB/wF3AXoBzgH/AbkBsAGzAf8BZwFp
AawB/wG5AbABswH/AYABdAF3Af8BPAFIAVoB/wE2AVQBgAH/AUoBdwG8Af8QAAEgASUBCAH/AXcBigEe
Af8BIAElAQgB/wEgASUBCAH/AygB/wMoAf8DlgH/AygB/yAAARUBNgFJAf8BJwFnAYkB/wELAR4BKAH/
CAABCwEeASgB/wEnAWcBiQH/ARUBNgFJAf8YAAM1Af8D2AH/A9gF/wM1Af8IAAM1Af8BywHrATMB/wGs
AccBKwH/AawBxwErAf8DNQH/CAABTwF+AccB/wFPAX4BxwH/AT8BYwGaAf8BFwEkATcB/wHVAcoBzQH/
AbkBsAGzAf8BuQGwAbMB/wG5AbABswH/AbkBsAGzAf8BuQGwAbMB/wG5AbABswH/AbkBsAGzAf8BgAF0
AXcB/wEXASQBNwH/AUoBdwG8Af8BTwF+AccB/wwAASABJQEIAf8BdwGKAR4B/wEgASUBCAH/AawBxwEr
Af8DRAX/A9gB/wMoAf8DlgH/AygB/yAAARUBNgFJAf8BJwFnAYkB/wELAR4BKAH/AQsBHgEoAf8BHgFO
AWgB/wEVATYBSQH/HAADNQH/A8EJ/wM1Af8IAAM1Af8BywHrATMB/wHLAesBMwH/AZoBsgEnAf8DNQH/
CAABTwF+AccB/wFPAX4BxwH/AU8BfgHHAf8BGgEpAT8B/wHVAcoBzQH/AbkBsAGzAf8BPgGHAcIB/wG5
AbABswH/AXcBegHOAf8BuQGwAbMB/wE2AToBzQH/AbkBsAGzAf8BgAF0AXcB/wEmATUBTQH/AU8BfgHH
Af8BTwF+AccB/wwAASABJQEIAf8BdwGKAR4B/wEgASUBCAH/A0QF/wPYBf8DKAH/A5YB/wMoAf8kAAEV
ATYBSQH/AQsBHgEoAf8BJwFnAYkB/wEVATYBSQH/HAADNQH/A8EB/wPYAf8D2AX/AzUB/wgAAzUB/wHL
AesBMwH/AawBxwErAf8BrAHHASsB/wGaAbIBJwH/AzUB/wQAAU8BfgHHAf8BTwF+AccB/wFPAX4BxwH/
ARcBJAE3Af8B2gHPAdIB/wG5AbABswH/AbkBsAGzAf8BuQGwAbMB/wG5AbABswH/AbkBsAGzAf8BuQGw
AbMB/wG5AbABswH/AZkBjwGRAf8BFwEkATcB/wFmAY0ByQH/AU8BfgHHAf8IAAEgASUBCAH/AVUBYwEV
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADk
MAAAAk1TRnQBSQFMAgEBCQEAASgBAAEoAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABMAMAAQEBAAEgBgABMBIAAzgB/wM1Af8DNQH/AzMB/wMwAf8DLwH/Ay0B/wMtAf8DJAH/AzsB/wM4
Af8DNQH/Ay0B/wMnAf8DNgH/AzIB/8AAAzgB/wN/Af8DeQH/A3kB/wN5Af8DcQH/A3EB/wN5Af8DeQH/
A3EB/wNxAf8DcQH/A3kB/wN5Af8DfwH/AzIB/8AAAzIB/wN2Af8DsAH/A7AB/wOvAf8DrwH/A68B/wOo
Af8DqAH/A6gB/wOjAf8DowH/A7AB/wOoAf8DcQH/AyMB/8AAAysB/wN/Af8DsAH/A7AB/wOwAf8DqAH/
A50B/wNlAf8DZQH/A6MB/wOwAf8DsAH/A6gB/wOwAf8DfwH/AyQB/8AAAjcBOwH/A38B/wOoAf8DxQH/
A8UB/wOwAf8DnQH/A50B/wOdAf8DnQH/A50B/wPFAf8DxQH/A6MB/wN2Af8COwE/Af/AAAE7ATwBQAH/
A3kB/wOwAf8DAAH/AwAB/wPFAf8DsAH/A50B/wOwAf8DnQH/A50B/wMAAf8DAAH/A8UB/wN5Af8CPwFD
Af/AAAI8AUAB/wOOAf8DxQH/AwAB/wMAAf8DnQH/A7AB/wOdAf8DnQH/A50B/wOdAf8DAAH/AwAB/wOw
Af8DjgH/AkYBSgH/wAACOwE/Af8DZQH/A2UB/wNlAf8DZQH/A2UB/wNlAf8DsAH/A50B/wNlAf8DZQH/
A2UB/wNlAf8DZQH/A2UB/wI3AToB/8AAAjsBPwH/A8UB/wOwAf8DsAH/A50B/wOdAf8DnQH/A50B/wOd
Af8DnQH/A50B/wOdAf8DnQH/A50B/wOOAf8CRwFLAf/AAAJCAUYB/wPFAf8DxQH/A8UB/wPFAf8DxQH/
A68B/wOvAf8DrwH/A8UB/wPFAf8DrwH/A8UB/wOvAf8DrwH/AkYBSgH/wAACQgFGAf8COAE8Af8CPAFA
Af8CPAFAAf8CQAFEAf8CQAFEAf8CQAFEAf8CNwE6Af8CNwE6Af8CQAFEAf8CPAFAAf8CNwE6Af8CNwE6
Af8COwE/Af8CRgFKAf8CQAFEAf/AAAI0ATcB/wIgASMB/wIgASMB/wIeASEB/wIgASMB/wIhASQB/wIe
ASEB/wImASkB/wIeASEB/wIiASUB/wIjASYB/wIgASMB/wIjAScB/wIjASYB/wIjASYB/wI7AT8B/8AA
Ay0B/wM1Af8DNQH/AzMB/wMwAf8DLwH/Ay0B/wMtAf8DJAH/AzsB/wM4Af8DNQH/Ay0B/wMnAf8DNgH/
AykB/8AAAykB/wNSAf8DeAH/A1UB/wNiAf8DjwH/A48B/wN6Af8DZQH/A1EB/wOEAf8DfwH/A18B/wN4
Af8DUAH/AzAB/8AAAzgB/wNsAf8DWgH/A2EB/wNHAf8DVwH/A3IB/wNyAf8DTAH/A2EB/wNkAf8DYQH/
A1cB/wNFAf8DVgH/AzIB/8AAAzgB/wM1Af8DNQH/AzMB/wMwAf8DLwH/Ay0B/wMtAf8DJAH/AzsB/wM4
Af8DNQH/Ay0B/wMnAf8DNgH/AzIB//8AAQABIAElAQgB/wEgASUBCAH/ASABJQEIAf8oAAMoAf8DKAH/
AygB/5QAAQUBEAEWAf8BBQEQARYB/wEFARABFgH/IAABIAElAQgB/wF3AYoBHgH/ASABJQEIAf8oAAMo
Af8DlgH/AygB/wgAARUBNgFJAf8BCwEeASgB/yAAAQsBHgEoAf8BFQE2AUkB/1gAAQUBEAEWAf8BEwE+
AVQB/wEMASgBOAH/AQwBKAE4Af8BBQEQARYB/wEFARABFgH/GAABIAElAQgB/wEgASUBCAH/AR4BTgFo
Af8BCwEeASgB/wgAAygB/wMoAf8QAAELAR4BKAH/AR4BTgFoAf8DKAH/AygB/wQAARUBNgFJAf8BJwFn
AYkB/wELAR4BKAH/IAABCwEeASgB/wEnAWcBiQH/ARUBNgFJAf8QAAM1Af8DNQH/GAADNQH/AzUB/xgA
AQUBEAEWAf8BEwE+AVQB/wPWAf8DmQH/A5kB/wEMASgBOAH/AQwBKAE4Af8BBQEQARYB/wEFARABFgH/
GAABFQE2AUkB/wEnAWcBiQH/AQsBHgEoAf8EAAMoAf8DawH/AygB/wMoAf8EAAELAR4BKAH/AScBZwGJ
Af8BFQE2AUkB/wwAAQsBHgEoAf8BFQE2AUkB/wEnAWcBiQH/AQsBHgEoAf8YAAELAR4BKAH/AScBZwGJ
Af8BFQE2AUkB/wELAR4BKAH/EAADNQH/A8EB/wM1Af8QAAM1Af8BmgGyAScB/wM1Af8UAAEFARABFgH/
ARMBPgFUAf8D1gH/A7cB/wO3Af8DtwH/A5kB/wO3Af8BDAEoATgB/wEMASgBOAH/AQUBEAEWAf8BBQEQ
ARYB/xQAARUBNgFJAf8BHgFOAWgB/wEgASUBCAH/AXcBigEeAf8DKAH/A2sB/wOWAf8DKAH/AR4BTgFo
Af8BFQE2AUkB/xgAARUBNgFJAf8BHgFOAWgB/wELAR4BKAH/EAABCwEeASgB/wEeAU4BaAH/ARUBNgFJ
Af8UAAM1Af8DwQH/A8EB/wPYAf8DNQH/CAADNQH/AawBxwErAf8BmgGyAScB/wGaAbIBJwH/AzUB/wwA
AQUBEAEWAf8BEwE+AVQB/wPWAf8DtwH/ARMBPgFUAf8BDAEoATgB/wEMASgBOAH/A7cB/wOZAf8DmQH/
A7cB/wEMASgBOAH/AQwBKAE4Af8BBQEQARYB/wEFARABFgH/EAABIAElAQgB/wF3AYoBHgH/ASABJQEI
Af8BIAElAQgB/wMoAf8DKAH/A5YB/wMoAf8gAAEVATYBSQH/AScBZwGJAf8BCwEeASgB/wgAAQsBHgEo
Af8BJwFnAYkB/wEVATYBSQH/GAADNQH/A9gB/wPYBf8DNQH/CAADNQH/AcsB6wEzAf8BrAHHASsB/wGs
AccBKwH/AzUB/wgAAQUBEAEWAf8BEwE+AVQB/wPWAf8DtwH/ARMBPgFUAf8BFwFLAWUB/wEXAUsBZQH/
ARcBSwFlAf8BDAEoATgB/wEMASgBOAH/A7cB/wOZAf8DtwH/A5kB/wEMASgBOAH/AQUBEAEWAf8MAAEg
ASUBCAH/AXcBigEeAf8BIAElAQgB/wGsAccBKwH/A0QF/wPYAf8DKAH/A5YB/wMoAf8gAAEVATYBSQH/
AScBZwGJAf8BCwEeASgB/wELAR4BKAH/AR4BTgFoAf8BFQE2AUkB/xwAAzUB/wPBCf8DNQH/CAADNQH/
AcsB6wEzAf8BywHrATMB/wGaAbIBJwH/AzUB/wgAAQgBGwEmAf8BEwE+AVQB/wO3Af8BEwE+AVQB/wEX
AUsBZQH/ARcBSwFlAf8BFwFLAWUB/wEXAUsBZQH/ARcBSwFlAf8BFwFLAWUB/wEMASgBOAH/AQwBKAE4
Af8DmQH/A7cB/wOZAf8DWwH/DAABIAElAQgB/wF3AYoBHgH/ASABJQEIAf8DRAX/A9gF/wMoAf8DlgH/
AygB/yQAARUBNgFJAf8BCwEeASgB/wEnAWcBiQH/ARUBNgFJAf8cAAM1Af8DwQH/A9gB/wPYBf8DNQH/
CAADNQH/AcsB6wEzAf8BrAHHASsB/wGsAccBKwH/AZoBsgEnAf8DNQH/BAABCAEbASYB/wETAT4BVAH/
ARMBPgFUAf8BFwFLAWUB/wEXAUsBZQH/ARcBSwFlAf8BFwFLAWUB/wEXAUsBZQH/ARcBSwFlAf8BFwFL
AWUB/wEXAUsBZQH/ARcBSwFlAf8BDAEoATgB/wEMASgBOAH/A7cB/wNbAf8IAAEgASUBCAH/AVUBYwEV
Af8BIAElAQgB/wNEBf8D2AX/A0QB/wE2AT8BDgH/AygB/wNrAf8DKAH/IAABCwEeASgB/wEnAWcBiQH/
ARUBNgFJAf8BCwEeASgB/xwAAzUB/wPBAf8DwQH/A8EF/wM1Af8IAAM1Af8BywHrATMB/wGaAbIBJwH/
AZoBsgEnAf8BmgGyAScB/wM1Af8EAAFPAX4BxwH/AU8BfgHHAf8BNgFUAYAB/wE8AUgBWgH/AdYBywHO
Af8BuQGwAbMB/wFRAVQBqAH/AbkBsAGzAf8BLAEuAaIB/wG5AbABswH/ATIBbAFOAf8BuQGwAbMB/wGn
AZ0BnwH/ATIBQQFZAf8BNgFUAYAB/wFmAY0ByQH/CAABIAElAQgB/wEgASUBCAH/A0QF/wPYBf8DRAH/
AZoBsgEnAf8BmgGyAScB/wM1Af8EAAEIARsBJgH/ARMBPgFUAf8BFwFLAWUB/wEXAUsBZQH/ARcBSwFl
Af8BFwFLAWUB/wEMASgBOAH/ARcBSwFlAf8BFwFLAWUB/wEXAUsBZQH/ARcBSwFlAf8BFwFLAWUB/wEX
AUsBZQH/ARcBSwFlAf8BDAEoATgB/wEFARABFgH/CAABIAElAQgB/wEgASUBCAH/A0QF/wPYBf8DRAH/
AawBxwErAf8BywHrATMB/wE2AT8BDgH/AygB/wMoAf8UAANEAf8EAAELAR4BKAH/AScBZwGJAf8BFQE2
AUkB/wEVATYBSQH/AScBZwGJAf8BCwEeASgB/wQAATYBPwEOAf8QAAM1Af8DwQH/A9gB/wPYBf8DNQH/
CAADNQH/AcsB6wEzAf8BrAHHASsB/wGsAccBKwH/AZoBsgEnAf8DNQH/BAABZgGNAckB/wE2AVQBgAH/
CAADNQH/AcsB6wEzAf8BrAHHASsB/wGsAccBKwH/AZoBsgEnAf8DNQH/BAABCAEbASYB/wEIARsBJgH/
ARcBSwFlAf8BFwFLAWUB/wEXAUsBZQH/AQwBKAE4Af8BFwFLAWUB/wEXAUsBZQH/ARcBSwFlAf8BDAEo
ATgB/wEMASgBOAH/AQwBKAE4Af8BFwFLAWUB/wEXAUsBZQH/AQgBGwEmAf8QAANEBf8D2AX/A0QB/wE2
AT8BDgH/AcsB6wEzAf8BrAHHASsB/wHLAesBMwH/ATYBPwEOAf8UAANEBf8BCwEeASgB/wEnAWcBiQH/
ARUBNgFJAf8IAAEVATYBSQH/AScBZwGJAf8BCwEeASgB/wHLAesBMwH/ATYBPwEOAf8MAAM1Af8DwQH/
A8EB/wPBBf8DNQH/CAADNQH/AcsB6wEzAf8BmgGyAScB/wGaAbIBJwH/AZoBsgEnAf8DNQH/DAABCAEb
ASYB/wEIARsBJgH/ARcBSwFlAf8BFwFLAWUB/wEXAUsBZQH/ARcBSwFlAf8BDAEoATgB/wEMASgBOAH/
AQwBKAE4Af8BFwFLAWUB/wEXAUsBZQH/AQgBGwEmAf8QAANEBf8D2AX/A0QB/wgAATYBPwEOAf8BywHr
ATMB/wGsAccBKwH/AcsB6wEzAf8BNgE/AQ4B/wwAA0QF/wPYAf8DwQH/ARUBNgFJAf8QAAEVATYBSQH/
AZoBsgEnAf8BrAHHASsB/wHLAesBMwH/ATYBPwEOAf8IAAM1Af8DwQH/A9gB/wPYBf8DNQH/CAADNQH/
AcsB6wEzAf8BrAHHASsB/wGsAccBKwH/AZoBsgEnAf8DNQH/FAABCAEbASYB/wEIARsBJgH/ARcBSwFl
Af8BFwFLAWUB/wEMASgBOAH/ARcBSwFlAf8BFwFLAWUB/wEXAUsBZQH/AQgBGwEmAf8QAANEBf8D2AX/
A0QB/xAAATYBPwEOAf8BywHrATMB/wGsAccBKwH/AcsB6wEzAf8BNgE/AQ4B/wQAA0QF/wPYAf8DwQH/
A9gF/wNEAf8IAAE2AT8BDgH/AcsB6wEzAf8BrAHHASsB/wGaAbIBJwH/AawBxwErAf8BywHrATMB/wE2
AT8BDgH/CAADNQH/AzUB/wPYBf8DNQH/AzUB/wM1Af8DNQH/AcsB6wEzAf8BrAHHASsB/wM1Af8DNQH/
IAABCAEbASYB/wEIARsBJgH/ARcBSwFlAf8BFwFLAWUB/wEXAUsBZQH/AQgBGwEmAf8QAANEBf8D2AX/
A0QB/xgAATYBPwEOAf8BywHrATMB/wGsAccBKwH/AcsB6wEzAf8BNgE/AQ4B/wNEBf8DwQH/A9gF/wNE
Af8QAAE2AT8BDgH/AcsB6wEzAf8BrAHHASsB/wGaAbIBJwH/AcsB6wEzAf8BNgE/AQ4B/xAAAzUB/wM1
Af8DNQH/AzUB/wM1Af8DNQH/AzUB/wM1Af8wAAEIARsBJgH/AQgBGwEmAf8BCAEbASYB/xQAA0QB/wPY
Bf8DRAH/IAABNgE/AQ4B/wHLAesBMwH/AawBxwErAf8BNgE/AQ4B/wNEAf8DwQn/A0QB/xgAATYBPwEO
Af8BywHrATMB/wHLAesBMwH/AZoBsgEnAf8BNgE/AQ4B/4AAA0QB/wNEAf8DRAH/KAABNgE/AQ4B/wE2
AT8BDgH/ATYBPwEOAf8EAANEAf8DRAH/A0QB/yAAATYBPwEOAf8BNgE/AQ4B/wE2AT8BDgH/RAABSgFs
AZYB/wE6AVUBeQH/AVwBhQG5Af8BSgFsAZYB/wFKAWwBlgH/AToBVQF5Af8DhwH/AToBVQF5Af8BSgFs
AZYB/wFKAWwBlgH/AToBVQF5Af8BOgFVAXkB/wFKAWwBlgH/AUoBbAGWAf8BOgFVAXkB/wEpAT0BWQH/
AlkBpgH/AlkBpgH/AkwBgwH/Ah4BPwH/ARYBHgFdAf8CCQEZAf8CEQEpAf8CCAE8Af8CWAGkAf8BWQFy
Aa8B/wIkAUkB/wFAAVIBkAH/AhoBOAH/AhwBPAH/Ah0BOAH/AnMBwgH/AZkC1QH/AcUC+QH/AaYB5gHf
Af8BmQLVAf8BngHcAdkB/wHFAvkB/wG1AfcB6AH/AYkBvQHDAf8BngHcAdkB/wGeAdwB2QH/AdAC+gH/
AbUB9wHoAf8BiQG9AcMB/wGJAb0BwwH/AbYB+AHrAf8BngHcAdkB/wFPAX4BxwH/AU8BfgHHAf8BSgF3
AbwB/wE2AVQBgAH/AXQBlgHMAf8BNgFUAYAB/wFmAY0ByQH/AU8BfgHHAf8BTwF+AccB/wFPAX4BxwH/
AUoBdwG8Af8BNgFUAYAB/wF0AZYBzAH/ATYBVAGAAf8BZgGNAckB/wFPAX4BxwH/AUoBbAGWAf8BOgFV
AXkB/wEpAT0BWQH/AVwBhQG5Af8BOgFVAXkB/wEpAT0BWQH/AToBVQF5Af8BKQE9AVkB/wFcAYUBuQH/
AVwBhQG5Af8BOgFVAXkB/wFKAWwBlgH/AToBVQF5Af8BOgFVAXkB/wFKAWwBlgH/AUoBbAGWAf8CNQFo
Af8CEQEpAf8CCQEmAf8CZwGvAf8CBgFeAf8COAFsAf8CBgFZAf8CCAE8Af8CJwFOAf8CCAE8Af8BWQFy
Aa8B/wIIAWgB/wJYAZUB/wJIAYgB/wIUAS8B/wIZATIB/wG1AfcB6AH/AZQB0AHUAf8BiQG9AcMB/wGe
AdwB2QH/AaYB5gHeAf8BngHcAdkB/wGeAd4B2QH/Ab0B+QH0Af8BvAH4AfIB/wG9AfkB9AH/AZ4B3AHZ
Af8BtgH4AesB/wGtAe0B4AH/AcUC+QH/AcUC+QH/AbQB+AHsAf8BTwF+AccB/wFKAXcBvAH/ATYBVAGA
Af8BiwGmAc8B/wGLAaYBzwH/AXQBlgHMAf8BNgFUAYAB/wFXAXsBsgH/AUcBcQGxAf8BQwFsAakB/wE2
AVQBgAH/AYsBpgHPAf8BiwGmAc8B/wF0AZYBzAH/ATYBVAGAAf8BZgGNAckB/wE6AVUBeQH/AUoBbAGW
Af8BOgFVAXkB/wE6AVUBeQH/AUQBWAF0Af8BOgFVAXkB/wFKAWwBlgH/AUoBbAGWAf8BOgFVAXkB/wEp
AT0BWQH/AVwBhQG5Af8BKQE9AVkB/wE6AVUBeQH/AVwBhQG5Af8BSgFsAZYB/wFKAWwBlgH/AngBygH/
AkwBgwH/AjIBYwH/AncByQH/AgwBfAH/AlwBqgH/AjYBXwH/AgkBHAH/AjoBZwH/AhMBmgH/AmkBsgH/
AgYBWgH/Al0BngH/AgYBWgH/AkEBfAH/AhkBMQH/AYkBvQHDAf8BiQG9AcMB/wGVAc0B0wH/AZkC1QH/
AbUB9wHoAf8BtgH4AesB/wHQAvoB/wG1AfcB6AH/AaYB5gHeAf8BmQLXAf8BngHeAdkB/wG2AfgB6wH/
AZ4B3gHZAf8BlAHTAdQB/wGeAdwB2QH/AcUC+QH/AWYBjQHJAf8BNgFUAYAB/wGLAaYBzwH/AXkBkQG1
Af8BPAFIAVoB/wE8AUgBWgH/ATIBQQFZAf8BFwEkATcB/wEmATUBTQH/ARcBJAE3Af8BPAFIAVoB/wE8
AUgBWgH/ATwBSAFaAf8BeQGRAbUB/wF0AZYBzAH/ATYBVAGAAf8BOgFVAXkB/wEpAT0BWQH/AUoBbAGW
Af8BOgFVAXkB/wFKAWwBlgH/AUoBbAGWAf8BXAGFAbkB/wE6AVUBeQH/AToBVQF5Af8BOgFVAXkB/wE6
AVUBeQH/AToBVQF5Af8BOgFVAXkB/wE6AVUBeQH/AVwBhQG5Af8BXAGFAbkB/wJzAcIB/wJZAaYB/wIR
ASkB/wIZATIB/wIRASkB/wIJARwB/wI6AWcB/wIGAVoB/wIlAUUB/wIJARsB/wJzAcIB/wILAXUB/wJP
AYgB/wI8AXMB/wE+AVABjQH/AjYBXwH/AbYB+AHrAf8BiQG9AcMB/wGMAcABxgH/AYwBwAHGAf8BxQL5
Af8BngHeAdkB/wGJAb0BwwH/AZUBzQHTAf8BiQG9AcMB/wGJAb0BwwH/AbYB+AHrAf8BtgH4AesB/wGJ
Ab0BwwH/AZkC1wH/AZkC1wH/AcUC+QH/ATYBVAGAAf8BiwGmAc8B/wGLAaYBzwH/ATwBSAFaAf8BzQHC
AcUB/wGvAaUBqAH/AacBnQGfAf8BmQGPAZEB/wGAAXQBdwH/AYABdAF3Af8BgAF0AXcB/wGAAXQBdwH/
AYABdAF3Af8BPAFIAVoB/wGLAaYBzwH/AXQBlgHMAf8BSgFsAZYB/wE6AVUBeQH/AToBVQF5Af8BSgFs
AZYB/wFKAWwBlgH/AVwBhQG5Af8BOgFVAXkB/wFKAWwBlgH/A2wB/wFKAWwBlgH/AUoBbAGWAf8BOgFV
AXkB/wEpAT0BWQH/AUoBbAGWAf8BOgFVAXkB/wEpAT0BWQH/AjYBXwH/AggBPAH/AmYBrQH/Ak4BhgH/
AjABYAH/AgkBHAH/Ak8BiAH/AjwBcwH/Al0BngH/AjwBcwH/AhEBKQH/AggBMgH/Am8BvAH/AicBTgH/
AggBPAH/AhkBMgH/AcUC+QH/AbYB+AHrAf8BxQL5Af8BxQL5Af8BtgH4AesB/wGJAb0BwwH/AYkBvQHD
Af8BngHcAdkB/wGmAeYB3gH/AcYB+gH5Af8BtgH4AesB/wG2AfgB6wH/AYkBvQHDAf8BmQLVAf8BkwHJ
Ac8B/wGeAdwB2QH/AT8BYwGaAf8BNgFUAYAB/wGLAaYBzwH/ATwBSAFaAf8BzQHCAcUB/wG5AbABswH/
AbkBsAGzAf8BuQGwAbMB/wG5AbABswH/AbkBsAGzAf8BuQGwAbMB/wG5AbABswH/AYABdAF3Af8BPAFI
AVoB/wGLAaYBzwH/ATYBVAGAAf8BOgFVAXkB/wFKAWwBlgH/AToBVQF5Af8BXAGFAbkB/wFcAYUBuQH/
AToBVQF5Af8BXAGFAbkB/wFKAWwBlgH/ASkBPQFZAf8BXAGFAbkB/wFcAYUBuQH/ASkBPQFZAf8BSgFs
AZYB/wFKAWwBlgH/A4cB/wE6AVUBeQH/AicBTgH/AgwBewH/AVMBawGoAf8CTwGIAf8CPAFzAf8CCQEX
Af8CWQGmAf8CPAFzAf8CTwGIAf8CPAFzAf8CQAF6Af8CCQEcAf8CNwFiAf8CJwFOAf8CCgFyAf8CPwF4
Af8BxQL5Af8BvQH5AfQB/wGUAdMB1AH/AZ4B3AHZAf8B0AL6Af8BtgH4AesB/wG2AfgB6wH/AbUB9wHo
Af8BxQL5Af8BngHcAdkB/wGeAdwB2QH/AdAC+gH/AbYB+AHrAf8BiQG9AcMB/wGJAb0BwwH/AZ4B3AHZ
Af8BTwF+AccB/wE/AWMBmgH/ATYBVAGAAf8BPAFIAVoB/wHNAcIBxQH/AbkBsAGzAf8BIwElAYIB/wG5
AbABswH/AXcBegHOAf8BuQGwAbMB/wFnAWkBrAH/AbkBsAGzAf8BgAF0AXcB/wE8AUgBWgH/ATYBVAGA
Af8BSgF3AbwB/wE6AVUBeQH/AUoBbAGWAf8BKQE9AVkB/wE6AVUBeQH/AToBVQF5Af8BKQE9AVkB/wEp
AT0BWQH/AToBVQF5Af8BOgFVAXkB/wE6AVUBeQH/AToBVQF5Af8BOgFVAXkB/wFcAYUBuQH/AVwBhQG5
Af8BOgFVAXkB/wFKAWwBlgH/AkIBfgH/AicBTgH/AnMBwgH/Ag8BhwH/AgYBYAH/AhwBNwH/AlkBpgH/
AgcBRgH/AYYBqgHlAf8CRQGDAf8BZgGCAb8B/wI2AV8B/wIoAVAB/wJ9AdMB/wIGAVoB/wIGAVoB/wG2
AfgB6wH/AZ4B3AHZAf8BmQLVAf8BngHcAdkB/wGVAc0B0wH/AdAC+gH/AbUB9wHoAf8BpgHmAd4B/wGJ
Ab0BwwH/AYkBvQHDAf8BrQHtAeAB/wGeAdwB2QH/AdAC+gH/AbYB+AHrAf8BiQG9AcMB/wGJAb0BwwH/
AU8BfgHHAf8BTwF+AccB/wE/AWMBmgH/ARcBJAE3Af8B1QHKAc0B/wG5AbABswH/AbkBsAGzAf8BuQGw
AbMB/wG5AbABswH/AbkBsAGzAf8BuQGwAbMB/wG5AbABswH/AYABdAF3Af8BFwEkATcB/wFKAXcBvAH/
AU8BfgHHAf8BSgFsAZYB/wE6AVUBeQH/AToBVQF5Af8BSgFsAZYB/wE6AVUBeQH/AUoBbAGWAf8BOgFV
AXkB/wEpAT0BWQH/AToBVQF5Af8BSgFsAZYB/wFKAWwBlgH/AToBVQF5Af8BOgFVAXkB/wE6AVUBeQH/
ASkBPQFZAf8BOgFVAXkB/wI6AXAB/wIKARQB/wI2AV8B/wIPAYoB/wINAYMB/wFZAXIBrwH/AUsBYQGe
Af8CWQGmAf8CawG2Af8COgFxAf8CKAFRAf8CJgFHAf8CFQEvAf8DCgH/AoIB2QH/AX8BogHeAf8BtgH4
AesB/wGJAb0BwwH/AYkBvQHDAf8BiQG9AcMB/wGeAdwB2QH/Ab0B+QH0Af8BiQG9AcMB/wGMAcABxgH/
AYkBvQHDAf8BiQG9AcMB/wGTAcsB0wH/Aa0B7QHgAf8BiQG9AcMB/wGUAdAB1AH/AbQB+AHsAf8BtgH4
AesB/wFPAX4BxwH/AU8BfgHHAf8BTwF+AccB/wEaASkBPwH/AdUBygHNAf8BuQGwAbMB/wE+AYcBwgH/
AbkBsAGzAf8BdwF6Ac4B/wG5AbABswH/ATYBOgHNAf8BuQGwAbMB/wGAAXQBdwH/ASYBNQFNAf8BTwF+
AccB/wFPAX4BxwH/AToBVQF5Af8BOgFVAXkB/wFcAYUBuQH/AVwBhQG5Af8BSgFsAZYB/wFKAWwBlgH/
AToBVQF5Af8BOgFVAXkB/wFKAWwBlgH/ASkBPQFZAf8BSgFsAZYB/wFKAWwBlgH/AToBVQF5Af8BOgFV
AXkB/wFKAWwBlgH/AUoBbAGWAf8CPAFzAf8CTwGIAf8CEwEpAf8CLgFUAf8CVQGfAf8CcwHCAf8CJwFO
Af8CIAFDAf8CNwFhAf8CCAEtAf8CGQEyAf8CVgGSAf8CBgFaAf8CGQEyAf8CBwFAAf8CEQGRAf8BogHi
AdkB/wGmAeYB3wH/AaYB5gHeAf8BxQL5Af8B0AL6Af8B0AL6Af8BxQL5Af8BlAHTAdQB/wGJAb0BwwH/
AZ4B3AHZAf8BvQH5AfQB/wG0AfgB7AH/AaYB5gHeAf8BxQL5Af8BvQH5AfQB/wG1AfcB6AH/AU8BfgHH
Af8BTwF+AccB/wFPAX4BxwH/ARcBJAE3Af8B2gHPAdIB/wG5AbABswH/AbkBsAGzAf8BuQGwAbMB/wG5
AbABswH/AbkBsAGzAf8BuQGwAbMB/wG5AbABswH/AZkBjwGRAf8BFwEkATcB/wFmAY0ByQH/AU8BfgHH
Af8BXAGFAbkB/wE6AVUBeQH/AToBVQF5Af8BOgFVAXkB/wOHAf8BOgFVAXkB/wE6AVUBeQH/AVwBhQG5
Af8BXAGFAbkB/wE6AVUBeQH/AVwBhQG5Af8BXAGFAbkB/wE6AVUBeQH/AUoBbAGWAf8BOgFVAXkB/wFK
AWwBlgH/AgYBWgH/Ak8BiAH/AjwBcwH/AjYBXwH/Ai4BWwH/AgkBHAH/AhkBMgH/AigBUgH/AjgBZAH/
AggBZwH/AmcBsAH/Ak8BiAH/AjQBZQH/Ak8BiAH/AgYBWQH/AggBNwH/AaYB5gHfAf8BmQLVAf8BvAH4
AfIB/wGJAb0BwwH/AZ4B3AHZAf8BngHeAdkB/wGeAd4B2QH/AbYB+AHrAf8BtgH4AesB/wG2AfgB6wH/
AZ4B3AHZAf8BlQHNAdMB/wGUAdMB1AH/AZMByQHPAf8BvAH4AfIB/wHFAvkB/wFPAX4BxwH/AU8BfgHH
Af8BNgFUAYAB/wE8AUgBWgH/AdYBywHOAf8BuQGwAbMB/wFRAVQBqAH/AbkBsAGzAf8BLAEuAaIB/wG5
AbABswH/ATIBbAFOAf8BuQGwAbMB/wGnAZ0BnwH/ATIBQQFZAf8BNgFUAYAB/wFmAY0ByQH/AToBVQF5
Af8BKQE9AVkB/wFKAWwBlgH/AUoBbAGWAf8BOgFVAXkB/wFKAWwBlgH/ASkBPQFZAf8BKQE9AVkB/wEp
AT0BWQH/AToBVQF5Af8BOgFVAXkB/wEpAT0BWQH/AToBVQF5Af8BOgFVAXkB/wE6AVUBeQH/AVwBhQG5
Af8CBwFPAf8CVAGPAf8COgFwAf8CNgFfAf8COAFsAf8CBwFjAf8CTwGIAf8CGQEyAf8CbQG4Af8CggHZ
Af8CSgGBAf8CVgGSAf8BRAFXAZUB/wI0AV0B/wIKARQB/wISASsB/wGJAb0BwwH/AZ4B3gHZAf8BpgHm
Ad4B/wGJAb0BwwH/AYkBvQHDAf8BiQG9AcMB/wG2AfgB6wH/AcUC+QH/AbUB9wHoAf8BiQG9AcMB/wGJ
Ab0BwwH/AZ4B3AHZAf8BlQHNAdMB/wGeAdwB2QH/AZkC1QH/AbUB9wHoAf8BZgGNAckB/wE2AVQBgAH/
AYsBpgHPAf8BPAFIAVoB/wHWAcsBzgH/AbkBsAGzAf8BuQGwAbMB/wG5AbABswH/AbkBsAGzAf8BuQGw
AbMB/wG5AbABswH/AbkBsAGzAf8BrwGlAagB/wE8AUgBWgH/AXQBlgHMAf8BNgFUAYAB/wwAA0QF/wPY
Bf8DRAH/ATYBPwEOAf8BywHrATMB/wGsAccBKwH/AcsB6wEzAf8BNgE/AQ4B/xQAA0QF/wELAR4BKAH/
AScBZwGJAf8BFQE2AUkB/wgAARUBNgFJAf8BJwFnAYkB/wELAR4BKAH/AcsB6wEzAf8BNgE/AQ4B/wwA
AzUB/wPBAf8DwQH/A8EF/wM1Af8IAAM1Af8BywHrATMB/wGaAbIBJwH/AZoBsgEnAf8BmgGyAScB/wM1
Af8EAAE2AVQBgAH/AYsBpgHPAf8BiwGmAc8B/wE8AUgBWgH/Ad0B0gHVAf8B2gHPAdIB/wHaAc8B0gH/
AdoBzwHSAf8B1QHKAc0B/wHNAcIBxQH/Ac0BwgHFAf8BzQHCAcUB/wHNAcIBxQH/ATwBSAFaAf8BiwGm
Ac8B/wF0AZYBzAH/CAADRAX/A9gF/wNEAf8IAAE2AT8BDgH/AcsB6wEzAf8BrAHHASsB/wHLAesBMwH/
ATYBPwEOAf8MAANEBf8D2AH/A8EB/wEVATYBSQH/EAABFQE2AUkB/wGaAbIBJwH/AawBxwErAf8BywHr
ATMB/wE2AT8BDgH/CAADNQH/A8EB/wPYAf8D2AX/AzUB/wgAAzUB/wHLAesBMwH/AawBxwErAf8BrAHH
ASsB/wGaAbIBJwH/AzUB/wQAAT8BYwGaAf8BNgFUAYAB/wGLAaYBzwH/AXkBkQG1Af8BPAFIAVoB/wE8
AUgBWgH/ATwBSAFaAf8BFwEkATcB/wEbASsBQwH/ARcBJAE3Af8BPAFIAVoB/wE8AUgBWgH/ATwBSAFa
Af8BeQGRAbUB/wGLAaYBzwH/ATYBVAGAAf8EAANEBf8D2AX/A0QB/xAAATYBPwEOAf8BywHrATMB/wGs
AccBKwH/AcsB6wEzAf8BNgE/AQ4B/wQAA0QF/wPYAf8DwQH/A9gF/wNEAf8IAAE2AT8BDgH/AcsB6wEz
Af8BrAHHASsB/wGaAbIBJwH/AawBxwErAf8BywHrATMB/wE2AT8BDgH/CAADNQH/AzUB/wPYBf8DNQH/
AzUB/wM1Af8DNQH/AcsB6wEzAf8BrAHHASsB/wM1Af8DNQH/CAABTwF+AccB/wE/AWMBmgH/ATYBVAGA
Af8BiwGmAc8B/wGLAaYBzwH/AYsBpgHPAf8BNgFUAYAB/wFKAXcBvAH/AU8BfgHHAf8BPwFjAZoB/wE2
AVQBgAH/AYsBpgHPAf8BiwGmAc8B/wGLAaYBzwH/ATYBVAGAAf8BSgF3AbwB/wNEBf8D2AX/A0QB/xgA
ATYBPwEOAf8BywHrATMB/wGsAccBKwH/AcsB6wEzAf8BNgE/AQ4B/wNEBf8DwQH/A9gF/wNEAf8QAAE2
AT8BDgH/AcsB6wEzAf8BrAHHASsB/wGaAbIBJwH/AcsB6wEzAf8BNgE/AQ4B/xAAAzUB/wM1Af8DNQH/
AzUB/wM1Af8DNQH/AzUB/wM1Af8QAAFPAX4BxwH/AU8BfgHHAf8BPwFjAZoB/wE2AVQBgAH/AYsBpgHP
Af8BNgFUAYAB/wFKAXcBvAH/AU8BfgHHAf8BTwF+AccB/wFPAX4BxwH/AT8BYwGaAf8BNgFUAYAB/wGL
AaYBzwH/ATYBVAGAAf8BSgF3AbwB/wFPAX4BxwH/A0QB/wPYBf8DRAH/IAABNgE/AQ4B/wHLAesBMwH/
AawBxwErAf8BNgE/AQ4B/wNEAf8DwQn/A0QB/xgAATYBPwEOAf8BywHrATMB/wHLAesBMwH/AZoBsgEn
Af8BNgE/AQ4B/0AAAU8BfgHHAf8BTwF+AccB/wFPAX4BxwH/AT8BYwGaAf8BNgFUAYAB/wFmAY0ByQH/
AbMB/wG5AbABswH/AbkBsAGzAf8BrwGlAagB/wE8AUgBWgH/AXQBlgHMAf8BNgFUAYAB/wFKAWwBlgH/
AToBVQF5Af8BSgFsAZYB/wFcAYUBuQH/ASkBPQFZAf8BSgFsAZYB/wE6AVUBeQH/AToBVQF5Af8BKQE9
AVkB/wEpAT0BWQH/ASkBPQFZAf8DbAH/AToBVQF5Af8BSgFsAZYB/wEpAT0BWQH/AToBVQF5Af8BgQGl
AeEB/wJzAcIB/wE+AVABjQH/AjYBXwH/AnMBwgH/AlQBjwH/AlQBjwH/AgkBIQH/AjYBXwH/AlEBlwH/
Ak4BkgH/AmMBqAH/AiABRAH/AVUBbQGqAf8CDQF+Af8CNgFfAf8BjAHAAcYB/wGJAb0BwwH/AcUC+QH/
AcUC+QH/AcUC+QH/AcUC+QH/AbUB9wHoAf8BngHcAdkB/wHQAvoB/wHFAvkB/wGJAb0BwwH/AYkBvQHD
Af8BngHcAdkB/wGeAdwB2QH/AbYB+AHrAf8BqwHtAd4B/wE2AVQBgAH/AYsBpgHPAf8BiwGmAc8B/wE8
AUgBWgH/Ad0B0gHVAf8B2gHPAdIB/wHaAc8B0gH/AdoBzwHSAf8B1QHKAc0B/wHNAcIBxQH/Ac0BwgHF
Af8BzQHCAcUB/wHNAcIBxQH/ATwBSAFaAf8BiwGmAc8B/wF0AZYBzAH/ASkBPQFZAf8DbAH/ASkBPQFZ
Af8BKQE9AVkB/wFHAbEBcQH/ASkBPQFZAf8BKQE9AVkB/wEpAT0BWQH/ATUBnwFfAf8BKQE9AVkB/wFD
Aa0BbQH/ASkBPQFZAf8BOgFVAXkB/wEpAT0BWQH/ASkBPQFZAf8BOgFVAXkB/wJEAXcB/wImAUYB/wIJ
ARcB/wI2AV8B/wJcAawB/wI9AWsB/wJeAaAB/wFZAXIBrwH/AhkBMgH/AiQBSwH/AhEBKQH/Ah0BOQH/
AicBTgH/Am0BuAH/Ag8BiQH/AjQBXQH/AbYB+AHrAf8BtgH4AesB/wGJAb0BwwH/AZ4B3gHZAf8BqQHp
Ad4B/wHFAvkB/wGeAdwB2QH/AZ4B3AHZAf8BlQHNAdMB/wGeAdwB2QH/AcUC+QH/AcUC+QH/AYkBvQHD
Af8BtgH4AesB/wG2AfgB6wH/AcUC+QH/AT8BYwGaAf8BNgFUAYAB/wGLAaYBzwH/AXkBkQG1Af8BPAFI
AVoB/wE8AUgBWgH/ATwBSAFaAf8BFwEkATcB/wEbASsBQwH/ARcBJAE3Af8BPAFIAVoB/wE8AUgBWgH/
ATwBSAFaAf8BeQGRAbUB/wGLAaYBzwH/ATYBVAGAAf8BXQG8AY0B/wEpAT0BWQH/AWwBywGcAf8BOgGk
AWQB/wE/AakBaQH/ASkBPQFZAf8BRgGwAXAB/wEpAT0BWQH/AUoBtAF0Af8BVQG/AX8B/wFiAcEBkgH/
AWcBxgGXAf8BKQE9AVkB/wEtAZcBVwH/ATYBoAFgAf8BKQE9AVkB/wIyAVsB/wI8AXMB/wJPAYgB/wIT
ASgB/wIlAU0B/wINAYMB/wJzAcIB/wIGAV4B/wIOASQB/wIKARcB/wJCAX4B/wIGAVoB/wIRASkB/wI2
AV8B/wIIATwB/wJSAY0B/wG2AfgB6wH/AYkBvQHDAf8BngHeAdkB/wGeAdwB2QH/AZ4B3AHZAf8BxQL5
Af8BiQG9AcMB/wGTAckBzwH/AZ4B3AHZAf8BngHcAdkB/wGZAtUB/wHFAvkB/wG0AfgB7AH/AbYB+AHr
Af8BjAHAAcYB/wGZAtcB/wFPAX4BxwH/AT8BYwGaAf8BNgFUAYAB/wGLAaYBzwH/AYsBpgHPAf8BiwGm
Ac8B/wE2AVQBgAH/AUoBdwG8Af8BTwF+AccB/wE/AWMBmgH/ATYBVAGAAf8BiwGmAc8B/wGLAaYBzwH/
AYsBpgHPAf8BNgFUAYAB/wFKAXcBvAH/AUsBtQF1Af8BQgGsAWwB/wFaAbkBigH/AVEBsAGBAf8BUwGy
AYMB/wEpAT0BWQH/AT4BqAFoAf8BOAGiAWIB/wE1AZ8BXwH/AWMBwgGTAf8BYAG/AZAB/wFJAbMBcwH/
ATcBoQFhAf8BQgGsAWwB/wE9AacBZwH/AUEBqwFrAf8CcwHCAf8CWQGmAf8CBwFFAf8CTwGIAf8CCgEd
Af8CJwFOAf8CcwHCAf8CDQGDAf8CJwFOAf8CBgFaAf8CVgGSAf8CBgFaAf8CCAFoAf8BIwEvAW0B/wIy
AWIB/wJjAakB/wGUAdMB1AH/AbYB+AHrAf8BiQG9AcMB/wGJAb0BwwH/AZkC1QH/AbUB9wHoAf8BiQG9
AcMB/wGZAtUB/wGJAb0BwwH/AZUBzQHTAf8BlQHNAdMB/wG2AfgB6wH/AbQB+AHsAf8BiQG9AcMB/wGe
AdwB2QH/AZ4B3AHZAf8BTwF+AccB/wFPAX4BxwH/AT8BYwGaAf8BNgFUAYAB/wGLAaYBzwH/ATYBVAGA
Af8BSgF3AbwB/wFPAX4BxwH/AU8BfgHHAf8BTwF+AccB/wE/AWMBmgH/ATYBVAGAAf8BiwGmAc8B/wE2
AVQBgAH/AUoBdwG8Af8BTwF+AccB/wFKAbQBdAH/AUwBtgF2Af8BSQGzAXMB/wE8AaYBZgH/ATwBpgFm
Af8BRQGvAW8B/wE1AZ8BXwH/AUIBrAFsAf8BVAG+AX4B/wFMAbYBdgH/AUABqgFqAf8BPQGnAWcB/wE/
AakBaQH/ATcBoQFhAf8BJgGQAVAB/wFDAa0BbQH/AnMBwgH/AlkBpgH/AlkBpgH/AlMBmgH/AWkBhgHC
Af8CPAFzAf8CKAFSAf8CJwFOAf8CJwFOAf8CDQGDAf8CcwHCAf8CWQGmAf8CPQF0Af8CJwFOAf8CXAGp
Af8CcwHCAf8BngHeAdkB/wG0AfgB7AH/AbYB+AHrAf8BiQG9AcMB/wGJAb0BwwH/AZ4B3AHZAf8BqQHp
Ad4B/wGJAb0BwwH/AYkBvQHDAf8BngHeAdkB/wG0AfgB7AH/AcUC+QH/AcUC+QH/Aa0B7QHgAf8BiQG9
AcMB/wGJAb0BwwH/AU8BfgHHAf8BTwF+AccB/wFPAX4BxwH/AT8BYwGaAf8BNgFUAYAB/wFmAY0ByQH/
AU8BfgHHAf8BTwF+AccB/wFPAX4BxwH/AU8BfgHHAf8BTwF+AccB/wE/AWMBmgH/ATYBVAGAAf8BZgGN
AckB/wFPAX4BxwH/AU8BfgHHAf8DRAH/A0QB/wNEAf8oAAE2AT8BDgH/ATYBPwEOAf8BNgE/AQ4B/wQA
A0QB/wNEAf8DRAH/IAABNgE/AQ4B/wE2AT8BDgH/ATYBPwEOAf9EAAFKAWwBlgH/AToBVQF5Af8BXAGF
AbkB/wFKAWwBlgH/AUoBbAGWAf8BOgFVAXkB/wOHAf8BOgFVAXkB/wFKAWwBlgH/AUoBbAGWAf8BOgFV
AXkB/wE6AVUBeQH/AUoBbAGWAf8BSgFsAZYB/wE6AVUBeQH/ASkBPQFZAf8CWQGmAf8CWQGmAf8CTAGD
Af8CHgE/Af8BFgEeAV0B/wIJARkB/wIRASkB/wIIATwB/wJYAaQB/wFZAXIBrwH/AiQBSQH/AUABUgGQ
Af8CGgE4Af8CHAE8Af8CHQE4Af8CcwHCAf8BmQLVAf8BxQL5Af8BpgHmAd8B/wGZAtUB/wGeAdwB2QH/
AcUC+QH/AbUB9wHoAf8BiQG9AcMB/wGeAdwB2QH/AZ4B3AHZAf8B0AL6Af8BtQH3AegB/wGJAb0BwwH/
AYkBvQHDAf8BtgH4AesB/wGeAdwB2QH/QAABSgFsAZYB/wE6AVUBeQH/ASkBPQFZAf8BXAGFAbkB/wE6
AVUBeQH/ASkBPQFZAf8BOgFVAXkB/wEpAT0BWQH/AVwBhQG5Af8BXAGFAbkB/wE6AVUBeQH/AUoBbAGW
Af8BOgFVAXkB/wE6AVUBeQH/AUoBbAGWAf8BSgFsAZYB/wI1AWgB/wIRASkB/wIJASYB/wJnAa8B/wIG
AV4B/wI4AWwB/wIGAVkB/wIIATwB/wInAU4B/wIIATwB/wFZAXIBrwH/AggBaAH/AlgBlQH/AkgBiAH/
AhQBLwH/AhkBMgH/AbUB9wHoAf8BlAHQAdQB/wGJAb0BwwH/AZ4B3AHZAf8BpgHmAd4B/wGeAdwB2QH/
AZ4B3gHZAf8BvQH5AfQB/wG8AfgB8gH/Ab0B+QH0Af8BngHcAdkB/wG2AfgB6wH/Aa0B7QHgAf8BxQL5
Af8BxQL5Af8BtAH4AewB/xQAAQUBEAEWAf8BBQEQARYB/wEFARABFgH/IAABOgFVAXkB/wFKAWwBlgH/
AToBVQF5Af8BOgFVAXkB/wFEAVgBdAH/AToBVQF5Af8BSgFsAZYB/wFKAWwBlgH/AToBVQF5Af8BKQE9
AVkB/wFcAYUBuQH/ASkBPQFZAf8BOgFVAXkB/wFcAYUBuQH/AUoBbAGWAf8BSgFsAZYB/wJ4AcoB/wJM
AYMB/wIyAWMB/wJ3AckB/wIMAXwB/wJcAaoB/wI2AV8B/wIJARwB/wI6AWcB/wITAZoB/wJpAbIB/wIG
AVoB/wJdAZ4B/wIGAVoB/wJBAXwB/wIZATEB/wGJAb0BwwH/AYkBvQHDAf8BlQHNAdMB/wGZAtUB/wG1
AfcB6AH/AbYB+AHrAf8B0AL6Af8BtQH3AegB/wGmAeYB3gH/AZkC1wH/AZ4B3gHZAf8BtgH4AesB/wGe
Ad4B2QH/AZQB0wHUAf8BngHcAdkB/wHFAvkB/xAAAQUBEAEWAf8BEwE+AVQB/wEMASgBOAH/AQwBKAE4
Af8BBQEQARYB/wEFARABFgH/GAABOgFVAXkB/wEpAT0BWQH/AUoBbAGWAf8BOgFVAXkB/wFKAWwBlgH/
AUoBbAGWAf8BXAGFAbkB/wE6AVUBeQH/AToBVQF5Af8BOgFVAXkB/wE6AVUBeQH/AToBVQF5Af8BOgFV
AXkB/wE6AVUBeQH/AVwBhQG5Af8BXAGFAbkB/wJzAcIB/wJZAaYB/wIRASkB/wIZATIB/wIRASkB/wIJ
ARwB/wI6AWcB/wIGAVoB/wIlAUUB/wIJARsB/wJzAcIB/wILAXUB/wJPAYgB/wI8AXMB/wE+AVABjQH/
AjYBXwH/AbYB+AHrAf8BiQG9AcMB/wGMAcABxgH/AYwBwAHGAf8BxQL5Af8BngHeAdkB/wGJAb0BwwH/
AZUBzQHTAf8BiQG9AcMB/wGJAb0BwwH/AbYB+AHrAf8BtgH4AesB/wGJAb0BwwH/AZkC1wH/AZkC1wH/
AcUC+QH/DAABBQEQARYB/wETAT4BVAH/A9YB/wOZAf8DmQH/AQwBKAE4Af8BDAEoATgB/wEFARABFgH/
AQUBEAEWAf8QAAFKAWwBlgH/AToBVQF5Af8BOgFVAXkB/wFKAWwBlgH/AUoBbAGWAf8BXAGFAbkB/wE6
AVUBeQH/AUoBbAGWAf8DbAH/AUoBbAGWAf8BSgFsAZYB/wE6AVUBeQH/ASkBPQFZAf8BSgFsAZYB/wE6
AVUBeQH/ASkBPQFZAf8CNgFfAf8CCAE8Af8CZgGtAf8CTgGGAf8CMAFgAf8CCQEcAf8CTwGIAf8CPAFz
Af8CXQGeAf8CPAFzAf8CEQEpAf8CCAEyAf8CbwG8Af8CJwFOAf8CCAE8Af8CGQEyAf8BxQL5Af8BtgH4
AesB/wHFAvkB/wHFAvkB/wG2AfgB6wH/AYkBvQHDAf8BiQG9AcMB/wGeAdwB2QH/AaYB5gHeAf8BxgH6
AfkB/wG2AfgB6wH/AbYB+AHrAf8BiQG9AcMB/wGZAtUB/wGTAckBzwH/AZ4B3AHZAf8IAAEFARABFgH/
ARMBPgFUAf8D1gH/A7cB/wO3Af8DtwH/A5kB/wO3Af8BDAEoATgB/wEMASgBOAH/AQUBEAEWAf8BBQEQ
ARYB/wgAAToBVQF5Af8BSgFsAZYB/wE6AVUBeQH/AVwBhQG5Af8BXAGFAbkB/wE6AVUBeQH/AVwBhQG5
Af8BSgFsAZYB/wEpAT0BWQH/AVwBhQG5Af8BXAGFAbkB/wEpAT0BWQH/AUoBbAGWAf8BSgFsAZYB/wOH
Af8BOgFVAXkB/wInAU4B/wIMAXsB/wFTAWsBqAH/Ak8BiAH/AjwBcwH/AgkBFwH/AlkBpgH/AjwBcwH/
Ak8BiAH/AjwBcwH/AkABegH/AgkBHAH/AjcBYgH/AicBTgH/AgoBcgH/Aj8BeAH/AcUC+QH/Ab0B+QH0
Af8BlAHTAdQB/wGeAdwB2QH/AdAC+gH/AbYB+AHrAf8BtgH4AesB/wG1AfcB6AH/AcUC+QH/AZ4B3AHZ
Af8BngHcAdkB/wHQAvoB/wG2AfgB6wH/AYkBvQHDAf8BiQG9AcMB/wGeAdwB2QH/BAABBQEQARYB/wET
AT4BVAH/A9YB/wO3Af8BEwE+AVQB/wEMASgBOAH/AQwBKAE4Af8DtwH/A5kB/wOZAf8DtwH/AQwBKAE4
Af8BDAEoATgB/wEFARABFgH/AQUBEAEWAf8BOgFVAXkB/wFKAWwBlgH/ASkBPQFZAf8BOgFVAXkB/wE6
AVUBeQH/ASkBPQFZAf8BKQE9AVkB/wE6AVUBeQH/AToBVQF5Af8BOgFVAXkB/wE6AVUBeQH/AToBVQF5
Af8BXAGFAbkB/wFcAYUBuQH/AToBVQF5Af8BSgFsAZYB/wJCAX4B/wInAU4B/wJzAcIB/wIPAYcB/wIG
AWAB/wIcATcB/wJZAaYB/wIHAUYB/wGGAaoB5QH/AkUBgwH/AWYBggG/Af8CNgFfAf8CKAFQAf8CfQHT
Af8CBgFaAf8CBgFaAf8BtgH4AesB/wGeAdwB2QH/AZkC1QH/AZ4B3AHZAf8BlQHNAdMB/wHQAvoB/wG1
AfcB6AH/AaYB5gHeAf8BiQG9AcMB/wGJAb0BwwH/Aa0B7QHgAf8BngHcAdkB/wHQAvoB/wG2AfgB6wH/
AYkBvQHDAf8BiQG9AcMB/wEFARABFgH/ARMBPgFUAf8D1gH/A7cB/wETAT4BVAH/ARcBSwFlAf8BFwFL
AWUB/wEXAUsBZQH/AQwBKAE4Af8BDAEoATgB/wO3Af8DmQH/A7cB/wOZAf8BDAEoATgB/wEFARABFgH/
AUoBbAGWAf8BOgFVAXkB/wE6AVUBeQH/AUoBbAGWAf8BOgFVAXkB/wFKAWwBlgH/AToBVQF5Af8BKQE9
AVkB/wE6AVUBeQH/AUoBbAGWAf8BSgFsAZYB/wE6AVUBeQH/AToBVQF5Af8BOgFVAXkB/wEpAT0BWQH/
AToBVQF5Af8COgFwAf8CCgEUAf8CNgFfAf8CDwGKAf8CDQGDAf8BWQFyAa8B/wFLAWEBngH/AlkBpgH/
AmsBtgH/AjoBcQH/AigBUQH/AiYBRwH/AhUBLwH/AwoB/wKCAdkB/wF/AaIB3gH/AbYB+AHrAf8BiQG9
AcMB/wGJAb0BwwH/AYkBvQHDAf8BngHcAdkB/wG9AfkB9AH/AYkBvQHDAf8BjAHAAcYB/wGJAb0BwwH/
AYkBvQHDAf8BkwHLAdMB/wGtAe0B4AH/AYkBvQHDAf8BlAHQAdQB/wG0AfgB7AH/AbYB+AHrAf8BCAEb
ASYB/wETAT4BVAH/A7cB/wETAT4BVAH/ARcBSwFlAf8BFwFLAWUB/wEXAUsBZQH/ARcBSwFlAf8BFwFL
AWUB/wEXAUsBZQH/AQwBKAE4Af8BDAEoATgB/wOZAf8DtwH/A5kB/wNbAf8BOgFVAXkB/wE6AVUBeQH/
AVwBhQG5Af8BXAGFAbkB/wFKAWwBlgH/AUoBbAGWAf8BOgFVAXkB/wE6AVUBeQH/AUoBbAGWAf8BKQE9
AVkB/wFKAWwBlgH/AUoBbAGWAf8BOgFVAXkB/wE6AVUBeQH/AUoBbAGWAf8BSgFsAZYB/wI8AXMB/wJP
AYgB/wITASkB/wIuAVQB/wJVAZ8B/wJzAcIB/wInAU4B/wIgAUMB/wI3AWEB/wIIAS0B/wIZATIB/wJW
AZIB/wIGAVoB/wIZATIB/wIHAUAB/wIRAZEB/wGiAeIB2QH/AaYB5gHfAf8BpgHmAd4B/wHFAvkB/wHQ
AvoB/wHQAvoB/wHFAvkB/wGUAdMB1AH/AYkBvQHDAf8BngHcAdkB/wG9AfkB9AH/AbQB+AHsAf8BpgHm
Ad4B/wHFAvkB/wG9AfkB9AH/AbUB9wHoAf8BCAEbASYB/wETAT4BVAH/ARMBPgFUAf8BFwFLAWUB/wEX
AUsBZQH/ARcBSwFlAf8BFwFLAWUB/wEXAUsBZQH/ARcBSwFlAf8BFwFLAWUB/wEXAUsBZQH/ARcBSwFl
Af8BDAEoATgB/wEMASgBOAH/A7cB/wNbAf8BXAGFAbkB/wE6AVUBeQH/AToBVQF5Af8BOgFVAXkB/wOH
Af8BOgFVAXkB/wE6AVUBeQH/AVwBhQG5Af8BXAGFAbkB/wE6AVUBeQH/AVwBhQG5Af8BXAGFAbkB/wE6
AVUBeQH/AUoBbAGWAf8BOgFVAXkB/wFKAWwBlgH/AgYBWgH/Ak8BiAH/AjwBcwH/AjYBXwH/Ai4BWwH/
AgkBHAH/AhkBMgH/AigBUgH/AjgBZAH/AggBZwH/AmcBsAH/Ak8BiAH/AjQBZQH/Ak8BiAH/AgYBWQH/
AggBNwH/AaYB5gHfAf8BmQLVAf8BvAH4AfIB/wGJAb0BwwH/AZ4B3AHZAf8BngHeAdkB/wGeAd4B2QH/
AbYB+AHrAf8BtgH4AesB/wG2AfgB6wH/AZ4B3AHZAf8BlQHNAdMB/wGUAdMB1AH/AZMByQHPAf8BvAH4
AfIB/wHFAvkB/wEIARsBJgH/ARMBPgFUAf8BFwFLAWUB/wEXAUsBZQH/ARcBSwFlAf8BFwFLAWUB/wEM
ASgBOAH/ARcBSwFlAf8BFwFLAWUB/wEXAUsBZQH/ARcBSwFlAf8BFwFLAWUB/wEXAUsBZQH/ARcBSwFl
Af8BDAEoATgB/wEFARABFgH/AToBVQF5Af8BKQE9AVkB/wFKAWwBlgH/AUoBbAGWAf8BOgFVAXkB/wFK
AWwBlgH/ASkBPQFZAf8BKQE9AVkB/wEpAT0BWQH/AToBVQF5Af8BOgFVAXkB/wEpAT0BWQH/AToBVQF5
Af8BOgFVAXkB/wE6AVUBeQH/AVwBhQG5Af8CBwFPAf8CVAGPAf8COgFwAf8CNgFfAf8COAFsAf8CBwFj
Af8CTwGIAf8CGQEyAf8CbQG4Af8CggHZAf8CSgGBAf8CVgGSAf8BRAFXAZUB/wI0AV0B/wIKARQB/wIS
ASsB/wGJAb0BwwH/AZ4B3gHZAf8BpgHmAd4B/wGJAb0BwwH/AYkBvQHDAf8BiQG9AcMB/wG2AfgB6wH/
AcUC+QH/AbUB9wHoAf8BiQG9AcMB/wGJAb0BwwH/AZ4B3AHZAf8BlQHNAdMB/wGeAdwB2QH/AZkC1QH/
AbUB9wHoAf8BCAEbASYB/wEIARsBJgH/ARcBSwFlAf8BFwFLAWUB/wEXAUsBZQH/AQwBKAE4Af8BFwFL
AWUB/wEXAUsBZQH/ARcBSwFlAf8BDAEoATgB/wEMASgBOAH/AQwBKAE4Af8BFwFLAWUB/wEXAUsBZQH/
AQgBGwEmAf8EAAFKAWwBlgH/AToBVQF5Af8BSgFsAZYB/wFcAYUBuQH/ASkBPQFZAf8BSgFsAZYB/wE6
AVUBeQH/AToBVQF5Af8BKQE9AVkB/wEpAT0BWQH/ASkBPQFZAf8DbAH/AToBVQF5Af8BSgFsAZYB/wEp
AT0BWQH/AToBVQF5Af8BgQGlAeEB/wJzAcIB/wE+AVABjQH/AjYBXwH/AnMBwgH/AlQBjwH/AlQBjwH/
AgkBIQH/AjYBXwH/AlEBlwH/Ak4BkgH/AmMBqAH/AiABRAH/AVUBbQGqAf8CDQF+Af8CNgFfAf8BjAHA
AcYB/wGJAb0BwwH/AcUC+QH/AcUC+QH/AcUC+QH/AcUC+QH/AbUB9wHoAf8BngHcAdkB/wHQAvoB/wHF
AvkB/wGJAb0BwwH/AYkBvQHDAf8BngHcAdkB/wGeAdwB2QH/AbYB+AHrAf8BqwHtAd4B/wgAAQgBGwEm
Af8BCAEbASYB/wEXAUsBZQH/ARcBSwFlAf8BFwFLAWUB/wEXAUsBZQH/AQwBKAE4Af8BDAEoATgB/wEM
ASgBOAH/ARcBSwFlAf8BFwFLAWUB/wEIARsBJgH/CAABKQE9AVkB/wNsAf8BKQE9AVkB/wEpAT0BWQH/
AUcBsQFxAf8BKQE9AVkB/wEpAT0BWQH/ASkBPQFZAf8BNQGfAV8B/wEpAT0BWQH/AUMBrQFtAf8BKQE9
AVkB/wE6AVUBeQH/ASkBPQFZAf8BKQE9AVkB/wE6AVUBeQH/AkQBdwH/AiYBRgH/AgkBFwH/AjYBXwH/
AlwBrAH/Aj0BawH/Al4BoAH/AVkBcgGvAf8CGQEyAf8CJAFLAf8CEQEpAf8CHQE5Af8CJwFOAf8CbQG4
Af8CDwGJAf8CNAFdAf8BtgH4AesB/wG2AfgB6wH/AYkBvQHDAf8BngHeAdkB/wGpAekB3gH/AcUC+QH/
AZ4B3AHZAf8BngHcAdkB/wGVAc0B0wH/AZ4B3AHZAf8BxQL5Af8BxQL5Af8BiQG9AcMB/wG2AfgB6wH/
AbYB+AHrAf8BxQL5Af8QAAEIARsBJgH/AQgBGwEmAf8BFwFLAWUB/wEXAUsBZQH/AQwBKAE4Af8BFwFL
AWUB/wEXAUsBZQH/ARcBSwFlAf8BCAEbASYB/wwAAV0BvAGNAf8BKQE9AVkB/wFsAcsBnAH/AToBpAFk
Af8BPwGpAWkB/wEpAT0BWQH/AUYBsAFwAf8BKQE9AVkB/wFKAbQBdAH/AVUBvwF/Af8BYgHBAZIB/wFn
AcYBlwH/ASkBPQFZAf8BLQGXAVcB/wE2AaABYAH/ASkBPQFZAf8CMgFbAf8CPAFzAf8CTwGIAf8CEwEo
Af8CJQFNAf8CDQGDAf8CcwHCAf8CBgFeAf8CDgEkAf8CCgEXAf8CQgF+Af8CBgFaAf8CEQEpAf8CNgFf
Af8CCAE8Af8CUgGNAf8BtgH4AesB/wGJAb0BwwH/AZ4B3gHZAf8BngHcAdkB/wGeAdwB2QH/AcUC+QH/
AYkBvQHDAf8BkwHJAc8B/wGeAdwB2QH/AZ4B3AHZAf8BmQLVAf8BxQL5Af8BtAH4AewB/wG2AfgB6wH/
AYwBwAHGAf8BmQLXAf8YAAEIARsBJgH/AQgBGwEmAf8BFwFLAWUB/wEXAUsBZQH/ARcBSwFlAf8BCAEb
ASYB/xAAAUsBtQF1Af8BQgGsAWwB/wFaAbkBigH/AVEBsAGBAf8BUwGyAYMB/wEpAT0BWQH/AT4BqAFo
Af8BOAGiAWIB/wE1AZ8BXwH/AWMBwgGTAf8BYAG/AZAB/wFJAbMBcwH/ATcBoQFhAf8BQgGsAWwB/wE9
AacBZwH/AUEBqwFrAf8CcwHCAf8CWQGmAf8CBwFFAf8CTwGIAf8CCgEdAf8CJwFOAf8CcwHCAf8CDQGD
Af8CJwFOAf8CBgFaAf8CVgGSAf8CBgFaAf8CCAFoAf8BIwEvAW0B/wIyAWIB/wJjAakB/wGUAdMB1AH/
AbYB+AHrAf8BiQG9AcMB/wGJAb0BwwH/AZkC1QH/AbUB9wHoAf8BiQG9AcMB/wGZAtUB/wGJAb0BwwH/
AZUBzQHTAf8BlQHNAdMB/wG2AfgB6wH/AbQB+AHsAf8BiQG9AcMB/wGeAdwB2QH/AZ4B3AHZAf8gAAEI
ARsBJgH/AQgBGwEmAf8BCAEbASYB/xQAAUoBtAF0Af8BTAG2AXYB/wFJAbMBcwH/ATwBpgFmAf8BPAGm
AWYB/wFFAa8BbwH/ATUBnwFfAf8BQgGsAWwB/wFUAb4BfgH/AUwBtgF2Af8BQAGqAWoB/wE9AacBZwH/
AT8BqQFpAf8BNwGhAWEB/wEmAZABUAH/AUMBrQFtAf8CcwHCAf8CWQGmAf8CWQGmAf8CUwGaAf8BaQGG
AcIB/wI8AXMB/wIoAVIB/wInAU4B/wInAU4B/wINAYMB/wJzAcIB/wJZAaYB/wI9AXQB/wInAU4B/wJc
AakB/wJzAcIB/wGeAd4B2QH/AbQB+AHsAf8BtgH4AesB/wGJAb0BwwH/AYkBvQHDAf8BngHcAdkB/wGp
AekB3gH/AYkBvQHDAf8BiQG9AcMB/wGeAd4B2QH/AbQB+AHsAf8BxQL5Af8BxQL5Af8BrQHtAeAB/wGJ
Ab0BwwH/AYkBvQHDAf9AAAFCAU0BPgcAAT4DAAEoAwABQAMAATADAAEBAQABAQUAAYABARYAA/+DAAEf
AfgE/wIAAR8B+AHPAfMC/wIAAQwB8AGPAfEC5wIAAcQBIwGHAeEB4wHHAgAB4AEHAeMBxwHBAYMCAAHw
AQ8B8QGPAcEBgwIAAeABBwH4AR8BwQGDAgAB4AEHAfwBPwKBAgABwAEDAfwBPwKBAgABwAEDAegBFwKB
AgAB4AEHAcEBgwKBAgABwQKDAcECgQIAAYMBwQEBAYABwAEDAgABBwHgAQMBwAHwAQ8CAAEPAfABBwHg
Av8CAAEfAfgBjwHxAv8GAAL/BgAB+AH/BgAB8AE/BgAB4AEPBgABwAEDBgABgCgAAQEGAAHAAQMGAAHw
AQcGAAH8AQ8GAAH/AR8GAAL/Cw==
AckB/wFPAX4BxwH/AU8BfgHHAf8BQgFNAT4HAAE+AwABKAMAAUADAAEwAwABAQEAAQEFAAGAAQEWAAP/
gQAC/wEfAfgE/wH4Af8BHwH4Ac8B8wL/AfABPwEMAfABjwHxAucB4AEPAcQBIwGHAeEB4wHHAcABAwHg
AQcB4wHHAcEBgwGAAQAB8AEPAfEBjwHBAYMCAAHgAQcB+AEfAcEBgwIAAeABBwH8AT8CgQIAAcABAwH8
AT8CgQIAAcABAwHoARcCgQEAAQEB4AEHAcEBgwKBAcABAwHBAoMBwQKBAfABBwGDAcEBAQGAAcABAwH8
AQ8BBwHgAQMBwAHwAQ8B/wEfAQ8B8AEHAeAE/wEfAfgBjwHxAv+AAAs=
</value>
</data>
<data name="treeView1.Location" type="System.Drawing.Point, System.Drawing">
@@ -385,7 +382,27 @@
<value>$this</value>
</data>
<data name="&gt;&gt;treeView1.ZOrder" xml:space="preserve">
<value>2</value>
<value>3</value>
</data>
<data name="addCategoryStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAABSSURBVDhP5c0x
DsAgDENRxt7/wmkNSpRGf0CCCZAegxNMM7MlGMp3dIU6dxhKf/QMNxRogeQC8ivw5Vn7C0heJlFA+kL5
jWAohxRkde4wnGftBS90axNmphIGAAAAAElFTkSuQmCC
</value>
</data>
<data name="addCategoryStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>168, 22</value>
</data>
<data name="addCategoryStripMenuItem.Text" xml:space="preserve">
<value>Add Category</value>
</data>
<data name="removeCategoryStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>168, 22</value>
</data>
<data name="removeCategoryStripMenuItem.Text" xml:space="preserve">
<value>Remove Category</value>
</data>
<metadata name="menuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>19, 8</value>
@@ -393,46 +410,6 @@
<data name="menuStrip.AutoSize" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="saveToolStripMenuItem1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4yMfEgaZUAAADfSURBVDhPYxg8
QLt++3yTGbf/Fm599P/Nh49wfPXxq/+rTt37f+Dak/8gOSBgAGEMANIMxGBFyAasPf/0v8GE8//z1t8C
y4HU4DIALIluwLpLL+HiMANAGKoNAWASCavv/n/57gPcgOvP3oENOXj7NViOoAFGU6791+k4ghWD5Aga
QCyGakMAkODcU89R/I8Ng9TgNADk14dPn/8/c+kqVgySgwUqVBsCwAx49urN/zsPHmPFIDmaGvAXJInN
38gYasBfqDYE0K7dOn/Wvut/sfkdGYPUgJI9VNuAAwYGAGn6yvdevWgPAAAAAElFTkSuQmCC
</value>
</data>
<data name="saveToolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
<value>98, 22</value>
</data>
<data name="saveToolStripMenuItem1.Text" xml:space="preserve">
<value>Save</value>
</data>
<data name="fileToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>37, 20</value>
</data>
<data name="fileToolStripMenuItem.Text" xml:space="preserve">
<value>File</value>
</data>
<data name="creditsEditorToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>145, 22</value>
</data>
<data name="creditsEditorToolStripMenuItem.Text" xml:space="preserve">
<value>Credits Editor</value>
</data>
<data name="toolsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>46, 20</value>
</data>
<data name="toolsToolStripMenuItem.Text" xml:space="preserve">
<value>Tools</value>
</data>
<data name="helpToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>44, 20</value>
</data>
<data name="helpToolStripMenuItem.Text" xml:space="preserve">
<value>Help</value>
</data>
<data name="menuStrip.Location" type="System.Drawing.Point, System.Drawing">
<value>20, 60</value>
</data>
@@ -455,7 +432,47 @@
<value>$this</value>
</data>
<data name="&gt;&gt;menuStrip.ZOrder" xml:space="preserve">
<value>4</value>
<value>5</value>
</data>
<data name="fileToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>37, 20</value>
</data>
<data name="fileToolStripMenuItem.Text" xml:space="preserve">
<value>File</value>
</data>
<data name="saveToolStripMenuItem1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4yMfEgaZUAAADfSURBVDhPYxg8
QLt++3yTGbf/Fm599P/Nh49wfPXxq/+rTt37f+Dak/8gOSBgAGEMANIMxGBFyAasPf/0v8GE8//z1t8C
y4HU4DIALIluwLpLL+HiMANAGKoNAWASCavv/n/57gPcgOvP3oENOXj7NViOoAFGU6791+k4ghWD5Aga
QCyGakMAkODcU89R/I8Ng9TgNADk14dPn/8/c+kqVgySgwUqVBsCwAx49urN/zsPHmPFIDmaGvAXJInN
38gYasBfqDYE0K7dOn/Wvut/sfkdGYPUgJI9VNuAAwYGAGn6yvdevWgPAAAAAElFTkSuQmCC
</value>
</data>
<data name="saveToolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
<value>98, 22</value>
</data>
<data name="saveToolStripMenuItem1.Text" xml:space="preserve">
<value>Save</value>
</data>
<data name="toolsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>46, 20</value>
</data>
<data name="toolsToolStripMenuItem.Text" xml:space="preserve">
<value>Tools</value>
</data>
<data name="creditsEditorToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>145, 22</value>
</data>
<data name="creditsEditorToolStripMenuItem.Text" xml:space="preserve">
<value>Credits Editor</value>
</data>
<data name="helpToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>44, 20</value>
</data>
<data name="helpToolStripMenuItem.Text" xml:space="preserve">
<value>Help</value>
</data>
<data name="treeView2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
@@ -463,28 +480,8 @@
<metadata name="contextMenuStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>282, 8</value>
</metadata>
<data name="addEntryMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAABSSURBVDhP5c0x
DsAgDENRxt7/wmkNSpRGf0CCCZAegxNMM7MlGMp3dIU6dxhKf/QMNxRogeQC8ivw5Vn7C0heJlFA+kL5
jWAohxRkde4wnGftBS90axNmphIGAAAAAElFTkSuQmCC
</value>
</data>
<data name="addEntryMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 22</value>
</data>
<data name="addEntryMenuItem.Text" xml:space="preserve">
<value>Add Entry</value>
</data>
<data name="removeEntryMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 22</value>
</data>
<data name="removeEntryMenuItem.Text" xml:space="preserve">
<value>Remove Entry</value>
</data>
<data name="contextMenuStrip2.Size" type="System.Drawing.Size, System.Drawing">
<value>148, 48</value>
<value>174, 70</value>
</data>
<data name="&gt;&gt;contextMenuStrip2.Name" xml:space="preserve">
<value>contextMenuStrip2</value>
@@ -511,7 +508,60 @@
<value>$this</value>
</data>
<data name="&gt;&gt;treeView2.ZOrder" xml:space="preserve">
<value>3</value>
<value>4</value>
</data>
<data name="addEntryMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAABSSURBVDhP5c0x
DsAgDENRxt7/wmkNSpRGf0CCCZAegxNMM7MlGMp3dIU6dxhKf/QMNxRogeQC8ivw5Vn7C0heJlFA+kL5
jWAohxRkde4wnGftBS90axNmphIGAAAAAElFTkSuQmCC
</value>
</data>
<data name="addEntryMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>173, 22</value>
</data>
<data name="addEntryMenuItem.Text" xml:space="preserve">
<value>Add Entry</value>
</data>
<data name="removeEntryMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>173, 22</value>
</data>
<data name="removeEntryMenuItem.Text" xml:space="preserve">
<value>Remove Entry</value>
</data>
<data name="verifyFileLocationToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>173, 22</value>
</data>
<data name="verifyFileLocationToolStripMenuItem.Text" xml:space="preserve">
<value>Verify File Location</value>
</data>
<data name="metroCheckBox1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="metroCheckBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>232, 64</value>
</data>
<data name="metroCheckBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>193, 15</value>
</data>
<data name="metroCheckBox1.TabIndex" type="System.Int32, mscorlib">
<value>14</value>
</data>
<data name="metroCheckBox1.Text" xml:space="preserve">
<value>Add overworld songs to creative</value>
</data>
<data name="&gt;&gt;metroCheckBox1.Name" xml:space="preserve">
<value>metroCheckBox1</value>
</data>
<data name="&gt;&gt;metroCheckBox1.Type" xml:space="preserve">
<value>MetroFramework.Controls.MetroCheckBox, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a</value>
</data>
<data name="&gt;&gt;metroCheckBox1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;metroCheckBox1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
@@ -591,6 +641,12 @@
<data name="&gt;&gt;removeEntryMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;verifyFileLocationToolStripMenuItem.Name" xml:space="preserve">
<value>verifyFileLocationToolStripMenuItem</value>
</data>
<data name="&gt;&gt;verifyFileLocationToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>AudioEditor</value>
</data>

View File

@@ -28,51 +28,61 @@
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(addCategory));
this.label2 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button();
this.comboBox1 = new System.Windows.Forms.ComboBox();
this.SuspendLayout();
//
// label2
//
resources.ApplyResources(this.label2, "label2");
this.label2.ForeColor = System.Drawing.Color.White;
this.label2.Name = "label2";
//
// button1
//
resources.ApplyResources(this.button1, "button1");
this.button1.ForeColor = System.Drawing.Color.White;
this.button1.Name = "button1";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// comboBox1
//
this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBox1.FormattingEnabled = true;
resources.ApplyResources(this.comboBox1, "comboBox1");
this.comboBox1.Name = "comboBox1";
//
// addCategory
//
this.AcceptButton = this.button1;
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.comboBox1);
this.Controls.Add(this.button1);
this.Controls.Add(this.label2);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "addCategory";
this.Resizable = false;
this.ShadowType = MetroFramework.Forms.MetroFormShadowType.DropShadow;
this.Style = MetroFramework.MetroColorStyle.Silver;
this.Theme = MetroFramework.MetroThemeStyle.Dark;
this.ResumeLayout(false);
this.PerformLayout();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(addCategory));
this.label2 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button();
this.comboBox1 = new System.Windows.Forms.ComboBox();
this.cancelButton = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// label2
//
resources.ApplyResources(this.label2, "label2");
this.label2.ForeColor = System.Drawing.Color.White;
this.label2.Name = "label2";
//
// button1
//
resources.ApplyResources(this.button1, "button1");
this.button1.ForeColor = System.Drawing.Color.White;
this.button1.Name = "button1";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// comboBox1
//
this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBox1.FormattingEnabled = true;
resources.ApplyResources(this.comboBox1, "comboBox1");
this.comboBox1.Name = "comboBox1";
//
// cancelButton
//
resources.ApplyResources(this.cancelButton, "cancelButton");
this.cancelButton.ForeColor = System.Drawing.Color.White;
this.cancelButton.Name = "cancelButton";
this.cancelButton.UseVisualStyleBackColor = true;
this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click);
//
// addCategory
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ControlBox = false;
this.Controls.Add(this.cancelButton);
this.Controls.Add(this.comboBox1);
this.Controls.Add(this.button1);
this.Controls.Add(this.label2);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "addCategory";
this.Resizable = false;
this.ShadowType = MetroFramework.Forms.MetroFormShadowType.DropShadow;
this.Style = MetroFramework.MetroColorStyle.Silver;
this.Theme = MetroFramework.MetroThemeStyle.Dark;
this.ResumeLayout(false);
this.PerformLayout();
}
@@ -80,5 +90,6 @@
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.ComboBox comboBox1;
private System.Windows.Forms.Button cancelButton;
}
}

View File

@@ -19,6 +19,7 @@ namespace PckStudio
public addCategory(string[] avalibleCategories)
{
InitializeComponent();
this.FormBorderStyle = FormBorderStyle.None;
comboBox1.Items.AddRange(avalibleCategories);
}
@@ -29,5 +30,10 @@ namespace PckStudio
if(comboBox1.SelectedIndex > -1) Close();
}
private void cancelButton_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
Close();
}
}
}

View File

@@ -144,14 +144,14 @@
<value>$this</value>
</data>
<data name="&gt;&gt;label2.ZOrder" xml:space="preserve">
<value>2</value>
<value>3</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="button1.FlatStyle" type="System.Windows.Forms.FlatStyle, System.Windows.Forms">
<value>Flat</value>
</data>
<data name="button1.Location" type="System.Drawing.Point, System.Drawing">
<value>94, 75</value>
<value>54, 76</value>
</data>
<data name="button1.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
@@ -172,7 +172,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;button1.ZOrder" xml:space="preserve">
<value>1</value>
<value>2</value>
</data>
<data name="comboBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>60, 38</value>
@@ -193,6 +193,36 @@
<value>$this</value>
</data>
<data name="&gt;&gt;comboBox1.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="cancelButton.FlatStyle" type="System.Windows.Forms.FlatStyle, System.Windows.Forms">
<value>Flat</value>
</data>
<data name="cancelButton.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="cancelButton.Location" type="System.Drawing.Point, System.Drawing">
<value>135, 76</value>
</data>
<data name="cancelButton.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
</data>
<data name="cancelButton.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
</data>
<data name="cancelButton.Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="&gt;&gt;cancelButton.Name" xml:space="preserve">
<value>cancelButton</value>
</data>
<data name="&gt;&gt;cancelButton.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;cancelButton.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;cancelButton.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

View File

@@ -0,0 +1,62 @@
namespace PckStudio.Forms.Utilities.Audio
{
partial class pleaseWait
{
/// <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.metroLabel1 = new MetroFramework.Controls.MetroLabel();
this.SuspendLayout();
//
// metroLabel1
//
this.metroLabel1.AutoSize = true;
this.metroLabel1.Location = new System.Drawing.Point(22, 20);
this.metroLabel1.Name = "metroLabel1";
this.metroLabel1.Size = new System.Drawing.Size(352, 19);
this.metroLabel1.TabIndex = 0;
this.metroLabel1.Text = "Please wait while PCK Studio converts the requested files. (:";
this.metroLabel1.Theme = MetroFramework.MetroThemeStyle.Dark;
//
// pleaseWait
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(396, 59);
this.Controls.Add(this.metroLabel1);
this.Name = "pleaseWait";
this.Style = MetroFramework.MetroColorStyle.White;
this.Theme = MetroFramework.MetroThemeStyle.Dark;
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private MetroFramework.Controls.MetroLabel metroLabel1;
}
}

View File

@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MetroFramework.Forms;
namespace PckStudio.Forms.Utilities.Audio
{
public partial class pleaseWait : MetroForm
{
public pleaseWait()
{
InitializeComponent();
}
}
}

View File

@@ -0,0 +1,120 @@
<?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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

File diff suppressed because one or more lines are too long

View File

@@ -290,6 +290,12 @@
<Compile Include="Forms\Additional-Popups\Grf\AddParameter.Designer.cs">
<DependentUpon>AddParameter.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Utilities\Audio\pleaseWait.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Utilities\Audio\pleaseWait.Designer.cs">
<DependentUpon>pleaseWait.cs</DependentUpon>
</Compile>
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>