commit f617b7eb8ea5bcc9883683bb824f7bcbf29d1f2e
Author: CreepyCrafter24 <33260128+CreepyCrafter24@users.noreply.github.com>
Date: Fri Sep 6 20:45:42 2019 +0200
first commit
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..4a4d13c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,512 @@
+
+# Created by https://www.gitignore.io/api/csharp,visualstudio
+# Edit at https://www.gitignore.io/?templates=csharp,visualstudio
+
+### Csharp ###
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+##
+## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
+
+# User-specific files
+*.rsuser
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Mono auto generated files
+mono_crash.*
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
+bld/
+[Bb]in/
+[Oo]bj/
+[Ll]og/
+
+# Visual Studio 2015/2017 cache/options directory
+.vs/
+# Uncomment if you have tasks that create the project's static files in wwwroot
+#wwwroot/
+
+# Visual Studio 2017 auto generated files
+Generated\ Files/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUnit
+*.VisualState.xml
+TestResult.xml
+nunit-*.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# Benchmark Results
+BenchmarkDotNet.Artifacts/
+
+# .NET Core
+project.lock.json
+project.fragment.lock.json
+artifacts/
+
+# StyleCop
+StyleCopReport.xml
+
+# Files built by Visual Studio
+*_i.c
+*_p.c
+*_h.h
+*.ilk
+*.meta
+*.obj
+*.iobj
+*.pch
+*.pdb
+*.ipdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*_wpftmp.csproj
+*.log
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+*.VC.db
+*.VC.VC.opendb
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# Visual Studio Trace Files
+*.e2e
+
+# 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
+
+# AxoCover is a Code Coverage Tool
+.axoCover/*
+!.axoCover/settings.json
+
+# Visual Studio code coverage results
+*.coverage
+*.coveragexml
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+nCrunchTemp_*
+
+# 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
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+PublishScripts/
+
+# NuGet Packages
+*.nupkg
+# NuGet Symbol Packages
+*.snupkg
+# The packages folder can be ignored because of Package Restore
+**/[Pp]ackages/*
+# except build/, which is used as an MSBuild target.
+!**/[Pp]ackages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/[Pp]ackages/repositories.config
+# NuGet v3's project.json files produces more ignorable files
+*.nuget.props
+*.nuget.targets
+
+# Microsoft Azure Build Output
+csx/
+*.build.csdef
+
+# Microsoft Azure Emulator
+ecf/
+rcf/
+
+# Windows Store app package directories and files
+AppPackages/
+BundleArtifacts/
+Package.StoreAssociation.xml
+_pkginfo.txt
+*.appx
+*.appxbundle
+*.appxupload
+
+# 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/
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.jfm
+*.pfx
+*.publishsettings
+orleans.codegen.cs
+
+# Including strong name files can present a security risk
+# (https://github.com/github/gitignore/pull/2483#issue-259490424)
+#*.snk
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+#bower_components/
+
+# 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
+ServiceFabricBackup/
+*.rptproj.bak
+
+# SQL Server files
+*.mdf
+*.ldf
+*.ndf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+*.rptproj.rsuser
+*- [Bb]ackup.rdl
+*- [Bb]ackup ([0-9]).rdl
+*- [Bb]ackup ([0-9][0-9]).rdl
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+node_modules/
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+*.vbw
+
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+paket-files/
+
+# FAKE - F# Make
+.fake/
+
+# CodeRush personal settings
+.cr/personal
+
+# Python Tools for Visual Studio (PTVS)
+__pycache__/
+*.pyc
+
+# Cake - Uncomment if you are using it
+# tools/**
+# !tools/packages.config
+
+# Tabs Studio
+*.tss
+
+# Telerik's JustMock configuration file
+*.jmconfig
+
+# BizTalk build output
+*.btp.cs
+*.btm.cs
+*.odx.cs
+*.xsd.cs
+
+# OpenCover UI analysis results
+OpenCover/
+
+# Azure Stream Analytics local run output
+ASALocalRun/
+
+# MSBuild Binary and Structured Log
+*.binlog
+
+# NVidia Nsight GPU debugger configuration file
+*.nvuser
+
+# MFractors (Xamarin productivity tool) working folder
+.mfractor/
+
+# Local History for Visual Studio
+.localhistory/
+
+# BeatPulse healthcheck temp database
+healthchecksdb
+
+# Backup folder for Package Reference Convert tool in Visual Studio 2017
+MigrationBackup/
+
+### VisualStudio ###
+
+# User-specific files
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+
+# Mono auto generated files
+
+# Build results
+
+# Visual Studio 2015/2017 cache/options directory
+# Uncomment if you have tasks that create the project's static files in wwwroot
+
+# Visual Studio 2017 auto generated files
+
+# MSTest test Results
+
+# NUnit
+
+# Build Results of an ATL Project
+
+# Benchmark Results
+
+# .NET Core
+
+# StyleCop
+
+# Files built by Visual Studio
+
+# Chutzpah Test files
+
+# Visual C++ cache files
+
+# Visual Studio profiler
+
+# Visual Studio Trace Files
+
+# TFS 2012 Local Workspace
+
+# Guidance Automation Toolkit
+
+# ReSharper is a .NET coding add-in
+
+# JustCode is a .NET coding add-in
+
+# TeamCity is a build add-in
+
+# DotCover is a Code Coverage Tool
+
+# AxoCover is a Code Coverage Tool
+
+# Visual Studio code coverage results
+
+# NCrunch
+
+# MightyMoose
+
+# Web workbench (sass)
+
+# Installshield output folder
+
+# DocProject is a documentation generator add-in
+
+# Click-Once directory
+
+# Publish Web Output
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+
+# NuGet Packages
+# NuGet Symbol Packages
+# The packages folder can be ignored because of Package Restore
+# except build/, which is used as an MSBuild target.
+# Uncomment if necessary however generally it will be regenerated when needed
+# NuGet v3's project.json files produces more ignorable files
+
+# Microsoft Azure Build Output
+
+# Microsoft Azure Emulator
+
+# Windows Store app package directories and files
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+# but keep track of directories ending in .cache
+
+# Others
+
+# Including strong name files can present a security risk
+# (https://github.com/github/gitignore/pull/2483#issue-259490424)
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+
+# RIA/Silverlight projects
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+
+# SQL Server files
+
+# Business Intelligence projects
+
+# Microsoft Fakes
+
+# GhostDoc plugin setting file
+
+# Node.js Tools for Visual Studio
+
+# Visual Studio 6 build log
+
+# Visual Studio 6 workspace options file
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+
+# Visual Studio LightSwitch build output
+
+# Paket dependency manager
+
+# FAKE - F# Make
+
+# CodeRush personal settings
+
+# Python Tools for Visual Studio (PTVS)
+
+# Cake - Uncomment if you are using it
+# tools/**
+# !tools/packages.config
+
+# Tabs Studio
+
+# Telerik's JustMock configuration file
+
+# BizTalk build output
+
+# OpenCover UI analysis results
+
+# Azure Stream Analytics local run output
+
+# MSBuild Binary and Structured Log
+
+# NVidia Nsight GPU debugger configuration file
+
+# MFractors (Xamarin productivity tool) working folder
+
+# Local History for Visual Studio
+
+# BeatPulse healthcheck temp database
+
+# Backup folder for Package Reference Convert tool in Visual Studio 2017
+
+# End of https://www.gitignore.io/api/csharp,visualstudio
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..ca3c8b8
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+# Resizor
diff --git a/Resizor.sln b/Resizor.sln
new file mode 100644
index 0000000..75f29c7
--- /dev/null
+++ b/Resizor.sln
@@ -0,0 +1,31 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29230.47
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Resizor", "Resizor\Resizor.csproj", "{EED8B478-D539-41D2-9A39-8349099B298A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CC-Functions.W32", "..\CC-Functions.W32\CC-Functions.W32\CC-Functions.W32.csproj", "{CAE1CDB1-057D-4A4C-80D1-A7912715B79C}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {EED8B478-D539-41D2-9A39-8349099B298A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EED8B478-D539-41D2-9A39-8349099B298A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EED8B478-D539-41D2-9A39-8349099B298A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EED8B478-D539-41D2-9A39-8349099B298A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CAE1CDB1-057D-4A4C-80D1-A7912715B79C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CAE1CDB1-057D-4A4C-80D1-A7912715B79C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CAE1CDB1-057D-4A4C-80D1-A7912715B79C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CAE1CDB1-057D-4A4C-80D1-A7912715B79C}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {FB20C0F5-E59B-4A0C-ACDB-485EC38AC6C4}
+ EndGlobalSection
+EndGlobal
diff --git a/Resizor/App.config b/Resizor/App.config
new file mode 100644
index 0000000..227ccb0
--- /dev/null
+++ b/Resizor/App.config
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ NumPad4
+
+
+ 4, 4
+
+
+
+
\ No newline at end of file
diff --git a/Resizor/Immediate Resize.Designer.cs b/Resizor/Immediate Resize.Designer.cs
new file mode 100644
index 0000000..b3b8f0e
--- /dev/null
+++ b/Resizor/Immediate Resize.Designer.cs
@@ -0,0 +1,80 @@
+namespace Resizor
+{
+ partial class immResize
+ {
+ ///
+ /// 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()
+ {
+ this.forcePos = new System.Windows.Forms.CheckBox();
+ this.SuspendLayout();
+ //
+ // forcePos
+ //
+ this.forcePos.AutoSize = true;
+ this.forcePos.BackColor = System.Drawing.Color.Black;
+ this.forcePos.ForeColor = System.Drawing.Color.White;
+ this.forcePos.Location = new System.Drawing.Point(12, 12);
+ this.forcePos.Name = "forcePos";
+ this.forcePos.Size = new System.Drawing.Size(93, 17);
+ this.forcePos.TabIndex = 0;
+ this.forcePos.Text = "Force Position";
+ this.forcePos.UseVisualStyleBackColor = false;
+ this.forcePos.CheckedChanged += new System.EventHandler(this.ForcePos_CheckedChanged);
+ //
+ // immResize
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.BackColor = System.Drawing.Color.White;
+ this.ClientSize = new System.Drawing.Size(800, 450);
+ this.ControlBox = false;
+ this.Controls.Add(this.forcePos);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "immResize";
+ this.Opacity = 0.5D;
+ this.ShowIcon = false;
+ this.ShowInTaskbar = false;
+ this.Text = "Form1";
+ this.TopMost = true;
+ this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
+ this.Load += new System.EventHandler(this.Form1_Load);
+ this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
+ this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseDown);
+ this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove);
+ this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseUp);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.CheckBox forcePos;
+ }
+}
+
diff --git a/Resizor/Immediate Resize.cs b/Resizor/Immediate Resize.cs
new file mode 100644
index 0000000..63f467b
--- /dev/null
+++ b/Resizor/Immediate Resize.cs
@@ -0,0 +1,116 @@
+using System;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Windows.Forms;
+using CC_Functions.W32;
+using Resizor.Properties;
+
+namespace Resizor
+{
+ public partial class immResize : Form
+ {
+ bool down;
+ Point startP;
+ Wnd32 window;
+ Rectangle prevR;
+ Rectangle screen = Screen.PrimaryScreen.WorkingArea;
+ public immResize()
+ {
+ prevR = new Rectangle();
+ window = Wnd32.foreground();
+ InitializeComponent();
+ Rectangle tmp = window.position;
+ forcePos.Location = new Point(tmp.X + tmp.Width / 2 - forcePos.Width / 2, tmp.Y);
+ forcePos.Checked = Program.ctx.windowSizeSetters.Where(Window => Window.Window == window).ToArray().Length > 0;
+ }
+
+ private void Form1_Load(object sender, EventArgs e)
+ {
+ Wnd32 self = Wnd32.fromForm(this);
+ self.MakeOverlay();
+ if (self != window)
+ self.isForeground = true;
+ }
+ private void Form1_Paint(object sender, PaintEventArgs e)
+ {
+ Graphics g = e.Graphics;
+ PointF divisor = Settings.Default.ResizeDividor;
+ Rectangle rect;
+ if (down)
+ rect = FRect();
+ else
+ rect = CRect();
+ g.FillRectangle(new SolidBrush(Color.LightBlue), rect);
+ Pen gridPen = new Pen(Color.Black, 2);
+ PointF div = getDiv();
+ for (int x = 0; x < divisor.X; x++)
+ {
+ g.DrawLine(gridPen, x * div.X, 0, x * div.X, screen.Height);
+ }
+ for (int y = 0; y < divisor.Y; y++)
+ {
+ g.DrawLine(gridPen, 0, y * div.Y, screen.Width, y * div.Y);
+ }
+ g.DrawRectangle(new Pen(Color.Blue, 2), rect);
+ }
+ PointF getDiv() => new PointF(screen.Width / Settings.Default.ResizeDividor.X, screen.Height / Settings.Default.ResizeDividor.Y);
+ Rectangle CRect() => p2r(f2s(MousePosition, getDiv()), c2s(MousePosition, getDiv()));
+ Rectangle FRect()
+ {
+ Point min = f2s(new Point(Math.Min(MousePosition.X, startP.X), Math.Min(MousePosition.Y, startP.Y)), getDiv());
+ Point max = c2s(new Point(Math.Max(MousePosition.X, startP.X), Math.Max(MousePosition.Y, startP.Y)), getDiv());
+ return p2r(min, max);
+ }
+ Point f2s(Point p, PointF step) => new Point(f2s(p.X, step.X), f2s(p.Y, step.Y));
+ Point c2s(Point p, PointF step) => new Point(c2s(p.X, step.X), c2s(p.Y, step.Y));
+ Rectangle p2r(Point p1, Point p2) => new Rectangle(Math.Min(p1.X, p2.X), Math.Min(p1.Y, p2.Y), Math.Abs(p1.X - p2.X), Math.Abs(p1.Y - p2.Y));
+ int f2s(int f, double step) => (int)d2f(Math.Floor(f / step) * step);
+ int c2s(int f, double step) => (int)d2f(Math.Ceiling(f / step) * step);
+ float d2f(double f)
+ {
+ float result = (float)f;
+ if (float.IsPositiveInfinity(result))
+ return float.MaxValue;
+ else if (float.IsNegativeInfinity(result))
+ return float.MinValue;
+ return result;
+ }
+
+ private void Form1_MouseDown(object sender, MouseEventArgs e)
+ {
+ down = true;
+ startP = MousePosition;
+ }
+
+ private void Form1_MouseMove(object sender, MouseEventArgs e)
+ {
+ Rectangle rect;
+ if (down)
+ rect = FRect();
+ else
+ rect = CRect();
+ if (prevR != rect)
+ Invalidate();
+ prevR = rect;
+ }
+
+ private void Form1_MouseUp(object sender, MouseEventArgs e)
+ {
+ Rectangle rect = FRect();
+ window.position = rect;
+ if (forcePos.Checked)
+ WindowSizeSetter.make(window, rect);
+ Close();
+ }
+
+ private void ForcePos_CheckedChanged(object sender, EventArgs e)
+ {
+ if ((!forcePos.Checked) && Program.ctx.windowSizeSetters.Where(Window => Window.Window == window).ToArray().Length > 0)
+ {
+ WindowSizeSetter.TryRemove(window);
+ Close();
+ }
+ }
+ }
+}
diff --git a/Resizor/Immediate Resize.resx b/Resizor/Immediate Resize.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/Resizor/Immediate Resize.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Resizor/Program.cs b/Resizor/Program.cs
new file mode 100644
index 0000000..d258f6b
--- /dev/null
+++ b/Resizor/Program.cs
@@ -0,0 +1,123 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Linq;
+using System.Windows.Forms;
+using CC_Functions.W32;
+using Resizor.Properties;
+using Timer = System.Windows.Forms.Timer;
+
+namespace Resizor
+{
+ static class Program
+ {
+ public static KeyboardHook kh;
+ public static NIApplicationContext ctx;
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ notifyIcon1 = new NotifyIcon();
+ ContextMenu contextMenu = new ContextMenu();
+ MenuItem settings = new MenuItem();
+ MenuItem exititem = new MenuItem();
+ contextMenu.MenuItems.AddRange(new MenuItem[] { settings, exititem });
+ settings.Index = 0;
+ settings.Text = "Settings";
+ settings.Click += new EventHandler(openSettings);
+ exititem.Index = 1;
+ exititem.Text = "Exit";
+ exititem.Click += new EventHandler(exit);
+ notifyIcon1.Icon = Resources.Resizor;
+ notifyIcon1.Text = "Resizor";
+ notifyIcon1.ContextMenu = contextMenu;
+ notifyIcon1.Visible = true;
+ kh = new KeyboardHook();
+ kh.OnKeyPress += keyDown;
+ ctx = new NIApplicationContext();
+ Application.Run(ctx);
+ kh.Dispose();
+
+ }
+
+ private static void keyDown(KeyboardHookEventArgs e)
+ {
+ if (e.Key == Settings.Default.ImmediateResizeKey)
+ {
+ new immResize().Show();
+ }
+ }
+
+ private static NotifyIcon notifyIcon1;
+ private static void openSettings(object sender, EventArgs e) => new SettingsForm().Show();
+ private static void exit(object Sender, EventArgs e) => Application.Exit();
+ public class NIApplicationContext : ApplicationContext
+ {
+ public List windowSizeSetters = new List();
+ Timer tim;
+ public NIApplicationContext()
+ {
+ tim = new Timer();
+ tim.Enabled = true;
+ tim.Interval = 100;
+ tim.Tick += tick;
+ }
+ private void tick(object sender, EventArgs e)
+ {
+ List toRemove = new List();
+ for (int i = 0; i < windowSizeSetters.Count; i++)
+ {
+ if (windowSizeSetters[i].Window.stillExists)
+ windowSizeSetters[i].Window.position = windowSizeSetters[i].Pos;
+ else
+ toRemove.Add(i);
+ }
+ for (int i = 0; i < toRemove.Count; i++)
+ windowSizeSetters.RemoveAt(toRemove[i]);
+ Console.WriteLine(windowSizeSetters.Count.ToString());
+ }
+ }
+ }
+
+ class WindowSizeSetter
+ {
+ public readonly Wnd32 Window;
+ public Rectangle Pos;
+ WindowSizeSetter(Wnd32 window, Rectangle pos)
+ {
+ Window = window;
+ Pos = pos;
+ }
+
+ public static void make(Wnd32 window, Rectangle pos)
+ {
+ WindowSizeSetter[] match = Program.ctx.windowSizeSetters.Where(Window => Window.Window == window).ToArray();
+ switch (match.Length)
+ {
+ case 0:
+ Program.ctx.windowSizeSetters.Add(new WindowSizeSetter(window, pos));
+ break;
+ case 1:
+ match[0].Pos = pos;
+ break;
+ default:
+ for (int i = 0; i < match.Length; i++)
+ {
+ if (i == match.Length - 1)
+ match[0].Pos = pos;
+ else
+ Program.ctx.windowSizeSetters.Remove(match[i]);
+ }
+ break;
+ }
+ }
+
+ public static void TryRemove(Wnd32 window)
+ {
+ WindowSizeSetter[] match = Program.ctx.windowSizeSetters.Where(Window => Window.Window == window).ToArray();
+ if (match.Length > 0)
+ Program.ctx.windowSizeSetters.RemoveAll(Window => Window.Window == window);
+ }
+ }
+}
diff --git a/Resizor/Properties/AssemblyInfo.cs b/Resizor/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..24d1078
--- /dev/null
+++ b/Resizor/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("Resizor")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Resizor")]
+[assembly: AssemblyCopyright("Copyright © 2019")]
+[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("eed8b478-d539-41d2-9a39-8349099b298a")]
+
+// 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.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Resizor/Properties/Resources.Designer.cs b/Resizor/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..c43b736
--- /dev/null
+++ b/Resizor/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 Resizor.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("Resizor.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 Resizor {
+ get {
+ object obj = ResourceManager.GetObject("Resizor", resourceCulture);
+ return ((System.Drawing.Icon)(obj));
+ }
+ }
+ }
+}
diff --git a/Resizor/Properties/Resources.resx b/Resizor/Properties/Resources.resx
new file mode 100644
index 0000000..f28c892
--- /dev/null
+++ b/Resizor/Properties/Resources.resx
@@ -0,0 +1,1253 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABACcAAAAnAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo0HxAKg78QCiPvEApzzvAKc8
+ 8QGmO/EDpjvwBKU68AGmOvAApTnvAKU18gCmN/MApDfvDaQ18CykNfBSozTwd6Mz8JijM/C2ojLwzaIx
+ 8N6iMPDqoTDw9KEv8PqhLvD+oC7v/qAt7/qgLO/0nyzv6p8r796fKu/Nninvtp4p75ieKO93nSfvUp0n
+ 7zCdJe8OnBzvAJ0j7wCbJe8AmyPuAJsj7gGbIe8EmyHuBJog7gGaIO4Anh/yAJog7gCbHe8AAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AACiRugAqD7wAKg98gCrPfMAqD7xAac98QOnPfEDsTz1AKY58ACqOu8ApzjwAqU58CKlOfBYpTjwj6U3
+ 8L6kNvDjpDXw+aQ18P+jNPD/ozPw/6Mz8P+iMvD/ojHw/6Iw8P+hMPD/oS/w/6Eu8P+gLu//oC3v/6As
+ 7/+fLO//nyvv/58q7/+eKe//ninv/54o7/+dJ+//nSfv+50m7+WdJe/AnCTvjpwj71icI+8kmSPxApcg
+ 8gCbIu8AnBfnAJof7gOaH+4DmR3uAZQd6wCXH+0Amh3vAJka5gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsQvAAqUDxAK1E8gCsQvIAqEDxAqg/8QSoPvIApzvxAKg8
+ 8gCnPPEOpjvxSaY68JKmOvDTpTnw+qU58P+lOPD/pDfw/6Q28P+kNfD/pDXw/qM08PyjM/D8ozPw/aIy
+ 8P2iMfD+ojDw/qEw8P+hL/D/oS7w/6Au7/+gLe//oCzv/58s7/6fK+/+nyrv/Z4p7/2eKe/8nijv/J0n
+ 7/2dJ+//nSbv/5wl7/+cJO//nCPv/5wj7/ubIu/TmyLvk5sh7kuaIe4Omh/tAJsg7gCYH+0AmR3uBJkc
+ 7gKWG+wAkxfsAJgc7gCZHO0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqQvEAqULxAKlC
+ 8QCoQvIAqUHxA6lB8QKnOvIAqj7xAKg98QqnPvFLpz3xo6c88eimO/H/pjrw/qY68P+mOfD/pTnw/KU4
+ 8PulN/D8pDbw/qQ18P6kNfD/ozTw/6Mz8P+jM/D/ojLw/6Ix8P+iMPD/oTDw/6Ev8P+hLvD/oC7v/6At
+ 7/+gLO//nyzv/58r7/+fKu//ninv/54p7/+eKO//nSfv/50n7/+dJu/+nSXv/Jwk7/ucI+/8myPv/5si
+ 7/+bIu//myHu/5og7uqaH+6kmh7uTZgd7gqXHO0AmSHuAJgb7gKYG+4DmBvuAJga7wCYG+4AmR3vAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAACpRvEAqkLxAKpD8ACqQ/AAqkLxA6pC8QKiOvEApD7xAKhA8SmoP/GKqD7x4ac+
+ 8f+nPfH+pzzx/6Y78f2mOvD7pjrw/aU58P6lOfD/pTjw/6Q38P+kNvD/pDXw/6Q18P+jNPD/ozPw/6Mz
+ 8P+iMvD/ojHw/6Iw8P+hMPD/oS/w/6Eu8P+gLu//oC3v/6As7/+fLO//nyvv/58q7/+eKe//ninv/54o
+ 7/+dJ+//nSfv/50m7/+dJe//nCTv/5wj7/+cI+/+myLv/Zsi7/ubIe79miDu/5of7v6aHu7/mR7u4pkd
+ 7ouZHO4rnR/vAJ8k7wCYGu4ClxruA5cY7gCXGO4AlxnuAJca7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoQ/MAqkTxAKpF8gCqRfIAqkTxA6pD
+ 8QKoS/cApET3AalB8UGpQPGzqEDx+6g/8f+oPvH/pz7x/ac98funPPH+pjvx/6Y68P+mOvD/pTnw/6U5
+ 8P+lOPD/pTfw/6Q28P+kNfD/pDXw/6M08P+jM/D/ozPw/6Iy8P+iMfD/ojDw/6Ew8P+hL/D/oS7w/6Au
+ 7/+gLe//oCzv/58s7/+fK+//nyrv/54p7/+eKe//nijv/50n7/+dJ+//nSbv/50l7/+cJO//nCPv/5wj
+ 7/+bIu//myLv/5sh7v+aIO7+mh/u+5oe7v2ZHu7/mR3u/5kc7vuYHO62mBvuRpcb8AKXGfEAlxnuApcY
+ 7gOWF+4AlxjuAJcY7gCTF+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AACZM/8Aq0XyAKlF8ACqRfAAq0XxAqtF8QOtRu0AqkDsAqpC8U+pQvHIqUHx/6lA8f+oQPH+qD/x+6g+
+ 8f2nPvH/pz3x/6c88f+mO/H/pjrw/6Y68P+mOfD/pTnw/6U48P+lN/D/pDbw/6Q18P+kNfD/ozTw/6Mz
+ 8P+jM/D/ojLw/6Ix8P+iMPD/oTDw/6Ev8P+hLvD/oC7v/6At7/+gLO//nyzv/58r7/+fKu//ninv/54p
+ 7/+eKO//nSfv/50n7/+dJu//nSXv/5wk7/+cI+//nCPv/5si7/+bIu//myHu/5og7v+aH+7/mh7u/5ke
+ 7v2ZHe77mRzu/pgc7v+YG+7/mBruy5ca7lGYFe4DlhLuAJYX7gOWF+4ClhftAJYX7ACWF+8AAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArUfxAKtG8QCrRvEAq0bxAatG8QOrRPABq0XvAKpE
+ 8UaqQ/HJqkPx/6lC8f6pQfH9qUDx/KhA8f6oP/H/qD7x/6c+8f+nPfH/pzzx/6Y78f+mOvD/pjrw/6Y5
+ 8P+lOfD/pTjw/6U38P+kNvD/pDXw/6Q18P+jNPD/ozPw/6Mz8P+iMvD/ojHw/6Iw8P+hMPD/oS/w/6Eu
+ 8P+gLu//oC3v/6As7/+fLO//nyvv/58q7/+eKe//ninv/54o7/+dJ+//nSfv/50m7/+dJe//nCTv/5wj
+ 7/+cI+//myLv/5si7/+bIe7/miDu/5of7v+aHu7/mR7u/5kd7v+ZHO7/mBzu/Jgb7v2YGu7+lxnu/5cZ
+ 7syXGO5GlRntAJYZ7QGWFu4DlhbuAZYW7gCWFu4AlhTvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqlX/AKxI
+ 8QCqUfUAryzmAKxH8QOrRvECq0bxAKtF8SurRfG2qkTx/6pD8f+qQ/H8qULx/KlB8f+pQPH/qEDx/6g/
+ 8f+oPvH/pz7x/6c98f+nPPH/pjvx/6Y68P+mOvD/pjnw/6U58P+lOPD/pTfw/6Q28P+kNfD/pDXw/6M0
+ 8P+jM/D/ozPw/6Iy8P+iMfD/ojDw/6Ew8P+hL/D/oS7w/6Au7/+gLe//oCzv/58s7/+fK+//nyrv/54p
+ 7/+eKe//nijv/50n7/+dJ+//nSbv/50l7/+cJO//nCPv/5wj7/+bIu//myLv/5sh7v+aIO7/mh/u/5oe
+ 7v+ZHu7/mR3u/5kc7v+YHO7/mBvu/5ga7vyXGe78lxnu/5cY7v+WF+6zlRfuKZUW7QCVFu4ClRXuA5Q/
+ 8QCVB+0AlRTuAIsX6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAK1J8wCsSfIArEnyAKxJ8gGsSPEEq0fxAKtG8QurRvGIq0Xx+atF
+ 8f+qRPH8qkPx/KpD8f+pQvH/qUHx/6lA8f+oQPH/qD/x/6g+8f+nPvH/pz3x/6c88f+mO/H/pjrw/6Y6
+ 8P+lOfD/pTnw/6U48P+kN/D/pDbw/6Q18P+kNfD/ozTw/6Mz8P+jM/D/ojLw/6Iy8P+iMfD/oTDw/6Ev
+ 8P+hLvD/oC7v/6At7/+gLO//nyvv/58q7/+fKu//ninv/54p7/+eKO//nSfv/50n7/+dJu//nSXv/5wk
+ 7/+cI+//nCPv/5si7/+bIu//myHu/5og7v+aH+7/mh7u/5ke7v+ZHe7/mRzu/5gc7v+YG+7/mBru/5cZ
+ 7v+XGe78lxju/JYX7v+WF+75lhbuh5YV7gqWFO4AlRTuA5UT7QGVE+0AlRPtAJUU7QAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACuSvIArUnyAK1J
+ 8gCtSfICrUjxA61H8QCsR/FDrEfx3KtG8f+rRfH8q0Xx/KpE8f+qQ/H/qkPx/6lC8f+pQfH/qUDx/6hA
+ 8f+oP/H/qD7x/6c+8f+nPfH/pzzx/6Y78f+mOvD/pjrw/6U58P+lOPD/pTfw/6Q38P+kN/D/pTbw/6Q2
+ 8P+jNfD/ozTw/6My8P+iMfD/ojDw/6Ev8P+hL/D/oS7w/6Eu8P+gLu//oC7v/6At7/+gLe//nyzv/58r
+ 7/+eKu//nijv/54n7/+dJu//nCbv/50l7/+dJe//nCXv/5wk7/+cI+//myLv/5si7/+bIe7/miDu/5of
+ 7v+aHu7/mR7u/5kd7v+ZHO7/mBzu/5gb7v+YGu7/lxnu/5cZ7v+XGO7/lhfu/JYX7vyWFu7/lRXu2ZUU
+ 7kOVFe4AlBTuA5QT7QKUE+0AlBPtAJQT7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAArUvyAK5M8wCuTPMArUryA61O9wCsSvQGrEjxjaxH8f+sR/H/q0bx+6tF
+ 8f6rRfH/qkTx/6pD8f+qQ/H/qULx/6lB8f+pQPH/qEDx/6g/8f+oPvH/pz7x/6c98f+nPPH/pjvx/6Y6
+ 8P+mOvD/pjrw/6Y68P+mOfD/pTfw/6M08P+iMfD/oS7w/58r7/+fKu//nyrv/54q7/+fKu//nyvv/58s
+ 7/+gLe//oC3v/6Ev8P+hL/D/ojDw/6Ix8P+iMvD/ozLw/6My8P+iMvD/ojDw/6Au7/+fLO//nijv/5wl
+ 7/+bI+//myLv/5si7/+bIu//myLv/5sh7v+aIO7/mh/u/5oe7v+ZHu7/mR3u/5kc7v+YHO7/mBvu/5ga
+ 7v+XGe7/lxnu/5cY7v+WF+7/lhfu/pYW7vuVFe7/lRTu/5UU7o+VE+sHlhPpAJQS7QOUEuwAlBLsAJQS
+ 7QCAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArkvyAK5M8gCuTPIArkzyAa1K
+ 8gSuSfIArknyK6xJ8s6sSPH/rEfx+6xH8f2rRvH/q0Xx/6tF8f+qRPH/qkPx/6pD8f+pQvH/qUHx/6lA
+ 8f+oQPH/qD/x/6g+8f+nPfH/pzzx/6c88f+nPPH/pzzw/6c78P+lN/D/ojHw/58r8P+eJ+//nCXv/5wk
+ 7/+dJe//nSbv/50n7/+eKO//ninv/58q7/+fK+//oCzv/6At7/+gLe//oS/w/6Ev8P+hMPD/ojHw/6Iy
+ 8P+jM/D/ozTw/6M18P+kNvD/pDfw/6U48P+lN/D/ozXw/6Ix7/+fK+//nCXv/5oh7/+aIO//miDu/5og
+ 7v+aIO7/mh/u/5ke7v+ZHe7/mRzu/5gc7v+YG+7/mBru/5cZ7v+XGe7/lxju/5YX7v+WF+7/lhbu/5UV
+ 7v2VFe77lRTt/5UT7dCTE+0skxPtAJQS7QSTEe0BkxHtAJMR7QCUEOwAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAALFN8QCuTPIArkzyAK5M8gGuS/IErUrxAK1K8litSvLzrUny/6xI8vusR/H+rEfx/6tG
+ 8f+rRfH/q0Xx/6pE8f+qQ/H/qkPx/6lC8f+pQfH/qUDx/6hA8f+oP/H/qD7x/6c98f+oPvH/qD7x/6U5
+ 8P+iMO//nifv/5si7v+bIO//miHv/5wi7/+cJO//nSXv/50m7/+dJ+//nijv/54o7/+eKe//nyrv/58r
+ 7/+gLO//oC3v/6At7/+hL/D/oS/w/6Ew8P+iMfD/ojLw/6Mz8P+jM/D/ozTw/6Q18P+kNvD/pDfw/6U4
+ 8P+lOvD/pzvw/6Y88P+mOvH/pDXw/58s8P+cI+7/mR7u/5ke7v+aH+7/mR7u/5kd7v+ZHO7/mBzu/5gb
+ 7v+YGu7/lxnu/5cZ7v+XGO7/lhfu/5YX7v+WFu7/lRXu/5UV7v6VFO77lBPt/5QS7fSUEu1ZlBLtAJMR
+ 7QSTEO0BkxDtAJMQ7QCTD+4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACuTfIArk3yAK5N8gCuTfICq0zyAoE5
+ 7ACtS/KJrUry/61K8v2sSfL8rEjy/6xH8f+sR/H/q0bx/6tF8f+rRfH/qkTx/6pD8f+qQ/H/qULx/6lB
+ 8f+pQPH/qD/x/6g/8f+pQPH/qD7x/6Q18P+eKe//miDu/5kd7v+ZHu7/miDu/5si7/+bI+//nCPv/5wk
+ 7/+cJe//nSbv/50n7/+eKO//nijv/54p7/+fKu//nyvv/6As7/+gLe//oC3v/6Ev8P+hL/D/oTDw/6Ix
+ 8P+iMvD/ozPw/6Mz8P+jNfD/pDXw/6Q28P+lN/D/pTjw/6U58P+mOfD/pjrw/6c88f+oPvH/qD/x/6c8
+ 8f+jM/D/nifv/5ke7v+YHO7/mR3u/5kd7v+YHO7/mBvu/5ga7v+XGe7/lxnu/5cY7v+WF+7/lhfu/5YW
+ 7v+VFe7/lRXu/5UU7f+VE+38lBLt/ZQS7f+UEe2KoRPyAJQQ7QKTD+0Ckw/tAJMP7QCSDuwAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAr07yAK9O8gCvTvIAr03yA6pI8QCtTfIJrkzyrK5L8v+tSvL7rUry/q1J8v+sSPH/rEfx/6xH
+ 8f+rRvH/q0Xx/6tF8f+qRPH/qkPx/6pD8f+pQvH/qUDx/6lA8f+pQvH/qD/x/6My8P+bI+//mBvu/5gb
+ 7v+ZHu7/mh/u/5og7v+bIe7/myLv/5si7/+cI+//nCTv/5wl7/+dJu//nSfv/54o7/+eKO//ninv/58q
+ 7/+fK+//oCzv/6At7/+gLe//oS/w/6Ev8P+hMPD/ojHw/6Iy8P+jM/D/ozPw/6M18P+kNfD/pDbw/6U3
+ 8P+lOPD/pTnw/6Y68P+mOvD/pjvx/6c88f+nPfH/qD7x/6lB8f+pQfH/pjnw/54q7/+ZHe7/mBru/5gc
+ 7v+YHO7/mBru/5cZ7v+XGe7/lxju/5YX7v+WF+7/lhbu/5UV7v+VFe7/lRTu/5QT7f+UEu3+lBLt+5MR
+ 7f+TEO2slA/uCZkR7ACTD+0Dkg7tAJIO7QCTDu0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK9P8gCvTvIAr07yAK9O8gOuTvEArk7yFa5M
+ 8seuTPL/rUvy+q1K8v+tSvL/rEny/6xI8f+sR/H/rEfx/6tG8f+rRfH/q0Xx/6pE8f+qQ/H/qkLx/6lB
+ 8f+qQ/H/qUHx/6Iy8P+aIO7/lxju/5ca7v+ZHe7/mR7u/5ke7v+aH+7/miDu/5sh7v+bIu//myLv/5wj
+ 7/+cJO//nCXv/50m7/+dJ+//nijv/54o7/+eKe//nyrv/58r7/+gLO//oC3v/6At7/+hL/D/oS/w/6Ew
+ 8P+iMfD/ojLw/6Mz8P+jM/D/ozXw/6Q18P+kNvD/pTfw/6U48P+lOfD/pjrw/6Y68P+mO/H/pzzx/6c9
+ 8f+oPvH/qD7x/6g/8f+qQvH/qkTx/6c88P+fKu//mBvu/5cZ7v+YG+7/lxru/5cZ7v+XGO7/lhfu/5YX
+ 7v+WFu7/lRXu/5UV7v+VFO7/lRPt/5QS7f+UEu3/kxHt+pMQ7f+TEO3Hkw7tFpMO7QCSDu0Dkg7tAJIO
+ 7QCSDe4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AACwT/IAr0/yAK9P8gCvTvIDr07yAK9O8huuTfLTrkzy/65M8vutS/L/rUry/61K8v+tSfL/rEjy/6xH
+ 8f+sR/H/q0bx/6tF8f+rRfH/qkTx/6pC8f+qRPH/qkTx/6Q28P+bIO//lhfu/5cY7v+YG+7/mBzu/5kc
+ 7v+ZHe7/mR7u/5of7v+aIO7/myHu/5si7/+bIu//nCPv/5wk7/+cJe//nSbv/50n7/+eKO//nijv/54p
+ 7/+fKu//nyvv/6As7/+gLe//oC3v/6Ev8P+hL/D/oTDw/6Ix8P+iMvD/ozPw/6Mz8P+jNfD/pDXw/6Q2
+ 8P+lN/D/pTjw/6U58P+mOvD/pjvw/6Y78f+nPPH/pz3x/6g+8f+oP/H/qEDx/6lA8f+pQfH/qkTx/6tG
+ 8f+mPPD/nSbv/5cY7v+XGO7/lxru/5cY7v+WF+7/lhfu/5YW7v+VFe7/lRXu/5UU7v+VE+3/lBLt/5QS
+ 7f+UEe3/kxDt+5MQ7f+TD+3Ukg7tHJEO7QCSDe0Dkg3tAJIN7QCSDO0AAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArlHwALBQ8gCwUPIAr0/yA69N8gCvTvIhr07y265N
+ 8v+uTPL7rkzy/61L8v+tSvL/rUry/61J8v+sSPL/rEfx/6xH8f+rRvH/q0Xx/6tE8f+qQ/H/q0bx/6g+
+ 8f+cJe//lRXu/5YW7v+XGe7/mBru/5ga7v+YHO7/mRzu/5kd7v+ZHu7/mh/u/5og7v+bIe7/myLv/5si
+ 7/+cI+//nCTv/5wl7/+dJu//nSfv/54o7/+eKO//ninv/58q7/+fK+//oCzv/6At7/+gLe//oS/w/6Ev
+ 8P+hMPD/ojHw/6Iy8P+jM/D/ozPw/6M18P+kNfD/pDbw/6U38P+lOPD/pTnw/6Y68P+mO/D/pjvx/6c8
+ 8f+nPfH/qD7x/6g/8f+oQPH/qUDx/6lC8f+pQvH/qkLx/6tG8f+sR/H/pTfw/5ke7v+WFu7/lxju/5YY
+ 7v+WF+7/lhbu/5UV7v+VFe7/lRTu/5UT7f+UEu3/lBLt/5MR7f+TEO3/kxDt+5MP7f+SDu3ckg7tIpMO
+ 7QCRDe0DkQztAJEM7QCTC+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK9Q
+ 8QCwUfIAsFDyAK9Q8gOuT/IAr0/yHK9P8tuvTvL/rk3y+65M8v+uTPL/rUvy/61K8v+tSvL/rUny/6xI
+ 8v+sR/H/rEfx/6tG8f+rRPH/q0bx/6tG8f+iMPD/lxju/5UT7v+WF+7/lxju/5cZ7v+XGu7/mBru/5gc
+ 7v+ZHO7/mR3u/5ke7v+aH+7/miDu/5sh7v+bIu//myLv/5wj7/+cJO//nCXv/50m7/+dJ+//nijv/54o
+ 7/+eKe//nyrv/58r7/+gLO//oC3v/6At7/+hL/D/oS/w/6Ew8P+iMfD/ojLw/6Mz8P+jM/D/ozXw/6Q1
+ 8P+kNvD/pTfw/6U48P+lOfD/pjrw/6Y78P+mO/H/pzzx/6c98f+oPvH/qD/x/6hA8f+pQPH/qULx/6pC
+ 8f+qQ/H/qkTx/6tF8f+sSfH/qkTx/6As7/+WFu7/lhbu/5YY7v+WFu7/lRXu/5UV7v+VFO7/lRPt/5QS
+ 7f+UEu3/lBHt/5MQ7f+TEO3/kw/t+5IO7f+SDe3bkgztHZIM7QCRDO0DkQvtAJEL7QCQC+wAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2Sf8AsFHyALBR8gCwUPICsVHyALBR8hevT/LTr0/y/69O
+ 8vuuTfL/rkzy/65M8v+uS/L/rUry/61K8v+tSfL/rEjx/6xH8f+sR/H/q0Xx/6xI8f+pQfH/myLv/5MR
+ 7v+VFe7/lhfu/5YX7v+XGO7/lxnu/5ca7v+YGu7/mBzu/5kc7v+ZHe7/mR7u/5of7v+aIO7/myHu/5si
+ 7/+bIu//nCPv/5wk7/+cJe//nSbv/50n7/+eKO//nijv/54p7/+fKu//nyvv/6As7/+gLe//oC3v/6Ev
+ 8P+hL/D/oTDw/6Ix8P+iMvD/ozPw/6Mz8P+jNfD/pDXw/6Q28P+lN/D/pTjw/6U58P+mOvD/pjvw/6Y7
+ 8f+nPPH/pz3x/6g+8f+oP/H/qEDx/6lA8f+pQvH/qkLx/6pD8f+qRPH/q0Xx/6tF8f+sR/H/rkvx/6Y6
+ 8P+YG+7/lRTu/5YX7v+VFe7/lRXu/5UU7v+VE+3/lBLt/5QS7f+UEe3/kxDt/5MQ7f+TD+3/kg7t+5IN
+ 7f+SDe3TkAvtF5AL7QCRDO0CkQvtAJEL7QCAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALBS
+ 8gCwUvIAsFHyAa9U7gCvUfEJsFDyxa9Q8v+vT/L7r07y/65N8v+uTPL/rkzy/65L8v+tSvL/rUry/6xJ
+ 8v+sSPL/rEfx/6tG8f+tSvH/pTjw/5YX7f+UEe3/lRXu/5YW7v+WFu7/lhfu/5cY7v+XGe7/lxru/5ga
+ 7v+YHO7/mRzu/5kd7v+ZHu7/mh/u/5og7v+bIe7/myLv/5si7/+cI+//nCTv/5wl7/+dJu//nSfv/54o
+ 7/+eKO//ninv/58q7/+fK+//oCzv/6At7/+gLe//oS/w/6Ev8P+hMPD/ojHw/6Iy8P+jM/D/ozPw/6M1
+ 8P+kNfD/pDbw/6U38P+lOPD/pTnw/6Y68P+mO/D/pjvx/6c88f+nPfH/qD7x/6g/8f+oQPH/qUDx/6lC
+ 8f+qQvH/qkPx/6pE8f+rRfH/q0bx/6tG8f+sR/H/rUvy/6tF8v+cJO//lBLu/5UW7v+VFe7/lRTt/5UT
+ 7f+UEu3/lBLt/5QR7f+TEO3/kxDt/5MP7f+SDu3/kg3t+5IM7f+RDO3FkQvtCo8L7ACRC+0BkQrtAJEK
+ 7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACxUvIAvlfqAK9R8gGyUvECtk3wALBR8quwUPL/r1Dy+69P
+ 8v+vTvL/rk3y/65M8v+uTPL/rkvy/61K8v+tSvL/rUny/6xI8f+sSPH/rUrx/6Au7/+TEO3/lBLt/5UV
+ 7v+VFO7/lhbu/5YW7v+WF+7/lxju/5cZ7v+XGu7/mBru/5gc7v+ZHO7/mR3u/5ke7v+aH+7/miDu/5sh
+ 7v+bIu//myLv/5wj7/+cJO//nCXv/50m7/+dJ+//nijv/54o7/+eKe//nyrv/58r7/+gLO//oC3v/6At
+ 7/+hL/D/oS/w/6Ew8P+iMfD/ojLw/6Mz8P+jM/D/ozXw/6Q18P+kNvD/pTfw/6U48P+lOfD/pjrw/6Y7
+ 8P+mO/H/pzzx/6c98f+oPvH/qD/x/6hA8f+pQPH/qULx/6pC8f+qQ/H/qkTx/6tF8f+rRvH/q0bx/6xI
+ 8f+sR/H/rUry/65M8v+hLvD/lBLu/5UU7v+VFO7/lBPt/5QS7f+UEu3/lBHt/5MQ7f+TEO3/kw/t/5IO
+ 7f+SDe3/kgzt+5EM7f+RC+2rkQ7uAJAK7QKRC+0BjRL9AJAJ7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAslTzALFT
+ 8gDEZ/UAsFLyBLBQ8gCwUfKKsFHy/7BQ8vuvUPL/r0/y/69O8v+uTfL/rkzy/65M8v+tS/L/rUry/61K
+ 8v+sSPL/rEny/61J8f+dJu//kg3t/5QS7f+UE+3/lRTt/5UU7v+WFu7/lhbu/5YX7v+XGO7/lxnu/5ca
+ 7v+YGu7/mBzu/5kc7v+ZHe7/mR7u/5of7v+aIO7/myHu/5si7/+bIu//nCPv/5wk7/+cJe//nSbv/50n
+ 7/+eKO//nijv/54p7/+fKu//nyvv/6As7/+gLe//oC3v/6Ev8P+hL/D/oTDw/6Ix8P+iMvD/ozPw/6Mz
+ 8P+jNfD/pDXw/6Q28P+lN/D/pTjw/6U58P+mOvD/pjvw/6Y78f+nPPH/pz3x/6g+8f+oP/H/qEDx/6lA
+ 8f+pQvH/qkLx/6pD8f+qRPH/q0Xx/6tG8f+rRvH/rEjx/6xI8v+tSfL/rUry/69P8v+kN/H/lBPu/5UT
+ 7f+VFO3/lBLt/5QS7f+UEe3/kxDt/5MQ7f+TD+3/kg7t/5IN7f+SDO3/kQzt+5EL7f+RC+2JkQvtAJAK
+ 7QRvAPUAkAntAI8J7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAALNN5gCxU/IAsVPyALFS8gSxUvIAsVLyWrBS8v+wUfL8sFDy/69Q
+ 8v+vT/L/r07y/65N8v+uTPL/rkzy/61L8v+tSvL/rUny/61L8v+sR/H/mh/u/5EM7f+UEu3/lBLt/5QT
+ 7f+VFO7/lRTu/5YW7v+WFu7/lhfu/5cY7v+XGe7/lxru/5ga7v+YHO7/mRzu/5kd7v+ZHu7/mh/u/5og
+ 7v+bIe7/myLv/5si7/+cI+//nCTv/5wl7/+dJu//nSfv/54o7/+eKO//ninv/58q7/+fK+//oCzv/6At
+ 7/+gLe//oS/w/6Ev8P+hMPD/ojHw/6Iy8P+jM/D/ozPw/6M18P+kNfD/pDbw/6U38P+lOPD/pTnw/6Y6
+ 8P+mO/D/pjvx/6c88f+nPfH/qD7x/6g/8f+oQPH/qUDx/6lC8f+qQvH/qkPx/6pE8f+rRfH/q0bx/6tG
+ 8f+sSPH/rEjx/61J8v+tSvL/rUry/7BQ8v+nPvH/lRXu/5QR7f+UE+3/lBLt/5QR7f+TEO3/kxDt/5MP
+ 7f+SDu3/kg3t/5IM7f+RDO3/kQvt/JEK7f+QCu1bkArtAJAK7QSQCe0AkAntAJkA5gAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsVTyALFU
+ 8gCxU/ICsVPyALFT8i+xUvLzsFHy/7BR8v6wUPL/r1Dy/69P8v+vTvL/rk3y/65M8v+uTPL/rkvy/61J
+ 8v+uS/L/rEfy/5gb7v+RC+3/kxHt/5QR7f+UEu3/lBPt/5UU7v+VFO7/lhbu/5YW7v+WF+7/lxju/5cZ
+ 7v+XGu7/mBru/5gc7v+ZHO7/mR3u/5ke7v+aH+7/miDu/5sh7v+bIu//myLv/5wj7/+cJO//nCXv/50m
+ 7/+dJ+//nijv/54o7/+eKe//nyrv/58r7/+gLO//oC3v/6At7/+hL/D/oS/w/6Ew8P+iMfD/ojLw/6Mz
+ 8P+jM/D/ozXw/6Q18P+kNvD/pTfw/6U48P+lOfD/pjrw/6Y78P+mO/H/pzzx/6c98f+oPvH/qD/x/6hA
+ 8f+pQPH/qULx/6pC8f+qQ/H/qkTx/6tF8f+rRvH/q0bx/6xI8f+sSPL/rUny/61K8v+tS/L/rkvy/7BR
+ 8v+pQfH/lhXt/5MR7f+UE+3/kxHt/5MQ7f+TEO3/kw/t/5IO7f+SDe3/kgzt/5EM7f+RC+3+kQvt/5AK
+ 7fOQCO0ukAntAJAJ7QKPCO0AjwjtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAALJU8gCzVPIAsFPyAadX9wCwVPMIsVPyzLFS8v+wUfL8sFHy/7BQ
+ 8v+vUPL/r0/y/69O8v+uTfL/rkzy/65M8v+tSvL/rkzy/6xI8v+XGe7/kQvt/5QQ7f+TEO3/lBHt/5QS
+ 7f+UE+3/lRTu/5UU7v+WFu7/lhbu/5YX7v+XGO7/lxnu/5ca7v+YGu7/mBzu/5kc7v+ZHe7/mR7u/5of
+ 7v+aIO7/myHu/5si7/+bIu//nCPv/5wk7/+cJe//nSbv/50n7/+eKO//nijv/54p7/+fKu//nyvv/6As
+ 7/+gLe//oC3v/6Ev8P+hL/D/oTDw/6Ix8P+iMvD/ozPw/6Mz8P+jNfD/pDXw/6Q28P+lN/D/pTjw/6U5
+ 8P+mOvD/pjvw/6Y78f+nPPH/pz3x/6g+8f+oP/H/qEDx/6lA8f+pQvH/qkLx/6pD8f+qRPH/q0Xx/6tG
+ 8f+rRvH/rEjx/6xI8v+tSfL/rUry/61L8v+uTPL/rUzy/7BR8v+qQ/H/lRXt/5MQ7f+UEu3/kxDt/5MQ
+ 7f+TD+3/kg7t/5IN7f+SDO3/kQzt/5EL7f+RC+38kArt/5AJ7cyPCu0HkBXpAJAJ7QGPCO4AkAbsAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAslXyALph
+ 9ACxVPIDsVPyALFT8o6xU/L/sVLy+7BR8v+wUfL/sFDy/69Q8v+vT/L/r07y/65N8v+uTfL/rkvy/65M
+ 8v+tSfL/mBru/5AK7f+TEO3/kw/t/5MQ7f+UEe3/lBLt/5QT7f+VFO7/lRTu/5YW7v+WFu7/lhfu/5cY
+ 7v+XGe7/lxru/5ga7v+YHO7/mRzu/5kd7v+ZHu7/mh/u/5og7v+bIe7/myLv/5si7/+cI+//nCTv/5wl
+ 7/+dJu//nSfv/54o7/+eKO//ninv/58q7/+fK+//oCzv/6At7/+gLe//oS/w/6Ev8P+hMPD/ojHw/6Iy
+ 8P+jM/D/ozPw/6M18P+kNfD/pDbw/6U38P+lOPD/pTnw/6Y68P+mO/D/pjvx/6c88f+nPfH/qD7x/6g/
+ 8f+oQPH/qUDx/6lC8f+qQvH/qkPx/6pE8f+rRfH/q0bx/6tG8f+sSPH/rEjy/61J8v+tSvL/rUvy/65M
+ 8v+uTfL/rkzy/7FS8v+pQvH/lRPt/5MQ7f+TEe3/kw/t/5MP7f+SDu3/kg3t/5IM7f+RDO3/kQvt/5EL
+ 7f+QCu37kAnt/5AJ7Y2QCu0AkAntA4gC6gCPB+0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAALJU8wCzVfQAslTyA7JU8gCyVPJHsVTy/7FT8v2xUvL/sFHy/7BR
+ 8v+wUPL/r1Dy/69P8v+vTvL/rk3y/65M8v+uTPL/rk3y/5kd7v+QCO3/kw/t/5IO7f+TD+3/kxDt/5QR
+ 7f+UEu3/lBPt/5UU7v+VFO7/lhbu/5YW7v+WF+7/lxju/5cZ7v+XGu7/mBru/5gc7v+ZHO7/mR3u/5ke
+ 7v+aH+7/miDu/5sh7v+bIu//myLv/5wj7/+cJO//nCXv/50m7/+dJ+//nijv/54o7/+eKe//nyrv/58r
+ 7/+gLO//oC3v/6At7/+hL/D/oS/w/6Ew8P+iMfD/ojLw/6Mz8P+jM/D/ozXw/6Q18P+kNvD/pTfw/6U4
+ 8P+lOfD/pjrw/6Y78P+mO/H/pzzx/6c98f+oPvH/qD/x/6hA8f+pQPH/qULx/6pC8f+qQ/H/qkTx/6tF
+ 8f+rRvH/q0bx/6xI8f+sSPL/rUny/61K8v+tS/L/rkzy/65N8v+vTvL/rk3y/7FU8v+oP/H/kw/t/5MQ
+ 7f+TEO3/kw/t/5IO7f+SDe3/kgzt/5EM7f+RC+3/kQvt/5AK7f+QCe39kAjt/48I7UaPCO0AjwjtA44H
+ 7QCPB+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACyUvAAslbzALJV
+ 8gG0WPIAs1fzC7JU8tSxVPL/sVPy/bFS8v+wUfL/sFHy/7BQ8v+vUPL/r0/y/69O8v+uTfL/rkzy/7BP
+ 8v+cJO//jwft/5MO7f+SDu3/kg/t/5MP7f+TEO3/lBHt/5QS7f+UE+3/lRTt/5UU7v+VFu7/lhbu/5YX
+ 7v+XGO7/lxnu/5ca7v+YGu7/mBvu/5kc7v+ZHe7/mR7u/5of7v+aIO7/miHu/5sh7/+bIu//nCPv/5wk
+ 7/+cJe//nSbv/50n7/+eJ+//nijv/54p7/+fKu//nyvv/58s7/+gLe//oC3v/6Eu8P+hL/D/oTDw/6Ix
+ 8P+iMvD/ozPw/6Mz8P+jNPD/pDXw/6Q28P+kN/D/pTjw/6U58P+mOvD/pjrw/6Y78P+nPPH/pz3x/6g+
+ 8f+oP/H/qEDx/6lA8f+pQvH/qkLx/6pD8f+qRPH/q0Xx/6tG8f+rRvH/rEjx/6xI8v+tSfL/rUry/61L
+ 8v+uTPL/rk3y/69N8v+vTvL/rk7y/7JV8v+lOPD/kQ3t/5MQ7f+TD+3/kg7t/5IN7f+SDO3/kQzt/5EL
+ 7f+RC+3/kArt/5AJ7f2QCO3/jwjt044G7AuNBe0AjwftAY8G7ACRA+sAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAALJW8wCqbO4AslXyA7JW8gCyVfKIslXy/7FU8vuxU/L/sVLy/7BR
+ 8v+wUfL/sFDy/69Q8v+vT/L/r07y/65M8v+wUfL/oS7w/48G7f+SDe3/kg3t/5IO7f+SD+3/kw/t/5MQ
+ 7f+UEe3/lBLt/5QT7f+VFO7/lRTu/5YW7v+XFu//lxfv/5gY7/+YGe//mBrv/5kb7/+ZHO//mRzv/5od
+ 7/+aHu//mx/v/5sg7/+bIe//nCLw/5wi8P+dI/D/nSTw/50l8P+eJvD/nifw/58o8P+fKPD/nynw/6Aq
+ 8P+gK/D/oCzw/6Et8P+hLvD/oi/x/6Iw8f+iMPH/ozHx/6My8f+kM/H/pDTx/6Q18f+lNvH/pTfx/6U3
+ 8f+mOPH/pjnx/6c68f+nO/H/pzzy/6g98v+oPfL/qD7x/6g/8f+oQPH/qUDx/6lC8f+qQvH/qkPx/6pE
+ 8f+rRfH/q0bx/6tG8f+sSPH/rEjy/61J8v+tSvL/rUvy/65M8v+uTfL/r03y/69O8v+vT/L/r0/y/7JW
+ 8v+gLu//kQvt/5MQ7f+SDu3/kg3t/5IM7f+RDO3/kQvt/5EL7f+QCu3/kAnt/5AI7fuPB+3/jwfth48H
+ 7QCPB+0DjwPoAI8G7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACzV/QAs1fzALJV
+ 8wKyVfMAslbzLrJV8veyVfL/sVTy/rFT8v+xUvL/sFHy/7BR8v+wUPL/r1Dy/69P8v+vTfL/sFHy/6Y7
+ 8f+QCO3/kQvt/5EM7f+SDe3/kg7t/5IP7f+TD+3/kxDt/5QR7f+UEu3/lBPt/5UU7f+VFe7/lhfu/5QX
+ 6v+UGOr/lRnq/5UZ6v+VGur/lhvq/5Yc6v+XHer/lx7q/5cf6v+YH+r/mCDq/5gh6v+ZIuv/mSPr/5ok
+ 6/+aJOv/miXr/5sm6/+bJ+v/myjr/5wo6/+cKev/nSrr/50r6/+dLOv/ni3r/54u6/+fL+z/ny/s/58w
+ 7P+gMez/oDLs/6Az7P+hM+z/oTXs/6I17P+hNuz/ojfs/6M47P+jOez/ozrs/6M67P+kO+3/pDvt/6Q8
+ 7f+nPvD/qD/x/6hA8f+pQPH/qULx/6pC8f+qQ/H/qkTx/6tF8f+rRvH/q0bx/6xI8f+sSPL/rUny/61K
+ 8v+tS/L/rkzy/65N8v+vTvL/r07y/69P8v+wUPL/sFHy/7FU8v+bIe7/kQvt/5IP7f+SDe3/kgzt/5EM
+ 7f+RC+3/kQvt/5AK7f+QCe3/kAjt/o8H7f+PB+33jwbsLo8G7ACPBuwCjwfsAI4E6gAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAALNW8wCyVfIAslbzArJW9ACyVvOvslXy/7JV8vyxVPL/sVPy/7FS
+ 8v+wUfL/sFHy/7BQ8v+vUPL/r07y/7BQ8v+sSPL/kg7t/5AJ7f+RDO3/kQzt/5IN7f+SDu3/kg/t/5MP
+ 7f+TEO3/lBHt/5QS7f+UE+3/lRPt/5QR7/+REen/bAyv/2kNqf9rDqv/aw+r/2sPq/9sD6v/bBCr/2wR
+ q/9sEav/bBKr/20Tq/9tE6r/bRSr/24UrP9uFaz/bxas/28WrP9vF6z/bxis/28YrP9wGaz/cBms/3Aa
+ rP9xGqz/cRus/3EcrP9xHaz/cR2s/3IerP9yH6z/ch+s/3MgrP9zIKz/cyGs/3MirP9zI6z/dCOs/3Qk
+ rP91Jaz/dSWs/3UlrP92Jqz/dies/3YnrP94K67/eCyu/5875P+qP/T/qEDw/6lA8f+pQvH/qkLx/6pD
+ 8f+qRPH/q0Xx/6tG8f+rRvH/rEjx/6xI8v+tSfL/rUry/61L8v+uTPL/rk3y/69O8v+vTvL/r0/y/7BQ
+ 8v+wUPL/sVPy/69O8v+VFO3/kQzt/5IO7f+SDO3/kQzt/5EL7f+RC+3/kArt/5AJ7f+QCO3/jwft/I8H
+ 7f+PBuyujwfsAI8G7AKPB+wAjwXsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1VvIAslj0ALJW
+ 8wOyVvMAslbzSrJW8/+yVfL9slXy/7FU8v+xU/L/sVLy/7BR8v+wUfL/sFDy/69P8v+vTvL/sFHy/5kd
+ 7/+OBe3/kQzt/5EL7f+RDO3/kg3t/5IO7f+SD+3/kw/t/5MQ7f+UEe3/lBLt/5QT7f+VFe3/nCLw/5kk
+ 6/90HrD/cR+q/3Mgq/9yIav/cyGr/3Qhq/9zIqv/cyKr/3Mjq/90I6v/dCSr/3Qkq/91Jav/dSas/3Un
+ rP92J6z/dies/3YorP92Kaz/dims/3cprP93Kqz/dyus/3grrP94LKz/eC2s/3gtrP94Lqz/eS6s/3kv
+ rP95MKz/ejCs/3owrP96Maz/ejKs/3oyrP97Mqz/ezSs/3s0rP98NKz/fDWs/302rP99Nqz/fTat/3Ys
+ qf9zKqf/njrj/6o/9P+oQPD/qUDx/6lC8f+qQvH/qkPx/6pE8f+rRfH/q0bx/6tG8f+sSPH/rEjy/61J
+ 8v+tSvL/rUvy/65M8v+uTfL/r07y/69O8v+vT/L/sFDy/7BR8v+wUPL/s1fy/6g/8f+RC+3/kg7t/5IN
+ 7f+RDO3/kQvt/5EL7f+QCu3/kAnt/5AI7f+PB+3/jwft/Y8G7P+PBuxKjwbsAI8G7AOOBusAjwPtAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAALNZ8wCyVvMAsFf1AKdR+gCzV/PFslbz/7JV8v2yVfL/sVTy/7FT
+ 8v+xUvL/sFHy/7BR8v+wUPL/r07y/7FU8v+iMvD/jgTt/5AK7f+RCu3/kQvt/5EM7f+SDe3/kg7t/5IP
+ 7f+TD+3/kxDt/5QR7f+UE+3/kw/t/5si7//x4f3/+fP+//Xt+f/17vn/9e75//Xv+f/17/n/9e/5//Xv
+ +f/17/n/9e/5//Xv+f/17/n/9e/5//Xv+f/17/n/9e/5//Xv+f/17/n/9e/5//Xv+f/17/n/9e/5//Xv
+ +f/17/n/9e/5//Xw+f/18Pn/9fD5//Xw+f/18Pn/9fD5//Xw+f/28Pn/9vD5//bw+f/28Pn/9vD5//bw
+ +f/28Pn/9vD5//bw+f/28Pn/9fD5//bw+f/38vr/jlC5/28jpf+fPOT/qj/0/6hA8P+pQPH/qULx/6pC
+ 8f+qQ/H/qkTx/6tF8f+rRvH/q0bx/6xI8f+sSPL/rUny/61K8v+tS/L/rkzy/65N8v+vTvL/r07y/69P
+ 8v+wUPL/sFHy/7BS8v+xUvL/s1jy/58q7/+QCO3/kg7t/5EM7f+RC+3/kQvt/5AK7f+QCe3/kAjt/48H
+ 7f+PB+38jwbs/44F7MSZIOcAkg7rAY4E7ACNBO0AAAAAAAAAAAAAAAAAAAAAAAAAAACzV/QAtVfyALNX
+ 8wOzV/MAs1fzU7NX8/+yVvP9slXy/7JV8v+xVPL/sVPy/7FS8v+wUfL/sFHy/7BQ8v+wUfL/rEfy/5EL
+ 7f+QB+3/kArt/5EK7f+RC+3/kQzt/5IN7f+SDu3/kg/t/5MP7f+TEO3/lBHt/5QT7f+SD+3/nCPv//jw
+ /v////////7/////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //+QVLr/byKl/6A85P+qP/T/qEDw/6lA8f+pQvH/qkLx/6pD8f+qRPH/q0Xx/6tG8f+rRvH/rEjx/6xI
+ 8v+tSfL/rUry/61L8v+uTPL/rk3y/69O8v+vTvL/r0/y/7BQ8v+wUfL/sFLy/7FS8v+xVfL/sFHy/5UV
+ 7v+RC+3/kQzt/5EL7f+RC+3/kArt/5AJ7f+QCO3/jwft/48H7f+PBuz9jgXs/44F7FKOBewAjgXsA48F
+ 6wCPBOsAAAAAAAAAAAAAAAAAAAAAALNY8wCzV/MAtFXzAbZV8wCzV/PEs1fz/7JW8/2yVfL/slXy/7FU
+ 8v+xU/L/sVLy/7BR8v+wUfL/sE/y/7FU8v+aH+//jQPt/5EK7f+QCe3/kQrt/5EL7f+RDO3/kg3t/5IO
+ 7f+SD+3/kw/t/5MQ7f+UEe3/lBPt/5IP7f+cI+//+O/+///////+/f///v7///7+///+/v///v7///7+
+ ///+/v///v7///7+///+/v///v7///7+///+/v///v7///7+///+/v///v7///7+///+/v///v7///7+
+ ///+/v///v7///7+///+/v///v7///7+///+/v///v7///7+///+/v///v7///7+///+/v///v7///7+
+ ///+/v///v7///7+///+/v///v7///7+/v/+/v///////49Tuf9vIqX/nzzk/6o/9P+oQPD/qUDx/6lC
+ 8f+qQvH/qkPx/6pE8f+rRfH/q0bx/6tG8f+sSPH/rEjy/61J8v+tSvL/rUvy/65M8v+uTfL/r07y/69O
+ 8v+vT/L/sFDy/7BR8v+wUvL/sVPy/7BS8v+0WfL/pz3w/5AI7f+RDe3/kQvt/5EL7f+QCu3/kAnt/5AI
+ 7f+PB+3/jwft/48G7P2OBez/jgXsxIsJ6gCNCOsBjgTsAI4E7QAAAAAAAAAAAAAAAACqVeoAs1nyALNY
+ 8wOzWPMAs1jzSbNX8/+zV/P9slbz/7JV8v+yVfL/sVTy/7FT8v+xUvL/sFHy/7BQ8v+yVPL/pzzw/44E
+ 7f+QCO3/kAnt/5AJ7f+RCu3/kQvt/5EM7f+SDe3/kg7t/5IP7f+TD+3/kxDt/5QR7f+UE+3/kg/t/5wj
+ 7//48P7////////+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////kFO6/28ipf+fPOT/qj/0/6hA8P+pQPH/qULx/6pC8f+qQ/H/qkTx/6tF8f+rRvH/q0bx/6xI
+ 8f+sSPL/rUny/61K8v+tS/L/rkzy/65N8v+vTvL/r07y/69P8v+wUPL/sFHy/7BS8v+xU/L/sVPy/7FU
+ 8v+zWPL/miDv/48I7f+RDO3/kQvt/5AK7f+QCe3/kAjt/48H7f+PB+3/jwbs/44F7P2OBez/jgTsSY4E
+ 7ACOBOwDjwTrAJkA5gAAAAAAAAAAALRZ8wCzWPMAs1jzArNY8wCzWPOys1fz/7NX8/yyVvP/slXy/7JV
+ 8v+xVPL/sVPy/7FS8v+wUfL/sFHy/7BR8v+VFe3/jgPs/5AJ7f+QCO3/kAnt/5EK7f+RC+3/kQzt/5IN
+ 7f+SDu3/kg/t/5MP7f+TEO3/lBHt/5QT7f+SD+3/nCPv//jw/v////////7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////+QU7r/byKl/5885P+qP/T/qEDw/6lA
+ 8f+pQvH/qkLx/6pD8f+qRPH/q0Xx/6tG8f+rRvH/rEjx/6xI8v+tSfL/rUry/61L8v+uTPL/rk3y/69O
+ 8v+vTvL/r0/y/7BQ8v+wUfL/sFLy/7FT8v+xVPL/sVPy/7RZ8/+rR/L/kQvt/5EL7f+RC+3/kArt/5AJ
+ 7f+QCO3/jwft/48H7f+PBuz/jgXs/I4F7P+OBOyyjgTsAI4E7AKOBOwAjALrAAAAAAAAAAAAtFrzALNY
+ 8wKzWPMAs1jzLrNY8/yzV/P/s1fz/rJW8/+yVfL/slXy/7FU8v+xU/L/sVLy/7BQ8v+yVvL/pDbw/40B
+ 7P+PCO3/jwjt/5AJ7f+QCe3/kQrt/5EL7f+RDO3/kg3t/5IO7f+SD+3/kw/t/5MQ7f+UEe3/lBPt/5IP
+ 7f+cI+//+PD+/////////v//////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////5BTuv9vIqX/nzzk/6o/9P+oQPD/qUDx/6lC8f+qQvH/qkPx/6pE8f+rRfH/q0bx/6tG
+ 8f+sSPH/rEjy/61J8v+tSvL/rUvy/65M8v+uTfL/r07y/69O8v+vT/L/sFDy/7BR8v+wUvL/sVPy/7FT
+ 8v+yVPL/slTy/7Rb8/+dJu//jwbt/5EM7f+QCu3/kAnt/5AI7f+PB+3/jwft/48G7P+OBez+jgXs/44E
+ 7PuOBOwtjgTsAI4E7AKOBO0AAAAAALVX8wC0WfMAs1jzBLNY8wCzWfOLs1jz/7NX8/uzV/P/slbz/7JV
+ 8v+yVfL/sVTy/7FT8v+xUvL/sFLy/7BR8v+UEu3/jQPs/48H7f+PCO3/kAnt/5AJ7f+RCu3/kQvt/5EM
+ 7f+SDe3/kg7t/5IP7f+TD+3/kxDt/5QR7f+UE+3/kg/t/5wj7//48P7////////+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////kFO6/28ipf+fPOT/qj/0/6hA
+ 8P+pQPH/qULx/6pC8f+qQ/H/qkTx/6tF8f+rRvH/q0bx/6xI8f+sSPL/rUny/61K8v+tS/L/rkzy/65N
+ 8v+vTvL/r07y/69P8v+wUPL/sFHy/7BS8v+xU/L/sVPy/7JU8v+yVfL/tFnz/61K8v+RC+3/kQrt/5AK
+ 7f+QCe3/kAjt/48H7f+PB+3/jwbs/44F7P+OBez7jgTs/44E7IqOBOwAjgTsBI4D7ACRAe8AtFrzALRZ
+ 8wG1WvMAtVrzC7RZ896zWPP/s1fz/bNX8/+yVvP/slXy/7JV8v+xVPL/sVPy/7BR8v+yVvL/pDfw/4wA
+ 7P+PB+z/jwft/48I7f+QCe3/kAnt/5EK7f+RC+3/kQzt/5IN7f+SDu3/kg/t/5MP7f+TEO3/lBHt/5QT
+ 7f+SD+3/nCPv//jw/v////////7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////+QU7r/byKl/5885P+qP/T/qEDw/6lA8f+pQvH/qkLx/6pD8f+qRPH/q0Xx/6tG
+ 8f+rRvH/rEjx/6xI8v+tSfL/rUry/61L8v+uTPL/rk3y/69O8v+vTvL/r0/y/7BQ8v+wUfL/sFLy/7FT
+ 8v+xVPL/slTy/7JV8v+yVfP/tVzz/50l7/+PBu3/kQvt/5AJ7f+QCO3/jwft/48H7f+PBuz/jgXs/44F
+ 7P2OBOz/jQPs3Y0C7AuNAuwAjQPsAY0C7QC0WvIAtFnzA7RZ8wC0WfNPtFnz/7NY8/2zV/P/s1fz/7JW
+ 8/+yVfL/slXy/7FU8v+xU/L/sVLy/7FT8v+WFe3/jAHs/48H7P+PB+3/jwjt/5AJ7f+QCe3/kQrt/5EL
+ 7f+RDO3/kg3t/5IO7f+SD+3/kw/t/5MQ7f+UEe3/lBPt/5IP7f+cI+//+PD+/////////v//////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////5BTuv9vIqX/nzzk/6o/
+ 9P+oQPD/qUDx/6lC8f+qQvH/qkPx/6pE8f+rRfH/q0bx/6tG8f+sSPH/rEjy/61J8v+tSvL/rUvy/65M
+ 8v+uTfL/r07y/69O8v+vT/L/sFDy/7BR8v+wUvL/sVPy/7FU8v+yVPL/slXy/7JV8/+1W/P/q0fy/5AJ
+ 7f+QCu3/kAnt/5AI7f+PB+3/jwft/48G7P+OBez/jgXs/44E7P2NA+z/jQPsTo0D7ACNA+wDjALsALRZ
+ 8wC0WfMDtFnzALRZ86K0WfP/s1jz/LNX8/+zV/P/slbz/7JV8v+yVfL/sVTy/7FS8v+zVvL/qD/x/40B
+ 7P+OBuz/jwbs/48H7f+PCO3/kAnt/5AJ7f+RCu3/kQvt/5EM7f+SDe3/kg7t/5IP7f+TD+3/kxDt/5QR
+ 7f+UE+3/kg/t/5wj7//48P7////////+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////kFO6/28ipf+fPOT/qj/0/6hA8P+pQPD/qEHw/6lC8P+qQ/D/qkTw/6pF
+ 8P+qRvD/q0bw/6xH8P+rSPH/rEnx/61K8v+tS/L/rkzy/65N8v+vTvL/r07y/69P8v+wUPL/sFHy/7BS
+ 8v+xU/L/sVTy/7JU8v+yVfL/slbz/7NW8/+0W/P/mR3u/44G7f+QCu3/kAjt/48H7f+PB+3/jwbs/44F
+ 7P+OBez/jgTs+40D7P+NA+yhjQPsAI0D7AOOAu0AtFrzAbRb8wC0W/MQtFnz5bRZ8/+zWPP+s1fz/7NX
+ 8/+yVvP/slXy/7JV8v+xVPL/sVLy/7NX8v+bIe7/jADs/44G7P+PBuz/jwft/48I7f+QCe3/kAnt/5EK
+ 7f+RC+3/kQzt/5IN7f+SDu3/kg/t/5MP7f+TEO3/lBHt/5QT7f+SD+3/nCPv//jw/v////////7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////+QU7r/byKl/6A8
+ 5P+qP/T/qEDx/6tB9P+rQvT/rEP0/6xE9P+sRfT/rUb0/61H9P+uR/T/rkj0/65J9P+vSvX/rUry/61L
+ 8v+uTPL/rk3y/69O8v+vTvL/r0/y/7BQ8v+wUfL/sFLy/7FT8v+xVPL/slTy/7JV8v+yVvP/s1bz/7Vd
+ 8/+mO/H/jgXt/5AK7f+QCO3/jwft/48H7f+PBuz/jgXs/44F7P+OBOz+jQPs/40C7OWNAe0QjQHtAI0C
+ 7AG0WvMDtFrzALRa80y0WvP/tFnz/bNY8/+zV/P/s1fz/7JW8/+yVfL/slXy/7FT8v+yVfL/rkzx/5AI
+ 7P+OA+z/jgXs/48G7P+PB+3/jwjt/5AJ7f+QCe3/kQrt/5EL7f+RDO3/kg3t/5IO7f+SD+3/kw/t/5MQ
+ 7f+UEe3/lBPt/5IP7f+cI+//+PD+/////////v//////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////5BTuv9vIqX/oD3k/6tC9f+mQOz/oD/k/6FA5P+hQOT/okHk/6JC
+ 5P+jQ+T/o0Tk/6NE5P+kReT/okTk/6RF5f+sSvH/rUvy/65M8v+uTfL/r07y/69O8v+vT/L/sFDy/7BR
+ 8v+wUvL/sVPy/7FU8v+yVPL/slXy/7JW8/+zV/P/s1nz/7FU8/+TEO7/jwft/5AJ7f+PB+3/jwft/48G
+ 7P+OBez/jgXs/44E7P+NA+z9jQLs/40C7EuNAuwAjQLsA7Ra8wS0WvMAtFrzlbRa8/+0WfP7s1jz/7NX
+ 8/+zV/P/slbz/7JV8v+yVfL/sVLy/7NY8v+jNfD/iwDs/48F7P+OBez/jwbs/48H7f+PCO3/kAnt/5AJ
+ 7f+RCu3/kQvt/5EM7f+SDe3/kg7t/5IP7f+TD+3/kxDt/5QR7f+UE+3/kg/t/5wj7//48P7////////+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////kFO6/28j
+ pf+eOuP/qjj4/5Mx1v9uJKH/ciam/3Empf9xJqX/cSel/3Inpf9yKKX/cyml/3Qrpv93Mqj/fDSu/6pJ
+ 7f+uS/P/rkzy/65N8v+vTvL/r07y/69P8v+wUPL/sFHy/7BS8v+xU/L/sVTy/7JU8v+yVfL/slbz/7NX
+ 8/+yV/P/tl7z/50n7/+OBO3/kArt/48H7f+PB+3/jwbs/44F7P+OBez/jgTs/40D7PuNAuz/jQLslI0C
+ 7ACNAuwEtVn3ALVS/AG0WvPTtFrz/7RZ8/2zWPP/s1fz/7NX8/+yVvP/slXy/7JU8v+xU/L/s1fy/5gb
+ 7v+LAOz/jwXs/44F7P+PBuz/jwft/48I7f+QCe3/kAnt/5EK7f+RC+3/kQzt/5IN7f+SDu3/kg/t/5MP
+ 7f+TEO3/lBHt/5QT7f+SD+3/nCPv//jw/v////////7/////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////+QVLr/biCl/6RI5P++Zvr/ql7f/45Utv+RVbr/kFW5/5BW
+ uf+RV7n/kVe5/5FXuf+SWbn/kVe4/3o1qf98NK7/qknt/65L8/+uTPL/rk3y/69O8v+vTvL/r0/y/7BQ
+ 8v+wUfL/sFLy/7FT8v+xVPL/slTy/7JV8v+yVvP/s1fz/7JX8/+2XfP/qUHx/44F7f+QCe3/jwjt/48H
+ 7f+PBuz/jgXs/44F7P+OBOz/jQPs/Y0C7P+NAuzSkQrjAI4C6QC0WvMAtFryJrRa8/u0WvP/tFnz/rNY
+ 8/+zV/P/s1fz/7JW8/+yVfL/slTy/7JV8v+uTPH/jwfs/40C7P+OBOz/jgXs/48G7P+PB+3/jwjt/5AJ
+ 7f+QCe3/kQrt/5EL7f+RDO3/kg3t/5IO7f+SD+3/kw/t/5MQ7f+UEe3/lBPt/5IP7f+cI+//+PD+////
+ /////v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////5FW
+ uv9qFqT/vX7p///////9/f7//////////////////////////////////v7////////38vr/gUCu/3ox
+ rf+qSe7/rkvz/65M8v+uTfL/r07y/69O8v+vT/L/sFDy/7BR8v+wUvL/sVPy/7FU8v+yVPL/slXy/7JW
+ 8/+zV/P/s1jz/7Ra8/+yVfP/kxDu/48H7f+PCO3/jwft/48G7P+OBez/jgXs/44E7P+NA+z+jQLs/40C
+ 7PuNAuwljQLsALRb8wC0W/NZtFrz/7Ra8/y0WfP/s1jz/7NX8/+zV/P/slbz/7JV8v+xU/L/s1ny/6U5
+ 8P+LAOz/jgTs/44E7P+OBez/jwbs/48H7f+PCO3/kAnt/5AJ7f+RCu3/kQvt/5EM7f+SDe3/kg7t/5IP
+ 7f+TD+3/kxDt/5QR7f+UE+3/kg/t/5wj7//48P7////////+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////kVa6/2oWpP+9fun///////39/v//////////////
+ ///////////////////+/v////////fy+v+BQK7/ejGt/6pJ7v+uS/P/rkzy/65N8v+vTvL/r07y/69P
+ 8v+wUPL/sFHy/7BS8v+xU/L/sVTy/7JU8v+yVfL/slbz/7NX8/+zWPP/s1jz/7Ze8/+bI+//jgPt/5AJ
+ 7f+PB+3/jwbs/44F7P+OBez/jgTs/40D7P+NAuz8jQLs/40B7FiNAewAtFvzALRb84+0WvP/tFrz+7RZ
+ 8/+zWPP/s1fz/7NX8/+yVvP/slXy/7FT8v+zWfL/nCPu/4oA7P+OBez/jgTs/44F7P+PBuz/jwft/48I
+ 7f+QCe3/kAnt/5EK7f+RC+3/kQzt/5IN7f+SDu3/kg/t/5MP7f+TEO3/lBHt/5QT7f+SD+3/nCPv//jw
+ /v////////7/////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //+RVrr/ahak/7196f///////fz+//////////////////////////////////7+/v//////9vL6/4FA
+ rv96Ma3/qknu/65L8/+uTPL/rk3y/69O8v+vTvL/r0/y/7BQ8v+wUfL/sFLy/7FT8v+xVPL/slTy/7JV
+ 8v+yVvP/s1fz/7NY8/+zV/P/t1/z/6U58f+OA+3/kAnt/48H7f+PBuz/jgXs/44F7P+OBOz/jQPs/40C
+ 7PuNAuz/jQHsj40B7ACzW/IAtFvzwLRa8/+0WvP8tFnz/7NY8/+zV/P/s1fz/7JW8/+yVfL/slXy/7FU
+ 8v+UEe3/iwDs/44E7P+OBOz/jgXs/48G7P+PB+3/jwjt/5AJ7f+QCe3/kQrt/5EL7f+RDO3/kg3t/5IO
+ 7f+SD+3/kw/t/5MQ7f+UEe3/lBPt/5IP7f+cI+//+PD+/////////v//////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////5FWuv9qFqT/vX7p///////9/f7/////////
+ /////////////////////////v7////////38vr/gUCu/3oxrf+qSe7/rkvz/65M8v+uTfL/r07y/69O
+ 8v+vT/L/sFDy/7BR8v+wUvL/sVPy/7FU8v+yVPL/slXy/7JW8/+zV/P/s1jz/7NY8/+2XfP/rUvy/5AI
+ 7f+PCO3/jwft/48G7P+OBez/jgXs/44E7P+NA+z/jQLs/I0C7P+NAey/jgLsALdc8w60W/PktFrz/7Ra
+ 8/60WfP/s1jz/7NX8/+zV/P/slbz/7JV8v+zV/L/rUrx/44E7P+NAuz/jgTs/44E7P+OBez/jwbs/48H
+ 7f+PCO3/kAnt/5AJ7f+QCu3/kQvt/5EM7f+SDe3/kg7t/5IP7f+TD+3/kxDt/5QR7f+UE+3/kg/t/5wj
+ 7//48P7////////+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////kVa6/2oWpP+9fun///////39/v/////////////////////////////////+/v////////fy
+ +v+BQK7/ejGt/6pJ7v+uS/P/rkzy/65N8v+vTvL/r07y/69P8v+wUPL/sFHy/7BS8v+xU/L/sVTy/7JU
+ 8v+yVfL/slbz/7NX8/+zWPP/s1jz/7Ra8/+zWPP/lBLu/44F7f+PB+3/jwbs/44F7P+OBez/jgTs/40D
+ 7P+NAuz+jQLs/40B7OOKAewOtVzzL7Vb8/q0WvP/tFrz/rRZ8/+zWPP/s1fz/7NX8/+yVvP/slTy/7RZ
+ 8v+mO/D/iwDs/40D7P+OA+z/jgTs/44F7P+PBuz/jwft/48I7f+QCe3/kAnt/5EK7f+RC+3/kQzt/5IN
+ 7f+SDu3/kg/t/5MP7f+TEO3/lBHt/5QT7f+SD+3/nCPv//jw/v////////7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////+RVrr/ahak/71+6f///////f3+////
+ //////////////////////////////7+////////9/L6/4FArv96Ma3/qknu/65L8/+uTPL/rk3y/69O
+ 8v+vTvL/r0/y/7BQ8v+wUfL/sFLy/7FT8v+xVPL/slTy/7JV8v+yVvP/s1fz/7NY8/+zWfP/tFnz/7Zf
+ 8/+bIO//jQPt/48I7f+PBuz/jgXs/44F7P+OBOz/jQPs/40C7P6NAuz/jAHs+YsB7C61W/NStVvz/7Ra
+ 8/20WvP/tFnz/7NY8/+zV/P/s1fz/7JW8/+xVPL/tVry/6At7/+KAOz/jgTs/40D7P+OBOz/jgXs/48G
+ 7P+PB+3/jwjt/5AJ7f+QCe3/kQrt/5EL7f+RDO3/kg3t/5IO7f+SD+3/kw/t/5MQ7f+UEe3/lBPt/5IP
+ 7f+cI+//+PD+/////////v//////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////5FWuv9qFqT/vX7p///////9/f7//////////////////////////////////v7/////
+ ///38vr/gUCu/3oxrf+qSe7/rkvz/65M8v+uTfL/r07y/69O8v+vT/L/sFDy/7BR8v+wUvL/sVPy/7FU
+ 8v+yVPL/slXy/7JW8/+zV/P/s1jz/7RZ8/+zWPP/t2Dz/6Ev8P+MAu3/kAjt/48G7P+OBez/jgXs/44E
+ 7P+NA+z/jQLs/40C7P2MAez/jAHsUbVb83m1W/P/tFrz/LRa8/+0WfP/s1jz/7NX8/+zV/P/slbz/7JU
+ 8v+0WfL/mR7u/4sA7P+NBOz/jQPs/44E7P+OBez/jwbs/48H7f+PCO3/kAnt/5AJ7f+QCu3/kQvt/5EM
+ 7f+SDe3/kg7t/5IP7f+TD+3/kxDt/5QR7f+UE+3/kg/t/5wj7//48P7////////+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////kVa6/2oWpP+9fun///////39
+ /v/////////////////////////////////+/v////////fy+v+BQK7/ejGt/6pJ7v+uS/P/rkzy/65N
+ 8v+vTvL/r07y/69P8v+wUPL/sFHy/7BS8v+xU/L/sVTy/7JU8v+yVfL/slbz/7NX8/+zWPP/tFnz/7RY
+ 8/+2YPP/qD7x/40D7f+PCO3/jwbs/44F7P+OBez/jgTs/40D7P+NAuz/jQLs/IwB7P+MAex4tVzzmLVb
+ 8/+0WvP8tFrz/7RZ8/+zWPP/s1fz/7NX8/+yVvP/slXy/7NX8v+UE+3/iwDs/40D7P+NA+z/jgTs/44F
+ 7P+PBuz/jwft/48I7f+QCe3/kAnt/5EK7f+RC+3/kQzt/5IN7f+SDu3/kg/t/5MP7f+TEO3/lBHt/5QT
+ 7f+SD+3/nCPv//jw/v////////7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////+RVrr/ahak/71+6f///////f3+//////////////////////////////////7+
+ ////////9/L6/4FArv96Ma3/qknu/65L8/+uTPL/rk3y/69O8v+vTvL/r0/y/7BQ8v+wUfL/sFLy/7FT
+ 8v+xVPL/slTy/7JV8v+yVvP/s1fz/7NY8/+0WfP/tFnz/7Ze8/+tSfL/jgXt/48H7f+PBuz/jgXs/44F
+ 7P+OBOz/jQPs/40C7P+NAuz8jAHs/4wA7Je1XPO3tVvz/7Ra8/20WvP/tFnz/7NY8/+zV/P/s1fz/7JW
+ 8/+yVvL/sVLy/5EL7f+MAOz/jQPs/40D7P+OBOz/jgXs/48G7P+PB+3/jwjt/5AJ7f+QCe3/kQrt/5EL
+ 7f+RDO3/kg3t/5IO7f+SD+3/kw/t/5MQ7f+UEe3/lBPt/5IP7f+cI+//+PD+/////////v//////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////5FWuv9qFqT/vX7p////
+ ///9/f7//////////////////////////////////v7////////38vr/gUCu/3oxrf+qSe7/rkvz/65M
+ 8v+uTfL/r07y/69O8v+vT/L/sFDy/7BR8v+wUvL/sVPy/7FU8v+yVPL/slXy/7JW8/+zV/P/s1jz/7RZ
+ 8/+0WfP/tV3z/7BR8v+QCu3/jwbt/48G7P+OBez/jgXs/44E7P+NA+z/jQLs/40C7P2MAez/jADstrVc
+ 8861W/P/tFrz/bRa8/+0WfP/s1jz/7NX8/+zV/P/slXz/7NX8v+uTPH/jgTs/40A7P+NA+z/jQPs/44E
+ 7P+OBez/jwbs/48H7f+PCO3/kAnt/5AJ7f+RCu3/kQvt/5EM7f+SDe3/kg7t/5IP7f+TD+3/kxDt/5QR
+ 7f+UE+3/kg/t/5wj7//48P7////////+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////kVa6/2oWpP+9fun///////39/v//////////////////////////////
+ ///+/v////////fy+v+BQK7/ejGt/6pJ7v+uS/P/rkzy/65N8v+vTvL/r07y/69P8v+wUPL/sFHy/7BS
+ 8v+xU/L/sVTy/7JU8v+yVfL/slbz/7NX8/+zWPP/tFnz/7RZ8/+1XPP/s1jz/5MQ7v+OBe3/jwfs/44F
+ 7P+OBez/jgTs/40D7P+NAuz/jQLs/YwB7P+MAOzNtVzz3rVb8/+0WvP+tFrz/7RZ8/+zWPP/s1fz/7NX
+ 8/+yVfP/s1jy/6xH8f+MAez/jQHs/40D7P+NA+z/jgTs/44F7P+PBuz/jwft/48I7f+QCe3/kAnt/5AK
+ 7f+RC+3/kQzt/5IN7f+SDu3/kg/t/5MP7f+TEO3/lBHt/5QT7f+SD+3/nCPv//jw/v////////7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////+RVrr/ahak/71+
+ 6f///////f3+//////////////////////////////////7+////////9/L6/4FArv96Ma3/qknu/65L
+ 8/+uTPL/rk3y/69O8v+vTvL/r0/y/7BQ8v+wUfL/sFLy/7FT8v+xVPL/slTy/7JV8v+yVvP/s1fz/7NY
+ 8/+0WfP/tFnz/7Rb8/+1W/P/lRXu/44E7f+PB+z/jgXs/44F7P+OBOz/jQPs/40C7P+NAuz+jAHs/4wA
+ 7N21XPPrtVvz/7Ra8/60WvP/tFnz/7NY8/+zV/P/s1fz/7JV8/+0WfP/qULx/4sA7P+NAuz/jQPs/40D
+ 7P+OBOz/jgXs/48G7P+PB+3/jwjt/5AJ7f+QCe3/kQrt/5EL7f+RDO3/kg3t/5IO7f+SD+3/kw/t/5MQ
+ 7f+UEe3/lBPt/5IP7f+cI+//+PD+/////////v//////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////5FWuv9qFqT/vX7p///////9/f7/////////////////////////
+ /////////v7////////38vr/gUCu/3oxrf+qSe7/rkvz/65M8v+uTfL/r07y/69O8v+vT/L/sFDy/7BR
+ 8v+wUvL/sVPy/7FU8v+yVPL/slXy/7JW8/+zV/P/s1jz/7RZ8/+0WfP/tFrz/7Ze8/+XGu7/jQPs/48H
+ 7P+OBez/jgXs/44E7P+NA+z/jQLs/40C7P6MAez/jADs6rVc8/S1W/P/tFrz/7Ra8/+0WfP/s1jz/7NX
+ 8/+zV/P/sVXz/7Ra8/+oPfD/igDs/40C7P+NA+z/jQPs/44E7P+OBez/jwbs/48H7f+PCO3/kAnt/5AJ
+ 7f+RCu3/kQvt/5EM7f+SDe3/kg7t/5IP7f+TD+3/kxDt/5QR7f+UE+3/kg/t/5wj7//48P7////////+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////kVa6/2oW
+ pP+9fun///////39/v/////////////////////////////////+/v////////fy+v+BQK7/ejGt/6pJ
+ 7v+uS/P/rkzy/65N8v+vTvL/r07y/69P8v+wUPL/sFHy/7BS8v+xU/L/sVTy/7JU8v+yVfL/slbz/7NX
+ 8/+zWPP/tFnz/7RZ8/+0WvP/t1/z/5ke7/+NAuz/kAfs/44F7P+OBez/jgTs/40D7P+NAuz/jQLs/4wB
+ 7P+MAOz0tVzz+7Vb8/+0WvP/tFrz/7RZ8/+zWPP/s1fz/7NX8/+xVfP/tFrz/6Y78P+KAOz/jQLs/40D
+ 7P+NA+z/jgTs/44F7P+PBuz/jwft/48I7f+QCe3/kAnt/5EK7f+RC+3/kQzt/5IN7f+SDu3/kg/t/5MP
+ 7f+TEO3/lBHt/5QT7f+SD+3/nCPv//jw/v////////7/////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////+RVrr/ahak/71+6f///////f3+////////////////////
+ //////////////7+////////9/L6/4FArv96Ma3/qknu/65L8/+uTPL/rk3y/69O8v+vTvL/r0/y/7BQ
+ 8v+wUfL/sFLy/7FT8v+xVPL/slTy/7JV8v+yVvP/s1fz/7NY8/+0WfP/tFnz/7Ra8/+3YPP/miHv/40C
+ 7P+QB+z/jgXs/44F7P+OBOz/jQPs/40C7P+NAuz/jAHs/4wA7Pq1XPP+tVvz/7Ra8/+0WvP/tFnz/7NY
+ 8/+zV/P/s1fz/7FV8/+0WvP/pjnw/4oA7P+NAuz/jQPs/40D7P+OBOz/jgXs/48G7P+PB+3/jwjt/5AJ
+ 7f+QCe3/kQrt/5EL7f+RDO3/kg3t/5IO7f+SD+3/kw/t/5MQ7f+UEe3/lBPt/5IP7f+cI+//+PD+////
+ /////v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////5FW
+ uv9qFqT/vX7p///////9/f7//////////////////////////////////v7////////38vr/gUCu/3ox
+ rf+qSe7/rkvz/65M8v+uTfL/r07y/69O8v+vT/L/sFDy/7BR8v+wUvL/sVPy/7FU8v+yVPL/slXy/7JW
+ 8/+zV/P/s1jz/7RZ8/+0WfP/tFrz/7dg8/+bI+//jQLs/5AH7P+OBez/jgXs/44E7P+NA+z/jQLs/40C
+ 7P+MAez/jADs/rVc8/61W/P/tFrz/7Ra8/+0WfP/s1jz/7NX8/+zV/P/sVXz/7Ra8/+mOfD/igDs/40C
+ 7P+NA+z/jQPs/44E7P+OBez/jwbs/48H7f+PCO3/kAnt/5AJ7f+RCu3/kQvt/5EM7f+SDe3/kg7t/5IP
+ 7f+TD+3/kxDt/5QR7f+UE+3/kg/t/5wj7//48P7////////+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////kVa6/2oWpP+9fun///////39/v//////////////
+ ///////////////////+/v////////fy+v+BQK7/ejGt/6pJ7v+uS/P/rkzy/65N8v+vTvL/r07y/69P
+ 8v+wUPL/sFHy/7BS8v+xU/L/sVTy/7JU8v+yVfL/slbz/7NX8/+zWPP/tFnz/7RZ8/+0WvP/t2Dz/5sj
+ 7/+NAuz/kAfs/44F7P+OBez/jgTs/40D7P+NAuz/jQLs/4wB7P+MAOz+tVzz+7Vb8/+0WvP/tFrz/7RZ
+ 8/+zWPP/s1fz/7NX8/+xVfP/tFrz/6Y78P+KAOz/jQLs/40D7P+NA+z/jgTs/44F7P+PBuz/jwft/48I
+ 7f+QCe3/kAnt/5EK7f+RC+3/kQzt/5IN7f+SDu3/kg/t/5MP7f+TEO3/lBHt/5QT7f+SD+3/nCPv//jw
+ /v////////7/////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //+RVrr/ahak/71+6f///////f3+//////////////////////////////////7+////////9/L6/4FA
+ rv96Ma3/qknu/65L8/+uTPL/rk3y/69O8v+vTvL/r0/y/7BQ8v+wUfL/sFLy/7FT8v+xVPL/slTy/7JV
+ 8v+yVvP/s1fz/7NY8/+0WfP/tFnz/7Ra8/+3YPP/miHv/40C7P+QB+z/jgXs/44F7P+OBOz/jQPs/40C
+ 7P+NAuz/jAHs/4wA7Pq1XPP0tVvz/7Ra8/+0WvP/tFnz/7NY8/+zV/P/s1fz/7FV8/+0WvP/qD3w/4oA
+ 7P+NAuz/jQPs/40D7P+OBOz/jgXs/48G7P+PB+3/jwjt/5AJ7f+QCe3/kQrt/5EL7f+RDO3/kg3t/5IO
+ 7f+SD+3/kw/t/5MQ7f+UEe3/lBPt/5IP7f+cI+//+PD+/////////v//////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////5FWuv9qFqT/vX7p///////9/f7/////////
+ /////////////////////////v7////////38vr/gUCu/3oxrf+qSe7/rkvz/65M8v+uTfL/r07y/69O
+ 8v+vT/L/sFDy/7BR8v+wUvL/sVPy/7FU8v+yVPL/slXy/7JW8/+zV/P/s1jz/7RZ8/+0WfP/tFrz/7df
+ 8/+aHu//jQLs/5AH7P+OBez/jgXs/44E7P+NA+z/jQLs/40C7P+MAez/jADs9LVc8+u1W/P/tFrz/rRa
+ 8/+0WfP/s1jz/7NX8/+zV/P/slXz/7RZ8/+pQvH/iwDs/40C7P+NA+z/jQPs/44E7P+OBez/jwbs/48H
+ 7f+PCO3/kAnt/5AJ7f+RCu3/kQvt/5EM7f+SDe3/kg7t/5IP7f+TD+3/kxDt/5QR7f+UE+3/kg/t/5wj
+ 7//48P7////////+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////kVa6/2oWpP+9fun///////39/v/////////////////////////////////+/v////////fy
+ +v+BQK7/ejGt/6pJ7v+uS/P/rkzy/65N8v+vTvL/r07y/69P8v+wUPL/sFHy/7BS8v+xU/L/sVTy/7JU
+ 8v+yVfL/slbz/7NX8/+zWPP/tFnz/7RZ8/+0WvP/tl7z/5ca7v+NA+z/jwfs/44F7P+OBez/jgTs/40D
+ 7P+NAuz/jQLs/owB7P+MAOzqtVzz3rVb8/+0WvP+tFrz/7RZ8/+zWPP/s1fz/7NX8/+yVfP/s1jy/6xG
+ 8f+MAez/jQHs/40D7P+NA+z/jgTs/44F7P+PBuz/jwft/48I7f+QCe3/kAnt/5AK7f+RC+3/kQzt/5IN
+ 7f+SDu3/kg/t/5MP7f+TEO3/lBHt/5QT7f+SD+3/nCPv//jw/v////////7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////+RVrr/ahak/71+6f///////f3+////
+ //////////////////////////////7+////////9/L6/4FArv96Ma3/qknu/65L8/+uTPL/rk3y/69O
+ 8v+vTvL/r0/y/7BQ8v+wUfL/sFLy/7FT8v+xVPL/slTy/7JV8v+yVvP/s1fz/7NY8/+0WfP/tFnz/7Rb
+ 8/+1W/P/lRXu/44E7f+PB+z/jgXs/44F7P+OBOz/jQPs/40C7P+NAuz+jAHs/4wA7N21XPPOtVvz/7Ra
+ 8/20WvP/tFnz/7NY8/+zV/P/s1fz/7JV8/+zV/L/rkzx/44E7P+NAOz/jQPs/40D7P+OBOz/jgXs/48G
+ 7P+PB+3/jwjt/5AJ7f+QCe3/kQrt/5EL7f+RDO3/kg3t/5IO7f+SD+3/kw/t/5MQ7f+UEe3/lBPt/5IP
+ 7f+cI+//+PD+/////////v//////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////5FWuv9qFqT/vX7p///////9/f7//////////////////////////////////v7/////
+ ///38vr/gUCu/3oxrf+qSe7/rkvz/65M8v+uTfL/r07y/69O8v+vT/L/sFDy/7BR8v+wUvL/sVPy/7FU
+ 8v+yVPL/slXy/7JW8/+zV/P/s1jz/7RZ8/+0WfP/tFzz/7NY8/+TEO7/jgXt/48H7P+OBez/jgXs/44E
+ 7P+NA+z/jQLs/40C7P2MAez/jADszbVc87e1W/P/tFrz/bRa8/+0WfP/s1jz/7NX8/+zV/P/slbz/7JW
+ 8v+xUvL/kQvt/4wA7P+NA+z/jQPs/44E7P+OBez/jwbs/48H7f+PCO3/kAnt/5AJ7f+RCu3/kQvt/5EM
+ 7f+SDe3/kg7t/5IP7f+TD+3/kxDt/5QR7f+UE+3/kg/t/5wj7//48P7////////+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////kVa6/2oWpP+9fun///////39
+ /v/////////////////////////////////+/v////////fy+v+BQK7/ejGt/6pJ7v+uS/P/rkzy/65N
+ 8v+vTvL/r07y/69P8v+wUPL/sFHy/7BS8v+xU/L/sVTy/7JU8v+yVfL/slbz/7NX8/+zWPP/tFnz/7RZ
+ 8/+1XfP/sFHy/5AK7f+PBu3/jwbs/44F7P+OBez/jgTs/40D7P+NAuz/jQLs/YwB7P+MAOy2tVzzmLVb
+ 8/+0WvP8tFrz/7RZ8/+zWPP/s1fz/7NX8/+yVvP/slXy/7NW8v+UE+3/iwDs/40D7P+NA+z/jgTs/44F
+ 7P+PBuz/jwft/48I7f+QCe3/kAnt/5EK7f+RC+3/kQzt/5IN7f+SDu3/kg/t/5MP7f+TEO3/lBHt/5QT
+ 7f+SD+3/nCPv//jw/v////////7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////+RVrr/ahak/71+6f///////f3+//////////////////////////////////7+
+ ////////9/L6/4FArv96Ma3/qknu/65L8/+uTPL/rk3y/69O8v+vTvL/r0/y/7BQ8v+wUfL/sFLy/7FT
+ 8v+xVPL/slTy/7JV8v+yVvP/s1fz/7NY8/+0WfP/tFnz/7Ze8/+tSfL/jgXt/48H7f+PBuz/jgXs/44F
+ 7P+OBOz/jQPs/40C7P+NAuz8jAHs/4wA7Je1W/N5tVvz/7Ra8/y0WvP/tFnz/7NY8/+zV/P/s1fz/7JW
+ 8/+yVPL/tFny/5ke7v+LAOz/jQTs/40D7P+OBOz/jgXs/48G7P+PB+3/jwjt/5AJ7f+QCe3/kArt/5EL
+ 7f+RDO3/kg3t/5IO7f+SD+3/kw/t/5MQ7f+UEe3/lBPt/5IP7f+cI+//+PD+/////////v//////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////5FWuv9qFqT/vX7p////
+ ///9/f7//////////////////////////////////v7////////38vr/gUCu/3oxrf+qSe7/rkvz/65M
+ 8v+uTfL/r07y/69O8v+vT/L/sFDy/7BR8v+wUvL/sVPy/7FU8v+yVPL/slXy/7JW8/+zV/P/s1jz/7RZ
+ 8/+0WPP/tmDz/6g+8f+NA+3/jwjt/48G7P+OBez/jgXs/44E7P+NA+z/jQLs/40C7PyMAez/jAHseLVb
+ 81K1W/P/tFrz/bRa8/+0WfP/s1jz/7NX8/+zV/P/slbz/7FU8v+1WvL/oC3v/4oA7P+OBOz/jQPs/44E
+ 7P+OBez/jwbs/48H7f+PCO3/kAnt/5AJ7f+RCu3/kQvt/5EM7f+SDe3/kg7t/5IP7f+TD+3/kxDt/5QR
+ 7f+UE+3/kg/t/5wj7//48P7////////+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////kVa6/2oWpP+9fun///////39/v//////////////////////////////
+ ///+/v////////fy+v+BQK7/ejGt/6pJ7v+uS/P/rkzy/65N8v+vTvL/r07y/69P8v+wUPL/sFHy/7BS
+ 8v+xU/L/sVTy/7JU8v+yVfL/slbz/7NX8/+zWPP/tFnz/7NY8/+3YPP/oS/w/4wC7f+QCO3/jwbs/44F
+ 7P+OBez/jgTs/40D7P+NAuz/jQLs/YwB7P+MAexRtVvzL7Rb8/q0WvP/tFrz/rRZ8/+zWPP/s1fz/7NX
+ 8/+yVvP/slTy/7RZ8v+mO/D/iwDs/40D7P+OA+z/jgTs/44F7P+PBuz/jwft/48I7f+QCe3/kAnt/5EK
+ 7f+RC+3/kQzt/5IN7f+SDu3/kg/t/5MP7f+TEO3/lBHt/5QT7f+SD+3/nCPv//jw/v////////7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////+RVrr/ahak/71+
+ 6f///////f3+//////////////////////////////////7+////////9/L6/4FArv96Ma3/qknu/65L
+ 8/+uTPL/rk3y/69O8v+vTvL/r0/y/7BQ8v+wUfL/sFLy/7FT8v+xVPL/slTy/7JV8v+yVvP/s1fz/7NY
+ 8/+zWfP/tFnz/7Zf8/+bIe//jQPt/48I7f+PBuz/jgXs/44F7P+OBOz/jQPs/40C7P6NAuz/jQHs+YwB
+ 7C62XPIPtFvz5LRa8/+0WvP+tFnz/7NY8/+zV/P/s1fz/7JW8/+yVfL/s1fy/61K8f+OBOz/jQLs/44E
+ 7P+OBOz/jgXs/48G7P+PB+3/jwjt/5AJ7f+QCe3/kArt/5EL7f+RDO3/kg3t/5IO7f+SD+3/kw/t/5MQ
+ 7f+UEe3/lBPt/5IP7f+cI+//+PD+/////////v//////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////5FWuv9qFqT/vX7p///////9/f7/////////////////////////
+ /////////v7////////38vr/gUCu/3oxrf+qSe7/rkvz/65M8v+uTfL/r07y/69O8v+vT/L/sFDy/7BR
+ 8v+wUvL/sVPy/7FU8v+yVPL/slXy/7JW8/+zV/P/s1jz/7NY8/+0WvP/s1jz/5QS7v+OBe3/jwft/48G
+ 7P+OBez/jgXs/44E7P+NA+z/jQLs/o0C7P+NAezjigHsDrNa8wC0W/PAtFrz/7Ra8/y0WfP/s1jz/7NX
+ 8/+zV/P/slbz/7JV8v+yVfL/sVTy/5QR7f+LAOz/jgTs/44E7P+OBez/jwbs/48H7f+PCO3/kAnt/5AJ
+ 7f+RCu3/kQvt/5EM7f+SDe3/kg7t/5IP7f+TD+3/kxDt/5QR7f+UE+3/kg/t/5wj7//48P7////////+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////kVa6/2oW
+ pP+9fun///////39/v/////////////////////////////////+/v////////fy+v+BQK7/ejGt/6pJ
+ 7v+uS/P/rkzy/65N8v+vTvL/r07y/69P8v+wUPL/sFHy/7BS8v+xU/L/sVTy/7JU8v+yVfL/slbz/7NX
+ 8/+zWPP/s1jz/7Zd8/+tTPL/kAjt/48H7f+PB+3/jwbs/44F7P+OBez/jgTs/40D7P+NAuz8jQLs/40B
+ 7L+PAuwAtFvzALRb85C0WvP/tFrz+7RZ8/+zWPP/s1fz/7NX8/+yVvP/slXy/7FT8v+zWfL/myLu/4oA
+ 7P+OBez/jgTs/44F7P+PBuz/jwft/48I7f+QCe3/kAnt/5EK7f+RC+3/kQzt/5IN7f+SDu3/kg/t/5MP
+ 7f+TEO3/lBHt/5QT7f+SD+3/nCPv//jv/v///////v7/////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v////////////+RVrn/aRak/71+6f///////f3+////////////////////
+ //////////////7+////////9/L6/4FArv96Ma3/qknu/65L8/+uTPL/rk3y/69O8v+vTvL/r0/y/7BQ
+ 8v+wUfL/sFLy/7FT8v+xVPL/slTy/7JV8v+yVvP/s1fz/7NY8/+zV/P/t1/z/6U58f+OA+3/kAnt/48H
+ 7f+PBuz/jgXs/44F7P+OBOz/jQPs/40C7PuNAuz/jQHsj40B7AC0W/MAtFvzWbRa8/+0WvP8tFnz/7NY
+ 8/+zV/P/s1fz/7JW8/+yVfL/sVPy/7NZ8v+lOfD/iwDs/44E7P+OBOz/jgXs/48G7P+PB+3/jwjt/5AJ
+ 7f+QCe3/kQrt/5EL7f+RDO3/kg3t/5IO7f+SD+3/kw/t/5MQ7f+UEe3/lBPt/5IP7f+cI+//+PD+////
+ /////v////////////////////////////////////////////////////////////////////////7/
+ /v/+//7//v/+//7//v/+//7//v/+//7//v/+//7//v/+//7//v/+//7//v/+//7//v/+//7//v/+//7/
+ /v/+//7//v/+//7//v/+//7//v/+//7//v/+//7//v/+//7//v/+//7//v/+//7+/v/+//7////+/7Fh
+ 6P+TJeD/xIDz///////+/f///////////////////////////////////v7////////38vr/gUCu/3ox
+ rf+qSe7/rkvz/65M8v+uTfL/r07y/69O8v+vT/L/sFDy/7BR8v+wUvL/sVPy/7FU8v+yVPL/slXy/7JW
+ 8/+zV/P/s1jz/7NY8/+2XvP/myPv/44D7f+QCe3/jwft/48G7P+OBez/jgXs/44E7P+NA+z/jQLs/I0C
+ 7P+NAexZjQHsALRb8wC0W/MmtFrz/LRa8/+0WfP+s1jz/7NX8/+zV/P/slbz/7JV8v+yVPL/slXy/65M
+ 8f+PB+z/jQLs/44E7P+OBez/jwbs/48H7f+PCO3/kAnt/5AJ7f+RCu3/kQvt/5EM7f+SDe3/kg7t/5IP
+ 7f+TD+3/kxDt/5QR7f+UE+3/kg/t/5wj7//48P7////////+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////vmb6/6Mr9//Igvn///////79////////////////
+ ///////////////////+/v////////fy+v+BQK7/ejGt/6pJ7v+uS/P/rkzy/65N8v+vTvL/r07y/69P
+ 8v+wUPL/sFHy/7BS8v+xU/L/sVTy/7JU8v+yVfL/slbz/7NX8/+zWPP/tFrz/7JV8/+TEO7/jwft/48I
+ 7f+PB+3/jwbs/44F7P+OBez/jgTs/40D7P6NAuz/jQLs+40C7CWNAuwAtFrzALRV8wG0WvPTtFrz/7RZ
+ 8/2zWPP/s1fz/7NX8/+yVvP/slXy/7JU8v+xU/L/s1fy/5gb7v+LAOz/jwXs/44F7P+PBuz/jwft/48I
+ 7f+QCe3/kAnt/5EK7f+RC+3/kQzt/5IN7f+SDu3/kg/t/5MP7f+TEO3/lBHt/5QS7f+UEu3/lhfu/6g+
+ 8f+qQvH/qkLx/6pC8f+qQ/H/qkTx/6tF8f+rRfH/q0bx/6xH8f+sR/H/rEjx/61J8f+tSvH/r07z/6xN
+ 7v+gS9v/oUzb/6FM2/+hTdv/oU7b/6FO2/+iT9v/olDb/6JQ2/+jUdv/o1Hb/6NS2/+jU9v/o1Pb/6RU
+ 2/+kVNz/pFXc/6VW3P+lVtz/pVfc/6ZX3P+mWNz/pljc/6ZZ3P+nWtz/p1rc/6db3P+oXNz/qFzc/6hd
+ 3P+cQ9r/kCzW/7t95v///////v3///////////////////////////////////7+////////9/L6/4FA
+ rv96Ma3/qknu/65L8/+uTPL/rk3y/69O8v+vTvL/r0/y/7BQ8v+wUfL/sFLy/7FT8v+xVPL/slTy/7JV
+ 8v+yVvP/s1fz/7JX8/+2XfP/qUHx/44F7f+QCe3/jwjt/48H7f+PBuz/jgXs/44F7P+OBOz/jQPs/Y0C
+ 7P+NAuzSjxXmAY4G6gC0WvMEtFrzALRa85W0WvP/tFnz+7NY8/+zV/P/s1fz/7JW8/+yVfL/slXy/7FS
+ 8v+zWPL/ozXw/4sA7P+PBez/jgXs/48G7P+PB+3/jwjt/5AJ7f+QCe3/kQrt/5EL7f+RDO3/kg3t/5IO
+ 7f+SD+3/kw/t/5MQ7f+UEe3/lBLt/5QT7f+VE+3/kQzt/5EM7f+SDe3/kg7t/5MP7f+TEO3/kxDt/5QR
+ 7f+UEu3/lRPt/5UU7f+VFe3/lhbt/5QU7P+SCvD/hwnf/10Bnv9eAZ7/XwGe/14Cnv9eA57/XgSe/18E
+ nv9gBZ7/YAae/2EGnv9hB57/YQie/2EJnv9hCZ7/Ygme/2IKnv9iC57/Ywue/2MMnv9jDZ7/Yw6e/2MO
+ nv9kD57/ZBCe/2URnv9lEZ7/ZRGe/2YTnv9mE57/ZhOf/2seof9hEJr/nWrA///////9/P7/////////
+ /////////////////////////v7////////38vr/gUCu/3oxrf+qSe7/rkvz/65M8v+uTfL/r07y/69O
+ 8v+vT/L/sFDy/7BR8v+wUvL/sVPy/7FU8v+yVPL/slXy/7JW8/+zV/P/slfz/7Ze8/+dJ+//jgTt/5AK
+ 7f+PB+3/jwft/48G7P+OBez/jgXs/44E7P+NA+z7jQLs/40C7JSNAuwAjQLsBLRa8wO0WvMAtFrzTbRa
+ 8/+0WfP9s1jz/7NX8/+zV/P/slbz/7JV8v+yVfL/sVPy/7JV8v+uTPH/kAjs/44D7P+OBez/jwbs/48H
+ 7f+PCO3/kAnt/5AJ7f+RCu3/kQvt/5EM7f+SDe3/kg7t/5IP7f+TD+3/kxDt/5QR7f+UEu3/lBPt/5UU
+ 7v+WF+7/lhju/5cY7v+XGe7/mBru/5gb7v+YHO7/mR3u/5ke7v+aHu7/mh/u/5oh7v+aHu7/oTDv/79w
+ 9v+5b+z/oWrH/6Fqx/+hasf/oWvH/6Frx/+hbMf/omzH/6Jtx/+ibcf/o23H/6Nux/+jbsf/o2/H/6Nv
+ x/+jb8f/o3DH/6Rwx/+kcMf/pHHH/6Rxx/+kcsf/pHLH/6Vyx/+lc8f/pXPH/6Vzx/+ldMf/pnXH/6Z1
+ x/+mdcf/p3bI/6BsxP/Eo9r///////79/v/////////////////////////////////+/v////////fy
+ +v+BQK7/ejGt/6pJ7v+uS/P/rkzy/65N8v+vTvL/r07y/69P8v+wUPL/sFHy/7BS8v+xU/L/sVTy/7JU
+ 8v+yVfL/slbz/7NX8/+zWfP/sVTz/5MQ7v+PB+3/kAnt/48H7f+PB+3/jwbs/44F7P+OBez/jgTs/40D
+ 7P2NAuz/jQLsTI0C7ACNAuwDtFrzAbNb8wCzW/MRtFnz5rRZ8/+zWPP+s1fz/7NX8/+yVvP/slXy/7JV
+ 8v+xVPL/sVLy/7NX8v+bIe7/jADs/44G7P+PBuz/jwft/48I7f+QCe3/kAnt/5EK7f+RC+3/kQzt/5IN
+ 7f+SDu3/kg/t/5MP7f+TEO3/lBHt/5QS7f+UE+3/lRTu/5UU7v+WFu7/lhbu/5YX7v+XGO7/lxnu/5ca
+ 7v+YGu7/mBzu/5kc7v+ZHe7/miDu/5YW7f+tSvH/////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+////////9/L6/4FArv96Ma3/qknu/65L8/+uTPL/rk3y/69O
+ 8v+vTvL/r0/y/7BQ8v+wUfL/sFLy/7FT8v+xVPL/slTy/7JV8v+yVvP/s1bz/7Vd8/+mO/H/jgXt/5AK
+ 7f+QCO3/jwft/48H7f+PBuz/jgXs/44F7P+OBOz+jQPs/40C7OWNAewQjQHsAI0C7AG0WfMAtFnzA7RZ
+ 8wC0WfOjtFnz/7NY8/yzV/P/s1fz/7JW8/+yVfL/slXy/7FU8v+xUvL/s1by/6g/8f+NAez/jgbs/48G
+ 7P+PB+3/jwjt/5AJ7f+QCe3/kQrt/5EL7f+RDO3/kg3t/5IO7f+SD+3/kw/t/5MQ7f+UEe3/lBLt/5QT
+ 7f+VFO7/lRTu/5YW7v+WFu7/lhfu/5cY7v+XGe7/lxru/5ga7v+YHO7/mRzu/5kd7v+aIO7/lhbt/6xI
+ 8f/+/f///vz///38/v/9/P7//fz+//38/v/9/P7//fz+//38/v/9/P7//fz+//38/v/9/P7//fz+//38
+ /v/9/P7//fz+//38/v/9/P7//fz+//38/v/9/P7//fz+//38/v/9/P7//fz+//38/v/9/P7//fz+//38
+ /v/9/P7//fz+//38/v/9/P7//v3+/////////////////////////////////////////////v7/////
+ ///38vr/gUCu/3oxrf+qSe7/rkvz/65M8v+uTfL/r07y/69O8v+vT/L/sFDy/7BR8v+wUvL/sVPy/7FU
+ 8v+yVPL/slXy/7JW8/+zVvP/tFvz/5kd7v+OBu3/kArt/5AI7f+PB+3/jwft/48G7P+OBez/jgXs/44E
+ 7PuNA+z/jQPsoo0D7ACNBOwDjQLrALNZ8wC0WfMDtFnzALRZ80+0WfP/s1jz/bNX8/+zV/P/slbz/7JV
+ 8v+yVfL/sVTy/7FT8v+xUvL/sVPy/5YV7f+MAez/jwfs/48H7f+PCO3/kAnt/5AJ7f+RCu3/kQvt/5EM
+ 7f+SDe3/kg7t/5IP7f+TD+3/kxDt/5QR7f+UEu3/lBPt/5UU7v+VFO7/lhbu/5YW7v+WF+7/lxju/5cZ
+ 7v+XGu7/mBru/5gc7v+ZHO7/mR3u/5og7v+WFu3/rEjx//////////////7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////+/v////////fy+v+BQK7/ejGt/6pJ7v+uS/P/rkzy/65N
+ 8v+vTvL/r07y/69P8v+wUPL/sFHy/7BS8v+xU/L/sVTy/7JU8v+yVfL/slXz/7Vb8/+rR/L/kAnt/5AK
+ 7f+QCe3/kAjt/48H7f+PB+3/jwbs/44F7P+OBez/jgTs/Y0D7P+NA+xOjQPsAI0D7AONAuwAtFjzALRZ
+ 8wG1WvMAtVrzDLRZ896zWPP/s1fz/bNX8/+yVvP/slXy/7JV8v+xVPL/sVPy/7BR8v+yVvL/pDbw/4wA
+ 7P+PB+z/jwft/48I7f+QCe3/kAnt/5EK7f+RC+3/kQzt/5IN7f+SDu3/kg/t/5MP7f+TEO3/lBHt/5QS
+ 7f+UE+3/lRTu/5UU7v+WFu7/lhbu/5YX7v+XGO7/lxnu/5ca7v+YGu7/mBzu/5kc7v+ZHe7/miDu/5YW
+ 7f+sSPH/////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////////////7+
+ ////////9/L6/4FArv96Ma3/qknu/65L8/+uTPL/rk3y/69O8v+vTvL/r0/y/7BQ8v+wUfL/sFLy/7FT
+ 8v+xVPL/slTy/7JV8v+yVfP/tVzz/50l7/+PBu3/kQvt/5AJ7f+QCO3/jwft/48H7f+PBuz/jgXs/44F
+ 7P2OBOz/jQPs3owC7AuMAuwAjQPsAYwC6wC4XPMAs1jzALNY8wSzWPMAs1jzi7NY8/+zV/P7s1fz/7JW
+ 8/+yVfL/slXy/7FU8v+xU/L/sVLy/7BS8v+wUfL/lBLt/40D7P+PB+3/jwjt/5AJ7f+QCe3/kQrt/5EL
+ 7f+RDO3/kg3t/5IO7f+SD+3/kw/t/5MQ7f+UEe3/lBLt/5QT7f+VFO7/lRTu/5YW7v+WFu7/lhfu/5cY
+ 7v+XGe7/lxru/5ga7v+YHO7/mRzu/5kd7v+aIO7/lhbt/6xI8f//////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7////////38vr/gUCu/3oxrf+qSe7/rkvz/65M
+ 8v+uTfL/r07y/69O8v+vT/L/sFDy/7BR8v+wUvL/sVPy/7FT8v+yVPL/slXy/7RZ8/+tSvL/kQvt/5EK
+ 7f+QCu3/kAnt/5AI7f+PB+3/jwft/48G7P+OBez/jgXs+44E7P+NBOyKjgTsAI4E7ASNA+wAkgHvAAAA
+ AACzWPMAs1jzArNY8wCzWPMus1jz/LNX8/+zV/P+slbz/7JV8v+yVfL/sVTy/7FT8v+xUvL/sFDy/7JW
+ 8v+kNvD/jQHs/5AI7f+PCO3/kAnt/5AJ7f+RCu3/kQvt/5EM7f+SDe3/kg7t/5IP7f+TD+3/kxDt/5QR
+ 7f+UEu3/lBPt/5UU7v+VFO7/lhbu/5YW7v+WF+7/lxju/5cZ7v+XGu7/mBru/5gc7v+ZHO7/mR3u/5og
+ 7v+WFu3/rEjx////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v////////fy+v+BQK7/ejGt/6pJ7v+uS/P/rkzy/65N8v+vTvL/r07y/69P8v+wUPL/sFHy/7BS
+ 8v+xU/L/sVPy/7JU8v+yVPL/tFvz/50m7/+PBu3/kQzt/5AK7f+QCe3/kAjt/48H7f+PB+3/jwbs/44F
+ 7P6OBez/jgTs/I4E7C6OBOwAjgTsAo0E7QAAAAAAAAAAALRZ8wCyWPMAtFjzArNY8wCzWPOzs1fz/7NX
+ 8/yyVvP/slXy/7JV8v+xVPL/sVPy/7FS8v+wUfL/sFHy/7BR8v+VFO3/jgPs/5AJ7f+QCO3/kAnt/5EK
+ 7f+RC+3/kQzt/5IN7f+SDu3/kg/t/5MP7f+TEO3/lBHt/5QS7f+UE+3/lRTu/5UU7v+WFu7/lhbu/5YX
+ 7v+XGO7/lxnu/5ca7v+YGu7/mBzu/5kc7v+ZHe7/miDu/5YW7f+sSPH/////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////7+////////9/L6/4FArv96Ma7/qknu/65L
+ 8/+uTPL/rk3y/69O8v+vTvL/r0/y/7BQ8v+wUfL/sFLy/7FT8v+xVPL/sVPy/7NZ8/+sSPL/kQvt/5EL
+ 7f+RC+3/kArt/5AJ7f+QCO3/jwft/48H7f+PBuz/jgXs/I4F7P+OBOyxjgTsAI0E7AKPBOwAjQLsAAAA
+ AAAAAAAAqlXqALNZ8gCzWPMDs1jzALNY80qzV/P/s1fz/bJW8/+yVfL/slXy/7FU8v+xU/L/sVLy/7BR
+ 8v+wUPL/slTy/6c88P+OBO3/kAjt/5AJ7f+QCe3/kQrt/5EL7f+RDO3/kg3t/5IO7f+SD+3/kw/t/5MQ
+ 7f+UEe3/lBLt/5QT7f+VFO7/lRTu/5YW7v+WFu7/lhfu/5cY7v+XGe7/lxru/5ga7v+YHO7/mRzu/5kd
+ 7v+aIO7/lhbt/6xI8f//////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7////////28vr/gD+t/3kxrP+qSe7/rkvz/65M8v+uTfL/r07y/69O8v+vT/L/sFDy/7BR
+ 8v+wUvL/sVPy/7FT8v+xVPL/s1jy/5og7/+PCO3/kQzt/5EL7f+QCu3/kAnt/5AI7f+PB+3/jwft/48G
+ 7P+OBez9jgXs/44E7EaOBOwAjgTsA40E7QCLAOgAAAAAAAAAAAAAAAAAs1jzALNY8wCyVPUBtVT3ALNX
+ 88WzV/P/slbz/bJV8v+yVfL/sVTy/7FT8v+xUvL/sFHy/7BR8v+wT/L/sVPy/5kf7/+NA+3/kQrt/5AJ
+ 7f+RCu3/kQvt/5EM7f+SDe3/kg7t/5IP7f+TD+3/kxDt/5QR7f+UEu3/lBPt/5UU7v+VFO7/lhbu/5YW
+ 7v+WF+7/lxju/5cZ7v+XGu7/mBru/5gc7v+ZHO7/mR3u/5og7v+WFu3/rEjx/////////v///v7////+
+ /////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+
+ /////v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////7////+
+ /////v////7////+/////v////7////+/////v////7////+///+/f////////bx+v+EQbP/fjOy/6pK
+ 7v+uS/P/rkzy/65N8v+vTvL/r07y/69P8v+wUPL/sFHy/7BS8v+xU/L/sFLy/7RZ8v+nPfD/kAjt/5EN
+ 7f+RC+3/kQvt/5AK7f+QCe3/kAjt/48H7f+PB+3/jwbs/Y4F7P+OBezEiQvuAIwJ7QGPBOwAjwTsAAAA
+ AAAAAAAAAAAAAAAAAAC0WfQAtFfzALNX8wOzV/MAs1fzVLNX8/+yVvP8slXy/7JV8v+xVPL/sVPy/7FS
+ 8v+wUfL/sFHy/7BQ8v+wUfL/q0fy/5EL7f+QCO3/kArt/5EK7f+RC+3/kQzt/5IN7f+SDu3/kg/t/5MP
+ 7f+TEO3/lBHt/5QS7f+UE+3/lRTu/5UU7v+WFu7/lhbu/5YX7v+XGO7/lxnu/5ca7v+YGu7/mBzu/5kc
+ 7v+ZHe7/miDu/5YW7f+tSfH/////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+////////+fP+/65T7v+oRe7/rUvy/61L8v+uTPL/rk3y/69O8v+vTvL/r0/y/7BQ
+ 8v+wUfL/sFLy/7FS8v+xVPL/sFHy/5UV7v+RC+3/kQzt/5EL7f+RC+3/kArt/5AJ7f+QCO3/jwft/48H
+ 7f+PBuz9jgXs/44F7FOOBewAjgXsA5AF6wCPBewAAAAAAAAAAAAAAAAAAAAAAAAAAACzWPMAs1fzAK1R
+ 8wBHAPAAs1fzxbJW8/+yVfL9slXy/7FU8v+xU/L/sVLy/7BR8v+wUfL/sFDy/69O8v+xVPL/ojLw/44E
+ 7f+QCu3/kQrt/5EL7f+RDO3/kg3t/5IO7f+SD+3/kw/t/5MQ7f+UEe3/lBLt/5QT7f+VFO7/lRTu/5YW
+ 7v+WFu7/lhfu/5cY7v+XGe7/lxru/5ga7v+YHO7/mRzu/5kd7v+aIO7/lhft/6tG8f/48P7/+PD+//jv
+ /v/48P7/+PD+//jw/v/48P7/+PD+//jw/v/48P7/+PD+//jw/v/48P7/+PD+//jw/v/48P7/+fH+//nx
+ /v/58f7/+fH+//nx/v/58f7/+fH+//nx/v/58f7/+fH+//nx/v/58f7/+fH+//nx/v/58f7/+fH+//nx
+ /v/58f7/+fL+//ny/v/58v7/+fL+//ny/v/58v7/+fL+//ny/v/58v7/+fH+//v1/v/05/3/slTz/6xH
+ 8/+tS/L/rUvy/65M8v+uTfL/r07y/69O8v+vT/L/sFDy/7BR8v+wUvL/sVLy/7NY8v+fKu//kAjt/5IO
+ 7f+RDO3/kQvt/5EL7f+QCu3/kAnt/5AI7f+PB+3/jwft/Y8G7P+OBezErSPtAJcN7ACNBewAjgTsAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAALVX8gCzWPUAslbzA7JW8wCyVvNLslbz/7JV8v2yVfL/sVTy/7FT
+ 8v+xUvL/sFHy/7BR8v+wUPL/r0/y/69O8v+wUfL/mR3u/44F7f+RC+3/kQvt/5EM7f+SDe3/kg7t/5IP
+ 7f+TD+3/kxDt/5QR7f+UEu3/lBPt/5UU7v+VFO7/lhbu/5YW7v+WF+7/lxju/5cZ7v+XGu7/mBru/5gc
+ 7v+ZHO7/mR3u/5ke7v+aHu7/myLu/6Ev7/+hL/D/oTDw/6Ix8P+iMvD/ozLw/6Mz8P+jNPD/pDXw/6Q2
+ 8P+kN/D/pTfw/6U48P+lOfD/pjrw/6Y78P+nO/H/pzzx/6c98f+oPvH/qD/x/6k/8f+pQPH/qUHx/6pC
+ 8f+qQ/H/qkTx/6tE8f+rRfH/q0bx/6tH8f+sR/L/rUjy/6xJ8v+tSvL/rUvy/65M8v+uTPL/rk3y/69O
+ 8v+vT/L/r1Dy/7BR8v+wUfL/sVLy/7FS8v+sSfH/rEny/61K8v+tS/L/rkzy/65N8v+vTvL/r07y/69P
+ 8v+wUPL/sFHy/7BR8v+zV/L/qD/x/5EL7f+SDu3/kg3t/5EM7f+RC+3/kQvt/5AK7f+QCe3/kAjt/48H
+ 7f+PB+39jwbs/48G7EqPBuwAjwbsA44G6gCOA+0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALNX
+ 8wCyVfMAsVbzArFV8wCyVvO0slXy/7JV8vyxVPL/sVPy/7FS8v+wUfL/sFHy/7BQ8v+vUPL/r07y/7BQ
+ 8v+sSPL/kg7t/5AJ7f+RDO3/kQzt/5IN7f+SDu3/kg/t/5MP7f+TEO3/lBHt/5QS7f+UE+3/lRTu/5UU
+ 7v+WFu7/lhbu/5YX7v+XGO7/lxnu/5ca7v+YGu7/mBzu/5kc7v+ZHe7/mR7u/5of7v+aH+7/mR3u/5ke
+ 7/+ZH+//miDv/5oh7/+bIe//myLv/5sj7/+cJO//nCXv/50m7/+dJ+//nSjv/54o7/+eKe//nirv/58r
+ 8P+fLPD/oC3w/6Eu8P+gL/D/oS/w/6Ew8P+iMfD/ozLw/6Iz8P+jNPD/pDXw/6Q18P+kN/D/pDfw/6U4
+ 8f+mOfH/pTrx/6Y78f+nPPH/pz3x/6g98f+oPvH/qD/x/6lA8f+pQfH/qkLx/6pD8f+qQ/H/q0Xx/6xI
+ 8f+tSfL/rUry/61L8v+uTPL/rk3y/69O8v+vTvL/r0/y/7BQ8v+wUPL/sVPy/69O8v+VFO3/kQzt/5IO
+ 7f+SDO3/kQzt/5EL7f+RC+3/kArt/5AJ7f+QCO3/jwft/I8H7f+PBuyzjwfrAI8H7AKPBuwAjgXsAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs1f0ALNW8wCyVvMCslbzALJW8zGyVfL5slXy/7FU
+ 8v6xU/L/sVLy/7BR8v+wUfL/sFDy/69Q8v+vT/L/r03y/7BR8v+mO/H/kAjt/5EL7f+RDO3/kg3t/5IO
+ 7f+SD+3/kw/t/5MQ7f+UEe3/lBLt/5QT7f+VFO7/lRTu/5YW7v+WFu7/lhfu/5cY7v+XGe7/lxru/5ga
+ 7v+YHO7/mRzu/5kd7v+ZHu7/mh/u/5og7v+bIu7/myLv/5sj7/+cJO//nCXv/50m7/+eJ+//nSjv/54o
+ 7/+eKe//nyrv/58r7/+fLO//oC3v/6Au7/+gLu//oS/w/6Ew8P+iMfD/ojLw/6Iz8P+jNPD/ozTw/6Q1
+ 8P+kNvD/pDfw/6U48P+lOfD/pTrw/6Y78P+mO/D/pzzx/6c98f+nPvH/qD/x/6hA8f+pQfH/qUHx/6lC
+ 8f+qQ/H/qkTx/6pF8f+rRvH/q0bx/6xH8f+sSPH/rEjy/61J8v+tSvL/rUvy/65M8v+uTfL/r07y/69O
+ 8v+vT/L/sFDy/7BR8v+xVPL/myHu/5EL7f+SD+3/kg3t/5IM7f+RDO3/kQvt/5EL7f+QCu3/kAnt/5AI
+ 7f6PB+3/jwft+I8H7DGPB+wAjwfsAo0F6wCNBOsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAslbzAMVj+ACyVfIDslXyALJV8omyVfL/sVTy+7FT8v+xUvL/sFHy/7BR8v+wUPL/r1Dy/69P
+ 8v+vTvL/rkzy/7BR8v+hLvD/jwbt/5IN7f+SDe3/kg7t/5IP7f+TD+3/kxDt/5QR7f+UEu3/lBPt/5UU
+ 7v+VFO7/lhbu/5YW7v+WF+7/lxju/5cZ7v+XGu7/mBru/5gc7v+ZHO7/mR3u/5ke7v+aH+7/miDu/5sh
+ 7v+bIu//myLv/5wj7/+cJO//nCXv/50m7/+dJ+//nijv/54o7/+eKe//nyrv/58r7/+gLO//oC3v/6At
+ 7/+hL/D/oS/w/6Ew8P+iMfD/ojLw/6Mz8P+jM/D/ozXw/6Q18P+kNvD/pTfw/6U48P+lOfD/pjrw/6Y7
+ 8P+mO/H/pzzx/6c98f+oPvH/qD/x/6hA8f+pQPH/qULx/6pC8f+qQ/H/qkTx/6tF8f+rRvH/q0bx/6xI
+ 8f+sSPL/rUny/61K8v+tS/L/rkzy/65N8v+vTfL/r07y/69P8v+vT/L/slby/6Au7/+RC+3/kxDt/5IO
+ 7f+SDe3/kgzt/5EM7f+RC+3/kQvt/5AK7f+QCe3/kAjt+48H7f+PB+2JjwftAI8H7QOTAOMAjwbsAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACzVfQAslbzALJV8gGzV/EAslbyDLJU
+ 8tSxVPL/sVPy/bFS8v+wUfL/sFHy/7BQ8v+vUPL/r0/y/69O8v+uTfL/rkzy/7BP8v+cJO//jwft/5MO
+ 7f+SDu3/kg/t/5MP7f+TEO3/lBHt/5QS7f+UE+3/lRTu/5UU7v+WFu7/lhbu/5YX7v+XGO7/lxnu/5ca
+ 7v+YGu7/mBzu/5kc7v+ZHe7/mR7u/5of7v+aIO7/myHu/5si7/+bIu//nCPv/5wk7/+cJe//nSbv/50n
+ 7/+eKO//nijv/54p7/+fKu//nyvv/6As7/+gLe//oC3v/6Ev8P+hL/D/oTDw/6Ix8P+iMvD/ozPw/6Mz
+ 8P+jNfD/pDXw/6Q28P+lN/D/pTjw/6U58P+mOvD/pjvw/6Y78f+nPPH/pz3x/6g+8f+oP/H/qEDx/6lA
+ 8f+pQvH/qkLx/6pD8f+qRPH/q0Xx/6tG8f+rRvH/rEjx/6xI8v+tSfL/rUry/61L8v+uTPL/rk3y/69N
+ 8v+vTvL/rk7y/7JV8v+lOPD/kQ3t/5MQ7f+TD+3/kg7t/5IN7f+SDO3/kQzt/5EL7f+RC+3/kArt/5AJ
+ 7f2QCO3/jwjt15AF7Q2QBO0AkAftAY8G7ACQCesAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAACxVvMAsVbyALFU8gOxVPIAslTyR7FU8v+xU/L9sVLy/7BR8v+wUfL/sFDy/69Q
+ 8v+vT/L/r07y/65N8v+uTPL/rkzy/65N8v+ZHe7/kAjt/5MP7f+SDu3/kw/t/5MQ7f+UEe3/lBLt/5QT
+ 7f+VFO7/lRTu/5YW7v+WFu7/lhfu/5cY7v+XGe7/lxru/5ga7v+YHO7/mRzu/5kd7v+ZHu7/mh/u/5og
+ 7v+bIe7/myLv/5si7/+cI+//nCTv/5wl7/+dJu//nSfv/54o7/+eKO//ninv/58q7/+fK+//oCzv/6At
+ 7/+gLe//oS/w/6Ev8P+hMPD/ojHw/6Iy8P+jM/D/ozPw/6M18P+kNfD/pDbw/6U38P+lOPD/pTnw/6Y6
+ 8P+mO/D/pjvx/6c88f+nPfH/qD7x/6g/8f+oQPH/qUDx/6lC8f+qQvH/qkPx/6pE8f+rRfH/q0bx/6tG
+ 8f+sSPH/rEjy/61J8v+tSvL/rUvy/65M8v+uTfL/r07y/65N8v+xVPL/qD/x/5MP7f+TEO3/kxDt/5MP
+ 7f+SDu3/kg3t/5IM7f+RDO3/kQvt/5EL7f+QCu3/kAnt/ZAI7f+PCO1IjwjtAI8I7QOPB+0AjwftAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACyVfIAvVrwALFT
+ 8gOxU/IAsVTyjrFT8v+xUvL7sFHy/7BR8v+wUPL/r1Dy/69P8v+vTvL/rk3y/65N8v+uS/L/rkzy/6xJ
+ 8v+YGu7/kArt/5MQ7f+TD+3/kxDt/5QR7f+UEu3/lBPt/5UU7v+VFO7/lhbu/5YW7v+WF+7/lxju/5cZ
+ 7v+XGu7/mBru/5gc7v+ZHO7/mR3u/5ke7v+aH+7/miDu/5sh7v+bIu//myLv/5wj7/+cJO//nCXv/50m
+ 7/+dJ+//nijv/54o7/+eKe//nyrv/58r7/+gLO//oC3v/6At7/+hL/D/oS/w/6Ew8P+iMfD/ojLw/6Mz
+ 8P+jM/D/ozXw/6Q18P+kNvD/pTfw/6U48P+lOfD/pjrw/6Y78P+mO/H/pzzx/6c98f+oPvH/qD/x/6hA
+ 8f+pQPH/qULx/6pC8f+qQ/H/qkTx/6tF8f+rRvH/q0bx/6xI8f+sSPL/rUny/61K8v+tS/L/rkzy/65N
+ 8v+uTPL/sVLy/6lC8f+VE+3/kxDt/5MR7f+TD+3/kw/t/5IO7f+SDe3/kgzt/5EM7f+RC+3/kQvt/5AK
+ 7fuQCe3/kAjtjpAK7QCQCe0DiQbvAI8H7QCZAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAALNV8gCxVPEAsFPzAaZR+gCwU/MIsVPyzLFS8v+wUfL8sFHy/7BQ
+ 8v+vUPL/r0/y/69O8v+uTfL/rkzy/65M8v+tSvL/rkzy/6xI8v+XGe7/kQvt/5QQ7f+TEO3/lBHt/5QS
+ 7f+UE+3/lRTu/5UU7v+WFu7/lhbu/5YX7v+XGO7/lxnu/5ca7v+YGu7/mBzu/5kc7v+ZHe7/mR7u/5of
+ 7v+aIO7/myHu/5si7/+bIu//nCPv/5wk7/+cJe//nSbv/50n7/+eKO//nijv/54p7/+fKu//nyvv/6As
+ 7/+gLe//oC3v/6Ev8P+hL/D/oTDw/6Ix8P+iMvD/ozPw/6Mz8P+jNfD/pDXw/6Q28P+lN/D/pTjw/6U5
+ 8P+mOvD/pjvw/6Y78f+nPPH/pz3x/6g+8f+oP/H/qEDx/6lA8f+pQvH/qkLx/6pD8f+qRPH/q0Xx/6tG
+ 8f+rRvH/rEjx/6xI8v+tSfL/rUry/61L8v+uTPL/rUzy/7BR8v+qQ/H/lRXt/5MQ7f+UEu3/kxDt/5MQ
+ 7f+TD+3/kg7t/5IN7f+SDO3/kQzt/5EL7f+RC+38kArt/5AJ7cyRCe4Imw7xAJEJ7QGPB+0AjwftAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALFU
+ 8gCxVPIAsVPyArFT8gCxU/IvsVLy87BR8v+wUfL+sFDy/69Q8v+vT/L/r07y/65N8v+uTPL/rkzy/65L
+ 8v+tSfL/rkvy/6xH8v+YG+7/kQvt/5MR7f+UEe3/lBLt/5QT7f+VFO7/lRTu/5YW7v+WFu7/lhfu/5cY
+ 7v+XGe7/lxru/5ga7v+YHO7/mRzu/5kd7v+ZHu7/mh/u/5og7v+bIe7/myLv/5si7/+cI+//nCTv/5wl
+ 7/+dJu//nSfv/54o7/+eKO//ninv/58q7/+fK+//oCzv/6At7/+gLe//oS/w/6Ev8P+hMPD/ojHw/6Iy
+ 8P+jM/D/ozPw/6M18P+kNfD/pDbw/6U38P+lOPD/pTnw/6Y68P+mO/D/pjvx/6c88f+nPfH/qD7x/6g/
+ 8f+oQPH/qUDx/6lC8f+qQvH/qkPx/6pE8f+rRfH/q0bx/6tG8f+sSPH/rEjy/61J8v+tSvL/rUvy/65L
+ 8v+wUfL/qUHx/5YV7f+TEe3/lBPt/5MR7f+TEO3/kxDt/5MP7f+SDu3/kg3t/5IM7f+RDO3/kQvt/pEL
+ 7f+QCu3zkAntL5AJ7QCQCe0CkAjtAJAI7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuV3oALFT8gCxU/IAsVLyBLFS8gCxUvJbsFLy/7BR
+ 8vywUPL/r1Dy/69P8v+vTvL/rk3y/65M8v+uTPL/rUvy/61K8v+tSfL/rUvy/6xH8f+aH+7/kQzt/5QS
+ 7f+UEu3/lBPt/5UU7v+VFO7/lhbu/5YW7v+WF+7/lxju/5cZ7v+XGu7/mBru/5gc7v+ZHO7/mR3u/5ke
+ 7v+aH+7/miDu/5sh7v+bIu//myLv/5wj7/+cJO//nCXv/50m7/+dJ+//nijv/54o7/+eKe//nyrv/58r
+ 7/+gLO//oC3v/6At7/+hL/D/oS/w/6Ew8P+iMfD/ojLw/6Mz8P+jM/D/ozXw/6Q18P+kNvD/pTfw/6U4
+ 8P+lOfD/pjrw/6Y78P+mO/H/pzzx/6c98f+oPvH/qD/x/6hA8f+pQPH/qULx/6pC8f+qQ/H/qkTx/6tF
+ 8f+rRvH/q0bx/6xI8f+sSPH/rUny/61K8v+tSvL/sFDy/6c+8f+VFe7/lBHt/5QT7f+UEu3/lBHt/5MQ
+ 7f+TEO3/kw/t/5IO7f+SDe3/kgzt/5EM7f+RC+38kQrt/5AK7VuQCu0AkArtBJAJ7QCQCe0AlQDqAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAsFLzALFT8gDRb9MAsFHyBLBQ8gCwUfKLsFHy/7BQ8vuvUPL/r0/y/69O8v+uTfL/rkzy/65M
+ 8v+tS/L/rUry/61K8v+sSPL/rEny/61J8f+dJu//kg3t/5QS7f+UE+3/lRTt/5UU7v+WFu7/lhbu/5YX
+ 7v+XGO7/lxnu/5ca7v+YGu7/mBzu/5kc7v+ZHe7/mR7u/5of7v+aIO7/myHu/5si7/+bIu//nCPv/5wk
+ 7/+cJe//nSbv/50n7/+eKO//nijv/54p7/+fKu//nyvv/6As7/+gLe//oC3v/6Ev8P+hL/D/oTDw/6Ix
+ 8P+iMvD/ozPw/6Mz8P+jNfD/pDXw/6Q28P+lN/D/pTjw/6U58P+mOvD/pjvw/6Y78f+nPPH/pz3x/6g+
+ 8f+oP/H/qEDx/6lA8f+pQvH/qkLx/6pD8f+qRPH/q0Xx/6tG8f+rRvH/rEjx/6xI8v+tSfL/rUry/69P
+ 8v+lN/H/lBPu/5UT7f+VFO3/lBLt/5QS7f+UEe3/kxDt/5MQ7f+TD+3/kg7t/5IN7f+SDO3/kQzt+5EL
+ 7f+RC+2KkQztAJEL7QQAAKcAkAntAJAJ7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAslPyAM9H/wCwUPIBsVPxArFV
+ 6gCwUfKssFDy/69Q8vuvT/L/r07y/65N8v+uTPL/rkzy/65L8v+tSvL/rUry/61J8v+sSPH/rEjx/61K
+ 8f+gLu//kxDt/5QS7f+VFe7/lRTu/5YW7v+WFu7/lhfu/5cY7v+XGe7/lxru/5ga7v+YHO7/mRzu/5kd
+ 7v+ZHu7/mh/u/5og7v+bIe7/myLv/5si7/+cI+//nCTv/5wl7/+dJu//nSfv/54o7/+eKO//ninv/58q
+ 7/+fK+//oCzv/6At7/+gLe//oS/w/6Ev8P+hMPD/ojHw/6Iy8P+jM/D/ozPw/6M18P+kNfD/pDbw/6U3
+ 8P+lOPD/pTnw/6Y68P+mO/D/pjvx/6c88f+nPfH/qD7x/6g/8f+oQPH/qUDx/6lC8f+qQvH/qkPx/6pE
+ 8f+rRfH/q0bx/6tG8f+sSPH/rEfx/61K8v+uTPL/oS7w/5QS7v+VFO7/lRTu/5QT7f+UEu3/lBLt/5QR
+ 7f+TEO3/kxDt/5MP7f+SDu3/kg3t/5IM7fuRDO3/kQvtrIsR7gCQCu4CkQvtAbsX+ACQCe0AAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAsFLyAK9S8gCwUfIBpkn2AK9Q8gqwUPLFr1Dy/69P8vuvTvL/rk3y/65M
+ 8v+uTPL/rkvy/61K8v+tSvL/rEny/6xI8v+sR/H/rEbx/61K8f+lOPD/lhft/5QR7f+VFe7/lhbu/5YW
+ 7v+WF+7/lxju/5cZ7v+XGu7/mBru/5gc7v+ZHO7/mR3u/5ke7v+aH+7/miDu/5sh7v+bIu//myLv/5wj
+ 7/+cJO//nCXv/50m7/+dJ+//nijv/54o7/+eKe//nyrv/58r7/+gLO//oC3v/6At7/+hL/D/oS/w/6Ew
+ 8P+iMfD/ojLw/6Mz8P+jM/D/ozXw/6Q18P+kNvD/pTfw/6U48P+lOfD/pjrw/6Y78P+mO/H/pzzx/6c9
+ 8f+oPvH/qD/x/6hA8f+pQPH/qULx/6pC8f+qQ/H/qkTx/6tF8f+rRvH/q0bx/6xH8f+tS/L/q0by/5wk
+ 7/+UEu7/lRbu/5UV7v+VFO3/lRPt/5QS7f+UEu3/lBHt/5MQ7f+TEO3/kw/t/5IO7f+SDe37kgzt/5EM
+ 7caSDO4KlxHxAJEL7QGQCu0AkArtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/YP8AsFDyALBR
+ 8gCwUPICslHyALFR8hivT/LWr0/y/69O8vuuTfL/rkzy/65M8v+uS/L/rUry/61K8v+tSfL/rEjx/6xH
+ 8f+sR/H/q0Xx/6xI8f+pQfH/myLv/5MR7v+VFe7/lhfu/5YX7v+XGO7/lxnu/5ca7v+YGu7/mBzu/5kc
+ 7v+ZHe7/mR7u/5of7v+aIO7/myHu/5si7/+bIu//nCPv/5wk7/+cJe//nSbv/50n7/+eKO//nijv/54p
+ 7/+fKu//nyvv/6As7/+gLe//oC3v/6Ev8P+hL/D/oTDw/6Ix8P+iMvD/ozPw/6Mz8P+jNfD/pDXw/6Q2
+ 8P+lN/D/pTjw/6U58P+mOvD/pjvw/6Y78f+nPPH/pz3x/6g+8f+oP/H/qEDx/6lA8f+pQvH/qkLx/6pD
+ 8f+qRPH/q0Xx/6tF8f+sR/H/rkvx/6Y68P+YG+7/lRTu/5YX7v+VFe7/lRXu/5UU7v+VE+3/lBLt/5QS
+ 7f+UEe3/kxDt/5MQ7f+TD+3/kg7t+5IN7f+SDe3UkAvtF5AL7QCRDO0CkQvtAJEL7QCSAP8AAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACxUfIAsFDyALBQ8gCvUPIDr1DyAK9Q8iCvT/Ldr07y/65N
+ 8vuuTPL/rkzy/61L8v+tSvL/rUry/61J8v+sSPL/rEfx/6xH8f+rRvH/q0Tx/6tG8f+rRvH/oTHw/5YY
+ 7v+VE+7/lhfu/5cY7v+XGe7/lxru/5ga7v+YHO7/mRzu/5kd7v+ZHu7/mh/u/5og7v+bIe7/myLv/5si
+ 7/+cI+//nCTv/5wl7/+dJu//nSfv/54o7/+eKO//ninv/58q7/+fK+//oCzv/6At7/+gLe//oS/w/6Ev
+ 8P+hMPD/ojHw/6Iy8P+jM/D/ozPw/6M18P+kNfD/pDbw/6U38P+lOPD/pTnw/6Y68P+mO/D/pjvx/6c8
+ 8f+nPfH/qD7x/6g/8f+oQPH/qUDx/6lC8f+qQvH/qkPx/6pE8f+rRfH/rEnx/6tF8f+gLO//lhbu/5YW
+ 7v+WGO7/lhbu/5UV7v+VFe7/lRTu/5UT7f+UEu3/lBLt/5QR7f+TEO3/kxDt/5MP7fuSDu3/kg3t3JIM
+ 7R2SDe0AkgztA5EL7QCRC+0AkQvsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AACwUPEAsFDyALBQ8gCvT/IDr07yAK9O8iKvTvLdrk3y/65M8vuuTPL/rUvy/61K8v+tSvL/rUny/6xI
+ 8v+sR/H/rEfx/6tG8f+rRfH/q0Tx/6pD8f+rRvH/qD7x/5wl7/+VFe7/lhbu/5cZ7v+YGu7/mBru/5gc
+ 7v+ZHO7/mR3u/5ke7v+aH+7/miDu/5sh7v+bIu//myLv/5wj7/+cJO//nCXv/50m7/+dJ+//nijv/54o
+ 7/+eKe//nyrv/58r7/+gLO//oC3v/6At7/+hL/D/oS/w/6Ew8P+iMfD/ojLw/6Mz8P+jM/D/ozXw/6Q1
+ 8P+kNvD/pTfw/6U48P+lOfD/pjrw/6Y78P+mO/H/pzzx/6c98f+oPvH/qD/x/6hA8f+pQPH/qULx/6lC
+ 8f+qQvH/q0bx/6xH8f+lOPD/mR7u/5YW7v+XGO7/lhju/5YX7v+WFu7/lRXu/5UV7v+VFO7/lRPt/5QS
+ 7f+UEu3/lBHt/5MQ7f+TEO37kw/t/5IO7dySDu0ikg7tAJEN7QORDO0AkQztAJEO7AAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwUPIAr0/yAK9P8gCvT/IDsE/yALBO
+ 8h+uTfLXrkzy/65M8vuuS/L/rUry/61K8v+tSfL/rEjy/6xH8f+sR/H/q0bx/6tF8f+rRfH/qkTx/6pC
+ 8f+qRPH/qkTx/6Q28P+bIO//lhfu/5cY7v+YG+7/mBzu/5kc7v+ZHe7/mR7u/5of7v+aIO7/myHu/5si
+ 7/+bIu//nCPv/5wk7/+cJe//nSbv/50n7/+eKO//nijv/54p7/+fKu//nyvv/6As7/+gLe//oC3v/6Ev
+ 8P+hL/D/oTDw/6Ix8P+iMvD/ozPw/6Mz8P+jNfD/pDXw/6Q28P+lN/D/pTjw/6U58P+mOvD/pjvw/6Y7
+ 8f+nPPH/pz3x/6g+8f+oP/H/qEDx/6lA8f+pQfH/qkTx/6tG8f+nPPH/nSbv/5cY7v+XGO7/lxru/5cY
+ 7v+WF+7/lhfu/5YW7v+VFe7/lRXu/5UU7v+VE+3/lBLt/5QS7f+UEe3/kxDt+5MP7f+TD+3Ukg7tHJEO
+ 7QCSDe0Dkg3tAJIN7QCSDO4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAACvT/IAr07yAK9O8gCvTvIDrk7yAK5N8hauTPLIrkzy/61L8vqtSvL/rUry/6xJ
+ 8v+sSPH/rEfx/6xH8f+rRvH/q0Xx/6tF8f+qRPH/qkPx/6pC8f+pQfH/qkPx/6lB8f+iMvD/miDv/5cY
+ 7v+XGu7/mR3u/5ke7v+ZHu7/mh/u/5og7v+bIe7/myLv/5si7/+cI+//nCTv/5wl7/+dJu//nSfv/54o
+ 7/+eKO//ninv/58q7/+fK+//oCzv/6At7/+gLe//oS/w/6Ev8P+hMPD/ojHw/6Iy8P+jM/D/ozPw/6M1
+ 8P+kNfD/pDbw/6U38P+lOPD/pTnw/6Y68P+mOvD/pjvx/6c88f+nPfH/qD7x/6g+8f+oP/H/qkLx/6pE
+ 8f+nPPD/nyrv/5gb7v+XGe7/mBvu/5ca7v+XGe7/lxju/5YX7v+WF+7/lhbu/5UV7v+VFe7/lRTu/5UT
+ 7f+UEu3/lBLt/5MR7fqTEO3/kxDtyJIO7BaTDuwAkg7tA5IO7QCSDu0Akg3tAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACvTvIAr07yAK9O
+ 8gCvTfIDrkbzAK5M8wmuTPKtrkvy/61K8vutSvL+rUny/6xI8f+sR/H/rEfx/6tG8f+rRfH/q0Xx/6pE
+ 8f+qQ/H/qkPx/6lC8f+pQPH/qUDx/6lC8f+oP/H/ozLw/5sj7/+YG+7/mBvu/5ke7v+aH+7/miDu/5sh
+ 7v+bIu//myLv/5wj7/+cJO//nCXv/50m7/+dJ+//nijv/54o7/+eKe//nyrv/58r7/+gLO//oC3v/6At
+ 7/+hL/D/oS/w/6Ew8P+iMfD/ojLw/6Mz8P+jM/D/ozXw/6Q18P+kNvD/pTfw/6U48P+lOfD/pjrw/6Y6
+ 8P+mO/H/pzzx/6c98f+oPvH/qUHx/6lB8f+mOfD/nyrv/5kd7v+YGu7/mBzu/5gc7v+YGu7/lxnu/5cZ
+ 7v+XGO7/lhfu/5YX7v+WFu7/lRXu/5UV7v+VFO7/lBPt/5QS7f6UEu37lBHt/5MQ7a6VEe0KlxTsAJMP
+ 7QOSDu0Akg7tAJIO7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACvTfIArk3yAK5N8gCuTfICq03xAlY6ywCtS/KLrUry/61K
+ 8v2sSfL8rEjy/6xH8f+sR/H/q0bx/6tF8f+rRfH/qkTx/6pD8f+qQ/H/qULx/6lB8f+pQPH/qD/x/6g/
+ 8f+pQPH/qD7x/6Q18P+eKe//miDu/5kd7v+ZHu7/miDu/5si7/+bI+//nCPv/5wk7/+dJe//nSbv/50n
+ 7/+eKO//nijv/54p7/+fKu//nyvv/6As7/+gLe//oC3v/6Ev8P+hL/D/oTDw/6Ix8P+iMvD/ozPw/6Mz
+ 8P+jNfD/pDXw/6Q28P+lN/D/pTjw/6U58P+mOfD/pjrw/6c88f+oPvH/qD/x/6c88f+jM/D/nSfv/5ke
+ 7v+YHO7/mR3u/5kd7v+YHO7/mBvu/5ga7v+XGe7/lxnu/5cY7v+WF+7/lhfu/5YW7v+VFe7/lRXu/5UU
+ 7f+VE+38lBLt/ZQS7f+UEe2MuQ7jAJQP7AKTEO0Ckw/tAJMP7QCSDu0AAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AACtS/EArkzyAK5M8gCuTPIBrkvyBK1K8wCtSvJZrUry9K1J8v+sSPL7rEfx/qxH8f+rRvH/q0Xx/6tF
+ 8f+qRPH/qkPx/6pD8f+pQvH/qUHx/6lA8f+oQPH/qD/x/6g+8f+nPfH/qD7x/6g+8f+lOfH/ojDv/54n
+ 7/+bIu7/myDv/5oh7/+cIu//nCTv/50l7/+dJu//nSfv/54o7/+eKO//ninv/58q7/+fK+//oCzv/6At
+ 7/+gLe//oS/w/6Ev8P+hMPD/ojHw/6Iy8P+jM/D/ozPw/6M08P+kNfD/pDbw/6Q38P+lOPD/pTrw/6c7
+ 8P+nPPD/pjrx/6Q18P+gLPD/nCPu/5ke7v+ZHu7/mh/u/5ke7v+ZHe7/mRzu/5gc7v+YG+7/mBru/5cZ
+ 7v+XGe7/lxju/5YX7v+WF+7/lhbu/5UV7v+VFe7+lRTu+5QT7f+UEu31lBLtWpQS7gCUEe0ElBHtAZMQ
+ 7QCTEO0AlA7tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACuTPIArkzzAK5M8gCuTPMBrkryBK5J
+ 8gCtSfIsrEnyz6xI8f+sR/H7rEfx/atG8f+rRfH/q0Xx/6pE8f+qQ/H/qkPx/6lC8f+pQfH/qUDx/6hA
+ 8f+oP/H/qD7x/6c98f+nPPH/pzzx/6c88f+nPPD/pzvw/6U38P+iMfD/nyvv/54n7/+cJe//nCTv/50l
+ 7/+dJu//nSfv/54o7/+eKe//nyrv/58r7/+gLO//oC3v/6At7/+hL/D/oS/w/6Ew8P+iMfD/ojLw/6Mz
+ 8P+jNPD/ozXw/6Q28P+kN/D/pTjw/6U38P+jNfD/ojHw/58r7/+dJe//miHv/5og7/+aIO7/miDu/5og
+ 7v+aH+7/mR7u/5kd7v+ZHO7/mBzu/5gb7v+YGu7/lxnu/5cZ7v+XGO7/lhfu/5YX7v+WFu7/lRXu/ZUV
+ 7vuVFO3/lRPt0ZQT7SyTE+0AlBLtBJMR7QGTEe0AlBHtAJIP7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAC2Sf8ArUvxAK1N8QCuTfEArUryA6xO9QCtSvMHrEjxjqxI8f+sR/H+q0bx+6tF
+ 8f6rRfH/qkTx/6pD8f+qQ/H/qULx/6lB8f+pQPH/qEDx/6g/8f+oPvH/pz7x/6c98f+nPPH/pjvx/6Y6
+ 8P+mOvD/pjrw/6Y68P+mOfD/pTfw/6M08P+iMfD/oS7w/58r7/+fKu//nyrv/54q7/+fKu//nyvv/58s
+ 7/+gLe//oC3v/6Ev8P+hL/D/ojDw/6Ix8P+iMvD/ozLw/6My8P+iMvD/ojHw/6Au7/+fLO//nijv/5wl
+ 7/+bI+//myLv/5si7/+bIu//myLv/5sh7v+aIO7/mh/u/5oe7v+ZHu7/mR3u/5kc7v+YHO7/mBvu/5ga
+ 7v+XGe7/lxnu/5cY7v+WF+7/lhfu/pYW7vuVFe7+lRTu/5UU7pGVEusIlhHpAJQS7QOVEewAlRHsAJQS
+ 7QCOHOMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArUryAK1I
+ 8gCtSfIArUnyAq1H8QOtRfAArEfxQqxH8dmrRvH/q0Xx/KtF8fyqRPH/qkPx/6pD8f+pQvH/qUHx/6lA
+ 8f+oQPH/qD/x/6g+8f+nPvH/pz3x/6c88f+mO/H/pjrw/6Y68P+lOfD/pTjw/6U38P+kN/D/pDfw/6Q2
+ 8P+kNvD/ozXw/6M08P+jMvD/ojHw/6Ew8P+hL/D/oS/w/6Eu8P+hLvD/oC7v/6Au7/+gLe//oC3v/6As
+ 7/+fK+//nirv/54o7/+eJ+//nSbv/5wm7/+dJe//nSXv/5wl7/+cJO//nCPv/5si7/+bIu//myHu/5og
+ 7v+aH+7/mh7u/5ke7v+ZHe7/mRzu/5gc7v+YG+7/mBru/5cZ7v+XGe7/lxju/5YX7vyWF+78lhbu/5UV
+ 7tuVFe5ElBbvAJQV7gOUE+0ClBPtAJQT7QCUEu0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArEryAKxJ8gCsSfIArEnyAaxI8QOrR/IAq0fyCqtG
+ 8YirRfH5q0Xx/6pE8fyqQ/H8qkPx/6lC8f+pQfH/qUDx/6hA8f+oP/H/qD7x/6c+8f+nPfH/pzzx/6Y7
+ 8f+mOvD/pjrw/6U58P+lOfD/pTjw/6Q38P+kNvD/pDXw/6Q18P+jNPD/ozPw/6Mz8P+iMvD/ojLw/6Ix
+ 8P+hMPD/oS/w/6Eu8P+gLu//oC3v/6As7/+fK+//nyrv/58q7/+eKe//ninv/54o7/+dJ+//nSfv/50m
+ 7/+dJe//nCTv/5wj7/+cI+//myLv/5si7/+bIe7/miDu/5of7v+aHu7/mR7u/5kd7v+ZHO7/mBzu/5gb
+ 7v+YGu7/lxnu/5cZ7vyXGO78lhfu/5YX7vmWFu6JlRXtCpUV7QCVFO0DlRPtAZUT7QCVE+0AlBPuAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAqlX/AKxI8gCtVfcAngCUAKxH8QOrRvACq0XxAKtF8SurRfG3qkTx/6pD8f+qQ/H8qULx/KlB
+ 8f+pQPH/qEDx/6g/8f+oPvH/pz7x/6c98f+nPPH/pjvx/6Y68P+mOvD/pjnw/6U58P+lOPD/pTfw/6Q2
+ 8P+kNfD/pDXw/6M08P+jM/D/ozPw/6Iy8P+iMfD/ojDw/6Ew8P+hL/D/oS7w/6Au7/+gLe//oCzv/58s
+ 7/+fK+//nyrv/54p7/+eKe//nijv/50n7/+dJ+//nSbv/50l7/+cJO//nCPv/5wj7/+bIu//myLv/5sh
+ 7v+aIO7/mh/u/5oe7v+ZHu7/mR3u/5kc7v+YHO7/mBvu/5ga7vyXGe78lxnu/5cY7v+WF+60lhfuKpUX
+ 7gCVFu4ClRXuA5wA3wCWDuwAlRTuAJUV6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK1G8gCrR/EAq0fxAKtH
+ 8QGrRvEDq0PzAapG9ACqRPFHqkPxyqpD8f+pQvH+qUHx/alA8fyoQPH+qD/x/6g+8f+nPvH/pz3x/6c8
+ 8f+mO/H/pjrw/6Y68P+mOfD/pTnw/6U48P+lN/D/pDbw/6Q18P+kNfD/ozTw/6Mz8P+jM/D/ojLw/6Ix
+ 8P+iMPD/oTDw/6Ev8P+hLvD/oC7v/6At7/+gLO//nyzv/58r7/+fKu//ninv/54p7/+eKO//nSfv/50n
+ 7/+dJu//nSXv/5wk7/+cI+//nCPv/5si7/+bIu//myHu/5og7v+aH+7/mh7u/5ke7v+ZHe7/mRzu/5gc
+ 7vyYG+79mBru/pcZ7v+XGe7MlxjuR5ga7QCYGu0BlhbuA5UW7gGVFu4AlhXuAJUW7wAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJkz/wCrR/EAq0HwAKtC8QCrRfECq0XxA6lJ8QCnRPACqkPxUKlC
+ 8cqpQfH/qUDx/6hA8f6oP/H7qD7x/ac+8f+nPfH/pzzx/6Y78f+mOvD/pjrw/6Y58P+lOfD/pTjw/6U3
+ 8P+kNvD/pDXw/6Q18P+jNPD/ozPw/6Mz8P+iMvD/ojHw/6Iw8P+hMPD/oS/w/6Eu8P+gLu//oC3v/6As
+ 7/+fLO//nyvv/58q7/+eKe//ninv/54o7/+dJ+//nSfv/50m7/+dJe//nCTv/5wj7/+cI+//myLv/5si
+ 7/+bIe7/miDu/5of7v+aHu7/mR7u/Zkd7vuZHO7+mBzu/5gb7v+YGu7LlxruUpkV7AOXE+wAlhfuA5YX
+ 7gKXGe4AlxruAJUW7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AACrQ/QAqkTxAKpE8ACqRfEAqkTxA6pD8QKmSfEApkbwAalB8UapQPG1qEDx+6g/8f+oPvH/pz7x/ac9
+ 8funPPH+pjvx/6Y68P+mOvD/pTnw/6U58P+lOPD/pTfw/6Q28P+kNfD/pDXw/6M08P+jM/D/ozPw/6Iy
+ 8P+iMfD/ojDw/6Ew8P+hL/D/oS7w/6Au7/+gLe//oCzv/58s7/+fK+//nyrv/54p7/+eKe//nijv/50n
+ 7/+dJ+//nSbv/50l7/+cJO//nCPv/5wj7/+bIu//myLv/5sh7v+aIO7+mh/u+5oe7v2ZHu7/mR3u/5kc
+ 7vuYHO62mBvuR5gd7QKXG+8AlxnuApcY7gOXF+4AlxjuAJcY7gCUFO0AAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqkXxAKlD8QCpRPEAqkTxAKpC
+ 8QOpQvECqDjwAKo98QCoQPEpqD/xi6g+8eKnPvH/pz3x/qc88f+mO/H9pjrw+6Y68P2lOfD+pTnw/6U4
+ 8P+kN/D/pDbw/6Q18P+kNfD/ozTw/6Mz8P+jM/D/ojLw/6Ix8P+iMPD/oTDw/6Ev8P+hLvD/oC7v/6At
+ 7/+gLO//nyzv/58r7/+fKu//ninv/54p7/+eKO//nSfv/50n7/+dJu//nSXv/5wk7/+cI+//nCPv/psi
+ 7/2bIu/7myHu/Zog7v+aH+7+mh7u/5ke7uOZHe6MmRzuK5of9ACdI/UAlxruApca7gOXGO0AlxjtAJcZ
+ 7gCXGu0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKpC8QCpQvEAqELxAKlC8QCpQfEDqUDxAqc68QCpPvIAqD7xCqc9
+ 8UynPfGkpzzx6aY78f+mOvD+pjrw/6Y58P+lOfD8pTjw+6Q38PykNvD+pDXw/qQ18P+jNPD/ozPw/6Mz
+ 8P+iMvD/ojHw/6Iw8P+hMPD/oS/w/6Eu8P+gLu//oC3v/6As7/+fLO//nyvv/58q7/+eKe//ninv/54o
+ 7/+dJ+//nSfv/50m7/6dJe/8nCTv+5wj7/ybI+//myLv/5si7/6bIe7/miDu6pof7qWaH+5OmR7uCpge
+ 7gCaIu8AmBvuApgb7gOYG+4AmBvuAJgb7gCYG+4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AACoQfEAqEHxAKlG8gCoRPIAqEDxAqg/8QSnQPAApzvxAKg88wCnO/IOpjvxSqY78JSmOvDUpTnw+qU5
+ 8P+lOPD/pTfw/6Q28P+kNfD/pDXw/aM08PyjM/D8ozPw/aIy8P2iMfD+ojDw/qEw8P+hL/D/oS7w/6Au
+ 7/+gLe//oCzv/58s7/6fK+/+nyrv/Z4p7/2eKe/8nijv/J0n7/2dJ+//nSbv/50l7/+cJO//nCPv/5wj
+ 7/ubIu/UmyLvlJsh7kuaIO4PmR7sAJsg7QCXH+4AmR3uBJkc7gKXGusAlRfnAJgc7QCYHO4AAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsTvrAKg+8QCoPvEAqEDyAKg+
+ 8QGnPfEDpz3xA6VL8wClOvAApzrwAKY48AOlOfAjpTnwWaU48JCkN/C/pDbw46Q18PmkNfD/ozTw/6Mz
+ 8P+jM/D/ojLw/6Ix8P+iMPD/oTDw/6Ev8P+hLvD/oC7v/6At7/+gLO//nyzv/58r7/+fKu//ninv/54p
+ 7/+eKO//nSfv/50n7/udJu/mnSXvwZwk74+cJO9ZnCPvJZgi7wOWIPAAmiHvAJkY6ACaH+4Dmh/uA5ke
+ 7gGVIvAAmCDvAJod7gCVFeoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACmQfMApzzxAKQ68gCmQO8ApzzxAaY78QSmOvAEpjnxAaY5
+ 8QClOe8ApTXyAKY38wCkN+8NpDbwLaQ18FOjNPB4ozPwmaMz8LaiMvDOojHw3qIw8OuhMPD0oS/w+6Eu
+ 8P6gLu/+oC3v+6As7/SfLO/rnyvv3p8q786eKe+2ninvmZ4o73idJ+9TnSfvMJ0l7w+hHO8AnyPvAJsl
+ 7wCbI/AAnCPvAZsi7wSbIe4EmiDuAZsg7wCeIfEAmh/uAJ0i8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAA//////+AkAAACQH////////////8igAAAABRP///////////9BAAAAAA
+ CC///////////9CAAAAAAAEL//////////9CAAAAAAAAQv/////////9EAAAAAAAAAi/////////8kAA
+ AAAAAAACT////////+iAAAAAAAAAARf///////+yAAAAAAAAAABN////////SAAAAAAAAAAAEv//////
+ /JAAAAAAAAAAAAk///////pAAAAAAAAAAAACX//////0gAAAAAAAAAAAAS//////6QAAAAAAAAAAAACX
+ /////9IAAAAAAAAAAAAAS/////+oAAAAAAAAAAAAABX/////UAAAAAAAAAAAAAAK/////qAAAAAAAAAA
+ AAAABX////1AAAAAAAAAAAAAAAK////6gAAAAAAAAAAAAAABX///9QAAAAAAAAAAAAAAAK///+oAAAAA
+ AAAAAAAAAABX///CAAAAAAAAAAAAAAAAS///1AAAAAAAAAAAAAAAACv//6gAAAAAAAAAAAAAAAAV//9Q
+ AAAAAAAAAAAAAAAACv//IAAAAAAAAAAAAAAAAAT//qAAAAAAAAAAAAAAAAAFf/1AAAAAAAAAAAAAAAAA
+ Ar/8gAAAAAAAAAAAAAAAAAE/+oAAAAAAAAAAAAAAAAABX/kAAAAAAAAAAAAAAAAAAJ/xAAAAAAAAAAAA
+ AAAAAACP8gAAAAAAAAAAAAAAAAAAT+IAAAAAAAAAAAAAAAAAAEfkAAAAAAAAAAAAAAAAAAAnxAAAAAAA
+ AAAAAAAAAAAAI8gAAAAAAAAAAAAAAAAAABOIAAAAAAAAAAAAAAAAAAARkAAAAAAAAAAAAAAAAAAACZAA
+ AAAAAAAAAAAAAAAAAAkgAAAAAAAAAAAAAAAAAAAEIAAAAAAAAAAAAAAAAAAABCAAAAAAAAAAAAAAAAAA
+ AARAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAA
+ AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
+ AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
+ AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABQAAAAAAA
+ AAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAACIAAAAAAAAAAAAAAAAAAABCAA
+ AAAAAAAAAAAAAAAAAAQgAAAAAAAAAAAAAAAAAAAEkAAAAAAAAAAAAAAAAAAACZAAAAAAAAAAAAAAAAAA
+ AAmIAAAAAAAAAAAAAAAAAAARyAAAAAAAAAAAAAAAAAAAE8QAAAAAAAAAAAAAAAAAACPkAAAAAAAAAAAA
+ AAAAAAAn4gAAAAAAAAAAAAAAAAAAR/IAAAAAAAAAAAAAAAAAAE/xAAAAAAAAAAAAAAAAAACP+QAAAAAA
+ AAAAAAAAAAAAn/qAAAAAAAAAAAAAAAAAAV/8gAAAAAAAAAAAAAAAAAE//UAAAAAAAAAAAAAAAAACv/6g
+ AAAAAAAAAAAAAAAABX//IAAAAAAAAAAAAAAAAAT//1AAAAAAAAAAAAAAAAAK//+oAAAAAAAAAAAAAAAA
+ Ff//1AAAAAAAAAAAAAAAACv//9IAAAAAAAAAAAAAAABL///qAAAAAAAAAAAAAAAAV///9QAAAAAAAAAA
+ AAAAAK////qAAAAAAAAAAAAAAAFf///9QAAAAAAAAAAAAAACv////qAAAAAAAAAAAAAABX////9QAAAA
+ AAAAAAAAAAr/////qAAAAAAAAAAAAAAV/////9IAAAAAAAAAAAAAS//////pAAAAAAAAAAAAAJf/////
+ 9IAAAAAAAAAAAAEv//////pAAAAAAAAAAAACX//////8kAAAAAAAAAAACT///////0gAAAAAAAAAABL/
+ //////+yAAAAAAAAAABF////////6IAAAAAAAAABF/////////JAAAAAAAAAAk/////////9EAAAAAAA
+ AAi//////////0IAAAAAAABC///////////QgAAAAAABC///////////9BAAAAAACC////////////yK
+ AAAAAFE/////////////gJAAAAkB//////8=
+
+
+
\ No newline at end of file
diff --git a/Resizor/Properties/Settings.Designer.cs b/Resizor/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..47791a1
--- /dev/null
+++ b/Resizor/Properties/Settings.Designer.cs
@@ -0,0 +1,50 @@
+//------------------------------------------------------------------------------
+//
+// 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 Resizor.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.2.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("NumPad4")]
+ public global::System.Windows.Forms.Keys ImmediateResizeKey {
+ get {
+ return ((global::System.Windows.Forms.Keys)(this["ImmediateResizeKey"]));
+ }
+ set {
+ this["ImmediateResizeKey"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("4, 4")]
+ public global::System.Drawing.Point ResizeDividor {
+ get {
+ return ((global::System.Drawing.Point)(this["ResizeDividor"]));
+ }
+ set {
+ this["ResizeDividor"] = value;
+ }
+ }
+ }
+}
diff --git a/Resizor/Properties/Settings.settings b/Resizor/Properties/Settings.settings
new file mode 100644
index 0000000..bdb2aed
--- /dev/null
+++ b/Resizor/Properties/Settings.settings
@@ -0,0 +1,12 @@
+
+
+
+
+
+ NumPad4
+
+
+ 4, 4
+
+
+
\ No newline at end of file
diff --git a/Resizor/Resizor.csproj b/Resizor/Resizor.csproj
new file mode 100644
index 0000000..8addf36
--- /dev/null
+++ b/Resizor/Resizor.csproj
@@ -0,0 +1,105 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {EED8B478-D539-41D2-9A39-8349099B298A}
+ WinExe
+ Resizor
+ Resizor
+ v4.7.2
+ 512
+ true
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+ Resizor.ico
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ Immediate Resize.cs
+
+
+
+
+ Form
+
+
+ SettingsForm.cs
+
+
+ Immediate Resize.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+ SettingsForm.cs
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+ {cae1cdb1-057d-4a4c-80d1-a7912715b79c}
+ CC-Functions.W32
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Resizor/Resizor.ico b/Resizor/Resizor.ico
new file mode 100644
index 0000000..374da88
Binary files /dev/null and b/Resizor/Resizor.ico differ
diff --git a/Resizor/SettingsForm.Designer.cs b/Resizor/SettingsForm.Designer.cs
new file mode 100644
index 0000000..e26d4b2
--- /dev/null
+++ b/Resizor/SettingsForm.Designer.cs
@@ -0,0 +1,174 @@
+namespace Resizor
+{
+ partial class SettingsForm
+ {
+ ///
+ /// 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()
+ {
+ this.keySelectButton = new System.Windows.Forms.Button();
+ this.label1 = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
+ this.label3 = new System.Windows.Forms.Label();
+ this.rowsSelect = new System.Windows.Forms.NumericUpDown();
+ this.columnsSelect = new System.Windows.Forms.NumericUpDown();
+ this.startupBox = new System.Windows.Forms.CheckBox();
+ ((System.ComponentModel.ISupportInitialize)(this.rowsSelect)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.columnsSelect)).BeginInit();
+ this.SuspendLayout();
+ //
+ // keySelectButton
+ //
+ this.keySelectButton.Location = new System.Drawing.Point(67, 35);
+ this.keySelectButton.Name = "keySelectButton";
+ this.keySelectButton.Size = new System.Drawing.Size(75, 23);
+ this.keySelectButton.TabIndex = 0;
+ this.keySelectButton.UseVisualStyleBackColor = true;
+ this.keySelectButton.Click += new System.EventHandler(this.KeySelectButton_Click);
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(14, 40);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(28, 13);
+ this.label1.TabIndex = 1;
+ this.label1.Text = "Key:";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(14, 66);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(34, 13);
+ this.label2.TabIndex = 2;
+ this.label2.Text = "Rows";
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(14, 92);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(47, 13);
+ this.label3.TabIndex = 3;
+ this.label3.Text = "Columns";
+ //
+ // rowsSelect
+ //
+ this.rowsSelect.Location = new System.Drawing.Point(67, 64);
+ this.rowsSelect.Maximum = new decimal(new int[] {
+ 20,
+ 0,
+ 0,
+ 0});
+ this.rowsSelect.Minimum = new decimal(new int[] {
+ 2,
+ 0,
+ 0,
+ 0});
+ this.rowsSelect.Name = "rowsSelect";
+ this.rowsSelect.ReadOnly = true;
+ this.rowsSelect.Size = new System.Drawing.Size(75, 20);
+ this.rowsSelect.TabIndex = 4;
+ this.rowsSelect.Value = new decimal(new int[] {
+ 4,
+ 0,
+ 0,
+ 0});
+ this.rowsSelect.ValueChanged += new System.EventHandler(this.RowsSelect_ValueChanged);
+ //
+ // columnsSelect
+ //
+ this.columnsSelect.Location = new System.Drawing.Point(67, 90);
+ this.columnsSelect.Maximum = new decimal(new int[] {
+ 20,
+ 0,
+ 0,
+ 0});
+ this.columnsSelect.Minimum = new decimal(new int[] {
+ 2,
+ 0,
+ 0,
+ 0});
+ this.columnsSelect.Name = "columnsSelect";
+ this.columnsSelect.ReadOnly = true;
+ this.columnsSelect.Size = new System.Drawing.Size(75, 20);
+ this.columnsSelect.TabIndex = 5;
+ this.columnsSelect.Value = new decimal(new int[] {
+ 4,
+ 0,
+ 0,
+ 0});
+ this.columnsSelect.ValueChanged += new System.EventHandler(this.ColumnsSelect_ValueChanged);
+ //
+ // startupBox
+ //
+ this.startupBox.AutoSize = true;
+ this.startupBox.Location = new System.Drawing.Point(12, 12);
+ this.startupBox.Name = "startupBox";
+ this.startupBox.Size = new System.Drawing.Size(117, 17);
+ this.startupBox.TabIndex = 6;
+ this.startupBox.Text = "Start with Windows";
+ this.startupBox.UseVisualStyleBackColor = true;
+ this.startupBox.CheckedChanged += new System.EventHandler(this.StartupBox_CheckedChanged);
+ //
+ // SettingsForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(154, 121);
+ this.Controls.Add(this.startupBox);
+ this.Controls.Add(this.columnsSelect);
+ this.Controls.Add(this.rowsSelect);
+ this.Controls.Add(this.label3);
+ this.Controls.Add(this.label2);
+ this.Controls.Add(this.label1);
+ this.Controls.Add(this.keySelectButton);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "SettingsForm";
+ this.ShowIcon = false;
+ this.ShowInTaskbar = false;
+ this.Text = "Settings";
+ this.TopMost = true;
+ ((System.ComponentModel.ISupportInitialize)(this.rowsSelect)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.columnsSelect)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button keySelectButton;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.NumericUpDown rowsSelect;
+ private System.Windows.Forms.NumericUpDown columnsSelect;
+ private System.Windows.Forms.CheckBox startupBox;
+ }
+}
\ No newline at end of file
diff --git a/Resizor/SettingsForm.cs b/Resizor/SettingsForm.cs
new file mode 100644
index 0000000..acf2877
--- /dev/null
+++ b/Resizor/SettingsForm.cs
@@ -0,0 +1,90 @@
+using CC_Functions.W32;
+using System;
+using System.Drawing;
+using System.Windows.Forms;
+using Resizor.Properties;
+using Microsoft.Win32;
+
+namespace Resizor
+{
+ public partial class SettingsForm : Form
+ {
+ RegistryKey rkApp;
+ string appName = "Rasizor";
+ public SettingsForm()
+ {
+ InitializeComponent();
+ Program.kh = new KeyboardHook();
+ keySelectButton.Text = Settings.Default.ImmediateResizeKey.ToString();
+ keySelectButton.Tag = false;
+ rowsSelect.Value = Settings.Default.ResizeDividor.Y;
+ columnsSelect.Value = Settings.Default.ResizeDividor.X;
+ rkApp = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
+ startupBox.Checked = rkApp.GetValue(appName) != null;
+ }
+
+ private void KeySelectButton_Click(object sender, EventArgs e)
+ {
+ if ((bool)keySelectButton.Tag)
+ {
+ Program.kh.OnKeyPress -= Hook_OnKeyPress;
+ keySelectButton.BackColor = SystemColors.Control;
+ keySelectButton.Tag = false;
+ keySelectButton.Text = Settings.Default.ImmediateResizeKey.ToString();
+ }
+ else
+ {
+ keySelectButton.BackColor = Color.Red;
+ keySelectButton.Text = "Cancel";
+ keySelectButton.Tag = true;
+ Program.kh.OnKeyPress += Hook_OnKeyPress;
+ }
+ }
+
+ private void Hook_OnKeyPress(KeyboardHookEventArgs e)
+ {
+ Program.kh.OnKeyPress -= Hook_OnKeyPress;
+ keySelectButton.BackColor = SystemColors.Control;
+ if (e.Key != Keys.Escape)
+ {
+ Settings.Default.ImmediateResizeKey = e.Key;
+ Settings.Default.Save();
+ }
+ keySelectButton.Text = Settings.Default.ImmediateResizeKey.ToString();
+ keySelectButton.Tag = false;
+ }
+
+ private void RowsSelect_ValueChanged(object sender, EventArgs e)
+ {
+ Point tmp = Settings.Default.ResizeDividor;
+ tmp.Y = (int)rowsSelect.Value;
+ Settings.Default.ResizeDividor = tmp;
+ Settings.Default.Save();
+ }
+
+ private void ColumnsSelect_ValueChanged(object sender, EventArgs e)
+ {
+ Point tmp = Settings.Default.ResizeDividor;
+ tmp.X = (int)columnsSelect.Value;
+ Settings.Default.ResizeDividor = tmp;
+ Settings.Default.Save();
+ }
+
+ private void StartupBox_CheckedChanged(object sender, EventArgs e)
+ {
+ try
+ {
+ if (startupBox.Checked)
+ rkApp.SetValue(appName, Application.ExecutablePath.ToString());
+ else
+ rkApp.DeleteValue(appName, false);
+ startupBox.Checked = rkApp.GetValue(appName) != null;
+ }
+ catch (Exception e1)
+ {
+ startupBox.Checked = rkApp.GetValue(appName) != null;
+ MessageBox.Show(e1.ToString(), "Failed");
+ }
+ }
+ }
+}
diff --git a/Resizor/SettingsForm.resx b/Resizor/SettingsForm.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/Resizor/SettingsForm.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file