diff --git a/AxibugEmuOnline.Client/Assets/AxiProjectTools/AxiNSPack/Editors/AxibugNSPTools.cs b/AxibugEmuOnline.Client/Assets/AxiProjectTools/AxiNSPack/Editors/AxibugNSPTools.cs
index e623c351..0ff1826a 100644
--- a/AxibugEmuOnline.Client/Assets/AxiProjectTools/AxiNSPack/Editors/AxibugNSPTools.cs
+++ b/AxibugEmuOnline.Client/Assets/AxiProjectTools/AxiNSPack/Editors/AxibugNSPTools.cs
@@ -3,7 +3,6 @@ using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
-using System.Runtime.InteropServices;
 using System.Text;
 using System.Text.RegularExpressions;
 using UnityEditor;
@@ -20,7 +19,17 @@ namespace AxibugEmuOnline.Editors
         static Dictionary<string, string> tools = new Dictionary<string, string>();
         static string prodKeysPath;
 
-        [MenuItem("Axibug��ֲ����/Switch/AxibugNSPTools/RepackNSP(�����¹���NPS��")]
+        static void InitToolPath()
+        {
+            #region ��ʼ������·��
+            // ��ȡ������������Ҫ���ӻ���������飩
+            string sdkRoot = Environment.GetEnvironmentVariable("NINTENDO_SDK_ROOT");
+            tools["authoringTool"] = Path.Combine(sdkRoot, "Tools/CommandLineTools/AuthoringTool/AuthoringTool.exe");
+            tools["hacPack"] = Path.Combine(hacpack_root, "hacpack");
+            #endregion
+        }
+
+        [MenuItem("Axibug��ֲ����/Switch/AxibugNSPTools/RepackNSP(�����¹���NSP��")]
         static void RepackNSP()
         {
             if (!CheckEnvironmentVariable())
@@ -38,7 +47,29 @@ namespace AxibugEmuOnline.Editors
             RepackNSP(path);
         }
 
-        [MenuItem("Axibug��ֲ����/Switch/AxibugNSPTools/Build With RepackNSP(���NSP�����¹���NPS��")]
+
+        //[MenuItem("Axibug��ֲ����/Switch/AxibugNSPTools/UnpackNSP(������ߣ�")]
+        //static void UnpackNSP()
+        //{
+        //    InitToolPath();
+        //    if (!CheckEnvironmentVariable())
+        //        return;
+
+        //    string nspFilePath = EditorUtility.OpenFilePanel(
+        //        title: "ѡ�� .nsp �ļ�",
+        //        directory: Path.Combine(Application.dataPath, ".."), // Ĭ��·��Ϊ��Ŀ Assets Ŀ¼
+        //        extension: "nsp" // �����ļ�����Ϊ .nsp
+        //    );
+
+        //    if (string.IsNullOrEmpty(nspFilePath))
+        //        return;
+
+        //    string nspParentDir = Path.GetDirectoryName(nspFilePath);
+        //    string extractPath = Path.Combine(nspParentDir, "repacker_extract");
+        //    ExecuteCommand($"{tools["authoringTool"]} extract -o \"{extractPath}\" \"{nspFilePath}\"", nspParentDir);
+        //}
+
+        [MenuItem("Axibug��ֲ����/Switch/AxibugNSPTools/Build With RepackNSP(���NSP�����¹���NSP��")]
         public static void BuildWithRepackNSP()
         {
             if (!CheckEnvironmentVariable())
@@ -121,12 +152,7 @@ namespace AxibugEmuOnline.Editors
 
         static void RepackNSP(string nspFile)
         {
-            #region ��ʼ������·��
-            // ��ȡ������������Ҫ���ӻ���������飩
-            string sdkRoot = Environment.GetEnvironmentVariable("NINTENDO_SDK_ROOT");
-            tools["authoringTool"] = Path.Combine(sdkRoot, "Tools/CommandLineTools/AuthoringTool/AuthoringTool.exe");
-            tools["hacPack"] = Path.Combine(hacpack_root, "hacpack");
-            #endregion
+            InitToolPath();
 
             #region ����NSP����
             string nspFilePath = nspFile;
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/AxiNSApi/AxiNSApi.asmdef b/AxibugEmuOnline.Client/Assets/Plugins/AxiNSApi/AxiNSApi.asmdef
new file mode 100644
index 00000000..891f8320
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Plugins/AxiNSApi/AxiNSApi.asmdef
@@ -0,0 +1,3 @@
+{
+	"name": "AxiNSApi"
+}
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/AxiNSApi/AxiNSApi.asmdef.meta b/AxibugEmuOnline.Client/Assets/Plugins/AxiNSApi/AxiNSApi.asmdef.meta
new file mode 100644
index 00000000..84fae745
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Plugins/AxiNSApi/AxiNSApi.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: c8ad600c72d635843bd8aeb9d8aebfb8
+AssemblyDefinitionImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/AxiNSApi/AxiNSIO.cs b/AxibugEmuOnline.Client/Assets/Plugins/AxiNSApi/AxiNSIO.cs
index 9e3fe02e..53ca0990 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/AxiNSApi/AxiNSIO.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/AxiNSApi/AxiNSIO.cs
@@ -2,20 +2,24 @@
 using nn.fs;
 #endif
 
+using System.Collections.Generic;
+using System.Linq;
+using System.Text.RegularExpressions;
+
 public class AxiNSIO
 {
-	string save_name => AxiNS.instance.mount.SaveMountName;
-	public string save_path => $"{save_name}:/";
+    string save_name => AxiNS.instance.mount.SaveMountName;
+    public string save_path => $"{save_name}:/";
 #if UNITY_SWITCH
 	private FileHandle fileHandle = new nn.fs.FileHandle();
 #endif
-	/// <summary>
-	/// ���Path�Ƿ����
-	/// </summary>
-	/// <param name="filePath"></param>
-	/// <returns></returns>
-	public bool CheckPathExists(string filePath)
-	{
+    /// <summary>
+    /// ���Path�Ƿ����
+    /// </summary>
+    /// <param name="filePath"></param>
+    /// <returns></returns>
+    public bool CheckPathExists(string filePath)
+    {
 #if !UNITY_SWITCH
         return false;
 #else
@@ -25,14 +29,14 @@ public class AxiNSIO
 		//����쳣������ı�Ť
 		return nn.fs.FileSystem.ResultPathAlreadyExists.Includes(result);
 #endif
-	}
-	/// <summary>
-	/// ���Path�Ƿ񲻴���
-	/// </summary>
-	/// <param name="filePath"></param>
-	/// <returns></returns>
-	public bool CheckPathNotFound(string filePath)
-	{
+    }
+    /// <summary>
+    /// ���Path�Ƿ񲻴���
+    /// </summary>
+    /// <param name="filePath"></param>
+    /// <returns></returns>
+    public bool CheckPathNotFound(string filePath)
+    {
 #if !UNITY_SWITCH
         return false;
 #else
@@ -41,14 +45,14 @@ public class AxiNSIO
 		//����쳣������ı�Ť
 		return nn.fs.FileSystem.ResultPathNotFound.Includes(result);
 #endif
-	}
-	/// <summary>
-	/// ����Ŀ¼��Ŀ¼����Ҳ�᷵��true
-	/// </summary>
-	/// <param name="filePath"></param>
-	/// <returns></returns>
-	public bool CreateDir(string filePath)
-	{
+    }
+    /// <summary>
+    /// ����Ŀ¼��Ŀ¼����Ҳ�᷵��true
+    /// </summary>
+    /// <param name="filePath"></param>
+    /// <returns></returns>
+    public bool CreateDir(string filePath)
+    {
 #if !UNITY_SWITCH
         return false;
 #else
@@ -60,38 +64,38 @@ public class AxiNSIO
 		}
 		return true;
 #endif
-	}
+    }
 
-	/// <summary>
-	/// ���沢�����ļ������Ŀ¼�����ڻ����Զ�����Ŀ¼��
-	/// </summary>
-	/// <param name="filePath"></param>
-	/// <param name="bw"></param>
-	/// <returns></returns>
-	public bool FileToSaveWithCreate(string filePath, System.IO.MemoryStream ms)
-	{
-		return FileToSaveWithCreate(filePath, ms.ToArray());
-	}
-	/// <summary>
-	/// ���沢�����ļ������Ŀ¼�����ڻ����Զ�����Ŀ¼��
-	/// </summary>
-	/// <param name="filePath"></param>
-	/// <param name="data"></param>
-	/// <returns></returns>
-	public AxiNSWait_FileToSaveByMSWithCreate FileToSaveWithCreateAsync(string filePath, System.IO.MemoryStream ms)
-	{
-		var wait = new AxiNSWait_FileToSaveByMSWithCreate(filePath, ms);
-		AxiNS.instance.wait.AddWait(wait);
-		return wait;
-	}
-	/// <summary>
-	/// ���沢�����ļ������Ŀ¼�����ڻ����Զ�����Ŀ¼��
-	/// </summary>
-	/// <param name="filePath"></param>
-	/// <param name="data"></param>
-	/// <returns></returns>
-	public bool FileToSaveWithCreate(string filePath, byte[] data)
-	{
+    /// <summary>
+    /// ���沢�����ļ������Ŀ¼�����ڻ����Զ�����Ŀ¼��
+    /// </summary>
+    /// <param name="filePath"></param>
+    /// <param name="bw"></param>
+    /// <returns></returns>
+    public bool FileToSaveWithCreate(string filePath, System.IO.MemoryStream ms)
+    {
+        return FileToSaveWithCreate(filePath, ms.ToArray());
+    }
+    /// <summary>
+    /// ���沢�����ļ������Ŀ¼�����ڻ����Զ�����Ŀ¼��
+    /// </summary>
+    /// <param name="filePath"></param>
+    /// <param name="data"></param>
+    /// <returns></returns>
+    public AxiNSWait_FileToSaveByMSWithCreate FileToSaveWithCreateAsync(string filePath, System.IO.MemoryStream ms)
+    {
+        var wait = new AxiNSWait_FileToSaveByMSWithCreate(filePath, ms);
+        AxiNS.instance.wait.AddWait(wait);
+        return wait;
+    }
+    /// <summary>
+    /// ���沢�����ļ������Ŀ¼�����ڻ����Զ�����Ŀ¼��
+    /// </summary>
+    /// <param name="filePath"></param>
+    /// <param name="data"></param>
+    /// <returns></returns>
+    public bool FileToSaveWithCreate(string filePath, byte[] data)
+    {
 #if !UNITY_SWITCH
         return false;
 #else
@@ -195,33 +199,39 @@ public class AxiNSIO
 
 		return true;
 #endif
-	}
-	/// <summary>
-	/// ���沢�����ļ������Ŀ¼�����ڻ����Զ�����Ŀ¼��
-	/// </summary>
-	/// <param name="filePath"></param>
-	/// <param name="data"></param>
-	/// <returns></returns>
-	public AxiNSWait_FileToSaveWithCreate FileToSaveWithCreateAsync(string filePath, byte[] data)
-	{
-		var wait = new AxiNSWait_FileToSaveWithCreate(filePath, data);
-		AxiNS.instance.wait.AddWait(wait);
-		return wait;
-	}
-	public bool LoadSwitchDataFile(string filename, ref System.IO.MemoryStream ms)
-	{
-		if (LoadSwitchDataFile(filename, out byte[] outputData))
-		{
-			using (System.IO.BinaryWriter writer = new System.IO.BinaryWriter(ms))
-			{
-				writer.Write(outputData);
-			}
-			return true;
-		}
-		return false;
-	}
-	public bool LoadSwitchDataFile(string filename, out byte[] outputData)
-	{
+    }
+    /// <summary>
+    /// ���沢�����ļ������Ŀ¼�����ڻ����Զ�����Ŀ¼��
+    /// </summary>
+    /// <param name="filePath"></param>
+    /// <param name="data"></param>
+    /// <returns></returns>
+    public AxiNSWait_FileToSaveWithCreate FileToSaveWithCreateAsync(string filePath, byte[] data)
+    {
+        var wait = new AxiNSWait_FileToSaveWithCreate(filePath, data);
+        AxiNS.instance.wait.AddWait(wait);
+        return wait;
+    }
+    public byte[] LoadSwitchDataFile(string filename)
+    {
+        LoadSwitchDataFile(filename, out byte[] outputData);
+        return outputData;
+    }
+
+    public bool LoadSwitchDataFile(string filename, ref System.IO.MemoryStream ms)
+    {
+        if (LoadSwitchDataFile(filename, out byte[] outputData))
+        {
+            using (System.IO.BinaryWriter writer = new System.IO.BinaryWriter(ms))
+            {
+                writer.Write(outputData);
+            }
+            return true;
+        }
+        return false;
+    }
+    public bool LoadSwitchDataFile(string filename, out byte[] outputData)
+    {
 #if !UNITY_SWITCH
         outputData = null;
         return false;
@@ -272,15 +282,94 @@ public class AxiNSIO
 		outputData = loadedData;
 		return true;
 #endif
-	}
-	public AxiNSWait_LoadSwitchDataFile LoadSwitchDataFileAsync(string filename)
-	{
-		var wait = new AxiNSWait_LoadSwitchDataFile(filename);
-		AxiNS.instance.wait.AddWait(wait);
-		return wait;
-	}
-	public bool DeletePathFile(string filename)
+    }
+    public AxiNSWait_LoadSwitchDataFile LoadSwitchDataFileAsync(string filename)
+    {
+        var wait = new AxiNSWait_LoadSwitchDataFile(filename);
+        AxiNS.instance.wait.AddWait(wait);
+        return wait;
+    }
+
+    public bool GetDirectoryFiles(string path, out string[] entrys)
+    {
+#if !UNITY_SWITCH
+        entrys = null;
+        return false;
+#else
+		return GetDirectoryEntrys(path,nn.fs.OpenDirectoryMode.File,out entrys);
+#endif
+    }
+
+    public bool GetDirectoryDirs(string path, out string[] entrys)
+    {
+#if !UNITY_SWITCH
+        entrys = null;
+        return false;
+#else
+        return GetDirectoryEntrys(path, nn.fs.OpenDirectoryMode.Directory, out entrys);
+#endif
+    }
+
+#if UNITY_SWITCH
+    public bool GetDirectoryEntrys(string path, nn.fs.OpenDirectoryMode type, out string[] entrys)
 	{
+        entrys = null;
+        return false;
+        nn.fs.DirectoryHandle dirHandle = new nn.fs.DirectoryHandle();
+        nn.Result result = nn.fs.Directory.Open(ref dirHandle, path, type);
+        if (nn.fs.FileSystem.ResultPathNotFound.Includes(result))
+        {
+            UnityEngine.Debug.Log($"Ŀ¼ {path} ������");
+            entrys = null;
+            return false;
+        }
+        long entryCount = 0;
+        nn.fs.Directory.GetEntryCount(ref entryCount, dirHandle);
+        nn.fs.DirectoryEntry[] dirEntries = new nn.fs.DirectoryEntry[entryCount];
+        long actualEntries = 0;
+        nn.fs.Directory.Read(ref actualEntries, dirEntries, dirHandle, entryCount);
+
+		entrys = new string[actualEntries];
+        for (int i = 0; i < actualEntries; i++)
+        {
+			entrys[i] = dirEntries[i].name;
+        }
+		nn.fs.Directory.Close(dirHandle);
+		return true;
+    }
+#endif
+
+    public IEnumerable<string> EnumerateFiles(string path, string searchPattern)
+    {
+#if !UNITY_SWITCH
+       yield break;
+#else
+    // ��ͨ���ת��Ϊ�������ʽ��֧��*��?��
+    var regexPattern = "^" + 
+        Regex.Escape(searchPattern)
+            .Replace("\\*", ".*")
+            .Replace("\\?", ".") 
+        + "$";
+
+    var regex = new Regex(regexPattern, RegexOptions.IgnoreCase);
+
+		if (!GetDirectoryEntrys(path, nn.fs.OpenDirectoryMode.File, out string[] entrys))
+		{
+            yield break;
+        }
+
+		for (int i = 0; i < entrys.Length; i++)
+		{
+			if (regex.IsMatch(System.IO.Path.GetFileName(entrys[i])))
+			{
+				yield return entrys[i];
+			}
+        }
+#endif
+    }
+
+    public bool DeletePathFile(string filename)
+    {
 #if !UNITY_SWITCH
         return false;
 #else
@@ -315,15 +404,15 @@ public class AxiNSIO
 #endif
 
 #endif
-	}
-	public AxiNSWait_DeletePathFile DeletePathFileAsync(string filename)
-	{
-		var wait = new AxiNSWait_DeletePathFile(filename);
-		AxiNS.instance.wait.AddWait(wait);
-		return wait;
-	}
-	public bool DeletePathDir(string filename)
-	{
+    }
+    public AxiNSWait_DeletePathFile DeletePathFileAsync(string filename)
+    {
+        var wait = new AxiNSWait_DeletePathFile(filename);
+        AxiNS.instance.wait.AddWait(wait);
+        return wait;
+    }
+    public bool DeletePathDir(string filename)
+    {
 #if !UNITY_SWITCH
         return false;
 #else
@@ -356,21 +445,21 @@ public class AxiNSIO
         UnityEngine.Switch.Notification.LeaveExitRequestHandlingSection();
 #endif
 #endif
-	}
-	public AxiNSWait_DeletePathDir DeletePathDirAsync(string filename)
-	{
-		var wait = new AxiNSWait_DeletePathDir(filename);
-		AxiNS.instance.wait.AddWait(wait);
-		return wait;
-	}
+    }
+    public AxiNSWait_DeletePathDir DeletePathDirAsync(string filename)
+    {
+        var wait = new AxiNSWait_DeletePathDir(filename);
+        AxiNS.instance.wait.AddWait(wait);
+        return wait;
+    }
 
-	/// <summary>
-	/// �ݹ�ɾ��Ŀ¼
-	/// </summary>
-	/// <param name="filename"></param>
-	/// <returns></returns>
-	public bool DeleteRecursivelyPathDir(string filename)
-	{
+    /// <summary>
+    /// �ݹ�ɾ��Ŀ¼
+    /// </summary>
+    /// <param name="filename"></param>
+    /// <returns></returns>
+    public bool DeleteRecursivelyPathDir(string filename)
+    {
 #if !UNITY_SWITCH
         return false;
 #else
@@ -403,15 +492,15 @@ public class AxiNSIO
         UnityEngine.Switch.Notification.LeaveExitRequestHandlingSection();
 #endif
 #endif
-	}
+    }
 
-	/// <summary>
-	/// �ݹ�ɾ�����
-	/// </summary>
-	/// <param name="filename"></param>
-	/// <returns></returns>
-	public bool CleanRecursivelyPathDir(string filename)
-	{
+    /// <summary>
+    /// �ݹ�ɾ�����
+    /// </summary>
+    /// <param name="filename"></param>
+    /// <returns></returns>
+    public bool CleanRecursivelyPathDir(string filename)
+    {
 #if !UNITY_SWITCH
         return false;
 #else
@@ -444,10 +533,10 @@ public class AxiNSIO
         UnityEngine.Switch.Notification.LeaveExitRequestHandlingSection();
 #endif
 #endif
-	}
+    }
 
-	public bool RenameDir(string oldpath, string newpath)
-	{
+    public bool RenameDir(string oldpath, string newpath)
+    {
 #if !UNITY_SWITCH
         return false;
 #else
@@ -481,9 +570,9 @@ public class AxiNSIO
         UnityEngine.Switch.Notification.LeaveExitRequestHandlingSection();
 #endif
 #endif
-	}
-	bool EnsureParentDirectory(string filePath, bool bAutoCreateDir = true)
-	{
+    }
+    bool EnsureParentDirectory(string filePath, bool bAutoCreateDir = true)
+    {
 #if !UNITY_SWITCH
         return false;
 #else
@@ -559,14 +648,14 @@ public class AxiNSIO
 		return true;
 
 #endif
-	}
-	/// <summary>
-	/// ���ָ�����ص��Ƿ�ɷ���
-	/// </summary>
-	/// <param name="pathPrefix">·��ǰ׺������ "save:/" �� "sd:/"</param>
-	/// <returns>���ص��Ƿ�ɷ���</returns>
-	bool IsMountPointAccessible(string pathPrefix)
-	{
+    }
+    /// <summary>
+    /// ���ָ�����ص��Ƿ�ɷ���
+    /// </summary>
+    /// <param name="pathPrefix">·��ǰ׺������ "save:/" �� "sd:/"</param>
+    /// <returns>���ص��Ƿ�ɷ���</returns>
+    bool IsMountPointAccessible(string pathPrefix)
+    {
 #if !UNITY_SWITCH
         return false;
 #else
@@ -604,5 +693,5 @@ public class AxiNSIO
 			return true; // �������ص������ʵ������ʵ��
 		}
 #endif
-	}
+    }
 }
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/AxiNSApi/AxiNSMount.cs b/AxibugEmuOnline.Client/Assets/Plugins/AxiNSApi/AxiNSMount.cs
index 8b32a30b..169c2b3f 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/AxiNSApi/AxiNSMount.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/AxiNSApi/AxiNSMount.cs
@@ -118,7 +118,7 @@ public class AxiNSMount
         UnityEngine.Debug.LogError($"UnmountSDCardForDebug->���{m_SdCardDebugMountName}:/ ");
 		bInSdCardDebugMount = false;
 #endif
-	}
+    }
 	public void UnmountSDCard()
 	{
 #if UNITY_SWITCH
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/AxiMemory.cs b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/AxiMemory.cs
index 25255e28..ce03876d 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/AxiMemory.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/AxiMemory.cs
@@ -1,6 +1,5 @@
 using System;
 using System.Collections.Generic;
-using System.IO;
 using System.Runtime.InteropServices;
 
 namespace Essgee.Utilities
@@ -84,21 +83,21 @@ namespace Essgee.Utilities
         }
         #endregion
 
-        public static void Write(this BinaryWriter bw, byte* bufferPtr, int offset, int count)
+        public static void Write(this System.IO.BinaryWriter bw, byte* bufferPtr, int offset, int count)
         {
             // 使用指针复制数据到临时数组
             Buffer.MemoryCopy(bufferPtr + offset, TempBuffer, 0, count);
             // 使用BinaryWriter写入临时数组
             bw.Write(TempBuffer_src, 0, count);
         }
-        public static void Write(this FileStream fs, byte* bufferPtr, int offset, int count)
+        public static void Write(this System.IO.FileStream fs, byte* bufferPtr, int offset, int count)
         {
             // 使用指针复制数据到临时数组
             Buffer.MemoryCopy(bufferPtr + offset, TempBuffer, 0, count);
             // 使用BinaryWriter写入临时数组
             fs.Write(TempBuffer_src, 0, count);
         }
