From d0b5ceb8ff6c79663ab371ccdaa8f57bc62facf1 Mon Sep 17 00:00:00 2001 From: Egzon Qukovci Jusufi Date: Sun, 27 Aug 2017 21:32:43 +0200 Subject: [PATCH] Underground Score Editor (help needed) (#1416) * Underground Score Editor first commit * not needed space * changed anchor points * added dp offsets, ug scores to underground, underground button click code --- PKHeX.Core/Saves/SAV4.cs | 35 ++- .../Controls/SAV Editor/SAVEditor.Designer.cs | 63 +++-- .../Controls/SAV Editor/SAVEditor.cs | 10 + .../Controls/SAV Editor/SAVEditor.resx | 232 +++------------- PKHeX.WinForms/PKHeX.WinForms.csproj | 11 + .../Gen4/SAV_Underground.Designer.cs | 247 ++++++++++++++++++ .../Save Editors/Gen4/SAV_Underground.cs | 53 ++++ .../Save Editors/Gen4/SAV_Underground.resx | 216 +++++++++++++++ 8 files changed, 645 insertions(+), 222 deletions(-) create mode 100644 PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Underground.Designer.cs create mode 100644 PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Underground.cs create mode 100644 PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Underground.resx diff --git a/PKHeX.Core/Saves/SAV4.cs b/PKHeX.Core/Saves/SAV4.cs index 0c2fa3ee1..381d0e72e 100644 --- a/PKHeX.Core/Saves/SAV4.cs +++ b/PKHeX.Core/Saves/SAV4.cs @@ -209,6 +209,14 @@ private void GetSAVOffsets() OFS_HONEY = 0x72E4 + GBO; Box = 0xC104 + SBO; + OFS_UG_PlayersMet = 0x3A2C; + OFS_UG_Gifts = 0x3A30; + OFS_UG_Spheres = 0x3A38; + OFS_UG_Fossils = 0x3A3C; + OFS_UG_TrapsAvoided = 0x3A44; + OFS_UG_TrapsTriggered = 0x3A48; + OFS_UG_Flags = 0x3A60; + _currentPoketchApp = 0x114E; break; case GameVersion.Pt: @@ -243,6 +251,14 @@ private void GetSAVOffsets() OFS_HONEY = 0x7F38 + GBO; Box = 0xCF30 + SBO; + OFS_UG_PlayersMet = 0x3CB4; + OFS_UG_Gifts = 0x3CB8; + OFS_UG_Spheres = 0x3CC0; + OFS_UG_Fossils = 0x3CC4; + OFS_UG_TrapsAvoided = 0x3CCC; + OFS_UG_TrapsTriggered = 0x3CD0; + OFS_UG_Flags = 0x3CE8; + _currentPoketchApp = 0x1162; break; case GameVersion.HGSS: @@ -279,6 +295,14 @@ private void GetSAVOffsets() } } + private int OFS_UG_PlayersMet = int.MinValue; + private int OFS_UG_Flags = int.MinValue; + private int OFS_UG_Gifts = int.MinValue; + private int OFS_UG_Fossils = int.MinValue; + private int OFS_UG_Spheres = int.MinValue; + private int OFS_UG_TrapsAvoided = int.MinValue; + private int OFS_UG_TrapsTriggered = int.MinValue; + private int WondercardFlags = int.MinValue; private int AdventureInfo = int.MinValue; @@ -1133,7 +1157,16 @@ public int[] MunchlaxTrees return new[] { A, B, C, D }; } } - + + //Underground Scores + public int UG_PlayersMet { get => BitConverter.ToInt32(Data, OFS_UG_PlayersMet); set => BitConverter.GetBytes(value).CopyTo(Data, OFS_UG_PlayersMet); } + public int UG_Gifts { get => BitConverter.ToInt32(Data, OFS_UG_Gifts); set => BitConverter.GetBytes(value).CopyTo(Data, OFS_UG_Gifts); } + public int UG_Spheres { get => BitConverter.ToInt32(Data, OFS_UG_Spheres); set => BitConverter.GetBytes(value).CopyTo(Data, OFS_UG_Spheres); } + public int UG_Fossils { get => BitConverter.ToInt32(Data, OFS_UG_Fossils); set => BitConverter.GetBytes(value).CopyTo(Data, OFS_UG_Fossils); } + public int UG_TrapsAvoided { get => BitConverter.ToInt32(Data, OFS_UG_TrapsAvoided); set => BitConverter.GetBytes(value).CopyTo(Data, OFS_UG_TrapsAvoided); } + public int UG_TrapsTriggered { get => BitConverter.ToInt32(Data, OFS_UG_TrapsTriggered); set => BitConverter.GetBytes(value).CopyTo(Data, OFS_UG_TrapsTriggered); } + public int UG_Flags { get => BitConverter.ToInt32(Data, OFS_UG_Flags); set => BitConverter.GetBytes(value).CopyTo(Data, OFS_UG_Flags); } + public override string GetString(int Offset, int Count) => StringConverter.GetString4(Data, Offset, Count); public override byte[] SetString(string value, int maxLength, int PadToSize = 0, ushort PadWith = 0) { diff --git a/PKHeX.WinForms/Controls/SAV Editor/SAVEditor.Designer.cs b/PKHeX.WinForms/Controls/SAV Editor/SAVEditor.Designer.cs index d2de89732..a9041069e 100644 --- a/PKHeX.WinForms/Controls/SAV Editor/SAVEditor.Designer.cs +++ b/PKHeX.WinForms/Controls/SAV Editor/SAVEditor.Designer.cs @@ -109,6 +109,7 @@ private void InitializeComponent() this.B_OpenHoneyTreeEditor = new System.Windows.Forms.Button(); this.B_OpenFriendSafari = new System.Windows.Forms.Button(); this.B_OpenRTCEditor = new System.Windows.Forms.Button(); + this.B_OpenUGSEditor = new System.Windows.Forms.Button(); this.tabBoxMulti.SuspendLayout(); this.Tab_Box.SuspendLayout(); this.Tab_PartyBattle.SuspendLayout(); @@ -164,10 +165,10 @@ private void InitializeComponent() // Tab_Box // this.Tab_Box.Controls.Add(this.Box); - this.Tab_Box.Location = new System.Drawing.Point(4, 22); + this.Tab_Box.Location = new System.Drawing.Point(4, 25); this.Tab_Box.Name = "Tab_Box"; this.Tab_Box.Padding = new System.Windows.Forms.Padding(3); - this.Tab_Box.Size = new System.Drawing.Size(302, 199); + this.Tab_Box.Size = new System.Drawing.Size(302, 196); this.Tab_Box.TabIndex = 0; this.Tab_Box.Text = "Box"; this.Tab_Box.UseVisualStyleBackColor = true; @@ -176,7 +177,9 @@ private void InitializeComponent() // this.Box.AllowDrop = true; this.Box.CurrentBox = -1; + this.Box.FlagIllegal = false; this.Box.Location = new System.Drawing.Point(26, 7); + this.Box.M = null; this.Box.Name = "Box"; this.Box.Size = new System.Drawing.Size(251, 185); this.Box.TabIndex = 1; @@ -188,10 +191,10 @@ private void InitializeComponent() this.Tab_PartyBattle.Controls.Add(this.L_BattleBox); this.Tab_PartyBattle.Controls.Add(this.L_Party); this.Tab_PartyBattle.Controls.Add(this.PAN_Party); - this.Tab_PartyBattle.Location = new System.Drawing.Point(4, 22); + this.Tab_PartyBattle.Location = new System.Drawing.Point(4, 25); this.Tab_PartyBattle.Name = "Tab_PartyBattle"; this.Tab_PartyBattle.Padding = new System.Windows.Forms.Padding(3); - this.Tab_PartyBattle.Size = new System.Drawing.Size(302, 199); + this.Tab_PartyBattle.Size = new System.Drawing.Size(302, 196); this.Tab_PartyBattle.TabIndex = 1; this.Tab_PartyBattle.Text = "Party-Battle Box"; this.Tab_PartyBattle.UseVisualStyleBackColor = true; @@ -291,7 +294,7 @@ private void InitializeComponent() this.L_BattleBox.AutoSize = true; this.L_BattleBox.Location = new System.Drawing.Point(179, 13); this.L_BattleBox.Name = "L_BattleBox"; - this.L_BattleBox.Size = new System.Drawing.Size(58, 13); + this.L_BattleBox.Size = new System.Drawing.Size(75, 17); this.L_BattleBox.TabIndex = 1; this.L_BattleBox.Text = "Battle Box:"; this.L_BattleBox.Click += new System.EventHandler(this.ClickShowdownExportBattleBox); @@ -301,7 +304,7 @@ private void InitializeComponent() this.L_Party.AutoSize = true; this.L_Party.Location = new System.Drawing.Point(29, 13); this.L_Party.Name = "L_Party"; - this.L_Party.Size = new System.Drawing.Size(34, 13); + this.L_Party.Size = new System.Drawing.Size(45, 17); this.L_Party.TabIndex = 0; this.L_Party.Text = "Party:"; this.L_Party.Click += new System.EventHandler(this.ClickShowdownExportParty); @@ -382,9 +385,9 @@ private void InitializeComponent() this.Tab_Other.Controls.Add(this.GB_Fused); this.Tab_Other.Controls.Add(this.L_ReadOnlyOther); this.Tab_Other.Controls.Add(this.GB_SUBE); - this.Tab_Other.Location = new System.Drawing.Point(4, 22); + this.Tab_Other.Location = new System.Drawing.Point(4, 25); this.Tab_Other.Name = "Tab_Other"; - this.Tab_Other.Size = new System.Drawing.Size(302, 199); + this.Tab_Other.Size = new System.Drawing.Size(302, 196); this.Tab_Other.TabIndex = 2; this.Tab_Other.Text = "Other"; this.Tab_Other.UseVisualStyleBackColor = true; @@ -414,7 +417,7 @@ private void InitializeComponent() this.L_XP2.AutoSize = true; this.L_XP2.Location = new System.Drawing.Point(74, 88); this.L_XP2.Name = "L_XP2"; - this.L_XP2.Size = new System.Drawing.Size(30, 13); + this.L_XP2.Size = new System.Drawing.Size(38, 17); this.L_XP2.TabIndex = 17; this.L_XP2.Text = "+XP:"; // @@ -423,7 +426,7 @@ private void InitializeComponent() this.L_XP1.AutoSize = true; this.L_XP1.Location = new System.Drawing.Point(74, 35); this.L_XP1.Name = "L_XP1"; - this.L_XP1.Size = new System.Drawing.Size(30, 13); + this.L_XP1.Size = new System.Drawing.Size(38, 17); this.L_XP1.TabIndex = 16; this.L_XP1.Text = "+XP:"; // @@ -432,7 +435,7 @@ private void InitializeComponent() this.TB_Daycare2XP.Location = new System.Drawing.Point(108, 85); this.TB_Daycare2XP.Name = "TB_Daycare2XP"; this.TB_Daycare2XP.ReadOnly = true; - this.TB_Daycare2XP.Size = new System.Drawing.Size(73, 20); + this.TB_Daycare2XP.Size = new System.Drawing.Size(73, 22); this.TB_Daycare2XP.TabIndex = 15; // // TB_Daycare1XP @@ -440,7 +443,7 @@ private void InitializeComponent() this.TB_Daycare1XP.Location = new System.Drawing.Point(108, 32); this.TB_Daycare1XP.Name = "TB_Daycare1XP"; this.TB_Daycare1XP.ReadOnly = true; - this.TB_Daycare1XP.Size = new System.Drawing.Size(73, 20); + this.TB_Daycare1XP.Size = new System.Drawing.Size(73, 22); this.TB_Daycare1XP.TabIndex = 14; // // L_DC2 @@ -448,7 +451,7 @@ private void InitializeComponent() this.L_DC2.AutoSize = true; this.L_DC2.Location = new System.Drawing.Point(74, 71); this.L_DC2.Name = "L_DC2"; - this.L_DC2.Size = new System.Drawing.Size(19, 13); + this.L_DC2.Size = new System.Drawing.Size(24, 17); this.L_DC2.TabIndex = 13; this.L_DC2.Text = "2: "; // @@ -457,7 +460,7 @@ private void InitializeComponent() this.L_DC1.AutoSize = true; this.L_DC1.Location = new System.Drawing.Point(74, 18); this.L_DC1.Name = "L_DC1"; - this.L_DC1.Size = new System.Drawing.Size(19, 13); + this.L_DC1.Size = new System.Drawing.Size(24, 17); this.L_DC1.TabIndex = 12; this.L_DC1.Text = "1: "; // @@ -466,7 +469,7 @@ private void InitializeComponent() this.L_DaycareSeed.AutoSize = true; this.L_DaycareSeed.Location = new System.Drawing.Point(23, 143); this.L_DaycareSeed.Name = "L_DaycareSeed"; - this.L_DaycareSeed.Size = new System.Drawing.Size(35, 13); + this.L_DaycareSeed.Size = new System.Drawing.Size(45, 17); this.L_DaycareSeed.TabIndex = 9; this.L_DaycareSeed.Text = "Seed:"; // @@ -476,7 +479,7 @@ private void InitializeComponent() this.TB_RNGSeed.Location = new System.Drawing.Point(61, 140); this.TB_RNGSeed.MaxLength = 16; this.TB_RNGSeed.Name = "TB_RNGSeed"; - this.TB_RNGSeed.Size = new System.Drawing.Size(120, 20); + this.TB_RNGSeed.Size = new System.Drawing.Size(120, 23); this.TB_RNGSeed.TabIndex = 8; this.TB_RNGSeed.Text = "0123456789ABCDEF"; this.TB_RNGSeed.Validated += new System.EventHandler(this.UpdateStringSeed); @@ -507,7 +510,7 @@ private void InitializeComponent() this.DayCare_HasEgg.Enabled = false; this.DayCare_HasEgg.Location = new System.Drawing.Point(61, 123); this.DayCare_HasEgg.Name = "DayCare_HasEgg"; - this.DayCare_HasEgg.Size = new System.Drawing.Size(91, 17); + this.DayCare_HasEgg.Size = new System.Drawing.Size(116, 21); this.DayCare_HasEgg.TabIndex = 7; this.DayCare_HasEgg.Text = "Egg Available"; this.DayCare_HasEgg.UseVisualStyleBackColor = true; @@ -617,9 +620,9 @@ private void InitializeComponent() this.Tab_SAV.Controls.Add(this.TB_GameSync); this.Tab_SAV.Controls.Add(this.B_SaveBoxBin); this.Tab_SAV.Controls.Add(this.B_VerifyCHK); - this.Tab_SAV.Location = new System.Drawing.Point(4, 22); + this.Tab_SAV.Location = new System.Drawing.Point(4, 25); this.Tab_SAV.Name = "Tab_SAV"; - this.Tab_SAV.Size = new System.Drawing.Size(302, 199); + this.Tab_SAV.Size = new System.Drawing.Size(302, 196); this.Tab_SAV.TabIndex = 3; this.Tab_SAV.Text = "SAV"; this.Tab_SAV.UseVisualStyleBackColor = true; @@ -630,7 +633,7 @@ private void InitializeComponent() this.CB_SaveSlot.FormattingEnabled = true; this.CB_SaveSlot.Location = new System.Drawing.Point(150, 148); this.CB_SaveSlot.Name = "CB_SaveSlot"; - this.CB_SaveSlot.Size = new System.Drawing.Size(121, 21); + this.CB_SaveSlot.Size = new System.Drawing.Size(121, 24); this.CB_SaveSlot.TabIndex = 20; this.CB_SaveSlot.Validated += new System.EventHandler(this.UpdateSaveSlot); // @@ -639,7 +642,7 @@ private void InitializeComponent() this.L_SaveSlot.AutoSize = true; this.L_SaveSlot.Location = new System.Drawing.Point(92, 151); this.L_SaveSlot.Name = "L_SaveSlot"; - this.L_SaveSlot.Size = new System.Drawing.Size(56, 13); + this.L_SaveSlot.Size = new System.Drawing.Size(72, 17); this.L_SaveSlot.TabIndex = 19; this.L_SaveSlot.Text = "Save Slot:"; // @@ -659,7 +662,7 @@ private void InitializeComponent() this.TB_Secure2.Location = new System.Drawing.Point(151, 113); this.TB_Secure2.MaxLength = 16; this.TB_Secure2.Name = "TB_Secure2"; - this.TB_Secure2.Size = new System.Drawing.Size(120, 20); + this.TB_Secure2.Size = new System.Drawing.Size(120, 23); this.TB_Secure2.TabIndex = 17; this.TB_Secure2.Text = "0000000000000000"; this.TB_Secure2.Validated += new System.EventHandler(this.UpdateStringSeed); @@ -680,7 +683,7 @@ private void InitializeComponent() this.TB_Secure1.Location = new System.Drawing.Point(151, 91); this.TB_Secure1.MaxLength = 16; this.TB_Secure1.Name = "TB_Secure1"; - this.TB_Secure1.Size = new System.Drawing.Size(120, 20); + this.TB_Secure1.Size = new System.Drawing.Size(120, 23); this.TB_Secure1.TabIndex = 15; this.TB_Secure1.Text = "0000000000000000"; this.TB_Secure1.Validated += new System.EventHandler(this.UpdateStringSeed); @@ -711,7 +714,7 @@ private void InitializeComponent() this.TB_GameSync.Location = new System.Drawing.Point(151, 69); this.TB_GameSync.MaxLength = 16; this.TB_GameSync.Name = "TB_GameSync"; - this.TB_GameSync.Size = new System.Drawing.Size(120, 20); + this.TB_GameSync.Size = new System.Drawing.Size(120, 23); this.TB_GameSync.TabIndex = 10; this.TB_GameSync.Text = "0000000000000000"; this.TB_GameSync.Validated += new System.EventHandler(this.UpdateStringSeed); @@ -777,6 +780,7 @@ private void InitializeComponent() this.FLP_SAVtools.Controls.Add(this.B_OpenHoneyTreeEditor); this.FLP_SAVtools.Controls.Add(this.B_OpenFriendSafari); this.FLP_SAVtools.Controls.Add(this.B_OpenRTCEditor); + this.FLP_SAVtools.Controls.Add(this.B_OpenUGSEditor); this.FLP_SAVtools.Location = new System.Drawing.Point(6, 10); this.FLP_SAVtools.Name = "FLP_SAVtools"; this.FLP_SAVtools.Size = new System.Drawing.Size(297, 88); @@ -1005,6 +1009,16 @@ private void InitializeComponent() this.B_OpenRTCEditor.UseVisualStyleBackColor = true; this.B_OpenRTCEditor.Click += new System.EventHandler(this.B_OpenRTCEditor_Click); // + // B_OpenUGSEditor + // + this.B_OpenUGSEditor.Location = new System.Drawing.Point(96, 206); + this.B_OpenUGSEditor.Name = "B_OpenUGSEditor"; + this.B_OpenUGSEditor.Size = new System.Drawing.Size(87, 23); + this.B_OpenUGSEditor.TabIndex = 2; + this.B_OpenUGSEditor.Text = "Underground"; + this.B_OpenUGSEditor.UseVisualStyleBackColor = true; + this.B_OpenUGSEditor.Click += new System.EventHandler(this.B_OpenUGSEditor_Click); + // // SAVEditor // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; @@ -1139,5 +1153,6 @@ private void InitializeComponent() private System.Windows.Forms.Button B_OpenFriendSafari; private System.Windows.Forms.Button B_OpenRTCEditor; public BoxEditor Box; + private System.Windows.Forms.Button B_OpenUGSEditor; } } diff --git a/PKHeX.WinForms/Controls/SAV Editor/SAVEditor.cs b/PKHeX.WinForms/Controls/SAV Editor/SAVEditor.cs index cd62c509c..f5f96d52b 100644 --- a/PKHeX.WinForms/Controls/SAV Editor/SAVEditor.cs +++ b/PKHeX.WinForms/Controls/SAV Editor/SAVEditor.cs @@ -1098,5 +1098,15 @@ private void ClickShowdownExportBattleBox(object sender, EventArgs e) catch { } WinFormsUtil.Alert("Showdown Team (Battle Box) set to Clipboard."); } + + private void B_OpenUGSEditor_Click(object sender, EventArgs e) + { + switch (SAV.Version) + { + case GameVersion.DP: + case GameVersion.Pt: + new SAV_Underground(SAV).ShowDialog(); break; + } + } } } diff --git a/PKHeX.WinForms/Controls/SAV Editor/SAVEditor.resx b/PKHeX.WinForms/Controls/SAV Editor/SAVEditor.resx index cbe2b7fa3..b4eee6f8a 100644 --- a/PKHeX.WinForms/Controls/SAV Editor/SAVEditor.resx +++ b/PKHeX.WinForms/Controls/SAV Editor/SAVEditor.resx @@ -132,78 +132,6 @@ True - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - @@ -315,24 +243,6 @@ True - - True - - - True - - - True - - - True - - - True - - - True - iVBORw0KGgoAAAANSUhEUgAAAG8AAACgCAYAAAACezIBAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO @@ -400,6 +310,9 @@ True + + True + True @@ -436,57 +349,18 @@ True - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - True True - - True - True True - - True - True @@ -502,13 +376,40 @@ True - + True - + True - + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + True @@ -517,9 +418,6 @@ True - - True - True @@ -586,70 +484,10 @@ True - + True - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - + True \ No newline at end of file diff --git a/PKHeX.WinForms/PKHeX.WinForms.csproj b/PKHeX.WinForms/PKHeX.WinForms.csproj index 85945c801..cbe250efb 100644 --- a/PKHeX.WinForms/PKHeX.WinForms.csproj +++ b/PKHeX.WinForms/PKHeX.WinForms.csproj @@ -141,10 +141,12 @@ + + @@ -332,6 +334,12 @@ SAV_Pokedex4.cs + + Form + + + SAV_Underground.cs + Form @@ -607,6 +615,9 @@ SAV_Pokedex4.cs + + SAV_Underground.cs + SAV_CGearSkin.cs diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Underground.Designer.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Underground.Designer.cs new file mode 100644 index 000000000..312b6e6b0 --- /dev/null +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Underground.Designer.cs @@ -0,0 +1,247 @@ +namespace PKHeX.WinForms +{ + partial class SAV_Underground + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SAV_Underground)); + this.B_Save = new System.Windows.Forms.Button(); + this.B_Cancel = new System.Windows.Forms.Button(); + this.LU_PlayersMet = new System.Windows.Forms.Label(); + this.U_PlayersMet = new System.Windows.Forms.NumericUpDown(); + this.LU_Gifts = new System.Windows.Forms.Label(); + this.U_Gifts = new System.Windows.Forms.NumericUpDown(); + this.LU_Spheres = new System.Windows.Forms.Label(); + this.U_Spheres = new System.Windows.Forms.NumericUpDown(); + this.LU_Fossils = new System.Windows.Forms.Label(); + this.U_Fossils = new System.Windows.Forms.NumericUpDown(); + this.LU_TrapsA = new System.Windows.Forms.Label(); + this.U_TrapsA = new System.Windows.Forms.NumericUpDown(); + this.LU_TrapsT = new System.Windows.Forms.Label(); + this.U_TrapsT = new System.Windows.Forms.NumericUpDown(); + this.LU_Flags = new System.Windows.Forms.Label(); + this.U_Flags = new System.Windows.Forms.NumericUpDown(); + ((System.ComponentModel.ISupportInitialize)(this.U_PlayersMet)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.U_Gifts)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.U_Spheres)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.U_Fossils)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.U_TrapsA)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.U_TrapsT)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.U_Flags)).BeginInit(); + this.SuspendLayout(); + // + // B_Save + // + this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Save.Location = new System.Drawing.Point(269, 223); + this.B_Save.Margin = new System.Windows.Forms.Padding(4); + this.B_Save.Name = "B_Save"; + this.B_Save.Size = new System.Drawing.Size(100, 28); + this.B_Save.TabIndex = 1; + this.B_Save.Text = "Save"; + this.B_Save.UseVisualStyleBackColor = true; + this.B_Save.Click += new System.EventHandler(this.B_Save_Click); + // + // B_Cancel + // + this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Cancel.Location = new System.Drawing.Point(161, 223); + this.B_Cancel.Margin = new System.Windows.Forms.Padding(4); + this.B_Cancel.Name = "B_Cancel"; + this.B_Cancel.Size = new System.Drawing.Size(100, 28); + this.B_Cancel.TabIndex = 2; + this.B_Cancel.Text = "Cancel"; + this.B_Cancel.UseVisualStyleBackColor = true; + this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); + // + // LU_PlayersMet + // + this.LU_PlayersMet.AutoSize = true; + this.LU_PlayersMet.Location = new System.Drawing.Point(91, 19); + this.LU_PlayersMet.Name = "LU_PlayersMet"; + this.LU_PlayersMet.Size = new System.Drawing.Size(82, 17); + this.LU_PlayersMet.TabIndex = 3; + this.LU_PlayersMet.Text = "Players Met"; + // + // U_PlayersMet + // + this.U_PlayersMet.Location = new System.Drawing.Point(179, 17); + this.U_PlayersMet.Name = "U_PlayersMet"; + this.U_PlayersMet.Size = new System.Drawing.Size(95, 22); + this.U_PlayersMet.TabIndex = 4; + // + // LU_Gifts + // + this.LU_Gifts.AutoSize = true; + this.LU_Gifts.Location = new System.Drawing.Point(95, 47); + this.LU_Gifts.Name = "LU_Gifts"; + this.LU_Gifts.Size = new System.Drawing.Size(78, 17); + this.LU_Gifts.TabIndex = 5; + this.LU_Gifts.Text = "Gifts Given"; + // + // U_Gifts + // + this.U_Gifts.Location = new System.Drawing.Point(179, 45); + this.U_Gifts.Name = "U_Gifts"; + this.U_Gifts.Size = new System.Drawing.Size(95, 22); + this.U_Gifts.TabIndex = 6; + // + // LU_Spheres + // + this.LU_Spheres.AutoSize = true; + this.LU_Spheres.Location = new System.Drawing.Point(50, 75); + this.LU_Spheres.Name = "LU_Spheres"; + this.LU_Spheres.Size = new System.Drawing.Size(123, 17); + this.LU_Spheres.TabIndex = 7; + this.LU_Spheres.Text = "Spheres Obtained"; + // + // U_Spheres + // + this.U_Spheres.Location = new System.Drawing.Point(179, 73); + this.U_Spheres.Name = "U_Spheres"; + this.U_Spheres.Size = new System.Drawing.Size(95, 22); + this.U_Spheres.TabIndex = 8; + // + // LU_Fossils + // + this.LU_Fossils.AutoSize = true; + this.LU_Fossils.Location = new System.Drawing.Point(60, 103); + this.LU_Fossils.Name = "LU_Fossils"; + this.LU_Fossils.Size = new System.Drawing.Size(113, 17); + this.LU_Fossils.TabIndex = 9; + this.LU_Fossils.Text = "Fossils Obtained"; + // + // U_Fossils + // + this.U_Fossils.Location = new System.Drawing.Point(179, 101); + this.U_Fossils.Name = "U_Fossils"; + this.U_Fossils.Size = new System.Drawing.Size(95, 22); + this.U_Fossils.TabIndex = 10; + // + // LU_TrapsA + // + this.LU_TrapsA.AutoSize = true; + this.LU_TrapsA.Location = new System.Drawing.Point(73, 131); + this.LU_TrapsA.Name = "LU_TrapsA"; + this.LU_TrapsA.Size = new System.Drawing.Size(100, 17); + this.LU_TrapsA.TabIndex = 11; + this.LU_TrapsA.Text = "Traps Avoided"; + // + // U_TrapsA + // + this.U_TrapsA.Location = new System.Drawing.Point(179, 129); + this.U_TrapsA.Name = "U_TrapsA"; + this.U_TrapsA.Size = new System.Drawing.Size(95, 22); + this.U_TrapsA.TabIndex = 12; + // + // LU_TrapsT + // + this.LU_TrapsT.AutoSize = true; + this.LU_TrapsT.Location = new System.Drawing.Point(62, 159); + this.LU_TrapsT.Name = "LU_TrapsT"; + this.LU_TrapsT.Size = new System.Drawing.Size(111, 17); + this.LU_TrapsT.TabIndex = 13; + this.LU_TrapsT.Text = "Traps Triggered"; + // + // U_TrapsT + // + this.U_TrapsT.Location = new System.Drawing.Point(179, 157); + this.U_TrapsT.Name = "U_TrapsT"; + this.U_TrapsT.Size = new System.Drawing.Size(95, 22); + this.U_TrapsT.TabIndex = 14; + // + // LU_Flags + // + this.LU_Flags.AutoSize = true; + this.LU_Flags.Location = new System.Drawing.Point(69, 187); + this.LU_Flags.Name = "LU_Flags"; + this.LU_Flags.Size = new System.Drawing.Size(104, 17); + this.LU_Flags.TabIndex = 15; + this.LU_Flags.Text = "Flags Captured"; + // + // U_Flags + // + this.U_Flags.Location = new System.Drawing.Point(179, 185); + this.U_Flags.Name = "U_Flags"; + this.U_Flags.Size = new System.Drawing.Size(95, 22); + this.U_Flags.TabIndex = 16; + // + // SAV_Underground + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(378, 261); + this.Controls.Add(this.U_Flags); + this.Controls.Add(this.LU_Flags); + this.Controls.Add(this.U_TrapsT); + this.Controls.Add(this.LU_TrapsT); + this.Controls.Add(this.U_TrapsA); + this.Controls.Add(this.LU_TrapsA); + this.Controls.Add(this.U_Fossils); + this.Controls.Add(this.LU_Fossils); + this.Controls.Add(this.U_Spheres); + this.Controls.Add(this.LU_Spheres); + this.Controls.Add(this.U_Gifts); + this.Controls.Add(this.LU_Gifts); + this.Controls.Add(this.U_PlayersMet); + this.Controls.Add(this.LU_PlayersMet); + this.Controls.Add(this.B_Cancel); + this.Controls.Add(this.B_Save); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "SAV_Underground"; + this.Text = "Underground Scores Editor"; + ((System.ComponentModel.ISupportInitialize)(this.U_PlayersMet)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.U_Gifts)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.U_Spheres)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.U_Fossils)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.U_TrapsA)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.U_TrapsT)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.U_Flags)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.Button B_Save; + private System.Windows.Forms.Button B_Cancel; + private System.Windows.Forms.Label LU_PlayersMet; + private System.Windows.Forms.NumericUpDown U_PlayersMet; + private System.Windows.Forms.Label LU_Gifts; + private System.Windows.Forms.NumericUpDown U_Gifts; + private System.Windows.Forms.Label LU_Spheres; + private System.Windows.Forms.NumericUpDown U_Spheres; + private System.Windows.Forms.Label LU_Fossils; + private System.Windows.Forms.NumericUpDown U_Fossils; + private System.Windows.Forms.Label LU_TrapsA; + private System.Windows.Forms.NumericUpDown U_TrapsA; + private System.Windows.Forms.Label LU_TrapsT; + private System.Windows.Forms.NumericUpDown U_TrapsT; + private System.Windows.Forms.Label LU_Flags; + private System.Windows.Forms.NumericUpDown U_Flags; + } +} \ No newline at end of file diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Underground.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Underground.cs new file mode 100644 index 000000000..d7b7bc8df --- /dev/null +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Underground.cs @@ -0,0 +1,53 @@ +using System; +using System.Linq; +using System.Windows.Forms; +using PKHeX.Core; + +namespace PKHeX.WinForms +{ + public partial class SAV_Underground : Form + { + private readonly SaveFile Origin; + private readonly SAV4 SAV; + public SAV_Underground(SaveFile sav) + { + SAV = (SAV4)(Origin = sav).Clone(); + InitializeComponent(); + WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); + + GetUGScores(); + } + + private void GetUGScores() + { + U_PlayersMet.Value = SAV.UG_PlayersMet; + U_Gifts.Value = SAV.UG_Gifts; + U_Spheres.Value = SAV.UG_Spheres; + U_Fossils.Value = SAV.UG_Fossils; + U_TrapsA.Value = SAV.UG_TrapsAvoided; + U_TrapsT.Value = SAV.UG_TrapsTriggered; + U_Flags.Value = SAV.UG_Flags; + } + + private void SetUGScores() + { + SAV.UG_PlayersMet = (int)U_PlayersMet.Value; + SAV.UG_Gifts = (int)U_Gifts.Value; + SAV.UG_Spheres = (int)U_Spheres.Value; + SAV.UG_Fossils = (int)U_Fossils.Value; + SAV.UG_TrapsAvoided = (int)U_TrapsA.Value; + SAV.UG_TrapsTriggered = (int)U_TrapsT.Value; + SAV.UG_Flags = (int)U_Flags.Value; + } + + private void B_Save_Click(object sender, EventArgs e) + { + SetUGScores(); + Origin.SetData(SAV.Data, 0); + Close(); + } + + private void B_Cancel_Click(object sender, EventArgs e) => Close(); + + } +} diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Underground.resx b/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Underground.resx new file mode 100644 index 000000000..603f660be --- /dev/null +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Underground.resx @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAE + AAAAAAAAAAAAAAAAAAAAAAAAIyMjAQAAAAALCwsPJiYmJysrKycqKionKSkpJykpKScpKSknKioqJyoq + KicrKysnJycnJw0ODQ8AAAAAJiYmAQAAAABpaWlHq6ur17+/v+6+vr7svr6+7b6+vu2+vr7tvr6+7b6+ + vu2+vr7tvr6+7L+/v+6rq6vXampqSAAAAAAoKSgXvr++3eLi4v/g4OD94eHh/+Hh4f/i4uL/4uLi/+Li + 4v/i4uL/4eHh/+Dh4P/g4OD94uLi/7+/v90sLCwXfn5+PNna2frg4OD/39/f/uHh4f7h4eH+39/f/uDg + 4P7g4OD+39/f/uHh4f7h4OH+39/f/t/g3//a2tr6g4ODPoOCgz7X19f64+Pj/+Li4v7k5OT/4+Tj//Ly + 8v/19fX/9PT0//T09P/k5OT/5OTk/+Pj4/7j4+P/19jX+4qLikCDhIM+2tra++Xl5f/k5eT+5OTk//Lz + 8v+urq7/RUVF/z4+Pv+Zmpn/8fHx/+Xm5f/k5eT+5eXl/9ra2vyLi4tAhYWFPuXm5vvx8vP/7+/w/v// + //+sra3/AgIC/15eXv9tbG3/BQUF/4yMjP//////7+/w/vHy8//l5ub8jY2NQC4uLD5LS0f7UFBL/09P + Sv5YWVP/FBUS/29wcP///////////5SUlP8PDw//U1NO/1BQS/5PT0r/S0tH/DIyMEAAAAs+AAAM+wAA + Dv8AAA/+AwMS/wAAAP+UlJX///////////+3t7n/AAAA/wAAD/8BAQ/+AAAO/wAADPwCAg5ABARSPgoK + k/sNDab/DQ2o/hAQvP8CAmj/IiIW/7Kzrv/Cw8D/NDQm/wAATf8QELz/DQ2q/gwMp/8LC5T8Dg5bQAUF + Xj4KCpz7DQ2u/w0NsP4NDbX/Dw+//wUFYf8CAhL/AwMP/wMDTf8ODrj/Dg64/w0NsP4MDK7/Cwud/A8P + aEEGBmU9DAyl+w4Otf8ODrf+Dw+6/xAQvv8TE8v/EhK+/xAQvP8TE8v/EBDA/w8Puf8PD7f+Dg61/w0N + pvsREW9ACAhtQA8PsfsTE77/ExO//xQUwP8UFML/FBTD/xUVyP8WFsn/FRXE/xQUw/8UFMH/ExO//xMT + vv8QELL7ERF3QxkZdCgXF771ExPH/xUVyPwVFcn9FhbL/RcXzP0XF8z9FxfM/RcXy/0XF8v9FhbJ/RUV + yPwTE8f/Fxe+9RkZdykAAAAAIyOtghsbx/8ZGcj+GRnJ/xoayf8aGsn/GhrK/xoayv8aGsn/GhrJ/xkZ + yf8ZGcj+GxvH/yMjrYQAAAAAAADHAQAAAAAzM51FLCyscCoqrGwqKqxtKSmsbSoqrG0qKqxtKSmsbSoq + rG0qKqxsLCyscDMznUUAAAAAAAAAAP//AADAAwAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIAB + AACAAQAAgAEAAIABAACAAQAAgAEAAP//AAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrCR0dHSMWFhY3GBgYORgYGDkYGBg5GBgYORgY + GDkYGBg5GBgYORgYGDkYGBg5GBgYORgYGDkYGBg5GBgYORgYGDkYGBg5GBgYORgYGDkYGBg5FxcXNx4e + HiQuLi4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASEhIARYWFis7OzuVkJCQ2ampqeqqqqrsqqqq7Kqq + quyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqq + quypqanqkZGR2j09PZcXFxcsUFBQAQAAAAAAAAAAAAAAAAAAAAASEhIuhISEytvb2/7W1tb/19fX/9jY + 2P/Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Y2Nj/2NjY/9jY + 2P/Y2Nj/2NjY/9fX1//W1tb/29vb/oeHh8sTExMvAAAAAAAAAAAAAAAAPDw8DGtra6zZ2dn/2dnZ/9ra + 2v/b29v/29vb/9vb2//c3Nz/3Nzc/9zc3P/c3Nz/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3Nzc/9zc + 3P/c3Nz/3Nzc/9vb2//b29v/29vb/9ra2v/Z2dn/2dnZ/21tba5DQ0MNAAAAAAAAAAAiIiIx1NXU9tna + 2f/c3Nz/3d3d/93e3f/e3t7/3t7e/9/f3//f39//39/f/9/g3//g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg + 4P/g4OD/39/f/9/f3//f39//3t/e/97e3v/d3t3/3d3d/9zc3P/Z2tn/1dXV9icnJzMAAAAAAAAAAFhZ + WFzf4N//3Nzc/97e3v/f39//39/f/9/g3//g4OD/4ODg/+Hh4f/h4eH/4eHh/+Li4v/i4uL/4uLi/+Li + 4v/i4uL/4uLi/+Hi4f/h4eH/4eHh/+Dg4P/g4OD/3+Df/9/f3//f39//3t7e/9zc3P/f39//XV1dXQAA + AAAAAAAAZmZmZdvc2//e3t7/3+Df/+Dg4P/g4eD/4eHh/+Hi4f/i4uL/4uPi/+Pj4//j4+P/5OTk/+Tk + 5P/k5OT/5OTk/+Tk5P/k5OT/4+Pj/+Pj4//j4+P/4uLi/+Li4v/h4eH/4eHh/+Dg4P/f4N//3t7e/9vb + 2/9wcHBoAAAAAAAAAABoaGhl3d3d/9/f3//h4eH/4eLh/+Li4v/j4+P/4+Pj/+Tk5P/k5OT/5eXl/+Xl + 5f/l5uX/5ubm/+bm5v/m5ub/5ubm/+bm5v/l5eX/5eXl/+Tk5P/k5OT/4+Pj/+Pj4//i4uL/4uLi/+Hh + 4f/f39//3N3c/3Nzc2kAAAAAAAAAAGhoaGXe3t7/4ODg/+Li4v/j4+P/4+Pj/+Tk5P/l5eX/5eXl/+bm + 5v/m5+b/5+fn/+fn5//n6Of/6Ojo/+jo6P/o6Oj/5+fn/+fn5//n5+f/5ubm/+Xl5f/l5eX/5OTk/+Pk + 4//j4+P/4uLi/+Dg4P/e3t7/c3NzaQAAAAAAAAAAaGhoZd/g3//i4uL/5OTk/+Tl5P/l5eX/5ebl/+bn + 5v/n5+f/5+jn/+jp6P/p6en/7Ozs/8LCwv+Tk5P/ioqK/66urv/o6ej/6enp/+jp6P/o6Oj/5+jn/+bn + 5v/m5ub/5ebl/+Tl5P/k5OT/4uLi/9/g3/9zdHNpAAAAAAAAAABoaWhl4eLh/+Pk4//m5ub/5ubm/+fn + 5//n6Of/6Ojo/+np6f/p6un/6urq/8bGxv8yMjL/AAAA/wAAAP8AAAD/AAAA/xMTE/+ZmZn/7Ozs/+rq + 6v/p6en/6Ojo/+jo6P/n5+f/5ubm/+bm5v/k5OT/4eHh/3R0dGkAAAAAAAAAAGhpaGXj4+P/5eXl/+fn + 5//n6Of/6Ojo/+np6f/q6ur/6urq/+vr6//Dw8P/DAwM/wAAAP8AAAD/Gxsb/ygoKP8BAQH/AAAA/wAA + AP+FhYX/7O3s/+rr6v/q6ur/6enp/+jo6P/o6Oj/5+fn/+Xl5f/i4+L/dHR0aQAAAAAAAAAAYWFhZeTl + 5P/m5+b/6Ono/+np6f/p6un/6uvq/+vr6//s7Oz/7e7t/ycnJ/8AAAD/Ghoa/7S0tP/m5ub/5OTk/9HR + 0f9GRkb/AAAA/wICAv/IyMj/7Ozs/+vs6//q6+r/6urq/+nq6f/o6ej/5+fn/+Tk5P9sbGxpAAAAAAAA + AAA9Pj1lj4+P/5OTk/+VlZX/lpaW/5eXl/+YmJj/mZmZ/5qamv92dnb/AAAA/wEBAf+/wL//3Nzc/+Tk + 5P/l5eX/3d3d/+Li4v8mJib/AAAA/0ZGRv+ampr/mZmZ/5iYmP+Xl5f/lpaW/5WVlf+Tk5P/j4+P/0ZG + RmoAAAAAAAAAAAwMDGUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Nzc3/+fn + 5//q6ur/7O3s/+zt7P/v7+//39/f/4WFhf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/EBAQagAAAAAAAAAAAwMHZQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP9NTU3/5ufm//Lz8v/z9PP/8/Tz//X19f/l5eX/nZ2d/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8GBgpqAAAAAAAAAAAAABZlAQEk/wEBJ/8CAin/AgIq/wICKv8CAiv/AgIs/wIC + LP8BAR3/AAAA/xwcHP/w8PD/6+zr//r6+v/6+vr/9PT0/+vr6/9lZWX/AAAA/wAAD/8CAi3/AgIs/wIC + K/8CAir/AgIq/wICKf8BASf/AQEl/wUFG2oAAAAAAAAAAAICQGUGBpL/Bwec/wgIo/8JCaf/CQmq/wkJ + rf8JCa//Cgqz/wkJqP8AAAL/AAAA/4CAgP/y8/L/6+zr/+3t7f/u7u7/xMTE/wcHB/8AAAD/BgZz/woK + s/8JCbD/CQmt/wkJqv8JCaj/CAik/wcHnf8HB5P/Dg5MagAAAAAAAAAAAwNHZQgIk/8JCZ3/Cgqj/wsL + p/8LC6n/Cwus/wsLr/8MDLL/DAy2/wYGW/8AAAD/AAAA/1JSUv+sraz/tra2/3h4eP8KCgr/AAAA/wIC + Iv8MDLb/DAyy/wsLsP8LC63/Cwuq/wsLp/8KCqT/CQmd/wgIk/8PD1VrAAAAAAAAAAAEBE1lCQmY/woK + ov8LC6j/DAyr/wwMrf8MDLD/DAyy/w0Ntf8NDbf/Dg67/wUFSv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8CAiH/DQ2q/w0NuP8NDbX/DQ2z/wwMsP8MDK7/DAyr/wsLqP8KCqL/CQmZ/xAQWmsAAAAAAAAAAAQE + UGUKCp7/Cwum/wwMrP8NDa//DQ2w/w0Ns/8ODrX/Dg63/w4Ouf8ODrv/Dw/A/wwMiv8FBTj/AAAG/wAA + AP8DAyb/CQls/w8Pu/8PD7z/Dg66/w4OuP8ODrX/DQ2z/w0Nsf8NDa//DAys/wsLp/8KCp7/ERFeawAA + AAAAAAAABQVTZQsLpP8MDKv/DQ2w/w4Os/8ODrT/Dg62/w8PuP8PD7r/Dw+8/w8Pvf8QEL//EBDA/xER + w/8SEsn/ERHJ/xERxf8QEMD/EBC//w8Pvv8PD7z/Dw+6/w8PuP8ODrf/Dg61/w4Os/8NDbH/DAyr/wsL + pP8SEmFrAAAAAAAAAAAGBlZlDAyq/w4OsP8PD7X/Dw+3/w8PuP8QELr/EBC7/xAQvf8REb7/ERHA/xER + wf8REcL/EhLC/xISw/8SEsP/EhLC/xERwv8REcH/ERHA/xERvv8QEL3/EBC7/xAQuv8QELj/Dw+3/w8P + tf8ODrD/DAyq/xMTZWsAAAAAAAAAAAcHWmUODrD/EBC2/xERuv8REbz/ERG9/xISvv8SEr//EhLA/xMT + wf8TE8P/ExPD/xMTxP8TE8X/FBTF/xQUxf8UFMX/ExPE/xMTxP8TE8P/ExPC/xISwf8SEr//EhK+/xER + vf8REbz/ERG6/xAQtv8ODrD/FBRpawAAAAAAAAAACAhcYxAQtf8SErv/ExO+/xQUwP8UFMD/FBTB/xUV + wv8VFcP/FRXE/xUVxf8WFsb/FhbG/xYWx/8WFsf/FhbH/xYWx/8WFsf/FhbG/xYWxf8VFcT/FRXD/xUV + wv8UFMH/FBTB/xQUwP8TE77/EhK7/xAQtf8TE2hoAAAAAAAAAAAQEFNUFRXC/xMTv/8UFMP/FRXE/xUV + xP8VFcX/FRXG/xYWx/8WFsf/FhbI/xYWyf8XF8n/FxfK/xcXyv8XF8r/FxfK/xcXyf8XF8n/FhbI/xYW + yP8WFsf/FhbG/xUVxf8VFcT/FRXE/xQUw/8TE7//FRXB/xAQV1UAAAAAAAAAAA0NPxkjI8byFBTD/xUV + x/8WFsj/FxfJ/xcXyf8XF8r/FxfK/xcXy/8YGMz/GBjM/xgYzP8YGM3/GBjN/xgYzf8YGM3/GBjM/xgY + zP8YGMz/GBjL/xcXy/8XF8r/FxfJ/xcXyf8WFsj/FRXH/xQUw/8jI8f0Dg5GGwAAAAAAAAAAFhZxAiUl + eIUZGcr/FBTI/xUVyv8WFsv/FhbM/xYWzP8WFsz/FhbN/xcXzf8XF83/FxfN/xcXzv8XF87/FxfO/xcX + zv8XF87/FxfN/xcXzf8WFs3/FhbM/xYWzP8WFsz/FhbL/xUVyv8UFMj/GBjJ/yYmeogWFnYCAAAAAAAA + AAAAAAAAGBh1BzMzk50kJNP+FxfK/xgYzP8YGMz/GBjN/xgYzf8YGM3/GBjN/xgYzf8ZGc7/GRnO/xkZ + zv8ZGc7/GRnO/xkZzv8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzP8YGMz/FxfK/yMj0v4zM5WfFBRkBwAA + AAAAAAAAAAAAAAAAAAAAAAAAHBx7Ay0tdkg3N5emMTGpxSwsp8gsLKfILCynyCwsp8gsLKfILCynyCws + p8gsLKfILCynyCwsp8gsLKfILCynyCwsp8gsLKfILCynyCwsp8gsLKfILCynyDExqcU2NpenLi54Shsb + ewMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////8AAAD+AAAAfAAAADwAAAA8AAAAPAAAADwAAAA8AA + AAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AA + AAPAAAADwAAAA8AAAAPAAAAD4AAAB/gAAB////// + + + \ No newline at end of file