From f11fd0642cf68b92190ef179fe0859177eb79c55 Mon Sep 17 00:00:00 2001 From: Anton Mukhin Date: Fri, 28 Apr 2023 17:16:13 +0300 Subject: [PATCH] 8-bit array generation --- McBitFont/Form1.Designer.cs | 212 ++++++++++++++++++++++++------------ McBitFont/Form1.cs | 42 +++++++ McBitFont/Form1.resx | 70 ++++++++++++ 3 files changed, 252 insertions(+), 72 deletions(-) diff --git a/McBitFont/Form1.Designer.cs b/McBitFont/Form1.Designer.cs index 26c3ec1..2dfa070 100644 --- a/McBitFont/Form1.Designer.cs +++ b/McBitFont/Form1.Designer.cs @@ -23,6 +23,12 @@ /// содержимое этого метода с помощью редактора кода. /// private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.ListViewItem listViewItem1 = new System.Windows.Forms.ListViewItem("adasd"); + System.Windows.Forms.ListViewItem listViewItem2 = new System.Windows.Forms.ListViewItem("ddddd", 0); + System.Windows.Forms.ListViewItem listViewItem3 = new System.Windows.Forms.ListViewItem("ffff"); + System.Windows.Forms.ListViewItem listViewItem4 = new System.Windows.Forms.ListViewItem(""); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); this.dotPanel = new System.Windows.Forms.Panel(); this.nudX = new System.Windows.Forms.NumericUpDown(); this.nudY = new System.Windows.Forms.NumericUpDown(); @@ -33,13 +39,17 @@ this.label4 = new System.Windows.Forms.Label(); this.pbZoom = new System.Windows.Forms.ProgressBar(); this.panel1 = new System.Windows.Forms.Panel(); - this.btnShiftLeft = new System.Windows.Forms.Button(); - this.btnShiftRight = new System.Windows.Forms.Button(); - this.btnShiftUp = new System.Windows.Forms.Button(); - this.btnShiftDown = new System.Windows.Forms.Button(); - this.btnInvert = new System.Windows.Forms.Button(); - this.btnMirrorX = new System.Windows.Forms.Button(); this.btnMirrorY = new System.Windows.Forms.Button(); + this.btnMirrorX = new System.Windows.Forms.Button(); + this.btnInvert = new System.Windows.Forms.Button(); + this.btnShiftDown = new System.Windows.Forms.Button(); + this.btnShiftUp = new System.Windows.Forms.Button(); + this.btnShiftRight = new System.Windows.Forms.Button(); + this.btnShiftLeft = new System.Windows.Forms.Button(); + this.button1 = new System.Windows.Forms.Button(); + this.outBox = new System.Windows.Forms.TextBox(); + this.listView1 = new System.Windows.Forms.ListView(); + this.imageList1 = new System.Windows.Forms.ImageList(this.components); ((System.ComponentModel.ISupportInitialize)(this.nudX)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nudY)).BeginInit(); this.panel1.SuspendLayout(); @@ -55,14 +65,14 @@ this.dotPanel.BackColor = System.Drawing.SystemColors.ControlDark; this.dotPanel.Location = new System.Drawing.Point(12, 12); this.dotPanel.Name = "dotPanel"; - this.dotPanel.Size = new System.Drawing.Size(527, 542); + this.dotPanel.Size = new System.Drawing.Size(613, 542); this.dotPanel.TabIndex = 0; this.dotPanel.MouseMove += new System.Windows.Forms.MouseEventHandler(this.dotPanel_MouseMove); // // nudX // this.nudX.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.nudX.Location = new System.Drawing.Point(724, 12); + this.nudX.Location = new System.Drawing.Point(810, 12); this.nudX.Maximum = new decimal(new int[] { 255, 0, @@ -86,7 +96,7 @@ // nudY // this.nudY.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.nudY.Location = new System.Drawing.Point(724, 38); + this.nudY.Location = new System.Drawing.Point(810, 38); this.nudY.Maximum = new decimal(new int[] { 255, 0, @@ -111,7 +121,7 @@ // this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(680, 14); + this.label1.Location = new System.Drawing.Point(766, 14); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(38, 13); this.label1.TabIndex = 3; @@ -121,7 +131,7 @@ // this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(677, 40); + this.label2.Location = new System.Drawing.Point(763, 40); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(41, 13); this.label2.TabIndex = 4; @@ -131,7 +141,7 @@ // this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(545, 12); + this.label3.Location = new System.Drawing.Point(631, 12); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(35, 13); this.label3.TabIndex = 0; @@ -155,7 +165,7 @@ "40", "45", "50"}); - this.cbZoom.Location = new System.Drawing.Point(545, 533); + this.cbZoom.Location = new System.Drawing.Point(631, 533); this.cbZoom.Name = "cbZoom"; this.cbZoom.Size = new System.Drawing.Size(59, 21); this.cbZoom.TabIndex = 6; @@ -165,7 +175,7 @@ // this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(542, 517); + this.label4.Location = new System.Drawing.Point(628, 517); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(62, 13); this.label4.TabIndex = 7; @@ -174,7 +184,7 @@ // pbZoom // this.pbZoom.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.pbZoom.Location = new System.Drawing.Point(610, 533); + this.pbZoom.Location = new System.Drawing.Point(696, 533); this.pbZoom.Name = "pbZoom"; this.pbZoom.Size = new System.Drawing.Size(169, 21); this.pbZoom.Step = 1; @@ -192,43 +202,43 @@ this.panel1.Controls.Add(this.btnShiftUp); this.panel1.Controls.Add(this.btnShiftRight); this.panel1.Controls.Add(this.btnShiftLeft); - this.panel1.Location = new System.Drawing.Point(548, 70); + this.panel1.Location = new System.Drawing.Point(634, 70); this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(231, 183); + this.panel1.Size = new System.Drawing.Size(231, 80); this.panel1.TabIndex = 9; // - // btnShiftLeft + // btnMirrorY // - this.btnShiftLeft.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.btnShiftLeft.Location = new System.Drawing.Point(8, 40); - this.btnShiftLeft.Name = "btnShiftLeft"; - this.btnShiftLeft.Size = new System.Drawing.Size(30, 30); - this.btnShiftLeft.TabIndex = 0; - this.btnShiftLeft.Text = "◀"; - this.btnShiftLeft.UseVisualStyleBackColor = true; - this.btnShiftLeft.Click += new System.EventHandler(this.btnShiftLeft_Click); + this.btnMirrorY.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.btnMirrorY.Location = new System.Drawing.Point(188, 4); + this.btnMirrorY.Name = "btnMirrorY"; + this.btnMirrorY.Size = new System.Drawing.Size(30, 30); + this.btnMirrorY.TabIndex = 6; + this.btnMirrorY.Text = "⩥"; + this.btnMirrorY.UseVisualStyleBackColor = true; + this.btnMirrorY.Click += new System.EventHandler(this.btnMirrorY_Click); // - // btnShiftRight + // btnMirrorX // - this.btnShiftRight.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.btnShiftRight.Location = new System.Drawing.Point(80, 40); - this.btnShiftRight.Name = "btnShiftRight"; - this.btnShiftRight.Size = new System.Drawing.Size(30, 30); - this.btnShiftRight.TabIndex = 1; - this.btnShiftRight.Text = "▶"; - this.btnShiftRight.UseVisualStyleBackColor = true; - this.btnShiftRight.Click += new System.EventHandler(this.btnShiftRight_Click); + this.btnMirrorX.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.btnMirrorX.Location = new System.Drawing.Point(152, 4); + this.btnMirrorX.Name = "btnMirrorX"; + this.btnMirrorX.Size = new System.Drawing.Size(30, 30); + this.btnMirrorX.TabIndex = 5; + this.btnMirrorX.Text = "◮"; + this.btnMirrorX.UseVisualStyleBackColor = true; + this.btnMirrorX.Click += new System.EventHandler(this.btnMirrorX_Click); // - // btnShiftUp + // btnInvert // - this.btnShiftUp.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.btnShiftUp.Location = new System.Drawing.Point(44, 4); - this.btnShiftUp.Name = "btnShiftUp"; - this.btnShiftUp.Size = new System.Drawing.Size(30, 30); - this.btnShiftUp.TabIndex = 2; - this.btnShiftUp.Text = "▲"; - this.btnShiftUp.UseVisualStyleBackColor = true; - this.btnShiftUp.Click += new System.EventHandler(this.btnShiftUp_Click); + this.btnInvert.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.btnInvert.Location = new System.Drawing.Point(116, 4); + this.btnInvert.Name = "btnInvert"; + this.btnInvert.Size = new System.Drawing.Size(30, 30); + this.btnInvert.TabIndex = 4; + this.btnInvert.Text = "◪"; + this.btnInvert.UseVisualStyleBackColor = true; + this.btnInvert.Click += new System.EventHandler(this.btnInvert_Click); // // btnShiftDown // @@ -241,44 +251,98 @@ this.btnShiftDown.UseVisualStyleBackColor = true; this.btnShiftDown.Click += new System.EventHandler(this.btnShiftDown_Click); // - // btnInvert + // btnShiftUp // - this.btnInvert.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.btnInvert.Location = new System.Drawing.Point(8, 89); - this.btnInvert.Name = "btnInvert"; - this.btnInvert.Size = new System.Drawing.Size(30, 30); - this.btnInvert.TabIndex = 4; - this.btnInvert.Text = "◪"; - this.btnInvert.UseVisualStyleBackColor = true; - this.btnInvert.Click += new System.EventHandler(this.btnInvert_Click); + this.btnShiftUp.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.btnShiftUp.Location = new System.Drawing.Point(44, 4); + this.btnShiftUp.Name = "btnShiftUp"; + this.btnShiftUp.Size = new System.Drawing.Size(30, 30); + this.btnShiftUp.TabIndex = 2; + this.btnShiftUp.Text = "▲"; + this.btnShiftUp.UseVisualStyleBackColor = true; + this.btnShiftUp.Click += new System.EventHandler(this.btnShiftUp_Click); // - // btnMirrorX + // btnShiftRight // - this.btnMirrorX.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.btnMirrorX.Location = new System.Drawing.Point(44, 89); - this.btnMirrorX.Name = "btnMirrorX"; - this.btnMirrorX.Size = new System.Drawing.Size(30, 30); - this.btnMirrorX.TabIndex = 5; - this.btnMirrorX.Text = "◮"; - this.btnMirrorX.UseVisualStyleBackColor = true; - this.btnMirrorX.Click += new System.EventHandler(this.btnMirrorX_Click); + this.btnShiftRight.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.btnShiftRight.Location = new System.Drawing.Point(80, 40); + this.btnShiftRight.Name = "btnShiftRight"; + this.btnShiftRight.Size = new System.Drawing.Size(30, 30); + this.btnShiftRight.TabIndex = 1; + this.btnShiftRight.Text = "▶"; + this.btnShiftRight.UseVisualStyleBackColor = true; + this.btnShiftRight.Click += new System.EventHandler(this.btnShiftRight_Click); // - // btnMirrorY + // btnShiftLeft // - this.btnMirrorY.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.btnMirrorY.Location = new System.Drawing.Point(80, 89); - this.btnMirrorY.Name = "btnMirrorY"; - this.btnMirrorY.Size = new System.Drawing.Size(30, 30); - this.btnMirrorY.TabIndex = 6; - this.btnMirrorY.Text = "⩥"; - this.btnMirrorY.UseVisualStyleBackColor = true; - this.btnMirrorY.Click += new System.EventHandler(this.btnMirrorY_Click); + this.btnShiftLeft.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.btnShiftLeft.Location = new System.Drawing.Point(8, 40); + this.btnShiftLeft.Name = "btnShiftLeft"; + this.btnShiftLeft.Size = new System.Drawing.Size(30, 30); + this.btnShiftLeft.TabIndex = 0; + this.btnShiftLeft.Text = "◀"; + this.btnShiftLeft.UseVisualStyleBackColor = true; + this.btnShiftLeft.Click += new System.EventHandler(this.btnShiftLeft_Click); + // + // button1 + // + this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.button1.Location = new System.Drawing.Point(634, 156); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(75, 23); + this.button1.TabIndex = 10; + this.button1.Text = "Generate"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // outBox + // + this.outBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Right))); + this.outBox.Font = new System.Drawing.Font("Consolas", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.outBox.Location = new System.Drawing.Point(634, 185); + this.outBox.Multiline = true; + this.outBox.Name = "outBox"; + this.outBox.ScrollBars = System.Windows.Forms.ScrollBars.Both; + this.outBox.Size = new System.Drawing.Size(230, 134); + this.outBox.TabIndex = 11; + this.outBox.Text = "Output text here"; + // + // listView1 + // + this.listView1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.listView1.HideSelection = false; + this.listView1.Items.AddRange(new System.Windows.Forms.ListViewItem[] { + listViewItem1, + listViewItem2, + listViewItem3, + listViewItem4}); + this.listView1.LargeImageList = this.imageList1; + this.listView1.Location = new System.Drawing.Point(634, 325); + this.listView1.MultiSelect = false; + this.listView1.Name = "listView1"; + this.listView1.ShowGroups = false; + this.listView1.Size = new System.Drawing.Size(230, 189); + this.listView1.SmallImageList = this.imageList1; + this.listView1.TabIndex = 12; + this.listView1.TabStop = false; + this.listView1.TileSize = new System.Drawing.Size(50, 70); + this.listView1.UseCompatibleStateImageBehavior = false; + // + // imageList1 + // + this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream"))); + this.imageList1.TransparentColor = System.Drawing.Color.Transparent; + this.imageList1.Images.SetKeyName(0, "firmware.png"); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(791, 566); + this.ClientSize = new System.Drawing.Size(877, 566); + this.Controls.Add(this.listView1); + this.Controls.Add(this.outBox); + this.Controls.Add(this.button1); this.Controls.Add(this.panel1); this.Controls.Add(this.pbZoom); this.Controls.Add(this.label4); @@ -320,6 +384,10 @@ private System.Windows.Forms.Button btnInvert; private System.Windows.Forms.Button btnMirrorX; private System.Windows.Forms.Button btnMirrorY; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.TextBox outBox; + private System.Windows.Forms.ListView listView1; + private System.Windows.Forms.ImageList imageList1; } } diff --git a/McBitFont/Form1.cs b/McBitFont/Form1.cs index 62149c3..aa82463 100644 --- a/McBitFont/Form1.cs +++ b/McBitFont/Form1.cs @@ -13,6 +13,14 @@ using System.Windows.Forms.VisualStyles; namespace McBitFont { public partial class Form1 : Form { + struct FrameMiniature { + public int code; + public int width; + public int height; + public bool[,] data; + }; + + FrameMiniature f; private int cellSize = 10; private int dotWidth, dotHeight; private Panel[,] dots = new Panel[255,255]; @@ -36,6 +44,12 @@ namespace McBitFont { cbZoom.SelectedIndex = 3; cbZoom.SelectedIndexChanged += cbZoom_SelectedIndexChanged; + + f.code = 1; + f.width = dotWidth; + f.height = dotHeight; + f.data = new bool[dotWidth, dotHeight]; + } private Panel NewDot(int i, int j) { @@ -217,6 +231,34 @@ namespace McBitFont { } } + private void button1_Click(object sender, EventArgs e) { + for (int i = 0; i < dotWidth; i++) { + for (int j = 0; j < dotHeight; j++) { + if (dots[i, j].BackColor == Color.Black) f.data[i, j] = true; + else f.data[i, j] = false; + } + } + + outBox.Clear(); + String str; + Byte b = 0; + for (ushort i = 0; i < dotWidth; i++) { + str = ""; + for (ushort j = 0; j < dotHeight; j++) { + if (j % 8 == 0) b = 0; + if (f.data[i, j]) { + b |= (Byte)(1 << (j % 8)); + } + if ( ((j + 1) % 8 == 0) || j+1 == dotHeight ) { + if (str.Length > 0) str += " "; + str += "0x" + Convert.ToString(b, 16).PadLeft(2, '0') + ','; + } + } + outBox.AppendText(str); + outBox.AppendText(Environment.NewLine); + } + } + private void dotScale() { bool large = dotWidth * dotHeight > 12 * 12; int gap = (cellSize < 5) ? 0 : 1; diff --git a/McBitFont/Form1.resx b/McBitFont/Form1.resx index 1af7de1..913872e 100644 --- a/McBitFont/Form1.resx +++ b/McBitFont/Form1.resx @@ -117,4 +117,74 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAG + DgAAAk1TRnQBSQFMAwEBAAEIAQABCAEAATIBAAEyAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA + AcgDAAEyAwABAQEAAQgFAAEQAScYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wBqAAH/AewBEgHz + BAAB9AJtAfQEAAHzARIB7AH/tAAB8QIAAesEAAHvAgAB7wQAAesCAAHxtAAB8AIAAesEAAH3AgAB9wQA + AesCAAHwtAAB8AIAAesEAAH3AgAB9wQAAesCAAHwtAAB8AIAAesEAAH3AgAB9wQAAesCAAHwtAAB8AIA + AesEAAH3AgAB9wQAAesCAAHwtAAB9ALwAfIEAAHzAvAB8wQAAfIC8AH0swAW/7AAAf8B7wERFAABEQHv + Af+tAAH/ARIYAAESAf+sAAHvGgAB76sAAf8BERoAAREB/6MAAf8B8QTwAfQB/xwAAf8B9ATwAfEB/5wA + AewFAAHwAf8cAAH/AfAFAAHsnAABEwUAAfAB/wgAAQcB8wHrBgAB6wHzAQcIAAH/AfAFAAESnAAB8wXr + AfIB/wcAAfACAAH0BgAB9AIAAfAHAAH/AfIF6wHzowAB/wYAAfADAAHwBgAB8AMAAfAGAAH/qgAB/wUA + AfADAAHyAQ4BAAEOAgcBDgEAAQ4B8gMAAfAFAAH/qgAB/wQAAfADAAHyAQ4BDwEOAe8CAAHvAQ4BDwEO + AfIDAAHwBAAB/6oAAf8DAAHwAwAB8gEOAewC/wH0AgAB9AL/AewBDgHyAwAB8AMAAf+jAAH0Ae8E9wHz + Af8CAAHwAwAB8gEOAQAB8AgAAfABAAEOAfIDAAHwAgAB/wHzBPcB7wH0nAABbQUAAfAB/wEAAe0DAAHy + AQ4CAAHrAf8GAAH/AesCAAEOAfIDAAHtAQAB/wHwBQABbZwAAW0FAAHwAf8BAAHtAwAB8gEOAgAB6wH/ + BgAB/wHrAgABDgHyAwAB7QEAAf8B8AUAAW2cAAH0Ae8E9wHzAf8CAAHwAwAB8gEOAQAB8AgAAfABAAEO + AfIDAAHwAgAB/wHzBPcB7wH0owAB/wMAAfADAAHyAQ4B7AL/AfQCAAH0Av8B7AEOAfIDAAHwAwAB/6oA + Af8EAAHwAwAB8gEOARABDgHvAgAB7wEOAQ8BDgHyAwAB8AQAAf+qAAH/BQAB8AMAAfIBDgEAAQ8CBwEO + AQABDgHyAwAB8AUAAf+qAAH/BgAB8AMAAfAGAAHwAwAB8AYAAf+jAAHzBesB8gH/BwAB8AIAAfQGAAH0 + AgAB8AcAAf8B8gXrAfOcAAETBQAB8AH/CAABBwHzAesGAAHrAfMBBwgAAf8B8AUAARKcAAHsBQAB8AH/ + HAAB/wHwBQAB7JwAAf8B8QTwAfQB/xwAAf8B9ATwAfEB/6MAAf8BERoAAREB/6sAAe8aAAHvrAAB/wES + GAABEgH/rQAB/wHvAREUAAERAe8B/7AAFv+zAAH0AvAB8gQAAfMC8AHzBAAB8gLwAfS0AAHwAgAB6wQA + AfcCAAH3BAAB6wIAAfC0AAHwAgAB6wQAAfcCAAH3BAAB6wIAAfC0AAHwAgAB6wQAAfcCAAH3BAAB6wIA + AfC0AAHwAgAB6wQAAfcCAAH3BAAB6wIAAfC0AAHwAgAB6wQAAe8CAAHvBAAB6wIAAfG0AAH/AewBEgHz + BAAB9AJtAfQEAAHzARIB7AH//wD/AP8AAUIBTQE+BwABPgMAASgDAAHIAwABMgMAAQEBAAEBBQABeAEF + FgAD/wEABv8BwBUABv8BwBUABv8BwBUAAf8B/gIeAR8B/wHAFQAB/wH+Ah4BHwH/AcAVAAH/Af4CHgEf + Af8BwBUAAf8B/gIeAR8B/wHAFQAB/wH+Ah4BHwH/AcAVAAH/Af4CHgEfAf8BwBUAAf8B/gIeAR8B/wHA + FQAB/wH8AgABDwH/AcAVAAH/AfACAAEDAf8BwBUAAf8B4AIAAQEB/wHAFQAB/wHgAgABAQH/AcAVAAH/ + AcADAAH/AcAVAAHgBAABAQHAFQAB4AQAAQEBwBUAAeAEAAEBAcAVAAHgAQABGAEGAQABAQHAFQAB/wHA + ATgBBwEAAf8BwBUAAf8BwAFwAQMBgAH/AcAVAAH/AcAB4AHBAcAB/wHAFQAB/wHBAsAB4AH/AcAVAAHg + AQMBhwH4AXABAQHAFQAB4AEHAQMB8AE4AQEBwBUAAeABBwEDAfABOAEBAcAVAAHgAQMBhwH4AXABAQHA + FQAB/wHBAsAB4AH/AcAVAAH/AcAB4AHBAcAB/wHAFQAB/wHAAXABAwGAAf8BwBUAAf8BwAE4AQcBAAH/ + AcAVAAHgAQABGAEGAQABAQHAFQAB4AQAAQEBwBUAAeAEAAEBAcAVAAHgBAABAQHAFQAB/wHAAwAB/wHA + FQAB/wHgAgABAQH/AcAVAAH/AeACAAEBAf8BwBUAAf8B8AIAAQMB/wHAFQAB/wH8AgABDwH/AcAVAAH/ + Af4CHgEfAf8BwBUAAf8B/gIeAR8B/wHAFQAB/wH+Ah4BHwH/AcAVAAH/Af4CHgEfAf8BwBUAAf8B/gIe + AR8B/wHAFQAB/wH+Ah4BHwH/AcAVAAH/Af4CHgEfAf8BwBUABv8BwBUABv8BwBUABv8BwBUACw== + + \ No newline at end of file