-        public static int Read(this FileStream fs, byte* bufferPtr, int offset, int count)
+        public static int Read(this System.IO.FileStream fs, byte* bufferPtr, int offset, int count)
         {
             // 使用BinaryWriter写入临时数组
             count = fs.Read(TempBuffer_src, offset, count);
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/EmuStandInfo.cs b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/EmuStandInfo.cs
index df3cfa98..9bcab291 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/EmuStandInfo.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/EmuStandInfo.cs
@@ -1,5 +1,6 @@
 
 using Essgee;
+using Essgee.Metadata;
 using System;
 
 public static class EmuStandInfo
@@ -8,7 +9,6 @@ public static class EmuStandInfo
     //public static string datDirectoryPath;
     //public static string metadataDatabaseFilePath;
 
-
     public static string jsonConfigFileName;//= "Config.json";
     public static string saveDataDirectoryName;//= "Saves";
     public static string screenshotDirectoryName;//= "Screenshots";
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/CPU/SM83.cs b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/CPU/SM83.cs
index 5461099e..c8df15c9 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/CPU/SM83.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/CPU/SM83.cs
@@ -131,7 +131,8 @@ namespace Essgee.Emulation.CPU
         {
             if (AppEnvironment.EnableSuperSlowCPULogger && logEntries != null)
             {
-                System.IO.File.AppendAllText(logFile, string.Join("", logEntries.Take(numLogEntries)));
+                //TODO 暂时不要日志看后续是否需要加
+                //System.IO.File.AppendAllText(logFile, string.Join("", logEntries.Take(numLogEntries)));
             }
 
             //
@@ -175,7 +176,8 @@ namespace Essgee.Emulation.CPU
                     logEntries[numLogEntries++] = disasm;
                     if (numLogEntries >= logEntries.Length)
                     {
-                        System.IO.File.AppendAllText(logFile, string.Join("", logEntries));
+                        //TODO 暂时不要日志看后续是否需要加
+                        //System.IO.File.AppendAllText(logFile, string.Join("", logEntries));
                         numLogEntries = 0;
                     }
                 }
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/CPU/Z80A.cs b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/CPU/Z80A.cs
index aad65619..9386dc4f 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/CPU/Z80A.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/CPU/Z80A.cs
@@ -207,8 +207,9 @@ namespace Essgee.Emulation.CPU
 
             if (AppEnvironment.EnableSuperSlowCPULogger)
             {
-                string disasm = string.Format("{0} | {1} | {2} | {3}\n", DisassembleOpcode(this, pc).PadRight(48), PrintRegisters(this), PrintFlags(this), PrintInterrupt(this));
-                System.IO.File.AppendAllText(@"D:\Temp\Essgee\log.txt", disasm);
+                //TODO 暂时不要日志看后续是否需要加
+                //string disasm = string.Format("{0} | {1} | {2} | {3}\n", DisassembleOpcode(this, pc).PadRight(48), PrintRegisters(this), PrintFlags(this), PrintInterrupt(this));
+                //System.IO.File.AppendAllText(@"D:\Temp\Essgee\log.txt", disasm);
             }
 
             /* Fetch and execute opcode */
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/CartridgeLoader.cs b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/CartridgeLoader.cs
index 596b948b..1bd992b1 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/CartridgeLoader.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/CartridgeLoader.cs
@@ -3,7 +3,6 @@ using Essgee.Exceptions;
 using Essgee.Utilities;
 using System;
 using System.Collections.Generic;
-using System.IO;
 using System.IO.Compression;
 using System.Linq;
 using System.Reflection;
@@ -32,19 +31,19 @@ namespace Essgee.Emulation
             Type machineType = null;
             byte[] romData = null;
 
-            if (!File.Exists(fileName))
+            if (!EmulatorHandler.io.File_Exists(fileName))
                 throw new CartridgeLoaderException($"{fileType} file not found.");
 
             try
             {
-                var fileExtension = Path.GetExtension(fileName);
+                var fileExtension = System.IO.Path.GetExtension(fileName);
                 if (fileExtension == ".zip")
                 {
                     using (var zip = ZipFile.Open(fileName, ZipArchiveMode.Read))
                     {
                         foreach (var entry in zip.Entries)
                         {
-                            var entryExtension = Path.GetExtension(entry.Name);
+                            var entryExtension = System.IO.Path.GetExtension(entry.Name);
                             if (fileExtensionSystemDictionary.ContainsKey(entryExtension))
                             {
                                 machineType = fileExtensionSystemDictionary[entryExtension];
@@ -61,7 +60,7 @@ namespace Essgee.Emulation
                 else if (fileExtensionSystemDictionary.ContainsKey(fileExtension))
                 {
                     machineType = fileExtensionSystemDictionary[fileExtension];
-                    romData = File.ReadAllBytes(fileName);
+                    romData = System.IO.File.ReadAllBytes(fileName);
                 }
             }
             catch (Exception ex) when (!AppEnvironment.DebugMode)
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/EmulatorHandler.cs b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/EmulatorHandler.cs
index 36b59d30..721a1af0 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/EmulatorHandler.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/EmulatorHandler.cs
@@ -5,7 +5,6 @@ using Essgee.Metadata;
 using Essgee.Utilities;
 using System;
 using System.Collections.Generic;
-using System.IO;
 using System.Threading;
 
 namespace Essgee.Emulation
@@ -14,6 +13,7 @@ namespace Essgee.Emulation
     {
         readonly Action<Exception> exceptionHandler;
 
+        public static IEssgeeIOSupport io;
         public IMachine emulator { get; private set; }
 
         Thread emulationThread;
@@ -158,7 +158,7 @@ namespace Essgee.Emulation
 
         public string GetSaveStateFilename(int number)
         {
-            return Path.Combine(EmuStandInfo.SaveStatePath, $"{Path.GetFileNameWithoutExtension(currentGameMetadata.FileName)} (State {number:D2}).est");
+            return System.IO.Path.Combine(EmuStandInfo.SaveStatePath, $"{System.IO.Path.GetFileNameWithoutExtension(currentGameMetadata.FileName)} (State {number:D2}).est");
         }
 
         public void LoadState(int number)
@@ -182,9 +182,9 @@ namespace Essgee.Emulation
 
             byte[] ramData = new byte[currentGameMetadata.RamSize];
 
-            var savePath = Path.Combine(EmuStandInfo.SaveDataPath, Path.ChangeExtension(currentGameMetadata.FileName, "sav"));
-            if (File.Exists(savePath))
-                ramData = File.ReadAllBytes(savePath);
+            var savePath = System.IO.Path.Combine(EmuStandInfo.SaveDataPath, System.IO.Path.ChangeExtension(currentGameMetadata.FileName, "sav"));
+            if (EmulatorHandler.io.File_Exists(savePath))
+                ramData = EmulatorHandler.io.File_ReadAllBytes(savePath);
 
             emulator.Load(romData, ramData, currentGameMetadata.MapperType);
 
@@ -202,8 +202,8 @@ namespace Essgee.Emulation
                 cartRamSaveNeeded)
             {
                 var ramData = emulator.GetCartridgeRam();
-                var savePath = Path.Combine(EmuStandInfo.SaveDataPath, Path.ChangeExtension(currentGameMetadata.FileName, "sav"));
-                File.WriteAllBytes(savePath, ramData);
+                var savePath = System.IO.Path.Combine(EmuStandInfo.SaveDataPath, System.IO.Path.ChangeExtension(currentGameMetadata.FileName, "sav"));
+                EmulatorHandler.io.File_WriteAllBytes(savePath, ramData);
             }
         }
 
@@ -370,28 +370,28 @@ namespace Essgee.Emulation
         //    }
         //}
 
-        public void SaveSnapShotToFile(int stateNumber)
-        {
-            var statePath = GetSaveStateFilename(stateNumber);
-            using (var stream = new FileStream(statePath, FileMode.OpenOrCreate))
-            {
-                //SaveStateHandler.Save(stream, emulator.GetType().Name, emulator.GetState());
-                SaveStateHandler.Save(stream, emulator.GetType().Name, emulator.SaveAxiStatus());
-            }
-        }
+        //public void SaveSnapShotToFile(int stateNumber)
+        //{
+        //    var statePath = GetSaveStateFilename(stateNumber);
+        //    using (var stream = new FileStream(statePath, FileMode.OpenOrCreate))
+        //    {
+        //        //SaveStateHandler.Save(stream, emulator.GetType().Name, emulator.GetState());
+        //        SaveStateHandler.Save(stream, emulator.GetType().Name, emulator.SaveAxiStatus());
+        //    }
+        //}
 
-        public void LoadSnapShotFromFile(int stateNumber)
-        {
-            var statePath = GetSaveStateFilename(stateNumber);
-            if (File.Exists(statePath))
-            {
-                using (var stream = new FileStream(statePath, FileMode.Open))
-                {
-                    //emulator.SetState(SaveStateHandler.Load(stream, emulator.GetType().Name));
-                    emulator.LoadAxiStatus(SaveStateHandler.LoadAxiStatus(stream, emulator.GetType().Name));
-                }
-            }
-        }
+        //public void LoadSnapShotFromFile(int stateNumber)
+        //{
+        //    var statePath = GetSaveStateFilename(stateNumber);
+        //    if (File.Exists(statePath))
+        //    {
+        //        using (var stream = new FileStream(statePath, FileMode.Open))
+        //        {
+        //            //emulator.SetState(SaveStateHandler.Load(stream, emulator.GetType().Name));
+        //            emulator.LoadAxiStatus(SaveStateHandler.LoadAxiStatus(stream, emulator.GetType().Name));
+        //        }
+        //    }
+        //}
 
         public byte[] GetStateData()
         { 
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/ExtDevices/Nintendo/GameBoyIPC.cs b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/ExtDevices/Nintendo/GameBoyIPC.cs
index 40029073..602078ba 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/ExtDevices/Nintendo/GameBoyIPC.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/ExtDevices/Nintendo/GameBoyIPC.cs
@@ -1,7 +1,6 @@
 using Essgee.EventArguments;
 using System;
 using System.ComponentModel;
-using System.IO;
 using System.IO.MemoryMappedFiles;
 
 namespace Essgee.Emulation.ExtDevices.Nintendo
@@ -64,7 +63,7 @@ namespace Essgee.Emulation.ExtDevices.Nintendo
                 ipcOffsetSelf = ipcBaseOffsetSerialData + 1;
                 ipcOffsetRemote = ipcBaseOffsetSerialData + 0;
             }
-            catch (FileNotFoundException)
+            catch (Exception ex)
             {
                 // Mapped file does not yet exist, create file and assume this instance is first machine
                 mmf = MemoryMappedFile.CreateOrOpen(ipcName, ipcLength);
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/Machines/GameBoyColor.cs b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/Machines/GameBoyColor.cs
index 7adff1f9..2a68c9e7 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/Machines/GameBoyColor.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/Machines/GameBoyColor.cs
@@ -10,7 +10,6 @@ using Essgee.Utilities;
 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
-using System.IO;
 using System.Linq;
 
 namespace Essgee.Emulation.Machines
@@ -365,9 +364,22 @@ namespace Essgee.Emulation.Machines
             irDatabaseCurrentIndex = irCycles = 0;
             irExternalTransferActive = false;
 
-            if (configuration.InfraredSource == InfraredSources.PocketPikachuColor && File.Exists(configuration.InfraredDatabasePikachu))
+            //if (configuration.InfraredSource == InfraredSources.PocketPikachuColor && EmulatorHandler.io.File_Exists(configuration.InfraredDatabasePikachu))
+            //{
+            //    using (var reader = new System.IO.BinaryReader(new FileStream(configuration.InfraredDatabasePikachu, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite)))
+            //    {
+            //        irDatabase = new ushort[reader.BaseStream.Length / 2];
+            //        for (var i = 0; i < irDatabase.Length; i++)
+            //            irDatabase[i] = reader.ReadUInt16();
+
+            //        irDatabaseStep = 2007;
+            //        if ((irDatabaseBaseIndex < 0) || (irDatabaseBaseIndex * irDatabaseStep >= irDatabase.Length))
+            //            irDatabaseBaseIndex = 0;
+            //    }
+            //}
+            if (configuration.InfraredSource == InfraredSources.PocketPikachuColor && EmulatorHandler.io.File_Exists(configuration.InfraredDatabasePikachu))
             {
-                using (var reader = new BinaryReader(new FileStream(configuration.InfraredDatabasePikachu, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite)))
+                using (var reader = new System.IO.BinaryReader(new System.IO.MemoryStream(EmulatorHandler.io.File_ReadAllBytes(configuration.InfraredDatabasePikachu))))
                 {
                     irDatabase = new ushort[reader.BaseStream.Length / 2];
                     for (var i = 0; i < irDatabase.Length; i++)
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/SaveStateHandler.cs b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/SaveStateHandler.cs
index 2fc94d0d..55e30290 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/SaveStateHandler.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Emulation/SaveStateHandler.cs
@@ -1,6 +1,4 @@
-using System.IO;
-
-namespace Essgee.Emulation
+namespace Essgee.Emulation
 {
     public static class SaveStateHandler
     {
@@ -42,12 +40,12 @@ namespace Essgee.Emulation
         //    }
         //}
 
-        public static AxiEssgssStatusData LoadAxiStatus(Stream stream, string machineName)
+        public static AxiEssgssStatusData LoadAxiStatus(System.IO.Stream stream, string machineName)
         {
-            using (var reader = new BinaryReader(stream))
+            using (var reader = new System.IO.BinaryReader(stream))
             {
                 /* Check CRC32 */
-                using (var stateStream = new MemoryStream())
+                using (var stateStream = new System.IO.MemoryStream())
                 {
                     reader.BaseStream.CopyTo(stateStream);
                     return stateStream.ToArray().ToAxiEssgssStatusData();
@@ -102,11 +100,11 @@ namespace Essgee.Emulation
         //    }
         //}
 
-        public static void Save(Stream stream, string machineName, AxiEssgssStatusData state)
-        {
-            byte[] data = state.ToByteArray();
-            stream.Write(data, 0, data.Length);
-        }
+        //public static void Save(Stream stream, string machineName, AxiEssgssStatusData state)
+        //{
+        //    byte[] data = state.ToByteArray();
+        //    stream.Write(data, 0, data.Length);
+        //}
         //private static string GenerateMachineIdString(string machineId)
         //{
         //    return machineId.Substring(0, Math.Min(machineId.Length, 16)).PadRight(16);
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Extensions/AssemblyExtensionMethods.cs b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Extensions/AssemblyExtensionMethods.cs
index 6120fb51..62edabda 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Extensions/AssemblyExtensionMethods.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Extensions/AssemblyExtensionMethods.cs
@@ -1,5 +1,4 @@
 using System;
-using System.IO;
 using System.Linq;
 using System.Reflection;
 
@@ -20,7 +19,7 @@ namespace Essgee.Extensions
 
         public static string ReadEmbeddedTextFile(this Assembly assembly, string resourceName)
         {
-            using (var reader = new StreamReader(assembly.GetManifestResourceStream(resourceName)))
+            using (var reader = new System.IO.StreamReader(assembly.GetManifestResourceStream(resourceName)))
                 return reader.ReadToEnd();
         }
 
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/IAxiEssgssStatus.cs b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/IAxiEssgssStatus.cs
index 541d8e9c..e396ee88 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/IAxiEssgssStatus.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/IAxiEssgssStatus.cs
@@ -1,8 +1,6 @@
 using System;
 using System.Collections.Generic;
-using System.IO;
 using System.Linq;
-using System.Runtime.Serialization.Formatters.Binary;
 
 [Serializable]
 public class AxiEssgssStatusData
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Metadata/GameMetadataHandler.cs b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Metadata/GameMetadataHandler.cs
index 75a630dc..9a001a1a 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Metadata/GameMetadataHandler.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Metadata/GameMetadataHandler.cs
@@ -2,7 +2,6 @@
 using Essgee.Exceptions;
 using System;
 using System.Collections.Generic;
-using System.IO;
 using System.Linq;
 using System.Xml.Serialization;
 
@@ -17,6 +16,15 @@ namespace Essgee.Metadata
         public bool GetDatBytes(string DatName, out byte[] loadedData);
     }
 
+
+    public interface IEssgeeIOSupport
+    {
+        bool File_Exists(string path);
+        byte[] File_ReadAllBytes(string path);
+        void File_WriteAllBytes(string savePath, byte[] data);
+        void File_WriteAllBytesFromStre(string path, System.IO.MemoryStream ms);
+    }
+
     public class GameMetadataHandler
     {
         public static GameMetadataHandler instance;
@@ -24,6 +32,8 @@ namespace Essgee.Metadata
         //static string metadataDatabaseFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Assets", "MetadataDatabase.json");
 
         public IGameMetaReources gameMetaReources;
+        public IEssgeeIOSupport uegIO;
+
         //readonly Dictionary<string, DatFile> datFiles;
         readonly List<CartridgeJSON> cartMetadataDatabase;
 
@@ -379,7 +389,7 @@ namespace Essgee.Metadata
             XmlSerializer serializer;
             root = new XmlRootAttribute("datafile") { IsNullable = true };
             serializer = new XmlSerializer(typeof(DatFile), root);
-            using (MemoryStream stream = new MemoryStream(loadedData))
+            using (System.IO.MemoryStream stream = new System.IO.MemoryStream(loadedData))
             {
                 datFile = (DatFile)serializer.Deserialize(stream);
             }
@@ -396,7 +406,7 @@ namespace Essgee.Metadata
             /* Create game metadata */
             var gameMetadata = new GameMetadata()
             {
-                FileName = Path.GetFileName(romFilename),
+                FileName = System.IO.Path.GetFileName(romFilename),
                 KnownName = gameInfo?.Name,
                 RomCrc32 = romCrc32,
                 RomSize = romSize
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Utilities/Crc32.cs b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Utilities/Crc32.cs
index 78b8691c..322ab59b 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Utilities/Crc32.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Essgee.Unity/Utilities/Crc32.cs
@@ -1,5 +1,4 @@
 using System;
-using System.IO;
 
 namespace Essgee.Utilities
 {
@@ -34,42 +33,42 @@ namespace Essgee.Utilities
             if ((segmentStart + segmentLength) > dataLength) throw new Crc32Exception("Segment end offset is greater than total length");
         }
 
-        public static uint Calculate(FileInfo fileInfo)
-        {
-            return Calculate(fileInfo, 0, (int)fileInfo.Length);
-        }
+        //public static uint Calculate(FileInfo fileInfo)
+        //{
+        //    return Calculate(fileInfo, 0, (int)fileInfo.Length);
+        //}
 
-        public static uint Calculate(FileInfo fileInfo, int start, int length)
-        {
-            VerifyStartAndLength((int)fileInfo.Length, start, length);
+        //public static uint Calculate(FileInfo fileInfo, int start, int length)
+        //{
+        //    VerifyStartAndLength((int)fileInfo.Length, start, length);
 
-            using (FileStream file = fileInfo.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
-            {
-                return Calculate(file, start, length);
-            }
-        }
+        //    using (FileStream file = fileInfo.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
+        //    {
+        //        return Calculate(file, start, length);
+        //    }
+        //}
 
-        public static uint Calculate(Stream stream)
-        {
-            return Calculate(stream, 0, (int)stream.Length);
-        }
+        //public static uint Calculate(Stream stream)
+        //{
+        //    return Calculate(stream, 0, (int)stream.Length);
+        //}
 
-        public static uint Calculate(Stream stream, int start, int length)
-        {
-            VerifyStartAndLength((int)stream.Length, start, length);
+        //public static uint Calculate(Stream stream, int start, int length)
+        //{
+        //    VerifyStartAndLength((int)stream.Length, start, length);
 
-            uint crc = 0;
+        //    uint crc = 0;
 
-            var lastStreamPosition = stream.Position;
+        //    var lastStreamPosition = stream.Position;
 
-            byte[] data = new byte[length];
-            stream.Position = start;
-            stream.Read(data, 0, length);
-            crc = Calculate(data, 0, data.Length);
-            stream.Position = lastStreamPosition;
+        //    byte[] data = new byte[length];
+        //    stream.Position = start;
+        //    stream.Read(data, 0, length);
+        //    crc = Calculate(data, 0, data.Length);
+        //    stream.Position = lastStreamPosition;
 
-            return crc;
-        }
+        //    return crc;
+        //}
 
         public static uint Calculate(byte[] data)
         {
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/MAMEEmu.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/MAMEEmu.cs
index a6ac2419..5301e634 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/MAMEEmu.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/MAMEEmu.cs
@@ -1,6 +1,5 @@
 using System;
 using System.Collections.Generic;
-using System.IO;
 using System.Threading;
 
 namespace MAME.Core
@@ -25,8 +24,9 @@ namespace MAME.Core
             ISoundPlayer isp,
             IKeyboard ikb,
             IMouse imou,
-            ITimeSpan itime
-            ) => mameMainMotion.Init(RomDir, ilog, iRes, ivp, isp, ikb, imou, itime);
+            ITimeSpan itime,
+            IMAMEIOSupport io
+            ) => mameMainMotion.Init(RomDir, ilog, iRes, ivp, isp, ikb, imou, itime,io);
 
         public void ResetRomRoot(string RomDir) => mameMainMotion.ResetRomRoot(RomDir);
 
@@ -40,7 +40,7 @@ namespace MAME.Core
         public void StopGame() => mameMainMotion.StopGame();
         public long currEmuFrame => Video.screenstate.frame_number;
         public bool IsPaused => Mame.paused;
-        public void LoadState(BinaryReader sr)
+        public void LoadState(System.IO.BinaryReader sr)
         {
             Mame.paused = true;
             Thread.Sleep(20);
@@ -51,7 +51,7 @@ namespace MAME.Core
             Mame.paused = false;
         }
 
-        public void SaveState(BinaryWriter sw)
+        public void SaveState(System.IO.BinaryWriter sw)
         {
             Mame.paused = true;
             Thread.Sleep(20);
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/Motion/MameMainMotion.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/Motion/MameMainMotion.cs
index b11cea67..e2c9a63a 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/Motion/MameMainMotion.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/Motion/MameMainMotion.cs
@@ -21,6 +21,7 @@ namespace MAME.Core
         public AutoResetEvent emuAutoLoopEvent;
 
         public static IResources resource;
+        public static IMAMEIOSupport IoSupport;
         public bool bRom => Machine.bRom;
 
         public MameMainMotion()
@@ -42,7 +43,8 @@ namespace MAME.Core
             ISoundPlayer isp,
             IKeyboard ikb,
             IMouse imou,
-            ITimeSpan itime
+            ITimeSpan itime,
+            IMAMEIOSupport io
             )
         {
             AxiMemoryEx.Init();
@@ -54,6 +56,7 @@ namespace MAME.Core
             Video.BindFunc(ivp);
             Sound.BindFunc(isp);
             resource = iRes;
+            IoSupport = io;
 
             sSelect = string.Empty;
 
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/m6502/M6502.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/m6502/M6502.cs
index 450878cd..b9388d3e 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/m6502/M6502.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/m6502/M6502.cs
@@ -1,7 +1,5 @@
 using MAME.Core;
 using System;
-using System.IO;
-//using System.IO;
 
 namespace cpu.m6502
 {
@@ -232,7 +230,7 @@ namespace cpu.m6502
                 }
             }
         }
-        public void SaveStateBinary(BinaryWriter writer)
+        public void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             writer.Write(subtype);
             writer.Write(ppc.LowWord);
@@ -250,7 +248,7 @@ namespace cpu.m6502
             writer.Write(TotalExecutedCycles);
             writer.Write(PendingCycles);
         }
-        public void LoadStateBinary(BinaryReader reader)
+        public void LoadStateBinary(System.IO.BinaryReader reader)
         {
             subtype = reader.ReadByte();
             ppc.LowWord = reader.ReadUInt16();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/m6800/M6800.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/m6800/M6800.cs
index ed7c5c65..288bd5fd 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/m6800/M6800.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/m6800/M6800.cs
@@ -1,6 +1,5 @@
 using MAME.Core;
 using System;
-using System.IO;
 
 namespace cpu.m6800
 {
@@ -1216,7 +1215,7 @@ namespace cpu.m6800
                     break;
             }
         }
-        public void SaveStateBinary(BinaryWriter writer)
+        public void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             writer.Write(PPC.LowWord);
             writer.Write(PC.LowWord);
@@ -1260,7 +1259,7 @@ namespace cpu.m6800
             writer.Write(TotalExecutedCycles);
             writer.Write(PendingCycles);
         }
-        public void LoadStateBinary(BinaryReader reader)
+        public void LoadStateBinary(System.IO.BinaryReader reader)
         {
             PPC.LowWord = reader.ReadUInt16();
             PC.LowWord = reader.ReadUInt16();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/m68000/MC68000.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/m68000/MC68000.cs
index e7b98af1..1856266d 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/m68000/MC68000.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/m68000/MC68000.cs
@@ -1,7 +1,6 @@
 using MAME.Core;
 using System;
 using System.Globalization;
-using System.IO;
 using System.Runtime.InteropServices;
 
 namespace cpu.m68000
@@ -275,7 +274,7 @@ namespace cpu.m68000
         //    return a + b + c + d;
         //}
 
-        public void SaveStateBinary(BinaryWriter writer)
+        public void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i;
             for (i = 0; i < 0x08; i++)
@@ -304,7 +303,7 @@ namespace cpu.m68000
             writer.Write(MC68000.m1.TotalExecutedCycles);
             writer.Write(MC68000.m1.PendingCycles);
         }
-        public void LoadStateBinary(BinaryReader reader)
+        public void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i;
             for (i = 0; i < 0x08; i++)
@@ -333,7 +332,7 @@ namespace cpu.m68000
             MC68000.m1.TotalExecutedCycles = reader.ReadUInt64();
             MC68000.m1.PendingCycles = reader.ReadInt32();
         }
-        public void SaveStateText(TextWriter writer, string id)
+        public void SaveStateText(System.IO.TextWriter writer, string id)
         {
             writer.WriteLine("[{0}]", id);
             writer.WriteLine("D0 {0:X8}", D[0].s32);
@@ -370,7 +369,7 @@ namespace cpu.m68000
             writer.WriteLine("[/{0}]", id);
         }
 
-        public void LoadStateText(TextReader reader, string id)
+        public void LoadStateText(System.IO.TextReader reader, string id)
         {
             while (true)
             {
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/m6805/M6805.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/m6805/M6805.cs
index a8808992..58e1409e 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/m6805/M6805.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/m6805/M6805.cs
@@ -1,6 +1,5 @@
 using MAME.Core;
 using System;
-using System.IO;
 
 namespace cpu.m6805
 {
@@ -831,7 +830,7 @@ namespace cpu.m6805
             while (pendingCycles > 0);
             return cycles - pendingCycles;
         }
-        public void SaveStateBinary(BinaryWriter writer)
+        public void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(ea.LowWord);
@@ -850,7 +849,7 @@ namespace cpu.m6805
             writer.Write(TotalExecutedCycles);
             writer.Write(PendingCycles);
         }
-        public void LoadStateBinary(BinaryReader reader)
+        public void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i;
             ea.LowWord = reader.ReadUInt16();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/m6809/M6809.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/m6809/M6809.cs
index 921dda34..6cf16147 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/m6809/M6809.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/m6809/M6809.cs
@@ -1,6 +1,5 @@
 using MAME.Core;
 using System;
-using System.IO;
 
 namespace cpu.m6809
 {
@@ -861,7 +860,7 @@ namespace cpu.m6809
                 case 0xff: EA = IMMWORD(); EA.d = RM16(EA.LowWord); pendingCycles -= 8; break;
             }
         }
-        public void SaveStateBinary(BinaryWriter writer)
+        public void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             writer.Write(PC.LowWord);
             writer.Write(PPC.LowWord);
@@ -879,7 +878,7 @@ namespace cpu.m6809
             writer.Write(TotalExecutedCycles);
             writer.Write(PendingCycles);
         }
-        public void LoadStateBinary(BinaryReader reader)
+        public void LoadStateBinary(System.IO.BinaryReader reader)
         {
             PC.LowWord = reader.ReadUInt16();
             PPC.LowWord = reader.ReadUInt16();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/nec/Nec.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/nec/Nec.cs
index e19b5b30..731a3322 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/nec/Nec.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/nec/Nec.cs
@@ -1,6 +1,5 @@
 using MAME.Core;
 using System;
-using System.IO;
 
 namespace cpu.nec
 {
@@ -1190,7 +1189,7 @@ namespace cpu.nec
                 nec_interrupt(-1, false);
             }
         }
-        public void SaveStateBinary(BinaryWriter writer)
+        public void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(I.regs.b, 0, 16);
@@ -1220,7 +1219,7 @@ namespace cpu.nec
             writer.Write(TotalExecutedCycles);
             writer.Write(PendingCycles);
         }
-        public void LoadStateBinary(BinaryReader reader)
+        public void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i;
             I.regs.b = reader.ReadBytes(16);
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/z80/Z80A.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/z80/Z80A.cs
index 46712aa9..943871fc 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/z80/Z80A.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/cpu/z80/Z80A.cs
@@ -1,7 +1,6 @@
 using MAME.Core;
 using System;
 using System.Globalization;
-using System.IO;
 
 // This Z80 emulator is a modified version of Ben Ryves 'Brazil' emulator.
 // It is MIT licensed.
@@ -133,7 +132,7 @@ namespace cpu.z80
 
         // State Save/Load
 
-        public void SaveStateBinary(BinaryWriter writer)
+        public void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             writer.Write(PPC);
             writer.Write(RegisterAF);
@@ -162,7 +161,7 @@ namespace cpu.z80
             writer.Write(TotalExecutedCycles);
             writer.Write(PendingCycles);
         }
-        public void LoadStateBinary(BinaryReader reader)
+        public void LoadStateBinary(System.IO.BinaryReader reader)
         {
             PPC = reader.ReadUInt16();
             RegisterAF = reader.ReadUInt16();
@@ -191,7 +190,7 @@ namespace cpu.z80
             TotalExecutedCycles = reader.ReadUInt64();
             PendingCycles = reader.ReadInt32();
         }
-        public void SaveStateText(TextWriter writer)
+        public void SaveStateText(System.IO.TextWriter writer)
         {
             writer.WriteLine("[Z80]");
             writer.WriteLine("AF {0:X4}", RegAF.Word);
@@ -221,7 +220,7 @@ namespace cpu.z80
             writer.WriteLine();
         }
 
-        public void LoadStateText(TextReader reader)
+        public void LoadStateText(System.IO.TextReader reader)
         {
             while (true)
             {
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Cpuexec.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Cpuexec.cs
index 3d386527..2426fead 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Cpuexec.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Cpuexec.cs
@@ -6,7 +6,6 @@ using cpu.m6809;
 using cpu.nec;
 using cpu.z80;
 using System;
-using System.IO;
 
 namespace MAME.Core
 {
@@ -2808,7 +2807,7 @@ namespace MAME.Core
             if (perfect_interleave.attoseconds == Attotime.ATTOSECONDS_PER_SECOND - 1)
                 perfect_interleave.attoseconds = cpu[0].attoseconds_per_cycle;
         }
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i;
             for (i = 0; i < ncpu; i++)
@@ -2822,7 +2821,7 @@ namespace MAME.Core
                 writer.Write(Cpuexec.cpu[i].localtime.attoseconds);
             }
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i;
             for (i = 0; i < ncpu; i++)
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Cpuint.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Cpuint.cs
index 41e27701..1294bd9c 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Cpuint.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Cpuint.cs
@@ -1,7 +1,5 @@
 using System;
 using System.Collections.Generic;
-using System.IO;
-using System.Numerics;
 using System.Runtime.InteropServices;
 
 namespace MAME.Core
@@ -262,7 +260,7 @@ namespace MAME.Core
         {
             return cpu_irq_callback(3, line);
         }
-        public static void SaveStateBinary_v(BinaryWriter writer)
+        public static void SaveStateBinary_v(System.IO.BinaryWriter writer)
         {
             int i, n;
             n = lvec.Count;
@@ -280,7 +278,7 @@ namespace MAME.Core
                 writer.Write((long)0);
             }
         }
-        public static void LoadStateBinary_v(BinaryReader reader)
+        public static void LoadStateBinary_v(System.IO.BinaryReader reader)
         {
             int i, n;
             n = reader.ReadInt32();
@@ -299,7 +297,7 @@ namespace MAME.Core
                 reader.ReadInt64();
             }
         }
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i, j, n;
             n = lirq.Count;
@@ -351,7 +349,7 @@ namespace MAME.Core
                 }
             }
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i, j, n;
             n = reader.ReadInt32();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Eeprom.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Eeprom.cs
index 79ba32e5..0b751d20 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Eeprom.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Eeprom.cs
@@ -1,6 +1,4 @@
-using System.IO;
-
-namespace MAME.Core
+namespace MAME.Core
 {
     /*public enum eeprom_command
     {
@@ -378,7 +376,7 @@ namespace MAME.Core
             }
             clock_line = state;
         }
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             writer.Write(eeprom_data);
             writer.Write(serial_buffer);
@@ -393,7 +391,7 @@ namespace MAME.Core
             writer.Write(eeprom_data_bits);
             writer.Write(eeprom_read_address);
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             eeprom_data = reader.ReadBytes(0x80);
             serial_buffer = reader.ReadBytes(40);
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/EmuTimer.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/EmuTimer.cs
index 5bfcf857..7055e2e6 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/EmuTimer.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/EmuTimer.cs
@@ -1,7 +1,6 @@
 using cpu.m6800;
 using System;
 using System.Collections.Generic;
-using System.IO;
 
 namespace MAME.Core
 {
@@ -642,7 +641,7 @@ namespace MAME.Core
         {
             return Attotime.attotime_sub(which.expire, get_current_time());
         }
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i, i1, n;
             n = lt.Count;
@@ -673,7 +672,7 @@ namespace MAME.Core
                 writer.Write((long)0);
             }
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i, i1, n;
             n = reader.ReadInt32();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Machine.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Machine.cs
index 04fe593a..2d69d6b1 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Machine.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Machine.cs
@@ -1,5 +1,4 @@
 using System.Collections.Generic;
-using System.IO;
 
 namespace MAME.Core
 {
@@ -264,10 +263,12 @@ namespace MAME.Core
         {
             byte[] bb1;
             string path = System.IO.Path.Combine(Mame.RomRoot + "/neogeo/", sFile);
-            if (File.Exists(path))
+            //if (File.Exists(path))
+            if (MameMainMotion.IoSupport.File_Exists(path))
             {
                 EmuLogger.Log($"Had File => {path}");
-                return File.ReadAllBytes(path);
+                //return File.ReadAllBytes(path);
+                return MameMainMotion.IoSupport.File_ReadAllBytes(path);
                 //FileStream fs1 = new FileStream(path, FileMode.Open);
                 //int n1 = (int)fs1.Length;
                 //bb1 = new byte[n1];
@@ -286,10 +287,10 @@ namespace MAME.Core
             foreach (string s1 in lsParents)
             {
                 string path = System.IO.Path.Combine(Mame.RomRoot + "/" + s1 + "/", sFile);
-                if (File.Exists(path))
+                if (MameMainMotion.IoSupport.File_Exists(path))
                 {
                     EmuLogger.Log($"Had File => {path}");
-                    return File.ReadAllBytes(path);
+                    return MameMainMotion.IoSupport.File_ReadAllBytes(path);
                 }
                 else
                 {
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Mame.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Mame.cs
index 93f050b7..59c7968e 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Mame.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Mame.cs
@@ -1,6 +1,4 @@
-using MAME.Core;
-using System.IO;
-
+
 namespace MAME.Core
 {
     public class Mame
@@ -23,8 +21,8 @@ namespace MAME.Core
         public static bool paused;
         public static bool exit_pending;
         public static EmuTimer.emu_timer soft_reset_timer;
-        public static BinaryReader brRecord = null;
-        public static BinaryWriter bwRecord = null;
+        public static System.IO.BinaryReader brRecord = null;
+        public static System.IO.BinaryWriter bwRecord = null;
         public static bool bPP = true;
         public static string RomRoot = string.Empty;
         public class AA
@@ -42,7 +40,6 @@ namespace MAME.Core
             new AA(6547,"2"),
             new AA(13955,"3")
         };
-        private static FileStream fsRecord = null;
 
         public static void mame_execute()
         {
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Memory.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Memory.cs
index 22fac013..181c3d78 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Memory.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Memory.cs
@@ -1,6 +1,5 @@
 using System;
 using System.Collections.Generic;
-using System.IO;
 using System.Runtime.InteropServices;
 
 namespace MAME.Core
@@ -488,26 +487,26 @@ namespace MAME.Core
         }
         #endregion
 
-        public static void Write(this BinaryWriter bw, byte* bufferPtr, int offset, int count)
+        public static void Write(this System.IO.BinaryWriter bw, byte* bufferPtr, int offset, int count)
         {
             int singlesize = sizeof(byte);
             long totalBytesToCopy = count * singlesize;
             Buffer.MemoryCopy(&bufferPtr[offset], TempBuffer, totalBytesToCopy, totalBytesToCopy);
             bw.Write(TempBuffer_src, 0, count);
         }
-        public static void Write(this FileStream fs, byte* bufferPtr, int offset, int count)
-        {
-            int singlesize = sizeof(byte);
-            long totalBytesToCopy = count * singlesize;
-            Buffer.MemoryCopy(&bufferPtr[offset], TempBuffer, totalBytesToCopy, totalBytesToCopy);
-            fs.Write(TempBuffer_src, 0, count);
-        }
-        public static int Read(this FileStream fs, byte* bufferPtr, int offset, int count)
-        {
-            count = fs.Read(TempBuffer_src, offset, count);
-            Buffer.MemoryCopy(TempBuffer, bufferPtr + offset, 0, count);
-            return count;
-        }
+        //public static void Write(this FileStream fs, byte* bufferPtr, int offset, int count)
+        //{
+        //    int singlesize = sizeof(byte);
+        //    long totalBytesToCopy = count * singlesize;
+        //    Buffer.MemoryCopy(&bufferPtr[offset], TempBuffer, totalBytesToCopy, totalBytesToCopy);
+        //    fs.Write(TempBuffer_src, 0, count);
+        //}
+        //public static int Read(this FileStream fs, byte* bufferPtr, int offset, int count)
+        //{
+        //    count = fs.Read(TempBuffer_src, offset, count);
+        //    Buffer.MemoryCopy(TempBuffer, bufferPtr + offset, 0, count);
+        //    return count;
+        //}
     }
 
     public unsafe static class AxiArray
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Pd4900a.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Pd4900a.cs
index 5e6b23f7..5979aace 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Pd4900a.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Pd4900a.cs
@@ -1,6 +1,4 @@
-using System.IO;
-
-namespace MAME.Core
+namespace MAME.Core
 {
     public class Pd4900a
     {
@@ -312,7 +310,7 @@ namespace MAME.Core
         {
             pd4990a_serial_control((byte)(data & 0x7));
         }
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             writer.Write(pd4990a.seconds);
             writer.Write(pd4990a.minutes);
@@ -334,7 +332,7 @@ namespace MAME.Core
             writer.Write(clock_line);
             writer.Write(command_line);
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             pd4990a.seconds = reader.ReadInt32();
             pd4990a.minutes = reader.ReadInt32();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/State.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/State.cs
index 2f9421f3..4ae97f34 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/State.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/State.cs
@@ -1,11 +1,9 @@
-using System.IO;
-
-namespace MAME.Core
+namespace MAME.Core
 {
     public class State
     {
-        public delegate void savestate_delegate(BinaryWriter sw);
-        public delegate void loadstate_delegate(BinaryReader sr);
+        public delegate void savestate_delegate(System.IO.BinaryWriter sw);
+        public delegate void loadstate_delegate(System.IO.BinaryReader sr);
         public static savestate_delegate savestate_callback;
         public static loadstate_delegate loadstate_callback;
         public static void state_init()
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Video.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Video.cs
index 9397fb74..213d69cc 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Video.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/emu/Video.cs
@@ -1,6 +1,4 @@
-using MAME.Core;
-using System;
-using System.IO;
+using System;
 using System.Runtime.InteropServices;
 
 namespace MAME.Core
@@ -1102,7 +1100,7 @@ namespace MAME.Core
         {
             return flip_screen_x;
         }
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             writer.Write(scanline_param);
             writer.Write(screenstate.last_partial_scan);
@@ -1112,7 +1110,7 @@ namespace MAME.Core
             writer.Write(screenstate.vblank_end_time.attoseconds);
             writer.Write(screenstate.frame_number);
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             scanline_param = reader.ReadInt32();
             screenstate.last_partial_scan = reader.ReadInt32();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/capcom/State.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/capcom/State.cs
index abc791cc..89e23574 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/capcom/State.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/capcom/State.cs
@@ -1,13 +1,12 @@
 using cpu.m68000;
 using cpu.m6809;
 using cpu.z80;
-using System.IO;
 
 namespace MAME.Core
 {
     public unsafe partial class Capcom
     {
-        public static void SaveStateBinary_gng(BinaryWriter writer)
+        public static void SaveStateBinary_gng(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(bytedsw1);
@@ -53,7 +52,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_sampindex);
             writer.Write(Sound.mixerstream.output_base_sampindex);
         }
-        public static void LoadStateBinary_gng(BinaryReader reader)
+        public static void LoadStateBinary_gng(System.IO.BinaryReader reader)
         {
             int i;
             bytedsw1 = reader.ReadByte();
@@ -99,7 +98,7 @@ namespace MAME.Core
             Sound.mixerstream.output_sampindex = reader.ReadInt32();
             Sound.mixerstream.output_base_sampindex = reader.ReadInt32();
         }
-        public static void SaveStateBinary_sf(BinaryWriter writer)
+        public static void SaveStateBinary_sf(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(dsw1);
@@ -148,7 +147,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_sampindex);
             writer.Write(Sound.mixerstream.output_base_sampindex);
         }
-        public static void LoadStateBinary_sf(BinaryReader reader)
+        public static void LoadStateBinary_sf(System.IO.BinaryReader reader)
         {
             int i;
             dsw1 = reader.ReadUInt16();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/cps/State.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/cps/State.cs
index aac07b5b..fab07fd9 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/cps/State.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/cps/State.cs
@@ -1,12 +1,11 @@
 using cpu.m68000;
 using cpu.z80;
-using System.IO;
 
 namespace MAME.Core
 {
     public unsafe partial class CPS
     {
-        public static void SaveStateBinaryC(BinaryWriter writer)
+        public static void SaveStateBinaryC(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(dswa);
@@ -76,7 +75,7 @@ namespace MAME.Core
                     break;
             }
         }
-        public static void SaveStateBinaryQ(BinaryWriter writer)
+        public static void SaveStateBinaryQ(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(dswa);
@@ -126,7 +125,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_base_sampindex);
             Eeprom.SaveStateBinary(writer);
         }
-        public static void SaveStateBinaryC2(BinaryWriter writer)
+        public static void SaveStateBinaryC2(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(basebanksnd);
@@ -191,7 +190,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_base_sampindex);
             Eeprom.SaveStateBinary(writer);
         }
-        public static void LoadStateBinaryC(BinaryReader reader)
+        public static void LoadStateBinaryC(System.IO.BinaryReader reader)
         {
             int i;
             dswa = reader.ReadByte();
@@ -261,7 +260,7 @@ namespace MAME.Core
                     break;
             }
         }
-        public static void LoadStateBinaryQ(BinaryReader reader)
+        public static void LoadStateBinaryQ(System.IO.BinaryReader reader)
         {
             int i;
             dswa = reader.ReadByte();
@@ -309,7 +308,7 @@ namespace MAME.Core
             Sound.mixerstream.output_base_sampindex = reader.ReadInt32();
             Eeprom.LoadStateBinary(reader);
         }
-        public static void LoadStateBinaryC2(BinaryReader reader)
+        public static void LoadStateBinaryC2(System.IO.BinaryReader reader)
         {
             int i;
             basebanksnd = reader.ReadInt32();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/dataeast/State.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/dataeast/State.cs
index fca5115c..89c31988 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/dataeast/State.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/dataeast/State.cs
@@ -1,11 +1,10 @@
 using cpu.m6502;
-using System.IO;
 
 namespace MAME.Core
 {
     public unsafe partial class Dataeast
     {
-        public static void SaveStateBinary_pcktgal(BinaryWriter writer)
+        public static void SaveStateBinary_pcktgal(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(dsw);
@@ -48,7 +47,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_sampindex);
             writer.Write(Sound.mixerstream.output_base_sampindex);
         }
-        public static void LoadStateBinary_pcktgal(BinaryReader reader)
+        public static void LoadStateBinary_pcktgal(System.IO.BinaryReader reader)
         {
             int i;
             dsw = reader.ReadByte();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/igs011/State.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/igs011/State.cs
index 2519ab89..5d9bd380 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/igs011/State.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/igs011/State.cs
@@ -1,11 +1,10 @@
 using cpu.m68000;
-using System.IO;
 
 namespace MAME.Core
 {
     public unsafe partial class IGS011
     {
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i, j;
             for (i = 0; i < 0x800; i++)
@@ -74,7 +73,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_sampindex);
             writer.Write(Sound.mixerstream.output_base_sampindex);
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i, j;
             for (i = 0; i < 0x800; i++)
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/konami68000/Konamiic.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/konami68000/Konamiic.cs
index 945d3368..c2de2ddf 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/konami68000/Konamiic.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/konami68000/Konamiic.cs
@@ -1,6 +1,4 @@
-using System.IO;
-
-namespace MAME.Core
+namespace MAME.Core
 {
     public unsafe partial class Konami68000
     {
@@ -409,7 +407,7 @@ namespace MAME.Core
         {
             return K052109_irq_enabled;
         }
-        public static void SaveStateBinary_K052109(BinaryWriter writer)
+        public static void SaveStateBinary_K052109(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(K052109_ram, 0, 0x6000);
@@ -430,7 +428,7 @@ namespace MAME.Core
             writer.Write(has_extra_video_ram);
             writer.Write(K052109_tileflip_enable);
         }
-        public static void LoadStateBinary_K052109(BinaryReader reader)
+        public static void LoadStateBinary_K052109(System.IO.BinaryReader reader)
         {
             int i;
             K052109_ram = reader.ReadBytes(0x6000);
@@ -451,7 +449,7 @@ namespace MAME.Core
             has_extra_video_ram = reader.ReadByte();
             K052109_tileflip_enable = reader.ReadInt32();
         }
-        public static void LoadStateBinary_K052109_2(BinaryReader reader)
+        public static void LoadStateBinary_K052109_2(System.IO.BinaryReader reader)
         {
             int i;
             reader.ReadBytes(0x6000);
@@ -722,7 +720,7 @@ namespace MAME.Core
                 }
             }
         }
-        public static void SaveStateBinary_K051960(BinaryWriter writer)
+        public static void SaveStateBinary_K051960(System.IO.BinaryWriter writer)
         {
             writer.Write(K051960_romoffset);
             writer.Write(K051960_spriteflip);
@@ -734,7 +732,7 @@ namespace MAME.Core
             writer.Write(K051960_irq_enabled);
             writer.Write(K051960_nmi_enabled);
         }
-        public static void LoadStateBinary_K051960(BinaryReader reader)
+        public static void LoadStateBinary_K051960(System.IO.BinaryReader reader)
         {
             K051960_romoffset = reader.ReadInt32();
             K051960_spriteflip = reader.ReadInt32();
@@ -746,7 +744,7 @@ namespace MAME.Core
             K051960_irq_enabled = reader.ReadInt32();
             K051960_nmi_enabled = reader.ReadInt32();
         }
-        public static void LoadStateBinary_K051960_2(BinaryReader reader)
+        public static void LoadStateBinary_K051960_2(System.IO.BinaryReader reader)
         {
             reader.ReadInt32();
             reader.ReadInt32();
@@ -1080,7 +1078,7 @@ namespace MAME.Core
                 }
             }
         }
-        public static void SaveStateBinary_K053245(BinaryWriter writer)
+        public static void SaveStateBinary_K053245(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(K05324x_z_rejection);
@@ -1104,7 +1102,7 @@ namespace MAME.Core
             writer.Write(K053244_regs[0], 0, 0x10);
             writer.Write(K054000_ram, 0, 0x20);
         }
-        public static void LoadStateBinary_K053245(BinaryReader reader)
+        public static void LoadStateBinary_K053245(System.IO.BinaryReader reader)
         {
             int i;
             K05324x_z_rejection = reader.ReadInt32();
@@ -1228,7 +1226,7 @@ namespace MAME.Core
             K053936_offset[chip][0] = xoffs;
             K053936_offset[chip][1] = yoffs;
         }
-        public static void SaveStateBinary_K053936(BinaryWriter writer)
+        public static void SaveStateBinary_K053936(System.IO.BinaryWriter writer)
         {
             int i, j;
             for (i = 0; i < 0x10; i++)
@@ -1251,7 +1249,7 @@ namespace MAME.Core
                 writer.Write(K053936_wraparound[i]);
             }
         }
-        public static void LoadStateBinary_K053936(BinaryReader reader)
+        public static void LoadStateBinary_K053936(System.IO.BinaryReader reader)
         {
             int i, j;
             for (i = 0; i < 0x10; i++)
@@ -1373,7 +1371,7 @@ namespace MAME.Core
         {
             return K053251_palette_index[ci];
         }
-        public static void SaveStateBinary_K053251(BinaryWriter writer)
+        public static void SaveStateBinary_K053251(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(K053251_ram);
@@ -1383,7 +1381,7 @@ namespace MAME.Core
             }
             writer.Write(K053251_tilemaps_set);
         }
-        public static void LoadStateBinary_K053251(BinaryReader reader)
+        public static void LoadStateBinary_K053251(System.IO.BinaryReader reader)
         {
             int i;
             K053251_ram = reader.ReadBytes(0x10);
@@ -1393,7 +1391,7 @@ namespace MAME.Core
             }
             K053251_tilemaps_set = reader.ReadInt32();
         }
-        public static void LoadStateBinary_K053251_2(BinaryReader reader)
+        public static void LoadStateBinary_K053251_2(System.IO.BinaryReader reader)
         {
             int i;
             reader.ReadBytes(0x10);
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/konami68000/State.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/konami68000/State.cs
index 309a56b1..86ab9086 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/konami68000/State.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/konami68000/State.cs
@@ -1,12 +1,11 @@
 using cpu.m68000;
 using cpu.z80;
-using System.IO;
 
 namespace MAME.Core
 {
     public unsafe partial class Konami68000
     {
-        public static void SaveStateBinary_cuebrick(BinaryWriter writer)
+        public static void SaveStateBinary_cuebrick(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(dsw1);
@@ -62,7 +61,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_sampindex);
             writer.Write(Sound.mixerstream.output_base_sampindex);
         }
-        public static void LoadStateBinary_cuebrick(BinaryReader reader)
+        public static void LoadStateBinary_cuebrick(System.IO.BinaryReader reader)
         {
             int i;
             dsw1 = reader.ReadByte();
@@ -118,7 +117,7 @@ namespace MAME.Core
             Sound.mixerstream.output_sampindex = reader.ReadInt32();
             Sound.mixerstream.output_base_sampindex = reader.ReadInt32();
         }
-        public static void SaveStateBinary_mia(BinaryWriter writer)
+        public static void SaveStateBinary_mia(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(dsw1);
@@ -180,7 +179,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_sampindex);
             writer.Write(Sound.mixerstream.output_base_sampindex);
         }
-        public static void LoadStateBinary_mia(BinaryReader reader)
+        public static void LoadStateBinary_mia(System.IO.BinaryReader reader)
         {
             int i;
             dsw1 = reader.ReadByte();
@@ -242,7 +241,7 @@ namespace MAME.Core
             Sound.mixerstream.output_sampindex = reader.ReadInt32();
             Sound.mixerstream.output_base_sampindex = reader.ReadInt32();
         }
-        public static void SaveStateBinary_tmnt(BinaryWriter writer)
+        public static void SaveStateBinary_tmnt(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(dsw1);
@@ -314,7 +313,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_sampindex);
             writer.Write(Sound.mixerstream.output_base_sampindex);
         }
-        public static void LoadStateBinary_tmnt(BinaryReader reader)
+        public static void LoadStateBinary_tmnt(System.IO.BinaryReader reader)
         {
             int i;
             dsw1 = reader.ReadByte();
@@ -386,7 +385,7 @@ namespace MAME.Core
             Sound.mixerstream.output_sampindex = reader.ReadInt32();
             Sound.mixerstream.output_base_sampindex = reader.ReadInt32();
         }
-        public static void SaveStateBinary_punkshot(BinaryWriter writer)
+        public static void SaveStateBinary_punkshot(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(dsw1);
@@ -439,7 +438,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_sampindex);
             writer.Write(Sound.mixerstream.output_base_sampindex);
         }
-        public static void LoadStateBinary_punkshot(BinaryReader reader)
+        public static void LoadStateBinary_punkshot(System.IO.BinaryReader reader)
         {
             int i;
             dsw1 = reader.ReadByte();
@@ -492,7 +491,7 @@ namespace MAME.Core
             Sound.mixerstream.output_sampindex = reader.ReadInt32();
             Sound.mixerstream.output_base_sampindex = reader.ReadInt32();
         }
-        public static void SaveStateBinary_lgtnfght(BinaryWriter writer)
+        public static void SaveStateBinary_lgtnfght(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(dsw1);
@@ -545,7 +544,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_sampindex);
             writer.Write(Sound.mixerstream.output_base_sampindex);
         }
-        public static void LoadStateBinary_lgtnfght(BinaryReader reader)
+        public static void LoadStateBinary_lgtnfght(System.IO.BinaryReader reader)
         {
             int i;
             dsw1 = reader.ReadByte();
@@ -598,7 +597,7 @@ namespace MAME.Core
             Sound.mixerstream.output_sampindex = reader.ReadInt32();
             Sound.mixerstream.output_base_sampindex = reader.ReadInt32();
         }
-        public static void SaveStateBinary_blswhstl(BinaryWriter writer)
+        public static void SaveStateBinary_blswhstl(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(bytee);
@@ -650,7 +649,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_base_sampindex);
             Eeprom.SaveStateBinary(writer);
         }
-        public static void LoadStateBinary_blswhstl(BinaryReader reader)
+        public static void LoadStateBinary_blswhstl(System.IO.BinaryReader reader)
         {
             int i;
             bytee = reader.ReadByte();
@@ -702,7 +701,7 @@ namespace MAME.Core
             Sound.mixerstream.output_base_sampindex = reader.ReadInt32();
             Eeprom.LoadStateBinary(reader);
         }
-        public static void SaveStateBinary_glfgreat(BinaryWriter writer)
+        public static void SaveStateBinary_glfgreat(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(dsw1);
@@ -753,7 +752,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_sampindex);
             writer.Write(Sound.mixerstream.output_base_sampindex);
         }
-        public static void LoadStateBinary_glfgreat(BinaryReader reader)
+        public static void LoadStateBinary_glfgreat(System.IO.BinaryReader reader)
         {
             int i;
             dsw1 = reader.ReadByte();
@@ -804,7 +803,7 @@ namespace MAME.Core
             Sound.mixerstream.output_sampindex = reader.ReadInt32();
             Sound.mixerstream.output_base_sampindex = reader.ReadInt32();
         }
-        public static void SaveStateBinary_tmnt2(BinaryWriter writer)
+        public static void SaveStateBinary_tmnt2(System.IO.BinaryWriter writer)
         {
             int i;
             for (i = 0; i < 0x10; i++)
@@ -860,7 +859,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_base_sampindex);
             Eeprom.SaveStateBinary(writer);
         }
-        public static void LoadStateBinary_tmnt2(BinaryReader reader)
+        public static void LoadStateBinary_tmnt2(System.IO.BinaryReader reader)
         {
             int i;
             for (i = 0; i < 0x10; i++)
@@ -916,7 +915,7 @@ namespace MAME.Core
             Sound.mixerstream.output_base_sampindex = reader.ReadInt32();
             Eeprom.LoadStateBinary(reader);
         }
-        public static void SaveStateBinary_ssriders(BinaryWriter writer)
+        public static void SaveStateBinary_ssriders(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(init_eeprom_count);
@@ -968,7 +967,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_base_sampindex);
             Eeprom.SaveStateBinary(writer);
         }
-        public static void LoadStateBinary_ssriders(BinaryReader reader)
+        public static void LoadStateBinary_ssriders(System.IO.BinaryReader reader)
         {
             int i;
             init_eeprom_count = reader.ReadInt32();
@@ -1020,7 +1019,7 @@ namespace MAME.Core
             Sound.mixerstream.output_base_sampindex = reader.ReadInt32();
             Eeprom.LoadStateBinary(reader);
         }
-        public static void SaveStateBinary_thndrx2(BinaryWriter writer)
+        public static void SaveStateBinary_thndrx2(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(bytee);
@@ -1072,7 +1071,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_base_sampindex);
             Eeprom.SaveStateBinary(writer);
         }
-        public static void LoadStateBinary_thndrx2(BinaryReader reader)
+        public static void LoadStateBinary_thndrx2(System.IO.BinaryReader reader)
         {
             int i;
             bytee = reader.ReadByte();
@@ -1124,7 +1123,7 @@ namespace MAME.Core
             Sound.mixerstream.output_base_sampindex = reader.ReadInt32();
             Eeprom.LoadStateBinary(reader);
         }
-        public static void SaveStateBinary_prmrsocr(BinaryWriter writer)
+        public static void SaveStateBinary_prmrsocr(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(basebanksnd);
@@ -1182,7 +1181,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_base_sampindex);
             Eeprom.SaveStateBinary(writer);
         }
-        public static void LoadStateBinary_prmrsocr(BinaryReader reader)
+        public static void LoadStateBinary_prmrsocr(System.IO.BinaryReader reader)
         {
             int i;
             basebanksnd = reader.ReadInt32();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/m72/State.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/m72/State.cs
index 87a6d9b7..41f394af 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/m72/State.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/m72/State.cs
@@ -1,12 +1,11 @@
 using cpu.nec;
 using cpu.z80;
-using System.IO;
 
 namespace MAME.Core
 {
     public unsafe partial class M72
     {
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(dsw);
@@ -68,7 +67,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_sampindex);
             writer.Write(Sound.mixerstream.output_base_sampindex);
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i;
             dsw = reader.ReadUInt16();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/m92/State.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/m92/State.cs
index 1b705cd5..9156692a 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/m92/State.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/m92/State.cs
@@ -1,11 +1,10 @@
 using cpu.nec;
-using System.IO;
 
 namespace MAME.Core
 {
     public unsafe partial class M92
     {
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i, j;
             writer.Write(dsw);
@@ -82,7 +81,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_sampindex);
             writer.Write(Sound.mixerstream.output_base_sampindex);
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i, j;
             dsw = reader.ReadUInt16();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/namcos1/State.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/namcos1/State.cs
index e708ee12..13b68d7f 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/namcos1/State.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/namcos1/State.cs
@@ -1,12 +1,11 @@
 using cpu.m6800;
 using cpu.m6809;
-using System.IO;
 
 namespace MAME.Core
 {
     public unsafe partial class Namcos1
     {
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i, j;
             writer.Write(dipsw);
@@ -73,7 +72,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_sampindex);
             writer.Write(Sound.mixerstream.output_base_sampindex);
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i, j;
             dipsw = reader.ReadByte();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/neogeo/Neogeo.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/neogeo/Neogeo.cs
index a68c0eeb..7e2f6854 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/neogeo/Neogeo.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/neogeo/Neogeo.cs
@@ -1,5 +1,4 @@
 using System;
-using System.IO;
 using System.Runtime.InteropServices;
 
 namespace MAME.Core
@@ -376,19 +375,27 @@ namespace MAME.Core
 
         public static void nvram_handler_load_neogeo()
         {
-            if (File.Exists("nvram\\" + Machine.sName + ".nv"))
+            if (MameMainMotion.IoSupport.File_Exists("nvram\\" + Machine.sName + ".nv"))
             {
-                FileStream fs1 = new FileStream("nvram\\" + Machine.sName + ".nv", FileMode.Open);
-                int n = (int)fs1.Length;
-                fs1.Read(mainram2, 0, n);
-                fs1.Close();
+                MameMainMotion.IoSupport.File_ReadAllBytes("nvram\\" + Machine.sName + ".nv");
+                //FileStream fs1 = new FileStream("nvram\\" + Machine.sName + ".nv", FileMode.Open);
+                //int n = (int)fs1.Length;
+                //fs1.Read(mainram2, 0, n);
+                //fs1.Close();
             }
         }
         public static void nvram_handler_save_neogeo()
         {
-            FileStream fs1 = new FileStream("nvram\\" + Machine.sName + ".nv", FileMode.Create);
-            fs1.Write(mainram2, 0, 0x2000);
-            fs1.Close();
+            //FileStream fs1 = new FileStream("nvram\\" + Machine.sName + ".nv", FileMode.Create);
+            //fs1.Write(mainram2, 0, 0x2000);
+            //fs1.Close();
+
+            byte[] temp = new byte[0x2000];
+            Buffer.BlockCopy(mainram2_src, 0, temp, 0, temp.Length);
+            using (System.IO.MemoryStream ms = new System.IO.MemoryStream(temp))
+            { 
+                MameMainMotion.IoSupport.File_WriteAllBytesFromStre("nvram\\" + Machine.sName + ".nv",ms);
+            }
         }
         public static void machine_reset_neogeo()
         {
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/neogeo/State.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/neogeo/State.cs
index 0a432c1b..a7b777b1 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/neogeo/State.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/neogeo/State.cs
@@ -1,12 +1,11 @@
 using cpu.m68000;
 using cpu.z80;
-using System.IO;
 
 namespace MAME.Core
 {
     public unsafe partial class Neogeo
     {
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i, j;
             writer.Write(dsw);
@@ -77,7 +76,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_base_sampindex);
             Pd4900a.SaveStateBinary(writer);
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i, j;
             dsw = reader.ReadByte();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/pgm/State.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/pgm/State.cs
index 364a28e5..ec6f9c51 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/pgm/State.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/pgm/State.cs
@@ -1,12 +1,11 @@
 using cpu.m68000;
 using cpu.z80;
-using System.IO;
 
 namespace MAME.Core
 {
     public unsafe partial class PGM
     {
-        public unsafe static void SaveStateBinary(BinaryWriter writer)
+        public unsafe static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i, j;
             writer.Write(pgm_tx_videoram, 0, 0x2000);
@@ -58,7 +57,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_sampindex);
             writer.Write(Sound.mixerstream.output_base_sampindex);
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i, j;
             pgm_tx_videoram = reader.ReadBytes(0x2000);
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/suna8/State.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/suna8/State.cs
index f5e3567a..6c682ac9 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/suna8/State.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/suna8/State.cs
@@ -1,14 +1,12 @@
-using System.IO;
-
-namespace MAME.Core
+namespace MAME.Core
 {
     public partial class SunA8
     {
-        public static void SaveStateBinary_starfigh(BinaryWriter writer)
+        public static void SaveStateBinary_starfigh(System.IO.BinaryWriter writer)
         {
 
         }
-        public static void LoadStateBinary_starfigh(BinaryReader reader)
+        public static void LoadStateBinary_starfigh(System.IO.BinaryReader reader)
         {
 
         }
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/taito/State.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/taito/State.cs
index ec339a3a..5ed80d23 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/taito/State.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/taito/State.cs
@@ -2,13 +2,12 @@
 using cpu.m68000;
 using cpu.m6805;
 using cpu.z80;
-using System.IO;
 
 namespace MAME.Core
 {
     public unsafe partial class Taito
     {
-        public static void SaveStateBinary_tokio(BinaryWriter writer)
+        public static void SaveStateBinary_tokio(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(dsw0);
@@ -57,7 +56,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_sampindex);
             writer.Write(Sound.mixerstream.output_base_sampindex);
         }
-        public static void LoadStateBinary_tokio(BinaryReader reader)
+        public static void LoadStateBinary_tokio(System.IO.BinaryReader reader)
         {
             int i;
             dsw0 = reader.ReadByte();
@@ -106,7 +105,7 @@ namespace MAME.Core
             Sound.mixerstream.output_sampindex = reader.ReadInt32();
             Sound.mixerstream.output_base_sampindex = reader.ReadInt32();
         }
-        public static void SaveStateBinary_bublbobl(BinaryWriter writer)
+        public static void SaveStateBinary_bublbobl(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(dsw0);
@@ -170,7 +169,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_sampindex);
             writer.Write(Sound.mixerstream.output_base_sampindex);
         }
-        public static void LoadStateBinary_bublbobl(BinaryReader reader)
+        public static void LoadStateBinary_bublbobl(System.IO.BinaryReader reader)
         {
             int i;
             dsw0 = reader.ReadByte();
@@ -234,7 +233,7 @@ namespace MAME.Core
             Sound.mixerstream.output_sampindex = reader.ReadInt32();
             Sound.mixerstream.output_base_sampindex = reader.ReadInt32();
         }
-        public static void SaveStateBinary_boblbobl(BinaryWriter writer)
+        public static void SaveStateBinary_boblbobl(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(dsw0);
@@ -288,7 +287,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_sampindex);
             writer.Write(Sound.mixerstream.output_base_sampindex);
         }
-        public static void LoadStateBinary_boblbobl(BinaryReader reader)
+        public static void LoadStateBinary_boblbobl(System.IO.BinaryReader reader)
         {
             int i;
             dsw0 = reader.ReadByte();
@@ -341,7 +340,7 @@ namespace MAME.Core
             Sound.mixerstream.output_sampindex = reader.ReadInt32();
             Sound.mixerstream.output_base_sampindex = reader.ReadInt32();
         }
-        public static void SaveStateBinary_bub68705(BinaryWriter writer)
+        public static void SaveStateBinary_bub68705(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(dsw0);
@@ -399,7 +398,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_sampindex);
             writer.Write(Sound.mixerstream.output_base_sampindex);
         }
-        public static void LoadStateBinary_bub68705(BinaryReader reader)
+        public static void LoadStateBinary_bub68705(System.IO.BinaryReader reader)
         {
             int i;
             dsw0 = reader.ReadByte();
@@ -457,7 +456,7 @@ namespace MAME.Core
             Sound.mixerstream.output_sampindex = reader.ReadInt32();
             Sound.mixerstream.output_base_sampindex = reader.ReadInt32();
         }
-        public static void SaveStateBinary_opwolf(BinaryWriter writer)
+        public static void SaveStateBinary_opwolf(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(dswa);
@@ -594,7 +593,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_sampindex);
             writer.Write(Sound.mixerstream.output_base_sampindex);
         }
-        public static void LoadStateBinary_opwolf(BinaryReader reader)
+        public static void LoadStateBinary_opwolf(System.IO.BinaryReader reader)
         {
             int i;
             dswa = reader.ReadByte();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/taitob/State.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/taitob/State.cs
index 6b8618f4..6b288a17 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/taitob/State.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/taitob/State.cs
@@ -1,13 +1,11 @@
 using cpu.m68000;
 using cpu.z80;
-using System;
-using System.IO;
 
 namespace MAME.Core
 {
     public unsafe partial class Taitob
     {
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             //pixel_scroll
             int i;
@@ -97,7 +95,7 @@ namespace MAME.Core
             Eeprom.SaveStateBinary(writer);
             Taitosnd.SaveStateBinary(writer);
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i;
             dswa = reader.ReadByte();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/tehkan/State.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/tehkan/State.cs
index 90d06e6f..1fd321ca 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/tehkan/State.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/mame/tehkan/State.cs
@@ -1,11 +1,10 @@
 using cpu.z80;
-using System.IO;
 
 namespace MAME.Core
 {
     public partial class Tehkan
     {
-        public unsafe static void SaveStateBinary_pbaction(BinaryWriter writer)
+        public unsafe static void SaveStateBinary_pbaction(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(dsw1);
@@ -46,7 +45,7 @@ namespace MAME.Core
             writer.Write(Sound.mixerstream.output_sampindex);
             writer.Write(Sound.mixerstream.output_base_sampindex);
         }
-        public static void LoadStateBinary_pbaction(BinaryReader reader)
+        public static void LoadStateBinary_pbaction(System.IO.BinaryReader reader)
         {
             int i;
             dsw1 = reader.ReadByte();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/run_interface/IMAMEIOSupport.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/run_interface/IMAMEIOSupport.cs
new file mode 100644
index 00000000..1a354f9b
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/run_interface/IMAMEIOSupport.cs
@@ -0,0 +1,11 @@
+using System.IO;
+
+namespace MAME.Core
+{
+    public interface IMAMEIOSupport
+    {
+        bool File_Exists(string path);
+        byte[] File_ReadAllBytes(string path);
+        void File_WriteAllBytesFromStre(string path, MemoryStream ms);
+    }
+}
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/run_interface/IMAMEIOSupport.cs.meta b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/run_interface/IMAMEIOSupport.cs.meta
new file mode 100644
index 00000000..7a679114
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/run_interface/IMAMEIOSupport.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: da0b580f2a446f948a80085bb9b7b3ee
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/AY8910.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/AY8910.cs
index e9a33c16..2bb8a27e 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/AY8910.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/AY8910.cs
@@ -1,5 +1,4 @@
-using System.IO;
-
+
 namespace MAME.Core
 {
     public unsafe class AY8910
@@ -558,7 +557,7 @@ namespace MAME.Core
             }
             return ay8910info.regs[r];
         }
-        public void SaveStateBinary(BinaryWriter writer)
+        public void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(ay8910info.register_latch);
@@ -580,7 +579,7 @@ namespace MAME.Core
             writer.Write(ay8910info.rng);
             writer.Write(ay8910info.vol_enabled, 0, 3);
         }
-        public void LoadStateBinary(BinaryReader reader)
+        public void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i;
             ay8910info.register_latch = reader.ReadInt32();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/DAC.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/DAC.cs
index 86b1f393..62265db5 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/DAC.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/DAC.cs
@@ -1,5 +1,4 @@
-using System.IO;
-
+
 namespace MAME.Core
 {
     public class DAC
@@ -57,11 +56,11 @@ namespace MAME.Core
             DAC_build_voltable();
             dac1.output = 0;
         }
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             writer.Write(DAC.dac1.output);
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             dac1.output = reader.ReadInt16();
         }
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/ICS2115.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/ICS2115.cs
index 14bef485..24a806e1 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/ICS2115.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/ICS2115.cs
@@ -1,5 +1,4 @@
-using System.IO;
-
+
 namespace MAME.Core
 {
     public unsafe class ICS2115
@@ -415,7 +414,7 @@ namespace MAME.Core
             }
             recalc_irq();
         }
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i;
             for (i = 0; i < 32; i++)
@@ -449,7 +448,7 @@ namespace MAME.Core
             writer.Write(irq_pending);
             writer.Write(irq_on);
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i;
             for (i = 0; i < 32; i++)
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/Iremga20.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/Iremga20.cs
index 42305286..748d1cd1 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/Iremga20.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/Iremga20.cs
@@ -1,5 +1,4 @@
-using System.IO;
-
+
 namespace MAME.Core
 {
     public unsafe class Iremga20
@@ -162,7 +161,7 @@ namespace MAME.Core
                 chip.regs[i] = 0;
             }
         }
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i;
             for (i = 0; i < 4; i++)
@@ -179,7 +178,7 @@ namespace MAME.Core
                 writer.Write(chip.channel[i].play);
             }
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i;
             for (i = 0; i < 4; i++)
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/K007232.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/K007232.cs
index 93a043a5..f12f7c57 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/K007232.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/K007232.cs
@@ -1,5 +1,4 @@
-using System.IO;
-
+
 namespace MAME.Core
 {
     public unsafe class K007232
@@ -232,7 +231,7 @@ namespace MAME.Core
             info.bank[0] = (uint)(chABank << 17);
             info.bank[1] = (uint)(chBBank << 17);
         }
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i, j;
             for (i = 0; i < 2; i++)
@@ -271,7 +270,7 @@ namespace MAME.Core
                 writer.Write(info.pcmbuf_offset[i]);
             }
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i, j;
             for (i = 0; i < 2; i++)
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/K053260.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/K053260.cs
index c85f18ed..f4203e53 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/K053260.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/K053260.cs
@@ -1,5 +1,4 @@
-using System.IO;
-
+
 namespace MAME.Core
 {
     public unsafe class K053260
@@ -379,7 +378,7 @@ namespace MAME.Core
         {
             k053260_0_w(offset, data);
         }
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(ic1.mode);
@@ -402,7 +401,7 @@ namespace MAME.Core
                 writer.Write(ic1.channels[i].ppcm_data);
             }
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i;
             ic1.mode = reader.ReadInt32();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/K054539.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/K054539.cs
index eaa0862c..76470290 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/K054539.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/K054539.cs
@@ -1,5 +1,4 @@
 using System;
-using System.IO;
 
 namespace MAME.Core
 {
@@ -567,7 +566,7 @@ namespace MAME.Core
         {
             return k054539_r(0, offset);
         }
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i, j;
             for (i = 0; i < 8; i++)
@@ -596,7 +595,7 @@ namespace MAME.Core
             writer.Write(zoneflag);
             writer.Write(zonedata);
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i, j;
             for (i = 0; i < 8; i++)
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/MSM5205.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/MSM5205.cs
index 5d94b311..c2208f6d 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/MSM5205.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/MSM5205.cs
@@ -1,5 +1,4 @@
 using System;
-using System.IO;
 
 namespace MAME.Core
 {
@@ -254,7 +253,7 @@ namespace MAME.Core
                 mm1[num].voice.bitwidth = bitwidth;
             }
         }
-        public void SaveStateBinary(BinaryWriter writer)
+        public void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             writer.Write(voice.select);
             writer.Write(voice.index);
@@ -267,7 +266,7 @@ namespace MAME.Core
             writer.Write(voice.signal);
             writer.Write(voice.step);
         }
-        public void LoadStateBinary(BinaryReader reader)
+        public void LoadStateBinary(System.IO.BinaryReader reader)
         {
             voice.select = reader.ReadInt32();
             voice.index = reader.ReadInt32();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/Namco.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/Namco.cs
index f4c26dcb..15f39428 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/Namco.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/Namco.cs
@@ -1,5 +1,4 @@
-using System.IO;
-
+
 namespace MAME.Core
 {
     public unsafe class Namco
@@ -255,7 +254,7 @@ namespace MAME.Core
         {
             return namco_wavedata[offset];
         }
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i, j;
             writer.Write(nam1.num_voices);
@@ -282,7 +281,7 @@ namespace MAME.Core
             }
             writer.Write(namco_wavedata, 0, 0x400);
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i, j;
             nam1.num_voices = reader.ReadInt32();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/OKI6295.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/OKI6295.cs
index b3f31c39..4e31fd10 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/OKI6295.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/OKI6295.cs
@@ -1,5 +1,4 @@
 using System;
-using System.IO;
 
 namespace MAME.Core
 {
@@ -272,7 +271,7 @@ namespace MAME.Core
             //if (ACCESSING_BITS_0_7)
             okim6295_data_w(0, data & 0xff);
         }
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i;
             writer.Write(OKI.command);
@@ -288,7 +287,7 @@ namespace MAME.Core
                 writer.Write(adpcm[i].step);
             }
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i;
             OKI.command = reader.ReadInt32();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/QSound.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/QSound.cs
index 06870a8e..12a09523 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/QSound.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/QSound.cs
@@ -1,5 +1,4 @@
 using System;
-using System.IO;
 
 namespace MAME.Core
 {
@@ -195,7 +194,7 @@ namespace MAME.Core
                 }
             }
         }
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i;
             for (i = 0; i < 16; i++)
@@ -215,7 +214,7 @@ namespace MAME.Core
             }
             writer.Write(QChip.data);
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i;
             for (i = 0; i < 16; i++)
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/Sample.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/Sample.cs
index 641232ef..f09a551b 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/Sample.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/Sample.cs
@@ -1,5 +1,4 @@
 using System;
-using System.IO;
 using System.Runtime.InteropServices;
 
 namespace MAME.Core
@@ -186,7 +185,7 @@ namespace MAME.Core
                 info.starthandler();
             }
         }
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i;
             for (i = 0; i < info.numchannels; i++)
@@ -201,7 +200,7 @@ namespace MAME.Core
                 writer.Write(info.channel[i].paused);
             }
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i;
             for (i = 0; i < info.numchannels; i++)
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/Taitosnd.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/Taitosnd.cs
index 75bf5fd9..deaa6e9c 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/Taitosnd.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/Taitosnd.cs
@@ -1,5 +1,4 @@
-using System.IO;
-
+
 namespace MAME.Core
 {
     public class Taitosnd
@@ -201,7 +200,7 @@ namespace MAME.Core
         {
             return (ushort)(taitosound_comm_r(0) << 8);
         }
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             writer.Write(tc0140syt.slavedata, 0, 4);
             writer.Write(tc0140syt.masterdata, 0, 4);
@@ -211,7 +210,7 @@ namespace MAME.Core
             writer.Write(tc0140syt.nmi_enabled);
             writer.Write(tc0140syt.nmi_req);
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             tc0140syt.slavedata = reader.ReadBytes(4);
             tc0140syt.masterdata = reader.ReadBytes(4);
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/Upd7759.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/Upd7759.cs
index 153ecb09..2c9909d3 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/Upd7759.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/Upd7759.cs
@@ -1,5 +1,4 @@
-using System.IO;
-
+
 namespace MAME.Core
 {
     public unsafe class Upd7759
@@ -362,7 +361,7 @@ namespace MAME.Core
         {
             return (byte)upd7759_busy_r(0);
         }
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             writer.Write(chip.pos);
             writer.Write(chip.step);
@@ -389,7 +388,7 @@ namespace MAME.Core
             writer.Write(chip.romoffset);
             writer.Write(chip.rombase);
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             chip.pos = reader.ReadUInt32();
             chip.step = reader.ReadUInt32();
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/WavWrite.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/WavWrite.cs
index 92ae3115..e1afab9a 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/WavWrite.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/WavWrite.cs
@@ -1,16 +1,17 @@
-using System.IO;
+
+using System.IO;
 
 namespace MAME.Core
 {
     public class WavWrite
     {
-        public static FileStream mWaveFile = null;
-        private static BinaryWriter mWriter = null;
+        public static System.IO.FileStream mWaveFile = null;
+        private static System.IO.BinaryWriter mWriter = null;
         private static int mSampleCount = 0;
         public static void CreateSoundFile(string filename)
         {
             mWaveFile = new FileStream(filename, FileMode.Create);
-            mWriter = new BinaryWriter(mWaveFile);
+            mWriter = new System.IO.BinaryWriter(mWaveFile);
             /**************************************************************************
              Hereiswherethefilewillbecreated.A
              wavefileisaRIFFfile,whichhaschunks
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/YM2151.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/YM2151.cs
index ad395a83..be596e71 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/YM2151.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/YM2151.cs
@@ -1,5 +1,4 @@
 using System;
-using System.IO;
 
 namespace MAME.Core
 {
@@ -2038,7 +2037,7 @@ namespace MAME.Core
         //        chanout[imem[op1]] = PSG.oper[op1].mem_value;
         //    }
         //}
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i;
             for (i = 0; i < 32; i++)
@@ -2115,7 +2114,7 @@ namespace MAME.Core
             writer.Write(PSG.irqlinestate);
             writer.Write(PSG.connect);
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i;
             for (i = 0; i < 32; i++)
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/YM2203.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/YM2203.cs
index 7b1478b2..d5467b94 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/YM2203.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/YM2203.cs
@@ -1,5 +1,4 @@
-using System.IO;
-
+
 namespace MAME.Core
 {
     public unsafe class YM2203
@@ -339,7 +338,7 @@ namespace MAME.Core
                 }
             }
         }
-        public void SaveStateBinary(BinaryWriter writer)
+        public void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i, j;
             writer.Write(REGS, 0, 256);
@@ -435,7 +434,7 @@ namespace MAME.Core
             writer.Write(YMDeltat.DELTAT.adpcmd);
             writer.Write(YMDeltat.DELTAT.adpcml);
         }
-        public void LoadStateBinary(BinaryReader reader)
+        public void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i, j;
             REGS = reader.ReadBytes(256);
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/YM2610.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/YM2610.cs
index 607f7e59..105e499e 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/YM2610.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/YM2610.cs
@@ -1,5 +1,4 @@
-using System.IO;
-
+
 namespace MAME.Core
 {
     public unsafe class YM2610
@@ -654,7 +653,7 @@ namespace MAME.Core
         {
             adpcm_arrivedEndAddress &= (byte)(~changebits);
         }
-        public void SaveStateBinary(BinaryWriter writer)
+        public void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i, j;
             writer.Write(REGS, 0, 512);
@@ -771,7 +770,7 @@ namespace MAME.Core
             writer.Write(YMDeltat.DELTAT.adpcmd);
             writer.Write(YMDeltat.DELTAT.adpcml);
         }
-        public void LoadStateBinary(BinaryReader reader)
+        public void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i, j;
             REGS = reader.ReadBytes(512);
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/YM3812.cs b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/YM3812.cs
index 8611b4d9..658e5d6c 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/YM3812.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/Mame.Core/sound/YM3812.cs
@@ -1,5 +1,4 @@
-using System.IO;
-
+
 namespace MAME.Core
 {
     public class YM3812
@@ -85,7 +84,7 @@ namespace MAME.Core
         {
             FMOpl.ym3812_write(1, data);
         }
-        public static void SaveStateBinary(BinaryWriter writer)
+        public static void SaveStateBinary(System.IO.BinaryWriter writer)
         {
             int i, j;
             for (i = 0; i < 9; i++)
@@ -140,7 +139,7 @@ namespace MAME.Core
             writer.Write(FMOpl.YM3812.statusmask);
             writer.Write(FMOpl.YM3812.mode);
         }
-        public static void LoadStateBinary(BinaryReader reader)
+        public static void LoadStateBinary(System.IO.BinaryReader reader)
         {
             int i, j;
             for (i = 0; i < 9; i++)
@@ -268,7 +267,7 @@ namespace MAME.Core
         {
             return FMOpl.ym3526_read(1);
         }
-        public static void SaveStateBinary_YM3526(BinaryWriter writer)
+        public static void SaveStateBinary_YM3526(System.IO.BinaryWriter writer)
         {
             int i, j;
             for (i = 0; i < 9; i++)
@@ -323,7 +322,7 @@ namespace MAME.Core
             writer.Write(FMOpl.YM3526.statusmask);
             writer.Write(FMOpl.YM3526.mode);
         }
-        public static void LoadStateBinary_YM3526(BinaryReader reader)
+        public static void LoadStateBinary_YM3526(System.IO.BinaryReader reader)
         {
             int i, j;
             for (i = 0; i < 9; i++)
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/StoicGooseUnity/AxiMemory.cs b/AxibugEmuOnline.Client/Assets/Plugins/StoicGooseUnity/AxiMemory.cs
index b11d0a5b..839268b8 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/StoicGooseUnity/AxiMemory.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/StoicGooseUnity/AxiMemory.cs
@@ -1,6 +1,5 @@
 using System;
 using System.Collections.Generic;
-using System.IO;
 using System.Runtime.InteropServices;
 
 namespace StoicGooseUnity
@@ -95,21 +94,21 @@ namespace StoicGooseUnity
         }
         #endregion
 
-        public static void Write(this BinaryWriter bw, byte* bufferPtr, int offset, int count)
+        public static void Write(this System.IO.BinaryWriter bw, byte* bufferPtr, int offset, int count)
         {
             // 使用指针复制数据到临时数组
             Buffer.MemoryCopy(bufferPtr + offset, TempBuffer, 0, count);
             // 使用BinaryWriter写入临时数组
             bw.Write(TempBuffer_src, 0, count);
         }
-        public static void Write(this FileStream fs, byte* bufferPtr, int offset, int count)
+        public static void Write(this System.IO.FileStream fs, byte* bufferPtr, int offset, int count)
         {
             // 使用指针复制数据到临时数组
             Buffer.MemoryCopy(bufferPtr + offset, TempBuffer, 0, count);
             // 使用BinaryWriter写入临时数组
             fs.Write(TempBuffer_src, 0, count);
         }
-        public static int Read(this FileStream fs, byte* bufferPtr, int offset, int count)
+        public static int Read(this System.IO.FileStream fs, byte* bufferPtr, int offset, int count)
         {
             // 使用BinaryWriter写入临时数组
             count = fs.Read(TempBuffer_src, offset, count);
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/StoicGooseUnity/StoicGoose.Common/Drawing/RgbaFile.cs b/AxibugEmuOnline.Client/Assets/Plugins/StoicGooseUnity/StoicGoose.Common/Drawing/RgbaFile.cs
index 556a8098..3fb008f8 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/StoicGooseUnity/StoicGoose.Common/Drawing/RgbaFile.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/StoicGooseUnity/StoicGoose.Common/Drawing/RgbaFile.cs
@@ -1,5 +1,5 @@
 using System;
-using System.IO;
+//using System.IO;
 using System.Linq;
 
 namespace StoicGoose.Common.Drawing
@@ -10,46 +10,46 @@ namespace StoicGoose.Common.Drawing
 
 	public class RgbaFile
 	{
-		const string expectedMagic = "RGBA";
+		//const string expectedMagic = "RGBA";
 
-		public string MagicNumber { get; protected set; }
-		public uint Width { get; protected set; }
-		public uint Height { get; protected set; }
-		public byte[] PixelData { get; protected set; }
+		//public string MagicNumber { get; protected set; }
+		//public uint Width { get; protected set; }
+		//public uint Height { get; protected set; }
+		//public byte[] PixelData { get; protected set; }
 
-		public RgbaFile(string filename) : this(new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { }
+		//public RgbaFile(string filename) : this(new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { }
 
-		public RgbaFile(Stream stream)
-		{
-			MagicNumber = ReadString(stream, 4);
-			Width = ReadUInt32(stream);
-			Height = ReadUInt32(stream);
-			PixelData = new byte[Width * Height * 4];
-			stream.Read(PixelData);
-		}
+		//public RgbaFile(System.IO.Stream stream)
+		//{
+		//	MagicNumber = ReadString(stream, 4);
+		//	Width = ReadUInt32(stream);
+		//	Height = ReadUInt32(stream);
+		//	PixelData = new byte[Width * Height * 4];
+		//	stream.Read(PixelData);
+		//}
 
-		public RgbaFile(uint width, uint height, byte[] pixelData)
-		{
-			MagicNumber = expectedMagic;
-			Width = width;
-			Height = height;
-			PixelData = pixelData;
-		}
+		//public RgbaFile(uint width, uint height, byte[] pixelData)
+		//{
+		//	MagicNumber = expectedMagic;
+		//	Width = width;
+		//	Height = height;
+		//	PixelData = pixelData;
+		//}
 
-		public void Save(string filename) => Save(new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.ReadWrite));
+		//public void Save(string filename) => Save(new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.ReadWrite));
 
-		public void Save(Stream stream)
-		{
-			WriteString(stream, MagicNumber);
-			WriteUInt32(stream, Width);
-			WriteUInt32(stream, Height);
-			stream.Write(PixelData);
-		}
+		//public void Save(Stream stream)
+		//{
+		//	WriteString(stream, MagicNumber);
+		//	WriteUInt32(stream, Width);
+		//	WriteUInt32(stream, Height);
+		//	stream.Write(PixelData);
+		//}
 
-		private static string ReadString(Stream stream, int length) => new(Enumerable.Range(0, length).Select(_ => (char)stream.ReadByte()).ToArray());
-		private static uint ReadUInt32(Stream stream) => (uint)(((stream.ReadByte() & 0xFF) << 24) | ((stream.ReadByte() & 0xFF) << 16) | ((stream.ReadByte() & 0xFF) << 8) | ((stream.ReadByte() & 0xFF) << 0));
+		//private static string ReadString(Stream stream, int length) => new(Enumerable.Range(0, length).Select(_ => (char)stream.ReadByte()).ToArray());
+		//private static uint ReadUInt32(Stream stream) => (uint)(((stream.ReadByte() & 0xFF) << 24) | ((stream.ReadByte() & 0xFF) << 16) | ((stream.ReadByte() & 0xFF) << 8) | ((stream.ReadByte() & 0xFF) << 0));
 
-		private static void WriteString(Stream stream, string str) => Array.ForEach(str.ToCharArray(), (x) => stream.WriteByte((byte)x));
-		private static void WriteUInt32(Stream stream, uint val) { stream.WriteByte((byte)((val >> 24) & 0xFF)); stream.WriteByte((byte)((val >> 16) & 0xFF)); stream.WriteByte((byte)((val >> 8) & 0xFF)); stream.WriteByte((byte)((val >> 0) & 0xFF)); }
+		//private static void WriteString(Stream stream, string str) => Array.ForEach(str.ToCharArray(), (x) => stream.WriteByte((byte)x));
+		//private static void WriteUInt32(Stream stream, uint val) { stream.WriteByte((byte)((val >> 24) & 0xFF)); stream.WriteByte((byte)((val >> 16) & 0xFF)); stream.WriteByte((byte)((val >> 8) & 0xFF)); stream.WriteByte((byte)((val >> 0) & 0xFF)); }
 	}
 }
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/StoicGooseUnity/StoicGoose.Common/Utilities/Crc32.cs b/AxibugEmuOnline.Client/Assets/Plugins/StoicGooseUnity/StoicGoose.Common/Utilities/Crc32.cs
index e7dbfb5b..523ac20e 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/StoicGooseUnity/StoicGoose.Common/Utilities/Crc32.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/StoicGooseUnity/StoicGoose.Common/Utilities/Crc32.cs
@@ -1,5 +1,4 @@
 using System;
-using System.IO;
 
 namespace StoicGoose.Common.Utilities
 {
@@ -32,37 +31,37 @@ namespace StoicGoose.Common.Utilities
 			if ((segmentStart + segmentLength) > dataLength) throw new Exception("Segment end offset is greater than total length");
 		}
 
-		public static uint Calculate(FileInfo fileInfo)
-		{
-			return Calculate(fileInfo, 0, (int)fileInfo.Length);
-		}
+		//public static uint Calculate(FileInfo fileInfo)
+		//{
+		//	return Calculate(fileInfo, 0, (int)fileInfo.Length);
+		//}
 
-		public static uint Calculate(FileInfo fileInfo, int start, int length)
-		{
-			VerifyStartAndLength((int)fileInfo.Length, start, length);
+		//public static uint Calculate(FileInfo fileInfo, int start, int length)
+		//{
+		//	VerifyStartAndLength((int)fileInfo.Length, start, length);
 
-			using FileStream file = fileInfo.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
-			return Calculate(file, start, length);
-		}
+		//	using FileStream file = fileInfo.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
+		//	return Calculate(file, start, length);
+		//}
 
-		public static uint Calculate(Stream stream)
-		{
-			return Calculate(stream, 0, (int)stream.Length);
-		}
+		//public static uint Calculate(Stream stream)
+		//{
+		//	return Calculate(stream, 0, (int)stream.Length);
+		//}
 
-		public static uint Calculate(Stream stream, int start, int length)
-		{
-			VerifyStartAndLength((int)stream.Length, start, length);
+		//public static uint Calculate(Stream stream, int start, int length)
+		//{
+		//	VerifyStartAndLength((int)stream.Length, start, length);
 
-			var lastStreamPosition = stream.Position;
-			var data = new byte[length];
-			stream.Position = start;
-			stream.Read(data, 0, length);
-			var crc = Calculate(data, 0, data.Length);
-			stream.Position = lastStreamPosition;
+		//	var lastStreamPosition = stream.Position;
+		//	var data = new byte[length];
+		//	stream.Position = start;
+		//	stream.Read(data, 0, length);
+		//	var crc = Calculate(data, 0, data.Length);
+		//	stream.Position = lastStreamPosition;
 
-			return crc;
-		}
+		//	return crc;
+		//}
 
 		public static uint Calculate(byte[] data)
 		{
diff --git a/AxibugEmuOnline.Client/Assets/Plugins/StoicGooseUnity/StoicGoose.Common/Utilities/Resources.cs b/AxibugEmuOnline.Client/Assets/Plugins/StoicGooseUnity/StoicGoose.Common/Utilities/Resources.cs
index cf8747b8..9e22e032 100644
--- a/AxibugEmuOnline.Client/Assets/Plugins/StoicGooseUnity/StoicGoose.Common/Utilities/Resources.cs
+++ b/AxibugEmuOnline.Client/Assets/Plugins/StoicGooseUnity/StoicGoose.Common/Utilities/Resources.cs
@@ -1,41 +1,40 @@
-using System.IO;
-using System.Reflection;
+//using System.Reflection;
 
-using StoicGoose.Common.Drawing;
+//using StoicGoose.Common.Drawing;
 
-namespace StoicGoose.Common.Utilities
-{
-	public static class Resources
-	{
-		private static Stream GetEmbeddedResourceStream(string name)
-		{
-			var assembly = Assembly.GetEntryAssembly();
-			name = $"{assembly.GetName().Name}.{name}";
-			return assembly.GetManifestResourceStream(name);
-		}
+//namespace StoicGoose.Common.Utilities
+//{
+//	public static class Resources
+//	{
+//		//private static System.IO.Stream GetEmbeddedResourceStream(string name)
+//		//{
+//		//	var assembly = Assembly.GetEntryAssembly();
+//		//	name = $"{assembly.GetName().Name}.{name}";
+//		//	return assembly.GetManifestResourceStream(name);
+//		//}
 
-		public static RgbaFile GetEmbeddedRgbaFile(string name)
-		{
-			using var stream = GetEmbeddedResourceStream(name);
-			if (stream == null) return null;
-			return new RgbaFile(stream);
-		}
+//		//public static RgbaFile GetEmbeddedRgbaFile(string name)
+//		//{
+//		//	using var stream = GetEmbeddedResourceStream(name);
+//		//	if (stream == null) return null;
+//		//	return new RgbaFile(stream);
+//		//}
 
-		public static string GetEmbeddedText(string name)
-		{
-			using var stream = GetEmbeddedResourceStream(name);
-			if (stream == null) return string.Empty;
-			using var reader = new StreamReader(stream);
-			return reader.ReadToEnd();
-		}
+//		//public static string GetEmbeddedText(string name)
+//		//{
+//		//	using var stream = GetEmbeddedResourceStream(name);
+//		//	if (stream == null) return string.Empty;
+//		//	using var reader = new StreamReader(stream);
+//		//	return reader.ReadToEnd();
+//		//}
 
-		public static byte[] GetEmbeddedRawData(string name)
-		{
-			using var stream = GetEmbeddedResourceStream(name);
-			if (stream == null) return null;
-			var buffer = new byte[stream.Length];
-			stream.Read(buffer, 0, buffer.Length);
-			return buffer;
-		}
-	}
-}
+//		//public static byte[] GetEmbeddedRawData(string name)
+//		//{
+//		//	using var stream = GetEmbeddedResourceStream(name);
+//		//	if (stream == null) return null;
+//		//	var buffer = new byte[stream.Length];
+//		//	stream.Read(buffer, 0, buffer.Length);
+//		//	return buffer;
+//		//}
+//	}
+//}
diff --git a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab
index d0e9b39f..0549debd 100644
--- a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab
+++ b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab
@@ -720,10 +720,146 @@ PrefabInstance:
       propertyPath: m_Alpha
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 6771349210554360888, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
       propertyPath: m_Sprite
       value: 
       objectReference: {fileID: 8228730565043098574, guid: d518d00d4940e854bbe45d9ef891401a, type: 3}
+    - target: {fileID: 8126322204359135913, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
     m_RemovedGameObjects: []
     m_AddedGameObjects: []
@@ -742,6 +878,142 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 4317834147708567278}
     m_Modifications:
+    - target: {fileID: 460203047818732930, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3127083372996404082, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 5305486536744057900, guid: 146c51253379ea34cb1e979eb56072b1, type: 3}
       propertyPath: m_Pivot.x
       value: 0
@@ -956,10 +1228,146 @@ PrefabInstance:
       propertyPath: m_Alpha
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 6771349210554360888, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
       propertyPath: m_Sprite
       value: 
       objectReference: {fileID: 21300000, guid: 8b2d1bdf739173c40bb205540b308d02, type: 3}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
     m_RemovedGameObjects: []
     m_AddedGameObjects: []
@@ -996,27 +1404,27 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMax.x
-      value: 0.5
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMax.y
-      value: 0.5
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMin.x
-      value: 0.5
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMin.y
-      value: 0.5
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_SizeDelta.x
-      value: 200
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_SizeDelta.y
-      value: 203
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_LocalPosition.x
@@ -1048,11 +1456,11 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchoredPosition.x
-      value: -664
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchoredPosition.y
-      value: -245
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_LocalEulerAnglesHint.x
@@ -1157,6 +1565,142 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 4317834147708567278}
     m_Modifications:
+    - target: {fileID: 460203047818732930, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3127083372996404082, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 5305486536744057900, guid: 9d1d397edc91f544b917d31d56f7074b, type: 3}
       propertyPath: m_Pivot.x
       value: 0
@@ -1275,6 +1819,30 @@ PrefabInstance:
       propertyPath: m_Text
       value: IGS PGM
       objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: c4467b8175b4db64093d603a93775dff, type: 3}
       propertyPath: m_Pivot.x
       value: 0
@@ -1371,10 +1939,122 @@ PrefabInstance:
       propertyPath: m_Alpha
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 6771349210554360888, guid: c4467b8175b4db64093d603a93775dff, type: 3}
       propertyPath: m_Sprite
       value: 
       objectReference: {fileID: 21300000, guid: b12ca21105df97a469be3cf97a4f5fc1, type: 3}
+    - target: {fileID: 8126322204359135913, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: c4467b8175b4db64093d603a93775dff, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
     m_RemovedGameObjects: []
     m_AddedGameObjects: []
@@ -1497,10 +2177,146 @@ PrefabInstance:
       propertyPath: m_Alpha
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 6771349210554360888, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
       propertyPath: m_Sprite
       value: 
       objectReference: {fileID: 21300000, guid: 0bdbd1b2830ae724dbd62e306f54d60a, type: 3}
+    - target: {fileID: 8126322204359135913, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
     m_RemovedGameObjects: []
     m_AddedGameObjects: []
@@ -1519,6 +2335,142 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 4317834147708567278}
     m_Modifications:
+    - target: {fileID: 460203047818732930, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3127083372996404082, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 5305486536744057900, guid: 29303a37c43a05e48baf7b3fe43bfd09, type: 3}
       propertyPath: m_Pivot.x
       value: 0
@@ -1629,6 +2581,142 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 4317834147708567278}
     m_Modifications:
+    - target: {fileID: 460203047818732930, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3127083372996404082, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 5305486536744057900, guid: 017a4e122916b0c489123671b06d9ea7, type: 3}
       propertyPath: m_Pivot.x
       value: 0
@@ -1739,6 +2827,142 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 4317834147708567278}
     m_Modifications:
+    - target: {fileID: 460203047818732930, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3127083372996404082, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 5305486536744057900, guid: 6b9cf0040ec05e742aa8ca739b5f6adf, type: 3}
       propertyPath: m_Pivot.x
       value: 0
@@ -1851,6 +3075,142 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 4317834147708567278}
     m_Modifications:
+    - target: {fileID: 460203047818732930, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3127083372996404082, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 5305486536744057900, guid: c73ba8d34c204a5408505f72df70da0b, type: 3}
       propertyPath: m_Pivot.x
       value: 0
@@ -1979,27 +3339,27 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMax.x
-      value: 0.5
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMax.y
-      value: 0.5
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMin.x
-      value: 0.5
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMin.y
-      value: 0.5
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_SizeDelta.x
-      value: 200
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_SizeDelta.y
-      value: 203
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_LocalPosition.x
@@ -2031,11 +3391,11 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchoredPosition.x
-      value: -664
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchoredPosition.y
-      value: -245
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_LocalEulerAnglesHint.x
@@ -2101,6 +3461,34 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 8176807569060777722}
     m_Modifications:
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 734025543935719296, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_IsActive
       value: 0
@@ -2205,10 +3593,122 @@ PrefabInstance:
       propertyPath: m_Alpha
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 6771349210554360888, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_Sprite
       value: 
       objectReference: {fileID: 21300000, guid: e1f1b901785009046a04b7f05cbfc2c6, type: 3}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
     m_RemovedGameObjects: []
     m_AddedGameObjects: []
@@ -2235,6 +3735,30 @@ PrefabInstance:
       propertyPath: m_Text
       value: CPS2
       objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
       propertyPath: m_Pivot.x
       value: 0
@@ -2331,10 +3855,122 @@ PrefabInstance:
       propertyPath: m_Alpha
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 6771349210554360888, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
       propertyPath: m_Sprite
       value: 
       objectReference: {fileID: 21300000, guid: b12ca21105df97a469be3cf97a4f5fc1, type: 3}
+    - target: {fileID: 8126322204359135913, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: cf3c029a754c0dc40b15ce6b1962e31f, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
     m_RemovedGameObjects: []
     m_AddedGameObjects: []
@@ -2353,6 +3989,142 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 4317834147708567278}
     m_Modifications:
+    - target: {fileID: 460203047818732930, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3127083372996404082, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 5305486536744057900, guid: a2a595dedf34bfe4f970da5fcaaa0283, type: 3}
       propertyPath: m_Pivot.x
       value: 0
@@ -2471,6 +4243,30 @@ PrefabInstance:
       propertyPath: m_Text
       value: CPS1
       objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
       propertyPath: m_Pivot.x
       value: 0
@@ -2567,10 +4363,122 @@ PrefabInstance:
       propertyPath: m_Alpha
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 6771349210554360888, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
       propertyPath: m_Sprite
       value: 
       objectReference: {fileID: 21300000, guid: b12ca21105df97a469be3cf97a4f5fc1, type: 3}
+    - target: {fileID: 8126322204359135913, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: ae0d9b04c112f5b4c98feb0af7ed5676, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
     m_RemovedGameObjects: []
     m_AddedGameObjects: []
@@ -2589,6 +4497,142 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 4317834147708567278}
     m_Modifications:
+    - target: {fileID: 460203047818732930, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3127083372996404082, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 5305486536744057900, guid: a5295d41d2c9aae41bfdf2c9c712074e, type: 3}
       propertyPath: m_Pivot.x
       value: 0
@@ -2717,27 +4761,27 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMax.x
-      value: 0.5
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMax.y
-      value: 0.5
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMin.x
-      value: 0.5
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMin.y
-      value: 0.5
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_SizeDelta.x
-      value: 200
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_SizeDelta.y
-      value: 203
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_LocalPosition.x
@@ -2769,11 +4813,11 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchoredPosition.x
-      value: -664
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchoredPosition.y
-      value: -245
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_LocalEulerAnglesHint.x
@@ -2841,6 +4885,30 @@ PrefabInstance:
       propertyPath: m_Text
       value: "\u6536\u85CF"
       objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
       propertyPath: m_Pivot.x
       value: 0
@@ -2937,10 +5005,122 @@ PrefabInstance:
       propertyPath: m_Alpha
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 6771349210554360888, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
       propertyPath: m_Sprite
       value: 
       objectReference: {fileID: 7637870703528583553, guid: a8e14774cb9b81d4799116466bc09437, type: 3}
+    - target: {fileID: 8126322204359135913, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
     m_RemovedGameObjects: []
     m_AddedGameObjects: []
@@ -2959,6 +5139,142 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 4317834147708567278}
     m_Modifications:
+    - target: {fileID: 460203047818732930, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3127083372996404082, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 5305486536744057900, guid: 8fae89702697f0147bad6c542d95ae58, type: 3}
       propertyPath: m_Pivot.x
       value: 0
@@ -3077,6 +5393,30 @@ PrefabInstance:
       propertyPath: m_Text
       value: NeoGeo
       objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
       propertyPath: m_Pivot.x
       value: 0
@@ -3173,10 +5513,122 @@ PrefabInstance:
       propertyPath: m_Alpha
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 6771349210554360888, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
       propertyPath: m_Sprite
       value: 
       objectReference: {fileID: 21300000, guid: b12ca21105df97a469be3cf97a4f5fc1, type: 3}
+    - target: {fileID: 8126322204359135913, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 7478117b6f7d6cb4cb8c0f5d56205ea1, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
     m_RemovedGameObjects: []
     m_AddedGameObjects: []
@@ -3195,6 +5647,142 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 4317834147708567278}
     m_Modifications:
+    - target: {fileID: 460203047818732930, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 460203047818732930, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 471896259363812078, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2512431393477943384, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3127083372996404082, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3161584559533241995, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5169807349761294599, guid: 16523b967a6221241ab1109d556992f4, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 5305486536744057900, guid: 16523b967a6221241ab1109d556992f4, type: 3}
       propertyPath: m_Pivot.x
       value: 0
@@ -3313,6 +5901,30 @@ PrefabInstance:
       propertyPath: m_Text
       value: NES
       objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
       propertyPath: m_Pivot.x
       value: 0
@@ -3409,10 +6021,122 @@ PrefabInstance:
       propertyPath: m_Alpha
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 6771349210554360888, guid: b170104e466853c49b29f9b5b103364e, type: 3}
       propertyPath: m_Sprite
       value: 
       objectReference: {fileID: 21300000, guid: b12ca21105df97a469be3cf97a4f5fc1, type: 3}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
     m_RemovedGameObjects: []
     m_AddedGameObjects: []
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/App.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/App.cs
index fba7703f..6b1406da 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/App.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/App.cs
@@ -5,7 +5,6 @@ using AxibugProtobuf;
 using System;
 using System.Collections;
 using System.Collections.Generic;
-using System.IO;
 using System.Threading.Tasks;
 using UnityEngine;
 using static AxibugEmuOnline.Client.HttpAPI;
@@ -56,9 +55,12 @@ namespace AxibugEmuOnline.Client.ClientCore
         static string s_persistentRoot =
 #if UNITY_PSP2 && !UNITY_EDITOR //PSV真机
             "ux0:data/AxibugEmu";
+#elif UNITY_SWITCH && !UNITY_EDITOR //Switch 真机
+            $"save:/AxibugEmu";
 #else
             Application.persistentDataPath;
 #endif
+
         public static string PersistentDataPath(RomPlatformType emuPlatform)
         {
             return s_persistentRoot + "/" + emuPlatform.ToString();
@@ -130,8 +132,10 @@ namespace AxibugEmuOnline.Client.ClientCore
         private static void PSP2Init()
         {
             //PSVita最好手动创建目录
-            if (!Directory.Exists("ux0:data/AxibugEmu"))
-                Directory.CreateDirectory("ux0:data/AxibugEmu");
+            if (!AxiIO.Directory.Exists("ux0:data/AxibugEmu"))
+                AxiIO.Directory.CreateDirectory("ux0:data/AxibugEmu");
+            //if (!Directory.Exists("ux0:data/AxibugEmu"))
+            //    Directory.CreateDirectory("ux0:data/AxibugEmu");
 
 #if UNITY_PSP2
             //创建PSV弹窗UI
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiHttp/AxiHttp.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiHttp/AxiHttp.cs
index c58efede..9b651903 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiHttp/AxiHttp.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiHttp/AxiHttp.cs
@@ -1,8 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Diagnostics;
-using System.IO;
-using System.IO.Compression;
+using System.IO.Compression;
 using System.Net;
 using System.Net.Security;
 using System.Net.Sockets;
@@ -162,7 +161,7 @@ public static class AxiHttp
         public string fileName;
         public float DownLoadPr =>
             NeedloadedLenght <= 0 ? -1 : (float)loadedLenght / NeedloadedLenght;
-        public BinaryWriter binaryWriter;
+        public System.IO.BinaryWriter binaryWriter;
     }
 
     public static IPAddress GetDnsIP(string str)
@@ -268,7 +267,7 @@ public static class AxiHttp
             var ipEndPoint = new IPEndPoint(ip, port);
 
             using (Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
-            using (MemoryStream memoryStream = new MemoryStream())
+            using (System.IO.MemoryStream memoryStream = new System.IO.MemoryStream())
             {
                 client.Connect(ipEndPoint);
                 if (!client.Connected)
@@ -497,7 +496,7 @@ public static class AxiHttp
 
                     // 使用Uri类解析URL  
                     Uri uri = new Uri(url);
-                    respinfo.fileName = Path.GetFileName(uri.LocalPath);
+                    respinfo.fileName = System.IO.Path.GetFileName(uri.LocalPath);
                 }
                 else
                 {
@@ -567,7 +566,7 @@ public static class AxiHttp
 
             //using (Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
             //using (TcpClient tcpclient = new TcpClient())
-            using (MemoryStream memoryStream = new MemoryStream())
+            using (System.IO.MemoryStream memoryStream = new System.IO.MemoryStream())
             {
                 //client.Connect(ipEndPoint);
 
@@ -780,7 +779,7 @@ public static class AxiHttp
 
                     // 使用Uri类解析URL  
                     Uri uri = new Uri(url);
-                    respinfo.fileName = Path.GetFileName(uri.LocalPath);
+                    respinfo.fileName = System.IO.Path.GetFileName(uri.LocalPath);
                 }
                 else
                 {
@@ -865,9 +864,9 @@ public static class AxiHttp
     {
 
         string str = "";
-        MemoryStream ms = new MemoryStream(data, 0, len);
+        System.IO.MemoryStream ms = new System.IO.MemoryStream(data, 0, len);
         GZipStream gs = new GZipStream(ms, CompressionMode.Decompress);
-        MemoryStream outbuf = new MemoryStream();
+        System.IO.MemoryStream outbuf = new System.IO.MemoryStream();
         byte[] block = new byte[1024];
 
         try
@@ -904,9 +903,9 @@ public static class AxiHttp
 
     public static byte[] unGzipBytes(byte[] data, int len)
     {
-        MemoryStream ms = new MemoryStream(data, 0, len);
+        System.IO.MemoryStream ms = new System.IO.MemoryStream(data, 0, len);
         GZipStream gs = new GZipStream(ms, CompressionMode.Decompress);
-        MemoryStream outbuf = new MemoryStream();
+        System.IO.MemoryStream outbuf = new System.IO.MemoryStream();
         byte[] block = new byte[1024];
         byte[] result;
         try
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO.meta
new file mode 100644
index 00000000..05fd6453
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 83041af3f896cdd428dd120d39becacf
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/AxiIO.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/AxiIO.cs
new file mode 100644
index 00000000..b27b32ff
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/AxiIO.cs
@@ -0,0 +1,89 @@
+using System.Collections.Generic;
+
+namespace AxiIO
+{
+
+    public static class AxiIO
+    {
+        static IAxiIO m_io;
+        public static IAxiIO io
+        {
+            get
+            {
+                if (m_io == null)
+                {
+#if UNITY_SWITCH && !UNITY_EDITOR
+                        m_io = new NSwitchIO();
+#else
+                    m_io = new CSharpIO();
+#endif
+                }
+                return m_io;
+            }
+        }
+    }
+    public static class File
+    {
+        internal static void Delete(string filePath)
+        {
+            AxiIO.io.file_Delete(filePath);
+        }
+
+        internal static bool Exists(string filePath)
+        {
+            return AxiIO.io.file_Exists(filePath);
+        }
+
+        internal static byte[] ReadAllBytes(string filePath)
+        {
+            return AxiIO.io.file_ReadAllBytes(filePath);
+        }
+        internal static int ReadBytesToArr(string filePath, byte[] readToArr, int start, int len)
+        {
+            return AxiIO.io.file_ReadBytesToArr(filePath, readToArr, start, len);
+        }
+
+        internal static void WriteAllBytes(string path, byte[] data)
+        {
+            AxiIO.io.file_WriteAllBytes(path, data);
+        }
+
+        internal static void WriteAllBytesFromStream(string path, System.IO.MemoryStream ms)
+        {
+            AxiIO.io.file_WriteAllBytes(path, ms);
+        }
+    }
+
+    public static class Directory
+    {
+        public static bool Exists(string dirpath)
+        {
+            return AxiIO.io.dir_Exists(dirpath);
+        }
+
+        public static void CreateDirectory(string dirpath)
+        {
+            AxiIO.io.dir_CreateDirectory(dirpath);
+        }
+
+        public static IEnumerable<string> EnumerateFiles(string path, string searchPattern)
+        {
+            return AxiIO.io.dir_EnumerateFiles(path, searchPattern);
+        }
+
+        public static string[] GetDirectories(string path)
+        {
+            return AxiIO.io.dir_GetDirectories(path);
+        }
+
+        public static string[] GetFiles(string path)
+        {
+            return AxiIO.io.dir_GetFiles(path);
+        }
+
+        internal static void Delete(string cacheDirPath, bool v)
+        {
+            AxiIO.io.dir_Delete(cacheDirPath, v);
+        }
+    }
+}
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/AxiIO.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/AxiIO.cs.meta
new file mode 100644
index 00000000..665bf62a
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/AxiIO.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 32f63f62398d8184590292135b011084
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/CSharpIO.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/CSharpIO.cs
new file mode 100644
index 00000000..0f50530f
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/CSharpIO.cs
@@ -0,0 +1,70 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+
+namespace AxiIO
+{
+    public class CSharpIO : IAxiIO
+    {
+        public void dir_CreateDirectory(string dirpath)
+        {
+            System.IO.Directory.CreateDirectory(dirpath);
+        }
+
+        public void dir_Delete(string path, bool recursive)
+        {
+            System.IO.Directory.Delete(path, recursive);
+        }
+
+        public IEnumerable<string> dir_EnumerateFiles(string path, string searchPattern)
+        {
+            return System.IO.Directory.EnumerateFiles(path, searchPattern);
+        }
+
+        public bool dir_Exists(string dirpath)
+        {
+            return System.IO.Directory.Exists(dirpath);
+        }
+
+        public void file_WriteAllBytes(string filePath, byte[] data)
+        {
+            System.IO.File.WriteAllBytes(filePath, data);
+        }
+
+        public void file_WriteAllBytes(string filePath, MemoryStream ms)
+        {
+            System.IO.File.WriteAllBytes(filePath, ms.ToArray());
+        }
+
+        public void file_Delete(string filePath)
+        {
+            System.IO.File.Delete(filePath);
+        }
+
+        public bool file_Exists(string filePath)
+        {
+            return System.IO.File.Exists(filePath);
+        }
+
+        public byte[] file_ReadAllBytes(string filePath)
+        {
+            return System.IO.File.ReadAllBytes(filePath);
+        }
+
+        public int file_ReadBytesToArr(string filePath, byte[] readToArr, int start, int len)
+        {
+            FileStream streaming = System.IO.File.OpenRead(filePath);
+            return streaming.Read(readToArr, 0, 4);
+        }
+
+        public string[] dir_GetDirectories(string path)
+        {
+            return System.IO.Directory.GetDirectories(path);
+        }
+
+        public string[] dir_GetFiles(string path)
+        {
+            return System.IO.Directory.GetFiles(path);
+        }
+    }
+}
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/CSharpIO.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/CSharpIO.cs.meta
new file mode 100644
index 00000000..4c22cdc1
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/CSharpIO.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: f01df62ce36a4da4f9a20b4758d59102
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/IAxiIO.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/IAxiIO.cs
new file mode 100644
index 00000000..8886f80a
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/IAxiIO.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+
+namespace AxiIO
+{
+    public interface IAxiIO
+    {
+        bool dir_Exists(string dirpath);
+        void dir_CreateDirectory(string dirpath);
+        IEnumerable<string> dir_EnumerateFiles(string path, string searchPattern);
+        void dir_Delete(string path, bool recursive);
+        byte[] file_ReadAllBytes(string filePath);
+        bool file_Exists(string filePath);
+        void file_Delete(string filePath);
+        void file_WriteAllBytes(string filePath, byte[] data);
+        void file_WriteAllBytes(string filePath, System.IO.MemoryStream ms);
+        int file_ReadBytesToArr(string filePath, byte[] readToArr, int start, int len);
+        string[] dir_GetDirectories(string path);
+        string[] dir_GetFiles(string path);
+    };
+}
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/IAxiIO.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/IAxiIO.cs.meta
new file mode 100644
index 00000000..4bf4171f
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/IAxiIO.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 588eae2a7e121cc40907d8ac6f4250d4
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/NSwitchIO.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/NSwitchIO.cs
new file mode 100644
index 00000000..d56d0aab
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/NSwitchIO.cs
@@ -0,0 +1,83 @@
+using System;
+using System.Collections.Generic;
+
+namespace AxiIO
+{
+    public class NSwitchIO : IAxiIO
+    {
+        public NSwitchIO()
+        {
+            AxiNS.instance.Init();
+        }
+        public void dir_CreateDirectory(string dirpath)
+        {
+            AxiNS.instance.io.CreateDir(dirpath);
+        }
+
+        public void dir_Delete(string path, bool recursive)
+        {
+            AxiNS.instance.io.DeletePathFile(path);
+        }
+
+        public IEnumerable<string> dir_EnumerateFiles(string path, string searchPattern)
+        {
+            return AxiNS.instance.io.EnumerateFiles(path, searchPattern);
+        }
+
+        public bool dir_Exists(string dirpath)
+        {
+            return AxiNS.instance.io.CheckPathExists(dirpath);
+        }
+
+        public string[] dir_GetDirectories(string path)
+        {
+            if (!AxiNS.instance.io.GetDirectoryDirs(path, out string[] result))
+            {
+                return new string[0];
+            }
+            return result;
+        }
+
+        public string[] dir_GetFiles(string path)
+        {
+            if (!AxiNS.instance.io.GetDirectoryFiles(path, out string[] result))
+            {
+                return new string[0];
+            }
+            return result;
+        }
+
+        public void file_Delete(string filePath)
+        {
+            AxiNS.instance.io.DeletePathFile(filePath);
+        }
+
+        public bool file_Exists(string filePath)
+        {
+            return AxiNS.instance.io.CheckPathExists(filePath);
+        }
+
+        public byte[] file_ReadAllBytes(string filePath)
+        {
+            return AxiNS.instance.io.LoadSwitchDataFile(filePath);
+        }
+
+        public int file_ReadBytesToArr(string filePath, byte[] readToArr, int start, int len)
+        {
+            byte[] bytes = file_ReadAllBytes(filePath);
+            int templen = Math.Min(len, bytes.Length);
+            Array.Copy(readToArr, readToArr, len);
+            return templen;
+        }
+
+        public void file_WriteAllBytes(string filePath, byte[] data)
+        {
+            AxiNS.instance.io.FileToSaveWithCreate(filePath, data);
+        }
+
+        public void file_WriteAllBytes(string filePath, System.IO.MemoryStream ms)
+        {
+            AxiNS.instance.io.FileToSaveWithCreate(filePath, ms);
+        }
+    }
+}
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/NSwitchIO.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/NSwitchIO.cs.meta
new file mode 100644
index 00000000..2b1ffa7f
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiIO/NSwitchIO.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 3da9b14bf7568f34989774dc5f5fbcf4
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxibugEmuOnline.Client.asmdef b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxibugEmuOnline.Client.asmdef
index dab4f880..4c2e6983 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxibugEmuOnline.Client.asmdef
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxibugEmuOnline.Client.asmdef
@@ -1,4 +1,4 @@
-{
+{
     "name": "AxibugEmuOnline.Client",
     "rootNamespace": "",
     "references": [
@@ -7,8 +7,9 @@
         "UIEffect2018",
         "Mame.Core",
         "Essgee.Unity",
-		"StoicGooseUnity",
-        "Unity.InputSystem"
+        "StoicGooseUnity",
+        "Unity.InputSystem",
+        "AxiNSApi"
     ],
     "includePlatforms": [],
     "excludePlatforms": [],
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Common/Helper.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Common/Helper.cs
index 7304f7f0..be9bd9f0 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Common/Helper.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Common/Helper.cs
@@ -1,6 +1,5 @@
 using System;
 using System.Collections.Generic;
-using System.IO;
 using System.IO.Compression;
 using System.Security.Cryptography;
 using System.Text;
@@ -26,7 +25,7 @@ namespace AxibugEmuOnline.Client.Common
 
         public static byte[] CompressByteArray(byte[] bytesToCompress)
         {
-            using (var compressedMemoryStream = new MemoryStream())
+            using (var compressedMemoryStream = new System.IO.MemoryStream())
             using (var gzipStream = new GZipStream(compressedMemoryStream, CompressionMode.Compress))
             {
                 gzipStream.Write(bytesToCompress, 0, bytesToCompress.Length);
@@ -37,35 +36,35 @@ namespace AxibugEmuOnline.Client.Common
 
         public static byte[] DecompressByteArray(byte[] compressedBytes)
         {
-            using (var compressedMemoryStream = new MemoryStream(compressedBytes))
+            using (var compressedMemoryStream = new System.IO.MemoryStream(compressedBytes))
             using (var gzipStream = new GZipStream(compressedMemoryStream, CompressionMode.Decompress))
-            using (var resultMemoryStream = new MemoryStream())
+            using (var resultMemoryStream = new System.IO.MemoryStream())
             {
                 gzipStream.CopyTo(resultMemoryStream);
                 return resultMemoryStream.ToArray();
             }
         }
 
-        public static string FileMD5Hash(string filePath)
-        {
-            using (var md5 = MD5.Create())
-            {
-                using (var stream = File.OpenRead(filePath))
-                {
-                    var hash = md5.ComputeHash(stream);
-                    var sb = new StringBuilder(hash.Length * 2);
-                    foreach (var b in hash)
-                        sb.AppendFormat("{0:x2}", b);
-                    return sb.ToString();
-                }
-            }
-        }
+        //public static string FileMD5Hash(string filePath)
+        //{
+        //    using (var md5 = MD5.Create())
+        //    {
+        //        using (var stream = File.OpenRead(filePath))
+        //        {
+        //            var hash = md5.ComputeHash(stream);
+        //            var sb = new StringBuilder(hash.Length * 2);
+        //            foreach (var b in hash)
+        //                sb.AppendFormat("{0:x2}", b);
+        //            return sb.ToString();
+        //        }
+        //    }
+        //}
 
         static byte[] FileMD5HashByte(byte[] data)
         {
             using (var md5 = MD5.Create())
             {
-                using (var stream = new MemoryStream(data))
+                using (var stream = new System.IO.MemoryStream(data))
                 {
                     return md5.ComputeHash(stream);
                 }
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgee.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgee.cs
index aeca7de5..e1654a05 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgee.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgee.cs
@@ -11,7 +11,7 @@ using Essgee.Metadata;
 using Essgee.Utilities;
 using System;
 using System.Collections.Generic;
-using System.IO;
+using System.Drawing;
 using System.Linq;
 using System.Text;
 using UnityEngine;
@@ -40,6 +40,7 @@ public class UEssgee : MonoBehaviour, IEmuCore
     GameMetadata lastGameMetadata;
     Essgee.Emulation.EmulatorHandler emulatorHandler;
     UEGResources uegResources;
+    UEGIO uegIO;
     UEGLog uegLog;
     UEGSaveByteConvert uegSaveByteConvert;
     private Canvas mCanvas;
@@ -55,6 +56,7 @@ public class UEssgee : MonoBehaviour, IEmuCore
         App.tick.SetFrameRate(60);
         instance = this;
         uegResources = new UEGResources();
+        uegIO = new UEGIO();
         uegLog = new UEGLog();
         uegSaveByteConvert = new UEGSaveByteConvert();
         mCanvas = GameObject.Find("Canvas").GetComponent<Canvas>();
@@ -104,7 +106,7 @@ public class UEssgee : MonoBehaviour, IEmuCore
     {
         mPlatform = romFile.Platform;
 
-        InitAll(uegResources, App.PersistentDataPath(mPlatform));
+        InitAll(uegResources, uegIO, App.PersistentDataPath(mPlatform));
 
         bLogicUpdatePause = true;
 
@@ -165,17 +167,18 @@ public class UEssgee : MonoBehaviour, IEmuCore
     }
     #endregion
 
-    void InitAll(IGameMetaReources metaresources, string CustonDataDir)
+    void InitAll(IGameMetaReources metaresources, IEssgeeIOSupport uegIO, string CustonDataDir)
     {
         //��ʼ������
-        InitAppEnvironment(CustonDataDir);
+        InitAppEnvironment(CustonDataDir, uegIO);
         InitEmu();
         //ϸ�ڳ�ʼ��
         InitializeHandlers(metaresources);
     }
 
-    private void InitAppEnvironment(string CustonDataDir)
+    private void InitAppEnvironment(string CustonDataDir, IEssgeeIOSupport uegIO)
     {
+        Essgee.Emulation.EmulatorHandler.io = uegIO;
         EssgeeLogger.Init(uegLog);
 
         //EmuStandInfo.datDirectoryPath = Path.Combine(BaseDataDir, "EssgeeAssets", "No-Intro");
@@ -189,29 +192,29 @@ public class UEssgee : MonoBehaviour, IEmuCore
         EmuStandInfo.ProductName = "AxibugEmu";
         EmuStandInfo.ProductVersion = "";
 
-        EmuStandInfo.programDataDirectory = Path.Combine(CustonDataDir, EmuStandInfo.ProductName);
-        EmuStandInfo.programConfigPath = Path.Combine(EmuStandInfo.programDataDirectory, EmuStandInfo.jsonConfigFileName);
+        EmuStandInfo.programDataDirectory = System.IO.Path.Combine(CustonDataDir, EmuStandInfo.ProductName);
+        EmuStandInfo.programConfigPath = System.IO.Path.Combine(EmuStandInfo.programDataDirectory, EmuStandInfo.jsonConfigFileName);
 
-        EmuStandInfo.ShaderPath = Path.Combine(CustonDataDir, "Assets", "Shaders");
-        EmuStandInfo.SaveDataPath = Path.Combine(EmuStandInfo.programDataDirectory, EmuStandInfo.saveDataDirectoryName);
-        EmuStandInfo.ScreenshotPath = Path.Combine(EmuStandInfo.programDataDirectory, EmuStandInfo.screenshotDirectoryName);
-        EmuStandInfo.SaveStatePath = Path.Combine(EmuStandInfo.programDataDirectory, EmuStandInfo.saveStateDirectoryName);
-        EmuStandInfo.ExtraDataPath = Path.Combine(EmuStandInfo.programDataDirectory, EmuStandInfo.extraDataDirectoryName);
+        EmuStandInfo.ShaderPath = System.IO.Path.Combine(CustonDataDir, "Assets", "Shaders");
+        EmuStandInfo.SaveDataPath = System.IO.Path.Combine(EmuStandInfo.programDataDirectory, EmuStandInfo.saveDataDirectoryName);
+        EmuStandInfo.ScreenshotPath = System.IO.Path.Combine(EmuStandInfo.programDataDirectory, EmuStandInfo.screenshotDirectoryName);
+        EmuStandInfo.SaveStatePath = System.IO.Path.Combine(EmuStandInfo.programDataDirectory, EmuStandInfo.saveStateDirectoryName);
+        EmuStandInfo.ExtraDataPath = System.IO.Path.Combine(EmuStandInfo.programDataDirectory, EmuStandInfo.extraDataDirectoryName);
 
         LoadConfiguration();
 
 
-        if (!Directory.Exists(EmuStandInfo.SaveDataPath))
-            Directory.CreateDirectory(EmuStandInfo.SaveDataPath);
+        if (!AxiIO.Directory.Exists(EmuStandInfo.SaveDataPath))
+            AxiIO.Directory.CreateDirectory(EmuStandInfo.SaveDataPath);
 
-        if (!Directory.Exists(EmuStandInfo.ScreenshotPath))
-            Directory.CreateDirectory(EmuStandInfo.ScreenshotPath);
+        if (!AxiIO.Directory.Exists(EmuStandInfo.ScreenshotPath))
+            AxiIO.Directory.CreateDirectory(EmuStandInfo.ScreenshotPath);
 
-        if (!Directory.Exists(EmuStandInfo.SaveStatePath))
-            Directory.CreateDirectory(EmuStandInfo.SaveStatePath);
+        if (!AxiIO.Directory.Exists(EmuStandInfo.SaveStatePath))
+            AxiIO.Directory.CreateDirectory(EmuStandInfo.SaveStatePath);
 
-        if (!Directory.Exists(EmuStandInfo.ExtraDataPath))
-            Directory.CreateDirectory(EmuStandInfo.ExtraDataPath);
+        if (!AxiIO.Directory.Exists(EmuStandInfo.ExtraDataPath))
+            AxiIO.Directory.CreateDirectory(EmuStandInfo.ExtraDataPath);
 
         if (AppEnvironment.EnableLogger)
         {
@@ -756,13 +759,13 @@ public class UEssgee : MonoBehaviour, IEmuCore
         }
 
         /* Generate filename/path */
-        var filePrefix = $"{Path.GetFileNameWithoutExtension(lastGameMetadata.FileName)} ({e.Description}{(includeDateTime ? $" {DateTime.Now:yyyy-MM-dd HH-mm-ss})" : ")")}";
-        var filePath = Path.Combine(EmuStandInfo.ExtraDataPath, $"{filePrefix}.{extension}");
+        var filePrefix = $"{System.IO.Path.GetFileNameWithoutExtension(lastGameMetadata.FileName)} ({e.Description}{(includeDateTime ? $" {DateTime.Now:yyyy-MM-dd HH-mm-ss})" : ")")}";
+        var filePath = System.IO.Path.Combine(EmuStandInfo.ExtraDataPath, $"{filePrefix}.{extension}");
         if (!allowOverwrite)
         {
-            var existingFiles = Directory.EnumerateFiles(EmuStandInfo.ExtraDataPath, $"{filePrefix}*{extension}");
+            var existingFiles = AxiIO.Directory.EnumerateFiles(EmuStandInfo.ExtraDataPath, $"{filePrefix}*{extension}");
             if (existingFiles.Contains(filePath))
-                for (int i = 2; existingFiles.Contains(filePath = Path.Combine(EmuStandInfo.ExtraDataPath, $"{filePrefix} ({i}).{extension}")); i++) { }
+                for (int i = 2; existingFiles.Contains(filePath = System.IO.Path.Combine(EmuStandInfo.ExtraDataPath, $"{filePrefix} ({i}).{extension}")); i++) { }
         }
 
         /* Handle data */
