diff --git a/Data/DcLang-Japanese.txt b/Data/DcLang-Japanese.txt
index c77cdcf..ed184bc 100644
--- a/Data/DcLang-Japanese.txt
+++ b/Data/DcLang-Japanese.txt
@@ -39,6 +39,8 @@ LANG=日本語
41=削除
42=ネットワーク接続ステータス: {0}
43=接続なし
+44=FFXIV プラグインの地役調べが失敗しました
+45=FFXIV プラグインの地役: {0} ({1})
99=DutyContent プラグイン {0}
diff --git a/Data/DcLang-Korean(Actoz).txt b/Data/DcLang-Korean(Actoz).txt
index 10673c6..8ab9605 100644
--- a/Data/DcLang-Korean(Actoz).txt
+++ b/Data/DcLang-Korean(Actoz).txt
@@ -39,6 +39,8 @@ LANG=한국어(액토즈)
41=삭제
42=네트워크 연결 상태: {0}
43=접속하고 있지 않습니다
+44=클라이언트 리전 조사가 실패했어요!
+45=클라이언트 리전: {0} ({1})
99=듀티 콘텐츠 플러그인 {0}
diff --git a/Data/DcLang-Korean(Test).txt b/Data/DcLang-Korean(Test).txt
index 23ebe71..9023ccb 100644
--- a/Data/DcLang-Korean(Test).txt
+++ b/Data/DcLang-Korean(Test).txt
@@ -39,6 +39,8 @@ LANG=한국어
41=삭제
42=네트워크 연결 상태: {0}
43=끊겨있음
+44=FFXIV 플러그인 리전 조사가 실패했어요!
+45=FFXIV 플러그인 리전: {0} ({1})
99=듀티 콘텐츠 플러그인 {0}
diff --git a/DcConfig.cs b/DcConfig.cs
index d05b373..356d383 100644
--- a/DcConfig.cs
+++ b/DcConfig.cs
@@ -12,13 +12,16 @@ namespace DutyContent
{
class DcConfig
{
- public static int PluginTag => 26;
+ public static int PluginTag => 27;
public static Version PluginVersion => System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
public static bool PluginEnable { get; set; }
public static string PluginPath { get; set; }
public static string DataPath { get; set; }
- public static string ConfigPath { get; set; }
+
+ //
+ public static string ActConfigPath { get; set; }
+ public static string PluginConfigPath { get; set; }
//
public static PacketConfig Packet = new PacketConfig();
@@ -35,6 +38,9 @@ namespace DutyContent
public static bool StatusBar { get; set; } = false;
public static bool DebugEnable { get; set; } = false;
+ //
+ public static int GameRegion { get; set; } = 0; // 0=SQ, 1=ACTOZ
+
//
public static string BuildDataFileName(string header, string context, string ext)
{
@@ -63,7 +69,7 @@ namespace DutyContent
public static void SaveConfig(string filename = null)
{
if (filename == null)
- filename = ConfigPath;
+ filename = ActConfigPath;
using (var sw = new StreamWriter(filename, false, Encoding.UTF8))
{
@@ -86,10 +92,22 @@ namespace DutyContent
//
public static void LoadConfig(string filename = null)
{
- if (filename == null)
- filename = ConfigPath;
-
- if (!File.Exists(filename))
+ if (string.IsNullOrEmpty(filename))
+ {
+ if (File.Exists(ActConfigPath))
+ filename = ActConfigPath;
+ else
+ {
+ if (File.Exists(PluginConfigPath))
+ filename = PluginConfigPath;
+ else
+ {
+ filename = ActConfigPath;
+ SaveConfig(filename);
+ }
+ }
+ }
+ else if (!File.Exists(filename))
SaveConfig(filename);
var db = new ThirdParty.LineDb(filename, Encoding.UTF8, false);
@@ -297,7 +315,7 @@ namespace DutyContent
public Point OverlayLocation { get; set; } = new Point(0, 0);
public bool OverlayClickThru { get; set; }
public bool OverlayAutoHide { get; set; }
- public int OverlayAutoElapse { get; set; } = 20000; // 20x1000
+ public int OverlayAutoElapse { get; set; } = 20000; // 20x1000
public bool EnableSound { get; set; }
public string SoundInstanceFile { get; set; }
diff --git a/DcControl.cs b/DcControl.cs
index fd7981c..20aa8e0 100644
--- a/DcControl.cs
+++ b/DcControl.cs
@@ -79,7 +79,10 @@ namespace DutyContent
DcConfig.PluginPath = pin?.pluginFile.DirectoryName;
DcConfig.DataPath = Path.Combine(DcConfig.PluginPath, "Data");
- DcConfig.ConfigPath = Path.Combine(DcConfig.PluginPath, "DutyContent.config");
+ DcConfig.PluginConfigPath = Path.Combine(DcConfig.PluginPath, "DutyContent.config");
+
+ var actdata = ActGlobals.oFormActMain.AppDataFolder.FullName;
+ DcConfig.ActConfigPath = Path.Combine(actdata, "Config", "DutyContent.config");
}
//
@@ -119,6 +122,36 @@ namespace DutyContent
Logger.I(6, System.Diagnostics.FileVersionInfo.GetVersionInfo(_ffxiv_plugin_data.pluginFile.FullName).FileVersion);
}
+ // begin region check - from cacbot "VersionChecker.cs"
+ try
+ {
+ var mach = System.Reflection.Assembly.Load("Machina.FFXIV");
+ var opcode_manager_type = mach.GetType("Machina.FFXIV.Headers.Opcodes.OpcodeManager");
+ var opcode_manager = opcode_manager_type.GetProperty("Instance").GetValue(null);
+ var machina_region = opcode_manager_type.GetProperty("GameRegion").GetValue(opcode_manager).ToString();
+ switch (machina_region)
+ {
+ //case "Chinese": // no chinese support now
+ case "Korean":
+ DcConfig.GameRegion = 1;
+ break;
+ default:
+ DcConfig.GameRegion = 0;
+ break;
+ }
+
+ Logger.I(45, machina_region, DcConfig.GameRegion);
+ }
+ catch (Exception ex)
+ {
+ Logger.Ex(ex, 44);
+ DcConfig.GameRegion = 0;
+ }
+
+ if (DcConfig.GameRegion != 0)
+ DcConfig.Duty.PacketForLocal = true;
+ // end region check
+
_save_timer = new System.Timers.Timer() { Interval = 5000 };
_save_timer.Elapsed += (sender, e) =>
{
diff --git a/DutyContent.csproj b/DutyContent.csproj
index fb2bcc1..ddf67e7 100644
--- a/DutyContent.csproj
+++ b/DutyContent.csproj
@@ -242,7 +242,7 @@
if exist "%25APPDATA%25\Advanced Combat Tracker\Plugins\DutyContent" copy $(TargetPath) "%25APPDATA%25\Advanced Combat Tracker\Plugins\DutyContent" /y
-rem if exist "D:\FF14K\actk\Plugins\DutyContent" copy $(TargetPath) "D:\FF14K\actk\Plugins\DutyContent" /y
+if exist "D:\FF14K\actk\Plugins\DutyContent" copy $(TargetPath) "D:\FF14K\actk\Plugins\DutyContent" /y
diff --git a/PacketTest.txt b/PacketTest.txt
index 97546a6..d745d44 100644
--- a/PacketTest.txt
+++ b/PacketTest.txt
@@ -1,4 +1,26 @@
-2022-8-27
+# final steps (169/A9)
+
+2022-9-13 액토즈판
+
+# undersize
+[13:24:37] 758(32,12) => 01 15 00 00 40 20 02 40 00 00 01 00 A9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+[13:24:37] 758(32,12) => 01 15 00 74 60 24 02 40 00 00 01 01 A9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+[13:24:37] 792(24,4) => 02 C0 78 0D A9 00 05 01 00 00 00 00 00 00 00 00 00 00 00 00 5A 7F 00 00
+[13:24:37] 346(32,20) => 03 00 00 00 60 24 02 40 00 00 00 00 00 00 00 00 01 F2 E6 03 A9 00 00 00 50 49 2A 1D 00 00 00 01
+[13:24:37/인스턴스] 매칭: 니드호그 토벌전
+758 => 듀티 / 12=인스턴스
+346 => 매칭
+
+[13:24:41] 245(24,8) => 04 16 00 00 01 00 00 00 A9 00 00 00 00 00 00 00 00 00 01 01 00 00 00 00
+[13:24:41] 309(32,4) => 36 09 00 00 DF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5A 7F 00 00
+[13:24:42] 541(96,6) => 1F 00 2F 02 12 00 A9 00 00 00 00 00 00 00 00 00 03 00 2A 00 A8 2D 38 00 E0 00 00 00 00 80 09 41 00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 19 00 58 00 00 00 00 00 00 00 00 00 00 00 0B 58 D9 3E 00 C0 15 B6 59 80 95 41 00 01 01 01 01 01 01 01 01 01 01 00 00 00 00 00
+[13:24:42/인스턴스] 들감미: 니드호그 토벌전
+
+[13:24:49] 541(96,2) => 14 00 86 00 00 00 00 00 00 00 00 00 00 00 00 00 04 07 14 00 AA 50 C3 00 44 00 00 00 00 80 09 41 00 00 80 3F 18 00 19 00 58 00 00 00 00 00 00 00 00 00 00 00 18 00 19 00 58 00 00 00 00 00 00 00 00 00 00 00 A9 53 C6 C1 EA 2C 19 42 B2 0C 16 43 00 03 01 04 01 03 01 01 01 01 01 FF 00 00 00 00
+
+
+
+2022-8-27
# undersize 끄고
[20:43:33] 183(40,20) => 01 13 00 04 00 00 00 00 60 00 02 40 00 00 00 00 00 00 01 00 A9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
diff --git a/Resources/mesg.txt b/Resources/mesg.txt
index 0a7e158..7edb234 100644
--- a/Resources/mesg.txt
+++ b/Resources/mesg.txt
@@ -40,6 +40,8 @@ LANG=English
41=Delete
42=Network detected: {0}
43=Closed
+44=Plugin region check has failed!
+45=Plugin region: {0} ({1})
99=DutyContent Plugin {0}
diff --git a/Tab/DutyForm.Designer.cs b/Tab/DutyForm.Designer.cs
index 7afcf68..5cf83f3 100644
--- a/Tab/DutyForm.Designer.cs
+++ b/Tab/DutyForm.Designer.cs
@@ -132,7 +132,6 @@ namespace DutyContent.Tab
this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.lblPacketFinder = new System.Windows.Forms.Label();
this.ilTabContent = new System.Windows.Forms.ImageList(this.components);
- this.chkPacketForLocal = new System.Windows.Forms.CheckBox();
this.tabContent.SuspendLayout();
this.tabPageContent.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
@@ -507,7 +506,6 @@ namespace DutyContent.Tab
this.panel3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.panel3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.panel3.Controls.Add(this.chkPacketForLocal);
this.panel3.Controls.Add(this.btnResetContentList);
this.panel3.Controls.Add(this.cboPacketset);
this.panel3.Controls.Add(this.lblPacketSet);
@@ -1039,17 +1037,6 @@ namespace DutyContent.Tab
this.ilTabContent.Images.SetKeyName(2, "pix_tab_tool.png");
this.ilTabContent.Images.SetKeyName(3, "pix_tab_ping.png");
//
- // chkPacketForLocal
- //
- this.chkPacketForLocal.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.chkPacketForLocal.AutoSize = true;
- this.chkPacketForLocal.Location = new System.Drawing.Point(718, 9);
- this.chkPacketForLocal.Name = "chkPacketForLocal";
- this.chkPacketForLocal.Size = new System.Drawing.Size(67, 22);
- this.chkPacketForLocal.TabIndex = 15;
- this.chkPacketForLocal.Text = "10027";
- this.chkPacketForLocal.UseVisualStyleBackColor = true;
- //
// DutyForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 18F);
@@ -1158,6 +1145,5 @@ namespace DutyContent.Tab
private Libre.ContentListView lstContents;
private System.Windows.Forms.Button btnResetContentList;
private System.Windows.Forms.CheckBox chkOverlayAutoHide;
- private System.Windows.Forms.CheckBox chkPacketForLocal;
}
}
\ No newline at end of file
diff --git a/Tab/DutyForm.cs b/Tab/DutyForm.cs
index 20db35c..c0398c1 100644
--- a/Tab/DutyForm.cs
+++ b/Tab/DutyForm.cs
@@ -104,9 +104,6 @@ namespace DutyContent.Tab
btnTestNotify.Enabled = DcConfig.Duty.EnableNotify;
- //
- chkPacketForLocal.Checked = DcConfig.Duty.PacketForLocal;
-
//
switch (DcConfig.Duty.ActiveFate)
{
@@ -190,8 +187,6 @@ namespace DutyContent.Tab
btnPacketStart.Text = Locale.Text(10007);
btnPacketApply.Text = Locale.Text(10009);
- chkPacketForLocal.Text = Locale.Text(10027);
-
// content reset
lstContents.InitializeContentList(
Locale.Text(343), // ID
@@ -287,62 +282,68 @@ namespace DutyContent.Tab
if (DcConfig.Duty.PacketForLocal)
{
// for ACTOZ/Korea
- var rcode = data[8];
+ if (data[11] == 0)
+ {
+ var rcode = data[8];
- if (rcode != 0)
- {
- var roulette = DcContent.GetRoulette(rcode);
- TraceEntryRoulette(roulette);
- _overlay.PlayQueue(roulette.Name);
- }
- else
- {
- var insts = new List();
- for (var i = 0; i < 5; i++)
+ if (rcode != 0)
{
- var icode = BitConverter.ToUInt16(data, 12 + (i * 4));
- if (icode == 0)
- break;
+ var roulette = DcContent.GetRoulette(rcode);
+ TraceEntryRoulette(roulette);
+ _overlay.PlayQueue(roulette.Name);
+ }
+ else
+ {
+ var insts = new List();
+ for (var i = 0; i < 5; i++)
+ {
+ var icode = BitConverter.ToUInt16(data, 12 + (i * 4));
+ if (icode == 0)
+ break;
+ }
+
+ if (insts.Any())
+ {
+ TraceEntryInstance(insts);
+ _overlay.PlayQueue(Locale.Text(10006, $"#{insts.Count}"));
+ }
}
- if (insts.Any())
- {
- TraceEntryInstance(insts);
- _overlay.PlayQueue(Locale.Text(10006, $"#{insts.Count}"));
- }
+ DcContent.Missions.Clear();
}
-
- DcContent.Missions.Clear();
}
- else if (data[19] == 0) // duty packet comes twice, index 19 is 0 and 1
+ else
{
- // for global
- var rcode = data[16];
+ if (data[19] == 0) // duty packet comes twice, index 19 is 0 and 1
+ {
+ // for global
+ var rcode = data[16];
- if (rcode != 0)
- {
- var roulette = DcContent.GetRoulette(rcode);
- TraceEntryRoulette(roulette);
- _overlay.PlayQueue(roulette.Name);
- }
- else
- {
- var insts = new List();
- for (var i = 0; i < 5; i++)
+ if (rcode != 0)
{
- var icode = BitConverter.ToUInt16(data, 20 + (i * 4));
- if (icode == 0)
- break;
+ var roulette = DcContent.GetRoulette(rcode);
+ TraceEntryRoulette(roulette);
+ _overlay.PlayQueue(roulette.Name);
+ }
+ else
+ {
+ var insts = new List();
+ for (var i = 0; i < 5; i++)
+ {
+ var icode = BitConverter.ToUInt16(data, 20 + (i * 4));
+ if (icode == 0)
+ break;
+ }
+
+ if (insts.Any())
+ {
+ TraceEntryInstance(insts);
+ _overlay.PlayQueue(Locale.Text(10006, $"#{insts.Count}"));
+ }
}
- if (insts.Any())
- {
- TraceEntryInstance(insts);
- _overlay.PlayQueue(Locale.Text(10006, $"#{insts.Count}"));
- }
+ DcContent.Missions.Clear();
}
-
- DcContent.Missions.Clear();
}
}
@@ -1351,16 +1352,6 @@ namespace DutyContent.Tab
}
}
- private void ChkPacketForLocal_CheckedChanged(object sender, EventArgs e)
- {
- if (!DcConfig.PluginEnable)
- return;
-
- DcConfig.Duty.PacketForLocal = chkPacketForLocal.Checked;
-
- SaveConfig();
- }
-
private void LstPacketInfo_SelectedIndexChanged(object sender, EventArgs e)
{
if (lstPacketInfo.SelectedIndices.Count != 1)
@@ -1565,7 +1556,7 @@ namespace DutyContent.Tab
var data = message.Skip(32).ToArray();
#if TESTPK
-#if false
+#if true
// 파이날 스텝으로 오는거 전부 얻기
var t = IndexOfData(data, 0, new ushort[] { 169, 134, 183, 223, 637 }); // final, P1, S1, Z1, Snake
if (t > 0)
@@ -1604,7 +1595,7 @@ namespace DutyContent.Tab
}
// duty & packet
- if (chkPacketForLocal.Checked)
+ if (DcConfig.Duty.PacketForLocal)
{
// for ACTOZ/Korean service
diff --git a/Tab/DutyForm.resx b/Tab/DutyForm.resx
index 3e43f55..661796f 100644
--- a/Tab/DutyForm.resx
+++ b/Tab/DutyForm.resx
@@ -133,10 +133,10 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD4
- QwAAAk1TRnQBSQFMAgEBBAEAAQgBAgEIAQIBIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA
+ QwAAAk1TRnQBSQFMAgEBBAEAARABAgEQAQIBIAEAASABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAGA
AwABQAMAAQEBAAEgBgABgP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
- /wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AWgADNgFZA1oBxANcAeoDAAH/AwAB/wMAAf8DAAH/AwAB/wMA
+ /wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AWgADNgFZA1oBxANdAeoDAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
Af8DAAH/A14B4gNVAa4DKgE/CAADCAEKA0kBhQIAAaoB/wIAAaoB/wIAAaQB/wIAAaQB/wIAAaQB/wIA
AaQB/wIAAaQB/wIAAaQB/wIAAaMB/wIAAaIB/wIAAaIB/wIAAaIB/wIAAaIB/wIAAaIB/wIAAaIB/wIA
@@ -165,7 +165,7 @@
AdUBogEkAf8B1QGiASQB/wHVAaIBJAH/AdUBogEkAf8B1QGiASQB/wHVAaIBJAH/AdUBogEkAf8B1QGi
ASQB/wHEAZUBHAH/AYkBLgEIAf8BAwESARgB/wGUATMBBwH/AdMBoQEjAf8B1QGiASQB/wHVAaIBJAH/
AdUBogEkAf8B1QGiASQB/wHVAaIBJAH/AdUBogEkAf8B1QGiASQB/wHVAaIBJAH/AdUBogEkAf8BwAGT
- AR4B/wMIAf8DxQH/A1IB8AIAAZkB/wIAAYsB/wIAAT8B/wIAATsB/wIAATMB/wIAATMB/wIAAS4B/wIA
+ AR4B/wMIAf8DxQH/A1MB8AIAAZkB/wIAAYsB/wIAAT8B/wIAATsB/wIAATMB/wIAATMB/wIAAS4B/wIA
ASsB/wIAASoB/wIAAScB/wIAASMB/wIAASMB/wIAASIB/wIAAR8B/wIAARsB/wIAARsB/wIAARsB/wIA
ARsB/wIAAR8B/wIAASIB/wIAASMB/wIAASMB/wIAAScB/wIAASoB/wIAAS0B/wIAATMB/wIAATMB/wIA
ATMB/wIAATsB/wIAAT8B/wIAAYsB/wIAAZkB/0gABAIDBwEJAxkBIgM5AV4DVQGtAV4CYQHiA20B9wNl
@@ -235,7 +235,7 @@
Av8BOgHqAv8BPgHuAv8BHQHAAesB/wIAAY4B/wIAATgB/wIAATcB/wIAATYB/wIAATYB/wIAAYEB/wEV
AaEB1AH/ATYB5gL/AQABLwHBAf8BNgHmAv8BAAGPAdQB/wEjAckB8QH/ASMByQHxAf8BAAGPAdUB/wEs
AdwB9QH/AQABFQGYAf8CAAEwAf8BDAGUAbQB/wEAAREBiAH/AgABQQH/HAADAgEDAwYBCAMNAREDGAEg
- AyMBMgMqAUADLAFDAzEBTgNHAYIDXQHMAU0BTwFWAfoB7QP/AckD/wHDAfsC/wHDAfsC/wHNA/8B+AP/
+ AyMBMgMqAUADLAFDAzEBTgNHAYIDXQHMAU0BTgFVAfoB7QP/AckD/wHDAfsC/wHDAfsC/wHNA/8B+AP/
A1wB+AFdAl8BzgNJAYcDKwFCAxIBFwMFAQYEAS8AAf8DAAH/AwAB/wMAAf8DAAH/DgAC/wIAAv8CAAL/
AgAC/wIAAv8nAAH/A5AB/wMAAf8BxQEzARkB/wHMATYBGwH/AcwBNgEbAf8BpAEfAQoB/wEFAQgBGAH/
AQABIgGJAf8BAAEnAY0B/wERAQEBGwH/AbwBCgE/Af8BxAEaAZwB/wHRASoBrwH/AdwBNgHBAf8B5gE/
@@ -254,8 +254,8 @@
ARUBigH/AQ0BlwG2Af8CAAEvAf8CAAE4Af8CAAGPAf8CAAGXAf8CAAGXAf8CAAGPAf8CAAGPAf8CAAGP
Af8CAAGIAf8CAAE6Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE4
Af8CAAE+Af8CAAE+Af8CAAFCAf8CAAGDAf8CAAGDAf8CAAFBAf8CAAEwAf8CAAEvAf8BDQGUAbQB/wEA
- AREBiAH/AgABQQH/EAAEAQMFAQYDDwEUAyQBNQNAAW8DVgGzAV8CYgHhA2UB9AJNAVQB+gNcAfgDWgH1
- Ak0BUgL6A/8BzQP/AcMB+wL/AcQB/AL/AdQD/wHzAfgB/AH/A1oB9QNZAcEDQAFwAyABLgMMAQ8DBAEF
+ AREBiAH/AgABQQH/EAAEAQMFAQYDDwEUAyQBNQNAAW8DVgGzAWACYgHhA2UB9AJNAVMB+gNcAfgDWgH1
+ Ak0BUQL6A/8BzQP/AcMB+wL/AcQB/AL/AdQD/wHzAfgB/AH/A1oB9QNZAcEDQAFwAyABLgMMAQ8DBAEF
BAEbAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8OAAL/AgAC/wIA
Av8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAC/w8AAf8DlgH/AwAB/wHBAS0BGAH/AcgBMAEZ
Af8BxAEuARcB/wGHAQ4BAAH/AQABDQE3Af8BAAE1AZcB/wEAATABlwH/AYABAAEfAf8BxgEaAZoB/wHV
@@ -275,8 +275,8 @@
Af8CAAEvAf8CAAEwAf8CAAFBAf8CAAGDAf8CAAGDAf8CAAE+Af8CAAE+Af8CAAE5Af8CAAE2Af8CAAE2
Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE6Af8CAAE+
Af8CAAE+Af8CAAGDAf8CAAGDAf8CAAFBAf8CAAEwAf8CAAEvAf8BDQGUAbQB/wEAAREBiAH/AgABQQH/
- EAADAwEEAxgBIQM9AWkDWgG/AU0BTwFWAfoB8QP/Ac4D/wHEAfwC/wHDAfsC/wHDAfsC/wHDAfsC/wHD
- AfsC/wHDAfsC/wHGAf4C/wHeA/8DgAH+AVICXgHwA1gBtwM7AWMDGwElAwkBDAMDAQQnAAH/AwAB/wMA
+ EAADAwEEAxgBIQM9AWkDWgG/AU0BTgFVAfoB8QP/Ac4D/wHEAfwC/wHDAfsC/wHDAfsC/wHDAfsC/wHD
+ AfsC/wHDAfsC/wHGAf4C/wHeA/8DgAH+AVMCXgHwA1gBtwM7AWMDGwElAwkBDAMDAQQnAAH/AwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8OAAL/AgAC/wIAAv8CAAL/AgAC/wIA
Av8CAAL/AgAC/wIAAv8CAAL/AgAC/w8AAf8DnwH/AwAB/wG7ASkBFgH/AcABKgEWAf8BhgEMAQAB/wEA
AQYBHwH/AQABJQGUAf8BGQGVAbkB/wEJARABKwH/AbgBCQE9Af8BxwEeAaAB/wHZATIBuwH/Ae8BhQHa
@@ -286,7 +286,7 @@
AQABEwGiAf8CAAGOAf8CAAFBAf8CAAE4Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2
Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE5Af8CAAE+Af8CAAE+Af8CAAGDAf8CAAGDAf8CAAFBAf8CAAEw
Af8CAAEvAf8BDAGUAbQB/wEAAREBiAH/AgABQQH/EAADBQEGAyMBMwNOAZUDZQH0BP8B2gP/AdkD/wHg
- A/8B3QP/Ac8D/wHFAf0C/wHDAfsC/wHDAfsC/wHTA/8DgAH+AVICXgHwA1gBtwM6AWADGQEiAwkBCwMC
+ A/8B3QP/Ac8D/wHFAf0C/wHDAfsC/wHDAfsC/wHTA/8DgAH+AVMCXgHwA1gBtwM6AWADGQEiAwkBCwMC
AQMrAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8OAAL/AgAC/wIA
Av8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAC/w8AAf8DpAH/AwAB/wG5ASYBFAH/AaABGAEI
Af8BKAEEAQIB/wEAAQYBPgH/AQgBPQGiAf8BAAEuAZIB/wE2AQABBwH/AbcBCQFAAf8BwgEaAZsB/wHT
@@ -296,7 +296,7 @@
Af8BNgHpAv8BLwHgAfgB/wESAbEB3wH/AQABLwG1Af8CAAGKAf8CAAE4Af8CAAE2Af8CAAE2Af8CAAE2
Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE2Af8CAAE3Af8CAAE7Af8CAAFAAf8CAAGEAf8CAAGN
Af8CAAGMAf8CAAGDAf8CAAExAf8CAAEvAf8BCgGVAbQB/wEAARMBiAH/AgABQQH/EAADBQEGAyMBMgFM
- Ak0BkQNlAfEDqAH9A4AB/gOoAf0DXwH7AUEBXwFlAfwB5wHxAfgB/wHVA/8BwwH7Av8BwwH7Av8B4AP/
+ Ak0BkQNlAfEDqAH9A4AB/gOoAf0DXwH7AUABXwFlAfwB5wHxAfgB/wHVA/8BwwH7Av8BwwH7Av8B4AP/
A18B+wFbAl4B0wNCAXQDGwElAwYBCAQCLwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/DgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8PAAH/
A6oB/wMAAf8BqQEcAQ0B/wEwAQUBAgH/ASEBlgG1Af8BOgHBAeQB/wGUAdgB6wH/AQABFAGIAf8BAAEH
@@ -307,7 +307,7 @@
AaUB/wIAAYkB/wIAAT0B/wIAATYB/wIAATYB/wIAATYB/wIAATYB/wIAATYB/wIAATYB/wIAATYB/wIA
ATYB/wIAATgB/wIAAUAB/wIAAY4B/wEAATEBuAH/AQ8BmgHSAf8BBgGNAcsB/wEAARgBpQH/AgABOQH/
AgABLwH/AQ0BlwG2Af8BAAEVAYoB/wIAAUEB/xAAAwMBBAMWAR4DNgFZAVACUQGcA1oBvwNdAckBWwJd
- AcoBXQJfAc4BXAJgAeMBWwJiAfYB8AP/AcMB+wL/AcMB+wL/Ad0D/wFXAWMBZwH8A1oBxwM4AVsDDwEU
+ AcoBXQJfAc4BXQJgAeMBXAJiAfYB8AP/AcMB+wL/AcMB+wL/Ad0D/wFXAWMBZwH8A1oBxwM4AVsDDwEU
BAFPAAH/AwAB/wMAAf8DAAH/AwAB/w4AAv8CAAL/AgAC/wIAAv8CAAL/JwAB/wOwAf8DAAH/Aa8BHQEQ
Af8BPwEEAQAB/wEiAQABAQH/AR0BOQGFAf8BsAHuAfcB/wGbAeMB7wH/AQABFwGRAf8BAAETASwB/wGl
AQMBLwH/AcABFgGVAf8BywEkAakB/wHWAS8BtwH/Ad4BOQHCAf8B4QE7AcYB/wHeATkBwgH/AdYBLwG3
@@ -316,7 +316,7 @@
Af8BAAEPAY8B/wEbAccB6AH/ASIB0AHzAf8BIwHLAfIB/wEZAbsB5gH/AQMBjQHMAf8BAAEaAaUB/wIA
AYEB/wIAATYB/wIAATYB/wIAATYB/wIAATYB/wIAATYB/wIAATYB/wIAATYB/wIAATYB/wIAATYB/wIA
AUAB/wEAAS8BtQH/ASQB0AHxAf8BNAHpAf0B/wExAeUB+wH/AQ0BqQHcAf8CAAGEAf8CAAEvAf8BDQGb
- AbgB/wEAARUBiwH/AgABQQH/EAADAgEDAwoBDQMcAScDLwFJAzwBZgNEAXoDSAGEAU4CTwGXA10BzAFX
+ AbgB/wEAARUBiwH/AgABQQH/EAADAgEDAwoBDQMcAScDLwFJAzwBZgNEAXoDSAGEAU4CTwGXA10BzAFY
AmUB8QT/AcMB+wL/AcMB+wL/AdcD/wOoAf0DXAHIAzcBWgMMAQ9TAAH/AwAB/wMAAf8DAAH/AwAB/w4A
Av8CAAL/AgAC/wIAAv8CAAL/JwAB/wO2Af8DAAH/AbABHAEQAf8BsgEcAQ8B/wGfARMBBwH/AUABAwEA
Af8BBwEAAQ4B/wGTAdQB6AH/AZYB3gHvAf8BAAEmAZYB/wEAAQoBIQH/AbgBBwE6Af8BvwEUAZMB/wHG
@@ -373,7 +373,7 @@
AbkBzQH/ASUBuQHNAf8BJQG5Ac0B/wElAbkBzQH/ASUBuQHNAf8BJQG5Ac0B/wElAbkBzQH/ASUBuQHN
Af8BJQG5Ac0B/wEoAbkBzQH/ASgBvAHPAf8BKAG/AdIB/wEoAb8B0gH/ASgBvwHSAf8BKAG/AdIB/wEm
AbwBzwH/ASUBuQHNAf8BJAG2AcgB/wEUAZ4BwAH/AQABFQGbAf8CAAGUAf8UAAMEAQUDEgEXAyoBPwNE
- AXkBVQJXAbQBXQJhAdwDYAHzAk0BVAH6Ak0BVAH6A14B7QFbAl8B0AFQAlEBnwM2AVkDGAEhAwgBCgQC
+ AXkBVQJXAbQBXQJhAdwDYAHzAk0BUwH6Ak0BUwH6A14B7QFbAl8B0AFQAlEBnwM2AVkDGAEhAwgBCgQC
VwAB/wMAAf8DAAH/AwAB/wMAAf9HAAH/A98B/wMAAf8BnAEKAQgB/wGhAQsBCQH/AaEBCwEJAf8BoQEL
AQkB/wGhAQsBCQH/AaEBCwEJAf8BmwEIAQYB/wEoAgAB/wGPAZYBoQH/ARYCAAH/ATACAAH/ATMCAAH/
AYECAAH/AYECAAH/AYECAAH/ATICAAH/AS0CAAH/AQoBAAENAf8BOgE+AYgB/wEyAgAB/wGgAQoBCAH/
@@ -383,10 +383,10 @@
AaEB/wERATwBoQH/AREBPAGhAf8BEQE8AaEB/wEVATwBogH/ARUBPAGmAf8BGAE/AaYB/wEaAUIBpgH/
ARoBQgGnAf8BGgFCAasB/wEYAUIBqwH/ARcBQgGrAf8BFAE+Aa4B/wECAR4BnwH/AgABlAH/AgABngH/
FAAEAQMFAQYDDAEQAx0BKAMxAU0DQgF1A08BmQNVAa0DUwGpA0wBjgM9AWcDKQE+AxQBGwMHAQkDAgED
- WwAB/wMAAf8DAAH/AwAB/wMAAf9EAANQAfMD3wH/AxEB/wGKAgQB/wGbAQYBBwH/AZsBBgEHAf8BmwEG
+ WwAB/wMAAf8DAAH/AwAB/wMAAf9EAANRAfMD3wH/AxEB/wGKAgQB/wGbAQYBBwH/AZsBBgEHAf8BmwEG
AQcB/wGbAQYBBwH/AZsBBgEHAf8BmgEFAQYB/wEtAgAB/wEnAgAB/wEvAgAB/wGZAQUBBgH/AZoBBgEH
Af8BmwEGAQcB/wGbAQYBBwH/AZsBBgEHAf8BmgEFAQYB/wGSAQIBAwH/AS4CAAH/ASQCAAH/AS8CAAH/
- AZoBBgEHAf8BmwEGAQcB/wGbAQYBBwH/AZsBBgEHAf8BmwEGAQcB/wE/AQIBAwH/AxkB/wPdAf8DUgHw
+ AZoBBgEHAf8BmwEGAQcB/wGbAQYBBwH/AZsBBgEHAf8BmwEGAQcB/wE/AQIBAwH/AxkB/wPdAf8DUwHw
AgABpAH/AgABngH/AgABlAH/AgABjwH/AgABjAH/AgABhgH/AgABggH/AgABQQH/AgABQQH/AgABPgH/
AgABOwH/AgABOQH/AgABOQH/AgABOQH/AgABOQH/AgABOQH/AgABOQH/AgABOQH/AgABOQH/AgABOQH/
AgABOQH/AgABOwH/AgABPgH/AgABQQH/AgABQQH/AgABggH/AgABhgH/AgABjAH/AgABjwH/AgABlAH/
@@ -411,7 +411,7 @@
AgABoQH/AgABoQH/AgABoQH/AgABoQH/AgABoQH/AgABoQH/AgABoQH/AgABpAH/AgABpgH/AgABqQH/
AgABqwH/AgABrAH/AgABrAH/AgABrAH/AgABrAH/AgABrAH/AgABrAH/AgABrAH/A0kBhf8ACQADNwFa
A1kBwwMrAfwDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
- AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1wB6gNVAa4DLQFFCAADCAEKA0kBhQIA
+ AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A10B6gNVAa4DLQFFCAADCAEKA0kBhQIA
AawB/wIAAawB/wIAAawB/wIAAawB/wIAAawB/wIAAawB/wIAAawB/wIAAawB/wIAAasB/wIAAaoB/wIA
AaoB/wIAAagB/wIAAaQB/wIAAaQB/wIAAaQB/wIAAaQB/wIAAagB/wIAAaoB/wIAAaoB/wIAAasB/wIA
AawB/wIAAawB/wIAAawB/wIAAawB/wIAAawB/wIAAawB/wIAAawB/wIAAawB/wNJAYUDCAEK/wABAAFC