commit 880f9f299dd96a0c1f00e66ba2464bd9ace3f999 Author: flashwave Date: Sun Oct 8 02:10:21 2023 +0200 initial commit diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1ff0c42 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,63 @@ +############################################################################### +# Set default behavior to automatically normalize line endings. +############################################################################### +* text=auto + +############################################################################### +# Set default behavior for command prompt diff. +# +# This is need for earlier builds of msysgit that does not have it on by +# default for csharp files. +# Note: This is only used by command line +############################################################################### +#*.cs diff=csharp + +############################################################################### +# Set the merge driver for project and solution files +# +# Merging from the command prompt will add diff markers to the files if there +# are conflicts (Merging from VS is not affected by the settings below, in VS +# the diff markers are never inserted). Diff markers may cause the following +# file extensions to fail to load in VS. An alternative would be to treat +# these files as binary and thus will always conflict and require user +# intervention with every merge. To do so, just uncomment the entries below +############################################################################### +#*.sln merge=binary +#*.csproj merge=binary +#*.vbproj merge=binary +#*.vcxproj merge=binary +#*.vcproj merge=binary +#*.dbproj merge=binary +#*.fsproj merge=binary +#*.lsproj merge=binary +#*.wixproj merge=binary +#*.modelproj merge=binary +#*.sqlproj merge=binary +#*.wwaproj merge=binary + +############################################################################### +# behavior for image files +# +# image files are treated as binary by default. +############################################################################### +#*.jpg binary +#*.png binary +#*.gif binary + +############################################################################### +# diff behavior for common document formats +# +# Convert binary document formats to text before diffing them. This feature +# is only available from the command line. Turn it on by uncommenting the +# entries below. +############################################################################### +#*.doc diff=astextplain +#*.DOC diff=astextplain +#*.docx diff=astextplain +#*.DOCX diff=astextplain +#*.dot diff=astextplain +#*.DOT diff=astextplain +#*.pdf diff=astextplain +#*.PDF diff=astextplain +#*.rtf diff=astextplain +#*.RTF diff=astextplain diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0f3db54 --- /dev/null +++ b/.gitignore @@ -0,0 +1,215 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +MidiPlayer/build.txt +MwSignTool/public.xml + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +build/ +bld/ +[Bb]in/ +[Oo]bj/ + +# Visual Studio 2015 cache/options directory +.vs/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# DNX +project.lock.json +artifacts/ + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +## TODO: Comment the next line if you want to checkin your +## web deploy settings but do note that will include unencrypted +## passwords +#*.pubxml + +*.publishproj + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config + +# Windows Azure Build Output +csx/ +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# LightSwitch generated files +GeneratedArtifacts/ +_Pvt_Extensions/ +ModelManifest.xml diff --git a/README.md b/README.md new file mode 100644 index 0000000..6ed3394 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# SoFii + +A prelaunch environment for Soldier of Fortune 2, primary for use with the Flashii server of it. + +The tool lets you decide what video mode to use before launching and also provides you with an easy way to set a coloured player name. + +This tool doesn't download the game for you, a copy of it with SoF2MP.exe is required! + +The only network request this program makes is a TXT DNS lookup to `_sofii.flashii.net` to retrieve the current server address, whatever the latest recommended version of the tool is and if needed an announcement message. +This network request will not happen if "Use custom server address" is checked. + +Settings are stored in the Windows Registry at `HKCU\\Software\\flash.moe\\SoFii`. +If for whatever reason you want to prevent the program from ever doing the DNS lookup create a DWORD value called `UseDefaultServer` and set it to `0`. diff --git a/SoFii.sln b/SoFii.sln new file mode 100644 index 0000000..94be026 --- /dev/null +++ b/SoFii.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.34031.81 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SoFii", "SoFii\SoFii.csproj", "{6026586C-8730-428A-8E61-E75568FF7185}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6026586C-8730-428A-8E61-E75568FF7185}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6026586C-8730-428A-8E61-E75568FF7185}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6026586C-8730-428A-8E61-E75568FF7185}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6026586C-8730-428A-8E61-E75568FF7185}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A304B1B1-038C-4716-9CCD-8255021744FA} + EndGlobalSection +EndGlobal diff --git a/SoFii/ColourCharInfo.cs b/SoFii/ColourCharInfo.cs new file mode 100644 index 0000000..d3a3794 --- /dev/null +++ b/SoFii/ColourCharInfo.cs @@ -0,0 +1,31 @@ +using System; +using System.Drawing; + +namespace SoFii { + public readonly struct ColourCharInfo { + public readonly char Char; + public readonly Color Colour; + + public ColourCharInfo(char chr, Color col) { + Char = chr; + Colour = col; + } + + public static ColourCharInfo FromStrings(string chr, string col) { + if(chr is null) + throw new ArgumentNullException(nameof(chr)); + if(col is null) + throw new ArgumentNullException(nameof(col)); + if(chr.Length < 1) + throw new ArgumentException("chr must contain at least 1 character", nameof(chr)); + if(!int.TryParse(col, out int colourRaw)) + throw new ArgumentException("col is not a valid integer", nameof(col)); + + return new ColourCharInfo(chr[0], Color.FromArgb(unchecked(colourRaw | (int)0xFF000000))); + } + + public override string ToString() { + return $"ColourCharInfo [Char={Char}, Colour={Colour}]"; + } + } +} diff --git a/SoFii/Constants.cs b/SoFii/Constants.cs new file mode 100644 index 0000000..f77e5a8 --- /dev/null +++ b/SoFii/Constants.cs @@ -0,0 +1,6 @@ +namespace SoFii { + public static class Constants { + public const string SOFII_DOMAIN = "_sofii.flashii.net."; + public const string INFO_URL = "https://fii.moe/sofii"; + } +} diff --git a/SoFii/DNSClient.cs b/SoFii/DNSClient.cs new file mode 100644 index 0000000..571de6e --- /dev/null +++ b/SoFii/DNSClient.cs @@ -0,0 +1,404 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Net; +using System.Net.Sockets; +using System.Text; +using System.Threading; + +namespace SoFii { + public class DNSClient : IDisposable { + public static readonly string[] Servers; + + static DNSClient() { + string[] servers = Settings.CustomDNSServers; + + if(servers.Length < 1 || string.IsNullOrEmpty(servers[0])) + servers = EmbeddedResources.GetDNSServers(); + + RNG.Shuffle(servers); + Servers = servers; + } + + private static int CurrentServerIndex = -1; + + public static string GetNextCommonServer() { + Interlocked.Increment(ref CurrentServerIndex); + return Servers[CurrentServerIndex % Servers.Length]; + } + + private readonly Socket Sock; + + public DNSClient() : this(GetNextCommonServer()) { } + + public DNSClient(string ipAddr) : this( + IPAddress.Parse(ipAddr ?? throw new ArgumentNullException(nameof(ipAddr))) + ) { } + + public DNSClient(IPAddress ipAddr) { + if(ipAddr == null) + throw new ArgumentNullException(nameof(ipAddr)); + + Sock = new Socket(ipAddr.AddressFamily, SocketType.Dgram, ProtocolType.Udp); + Sock.Connect(ipAddr, 53); + } + + public Response QueryRecords(RecordType qType, string qName) { + if(qName == null) + throw new ArgumentNullException(nameof(qName)); + if(string.IsNullOrEmpty(qName)) + throw new ArgumentException("domain may not be empty", nameof(qName)); + + byte[] transId = new byte[2]; + RNG.NextBytes(transId); + + using(MemoryStream ms = new MemoryStream()) { + // Transaction ID + ms.Write(transId, 0, 2); + + // QR, Opcode, AC, TC, RD + ms.WriteByte(0x01); // RD = Recursion Desired, we want this + // RA, Z, RCODE + ms.WriteByte(0); + + // QDCOUNT (1 query) + ms.WriteByte(0); + ms.WriteByte(0x01); + + // ANCOUNT + ms.WriteByte(0); + ms.WriteByte(0); + + // NSCOUNT + ms.WriteByte(0); + ms.WriteByte(0); + + // ARCOUNT + ms.WriteByte(0); + ms.WriteByte(0); + + // QNAME + string[] qNameParts = qName.Split('.'); + for(int i = 0; i < qNameParts.Length; ++i) { + string qNamePart = qNameParts[i]; + int qNamePartLength = Encoding.ASCII.GetByteCount(qNamePart); + if(i != (qNameParts.Length - 1) && qNamePartLength < 1) + throw new ArgumentException("Malformed domain (label too short)", nameof(qName)); + if(qNamePartLength > 0x3F) + throw new ArgumentException("Malformed domain (label too long)", nameof(qName)); + + ms.WriteByte((byte)qNamePartLength); + if(qNamePartLength > 0) + ms.Write(Encoding.ASCII.GetBytes(qNamePart), 0, qNamePartLength); + } + + // QTYPE + int qTypeNum = (int)qType; + ms.WriteByte((byte)(qTypeNum >> 8)); + ms.WriteByte((byte)qTypeNum); + + // QCLASS - Interneet Protocol + ms.WriteByte(0); + ms.WriteByte(0x01); + + // Sende + int sent = Sock.Send(ms.ToArray()); + if(sent != ms.Length) + throw new DNSClientException("Was unable send whole packet"); + } + + int read; + byte[] buffer = new byte[1024]; + + int error; + List queries = new List(); + List answers = new List(); + + using(MemoryStream ms = new MemoryStream()) { + read = Sock.Receive(buffer); + if(read < 12) + throw new DNSClientException("Did not receive a full DNS response header"); + ms.Write(buffer, 0, read); + + while(read >= buffer.Length) { + read = Sock.Receive(buffer); + ms.Write(buffer, 0, read); + } + + ms.Seek(0, SeekOrigin.Begin); + + if(ms.ReadByte() != transId[0] || ms.ReadByte() != transId[1]) + throw new DNSClientException("Response received did not contain the same transaction ID"); + + int flags = (ms.ReadByte() << 8) | ms.ReadByte(); + if((flags & 0x8000) == 0) + throw new DNSClientException("Response did not have the response bit set"); + if((flags & 0x0200) > 0) + throw new DNSClientException("Truncated responses are not supported"); + if((flags & 0x0080) == 0) + throw new DNSClientException("This server does not allow recursion"); + + error = flags & 0x000F; + if(error == 1) + throw new DNSClientException("Request was incorrectly formatted"); + if(error == 2) + throw new DNSClientException("Name server was unable to process the query"); + if(error == 4) + throw new DNSClientException("Name server does not support this type of query"); + if(error == 5) + throw new DNSClientException("Name server refused to respond to this query"); + if(error != 0 && error != 3) + throw new DNSClientException($"An error occurred while processing this query: {error}"); + + int qdCount = (ms.ReadByte() << 8) | ms.ReadByte(); + int anCount = (ms.ReadByte() << 8) | ms.ReadByte(); + int nsCount = (ms.ReadByte() << 8) | ms.ReadByte(); + int arCount = (ms.ReadByte() << 8) | ms.ReadByte(); + + for(int i = 0; i < qdCount; ++i) { + string qdName = string.Join(".", ReadLabels(ms)); + RecordType qdType = (RecordType)((ms.ReadByte() << 8) | ms.ReadByte()); + int qdClass = (ms.ReadByte() << 8) | ms.ReadByte(); + + queries.Add(new Query(qdName, qdType, qdClass)); + } + + for(int i = 0; i < anCount; ++i) { + string anName = string.Join(".", ReadLabels(ms)); + RecordType anType = (RecordType)((ms.ReadByte() << 8) | ms.ReadByte()); + int anClass = (ms.ReadByte() << 8) | ms.ReadByte(); + int anTTL = (ms.ReadByte() << 24) | (ms.ReadByte() << 16) | (ms.ReadByte() << 8) | ms.ReadByte(); + int anDataLength = (ms.ReadByte() << 8) | ms.ReadByte(); + byte[] anData; + + if(anDataLength < 1) { +#if NETFX4_6_OR_GREATER || NETCOREAPP1_0_OR_GREATER + anData = Array.Empty(); +#else + anData = new byte[0]; +#endif + } else { + anData = new byte[anDataLength]; + read = ms.Read(anData, 0, anDataLength); + if(read != anDataLength) + throw new DNSClientException("Could not read data field of record"); + } + + answers.Add(new Answer(anName, anType, anClass, anTTL, anDataLength, anData)); + } + } + + return new Response( + error, + queries.ToArray(), + answers.ToArray() + ); + } + + private static string[] ReadLabels(Stream stream) { + int length = stream.ReadByte(); + bool isRef = (length & 0xC0) == 0xC0; + long jumpTo = 0; + + length &= 0x3F; + + if(isRef) { + length <<= 8; + length |= stream.ReadByte(); + jumpTo = stream.Position; + stream.Seek(length, SeekOrigin.Begin); + + length = stream.ReadByte(); + } + + byte[] buffer = new byte[0x3F]; + List labels = new List(); + int read; + + for(; ; ) + { + if(length < 1) { + labels.Add(string.Empty); + break; + } + + if(length > 0x3F) + throw new DNSClientException("Received label field that claims to be longer than 63 bytes"); + + read = stream.Read(buffer, 0, length); + if(read != length) + throw new DNSClientException("Wasn't able to read the entire label (end of stream?)"); + + labels.Add(Encoding.ASCII.GetString(buffer, 0, read)); + length = stream.ReadByte(); + } + + if(isRef) + stream.Seek(jumpTo, SeekOrigin.Begin); + + return labels.ToArray(); + } + + public struct Response { + public int Status; + public Query[] Queries; + public Answer[] Answers; + + public bool IsSuccess => Status == 0; + + public Response( + int status, + Query[] queries, + Answer[] answers + ) { + Status = status; + Queries = queries; + Answers = answers; + } + } + + public struct Query { + public string Name; + public RecordType Type; + public int Class; + + public Query( + string name, + RecordType type, + int @class + ) { + Name = name; + Type = type; + Class = @class; + } + + public override string ToString() { + return $"{Name} {Type} {Class}"; + } + } + + public struct Answer { + public string Name; + public RecordType Type; + public int Class; + public int TTL; + public int DataLength; + public byte[] Data; + + public Answer( + string name, + RecordType type, + int @class, + int ttl, + int dataLength, + byte[] data + ) { + Name = name; + Type = type; + Class = @class; + TTL = ttl; + DataLength = dataLength; + Data = data; + } + + // TODO: support other record types someday maybe + + public AnswerTXT GetTXTData() { + return new AnswerTXT(Data); + } + + public override string ToString() { + return $"{Name} {Type} {Class} {TTL} {DataLength} {Encoding.ASCII.GetString(Data)}"; + } + + public struct AnswerTXT { + public int Length; + public string Text; + + public AnswerTXT(byte[] data) { + Length = data[0]; + Text = Encoding.ASCII.GetString(data, 1, Length); + } + } + } + + public enum RecordType : ushort { + A = 0x0001, + NS = 0x0002, + CNAME = 0x0005, + SOA = 0x0006, + PTR = 0x000C, + HINFO = 0x000D, + MX = 0x000F, + TXT = 0x0010, + RP = 0x0011, + AFSDB = 0x0012, + SIG = 0x0018, + KEY = 0x0019, + AAAA = 0x001C, + LOC = 0x001D, + SRV = 0x0021, + NAPTR = 0x0023, + KX = 0x0024, + CERT = 0x0025, + DNAME = 0x0027, + OPT = 0x0029, + APL = 0x002A, + DS = 0x002B, + SSHFP = 0x002C, + IPSECKEY = 0x002D, + RRSIG = 0x002E, + NSEC = 0x002F, + DNSKEY = 0x0030, + DHCID = 0x0031, + NSEC3 = 0x0032, + NSEC3PARAM = 0x0033, + TLSA = 0x0034, + SMIMEA = 0x0035, + HIP = 0x0037, + CDS = 0x003B, + CDNSKEY = 0x003C, + OPENPGPKEY = 0x003D, + CSYNC = 0x003E, + ZONEMD = 0x003F, + SVCB = 0x0040, + HTTPS = 0x0041, + EUI48 = 0x006C, + EUI64 = 0x006D, + TKEY = 0x00F9, + TSIG = 0x00FA, + IXFR = 0x00FB, + AXFR = 0x00FC, + ANY = 0x00FF, + URI = 0x0100, + CAA = 0x0101, + TA = 0x8000, + DLV = 0x8001, + } + + private bool IsDisposed; + + ~DNSClient() { + DoDispose(); + } + + public void Dispose() { + DoDispose(); + GC.SuppressFinalize(this); + } + + private void DoDispose() { + if(IsDisposed) + return; + IsDisposed = true; + + Sock?.Close(); + } + } + + public class DNSClientException : Exception { + public DNSClientException() : base() { } + public DNSClientException(string message) : base(message) { } + public DNSClientException(string message, Exception innerException) : base(message, innerException) { } + } +} diff --git a/SoFii/DNSServers.txt b/SoFii/DNSServers.txt new file mode 100644 index 0000000..8e4fd91 --- /dev/null +++ b/SoFii/DNSServers.txt @@ -0,0 +1,15 @@ +# OpenDNS +208.67.222.222 +208.67.220.220 +# CloudFlare +1.1.1.1 +1.0.0.1 +# Google Public DNS +8.8.8.8 +8.8.4.4 +# Quad9 +9.9.9.9 +149.112.112.112 +# Control D +76.76.2.0 +76.76.10.0 diff --git a/SoFii/Delegates.cs b/SoFii/Delegates.cs new file mode 100644 index 0000000..2845257 --- /dev/null +++ b/SoFii/Delegates.cs @@ -0,0 +1,3 @@ +namespace SoFii { + public delegate void Action(); +} diff --git a/SoFii/EmbeddedResources.cs b/SoFii/EmbeddedResources.cs new file mode 100644 index 0000000..bb6852c --- /dev/null +++ b/SoFii/EmbeddedResources.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.IO; + +namespace SoFii { + public static class EmbeddedResources { + public static void LoadLines(string name, Action onLine) { + using(Stream stream = Program.CurrentAssembly.GetManifestResourceStream($@"{Program.CurrentAssemblyName.Name}.{name}")) + using(StreamReader sr = new StreamReader(stream, true)) { + string line; + while(!string.IsNullOrEmpty(line = sr.ReadLine())) + onLine(line); + } + } + + public static string[] GetDNSServers() { + List items = new List(); + LoadLines("DNSServers.txt", line => { + if(!line.StartsWith("#")) + items.Add(line.Trim()); + }); + + return items.ToArray(); + } + + public static ColourCharInfo[] GetColourChars() { + List items = new List(); + LoadLines("NameColours.txt", line => { + string[] parts = line.Split(' '); + if(parts.Length > 1) + items.Add(ColourCharInfo.FromStrings(parts[0], parts[1])); + }); + + return items.ToArray(); + } + } +} diff --git a/SoFii/MainWindow.Designer.cs b/SoFii/MainWindow.Designer.cs new file mode 100644 index 0000000..eff5954 --- /dev/null +++ b/SoFii/MainWindow.Designer.cs @@ -0,0 +1,402 @@ + +namespace SoFii +{ + partial class MainWindow + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainWindow)); + this.serverBox = new System.Windows.Forms.GroupBox(); + this.serverAddressLabel = new System.Windows.Forms.Label(); + this.serverAddressInput = new System.Windows.Forms.TextBox(); + this.serverResetButton = new System.Windows.Forms.Button(); + this.launchGameButton = new System.Windows.Forms.Button(); + this.gameBox = new System.Windows.Forms.GroupBox(); + this.gameLocationLabel = new System.Windows.Forms.Label(); + this.gameLocationInput = new System.Windows.Forms.TextBox(); + this.gameBrowseButton = new System.Windows.Forms.Button(); + this.mainTabs = new System.Windows.Forms.TabControl(); + this.locationsTabPage = new System.Windows.Forms.TabPage(); + this.versionLabel = new System.Windows.Forms.Label(); + this.mainOpenFileDiag = new System.Windows.Forms.OpenFileDialog(); + this.serverUseCustom = new System.Windows.Forms.CheckBox(); + this.playerTabPage = new System.Windows.Forms.TabPage(); + this.playerNameBox = new System.Windows.Forms.GroupBox(); + this.playerNameLabel = new System.Windows.Forms.Label(); + this.playerNameInput = new System.Windows.Forms.TextBox(); + this.playerNameColoursBox = new System.Windows.Forms.GroupBox(); + this.playerNameColourButton = new System.Windows.Forms.Button(); + this.playerNamePreview = new System.Windows.Forms.Panel(); + this.gfxBox = new System.Windows.Forms.GroupBox(); + this.gfxFullscreen = new System.Windows.Forms.CheckBox(); + this.gfxResolutionLabel = new System.Windows.Forms.Label(); + this.gfxResolutionSelect = new System.Windows.Forms.ComboBox(); + this.serverBox.SuspendLayout(); + this.gameBox.SuspendLayout(); + this.mainTabs.SuspendLayout(); + this.locationsTabPage.SuspendLayout(); + this.playerTabPage.SuspendLayout(); + this.playerNameBox.SuspendLayout(); + this.playerNameColoursBox.SuspendLayout(); + this.gfxBox.SuspendLayout(); + this.SuspendLayout(); + // + // serverBox + // + this.serverBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.serverBox.Controls.Add(this.serverUseCustom); + this.serverBox.Controls.Add(this.serverAddressLabel); + this.serverBox.Controls.Add(this.serverAddressInput); + this.serverBox.Controls.Add(this.serverResetButton); + this.serverBox.Location = new System.Drawing.Point(6, 65); + this.serverBox.Name = "serverBox"; + this.serverBox.Size = new System.Drawing.Size(540, 71); + this.serverBox.TabIndex = 300; + this.serverBox.TabStop = false; + this.serverBox.Text = "Server"; + // + // serverAddressLabel + // + this.serverAddressLabel.AutoSize = true; + this.serverAddressLabel.Location = new System.Drawing.Point(36, 24); + this.serverAddressLabel.Name = "serverAddressLabel"; + this.serverAddressLabel.Size = new System.Drawing.Size(45, 13); + this.serverAddressLabel.TabIndex = 301; + this.serverAddressLabel.Text = "Address"; + // + // serverAddressInput + // + this.serverAddressInput.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.serverAddressInput.Location = new System.Drawing.Point(87, 21); + this.serverAddressInput.Name = "serverAddressInput"; + this.serverAddressInput.Size = new System.Drawing.Size(360, 20); + this.serverAddressInput.TabIndex = 302; + // + // serverResetButton + // + this.serverResetButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.serverResetButton.Location = new System.Drawing.Point(453, 19); + this.serverResetButton.Name = "serverResetButton"; + this.serverResetButton.Size = new System.Drawing.Size(75, 23); + this.serverResetButton.TabIndex = 303; + this.serverResetButton.Text = "Reset"; + this.serverResetButton.UseVisualStyleBackColor = true; + this.serverResetButton.Click += new System.EventHandler(this.serverResetButton_Click); + // + // launchGameButton + // + this.launchGameButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.launchGameButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.launchGameButton.Location = new System.Drawing.Point(448, 526); + this.launchGameButton.Name = "launchGameButton"; + this.launchGameButton.Size = new System.Drawing.Size(124, 23); + this.launchGameButton.TabIndex = 11; + this.launchGameButton.Text = "Launch SoF2"; + this.launchGameButton.UseVisualStyleBackColor = true; + this.launchGameButton.Click += new System.EventHandler(this.launchGameButton_Click); + // + // gameBox + // + this.gameBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gameBox.Controls.Add(this.gameLocationLabel); + this.gameBox.Controls.Add(this.gameLocationInput); + this.gameBox.Controls.Add(this.gameBrowseButton); + this.gameBox.Location = new System.Drawing.Point(6, 6); + this.gameBox.Name = "gameBox"; + this.gameBox.Size = new System.Drawing.Size(540, 53); + this.gameBox.TabIndex = 200; + this.gameBox.TabStop = false; + this.gameBox.Text = "Game"; + // + // gameLocationLabel + // + this.gameLocationLabel.AutoSize = true; + this.gameLocationLabel.Location = new System.Drawing.Point(33, 23); + this.gameLocationLabel.Name = "gameLocationLabel"; + this.gameLocationLabel.Size = new System.Drawing.Size(48, 13); + this.gameLocationLabel.TabIndex = 201; + this.gameLocationLabel.Text = "Location"; + // + // gameLocationInput + // + this.gameLocationInput.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gameLocationInput.Enabled = false; + this.gameLocationInput.Location = new System.Drawing.Point(87, 20); + this.gameLocationInput.Name = "gameLocationInput"; + this.gameLocationInput.Size = new System.Drawing.Size(360, 20); + this.gameLocationInput.TabIndex = 202; + // + // gameBrowseButton + // + this.gameBrowseButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.gameBrowseButton.Location = new System.Drawing.Point(453, 18); + this.gameBrowseButton.Name = "gameBrowseButton"; + this.gameBrowseButton.Size = new System.Drawing.Size(75, 23); + this.gameBrowseButton.TabIndex = 203; + this.gameBrowseButton.Text = "Browse..."; + this.gameBrowseButton.UseVisualStyleBackColor = true; + this.gameBrowseButton.Click += new System.EventHandler(this.gameBrowseButton_Click); + // + // mainTabs + // + this.mainTabs.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.mainTabs.Controls.Add(this.locationsTabPage); + this.mainTabs.Controls.Add(this.playerTabPage); + this.mainTabs.Location = new System.Drawing.Point(12, 12); + this.mainTabs.Name = "mainTabs"; + this.mainTabs.SelectedIndex = 0; + this.mainTabs.Size = new System.Drawing.Size(560, 508); + this.mainTabs.TabIndex = 12; + this.mainTabs.SelectedIndexChanged += new System.EventHandler(this.mainTabs_SelectedIndexChanged); + // + // locationsTabPage + // + this.locationsTabPage.Controls.Add(this.gameBox); + this.locationsTabPage.Controls.Add(this.serverBox); + this.locationsTabPage.Location = new System.Drawing.Point(4, 22); + this.locationsTabPage.Name = "locationsTabPage"; + this.locationsTabPage.Padding = new System.Windows.Forms.Padding(3); + this.locationsTabPage.Size = new System.Drawing.Size(552, 482); + this.locationsTabPage.TabIndex = 0; + this.locationsTabPage.Text = "Locations"; + this.locationsTabPage.UseVisualStyleBackColor = true; + // + // versionLabel + // + this.versionLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.versionLabel.AutoSize = true; + this.versionLabel.ForeColor = System.Drawing.SystemColors.GrayText; + this.versionLabel.Location = new System.Drawing.Point(13, 533); + this.versionLabel.Name = "versionLabel"; + this.versionLabel.Size = new System.Drawing.Size(117, 13); + this.versionLabel.TabIndex = 13; + this.versionLabel.Text = "SoFii version goes here"; + // + // mainOpenFileDiag + // + this.mainOpenFileDiag.DefaultExt = "exe"; + this.mainOpenFileDiag.Filter = "SoF2 Multiplayer Executable|SoF2MP.exe"; + this.mainOpenFileDiag.RestoreDirectory = true; + // + // serverUseCustom + // + this.serverUseCustom.AutoSize = true; + this.serverUseCustom.Location = new System.Drawing.Point(87, 47); + this.serverUseCustom.Name = "serverUseCustom"; + this.serverUseCustom.Size = new System.Drawing.Size(154, 17); + this.serverUseCustom.TabIndex = 304; + this.serverUseCustom.Text = "Use custom server address"; + this.serverUseCustom.UseVisualStyleBackColor = true; + this.serverUseCustom.CheckedChanged += new System.EventHandler(this.serverUseCustom_CheckedChanged); + // + // playerTabPage + // + this.playerTabPage.Controls.Add(this.gfxBox); + this.playerTabPage.Controls.Add(this.playerNameBox); + this.playerTabPage.Location = new System.Drawing.Point(4, 22); + this.playerTabPage.Name = "playerTabPage"; + this.playerTabPage.Padding = new System.Windows.Forms.Padding(3); + this.playerTabPage.Size = new System.Drawing.Size(552, 482); + this.playerTabPage.TabIndex = 1; + this.playerTabPage.Text = "Settings"; + this.playerTabPage.UseVisualStyleBackColor = true; + // + // playerNameBox + // + this.playerNameBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.playerNameBox.Controls.Add(this.playerNamePreview); + this.playerNameBox.Controls.Add(this.playerNameColoursBox); + this.playerNameBox.Controls.Add(this.playerNameLabel); + this.playerNameBox.Controls.Add(this.playerNameInput); + this.playerNameBox.Location = new System.Drawing.Point(6, 6); + this.playerNameBox.Name = "playerNameBox"; + this.playerNameBox.Size = new System.Drawing.Size(540, 360); + this.playerNameBox.TabIndex = 400; + this.playerNameBox.TabStop = false; + this.playerNameBox.Text = "Player Name"; + // + // playerNameLabel + // + this.playerNameLabel.AutoSize = true; + this.playerNameLabel.Location = new System.Drawing.Point(46, 23); + this.playerNameLabel.Name = "playerNameLabel"; + this.playerNameLabel.Size = new System.Drawing.Size(35, 13); + this.playerNameLabel.TabIndex = 401; + this.playerNameLabel.Text = "Name"; + // + // playerNameInput + // + this.playerNameInput.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.playerNameInput.Location = new System.Drawing.Point(87, 20); + this.playerNameInput.Name = "playerNameInput"; + this.playerNameInput.Size = new System.Drawing.Size(360, 20); + this.playerNameInput.TabIndex = 402; + this.playerNameInput.TextChanged += new System.EventHandler(this.playerNameInput_TextChanged); + // + // playerNameColoursBox + // + this.playerNameColoursBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.playerNameColoursBox.Controls.Add(this.playerNameColourButton); + this.playerNameColoursBox.Location = new System.Drawing.Point(49, 70); + this.playerNameColoursBox.Name = "playerNameColoursBox"; + this.playerNameColoursBox.Size = new System.Drawing.Size(442, 279); + this.playerNameColoursBox.TabIndex = 450; + this.playerNameColoursBox.TabStop = false; + this.playerNameColoursBox.Text = "Colours"; + // + // playerNameColourButton + // + this.playerNameColourButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.playerNameColourButton.Location = new System.Drawing.Point(18, 27); + this.playerNameColourButton.Name = "playerNameColourButton"; + this.playerNameColourButton.Size = new System.Drawing.Size(32, 32); + this.playerNameColourButton.TabIndex = 451; + this.playerNameColourButton.Text = "A"; + this.playerNameColourButton.TextAlign = System.Drawing.ContentAlignment.BottomRight; + this.playerNameColourButton.UseVisualStyleBackColor = true; + // + // playerNamePreview + // + this.playerNamePreview.Location = new System.Drawing.Point(87, 46); + this.playerNamePreview.Name = "playerNamePreview"; + this.playerNamePreview.Size = new System.Drawing.Size(360, 18); + this.playerNamePreview.TabIndex = 410; + // + // gfxBox + // + this.gfxBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gfxBox.Controls.Add(this.gfxResolutionLabel); + this.gfxBox.Controls.Add(this.gfxResolutionSelect); + this.gfxBox.Controls.Add(this.gfxFullscreen); + this.gfxBox.Location = new System.Drawing.Point(6, 372); + this.gfxBox.Name = "gfxBox"; + this.gfxBox.Size = new System.Drawing.Size(540, 72); + this.gfxBox.TabIndex = 500; + this.gfxBox.TabStop = false; + this.gfxBox.Text = "Graphics"; + // + // gfxFullscreen + // + this.gfxFullscreen.AutoSize = true; + this.gfxFullscreen.Location = new System.Drawing.Point(87, 46); + this.gfxFullscreen.Name = "gfxFullscreen"; + this.gfxFullscreen.Size = new System.Drawing.Size(74, 17); + this.gfxFullscreen.TabIndex = 501; + this.gfxFullscreen.Text = "Fullscreen"; + this.gfxFullscreen.UseVisualStyleBackColor = true; + this.gfxFullscreen.CheckedChanged += new System.EventHandler(this.gfxFullscreen_CheckedChanged); + // + // gfxResolutionLabel + // + this.gfxResolutionLabel.AutoSize = true; + this.gfxResolutionLabel.Location = new System.Drawing.Point(24, 22); + this.gfxResolutionLabel.Name = "gfxResolutionLabel"; + this.gfxResolutionLabel.Size = new System.Drawing.Size(57, 13); + this.gfxResolutionLabel.TabIndex = 502; + this.gfxResolutionLabel.Text = "Resolution"; + // + // gfxResolutionSelect + // + this.gfxResolutionSelect.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.gfxResolutionSelect.FormattingEnabled = true; + this.gfxResolutionSelect.Location = new System.Drawing.Point(87, 19); + this.gfxResolutionSelect.Name = "gfxResolutionSelect"; + this.gfxResolutionSelect.Size = new System.Drawing.Size(360, 21); + this.gfxResolutionSelect.TabIndex = 503; + this.gfxResolutionSelect.SelectedIndexChanged += new System.EventHandler(this.gfxResolutionSelect_SelectedIndexChanged); + // + // MainWindow + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(584, 561); + this.Controls.Add(this.versionLabel); + this.Controls.Add(this.mainTabs); + this.Controls.Add(this.launchGameButton); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.Name = "MainWindow"; + this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; + this.Text = "SoFii :: Soldier of Fortune 2 Tool for Flashii"; + this.serverBox.ResumeLayout(false); + this.serverBox.PerformLayout(); + this.gameBox.ResumeLayout(false); + this.gameBox.PerformLayout(); + this.mainTabs.ResumeLayout(false); + this.locationsTabPage.ResumeLayout(false); + this.playerTabPage.ResumeLayout(false); + this.playerNameBox.ResumeLayout(false); + this.playerNameBox.PerformLayout(); + this.playerNameColoursBox.ResumeLayout(false); + this.gfxBox.ResumeLayout(false); + this.gfxBox.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.GroupBox serverBox; + private System.Windows.Forms.Button launchGameButton; + private System.Windows.Forms.Label serverAddressLabel; + private System.Windows.Forms.TextBox serverAddressInput; + private System.Windows.Forms.Button serverResetButton; + private System.Windows.Forms.GroupBox gameBox; + private System.Windows.Forms.Label gameLocationLabel; + private System.Windows.Forms.TextBox gameLocationInput; + private System.Windows.Forms.Button gameBrowseButton; + private System.Windows.Forms.TabControl mainTabs; + private System.Windows.Forms.TabPage locationsTabPage; + private System.Windows.Forms.Label versionLabel; + private System.Windows.Forms.OpenFileDialog mainOpenFileDiag; + private System.Windows.Forms.CheckBox serverUseCustom; + private System.Windows.Forms.TabPage playerTabPage; + private System.Windows.Forms.GroupBox playerNameBox; + private System.Windows.Forms.Label playerNameLabel; + private System.Windows.Forms.TextBox playerNameInput; + private System.Windows.Forms.GroupBox playerNameColoursBox; + private System.Windows.Forms.Button playerNameColourButton; + private System.Windows.Forms.Panel playerNamePreview; + private System.Windows.Forms.GroupBox gfxBox; + private System.Windows.Forms.CheckBox gfxFullscreen; + private System.Windows.Forms.Label gfxResolutionLabel; + private System.Windows.Forms.ComboBox gfxResolutionSelect; + } +} + diff --git a/SoFii/MainWindow.cs b/SoFii/MainWindow.cs new file mode 100644 index 0000000..7540ffd --- /dev/null +++ b/SoFii/MainWindow.cs @@ -0,0 +1,468 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Text; +using System.Threading; +using System.Windows.Forms; + +namespace SoFii { + public partial class MainWindow : Form { + private bool IsSizing = false; + private readonly ColourCharInfo[] Colours = EmbeddedResources.GetColourChars(); + + public MainWindow() { + InitializeComponent(); + + ResizeToFit(false); + + Screen screen = Screen.FromControl(this); + Rectangle screenRect = screen.WorkingArea; + int left = (screenRect.Width / 2) - (Size.Width / 2); + int top = (screenRect.Height / 4) - (Size.Height / 2); + Location = new Point(screenRect.Y + left, screenRect.X + top); + + versionLabel.Text = $"SoFii v{Program.GetSemVerString()}"; + + serverAddressInput.Text = Settings.ServerAddress; + if(Settings.UseDefaultServer) { + serverAddressInput.Enabled = false; + serverUseCustom.Checked = false; + LoadDefaultServer(); + } else { + serverAddressInput.Enabled = true; + serverUseCustom.Checked = true; + } + + CheckGameExists(Settings.GamePath); + DrawPlayerNameColourButtons(); + + playerNameInput.Text = Settings.PlayerName; + DrawPlayerNamePreview(); + + gfxResolutionSelect.Items.AddRange(new object[] { + string.Empty, + new SoF2VideoMode(3, "640x480"), + new SoF2VideoMode(4, "800x600"), + new SoF2VideoMode(5, "960x720"), + new SoF2VideoMode(6, "1024x768"), + new SoF2VideoMode(7, "1152x864"), + new SoF2VideoMode(8, "1280x1024"), + new SoF2VideoMode(9, "1600x1200"), + new SoF2VideoMode(10, "2048x1536"), + }); + + int gfxMode = Settings.GfxMode; + if(gfxMode >= 0) + gfxResolutionSelect.SelectedItem = gfxMode; + + gfxFullscreen.Checked = Settings.GfxFullscreen; + } + + private void DrawPlayerNameColourButtons() { + Control.ControlCollection container = playerNameColoursBox.Controls; + Button template = playerNameColourButton; + container.Remove(template); + + int width = template.Size.Width; + int height = template.Size.Height; + int rowStart = template.Location.Y; + int colStart = template.Location.X; + int tabIndex = template.TabIndex; + + int row = 0; + int col = 0; + + List handled = new List(); + foreach(ColourCharInfo cci in Colours) { + int argb = cci.Colour.ToArgb(); + if(handled.Contains(argb)) + continue; + handled.Add(argb); + + Button colourButton = new Button() { + Text = cci.Char.ToString(), + TextAlign = ContentAlignment.BottomRight, + FlatStyle = FlatStyle.Flat, + UseVisualStyleBackColor = false, + BackColor = cci.Colour, + TabIndex = tabIndex, + Size = new Size(width, height), + Location = new Point(colStart + (col * width) + (col * 2), rowStart + (row * height) + (row * 2)), + }; + + colourButton.Click += (s, e) => { + int selPos = playerNameInput.SelectionStart; + playerNameInput.Text = playerNameInput.Text.Insert(selPos, $"^{cci.Char}"); + playerNameInput.SelectionStart = selPos + 2; + }; + + container.Add(colourButton); + + ++tabIndex; + if(++col > 11) { + col = 0; + ++row; + } + } + } + + public void ResizeToFit(bool animate = true) { + int needHeight = 0; + + Point scrollPos = AutoScrollPosition; + AutoScrollPosition = new Point(0, 0); + + foreach(Control control in mainTabs.SelectedTab.Controls) { + int calcHeight = control.Size.Height + control.Location.Y; + if(calcHeight > needHeight) + needHeight = calcHeight; + } + + needHeight += 83; + + Screen screen = Screen.FromControl(this); + int maxHeight = (screen.WorkingArea.Height / 8) * 5; + + if(needHeight > maxHeight) + needHeight = maxHeight; + + void onFinish() { + AutoScrollPosition = scrollPos; + }; + + if(animate) + SetHeightAnimated(needHeight, onFinish); + else { + ClientSize = new Size(ClientSize.Width, needHeight); + onFinish(); + } + } + + public void SetHeightAnimated(int height, Action onFinish = null) { + if(IsSizing) + return; + IsSizing = true; + + const int timeout = 1000 / 60; + double time = 0; + double period = timeout / 150d; + + int currentHeight = ClientSize.Height; + int diffHeight = height - currentHeight; + + Action setHeight = new Action(() => { + int newHeight = currentHeight + (int)Math.Ceiling(time * diffHeight); + ClientSize = new Size(ClientSize.Width, newHeight); + }); + + new Thread(() => { + Stopwatch sw = new Stopwatch(); + + try { + do { + sw.Reset(); + sw.Start(); + + Invoke(setHeight); + time += period; + + int delay = timeout - (int)sw.ElapsedMilliseconds; + if(delay > 1) + Thread.Sleep(delay); + } while(time < 1d); + } finally { + sw.Stop(); + + InvokeAction(() => { + ClientSize = new Size(ClientSize.Width, height); + onFinish?.Invoke(); + Refresh(); + }); + + IsSizing = false; + } + }) { + IsBackground = true, + Priority = ThreadPriority.AboveNormal, + }.Start(); + } + + public void InvokeAction(Action action) { + if(action is null) + throw new ArgumentNullException(nameof(action)); + + if(InvokeRequired) + Invoke(action); + else + action(); + } + + public bool CheckGameExists(string path) { + bool exists = !string.IsNullOrEmpty(path) && File.Exists(path); + + gameLocationInput.Text = exists ? path : "Click the Browse... button and pick SoF2MP.exe"; + launchGameButton.Enabled = exists; + + return exists; + } + + public void LaunchGame() { + string path = Settings.GamePath; + + if(!CheckGameExists(path)) { + MessageBox.Show(this, "Game executable doesn't exist anymore. Please use the Browse... button to select it again.", "SoFii :: Error while launching game"); + return; + } + + string serverAddr = Settings.ServerAddress; + if(!Settings.UseDefaultServer && !serverAddressInput.Text.Equals(serverAddr)) + Settings.ServerAddress = serverAddr = serverAddressInput.Text; + + try { + Enabled = false; + WindowState = FormWindowState.Minimized; + + StringBuilder args = new StringBuilder(); + args.AppendFormat(@"+seta r_fullscreen ""{0}"" ", Settings.GfxFullscreen ? '1' : '0'); + + int vidMode = Settings.GfxMode; + if(vidMode >= 0) + args.AppendFormat(@"+seta r_mode ""{0}"" ", vidMode); + + args.Append("+vid_restart "); + + string playerName = Settings.PlayerName; + if(!string.IsNullOrEmpty(playerName)) + args.AppendFormat(@"+seta name ""{0}"" ", playerName); + + if(!string.IsNullOrEmpty(serverAddr)) + args.AppendFormat(@"+connect ""{0}"" +seta server1 ""{0}""", serverAddr); + + Process.Start(new ProcessStartInfo(path) { + Arguments = args.ToString(), + UseShellExecute = false, + WorkingDirectory = Path.GetDirectoryName(path), + }).WaitForExit(); + } finally { + WindowState = FormWindowState.Normal; + Enabled = true; + } + } + + public void LoadDefaultServer() { + if(!serverResetButton.Enabled) + return; + + serverResetButton.Enabled = false; + + bool serverAddressInputEnabled = serverAddressInput.Enabled; + + serverAddressInput.Enabled = false; + serverAddressInput.Text = "Loading..."; + + new Thread(() => { + void reportError(string message, string caption = "Error while fetching default server") { + InvokeAction(() => { + MessageBox.Show(this, message, $"SoFii :: {caption}"); + serverAddressInput.Text = string.Empty; + serverResetButton.Text = "Retry"; + }); + }; + + try { + using(DNSClient dns = new DNSClient()) { + DNSClient.Response resp = dns.QueryRecords(DNSClient.RecordType.TXT, Constants.SOFII_DOMAIN); + if(!resp.IsSuccess) { + reportError($"Could not resolve {Constants.SOFII_DOMAIN}."); + return; + } + + string addr = string.Empty; + string port = string.Empty; + string ver = string.Empty; + StringBuilder messageBuilder = new StringBuilder(); + + foreach(DNSClient.Answer answer in resp.Answers) { + if(answer.Type != DNSClient.RecordType.TXT) + continue; + + string text = answer.GetTXTData().Text.Trim(); + if(text.StartsWith("msg=")) { + messageBuilder.AppendLine(text.Substring(4)); + continue; + } + + string[] textParts = text.Split(' '); + foreach(string textPart in textParts) { + if(textPart.StartsWith("addr=") && string.IsNullOrEmpty(addr)) + addr = textPart.Substring(5); + else if(textPart.StartsWith("port=") && string.IsNullOrEmpty(port)) + port = textPart.Substring(5); + else if(textPart.StartsWith("ver=") && string.IsNullOrEmpty(ver)) + ver = textPart.Substring(4); + } + } + + if(messageBuilder.Length > 0) + reportError(messageBuilder.ToString(), "Message from the server"); + + if(string.IsNullOrEmpty(addr)) { + if(messageBuilder.Length < 1) + reportError("Server did not respond with an address and did not supply additional information."); + return; + } + + InvokeAction(() => { + serverResetButton.Text = "Reset"; + + string fullAddr = addr; + if(!string.IsNullOrEmpty(port)) + fullAddr += $":{port}"; + + Settings.ServerAddress = fullAddr; + serverAddressInput.Text = fullAddr; + + if(!string.IsNullOrEmpty(ver) && int.TryParse(ver, out int version) + && Program.GetSemVerInt() < version && Settings.IgnoreNewVersion < version) { + DialogResult result = MessageBox.Show( + this, + "A newer version of SoFii is available that may include necessary and/or new features.\r\nCheck https://fii.moe/sofii for more information.\r\n\r\nPress OK to continue or Cancel if you don't want to be notified about this version again.\r\nThe Help button will open the information page in your default web browser.", + "SoFii :: New version notification", + MessageBoxButtons.OKCancel, + MessageBoxIcon.Information, + MessageBoxDefaultButton.Button1, + 0, + Constants.INFO_URL + ); + if(result == DialogResult.Cancel) + Settings.IgnoreNewVersion = version; + } + }); + } + } catch(Exception ex) { +#if DEBUG + reportError(ex.ToString()); +#else + reportError(ex.Message); +#endif + } finally { + InvokeAction(() => { + serverAddressInput.Enabled = serverAddressInputEnabled; + serverResetButton.Enabled = true; + }); + } + }) { IsBackground = true }.Start(); + } + + private void serverResetButton_Click(object sender, EventArgs e) { + Settings.UseDefaultServer = true; + serverAddressInput.Enabled = false; + serverUseCustom.Checked = false; + LoadDefaultServer(); + } + + private void gameBrowseButton_Click(object sender, EventArgs e) { + if(mainOpenFileDiag.ShowDialog() == DialogResult.OK) { + string path = mainOpenFileDiag.FileName; + if(CheckGameExists(path)) + Settings.GamePath = path; + } + } + + private void launchGameButton_Click(object sender, EventArgs e) { + LaunchGame(); + } + + private void serverUseCustom_CheckedChanged(object sender, EventArgs e) { + bool useCustom = serverUseCustom.Checked; + + bool useDefault = !useCustom; + if(Settings.UseDefaultServer != useDefault) + Settings.UseDefaultServer = useDefault; + + serverAddressInput.Enabled = useCustom; + + if(useDefault) + LoadDefaultServer(); + } + + private void mainTabs_SelectedIndexChanged(object sender, EventArgs e) { + ResizeToFit(); + } + + public void DrawPlayerNamePreview() { + string userName = playerNameInput.Text; + bool nextIsColourChar = false; + Color colour = SystemColors.ControlText; + Brush brush = new SolidBrush(colour); + Font font = SystemFonts.DefaultFont; + + float offset = 0; + StringBuilder sb = new StringBuilder(); + + using(Graphics gfx = playerNamePreview.CreateGraphics()) { + gfx.Clear(SystemColors.ControlLightLight); + + float spaceWidth = gfx.MeasureString(" ", font).Width + .1f; + + void drawBuffer() { + if(sb.Length < 1) + return; + + string str = sb.ToString(); + sb.Length = 0; + + gfx.DrawString(str, font, brush, offset, 0); + offset += gfx.MeasureString(str, font).Width - spaceWidth; + }; + + foreach(char chr in userName) { + if(nextIsColourChar) { + foreach(ColourCharInfo cci in Colours) + if(cci.Char == chr) { + if(cci.Colour != colour) { + colour = cci.Colour; + brush.Dispose(); + brush = new SolidBrush(colour); + } + break; + } + + nextIsColourChar = false; + continue; + } + + if(chr == '^') { + nextIsColourChar = true; + drawBuffer(); + continue; + } + + sb.Append(chr); + } + + drawBuffer(); + } + + brush.Dispose(); + } + + private void playerNameInput_TextChanged(object sender, EventArgs e) { + Settings.PlayerName = playerNameInput.Text; + DrawPlayerNamePreview(); + } + + private void gfxFullscreen_CheckedChanged(object sender, EventArgs e) { + Settings.GfxFullscreen = gfxFullscreen.Checked; + } + + private void gfxResolutionSelect_SelectedIndexChanged(object sender, EventArgs e) { + if(gfxResolutionSelect.SelectedItem is SoF2VideoMode vidMode) + Settings.GfxMode = vidMode.Mode; + else + Settings.Remove(Settings.GFX_MODE); + } + } +} diff --git a/SoFii/MainWindow.resx b/SoFii/MainWindow.resx new file mode 100644 index 0000000..040c113 --- /dev/null +++ b/SoFii/MainWindow.resx @@ -0,0 +1,2393 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + AAABAAkAEBAAAAEAIABoBAAAlgAAABgYAAABACAAiAkAAP4EAAAgIAAAAQAgAKgQAACGDgAAMDAAAAEA + IACoJQAALh8AAEBAAAABACAAKEIAANZEAABgYAAAAQAgAKiUAAD+hgAAgIAAAAEAIADUHQAAphsBAAAA + AAABACAAEUEAAHo5AQAAAAAAAQAgAEeYAACLegEAKAAAABAAAAAgAAAAAQAgAAAAAABABAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAa6vkxGev1ZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAJvLyFBjs9L8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAALuf+CyrP81sY7fTJEv//DgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvj+8QaYfwIleK + 8CNUqf4JQrPsGzm680Mr0PLSGOz1iRvu8UsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvYPGHam/tZV19 + 8qFXjPHKTJrxdUuc8W88tfLFLNHxpxzl9loX7vRMAAAAAAAAAAAAAAAAAAAAAAAAAACBSO+Uc13waHJh + 74NffPDRV4rwjFWW9WZPm/CrPLTxwynR8W8s0PNyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgkjvcYFK + 7G5wYu/DYH7wqlqH9WZYi/KNTZjw0jy28YI4v/BoLM/xlgAAAAAAAAAAAAAAAAAAAAAAAAAAkizuS4g4 + 7lqBR+6ocGHwxmF98XBdfO91V4zxyk6Z8qBCrfJkPbbwiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQp + 8UqXLO6KgUbt0ndk80JtbfUcVHH+CVeK8CNLlvAiS5bwEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACLLv4LkyrtyIJJ7lqUVf8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAJMr7MCfNfQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACSLe1lkSjrMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAKAAAABgAAAAwAAAAAQAgAAAAAABgCQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO72Pxnt + 8ncAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHO/yUBjs8+4A//8DAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAEv//Dhjs8/oY8PU1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00/YdJ9H4Jxjs88YX7PJ5AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAsz/GWKtDxqRnr84EY7PS9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAP8BZIb4JmCB7k1ah/ARVo/yPv///wJSmfIoQrb4Kjq18ZUu0PVSKs/y7Bju + 9j8Y7PP5F/7+CwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9j8FdxYe/FYH7xX159 + 8OFVi/FLVovw8k+V9jpNmfD7PrXuLTu18f83wu4uK9Dy/CrZ9TYY7PTpGPD1NQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACZM/8FgUfuS3Ng9TVwYe/9aHnzLF598P5ehe4uVovw+FmU8jxNmfHtTpzxTju1 + 8d07tPJjKtHyyCzR8ncA//8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACfX98IgUbu9oNJ + 80JvYfDnb2DwVV9979VgffJqV4zwwVSN8n5NmvCsTpvvkjy185g9t/GnLNLxhCrS8bsAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgkfvuoBI74VvYfGlcWLumV1+75FffvCuV4zyfVWL + 8cJMmPBoTZjw1zy28lQ7tfHrJ8zzQSrQ8vccxv4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACqAP8Dg0XvdoJF78pxYe9hcGHw32CB7k1effDvVpLyO1aL8PtRnfQvTZnw/0ui8yw7tfH8Prv1NS7Q + 9EwzzP8FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJEo6zOTK+zqhEL1NoFG7vx8U+0rcGHv/2lp + 7i5effD6ZYP2OlaL7+5XjPRMTpnw3kyY72E8tPHDPLfzWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAJ8/3wiTK+32kyvvQIFG7uqBSe9TcmHvk3Zk7StmhfIo////AluO7j1Um/4STZr0TE6W + +CcA//8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTKu27lSztg4FH + 7qiARe6XAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVLO93kyrtyIZD8SaIRO4eAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACRKOszkyvt/JtG/hIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AP8Ckyvt6pIx7FIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAlSnvdpEr60EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgA + AAAgAAAAQAAAAAEAIAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHvLyOxrs9HsAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ7vKMGOzz/x/v + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkivsepkz7jwAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAoAAAAMAAAAGAAAAABACAAAAAAAIAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAA/3/8IF+/zQiD2/h8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACT//wcY7PPwGOzz/xns8noAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY7fPCGOzz/xjs9L4AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY7vR9GOzz/xjs + 8/kX/v4LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAW7fY5GOzz/xjs8/8c7fRIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAA//8DGOzz7hjs8/8Z7vKMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF+zzrxjs8/8Z6/PQAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu3PMWKtL0YSzR85wA//8CGu7zaxjs8/8Y7PP+FfT0GAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + 7f+XMPIqgkTuLYFG7v+BRu7/gUnvUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAChKP4Tkyrt/ZMq7f+TKe5v/wD/AYFH7pqDSO9jhU3zFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAlCvuzJMq7f+UKeyzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkyvsh5Mq7P+UKu3ymTP/BQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlC3vQ5Mq7f+TKu3/ki3uPQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnz/fCJMr + 7faSKu3/lCvtgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAJQr7bqTKuz/lCruxgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJIp73WTKu3/lCrt8qkc/gkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJU07R2SKexEnz/fCAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAEAAAACAAAAAAQAgAAAA + AAAAQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//BRf39yEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX7PE3GOz1sxjs + 8/MZ7fPVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAHvLyOxjs8/8Y7PP/GOzz/xv1/hwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wQY7PPwGOzz/xjs8/8Y7PRfAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGOzzsRjs8/8Y7PP/F+zyowAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfs + 820Y7PP/GOzz/xjs9OgA//8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAf7PgpGOzz/xjs8/8Y7PP/F/PzLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjs8+IY7PP/GOzz/xvv9XEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY7fWfGOzz/xjs + 8/8Z7vK1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMn+EzHN + 9yQAAAAAGev2Wxjs8/8Y7PP/GOz09CT//wcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAqz/NVKdHyyyrQ8v0p0fKzAAAAABbz/hcY7PP+GOzz/xjs8/8Y7vY/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAK9PxXirQ8v8q0PL/KtDy8jPM/wUAAAAAGOv00Rjs8/8Y7PP/F+3zgwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACfX9Roq0PL+KtDy/yrQ8v8u0PI8AAAAABnr + 8o0Y7PP/GOzz/xjt9MgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKtDy1CrQ + 8v8q0PL/K9HxgQAAAAAY8fhJGOzz/xjs8/8Y7PP8HP7+EgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhef4VX33wMwAA + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVLO5+kyrt/5Mq + 7f+TKu3XAAAAAKpV/wOBR+7tgUbu/4FG7v+CR+1kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAmCjtOZMq7f+TKu3/kyrt/5U07R0AAAAAgkfwrIFG7v2BRu7NgknuWgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKoA/wOTKu3ukyrt/5Mq7f+TKu9hAAAAAINQ8COMTPIUAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkyrur5Mq7f+TKu3/lCvspQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJYt + 7muTKuz/kyrs/5Iq7en/AP8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACaKPEmkyrs/5Mq7f+TKu3/kiv0LwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQq7d+TKu3/kyvt/5Qq7XMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVKu2dkyrt/5Mr + 7f+SK+63AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAlC3wWZMq7f+TKu3/kyrt9bYk/wcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJkm/xSTKu39kyvt/5Mq7f+RK+tBAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkyrszpMq7fSTKu61lyvyOwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI8v + 7yCqVf8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgA + AABgAAAAwAAAAAEAIAAAAAAAgJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLu/x4X7/JjGO70pxju9H0AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAV9PQYGOzz2Rjs + 8/8Y7PP/GOzz/xjs9NIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAA//8BGOzz5xjs8/8Y7PP/GOzz/xjs8/4U9P4ZAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGuz0pRjs8/8Y7PP/GOzz/xjs + 8/8Z6/ZbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAGu/0YRjs8/8Y7PP/GOzz/xjs8/8Y7fWfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHOz+Gxjs8/8Y7PP/GOzz/xjs8/8X7fPkAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjs + 89cY7PP/GOzz/xjs8/8Y7PP/H+z4KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAABjt9JIY7PP/GOzz/xjs8/8Y7PP/F+zzbQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrr9U4Y7PP/GOzz/xjs + 8/8Y7PP/GOz0sgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACfr6w0Y7PP6GOzz/xjs8/8Y7PP/GOzz8gD//wUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ7PPFGOzz/xjs8/8Y7PP/GOzz/x7y + 8jsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAZ6/OAGOzz/xjs8/8Y7PP/GOzz/xnr84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd7vI8GOzz/xjs8/8Y7PP/GOzz/xfr88QAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADHN+Ckpz/JQAAAAAAAAAAAA//8EGO3z8Rjs + 8/8Y7PP/GOzz/xjs8/sR7u4PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACzS81Yr0PKfK9Dy5CrQ + 8v8q0PP1JP//BwAAAAAAAAAAGOz0shjs8/8Y7PP/GOzz/xjs8/8a6/VOAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACnQ8r8q0PL/KtDy/yrQ8v8q0PL/K9PzQQAAAAAAAAAAF+zzbhjs8/8Y7PP/GOzz/xjs + 8/8Y7fSSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACnP9Hsq0PL/KtDy/yrQ8v8q0PL/Ks/zhQAA + AAAAAAAAH+z4KRjs8/8Y7PP/GOzz/xjs8/8Z7fPWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/U + 9TYq0PL/KtDy/yrQ8v8q0PL/K9DyyQAAAAAAAAAAAAAAABjt8+MY7PP/GOzz/xjs8/8Y7PP/Gu32HQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACq/wMr0PLtKtDy/yrQ8v8q0PL/K9Dy/Dji/hIAAAAAAAAAABnt + 8qAY7PP/GOzz/xjs8/8Y7PP/Guz0YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAp0fOtKtDy/yrQ + 8v8q0PL/KtDy/yvT9VMAAAAAAAAAABvu9lwY7PP/GOzz/xjs8/8Y7PP/F+z0pAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE7E6w0+tvVNPbXykTu1 + 8dU5t/RHAAAAAAAAAAAp0/VpKtDy/yrQ8v8q0PL/KtDy/yrR8ZcAAAAAAAAAABbz/hcY7PP+GOzz/xjs + 8/8Y7PP/GOz06AD//wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + AACASPCNgUbu/4FG7v+BRu7/gUbu/4JJ7XMAAAAAAAAAAHJm7jxxYu/dcWLumW9g8FVpWvARAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkizum5Mq + 7f+TKu3/kyrt/5Mq7f+WLfBmAAAAAAAAAACBSfFJgUbu/4FG7v+BRu7/gUbu/4JH7rcAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAlSntV5Mq7f+TKu3/kyrt/5Mq7f+TKu2qAAAAAAAAAACZZv8KgUbu+IFG + 7v+BRu7/gUbu/4FG7vW2bf8HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoSj+E5Mq7f2TKu3/kyrt/5Mq + 7f+UKu3s/wD/AgAAAAAAAAAAgkXuv4FG7v+BRu7/gUbu/4FG7v+DS+9AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAJQq7s2TKu3/kyrt/5Mq7f+TKu3/kSjrMwAAAAAAAAAAgkbue4FG7v+BRu7/gUbu/4FG + 7v+ASO+FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJMs7ImTKu3/kyrt/5Mq7f+TKu3/lCzueAAA + AAAAAAAAhkrsN4FG7v+BRu7/gUbu/4FG7v+BR+/JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJcs + 8EWTKu3/kyrt/5Mq7f+TKu3/kirtvAAAAAAAAAAAqlX/A4FG7u6BRu7/gUbu5oFF76KCRe5cAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ8/3wiTK+32kyrt/5Mq7f+TKu3/kyrt95kz/woAAAAAAAAAAIFI + 7k2FS/MsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTKu27kyrt/5Mq + 7f+TKu3/kyrt/5Uv8EYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACVLO93kyrt/5Mq7f+TKu3/kyrt/5Us7ooAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZLe8ykyvt/5Mq7f+TKu3/kirt/5Mr + 7M8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD/AP8Ckyvs6pMq7f+TKu3/kyrs/5Iq7f6iLvMWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkirvqZMq7P+TKu3/kyrt/5Mr7f+WK/NYAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlivtZJMq + 7f+TKu3/kyrt/5Mq7f+TLO2cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAlCn2H5Mq7f+TKuz/kyrt/5Mq7f+SK+3hAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJMr7tuTK+3/kyrt/5Mr + 7f+TK+3/oSjxJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAJIt7JaTK+3/kyrt/5Mq7f+TKu3/mC3uawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJUu7FKSKu3/kyrt/5Mq7f+TKuz/kyrurwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI8/ + 7xCTK+38kyrt/5Mq7f+TKuz/kyrt8b9//wQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACSKu3Ikyvt/5Iq7f+TKu3/kyrs3I8v7yAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACSKe91kyvtqpYt + 8GaaLvchAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACJUE5HDQoaCgAAAA1JSERSAAAAgAAAAIAIBgAAAMM+YcsAAB2bSURBVHhe7Z0J + eBRF2serumcm59zBhEN0XXWFEAgquyzXogYCBIR1l0ORUyR83CLgsQQSQFwIkigRCYcQVFRY5cOEK2QV + RFhXRY4AQXTxJBwhcw9JZqa79p3A9EynCyVLZhIz3fo8PJmuqa56619vVb316xqM5CusLYDDuvZy5ZEs + gDAXgSwAWQBhboEwr77sAWQBhLkFwrz6sgeQBRDmFgjz6sseQBZAmFsgzKsvewBZAGFugTCvvuwBZAGE + uQXCvPqyB5AFEOYWCPPqh9wDkHvW3F2t5LpERkb+E38+7kKY27/Rqx9yAdg752e4alwLvTVnWfYs4lEJ + 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 + AkSACBABIkAJAD0DRIAIEAEiQATqIQFKAOrhTachEwEiQASIABGgBICeASJABIgAESAC9ZAAJQD18KbT + kIkAESACRIAIUAJAzwARIAJEgAgQgXpIgBKAenjTachEgAgQASJABCgBoGeACBABIkAEiEA9JEAJQD28 + 6TRkIkAEiAARIAKUANAzQASIABEgAkSgHhKgBKAe3nQaMhEgAkSACBABSgDoGSACRIAIEAEiUA8JUAJQ + D286DZkIEAEiQASIACUA9AwQASJABIgAEaiHBCgBqIc3nYZMBIgAESACRIASAHoGiAARIAJEgAjUQwKU + ANTDm05DJgJEgAgQASJACQA9A0SACBABIkAE6iEBSgDq4U2nIRMBIkAEiAARoASAngEiQASIABEgAvWQ + ACUA9fCm05CJABEgAkSACFACQM8AESACRIAIEIF6SIASgHp402nIRIAIEAEiQAQoAaBngAgQASJABIhA + PSRACUA9vOk0ZCJABIgAESAClADQM0AEiAARIAJEoB4SoASgHt50GjIRIAJEgAgQAUoA6BkgAkSACBAB + IlAPCVACUA9vOg2ZCBABIkAEiAAlAPQMEAEiQASIABGohwQoAaiHN52GTASIABEgAkSAEgB6BogAESAC + RIAI1EMClADUw5tOQyYCRIAIEAEiQAkAPQNEgAgQASJABOohAUoA6uFNpyETASJABIgAEaAEgJ4BIkAE + iAARIAL1kAAlAPXwptOQiQARIAJEgAhQAkDPABEgAkSACBCBekiAEoB6eNNpyESACBABIkAEKAGgZ4AI + EAEiQASIQD0kQAlAPbzpNGQiQASIABEgApQA0DNABIgAESACRKAeEqAEoB7edBoyESACRIAIEAFKAOgZ + IAJEgAgQASJQDwlQAlAPbzoNmQgQASJABIgAJQD0DBABIkAEiAARqIcEKAGohzedhkwEiAARIAJEgBIA + egaIABEgAkSACNRDApQA1MObTkMmAkSACBABIkAJAD0DRIAIEAEiQATqIQFKAOrhTachEwEiQASIABGg + BICeASJABIgAESAC9ZAAJQD18KbTkIkAESACRIAIUAJAzwARIAJEgAgQgXpIgBKAenjTachEgAgQASJA + BCgBoGeACBABIkAEiEA9JEAJQD286TRkIkAEiAARIAKUANAzQASIABEgAkSgHhKgBKAe3nQaMhEgAkSA + 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 + IAHIimlAECAAAiAAAiDgLgEkAO7yhjcQAAEQAAEQyAoCSACyYhoQBAiAAAiAAAi4SwAJgLu84Q0EQAAE + QAAEsoIAEoCsmAYEAQIgAAIgAALuEkAC4C5veAMBEAABEACBrCCABCArpgFBgAAIgAAIgIC7BJAAuMsb + 3kAABEAABEAgKwggAciKaUAQIAACIAACIOAuASQA7vKGNxAAARAAARDICgJIALJiGhAECIAACIAACLhL + AAmAu7zhDQRAAARAAASyggASgKyYBgQBAiAAAiAAAu4SQALgLm94AwEQAAEQAIGsIIAEICumAUGAAAiA + AAiAgLsEkAC4yxveQAAEQAAEQCArCCAByIppQBAgAAIgAAIg4C4BJADu8oY3EAABEAABEMgKAkgAsmIa + EAQIgAAIgAAIuEsACYC7vOENBEAABEAABLKCABKArJgGBAECIAACIAAC7hJAAuAub3gDARAAARAAgawg + gAQgK6YBQYAACIAACICAuwSQALjLG95AAARAAARAICsIIAHIimlAECAAAiAAAiDgLgEkAO7yhjcQAAEQ + AAEQyAoCSACyYhoQBAiAAAiAAAi4SwAJgLu84Q0EQAAEQAAEsoIAEoCsmAYEAQIgAAIgAALuEkAC4C5v + eAMBEAABEACBrCCABCArpgFBgAAIgAAIgIC7BJAAuMsb3kAABEAABEAgKwggAciKaUAQIAACIAACIOAu + ASQA7vKGNxAAARAAARDICgJIALJiGhAECIAACIAACLhLAAmAu7zhDQRAAARAAASyggASgKyYBgQBAiAA + AiAAAu4SQALgLm94AwEQAAEQAIGsIIAEICumAUGAAAiAAAiAgLsEkAC4yxveQAAEQAAEQCArCCAByIpp + QBAgAAIgAAIg4C4BJADu8oY3EAABEAABEMgKAkgAsmIaEAQIgAAIgAAIuEsACYC7vOENBEAABEAABLKC + ABKArJgGBAECIAACIAAC7hJAAuAub3gDARAAARAAgawggAQgK6YBQYAACIAACICAuwSQALjLG95AAARA + AARAICsIIAHIimlAECAAAiAAAiDgLgEkAO7yhjcQAAEQAAEQyAoCSACyYhoQBAiAAAiAAAi4SwAJgLu8 + 4Q0EQAAEQAAEsoIAEoCsmAYEAQIgAAIgAALuEvh/9mzLd+jjWQQAAAAASUVORK5CYII= + + + \ No newline at end of file diff --git a/SoFii/NameColours.txt b/SoFii/NameColours.txt new file mode 100644 index 0000000..1bee4e6 --- /dev/null +++ b/SoFii/NameColours.txt @@ -0,0 +1,90 @@ +1 16718105 +_ 16711680 +$ 16711680 +q 11507092 +{ 12193024 +T 13520444 +C 15880997 +: 15970943 +b 14454844 +z 11698482 +k 13546113 +@ 13009152 +N 14454784 +3 16776960 +' 16776960 +2 11125364 +Y 8837120 +E 7122728 +K 11393921 +g 8516137 +? 8837198 +n 5144370 +j 4904960 +| 8051530 +G 4893989 +S 4452905 +B 3988521 +P 65280 +< 65280 +J 9744277 +v 907075 += 8838070 +M 55418 +p 2397548 +V 8375986 +9 3988661 +a 62389 +[ 3977109 +] 2471573 +X 2471597 +> 2471597 +5 65535 +) 65535 +f 7390414 +I 5162204 +} 2443859 +y 954564 +l 9487602 +d 8367579 +D 3296895 +F 9328 +x 3112 +i 2443949 +O 11910642 +R 2702556 +& 5000447 +w 1 +0 1 +# 1 +u 3941557 +. 6111928 +% 6111928 +A 4915443 +s 3276934 +Z 11507164 +U 9454578 +/ 3211363 +8 7995608 +L 11696856 +W 8782006 +; 14107634 +6 16711935 +( 16711935 +r 11948978 +m 12395958 +c 14107598 +Q 15944637 +e 14155910 +H 9792641 +\ 13454718 +t 7995432 +h 8781864 +o 11496304 +! 0 +- 4144959 +, 8355711 ++ 12566463 +7 16777215 +* 16777215 +" 16777215 diff --git a/SoFii/Program.cs b/SoFii/Program.cs new file mode 100644 index 0000000..6d6d05a --- /dev/null +++ b/SoFii/Program.cs @@ -0,0 +1,39 @@ +using System; +using System.Reflection; +using System.Windows.Forms; + +namespace SoFii { + public static class Program { + public static readonly Assembly CurrentAssembly = Assembly.GetExecutingAssembly(); + public static readonly AssemblyName CurrentAssemblyName = CurrentAssembly.GetName(); + + [STAThread] + public static void Main() { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + + int version = GetSemVerInt(); + int lastVersion = Settings.LastVersion; + if(version < lastVersion) { + DialogResult result = MessageBox.Show("You're opening an older version of SoFii after already having used a newer version.\r\nThis could corrupt your settings. Are you sure you want to continue?", "SoFii :: Old version warning", MessageBoxButtons.YesNo); + if(result != DialogResult.Yes) + return; + + Settings.LastVersion = version; + } else if(version > lastVersion) + Settings.LastVersion = version; + + Application.Run(new MainWindow()); + } + + public static string GetSemVerString() { + Version version = CurrentAssemblyName.Version; + return $"{version.Major}.{version.Minor}.{version.Build}"; + } + + public static int GetSemVerInt() { + Version version = CurrentAssemblyName.Version; + return (version.Major << 20) | (version.Minor << 10) | version.Build; + } + } +} diff --git a/SoFii/Properties/AssemblyInfo.cs b/SoFii/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..337164c --- /dev/null +++ b/SoFii/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SoFii")] +[assembly: AssemblyDescription("Soldier of Fortune 2 Flashii assistant")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("SoFii")] +[assembly: AssemblyCopyright("flash.moe 2023")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("6026586c-8730-428a-8e61-e75568ff7185")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0")] +[assembly: AssemblyFileVersion("1.0.0")] diff --git a/SoFii/Properties/Resources.Designer.cs b/SoFii/Properties/Resources.Designer.cs new file mode 100644 index 0000000..612c8fe --- /dev/null +++ b/SoFii/Properties/Resources.Designer.cs @@ -0,0 +1,73 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SoFii.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SoFii.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon logoproto { + get { + object obj = ResourceManager.GetObject("logoproto", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + } +} diff --git a/SoFii/Properties/Resources.resx b/SoFii/Properties/Resources.resx new file mode 100644 index 0000000..479242b --- /dev/null +++ b/SoFii/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\logoproto.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/SoFii/RNG.cs b/SoFii/RNG.cs new file mode 100644 index 0000000..b06de94 --- /dev/null +++ b/SoFii/RNG.cs @@ -0,0 +1,43 @@ +using System; + +namespace SoFii { + public static class RNG { + private static object Lock { get; } = new object(); + private static Random NormalRandom { get; } = new Random(); + + public static int Next() { + lock(Lock) + return NormalRandom.Next(); + } + + public static int Next(int max) { + lock(Lock) + return NormalRandom.Next(max); + } + + public static int Next(int min, int max) { + lock(Lock) + return NormalRandom.Next(min, max); + } + + public static void NextBytes(byte[] buffer) { + lock(Lock) + NormalRandom.NextBytes(buffer); + } + + public static void Shuffle(T[] arr) { + if(arr is null) + throw new ArgumentNullException(nameof(arr)); + + lock(Lock) { + int n = arr.Length; + while(n > 1) { + int k = Next(n--); + T tmp = arr[n]; + arr[n] = arr[k]; + arr[k] = tmp; + } + } + } + } +} diff --git a/SoFii/Resources/logoproto.ico b/SoFii/Resources/logoproto.ico new file mode 100644 index 0000000..5dc58d0 Binary files /dev/null and b/SoFii/Resources/logoproto.ico differ diff --git a/SoFii/Settings.cs b/SoFii/Settings.cs new file mode 100644 index 0000000..e15266e --- /dev/null +++ b/SoFii/Settings.cs @@ -0,0 +1,170 @@ +using Microsoft.Win32; +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace SoFii { + public static class Settings { + public const string LAST_VERSION = "LastVersion"; + public const string GAME_PATH = "GamePath"; + public const string USE_DEFAULT_SERVER = "UseDefaultServer"; + public const string SERVER_ADDRESS = "ServerAddress"; + public const string CUSTOM_DNS_SERVERS = "CustomDNSServers"; + public const string PLAYER_NAME = "PlayerName"; + public const string GFX_FULLSCREEN = "GfxFullscreen"; + public const string GFX_MODE = "GfxMode"; + public const string IGNORE_NEW_VERSION = "IgnoreNewVersion"; + + public static int LastVersion { + get => Get(LAST_VERSION, 0); + set => Set(LAST_VERSION, value); + } + + public static string GamePath { + get => Get(GAME_PATH, string.Empty); + set => Set(GAME_PATH, value); + } + + public static bool UseDefaultServer { + get => Get(USE_DEFAULT_SERVER, true); + set => Set(USE_DEFAULT_SERVER, value); + } + + public static string ServerAddress { + get => Get(SERVER_ADDRESS, string.Empty); + set => Set(SERVER_ADDRESS, value); + } + + public static string[] CustomDNSServers { + get => Get(CUSTOM_DNS_SERVERS, string.Empty).Split(' '); + set { + if(value == null || value.Length < 1) + Remove(CUSTOM_DNS_SERVERS); + else + Set(CUSTOM_DNS_SERVERS, string.Join(" ", value)); + } + } + + public static string PlayerName { + get => Get(PLAYER_NAME, "Speler"); + set => Set(PLAYER_NAME, value); + } + + public static bool GfxFullscreen { + get => Get(GFX_FULLSCREEN, false); + set => Set(GFX_FULLSCREEN, value); + } + + public static int GfxMode { + get => Get(GFX_MODE, -1); + set => Set(GFX_MODE, value); + } + + public static int IgnoreNewVersion { + get => Get(IGNORE_NEW_VERSION, 0); + set => Set(IGNORE_NEW_VERSION, value); + } + + private const string ROOT = @"Software\flash.moe\SoFii"; + + private static RegistryKey GetRoot() { + RegistryKey root = Registry.CurrentUser.OpenSubKey(ROOT, true); + + if(root == null) + root = Registry.CurrentUser.CreateSubKey(ROOT); + + return root; + } + + public static T Get(string name, T fallback = default) { + try { + return (T)Convert.ChangeType(GetRoot().GetValue(name, fallback), typeof(T)); + } catch { + return fallback; + } + } + + public static string[] Get(string name, string[] fallback = null) { + if(!(GetRoot().GetValue(name, null) is byte[] buffer)) + return fallback; + + List strings = new List(); + + using(MemoryStream src = new MemoryStream(buffer)) + using(MemoryStream ms = new MemoryStream()) { + int b; + + for(; ; ) { + b = src.ReadByte(); + + if(b == -1) + break; + else if(b != 0) + ms.WriteByte((byte)b); + else { + strings.Add(Encoding.UTF8.GetString(ms.ToArray())); + ms.SetLength(0); + } + } + } + + return strings.ToArray(); + } + + public static bool Has(string name) { + try { + GetRoot().GetValueKind(name); + return true; + } catch { + return false; + } + } + + public static void Set(string name, object value) { + if(value == null) { + Remove(name); + return; + } + + switch(value) { + case bool b: + value = b ? 1 : 0; + break; + } + + GetRoot().SetValue(name, value); + } + + public static void Set(string name, string[] values) { + if(values == null || values.Length < 1) { + Remove(name); + return; + } + + using(MemoryStream ms = new MemoryStream()) { + foreach(string value in values) { + byte[] buffer = Encoding.UTF8.GetBytes(value); + ms.Write(buffer, 0, buffer.Length); + ms.WriteByte(0); + } + + GetRoot().SetValue(name, ms.ToArray(), RegistryValueKind.Binary); + } + } + + public static void SetDefault(string name, object value) { + if(!Has(name)) + Set(name, value); + } + + public static void SetDefault(string name, string[] value) { + if(!Has(name)) + Set(name, value); + } + + public static void Remove(string name) { + GetRoot().DeleteValue(name, false); + } + } +} diff --git a/SoFii/SoF2VideoMode.cs b/SoFii/SoF2VideoMode.cs new file mode 100644 index 0000000..999dfb6 --- /dev/null +++ b/SoFii/SoF2VideoMode.cs @@ -0,0 +1,26 @@ +namespace SoFii { + public readonly struct SoF2VideoMode { + public int Mode { get; } + public string Resolution { get; } + + public SoF2VideoMode(int mode, string res) { + Mode = mode; + Resolution = res; + } + + public override string ToString() { + return Resolution; + } + + public override bool Equals(object obj) { + if(obj is int num && num == Mode) + return true; + + return base.Equals(obj); + } + + public override int GetHashCode() { + return base.GetHashCode(); + } + } +} diff --git a/SoFii/SoFii.csproj b/SoFii/SoFii.csproj new file mode 100644 index 0000000..0e170e2 --- /dev/null +++ b/SoFii/SoFii.csproj @@ -0,0 +1,109 @@ + + + + + Debug + AnyCPU + {6026586C-8730-428A-8E61-E75568FF7185} + WinExe + SoFii + SoFii + v2.0 + 512 + true + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + Resources\logoproto.ico + + + + + + + + + + + + + + + + + Form + + + MainWindow.cs + + + + + True + True + Resources.resx + + + + + + + + False + .NET Framework 3.5 SP1 + true + + + + + MainWindow.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + + + + + + + \ No newline at end of file