@@ -777,10 +780,12 @@ public class UEssgee : MonoBehaviour, IEmuCore
         else if (e.Data is byte[] raw)
         {
             /* Raw bytes */
-            using (var file = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))
-            {
-                file.Write(raw, 0, raw.Length);
-            }
+            //using (var file = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))
+            //{
+            //    file.Write(raw, 0, raw.Length);
+            //}
+
+            AxiIO.File.WriteAllBytes(filePath, raw);
         }
     }
 
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgeeInterface/UEGIO.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgeeInterface/UEGIO.cs
new file mode 100644
index 00000000..0221d554
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgeeInterface/UEGIO.cs
@@ -0,0 +1,25 @@
+using Essgee.Metadata;
+using System.IO;
+
+public class UEGIO : IEssgeeIOSupport
+{
+    public bool File_Exists(string path)
+    {
+        return AxiIO.File.Exists(path);
+    }
+
+    public byte[] File_ReadAllBytes(string path)
+    {
+        return AxiIO.File.ReadAllBytes(path);
+    }
+
+    public void File_WriteAllBytes(string savePath, byte[] data)
+    {
+        AxiIO.File.WriteAllBytes(savePath, data);
+    }
+
+    public void File_WriteAllBytesFromStre(string path, MemoryStream ms)
+    {
+        AxiIO.File.WriteAllBytesFromStream(path, ms);
+    }
+}
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgeeInterface/UEGIO.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgeeInterface/UEGIO.cs.meta
new file mode 100644
index 00000000..a21628da
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgeeInterface/UEGIO.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 2d1eadaf2f90ca44b9732206158f7599
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgeeInterface/UEGSoundPlayer.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgeeInterface/UEGSoundPlayer.cs
index d559ee90..ac555e6f 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgeeInterface/UEGSoundPlayer.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgeeInterface/UEGSoundPlayer.cs
@@ -1,9 +1,6 @@
 using AxibugEmuOnline.Client.ClientCore;
 using System;
 using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text;
 using UnityEngine;
 
 public class UEGSoundPlayer : MonoBehaviour
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/MameEmulator/UMAME.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/MameEmulator/UMAME.cs
index 950fea83..eaef5d52 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/MameEmulator/UMAME.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/MameEmulator/UMAME.cs
@@ -5,7 +5,6 @@ using AxiReplay;
 using MAME.Core;
 using System;
 using System.Collections.Generic;
