diff --git a/ScriptTool/ScriptTool/ICompiler.cs b/ScriptTool/ScriptTool/ICompiler.cs index 930143d..1300a6f 100644 --- a/ScriptTool/ScriptTool/ICompiler.cs +++ b/ScriptTool/ScriptTool/ICompiler.cs @@ -6,9 +6,10 @@ using System.Threading.Tasks; namespace ScriptTool { - interface ICompiler + public interface ICompiler { - void ScanString(string str, ref int referenceAddress); + IList ScanString(string str, bool scanCodesOnly); + IList ScanString(string str, ref int referenceAddress, bool scanCodesOnly); void CompileString(string str, IList buffer, ref int referenceAddress); } } diff --git a/ScriptTool/ScriptTool/M12Compiler.cs b/ScriptTool/ScriptTool/M12Compiler.cs index 41d71f8..2b79d18 100644 --- a/ScriptTool/ScriptTool/M12Compiler.cs +++ b/ScriptTool/ScriptTool/M12Compiler.cs @@ -7,7 +7,7 @@ using System.IO; namespace ScriptTool { - class M12Compiler : ICompiler + public class M12Compiler : ICompiler { private static IEnumerable controlCodes; private static string[] charLookup; @@ -63,8 +63,16 @@ namespace ScriptTool return (byte)(ebCharLookup.IndexOf(c) + 0x50); } - public void ScanString(string str, ref int referenceAddress) + public IList ScanString(string str, bool scanCodesOnly) { + int temp = 0; + return ScanString(str, ref temp, scanCodesOnly); + } + + public IList ScanString(string str, ref int referenceAddress, bool scanCodesOnly) + { + var references = new List(); + for (int i = 0; i < str.Length; ) { if (str[i] == '[') @@ -85,11 +93,15 @@ namespace ScriptTool if (codeString.Length <= 2) throw new Exception("Reference is empty"); - referenceAddress += 4; + if (!scanCodesOnly) + referenceAddress += 4; + + references.Add(codeString.Substring(1, codeString.Length - 2)); } else if (IsHexByte(codeString)) { - referenceAddress++; + if (!scanCodesOnly) + referenceAddress++; } else { @@ -114,7 +126,8 @@ namespace ScriptTool if (AddressMap.ContainsKey(label)) throw new Exception("Label already defined"); - AddressMap.Add(label, referenceAddress); + if(!scanCodesOnly) + AddressMap.Add(label, referenceAddress); i = str.IndexOf('^', i + 1) + 1; } @@ -122,14 +135,19 @@ namespace ScriptTool { if (!(str[i] == '\r') && !(str[i] == '\n')) { - if (!IsValidChar(str[i])) - throw new Exception("Invalid character: " + str[i]); + if (!scanCodesOnly) + { + if (!IsValidChar(str[i])) + throw new Exception("Invalid character: " + str[i]); - referenceAddress++; + referenceAddress++; + } } i++; } } + + return references; } public void CompileString(string str, IList buffer, ref int referenceAddress) @@ -163,7 +181,8 @@ namespace ScriptTool throw new Exception("Code string for unrecognized control code block must be a byte literal"); byte value = byte.Parse(codeStrings[j], System.Globalization.NumberStyles.HexNumber); - buffer.Add(value); + if (buffer != null) + buffer.Add(value); referenceAddress++; } } @@ -197,7 +216,8 @@ namespace ScriptTool pointer |= 0x8000000; } - buffer.AddInt(pointer); + if (buffer != null) + buffer.AddInt(pointer); referenceAddress += 4; } else if (IsHexByte(codeString)) @@ -235,7 +255,8 @@ namespace ScriptTool throw new Exception("Invalid character: " + str[i]); byte value = GetByte(str[i]); - buffer.Add(value); + if (buffer != null) + buffer.Add(value); referenceAddress++; } i++; @@ -251,7 +272,8 @@ namespace ScriptTool for (int i = bytesWritten; i < padLength; i++) { - buffer.Add(0); + if (buffer != null) + buffer.Add(0); referenceAddress++; } } diff --git a/ScriptTool/ScriptTool/M12TextTables.cs b/ScriptTool/ScriptTool/M12TextTables.cs index ad0c1b0..e0295d3 100644 --- a/ScriptTool/ScriptTool/M12TextTables.cs +++ b/ScriptTool/ScriptTool/M12TextTables.cs @@ -19,9 +19,10 @@ namespace ScriptTool 0x57D }; - public static MainStringRef[] ReadTptRefs(byte[] rom) + public static Tuple ReadTptRefs(byte[] rom) { - var refs = new List(); + var primaryRefs = new List(); + var secondaryRefs = new List(); int address = 0x8EB14; int entries = 1584; @@ -32,35 +33,35 @@ namespace ScriptTool { int firstPointer = rom.ReadGbaPointer(address + 9); if (firstPointer != 0) - refs.Add(new MainStringRef { Index = i, PointerLocation = address + 9, OldPointer = firstPointer }); + primaryRefs.Add(new MainStringRef { Index = i, PointerLocation = address + 9, OldPointer = firstPointer }); byte type = rom[address]; if (type != 2) { int secondPointer = rom.ReadGbaPointer(address + 13); if (secondPointer != 0) - refs.Add(new MainStringRef { Index = i, PointerLocation = address + 13, OldPointer = secondPointer }); + secondaryRefs.Add(new MainStringRef { Index = i, PointerLocation = address + 13, OldPointer = secondPointer }); } } else { int firstPointer = rom.ReadGbaPointer(address + 12); if (firstPointer != 0) - refs.Add(new MainStringRef { Index = i, PointerLocation = address + 12, OldPointer = firstPointer }); + primaryRefs.Add(new MainStringRef { Index = i, PointerLocation = address + 12, OldPointer = firstPointer }); byte type = rom[address]; if (type != 2) { int secondPointer = rom.ReadGbaPointer(address + 16); if (secondPointer != 0) - refs.Add(new MainStringRef { Index = i, PointerLocation = address + 16, OldPointer = secondPointer }); + secondaryRefs.Add(new MainStringRef { Index = i, PointerLocation = address + 16, OldPointer = secondPointer }); } } address += 20; } - return refs.ToArray(); + return Tuple.Create(primaryRefs.ToArray(), secondaryRefs.ToArray()); } public static MainStringRef[] ReadPsiHelpRefs(byte[] rom) diff --git a/ScriptTool/ScriptTool/MainStringRef.cs b/ScriptTool/ScriptTool/MainStringRef.cs index ed20ea3..3f37691 100644 --- a/ScriptTool/ScriptTool/MainStringRef.cs +++ b/ScriptTool/ScriptTool/MainStringRef.cs @@ -19,5 +19,10 @@ namespace ScriptTool public int OldPointer { get; set; } public string Label { get; set; } + + public override string ToString() + { + return "[" + Index.ToString("X3") + "] " + Label; + } } } diff --git a/ScriptTool/ScriptTool/Program.cs b/ScriptTool/ScriptTool/Program.cs index 0a87dca..689f478 100644 --- a/ScriptTool/ScriptTool/Program.cs +++ b/ScriptTool/ScriptTool/Program.cs @@ -191,7 +191,10 @@ namespace ScriptTool { // Pull all string refs from the ROM var allRefs = new List>(); - allRefs.Add(Tuple.Create("m12-tpt", M12TextTables.ReadTptRefs(m12Rom))); + + var tptTuple = M12TextTables.ReadTptRefs(m12Rom); + allRefs.Add(Tuple.Create("m12-tpt-primary", tptTuple.Item1)); + allRefs.Add(Tuple.Create("m12-tpt-secondary", tptTuple.Item2)); allRefs.Add(Tuple.Create("m12-psihelp", M12TextTables.ReadPsiHelpRefs(m12Rom))); allRefs.Add(Tuple.Create("m12-battle-actions", M12TextTables.ReadBattleActionRefs(m12Rom))); allRefs.Add(Tuple.Create("m12-itemhelp", M12TextTables.ReadItemHelpRefs(m12Rom))); @@ -311,7 +314,7 @@ namespace ScriptTool string m12Strings = File.ReadAllText(Path.Combine(options.WorkingDirectory, "m12-strings-english.txt")); // Compile - m12Compiler.ScanString(m12Strings, ref referenceAddress); + m12Compiler.ScanString(m12Strings, ref referenceAddress, false); referenceAddress = baseAddress; m12Compiler.CompileString(m12Strings, buffer, ref referenceAddress); File.WriteAllBytes(Path.Combine(options.WorkingDirectory, "m12-main-strings.bin"), buffer.ToArray()); diff --git a/ScriptTool/ScriptToolGui/MainForm.Designer.cs b/ScriptTool/ScriptToolGui/MainForm.Designer.cs index 9bab4d6..bf6aad3 100644 --- a/ScriptTool/ScriptToolGui/MainForm.Designer.cs +++ b/ScriptTool/ScriptToolGui/MainForm.Designer.cs @@ -30,14 +30,25 @@ { this.tptSelector = new System.Windows.Forms.ComboBox(); this.label1 = new System.Windows.Forms.Label(); + this.textSplitContainer = new System.Windows.Forms.SplitContainer(); + this.previewSplitContainer = new System.Windows.Forms.SplitContainer(); this.ebString = new System.Windows.Forms.TextBox(); this.m12String = new System.Windows.Forms.TextBox(); this.m12StringEnglish = new System.Windows.Forms.TextBox(); - this.textSplitContainer = new System.Windows.Forms.SplitContainer(); - this.previewSplitContainer = new System.Windows.Forms.SplitContainer(); - this.controlCodeTabs = new System.Windows.Forms.TabControl(); - this.ebControlCodeTab = new System.Windows.Forms.TabPage(); - this.m12ControlCodeTab = new System.Windows.Forms.TabPage(); + this.codeSplitContainer = new System.Windows.Forms.SplitContainer(); + this.codeList = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.referenceList = new System.Windows.Forms.ListBox(); + this.label3 = new System.Windows.Forms.Label(); + this.gameSelectorPanel = new System.Windows.Forms.FlowLayoutPanel(); + this.ebSelector = new System.Windows.Forms.RadioButton(); + this.m12Selector = new System.Windows.Forms.RadioButton(); + this.backButton = new System.Windows.Forms.Button(); + this.menuStrip1 = new System.Windows.Forms.MenuStrip(); + this.panel1 = new System.Windows.Forms.Panel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.fileMenu = new System.Windows.Forms.ToolStripMenuItem(); + this.saveMenu = new System.Windows.Forms.ToolStripMenuItem(); ((System.ComponentModel.ISupportInitialize)(this.textSplitContainer)).BeginInit(); this.textSplitContainer.Panel1.SuspendLayout(); this.textSplitContainer.Panel2.SuspendLayout(); @@ -45,14 +56,21 @@ ((System.ComponentModel.ISupportInitialize)(this.previewSplitContainer)).BeginInit(); this.previewSplitContainer.Panel1.SuspendLayout(); this.previewSplitContainer.SuspendLayout(); - this.controlCodeTabs.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.codeSplitContainer)).BeginInit(); + this.codeSplitContainer.Panel1.SuspendLayout(); + this.codeSplitContainer.Panel2.SuspendLayout(); + this.codeSplitContainer.SuspendLayout(); + this.gameSelectorPanel.SuspendLayout(); + this.menuStrip1.SuspendLayout(); + this.panel1.SuspendLayout(); + this.panel2.SuspendLayout(); this.SuspendLayout(); // // tptSelector // this.tptSelector.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.tptSelector.FormattingEnabled = true; - this.tptSelector.Location = new System.Drawing.Point(77, 12); + this.tptSelector.Location = new System.Drawing.Point(66, 4); this.tptSelector.Name = "tptSelector"; this.tptSelector.Size = new System.Drawing.Size(238, 21); this.tptSelector.TabIndex = 0; @@ -61,45 +79,12 @@ // label1 // this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(14, 15); + this.label1.Location = new System.Drawing.Point(3, 7); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(57, 13); this.label1.TabIndex = 1; this.label1.Text = "TPT entry:"; // - // ebString - // - this.ebString.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ebString.Location = new System.Drawing.Point(3, 3); - this.ebString.Multiline = true; - this.ebString.Name = "ebString"; - this.ebString.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.ebString.Size = new System.Drawing.Size(344, 86); - this.ebString.TabIndex = 2; - // - // m12String - // - this.m12String.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.m12String.Location = new System.Drawing.Point(3, 95); - this.m12String.Multiline = true; - this.m12String.Name = "m12String"; - this.m12String.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.m12String.Size = new System.Drawing.Size(344, 86); - this.m12String.TabIndex = 3; - // - // m12StringEnglish - // - this.m12StringEnglish.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.m12StringEnglish.Location = new System.Drawing.Point(3, 187); - this.m12StringEnglish.Multiline = true; - this.m12StringEnglish.Name = "m12StringEnglish"; - this.m12StringEnglish.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.m12StringEnglish.Size = new System.Drawing.Size(344, 86); - this.m12StringEnglish.TabIndex = 4; - // // textSplitContainer // this.textSplitContainer.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; @@ -112,91 +97,264 @@ // this.textSplitContainer.Panel1.AutoScroll = true; this.textSplitContainer.Panel1.BackColor = System.Drawing.SystemColors.Control; - this.textSplitContainer.Panel1.Controls.Add(this.ebString); - this.textSplitContainer.Panel1.Controls.Add(this.m12StringEnglish); - this.textSplitContainer.Panel1.Controls.Add(this.m12String); + this.textSplitContainer.Panel1.Controls.Add(this.previewSplitContainer); // // textSplitContainer.Panel2 // this.textSplitContainer.Panel2.BackColor = System.Drawing.SystemColors.Control; - this.textSplitContainer.Panel2.Controls.Add(this.controlCodeTabs); - this.textSplitContainer.Size = new System.Drawing.Size(582, 299); - this.textSplitContainer.SplitterDistance = 356; - this.textSplitContainer.TabIndex = 5; + this.textSplitContainer.Panel2.Controls.Add(this.codeSplitContainer); + this.textSplitContainer.Panel2.Controls.Add(this.gameSelectorPanel); + this.textSplitContainer.Size = new System.Drawing.Size(761, 560); + this.textSplitContainer.SplitterDistance = 535; + this.textSplitContainer.TabIndex = 6; // // previewSplitContainer // - this.previewSplitContainer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.previewSplitContainer.BackColor = System.Drawing.SystemColors.Control; this.previewSplitContainer.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.previewSplitContainer.Dock = System.Windows.Forms.DockStyle.Fill; this.previewSplitContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; - this.previewSplitContainer.Location = new System.Drawing.Point(12, 39); + this.previewSplitContainer.Location = new System.Drawing.Point(0, 0); this.previewSplitContainer.Name = "previewSplitContainer"; this.previewSplitContainer.Orientation = System.Windows.Forms.Orientation.Horizontal; // // previewSplitContainer.Panel1 // - this.previewSplitContainer.Panel1.Controls.Add(this.textSplitContainer); + this.previewSplitContainer.Panel1.AutoScroll = true; + this.previewSplitContainer.Panel1.Controls.Add(this.ebString); + this.previewSplitContainer.Panel1.Controls.Add(this.m12String); + this.previewSplitContainer.Panel1.Controls.Add(this.m12StringEnglish); + this.previewSplitContainer.Size = new System.Drawing.Size(535, 560); + this.previewSplitContainer.SplitterDistance = 432; + this.previewSplitContainer.TabIndex = 5; // - // previewSplitContainer.Panel2 + // ebString // - this.previewSplitContainer.Panel2.BackColor = System.Drawing.SystemColors.Control; - this.previewSplitContainer.Size = new System.Drawing.Size(582, 446); - this.previewSplitContainer.SplitterDistance = 299; - this.previewSplitContainer.TabIndex = 6; + this.ebString.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.ebString.Location = new System.Drawing.Point(3, 6); + this.ebString.Multiline = true; + this.ebString.Name = "ebString"; + this.ebString.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.ebString.Size = new System.Drawing.Size(525, 128); + this.ebString.TabIndex = 2; // - // controlCodeTabs + // m12String // - this.controlCodeTabs.Controls.Add(this.ebControlCodeTab); - this.controlCodeTabs.Controls.Add(this.m12ControlCodeTab); - this.controlCodeTabs.Dock = System.Windows.Forms.DockStyle.Fill; - this.controlCodeTabs.Location = new System.Drawing.Point(0, 0); - this.controlCodeTabs.Name = "controlCodeTabs"; - this.controlCodeTabs.SelectedIndex = 0; - this.controlCodeTabs.Size = new System.Drawing.Size(218, 295); - this.controlCodeTabs.TabIndex = 0; + this.m12String.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.m12String.Location = new System.Drawing.Point(3, 140); + this.m12String.Multiline = true; + this.m12String.Name = "m12String"; + this.m12String.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.m12String.Size = new System.Drawing.Size(525, 128); + this.m12String.TabIndex = 3; // - // ebControlCodeTab + // m12StringEnglish // - this.ebControlCodeTab.Location = new System.Drawing.Point(4, 22); - this.ebControlCodeTab.Name = "ebControlCodeTab"; - this.ebControlCodeTab.Padding = new System.Windows.Forms.Padding(3); - this.ebControlCodeTab.Size = new System.Drawing.Size(210, 193); - this.ebControlCodeTab.TabIndex = 0; - this.ebControlCodeTab.Text = "EB codes"; - this.ebControlCodeTab.UseVisualStyleBackColor = true; + this.m12StringEnglish.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.m12StringEnglish.Location = new System.Drawing.Point(3, 274); + this.m12StringEnglish.Multiline = true; + this.m12StringEnglish.Name = "m12StringEnglish"; + this.m12StringEnglish.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.m12StringEnglish.Size = new System.Drawing.Size(525, 128); + this.m12StringEnglish.TabIndex = 4; // - // m12ControlCodeTab + // codeSplitContainer // - this.m12ControlCodeTab.Location = new System.Drawing.Point(4, 22); - this.m12ControlCodeTab.Name = "m12ControlCodeTab"; - this.m12ControlCodeTab.Padding = new System.Windows.Forms.Padding(3); - this.m12ControlCodeTab.Size = new System.Drawing.Size(210, 269); - this.m12ControlCodeTab.TabIndex = 1; - this.m12ControlCodeTab.Text = "M12 codes"; - this.m12ControlCodeTab.UseVisualStyleBackColor = true; + this.codeSplitContainer.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.codeSplitContainer.Dock = System.Windows.Forms.DockStyle.Fill; + this.codeSplitContainer.Location = new System.Drawing.Point(0, 33); + this.codeSplitContainer.Name = "codeSplitContainer"; + this.codeSplitContainer.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // codeSplitContainer.Panel1 + // + this.codeSplitContainer.Panel1.Controls.Add(this.codeList); + this.codeSplitContainer.Panel1.Controls.Add(this.label2); + // + // codeSplitContainer.Panel2 + // + this.codeSplitContainer.Panel2.Controls.Add(this.referenceList); + this.codeSplitContainer.Panel2.Controls.Add(this.label3); + this.codeSplitContainer.Size = new System.Drawing.Size(222, 527); + this.codeSplitContainer.SplitterDistance = 245; + this.codeSplitContainer.TabIndex = 1; + // + // codeList + // + this.codeList.BackColor = System.Drawing.SystemColors.Window; + this.codeList.Dock = System.Windows.Forms.DockStyle.Fill; + this.codeList.Location = new System.Drawing.Point(0, 19); + this.codeList.Multiline = true; + this.codeList.Name = "codeList"; + this.codeList.ReadOnly = true; + this.codeList.ScrollBars = System.Windows.Forms.ScrollBars.Both; + this.codeList.Size = new System.Drawing.Size(218, 222); + this.codeList.TabIndex = 1; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Dock = System.Windows.Forms.DockStyle.Top; + this.label2.Location = new System.Drawing.Point(0, 0); + this.label2.Margin = new System.Windows.Forms.Padding(0); + this.label2.Name = "label2"; + this.label2.Padding = new System.Windows.Forms.Padding(3); + this.label2.Size = new System.Drawing.Size(46, 19); + this.label2.TabIndex = 0; + this.label2.Text = "Codes:"; + // + // referenceList + // + this.referenceList.Dock = System.Windows.Forms.DockStyle.Fill; + this.referenceList.FormattingEnabled = true; + this.referenceList.Location = new System.Drawing.Point(0, 19); + this.referenceList.Name = "referenceList"; + this.referenceList.Size = new System.Drawing.Size(218, 255); + this.referenceList.TabIndex = 2; + this.referenceList.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.referenceList_MouseDoubleClick); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Dock = System.Windows.Forms.DockStyle.Top; + this.label3.Location = new System.Drawing.Point(0, 0); + this.label3.Name = "label3"; + this.label3.Padding = new System.Windows.Forms.Padding(3); + this.label3.Size = new System.Drawing.Size(71, 19); + this.label3.TabIndex = 1; + this.label3.Text = "References:"; + // + // gameSelectorPanel + // + this.gameSelectorPanel.AutoSize = true; + this.gameSelectorPanel.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.gameSelectorPanel.Controls.Add(this.ebSelector); + this.gameSelectorPanel.Controls.Add(this.m12Selector); + this.gameSelectorPanel.Dock = System.Windows.Forms.DockStyle.Top; + this.gameSelectorPanel.Location = new System.Drawing.Point(0, 0); + this.gameSelectorPanel.Name = "gameSelectorPanel"; + this.gameSelectorPanel.Size = new System.Drawing.Size(222, 33); + this.gameSelectorPanel.TabIndex = 0; + // + // ebSelector + // + this.ebSelector.Appearance = System.Windows.Forms.Appearance.Button; + this.ebSelector.Location = new System.Drawing.Point(3, 3); + this.ebSelector.Name = "ebSelector"; + this.ebSelector.Size = new System.Drawing.Size(64, 23); + this.ebSelector.TabIndex = 0; + this.ebSelector.Text = "EB"; + this.ebSelector.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.ebSelector.UseVisualStyleBackColor = true; + this.ebSelector.CheckedChanged += new System.EventHandler(this.gameSelector_CheckedChanged); + // + // m12Selector + // + this.m12Selector.Appearance = System.Windows.Forms.Appearance.Button; + this.m12Selector.Checked = true; + this.m12Selector.Location = new System.Drawing.Point(73, 3); + this.m12Selector.Name = "m12Selector"; + this.m12Selector.Size = new System.Drawing.Size(64, 23); + this.m12Selector.TabIndex = 1; + this.m12Selector.TabStop = true; + this.m12Selector.Text = "M12"; + this.m12Selector.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.m12Selector.UseVisualStyleBackColor = true; + this.m12Selector.CheckedChanged += new System.EventHandler(this.gameSelector_CheckedChanged); + // + // backButton + // + this.backButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.backButton.Location = new System.Drawing.Point(683, 3); + this.backButton.Name = "backButton"; + this.backButton.Size = new System.Drawing.Size(75, 23); + this.backButton.TabIndex = 7; + this.backButton.Text = "Back"; + this.backButton.UseVisualStyleBackColor = true; + this.backButton.Click += new System.EventHandler(this.backButton_Click); + // + // menuStrip1 + // + this.menuStrip1.BackColor = System.Drawing.SystemColors.Control; + this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.fileMenu}); + this.menuStrip1.Location = new System.Drawing.Point(0, 0); + this.menuStrip1.Name = "menuStrip1"; + this.menuStrip1.Size = new System.Drawing.Size(761, 24); + this.menuStrip1.TabIndex = 8; + this.menuStrip1.Text = "menuStrip1"; + // + // panel1 + // + this.panel1.AutoSize = true; + this.panel1.Controls.Add(this.label1); + this.panel1.Controls.Add(this.backButton); + this.panel1.Controls.Add(this.tptSelector); + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(0, 24); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(761, 29); + this.panel1.TabIndex = 9; + // + // panel2 + // + this.panel2.Controls.Add(this.textSplitContainer); + this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel2.Location = new System.Drawing.Point(0, 53); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(761, 560); + this.panel2.TabIndex = 10; + // + // fileMenu + // + this.fileMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.saveMenu}); + this.fileMenu.Name = "fileMenu"; + this.fileMenu.Size = new System.Drawing.Size(37, 20); + this.fileMenu.Text = "File"; + // + // saveMenu + // + this.saveMenu.Name = "saveMenu"; + this.saveMenu.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S))); + this.saveMenu.Size = new System.Drawing.Size(152, 22); + this.saveMenu.Text = "Save"; // // MainForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(606, 497); - this.Controls.Add(this.previewSplitContainer); - this.Controls.Add(this.label1); - this.Controls.Add(this.tptSelector); + this.ClientSize = new System.Drawing.Size(761, 613); + this.Controls.Add(this.panel2); + this.Controls.Add(this.panel1); + this.Controls.Add(this.menuStrip1); + this.MainMenuStrip = this.menuStrip1; this.Name = "MainForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "MOTHER 1+2 Funland"; this.textSplitContainer.Panel1.ResumeLayout(false); - this.textSplitContainer.Panel1.PerformLayout(); this.textSplitContainer.Panel2.ResumeLayout(false); + this.textSplitContainer.Panel2.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.textSplitContainer)).EndInit(); this.textSplitContainer.ResumeLayout(false); this.previewSplitContainer.Panel1.ResumeLayout(false); + this.previewSplitContainer.Panel1.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.previewSplitContainer)).EndInit(); this.previewSplitContainer.ResumeLayout(false); - this.controlCodeTabs.ResumeLayout(false); + this.codeSplitContainer.Panel1.ResumeLayout(false); + this.codeSplitContainer.Panel1.PerformLayout(); + this.codeSplitContainer.Panel2.ResumeLayout(false); + this.codeSplitContainer.Panel2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.codeSplitContainer)).EndInit(); + this.codeSplitContainer.ResumeLayout(false); + this.gameSelectorPanel.ResumeLayout(false); + this.menuStrip1.ResumeLayout(false); + this.menuStrip1.PerformLayout(); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.panel2.ResumeLayout(false); this.ResumeLayout(false); this.PerformLayout(); @@ -206,14 +364,25 @@ private System.Windows.Forms.ComboBox tptSelector; private System.Windows.Forms.Label label1; + private System.Windows.Forms.SplitContainer textSplitContainer; + private System.Windows.Forms.SplitContainer previewSplitContainer; private System.Windows.Forms.TextBox ebString; private System.Windows.Forms.TextBox m12String; private System.Windows.Forms.TextBox m12StringEnglish; - private System.Windows.Forms.SplitContainer textSplitContainer; - private System.Windows.Forms.SplitContainer previewSplitContainer; - private System.Windows.Forms.TabControl controlCodeTabs; - private System.Windows.Forms.TabPage ebControlCodeTab; - private System.Windows.Forms.TabPage m12ControlCodeTab; + private System.Windows.Forms.FlowLayoutPanel gameSelectorPanel; + private System.Windows.Forms.RadioButton ebSelector; + private System.Windows.Forms.RadioButton m12Selector; + private System.Windows.Forms.SplitContainer codeSplitContainer; + private System.Windows.Forms.TextBox codeList; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.ListBox referenceList; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Button backButton; + private System.Windows.Forms.MenuStrip menuStrip1; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.ToolStripMenuItem fileMenu; + private System.Windows.Forms.ToolStripMenuItem saveMenu; } } diff --git a/ScriptTool/ScriptToolGui/MainForm.cs b/ScriptTool/ScriptToolGui/MainForm.cs index d67f366..8eaf01d 100644 --- a/ScriptTool/ScriptToolGui/MainForm.cs +++ b/ScriptTool/ScriptToolGui/MainForm.cs @@ -15,145 +15,234 @@ namespace ScriptToolGui { public partial class MainForm : Form { - const string workingFolder = @"..\..\..\..\working"; + static IDictionary textboxLookup; + static IDictionary> stringsLookup; - // String references - MainStringRef[] m12TptRefs; - MainStringRef[] ebTptRefs; - //MainStringRef[] m2TptRefs; + const string workingFolder = @"..\..\..\..\working"; + static M12Compiler m12Compiler = new M12Compiler(); // Strings IList m12Strings; IList m12StringsEnglish; IList ebStrings; - //IList m2Strings; + // Matched reference pairs + List matchedGroups = new List(); + + // Navigation stack + MatchedReferenceGroup previousGroup = null; + Stack navigationStack = new Stack(); + public MainForm() { InitializeComponent(); - m12String.Font = new Font("Meiryo UI", 8); + ImportAllStringRefs(workingFolder); + ImportAllStrings(workingFolder); - LoadAllStringRefs(workingFolder); - LoadAllStrings(workingFolder); + textboxLookup = new Dictionary { + { Game.Eb, ebString }, + { Game.M12, m12String }, + { Game.M12English, m12StringEnglish } + }; + + stringsLookup = new Dictionary> { + { Game.Eb, ebStrings }, + { Game.M12, m12Strings }, + { Game.M12English, m12StringsEnglish } + }; PopulateTptList(); } - private void LoadAllStringRefs(string folder) + private void ImportAllStringRefs(string folder) { - string m12FileName = Path.Combine(folder, "m12-tpt.json"); - string ebFileName = Path.Combine(folder, "eb-tpt.json"); - //string m2FileName = Path.Combine(folder, "m2-tpt.json"); + string m12PrimaryFileName = Path.Combine(folder, "m12-tpt-primary.json"); + string ebPrimaryFileName = Path.Combine(folder, "eb-tpt-primary.json"); - m12TptRefs = LoadStringRefs(m12FileName); - ebTptRefs = LoadStringRefs(ebFileName); - //m2TptRefs = LoadStringRefs(m2FileName); + var m12PrimaryTptRefs = ImportStringRefs(m12PrimaryFileName); + var ebPrimaryTptRefs = ImportStringRefs(ebPrimaryFileName); + + string m12SecondaryFileName = Path.Combine(folder, "m12-tpt-secondary.json"); + string ebSecondaryFileName = Path.Combine(folder, "eb-tpt-secondary.json"); + + var m12SecondaryTptRefs = ImportStringRefs(m12SecondaryFileName); + var ebSecondaryTptRefs = ImportStringRefs(ebSecondaryFileName); + + matchedGroups.AddRange(MatchRefs(ebPrimaryTptRefs, m12PrimaryTptRefs)); + matchedGroups.AddRange(MatchRefs(ebSecondaryTptRefs, m12SecondaryTptRefs)); + + matchedGroups.Sort((g1, g2) => g1.EbRef.Index.CompareTo(g2.EbRef.Index)); } - private MainStringRef[] LoadStringRefs(string fileName) + private MatchedReferenceGroup[] MatchRefs(MainStringRef[] ebRefs, MainStringRef[] m12Refs) + { + return ebRefs.Join(m12Refs, e => e.Index, m => m.Index, (e, m) => new { e, m }) + .Select(p => new MatchedReferenceGroup(p.e, p.m)) + .ToArray(); + } + + private MainStringRef[] ImportStringRefs(string fileName) { string jsonString = File.ReadAllText(fileName); return JsonConvert.DeserializeObject(jsonString); } - private void LoadAllStrings(string folder) + private void ImportAllStrings(string folder) { string m12FileName = Path.Combine(folder, "m12-strings.txt"); string m12EnglishFileName = Path.Combine(folder, "m12-strings-english.txt"); string ebFileName = Path.Combine(folder, "eb-strings.txt"); - //string m2FileName = Path.Combine(folder, "m2-strings.txt"); - m12Strings = LoadStrings(m12FileName); - m12StringsEnglish = LoadStrings(m12EnglishFileName); - ebStrings = LoadStrings(ebFileName); - //m2Strings = LoadStrings(m2FileName); + m12Strings = ImportStrings(m12FileName); + m12StringsEnglish = ImportStrings(m12EnglishFileName); + ebStrings = ImportStrings(ebFileName); } - private IList LoadStrings(string fileName) + private IList ImportStrings(string fileName) { return new List(File.ReadAllLines(fileName).Where(l => !l.Equals(""))); } + private Game GetCurrentGame() + { + if (ebSelector.Checked) + return Game.Eb; + + else if (m12Selector.Checked) + return Game.M12; + + return Game.None; + } + private void PopulateTptList() { - var sb = new StringBuilder(); tptSelector.Items.Clear(); - foreach (var m12Ref in m12TptRefs) - { - sb.Clear(); - sb.Append('['); - sb.Append(m12Ref.Index.ToString("X3")); - sb.Append("] "); - sb.Append(m12Ref.Label); - tptSelector.Items.Add(sb.ToString()); - } + tptSelector.Items.AddRange(matchedGroups.ToArray()); } - private void LoadTptEntry(int index) + private void PopulateCodeList() { - if (index == -1) + + } + + private void PopulateReferenceList() + { + codeList.Text = ""; + referenceList.Items.Clear(); + + if (ebSelector.Checked) { - ebString.Text = - m12String.Text = - m12StringEnglish.Text = ""; + } - else + else if (m12Selector.Checked) { - var ebRef = ebTptRefs.FirstOrDefault(eb => eb.Index == index); - var m12Ref = m12TptRefs.FirstOrDefault(m12 => m12.Index == index); - - if (ebRef == null) - ebString.Text = ""; - else - { - string str = GetString(ebStrings, ebRef.Label); - if (str != null) - ebString.Text = str; - } - - if (m12Ref == null) - m12String.Text = ""; - else - { - string str = GetString(m12Strings, m12Ref.Label); - if (str != null) - m12String.Text = str; - - str = GetString(m12StringsEnglish, m12Ref.Label); - if (str != null) - m12StringEnglish.Text = str; - } - + var references = m12Compiler.ScanString(m12String.Text, true).Distinct().OrderBy(r => r); + referenceList.Items.AddRange(references.ToArray()); } } - private string GetString(IList strings, string label) + private string GetString(Game game, string label) { try { - return strings.First(l => l.Contains("^" + label + "^")); + return stringsLookup[game].First(l => l.Contains("^" + label + "^")); } catch { - MessageBox.Show("Error: label definition not found in strings: " + label); return null; } } + private void NavigateTo(MatchedReferenceGroup group) + { + if (group == null) + { + ebString.Text = ""; + m12String.Text = ""; + m12StringEnglish.Text = ""; + + tptSelector.SelectedIndex = -1; + } + else + { + string eb = GetString(Game.Eb, group.EbRef.Label); + string m12 = GetString(Game.M12, group.M12Ref.Label); + string m12English = GetString(Game.M12English, group.M12Ref.Label); + + ebString.Text = eb; + m12String.Text = m12; + m12StringEnglish.Text = m12English; + + tptSelector.SelectedItem = group; + } + + PopulateCodeList(); + PopulateReferenceList(); + } + + private void NavigateTo(Game game, string label) + { + + } + + private void PushPreviousGroup() + { + if (previousGroup != null) + { + navigationStack.Push(previousGroup); + } + } + private void tptSelector_SelectionChangeCommitted(object sender, EventArgs e) { if (tptSelector.SelectedIndex == -1) - { - LoadTptEntry(-1); - } + NavigateTo(null); else { - string tptString = (string)tptSelector.Items[tptSelector.SelectedIndex]; - string indexString = tptString.Substring(1, 3); - int index = Convert.ToInt32(indexString, 16); - LoadTptEntry(index); + PushPreviousGroup(); + + var currentGroup = (MatchedReferenceGroup)tptSelector.SelectedItem; + NavigateTo(currentGroup); + previousGroup = currentGroup; } } + + private void gameSelector_CheckedChanged(object sender, EventArgs e) + { + PopulateCodeList(); + PopulateReferenceList(); + } + + private void referenceList_MouseDoubleClick(object sender, MouseEventArgs e) + { + int match = referenceList.IndexFromPoint(e.Location); + if (match != ListBox.NoMatches) + { + Game game = GetCurrentGame(); + string label = (string)referenceList.SelectedItem; + + + } + } + + private void backButton_Click(object sender, EventArgs e) + { + if (navigationStack.Count < 1) + return; + + var group = navigationStack.Pop(); + NavigateTo(group); + previousGroup = group; + } + } + + enum Game + { + None, + Eb, + M2, + M12, + M12English } } diff --git a/ScriptTool/ScriptToolGui/MainForm.resx b/ScriptTool/ScriptToolGui/MainForm.resx index 1af7de1..d5494e3 100644 --- a/ScriptTool/ScriptToolGui/MainForm.resx +++ b/ScriptTool/ScriptToolGui/MainForm.resx @@ -117,4 +117,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + \ No newline at end of file diff --git a/ScriptTool/ScriptToolGui/MatchedReferenceGroup.cs b/ScriptTool/ScriptToolGui/MatchedReferenceGroup.cs new file mode 100644 index 0000000..1b65685 --- /dev/null +++ b/ScriptTool/ScriptToolGui/MatchedReferenceGroup.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ScriptTool; + +namespace ScriptToolGui +{ + class MatchedReferenceGroup + { + public MainStringRef EbRef { get; private set; } + public MainStringRef M12Ref { get; private set; } + + public MatchedReferenceGroup(MainStringRef ebRef, MainStringRef m12Ref) + { + if(ebRef.Index != m12Ref.Index) + { + + } + EbRef = ebRef; + M12Ref = m12Ref; + } + + public override string ToString() + { + return String.Format("[{0:X3}] EB: {1} / M12: {2}", EbRef.Index.ToString("X3"), + EbRef.Label, M12Ref.Label); + } + } +} diff --git a/ScriptTool/ScriptToolGui/NavigationEntry.cs b/ScriptTool/ScriptToolGui/NavigationEntry.cs new file mode 100644 index 0000000..04167d2 --- /dev/null +++ b/ScriptTool/ScriptToolGui/NavigationEntry.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ScriptToolGui +{ + class NavigationLabel + { + public Game Game { get; private set; } + public string Label { get; private set; } + + public NavigationLabel(Game game, string label) + { + Game = game; + Label = label; + } + } +} diff --git a/ScriptTool/ScriptToolGui/ScriptToolGui.csproj b/ScriptTool/ScriptToolGui/ScriptToolGui.csproj index 6056d86..704a5d8 100644 --- a/ScriptTool/ScriptToolGui/ScriptToolGui.csproj +++ b/ScriptTool/ScriptToolGui/ScriptToolGui.csproj @@ -55,6 +55,8 @@ MainForm.cs + + diff --git a/working/m12-strings-english - Copy.txt b/working/m12-strings-english - Copy.txt new file mode 100644 index 0000000..3bc58a4 --- /dev/null +++ b/working/m12-strings-english - Copy.txt @@ -0,0 +1,5928 @@ +^L0^ +^L1^ +^L2^ +^L3^ +^L4^ +^L5^ +^L6^ +^L7^ +^L8^ +^L9^ +^L10^ +^L11^ +^L12^ +^L13^ +^L14^ +^L15^ +^L16^ +^L17^ +^L18^ +^L19^ +^L20^ +^L21^ +^L22^ +^L23^ +^L24^ +^L25^ +^L26^ +^L27^ +^L28^ +^L29^ +^L30^ +^L31^ +^L32^ +^L33^ +^L34^ +^L35^ +^L36^ +^L37^ +^L38^ +^L39^ +^L40^ +^L41^ +^L42^ +^L43^ +^L44^ +^L45^ +^L46^ +^L47^ +^L48^ +^L49^ +^L50^ +^L51^ +^L52^ +^L53^ +^L54^ +^L55^ +^L56^ +^L57^ +^L58^ +^L59^ +^L60^ +^L61^ +^L62^ +^L63^ +^L64^ +^L65^ +^L66^ +^L67^ +^L68^ +^L69^ +^L70^ +^L71^ +^L72^ +^L73^ +^L74^ +^L75^ +^L76^ +^L77^ +^L78^ +^L79^ +^L80^ +^L81^ +^L82^ +^L83^ +^L84^ +^L85^ +^L86^ +^L87^ +^L88^ +^L89^ +^L90^ +^L91^ +^L92^ +^L93^ +^L94^ +^L95^ +^L96^ +^L97^ +^L98^ +^L99^ +^L100^ +^L101^ +^L102^ +^L103^ +^L104^ +^L105^ +^L106^ +^L107^ +^L108^ +^L109^ +^L110^ +^L111^ +^L112^ +^L113^ +^L114^ +^L115^ +^L116^ +^L117^ +^L118^ +^L119^ +^L120^ +^L121^ +^L122^ +^L123^ +^L124^ +^L125^ +^L126^ +^L127^ +^L128^ +^L129^ +^L130^ +^L131^ +^L132^ +^L133^ +^L134^ +^L135^ +^L136^ +^L137^ +^L138^ +^L139^ +^L140^ +^L141^ +^L142^ +^L143^ +^L144^ +^L145^ +^L146^ +^L147^ +^L148^ +^L149^ +^L150^ +^L151^ +^L152^ +^L153^ +^L154^ +^L155^ +^L156^ +^L157^ +^L158^ +^L159^ +^L160^ +^L161^ +^L162^ +^L163^ +^L164^ +^L165^ +^L166^ +^L167^ +^L168^ +^L169^ +^L170^ +^L171^ +^L172^ +^L173^ +^L174^ +^L175^ +^L176^ +^L177^ +^L178^ +^L179^ +^L180^ +^L181^ +^L182^ +^L183^ +^L184^ +^L185^ +^L186^ +^L187^ +^L188^ +^L189^ +^L190^ +^L191^ +^L192^ +^L193^ +^L194^ +^L195^ +^L196^ +^L197^ +^L198^ +^L199^ +^L200^ +^L201^ +^L202^ +^L203^ +^L204^ +^L205^ +^L206^ +^L207^ +^L208^ +^L209^ +^L210^ +^L211^ +^L212^ +^L213^ +^L214^ +^L215^ +^L216^ +^L217^ +^L218^ +^L219^ +^L220^ +^L221^ +^L222^ +^L223^ +^L224^ +^L225^ +^L226^ +^L227^ +^L228^ +^L229^ +^L230^ +^L231^ +^L232^ +^L233^ +^L234^ +^L235^ +^L236^ +^L237^ +^L238^ +^L239^ +^L240^ +^L241^ +^L242^ +^L243^ +^L244^ +^L245^ +^L246^ +^L247^ +^L248^ +^L249^ +^L250^ +^L251^ +^L252^ +^L253^ +^L254^ +^L255^ +^L256^ +^L257^ +^L258^ +^L259^ +^L260^ +^L261^ +^L262^ +^L263^ +^L264^ +^L265^ +^L266^ +^L267^ +^L268^ +^L269^ +^L270^ +^L271^ +^L272^ +^L273^ +^L274^ +^L275^ +^L276^ +^L277^ +^L278^ +^L279^ +^L280^ +^L281^ +^L282^ +^L283^ +^L284^ +^L285^ +^L286^ +^L287^ +^L288^ +^L289^ +^L290^ +^L291^ +^L292^ +^L293^ +^L294^ +^L295^ +^L296^ +^L297^ +^L298^ +^L299^ +^L300^ +^L301^ +^L302^ +^L303^ +^L304^ +^L305^ +^L306^ +^L307^ +^L308^ +^L309^ +^L310^ +^L311^ +^L312^ +^L313^ +^L314^ +^L315^ +^L316^ +^L317^ +^L318^ +^L319^ +^L320^ +^L321^ +^L322^ +^L323^ +^L324^ +^L325^ +^L326^ +^L327^ +^L328^ +^L329^ +^L330^ +^L331^ +^L332^ +^L333^ +^L334^ +^L335^ +^L336^ +^L337^ +^L338^ +^L339^ +^L340^ +^L341^ +^L342^ +^L343^ +^L344^ +^L345^ +^L346^ +^L347^ +^L348^ +^L349^ +^L350^ +^L351^ +^L352^ +^L353^ +^L354^ +^L355^ +^L356^ +^L357^ +^L358^ +^L359^ +^L360^ +^L361^ +^L362^ +^L363^ +^L364^ +^L365^ +^L366^ +^L367^ +^L368^ +^L369^ +^L370^ +^L371^ +^L372^ +^L373^ +^L374^ +^L375^ +^L376^ +^L377^ +^L378^ +^L379^ +^L380^ +^L381^ +^L382^ +^L383^ +^L384^ +^L385^ +^L386^ +^L387^ +^L388^ +^L389^ +^L390^ +^L391^ +^L392^ +^L393^ +^L394^ +^L395^ +^L396^ +^L397^ +^L398^ +^L399^ +^L400^ +^L401^ +^L402^ +^L403^ +^L404^ +^L405^ +^L406^ +^L407^ +^L408^ +^L409^ +^L410^ +^L411^ +^L412^ +^L413^ +^L414^ +^L415^ +^L416^ +^L417^ +^L418^ +^L419^ +^L420^ +^L421^ +^L422^ +^L423^ +^L424^ +^L425^ +^L426^ +^L427^ +^L428^ +^L429^ +^L430^ +^L431^ +^L432^ +^L433^ +^L434^ +^L435^ +^L436^ +^L437^ +^L438^ +^L439^ +^L440^ +^L441^ +^L442^ +^L443^ +^L444^ +^L445^ +^L446^ +^L447^ +^L448^ +^L449^ +^L450^ +^L451^ +^L452^ +^L453^ +^L454^ +^L455^ +^L456^ +^L457^ +^L458^ +^L459^ +^L460^ +^L461^ +^L462^ +^L463^ +^L464^ +^L465^ +^L466^ +^L467^ +^L468^ +^L469^ +^L470^ +^L471^ +^L472^ +^L473^ +^L474^ +^L475^ +^L476^ +^L477^ +^L478^ +^L479^ +^L480^ +^L481^ +^L482^ +^L483^ +^L484^ +^L485^ +^L486^ +^L487^ +^L488^ +^L489^ +^L490^ +^L491^ +^L492^ +^L493^ +^L494^ +^L495^ +^L496^ +^L497^ +^L498^ +^L499^ +^L500^ +^L501^ +^L502^ +^L503^ +^L504^ +^L505^ +^L506^ +^L507^ +^L508^ +^L509^ +^L510^ +^L511^ +^L512^ +^L513^ +^L514^ +^L515^ +^L516^ +^L517^ +^L518^ +^L519^ +^L520^ +^L521^ +^L522^ +^L523^ +^L524^ +^L525^ +^L526^ +^L527^ +^L528^ +^L529^ +^L530^ +^L531^ +^L532^ +^L533^ +^L534^ +^L535^ +^L536^ +^L537^ +^L538^ +^L539^ +^L540^ +^L541^ +^L542^ +^L543^ +^L544^ +^L545^ +^L546^ +^L547^ +^L548^ +^L549^ +^L550^ +^L551^ +^L552^ +^L553^ +^L554^ +^L555^ +^L556^ +^L557^ +^L558^ +^L559^ +^L560^ +^L561^ +^L562^ +^L563^ +^L564^ +^L565^ +^L566^ +^L567^ +^L568^ +^L569^ +^L570^ +^L571^ +^L572^ +^L573^ +^L574^ +^L575^ +^L576^ +^L577^ +^L578^ +^L579^ +^L580^ +^L581^ +^L582^ +^L583^ +^L584^ +^L585^ +^L586^ +^L587^ +^L588^ +^L589^ +^L590^ +^L591^ +^L592^ +^L593^ +^L594^ +^L595^ +^L596^ +^L597^ +^L598^ +^L599^ +^L600^ +^L601^ +^L602^ +^L603^ +^L604^ +^L605^ +^L606^ +^L607^ +^L608^ +^L609^ +^L610^ +^L611^ +^L612^ +^L613^ +^L614^ +^L615^ +^L616^ +^L617^ +^L618^ +^L619^ +^L620^ +^L621^ +^L622^ +^L623^ +^L624^ +^L625^ +^L626^ +^L627^ +^L628^ +^L629^ +^L630^ +^L631^ +^L632^ +^L633^ +^L634^ +^L635^ +^L636^ +^L637^ +^L638^ +^L639^ +^L640^ +^L641^ +^L642^ +^L643^ +^L644^ +^L645^ +^L646^ +^L647^ +^L648^ +^L649^ +^L650^ +^L651^ +^L652^ +^L653^ +^L654^ +^L655^ +^L656^ +^L657^ +^L658^ +^L659^ +^L660^ +^L661^ +^L662^ +^L663^ +^L664^ +^L665^ +^L666^ +^L667^ +^L668^ +^L669^ +^L670^ +^L671^ +^L672^ +^L673^ +^L674^ +^L675^ +^L676^ +^L677^ +^L678^ +^L679^ +^L680^ +^L681^ +^L682^ +^L683^ +^L684^ +^L685^ +^L686^ +^L687^ +^L688^ +^L689^ +^L690^ +^L691^ +^L692^ +^L693^ +^L694^ +^L695^ +^L696^ +^L697^ +^L698^ +^L699^ +^L700^ +^L701^ +^L702^ +^L703^ +^L704^ +^L705^ +^L706^ +^L707^ +^L708^ +^L709^ +^L710^ +^L711^ +^L712^ +^L713^ +^L714^ +^L715^ +^L716^ +^L717^ +^L718^ +^L719^ +^L720^ +^L721^ +^L722^ +^L723^ +^L724^ +^L725^ +^L726^ +^L727^ +^L728^ +^L729^ +^L730^ +^L731^ +^L732^ +^L733^ +^L734^ +^L735^ +^L736^ +^L737^ +^L738^ +^L739^ +^L740^ +^L741^ +^L742^ +^L743^ +^L744^ +^L745^ +^L746^ +^L747^ +^L748^ +^L749^ +^L750^ +^L751^ +^L752^ +^L753^ +^L754^ +^L755^ +^L756^ +^L757^ +^L758^ +^L759^ +^L760^ +^L761^ +^L762^ +^L763^ +^L764^ +^L765^ +^L766^ +^L767^ +^L768^ +^L769^ +^L770^ +^L771^ +^L772^ +^L773^ +^L774^ +^L775^ +^L776^ +^L777^ +^L778^ +^L779^ +^L780^ +^L781^ +^L782^ +^L783^ +^L784^ +^L785^ +^L786^ +^L787^ +^L788^ +^L789^ +^L790^ +^L791^ +^L792^ +^L793^ +^L794^ +^L795^ +^L796^ +^L797^ +^L798^ +^L799^ +^L800^ +^L801^ +^L802^ +^L803^ +^L804^ +^L805^ +^L806^ +^L807^ +^L808^ +^L809^ +^L810^ +^L811^ +^L812^ +^L813^ +^L814^ +^L815^ +^L816^ +^L817^ +^L818^ +^L819^ +^L820^ +^L821^ +^L822^ +^L823^ +^L824^ +^L825^ +^L826^ +^L827^ +^L828^ +^L829^ +^L830^ +^L831^ +^L832^ +^L833^ +^L834^ +^L835^ +^L836^ +^L837^ +^L838^ +^L839^ +^L840^ +^L841^ +^L842^ +^L843^ +^L844^ +^L845^ +^L846^ +^L847^ +^L848^ +^L849^ +^L850^ +^L851^ +^L852^ +^L853^ +^L854^ +^L855^ +^L856^ +^L857^ +^L858^ +^L859^ +^L860^ +^L861^ +^L862^ +^L863^ +^L864^ +^L865^ +^L866^ +^L867^ +^L868^ +^L869^ +^L870^ +^L871^ +^L872^ +^L873^ +^L874^ +^L875^ +^L876^ +^L877^ +^L878^ +^L879^ +^L880^ +^L881^ +^L882^ +^L883^ +^L884^ +^L885^ +^L886^ +^L887^ +^L888^ +^L889^ +^L890^ +^L891^ +^L892^ +^L893^ +^L894^ +^L895^ +^L896^ +^L897^ +^L898^ +^L899^ +^L900^ +^L901^ +^L902^ +^L903^ +^L904^ +^L905^ +^L906^ +^L907^ +^L908^ +^L909^ +^L910^ +^L911^ +^L912^ +^L913^ +^L914^ +^L915^ +^L916^ +^L917^ +^L918^ +^L919^ +^L920^ +^L921^ +^L922^ +^L923^ +^L924^ +^L925^ +^L926^ +^L927^ +^L928^ +^L929^ +^L930^ +^L931^ +^L932^ +^L933^ +^L934^ +^L935^ +^L936^ +^L937^ +^L938^ +^L939^ +^L940^ +^L941^ +^L942^ +^L943^ +^L944^ +^L945^ +^L946^ +^L947^ +^L948^ +^L949^ +^L950^ +^L951^ +^L952^ +^L953^ +^L954^ +^L955^ +^L956^ +^L957^ +^L958^ +^L959^ +^L960^ +^L961^ +^L962^ +^L963^ +^L964^ +^L965^ +^L966^ +^L967^ +^L968^ +^L969^ +^L970^ +^L971^ +^L972^ +^L973^ +^L974^ +^L975^ +^L976^ +^L977^ +^L978^ +^L979^ +^L980^ +^L981^ +^L982^ +^L983^ +^L984^ +^L985^ +^L986^ +^L987^ +^L988^ +^L989^ +^L990^ +^L991^ +^L992^ +^L993^ +^L994^ +^L995^ +^L996^ +^L997^ +^L998^ +^L999^ +^L1000^ +^L1001^ +^L1002^ +^L1003^ +^L1004^ +^L1005^ +^L1006^ +^L1007^ +^L1008^ +^L1009^ +^L1010^ +^L1011^ +^L1012^ +^L1013^ +^L1014^ +^L1015^ +^L1016^ +^L1017^ +^L1018^ +^L1019^ +^L1020^ +^L1021^ +^L1022^ +^L1023^ +^L1024^ +^L1025^ +^L1026^ +^L1027^ +^L1028^ +^L1029^ +^L1030^ +^L1031^ +^L1032^ +^L1033^ +^L1034^ +^L1035^ +^L1036^ +^L1037^ +^L1038^ +^L1039^ +^L1040^ +^L1041^ +^L1042^ +^L1043^ +^L1044^ +^L1045^ +^L1046^ +^L1047^ +^L1048^ +^L1049^ +^L1050^ +^L1051^ +^L1052^ +^L1053^ +^L1054^ +^L1055^ +^L1056^ +^L1057^ +^L1058^ +^L1059^ +^L1060^ +^L1061^ +^L1062^ +^L1063^ +^L1064^ +^L1065^ +^L1066^ +^L1067^ +^L1068^ +^L1069^ +^L1070^ +^L1071^ +^L1072^ +^L1073^ +^L1074^ +^L1075^ +^L1076^ +^L1077^ +^L1078^ +^L1079^ +^L1080^ +^L1081^ +^L1082^ +^L1083^ +^L1084^ +^L1085^ +^L1086^ +^L1087^ +^L1088^ +^L1089^ +^L1090^ +^L1091^ +^L1092^ +^L1093^ +^L1094^ +^L1095^ +^L1096^ +^L1097^ +^L1098^ +^L1099^ +^L1100^ +^L1101^ +^L1102^ +^L1103^ +^L1104^ +^L1105^ +^L1106^ +^L1107^ +^L1108^ +^L1109^ +^L1110^ +^L1111^ +^L1112^ +^L1113^ +^L1114^ +^L1115^ +^L1116^ +^L1117^ +^L1118^ +^L1119^ +^L1120^ +^L1121^ +^L1122^ +^L1123^ +^L1124^ +^L1125^ +^L1126^ +^L1127^ +^L1128^ +^L1129^ +^L1130^ +^L1131^ +^L1132^ +^L1133^ +^L1134^ +^L1135^ +^L1136^ +^L1137^ +^L1138^ +^L1139^ +^L1140^ +^L1141^ +^L1142^ +^L1143^ +^L1144^ +^L1145^ +^L1146^ +^L1147^ +^L1148^ +^L1149^ +^L1150^ +^L1151^ +^L1152^ +^L1153^ +^L1154^ +^L1155^ +^L1156^ +^L1157^ +^L1158^ +^L1159^ +^L1160^ +^L1161^ +^L1162^ +^L1163^ +^L1164^ +^L1165^ +^L1166^ +^L1167^ +^L1168^ +^L1169^ +^L1170^ +^L1171^ +^L1172^ +^L1173^ +^L1174^ +^L1175^ +^L1176^ +^L1177^ +^L1178^ +^L1179^ +^L1180^ +^L1181^ +^L1182^ +^L1183^ +^L1184^ +^L1185^ +^L1186^ +^L1187^ +^L1188^ +^L1189^ +^L1190^ +^L1191^ +^L1192^ +^L1193^ +^L1194^ +^L1195^ +^L1196^ +^L1197^ +^L1198^ +^L1199^ +^L1200^ +^L1201^ +^L1202^ +^L1203^ +^L1204^ +^L1205^ +^L1206^ +^L1207^ +^L1208^ +^L1209^ +^L1210^ +^L1211^ +^L1212^ +^L1213^ +^L1214^ +^L1215^ +^L1216^ +^L1217^ +^L1218^ +^L1219^ +^L1220^ +^L1221^ +^L1222^ +^L1223^ +^L1224^ +^L1225^ +^L1226^ +^L1227^ +^L1228^ +^L1229^ +^L1230^ +^L1231^ +^L1232^ +^L1233^ +^L1234^ +^L1235^ +^L1236^ +^L1237^ +^L1238^ +^L1239^ +^L1240^ +^L1241^ +^L1242^ +^L1243^ +^L1244^ +^L1245^ +^L1246^ +^L1247^ +^L1248^ +^L1249^ +^L1250^ +^L1251^ +^L1252^ +^L1253^ +^L1254^ +^L1255^ +^L1256^ +^L1257^ +^L1258^ +^L1259^ +^L1260^ +^L1261^ +^L1262^ +^L1263^ +^L1264^ +^L1265^ +^L1266^ +^L1267^ +^L1268^ +^L1269^ +^L1270^ +^L1271^ +^L1272^ +^L1273^ +^L1274^ +^L1275^ +^L1276^ +^L1277^ +^L1278^ +^L1279^ +^L1280^ +^L1281^ +^L1282^ +^L1283^ +^L1284^ +^L1285^ +^L1286^ +^L1287^ +^L1288^ +^L1289^ +^L1290^ +^L1291^ +^L1292^ +^L1293^ +^L1294^ +^L1295^ +^L1296^ +^L1297^ +^L1298^ +^L1299^ +^L1300^ +^L1301^ +^L1302^ +^L1303^ +^L1304^ +^L1305^ +^L1306^ +^L1307^ +^L1308^ +^L1309^ +^L1310^ +^L1311^ +^L1312^ +^L1313^ +^L1314^ +^L1315^ +^L1316^ +^L1317^ +^L1318^ +^L1319^ +^L1320^ +^L1321^ +^L1322^ +^L1323^ +^L1324^ +^L1325^ +^L1326^ +^L1327^ +^L1328^ +^L1329^ +^L1330^ +^L1331^ +^L1332^ +^L1333^ +^L1334^ +^L1335^ +^L1336^ +^L1337^ +^L1338^ +^L1339^ +^L1340^ +^L1341^ +^L1342^ +^L1343^ +^L1344^ +^L1345^ +^L1346^ +^L1347^ +^L1348^ +^L1349^ +^L1350^ +^L1351^ +^L1352^ +^L1353^ +^L1354^ +^L1355^ +^L1356^ +^L1357^ +^L1358^ +^L1359^ +^L1360^ +^L1361^ +^L1362^ +^L1363^ +^L1364^ +^L1365^ +^L1366^ +^L1367^ +^L1368^ +^L1369^ +^L1370^ +^L1371^ +^L1372^ +^L1373^ +^L1374^ +^L1375^ +^L1376^ +^L1377^ +^L1378^ +^L1379^ +^L1380^ +^L1381^ +^L1382^ +^L1383^ +^L1384^ +^L1385^ +^L1386^ +^L1387^ +^L1388^ +^L1389^ +^L1390^ +^L1391^ +^L1392^ +^L1393^ +^L1394^ +^L1395^ +^L1396^ +^L1397^ +^L1398^ +^L1399^ +^L1400^ +^L1401^ +^L1402^ +^L1403^ +^L1404^ +^L1405^ +^L1406^ +^L1407^ +^L1408^ +^L1409^ +^L1410^ +^L1411^ +^L1412^ +^L1413^ +^L1414^ +^L1415^ +^L1416^ +^L1417^ +^L1418^ +^L1419^ +^L1420^ +^L1421^ +^L1422^ +^L1423^ +^L1424^ +^L1425^ +^L1426^ +^L1427^ +^L1428^ +^L1429^ +^L1430^ +^L1431^ +^L1432^ +^L1433^ +^L1434^ +^L1435^ +^L1436^ +^L1437^ +^L1438^ +^L1439^ +^L1440^ +^L1441^ +^L1442^ +^L1443^ +^L1444^ +^L1445^ +^L1446^ +^L1447^ +^L1448^ +^L1449^ +^L1450^ +^L1451^ +^L1452^ +^L1453^ +^L1454^ +^L1455^ +^L1456^ +^L1457^ +^L1458^ +^L1459^ +^L1460^ +^L1461^ +^L1462^ +^L1463^ +^L1464^ +^L1465^ +^L1466^ +^L1467^ +^L1468^ +^L1469^ +^L1470^ +^L1471^ +^L1472^ +^L1473^ +^L1474^ +^L1475^ +^L1476^ +^L1477^ +^L1478^ +^L1479^ +^L1480^ +^L1481^ +^L1482^ +^L1483^ +^L1484^ +^L1485^ +^L1486^ +^L1487^ +^L1488^ +^L1489^ +^L1490^ +^L1491^ +^L1492^ +^L1493^ +^L1494^ +^L1495^ +^L1496^ +^L1497^ +^L1498^ +^L1499^ +^L1500^ +^L1501^ +^L1502^ +^L1503^ +^L1504^ +^L1505^ +^L1506^ +^L1507^ +^L1508^ +^L1509^ +^L1510^ +^L1511^ +^L1512^ +^L1513^ +^L1514^ +^L1515^ +^L1516^ +^L1517^ +^L1518^ +^L1519^ +^L1520^ +^L1521^ +^L1522^ +^L1523^ +^L1524^ +^L1525^ +^L1526^ +^L1527^ +^L1528^ +^L1529^ +^L1530^ +^L1531^ +^L1532^ +^L1533^ +^L1534^ +^L1535^ +^L1536^ +^L1537^ +^L1538^ +^L1539^ +^L1540^ +^L1541^ +^L1542^ +^L1543^ +^L1544^ +^L1545^ +^L1546^ +^L1547^ +^L1548^ +^L1549^ +^L1550^ +^L1551^ +^L1552^ +^L1553^ +^L1554^ +^L1555^ +^L1556^ +^L1557^ +^L1558^ +^L1559^ +^L1560^ +^L1561^ +^L1562^ +^L1563^ +^L1564^ +^L1565^ +^L1566^ +^L1567^ +^L1568^ +^L1569^ +^L1570^ +^L1571^ +^L1572^ +^L1573^ +^L1574^ +^L1575^ +^L1576^ +^L1577^ +^L1578^ +^L1579^ +^L1580^ +^L1581^ +^L1582^ +^L1583^ +^L1584^ +^L1585^ +^L1586^ +^L1587^ +^L1588^ +^L1589^ +^L1590^ +^L1591^ +^L1592^ +^L1593^ +^L1594^ +^L1595^ +^L1596^ +^L1597^ +^L1598^ +^L1599^ +^L1600^ +^L1601^ +^L1602^ +^L1603^ +^L1604^ +^L1605^ +^L1606^ +^L1607^ +^L1608^ +^L1609^ +^L1610^ +^L1611^ +^L1612^ +^L1613^ +^L1614^ +^L1615^ +^L1616^ +^L1617^ +^L1618^ +^L1619^ +^L1620^ +^L1621^ +^L1622^ +^L1623^ +^L1624^ +^L1625^ +^L1626^ +^L1627^ +^L1628^ +^L1629^ +^L1630^ +^L1631^ +^L1632^ +^L1633^ +^L1634^ +^L1635^ +^L1636^ +^L1637^ +^L1638^ +^L1639^ +^L1640^ +^L1641^ +^L1642^ +^L1643^ +^L1644^ +^L1645^ +^L1646^ +^L1647^ +^L1648^ +^L1649^ +^L1650^ +^L1651^ +^L1652^ +^L1653^ +^L1654^ +^L1655^ +^L1656^ +^L1657^ +^L1658^ +^L1659^ +^L1660^ +^L1661^ +^L1662^ +^L1663^ +^L1664^ +^L1665^ +^L1666^ +^L1667^ +^L1668^ +^L1669^ +^L1670^ +^L1671^ +^L1672^ +^L1673^ +^L1674^ +^L1675^ +^L1676^ +^L1677^ +^L1678^ +^L1679^ +^L1680^ +^L1681^ +^L1682^ +^L1683^ +^L1684^ +^L1685^ +^L1686^ +^L1687^ +^L1688^ +^L1689^ +^L1690^ +^L1691^ +^L1692^ +^L1693^ +^L1694^ +^L1695^ +^L1696^ +^L1697^ +^L1698^ +^L1699^ +^L1700^ +^L1701^ +^L1702^ +^L1703^ +^L1704^ +^L1705^ +^L1706^ +^L1707^ +^L1708^ +^L1709^ +^L1710^ +^L1711^ +^L1712^ +^L1713^ +^L1714^ +^L1715^ +^L1716^ +^L1717^ +^L1718^ +^L1719^ +^L1720^ +^L1721^ +^L1722^ +^L1723^ +^L1724^ +^L1725^ +^L1726^ +^L1727^ +^L1728^ +^L1729^ +^L1730^ +^L1731^ +^L1732^ +^L1733^ +^L1734^ +^L1735^ +^L1736^ +^L1737^ +^L1738^ +^L1739^ +^L1740^ +^L1741^ +^L1742^ +^L1743^ +^L1744^ +^L1745^ +^L1746^ +^L1747^ +^L1748^ +^L1749^ +^L1750^ +^L1751^ +^L1752^ +^L1753^ +^L1754^ +^L1755^ +^L1756^ +^L1757^ +^L1758^ +^L1759^ +^L1760^ +^L1761^ +^L1762^ +^L1763^ +^L1764^ +^L1765^ +^L1766^ +^L1767^ +^L1768^ +^L1769^ +^L1770^ +^L1771^ +^L1772^ +^L1773^ +^L1774^ +^L1775^ +^L1776^ +^L1777^ +^L1778^ +^L1779^ +^L1780^ +^L1781^ +^L1782^ +^L1783^ +^L1784^ +^L1785^ +^L1786^ +^L1787^ +^L1788^ +^L1789^ +^L1790^ +^L1791^ +^L1792^ +^L1793^ +^L1794^ +^L1795^ +^L1796^ +^L1797^ +^L1798^ +^L1799^ +^L1800^ +^L1801^ +^L1802^ +^L1803^ +^L1804^ +^L1805^ +^L1806^ +^L1807^ +^L1808^ +^L1809^ +^L1810^ +^L1811^ +^L1812^ +^L1813^ +^L1814^ +^L1815^ +^L1816^ +^L1817^ +^L1818^ +^L1819^ +^L1820^ +^L1821^ +^L1822^ +^L1823^ +^L1824^ +^L1825^ +^L1826^ +^L1827^ +^L1828^ +^L1829^ +^L1830^ +^L1831^ +^L1832^ +^L1833^ +^L1834^ +^L1835^ +^L1836^ +^L1837^ +^L1838^ +^L1839^ +^L1840^ +^L1841^ +^L1842^ +^L1843^ +^L1844^ +^L1845^ +^L1846^ +^L1847^ +^L1848^ +^L1849^ +^L1850^ +^L1851^ +^L1852^ +^L1853^ +^L1854^ +^L1855^ +^L1856^ +^L1857^ +^L1858^ +^L1859^ +^L1860^ +^L1861^ +^L1862^ +^L1863^ +^L1864^ +^L1865^ +^L1866^ +^L1867^ +^L1868^ +^L1869^ +^L1870^ +^L1871^ +^L1872^ +^L1873^ +^L1874^ +^L1875^ +^L1876^ +^L1877^ +^L1878^ +^L1879^ +^L1880^ +^L1881^ +^L1882^ +^L1883^ +^L1884^ +^L1885^ +^L1886^ +^L1887^ +^L1888^ +^L1889^ +^L1890^ +^L1891^ +^L1892^ +^L1893^ +^L1894^ +^L1895^ +^L1896^ +^L1897^ +^L1898^ +^L1899^ +^L1900^ +^L1901^ +^L1902^ +^L1903^ +^L1904^ +^L1905^ +^L1906^ +^L1907^ +^L1908^ +^L1909^ +^L1910^ +^L1911^ +^L1912^ +^L1913^ +^L1914^ +^L1915^ +^L1916^ +^L1917^ +^L1918^ +^L1919^ +^L1920^ +^L1921^ +^L1922^ +^L1923^ +^L1924^ +^L1925^ +^L1926^ +^L1927^ +^L1928^ +^L1929^ +^L1930^ +^L1931^ +^L1932^ +^L1933^ +^L1934^ +^L1935^ +^L1936^ +^L1937^ +^L1938^ +^L1939^ +^L1940^ +^L1941^ +^L1942^ +^L1943^ +^L1944^ +^L1945^ +^L1946^ +^L1947^ +^L1948^ +^L1949^ +^L1950^ +^L1951^ +^L1952^ +^L1953^ +^L1954^ +^L1955^ +^L1956^ +^L1957^ +^L1958^ +^L1959^ +^L1960^ +^L1961^ +^L1962^ +^L1963^ +^L1964^ +^L1965^ +^L1966^ +^L1967^ +^L1968^ +^L1969^ +^L1970^ +^L1971^ +^L1972^ +^L1973^ +^L1974^ +^L1975^ +^L1976^ +^L1977^ +^L1978^ +^L1979^ +^L1980^ +^L1981^ +^L1982^ +^L1983^ +^L1984^ +^L1985^ +^L1986^ +^L1987^ +^L1988^ +^L1989^ +^L1990^ +^L1991^ +^L1992^ +^L1993^ +^L1994^ +^L1995^ +^L1996^ +^L1997^ +^L1998^ +^L1999^ +^L2000^ +^L2001^ +^L2002^ +^L2003^ +^L2004^ +^L2005^ +^L2006^ +^L2007^ +^L2008^ +^L2009^ +^L2010^ +^L2011^ +^L2012^ +^L2013^ +^L2014^ +^L2015^ +^L2016^ +^L2017^ +^L2018^ +^L2019^ +^L2020^ +^L2021^ +^L2022^ +^L2023^ +^L2024^ +^L2025^ +^L2026^ +^L2027^ +^L2028^ +^L2029^ +^L2030^ +^L2031^ +^L2032^ +^L2033^ +^L2034^ +^L2035^ +^L2036^ +^L2037^ +^L2038^ +^L2039^ +^L2040^ +^L2041^ +^L2042^ +^L2043^ +^L2044^ +^L2045^ +^L2046^ +^L2047^ +^L2048^ +^L2049^ +^L2050^ +^L2051^ +^L2052^ +^L2053^ +^L2054^ +^L2055^ +^L2056^ +^L2057^ +^L2058^ +^L2059^ +^L2060^ +^L2061^ +^L2062^ +^L2063^ +^L2064^ +^L2065^ +^L2066^ +^L2067^ +^L2068^ +^L2069^ +^L2070^ +^L2071^ +^L2072^ +^L2073^ +^L2074^ +^L2075^ +^L2076^ +^L2077^ +^L2078^ +^L2079^ +^L2080^ +^L2081^ +^L2082^ +^L2083^ +^L2084^ +^L2085^ +^L2086^ +^L2087^ +^L2088^ +^L2089^ +^L2090^ +^L2091^ +^L2092^ +^L2093^ +^L2094^ +^L2095^ +^L2096^ +^L2097^ +^L2098^ +^L2099^ +^L2100^ +^L2101^ +^L2102^ +^L2103^ +^L2104^ +^L2105^ +^L2106^ +^L2107^ +^L2108^ +^L2109^ +^L2110^ +^L2111^ +^L2112^ +^L2113^ +^L2114^ +^L2115^ +^L2116^ +^L2117^ +^L2118^ +^L2119^ +^L2120^ +^L2121^ +^L2122^ +^L2123^ +^L2124^ +^L2125^ +^L2126^ +^L2127^ +^L2128^ +^L2129^ +^L2130^ +^L2131^ +^L2132^ +^L2133^ +^L2134^ +^L2135^ +^L2136^ +^L2137^ +^L2138^ +^L2139^ +^L2140^ +^L2141^ +^L2142^ +^L2143^ +^L2144^ +^L2145^ +^L2146^ +^L2147^ +^L2148^ +^L2149^ +^L2150^ +^L2151^ +^L2152^ +^L2153^ +^L2154^ +^L2155^ +^L2156^ +^L2157^ +^L2158^ +^L2159^ +^L2160^ +^L2161^ +^L2162^ +^L2163^ +^L2164^ +^L2165^ +^L2166^ +^L2167^ +^L2168^ +^L2169^ +^L2170^ +^L2171^ +^L2172^ +^L2173^ +^L2174^ +^L2175^ +^L2176^ +^L2177^ +^L2178^ +^L2179^ +^L2180^ +^L2181^ +^L2182^ +^L2183^ +^L2184^ +^L2185^ +^L2186^ +^L2187^ +^L2188^ +^L2189^ +^L2190^ +^L2191^ +^L2192^ +^L2193^ +^L2194^ +^L2195^ +^L2196^ +^L2197^ +^L2198^ +^L2199^ +^L2200^ +^L2201^ +^L2202^ +^L2203^ +^L2204^ +^L2205^ +^L2206^ +^L2207^ +^L2208^ +^L2209^ +^L2210^ +^L2211^ +^L2212^ +^L2213^ +^L2214^ +^L2215^ +^L2216^ +^L2217^ +^L2218^ +^L2219^ +^L2220^ +^L2221^ +^L2222^ +^L2223^ +^L2224^ +^L2225^ +^L2226^ +^L2227^ +^L2228^ +^L2229^ +^L2230^ +^L2231^ +^L2232^ +^L2233^ +^L2234^ +^L2235^ +^L2236^ +^L2237^ +^L2238^ +^L2239^ +^L2240^ +^L2241^ +^L2242^ +^L2243^ +^L2244^ +^L2245^ +^L2246^ +^L2247^ +^L2248^ +^L2249^ +^L2250^ +^L2251^ +^L2252^ +^L2253^ +^L2254^ +^L2255^ +^L2256^ +^L2257^ +^L2258^ +^L2259^ +^L2260^ +^L2261^ +^L2262^ +^L2263^ +^L2264^ +^L2265^ +^L2266^ +^L2267^ +^L2268^ +^L2269^ +^L2270^ +^L2271^ +^L2272^ +^L2273^ +^L2274^ +^L2275^ +^L2276^ +^L2277^ +^L2278^ +^L2279^ +^L2280^ +^L2281^ +^L2282^ +^L2283^ +^L2284^ +^L2285^ +^L2286^ +^L2287^ +^L2288^ +^L2289^ +^L2290^ +^L2291^ +^L2292^ +^L2293^ +^L2294^ +^L2295^ +^L2296^ +^L2297^ +^L2298^ +^L2299^ +^L2300^ +^L2301^ +^L2302^ +^L2303^ +^L2304^ +^L2305^ +^L2306^ +^L2307^ +^L2308^ +^L2309^ +^L2310^ +^L2311^ +^L2312^ +^L2313^ +^L2314^ +^L2315^ +^L2316^ +^L2317^ +^L2318^ +^L2319^ +^L2320^ +^L2321^ +^L2322^ +^L2323^ +^L2324^ +^L2325^ +^L2326^ +^L2327^ +^L2328^ +^L2329^ +^L2330^ +^L2331^ +^L2332^ +^L2333^ +^L2334^ +^L2335^ +^L2336^ +^L2337^ +^L2338^ +^L2339^ +^L2340^ +^L2341^ +^L2342^ +^L2343^ +^L2344^ +^L2345^ +^L2346^ +^L2347^ +^L2348^ +^L2349^ +^L2350^ +^L2351^ +^L2352^ +^L2353^ +^L2354^ +^L2355^ +^L2356^ +^L2357^ +^L2358^ +^L2359^ +^L2360^ +^L2361^ +^L2362^ +^L2363^ +^L2364^ +^L2365^ +^L2366^ +^L2367^ +^L2368^ +^L2369^ +^L2370^ +^L2371^ +^L2372^ +^L2373^ +^L2374^ +^L2375^ +^L2376^ +^L2377^ +^L2378^ +^L2379^ +^L2380^ +^L2381^ +^L2382^ +^L2383^ +^L2384^ +^L2385^ +^L2386^ +^L2387^ +^L2388^ +^L2389^ +^L2390^ +^L2391^ +^L2392^ +^L2393^ +^L2394^ +^L2395^ +^L2396^ +^L2397^ +^L2398^ +^L2399^ +^L2400^ +^L2401^ +^L2402^ +^L2403^ +^L2404^ +^L2405^ +^L2406^ +^L2407^ +^L2408^ +^L2409^ +^L2410^ +^L2411^ +^L2412^ +^L2413^ +^L2414^ +^L2415^ +^L2416^ +^L2417^ +^L2418^ +^L2419^ +^L2420^ +^L2421^ +^L2422^ +^L2423^ +^L2424^ +^L2425^ +^L2426^ +^L2427^ +^L2428^ +^L2429^ +^L2430^ +^L2431^ +^L2432^ +^L2433^ +^L2434^ +^L2435^ +^L2436^ +^L2437^ +^L2438^ +^L2439^ +^L2440^ +^L2441^ +^L2442^ +^L2443^ +^L2444^ +^L2445^ +^L2446^ +^L2447^ +^L2448^ +^L2449^ +^L2450^ +^L2451^ +^L2452^ +^L2453^ +^L2454^ +^L2455^ +^L2456^ +^L2457^ +^L2458^ +^L2459^ +^L2460^ +^L2461^ +^L2462^ +^L2463^ +^L2464^ +^L2465^ +^L2466^ +^L2467^ +^L2468^ +^L2469^ +^L2470^ +^L2471^ +^L2472^ +^L2473^ +^L2474^ +^L2475^ +^L2476^ +^L2477^ +^L2478^ +^L2479^ +^L2480^ +^L2481^ +^L2482^ +^L2483^ +^L2484^ +^L2485^ +^L2486^ +^L2487^ +^L2488^ +^L2489^ +^L2490^ +^L2491^ +^L2492^ +^L2493^ +^L2494^ +^L2495^ +^L2496^ +^L2497^ +^L2498^ +^L2499^ +^L2500^ +^L2501^ +^L2502^ +^L2503^ +^L2504^ +^L2505^ +^L2506^ +^L2507^ +^L2508^ +^L2509^ +^L2510^ +^L2511^ +^L2512^ +^L2513^ +^L2514^ +^L2515^ +^L2516^ +^L2517^ +^L2518^ +^L2519^ +^L2520^ +^L2521^ +^L2522^ +^L2523^ +^L2524^ +^L2525^ +^L2526^ +^L2527^ +^L2528^ +^L2529^ +^L2530^ +^L2531^ +^L2532^ +^L2533^ +^L2534^ +^L2535^ +^L2536^ +^L2537^ +^L2538^ +^L2539^ +^L2540^ +^L2541^ +^L2542^ +^L2543^ +^L2544^ +^L2545^ +^L2546^ +^L2547^ +^L2548^ +^L2549^ +^L2550^ +^L2551^ +^L2552^ +^L2553^ +^L2554^ +^L2555^ +^L2556^ +^L2557^ +^L2558^ +^L2559^ +^L2560^ +^L2561^ +^L2562^ +^L2563^ +^L2564^ +^L2565^ +^L2566^ +^L2567^ +^L2568^ +^L2569^ +^L2570^ +^L2571^ +^L2572^ +^L2573^ +^L2574^ +^L2575^ +^L2576^ +^L2577^ +^L2578^ +^L2579^ +^L2580^ +^L2581^ +^L2582^ +^L2583^ +^L2584^ +^L2585^ +^L2586^ +^L2587^ +^L2588^ +^L2589^ +^L2590^ +^L2591^ +^L2592^ +^L2593^ +^L2594^ +^L2595^ +^L2596^ +^L2597^ +^L2598^ +^L2599^ +^L2600^ +^L2601^ +^L2602^ +^L2603^ +^L2604^ +^L2605^ +^L2606^ +^L2607^ +^L2608^ +^L2609^ +^L2610^ +^L2611^ +^L2612^ +^L2613^ +^L2614^ +^L2615^ +^L2616^ +^L2617^ +^L2618^ +^L2619^ +^L2620^ +^L2621^ +^L2622^ +^L2623^ +^L2624^ +^L2625^ +^L2626^ +^L2627^ +^L2628^ +^L2629^ +^L2630^ +^L2631^ +^L2632^ +^L2633^ +^L2634^ +^L2635^ +^L2636^ +^L2637^ +^L2638^ +^L2639^ +^L2640^ +^L2641^ +^L2642^ +^L2643^ +^L2644^ +^L2645^ +^L2646^ +^L2647^ +^L2648^ +^L2649^ +^L2650^ +^L2651^ +^L2652^ +^L2653^ +^L2654^ +^L2655^ +^L2656^ +^L2657^ +^L2658^ +^L2659^ +^L2660^ +^L2661^ +^L2662^ +^L2663^ +^L2664^ +^L2665^ +^L2666^ +^L2667^ +^L2668^ +^L2669^ +^L2670^ +^L2671^ +^L2672^ +^L2673^ +^L2674^ +^L2675^ +^L2676^ +^L2677^ +^L2678^ +^L2679^ +^L2680^ +^L2681^ +^L2682^ +^L2683^ +^L2684^ +^L2685^ +^L2686^ +^L2687^ +^L2688^ +^L2689^ +^L2690^ +^L2691^ +^L2692^ +^L2693^ +^L2694^ +^L2695^ +^L2696^ +^L2697^ +^L2698^ +^L2699^ +^L2700^ +^L2701^ +^L2702^ +^L2703^ +^L2704^ +^L2705^ +^L2706^ +^L2707^ +^L2708^ +^L2709^ +^L2710^ +^L2711^ +^L2712^ +^L2713^ +^L2714^ +^L2715^ +^L2716^ +^L2717^ +^L2718^ +^L2719^ +^L2720^ +^L2721^ +^L2722^ +^L2723^ +^L2724^ +^L2725^ +^L2726^ +^L2727^ +^L2728^ +^L2729^ +^L2730^ +^L2731^ +^L2732^ +^L2733^ +^L2734^ +^L2735^ +^L2736^ +^L2737^ +^L2738^ +^L2739^ +^L2740^ +^L2741^ +^L2742^ +^L2743^ +^L2744^ +^L2745^ +^L2746^ +^L2747^ +^L2748^ +^L2749^ +^L2750^ +^L2751^ +^L2752^ +^L2753^ +^L2754^ +^L2755^ +^L2756^ +^L2757^ +^L2758^ +^L2759^ +^L2760^ +^L2761^ +^L2762^ +^L2763^ +^L2764^ +^L2765^ +^L2766^ +^L2767^ +^L2768^ +^L2769^ +^L2770^ +^L2771^ +^L2772^ +^L2773^ +^L2774^ +^L2775^ +^L2776^ +^L2777^ +^L2778^ +^L2779^ +^L2780^ +^L2781^ +^L2782^ +^L2783^ +^L2784^ +^L2785^ +^L2786^ +^L2787^ +^L2788^ +^L2789^ +^L2790^ +^L2791^ +^L2792^ +^L2793^ +^L2794^ +^L2795^ +^L2796^ +^L2797^ +^L2798^ +^L2799^ +^L2800^ +^L2801^ +^L2802^ +^L2803^ +^L2804^ +^L2805^ +^L2806^ +^L2807^ +^L2808^ +^L2809^ +^L2810^ +^L2811^ +^L2812^ +^L2813^ +^L2814^ +^L2815^ +^L2816^ +^L2817^ +^L2818^ +^L2819^ +^L2820^ +^L2821^ +^L2822^ +^L2823^ +^L2824^ +^L2825^ +^L2826^ +^L2827^ +^L2828^ +^L2829^ +^L2830^ +^L2831^ +^L2832^ +^L2833^ +^L2834^ +^L2835^ +^L2836^ +^L2837^ +^L2838^ +^L2839^ +^L2840^ +^L2841^ +^L2842^ +^L2843^ +^L2844^ +^L2845^ +^L2846^ +^L2847^ +^L2848^ +^L2849^ +^L2850^ +^L2851^ +^L2852^ +^L2853^ +^L2854^ +^L2855^ +^L2856^ +^L2857^ +^L2858^ +^L2859^ +^L2860^ +^L2861^ +^L2862^ +^L2863^ +^L2864^ +^L2865^ +^L2866^ +^L2867^ +^L2868^ +^L2869^ +^L2870^ +^L2871^ +^L2872^ +^L2873^ +^L2874^ +^L2875^ +^L2876^ +^L2877^ +^L2878^ +^L2879^ +^L2880^ +^L2881^ +^L2882^ +^L2883^ +^L2884^ +^L2885^ +^L2886^ +^L2887^ +^L2888^ +^L2889^ +^L2890^ +^L2891^ +^L2892^ +^L2893^ +^L2894^ +^L2895^ +^L2896^ +^L2897^ +^L2898^ +^L2899^ +^L2900^ +^L2901^ +^L2902^ +^L2903^ +^L2904^ +^L2905^ +^L2906^ +^L2907^ +^L2908^ +^L2909^ +^L2910^ +^L2911^ +^L2912^ +^L2913^ +^L2914^ +^L2915^ +^L2916^ +^L2917^ +^L2918^ +^L2919^ +^L2920^ +^L2921^ +^L2922^ +^L2923^ +^L2924^ +^L2925^ +^L2926^ +^L2927^ +^L2928^ +^L2929^ +^L2930^ +^L2931^ +^L2932^ +^L2933^ +^L2934^ +^L2935^ +^L2936^ +^L2937^ +^L2938^ +^L2939^ +^L2940^ +^L2941^ +^L2942^ +^L2943^ +^L2944^ +^L2945^ +^L2946^ +^L2947^ +^L2948^ +^L2949^ +^L2950^ +^L2951^ +^L2952^ +^L2953^ +^L2954^ +^L2955^ +^L2956^ +^L2957^ +^L2958^ +^L2959^ +^L2960^ +^L2961^ +^L2962^ +^L2963^ +^L2964^ +^L2965^ +^L2966^ +^L2967^ +^L2968^ +^L2969^ +^L2970^ +^L2971^ +^L2972^ +^L2973^ +^L2974^ +^L2975^ +^L2976^ +^L2977^ +^L2978^ +^L2979^ +^L2980^ +^L2981^ +^L2982^ +^L2983^ +^L2984^ +^L2985^ +^L2986^ +^L2987^ +^L2988^ +^L2989^ +^L2990^ +^L2991^ +^L2992^ +^L2993^ +^L2994^ +^L2995^ +^L2996^ +^L2997^ +^L2998^ +^L2999^ +^L3000^ +^L3001^ +^L3002^ +^L3003^ +^L3004^ +^L3005^ +^L3006^ +^L3007^ +^L3008^ +^L3009^ +^L3010^ +^L3011^ +^L3012^ +^L3013^ +^L3014^ +^L3015^ +^L3016^ +^L3017^ +^L3018^ +^L3019^ +^L3020^ +^L3021^ +^L3022^ +^L3023^ +^L3024^ +^L3025^ +^L3026^ +^L3027^ +^L3028^ +^L3029^ +^L3030^ +^L3031^ +^L3032^ +^L3033^ +^L3034^ +^L3035^ +^L3036^ +^L3037^ +^L3038^ +^L3039^ +^L3040^ +^L3041^ +^L3042^ +^L3043^ +^L3044^ +^L3045^ +^L3046^ +^L3047^ +^L3048^ +^L3049^ +^L3050^ +^L3051^ +^L3052^ +^L3053^ +^L3054^ +^L3055^ +^L3056^ +^L3057^ +^L3058^ +^L3059^ +^L3060^ +^L3061^ +^L3062^ +^L3063^ +^L3064^ +^L3065^ +^L3066^ +^L3067^ +^L3068^ +^L3069^ +^L3070^ +^L3071^ +^L3072^ +^L3073^ +^L3074^ +^L3075^ +^L3076^ +^L3077^ +^L3078^ +^L3079^ +^L3080^ +^L3081^ +^L3082^ +^L3083^ +^L3084^ +^L3085^ +^L3086^ +^L3087^ +^L3088^ +^L3089^ +^L3090^ +^L3091^ +^L3092^ +^L3093^ +^L3094^ +^L3095^ +^L3096^ +^L3097^ +^L3098^ +^L3099^ +^L3100^ +^L3101^ +^L3102^ +^L3103^ +^L3104^ +^L3105^ +^L3106^ +^L3107^ +^L3108^ +^L3109^ +^L3110^ +^L3111^ +^L3112^ +^L3113^ +^L3114^ +^L3115^ +^L3116^ +^L3117^ +^L3118^ +^L3119^ +^L3120^ +^L3121^ +^L3122^ +^L3123^ +^L3124^ +^L3125^ +^L3126^ +^L3127^ +^L3128^ +^L3129^ +^L3130^ +^L3131^ +^L3132^ +^L3133^ +^L3134^ +^L3135^ +^L3136^ +^L3137^ +^L3138^ +^L3139^ +^L3140^ +^L3141^ +^L3142^ +^L3143^ +^L3144^ +^L3145^ +^L3146^ +^L3147^ +^L3148^ +^L3149^ +^L3150^ +^L3151^ +^L3152^ +^L3153^ +^L3154^ +^L3155^ +^L3156^ +^L3157^ +^L3158^ +^L3159^ +^L3160^ +^L3161^ +^L3162^ +^L3163^ +^L3164^ +^L3165^ +^L3166^ +^L3167^ +^L3168^ +^L3169^ +^L3170^ +^L3171^ +^L3172^ +^L3173^ +^L3174^ +^L3175^ +^L3176^ +^L3177^ +^L3178^ +^L3179^ +^L3180^ +^L3181^ +^L3182^ +^L3183^ +^L3184^ +^L3185^ +^L3186^ +^L3187^ +^L3188^ +^L3189^ +^L3190^ +^L3191^ +^L3192^ +^L3193^ +^L3194^ +^L3195^ +^L3196^ +^L3197^ +^L3198^ +^L3199^ +^L3200^ +^L3201^ +^L3202^ +^L3203^ +^L3204^ +^L3205^ +^L3206^ +^L3207^ +^L3208^ +^L3209^ +^L3210^ +^L3211^ +^L3212^ +^L3213^ +^L3214^ +^L3215^ +^L3216^ +^L3217^ +^L3218^ +^L3219^ +^L3220^ +^L3221^ +^L3222^ +^L3223^ +^L3224^ +^L3225^ +^L3226^ +^L3227^ +^L3228^ +^L3229^ +^L3230^ +^L3231^ +^L3232^ +^L3233^ +^L3234^ +^L3235^ +^L3236^ +^L3237^ +^L3238^ +^L3239^ +^L3240^ +^L3241^ +^L3242^ +^L3243^ +^L3244^ +^L3245^ +^L3246^ +^L3247^ +^L3248^ +^L3249^ +^L3250^ +^L3251^ +^L3252^ +^L3253^ +^L3254^ +^L3255^ +^L3256^ +^L3257^ +^L3258^ +^L3259^ +^L3260^ +^L3261^ +^L3262^ +^L3263^ +^L3264^ +^L3265^ +^L3266^ +^L3267^ +^L3268^ +^L3269^ +^L3270^ +^L3271^ +^L3272^ +^L3273^ +^L3274^ +^L3275^ +^L3276^ +^L3277^ +^L3278^ +^L3279^ +^L3280^ +^L3281^ +^L3282^ +^L3283^ +^L3284^ +^L3285^ +^L3286^ +^L3287^ +^L3288^ +^L3289^ +^L3290^ +^L3291^ +^L3292^ +^L3293^ +^L3294^ +^L3295^ +^L3296^ +^L3297^ +^L3298^ +^L3299^ +^L3300^ +^L3301^ +^L3302^ +^L3303^ +^L3304^ +^L3305^ +^L3306^ +^L3307^ +^L3308^ +^L3309^ +^L3310^ +^L3311^ +^L3312^ +^L3313^ +^L3314^ +^L3315^ +^L3316^ +^L3317^ +^L3318^ +^L3319^ +^L3320^ +^L3321^ +^L3322^ +^L3323^ +^L3324^ +^L3325^ +^L3326^ +^L3327^ +^L3328^ +^L3329^ +^L3330^ +^L3331^ +^L3332^ +^L3333^ +^L3334^ +^L3335^ +^L3336^ +^L3337^ +^L3338^ +^L3339^ +^L3340^ +^L3341^ +^L3342^ +^L3343^ +^L3344^ +^L3345^ +^L3346^ +^L3347^ +^L3348^ +^L3349^ +^L3350^ +^L3351^ +^L3352^ +^L3353^ +^L3354^ +^L3355^ +^L3356^ +^L3357^ +^L3358^ +^L3359^ +^L3360^ +^L3361^ +^L3362^ +^L3363^ +^L3364^ +^L3365^ +^L3366^ +^L3367^ +^L3368^ +^L3369^ +^L3370^ +^L3371^ +^L3372^ +^L3373^ +^L3374^ +^L3375^ +^L3376^ +^L3377^ +^L3378^ +^L3379^ +^L3380^ +^L3381^ +^L3382^ +^L3383^ +^L3384^ +^L3385^ +^L3386^ +^L3387^ +^L3388^ +^L3389^ +^L3390^ +^L3391^ +^L3392^ +^L3393^ +^L3394^ +^L3395^ +^L3396^ +^L3397^ +^L3398^ +^L3399^ +^L3400^ +^L3401^ +^L3402^ +^L3403^ +^L3404^ +^L3405^ +^L3406^ +^L3407^ +^L3408^ +^L3409^ +^L3410^ +^L3411^ +^L3412^ +^L3413^ +^L3414^ +^L3415^ +^L3416^ +^L3417^ +^L3418^ +^L3419^ +^L3420^ +^L3421^ +^L3422^ +^L3423^ +^L3424^ +^L3425^ +^L3426^ +^L3427^ +^L3428^ +^L3429^ +^L3430^ +^L3431^ +^L3432^ +^L3433^ +^L3434^ +^L3435^ +^L3436^ +^L3437^ +^L3438^ +^L3439^ +^L3440^ +^L3441^ +^L3442^ +^L3443^ +^L3444^ +^L3445^ +^L3446^ +^L3447^ +^L3448^ +^L3449^ +^L3450^ +^L3451^ +^L3452^ +^L3453^ +^L3454^ +^L3455^ +^L3456^ +^L3457^ +^L3458^ +^L3459^ +^L3460^ +^L3461^ +^L3462^ +^L3463^ +^L3464^ +^L3465^ +^L3466^ +^L3467^ +^L3468^ +^L3469^ +^L3470^ +^L3471^ +^L3472^ +^L3473^ +^L3474^ +^L3475^ +^L3476^ +^L3477^ +^L3478^ +^L3479^ +^L3480^ +^L3481^ +^L3482^ +^L3483^ +^L3484^ +^L3485^ +^L3486^ +^L3487^ +^L3488^ +^L3489^ +^L3490^ +^L3491^ +^L3492^ +^L3493^ +^L3494^ +^L3495^ +^L3496^ +^L3497^ +^L3498^ +^L3499^ +^L3500^ +^L3501^ +^L3502^ +^L3503^ +^L3504^ +^L3505^ +^L3506^ +^L3507^ +^L3508^ +^L3509^ +^L3510^ +^L3511^ +^L3512^ +^L3513^ +^L3514^ +^L3515^ +^L3516^ +^L3517^ +^L3518^ +^L3519^ +^L3520^ +^L3521^ +^L3522^ +^L3523^ +^L3524^ +^L3525^ +^L3526^ +^L3527^ +^L3528^ +^L3529^ +^L3530^ +^L3531^ +^L3532^ +^L3533^ +^L3534^ +^L3535^ +^L3536^ +^L3537^ +^L3538^ +^L3539^ +^L3540^ +^L3541^ +^L3542^ +^L3543^ +^L3544^ +^L3545^ +^L3546^ +^L3547^ +^L3548^ +^L3549^ +^L3550^ +^L3551^ +^L3552^ +^L3553^ +^L3554^ +^L3555^ +^L3556^ +^L3557^ +^L3558^ +^L3559^ +^L3560^ +^L3561^ +^L3562^ +^L3563^ +^L3564^ +^L3565^ +^L3566^ +^L3567^ +^L3568^ +^L3569^ +^L3570^ +^L3571^ +^L3572^ +^L3573^ +^L3574^ +^L3575^ +^L3576^ +^L3577^ +^L3578^ +^L3579^ +^L3580^ +^L3581^ +^L3582^ +^L3583^ +^L3584^ +^L3585^ +^L3586^ +^L3587^ +^L3588^ +^L3589^ +^L3590^ +^L3591^ +^L3592^ +^L3593^ +^L3594^ +^L3595^ +^L3596^ +^L3597^ +^L3598^ +^L3599^ +^L3600^ +^L3601^ +^L3602^ +^L3603^ +^L3604^ +^L3605^ +^L3606^ +^L3607^ +^L3608^ +^L3609^ +^L3610^ +^L3611^ +^L3612^ +^L3613^ +^L3614^ +^L3615^ +^L3616^ +^L3617^ +^L3618^ +^L3619^ +^L3620^ +^L3621^ +^L3622^ +^L3623^ +^L3624^ +^L3625^ +^L3626^ +^L3627^ +^L3628^ +^L3629^ +^L3630^ +^L3631^ +^L3632^ +^L3633^ +^L3634^ +^L3635^ +^L3636^ +^L3637^ +^L3638^ +^L3639^ +^L3640^ +^L3641^ +^L3642^ +^L3643^ +^L3644^ +^L3645^ +^L3646^ +^L3647^ +^L3648^ +^L3649^ +^L3650^ +^L3651^ +^L3652^ +^L3653^ +^L3654^ +^L3655^ +^L3656^ +^L3657^ +^L3658^ +^L3659^ +^L3660^ +^L3661^ +^L3662^ +^L3663^ +^L3664^ +^L3665^ +^L3666^ +^L3667^ +^L3668^ +^L3669^ +^L3670^ +^L3671^ +^L3672^ +^L3673^ +^L3674^ +^L3675^ +^L3676^ +^L3677^ +^L3678^ +^L3679^ +^L3680^ +^L3681^ +^L3682^ +^L3683^ +^L3684^ +^L3685^ +^L3686^ +^L3687^ +^L3688^ +^L3689^ +^L3690^ +^L3691^ +^L3692^ +^L3693^ +^L3694^ +^L3695^ +^L3696^ +^L3697^ +^L3698^ +^L3699^ +^L3700^ +^L3701^ +^L3702^ +^L3703^ +^L3704^ +^L3705^ +^L3706^ +^L3707^ +^L3708^ +^L3709^ +^L3710^ +^L3711^ +^L3712^ +^L3713^ +^L3714^ +^L3715^ +^L3716^ +^L3717^ +^L3718^ +^L3719^ +^L3720^ +^L3721^ +^L3722^ +^L3723^ +^L3724^ +^L3725^ +^L3726^ +^L3727^ +^L3728^ +^L3729^ +^L3730^ +^L3731^ +^L3732^ +^L3733^ +^L3734^ +^L3735^ +^L3736^ +^L3737^ +^L3738^ +^L3739^ +^L3740^ +^L3741^ +^L3742^ +^L3743^ +^L3744^ +^L3745^ +^L3746^ +^L3747^ +^L3748^ +^L3749^ +^L3750^ +^L3751^ +^L3752^ +^L3753^ +^L3754^ +^L3755^ +^L3756^ +^L3757^ +^L3758^ +^L3759^ +^L3760^ +^L3761^ +^L3762^ +^L3763^ +^L3764^ +^L3765^ +^L3766^ +^L3767^ +^L3768^ +^L3769^ +^L3770^ +^L3771^ +^L3772^ +^L3773^ +^L3774^ +^L3775^ +^L3776^ +^L3777^ +^L3778^ +^L3779^ +^L3780^ +^L3781^ +^L3782^ +^L3783^ +^L3784^ +^L3785^ +^L3786^ +^L3787^ +^L3788^ +^L3789^ +^L3790^ +^L3791^ +^L3792^ +^L3793^ +^L3794^ +^L3795^ +^L3796^ +^L3797^ +^L3798^ +^L3799^ +^L3800^ +^L3801^ +^L3802^ +^L3803^ +^L3804^ +^L3805^ +^L3806^ +^L3807^ +^L3808^ +^L3809^ +^L3810^ +^L3811^ +^L3812^ +^L3813^ +^L3814^ +^L3815^ +^L3816^ +^L3817^ +^L3818^ +^L3819^ +^L3820^ +^L3821^ +^L3822^ +^L3823^ +^L3824^ +^L3825^ +^L3826^ +^L3827^ +^L3828^ +^L3829^ +^L3830^ +^L3831^ +^L3832^ +^L3833^ +^L3834^ +^L3835^ +^L3836^ +^L3837^ +^L3838^ +^L3839^ +^L3840^ +^L3841^ +^L3842^ +^L3843^ +^L3844^ +^L3845^ +^L3846^ +^L3847^ +^L3848^ +^L3849^ +^L3850^ +^L3851^ +^L3852^ +^L3853^ +^L3854^ +^L3855^ +^L3856^ +^L3857^ +^L3858^ +^L3859^ +^L3860^ +^L3861^ +^L3862^ +^L3863^ +^L3864^ +^L3865^ +^L3866^ +^L3867^ +^L3868^ +^L3869^ +^L3870^ +^L3871^ +^L3872^ +^L3873^ +^L3874^ +^L3875^ +^L3876^ +^L3877^ +^L3878^ +^L3879^ +^L3880^ +^L3881^ +^L3882^ +^L3883^ +^L3884^ +^L3885^ +^L3886^ +^L3887^ +^L3888^ +^L3889^ +^L3890^ +^L3891^ +^L3892^ +^L3893^ +^L3894^ +^L3895^ +^L3896^ +^L3897^ +^L3898^ +^L3899^ +^L3900^ +^L3901^ +^L3902^ +^L3903^ +^L3904^ +^L3905^ +^L3906^ +^L3907^ +^L3908^ +^L3909^ +^L3910^ +^L3911^ +^L3912^ +^L3913^ +^L3914^ +^L3915^ +^L3916^ +^L3917^ +^L3918^ +^L3919^ +^L3920^ +^L3921^ +^L3922^ +^L3923^ +^L3924^ +^L3925^ +^L3926^ +^L3927^ +^L3928^ +^L3929^ +^L3930^ +^L3931^ +^L3932^ +^L3933^ +^L3934^ +^L3935^ +^L3936^ +^L3937^ +^L3938^ +^L3939^ +^L3940^ +^L3941^ +^L3942^ +^L3943^ +^L3944^ +^L3945^ +^L3946^ +^L3947^ +^L3948^ +^L3949^ +^L3950^ +^L3951^ +^L3952^ +^L3953^ +^L3954^ +^L3955^ +^L3956^ +^L3957^ +^L3958^ +^L3959^ +^L3960^ +^L3961^ +^L3962^ +^L3963^ +^L3964^ +^L3965^ +^L3966^ +^L3967^ +^L3968^ +^L3969^ +^L3970^ +^L3971^ +^L3972^ +^L3973^ +^L3974^ +^L3975^ +^L3976^ +^L3977^ +^L3978^ +^L3979^ +^L3980^ +^L3981^ +^L3982^ +^L3983^ +^L3984^ +^L3985^ +^L3986^ +^L3987^ +^L3988^ +^L3989^ +^L3990^ +^L3991^ +^L3992^ +^L3993^ +^L3994^ +^L3995^ +^L3996^ +^L3997^ +^L3998^ +^L3999^ +^L4000^ +^L4001^ +^L4002^ +^L4003^ +^L4004^ +^L4005^ +^L4006^ +^L4007^ +^L4008^ +^L4009^ +^L4010^ +^L4011^ +^L4012^ +^L4013^ +^L4014^ +^L4015^ +^L4016^ +^L4017^ +^L4018^ +^L4019^ +^L4020^ +^L4021^ +^L4022^ +^L4023^ +^L4024^ +^L4025^ +^L4026^ +^L4027^ +^L4028^ +^L4029^ +^L4030^ +^L4031^ +^L4032^ +^L4033^ +^L4034^ +^L4035^ +^L4036^ +^L4037^ +^L4038^ +^L4039^ +^L4040^ +^L4041^ +^L4042^ +^L4043^ +^L4044^ +^L4045^ +^L4046^ +^L4047^ +^L4048^ +^L4049^ +^L4050^ +^L4051^ +^L4052^ +^L4053^ +^L4054^ +^L4055^ +^L4056^ +^L4057^ +^L4058^ +^L4059^ +^L4060^ +^L4061^ +^L4062^ +^L4063^ +^L4064^ +^L4065^ +^L4066^ +^L4067^ +^L4068^ +^L4069^ +^L4070^ +^L4071^ +^L4072^ +^L4073^ +^L4074^ +^L4075^ +^L4076^ +^L4077^ +^L4078^ +^L4079^ +^L4080^ +^L4081^ +^L4082^ +^L4083^ +^L4084^ +^L4085^ +^L4086^ +^L4087^ +^L4088^ +^L4089^ +^L4090^ +^L4091^ +^L4092^ +^L4093^ +^L4094^ +^L4095^ +^L4096^ +^L4097^ +^L4098^ +^L4099^ +^L4100^ +^L4101^ +^L4102^ +^L4103^ +^L4104^ +^L4105^ +^L4106^ +^L4107^ +^L4108^ +^L4109^ +^L4110^ +^L4111^ +^L4112^ +^L4113^ +^L4114^ +^L4115^ +^L4116^ +^L4117^ +^L4118^ +^L4119^ +^L4120^ +^L4121^ +^L4122^ +^L4123^ +^L4124^ +^L4125^ +^L4126^ +^L4127^ +^L4128^ +^L4129^ +^L4130^ +^L4131^ +^L4132^ +^L4133^ +^L4134^ +^L4135^ +^L4136^ +^L4137^ +^L4138^ +^L4139^ +^L4140^ +^L4141^ +^L4142^ +^L4143^ +^L4144^ +^L4145^ +^L4146^ +^L4147^ +^L4148^ +^L4149^ +^L4150^ +^L4151^ +^L4152^ +^L4153^ +^L4154^ +^L4155^ +^L4156^ +^L4157^ +^L4158^ +^L4159^ +^L4160^ +^L4161^ +^L4162^ +^L4163^ +^L4164^ +^L4165^ +^L4166^ +^L4167^ +^L4168^ +^L4169^ +^L4170^ +^L4171^ +^L4172^ +^L4173^ +^L4174^ +^L4175^ +^L4176^ +^L4177^ +^L4178^ +^L4179^ +^L4180^ +^L4181^ +^L4182^ +^L4183^ +^L4184^ +^L4185^ +^L4186^ +^L4187^ +^L4188^ +^L4189^ +^L4190^ +^L4191^ +^L4192^ +^L4193^ +^L4194^ +^L4195^ +^L4196^ +^L4197^ +^L4198^ +^L4199^ +^L4200^ +^L4201^ +^L4202^ +^L4203^ +^L4204^ +^L4205^ +^L4206^ +^L4207^ +^L4208^ +^L4209^ +^L4210^ +^L4211^ +^L4212^ +^L4213^ +^L4214^ +^L4215^ +^L4216^ +^L4217^ +^L4218^ +^L4219^ +^L4220^ +^L4221^ +^L4222^ +^L4223^ +^L4224^ +^L4225^ +^L4226^ +^L4227^ +^L4228^ +^L4229^ +^L4230^ +^L4231^ +^L4232^ +^L4233^ +^L4234^ +^L4235^ +^L4236^ +^L4237^ +^L4238^ +^L4239^ +^L4240^ +^L4241^ +^L4242^ +^L4243^ +^L4244^ +^L4245^ +^L4246^ +^L4247^ +^L4248^ +^L4249^ +^L4250^ +^L4251^ +^L4252^ +^L4253^ +^L4254^ +^L4255^ +^L4256^ +^L4257^ +^L4258^ +^L4259^ +^L4260^ +^L4261^ +^L4262^ +^L4263^ +^L4264^ +^L4265^ +^L4266^ +^L4267^ +^L4268^ +^L4269^ +^L4270^ +^L4271^ +^L4272^ +^L4273^ +^L4274^ +^L4275^ +^L4276^ +^L4277^ +^L4278^ +^L4279^ +^L4280^ +^L4281^ +^L4282^ +^L4283^ +^L4284^ +^L4285^ +^L4286^ +^L4287^ +^L4288^ +^L4289^ +^L4290^ +^L4291^ +^L4292^ +^L4293^ +^L4294^ +^L4295^ +^L4296^ +^L4297^ +^L4298^ +^L4299^ +^L4300^ +^L4301^ +^L4302^ +^L4303^ +^L4304^ +^L4305^ +^L4306^ +^L4307^ +^L4308^ +^L4309^ +^L4310^ +^L4311^ +^L4312^ +^L4313^ +^L4314^ +^L4315^ +^L4316^ +^L4317^ +^L4318^ +^L4319^ +^L4320^ +^L4321^ +^L4322^ +^L4323^ +^L4324^ +^L4325^ +^L4326^ +^L4327^ +^L4328^ +^L4329^ +^L4330^ +^L4331^ +^L4332^ +^L4333^ +^L4334^ +^L4335^ +^L4336^ +^L4337^ +^L4338^ +^L4339^ +^L4340^ +^L4341^ +^L4342^ +^L4343^ +^L4344^ +^L4345^ +^L4346^ +^L4347^ +^L4348^ +^L4349^ +^L4350^ +^L4351^ +^L4352^ +^L4353^ +^L4354^ +^L4355^ +^L4356^ +^L4357^ +^L4358^ +^L4359^ +^L4360^ +^L4361^ +^L4362^ +^L4363^ +^L4364^ +^L4365^ +^L4366^ +^L4367^ +^L4368^ +^L4369^ +^L4370^ +^L4371^ +^L4372^ +^L4373^ +^L4374^ +^L4375^ +^L4376^ +^L4377^ +^L4378^ +^L4379^ +^L4380^ +^L4381^ +^L4382^ +^L4383^ +^L4384^ +^L4385^ +^L4386^ +^L4387^ +^L4388^ +^L4389^ +^L4390^ +^L4391^ +^L4392^ +^L4393^ +^L4394^ +^L4395^ +^L4396^ +^L4397^ +^L4398^ +^L4399^ +^L4400^ +^L4401^ +^L4402^ +^L4403^ +^L4404^ +^L4405^ +^L4406^ +^L4407^ +^L4408^ +^L4409^ +^L4410^ +^L4411^ +^L4412^ +^L4413^ +^L4414^ +^L4415^ +^L4416^ +^L4417^ +^L4418^ +^L4419^ +^L4420^ +^L4421^ +^L4422^ +^L4423^ +^L4424^ +^L4425^ +^L4426^ +^L4427^ +^L4428^ +^L4429^ +^L4430^ +^L4431^ +^L4432^ +^L4433^ +^L4434^ +^L4435^ +^L4436^ +^L4437^ +^L4438^ +^L4439^ +^L4440^ +^L4441^ +^L4442^ +^L4443^ +^L4444^ +^L4445^ +^L4446^ +^L4447^ +^L4448^ +^L4449^ +^L4450^ +^L4451^ +^L4452^ +^L4453^ +^L4454^ +^L4455^ +^L4456^ +^L4457^ +^L4458^ +^L4459^ +^L4460^ +^L4461^ +^L4462^ +^L4463^ +^L4464^ +^L4465^ +^L4466^ +^L4467^ +^L4468^ +^L4469^ +^L4470^ +^L4471^ +^L4472^ +^L4473^ +^L4474^ +^L4475^ +^L4476^ +^L4477^ +^L4478^ +^L4479^ +^L4480^ +^L4481^ +^L4482^ +^L4483^ +^L4484^ +^L4485^ +^L4486^ +^L4487^ +^L4488^ +^L4489^ +^L4490^ +^L4491^ +^L4492^ +^L4493^ +^L4494^ +^L4495^ +^L4496^ +^L4497^ +^L4498^ +^L4499^ +^L4500^ +^L4501^ +^L4502^ +^L4503^ +^L4504^ +^L4505^ +^L4506^ +^L4507^ +^L4508^ +^L4509^ +^L4510^ +^L4511^ +^L4512^ +^L4513^ +^L4514^ +^L4515^ +^L4516^ +^L4517^ +^L4518^ +^L4519^ +^L4520^ +^L4521^ +^L4522^ +^L4523^ +^L4524^ +^L4525^ +^L4526^ +^L4527^ +^L4528^ +^L4529^ +^L4530^ +^L4531^ +^L4532^ +^L4533^ +^L4534^ +^L4535^ +^L4536^ +^L4537^ +^L4538^ +^L4539^ +^L4540^ +^L4541^ +^L4542^ +^L4543^ +^L4544^ +^L4545^ +^L4546^ +^L4547^ +^L4548^ +^L4549^ +^L4550^ +^L4551^ +^L4552^ +^L4553^ +^L4554^ +^L4555^ +^L4556^ +^L4557^ +^L4558^ +^L4559^ +^L4560^ +^L4561^ +^L4562^ +^L4563^ +^L4564^ +^L4565^ +^L4566^ +^L4567^ +^L4568^ +^L4569^ +^L4570^ +^L4571^ +^L4572^ +^L4573^ +^L4574^ +^L4575^ +^L4576^ +^L4577^ +^L4578^ +^L4579^ +^L4580^ +^L4581^ +^L4582^ +^L4583^ +^L4584^ +^L4585^ +^L4586^ +^L4587^ +^L4588^ +^L4589^ +^L4590^ +^L4591^ +^L4592^ +^L4593^ +^L4594^ +^L4595^ +^L4596^ +^L4597^ +^L4598^ +^L4599^ +^L4600^ +^L4601^ +^L4602^ +^L4603^ +^L4604^ +^L4605^ +^L4606^ +^L4607^ +^L4608^ +^L4609^ +^L4610^ +^L4611^ +^L4612^ +^L4613^ +^L4614^ +^L4615^ +^L4616^ +^L4617^ +^L4618^ +^L4619^ +^L4620^ +^L4621^ +^L4622^ +^L4623^ +^L4624^ +^L4625^ +^L4626^ +^L4627^ +^L4628^ +^L4629^ +^L4630^ +^L4631^ +^L4632^ +^L4633^ +^L4634^ +^L4635^ +^L4636^ +^L4637^ +^L4638^ +^L4639^ +^L4640^ +^L4641^ +^L4642^ +^L4643^ +^L4644^ +^L4645^ +^L4646^ +^L4647^ +^L4648^ +^L4649^ +^L4650^ +^L4651^ +^L4652^ +^L4653^ +^L4654^ +^L4655^ +^L4656^ +^L4657^ +^L4658^ +^L4659^ +^L4660^ +^L4661^ +^L4662^ +^L4663^ +^L4664^ +^L4665^ +^L4666^ +^L4667^ +^L4668^ +^L4669^ +^L4670^ +^L4671^ +^L4672^ +^L4673^ +^L4674^ +^L4675^ +^L4676^ +^L4677^ +^L4678^ +^L4679^ +^L4680^ +^L4681^ +^L4682^ +^L4683^ +^L4684^ +^L4685^ +^L4686^ +^L4687^ +^L4688^ +^L4689^ +^L4690^ +^L4691^ +^L4692^ +^L4693^ +^L4694^ +^L4695^ +^L4696^ +^L4697^ +^L4698^ +^L4699^ +^L4700^ +^L4701^ +^L4702^ +^L4703^ +^L4704^ +^L4705^ +^L4706^ +^L4707^ +^L4708^ +^L4709^ +^L4710^ +^L4711^ +^L4712^ +^L4713^ +^L4714^ +^L4715^ +^L4716^ +^L4717^ +^L4718^ +^L4719^ +^L4720^ +^L4721^ +^L4722^ +^L4723^ +^L4724^ +^L4725^ +^L4726^ +^L4727^ +^L4728^ +^L4729^ +^L4730^ +^L4731^ +^L4732^ +^L4733^ +^L4734^ +^L4735^ +^L4736^ +^L4737^ +^L4738^ +^L4739^ +^L4740^ +^L4741^ +^L4742^ +^L4743^ +^L4744^ +^L4745^ +^L4746^ +^L4747^ +^L4748^ +^L4749^ +^L4750^ +^L4751^ +^L4752^ +^L4753^ +^L4754^ +^L4755^ +^L4756^ +^L4757^ +^L4758^ +^L4759^ +^L4760^ +^L4761^ +^L4762^ +^L4763^ +^L4764^ +^L4765^ +^L4766^ +^L4767^ +^L4768^ +^L4769^ +^L4770^ +^L4771^ +^L4772^ +^L4773^ +^L4774^ +^L4775^ +^L4776^ +^L4777^ +^L4778^ +^L4779^ +^L4780^ +^L4781^ +^L4782^ +^L4783^ +^L4784^ +^L4785^ +^L4786^ +^L4787^ +^L4788^ +^L4789^ +^L4790^ +^L4791^ +^L4792^ +^L4793^ +^L4794^ +^L4795^ +^L4796^ +^L4797^ +^L4798^ +^L4799^ +^L4800^ +^L4801^ +^L4802^ +^L4803^ +^L4804^ +^L4805^ +^L4806^ +^L4807^ +^L4808^ +^L4809^ +^L4810^ +^L4811^ +^L4812^ +^L4813^ +^L4814^ +^L4815^ +^L4816^ +^L4817^ +^L4818^ +^L4819^ +^L4820^ +^L4821^ +^L4822^ +^L4823^ +^L4824^ +^L4825^ +^L4826^ +^L4827^ +^L4828^ +^L4829^ +^L4830^ +^L4831^ +^L4832^ +^L4833^ +^L4834^ +^L4835^ +^L4836^ +^L4837^ +^L4838^ +^L4839^ +^L4840^ +^L4841^ +^L4842^ +^L4843^ +^L4844^ +^L4845^ +^L4846^ +^L4847^ +^L4848^ +^L4849^ +^L4850^ +^L4851^ +^L4852^ +^L4853^ +^L4854^ +^L4855^ +^L4856^ +^L4857^ +^L4858^ +^L4859^ +^L4860^ +^L4861^ +^L4862^ +^L4863^ +^L4864^ +^L4865^ +^L4866^ +^L4867^ +^L4868^ +^L4869^ +^L4870^ +^L4871^ +^L4872^ +^L4873^ +^L4874^ +^L4875^ +^L4876^ +^L4877^ +^L4878^ +^L4879^ +^L4880^ +^L4881^ +^L4882^ +^L4883^ +^L4884^ +^L4885^ +^L4886^ +^L4887^ +^L4888^ +^L4889^ +^L4890^ +^L4891^ +^L4892^ +^L4893^ +^L4894^ +^L4895^ +^L4896^ +^L4897^ +^L4898^ +^L4899^ +^L4900^ +^L4901^ +^L4902^ +^L4903^ +^L4904^ +^L4905^ +^L4906^ +^L4907^ +^L4908^ +^L4909^ +^L4910^ +^L4911^ +^L4912^ +^L4913^ +^L4914^ +^L4915^ +^L4916^ +^L4917^ +^L4918^ +^L4919^ +^L4920^ +^L4921^ +^L4922^ +^L4923^ +^L4924^ +^L4925^ +^L4926^ +^L4927^ +^L4928^ +^L4929^ +^L4930^ +^L4931^ +^L4932^ +^L4933^ +^L4934^ +^L4935^ +^L4936^ +^L4937^ +^L4938^ +^L4939^ +^L4940^ +^L4941^ +^L4942^ +^L4943^ +^L4944^ +^L4945^ +^L4946^ +^L4947^ +^L4948^ +^L4949^ +^L4950^ +^L4951^ +^L4952^ +^L4953^ +^L4954^ +^L4955^ +^L4956^ +^L4957^ +^L4958^ +^L4959^ +^L4960^ +^L4961^ +^L4962^ +^L4963^ +^L4964^ +^L4965^ +^L4966^ +^L4967^ +^L4968^ +^L4969^ +^L4970^ +^L4971^ +^L4972^ +^L4973^ +^L4974^ +^L4975^ +^L4976^ +^L4977^ +^L4978^ +^L4979^ +^L4980^ +^L4981^ +^L4982^ +^L4983^ +^L4984^ +^L4985^ +^L4986^ +^L4987^ +^L4988^ +^L4989^ +^L4990^ +^L4991^ +^L4992^ +^L4993^ +^L4994^ +^L4995^ +^L4996^ +^L4997^ +^L4998^ +^L4999^ +^L5000^ +^L5001^ +^L5002^ +^L5003^ +^L5004^ +^L5005^ +^L5006^ +^L5007^ +^L5008^ +^L5009^ +^L5010^ +^L5011^ +^L5012^ +^L5013^ +^L5014^ +^L5015^ +^L5016^ +^L5017^ +^L5018^ +^L5019^ +^L5020^ +^L5021^ +^L5022^ +^L5023^ +^L5024^ +^L5025^ +^L5026^ +^L5027^ +^L5028^ +^L5029^ +^L5030^ +^L5031^ +^L5032^ +^L5033^ +^L5034^ +^L5035^ +^L5036^ +^L5037^ +^L5038^ +^L5039^ +^L5040^ +^L5041^ +^L5042^ +^L5043^ +^L5044^ +^L5045^ +^L5046^ +^L5047^ +^L5048^ +^L5049^ +^L5050^ +^L5051^ +^L5052^ +^L5053^ +^L5054^ +^L5055^ +^L5056^ +^L5057^ +^L5058^ +^L5059^ +^L5060^ +^L5061^ +^L5062^ +^L5063^ +^L5064^ +^L5065^ +^L5066^ +^L5067^ +^L5068^ +^L5069^ +^L5070^ +^L5071^ +^L5072^ +^L5073^ +^L5074^ +^L5075^ +^L5076^ +^L5077^ +^L5078^ +^L5079^ +^L5080^ +^L5081^ +^L5082^ +^L5083^ +^L5084^ +^L5085^ +^L5086^ +^L5087^ +^L5088^ +^L5089^ +^L5090^ +^L5091^ +^L5092^ +^L5093^ +^L5094^ +^L5095^ +^L5096^ +^L5097^ +^L5098^ +^L5099^ +^L5100^ +^L5101^ +^L5102^ +^L5103^ +^L5104^ +^L5105^ +^L5106^ +^L5107^ +^L5108^ +^L5109^ +^L5110^ +^L5111^ +^L5112^ +^L5113^ +^L5114^ +^L5115^ +^L5116^ +^L5117^ +^L5118^ +^L5119^ +^L5120^ +^L5121^ +^L5122^ +^L5123^ +^L5124^ +^L5125^ +^L5126^ +^L5127^ +^L5128^ +^L5129^ +^L5130^ +^L5131^ +^L5132^ +^L5133^ +^L5134^ +^L5135^ +^L5136^ +^L5137^ +^L5138^ +^L5139^ +^L5140^ +^L5141^ +^L5142^ +^L5143^ +^L5144^ +^L5145^ +^L5146^ +^L5147^ +^L5148^ +^L5149^ +^L5150^ +^L5151^ +^L5152^ +^L5153^ +^L5154^ +^L5155^ +^L5156^ +^L5157^ +^L5158^ +^L5159^ +^L5160^ +^L5161^ +^L5162^ +^L5163^ +^L5164^ +^L5165^ +^L5166^ +^L5167^ +^L5168^ +^L5169^ +^L5170^ +^L5171^ +^L5172^ +^L5173^ +^L5174^ +^L5175^ +^L5176^ +^L5177^ +^L5178^ +^L5179^ +^L5180^ +^L5181^ +^L5182^ +^L5183^ +^L5184^ +^L5185^ +^L5186^ +^L5187^ +^L5188^ +^L5189^ +^L5190^ +^L5191^ +^L5192^ +^L5193^ +^L5194^ +^L5195^ +^L5196^ +^L5197^ +^L5198^ +^L5199^ +^L5200^ +^L5201^ +^L5202^ +^L5203^ +^L5204^ +^L5205^ +^L5206^ +^L5207^ +^L5208^ +^L5209^ +^L5210^ +^L5211^ +^L5212^ +^L5213^ +^L5214^ +^L5215^ +^L5216^ +^L5217^ +^L5218^ +^L5219^ +^L5220^ +^L5221^ +^L5222^ +^L5223^ +^L5224^ +^L5225^ +^L5226^ +^L5227^ +^L5228^ +^L5229^ +^L5230^ +^L5231^ +^L5232^ +^L5233^ +^L5234^ +^L5235^ +^L5236^ +^L5237^ +^L5238^ +^L5239^ +^L5240^ +^L5241^ +^L5242^ +^L5243^ +^L5244^ +^L5245^ +^L5246^ +^L5247^ +^L5248^ +^L5249^ +^L5250^ +^L5251^ +^L5252^ +^L5253^ +^L5254^ +^L5255^ +^L5256^ +^L5257^ +^L5258^ +^L5259^ +^L5260^ +^L5261^ +^L5262^ +^L5263^ +^L5264^ +^L5265^ +^L5266^ +^L5267^ +^L5268^ +^L5269^ +^L5270^ +^L5271^ +^L5272^ +^L5273^ +^L5274^ +^L5275^ +^L5276^ +^L5277^ +^L5278^ +^L5279^ +^L5280^ +^L5281^ +^L5282^ +^L5283^ +^L5284^ +^L5285^ +^L5286^ +^L5287^ +^L5288^ +^L5289^ +^L5290^ +^L5291^ +^L5292^ +^L5293^ +^L5294^ +^L5295^ +^L5296^ +^L5297^ +^L5298^ +^L5299^ +^L5300^ +^L5301^ +^L5302^ +^L5303^ +^L5304^ +^L5305^ +^L5306^ +^L5307^ +^L5308^ +^L5309^ +^L5310^ +^L5311^ +^L5312^ +^L5313^ +^L5314^ +^L5315^ +^L5316^ +^L5317^ +^L5318^ +^L5319^ +^L5320^ +^L5321^ +^L5322^ +^L5323^ +^L5324^ +^L5325^ +^L5326^ +^L5327^ +^L5328^ +^L5329^ +^L5330^ +^L5331^ +^L5332^ +^L5333^ +^L5334^ +^L5335^ +^L5336^ +^L5337^ +^L5338^ +^L5339^ +^L5340^ +^L5341^ +^L5342^ +^L5343^ +^L5344^ +^L5345^ +^L5346^ +^L5347^ +^L5348^ +^L5349^ +^L5350^ +^L5351^ +^L5352^ +^L5353^ +^L5354^ +^L5355^ +^L5356^ +^L5357^ +^L5358^ +^L5359^ +^L5360^ +^L5361^ +^L5362^ +^L5363^ +^L5364^ +^L5365^ +^L5366^ +^L5367^ +^L5368^ +^L5369^ +^L5370^ +^L5371^ +^L5372^ +^L5373^ +^L5374^ +^L5375^ +^L5376^ +^L5377^ +^L5378^ +^L5379^ +^L5380^ +^L5381^ +^L5382^ +^L5383^ +^L5384^ +^L5385^ +^L5386^ +^L5387^ +^L5388^ +^L5389^ +^L5390^ +^L5391^ +^L5392^ +^L5393^ +^L5394^ +^L5395^ +^L5396^ +^L5397^ +^L5398^ +^L5399^ +^L5400^ +^L5401^ +^L5402^ +^L5403^ +^L5404^ +^L5405^ +^L5406^ +^L5407^ +^L5408^ +^L5409^ +^L5410^ +^L5411^ +^L5412^ +^L5413^ +^L5414^ +^L5415^ +^L5416^ +^L5417^ +^L5418^ +^L5419^ +^L5420^ +^L5421^ +^L5422^ +^L5423^ +^L5424^ +^L5425^ +^L5426^ +^L5427^ +^L5428^ +^L5429^ +^L5430^ +^L5431^ +^L5432^ +^L5433^ +^L5434^ +^L5435^ +^L5436^ +^L5437^ +^L5438^ +^L5439^ +^L5440^ +^L5441^ +^L5442^ +^L5443^ +^L5444^ +^L5445^ +^L5446^ +^L5447^ +^L5448^ +^L5449^ +^L5450^ +^L5451^ +^L5452^ +^L5453^ +^L5454^ +^L5455^ +^L5456^ +^L5457^ +^L5458^ +^L5459^ +^L5460^ +^L5461^ +^L5462^ +^L5463^ +^L5464^ +^L5465^ +^L5466^ +^L5467^ +^L5468^ +^L5469^ +^L5470^ +^L5471^ +^L5472^ +^L5473^ +^L5474^ +^L5475^ +^L5476^ +^L5477^ +^L5478^ +^L5479^ +^L5480^ +^L5481^ +^L5482^ +^L5483^ +^L5484^ +^L5485^ +^L5486^ +^L5487^ +^L5488^ +^L5489^ +^L5490^ +^L5491^ +^L5492^ +^L5493^ +^L5494^ +^L5495^ +^L5496^ +^L5497^ +^L5498^ +^L5499^ +^L5500^ +^L5501^ +^L5502^ +^L5503^ +^L5504^ +^L5505^ +^L5506^ +^L5507^ +^L5508^ +^L5509^ +^L5510^ +^L5511^ +^L5512^ +^L5513^ +^L5514^ +^L5515^ +^L5516^ +^L5517^ +^L5518^ +^L5519^ +^L5520^ +^L5521^ +^L5522^ +^L5523^ +^L5524^ +^L5525^ +^L5526^ +^L5527^ +^L5528^ +^L5529^ +^L5530^ +^L5531^ +^L5532^ +^L5533^ +^L5534^ +^L5535^ +^L5536^ +^L5537^ +^L5538^ +^L5539^ +^L5540^ +^L5541^ +^L5542^ +^L5543^ +^L5544^ +^L5545^ +^L5546^ +^L5547^ +^L5548^ +^L5549^ +^L5550^ +^L5551^ +^L5552^ +^L5553^ +^L5554^ +^L5555^ +^L5556^ +^L5557^ +^L5558^ +^L5559^ +^L5560^ +^L5561^ +^L5562^ +^L5563^ +^L5564^ +^L5565^ +^L5566^ +^L5567^ +^L5568^ +^L5569^ +^L5570^ +^L5571^ +^L5572^ +^L5573^ +^L5574^ +^L5575^ +^L5576^ +^L5577^ +^L5578^ +^L5579^ +^L5580^ +^L5581^ +^L5582^ +^L5583^ +^L5584^ +^L5585^ +^L5586^ +^L5587^ +^L5588^ +^L5589^ +^L5590^ +^L5591^ +^L5592^ +^L5593^ +^L5594^ +^L5595^ +^L5596^ +^L5597^ +^L5598^ +^L5599^ +^L5600^ +^L5601^ +^L5602^ +^L5603^ +^L5604^ +^L5605^ +^L5606^ +^L5607^ +^L5608^ +^L5609^ +^L5610^ +^L5611^ +^L5612^ +^L5613^ +^L5614^ +^L5615^ +^L5616^ +^L5617^ +^L5618^ +^L5619^ +^L5620^ +^L5621^ +^L5622^ +^L5623^ +^L5624^ +^L5625^ +^L5626^ +^L5627^ +^L5628^ +^L5629^ +^L5630^ +^L5631^ +^L5632^ +^L5633^ +^L5634^ +^L5635^ +^L5636^ +^L5637^ +^L5638^ +^L5639^ +^L5640^ +^L5641^ +^L5642^ +^L5643^ +^L5644^ +^L5645^ +^L5646^ +^L5647^ +^L5648^ +^L5649^ +^L5650^ +^L5651^ +^L5652^ +^L5653^ +^L5654^ +^L5655^ +^L5656^ +^L5657^ +^L5658^ +^L5659^ +^L5660^ +^L5661^ +^L5662^ +^L5663^ +^L5664^ +^L5665^ +^L5666^ +^L5667^ +^L5668^ +^L5669^ +^L5670^ +^L5671^ +^L5672^ +^L5673^ +^L5674^ +^L5675^ +^L5676^ +^L5677^ +^L5678^ +^L5679^ +^L5680^ +^L5681^ +^L5682^ +^L5683^ +^L5684^ +^L5685^ +^L5686^ +^L5687^ +^L5688^ +^L5689^ +^L5690^ +^L5691^ +^L5692^ +^L5693^ +^L5694^ +^L5695^ +^L5696^ +^L5697^ +^L5698^ +^L5699^ +^L5700^ +^L5701^ +^L5702^ +^L5703^ +^L5704^ +^L5705^ +^L5706^ +^L5707^ +^L5708^ +^L5709^ +^L5710^ +^L5711^ +^L5712^ +^L5713^ +^L5714^ +^L5715^ +^L5716^ +^L5717^ +^L5718^ +^L5719^ +^L5720^ +^L5721^ +^L5722^ +^L5723^ +^L5724^ +^L5725^ +^L5726^ +^L5727^ +^L5728^ +^L5729^ +^L5730^ +^L5731^ +^L5732^ +^L5733^ +^L5734^ +^L5735^ +^L5736^ +^L5737^ +^L5738^ +^L5739^ +^L5740^ +^L5741^ +^L5742^ +^L5743^ +^L5744^ +^L5745^ +^L5746^ +^L5747^ +^L5748^ +^L5749^ +^L5750^ +^L5751^ +^L5752^ +^L5753^ +^L5754^ +^L5755^ +^L5756^ +^L5757^ +^L5758^ +^L5759^ +^L5760^ +^L5761^ +^L5762^ +^L5763^ +^L5764^ +^L5765^ +^L5766^ +^L5767^ +^L5768^ +^L5769^ +^L5770^ +^L5771^ +^L5772^ +^L5773^ +^L5774^ +^L5775^ +^L5776^ +^L5777^ +^L5778^ +^L5779^ +^L5780^ +^L5781^ +^L5782^ +^L5783^ +^L5784^ +^L5785^ +^L5786^ +^L5787^ +^L5788^ +^L5789^ +^L5790^ +^L5791^ +^L5792^ +^L5793^ +^L5794^ +^L5795^ +^L5796^ +^L5797^ +^L5798^ +^L5799^ +^L5800^ +^L5801^ +^L5802^ +^L5803^ +^L5804^ +^L5805^ +^L5806^ +^L5807^ +^L5808^ +^L5809^ +^L5810^ +^L5811^ +^L5812^ +^L5813^ +^L5814^ +^L5815^ +^L5816^ +^L5817^ +^L5818^ +^L5819^ +^L5820^ +^L5821^ +^L5822^ +^L5823^ +^L5824^ +^L5825^ +^L5826^ +^L5827^ +^L5828^ +^L5829^ +^L5830^ +^L5831^ +^L5832^ +^L5833^ +^L5834^ +^L5835^ +^L5836^ +^L5837^ +^L5838^ +^L5839^ +^L5840^ +^L5841^ +^L5842^ +^L5843^ +^L5844^ +^L5845^ +^L5846^ +^L5847^ +^L5848^ +^L5849^ +^L5850^ +^L5851^ +^L5852^ +^L5853^ +^L5854^ +^L5855^ +^L5856^ +^L5857^ +^L5858^ +^L5859^ +^L5860^ +^L5861^ +^L5862^ +^L5863^ +^L5864^ +^L5865^ +^L5866^ +^L5867^ +^L5868^ +^L5869^ +^L5870^ +^L5871^ +^L5872^ +^L5873^ +^L5874^ +^L5875^ +^L5876^ +^L5877^ +^L5878^ +^L5879^ +^L5880^ +^L5881^ +^L5882^ +^L5883^ +^L5884^ +^L5885^ +^L5886^ +^L5887^ +^L5888^ +^L5889^ +^L5890^ +^L5891^ +^L5892^ +^L5893^ +^L5894^ +^L5895^ +^L5896^ +^L5897^ +^L5898^ +^L5899^ +^L5900^ +^L5901^ +^L5902^ +^L5903^ +^L5904^ +^L5905^ +^L5906^ +^L5907^ +^L5908^ +^L5909^ +^L5910^ +^L5911^ +^L5912^ +^L5913^ +^L5914^ +^L5915^ +^L5916^ +^L5917^ +^L5918^ +^L5919^ +^L5920^ +^L5921^ +^L5922^ +^L5923^ +^L5924^ +^L5925^ +^L5926^ +^L5927^@Test[1D FF][00 FF] \ No newline at end of file