diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d4150f0
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+.vs/
+*.onnx
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..10835db
--- /dev/null
+++ b/README.md
@@ -0,0 +1,15 @@
+Tongue Segmentation
+----
+舌抽出サーバー
+
+## 開発
+- Visual C# 2022
+- resnet.onnx ファイル必要
+
+## 使い方
+- 5556ポートで舌画像を受信
+- 左:受信画像 右:検出マスク
+- ZeroMQ Request/Response
+- 舌画像は舌領域が矩形抽出されている前提
+- モノクロ マスク画像を返す ただしマスク画像は2値化前の状態
+- 左ペインに画像D&D で処理可能
diff --git a/TongueSegmentation.sln b/TongueSegmentation.sln
new file mode 100644
index 0000000..7844501
--- /dev/null
+++ b/TongueSegmentation.sln
@@ -0,0 +1,31 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.8.34316.72
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TongueSegmentation", "TongueSegmentation\TongueSegmentation.csproj", "{87BF247A-DA31-43B4-8111-6B96D302218C}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
+ Release|Any CPU = Release|Any CPU
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {87BF247A-DA31-43B4-8111-6B96D302218C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {87BF247A-DA31-43B4-8111-6B96D302218C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {87BF247A-DA31-43B4-8111-6B96D302218C}.Debug|x64.ActiveCfg = Debug|x64
+ {87BF247A-DA31-43B4-8111-6B96D302218C}.Debug|x64.Build.0 = Debug|x64
+ {87BF247A-DA31-43B4-8111-6B96D302218C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {87BF247A-DA31-43B4-8111-6B96D302218C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {87BF247A-DA31-43B4-8111-6B96D302218C}.Release|x64.ActiveCfg = Release|x64
+ {87BF247A-DA31-43B4-8111-6B96D302218C}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {D5C750B5-52B5-476C-B559-F2CA18CE9CF3}
+ EndGlobalSection
+EndGlobal
diff --git a/TongueSegmentation/App.config b/TongueSegmentation/App.config
new file mode 100644
index 0000000..d5240a7
--- /dev/null
+++ b/TongueSegmentation/App.config
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TongueSegmentation/MainForm.Designer.cs b/TongueSegmentation/MainForm.Designer.cs
new file mode 100644
index 0000000..e9e512e
--- /dev/null
+++ b/TongueSegmentation/MainForm.Designer.cs
@@ -0,0 +1,159 @@
+namespace TongueSegmentation {
+ partial class MainForm {
+ ///
+ /// 必要なデザイナー変数です。
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// 使用中のリソースをすべてクリーンアップします。
+ ///
+ /// マネージド リソースを破棄する場合は true を指定し、その他の場合は false を指定します。
+ protected override void Dispose(bool disposing) {
+ if (disposing && (components != null)) {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows フォーム デザイナーで生成されたコード
+
+ ///
+ /// デザイナー サポートに必要なメソッドです。このメソッドの内容を
+ /// コード エディターで変更しないでください。
+ ///
+ private void InitializeComponent() {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
+ this.splitContainer1 = new System.Windows.Forms.SplitContainer();
+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
+ this.pictureBox2 = new System.Windows.Forms.PictureBox();
+ this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
+ this.splitContainer2 = new System.Windows.Forms.SplitContainer();
+ this.textBox1 = new System.Windows.Forms.TextBox();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
+ this.splitContainer1.Panel1.SuspendLayout();
+ this.splitContainer1.Panel2.SuspendLayout();
+ this.splitContainer1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
+ this.splitContainer2.Panel1.SuspendLayout();
+ this.splitContainer2.Panel2.SuspendLayout();
+ this.splitContainer2.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // splitContainer1
+ //
+ this.splitContainer1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.splitContainer1.Location = new System.Drawing.Point(3, 3);
+ this.splitContainer1.Name = "splitContainer1";
+ //
+ // splitContainer1.Panel1
+ //
+ this.splitContainer1.Panel1.Controls.Add(this.pictureBox1);
+ //
+ // splitContainer1.Panel2
+ //
+ this.splitContainer1.Panel2.Controls.Add(this.pictureBox2);
+ this.splitContainer1.Size = new System.Drawing.Size(815, 409);
+ this.splitContainer1.SplitterDistance = 396;
+ this.splitContainer1.TabIndex = 0;
+ //
+ // pictureBox1
+ //
+ this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.pictureBox1.Location = new System.Drawing.Point(0, 3);
+ this.pictureBox1.Name = "pictureBox1";
+ this.pictureBox1.Size = new System.Drawing.Size(393, 403);
+ this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
+ this.pictureBox1.TabIndex = 0;
+ this.pictureBox1.TabStop = false;
+ this.pictureBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.pictureBox1_DragDrop);
+ this.pictureBox1.DragEnter += new System.Windows.Forms.DragEventHandler(this.pictureBox1_DragEnter);
+ //
+ // pictureBox2
+ //
+ this.pictureBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.pictureBox2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.pictureBox2.Location = new System.Drawing.Point(3, 3);
+ this.pictureBox2.Name = "pictureBox2";
+ this.pictureBox2.Size = new System.Drawing.Size(409, 403);
+ this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
+ this.pictureBox2.TabIndex = 0;
+ this.pictureBox2.TabStop = false;
+ //
+ // splitContainer2
+ //
+ this.splitContainer2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.splitContainer2.Location = new System.Drawing.Point(1, 2);
+ this.splitContainer2.Name = "splitContainer2";
+ this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal;
+ //
+ // splitContainer2.Panel1
+ //
+ this.splitContainer2.Panel1.Controls.Add(this.splitContainer1);
+ //
+ // splitContainer2.Panel2
+ //
+ this.splitContainer2.Panel2.Controls.Add(this.textBox1);
+ this.splitContainer2.Size = new System.Drawing.Size(821, 522);
+ this.splitContainer2.SplitterDistance = 415;
+ this.splitContainer2.TabIndex = 1;
+ //
+ // textBox1
+ //
+ this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.textBox1.Location = new System.Drawing.Point(3, 3);
+ this.textBox1.Multiline = true;
+ this.textBox1.Name = "textBox1";
+ this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
+ this.textBox1.Size = new System.Drawing.Size(812, 97);
+ this.textBox1.TabIndex = 0;
+ //
+ // MainForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(824, 523);
+ this.Controls.Add(this.splitContainer2);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "MainForm";
+ this.Text = "Tongue Segmentation";
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing);
+ this.splitContainer1.Panel1.ResumeLayout(false);
+ this.splitContainer1.Panel2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
+ this.splitContainer1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
+ this.splitContainer2.Panel1.ResumeLayout(false);
+ this.splitContainer2.Panel2.ResumeLayout(false);
+ this.splitContainer2.Panel2.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
+ this.splitContainer2.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.SplitContainer splitContainer1;
+ private System.Windows.Forms.PictureBox pictureBox1;
+ private System.Windows.Forms.PictureBox pictureBox2;
+ private System.ComponentModel.BackgroundWorker backgroundWorker1;
+ private System.Windows.Forms.SplitContainer splitContainer2;
+ private System.Windows.Forms.TextBox textBox1;
+ }
+}
+
diff --git a/TongueSegmentation/MainForm.cs b/TongueSegmentation/MainForm.cs
new file mode 100644
index 0000000..028e1a9
--- /dev/null
+++ b/TongueSegmentation/MainForm.cs
@@ -0,0 +1,196 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Diagnostics.Eventing.Reader;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using OpenCvSharp;
+using OpenCvSharp.Extensions;
+using Microsoft.ML.OnnxRuntime;
+using Microsoft.ML.OnnxRuntime.Tensors;
+using System.Threading;
+using System.Diagnostics;
+using NetMQ.Sockets;
+using NetMQ;
+using System.IO;
+
+namespace TongueSegmentation {
+ public partial class MainForm : Form {
+ static readonly string MODEL_FILE = "ResUNet.onnx";
+ static readonly int PORT = 5556;
+ static readonly string SERVER_SOCKET = $"@tcp://*:{PORT}";
+ bool _isRunning = true;
+ int _processCounter = 0;
+
+ ///
+ /// コンストラクタ
+ ///
+ public MainForm() {
+ InitializeComponent();
+ pictureBox1.AllowDrop = true;
+
+ var thread = new Thread(new ThreadStart(ServerThread));
+ thread.Start();
+ }
+
+ ///
+ /// ZeroMQサーバー
+ ///
+ private void ServerThread() {
+ Debug.WriteLine("Server Start.");
+ textBox1.BeginInvoke((MethodInvoker)delegate {
+ textBox1.Text = $"サーバー起動 待ち受けポート {PORT}\r\n";
+ });
+
+ using (var server = new ResponseSocket(SERVER_SOCKET)) {
+ while (_isRunning) {
+ // 舌画像受信
+ string b64strTongue;
+ if (server.TryReceiveFrameString(out b64strTongue)) {
+ var startTime = DateTime.Now;
+ textBox1.BeginInvoke((MethodInvoker)delegate {
+ _processCounter++;
+ var msg = _processCounter.ToString("[000] ") +
+ startTime.ToString("yyyy-MM-dd HH:mm:ss.fff 受信");
+ textBox1.Text += msg;
+ });
+ //Debug.WriteLine("Receive");
+
+ var byteTongue = Convert.FromBase64String(b64strTongue);
+ var imgTongue = Cv2.ImDecode(byteTongue, ImreadModes.Color);
+ pictureBox1.BeginInvoke((MethodInvoker)delegate {
+ pictureBox1.Image = BitmapConverter.ToBitmap(imgTongue);
+ });
+
+ // 舌抽出
+ var imgMask = TongueSegmentation(imgTongue);
+ pictureBox2.BeginInvoke((MethodInvoker)delegate {
+ pictureBox2.Image = BitmapConverter.ToBitmap(imgMask);
+ });
+
+ // マスク送信
+ byte[] byteMask;
+ var result = Cv2.ImEncode(".png", imgMask, out byteMask);
+ var b64strMask = Convert.ToBase64String(byteMask);
+ server.SendFrame(b64strMask);
+
+ textBox1.BeginInvoke((MethodInvoker)delegate {
+ var endTime = DateTime.Now;
+ var elaplse = endTime - startTime;
+ var msg = " " + endTime.ToString("HH:mm:ss.fff 送信");
+ msg += " 処理時間 " + (elaplse.TotalMilliseconds / 1000).ToString("0.000") + "秒\r\n";
+ textBox1.Text += msg;
+ });
+ } else {
+ Thread.Sleep(10);
+ }
+ }
+ }
+
+ Debug.WriteLine("Server thread end.");
+ }
+
+ ///
+ /// ドラッグ&ドロップ時
+ ///
+ ///
+ ///
+ private void pictureBox1_DragDrop(object sender, DragEventArgs e) {
+ // ドラッグされたファイルのパスを取得
+ string[] fileName = (string[])e.Data.GetData(DataFormats.FileDrop);
+ // 複数の場合、1個目の画像を表示
+ pictureBox1.ImageLocation = fileName[0];
+
+ var imgIn = Cv2.ImRead(fileName[0]);
+ if (imgIn.Empty()) {
+ MessageBox.Show("ファイルを読み込めません", this.Text);
+ return;
+ }
+
+ var startTime = DateTime.Now;
+ _processCounter++;
+ var msg = _processCounter.ToString("[000] ") +
+ startTime.ToString("yyyy-MM-dd HH:mm:ss.fff ドロップ");
+ textBox1.Text += msg;
+ var mask = TongueSegmentation(imgIn);
+
+ var bmp = BitmapConverter.ToBitmap(mask);
+ pictureBox2.Image = bmp;
+
+ var endTime = DateTime.Now;
+ var elaplse = endTime - startTime;
+ msg = " " + DateTime.Now.ToString("HH:mm:ss.fff 終了");
+ msg += " 処理時間 " + (elaplse.TotalMilliseconds / 1000).ToString("0.000") + "秒\r\n";
+ textBox1.Text += msg;
+ }
+
+ ///
+ /// ドラッグエンター時
+ ///
+ ///
+ ///
+ private void pictureBox1_DragEnter(object sender, DragEventArgs e) {
+ if (e.Data.GetDataPresent(DataFormats.FileDrop)) {
+ e.Effect = DragDropEffects.All;
+ } else {
+ e.Effect = DragDropEffects.None;
+ }
+ }
+
+ ///
+ /// 舌抽出
+ ///
+ ///
+ ///
+ // Ref:https://book2525stack.com/2021/06/03/net_hand_written_digit_recognition/
+ private Mat TongueSegmentation(Mat imgTongueOrig) {
+
+ var imgTongue = imgTongueOrig.Resize(new OpenCvSharp.Size(256, 256), 0, 0, InterpolationFlags.Cubic);
+ var imgMask = new Mat(imgTongue.Size(), MatType.CV_8UC1);
+
+ // 推論
+ using (var session = new InferenceSession(MODEL_FILE)) {
+ var inputMeta = session.InputMetadata;
+
+ //input shape = [1, 3, 256, 256] = [batchsize, channels, w, h]
+ var flattenTongue = new float[imgTongue.Channels() * imgTongue.Width * imgTongue.Height];
+ int idx = 0;
+ for (int c = 0; c < imgTongue.Channels(); c++)
+ for (int i = 0; i < imgTongue.Height; i++)
+ for (int j = 0; j < imgTongue.Width; j++, idx++) {
+ flattenTongue[idx] = (float)(imgTongue.At(i, j)[c] / 255.0);
+ }
+ var tensor = new DenseTensor(flattenTongue, inputMeta[inputMeta.Keys.First()].Dimensions, false);
+ var namedOnnxValues = new List {
+ NamedOnnxValue.CreateFromTensor(inputMeta.Keys.First(), tensor)
+ };
+
+ // output shape = [1, 2, 256, 256] = [batchsize, class probability, w, h]
+ using (var results = session.Run(namedOnnxValues)) {
+ var result = results.First().AsTensor().ToArray();
+ for (int i = 0; i < imgTongue.Height; i++)
+ for (int j = 0; j < imgTongue.Width; j++) {
+ var proba = result[j + (i * imgTongue.Width)];
+ var value = (byte)((float)(1.0 / (1.0 + Math.Pow(Math.E, -proba))) * 255.0);
+ imgMask.Set(i, j, value);
+ }
+ }
+ }
+ GC.Collect();
+ return imgMask.Resize(imgTongueOrig.Size(), 0,0, InterpolationFlags.Cubic);
+ }
+
+ ///
+ /// フォーム閉じる時
+ ///
+ ///
+ ///
+ private void MainForm_FormClosing(object sender, FormClosingEventArgs e) {
+ _isRunning = false;
+ }
+ }
+}
diff --git a/TongueSegmentation/MainForm.resx b/TongueSegmentation/MainForm.resx
new file mode 100644
index 0000000..bddeb7b
--- /dev/null
+++ b/TongueSegmentation/MainForm.resx
@@ -0,0 +1,983 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ 17, 17
+
+
+
+
+ AAABAAEAgIAAAAEAGAAoyAAAFgAAACgAAACAAAAAAAEAAAEAGAAAAAAAAAAAACQAAAAkAAAAAAAAAAAA
+ AAD/////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////19f/m5v3X
+ 1/TX1/Tm5v329v//////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////l
+ 5fioqNl1dbxJSaIjI5QICH4AAHYAAHYAAHYAAHYAAHYAAHYJCX8jI5RJSaJ2dr2oqNnl5fj/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////T0+54eL8qKpQAAHYAAHYAAHYAAHYBAXcAAHYAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYBAXcAAHYAAHYAAHYAAHYqKpR4eL/T0+7/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////5+f+iotMzM5kAAHYAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYyMpmiotP6+v//
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////9/f+entQfH4wAAHYA
+ AHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYAAHYAAHYAAHYAAHYAAHYAAHYfH4yfn9T+/v//////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////NzeszM5kAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYJCX8bG5Aq
+ KpgqKpgbG5AKCoAAAHYAAHYAAHYAAHYBAXcAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYzM5nNzev/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////8/P+BgcMEBHoAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYVFYgaGq4UFM0JCeYfH/0AAP8AAP8AAP8AAP8AAP8AAP8fH/0JCeYUFM0aGq4VFYgAAHYAAHYAAHYA
+ AHYAAHYAAHYAAHYAAHYAAHYEBHqBgcP8/P//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////s7PhERKIAAHYAAHYA
+ AHYAAHYAAHYAAHYAAHYAAHYKCoAWFrITE+cAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8TE+cWFrILC4EAAHYAAHYAAHYAAHYAAHYAAHYAAHYBAXdCQqHs7Pj/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////e3vUkJJAAAHYAAHYAAHYAAHYAAHYAAHYAAHYREYIiIsMQEPoAAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8QEPoiIsMREYIAAHYAAHYA
+ AHYAAHYAAHYAAHYAAHYkJJDe3vX/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////X1+0YGIcAAHYAAHYAAHYAAHYAAHYAAHYCAngeHrkP
+ D/kAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8PD/keHrkCAngAAHYAAHYAAHYAAHYAAHYAAHYYGIfX1+3/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////f3/YZGYgAAHYA
+ AHYAAHYAAHYAAHYAAHYTE44XF+YAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF+YTE44AAHYAAHYAAHYA
+ AHYAAHYAAHYZGYff3/b/////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////v7/goKJEAAHYAAHYAAHYAAHYAAHYAAHYfH6oDA/kAAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8DA/ofH6oAAHYAAHYAAHYAAHYAAHYAAHYnJ5Hv7/j/////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////9/f9ISKUAAHYAAHYAAHYAAHYAAHYAAHYODrgA
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8ODrcAAHYAAHYAAHYAAHYAAHYA
+ AHZISKX+/v//////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////+/v+FhcUA
+ AHYAAHYAAHYAAHYAAHYAAHYgIMoAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8gIMkAAHYAAHYAAHYAAHYAAHYAAHaFhcX/////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////OzusFBXsAAHYAAHYAAHYAAHYAAHYMDLYAAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8MDLYAAHYAAHYAAHYAAHYAAHYFBXvOzuv/
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////8/P8wMJcAAHYAAHYAAHYAAHYAAHYc
+ HKgAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8cHKgAAHYAAHYAAHYAAHYAAHYwMJb8/P//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //+QkMwAAHYAAHYAAHYAAHYAAHYREY4CAvkAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8CAvkREY4AAHYAAHYAAHYAAHYAAHaQkMz/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////v7/oTE4MAAHYAAHYAAHYAAHYCAngXF+YAAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF+YCAngA
+ AHYAAHYAAHYAAHYTE4Pv7/r/////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////95eb8AAHYAAHYAAHYA
+ AHYAAHYjI7sAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8iIrsAAHYAAHYAAHYAAHYAAHZ5eb//////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////w8PoNDYEAAHYAAHYAAHYAAHYKCokFBfsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8FBfsKCogAAHYAAHYAAHYA
+ AHYNDYHw8Pr/////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////+JicgAAHYAAHYAAHYAAHYAAHYeHtIAAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8VFf8qKv8q
+ Kv8qKv8qKv8VFf8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8eHtIAAHYAAHYAAHYAAHYAAHaIiMj/////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////8/P8eHosA
+ AHYAAHYAAHYAAHYVFY8NDf8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8NDf8VFY8AAHYAAHYAAHYAAHYeHov8/P//
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////+zs98AAHYAAHYAAHYAAHYAAHYbG88AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsA
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8bG88AAHYAAHYAAHYAAHYAAHazs9//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////9VVasAAHYAAHYAAHYAAHYTE4UI
+ CP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8ICP8UFIUAAHYAAHYAAHYAAHZWVqv/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///z8/0ICH4AAHYAAHYAAHYAAHYREboAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8REboAAHYA
+ AHYAAHYAAHYICH7z8/3/////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////+np9YAAHYAAHYAAHYAAHYAAHYhIe4AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYA
+ AHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8hIe4AAHYAAHYAAHYAAHYAAHanp9b/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////9aWq0AAHYAAHYA
+ AHYAAHYXF5EAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF5EAAHYAAHYAAHYAAHZa
+ Wq3/////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////8UFIcAAHYAAHYAAHYAAHYaGr8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsA
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8aGr8AAHYAAHYAAHYAAHYUFIf/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////Pz+wAAHYAAHYAAHYAAHYAAHYTE+cAAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8TE+cAAHYAAHYAAHYAAHYAAHbOzuz/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////////////+S
+ kssAAHYAAHYAAHYAAHYKCoAMDP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8MDP8K
+ CoAAAHYAAHYAAHYAAHaSksv/////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////9YWK0AAHYAAHYAAHYAAHYVFaEAAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYA
+ AHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8VFaEAAHYAAHYAAHYAAHZYWK3/////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////8lJZIAAHYAAHYAAHYA
+ AHYQEMAAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8QEMAAAHYAAHYAAHYA
+ AHYlJZL/////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////09P8CAngAAHYAAHYAAHYAAHYTE9wAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsA
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8TE90AAHYAAHYAAHYAAHYDA3n09P//////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////KyugAAHYAAHYAAHYAAHYAAHYhIfgAAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8iIvgAAHYAAHYAAHYAAHYAAHbKyuj/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////////+kpNgA
+ AHYAAHYAAHYBAXcMDIIAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8MDIIAAHYAAHYAAHYAAHakpNj/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////+EhL8AAHYAAHYAAHYBAXcXF5kAAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYA
+ AHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF5kAAHYAAHYAAHYAAHaEhL//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////9gYLUAAHYAAHYAAHYAAHYU
+ FKwAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8UFKwAAHYAAHYA
+ AHYAAHZgYLX/////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////9HR58AAHYAAHYAAHYAAHYWFrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsA
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8WFrsAAHYAAHYAAHYAAHZHR5//////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////8yMpgAAHYAAHYAAHYAAHYNDcgAAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8NDcgAAHYAAHYAAHYAAHYyMpj/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////////8aGpAA
+ AHYAAHYAAHYAAHYjI9oAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8jI9oAAHYAAHYAAHYAAHYaGpD/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////8JCX8AAHYAAHYAAHYAAHYLC90AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYA
+ AHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8LC90AAHYAAHYAAHYAAHYICH7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////8BAXcAAHYAAHYAAHYAAHYH
+ B+MAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8HB+MAAHYAAHYA
+ AHYAAHYBAXf/////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////19f8AAHYAAHYAAHYAAHYAAHYPD+wAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsA
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8PD+wAAHYAAHYAAHYAAHYAAHb19f//////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////p6f8AAHYAAHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////p6f8AAHYA
+ AHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////p6f8AAHYAAHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYA
+ AHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////p6f8AAHYAAHYAAHYAAHYAAHYX
+ F/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYA
+ AHYAAHYAAHbp6f//////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////p6f8AAHYAAHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsA
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////p6f8AAHYAAHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////p6f8AAHYA
+ AHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////p6f8AAHYAAHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYA
+ AHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////p6f8AAHYAAHYAAHYAAHYAAHYX
+ F/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYA
+ AHYAAHYAAHbp6f//////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////p6f8AAHYAAHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsA
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////p6f8AAHYAAHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////p6f8AAHYA
+ AHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////p6f8AAHYAAHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYA
+ AHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////p6f8AAHYAAHYAAHYAAHYAAHYX
+ F/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYA
+ AHYAAHYAAHbp6f//////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////p6f8AAHYAAHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsA
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////p6f8AAHYAAHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////p6f8AAHYA
+ AHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////p6f8AAHYAAHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYA
+ AHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////p6f8AAHYAAHYAAHYAAHYAAHYX
+ F/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYA
+ AHYAAHYAAHbp6f//////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////p6f8AAHYAAHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsA
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////p6f8AAHYAAHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////p6f8AAHYA
+ AHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////p6f8AAHYAAHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYA
+ AHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////p6f8AAHYAAHYAAHYAAHYAAHYX
+ F/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYA
+ AHYAAHYAAHbp6f//////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////p6f8AAHYAAHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsA
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////p6f8AAHYAAHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////p6f8AAHYA
+ AHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////p6f8AAHYAAHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYA
+ AHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYAAHYAAHYAAHbp6f//////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////p6f8AAHYAAHYAAHYAAHYAAHYX
+ F/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYA
+ AHYAAHYAAHbp6f//////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////S0u6fn9V5ebxSUqo8PJkkJJYYGI4LC4EJCX8NDYMaGpAzM5lJSaJra7iU
+ lM3Nzezo6P8AAHYAAHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsA
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYAAHYAAHYAAHbo6P/NzeyUlM1sbLhJSaIyMpkZGY8NDYMJCX8K
+ CoAYGI4kJJY9PZlSUqp5ebyentXS0u7/////////////////////////////////////////////////
+ //////////////////////////////////////////+1td9aWqwTE4cAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYUFIoAAHYAAHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8XF/QAAHYAAHYAAHYAAHYAAHYVFYoA
+ AHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYTE4daWqy1td//////
+ //////////////////////////////////////////////////////////////////////////8qKpkA
+ AHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYAAHYAAHYAAHYXF/QAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYAAHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8XF/QAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYAAHYAAHYAAHYAAHYAAHYqKpj/////////////////////////////////////////////////////
+ //////////////////////////8qKpgAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYgINkAAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8qKrsAAHYA
+ AHYAAHYAAHYqKrsAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8gINkAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYqKpj/////////////////////
+ //////////////////////////////////////////////////////////8qKpgAAHYAAHYAAHYAAHYA
+ AHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYZGZ0QENwAAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8LC/8ODuseHtwfH6IAAHYAAHYAAHYAAHYfH6IeHtwODusLC/8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8QENwaGp0AAHYAAHYAAHYA
+ AHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYAAHYqKpj/////////////////////////////////////////////////////////////////////
+ //////////8qKpgAAHYAAHYAAHYCAngjI5FMTKVycruLi8afn9iqqt2/v92trd2hodmLi8ZtbbhAQJ4K
+ CoAAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYPD4wbG78bG+sAAP8AAP8AAP8AAP8AAP8AAP8A
+ AP8AAP8AAP8AAP8AAP8AAP8AAP8VFf8aGuEaGr8aGp0FBXsAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYAAHYFBXsaGpwaGr8aGuEWFv8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8AAP8b
+ G+sbG78PD4wAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYKCoBAQJ5tbbiLi8ajo9qtrd2/v92q
+ qt2fn9iLi8ZycrtMTKUjI5ECAngAAHYAAHYAAHYqKpj/////////////////////////////////////
+ //////////////////////////////////////////8qKpggIIxvb7i1td/v7/z/////////////////
+ ///////////////////////////////5+f+6uuNkZLEMDIEAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYAAHYTE4cLC6MNDb0aGtIWFt0AAN0AAN0AAN0gIN0ZGdMEBL4ZGbAREZYDA3kAAHYAAHYAAHYAAHYA
+ AHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYDA3kREZYZGbAEBL4ZGdMgIN0A
+ AN0AAN0AAN0WFt0ZGdINDb0LC6QTE4cAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYMDIFkZLC6
+ uuP5+f/////////////////////////////////////+/v/////////w8Py1td9vb7ggIIwqKpn/////
+ ///////////////////////////////////////////////////////////////////////////S0vH/
+ ///////////////////////////////////////////////////////////////////////////w8PqJ
+ iccVFYUAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYAAHYAAHYAAHYVFYWJicfw8Pr/////////////////////////////////////////////////////
+ ///////////////////////S0vH/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////09PyJiccREYIAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYREYKJicfz8/z/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////w8PqD
+ g8MVFYUAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYAAHYAAHYAAHYGBnwyMphYWK96eruIiMOIiMN6ertYWK8yMpgFBXsAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYWFoaDg8Tw8Pr/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////39/+kpNRHR6YFBXsAAHYAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYICH4+Pp6CgsPCwuX4+P//////////////////////////////
+ ///4+P/CwuWCgsM+Pp8ICH4AAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYAAHYA
+ AHYFBXtHR6akpNT39///////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////y
+ 8v21td+BgcBVVa04OJkeHpIPD4UICH4ICH4MDIIaGpAxMZhJSaJsbLiUlM3Hx+b5+f//////////////
+ ///////////////////////////////////////////////////5+f/Hx+aUlM1sbLhJSaIxMZgZGY8L
+ C4EJCX8JCX8ODoQeHpM4OJlVVa2BgcC1td7y8v7/////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+
+
+
\ No newline at end of file
diff --git a/TongueSegmentation/Program.cs b/TongueSegmentation/Program.cs
new file mode 100644
index 0000000..f82bd28
--- /dev/null
+++ b/TongueSegmentation/Program.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace TongueSegmentation {
+ internal static class Program {
+ ///
+ /// アプリケーションのメイン エントリ ポイントです。
+ ///
+ [STAThread]
+ static void Main() {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new MainForm());
+ }
+ }
+}
diff --git a/TongueSegmentation/Properties/AssemblyInfo.cs b/TongueSegmentation/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..971ba84
--- /dev/null
+++ b/TongueSegmentation/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// アセンブリに関する一般的な情報は、次の方法で制御されます
+// 制御されます。アセンブリに関連付けられている情報を変更するには、
+// これらの属性値を変更します。
+[assembly: AssemblyTitle("TongueSegmentation")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("TongueSegmentation")]
+[assembly: AssemblyCopyright("Copyright © 2024")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// ComVisible を false に設定すると、このアセンブリ内の型は COM コンポーネントから
+// 参照できなくなります。COM からこのアセンブリ内の型にアクセスする必要がある場合は、
+// その型の ComVisible 属性を true に設定してください。
+[assembly: ComVisible(false)]
+
+// このプロジェクトが COM に公開される場合、次の GUID が typelib の ID になります
+[assembly: Guid("87bf247a-da31-43b4-8111-6b96d302218c")]
+
+// アセンブリのバージョン情報は、以下の 4 つの値で構成されています:
+//
+// メジャー バージョン
+// マイナー バージョン
+// ビルド番号
+// リビジョン
+//
+// すべての値を指定するか、次を使用してビルド番号とリビジョン番号を既定に設定できます
+// 既定値にすることができます:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/TongueSegmentation/Properties/Resources.Designer.cs b/TongueSegmentation/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..8aaa3be
--- /dev/null
+++ b/TongueSegmentation/Properties/Resources.Designer.cs
@@ -0,0 +1,62 @@
+//------------------------------------------------------------------------------
+//
+// このコードはツールによって生成されました。
+// ランタイム バージョン:4.0.30319.42000
+//
+// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
+// コードが再生成されるときに損失したりします
+//
+//------------------------------------------------------------------------------
+
+namespace TongueSegmentation.Properties {
+
+
+ ///
+ /// ローカライズされた文字列などを検索するための、厳密に型指定されたリソース クラスです。
+ ///
+ // このクラスは StronglyTypedResourceBuilder クラスが ResGen
+ // または Visual Studio のようなツールを使用して自動生成されました。
+ // メンバーを追加または削除するには、.ResX ファイルを編集して、/str オプションと共に
+ // ResGen を実行し直すか、または VS プロジェクトをリビルドします。
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.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() {
+ }
+
+ ///
+ /// このクラスで使用されるキャッシュされた ResourceManager インスタンスを返します。
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if ((resourceMan == null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TongueSegmentation.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// すべてについて、現在のスレッドの CurrentUICulture プロパティをオーバーライドします
+ /// 現在のスレッドの CurrentUICulture プロパティをオーバーライドします。
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/TongueSegmentation/Properties/Resources.resx b/TongueSegmentation/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/TongueSegmentation/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/TongueSegmentation/Properties/Settings.Designer.cs b/TongueSegmentation/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..0005063
--- /dev/null
+++ b/TongueSegmentation/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+//
+// 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 TongueSegmentation.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.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;
+ }
+ }
+ }
+}
diff --git a/TongueSegmentation/Properties/Settings.settings b/TongueSegmentation/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/TongueSegmentation/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/TongueSegmentation/TongueSegmentation.csproj b/TongueSegmentation/TongueSegmentation.csproj
new file mode 100644
index 0000000..373a08c
--- /dev/null
+++ b/TongueSegmentation/TongueSegmentation.csproj
@@ -0,0 +1,229 @@
+
+
+
+
+
+
+
+
+ Debug
+ AnyCPU
+ {87BF247A-DA31-43B4-8111-6B96D302218C}
+ WinExe
+ TongueSegmentation
+ TongueSegmentation
+ v4.8
+ 512
+ true
+ true
+
+
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE
+ full
+ x64
+ 7.3
+ prompt
+ true
+
+
+ bin\x64\Release\
+ TRACE
+ true
+ pdbonly
+ x64
+ 7.3
+ prompt
+ true
+
+
+ tongue.ico
+
+
+
+ ..\packages\AsyncIO.0.1.69\lib\net40\AsyncIO.dll
+
+
+ ..\packages\Microsoft.Bcl.Numerics.8.0.0\lib\net462\Microsoft.Bcl.Numerics.dll
+
+
+ ..\packages\Microsoft.ML.3.0.1\lib\netstandard2.0\Microsoft.ML.dll
+
+
+ ..\packages\Microsoft.ML.3.0.1\lib\netstandard2.0\Microsoft.ML.Core.dll
+
+
+ ..\packages\Microsoft.ML.CpuMath.3.0.1\lib\netstandard2.0\Microsoft.ML.CpuMath.dll
+
+
+ ..\packages\Microsoft.ML.3.0.1\lib\netstandard2.0\Microsoft.ML.Data.dll
+
+
+ ..\packages\Microsoft.ML.DataView.3.0.1\lib\netstandard2.0\Microsoft.ML.DataView.dll
+
+
+ ..\packages\Microsoft.ML.3.0.1\lib\netstandard2.0\Microsoft.ML.KMeansClustering.dll
+
+
+ ..\packages\Microsoft.ML.OnnxRuntime.Managed.1.17.3\lib\netstandard2.0\Microsoft.ML.OnnxRuntime.dll
+
+
+ ..\packages\Microsoft.ML.3.0.1\lib\netstandard2.0\Microsoft.ML.PCA.dll
+
+
+ ..\packages\Microsoft.ML.3.0.1\lib\netstandard2.0\Microsoft.ML.StandardTrainers.dll
+
+
+ ..\packages\Microsoft.ML.3.0.1\lib\netstandard2.0\Microsoft.ML.Transforms.dll
+
+
+ ..\packages\NaCl.Net.0.1.13\lib\net472\NaCl.dll
+
+
+ ..\packages\NetMQ.4.0.1.13\lib\net47\NetMQ.dll
+
+
+ ..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll
+
+
+ ..\packages\OpenCvSharp4.4.9.0.20240103\lib\net48\OpenCvSharp.dll
+
+
+ ..\packages\OpenCvSharp4.Extensions.4.9.0.20240103\lib\net48\OpenCvSharp.Extensions.dll
+
+
+ ..\packages\OpenCvSharp4.WpfExtensions.4.9.0.20240103\lib\net48\OpenCvSharp.WpfExtensions.dll
+
+
+
+
+
+ ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll
+
+
+ ..\packages\System.CodeDom.4.5.0\lib\net461\System.CodeDom.dll
+
+
+ ..\packages\System.Collections.Immutable.1.5.0\lib\netstandard2.0\System.Collections.Immutable.dll
+
+
+
+ ..\packages\System.Drawing.Common.7.0.0\lib\net462\System.Drawing.Common.dll
+
+
+ ..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll
+
+
+
+ ..\packages\System.Numerics.Tensors.8.0.0\lib\net462\System.Numerics.Tensors.dll
+
+
+ ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll
+
+
+ ..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll
+
+
+
+
+ ..\packages\System.Threading.Channels.4.7.1\lib\net461\System.Threading.Channels.dll
+
+
+ ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll
+
+
+ ..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ MainForm.cs
+
+
+
+
+ MainForm.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+ PreserveNewest
+
+
+
+
+
+
+
+
+
+
+
+ このプロジェクトは、このコンピューター上にない NuGet パッケージを参照しています。それらのパッケージをダウンロードするには、[NuGet パッケージの復元] を使用します。詳細については、http://go.microsoft.com/fwlink/?LinkID=322105 を参照してください。見つからないファイルは {0} です。
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TongueSegmentation/packages.config b/TongueSegmentation/packages.config
new file mode 100644
index 0000000..429d31e
--- /dev/null
+++ b/TongueSegmentation/packages.config
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TongueSegmentation/tongue.ico b/TongueSegmentation/tongue.ico
new file mode 100644
index 0000000..d87a9bb
--- /dev/null
+++ b/TongueSegmentation/tongue.ico
Binary files differ