-using System.IO;
 using System.Text;
 using UnityEngine;
 using UnityEngine.UI;
@@ -21,6 +20,7 @@ public class UMAME : MonoBehaviour, IEmuCore
     UniSoundPlayer mUniSoundPlayer;
     UniKeyboard mUniKeyboard;
     UniResources mUniResources;
+    UniIO mUniIO;
 
     public Text mFPS;
     private Canvas mCanvas;
@@ -54,9 +54,10 @@ public class UMAME : MonoBehaviour, IEmuCore
         mUniSoundPlayer = GameObject.Find("Audio").transform.GetComponent<UniSoundPlayer>();
         mUniKeyboard = this.gameObject.AddComponent<UniKeyboard>();
         mUniResources = new UniResources();
+        mUniIO = new UniIO();
         mChangeRomName = string.Empty;
         mTimeSpan = new UniTimeSpan();
-        emu.Init(RomPath, mUniLog, mUniResources, mUniVideoPlayer, mUniSoundPlayer, mUniKeyboard, mUniMouse, mTimeSpan);
+        emu.Init(RomPath, mUniLog, mUniResources, mUniVideoPlayer, mUniSoundPlayer, mUniKeyboard, mUniMouse, mTimeSpan, mUniIO);
     }
     void OnEnable()
     {
@@ -197,11 +198,11 @@ public class UMAME : MonoBehaviour, IEmuCore
     }
     byte[] SaveState()
     {
-        if (!Directory.Exists(SavePath))
-            Directory.CreateDirectory(SavePath);
+        if (!AxiIO.Directory.Exists(SavePath))
+            AxiIO.Directory.CreateDirectory(SavePath);
 
-        MemoryStream ms = new MemoryStream();
-        BinaryWriter bw = new BinaryWriter(ms);
+        System.IO.MemoryStream ms = new System.IO.MemoryStream();
+        System.IO.BinaryWriter bw = new System.IO.BinaryWriter(ms);
         emu.SaveState(bw);
         byte[] data = ms.ToArray();
         bw.Close();
@@ -218,8 +219,8 @@ public class UMAME : MonoBehaviour, IEmuCore
     }
     void LoadState(byte[] data)
     {
-        MemoryStream fs = new MemoryStream(data);
-        BinaryReader br = new BinaryReader(fs);
+        System.IO.MemoryStream fs = new System.IO.MemoryStream(data);
+        System.IO.BinaryReader br = new System.IO.BinaryReader(fs);
         emu.LoadState(br);
         br.Close();
         fs.Close();
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/MameEmulator/UniInterface/UniIO.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/MameEmulator/UniInterface/UniIO.cs
new file mode 100644
index 00000000..1b98635a
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/MameEmulator/UniInterface/UniIO.cs
@@ -0,0 +1,19 @@
+using MAME.Core;
+
+public class UniIO : IMAMEIOSupport
+{
+    public bool File_Exists(string path)
+    {
+        return AxiIO.File.Exists(path);
+    }
+
+    public byte[] File_ReadAllBytes(string path)
+    {
+        return AxiIO.File.ReadAllBytes(path);
+    }
+
+    public void File_WriteAllBytesFromStre(string path, System.IO.MemoryStream ms)
+    {
+        AxiIO.File.WriteAllBytesFromStream(path, ms);
+    }
+}
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/MameEmulator/UniInterface/UniIO.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/MameEmulator/UniInterface/UniIO.cs.meta
new file mode 100644
index 00000000..ea744e8f
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/MameEmulator/UniInterface/UniIO.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 0bde9793324600e4da84ead00e1e9111
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/NesEmulator/CoreSupporter.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/NesEmulator/CoreSupporter.cs
index ad097133..4d46cac3 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/NesEmulator/CoreSupporter.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/NesEmulator/CoreSupporter.cs
@@ -2,7 +2,6 @@
 using AxibugProtobuf;
 using AxiReplay;
 using System;
-using System.IO;
 using System.Runtime.InteropServices;
 using UnityEngine;
 using VirtualNes.Core;
@@ -17,14 +16,14 @@ namespace AxibugEmuOnline.Client
             m_controllerMapper = conMapper;
         }
 
-        public Stream OpenRom(string fname)
+        public System.IO.Stream OpenRom(string fname)
         {
             try
             {
                 var romFile = App.GetRomLib(RomPlatformType.Nes).GetRomFile(fname);
                 var bytes = romFile.GetRomFileData();
                 Debug.Log($"Open {romFile.Alias}");
-                return new MemoryStream(bytes);
+                return new System.IO.MemoryStream(bytes);
             }
             catch (Exception ex)
             {
@@ -39,34 +38,34 @@ namespace AxibugEmuOnline.Client
             UnityEngine.Debug.Assert(romFile != null);
 
             fullPath = romFile.LocalFilePath;
-            directPath = Path.GetDirectoryName(fullPath);
+            directPath = System.IO.Path.GetDirectoryName(fullPath);
         }
 
-        public Stream OpenFile_DISKSYS()
+        public System.IO.Stream OpenFile_DISKSYS()
         {
-            return new MemoryStream(Resources.Load<TextAsset>("NES/Disksys.rom").bytes);
+            return new System.IO.MemoryStream(Resources.Load<TextAsset>("NES/Disksys.rom").bytes);
         }
 
         public void SaveSRAMToFile(byte[] sramContent, string romName)
         {
             string sramDirectoryPath = $"{App.PersistentDataPath(AxibugProtobuf.RomPlatformType.Nes)}/{Config.path.szSavePath}";
-            Directory.CreateDirectory(sramDirectoryPath);
-            romName = Path.GetFileNameWithoutExtension(romName);
-            File.WriteAllBytes($"{sramDirectoryPath}/{romName}.sav", sramContent);
+            AxiIO.Directory.CreateDirectory(sramDirectoryPath);
+            romName = System.IO.Path.GetFileNameWithoutExtension(romName);
+            AxiIO.File.WriteAllBytes($"{sramDirectoryPath}/{romName}.sav", sramContent);
         }
 
         public void SaveDISKToFile(byte[] diskFileContent, string romName)
         {
             string diskFileDirectoryPath = $"{App.PersistentDataPath(AxibugProtobuf.RomPlatformType.Nes)}/dsv";
-            Directory.CreateDirectory(diskFileDirectoryPath);
-            romName = Path.GetFileNameWithoutExtension(romName);
-            File.WriteAllBytes($"{diskFileDirectoryPath}/{romName}.dsv", diskFileContent);
+            AxiIO.Directory.CreateDirectory(diskFileDirectoryPath);
+            romName = System.IO.Path.GetFileNameWithoutExtension(romName);
+            AxiIO.File.WriteAllBytes($"{diskFileDirectoryPath}/{romName}.dsv", diskFileContent);
         }
 
         public EmulatorConfig Config { get; private set; } = new EmulatorConfig();
         public void PrepareDirectory(string directPath)
         {
-            Directory.CreateDirectory($"{App.PersistentDataPath(AxibugProtobuf.RomPlatformType.Nes)}/{directPath}");
+            AxiIO.Directory.CreateDirectory($"{App.PersistentDataPath(AxibugProtobuf.RomPlatformType.Nes)}/{directPath}");
         }
 
         public void SaveFile(byte[] fileData, string directPath, string fileName)
@@ -74,17 +73,17 @@ namespace AxibugEmuOnline.Client
             PrepareDirectory(directPath);
 
             var fileFullpath = $"{App.PersistentDataPath(AxibugProtobuf.RomPlatformType.Nes)}/{directPath}/{fileName}";
-            File.WriteAllBytes(fileFullpath, fileData);
+            AxiIO.File.WriteAllBytes(fileFullpath, fileData);
         }
 
-        public Stream OpenFile(string directPath, string fileName)
+        public System.IO.Stream OpenFile(string directPath, string fileName)
         {
             try
             {
                 var path = $"{App.PersistentDataPath(AxibugProtobuf.RomPlatformType.Nes)}/{directPath}/{fileName}";
-                var data = File.ReadAllBytes(path);
+                var data = AxiIO.File.ReadAllBytes(path);
                 if (data == null) return null;
-                return new MemoryStream(data);
+                return new System.IO.MemoryStream(data);
             }
             catch
             {
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/NesEmulator/NesEmulator.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/NesEmulator/NesEmulator.cs
index 399cb2fb..5421409f 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/NesEmulator/NesEmulator.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/NesEmulator/NesEmulator.cs
@@ -3,7 +3,6 @@ using AxibugProtobuf;
 using System;
 using System.Diagnostics;
 using System.Globalization;
-using System.IO;
 using System.Xml.Linq;
 using UnityEngine;
 using UnityEngine.UI;
@@ -178,7 +177,7 @@ namespace AxibugEmuOnline.Client
             var db = Resources.Load<RomDB>("NES/ROMDB");
             db.Clear();
 
-            var xmlStr = File.ReadAllText("nes20db.xml");
+            var xmlStr = System.IO.File.ReadAllText("nes20db.xml");
             var xml = XDocument.Parse(xmlStr);
             var games = xml.Element("nes20db")?.Elements("game");
             System.Diagnostics.Debug.Assert(games != null, nameof(games) + " != null");
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/StoicGooseEmulator/Handle/DatabaseHandler.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/StoicGooseEmulator/Handle/DatabaseHandler.cs
index 01953a32..26779e16 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/StoicGooseEmulator/Handle/DatabaseHandler.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/StoicGooseEmulator/Handle/DatabaseHandler.cs
@@ -1,6 +1,5 @@
 using System;
 using System.Collections.Generic;
-using System.IO;
 using System.Linq;
 using System.Xml;
 using System.Xml.Serialization;
@@ -16,24 +15,24 @@ public sealed class DatabaseHandler
         {
             string wsc = "Bandai - WonderSwan Color.dat";
             GetDatBytes(wsc, out byte[] loadedData);
-            using (MemoryStream stream = new MemoryStream(loadedData))
+            using (System.IO.MemoryStream stream = new System.IO.MemoryStream(loadedData))
             {
                 var root = new XmlRootAttribute("datafile") { IsNullable = true };
                 var serializer = new XmlSerializer(typeof(DatFile), root);
                 var reader = XmlReader.Create(stream, new() { DtdProcessing = DtdProcessing.Ignore });
-                datFiles.Add(Path.GetFileName(wsc), (DatFile)serializer.Deserialize(reader));
+                datFiles.Add(System.IO.Path.GetFileName(wsc), (DatFile)serializer.Deserialize(reader));
             }
         }
 
         {
             string ws = "Bandai - WonderSwan.dat";
             GetDatBytes(ws, out byte[] loadedData);
-            using (MemoryStream stream = new MemoryStream(loadedData))
+            using (System.IO.MemoryStream stream = new System.IO.MemoryStream(loadedData))
             {
                 var root = new XmlRootAttribute("datafile") { IsNullable = true };
                 var serializer = new XmlSerializer(typeof(DatFile), root);
                 var reader = XmlReader.Create(stream, new() { DtdProcessing = DtdProcessing.Ignore });
-                datFiles.Add(Path.GetFileName(ws), (DatFile)serializer.Deserialize(reader));
+                datFiles.Add(System.IO.Path.GetFileName(ws), (DatFile)serializer.Deserialize(reader));
             }
         }
 
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/StoicGooseEmulator/Handle/EmulatorHandler.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/StoicGooseEmulator/Handle/EmulatorHandler.cs
index cb268120..8ce39572 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/StoicGooseEmulator/Handle/EmulatorHandler.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/StoicGooseEmulator/Handle/EmulatorHandler.cs
@@ -1,4 +1,5 @@
-using StoicGoose.Core.Interfaces;
+using Essgee.Metadata;
+using StoicGoose.Core.Interfaces;
 using StoicGooseUnity;
 using System;
 using System.Diagnostics;
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/StoicGooseEmulator/UStoicGoose.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/StoicGooseEmulator/UStoicGoose.cs
index f749ac88..37758fd7 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/StoicGooseEmulator/UStoicGoose.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/StoicGooseEmulator/UStoicGoose.cs
@@ -5,7 +5,6 @@ using StoicGoose.Common.Utilities;
 using StoicGoose.Core.Machines;
 using System;
 using System.Collections.Generic;
-using System.IO;
 using System.IO.Compression;
 using System.Linq;
 using UnityEngine;
@@ -22,7 +21,7 @@ public class UStoicGoose : MonoBehaviour, IEmuCore
     readonly static int maxRecentFiles = 15;
     readonly static int statusIconSize = 12;
 
-    readonly static List<(string description, string extension, Func<string, Stream> streamReadFunc)> supportedFileInformation = new()
+    readonly static List<(string description, string extension, Func<string, System.IO.Stream> streamReadFunc)> supportedFileInformation = new()
         {
             ("WonderSwan ROMs", ".ws", GetStreamFromFile),
             ("WonderSwan Color ROMs", ".wsc", GetStreamFromFile),
@@ -312,7 +311,7 @@ public class UStoicGoose : MonoBehaviour, IEmuCore
         //    graphicsHandler.DrawFrame();
         //};
 
-        internalEepromPath = Path.Combine(Program.InternalDataPath, $"{machineType.Name}.eep");
+        internalEepromPath = System.IO.Path.Combine(Program.InternalDataPath, $"{machineType.Name}.eep");
     }
 
     //private void InitializeWindows()
@@ -408,11 +407,14 @@ public class UStoicGoose : MonoBehaviour, IEmuCore
 
         if (!emulatorHandler.IsRunning)
         {
-            if (File.Exists(filename))
+            if (AxiIO.File.Exists(filename))
             {
-                using var stream = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
-                var data = new byte[stream.Length];
-                stream.Read(data, 0, data.Length);
+                //using var stream = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
+                //var data = new byte[stream.Length];
+                //stream.Read(data, 0, data.Length);
+
+                var data = AxiIO.File.ReadAllBytes(filename);
+
                 emulatorHandler.Machine.LoadBootstrap(data);
             }
             emulatorHandler.Machine.UseBootstrap = Program.Configuration.General.UseBootstrap;
@@ -421,23 +423,31 @@ public class UStoicGoose : MonoBehaviour, IEmuCore
 
     private void LoadInternalEeprom()
     {
-        if (!emulatorHandler.IsRunning && File.Exists(internalEepromPath))
+        if (!emulatorHandler.IsRunning && AxiIO.File.Exists(internalEepromPath))
         {
-            using var stream = new FileStream(internalEepromPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
-            var data = new byte[stream.Length];
-            stream.Read(data, 0, data.Length);
+            //using var stream = new FileStream(internalEepromPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
+            //var data = new byte[stream.Length];
+            //stream.Read(data, 0, data.Length);
+
+            var data = AxiIO.File.ReadAllBytes(internalEepromPath);
+
             emulatorHandler.Machine.LoadInternalEeprom(data);
         }
     }
 
-    private static Stream GetStreamFromFile(string filename)
+    private static System.IO.Stream GetStreamFromFile(string filename)
     {
-        return new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
+        //return new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
+        byte[] data = AxiIO.File.ReadAllBytes(filename);
+        return new System.IO.MemoryStream(data);
     }
 
-    private static Stream GetStreamFromFirstZippedFile(string filename)
+    private static System.IO.Stream GetStreamFromFirstZippedFile(string filename)
     {
-        return new ZipArchive(new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)).Entries.FirstOrDefault()?.Open();
+        //return new ZipArchive(new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)).Entries.FirstOrDefault()?.Open();
+
+        byte[] data = AxiIO.File.ReadAllBytes(filename);
+        return new ZipArchive(new System.IO.MemoryStream(data)).Entries.FirstOrDefault()?.Open();
     }
 
     private bool LoadAndRunCartridge(string filename)
@@ -450,8 +460,8 @@ public class UStoicGoose : MonoBehaviour, IEmuCore
                 emulatorHandler.Shutdown();
             }
 
-            using var inputStream = supportedFileInformation.FirstOrDefault(x => x.extension == Path.GetExtension(filename)).streamReadFunc(filename) ?? GetStreamFromFile(filename);
-            using var stream = new MemoryStream();
+            using var inputStream = supportedFileInformation.FirstOrDefault(x => x.extension == System.IO.Path.GetExtension(filename)).streamReadFunc(filename) ?? GetStreamFromFile(filename);
+            using var stream = new System.IO.MemoryStream();
             inputStream.CopyTo(stream);
             stream.Position = 0;
 
@@ -462,7 +472,7 @@ public class UStoicGoose : MonoBehaviour, IEmuCore
             graphicsHandler.IsVerticalOrientation = isVerticalOrientation = emulatorHandler.Machine.Cartridge.Metadata.Orientation == CartridgeMetadata.Orientations.Vertical;
             inputHandler.SetVerticalOrientation(isVerticalOrientation);
 
-            CurrRomName = Path.GetFileName(filename);
+            CurrRomName = System.IO.Path.GetFileName(filename);
 
             LoadRam();
 
@@ -490,12 +500,15 @@ public class UStoicGoose : MonoBehaviour, IEmuCore
     private void LoadRam()
     {
         //var path = Path.Combine(Program.SaveDataPath, $"{Path.GetFileNameWithoutExtension(Program.Configuration.General.RecentFiles.First())}.sav");
-        var path = Path.Combine(Program.SaveDataPath, $"{CurrRomName}.sav");
-        if (!File.Exists(path)) return;
+        var path = System.IO.Path.Combine(Program.SaveDataPath, $"{CurrRomName}.sav");
+        //if (!File.Exists(path)) return;
+        if (!AxiIO.File.Exists(path)) return;
 
-        using var stream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
-        var data = new byte[stream.Length];
-        stream.Read(data, 0, data.Length);
+        //using var stream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
+        //var data = new byte[stream.Length];
+        //stream.Read(data, 0, data.Length);
+
+        var data = AxiIO.File.ReadAllBytes(path);
         if (data.Length != 0)
             emulatorHandler.Machine.LoadSaveData(data);
     }
@@ -511,8 +524,10 @@ public class UStoicGoose : MonoBehaviour, IEmuCore
         var data = emulatorHandler.Machine.GetInternalEeprom();
         if (data.Length == 0) return;
 
-        using var stream = new FileStream(internalEepromPath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
-        stream.Write(data, 0, data.Length);
+        //using var stream = new FileStream(internalEepromPath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
+        //stream.Write(data, 0, data.Length);
+
+        AxiIO.File.WriteAllBytes(internalEepromPath, data);
     }
 
     private void SaveRam()
@@ -521,10 +536,12 @@ public class UStoicGoose : MonoBehaviour, IEmuCore
         if (data.Length == 0) return;
 
         //var path = Path.Combine(Program.SaveDataPath, $"{Path.GetFileNameWithoutExtension(Program.Configuration.General.RecentFiles.First())}.sav");
-        var path = Path.Combine(Program.SaveDataPath, $"{CurrRomName}.sav");
+        var path = System.IO.Path.Combine(Program.SaveDataPath, $"{CurrRomName}.sav");
 
-        using var stream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
-        stream.Write(data, 0, data.Length);
+        //using var stream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
+        //stream.Write(data, 0, data.Length);
+
+        AxiIO.File.WriteAllBytes(path, data);
     }
 
 
@@ -603,25 +620,25 @@ static class Program
             shaderDirectoryName = "Shaders";
             noIntroDatDirectoryName = "No-Intro";
             mutexName = $"Unity_{GetVersionDetails()}";
-            programDataDirectory = Path.Combine(CustonDataDir, "AxibugEmu");
-            programConfigPath = Path.Combine(programDataDirectory, jsonConfigFileName);
+            programDataDirectory = System.IO.Path.Combine(CustonDataDir, "AxibugEmu");
+            programConfigPath = System.IO.Path.Combine(programDataDirectory, jsonConfigFileName);
             Configuration = LoadConfiguration(programConfigPath);
-            Log.WriteLine(Path.Combine(programDataDirectory, logFileName));
+            Log.WriteLine(System.IO.Path.Combine(programDataDirectory, logFileName));
             programApplicationDirectory = AppDomain.CurrentDomain.BaseDirectory;
-            programAssetsDirectory = Path.Combine(programApplicationDirectory, assetsDirectoryName);
-            Directory.CreateDirectory(DataPath = programDataDirectory);
-            Directory.CreateDirectory(InternalDataPath = Path.Combine(programDataDirectory, internalDataDirectoryName));
-            Directory.CreateDirectory(SaveDataPath = Path.Combine(programDataDirectory, saveDataDirectoryName));
-            Directory.CreateDirectory(CheatsDataPath = Path.Combine(programDataDirectory, cheatDataDirectoryName));
-            Directory.CreateDirectory(DebuggingDataPath = Path.Combine(programDataDirectory, debuggingDataDirectoryName));
+            programAssetsDirectory = System.IO.Path.Combine(programApplicationDirectory, assetsDirectoryName);
+            AxiIO.Directory.CreateDirectory(DataPath = programDataDirectory);
+            AxiIO.Directory.CreateDirectory(InternalDataPath = System.IO.Path.Combine(programDataDirectory, internalDataDirectoryName));
+            AxiIO.Directory.CreateDirectory(SaveDataPath = System.IO.Path.Combine(programDataDirectory, saveDataDirectoryName));
+            AxiIO.Directory.CreateDirectory(CheatsDataPath = System.IO.Path.Combine(programDataDirectory, cheatDataDirectoryName));
+            AxiIO.Directory.CreateDirectory(DebuggingDataPath = System.IO.Path.Combine(programDataDirectory, debuggingDataDirectoryName));
 
             //if (!Directory.Exists(ShaderPath = Path.Combine(programAssetsDirectory, shaderDirectoryName)))
             //    throw new DirectoryNotFoundException("Shader directory missing");
 
-            if (!Directory.Exists(NoIntroDatPath = Path.Combine(programAssetsDirectory, noIntroDatDirectoryName)))
-                throw new DirectoryNotFoundException("No-Intro .dat directory missing");
+            if (!AxiIO.Directory.Exists(NoIntroDatPath = System.IO.Path.Combine(programAssetsDirectory, noIntroDatDirectoryName)))
+                throw new Exception("No-Intro .dat directory missing");
         }
-        catch (DirectoryNotFoundException e)
+        catch (Exception e)
         {
         }
     }
@@ -674,7 +691,7 @@ static class Program
 
     private static Configuration LoadConfiguration(string filename)
     {
-        Directory.CreateDirectory(Path.GetDirectoryName(filename));
+        AxiIO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(filename));
 
         Configuration configuration;
         //if (!File.Exists(filename) || (configuration = filename.DeserializeFromFile<Configuration>()) == null)
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/CacheManager.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/CacheManager.cs
index 40edc5b7..19d5f9df 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/CacheManager.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/CacheManager.cs
@@ -2,7 +2,6 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
-using System.IO;
 using UnityEngine;
 
 namespace AxibugEmuOnline.Client
@@ -20,8 +19,8 @@ namespace AxibugEmuOnline.Client
         /// <summary> 移除文件缓存 </summary>
         public void ClearCaches()
         {
-            if (Directory.Exists(CacheDirPath))
-                Directory.Delete(CacheDirPath, true);
+            if (AxiIO.Directory.Exists(CacheDirPath))
+                AxiIO.Directory.Delete(CacheDirPath, true);
         }
 
         IEnumerator DownloadFromURL(string url, string path, Action<byte[]> callback)
@@ -38,8 +37,8 @@ namespace AxibugEmuOnline.Client
 
             if (!request.downloadHandler.bHadErr)
             {
-                Directory.CreateDirectory(path);
-                File.WriteAllBytes($"{path}/{url.GetHashCode()}", request.downloadHandler.data);
+                AxiIO.Directory.CreateDirectory(path);
+                AxiIO.File.WriteAllBytes($"{path}/{url.GetHashCode()}", request.downloadHandler.data);
                 callback.Invoke(request.downloadHandler.data);
             }
             else
@@ -78,9 +77,9 @@ namespace AxibugEmuOnline.Client
             byte[] rawData = null;
 
             var filePath = $"{path}/{fileName}";
-            if (File.Exists(filePath))
+            if (AxiIO.File.Exists(filePath))
             {
-                rawData = File.ReadAllBytes(filePath);
+                rawData = AxiIO.File.ReadAllBytes(filePath);
                 var @out = RawDataConvert<T>(rawData);
                 cachesInMemory[url] = @out;
                 callback.Invoke(@out, url);
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomFile.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomFile.cs
index 86181238..b6a5f12f 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomFile.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomFile.cs
@@ -5,7 +5,6 @@ using ICSharpCode.SharpZipLib.Zip;
 using System;
 using System.Collections;
 using System.Collections.Generic;
-using System.IO;
 using UnityEngine;
 
 namespace AxibugEmuOnline.Client
@@ -208,9 +207,9 @@ namespace AxibugEmuOnline.Client
                 if (App.FileDownloader.GetDownloadProgress(webData.url) == null)
                 {
                     if (MultiFileRom)
-                        m_hasLocalFile = Directory.Exists(LocalFilePath);
+                        m_hasLocalFile = AxiIO.Directory.Exists(LocalFilePath);
                     else
-                        m_hasLocalFile = File.Exists(LocalFilePath);
+                        m_hasLocalFile = AxiIO.File.Exists(LocalFilePath);
                 }
             }
 
@@ -242,7 +241,7 @@ namespace AxibugEmuOnline.Client
             {
                 Dictionary<string, byte[]> unzipFiles = new Dictionary<string, byte[]>();
                 //多rom文件的平台,下载下来的数据直接解压放入文件夹内
-                var zip = new ZipInputStream(new MemoryStream(bytes));
+                var zip = new ZipInputStream(new System.IO.MemoryStream(bytes));
 
                 List<string> depth0Files = new List<string>();
                 while (true)
@@ -253,7 +252,7 @@ namespace AxibugEmuOnline.Client
                     if (currentEntry.IsDirectory) continue;
 
                     var buffer = new byte[1024];
-                    MemoryStream output = new MemoryStream();
+                    System.IO.MemoryStream output = new System.IO.MemoryStream();
                     while (true)
                     {
                         var size = zip.Read(buffer, 0, buffer.Length);
@@ -275,16 +274,16 @@ namespace AxibugEmuOnline.Client
                 {
                     var path = rootDirName != null ? item.Key.Substring(0, rootDirName.Length + 1) : item.Key;
                     var data = item.Value;
-                    Directory.CreateDirectory(Path.GetDirectoryName(path));
-                    File.WriteAllBytes(path, data);
+                    AxiIO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(path));
+                    AxiIO.File.WriteAllBytes(path, data);
                 }
             }
             else
             {
-                var directPath = Path.GetDirectoryName(LocalFilePath);
-                Directory.CreateDirectory(directPath);
+                var directPath = System.IO.Path.GetDirectoryName(LocalFilePath);
+                AxiIO.Directory.CreateDirectory(directPath);
 
-                File.WriteAllBytes(LocalFilePath, bytes);
+                AxiIO.File.WriteAllBytes(LocalFilePath, bytes);
             }
             Eventer.Instance.PostEvent(EEvent.OnRomFileDownloaded, ID);
             OnDownloadOver?.Invoke(this);
@@ -297,10 +296,10 @@ namespace AxibugEmuOnline.Client
             if (webData == null) throw new Exception("Not Valid Rom");
             if (!RomReady) throw new Exception("Rom File Not Downloaded");
 
-            var bytes = File.ReadAllBytes(LocalFilePath);
-            if (Path.GetExtension(LocalFilePath).ToLower() == ".zip")
+            var bytes = AxiIO.File.ReadAllBytes(LocalFilePath);
+            if (System.IO.Path.GetExtension(LocalFilePath).ToLower() == ".zip")
             {
-                var zip = new ZipInputStream(new MemoryStream(bytes));
+                var zip = new ZipInputStream(new System.IO.MemoryStream(bytes));
                 while (true)
                 {
                     var currentEntry = zip.GetNextEntry();
@@ -310,7 +309,7 @@ namespace AxibugEmuOnline.Client
                     if (!currentEntry.Name.ToLower().EndsWith(FileExtentionName)) continue;
 
                     var buffer = new byte[1024];
-                    MemoryStream output = new MemoryStream();
+                    System.IO.MemoryStream output = new System.IO.MemoryStream();
                     while (true)
                     {
                         var size = zip.Read(buffer, 0, buffer.Length);
@@ -332,7 +331,7 @@ namespace AxibugEmuOnline.Client
         public void SetWebData(HttpAPI.Resp_RomInfo resp_RomInfo)
         {
             webData = resp_RomInfo;
-            FileName = MultiFileRom ? Path.GetFileNameWithoutExtension(webData.url) : Path.GetFileName(webData.url);
+            FileName = MultiFileRom ? System.IO.Path.GetFileNameWithoutExtension(webData.url) : System.IO.Path.GetFileName(webData.url);
             FileName = System.Net.WebUtility.UrlDecode(FileName);
 
             //收集依赖Rom
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomLib.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomLib.cs
index f18d1c1d..5da6d78a 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomLib.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomLib.cs
@@ -4,7 +4,6 @@ using AxibugEmuOnline.Client.Event;
 using AxibugProtobuf;
 using System;
 using System.Collections.Generic;
-using System.IO;
 using System.Linq;
 using static AxibugEmuOnline.Client.HttpAPI;
 
@@ -62,14 +61,14 @@ namespace AxibugEmuOnline.Client
         public void ClearRomFile()
         {
             var path = $"{App.PersistentDataPath(m_platform)}/RemoteRoms";
-            if (Directory.Exists(path)) Directory.Delete(path, true);
+            if (AxiIO.Directory.Exists(path)) AxiIO.Directory.Delete(path, true);
         }
 
         /// <summary> 移除一个已下载的Rom </summary>
         public void RemoveOneRomFile(RomFile romFile)
         {
             if (romFile.RomReady)
-                File.Delete(romFile.LocalFilePath);
+                AxiIO.File.Delete(romFile.LocalFilePath);
         }
 
         /// <summary>
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/SaveSlotManager/SaveFile.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/SaveSlotManager/SaveFile.cs
index 30882e71..11080cb6 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/SaveSlotManager/SaveFile.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/SaveSlotManager/SaveFile.cs
@@ -1,9 +1,7 @@
 using AxibugEmuOnline.Client.ClientCore;
 using AxibugEmuOnline.Client.Tools;
 using AxibugProtobuf;
-using MAME.Core;
 using System;
-using System.IO;
 using System.Runtime.InteropServices;
 
 namespace AxibugEmuOnline.Client
@@ -32,7 +30,7 @@ namespace AxibugEmuOnline.Client
                 var path = App.UserPersistenDataPath(EmuPlatform);
                 path = $"{path}/Slot/{RomID}";
 
-                Directory.CreateDirectory(path);
+                AxiIO.Directory.CreateDirectory(path);
 
                 var filePath = $"{path}/slot{SlotIndex}.SlotSav";
                 return filePath;
@@ -80,25 +78,36 @@ namespace AxibugEmuOnline.Client
             FSM.AddState<SyncedState>();
             FSM.OnStateChanged += FSM_OnStateChanged;
 
-            IsEmpty = !File.Exists(FilePath);
+            IsEmpty = !AxiIO.File.Exists(FilePath);
 
             if (IsEmpty) Sequecen = 0;
             else //从文件头读取存储序号
             {
                 byte[] saveOrderData = new byte[4];
-                var streaming = File.OpenRead(FilePath);
-                int res = streaming.Read(saveOrderData, 0, 4);
-                if (res != 4) //无效的存档文件
+
+                //FileStream streaming = System.IO.File.OpenRead(FilePath);
+                //int res = streaming.Read(saveOrderData, 0, 4);
+                //if (res != 4) //无效的存档文件
+                //{
+                //    IsEmpty = true;
+                //    File.Delete(FilePath);
+                //}
+                //else
+                //{
+                //    Sequecen = BitConverter.ToUInt32(saveOrderData, 0);
+                //}
+                //streaming.Dispose();
+
+                int res = AxiIO.File.ReadBytesToArr(FilePath, saveOrderData,0,4);
+                if (res < 4) //无效的存档文件
                 {
                     IsEmpty = true;
-                    File.Delete(FilePath);
+                    AxiIO.File.Delete(FilePath);
                 }
                 else
                 {
                     Sequecen = BitConverter.ToUInt32(saveOrderData, 0);
                 }
-
-                streaming.Dispose();
             }
 
             FSM.ChangeState<IdleState>();
@@ -138,9 +147,9 @@ namespace AxibugEmuOnline.Client
             savData = null;
             screenShotData = null;
 
-            if (!File.Exists(FilePath)) return;
+            if (!AxiIO.File.Exists(FilePath)) return;
 
-            var raw = File.ReadAllBytes(FilePath);
+            var raw = AxiIO.File.ReadAllBytes(FilePath);
             int headerSize = Marshal.SizeOf(typeof(Header));
 
             if (raw.Length < headerSize)
@@ -199,7 +208,7 @@ namespace AxibugEmuOnline.Client
             Array.Copy(savData, 0, raw, headerSize, savData.Length);
             Array.Copy(screenShotData, 0, raw, headerSize + savData.Length, screenShotData.Length);
 
-            File.WriteAllBytes(filePath, raw);
+            AxiIO.File.WriteAllBytes(filePath, raw);
             Sequecen = sequence;
 
             m_headerCache = header;
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/MonoCom/AudioMgr.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/MonoCom/AudioMgr.cs
index d0b7cf5d..2a9a83f5 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/MonoCom/AudioMgr.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/MonoCom/AudioMgr.cs
@@ -1,7 +1,6 @@
 using AxibugEmuOnline.Client.ClientCore;
 using System;
 using System.Collections.Generic;
-using System.IO;
 using System.Linq;
 using System.Text;
 using UnityEngine;
@@ -103,9 +102,9 @@ namespace AxibugEmuOnline.Client
         string GetSavePath()
         {
             string dir = $"{App.PersistentDataPath(App.emu.Core.Platform)}/AxiSoundRecord";
-            if (!Directory.Exists(dir))
+            if (!AxiIO.Directory.Exists(dir))
             {
-                Directory.CreateDirectory(dir);
+                AxiIO.Directory.CreateDirectory(dir);
             }
             return $"{dir}/{App.tick.GetDateTimeStr()}";
         }
@@ -132,13 +131,21 @@ namespace AxibugEmuOnline.Client
                 OverlayManager.PopTip("没有录音数据");
                 return;
             }
-
-            using (FileStream file = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))
+            using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
             {
-                file.Write(waveHeader.GetBytes(), 0, (int)waveHeader.Length());
-                file.Write(formatChunk.GetBytes(), 0, (int)formatChunk.Length());
-                file.Write(dataChunk.GetBytes(), 0, (int)dataChunk.Length());
+                ms.Write(waveHeader.GetBytes(), 0, (int)waveHeader.Length());
+                ms.Write(formatChunk.GetBytes(), 0, (int)formatChunk.Length());
+                ms.Write(dataChunk.GetBytes(), 0, (int)dataChunk.Length());
+                AxiIO.File.WriteAllBytesFromStream(filename, ms);
             }
+
+            //using (FileStream file = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))
+            //{
+            //    file.Write(waveHeader.GetBytes(), 0, (int)waveHeader.Length());
+            //    file.Write(formatChunk.GetBytes(), 0, (int)formatChunk.Length());
+            //    file.Write(dataChunk.GetBytes(), 0, (int)dataChunk.Length());
+            //}
+
             IsRecording = false;
             OverlayManager.PopTip("录音结束");
         }
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/NES.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/NES.cs
index 8c07370e..47eca7bb 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/NES.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/NES.cs
@@ -1,6 +1,5 @@
 using System;
 using System.Collections.Generic;
-using System.IO;
 using System.Text;
 using VirtualNes.Core.Debug;
 
@@ -28,13 +27,13 @@ namespace VirtualNes.Core
         private int m_nNsfSongMode;
         private bool m_bMoviePlay;
         private bool m_bMovieRec;
-        private Stream m_fpMovie;
+        private System.IO.Stream m_fpMovie;
         private uint m_MovieControl;
         private int m_MovieStepTotal;
         private int m_MovieStep;
         private bool m_bTapePlay;
         private bool m_bTapeRec;
-        private Stream m_fpTape;
+        private System.IO.Stream m_fpTape;
         private double m_TapeCycles;
         private byte m_TapeIn;
         private byte m_TapeOut;
@@ -1110,7 +1109,7 @@ namespace VirtualNes.Core
                 return;
 
             int i = 0;
-            Stream fp = null;
+            System.IO.Stream fp = null;
             DISKFILEHDR ifh;
             byte[] lpDisk = rom.GetPROM();
             byte[] lpWrite = rom.GetDISK();
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ROM.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ROM.cs
index addb70d6..ee38757d 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ROM.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/ROM.cs
@@ -1,5 +1,4 @@
 using System;
-using System.IO;
 using VirtualNes.Core.Debug;
 
 namespace VirtualNes.Core
@@ -29,7 +28,7 @@ namespace VirtualNes.Core
 
         public ROM(string fname)
         {
-            Stream fp = null;
+            System.IO.Stream fp = null;
             byte[] temp = null;
             byte[] bios = null;
             long FileSize = 0;
@@ -218,7 +217,7 @@ namespace VirtualNes.Core
                 }
 
                 Supporter.S.GetRomPathInfo(fname, out fullpath, out path);
-                name = Path.GetFileNameWithoutExtension(fullpath);
+                name = System.IO.Path.GetFileNameWithoutExtension(fullpath);
                 if (!bNSF)
                 {
                     mapper = (header.control1 >> 4) | (header.control2 & 0xF0);
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/State/StateBuffer.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/State/StateBuffer.cs
index a419ed20..6e8b4e01 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/State/StateBuffer.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/State/StateBuffer.cs
@@ -1,6 +1,5 @@
 using System;
 using System.Collections.Generic;
-using System.IO;
 using System.Text;
 
 namespace VirtualNes.Core
@@ -84,22 +83,22 @@ namespace VirtualNes.Core
     }
     public class StateReader
     {
-        private MemoryStream m_dataStream;
+        private System.IO.MemoryStream m_dataStream;
 
         public long Remain => m_dataStream.Length - 1 - m_dataStream.Position;
 
         public StateReader(byte[] bytes)
         {
-            m_dataStream = new MemoryStream(bytes);
+            m_dataStream = new System.IO.MemoryStream(bytes);
         }
 
         public void Skip(uint count)
         {
-            m_dataStream.Seek(count, SeekOrigin.Current);
+            m_dataStream.Seek(count, System.IO.SeekOrigin.Current);
         }
         public void Skip(long count)
         {
-            m_dataStream.Seek(count, SeekOrigin.Current);
+            m_dataStream.Seek(count, System.IO.SeekOrigin.Current);
         }
 
         public byte[] Read_bytes(int length)
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/Supporter.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/Supporter.cs
index 3287ab8f..43438ef6 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/Supporter.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/Supporter.cs
@@ -1,6 +1,4 @@
-using System.IO;
-
-namespace VirtualNes.Core
+namespace VirtualNes.Core
 {
     public static class Supporter
     {
@@ -15,15 +13,15 @@ namespace VirtualNes.Core
 
     public interface ISupporterImpl
     {
-        Stream OpenRom(string fname);
+        System.IO.Stream OpenRom(string fname);
         void GetRomPathInfo(string fname, out string fullPath, out string directPath);
-        Stream OpenFile_DISKSYS();
+        System.IO.Stream OpenFile_DISKSYS();
         void SaveSRAMToFile(byte[] sramContent, string romName);
         void SaveDISKToFile(byte[] diskFileContent, string romName);
         EmulatorConfig Config { get; }
         void PrepareDirectory(string directPath);
         void SaveFile(byte[] fileData, string directPath, string fileName);
-        Stream OpenFile(string directPath, string fileName);
+        System.IO.Stream OpenFile(string directPath, string fileName);
         bool TryGetMapperNo(ROM rom, out int mapperNo);
         ControllerState GetControllerState();
         void SampleInput(uint frameCount);
diff --git a/AxibugEmuOnline.Server/Manager/SavDataManager.cs b/AxibugEmuOnline.Server/Manager/SavDataManager.cs
index d4af4547..4c8b7a61 100644
--- a/AxibugEmuOnline.Server/Manager/SavDataManager.cs
+++ b/AxibugEmuOnline.Server/Manager/SavDataManager.cs
@@ -3,6 +3,7 @@ using AxibugEmuOnline.Server.Manager.Client;
 using AxibugEmuOnline.Server.NetWork;
 using AxibugProtobuf;
 using MySql.Data.MySqlClient;
+using System.Data;
 using System.Net.Sockets;
 
 namespace AxibugEmuOnline.Server.Manager
@@ -30,7 +31,7 @@ namespace AxibugEmuOnline.Server.Manager
             respData.SavDataList.Add(nulldata);
             respData.SavDataList.Add(nulldata);
 
-            string query = "SELECT `id`,`uid`,`romid`, `savidx`, `savName`,`savNote`, `savUrl`,`savImgUrl`, `savDate` from user_gamesavedata where uid = ?uid and romid = ?romid";
+            string query = "SELECT `id`,`uid`,`romid`, `savidx`, `savName`,`savNote`, `savUrl`,`savImgUrl`, `savDate`, `savSequence` from user_gamesavedata where uid = ?uid and romid = ?romid";
             bool bHad = false;
             using (MySqlConnection conn = SQLRUN.GetConn("RecvGameMark"))
             {
@@ -55,6 +56,7 @@ namespace AxibugEmuOnline.Server.Manager
                                 SavUrl = reader.GetString(6),
                                 SavImgUrl = reader.GetString(7),
                                 SavDate = reader.GetDateTime(8).ToString(),
+                                Sequence = reader.GetInt32(9),
                                 GamePlatformType = AppSrv.g_GameShareMgr.GetRomPlatformType(msg.RomID)
                             };
                             respData.SavDataList[resp.SavDataIdx] = resp;
@@ -178,8 +180,8 @@ namespace AxibugEmuOnline.Server.Manager
                 {
                     //INSERT INTO `haoyue_emu`.`user_gamesavedata` ( `uid`, `romid`, `savidx`, `savName`, `savNote`, `savUrl`, `savImgUrl`, `savDate`) VALUES ( 0, 0, 2147483647, '', '', '', '', '0000-00-00 00:00:00');
                     string query = "INSERT INTO `haoyue_emu`.`user_gamesavedata`" +
-                        " ( `uid`, `romid`, `savidx`, `savName`, `savNote`, `savUrl`, `savImgUrl`, `savDate`)" +
-                        " VALUES ( ?uid, ?romid, ?savidx, ?savName, ?savNote, ?savUrl, ?savImgUrl, ?savDate);";
+                        " ( `uid`, `romid`, `savidx`, `savName`, `savNote`, `savUrl`, `savImgUrl`, `savDate`, `savSequence`)" +
+                        " VALUES ( ?uid, ?romid, ?savidx, ?savName, ?savNote, ?savUrl, ?savImgUrl, ?savDate, ?savSequence);";
 
 
                     using (MySqlConnection conn = SQLRUN.GetConn("RecvUpLoadGameSav"))
@@ -195,6 +197,7 @@ namespace AxibugEmuOnline.Server.Manager
                             command.Parameters.AddWithValue("?savUrl", rompath);
                             command.Parameters.AddWithValue("?savImgUrl", imgpath);
                             command.Parameters.AddWithValue("?savDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
+                            command.Parameters.AddWithValue("?savSequence", msg.Sequence);
                             if (command.ExecuteNonQuery() < 1)
                             {
                                 AppSrv.g_Log.Error("执行即时存档保存失败");
@@ -271,7 +274,7 @@ namespace AxibugEmuOnline.Server.Manager
             {
                 try
                 {
-                    string query = "SELECT `id`,`uid`, `romid`, `savidx`, `savName`, `savNote`, `savUrl`, `savImgUrl`, `savDate` from `user_gamesavedata` where uid = ?uid and romid = ?romid and savidx = ?savidx";
+                    string query = "SELECT `id`,`uid`, `romid`, `savidx`, `savName`, `savNote`, `savUrl`, `savImgUrl`, `savDate` , `savSequence` from `user_gamesavedata` where uid = ?uid and romid = ?romid and savidx = ?savidx";
                     using (var command = new MySqlCommand(query, conn))
                     {
                         // 设置参数值
@@ -294,7 +297,8 @@ namespace AxibugEmuOnline.Server.Manager
                                     SavUrl = reader.GetString(6),
                                     SavImgUrl = reader.GetString(7),
                                     SavDate = reader.GetDateTime(8).ToString("yyyy-MM-dd HH:mm:ss"),
-                                    GamePlatformType = ptype
+                                    GamePlatformType = ptype,
+                                    Sequence = reader.GetInt32(9),
                                 };
                                 bhad = true;
                                 break;