From 25eb0e50d4e815efb16d1a9953beac6ea1c7cfc3 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期六, 28 三月 2026 10:14:32 +0800
Subject: [PATCH] webgl merge

---
 Assets/Spine/Runtime/spine-unity/Shaders/Outline/SkeletonGraphic/Spine-SkeletonGraphic-Outline.shader              |    4 
 Assets/Editor/IniImporter.cs                                                                                       |   19 
 Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Additive.shader                     |    4 
 Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderer.cs                                                    |   13 
 Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Fill.shader                         |    4 
 Assets/Launch/Common/LocalSave.cs                                                                                  |  270 ++-
 Assets/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs                                                            |   10 
 Assets/Editor/Tool/ConvertWebGLTextureToETC2.cs.meta                                                               |    2 
 Assets/Launch/UI/LaunchWins/LaunchExWin.cs                                                                         |   67 
 Assets/Editor/Tool/FixSpriteAtlasWebGLAlpha.cs                                                                     |   73 +
 Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesVertexLit.shader                                            |   30 
 Assets/HybridCLRGenerate/link.xml                                                                                  |  118 +
 Assets/Launch/Launch.cs                                                                                            |  289 ++--
 Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Fill.shader                                                |    2 
 Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack.shader          |    6 
 ProjectSettings/GraphicsSettings.asset                                                                             |   17 
 Assets/Editor/Tool/ConvertWebGLTextureToETC2.cs                                                                    |  230 +++
 Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic.shader                              |    4 
 Assets/Launch/Common/PreserveEngineTypes.cs.meta                                                                   |    2 
 Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesPixelLit.shader                                             |   50 
 Assets/Spine/Runtime/spine-unity/Shaders/Spine-Special-Skeleton-Grayscale.shader                                   |    2 
 Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack-Multiply.shader |    6 
 Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Additive.shader                             |    4 
 Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Multiply.shader                             |    4 
 ProjectSettings/ProjectSettings.asset                                                                              |   17 
 Assets/Launch/Common/DownLoadAndDiscompressTask.cs                                                                 |  246 +-
 Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Multiply.shader                     |    4 
 Assets/Editor/YooAsset/YooAssetBuildTool.cs                                                                        |  356 +++++
 Assets/Plugins/Android/launcherTemplate.gradle                                                                     |    1 
 Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack-Additive.shader |    6 
 Assets/Editor/Tool/WindowTool.cs                                                                                   |    4 
 Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Tint.shader                                                |    4 
 Assets/Launch/HttpRequest/HttpBehaviour.cs                                                                         |   50 
 Assets/Launch/VersionConfigEx.cs                                                                                   |   27 
 Assets/Editor/Tool/ExportVersionConfigEx.cs                                                                        |   33 
 Assets/Editor/SpineSettings.asset                                                                                  |    6 
 Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Lit-ZWrite.shader                                          |    6 
 Assets/Editor/IniImporter.cs.meta                                                                                  |    2 
 Assets/AssetBundleCollectorSetting.asset                                                                           |   15 
 Assets/Launch/Manager/LocalResManager.cs                                                                           |  458 ++----
 Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Lit.shader                                                 |    6 
 Assets/Editor/UI/AssetDuplicateCheck.cs                                                                            |    3 
 Assets/Launch/HttpRequest/HttpRequest.cs                                                                           |   47 
 Assets/Plugins/Android/mainTemplate.gradle                                                                         |   19 
 Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Skeleton-OutlineOnly-ZWrite.shader                          |    6 
 Assets/Editor/UI/UIAdjustEditor.cs                                                                                 |    2 
 Assets/Plugins/NativeWebSocket/Assets/WebSocket/WebSocket.jslib                                                    |   39 
 Assets/Editor/Tool/InGameDownTestWindow.cs                                                                         |   20 
 Assets/Launch/Config/AssetSource.cs                                                                                |   42 
 Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Screen.shader                               |    4 
 Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Grayscale.shader                    |    4 
 Assets/Plugins/WebGL/Clipboard.jslib                                                                               |   21 
 Assets/Resources/Scenes/Launch.unity                                                                               |    2 
 Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack-Screen.shader   |    6 
 Assets/Launch/Common/Clock.cs                                                                                      |    6 
 Assets/Launch/Common/DownloadMgr.cs                                                                                |   13 
 Assets/Launch/Utility/LaunchUtility.cs                                                                             |   10 
 Assets/HybridCLRGenerate/AOTGenericReferences.cs                                                                   | 1075 +++++++++++----
 Assets/Editor/Tool/FixSpriteAtlasWebGLAlpha.cs.meta                                                                |    2 
 Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Skeleton-Outline.shader                                     |    6 
 Assets/Launch/Manager/YooAssetInitializer.cs                                                                       |   32 
 Assets/Plugins/WebGL/Clipboard.jslib.meta                                                                          |   32 
 Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Screen.shader                       |    4 
 Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesUnlit.shader                                                |   12 
 Assets/Plugins/WebGL.meta                                                                                          |    8 
 Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton.shader                                                     |    2 
 Assets/Editor/Tool/ClientPackage.cs                                                                                |    9 
 /dev/null                                                                                                          |  111 -
 Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-TintBlack.shader                                           |    4 
 Assets/Launch/Common/PreserveEngineTypes.cs                                                                        |   21 
 70 files changed, 2,649 insertions(+), 1,384 deletions(-)

diff --git a/Assets/AssetBundleCollectorSetting.asset b/Assets/AssetBundleCollectorSetting.asset
index d2ce2e5..239cf2d 100644
--- a/Assets/AssetBundleCollectorSetting.asset
+++ b/Assets/AssetBundleCollectorSetting.asset
@@ -103,7 +103,7 @@
         AddressRuleName: AddressByRelativePath
         PackRuleName: PackDirectory
         FilterRuleName: CollectAll
-        AssetTags: 
+        AssetTags: shader
         UserData: 
       - CollectPath: Assets/ResourcesOut/Materials
         CollectorGUID: 676c8b4532d6ca646804bf73ed43dd96
@@ -151,6 +151,19 @@
       AssetTags: 
       ActiveRuleName: EnableGroup
       Collectors: []
+    - GroupName: HybridCLR Generated
+      GroupDesc: 
+      AssetTags: 
+      ActiveRuleName: EnableGroup
+      Collectors:
+      - CollectPath: Assets/HybridCLRDlls
+        CollectorGUID: 
+        CollectorType: 0
+        AddressRuleName: AddressByFileName
+        PackRuleName: PackRawFile
+        FilterRuleName: CollectAll
+        AssetTags: 
+        UserData: 
   - PackageName: UIEffect
     PackageDesc: 
     EnableAddressable: 1
diff --git a/Assets/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs b/Assets/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs
index 97dbd63..5cfc0a4 100644
--- a/Assets/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs
+++ b/Assets/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs
@@ -15,6 +15,7 @@
 using HybridCLR.Editor.HotUpdate;
 using HybridCLR.Editor;
 using System.Text;
+using Cysharp.Threading.Tasks;
 
 namespace UnityEngine.AssetBundles
 {
@@ -223,12 +224,12 @@
             }
         }
 
-        private static void SetVersionConfig(string _publisher)
+        private static async void SetVersionConfig(string _publisher)
         {
             var versionName = string.Empty;
             var fromVersionConfig = ClientPackage.GetVersionConfig(_publisher, out versionName);
 
-            var versionConfig = VersionConfig.Get();
+            var versionConfig = await VersionConfig.GetAsync();
 
             VersionConfig.Copy(fromVersionConfig, versionConfig);
 
@@ -1078,7 +1079,10 @@
                 var lineStrings = line.Split('\t');
                 if (lineStrings[0] == publishers)
                 {
-                    VersionConfig.Get().Read(line);
+                    VersionConfig.GetAsync().ContinueWith(config =>
+                    {
+                        config.Read(line);
+                    }).Forget();
                     break;
                 }
             }
diff --git a/Assets/Editor/IniImporter.cs b/Assets/Editor/IniImporter.cs
new file mode 100644
index 0000000..c1d617f
--- /dev/null
+++ b/Assets/Editor/IniImporter.cs
@@ -0,0 +1,19 @@
+using UnityEngine;
+using UnityEditor.AssetImporters;
+using System.IO;
+
+/// <summary>
+/// 璁� Unity 灏� .ini 鏂囦欢浣滀负 TextAsset 瀵煎叆锛�
+/// 浣垮叾鍙互琚� YooAsset Collector 鏀跺綍骞堕�氳繃 LoadAssetAsync<TextAsset> 鍔犺浇銆�
+/// </summary>
+[ScriptedImporter(1, "ini")]
+public class IniImporter : ScriptedImporter
+{
+    public override void OnImportAsset(AssetImportContext ctx)
+    {
+        var text = File.ReadAllText(ctx.assetPath);
+        var asset = new TextAsset(text);
+        ctx.AddObjectToAsset("main", asset);
+        ctx.SetMainObject(asset);
+    }
+}
diff --git a/Assets/Launch/FirstPackLang.cs.meta b/Assets/Editor/IniImporter.cs.meta
similarity index 83%
copy from Assets/Launch/FirstPackLang.cs.meta
copy to Assets/Editor/IniImporter.cs.meta
index 94ca447..a002387 100644
--- a/Assets/Launch/FirstPackLang.cs.meta
+++ b/Assets/Editor/IniImporter.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 2024c0ab267b19244a4f367fbab5523b
+guid: f62e2a5c044fb5a4a88dbb5c177d7a50
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Assets/Editor/SpineSettings.asset b/Assets/Editor/SpineSettings.asset
index aa3c89d..9f21358 100644
--- a/Assets/Editor/SpineSettings.asset
+++ b/Assets/Editor/SpineSettings.asset
@@ -25,9 +25,9 @@
   textureSettingsReference: Assets/Spine/Editor/spine-unity/Editor/ImporterPresets/StraightAlphaPreset.preset
   fixPrefabOverrideViaMeshFilter: 0
   removePrefabPreviewMeshes: 0
-  blendModeMaterialMultiply: {fileID: 2100000, guid: 053fed1e18e65064ca564f05c4027e1e, type: 2}
-  blendModeMaterialScreen: {fileID: 2100000, guid: 1a66c2d7ee7642a459bd3831abeb30af, type: 2}
-  blendModeMaterialAdditive: {fileID: 2100000, guid: 517c2df5a5dc5d44a8b3820eca503d13, type: 2}
+  blendModeMaterialMultiply: {fileID: 0}
+  blendModeMaterialScreen: {fileID: 0}
+  blendModeMaterialAdditive: {fileID: 0}
   atlasTxtImportWarning: 1
   textureImporterWarning: 1
   componentMaterialWarning: 1
diff --git a/Assets/Editor/Tool/ClientPackage.cs b/Assets/Editor/Tool/ClientPackage.cs
index a2cee64..5c3cbe6 100644
--- a/Assets/Editor/Tool/ClientPackage.cs
+++ b/Assets/Editor/Tool/ClientPackage.cs
@@ -6,6 +6,7 @@
 using System.IO;
 using System.Text.RegularExpressions;
 using System.Text;
+using Cysharp.Threading.Tasks;
 
 //using Beebyte.Obfuscator;
 
@@ -599,8 +600,12 @@
 
         AssetDatabase.SaveAssets();
         AssetDatabase.Refresh();
-        PlayerSettings.iOS.buildNumber = VersionConfig.Get().buildIndex.ToString();
-        PlayerSettings.iOS.appleDeveloperTeamID = VersionConfig.Get().appleDeveloperTeamID;
+        VersionConfig.GetAsync().ContinueWith(config =>
+        {
+            PlayerSettings.iOS.buildNumber = config.buildIndex.ToString();
+            PlayerSettings.iOS.appleDeveloperTeamID = config.appleDeveloperTeamID;
+        }).Forget();
+
 
 #if UNITY_IOS
         if (_replace)
diff --git a/Assets/Editor/Tool/ConvertWebGLTextureToETC2.cs b/Assets/Editor/Tool/ConvertWebGLTextureToETC2.cs
new file mode 100644
index 0000000..9913635
--- /dev/null
+++ b/Assets/Editor/Tool/ConvertWebGLTextureToETC2.cs
@@ -0,0 +1,230 @@
+using UnityEditor;
+using UnityEditor.U2D;
+using UnityEngine;
+using System.Collections.Generic;
+
+/// <summary>
+/// 鎵归噺灏嗘墍鏈夎创鍥惧拰鍥鹃泦鐨� WebGL 骞冲彴鏍煎紡鏀逛负 ETC2 鍘嬬缉銆�
+/// 鏍规嵁鍘熷鏍煎紡鑷姩鍒ゆ柇鏄惁闇�瑕� Alpha 閫氶亾锛�
+///   - 鏈� Alpha 鈫� ETC2_RGBA8
+///   - 鏃� Alpha 鈫� ETC2_RGB4
+/// 
+/// 浣跨敤鑿滃崟锛氱▼搴�/Sprite/WebGL璐村浘杞珽TC2
+/// </summary>
+public class ConvertWebGLTextureToETC2
+{
+    [MenuItem("绋嬪簭/Sprite/WebGL璐村浘杞珽TC2(鍏ㄩ儴)")]
+    public static void ConvertAll()
+    {
+        ConvertTextures();
+        ConvertSpriteAtlases();
+
+        AssetDatabase.SaveAssets();
+        AssetDatabase.Refresh();
+    }
+
+    [MenuItem("绋嬪簭/Sprite/WebGL璐村浘杞珽TC2(浠呰创鍥�)")]
+    public static void ConvertTexturesOnly()
+    {
+        ConvertTextures();
+        AssetDatabase.SaveAssets();
+        AssetDatabase.Refresh();
+    }
+
+    [MenuItem("绋嬪簭/Sprite/WebGL璐村浘杞珽TC2(浠呭浘闆�)")]
+    public static void ConvertAtlasesOnly()
+    {
+        ConvertSpriteAtlases();
+        AssetDatabase.SaveAssets();
+        AssetDatabase.Refresh();
+    }
+
+    static void ConvertTextures()
+    {
+        var guids = AssetDatabase.FindAssets("t:Texture2D", new[] { "Assets/ResourcesOut" });
+        int total = guids.Length;
+        int converted = 0;
+        int skipped = 0;
+
+        for (int i = 0; i < total; i++)
+        {
+            var assetPath = AssetDatabase.GUIDToAssetPath(guids[i]);
+            EditorUtility.DisplayProgressBar("WebGL璐村浘杞珽TC2", $"[{i + 1}/{total}] {assetPath}", (float)i / total);
+
+            var importer = AssetImporter.GetAtPath(assetPath) as TextureImporter;
+            if (importer == null)
+            {
+                skipped++;
+                continue;
+            }
+
+            bool needsAlpha = NeedsAlpha(importer);
+            var targetFormat = needsAlpha ? TextureImporterFormat.ETC2_RGBA8 : TextureImporterFormat.ETC2_RGB4;
+
+            var webGLSettings = importer.GetPlatformTextureSettings("WebGL");
+
+            // 宸茬粡鏄洰鏍囨牸寮忓垯璺宠繃
+            if (webGLSettings.overridden && webGLSettings.format == targetFormat)
+            {
+                skipped++;
+                continue;
+            }
+
+            webGLSettings.overridden = true;
+            webGLSettings.maxTextureSize = GetMaxTextureSize(importer);
+            webGLSettings.textureCompression = TextureImporterCompression.Compressed;
+            webGLSettings.format = targetFormat;
+            webGLSettings.compressionQuality = 50;
+
+            importer.SetPlatformTextureSettings(webGLSettings);
+            importer.SaveAndReimport();
+            converted++;
+
+            Debug.Log($"[ETC2] 璐村浘 {(needsAlpha ? "RGBA8" : "RGB4")}: {assetPath}");
+        }
+
+        EditorUtility.ClearProgressBar();
+        Debug.Log($"[ETC2] 璐村浘澶勭悊瀹屾垚锛氳浆鎹� {converted}锛岃烦杩� {skipped}锛屽叡 {total}");
+        EditorUtility.DisplayDialog("璐村浘杞崲瀹屾垚",
+            $"杞崲 {converted} 涓紝璺宠繃 {skipped} 涓紝鍏� {total} 涓创鍥俱��",
+            "OK");
+    }
+
+    static void ConvertSpriteAtlases()
+    {
+        var guids = AssetDatabase.FindAssets("t:SpriteAtlas", new[] { "Assets/ResourcesOut" });
+        int total = guids.Length;
+        int converted = 0;
+        int skipped = 0;
+
+        for (int i = 0; i < total; i++)
+        {
+            var assetPath = AssetDatabase.GUIDToAssetPath(guids[i]);
+            EditorUtility.DisplayProgressBar("WebGL鍥鹃泦杞珽TC2", $"[{i + 1}/{total}] {assetPath}", (float)i / total);
+
+            try
+            {
+                var importer = SpriteAtlasImporter.GetAtPath(assetPath) as SpriteAtlasImporter;
+                if (importer == null)
+                {
+                    skipped++;
+                    continue;
+                }
+
+                var webGLSettings = importer.GetPlatformSettings("WebGL");
+
+                // 鍒ゆ柇 Alpha锛氭鏌ュ叾浠栧钩鍙扮殑璁剧疆鏉ユ帹鏂�
+                bool needsAlpha = AtlasNeedsAlpha(importer);
+                var targetFormat = needsAlpha ? TextureImporterFormat.ETC2_RGBA8 : TextureImporterFormat.ETC2_RGB4;
+
+                if (webGLSettings.overridden && webGLSettings.format == targetFormat)
+                {
+                    skipped++;
+                    continue;
+                }
+
+                webGLSettings.overridden = true;
+                webGLSettings.maxTextureSize = 2048;
+                webGLSettings.textureCompression = TextureImporterCompression.Compressed;
+                webGLSettings.format = targetFormat;
+                webGLSettings.compressionQuality = 50;
+
+                importer.SetPlatformSettings(webGLSettings);
+                importer.SaveAndReimport();
+                converted++;
+
+                Debug.Log($"[ETC2] 鍥鹃泦 {(needsAlpha ? "RGBA8" : "RGB4")}: {assetPath}");
+            }
+            catch (System.Exception ex)
+            {
+                Debug.LogError($"[ETC2] 鍥鹃泦澶勭悊澶辫触 {assetPath}: {ex.Message}");
+            }
+        }
+
+        EditorUtility.ClearProgressBar();
+        Debug.Log($"[ETC2] 鍥鹃泦澶勭悊瀹屾垚锛氳浆鎹� {converted}锛岃烦杩� {skipped}锛屽叡 {total}");
+        EditorUtility.DisplayDialog("鍥鹃泦杞崲瀹屾垚",
+            $"杞崲 {converted} 涓紝璺宠繃 {skipped} 涓紝鍏� {total} 涓浘闆嗐��",
+            "OK");
+    }
+
+    /// <summary>
+    /// 鍒ゆ柇璐村浘鏄惁闇�瑕� Alpha 閫氶亾
+    /// </summary>
+    static bool NeedsAlpha(TextureImporter importer)
+    {
+        // 1. 妫�鏌ヨ创鍥炬湰韬槸鍚﹀惈 Alpha
+        if (importer.DoesSourceTextureHaveAlpha())
+            return true;
+
+        // 2. 妫�鏌ュ凡鏈夊钩鍙拌缃殑鏍煎紡鏉ユ帹鏂�
+        foreach (var platform in new[] { "Android", "iPhone", "Standalone" })
+        {
+            var settings = importer.GetPlatformTextureSettings(platform);
+            if (settings.overridden && IsAlphaFormat(settings.format))
+                return true;
+        }
+
+        // 3. 妫�鏌� alphaSource 璁剧疆
+        if (importer.alphaSource != TextureImporterAlphaSource.None)
+            return importer.DoesSourceTextureHaveAlpha();
+
+        return false;
+    }
+
+    /// <summary>
+    /// 鍒ゆ柇鍥鹃泦鏄惁闇�瑕� Alpha锛堥�氳繃妫�鏌ュ叾浠栧钩鍙扮殑鏍煎紡鎺ㄦ柇锛�
+    /// </summary>
+    static bool AtlasNeedsAlpha(SpriteAtlasImporter importer)
+    {
+        foreach (var platform in new[] { "Android", "iPhone", "Standalone" })
+        {
+            var settings = importer.GetPlatformSettings(platform);
+            if (settings.overridden && IsAlphaFormat(settings.format))
+                return true;
+        }
+        // 鍥鹃泦榛樿璁や负闇�瑕� Alpha锛圲I 鍥鹃泦澶у鏈夐�忔槑锛�
+        return true;
+    }
+
+    /// <summary>
+    /// 鍒ゆ柇鏍煎紡鏄惁鍖呭惈 Alpha 閫氶亾
+    /// </summary>
+    static bool IsAlphaFormat(TextureImporterFormat format)
+    {
+        switch (format)
+        {
+            case TextureImporterFormat.RGBA32:
+            case TextureImporterFormat.RGBA16:
+            case TextureImporterFormat.ARGB32:
+            case TextureImporterFormat.ARGB16:
+            case TextureImporterFormat.DXT5:
+            case TextureImporterFormat.ETC2_RGBA8:
+            case TextureImporterFormat.ASTC_4x4:
+            case TextureImporterFormat.ASTC_5x5:
+            case TextureImporterFormat.ASTC_6x6:
+            case TextureImporterFormat.ASTC_8x8:
+            case TextureImporterFormat.ASTC_10x10:
+            case TextureImporterFormat.ASTC_12x12:
+            case TextureImporterFormat.PVRTC_RGBA2:
+            case TextureImporterFormat.PVRTC_RGBA4:
+                return true;
+            default:
+                return false;
+        }
+    }
+
+    /// <summary>
+    /// 鑾峰彇宸叉湁鐨勬渶澶ц创鍥惧昂瀵歌缃�
+    /// </summary>
+    static int GetMaxTextureSize(TextureImporter importer)
+    {
+        foreach (var platform in new[] { "Android", "iPhone", "Standalone" })
+        {
+            var settings = importer.GetPlatformTextureSettings(platform);
+            if (settings.overridden)
+                return settings.maxTextureSize;
+        }
+        return importer.maxTextureSize;
+    }
+}
diff --git a/Assets/Launch/FirstPackLang.cs.meta b/Assets/Editor/Tool/ConvertWebGLTextureToETC2.cs.meta
similarity index 83%
copy from Assets/Launch/FirstPackLang.cs.meta
copy to Assets/Editor/Tool/ConvertWebGLTextureToETC2.cs.meta
index 94ca447..f3a7160 100644
--- a/Assets/Launch/FirstPackLang.cs.meta
+++ b/Assets/Editor/Tool/ConvertWebGLTextureToETC2.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 2024c0ab267b19244a4f367fbab5523b
+guid: 692c5aa4ed3ecc04b8ae0ba3f4036893
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Assets/Editor/Tool/ExportVersionConfigEx.cs b/Assets/Editor/Tool/ExportVersionConfigEx.cs
index b460ad2..4245a32 100644
--- a/Assets/Editor/Tool/ExportVersionConfigEx.cs
+++ b/Assets/Editor/Tool/ExportVersionConfigEx.cs
@@ -1,20 +1,21 @@
-锘縰sing System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEditor;
-using System.IO;
-using UnityEngine.UI;
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEditor;
+using System.IO;
+using UnityEngine.UI;
 using System.Reflection;
 
 
-public class ExportVersionConfigEx : EditorWindow {
-
-
-    [MenuItem("绋嬪簭/鍚屾VersionConfigEx.txt", false)]
-    private static void Export()
+public class ExportVersionConfigEx : EditorWindow {
+
+
+    [MenuItem("绋嬪簭/鍚屾VersionConfigEx.txt", false)]
+    private static async void Export()
     {
         //鐢熸垚VersionConfigEx.txt 鎻愪緵缁橝OT鍚姩鏃朵娇鐢�
-        var json = JsonUtility.ToJson(VersionConfig.Get());
+        await VersionConfig.GetAsync();
+        var json = JsonUtility.ToJson(VersionConfig.config);
         string versionConfigExFile = Application.dataPath + "/Resources/VersionConfigEx.txt";
         if (File.Exists(versionConfigExFile))
         {
@@ -25,7 +26,7 @@
         AssetDatabase.Refresh();
         Debug.Log("鍚屾VersionConfigEx.txt鎴愬姛");
 
-    }
-
-  
-}
+    }
+
+  
+}
diff --git a/Assets/Editor/Tool/FixSpriteAtlasWebGLAlpha.cs b/Assets/Editor/Tool/FixSpriteAtlasWebGLAlpha.cs
new file mode 100644
index 0000000..96b1e46
--- /dev/null
+++ b/Assets/Editor/Tool/FixSpriteAtlasWebGLAlpha.cs
@@ -0,0 +1,73 @@
+using UnityEditor;
+using UnityEditor.U2D;
+using UnityEngine;
+
+/// <summary>
+/// 鎵归噺涓烘墍鏈� SpriteAtlas V2 鏂囦欢娣诲姞 WebGL 骞冲彴璁剧疆锛堜繚鐣� Alpha 閫氶亾锛夈��
+/// 
+/// 闂鍘熷洜锛氶」鐩墍鏈� .spriteatlasv2 鏂囦欢鍙厤缃簡 Standalone/Android/iPhone 骞冲彴锛�
+/// WebGL 娌℃湁骞冲彴瑕嗙洊锛孶nity 榛樿浣跨敤涓嶅惈 Alpha 鐨勫帇缂╂牸寮忥紝瀵艰嚧杩愯鏃� Sprite 鍙樹负涓嶉�忔槑銆�
+/// 
+/// 浣跨敤鑿滃崟锛氱▼搴�/Sprite/淇WebGL鍥鹃泦Alpha閫忔槑
+/// </summary>
+public class FixSpriteAtlasWebGLAlpha
+{
+    [MenuItem("绋嬪簭/Sprite/淇WebGL鍥鹃泦Alpha閫忔槑")]
+    public static void FixAllAtlases()
+    {
+        var guids = AssetDatabase.FindAssets("t:SpriteAtlas", new[] { "Assets/ResourcesOut" });
+        int total = guids.Length;
+        int fixed_count = 0;
+
+        for (int i = 0; i < total; i++)
+        {
+            var assetPath = AssetDatabase.GUIDToAssetPath(guids[i]);
+            EditorUtility.DisplayProgressBar("淇WebGL鍥鹃泦Alpha", $"澶勭悊: {assetPath}", (float)i / total);
+
+            try
+            {
+                var importer = SpriteAtlasImporter.GetAtPath(assetPath) as SpriteAtlasImporter;
+                if (importer == null)
+                {
+                    Debug.LogWarning($"[FixAtlasAlpha] 鏃犳硶鑾峰彇 SpriteAtlasImporter: {assetPath}");
+                    continue;
+                }
+
+                var webGLSettings = importer.GetPlatformSettings("WebGL");
+
+                // 宸叉湁 WebGL 瑕嗙洊涓斿凡鏄洰鏍囨牸寮忓垯璺宠繃
+                if (webGLSettings.overridden && webGLSettings.format == TextureImporterFormat.ASTC_8x8)
+                {
+                    continue;
+                }
+
+                // ASTC 8x8 鈥� 鍚� Alpha 閫氶亾锛屼笌 Android/iPhone 淇濇寔涓�鑷�
+                webGLSettings.overridden = true;
+                webGLSettings.maxTextureSize = 2048;
+                webGLSettings.textureCompression = TextureImporterCompression.Compressed;
+                webGLSettings.format = TextureImporterFormat.ASTC_8x8;
+                webGLSettings.compressionQuality = 50;
+                webGLSettings.allowsAlphaSplitting = false;
+
+                importer.SetPlatformSettings(webGLSettings);
+                importer.SaveAndReimport();
+                fixed_count++;
+
+                Debug.Log($"[FixAtlasAlpha] 宸茶缃� WebGL=ASTC_8x8: {assetPath}");
+            }
+            catch (System.Exception ex)
+            {
+                Debug.LogError($"[FixAtlasAlpha] 澶勭悊澶辫触 {assetPath}: {ex.Message}");
+            }
+        }
+
+        EditorUtility.ClearProgressBar();
+        AssetDatabase.SaveAssets();
+        AssetDatabase.Refresh();
+
+        Debug.Log($"[FixAtlasAlpha] 瀹屾垚锛佸叡淇 {fixed_count}/{total} 涓浘闆嗐�傞噸鏂版瀯寤� AssetBundle 鍚庣敓鏁堛��");
+        EditorUtility.DisplayDialog("淇瀹屾垚",
+            $"鍏变慨澶� {fixed_count}/{total} 涓浘闆嗭紙WebGL 骞冲彴璁剧疆涓� ASTC 8x8锛屽惈 Alpha锛夈�俓n\n璇烽噸鏂版瀯寤� WebGL AssetBundle 鍚庢祴璇曘��",
+            "OK");
+    }
+}
diff --git a/Assets/Launch/FirstPackLang.cs.meta b/Assets/Editor/Tool/FixSpriteAtlasWebGLAlpha.cs.meta
similarity index 83%
copy from Assets/Launch/FirstPackLang.cs.meta
copy to Assets/Editor/Tool/FixSpriteAtlasWebGLAlpha.cs.meta
index 94ca447..3f85756 100644
--- a/Assets/Launch/FirstPackLang.cs.meta
+++ b/Assets/Editor/Tool/FixSpriteAtlasWebGLAlpha.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 2024c0ab267b19244a4f367fbab5523b
+guid: c61296c694ca5354db00ce0372f79aa4
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Assets/Editor/Tool/InGameDownTestWindow.cs b/Assets/Editor/Tool/InGameDownTestWindow.cs
index 256cbdb..42a7ee9 100644
--- a/Assets/Editor/Tool/InGameDownTestWindow.cs
+++ b/Assets/Editor/Tool/InGameDownTestWindow.cs
@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEditor;
+using Cysharp.Threading.Tasks;
 
 public class InGameDownTestWindow : EditorWindow
 {
@@ -22,14 +23,19 @@
         {
             InGameDownTestUtility.enable = !InGameDownTestUtility.enable;
 
-            if (InGameDownTestUtility.enable)
+            VersionConfig.GetAsync().ContinueWith(config =>
             {
-                VersionConfig.Get().assetAccess = InstalledAsset.NullAsset;
-            }
-            else
-            {
-                VersionConfig.Get().assetAccess = InstalledAsset.IngoreDownLoad;
-            }
+                if (InGameDownTestUtility.enable)
+                {
+                    VersionConfig.config.assetAccess = InstalledAsset.NullAsset;
+                }
+                else
+                {
+                    VersionConfig.config.assetAccess = InstalledAsset.IngoreDownLoad;
+                }
+            }).Forget();
+
+
         }
 
         EditorGUILayout.Space();
diff --git a/Assets/Editor/Tool/WindowTool.cs b/Assets/Editor/Tool/WindowTool.cs
index 61ddefc..6130386 100644
--- a/Assets/Editor/Tool/WindowTool.cs
+++ b/Assets/Editor/Tool/WindowTool.cs
@@ -60,7 +60,7 @@
         if (GUILayout.Button("鎵撳紑"))
         {
             // 鎵撳紑绐楀彛閫昏緫
-            UIManager.Instance.OpenWindow(windowName).Forget();
+            UIManager.Instance.OpenWindowAsync(windowName).Forget();
         }
         if (GUILayout.Button("鍏抽棴"))
         {
@@ -74,7 +74,7 @@
                 UIManager.Instance.CloseWindow(win);
             }
 
-            UIManager.Instance.OpenWindow("BattleWin").Forget();
+            UIManager.Instance.OpenWindowAsync("BattleWin").Forget();
         }
 
         EditorGUILayout.EndHorizontal();
diff --git a/Assets/Editor/UI/AssetDuplicateCheck.cs b/Assets/Editor/UI/AssetDuplicateCheck.cs
index e2457b3..430758f 100644
--- a/Assets/Editor/UI/AssetDuplicateCheck.cs
+++ b/Assets/Editor/UI/AssetDuplicateCheck.cs
@@ -1,4 +1,4 @@
-using System;
+锘縰sing System;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
@@ -6,6 +6,7 @@
 using System.Threading.Tasks;
 using UnityEditor;
 using UnityEngine;
+using Cysharp.Threading.Tasks;
 
 namespace ProjSG.Editor.UI
 {
diff --git a/Assets/Editor/UI/UIAdjustEditor.cs b/Assets/Editor/UI/UIAdjustEditor.cs
index e83353d..610fc27 100644
--- a/Assets/Editor/UI/UIAdjustEditor.cs
+++ b/Assets/Editor/UI/UIAdjustEditor.cs
@@ -28,7 +28,7 @@
         {
             if (Application.isPlaying && !string.IsNullOrEmpty(uiName))
             {
-                UIManager.Instance.OpenWindow(uiName).Forget();
+                UIManager.Instance.OpenWindowAsync(uiName).Forget();
             }
             else
             {
diff --git a/Assets/Editor/YooAsset/YooAssetBuildTool.cs b/Assets/Editor/YooAsset/YooAssetBuildTool.cs
index 0835b85..5306fad 100644
--- a/Assets/Editor/YooAsset/YooAssetBuildTool.cs
+++ b/Assets/Editor/YooAsset/YooAssetBuildTool.cs
@@ -9,6 +9,7 @@
 using UnityEngine;
 using YooAsset;
 using YooAsset.Editor;
+using HybridCLR.Editor.Commands;
 using Debug = UnityEngine.Debug;
 
 public static class YooAssetBuildTool
@@ -16,14 +17,52 @@
     /// <summary>
     /// 鎵�鏈夐渶瑕佹墦鍖呯殑 Package 鍚嶇О锛堜笌 AssetBundleCollectorSetting 涓�鑷达級
     /// </summary>
-    private static readonly string[] ALL_PACKAGES = { "Prefab", "UI", "UIEffect", "Battle", "Audio", "Video", "Builtin" };
+    private static readonly string[] ALL_PACKAGES = { "Prefab", "UI", "UIEffect", "Battle", "Audio", "Video", "Builtin", "Dll" };
 
     /// <summary>
-    /// 鐗堟湰鍙锋牸寮忥細鏃ユ湡+鏃堕棿
+    /// HybridCLR .bytes 鏂囦欢杈撳嚭鐩綍锛堢浉瀵� Assets锛�
+    /// </summary>
+    private const string HYBRIDCLR_DLLS_ASSETS_PATH = "Assets/HybridCLRDlls";
+
+    /// <summary>
+    /// AOT 鍏冩暟鎹� DLL 鍒楄〃锛堜笌 AOTGenericReferences.PatchedAOTAssemblyList 淇濇寔涓�鑷达級
+    /// </summary>
+    private static readonly string[] AOT_DLL_NAMES =
+    {
+        "DOTween.dll",
+        "Launch.dll",
+        "System.Core.dll",
+        "UniTask.dll",
+        "UnityEngine.AndroidJNIModule.dll",
+        "UnityEngine.AssetBundleModule.dll",
+        "UnityEngine.CoreModule.dll",
+        "UnityEngine.JSONSerializeModule.dll",
+        "UnityEngine.UI.dll",
+        "mscorlib.dll",
+        "spine-csharp.dll",
+    };
+
+    /// <summary>
+    /// 鐗堟湰鍙凤細鏃ユ湡+鏃堕棿銆傚閲忔墦鍖呮椂鍙鐢ㄥ悓涓�鐗堟湰鍙枫��
     /// </summary>
     private static string GenerateVersion()
     {
         return DateTime.Now.ToString("yyyy-MM-dd-HHmm");
+    }
+
+    /// <summary>
+    /// 鑾峰彇涓婁竴娆℃墦鍖呯増鏈彿锛堝鏋滃瓨鍦級銆傚閲忔墦鍖呮椂浣跨敤鍚屼竴鐗堟湰鍙峰彲鍔犻�熴��
+    /// </summary>
+    private static string GetLastBuildVersion(string packageName)
+    {
+        string outputRoot = AssetBundleBuilderHelper.GetDefaultBuildOutputRoot();
+        string platformDir = System.IO.Path.Combine(outputRoot, EditorUserBuildSettings.activeBuildTarget.ToString(), packageName);
+        if (!System.IO.Directory.Exists(platformDir)) return null;
+        var dirs = System.IO.Directory.GetDirectories(platformDir);
+        if (dirs.Length == 0) return null;
+        // 鍙栨渶鏂扮殑鐗堟湰鐩綍
+        System.Array.Sort(dirs);
+        return System.IO.Path.GetFileName(dirs[dirs.Length - 1]);
     }
 
     // ====================================================================
@@ -46,11 +85,87 @@
     }
 
     [MenuItem("YooAsset宸ュ叿/鍒囨崲AB妯″紡 (褰撳墠: 鍏抽棴)", true)]
+    [MenuItem("YooAsset宸ュ叿/鍒囨崲AB妯″紡 (褰撳墠: 鍏抽棴)", true)]
     private static bool ToggleABModeValidate()
     {
         bool isOn = EditorPrefs.GetBool("YooAsset_UseAssetBundle", false);
         Menu.SetChecked("YooAsset宸ュ叿/鍒囨崲AB妯″紡 (褰撳墠: 鍏抽棴)", isOn);
         return true;
+    }
+
+    [MenuItem("YooAsset宸ュ叿/妯℃嫙 WebGL 妯″紡 (褰撳墠: 鍏抽棴)", false, 110)]
+    private static void ToggleSimulateWebGL()
+    {
+        bool current = EditorPrefs.GetBool("YooAsset_SimulateWebGL", false);
+        bool next = !current;
+        EditorPrefs.SetBool("YooAsset_SimulateWebGL", next);
+
+        if (next && !EditorPrefs.GetBool("YooAsset_UseAssetBundle", false))
+        {
+            // 妯℃嫙 WebGL 蹇呴』寮�鍚� AB 妯″紡
+            EditorPrefs.SetBool("YooAsset_UseAssetBundle", true);
+            Debug.Log("[YooAssetBuildTool] 宸茶嚜鍔ㄥ紑鍚� AB 妯″紡锛圵ebGL 妯℃嫙蹇呴渶锛�");
+        }
+
+        Debug.Log($"[YooAssetBuildTool] 妯℃嫙 WebGL 妯″紡: {(next ? "寮�鍚�" : "鍏抽棴")}");
+        EditorUtility.DisplayDialog("妯℃嫙 WebGL 妯″紡",
+            next
+                ? "宸插紑鍚�侲ditor 涓嬪皢鏍规嵁閰嶇疆鑷姩閫夋嫨:\n路 閰嶇疆鏈湴 CDN 璺緞 -> HostPlayMode\n路 鏈厤缃湰鍦� CDN 璺緞 -> OfflinePlayMode\n\n鍓嶆彁锛歕n路 宸插紑鍚� AB 妯″紡锛堝凡鑷姩寮�鍚級\n路 璧勬簮宸叉墦鍖呭埌 StreamingAssets\n路 Dll 鍖呯殑 .bytes 鏂囦欢宸插瓨鍦�"
+                : "宸插叧闂�傚皢鎭㈠ Editor 榛樿鍔犺浇妯″紡銆�",
+            "纭畾");
+    }
+
+    [MenuItem("YooAsset宸ュ叿/妯℃嫙 WebGL 妯″紡 (褰撳墠: 鍏抽棴)", true)]
+    private static bool ToggleSimulateWebGLValidate()
+    {
+        bool isOn = EditorPrefs.GetBool("YooAsset_SimulateWebGL", false);
+        Menu.SetChecked("YooAsset宸ュ叿/妯℃嫙 WebGL 妯″紡 (褰撳墠: 鍏抽棴)", isOn);
+        return true;
+    }
+
+    /// <summary>
+    /// 璁剧疆鏈湴纭洏鐩綍浣滀负 WebGL 妯℃嫙 CDN 鏍硅矾寰勩��
+    /// 鐣欑┖鏃� WebPlayMode 浠呬娇鐢� StreamingAssets锛堝凡瓒冲瑕嗙洊鍏ㄩ儴鎵撳寘璧勬簮锛夛紱
+    /// 鍙湁闇�瑕佹祴璇曘�岃繙绋嬩笅杞姐�嶅垎鏀椂鎵嶉渶瑕侀厤缃椤广��
+    /// 璺緞绀轰緥: E:/ProjSG/Bundles/StandaloneWindows64  锛圷ooAsset 榛樿杈撳嚭鏍圭洰褰曚笅鐨勫钩鍙板瓙鐩綍锛�
+    /// </summary>
+    [MenuItem("YooAsset宸ュ叿/璁剧疆妯℃嫙 CDN 鏈湴璺緞", false, 120)]
+    private static void SetSimLocalCdnPath()
+    {
+        string current = EditorPrefs.GetString("YooAsset_SimLocalCdnPath", "");
+        // 榛樿鎵撳紑 Bundles/{Platform} 杈撳嚭鐩綍
+        if (string.IsNullOrEmpty(current))
+        {
+            current = System.IO.Path.Combine(
+                AssetBundleBuilderHelper.GetDefaultBuildOutputRoot(),
+                EditorUserBuildSettings.activeBuildTarget.ToString());
+        }
+
+        string selected = EditorUtility.OpenFolderPanel(
+            "閫夋嫨鏈湴 CDN 鏍圭洰褰曪紙妯℃嫙 WebGL 杩滅▼鍔犺浇锛�",
+            System.IO.Directory.Exists(current) ? current : AssetBundleBuilderHelper.GetDefaultBuildOutputRoot(),
+            "");
+
+        if (string.IsNullOrEmpty(selected))
+            return;
+
+        EditorPrefs.SetString("YooAsset_SimLocalCdnPath", selected);
+        // 杞崲涓� file:/// URI 棰勮缁欑敤鎴�
+        string uri = new System.Uri(selected).AbsoluteUri;
+        Debug.Log($"[YooAssetBuildTool] 妯℃嫙 CDN 璺緞宸茶缃�:\n  纾佺洏璺緞: {selected}\n  file URI: {uri}");
+        EditorUtility.DisplayDialog(
+            "妯℃嫙 CDN 璺緞",
+            $"宸茶缃湰鍦� CDN 璺緞:\n{selected}\n\n杞崲鍚庣殑 file URI:\n{uri}\n\n" +
+            "娉ㄦ剰锛氳矾寰勪笅闇�鍖呭惈瀵瑰簲鍖呯殑 Manifest 鏂囦欢鍜� Bundle 鏂囦欢銆俓n" +
+            "濡傛墍鏈夎祫婧愬凡鎵撳寘杩� StreamingAssets锛屽彲涓嶉厤缃椤广��",
+            "纭畾");
+    }
+
+    [MenuItem("YooAsset宸ュ叿/娓呴櫎妯℃嫙 CDN 鏈湴璺緞", false, 121)]
+    private static void ClearSimLocalCdnPath()
+    {
+        EditorPrefs.SetString("YooAsset_SimLocalCdnPath", "");
+        Debug.Log("[YooAssetBuildTool] 妯℃嫙 CDN 璺緞宸叉竻闄わ紝WebPlayMode 灏嗕粎浠� StreamingAssets 鍔犺浇銆�");
     }
 
     // ====================================================================
@@ -60,7 +175,20 @@
     [MenuItem("YooAsset宸ュ叿/涓�閿墦鍖呮墍鏈塒ackage (BuiltinBuildPipeline)", false, 200)]
     private static void BuildAllPackages()
     {
+        BuildAllPackagesInternal(incremental: false);
+    }
+
+    [MenuItem("YooAsset宸ュ叿/澧為噺鎵撳寘鎵�鏈塒ackage (璺宠繃HybridCLR)", false, 201)]
+    private static void BuildAllPackagesIncremental()
+    {
+        BuildAllPackagesInternal(incremental: true);
+    }
+
+    private static void BuildAllPackagesInternal(bool incremental)
+    {
+        string modeDesc = incremental ? "澧為噺鎵撳寘锛堣烦杩嘓ybridCLR锛屽鐢ㄧ増鏈彿锛�" : "鍏ㄩ噺鎵撳寘";
         if (!EditorUtility.DisplayDialog("纭鎵撳寘",
+            $"妯″紡: {modeDesc}\n" +
             $"灏嗕娇鐢� BuiltinBuildPipeline 鎵撳寘浠ヤ笅 {ALL_PACKAGES.Length} 涓� Package:\n" +
             $"{string.Join(", ", ALL_PACKAGES)}\n\n" +
             $"骞冲彴: {EditorUserBuildSettings.activeBuildTarget}\n" +
@@ -71,12 +199,36 @@
             return;
         }
 
-        string version = GenerateVersion();
+        // ---- 鎵撳寘鍓嶏細HybridCLR DLL锛堝閲忔ā寮忚烦杩囷級----
+        if (!incremental)
+        {
+            if (!CopyHybridCLRDlls())
+            {
+                EditorUtility.DisplayDialog("鎷疯礉 DLL 澶辫触",
+                    "HybridCLR DLL 鎷疯礉澶辫触锛岃鍏堟墽琛� HybridCLR/Generate/All 鐢熸垚 DLL 鏂囦欢銆俓n璇︽儏璇锋煡鐪� Console 鏃ュ織銆�",
+                    "纭畾");
+                return;
+            }
+        }
+
+        // 澧為噺妯″紡澶嶇敤涓婃鐗堟湰鍙凤紝閬垮厤 YooAsset 璁や负鍏ㄦ柊鐗堟湰
+        string version;
+        if (incremental)
+        {
+            string lastVer = GetLastBuildVersion(ALL_PACKAGES[0]);
+            version = !string.IsNullOrEmpty(lastVer) ? lastVer : GenerateVersion();
+            Debug.Log($"[YooAssetBuildTool] 澧為噺妯″紡锛屽鐢ㄧ増鏈彿: {version}");
+        }
+        else
+        {
+            version = GenerateVersion();
+        }
+
         int successCount = 0;
         int failCount = 0;
         var sw = Stopwatch.StartNew();
 
-        Debug.Log($"[YooAssetBuildTool] ========== 寮�濮嬫墦鍖� ==========");
+        Debug.Log($"[YooAssetBuildTool] ========== 寮�濮媨(incremental ? "澧為噺" : "鍏ㄩ噺")}鎵撳寘 ==========");
         Debug.Log($"[YooAssetBuildTool] 鐗堟湰鍙�: {version}");
         Debug.Log($"[YooAssetBuildTool] 骞冲彴: {EditorUserBuildSettings.activeBuildTarget}");
 
@@ -141,6 +293,39 @@
      [MenuItem("YooAsset宸ュ叿/鎵撳寘鍗曚釜Package/Builtin", false, 306)]
     private static void BuildBuiltin() => BuildSingleWithDialog("Builtin");
 
+    [MenuItem("YooAsset宸ュ叿/鎵撳寘鍗曚釜Package/Dll (HybridCLR)", false, 307)]
+    private static void BuildDll()
+    {
+        string version = GenerateVersion();
+        if (!EditorUtility.DisplayDialog("纭鎵撳寘",
+            $"鎵撳寘 Package: Dll (HybridCLR)\n鐗堟湰: {version}\n骞冲彴: {EditorUserBuildSettings.activeBuildTarget}\n\n灏嗗厛鎷疯礉 HybridCLR 鐢熸垚鐨� DLL 鍒� {HYBRIDCLR_DLLS_ASSETS_PATH}",
+            "寮�濮�", "鍙栨秷"))
+        {
+            return;
+        }
+
+        EditorUtility.DisplayProgressBar("YooAsset 鎵撳寘涓�...", "姝e湪鎷疯礉 HybridCLR DLL...", 0.2f);
+        if (!CopyHybridCLRDlls())
+        {
+            EditorUtility.ClearProgressBar();
+            EditorUtility.DisplayDialog("鎷疯礉 DLL 澶辫触",
+                "HybridCLR DLL 鎷疯礉澶辫触锛岃鍏堟墽琛� HybridCLR/Generate/All 鐢熸垚 DLL 鏂囦欢銆俓n璇︽儏璇锋煡鐪� Console 鏃ュ織銆�",
+                "纭畾");
+            return;
+        }
+
+        EditorUtility.DisplayProgressBar("YooAsset 鎵撳寘涓�...", "姝e湪鎵撳寘 Dll...", 0.6f);
+        bool ok = BuildSinglePackage("Dll", version);
+        EditorUtility.ClearProgressBar();
+
+        if (ok)
+            EditorUtility.DisplayDialog("鎵撳寘鎴愬姛", "Package 'Dll' 鎵撳寘瀹屾垚锛�", "纭畾");
+        else
+            EditorUtility.DisplayDialog("鎵撳寘澶辫触", "Package 'Dll' 鎵撳寘澶辫触锛岃鏌ョ湅 Console 鏃ュ織銆�", "纭畾");
+
+        AssetDatabase.Refresh();
+    }
+
     private static void BuildSingleWithDialog(string packageName)
     {
         string version = GenerateVersion();
@@ -167,6 +352,169 @@
         AssetDatabase.Refresh();
     }
 
+    // ====================================================================
+    // HybridCLR DLL 鎷疯礉
+    // ====================================================================
+
+    /// <summary>
+    /// 灏� HybridCLR 鐢熸垚鐨� DLL 鎷疯礉鍒� Assets/HybridCLRDlls锛屽苟娣诲姞 .bytes 鍚庣紑浠ヤ緵 YooAsset 鏀堕泦銆�
+    /// 鏉ユ簮1: HybridCLRData/HotUpdateDlls/{platform}/Main.dll  鈫� Assets/HybridCLRDlls/Main.dll.bytes
+    /// 鏉ユ簮2: HybridCLRData/AssembliesPostIl2CppStrip/{platform}/{aot}.dll 鈫� Assets/HybridCLRDlls/{aot}.dll.bytes
+    /// </summary>
+    private static bool CopyHybridCLRDlls()
+    {
+        // --- Step 1: 鍏堣繍琛� HybridCLR Generate All锛岄噸鏂扮紪璇戠儹鏇� DLL 骞惰鍓� AOT DLL ---
+        Debug.Log("[YooAssetBuildTool] 姝e湪鎵ц HybridCLR GenerateAll...");
+        EditorUtility.DisplayProgressBar("HybridCLR GenerateAll", "缂栬瘧鐑洿 DLL 骞惰鍓� AOT...", 0f);
+        try
+        {
+            PrebuildCommand.GenerateAll();
+            Debug.Log("[YooAssetBuildTool] HybridCLR GenerateAll 瀹屾垚");
+        }
+        catch (Exception ex)
+        {
+            EditorUtility.ClearProgressBar();
+            Debug.LogError($"[YooAssetBuildTool] HybridCLR GenerateAll 澶辫触: {ex.Message}");
+            return false;
+        }
+        EditorUtility.ClearProgressBar();
+
+        // --- Step 2: 鎷疯礉鐢熸垚鐨� DLL 鍒� Assets/HybridCLRDlls ---
+        string projectRoot = System.IO.Path.GetFullPath(
+            System.IO.Path.Combine(Application.dataPath, ".."));
+        string platform = GetHybridCLRPlatformFolder();
+
+        string hotUpdateSrc = System.IO.Path.Combine(
+            projectRoot, "HybridCLRData", "HotUpdateDlls", platform);
+        string aotSrc = System.IO.Path.Combine(
+            projectRoot, "HybridCLRData", "AssembliesPostIl2CppStrip", platform);
+        string destDir = System.IO.Path.Combine(Application.dataPath, "HybridCLRDlls");
+
+        if (!System.IO.Directory.Exists(hotUpdateSrc))
+        {
+            Debug.LogError($"[YooAssetBuildTool] HotUpdateDlls 鐩綍涓嶅瓨鍦�: {hotUpdateSrc}\n璇峰厛鎵ц HybridCLR/Generate/All");
+            return false;
+        }
+        if (!System.IO.Directory.Exists(aotSrc))
+        {
+            Debug.LogError($"[YooAssetBuildTool] AssembliesPostIl2CppStrip 鐩綍涓嶅瓨鍦�: {aotSrc}\n璇峰厛鎵ц HybridCLR/Generate/All");
+            return false;
+        }
+
+        if (!System.IO.Directory.Exists(destDir))
+            System.IO.Directory.CreateDirectory(destDir);
+
+        int copied = 0;
+        int failed = 0;
+
+        // --- 鐑洿鏂颁富绋嬪簭闆� Main.dll ---
+        string mainSrc = System.IO.Path.Combine(hotUpdateSrc, "Main.dll");
+        string mainDst = System.IO.Path.Combine(destDir, "Main.dll.bytes");
+        if (System.IO.File.Exists(mainSrc))
+        {
+            System.IO.File.Copy(mainSrc, mainDst, overwrite: true);
+            Debug.Log($"[YooAssetBuildTool] 鉁� 鎷疯礉鐑洿 DLL: Main.dll 鈫� Main.dll.bytes");
+            copied++;
+        }
+        else
+        {
+            Debug.LogError($"[YooAssetBuildTool] 鉁� Main.dll 涓嶅瓨鍦�: {mainSrc}");
+            failed++;
+        }
+
+        // --- AOT 鍏冩暟鎹� DLL ---
+        foreach (string dllName in AOT_DLL_NAMES)
+        {
+            string src = System.IO.Path.Combine(aotSrc, dllName);
+            string dst = System.IO.Path.Combine(destDir, dllName + ".bytes");
+            if (System.IO.File.Exists(src))
+            {
+                System.IO.File.Copy(src, dst, overwrite: true);
+                Debug.Log($"[YooAssetBuildTool] 鉁� 鎷疯礉 AOT DLL: {dllName} 鈫� {dllName}.bytes");
+                copied++;
+            }
+            else
+            {
+                Debug.LogWarning($"[YooAssetBuildTool] 鉁� AOT DLL 涓嶅瓨鍦�: {src}");
+                failed++;
+            }
+        }
+
+        Debug.Log($"[YooAssetBuildTool] DLL 鎷疯礉瀹屾垚: 鎴愬姛 {copied} 涓�, 澶辫触/缂哄け {failed} 涓� 鈫� {destDir}");
+        AssetDatabase.Refresh();
+
+        // 纭繚 Assets/HybridCLRDlls 宸叉敞鍐屽埌 YooAsset Dll Package Collector
+        EnsureDllPackageCollector();
+
+        return failed == 0;
+    }
+
+    /// <summary>
+    /// 纭繚 Assets/HybridCLRDlls 鐩綍宸蹭綔涓� Collector 娉ㄥ唽鍒� YooAsset "Dll" Package 涓��
+    /// 濡傛灉 Package / Group / Collector 宸插瓨鍦ㄥ垯璺宠繃锛屼繚鎸佸箓绛夈��
+    /// </summary>
+    private static void EnsureDllPackageCollector()
+    {
+        const string packageName = "Dll";
+        const string groupName   = "HybridCLR Generated";
+
+        var setting = AssetBundleCollectorSettingData.Setting;
+
+        // 鎵炬垨鍒涘缓 Dll Package
+        var dllPackage = setting.Packages.Find(p => p.PackageName == packageName);
+        if (dllPackage == null)
+        {
+            dllPackage = AssetBundleCollectorSettingData.CreatePackage(packageName);
+            Debug.Log($"[YooAssetBuildTool] 宸插垱寤� YooAsset Package: {packageName}");
+        }
+
+        // 鎵炬垨鍒涘缓 HybridCLR Generated 缁�
+        var group = dllPackage.Groups.Find(g => g.GroupName == groupName);
+        if (group == null)
+        {
+            group = AssetBundleCollectorSettingData.CreateGroup(dllPackage, groupName);
+            Debug.Log($"[YooAssetBuildTool] 宸插垱寤� Group: {groupName}");
+        }
+
+        // 妫�鏌ユ槸鍚﹀凡鏈� Assets/HybridCLRDlls 鐨� Collector
+        bool exists = group.Collectors.Exists(c => c.CollectPath == HYBRIDCLR_DLLS_ASSETS_PATH);
+        if (exists)
+        {
+            Debug.Log($"[YooAssetBuildTool] Dll Package Collector 宸插瓨鍦紝璺宠繃娉ㄥ唽: {HYBRIDCLR_DLLS_ASSETS_PATH}");
+            return;
+        }
+
+        var collector = new AssetBundleCollector
+        {
+            CollectPath      = HYBRIDCLR_DLLS_ASSETS_PATH,
+            CollectorType    = ECollectorType.MainAssetCollector,
+            AddressRuleName  = nameof(AddressByFileName),
+            PackRuleName     = nameof(PackRawFile),
+            FilterRuleName   = nameof(CollectAll),
+        };
+        AssetBundleCollectorSettingData.CreateCollector(group, collector);
+        AssetBundleCollectorSettingData.SaveFile();
+        Debug.Log($"[YooAssetBuildTool] 鉁� 宸叉敞鍐� Dll Package Collector: {HYBRIDCLR_DLLS_ASSETS_PATH}");
+    }
+
+    /// <summary>
+    /// 鏍规嵁褰撳墠婵�娲荤殑鏋勫缓鐩爣杩斿洖 HybridCLR 杈撳嚭鏂囦欢澶瑰悕
+    /// </summary>
+    private static string GetHybridCLRPlatformFolder()
+    {
+        switch (EditorUserBuildSettings.activeBuildTarget)
+        {
+            case BuildTarget.Android:              return "Android";
+            case BuildTarget.iOS:                  return "iOS";
+            case BuildTarget.StandaloneWindows:
+            case BuildTarget.StandaloneWindows64:  return "StandaloneWindows64";
+            case BuildTarget.WebGL:                return "WebGL";
+            default:
+                Debug.LogWarning($"[YooAssetBuildTool] 鏈瘑鍒殑骞冲彴 {EditorUserBuildSettings.activeBuildTarget}锛岄粯璁や娇鐢� Android");
+                return "Android";
+        }
+    }
+
     /// <summary>
     /// 鎵撳寘鍗曚釜 Package
     /// </summary>
diff --git a/Assets/HybridCLRGenerate/AOTGenericReferences.cs b/Assets/HybridCLRGenerate/AOTGenericReferences.cs
index 46ff9c5..ef83b46 100644
--- a/Assets/HybridCLRGenerate/AOTGenericReferences.cs
+++ b/Assets/HybridCLRGenerate/AOTGenericReferences.cs
@@ -12,8 +12,8 @@
 		"UnityEngine.AndroidJNIModule.dll",
 		"UnityEngine.AssetBundleModule.dll",
 		"UnityEngine.CoreModule.dll",
-		"UnityEngine.JSONSerializeModule.dll",
 		"UnityEngine.UI.dll",
+		"YooAsset.dll",
 		"mscorlib.dll",
 		"spine-csharp.dll",
 	};
@@ -23,154 +23,202 @@
 	// }} 
 
 	// {{ AOT generic types
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<AdaptiveLayout.<Co_DelayShow>d__22>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<AssetBundleUtility.<Co_DoLoadAsset>d__23>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<AssetBundleUtility.<Co_DoLoadAsset>d__24>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<AssetBundleUtility.<Co_LoadAssetBundle>d__21,object>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<AssetBundleUtility.<Co_LoadAssetBundleDependenice>d__22>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<AssetBundleUtility.<Initialize>d__16>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<ChatCenter.<Co_CheckAfterCollect>d__59>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<ChatSendComponent.<Co_ClientBan>d__32>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<ConfigManager.<InitConfigs>d__6>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<CyclicScroll.<Co_StepByStepAppear>d__68>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<DownLoadAndDiscompressTask.<Co_StartDownLoad>d__33>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<DownloadTask.<Co_DownloadFile>d__40>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<DownloadTask.<Co_GetHeader>d__39>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<EffectPlayer.<PlayAsync>d__34>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<EquipExchangeCell.<RefreshEffect>d__31>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<EquipOnMainUI.<FlyToEquipCell>d__12>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<EquipTipWin.<RefreshEffect>d__21>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<GameObjectPoolManager.<CheckPoolUsage>d__13>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<HeroCallResultCell.<DisplayAsync>d__7>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<HeroCallResultWin.<MoveToNextState>d__35>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<HeroGiftWashWin.<SendPack>d__19>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<HeroPosWin.<RunTaskAsync>d__46>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<HeroScenePosCell.<DelayShow>d__13>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<LayoutElementSizeClamp.<UpdateRect>d__9>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<Main.<InitManagers>d__4>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<ServerTipDetails.<Co_StageLoadFinish>d__4>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<SmallTipWin.<UpdatePos>d__10>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<StageManager.<OnLoading>d__9>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<SysNotifyMgr.<Co_Instance>d__11>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<SystemSetting.<Co_WaitFewMinute>d__35>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<UIBase.<ApplyClickEmptySpaceClose>d__34>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<UniTaskExtension.<DelayFrameInternal>d__2>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<UniTaskExtension.<DelayTimeInternal>d__8>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<AdaptiveLayout.<Co_DelayShow>d__22>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<AssetBundleUtility.<Co_DoLoadAsset>d__23>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<AssetBundleUtility.<Co_DoLoadAsset>d__24>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<AssetBundleUtility.<Co_LoadAssetBundle>d__21,object>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<AssetBundleUtility.<Co_LoadAssetBundleDependenice>d__22>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<AssetBundleUtility.<Initialize>d__16>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<ChatCenter.<Co_CheckAfterCollect>d__59>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<ChatSendComponent.<Co_ClientBan>d__32>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<ConfigManager.<InitConfigs>d__6>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<CyclicScroll.<Co_StepByStepAppear>d__68>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<DownLoadAndDiscompressTask.<Co_StartDownLoad>d__33>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<DownloadTask.<Co_DownloadFile>d__40>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<DownloadTask.<Co_GetHeader>d__39>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<EffectPlayer.<PlayAsync>d__34>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<EquipExchangeCell.<RefreshEffect>d__31>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<EquipOnMainUI.<FlyToEquipCell>d__12>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<EquipTipWin.<RefreshEffect>d__21>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<GameObjectPoolManager.<CheckPoolUsage>d__13>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<HeroCallResultCell.<DisplayAsync>d__7>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<HeroCallResultWin.<MoveToNextState>d__35>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<HeroGiftWashWin.<SendPack>d__19>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<HeroPosWin.<RunTaskAsync>d__46>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<HeroScenePosCell.<DelayShow>d__13>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<LayoutElementSizeClamp.<UpdateRect>d__9>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<Main.<InitManagers>d__4>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<ServerTipDetails.<Co_StageLoadFinish>d__4>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<SmallTipWin.<UpdatePos>d__10>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<StageManager.<OnLoading>d__9>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<SysNotifyMgr.<Co_Instance>d__11>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<SystemSetting.<Co_WaitFewMinute>d__35>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<UIBase.<ApplyClickEmptySpaceClose>d__34>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<UniTaskExtension.<DelayFrameInternal>d__2>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<UniTaskExtension.<DelayTimeInternal>d__8>
+	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<object,System.ValueTuple<byte,object>>
+	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<object,byte>
+	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<object,int>
+	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<object,object>
+	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<object>
+	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<object,System.ValueTuple<byte,object>>
+	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<object,byte>
+	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<object,int>
+	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<object,object>
+	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<object>
+	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<System.ValueTuple<byte,object>>
+	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<byte>
+	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<int>
 	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoid.<>c<StageManager.<ToGameScene>d__8>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoid.<>c<StageManager.<ToLoginScene>d__6>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoid<StageManager.<ToGameScene>d__8>
-	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoid<StageManager.<ToLoginScene>d__6>
+	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoid.<>c<object>
+	// Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoid<object>
+	// Cysharp.Threading.Tasks.CompilerServices.IStateMachineRunnerPromise<System.ValueTuple<byte,object>>
+	// Cysharp.Threading.Tasks.CompilerServices.IStateMachineRunnerPromise<byte>
+	// Cysharp.Threading.Tasks.CompilerServices.IStateMachineRunnerPromise<int>
 	// Cysharp.Threading.Tasks.CompilerServices.IStateMachineRunnerPromise<object>
 	// Cysharp.Threading.Tasks.ITaskPoolNode<object>
+	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>>
 	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>>
+	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
 	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
+	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
+	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>>
 	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
+	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
 	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,byte>>
+	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,int>>
 	// Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,object>>
+	// Cysharp.Threading.Tasks.IUniTaskSource<byte>
+	// Cysharp.Threading.Tasks.IUniTaskSource<int>
 	// Cysharp.Threading.Tasks.IUniTaskSource<object>
+	// Cysharp.Threading.Tasks.Internal.StatePool<Cysharp.Threading.Tasks.UniTask.Awaiter<object>>
+	// Cysharp.Threading.Tasks.Internal.StateTuple<Cysharp.Threading.Tasks.UniTask.Awaiter<object>>
+	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>>
 	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
 	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>>
 	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
 	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,byte>>
+	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,int>>
 	// Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,object>>
+	// Cysharp.Threading.Tasks.UniTask.Awaiter<byte>
+	// Cysharp.Threading.Tasks.UniTask.Awaiter<int>
 	// Cysharp.Threading.Tasks.UniTask.Awaiter<object>
+	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>>
 	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
 	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>>
 	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
 	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,byte>>
+	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,int>>
 	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,object>>
+	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<byte>
+	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<int>
 	// Cysharp.Threading.Tasks.UniTask.IsCanceledSource<object>
+	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>>
 	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
 	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>>
 	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
 	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,byte>>
+	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,int>>
 	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,object>>
+	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<byte>
+	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<int>
 	// Cysharp.Threading.Tasks.UniTask.MemoizeSource<object>
+	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>>>
 	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>>
 	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>>>
 	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>>
 	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
 	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,byte>>
+	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,int>>
 	// Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,object>>
+	// Cysharp.Threading.Tasks.UniTask<byte>
+	// Cysharp.Threading.Tasks.UniTask<int>
 	// Cysharp.Threading.Tasks.UniTask<object>
 	// Cysharp.Threading.Tasks.UniTaskCompletionSourceCore<Cysharp.Threading.Tasks.AsyncUnit>
+	// Cysharp.Threading.Tasks.UniTaskCompletionSourceCore<System.ValueTuple<byte,object>>
+	// Cysharp.Threading.Tasks.UniTaskCompletionSourceCore<byte>
+	// Cysharp.Threading.Tasks.UniTaskCompletionSourceCore<int>
 	// Cysharp.Threading.Tasks.UniTaskCompletionSourceCore<object>
+	// Cysharp.Threading.Tasks.UniTaskExtensions.<>c__19<object>
+	// Cysharp.Threading.Tasks.UniTaskExtensions.<ContinueWith>d__22<byte>
+	// Cysharp.Threading.Tasks.UniTaskExtensions.<ContinueWith>d__22<object>
+	// Cysharp.Threading.Tasks.UniTaskExtensions.<ContinueWith>d__24<object,object>
 	// DG.Tweening.Core.DOGetter<float>
 	// DG.Tweening.Core.DOSetter<float>
 	// DG.Tweening.TweenCallback<float>
 	// SingletonMonobehaviour<object>
 	// Spine.ExposedList.Enumerator<object>
 	// Spine.ExposedList<object>
-	// System.Action<HourMinute>
-	// System.Action<InGameDownLoad.Reward>
+	// System.Action<BattleClickHeroData>
+	// System.Action<Cysharp.Threading.Tasks.UniTask>
 	// System.Action<Int2>
 	// System.Action<Item>
 	// System.Action<Jace.Execution.ParameterInfo>
 	// System.Action<Jace.Tokenizer.Token>
 	// System.Action<LanguageVerify.MatchString>
 	// System.Action<OperationTime>
-	// System.Action<RoleParticularModel.AlchemyDrug>
-	// System.Action<RoleParticularModel.HorseInfo>
-	// System.Action<RoleParticularModel.PetInfo>
 	// System.Action<ServerData>
 	// System.Action<ServerDataCouple>
-	// System.Action<ShopItemInfo>
+	// System.Action<System.Collections.Generic.KeyValuePair<int,int>>
 	// System.Action<System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Action<System.ValueTuple<ulong,object>>
 	// System.Action<TimeMgr.Syntony>
+	// System.Action<UnityEngine.Color>
 	// System.Action<UnityEngine.EventSystems.RaycastResult>
 	// System.Action<UnityEngine.Rect>
 	// System.Action<UnityEngine.UIVertex>
@@ -179,13 +227,16 @@
 	// System.Action<WindowConfig.OrderTable>
 	// System.Action<byte,byte>
 	// System.Action<byte,int>
+	// System.Action<byte,object,int,object>
 	// System.Action<byte,object>
 	// System.Action<byte>
 	// System.Action<double>
+	// System.Action<float,int>
 	// System.Action<float>
+	// System.Action<int,byte,int,int,object>
 	// System.Action<int,byte>
+	// System.Action<int,int,int,byte>
 	// System.Action<int,int,int>
-	// System.Action<int,int,object>
 	// System.Action<int,int>
 	// System.Action<int,object,byte>
 	// System.Action<int,object,int,int,int>
@@ -193,16 +244,22 @@
 	// System.Action<int,object>
 	// System.Action<int>
 	// System.Action<long>
-	// System.Action<object,byte,byte>
 	// System.Action<object,byte>
 	// System.Action<object,int,UnityEngine.Vector3>
 	// System.Action<object,int>
 	// System.Action<object,object,object>
 	// System.Action<object,object>
 	// System.Action<object>
+	// System.Action<uint,uint>
 	// System.Action<uint>
+	// System.Action<ulong,ulong,int>
+	// System.Action<ulong,ulong>
 	// System.Action<ulong>
 	// System.Action<ushort>
+	// System.ArraySegment.Enumerator<UnityEngine.jvalue>
+	// System.ArraySegment.Enumerator<int>
+	// System.ArraySegment<UnityEngine.jvalue>
+	// System.ArraySegment<int>
 	// System.Buffers.ArrayPool<int>
 	// System.Buffers.TlsOverPerCoreLockedStacksArrayPool.LockedStack<int>
 	// System.Buffers.TlsOverPerCoreLockedStacksArrayPool.PerCoreLockedStacks<int>
@@ -214,27 +271,28 @@
 	// System.Collections.Concurrent.ConcurrentDictionary.Node<object,object>
 	// System.Collections.Concurrent.ConcurrentDictionary.Tables<object,object>
 	// System.Collections.Concurrent.ConcurrentDictionary<object,object>
-	// System.Collections.Generic.ArraySortHelper<HourMinute>
-	// System.Collections.Generic.ArraySortHelper<InGameDownLoad.Reward>
+	// System.Collections.Concurrent.ConcurrentQueue.<Enumerate>d__28<object>
+	// System.Collections.Concurrent.ConcurrentQueue.Segment<object>
+	// System.Collections.Concurrent.ConcurrentQueue<object>
+	// System.Collections.Generic.ArraySortHelper<Cysharp.Threading.Tasks.UniTask>
 	// System.Collections.Generic.ArraySortHelper<Int2>
 	// System.Collections.Generic.ArraySortHelper<Item>
 	// System.Collections.Generic.ArraySortHelper<Jace.Execution.ParameterInfo>
 	// System.Collections.Generic.ArraySortHelper<Jace.Tokenizer.Token>
 	// System.Collections.Generic.ArraySortHelper<LanguageVerify.MatchString>
 	// System.Collections.Generic.ArraySortHelper<OperationTime>
-	// System.Collections.Generic.ArraySortHelper<RoleParticularModel.AlchemyDrug>
-	// System.Collections.Generic.ArraySortHelper<RoleParticularModel.HorseInfo>
-	// System.Collections.Generic.ArraySortHelper<RoleParticularModel.PetInfo>
 	// System.Collections.Generic.ArraySortHelper<ServerData>
 	// System.Collections.Generic.ArraySortHelper<ServerDataCouple>
-	// System.Collections.Generic.ArraySortHelper<ShopItemInfo>
+	// System.Collections.Generic.ArraySortHelper<System.Collections.Generic.KeyValuePair<int,int>>
 	// System.Collections.Generic.ArraySortHelper<System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Collections.Generic.ArraySortHelper<System.ValueTuple<ulong,object>>
 	// System.Collections.Generic.ArraySortHelper<TimeMgr.Syntony>
 	// System.Collections.Generic.ArraySortHelper<UnityEngine.EventSystems.RaycastResult>
 	// System.Collections.Generic.ArraySortHelper<UnityEngine.Rect>
 	// System.Collections.Generic.ArraySortHelper<UnityEngine.UIVertex>
 	// System.Collections.Generic.ArraySortHelper<UnityEngine.Vector3>
 	// System.Collections.Generic.ArraySortHelper<WindowConfig.OrderTable>
+	// System.Collections.Generic.ArraySortHelper<byte>
 	// System.Collections.Generic.ArraySortHelper<double>
 	// System.Collections.Generic.ArraySortHelper<int>
 	// System.Collections.Generic.ArraySortHelper<long>
@@ -242,30 +300,41 @@
 	// System.Collections.Generic.ArraySortHelper<uint>
 	// System.Collections.Generic.ArraySortHelper<ulong>
 	// System.Collections.Generic.ArraySortHelper<ushort>
-	// System.Collections.Generic.Comparer<HourMinute>
-	// System.Collections.Generic.Comparer<InGameDownLoad.Reward>
+	// System.Collections.Generic.Comparer<Cysharp.Threading.Tasks.UniTask>
 	// System.Collections.Generic.Comparer<Int2>
 	// System.Collections.Generic.Comparer<Item>
 	// System.Collections.Generic.Comparer<Jace.Execution.ParameterInfo>
 	// System.Collections.Generic.Comparer<Jace.Tokenizer.Token>
 	// System.Collections.Generic.Comparer<LanguageVerify.MatchString>
 	// System.Collections.Generic.Comparer<OperationTime>
-	// System.Collections.Generic.Comparer<RoleParticularModel.AlchemyDrug>
-	// System.Collections.Generic.Comparer<RoleParticularModel.HorseInfo>
-	// System.Collections.Generic.Comparer<RoleParticularModel.PetInfo>
 	// System.Collections.Generic.Comparer<ServerData>
 	// System.Collections.Generic.Comparer<ServerDataCouple>
-	// System.Collections.Generic.Comparer<ShopItemInfo>
+	// System.Collections.Generic.Comparer<System.Collections.Generic.KeyValuePair<int,int>>
 	// System.Collections.Generic.Comparer<System.Collections.Generic.KeyValuePair<object,object>>
 	// System.Collections.Generic.Comparer<System.DateTime>
+	// System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
 	// System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
+	// System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
 	// System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
+	// System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
 	// System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.Collections.Generic.Comparer<System.ValueTuple<byte,byte>>
+	// System.Collections.Generic.Comparer<System.ValueTuple<byte,int>>
 	// System.Collections.Generic.Comparer<System.ValueTuple<byte,object>>
+	// System.Collections.Generic.Comparer<System.ValueTuple<ulong,object>>
 	// System.Collections.Generic.Comparer<TimeMgr.Syntony>
 	// System.Collections.Generic.Comparer<UnityEngine.EventSystems.RaycastResult>
 	// System.Collections.Generic.Comparer<UnityEngine.Rect>
@@ -274,166 +343,200 @@
 	// System.Collections.Generic.Comparer<WindowConfig.OrderTable>
 	// System.Collections.Generic.Comparer<byte>
 	// System.Collections.Generic.Comparer<double>
+	// System.Collections.Generic.Comparer<float>
 	// System.Collections.Generic.Comparer<int>
 	// System.Collections.Generic.Comparer<long>
 	// System.Collections.Generic.Comparer<object>
 	// System.Collections.Generic.Comparer<uint>
 	// System.Collections.Generic.Comparer<ulong>
 	// System.Collections.Generic.Comparer<ushort>
+	// System.Collections.Generic.Dictionary.Enumerator<Int2,Item>
+	// System.Collections.Generic.Dictionary.Enumerator<Int2,object>
 	// System.Collections.Generic.Dictionary.Enumerator<UnityEngine.Vector2,object>
-	// System.Collections.Generic.Dictionary.Enumerator<int,ChatBubbleManager.BubbleBox>
-	// System.Collections.Generic.Dictionary.Enumerator<int,ChatBubbleManager.ChatBubble>
-	// System.Collections.Generic.Dictionary.Enumerator<int,DailyQuestTimes>
 	// System.Collections.Generic.Dictionary.Enumerator<int,InvestModel.InvestInfo>
-	// System.Collections.Generic.Dictionary.Enumerator<int,Item>
 	// System.Collections.Generic.Dictionary.Enumerator<int,RechargeCount>
 	// System.Collections.Generic.Dictionary.Enumerator<int,System.Collections.Generic.KeyValuePair<int,int>>
-	// System.Collections.Generic.Dictionary.Enumerator<int,System.DateTime>
+	// System.Collections.Generic.Dictionary.Enumerator<int,System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Collections.Generic.Dictionary.Enumerator<int,UnityEngine.Color32>
 	// System.Collections.Generic.Dictionary.Enumerator<int,byte>
 	// System.Collections.Generic.Dictionary.Enumerator<int,float>
 	// System.Collections.Generic.Dictionary.Enumerator<int,int>
 	// System.Collections.Generic.Dictionary.Enumerator<int,long>
 	// System.Collections.Generic.Dictionary.Enumerator<int,object>
-	// System.Collections.Generic.Dictionary.Enumerator<int,ulong>
+	// System.Collections.Generic.Dictionary.Enumerator<int,uint>
+	// System.Collections.Generic.Dictionary.Enumerator<long,long>
 	// System.Collections.Generic.Dictionary.Enumerator<long,object>
+	// System.Collections.Generic.Dictionary.Enumerator<object,Cysharp.Threading.Tasks.UniTask<object>>
 	// System.Collections.Generic.Dictionary.Enumerator<object,System.DateTime>
 	// System.Collections.Generic.Dictionary.Enumerator<object,double>
+	// System.Collections.Generic.Dictionary.Enumerator<object,float>
 	// System.Collections.Generic.Dictionary.Enumerator<object,int>
 	// System.Collections.Generic.Dictionary.Enumerator<object,object>
+	// System.Collections.Generic.Dictionary.Enumerator<object,ulong>
 	// System.Collections.Generic.Dictionary.Enumerator<uint,object>
 	// System.Collections.Generic.Dictionary.Enumerator<ushort,int>
 	// System.Collections.Generic.Dictionary.Enumerator<ushort,object>
+	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<Int2,Item>
+	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<Int2,object>
 	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<UnityEngine.Vector2,object>
-	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,ChatBubbleManager.BubbleBox>
-	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,ChatBubbleManager.ChatBubble>
-	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,DailyQuestTimes>
 	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,InvestModel.InvestInfo>
-	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,Item>
 	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,RechargeCount>
 	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,System.Collections.Generic.KeyValuePair<int,int>>
-	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,System.DateTime>
+	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,UnityEngine.Color32>
 	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,byte>
 	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,float>
 	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,int>
 	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,long>
 	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,object>
-	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,ulong>
+	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,uint>
+	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<long,long>
 	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<long,object>
+	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<object,Cysharp.Threading.Tasks.UniTask<object>>
 	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<object,System.DateTime>
 	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<object,double>
+	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<object,float>
 	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<object,int>
 	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<object,object>
+	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<object,ulong>
 	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<uint,object>
 	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<ushort,int>
 	// System.Collections.Generic.Dictionary.KeyCollection.Enumerator<ushort,object>
+	// System.Collections.Generic.Dictionary.KeyCollection<Int2,Item>
+	// System.Collections.Generic.Dictionary.KeyCollection<Int2,object>
 	// System.Collections.Generic.Dictionary.KeyCollection<UnityEngine.Vector2,object>
-	// System.Collections.Generic.Dictionary.KeyCollection<int,ChatBubbleManager.BubbleBox>
-	// System.Collections.Generic.Dictionary.KeyCollection<int,ChatBubbleManager.ChatBubble>
-	// System.Collections.Generic.Dictionary.KeyCollection<int,DailyQuestTimes>
 	// System.Collections.Generic.Dictionary.KeyCollection<int,InvestModel.InvestInfo>
-	// System.Collections.Generic.Dictionary.KeyCollection<int,Item>
 	// System.Collections.Generic.Dictionary.KeyCollection<int,RechargeCount>
 	// System.Collections.Generic.Dictionary.KeyCollection<int,System.Collections.Generic.KeyValuePair<int,int>>
-	// System.Collections.Generic.Dictionary.KeyCollection<int,System.DateTime>
+	// System.Collections.Generic.Dictionary.KeyCollection<int,System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Collections.Generic.Dictionary.KeyCollection<int,UnityEngine.Color32>
 	// System.Collections.Generic.Dictionary.KeyCollection<int,byte>
 	// System.Collections.Generic.Dictionary.KeyCollection<int,float>
 	// System.Collections.Generic.Dictionary.KeyCollection<int,int>
 	// System.Collections.Generic.Dictionary.KeyCollection<int,long>
 	// System.Collections.Generic.Dictionary.KeyCollection<int,object>
-	// System.Collections.Generic.Dictionary.KeyCollection<int,ulong>
+	// System.Collections.Generic.Dictionary.KeyCollection<int,uint>
+	// System.Collections.Generic.Dictionary.KeyCollection<long,long>
 	// System.Collections.Generic.Dictionary.KeyCollection<long,object>
+	// System.Collections.Generic.Dictionary.KeyCollection<object,Cysharp.Threading.Tasks.UniTask<object>>
 	// System.Collections.Generic.Dictionary.KeyCollection<object,System.DateTime>
 	// System.Collections.Generic.Dictionary.KeyCollection<object,double>
+	// System.Collections.Generic.Dictionary.KeyCollection<object,float>
 	// System.Collections.Generic.Dictionary.KeyCollection<object,int>
 	// System.Collections.Generic.Dictionary.KeyCollection<object,object>
+	// System.Collections.Generic.Dictionary.KeyCollection<object,ulong>
 	// System.Collections.Generic.Dictionary.KeyCollection<uint,object>
 	// System.Collections.Generic.Dictionary.KeyCollection<ushort,int>
 	// System.Collections.Generic.Dictionary.KeyCollection<ushort,object>
+	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<Int2,Item>
+	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<Int2,object>
 	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<UnityEngine.Vector2,object>
-	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,ChatBubbleManager.BubbleBox>
-	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,ChatBubbleManager.ChatBubble>
-	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,DailyQuestTimes>
 	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,InvestModel.InvestInfo>
-	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,Item>
 	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,RechargeCount>
 	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,System.Collections.Generic.KeyValuePair<int,int>>
-	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,System.DateTime>
+	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,UnityEngine.Color32>
 	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,byte>
 	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,float>
 	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,int>
 	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,long>
 	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,object>
-	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,ulong>
+	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,uint>
+	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<long,long>
 	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<long,object>
+	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<object,Cysharp.Threading.Tasks.UniTask<object>>
 	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<object,System.DateTime>
 	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<object,double>
+	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<object,float>
 	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<object,int>
 	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<object,object>
+	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<object,ulong>
 	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<uint,object>
 	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<ushort,int>
 	// System.Collections.Generic.Dictionary.ValueCollection.Enumerator<ushort,object>
+	// System.Collections.Generic.Dictionary.ValueCollection<Int2,Item>
+	// System.Collections.Generic.Dictionary.ValueCollection<Int2,object>
 	// System.Collections.Generic.Dictionary.ValueCollection<UnityEngine.Vector2,object>
-	// System.Collections.Generic.Dictionary.ValueCollection<int,ChatBubbleManager.BubbleBox>
-	// System.Collections.Generic.Dictionary.ValueCollection<int,ChatBubbleManager.ChatBubble>
-	// System.Collections.Generic.Dictionary.ValueCollection<int,DailyQuestTimes>
 	// System.Collections.Generic.Dictionary.ValueCollection<int,InvestModel.InvestInfo>
-	// System.Collections.Generic.Dictionary.ValueCollection<int,Item>
 	// System.Collections.Generic.Dictionary.ValueCollection<int,RechargeCount>
 	// System.Collections.Generic.Dictionary.ValueCollection<int,System.Collections.Generic.KeyValuePair<int,int>>
-	// System.Collections.Generic.Dictionary.ValueCollection<int,System.DateTime>
+	// System.Collections.Generic.Dictionary.ValueCollection<int,System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Collections.Generic.Dictionary.ValueCollection<int,UnityEngine.Color32>
 	// System.Collections.Generic.Dictionary.ValueCollection<int,byte>
 	// System.Collections.Generic.Dictionary.ValueCollection<int,float>
 	// System.Collections.Generic.Dictionary.ValueCollection<int,int>
 	// System.Collections.Generic.Dictionary.ValueCollection<int,long>
 	// System.Collections.Generic.Dictionary.ValueCollection<int,object>
-	// System.Collections.Generic.Dictionary.ValueCollection<int,ulong>
+	// System.Collections.Generic.Dictionary.ValueCollection<int,uint>
+	// System.Collections.Generic.Dictionary.ValueCollection<long,long>
 	// System.Collections.Generic.Dictionary.ValueCollection<long,object>
+	// System.Collections.Generic.Dictionary.ValueCollection<object,Cysharp.Threading.Tasks.UniTask<object>>
 	// System.Collections.Generic.Dictionary.ValueCollection<object,System.DateTime>
 	// System.Collections.Generic.Dictionary.ValueCollection<object,double>
+	// System.Collections.Generic.Dictionary.ValueCollection<object,float>
 	// System.Collections.Generic.Dictionary.ValueCollection<object,int>
 	// System.Collections.Generic.Dictionary.ValueCollection<object,object>
+	// System.Collections.Generic.Dictionary.ValueCollection<object,ulong>
 	// System.Collections.Generic.Dictionary.ValueCollection<uint,object>
 	// System.Collections.Generic.Dictionary.ValueCollection<ushort,int>
 	// System.Collections.Generic.Dictionary.ValueCollection<ushort,object>
+	// System.Collections.Generic.Dictionary<Int2,Item>
+	// System.Collections.Generic.Dictionary<Int2,object>
 	// System.Collections.Generic.Dictionary<UnityEngine.Vector2,object>
-	// System.Collections.Generic.Dictionary<int,ChatBubbleManager.BubbleBox>
-	// System.Collections.Generic.Dictionary<int,ChatBubbleManager.ChatBubble>
-	// System.Collections.Generic.Dictionary<int,DailyQuestTimes>
 	// System.Collections.Generic.Dictionary<int,InvestModel.InvestInfo>
-	// System.Collections.Generic.Dictionary<int,Item>
 	// System.Collections.Generic.Dictionary<int,RechargeCount>
 	// System.Collections.Generic.Dictionary<int,System.Collections.Generic.KeyValuePair<int,int>>
-	// System.Collections.Generic.Dictionary<int,System.DateTime>
+	// System.Collections.Generic.Dictionary<int,System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Collections.Generic.Dictionary<int,UnityEngine.Color32>
 	// System.Collections.Generic.Dictionary<int,byte>
 	// System.Collections.Generic.Dictionary<int,float>
 	// System.Collections.Generic.Dictionary<int,int>
 	// System.Collections.Generic.Dictionary<int,long>
 	// System.Collections.Generic.Dictionary<int,object>
-	// System.Collections.Generic.Dictionary<int,ulong>
+	// System.Collections.Generic.Dictionary<int,uint>
+	// System.Collections.Generic.Dictionary<long,long>
 	// System.Collections.Generic.Dictionary<long,object>
+	// System.Collections.Generic.Dictionary<object,Cysharp.Threading.Tasks.UniTask<object>>
 	// System.Collections.Generic.Dictionary<object,System.DateTime>
 	// System.Collections.Generic.Dictionary<object,double>
+	// System.Collections.Generic.Dictionary<object,float>
 	// System.Collections.Generic.Dictionary<object,int>
 	// System.Collections.Generic.Dictionary<object,object>
+	// System.Collections.Generic.Dictionary<object,ulong>
 	// System.Collections.Generic.Dictionary<uint,object>
 	// System.Collections.Generic.Dictionary<ushort,int>
 	// System.Collections.Generic.Dictionary<ushort,object>
-	// System.Collections.Generic.EqualityComparer<ChatBubbleManager.BubbleBox>
-	// System.Collections.Generic.EqualityComparer<ChatBubbleManager.ChatBubble>
-	// System.Collections.Generic.EqualityComparer<DailyQuestTimes>
+	// System.Collections.Generic.EqualityComparer<Cysharp.Threading.Tasks.UniTask<object>>
+	// System.Collections.Generic.EqualityComparer<Int2>
 	// System.Collections.Generic.EqualityComparer<InvestModel.InvestInfo>
 	// System.Collections.Generic.EqualityComparer<Item>
 	// System.Collections.Generic.EqualityComparer<RechargeCount>
 	// System.Collections.Generic.EqualityComparer<System.Collections.Generic.KeyValuePair<int,int>>
+	// System.Collections.Generic.EqualityComparer<System.Collections.Generic.KeyValuePair<object,object>>
 	// System.Collections.Generic.EqualityComparer<System.DateTime>
+	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
 	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
+	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
 	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
+	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
 	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,byte>>
+	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,int>>
 	// System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,object>>
+	// System.Collections.Generic.EqualityComparer<UnityEngine.Color32>
 	// System.Collections.Generic.EqualityComparer<UnityEngine.Vector2>
 	// System.Collections.Generic.EqualityComparer<byte>
 	// System.Collections.Generic.EqualityComparer<double>
@@ -446,53 +549,56 @@
 	// System.Collections.Generic.EqualityComparer<ushort>
 	// System.Collections.Generic.HashSet.Enumerator<int>
 	// System.Collections.Generic.HashSet.Enumerator<object>
+	// System.Collections.Generic.HashSet.Enumerator<uint>
 	// System.Collections.Generic.HashSet<int>
 	// System.Collections.Generic.HashSet<object>
+	// System.Collections.Generic.HashSet<uint>
 	// System.Collections.Generic.HashSetEqualityComparer<int>
 	// System.Collections.Generic.HashSetEqualityComparer<object>
-	// System.Collections.Generic.ICollection<HourMinute>
-	// System.Collections.Generic.ICollection<InGameDownLoad.Reward>
+	// System.Collections.Generic.HashSetEqualityComparer<uint>
+	// System.Collections.Generic.ICollection<Cysharp.Threading.Tasks.UniTask>
 	// System.Collections.Generic.ICollection<Int2>
 	// System.Collections.Generic.ICollection<Item>
 	// System.Collections.Generic.ICollection<Jace.Execution.ParameterInfo>
 	// System.Collections.Generic.ICollection<Jace.Tokenizer.Token>
 	// System.Collections.Generic.ICollection<LanguageVerify.MatchString>
 	// System.Collections.Generic.ICollection<OperationTime>
-	// System.Collections.Generic.ICollection<RoleParticularModel.AlchemyDrug>
-	// System.Collections.Generic.ICollection<RoleParticularModel.HorseInfo>
-	// System.Collections.Generic.ICollection<RoleParticularModel.PetInfo>
 	// System.Collections.Generic.ICollection<ServerData>
 	// System.Collections.Generic.ICollection<ServerDataCouple>
-	// System.Collections.Generic.ICollection<ShopItemInfo>
+	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<Int2,Item>>
+	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<Int2,object>>
 	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<UnityEngine.Vector2,object>>
-	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,ChatBubbleManager.BubbleBox>>
-	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,ChatBubbleManager.ChatBubble>>
-	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,DailyQuestTimes>>
 	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,InvestModel.InvestInfo>>
-	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,Item>>
 	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,RechargeCount>>
 	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,System.Collections.Generic.KeyValuePair<int,int>>>
-	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,System.DateTime>>
+	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,System.Collections.Generic.KeyValuePair<object,object>>>
+	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,UnityEngine.Color32>>
 	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,byte>>
 	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,float>>
 	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,int>>
 	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,long>>
 	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,object>>
-	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,ulong>>
+	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,uint>>
+	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<long,long>>
 	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<long,object>>
+	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<object,Cysharp.Threading.Tasks.UniTask<object>>>
 	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<object,System.DateTime>>
 	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<object,double>>
+	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<object,float>>
 	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<object,int>>
 	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<object,ulong>>
 	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<uint,object>>
 	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<ushort,int>>
 	// System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<ushort,object>>
+	// System.Collections.Generic.ICollection<System.ValueTuple<ulong,object>>
 	// System.Collections.Generic.ICollection<TimeMgr.Syntony>
 	// System.Collections.Generic.ICollection<UnityEngine.EventSystems.RaycastResult>
 	// System.Collections.Generic.ICollection<UnityEngine.Rect>
 	// System.Collections.Generic.ICollection<UnityEngine.UIVertex>
 	// System.Collections.Generic.ICollection<UnityEngine.Vector3>
 	// System.Collections.Generic.ICollection<WindowConfig.OrderTable>
+	// System.Collections.Generic.ICollection<byte>
 	// System.Collections.Generic.ICollection<double>
 	// System.Collections.Generic.ICollection<float>
 	// System.Collections.Generic.ICollection<int>
@@ -501,29 +607,28 @@
 	// System.Collections.Generic.ICollection<uint>
 	// System.Collections.Generic.ICollection<ulong>
 	// System.Collections.Generic.ICollection<ushort>
-	// System.Collections.Generic.IComparer<HourMinute>
-	// System.Collections.Generic.IComparer<InGameDownLoad.Reward>
+	// System.Collections.Generic.IComparer<Cysharp.Threading.Tasks.UniTask>
 	// System.Collections.Generic.IComparer<Int2>
 	// System.Collections.Generic.IComparer<Item>
 	// System.Collections.Generic.IComparer<Jace.Execution.ParameterInfo>
 	// System.Collections.Generic.IComparer<Jace.Tokenizer.Token>
 	// System.Collections.Generic.IComparer<LanguageVerify.MatchString>
 	// System.Collections.Generic.IComparer<OperationTime>
-	// System.Collections.Generic.IComparer<RoleParticularModel.AlchemyDrug>
-	// System.Collections.Generic.IComparer<RoleParticularModel.HorseInfo>
-	// System.Collections.Generic.IComparer<RoleParticularModel.PetInfo>
 	// System.Collections.Generic.IComparer<ServerData>
 	// System.Collections.Generic.IComparer<ServerDataCouple>
-	// System.Collections.Generic.IComparer<ShopItemInfo>
+	// System.Collections.Generic.IComparer<System.Collections.Generic.KeyValuePair<int,int>>
 	// System.Collections.Generic.IComparer<System.Collections.Generic.KeyValuePair<object,object>>
 	// System.Collections.Generic.IComparer<System.DateTime>
+	// System.Collections.Generic.IComparer<System.ValueTuple<ulong,object>>
 	// System.Collections.Generic.IComparer<TimeMgr.Syntony>
 	// System.Collections.Generic.IComparer<UnityEngine.EventSystems.RaycastResult>
 	// System.Collections.Generic.IComparer<UnityEngine.Rect>
 	// System.Collections.Generic.IComparer<UnityEngine.UIVertex>
 	// System.Collections.Generic.IComparer<UnityEngine.Vector3>
 	// System.Collections.Generic.IComparer<WindowConfig.OrderTable>
+	// System.Collections.Generic.IComparer<byte>
 	// System.Collections.Generic.IComparer<double>
+	// System.Collections.Generic.IComparer<float>
 	// System.Collections.Generic.IComparer<int>
 	// System.Collections.Generic.IComparer<long>
 	// System.Collections.Generic.IComparer<object>
@@ -535,49 +640,49 @@
 	// System.Collections.Generic.IDictionary<object,LitJson.PropertyMetadata>
 	// System.Collections.Generic.IDictionary<object,double>
 	// System.Collections.Generic.IDictionary<object,object>
-	// System.Collections.Generic.IEnumerable<HourMinute>
-	// System.Collections.Generic.IEnumerable<InGameDownLoad.Reward>
+	// System.Collections.Generic.IEnumerable<Cysharp.Threading.Tasks.UniTask>
 	// System.Collections.Generic.IEnumerable<Int2>
 	// System.Collections.Generic.IEnumerable<Item>
 	// System.Collections.Generic.IEnumerable<Jace.Execution.ParameterInfo>
 	// System.Collections.Generic.IEnumerable<Jace.Tokenizer.Token>
 	// System.Collections.Generic.IEnumerable<LanguageVerify.MatchString>
 	// System.Collections.Generic.IEnumerable<OperationTime>
-	// System.Collections.Generic.IEnumerable<RoleParticularModel.AlchemyDrug>
-	// System.Collections.Generic.IEnumerable<RoleParticularModel.HorseInfo>
-	// System.Collections.Generic.IEnumerable<RoleParticularModel.PetInfo>
 	// System.Collections.Generic.IEnumerable<ServerData>
 	// System.Collections.Generic.IEnumerable<ServerDataCouple>
-	// System.Collections.Generic.IEnumerable<ShopItemInfo>
+	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<Int2,Item>>
+	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<Int2,object>>
 	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<UnityEngine.Vector2,object>>
-	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,ChatBubbleManager.BubbleBox>>
-	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,ChatBubbleManager.ChatBubble>>
-	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,DailyQuestTimes>>
 	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,InvestModel.InvestInfo>>
-	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,Item>>
 	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,RechargeCount>>
 	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,System.Collections.Generic.KeyValuePair<int,int>>>
-	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,System.DateTime>>
+	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,System.Collections.Generic.KeyValuePair<object,object>>>
+	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,UnityEngine.Color32>>
 	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,byte>>
 	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,float>>
 	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,int>>
 	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,long>>
 	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,object>>
-	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,ulong>>
+	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,uint>>
+	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<long,long>>
 	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<long,object>>
+	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,Cysharp.Threading.Tasks.UniTask<object>>>
 	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,System.DateTime>>
 	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,double>>
+	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,float>>
 	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,int>>
 	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,ulong>>
 	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<uint,object>>
 	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<ushort,int>>
 	// System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<ushort,object>>
+	// System.Collections.Generic.IEnumerable<System.ValueTuple<ulong,object>>
 	// System.Collections.Generic.IEnumerable<TimeMgr.Syntony>
 	// System.Collections.Generic.IEnumerable<UnityEngine.EventSystems.RaycastResult>
 	// System.Collections.Generic.IEnumerable<UnityEngine.Rect>
 	// System.Collections.Generic.IEnumerable<UnityEngine.UIVertex>
 	// System.Collections.Generic.IEnumerable<UnityEngine.Vector3>
 	// System.Collections.Generic.IEnumerable<WindowConfig.OrderTable>
+	// System.Collections.Generic.IEnumerable<byte>
 	// System.Collections.Generic.IEnumerable<double>
 	// System.Collections.Generic.IEnumerable<float>
 	// System.Collections.Generic.IEnumerable<int>
@@ -586,49 +691,49 @@
 	// System.Collections.Generic.IEnumerable<uint>
 	// System.Collections.Generic.IEnumerable<ulong>
 	// System.Collections.Generic.IEnumerable<ushort>
-	// System.Collections.Generic.IEnumerator<HourMinute>
-	// System.Collections.Generic.IEnumerator<InGameDownLoad.Reward>
+	// System.Collections.Generic.IEnumerator<Cysharp.Threading.Tasks.UniTask>
 	// System.Collections.Generic.IEnumerator<Int2>
 	// System.Collections.Generic.IEnumerator<Item>
 	// System.Collections.Generic.IEnumerator<Jace.Execution.ParameterInfo>
 	// System.Collections.Generic.IEnumerator<Jace.Tokenizer.Token>
 	// System.Collections.Generic.IEnumerator<LanguageVerify.MatchString>
 	// System.Collections.Generic.IEnumerator<OperationTime>
-	// System.Collections.Generic.IEnumerator<RoleParticularModel.AlchemyDrug>
-	// System.Collections.Generic.IEnumerator<RoleParticularModel.HorseInfo>
-	// System.Collections.Generic.IEnumerator<RoleParticularModel.PetInfo>
 	// System.Collections.Generic.IEnumerator<ServerData>
 	// System.Collections.Generic.IEnumerator<ServerDataCouple>
-	// System.Collections.Generic.IEnumerator<ShopItemInfo>
+	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<Int2,Item>>
+	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<Int2,object>>
 	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<UnityEngine.Vector2,object>>
-	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,ChatBubbleManager.BubbleBox>>
-	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,ChatBubbleManager.ChatBubble>>
-	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,DailyQuestTimes>>
 	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,InvestModel.InvestInfo>>
-	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,Item>>
 	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,RechargeCount>>
 	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,System.Collections.Generic.KeyValuePair<int,int>>>
-	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,System.DateTime>>
+	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,System.Collections.Generic.KeyValuePair<object,object>>>
+	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,UnityEngine.Color32>>
 	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,byte>>
 	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,float>>
 	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,int>>
 	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,long>>
 	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,object>>
-	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,ulong>>
+	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,uint>>
+	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<long,long>>
 	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<long,object>>
+	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<object,Cysharp.Threading.Tasks.UniTask<object>>>
 	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<object,System.DateTime>>
 	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<object,double>>
+	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<object,float>>
 	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<object,int>>
 	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<object,ulong>>
 	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<uint,object>>
 	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<ushort,int>>
 	// System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<ushort,object>>
+	// System.Collections.Generic.IEnumerator<System.ValueTuple<ulong,object>>
 	// System.Collections.Generic.IEnumerator<TimeMgr.Syntony>
 	// System.Collections.Generic.IEnumerator<UnityEngine.EventSystems.RaycastResult>
 	// System.Collections.Generic.IEnumerator<UnityEngine.Rect>
 	// System.Collections.Generic.IEnumerator<UnityEngine.UIVertex>
 	// System.Collections.Generic.IEnumerator<UnityEngine.Vector3>
 	// System.Collections.Generic.IEnumerator<WindowConfig.OrderTable>
+	// System.Collections.Generic.IEnumerator<byte>
 	// System.Collections.Generic.IEnumerator<double>
 	// System.Collections.Generic.IEnumerator<float>
 	// System.Collections.Generic.IEnumerator<int>
@@ -637,33 +742,32 @@
 	// System.Collections.Generic.IEnumerator<uint>
 	// System.Collections.Generic.IEnumerator<ulong>
 	// System.Collections.Generic.IEnumerator<ushort>
+	// System.Collections.Generic.IEqualityComparer<Int2>
 	// System.Collections.Generic.IEqualityComparer<UnityEngine.Vector2>
 	// System.Collections.Generic.IEqualityComparer<int>
 	// System.Collections.Generic.IEqualityComparer<long>
 	// System.Collections.Generic.IEqualityComparer<object>
 	// System.Collections.Generic.IEqualityComparer<uint>
 	// System.Collections.Generic.IEqualityComparer<ushort>
-	// System.Collections.Generic.IList<HourMinute>
-	// System.Collections.Generic.IList<InGameDownLoad.Reward>
+	// System.Collections.Generic.IList<Cysharp.Threading.Tasks.UniTask>
 	// System.Collections.Generic.IList<Int2>
 	// System.Collections.Generic.IList<Item>
 	// System.Collections.Generic.IList<Jace.Execution.ParameterInfo>
 	// System.Collections.Generic.IList<Jace.Tokenizer.Token>
 	// System.Collections.Generic.IList<LanguageVerify.MatchString>
 	// System.Collections.Generic.IList<OperationTime>
-	// System.Collections.Generic.IList<RoleParticularModel.AlchemyDrug>
-	// System.Collections.Generic.IList<RoleParticularModel.HorseInfo>
-	// System.Collections.Generic.IList<RoleParticularModel.PetInfo>
 	// System.Collections.Generic.IList<ServerData>
 	// System.Collections.Generic.IList<ServerDataCouple>
-	// System.Collections.Generic.IList<ShopItemInfo>
+	// System.Collections.Generic.IList<System.Collections.Generic.KeyValuePair<int,int>>
 	// System.Collections.Generic.IList<System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Collections.Generic.IList<System.ValueTuple<ulong,object>>
 	// System.Collections.Generic.IList<TimeMgr.Syntony>
 	// System.Collections.Generic.IList<UnityEngine.EventSystems.RaycastResult>
 	// System.Collections.Generic.IList<UnityEngine.Rect>
 	// System.Collections.Generic.IList<UnityEngine.UIVertex>
 	// System.Collections.Generic.IList<UnityEngine.Vector3>
 	// System.Collections.Generic.IList<WindowConfig.OrderTable>
+	// System.Collections.Generic.IList<byte>
 	// System.Collections.Generic.IList<double>
 	// System.Collections.Generic.IList<float>
 	// System.Collections.Generic.IList<int>
@@ -672,51 +776,52 @@
 	// System.Collections.Generic.IList<uint>
 	// System.Collections.Generic.IList<ulong>
 	// System.Collections.Generic.IList<ushort>
+	// System.Collections.Generic.KeyValuePair<Int2,Item>
+	// System.Collections.Generic.KeyValuePair<Int2,object>
 	// System.Collections.Generic.KeyValuePair<UnityEngine.Vector2,object>
-	// System.Collections.Generic.KeyValuePair<int,ChatBubbleManager.BubbleBox>
-	// System.Collections.Generic.KeyValuePair<int,ChatBubbleManager.ChatBubble>
-	// System.Collections.Generic.KeyValuePair<int,DailyQuestTimes>
 	// System.Collections.Generic.KeyValuePair<int,InvestModel.InvestInfo>
-	// System.Collections.Generic.KeyValuePair<int,Item>
 	// System.Collections.Generic.KeyValuePair<int,RechargeCount>
 	// System.Collections.Generic.KeyValuePair<int,System.Collections.Generic.KeyValuePair<int,int>>
-	// System.Collections.Generic.KeyValuePair<int,System.DateTime>
+	// System.Collections.Generic.KeyValuePair<int,System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Collections.Generic.KeyValuePair<int,UnityEngine.Color32>
 	// System.Collections.Generic.KeyValuePair<int,byte>
 	// System.Collections.Generic.KeyValuePair<int,float>
 	// System.Collections.Generic.KeyValuePair<int,int>
 	// System.Collections.Generic.KeyValuePair<int,long>
 	// System.Collections.Generic.KeyValuePair<int,object>
-	// System.Collections.Generic.KeyValuePair<int,ulong>
+	// System.Collections.Generic.KeyValuePair<int,uint>
+	// System.Collections.Generic.KeyValuePair<long,long>
 	// System.Collections.Generic.KeyValuePair<long,object>
+	// System.Collections.Generic.KeyValuePair<object,Cysharp.Threading.Tasks.UniTask<object>>
 	// System.Collections.Generic.KeyValuePair<object,System.DateTime>
 	// System.Collections.Generic.KeyValuePair<object,double>
+	// System.Collections.Generic.KeyValuePair<object,float>
 	// System.Collections.Generic.KeyValuePair<object,int>
 	// System.Collections.Generic.KeyValuePair<object,long>
 	// System.Collections.Generic.KeyValuePair<object,object>
+	// System.Collections.Generic.KeyValuePair<object,ulong>
 	// System.Collections.Generic.KeyValuePair<uint,object>
 	// System.Collections.Generic.KeyValuePair<ushort,int>
 	// System.Collections.Generic.KeyValuePair<ushort,object>
-	// System.Collections.Generic.List.Enumerator<HourMinute>
-	// System.Collections.Generic.List.Enumerator<InGameDownLoad.Reward>
+	// System.Collections.Generic.List.Enumerator<Cysharp.Threading.Tasks.UniTask>
 	// System.Collections.Generic.List.Enumerator<Int2>
 	// System.Collections.Generic.List.Enumerator<Item>
 	// System.Collections.Generic.List.Enumerator<Jace.Execution.ParameterInfo>
 	// System.Collections.Generic.List.Enumerator<Jace.Tokenizer.Token>
 	// System.Collections.Generic.List.Enumerator<LanguageVerify.MatchString>
 	// System.Collections.Generic.List.Enumerator<OperationTime>
-	// System.Collections.Generic.List.Enumerator<RoleParticularModel.AlchemyDrug>
-	// System.Collections.Generic.List.Enumerator<RoleParticularModel.HorseInfo>
-	// System.Collections.Generic.List.Enumerator<RoleParticularModel.PetInfo>
 	// System.Collections.Generic.List.Enumerator<ServerData>
 	// System.Collections.Generic.List.Enumerator<ServerDataCouple>
-	// System.Collections.Generic.List.Enumerator<ShopItemInfo>
+	// System.Collections.Generic.List.Enumerator<System.Collections.Generic.KeyValuePair<int,int>>
 	// System.Collections.Generic.List.Enumerator<System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Collections.Generic.List.Enumerator<System.ValueTuple<ulong,object>>
 	// System.Collections.Generic.List.Enumerator<TimeMgr.Syntony>
 	// System.Collections.Generic.List.Enumerator<UnityEngine.EventSystems.RaycastResult>
 	// System.Collections.Generic.List.Enumerator<UnityEngine.Rect>
 	// System.Collections.Generic.List.Enumerator<UnityEngine.UIVertex>
 	// System.Collections.Generic.List.Enumerator<UnityEngine.Vector3>
 	// System.Collections.Generic.List.Enumerator<WindowConfig.OrderTable>
+	// System.Collections.Generic.List.Enumerator<byte>
 	// System.Collections.Generic.List.Enumerator<double>
 	// System.Collections.Generic.List.Enumerator<int>
 	// System.Collections.Generic.List.Enumerator<long>
@@ -724,27 +829,25 @@
 	// System.Collections.Generic.List.Enumerator<uint>
 	// System.Collections.Generic.List.Enumerator<ulong>
 	// System.Collections.Generic.List.Enumerator<ushort>
-	// System.Collections.Generic.List<HourMinute>
-	// System.Collections.Generic.List<InGameDownLoad.Reward>
+	// System.Collections.Generic.List<Cysharp.Threading.Tasks.UniTask>
 	// System.Collections.Generic.List<Int2>
 	// System.Collections.Generic.List<Item>
 	// System.Collections.Generic.List<Jace.Execution.ParameterInfo>
 	// System.Collections.Generic.List<Jace.Tokenizer.Token>
 	// System.Collections.Generic.List<LanguageVerify.MatchString>
 	// System.Collections.Generic.List<OperationTime>
-	// System.Collections.Generic.List<RoleParticularModel.AlchemyDrug>
-	// System.Collections.Generic.List<RoleParticularModel.HorseInfo>
-	// System.Collections.Generic.List<RoleParticularModel.PetInfo>
 	// System.Collections.Generic.List<ServerData>
 	// System.Collections.Generic.List<ServerDataCouple>
-	// System.Collections.Generic.List<ShopItemInfo>
+	// System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<int,int>>
 	// System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Collections.Generic.List<System.ValueTuple<ulong,object>>
 	// System.Collections.Generic.List<TimeMgr.Syntony>
 	// System.Collections.Generic.List<UnityEngine.EventSystems.RaycastResult>
 	// System.Collections.Generic.List<UnityEngine.Rect>
 	// System.Collections.Generic.List<UnityEngine.UIVertex>
 	// System.Collections.Generic.List<UnityEngine.Vector3>
 	// System.Collections.Generic.List<WindowConfig.OrderTable>
+	// System.Collections.Generic.List<byte>
 	// System.Collections.Generic.List<double>
 	// System.Collections.Generic.List<int>
 	// System.Collections.Generic.List<long>
@@ -752,29 +855,38 @@
 	// System.Collections.Generic.List<uint>
 	// System.Collections.Generic.List<ulong>
 	// System.Collections.Generic.List<ushort>
-	// System.Collections.Generic.ObjectComparer<HourMinute>
-	// System.Collections.Generic.ObjectComparer<InGameDownLoad.Reward>
+	// System.Collections.Generic.ObjectComparer<Cysharp.Threading.Tasks.UniTask>
 	// System.Collections.Generic.ObjectComparer<Int2>
 	// System.Collections.Generic.ObjectComparer<Item>
 	// System.Collections.Generic.ObjectComparer<Jace.Execution.ParameterInfo>
 	// System.Collections.Generic.ObjectComparer<Jace.Tokenizer.Token>
 	// System.Collections.Generic.ObjectComparer<LanguageVerify.MatchString>
 	// System.Collections.Generic.ObjectComparer<OperationTime>
-	// System.Collections.Generic.ObjectComparer<RoleParticularModel.AlchemyDrug>
-	// System.Collections.Generic.ObjectComparer<RoleParticularModel.HorseInfo>
-	// System.Collections.Generic.ObjectComparer<RoleParticularModel.PetInfo>
 	// System.Collections.Generic.ObjectComparer<ServerData>
 	// System.Collections.Generic.ObjectComparer<ServerDataCouple>
-	// System.Collections.Generic.ObjectComparer<ShopItemInfo>
+	// System.Collections.Generic.ObjectComparer<System.Collections.Generic.KeyValuePair<int,int>>
 	// System.Collections.Generic.ObjectComparer<System.Collections.Generic.KeyValuePair<object,object>>
 	// System.Collections.Generic.ObjectComparer<System.DateTime>
+	// System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
 	// System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
 	// System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,byte>>
+	// System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,int>>
 	// System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,object>>
+	// System.Collections.Generic.ObjectComparer<System.ValueTuple<ulong,object>>
 	// System.Collections.Generic.ObjectComparer<TimeMgr.Syntony>
 	// System.Collections.Generic.ObjectComparer<UnityEngine.EventSystems.RaycastResult>
 	// System.Collections.Generic.ObjectComparer<UnityEngine.Rect>
@@ -783,27 +895,41 @@
 	// System.Collections.Generic.ObjectComparer<WindowConfig.OrderTable>
 	// System.Collections.Generic.ObjectComparer<byte>
 	// System.Collections.Generic.ObjectComparer<double>
+	// System.Collections.Generic.ObjectComparer<float>
 	// System.Collections.Generic.ObjectComparer<int>
 	// System.Collections.Generic.ObjectComparer<long>
 	// System.Collections.Generic.ObjectComparer<object>
 	// System.Collections.Generic.ObjectComparer<uint>
 	// System.Collections.Generic.ObjectComparer<ulong>
 	// System.Collections.Generic.ObjectComparer<ushort>
-	// System.Collections.Generic.ObjectEqualityComparer<ChatBubbleManager.BubbleBox>
-	// System.Collections.Generic.ObjectEqualityComparer<ChatBubbleManager.ChatBubble>
-	// System.Collections.Generic.ObjectEqualityComparer<DailyQuestTimes>
+	// System.Collections.Generic.ObjectEqualityComparer<Cysharp.Threading.Tasks.UniTask<object>>
+	// System.Collections.Generic.ObjectEqualityComparer<Int2>
 	// System.Collections.Generic.ObjectEqualityComparer<InvestModel.InvestInfo>
 	// System.Collections.Generic.ObjectEqualityComparer<Item>
 	// System.Collections.Generic.ObjectEqualityComparer<RechargeCount>
 	// System.Collections.Generic.ObjectEqualityComparer<System.Collections.Generic.KeyValuePair<int,int>>
+	// System.Collections.Generic.ObjectEqualityComparer<System.Collections.Generic.KeyValuePair<object,object>>
 	// System.Collections.Generic.ObjectEqualityComparer<System.DateTime>
+	// System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
 	// System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
 	// System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,byte>>
+	// System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,int>>
 	// System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,object>>
+	// System.Collections.Generic.ObjectEqualityComparer<UnityEngine.Color32>
 	// System.Collections.Generic.ObjectEqualityComparer<UnityEngine.Vector2>
 	// System.Collections.Generic.ObjectEqualityComparer<byte>
 	// System.Collections.Generic.ObjectEqualityComparer<double>
@@ -825,27 +951,25 @@
 	// System.Collections.Generic.Stack<int>
 	// System.Collections.Generic.Stack<object>
 	// System.Collections.Generic.ValueListBuilder<int>
-	// System.Collections.ObjectModel.ReadOnlyCollection<HourMinute>
-	// System.Collections.ObjectModel.ReadOnlyCollection<InGameDownLoad.Reward>
+	// System.Collections.ObjectModel.ReadOnlyCollection<Cysharp.Threading.Tasks.UniTask>
 	// System.Collections.ObjectModel.ReadOnlyCollection<Int2>
 	// System.Collections.ObjectModel.ReadOnlyCollection<Item>
 	// System.Collections.ObjectModel.ReadOnlyCollection<Jace.Execution.ParameterInfo>
 	// System.Collections.ObjectModel.ReadOnlyCollection<Jace.Tokenizer.Token>
 	// System.Collections.ObjectModel.ReadOnlyCollection<LanguageVerify.MatchString>
 	// System.Collections.ObjectModel.ReadOnlyCollection<OperationTime>
-	// System.Collections.ObjectModel.ReadOnlyCollection<RoleParticularModel.AlchemyDrug>
-	// System.Collections.ObjectModel.ReadOnlyCollection<RoleParticularModel.HorseInfo>
-	// System.Collections.ObjectModel.ReadOnlyCollection<RoleParticularModel.PetInfo>
 	// System.Collections.ObjectModel.ReadOnlyCollection<ServerData>
 	// System.Collections.ObjectModel.ReadOnlyCollection<ServerDataCouple>
-	// System.Collections.ObjectModel.ReadOnlyCollection<ShopItemInfo>
+	// System.Collections.ObjectModel.ReadOnlyCollection<System.Collections.Generic.KeyValuePair<int,int>>
 	// System.Collections.ObjectModel.ReadOnlyCollection<System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Collections.ObjectModel.ReadOnlyCollection<System.ValueTuple<ulong,object>>
 	// System.Collections.ObjectModel.ReadOnlyCollection<TimeMgr.Syntony>
 	// System.Collections.ObjectModel.ReadOnlyCollection<UnityEngine.EventSystems.RaycastResult>
 	// System.Collections.ObjectModel.ReadOnlyCollection<UnityEngine.Rect>
 	// System.Collections.ObjectModel.ReadOnlyCollection<UnityEngine.UIVertex>
 	// System.Collections.ObjectModel.ReadOnlyCollection<UnityEngine.Vector3>
 	// System.Collections.ObjectModel.ReadOnlyCollection<WindowConfig.OrderTable>
+	// System.Collections.ObjectModel.ReadOnlyCollection<byte>
 	// System.Collections.ObjectModel.ReadOnlyCollection<double>
 	// System.Collections.ObjectModel.ReadOnlyCollection<int>
 	// System.Collections.ObjectModel.ReadOnlyCollection<long>
@@ -853,27 +977,25 @@
 	// System.Collections.ObjectModel.ReadOnlyCollection<uint>
 	// System.Collections.ObjectModel.ReadOnlyCollection<ulong>
 	// System.Collections.ObjectModel.ReadOnlyCollection<ushort>
-	// System.Comparison<HourMinute>
-	// System.Comparison<InGameDownLoad.Reward>
+	// System.Comparison<Cysharp.Threading.Tasks.UniTask>
 	// System.Comparison<Int2>
 	// System.Comparison<Item>
 	// System.Comparison<Jace.Execution.ParameterInfo>
 	// System.Comparison<Jace.Tokenizer.Token>
 	// System.Comparison<LanguageVerify.MatchString>
 	// System.Comparison<OperationTime>
-	// System.Comparison<RoleParticularModel.AlchemyDrug>
-	// System.Comparison<RoleParticularModel.HorseInfo>
-	// System.Comparison<RoleParticularModel.PetInfo>
 	// System.Comparison<ServerData>
 	// System.Comparison<ServerDataCouple>
-	// System.Comparison<ShopItemInfo>
+	// System.Comparison<System.Collections.Generic.KeyValuePair<int,int>>
 	// System.Comparison<System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Comparison<System.ValueTuple<ulong,object>>
 	// System.Comparison<TimeMgr.Syntony>
 	// System.Comparison<UnityEngine.EventSystems.RaycastResult>
 	// System.Comparison<UnityEngine.Rect>
 	// System.Comparison<UnityEngine.UIVertex>
 	// System.Comparison<UnityEngine.Vector3>
 	// System.Comparison<WindowConfig.OrderTable>
+	// System.Comparison<byte>
 	// System.Comparison<double>
 	// System.Comparison<int>
 	// System.Comparison<long>
@@ -883,18 +1005,35 @@
 	// System.Comparison<ushort>
 	// System.Dynamic.Utils.CacheDict.Entry<object,object>
 	// System.Dynamic.Utils.CacheDict<object,object>
+	// System.EventHandler<float>
+	// System.Func<Cysharp.Threading.Tasks.UniTask<object>>
 	// System.Func<Cysharp.Threading.Tasks.UniTask>
 	// System.Func<Jace.Execution.ParameterInfo,byte>
+	// System.Func<System.Collections.Generic.KeyValuePair<int,int>,byte>
+	// System.Func<System.Collections.Generic.KeyValuePair<int,int>,object>
 	// System.Func<System.Collections.Generic.KeyValuePair<object,double>,byte>
 	// System.Func<System.Collections.Generic.KeyValuePair<object,object>,byte>
+	// System.Func<System.Collections.Generic.KeyValuePair<object,object>,float>
 	// System.Func<System.Collections.Generic.KeyValuePair<object,object>,long>
 	// System.Func<System.Collections.Generic.KeyValuePair<object,object>,object>
+	// System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
 	// System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
 	// System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.Func<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.Func<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.Func<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.Func<System.ValueTuple<byte,byte>>
+	// System.Func<System.ValueTuple<byte,int>>
 	// System.Func<System.ValueTuple<byte,object>>
 	// System.Func<byte,object,byte>
 	// System.Func<byte>
@@ -919,102 +1058,158 @@
 	// System.Func<double>
 	// System.Func<float>
 	// System.Func<int,byte>
+	// System.Func<int,int>
 	// System.Func<int,object>
 	// System.Func<int>
+	// System.Func<long,byte>
+	// System.Func<long,object>
 	// System.Func<object,System.DateTime>
+	// System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
 	// System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
 	// System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.Func<object,System.ValueTuple<byte,byte>>
+	// System.Func<object,System.ValueTuple<byte,int>>
 	// System.Func<object,System.ValueTuple<byte,object>>
 	// System.Func<object,byte>
 	// System.Func<object,double>
 	// System.Func<object,int>
+	// System.Func<object,long>
 	// System.Func<object,object,byte,object,object>
 	// System.Func<object,object,byte>
 	// System.Func<object,object,double>
 	// System.Func<object,object,object>
 	// System.Func<object,object>
+	// System.Func<object,uint>
+	// System.Func<object,ushort>
 	// System.Func<object>
+	// System.Func<ushort,byte>
 	// System.IComparable<double>
 	// System.IComparable<object>
+	// System.IProgress<float>
 	// System.Linq.Buffer<Jace.Execution.ParameterInfo>
 	// System.Linq.Buffer<System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Linq.Buffer<int>
 	// System.Linq.Buffer<object>
+	// System.Linq.Buffer<ushort>
 	// System.Linq.Enumerable.<CastIterator>d__99<object>
+	// System.Linq.Enumerable.<ConcatIterator>d__59<int>
 	// System.Linq.Enumerable.<DistinctIterator>d__68<int>
 	// System.Linq.Enumerable.<TakeIterator>d__25<object>
+	// System.Linq.Enumerable.Iterator<System.Collections.Generic.KeyValuePair<int,int>>
 	// System.Linq.Enumerable.Iterator<System.Collections.Generic.KeyValuePair<object,object>>
 	// System.Linq.Enumerable.Iterator<double>
 	// System.Linq.Enumerable.Iterator<int>
+	// System.Linq.Enumerable.Iterator<long>
 	// System.Linq.Enumerable.Iterator<object>
+	// System.Linq.Enumerable.Iterator<ushort>
 	// System.Linq.Enumerable.WhereArrayIterator<System.Collections.Generic.KeyValuePair<object,object>>
 	// System.Linq.Enumerable.WhereArrayIterator<object>
 	// System.Linq.Enumerable.WhereEnumerableIterator<System.Collections.Generic.KeyValuePair<object,object>>
 	// System.Linq.Enumerable.WhereEnumerableIterator<double>
 	// System.Linq.Enumerable.WhereEnumerableIterator<int>
+	// System.Linq.Enumerable.WhereEnumerableIterator<long>
 	// System.Linq.Enumerable.WhereEnumerableIterator<object>
+	// System.Linq.Enumerable.WhereEnumerableIterator<ushort>
 	// System.Linq.Enumerable.WhereListIterator<System.Collections.Generic.KeyValuePair<object,object>>
 	// System.Linq.Enumerable.WhereListIterator<object>
+	// System.Linq.Enumerable.WhereSelectArrayIterator<System.Collections.Generic.KeyValuePair<int,int>,object>
 	// System.Linq.Enumerable.WhereSelectArrayIterator<System.Collections.Generic.KeyValuePair<object,object>,object>
 	// System.Linq.Enumerable.WhereSelectArrayIterator<double,object>
 	// System.Linq.Enumerable.WhereSelectArrayIterator<int,object>
 	// System.Linq.Enumerable.WhereSelectArrayIterator<object,double>
 	// System.Linq.Enumerable.WhereSelectArrayIterator<object,int>
+	// System.Linq.Enumerable.WhereSelectArrayIterator<object,long>
 	// System.Linq.Enumerable.WhereSelectArrayIterator<object,object>
+	// System.Linq.Enumerable.WhereSelectArrayIterator<object,ushort>
+	// System.Linq.Enumerable.WhereSelectEnumerableIterator<System.Collections.Generic.KeyValuePair<int,int>,object>
 	// System.Linq.Enumerable.WhereSelectEnumerableIterator<System.Collections.Generic.KeyValuePair<object,object>,object>
 	// System.Linq.Enumerable.WhereSelectEnumerableIterator<double,object>
 	// System.Linq.Enumerable.WhereSelectEnumerableIterator<int,object>
 	// System.Linq.Enumerable.WhereSelectEnumerableIterator<object,double>
 	// System.Linq.Enumerable.WhereSelectEnumerableIterator<object,int>
+	// System.Linq.Enumerable.WhereSelectEnumerableIterator<object,long>
 	// System.Linq.Enumerable.WhereSelectEnumerableIterator<object,object>
+	// System.Linq.Enumerable.WhereSelectEnumerableIterator<object,ushort>
+	// System.Linq.Enumerable.WhereSelectListIterator<System.Collections.Generic.KeyValuePair<int,int>,object>
 	// System.Linq.Enumerable.WhereSelectListIterator<System.Collections.Generic.KeyValuePair<object,object>,object>
 	// System.Linq.Enumerable.WhereSelectListIterator<double,object>
 	// System.Linq.Enumerable.WhereSelectListIterator<int,object>
 	// System.Linq.Enumerable.WhereSelectListIterator<object,double>
 	// System.Linq.Enumerable.WhereSelectListIterator<object,int>
+	// System.Linq.Enumerable.WhereSelectListIterator<object,long>
 	// System.Linq.Enumerable.WhereSelectListIterator<object,object>
+	// System.Linq.Enumerable.WhereSelectListIterator<object,ushort>
+	// System.Linq.EnumerableSorter<System.Collections.Generic.KeyValuePair<object,object>,float>
 	// System.Linq.EnumerableSorter<System.Collections.Generic.KeyValuePair<object,object>,long>
 	// System.Linq.EnumerableSorter<System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Linq.EnumerableSorter<int,byte>
+	// System.Linq.EnumerableSorter<int,int>
+	// System.Linq.EnumerableSorter<int>
 	// System.Linq.EnumerableSorter<object,System.DateTime>
+	// System.Linq.EnumerableSorter<object,byte>
+	// System.Linq.EnumerableSorter<object,int>
+	// System.Linq.EnumerableSorter<object,long>
+	// System.Linq.EnumerableSorter<object,uint>
 	// System.Linq.EnumerableSorter<object>
 	// System.Linq.Expressions.Expression<object>
+	// System.Linq.IOrderedEnumerable<int>
+	// System.Linq.IOrderedEnumerable<object>
 	// System.Linq.OrderedEnumerable.<GetEnumerator>d__1<System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Linq.OrderedEnumerable.<GetEnumerator>d__1<int>
 	// System.Linq.OrderedEnumerable.<GetEnumerator>d__1<object>
+	// System.Linq.OrderedEnumerable<System.Collections.Generic.KeyValuePair<object,object>,float>
 	// System.Linq.OrderedEnumerable<System.Collections.Generic.KeyValuePair<object,object>,long>
 	// System.Linq.OrderedEnumerable<System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Linq.OrderedEnumerable<int,byte>
+	// System.Linq.OrderedEnumerable<int,int>
+	// System.Linq.OrderedEnumerable<int>
 	// System.Linq.OrderedEnumerable<object,System.DateTime>
+	// System.Linq.OrderedEnumerable<object,byte>
+	// System.Linq.OrderedEnumerable<object,int>
+	// System.Linq.OrderedEnumerable<object,long>
+	// System.Linq.OrderedEnumerable<object,uint>
 	// System.Linq.OrderedEnumerable<object>
 	// System.Linq.Set<int>
 	// System.Nullable<CellInfo>
-	// System.Nullable<ChatExtraData>
 	// System.Nullable<Jace.Tokenizer.Token>
 	// System.Nullable<UnityEngine.Color>
+	// System.Nullable<UnityEngine.Vector2>
+	// System.Nullable<byte>
 	// System.Nullable<int>
 	// System.Nullable<object>
-	// System.Predicate<HourMinute>
-	// System.Predicate<InGameDownLoad.Reward>
+	// System.Nullable<uint>
+	// System.Predicate<Cysharp.Threading.Tasks.UniTask>
 	// System.Predicate<Int2>
 	// System.Predicate<Item>
 	// System.Predicate<Jace.Execution.ParameterInfo>
 	// System.Predicate<Jace.Tokenizer.Token>
 	// System.Predicate<LanguageVerify.MatchString>
 	// System.Predicate<OperationTime>
-	// System.Predicate<RoleParticularModel.AlchemyDrug>
-	// System.Predicate<RoleParticularModel.HorseInfo>
-	// System.Predicate<RoleParticularModel.PetInfo>
 	// System.Predicate<ServerData>
 	// System.Predicate<ServerDataCouple>
-	// System.Predicate<ShopItemInfo>
+	// System.Predicate<System.Collections.Generic.KeyValuePair<int,int>>
 	// System.Predicate<System.Collections.Generic.KeyValuePair<object,object>>
+	// System.Predicate<System.ValueTuple<ulong,object>>
 	// System.Predicate<TimeMgr.Syntony>
 	// System.Predicate<UnityEngine.EventSystems.RaycastResult>
 	// System.Predicate<UnityEngine.Rect>
 	// System.Predicate<UnityEngine.UIVertex>
 	// System.Predicate<UnityEngine.Vector3>
 	// System.Predicate<WindowConfig.OrderTable>
+	// System.Predicate<byte>
 	// System.Predicate<double>
 	// System.Predicate<int>
 	// System.Predicate<long>
@@ -1022,149 +1217,395 @@
 	// System.Predicate<uint>
 	// System.Predicate<ulong>
 	// System.Predicate<ushort>
+	// System.Progress<float>
+	// System.ReadOnlySpan.Enumerator<UnityEngine.jvalue>
+	// System.ReadOnlySpan.Enumerator<int>
 	// System.ReadOnlySpan<UnityEngine.jvalue>
 	// System.ReadOnlySpan<int>
+	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
 	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
+	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
 	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
+	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
 	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,byte>>
+	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,int>>
 	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,object>>
+	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<byte>
+	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>
 	// System.Runtime.CompilerServices.AsyncTaskMethodBuilder<object>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
 	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
 	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,byte>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,int>>
 	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,object>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<byte>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<int>
 	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<object>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
 	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
 	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,byte>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,int>>
 	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,object>>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<byte>
+	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<int>
 	// System.Runtime.CompilerServices.ConfiguredTaskAwaitable<object>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
 	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
 	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,byte>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,int>>
 	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,object>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<byte>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<int>
 	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<object>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
 	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
 	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
 	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,byte>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,int>>
 	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,object>>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<byte>
+	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<int>
 	// System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<object>
 	// System.Runtime.CompilerServices.ReadOnlyCollectionBuilder.Enumerator<object>
 	// System.Runtime.CompilerServices.ReadOnlyCollectionBuilder<object>
+	// System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
 	// System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
 	// System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,byte>>
+	// System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,int>>
 	// System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,object>>
+	// System.Runtime.CompilerServices.TaskAwaiter<byte>
+	// System.Runtime.CompilerServices.TaskAwaiter<int>
 	// System.Runtime.CompilerServices.TaskAwaiter<object>
 	// System.Runtime.CompilerServices.TrueReadOnlyCollection<object>
+	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
 	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
+	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
 	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
+	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
 	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,byte>>
+	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,int>>
 	// System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,object>>
+	// System.Runtime.CompilerServices.ValueTaskAwaiter<byte>
+	// System.Runtime.CompilerServices.ValueTaskAwaiter<int>
 	// System.Runtime.CompilerServices.ValueTaskAwaiter<object>
+	// System.Span.Enumerator<UnityEngine.jvalue>
+	// System.Span.Enumerator<int>
 	// System.Span<UnityEngine.jvalue>
 	// System.Span<int>
+	// System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
 	// System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
 	// System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,byte>>
+	// System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,int>>
 	// System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,object>>
+	// System.Threading.Tasks.ContinuationTaskFromResultTask<byte>
+	// System.Threading.Tasks.ContinuationTaskFromResultTask<int>
 	// System.Threading.Tasks.ContinuationTaskFromResultTask<object>
+	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
 	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
+	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
 	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
+	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
 	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,byte>>
+	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,int>>
 	// System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,object>>
+	// System.Threading.Tasks.Sources.IValueTaskSource<byte>
+	// System.Threading.Tasks.Sources.IValueTaskSource<int>
 	// System.Threading.Tasks.Sources.IValueTaskSource<object>
+	// System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
 	// System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
+	// System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
 	// System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
+	// System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
 	// System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.Threading.Tasks.Task<System.ValueTuple<byte,byte>>
+	// System.Threading.Tasks.Task<System.ValueTuple<byte,int>>
 	// System.Threading.Tasks.Task<System.ValueTuple<byte,object>>
+	// System.Threading.Tasks.Task<byte>
+	// System.Threading.Tasks.Task<int>
 	// System.Threading.Tasks.Task<object>
+	// System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
 	// System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
 	// System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,byte>>
+	// System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,int>>
 	// System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,object>>
+	// System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<byte>
+	// System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<int>
 	// System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<object>
+	// System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
 	// System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
 	// System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,byte>>
+	// System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,int>>
 	// System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,object>>
+	// System.Threading.Tasks.TaskFactory<byte>
+	// System.Threading.Tasks.TaskFactory<int>
 	// System.Threading.Tasks.TaskFactory<object>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
 	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
 	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,byte>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,int>>
 	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,object>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<byte>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<int>
 	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<object>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
 	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
 	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
 	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,byte>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,int>>
 	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,object>>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<byte>
+	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<int>
 	// System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<object>
+	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>>
 	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>>
+	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
 	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
+	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
+	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>>
 	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
+	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
 	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,byte>>
+	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,int>>
 	// System.Threading.Tasks.ValueTask<System.ValueTuple<byte,object>>
+	// System.Threading.Tasks.ValueTask<byte>
+	// System.Threading.Tasks.ValueTask<int>
 	// System.Threading.Tasks.ValueTask<object>
+	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>>
 	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>>
+	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
 	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
+	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
+	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>>
 	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
+	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
+	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
 	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
+	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
+	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
 	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
+	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
+	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
 	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
+	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
+	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
 	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
+	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
+	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>
 	// System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>
+	// System.ValueTuple<byte,System.ValueTuple<byte,byte>>
+	// System.ValueTuple<byte,System.ValueTuple<byte,int>>
 	// System.ValueTuple<byte,System.ValueTuple<byte,object>>
+	// System.ValueTuple<byte,byte>
+	// System.ValueTuple<byte,int>
 	// System.ValueTuple<byte,object>
+	// System.ValueTuple<ulong,object>
 	// UnityEngine.EventSystems.ExecuteEvents.EventFunction<object>
 	// UnityEngine.Events.InvokableCall<UnityEngine.Vector2>
 	// UnityEngine.Events.InvokableCall<byte>
@@ -1187,107 +1628,69 @@
 
 	public void RefMethods()
 	{
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,AdaptiveLayout.<Co_DelayShow>d__22>(Cysharp.Threading.Tasks.UniTask.Awaiter&,AdaptiveLayout.<Co_DelayShow>d__22&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,AssetBundleUtility.<Co_DoLoadAsset>d__24>(Cysharp.Threading.Tasks.UniTask.Awaiter&,AssetBundleUtility.<Co_DoLoadAsset>d__24&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,AssetBundleUtility.<Initialize>d__16>(Cysharp.Threading.Tasks.UniTask.Awaiter&,AssetBundleUtility.<Initialize>d__16&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,ConfigManager.<InitConfigs>d__6>(Cysharp.Threading.Tasks.UniTask.Awaiter&,ConfigManager.<InitConfigs>d__6&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,CyclicScroll.<Co_StepByStepAppear>d__68>(Cysharp.Threading.Tasks.UniTask.Awaiter&,CyclicScroll.<Co_StepByStepAppear>d__68&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,DownLoadAndDiscompressTask.<Co_StartDownLoad>d__33>(Cysharp.Threading.Tasks.UniTask.Awaiter&,DownLoadAndDiscompressTask.<Co_StartDownLoad>d__33&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,DownloadTask.<Co_DownloadFile>d__40>(Cysharp.Threading.Tasks.UniTask.Awaiter&,DownloadTask.<Co_DownloadFile>d__40&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,DownloadTask.<Co_GetHeader>d__39>(Cysharp.Threading.Tasks.UniTask.Awaiter&,DownloadTask.<Co_GetHeader>d__39&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,EffectPlayer.<PlayAsync>d__34>(Cysharp.Threading.Tasks.UniTask.Awaiter&,EffectPlayer.<PlayAsync>d__34&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,EquipExchangeCell.<RefreshEffect>d__31>(Cysharp.Threading.Tasks.UniTask.Awaiter&,EquipExchangeCell.<RefreshEffect>d__31&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,EquipTipWin.<RefreshEffect>d__21>(Cysharp.Threading.Tasks.UniTask.Awaiter&,EquipTipWin.<RefreshEffect>d__21&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,GameObjectPoolManager.<CheckPoolUsage>d__13>(Cysharp.Threading.Tasks.UniTask.Awaiter&,GameObjectPoolManager.<CheckPoolUsage>d__13&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,HeroCallResultCell.<DisplayAsync>d__7>(Cysharp.Threading.Tasks.UniTask.Awaiter&,HeroCallResultCell.<DisplayAsync>d__7&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,HeroCallResultWin.<MoveToNextState>d__35>(Cysharp.Threading.Tasks.UniTask.Awaiter&,HeroCallResultWin.<MoveToNextState>d__35&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,HeroGiftWashWin.<SendPack>d__19>(Cysharp.Threading.Tasks.UniTask.Awaiter&,HeroGiftWashWin.<SendPack>d__19&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,HeroPosWin.<RunTaskAsync>d__46>(Cysharp.Threading.Tasks.UniTask.Awaiter&,HeroPosWin.<RunTaskAsync>d__46&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,HeroScenePosCell.<DelayShow>d__13>(Cysharp.Threading.Tasks.UniTask.Awaiter&,HeroScenePosCell.<DelayShow>d__13&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,LayoutElementSizeClamp.<UpdateRect>d__9>(Cysharp.Threading.Tasks.UniTask.Awaiter&,LayoutElementSizeClamp.<UpdateRect>d__9&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,SmallTipWin.<UpdatePos>d__10>(Cysharp.Threading.Tasks.UniTask.Awaiter&,SmallTipWin.<UpdatePos>d__10&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,StageManager.<OnLoading>d__9>(Cysharp.Threading.Tasks.UniTask.Awaiter&,StageManager.<OnLoading>d__9&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,SystemSetting.<Co_WaitFewMinute>d__35>(Cysharp.Threading.Tasks.UniTask.Awaiter&,SystemSetting.<Co_WaitFewMinute>d__35&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,UIBase.<ApplyClickEmptySpaceClose>d__34>(Cysharp.Threading.Tasks.UniTask.Awaiter&,UIBase.<ApplyClickEmptySpaceClose>d__34&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,UniTaskExtension.<DelayFrameInternal>d__2>(Cysharp.Threading.Tasks.UniTask.Awaiter&,UniTaskExtension.<DelayFrameInternal>d__2&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,UniTaskExtension.<DelayTimeInternal>d__8>(Cysharp.Threading.Tasks.UniTask.Awaiter&,UniTaskExtension.<DelayTimeInternal>d__8&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<object>,AssetBundleUtility.<Co_DoLoadAsset>d__23>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>&,AssetBundleUtility.<Co_DoLoadAsset>d__23&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<object>,AssetBundleUtility.<Co_LoadAssetBundleDependenice>d__22>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>&,AssetBundleUtility.<Co_LoadAssetBundleDependenice>d__22&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<object>,AssetBundleUtility.<Initialize>d__16>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>&,AssetBundleUtility.<Initialize>d__16&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UnityAsyncExtensions.AssetBundleRequestAwaiter,AssetBundleUtility.<Co_DoLoadAsset>d__23>(Cysharp.Threading.Tasks.UnityAsyncExtensions.AssetBundleRequestAwaiter&,AssetBundleUtility.<Co_DoLoadAsset>d__23&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UnityAsyncExtensions.UnityWebRequestAsyncOperationAwaiter,DownloadTask.<Co_GetHeader>d__39>(Cysharp.Threading.Tasks.UnityAsyncExtensions.UnityWebRequestAsyncOperationAwaiter&,DownloadTask.<Co_GetHeader>d__39&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,AssetBundleUtility.<Co_DoLoadAsset>d__23>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,AssetBundleUtility.<Co_DoLoadAsset>d__23&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,ChatCenter.<Co_CheckAfterCollect>d__59>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,ChatCenter.<Co_CheckAfterCollect>d__59&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,ChatSendComponent.<Co_ClientBan>d__32>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,ChatSendComponent.<Co_ClientBan>d__32&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,EquipOnMainUI.<FlyToEquipCell>d__12>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,EquipOnMainUI.<FlyToEquipCell>d__12&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,Main.<InitManagers>d__4>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,Main.<InitManagers>d__4&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,ServerTipDetails.<Co_StageLoadFinish>d__4>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,ServerTipDetails.<Co_StageLoadFinish>d__4&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,StageManager.<OnLoading>d__9>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,StageManager.<OnLoading>d__9&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,SysNotifyMgr.<Co_Instance>d__11>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,SysNotifyMgr.<Co_Instance>d__11&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,AssetBundleUtility.<Co_LoadAssetBundle>d__21>(Cysharp.Threading.Tasks.UniTask.Awaiter&,AssetBundleUtility.<Co_LoadAssetBundle>d__21&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UnityAsyncExtensions.AssetBundleCreateRequestAwaiter,AssetBundleUtility.<Co_LoadAssetBundle>d__21>(Cysharp.Threading.Tasks.UnityAsyncExtensions.AssetBundleCreateRequestAwaiter&,AssetBundleUtility.<Co_LoadAssetBundle>d__21&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,AssetBundleUtility.<Co_LoadAssetBundle>d__21>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,AssetBundleUtility.<Co_LoadAssetBundle>d__21&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<AdaptiveLayout.<Co_DelayShow>d__22>(AdaptiveLayout.<Co_DelayShow>d__22&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<AssetBundleUtility.<Co_DoLoadAsset>d__23>(AssetBundleUtility.<Co_DoLoadAsset>d__23&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<AssetBundleUtility.<Co_DoLoadAsset>d__24>(AssetBundleUtility.<Co_DoLoadAsset>d__24&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<AssetBundleUtility.<Co_LoadAssetBundleDependenice>d__22>(AssetBundleUtility.<Co_LoadAssetBundleDependenice>d__22&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<AssetBundleUtility.<Co_LoadMainfestFile>d__17>(AssetBundleUtility.<Co_LoadMainfestFile>d__17&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<AssetBundleUtility.<Initialize>d__16>(AssetBundleUtility.<Initialize>d__16&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<ChatCenter.<Co_CheckAfterCollect>d__59>(ChatCenter.<Co_CheckAfterCollect>d__59&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<ChatSendComponent.<Co_ClientBan>d__32>(ChatSendComponent.<Co_ClientBan>d__32&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<ConfigManager.<InitConfigs>d__6>(ConfigManager.<InitConfigs>d__6&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<ConfigManager.<LoadConfig>d__9<object>>(ConfigManager.<LoadConfig>d__9<object>&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<ConfigManager.<LoadConfigs>d__7>(ConfigManager.<LoadConfigs>d__7&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<CyclicScroll.<Co_StepByStepAppear>d__68>(CyclicScroll.<Co_StepByStepAppear>d__68&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<DownLoadAndDiscompressTask.<Co_StartDownLoad>d__33>(DownLoadAndDiscompressTask.<Co_StartDownLoad>d__33&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<DownloadTask.<Co_DownloadFile>d__40>(DownloadTask.<Co_DownloadFile>d__40&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<DownloadTask.<Co_GetHeader>d__39>(DownloadTask.<Co_GetHeader>d__39&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<DownloadTask.<Move>d__41>(DownloadTask.<Move>d__41&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<EffectPlayer.<PlayAsync>d__34>(EffectPlayer.<PlayAsync>d__34&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<EquipExchangeCell.<RefreshEffect>d__31>(EquipExchangeCell.<RefreshEffect>d__31&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<EquipOnMainUI.<FlyToEquipCell>d__12>(EquipOnMainUI.<FlyToEquipCell>d__12&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<EquipTipWin.<RefreshEffect>d__21>(EquipTipWin.<RefreshEffect>d__21&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<GameObjectPoolManager.<CheckPoolUsage>d__13>(GameObjectPoolManager.<CheckPoolUsage>d__13&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<HeroCallResultCell.<DisplayAsync>d__7>(HeroCallResultCell.<DisplayAsync>d__7&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<HeroCallResultWin.<MoveToNextState>d__35>(HeroCallResultWin.<MoveToNextState>d__35&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<HeroGiftWashWin.<SendPack>d__19>(HeroGiftWashWin.<SendPack>d__19&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<HeroPosWin.<RunTaskAsync>d__46>(HeroPosWin.<RunTaskAsync>d__46&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<HeroScenePosCell.<DelayShow>d__13>(HeroScenePosCell.<DelayShow>d__13&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<LayoutElementSizeClamp.<UpdateRect>d__9>(LayoutElementSizeClamp.<UpdateRect>d__9&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<Main.<InitManagers>d__4>(Main.<InitManagers>d__4&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<ServerTipDetails.<Co_StageLoadFinish>d__4>(ServerTipDetails.<Co_StageLoadFinish>d__4&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<SmallTipWin.<UpdatePos>d__10>(SmallTipWin.<UpdatePos>d__10&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<StageManager.<OnLoading>d__9>(StageManager.<OnLoading>d__9&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<SysNotifyMgr.<Co_Instance>d__11>(SysNotifyMgr.<Co_Instance>d__11&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<SystemSetting.<Co_WaitFewMinute>d__35>(SystemSetting.<Co_WaitFewMinute>d__35&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<UIBase.<ApplyClickEmptySpaceClose>d__34>(UIBase.<ApplyClickEmptySpaceClose>d__34&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<UniTaskExtension.<DelayFrameInternal>d__2>(UniTaskExtension.<DelayFrameInternal>d__2&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<UniTaskExtension.<DelayTimeInternal>d__8>(UniTaskExtension.<DelayTimeInternal>d__8&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.Start<AssetBundleUtility.<Co_LoadAssetBundle>d__21>(AssetBundleUtility.<Co_LoadAssetBundle>d__21&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,StageManager.<ToGameScene>d__8>(Cysharp.Threading.Tasks.UniTask.Awaiter&,StageManager.<ToGameScene>d__8&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,StageManager.<ToLoginScene>d__6>(Cysharp.Threading.Tasks.UniTask.Awaiter&,StageManager.<ToLoginScene>d__6&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder.Start<StageManager.<ToGameScene>d__8>(StageManager.<ToGameScene>d__8&)
-		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder.Start<StageManager.<ToLoginScene>d__6>(StageManager.<ToLoginScene>d__6&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,object>(Cysharp.Threading.Tasks.UniTask.Awaiter&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<byte>,object>(Cysharp.Threading.Tasks.UniTask.Awaiter<byte>&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<object>,object>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UnityAsyncExtensions.AssetBundleRequestAwaiter,object>(Cysharp.Threading.Tasks.UnityAsyncExtensions.AssetBundleRequestAwaiter&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UnityAsyncExtensions.ResourceRequestAwaiter,object>(Cysharp.Threading.Tasks.UnityAsyncExtensions.ResourceRequestAwaiter&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UnityAsyncExtensions.UnityWebRequestAsyncOperationAwaiter,object>(Cysharp.Threading.Tasks.UnityAsyncExtensions.UnityWebRequestAsyncOperationAwaiter&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,object>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<System.ValueTuple<byte,object>>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<object>,object>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<byte>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<object>,object>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<byte>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UnityAsyncExtensions.ResourceRequestAwaiter,object>(Cysharp.Threading.Tasks.UnityAsyncExtensions.ResourceRequestAwaiter&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<object>,object>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,object>(Cysharp.Threading.Tasks.UniTask.Awaiter&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<object>,object>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UnityAsyncExtensions.AssetBundleCreateRequestAwaiter,object>(Cysharp.Threading.Tasks.UnityAsyncExtensions.AssetBundleCreateRequestAwaiter&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UnityAsyncExtensions.ResourceRequestAwaiter,object>(Cysharp.Threading.Tasks.UnityAsyncExtensions.ResourceRequestAwaiter&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,object>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<object>,object>(System.Runtime.CompilerServices.TaskAwaiter<object>&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<object>(object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<System.ValueTuple<byte,object>>.Start<object>(object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<byte>.Start<object>(object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<int>.Start<object>(object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.Start<object>(object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,object>(Cysharp.Threading.Tasks.UniTask.Awaiter&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<byte>,object>(Cysharp.Threading.Tasks.UniTask.Awaiter<byte>&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<object>,object>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UnityAsyncExtensions.AsyncOperationAwaiter,object>(Cysharp.Threading.Tasks.UnityAsyncExtensions.AsyncOperationAwaiter&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,object>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,object&)
+		// System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder.Start<object>(object&)
+		// Cysharp.Threading.Tasks.Internal.StateTuple<Cysharp.Threading.Tasks.UniTask.Awaiter<object>> Cysharp.Threading.Tasks.Internal.StateTuple.Create<Cysharp.Threading.Tasks.UniTask.Awaiter<object>>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>)
+		// Cysharp.Threading.Tasks.UniTask Cysharp.Threading.Tasks.UniTaskExtensions.ContinueWith<byte>(Cysharp.Threading.Tasks.UniTask<byte>,System.Action<byte>)
+		// Cysharp.Threading.Tasks.UniTask Cysharp.Threading.Tasks.UniTaskExtensions.ContinueWith<object>(Cysharp.Threading.Tasks.UniTask<object>,System.Action<object>)
+		// Cysharp.Threading.Tasks.UniTask<object> Cysharp.Threading.Tasks.UniTaskExtensions.ContinueWith<object,object>(Cysharp.Threading.Tasks.UniTask<object>,System.Func<object,object>)
+		// System.Void Cysharp.Threading.Tasks.UniTaskExtensions.Forget<object>(Cysharp.Threading.Tasks.UniTask<object>)
 		// object DG.Tweening.TweenExtensions.Pause<object>(object)
 		// object DG.Tweening.TweenExtensions.Play<object>(object)
 		// object DG.Tweening.TweenSettingsExtensions.OnComplete<object>(object,DG.Tweening.TweenCallback)
+		// object DG.Tweening.TweenSettingsExtensions.SetAutoKill<object>(object,bool)
 		// object DG.Tweening.TweenSettingsExtensions.SetEase<object>(object,DG.Tweening.Ease)
 		// object DG.Tweening.TweenSettingsExtensions.SetEase<object>(object,UnityEngine.AnimationCurve)
-		// ItemTipUtility.CustomItemPlus LitJson.JsonMapper.ToObject<ItemTipUtility.CustomItemPlus>(string)
-		// LocalChatHistory.LocalChat LitJson.JsonMapper.ToObject<LocalChatHistory.LocalChat>(string)
-		// LocalChatHistory.LocalFriendChat LitJson.JsonMapper.ToObject<LocalChatHistory.LocalFriendChat>(string)
+		// object DG.Tweening.TweenSettingsExtensions.SetTarget<object>(object,object)
 		// UnityEngine.Vector2 LitJson.JsonMapper.ToObject<UnityEngine.Vector2>(string)
 		// object LitJson.JsonMapper.ToObject<object>(string)
 		// object System.Activator.CreateInstance<object>()
 		// object[] System.Array.Empty<object>()
+		// bool System.Array.Exists<int>(int[],System.Predicate<int>)
+		// bool System.Array.Exists<ushort>(ushort[],System.Predicate<ushort>)
+		// object[] System.Array.FindAll<object>(object[],System.Predicate<object>)
+		// int System.Array.FindIndex<int>(int[],System.Predicate<int>)
+		// int System.Array.FindIndex<int>(int[],int,int,System.Predicate<int>)
+		// int System.Array.FindIndex<ushort>(ushort[],System.Predicate<ushort>)
+		// int System.Array.FindIndex<ushort>(ushort[],int,int,System.Predicate<ushort>)
 		// int System.Array.IndexOf<int>(int[],int)
 		// int System.Array.IndexOf<object>(object[],object)
+		// int System.Array.IndexOf<ushort>(ushort[],ushort)
 		// int System.Array.IndexOfImpl<int>(int[],int,int,int)
 		// int System.Array.IndexOfImpl<object>(object[],object,int,int)
+		// int System.Array.IndexOfImpl<ushort>(ushort[],ushort,int,int)
 		// System.Void System.Array.Resize<byte>(byte[]&,int)
 		// System.Void System.Array.Resize<int>(int[]&,int)
+		// System.Void System.Array.Resize<object>(object[]&,int)
 		// System.Void System.Array.Resize<uint>(uint[]&,int)
 		// System.Void System.Array.Sort<object>(object[],System.Comparison<object>)
+		// bool System.Array.TrueForAll<byte>(byte[],System.Predicate<byte>)
 		// System.Collections.ObjectModel.ReadOnlyCollection<object> System.Dynamic.Utils.CollectionExtensions.ToReadOnly<object>(System.Collections.Generic.IEnumerable<object>)
 		// int System.Enum.Parse<int>(string)
 		// int System.Enum.Parse<int>(string,bool)
@@ -1299,8 +1702,8 @@
 		// bool System.Linq.Enumerable.Any<object>(System.Collections.Generic.IEnumerable<object>,System.Func<object,bool>)
 		// System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Cast<object>(System.Collections.IEnumerable)
 		// System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.CastIterator<object>(System.Collections.IEnumerable)
-		// bool System.Linq.Enumerable.Contains<int>(System.Collections.Generic.IEnumerable<int>,int)
-		// bool System.Linq.Enumerable.Contains<int>(System.Collections.Generic.IEnumerable<int>,int,System.Collections.Generic.IEqualityComparer<int>)
+		// System.Collections.Generic.IEnumerable<int> System.Linq.Enumerable.Concat<int>(System.Collections.Generic.IEnumerable<int>,System.Collections.Generic.IEnumerable<int>)
+		// System.Collections.Generic.IEnumerable<int> System.Linq.Enumerable.ConcatIterator<int>(System.Collections.Generic.IEnumerable<int>,System.Collections.Generic.IEnumerable<int>)
 		// int System.Linq.Enumerable.Count<object>(System.Collections.Generic.IEnumerable<object>,System.Func<object,bool>)
 		// System.Collections.Generic.IEnumerable<int> System.Linq.Enumerable.Distinct<int>(System.Collections.Generic.IEnumerable<int>)
 		// System.Collections.Generic.IEnumerable<int> System.Linq.Enumerable.DistinctIterator<int>(System.Collections.Generic.IEnumerable<int>,System.Collections.Generic.IEqualityComparer<int>)
@@ -1310,19 +1713,39 @@
 		// float System.Linq.Enumerable.Last<float>(System.Collections.Generic.IEnumerable<float>)
 		// int System.Linq.Enumerable.Last<int>(System.Collections.Generic.IEnumerable<int>)
 		// object System.Linq.Enumerable.Last<object>(System.Collections.Generic.IEnumerable<object>)
+		// System.Linq.IOrderedEnumerable<System.Collections.Generic.KeyValuePair<object,object>> System.Linq.Enumerable.OrderBy<System.Collections.Generic.KeyValuePair<object,object>,float>(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,object>>,System.Func<System.Collections.Generic.KeyValuePair<object,object>,float>)
 		// System.Linq.IOrderedEnumerable<System.Collections.Generic.KeyValuePair<object,object>> System.Linq.Enumerable.OrderBy<System.Collections.Generic.KeyValuePair<object,object>,long>(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,object>>,System.Func<System.Collections.Generic.KeyValuePair<object,object>,long>)
+		// System.Linq.IOrderedEnumerable<int> System.Linq.Enumerable.OrderBy<int,byte>(System.Collections.Generic.IEnumerable<int>,System.Func<int,byte>)
+		// System.Linq.IOrderedEnumerable<int> System.Linq.Enumerable.OrderBy<int,int>(System.Collections.Generic.IEnumerable<int>,System.Func<int,int>)
+		// System.Linq.IOrderedEnumerable<object> System.Linq.Enumerable.OrderBy<object,byte>(System.Collections.Generic.IEnumerable<object>,System.Func<object,byte>)
+		// System.Linq.IOrderedEnumerable<object> System.Linq.Enumerable.OrderBy<object,int>(System.Collections.Generic.IEnumerable<object>,System.Func<object,int>)
+		// System.Linq.IOrderedEnumerable<object> System.Linq.Enumerable.OrderBy<object,uint>(System.Collections.Generic.IEnumerable<object>,System.Func<object,uint>)
+		// System.Linq.IOrderedEnumerable<int> System.Linq.Enumerable.OrderByDescending<int,byte>(System.Collections.Generic.IEnumerable<int>,System.Func<int,byte>)
+		// System.Linq.IOrderedEnumerable<int> System.Linq.Enumerable.OrderByDescending<int,int>(System.Collections.Generic.IEnumerable<int>,System.Func<int,int>)
 		// System.Linq.IOrderedEnumerable<object> System.Linq.Enumerable.OrderByDescending<object,System.DateTime>(System.Collections.Generic.IEnumerable<object>,System.Func<object,System.DateTime>)
+		// System.Linq.IOrderedEnumerable<object> System.Linq.Enumerable.OrderByDescending<object,int>(System.Collections.Generic.IEnumerable<object>,System.Func<object,int>)
+		// System.Linq.IOrderedEnumerable<object> System.Linq.Enumerable.OrderByDescending<object,long>(System.Collections.Generic.IEnumerable<object>,System.Func<object,long>)
 		// System.Collections.Generic.IEnumerable<double> System.Linq.Enumerable.Select<object,double>(System.Collections.Generic.IEnumerable<object>,System.Func<object,double>)
 		// System.Collections.Generic.IEnumerable<int> System.Linq.Enumerable.Select<object,int>(System.Collections.Generic.IEnumerable<object>,System.Func<object,int>)
+		// System.Collections.Generic.IEnumerable<long> System.Linq.Enumerable.Select<object,long>(System.Collections.Generic.IEnumerable<object>,System.Func<object,long>)
+		// System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Select<System.Collections.Generic.KeyValuePair<int,int>,object>(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,int>>,System.Func<System.Collections.Generic.KeyValuePair<int,int>,object>)
 		// System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Select<System.Collections.Generic.KeyValuePair<object,object>,object>(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,object>>,System.Func<System.Collections.Generic.KeyValuePair<object,object>,object>)
 		// System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Select<double,object>(System.Collections.Generic.IEnumerable<double>,System.Func<double,object>)
 		// System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Select<int,object>(System.Collections.Generic.IEnumerable<int>,System.Func<int,object>)
 		// System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Select<object,object>(System.Collections.Generic.IEnumerable<object>,System.Func<object,object>)
+		// System.Collections.Generic.IEnumerable<ushort> System.Linq.Enumerable.Select<object,ushort>(System.Collections.Generic.IEnumerable<object>,System.Func<object,ushort>)
+		// long System.Linq.Enumerable.Sum<object>(System.Collections.Generic.IEnumerable<object>,System.Func<object,long>)
 		// System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Take<object>(System.Collections.Generic.IEnumerable<object>,int)
 		// System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.TakeIterator<object>(System.Collections.Generic.IEnumerable<object>,int)
+		// System.Linq.IOrderedEnumerable<int> System.Linq.Enumerable.ThenBy<int,int>(System.Linq.IOrderedEnumerable<int>,System.Func<int,int>)
+		// System.Linq.IOrderedEnumerable<object> System.Linq.Enumerable.ThenBy<object,byte>(System.Linq.IOrderedEnumerable<object>,System.Func<object,byte>)
+		// System.Linq.IOrderedEnumerable<object> System.Linq.Enumerable.ThenBy<object,int>(System.Linq.IOrderedEnumerable<object>,System.Func<object,int>)
+		// System.Linq.IOrderedEnumerable<object> System.Linq.Enumerable.ThenBy<object,uint>(System.Linq.IOrderedEnumerable<object>,System.Func<object,uint>)
 		// Jace.Execution.ParameterInfo[] System.Linq.Enumerable.ToArray<Jace.Execution.ParameterInfo>(System.Collections.Generic.IEnumerable<Jace.Execution.ParameterInfo>)
 		// object[] System.Linq.Enumerable.ToArray<object>(System.Collections.Generic.IEnumerable<object>)
+		// ushort[] System.Linq.Enumerable.ToArray<ushort>(System.Collections.Generic.IEnumerable<ushort>)
 		// System.Collections.Generic.List<Item> System.Linq.Enumerable.ToList<Item>(System.Collections.Generic.IEnumerable<Item>)
+		// System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<object,object>> System.Linq.Enumerable.ToList<System.Collections.Generic.KeyValuePair<object,object>>(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,object>>)
 		// System.Collections.Generic.List<double> System.Linq.Enumerable.ToList<double>(System.Collections.Generic.IEnumerable<double>)
 		// System.Collections.Generic.List<int> System.Linq.Enumerable.ToList<int>(System.Collections.Generic.IEnumerable<int>)
 		// System.Collections.Generic.List<object> System.Linq.Enumerable.ToList<object>(System.Collections.Generic.IEnumerable<object>)
@@ -1330,19 +1753,25 @@
 		// System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Where<object>(System.Collections.Generic.IEnumerable<object>,System.Func<object,bool>)
 		// System.Collections.Generic.IEnumerable<double> System.Linq.Enumerable.Iterator<object>.Select<double>(System.Func<object,double>)
 		// System.Collections.Generic.IEnumerable<int> System.Linq.Enumerable.Iterator<object>.Select<int>(System.Func<object,int>)
+		// System.Collections.Generic.IEnumerable<long> System.Linq.Enumerable.Iterator<object>.Select<long>(System.Func<object,long>)
+		// System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Iterator<System.Collections.Generic.KeyValuePair<int,int>>.Select<object>(System.Func<System.Collections.Generic.KeyValuePair<int,int>,object>)
 		// System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Iterator<System.Collections.Generic.KeyValuePair<object,object>>.Select<object>(System.Func<System.Collections.Generic.KeyValuePair<object,object>,object>)
 		// System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Iterator<double>.Select<object>(System.Func<double,object>)
 		// System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Iterator<int>.Select<object>(System.Func<int,object>)
 		// System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Iterator<object>.Select<object>(System.Func<object,object>)
+		// System.Collections.Generic.IEnumerable<ushort> System.Linq.Enumerable.Iterator<object>.Select<ushort>(System.Func<object,ushort>)
 		// System.Linq.Expressions.Expression<object> System.Linq.Expressions.Expression.Lambda<object>(System.Linq.Expressions.Expression,System.Linq.Expressions.ParameterExpression[])
 		// System.Linq.Expressions.Expression<object> System.Linq.Expressions.Expression.Lambda<object>(System.Linq.Expressions.Expression,bool,System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>)
 		// System.Linq.Expressions.Expression<object> System.Linq.Expressions.Expression.Lambda<object>(System.Linq.Expressions.Expression,string,bool,System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>)
-		// System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,DamageContent.<SetDamage>d__7>(Cysharp.Threading.Tasks.UniTask.Awaiter&,DamageContent.<SetDamage>d__7&)
-		// System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,GroupButtonExManager.<ExecuteNextFrame>d__10>(Cysharp.Threading.Tasks.UniTask.Awaiter&,GroupButtonExManager.<ExecuteNextFrame>d__10&)
-		// System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,UIBase.<ExecuteNextFrame>d__36>(Cysharp.Threading.Tasks.UniTask.Awaiter&,UIBase.<ExecuteNextFrame>d__36&)
-		// System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start<DamageContent.<SetDamage>d__7>(DamageContent.<SetDamage>d__7&)
-		// System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start<GroupButtonExManager.<ExecuteNextFrame>d__10>(GroupButtonExManager.<ExecuteNextFrame>d__10&)
-		// System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start<UIBase.<ExecuteNextFrame>d__36>(UIBase.<ExecuteNextFrame>d__36&)
+		// System.Linq.IOrderedEnumerable<int> System.Linq.IOrderedEnumerable<int>.CreateOrderedEnumerable<int>(System.Func<int,int>,System.Collections.Generic.IComparer<int>,bool)
+		// System.Linq.IOrderedEnumerable<object> System.Linq.IOrderedEnumerable<object>.CreateOrderedEnumerable<byte>(System.Func<object,byte>,System.Collections.Generic.IComparer<byte>,bool)
+		// System.Linq.IOrderedEnumerable<object> System.Linq.IOrderedEnumerable<object>.CreateOrderedEnumerable<int>(System.Func<object,int>,System.Collections.Generic.IComparer<int>,bool)
+		// System.Linq.IOrderedEnumerable<object> System.Linq.IOrderedEnumerable<object>.CreateOrderedEnumerable<uint>(System.Func<object,uint>,System.Collections.Generic.IComparer<uint>,bool)
+		// System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,object>(Cysharp.Threading.Tasks.UniTask.Awaiter&,object&)
+		// System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<byte>,object>(Cysharp.Threading.Tasks.UniTask.Awaiter<byte>&,object&)
+		// System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<object>,object>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>&,object&)
+		// System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter,object>(System.Runtime.CompilerServices.TaskAwaiter&,object&)
+		// System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start<object>(object&)
 		// object& System.Runtime.CompilerServices.Unsafe.As<object,object>(object&)
 		// System.Void* System.Runtime.CompilerServices.Unsafe.AsPointer<object>(object&)
 		// object UnityEngine.AndroidJNIHelper.ConvertFromJNIArray<object>(System.IntPtr)
@@ -1375,16 +1804,26 @@
 		// System.Void UnityEngine.GameObject.GetComponentsInChildren<object>(bool,System.Collections.Generic.List<object>)
 		// object[] UnityEngine.GameObject.GetComponentsInChildren<object>()
 		// object[] UnityEngine.GameObject.GetComponentsInChildren<object>(bool)
-		// object UnityEngine.JsonUtility.FromJson<object>(string)
+		// object[] UnityEngine.Object.FindObjectsOfType<object>()
 		// object UnityEngine.Object.Instantiate<object>(object)
 		// object UnityEngine.Object.Instantiate<object>(object,UnityEngine.Transform)
 		// object UnityEngine.Object.Instantiate<object>(object,UnityEngine.Transform,bool)
 		// object UnityEngine.Object.Instantiate<object>(object,UnityEngine.Vector3,UnityEngine.Quaternion)
-		// object UnityEngine.Resources.Load<object>(string)
+		// object[] UnityEngine.Resources.ConvertObjects<object>(UnityEngine.Object[])
+		// UnityEngine.ResourceRequest UnityEngine.Resources.LoadAsync<object>(string)
 		// object UnityEngine.ScriptableObject.CreateInstance<object>()
 		// object UnityEngine._AndroidJNIHelper.ConvertFromJNIArray<object>(System.IntPtr)
 		// System.IntPtr UnityEngine._AndroidJNIHelper.GetFieldID<object>(System.IntPtr,string,bool)
 		// System.IntPtr UnityEngine._AndroidJNIHelper.GetMethodID<object>(System.IntPtr,string,object[],bool)
 		// string UnityEngine._AndroidJNIHelper.GetSignature<object>(object[])
+		// object YooAsset.AssetHandle.GetAssetObject<object>()
+		// YooAsset.AllAssetsHandle YooAsset.ResourcePackage.LoadAllAssetsAsync<object>(string,uint)
+		// YooAsset.AllAssetsHandle YooAsset.ResourcePackage.LoadAllAssetsSync<object>(string)
+		// YooAsset.AssetHandle YooAsset.ResourcePackage.LoadAssetAsync<object>(string,uint)
+		// YooAsset.SubAssetsHandle YooAsset.ResourcePackage.LoadSubAssetsAsync<object>(string,uint)
+		// string string.Join<int>(string,System.Collections.Generic.IEnumerable<int>)
+		// string string.Join<uint>(string,System.Collections.Generic.IEnumerable<uint>)
+		// string string.JoinCore<int>(System.Char*,int,System.Collections.Generic.IEnumerable<int>)
+		// string string.JoinCore<uint>(System.Char*,int,System.Collections.Generic.IEnumerable<uint>)
 	}
 }
\ No newline at end of file
diff --git a/Assets/HybridCLRGenerate/link.xml b/Assets/HybridCLRGenerate/link.xml
index 142f319..7387745 100644
--- a/Assets/HybridCLRGenerate/link.xml
+++ b/Assets/HybridCLRGenerate/link.xml
@@ -35,11 +35,16 @@
     <type fullname="HttpBehaviour" preserve="all" />
     <type fullname="HttpRequest" preserve="all" />
     <type fullname="Launch" preserve="all" />
+    <type fullname="LaunchCommon.AssetVersion" preserve="all" />
+    <type fullname="LaunchCommon.InitialFunctionConfig" preserve="all" />
+    <type fullname="LaunchUtility" preserve="all" />
     <type fullname="LitJson.JsonData" preserve="all" />
     <type fullname="LitJson.JsonMapper" preserve="all" />
     <type fullname="LocalResManager" preserve="all" />
     <type fullname="LocalSave" preserve="all" />
     <type fullname="LogicEngine" preserve="all" />
+    <type fullname="ProjSG.Resource.IYooAssetBridge" preserve="all" />
+    <type fullname="ProjSG.Resource.YooAssetBridgeHolder" preserve="all" />
     <type fullname="ResourcesPath" preserve="all" />
     <type fullname="SingletonMonobehaviour`1" preserve="all" />
     <type fullname="Singleton`1" preserve="all" />
@@ -51,25 +56,15 @@
     <type fullname="System.Collections.Generic.Queue`1" preserve="all" />
     <type fullname="System.Collections.Generic.Queue`1/Enumerator" preserve="all" />
     <type fullname="System.Collections.Generic.Stack`1" preserve="all" />
+    <type fullname="System.Collections.Generic.Stack`1/Enumerator" preserve="all" />
     <type fullname="System.Collections.Specialized.OrderedDictionary" preserve="all" />
     <type fullname="System.ComponentModel.EditorBrowsableAttribute" preserve="all" />
     <type fullname="System.ComponentModel.EditorBrowsableState" preserve="all" />
     <type fullname="System.Diagnostics.Process" preserve="all" />
     <type fullname="System.Diagnostics.ProcessStartInfo" preserve="all" />
-    <type fullname="System.Diagnostics.Stopwatch" preserve="all" />
-    <type fullname="System.Net.Dns" preserve="all" />
-    <type fullname="System.Net.EndPoint" preserve="all" />
-    <type fullname="System.Net.IPAddress" preserve="all" />
-    <type fullname="System.Net.IPEndPoint" preserve="all" />
     <type fullname="System.Net.NetworkInformation.NetworkInterface" preserve="all" />
     <type fullname="System.Net.NetworkInformation.PhysicalAddress" preserve="all" />
     <type fullname="System.Net.ServicePointManager" preserve="all" />
-    <type fullname="System.Net.Sockets.AddressFamily" preserve="all" />
-    <type fullname="System.Net.Sockets.ProtocolType" preserve="all" />
-    <type fullname="System.Net.Sockets.Socket" preserve="all" />
-    <type fullname="System.Net.Sockets.SocketFlags" preserve="all" />
-    <type fullname="System.Net.Sockets.SocketShutdown" preserve="all" />
-    <type fullname="System.Net.Sockets.SocketType" preserve="all" />
     <type fullname="System.Net.WebRequest" preserve="all" />
     <type fullname="System.Net.WebResponse" preserve="all" />
     <type fullname="System.Text.RegularExpressions.Capture" preserve="all" />
@@ -113,9 +108,12 @@
     <type fullname="Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder" preserve="all" />
     <type fullname="Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder`1" preserve="all" />
     <type fullname="Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder" preserve="all" />
+    <type fullname="Cysharp.Threading.Tasks.EnumeratorAsyncExtensions" preserve="all" />
     <type fullname="Cysharp.Threading.Tasks.PlayerLoopTiming" preserve="all" />
     <type fullname="Cysharp.Threading.Tasks.UniTask" preserve="all" />
     <type fullname="Cysharp.Threading.Tasks.UniTask/Awaiter" preserve="all" />
+    <type fullname="Cysharp.Threading.Tasks.UniTaskCancellationExtensions" preserve="all" />
+    <type fullname="Cysharp.Threading.Tasks.UniTaskCompletionSource" preserve="all" />
     <type fullname="Cysharp.Threading.Tasks.UniTaskExtensions" preserve="all" />
     <type fullname="Cysharp.Threading.Tasks.UniTaskVoid" preserve="all" />
     <type fullname="Cysharp.Threading.Tasks.UniTask`1" preserve="all" />
@@ -123,9 +121,15 @@
     <type fullname="Cysharp.Threading.Tasks.UnityAsyncExtensions" preserve="all" />
     <type fullname="Cysharp.Threading.Tasks.UnityAsyncExtensions/AssetBundleCreateRequestAwaiter" preserve="all" />
     <type fullname="Cysharp.Threading.Tasks.UnityAsyncExtensions/AssetBundleRequestAwaiter" preserve="all" />
+    <type fullname="Cysharp.Threading.Tasks.UnityAsyncExtensions/AsyncOperationAwaiter" preserve="all" />
+    <type fullname="Cysharp.Threading.Tasks.UnityAsyncExtensions/ResourceRequestAwaiter" preserve="all" />
     <type fullname="Cysharp.Threading.Tasks.UnityAsyncExtensions/UnityWebRequestAsyncOperationAwaiter" preserve="all" />
     <type fullname="Cysharp.Threading.Tasks.YieldAwaitable" preserve="all" />
     <type fullname="Cysharp.Threading.Tasks.YieldAwaitable/Awaiter" preserve="all" />
+  </assembly>
+  <assembly fullname="UniTask.YooAsset">
+    <type fullname="Cysharp.Threading.Tasks.AsyncOperationBaseExtensions" preserve="all" />
+    <type fullname="Cysharp.Threading.Tasks.HandleBaseExtensions" preserve="all" />
   </assembly>
   <assembly fullname="UnityEngine.AndroidJNIModule">
     <type fullname="UnityEngine.AndroidJavaClass" preserve="all" />
@@ -170,6 +174,7 @@
     <type fullname="UnityEngine.Events.UnityEventBase" preserve="all" />
     <type fullname="UnityEngine.Events.UnityEvent`1" preserve="all" />
     <type fullname="UnityEngine.ExecuteAlways" preserve="all" />
+    <type fullname="UnityEngine.ExecuteInEditMode" preserve="all" />
     <type fullname="UnityEngine.FilterMode" preserve="all" />
     <type fullname="UnityEngine.GL" preserve="all" />
     <type fullname="UnityEngine.GameObject" preserve="all" />
@@ -178,6 +183,7 @@
     <type fullname="UnityEngine.HeaderAttribute" preserve="all" />
     <type fullname="UnityEngine.HideFlags" preserve="all" />
     <type fullname="UnityEngine.HideInInspector" preserve="all" />
+    <type fullname="UnityEngine.ILogger" preserve="all" />
     <type fullname="UnityEngine.KeyCode" preserve="all" />
     <type fullname="UnityEngine.Keyframe" preserve="all" />
     <type fullname="UnityEngine.LayerMask" preserve="all" />
@@ -202,8 +208,11 @@
     <type fullname="UnityEngine.Renderer" preserve="all" />
     <type fullname="UnityEngine.RequireComponent" preserve="all" />
     <type fullname="UnityEngine.Resolution" preserve="all" />
+    <type fullname="UnityEngine.ResourceRequest" preserve="all" />
     <type fullname="UnityEngine.Resources" preserve="all" />
     <type fullname="UnityEngine.RuntimePlatform" preserve="all" />
+    <type fullname="UnityEngine.SceneManagement.LoadSceneMode" preserve="all" />
+    <type fullname="UnityEngine.SceneManagement.LocalPhysicsMode" preserve="all" />
     <type fullname="UnityEngine.SceneManagement.SceneManager" preserve="all" />
     <type fullname="UnityEngine.Screen" preserve="all" />
     <type fullname="UnityEngine.ScriptableObject" preserve="all" />
@@ -225,7 +234,9 @@
     <type fullname="UnityEngine.TooltipAttribute" preserve="all" />
     <type fullname="UnityEngine.Transform" preserve="all" />
     <type fullname="UnityEngine.U2D.SpriteAtlas" preserve="all" />
+    <type fullname="UnityEngine.U2D.SpriteAtlasManager" preserve="all" />
     <type fullname="UnityEngine.Vector2" preserve="all" />
+    <type fullname="UnityEngine.Vector2Int" preserve="all" />
     <type fullname="UnityEngine.Vector3" preserve="all" />
     <type fullname="UnityEngine.Vector4" preserve="all" />
     <type fullname="UnityEngine.WaitForSeconds" preserve="all" />
@@ -233,13 +244,11 @@
   <assembly fullname="UnityEngine.IMGUIModule">
     <type fullname="UnityEngine.GUILayout" preserve="all" />
     <type fullname="UnityEngine.GUILayoutOption" preserve="all" />
+    <type fullname="UnityEngine.GUIUtility" preserve="all" />
   </assembly>
   <assembly fullname="UnityEngine.InputLegacyModule">
     <type fullname="UnityEngine.Input" preserve="all" />
     <type fullname="UnityEngine.Touch" preserve="all" />
-  </assembly>
-  <assembly fullname="UnityEngine.JSONSerializeModule">
-    <type fullname="UnityEngine.JsonUtility" preserve="all" />
   </assembly>
   <assembly fullname="UnityEngine.ParticleSystemModule">
     <type fullname="UnityEngine.ParticleSystem" preserve="all" />
@@ -255,6 +264,7 @@
   </assembly>
   <assembly fullname="UnityEngine.UI">
     <type fullname="UnityEngine.EventSystems.BaseEventData" preserve="all" />
+    <type fullname="UnityEngine.EventSystems.BaseInputModule" preserve="all" />
     <type fullname="UnityEngine.EventSystems.EventSystem" preserve="all" />
     <type fullname="UnityEngine.EventSystems.EventTrigger" preserve="all" />
     <type fullname="UnityEngine.EventSystems.ExecuteEvents" preserve="all" />
@@ -273,6 +283,7 @@
     <type fullname="UnityEngine.EventSystems.PointerEventData" preserve="all" />
     <type fullname="UnityEngine.EventSystems.PointerEventData/InputButton" preserve="all" />
     <type fullname="UnityEngine.EventSystems.RaycastResult" preserve="all" />
+    <type fullname="UnityEngine.EventSystems.StandaloneInputModule" preserve="all" />
     <type fullname="UnityEngine.EventSystems.UIBehaviour" preserve="all" />
     <type fullname="UnityEngine.UI.BaseMeshEffect" preserve="all" />
     <type fullname="UnityEngine.UI.Button" preserve="all" />
@@ -285,12 +296,14 @@
     <type fullname="UnityEngine.UI.DefaultControls/Resources" preserve="all" />
     <type fullname="UnityEngine.UI.Dropdown" preserve="all" />
     <type fullname="UnityEngine.UI.Dropdown/DropdownEvent" preserve="all" />
+    <type fullname="UnityEngine.UI.Dropdown/OptionData" preserve="all" />
     <type fullname="UnityEngine.UI.Graphic" preserve="all" />
     <type fullname="UnityEngine.UI.GraphicRaycaster" preserve="all" />
     <type fullname="UnityEngine.UI.GridLayoutGroup" preserve="all" />
     <type fullname="UnityEngine.UI.HorizontalLayoutGroup" preserve="all" />
     <type fullname="UnityEngine.UI.HorizontalOrVerticalLayoutGroup" preserve="all" />
     <type fullname="UnityEngine.UI.Image" preserve="all" />
+    <type fullname="UnityEngine.UI.Image/Type" preserve="all" />
     <type fullname="UnityEngine.UI.InputField" preserve="all" />
     <type fullname="UnityEngine.UI.InputField/OnChangeEvent" preserve="all" />
     <type fullname="UnityEngine.UI.InputField/OnValidateInput" preserve="all" />
@@ -298,7 +311,6 @@
     <type fullname="UnityEngine.UI.LayoutGroup" preserve="all" />
     <type fullname="UnityEngine.UI.LayoutRebuilder" preserve="all" />
     <type fullname="UnityEngine.UI.MaskableGraphic" preserve="all" />
-    <type fullname="UnityEngine.UI.Outline" preserve="all" />
     <type fullname="UnityEngine.UI.RawImage" preserve="all" />
     <type fullname="UnityEngine.UI.ScrollRect" preserve="all" />
     <type fullname="UnityEngine.UI.ScrollRect/ScrollRectEvent" preserve="all" />
@@ -319,6 +331,7 @@
     <type fullname="UnityEngine.CanvasGroup" preserve="all" />
     <type fullname="UnityEngine.ICanvasRaycastFilter" preserve="all" />
     <type fullname="UnityEngine.RectTransformUtility" preserve="all" />
+    <type fullname="UnityEngine.RenderMode" preserve="all" />
   </assembly>
   <assembly fullname="UnityEngine.UnityWebRequestModule">
     <type fullname="UnityEngine.Networking.DownloadHandler" preserve="all" />
@@ -329,12 +342,56 @@
   </assembly>
   <assembly fullname="UnityEngine.VideoModule">
     <type fullname="UnityEngine.Video.VideoClip" preserve="all" />
+    <type fullname="UnityEngine.Video.VideoPlayer" preserve="all" />
+    <type fullname="UnityEngine.Video.VideoPlayer/EventHandler" preserve="all" />
+    <type fullname="UnityEngine.Video.VideoSource" preserve="all" />
+  </assembly>
+  <assembly fullname="YooAsset">
+    <type fullname="YooAsset.AllAssetsHandle" preserve="all" />
+    <type fullname="YooAsset.AssetHandle" preserve="all" />
+    <type fullname="YooAsset.AssetInfo" preserve="all" />
+    <type fullname="YooAsset.AsyncOperationBase" preserve="all" />
+    <type fullname="YooAsset.DestroyOperation" preserve="all" />
+    <type fullname="YooAsset.DownloaderOperation" preserve="all" />
+    <type fullname="YooAsset.EOperationStatus" preserve="all" />
+    <type fullname="YooAsset.EPlayMode" preserve="all" />
+    <type fullname="YooAsset.FileSystemParameters" preserve="all" />
+    <type fullname="YooAsset.HandleBase" preserve="all" />
+    <type fullname="YooAsset.HostPlayModeParameters" preserve="all" />
+    <type fullname="YooAsset.IDecryptionServices" preserve="all" />
+    <type fullname="YooAsset.ILogger" preserve="all" />
+    <type fullname="YooAsset.IRemoteServices" preserve="all" />
+    <type fullname="YooAsset.IWebDecryptionServices" preserve="all" />
+    <type fullname="YooAsset.InitializationOperation" preserve="all" />
+    <type fullname="YooAsset.InitializeParameters" preserve="all" />
+    <type fullname="YooAsset.OfflinePlayModeParameters" preserve="all" />
+    <type fullname="YooAsset.RawFileHandle" preserve="all" />
+    <type fullname="YooAsset.RequestPackageVersionOperation" preserve="all" />
+    <type fullname="YooAsset.ResourceDownloaderOperation" preserve="all" />
+    <type fullname="YooAsset.ResourcePackage" preserve="all" />
+    <type fullname="YooAsset.SceneHandle" preserve="all" />
+    <type fullname="YooAsset.SubAssetsHandle" preserve="all" />
+    <type fullname="YooAsset.UnloadAllAssetsOperation" preserve="all" />
+    <type fullname="YooAsset.UnloadUnusedAssetsOperation" preserve="all" />
+    <type fullname="YooAsset.UpdatePackageManifestOperation" preserve="all" />
+    <type fullname="YooAsset.WebPlayModeParameters" preserve="all" />
+    <type fullname="YooAsset.YooAssets" preserve="all" />
+  </assembly>
+  <assembly fullname="endel.nativewebsocket">
+    <type fullname="NativeWebSocket.WebSocket" preserve="all" />
+    <type fullname="NativeWebSocket.WebSocketCloseCode" preserve="all" />
+    <type fullname="NativeWebSocket.WebSocketCloseEventHandler" preserve="all" />
+    <type fullname="NativeWebSocket.WebSocketErrorEventHandler" preserve="all" />
+    <type fullname="NativeWebSocket.WebSocketMessageEventHandler" preserve="all" />
+    <type fullname="NativeWebSocket.WebSocketOpenEventHandler" preserve="all" />
+    <type fullname="NativeWebSocket.WebSocketState" preserve="all" />
   </assembly>
   <assembly fullname="mscorlib">
     <type fullname="System.Action" preserve="all" />
     <type fullname="System.Action`1" preserve="all" />
     <type fullname="System.Action`2" preserve="all" />
     <type fullname="System.Action`3" preserve="all" />
+    <type fullname="System.Action`4" preserve="all" />
     <type fullname="System.Action`5" preserve="all" />
     <type fullname="System.Activator" preserve="all" />
     <type fullname="System.ArgumentException" preserve="all" />
@@ -357,6 +414,7 @@
     <type fullname="System.Collections.Generic.Dictionary`2/KeyCollection/Enumerator" preserve="all" />
     <type fullname="System.Collections.Generic.Dictionary`2/ValueCollection" preserve="all" />
     <type fullname="System.Collections.Generic.Dictionary`2/ValueCollection/Enumerator" preserve="all" />
+    <type fullname="System.Collections.Generic.EqualityComparer`1" preserve="all" />
     <type fullname="System.Collections.Generic.ICollection`1" preserve="all" />
     <type fullname="System.Collections.Generic.IDictionary`2" preserve="all" />
     <type fullname="System.Collections.Generic.IEnumerable`1" preserve="all" />
@@ -366,6 +424,7 @@
     <type fullname="System.Collections.Generic.List`1" preserve="all" />
     <type fullname="System.Collections.Generic.List`1/Enumerator" preserve="all" />
     <type fullname="System.Collections.ICollection" preserve="all" />
+    <type fullname="System.Collections.IDictionary" preserve="all" />
     <type fullname="System.Collections.IDictionaryEnumerator" preserve="all" />
     <type fullname="System.Collections.IEnumerable" preserve="all" />
     <type fullname="System.Collections.IEnumerator" preserve="all" />
@@ -373,12 +432,17 @@
     <type fullname="System.Comparison`1" preserve="all" />
     <type fullname="System.Convert" preserve="all" />
     <type fullname="System.DateTime" preserve="all" />
+    <type fullname="System.DateTimeOffset" preserve="all" />
     <type fullname="System.DayOfWeek" preserve="all" />
     <type fullname="System.Delegate" preserve="all" />
     <type fullname="System.Diagnostics.ConditionalAttribute" preserve="all" />
     <type fullname="System.Diagnostics.DebuggableAttribute" preserve="all" />
     <type fullname="System.Diagnostics.DebuggableAttribute/DebuggingModes" preserve="all" />
+    <type fullname="System.Diagnostics.DebuggerBrowsableAttribute" preserve="all" />
+    <type fullname="System.Diagnostics.DebuggerBrowsableState" preserve="all" />
+    <type fullname="System.Diagnostics.DebuggerDisplayAttribute" preserve="all" />
     <type fullname="System.Diagnostics.DebuggerHiddenAttribute" preserve="all" />
+    <type fullname="System.Diagnostics.DebuggerStepThroughAttribute" preserve="all" />
     <type fullname="System.Double" preserve="all" />
     <type fullname="System.Enum" preserve="all" />
     <type fullname="System.Environment" preserve="all" />
@@ -397,6 +461,7 @@
     <type fullname="System.Globalization.NumberStyles" preserve="all" />
     <type fullname="System.Globalization.TextInfo" preserve="all" />
     <type fullname="System.Globalization.UnicodeCategory" preserve="all" />
+    <type fullname="System.Guid" preserve="all" />
     <type fullname="System.IAsyncResult" preserve="all" />
     <type fullname="System.IComparable`1" preserve="all" />
     <type fullname="System.IDisposable" preserve="all" />
@@ -404,22 +469,19 @@
     <type fullname="System.IO.Directory" preserve="all" />
     <type fullname="System.IO.DirectoryInfo" preserve="all" />
     <type fullname="System.IO.File" preserve="all" />
-    <type fullname="System.IO.FileAccess" preserve="all" />
     <type fullname="System.IO.FileInfo" preserve="all" />
-    <type fullname="System.IO.FileMode" preserve="all" />
-    <type fullname="System.IO.FileStream" preserve="all" />
     <type fullname="System.IO.FileSystemInfo" preserve="all" />
     <type fullname="System.IO.Path" preserve="all" />
     <type fullname="System.IO.Stream" preserve="all" />
     <type fullname="System.IO.StreamReader" preserve="all" />
-    <type fullname="System.IO.StreamWriter" preserve="all" />
     <type fullname="System.IO.TextReader" preserve="all" />
-    <type fullname="System.IO.TextWriter" preserve="all" />
+    <type fullname="System.IProgress`1" preserve="all" />
     <type fullname="System.Int16" preserve="all" />
     <type fullname="System.Int32" preserve="all" />
     <type fullname="System.Int64" preserve="all" />
     <type fullname="System.InvalidOperationException" preserve="all" />
     <type fullname="System.Math" preserve="all" />
+    <type fullname="System.MathF" preserve="all" />
     <type fullname="System.MulticastDelegate" preserve="all" />
     <type fullname="System.NotSupportedException" preserve="all" />
     <type fullname="System.NullReferenceException" preserve="all" />
@@ -429,6 +491,7 @@
     <type fullname="System.OperationCanceledException" preserve="all" />
     <type fullname="System.ParamArrayAttribute" preserve="all" />
     <type fullname="System.Predicate`1" preserve="all" />
+    <type fullname="System.Progress`1" preserve="all" />
     <type fullname="System.Random" preserve="all" />
     <type fullname="System.Reflection.Assembly" preserve="all" />
     <type fullname="System.Reflection.BindingFlags" preserve="all" />
@@ -452,10 +515,14 @@
     <type fullname="System.Runtime.CompilerServices.IteratorStateMachineAttribute" preserve="all" />
     <type fullname="System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" preserve="all" />
     <type fullname="System.Runtime.CompilerServices.RuntimeHelpers" preserve="all" />
+    <type fullname="System.Runtime.CompilerServices.TaskAwaiter" preserve="all" />
+    <type fullname="System.Runtime.CompilerServices.TaskAwaiter`1" preserve="all" />
+    <type fullname="System.Runtime.CompilerServices.TupleElementNamesAttribute" preserve="all" />
     <type fullname="System.RuntimeFieldHandle" preserve="all" />
     <type fullname="System.RuntimeTypeHandle" preserve="all" />
     <type fullname="System.Single" preserve="all" />
     <type fullname="System.String" preserve="all" />
+    <type fullname="System.StringComparison" preserve="all" />
     <type fullname="System.StringSplitOptions" preserve="all" />
     <type fullname="System.Text.Encoding" preserve="all" />
     <type fullname="System.Text.StringBuilder" preserve="all" />
@@ -463,15 +530,15 @@
     <type fullname="System.Threading.CancellationTokenSource" preserve="all" />
     <type fullname="System.Threading.Interlocked" preserve="all" />
     <type fullname="System.Threading.Monitor" preserve="all" />
+    <type fullname="System.Threading.Tasks.Task" preserve="all" />
+    <type fullname="System.Threading.Tasks.Task`1" preserve="all" />
     <type fullname="System.Threading.Thread" preserve="all" />
-    <type fullname="System.Threading.ThreadPool" preserve="all" />
-    <type fullname="System.Threading.ThreadStart" preserve="all" />
-    <type fullname="System.Threading.WaitCallback" preserve="all" />
     <type fullname="System.TimeSpan" preserve="all" />
     <type fullname="System.Type" preserve="all" />
     <type fullname="System.UInt16" preserve="all" />
     <type fullname="System.UInt32" preserve="all" />
     <type fullname="System.UInt64" preserve="all" />
+    <type fullname="System.ValueTuple`2" preserve="all" />
     <type fullname="System.ValueType" preserve="all" />
   </assembly>
   <assembly fullname="spine-csharp">
@@ -480,6 +547,7 @@
     <type fullname="Spine.AnimationState/TrackEntryDelegate" preserve="all" />
     <type fullname="Spine.AnimationStateData" preserve="all" />
     <type fullname="Spine.BlendMode" preserve="all" />
+    <type fullname="Spine.Bone" preserve="all" />
     <type fullname="Spine.ExposedList`1" preserve="all" />
     <type fullname="Spine.ExposedList`1/Enumerator" preserve="all" />
     <type fullname="Spine.Skeleton" preserve="all" />
@@ -489,13 +557,13 @@
     <type fullname="Spine.TrackEntry" preserve="all" />
   </assembly>
   <assembly fullname="spine-unity">
-    <type fullname="Spine.Unity.ISkeletonAnimation" preserve="all" />
+    <type fullname="Spine.Unity.BoneFollower" preserve="all" />
+    <type fullname="Spine.Unity.BoneFollowerGraphic" preserve="all" />
     <type fullname="Spine.Unity.MeshGenerator" preserve="all" />
     <type fullname="Spine.Unity.MeshGenerator/Settings" preserve="all" />
     <type fullname="Spine.Unity.SkeletonAnimation" preserve="all" />
     <type fullname="Spine.Unity.SkeletonDataAsset" preserve="all" />
     <type fullname="Spine.Unity.SkeletonGraphic" preserve="all" />
     <type fullname="Spine.Unity.SkeletonRenderer" preserve="all" />
-    <type fullname="Spine.Unity.UpdateBonesDelegate" preserve="all" />
   </assembly>
 </linker>
\ No newline at end of file
diff --git a/Assets/Launch/Common/Clock.cs b/Assets/Launch/Common/Clock.cs
index 83aeab9..12a17a3 100644
--- a/Assets/Launch/Common/Clock.cs
+++ b/Assets/Launch/Common/Clock.cs
@@ -9,6 +9,8 @@
     DateTime alarmTime;
     UnityAction alarmCallBack;
 
+    private static LogicUpdate logicUpdate;
+
     public Clock(DateTime alarmTime, UnityAction callBack)
     {
         this.alarmTime = alarmTime;
@@ -33,7 +35,9 @@
 
     public static void Init()
     {
-        new LogicUpdate().Start(OnUpdate);
+        if (logicUpdate != null) return;
+        logicUpdate = new LogicUpdate();
+        logicUpdate.Start(OnUpdate);
     }
 
     public static Clock AlarmAt(DateTime alarmTime, UnityAction callBack)
diff --git a/Assets/Launch/Common/DownLoadAndDiscompressTask.cs b/Assets/Launch/Common/DownLoadAndDiscompressTask.cs
index 770151a..eb2dded 100644
--- a/Assets/Launch/Common/DownLoadAndDiscompressTask.cs
+++ b/Assets/Launch/Common/DownLoadAndDiscompressTask.cs
@@ -1,146 +1,146 @@
-锘縰sing System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using System;
-using LaunchCommon;
-using Cysharp.Threading.Tasks;
+锘�// using System.Collections;
+// using System.Collections.Generic;
+// using UnityEngine;
+// using System;
+// using LaunchCommon;
+// using Cysharp.Threading.Tasks;
 
 
-public class DownLoadAndDiscompressTask : Singleton<DownLoadAndDiscompressTask>
-{
-    public const int BYTE_PER_KILOBYTE = 1024;
+// public class DownLoadAndDiscompressTask : Singleton<DownLoadAndDiscompressTask>
+// {
+//     public const int BYTE_PER_KILOBYTE = 1024;
 
-    public float progress { get { return Mathf.Clamp01((float)DownloadMgr.Instance.DownloadedBytes / totalSize); } }
+//     public float progress { get { return Mathf.Clamp01((float)DownloadMgr.Instance.DownloadedBytes / totalSize); } }
 
-    List<AssetVersion> tasks = new List<AssetVersion>();
-    public bool isDone { get { return step == Step.Completed; } }
-    public int totalSize { get; private set; }
-    public int totalCount { get; private set; }
+//     List<AssetVersion> tasks = new List<AssetVersion>();
+//     public bool isDone { get { return step == Step.Completed; } }
+//     public int totalSize { get; private set; }
+//     public int totalCount { get; private set; }
 
-    public event Action<Step> downLoadStepChangeEvent;
+//     public event Action<Step> downLoadStepChangeEvent;
 
-    Action downLoadOkCallBack;
+//     Action downLoadOkCallBack;
 
-    Step m_Step = Step.None;
-    public Step step
-    {
-        get { return m_Step; }
-        set
-        {
-            if (m_Step != value)
-            {
-                m_Step = value;
+//     Step m_Step = Step.None;
+//     public Step step
+//     {
+//         get { return m_Step; }
+//         set
+//         {
+//             if (m_Step != value)
+//             {
+//                 m_Step = value;
 
-                if (downLoadStepChangeEvent != null)
-                {
-                    downLoadStepChangeEvent(m_Step);
-                }
-            }
-        }
-    }
+//                 if (downLoadStepChangeEvent != null)
+//                 {
+//                     downLoadStepChangeEvent(m_Step);
+//                 }
+//             }
+//         }
+//     }
 
-    public void Prepare(List<AssetVersion> _downLoadTasks, Action _downLoadOkCallBack)
-    {
-        tasks = _downLoadTasks;
-        downLoadOkCallBack = _downLoadOkCallBack;
+//     public void Prepare(List<AssetVersion> _downLoadTasks, Action _downLoadOkCallBack)
+//     {
+//         tasks = _downLoadTasks;
+//         downLoadOkCallBack = _downLoadOkCallBack;
 
-        totalCount = tasks.Count;
-        step = Step.DownLoadPrepared;
-        totalSize = 0;
+//         totalCount = tasks.Count;
+//         step = Step.DownLoadPrepared;
+//         totalSize = 0;
 
-        for (int i = 0; i < tasks.Count; i++)
-        {
-            var task = tasks[i];
-            totalSize += task.size;
-        }
+//         for (int i = 0; i < tasks.Count; i++)
+//         {
+//             var task = tasks[i];
+//             totalSize += task.size;
+//         }
 
-        StartDownLoad();
-    }
+//         StartDownLoad();
+//     }
 
-    public void StartDownLoad()
-    {
-        step = Step.DownLoad;
-        Co_StartDownLoad().Forget();
-    }
+//     public void StartDownLoad()
+//     {
+//         step = Step.DownLoad;
+//         Co_StartDownLoad().Forget();
+//     }
 
-    async UniTask Co_StartDownLoad()
-    {
-        int downLoadTryCount = 0;
-        List<bool> checkDownFile = new List<bool>();
-        while (tasks.Count > 0)
-        {
-            DownloadMgr.MaxDownLoadTask = 10;
-            DownloadMgr.Instance.Prepare();
-            for (int i = 0; i < tasks.Count; i++)
-            {
-                var assetVersion = tasks[i];
-                VersionConfigEx config = await VersionConfigEx.Get();
-                var remoteURL = StringUtility.Concat(LocalResManager.Instance.versionInfo.GetResourcesURL(config.branch), LocalResManager.fixPath, "/", assetVersion.relativePath);
-                var localURL = StringUtility.Concat(LocalResManager.Instance.ExternalStorePath, assetVersion.relativePath);
-                DownloadMgr.Instance.AddTask(new DownloadTask(remoteURL, localURL));
-            }
+//     async UniTask Co_StartDownLoad()
+//     {
+//         int downLoadTryCount = 0;
+//         List<bool> checkDownFile = new List<bool>();
+//         while (tasks.Count > 0)
+//         {
+//             DownloadMgr.MaxDownLoadTask = 10;
+//             DownloadMgr.Instance.Prepare();
+//             for (int i = 0; i < tasks.Count; i++)
+//             {
+//                 var assetVersion = tasks[i];
+//                 VersionConfigEx config = await VersionConfigEx.Get();
+//                 var remoteURL = StringUtility.Concat(LocalResManager.Instance.versionInfo.GetResourcesURL(config.branch), LocalResManager.fixPath, "/", assetVersion.relativePath);
+//                 var localURL = StringUtility.Concat(LocalResManager.Instance.ExternalStorePath, assetVersion.relativePath);
+//                 DownloadMgr.Instance.AddTask(new DownloadTask(remoteURL, localURL));
+//             }
 
-            DownloadMgr.Instance.Begin();
+//             DownloadMgr.Instance.Begin();
 
-            while (!DownloadMgr.Instance.IsFinished)
-            {
-                await UniTask.Yield();
-            }
+//             while (!DownloadMgr.Instance.IsFinished)
+//             {
+//                 await UniTask.Yield();
+//             }
 
-            checkDownFile = new List<bool>();
-            //妫�鏌ヤ笅杞藉畬鎴愬悗鐨勬枃浠舵槸鍚︽湁鏁�
-            var filledTasks = new List<AssetVersion>();//鏃犳晥鐨勬枃浠�
-            for (int i = 0; i < tasks.Count; i++)
-            {
-                var assetVersion = tasks[i];
-                var correctFile = assetVersion.CheckLocalFileValid(checkDownFile);
-                if (correctFile)
-                    assetVersion.localValid = true;
-                else
-                    filledTasks.Add(assetVersion);
-            }
+//             checkDownFile = new List<bool>();
+//             //妫�鏌ヤ笅杞藉畬鎴愬悗鐨勬枃浠舵槸鍚︽湁鏁�
+//             var filledTasks = new List<AssetVersion>();//鏃犳晥鐨勬枃浠�
+//             for (int i = 0; i < tasks.Count; i++)
+//             {
+//                 var assetVersion = tasks[i];
+//                 var correctFile = assetVersion.CheckLocalFileValid(checkDownFile);
+//                 if (correctFile)
+//                     assetVersion.localValid = true;
+//                 else
+//                     filledTasks.Add(assetVersion);
+//             }
             
-            if (filledTasks.Count > 0)
-            {
-                //鏂囦欢澶у皬鎴栬�匨D5涓嶅锛�1. cdn璧勬簮纭疄閿欒  2.cdn鎺ㄩ�佽繃绋嬩腑 鏂囦欢涓嶅尮閰�
-                //闇�瑕侀噸鏂颁笅杞絃ogicVersion鏂囦欢
-                if (checkDownFile.Count > 0)
-                {
-                    downLoadTryCount++;
-                }
-                Debug.LogErrorFormat("璧勬簮涓嬭浇瀹屽悗鏈墈0}涓枃浠舵棤鏁�({1})锛岄噸鏂板紑濮嬩笅杞�", filledTasks.Count, filledTasks[0].fileName);
-            }
-            tasks = filledTasks;
-            if (downLoadTryCount >= 1)
-            {
-                LocalResManager.step = LocalResManager.LoadDllStep.PrepareDownLoad;
-                break;
-            }
-        }
+//             if (filledTasks.Count > 0)
+//             {
+//                 //鏂囦欢澶у皬鎴栬�匨D5涓嶅锛�1. cdn璧勬簮纭疄閿欒  2.cdn鎺ㄩ�佽繃绋嬩腑 鏂囦欢涓嶅尮閰�
+//                 //闇�瑕侀噸鏂颁笅杞絃ogicVersion鏂囦欢
+//                 if (checkDownFile.Count > 0)
+//                 {
+//                     downLoadTryCount++;
+//                 }
+//                 Debug.LogErrorFormat("璧勬簮涓嬭浇瀹屽悗鏈墈0}涓枃浠舵棤鏁�({1})锛岄噸鏂板紑濮嬩笅杞�", filledTasks.Count, filledTasks[0].fileName);
+//             }
+//             tasks = filledTasks;
+//             if (downLoadTryCount >= 1)
+//             {
+//                 LocalResManager.step = LocalResManager.LoadDllStep.ReadBytes;
+//                 break;
+//             }
+//         }
 
-        if (downLoadTryCount >= 1)
-        {
-            Debug.LogError("logic璧勬簮涓嬭浇澶辫触锛岃鍛婃彁绀猴紝閫�鍑哄崗绋�");
-            LocalResManager.downLoadCount++;
-            return;
-        }
+//         if (downLoadTryCount >= 1)
+//         {
+//             Debug.LogError("logic璧勬簮涓嬭浇澶辫触锛岃鍛婃彁绀猴紝閫�鍑哄崗绋�");
+//             LocalResManager.downLoadCount++;
+//             return;
+//         }
 
-        Debug.Log("璧勬簮鍏ㄩ儴涓嬭浇瀹屾垚");
+//         Debug.Log("璧勬簮鍏ㄩ儴涓嬭浇瀹屾垚");
 
-        step = Step.Completed;
+//         step = Step.Completed;
 
-        if (downLoadOkCallBack != null)
-        {
-            downLoadOkCallBack();
-            downLoadOkCallBack = null;
-        }
-    }
+//         if (downLoadOkCallBack != null)
+//         {
+//             downLoadOkCallBack();
+//             downLoadOkCallBack = null;
+//         }
+//     }
 
-    public enum Step
-    {
-        None,
-        DownLoadPrepared,
-        DownLoad,
-        Completed,
-    }
-}
\ No newline at end of file
+//     public enum Step
+//     {
+//         None,
+//         DownLoadPrepared,
+//         DownLoad,
+//         Completed,
+//     }
+// }
\ No newline at end of file
diff --git a/Assets/Launch/Common/DownloadMgr.cs b/Assets/Launch/Common/DownloadMgr.cs
index 18732fa..bac2cfd 100644
--- a/Assets/Launch/Common/DownloadMgr.cs
+++ b/Assets/Launch/Common/DownloadMgr.cs
@@ -9,6 +9,7 @@
 using UnityEngine;
 using UnityEngine.Networking;
 
+#if !UNITY_WEBGL
 
     public class DownloadMgr : SingletonMonobehaviour<DownloadMgr>
     {
@@ -445,7 +446,6 @@
             var copyState = 0;//澶嶅埗鏂囦欢鐘舵�侊紝0绛夊緟锛�1鎴愬姛锛�2澶辫触
             try
             {
-                // if (speedLimit)
                 ThreadPool.QueueUserWorkItem((object _obj) =>
                 {
                     if (File.Exists(destFile))
@@ -453,13 +453,6 @@
                     File.Move(sourceFile, destFile);
                     System.Threading.Interlocked.Exchange(ref copyState, 1);
                 });
-                // else
-                // {
-                //     if (File.Exists(destFile))
-                //         File.Delete(destFile);
-                //     File.Move(sourceFile, destFile);
-                //     copyState = 1;
-                // }
             }
             catch (Exception ex)
             {
@@ -477,4 +470,6 @@
                 SetFailed("涓存椂鏂囦欢鏀瑰悕鍑洪敊");
         }
 
-    }
\ No newline at end of file
+    }
+
+#endif // !UNITY_WEBGL
\ No newline at end of file
diff --git a/Assets/Launch/Common/LocalSave.cs b/Assets/Launch/Common/LocalSave.cs
index 29fe81d..29b6cc5 100644
--- a/Assets/Launch/Common/LocalSave.cs
+++ b/Assets/Launch/Common/LocalSave.cs
@@ -7,192 +7,216 @@
 using System;
 
 
-using System.Threading.Tasks;
-#if WX_GAME
-using UnityEngine;
-using System.Runtime.InteropServices;
-#endif
-using Cysharp.Threading.Tasks;
-
 public static class LocalSave
 {
-// WX_GAME 涓嬮�氳繃 JSBridge 璋冪敤鍚屾 API
-#if WX_GAME
-using UnityEngine;
-using System.Runtime.InteropServices;
-    [DllImport("__Internal")]
-    private static extern void WXSetStorageSync(string key, string value);
-    [DllImport("__Internal")]
-    private static extern string WXGetStorageSync(string key);
-    [DllImport("__Internal")]
-    private static extern void WXRemoveStorageSync(string key);
-    [DllImport("__Internal")]
-    private static extern void WXClearStorageSync();
-#endif
 
-    // --- 鍚屾鎺ュ彛 ---
-    public static void SetString(string key, string value)
+    public static void DeleteAll()
     {
-#if WX_GAME
-        WXSetStorageSync(key, value);
-#else
-        PlayerPrefs.SetString(key, value);
-#endif
+        PlayerPrefs.DeleteAll();
     }
 
-    public static string GetString(string key, string defaultValue = "")
+    public static void DeleteKey(string _key)
     {
-#if WX_GAME
-        var v = WXGetStorageSync(key);
-        return string.IsNullOrEmpty(v) ? defaultValue : v;
-#else
-        if (!PlayerPrefs.HasKey(key)) return defaultValue;
-        return PlayerPrefs.GetString(key);
-#endif
+        PlayerPrefs.DeleteKey(_key);
+    }
+
+    public static bool HasKey(string _key)
+    {
+        return PlayerPrefs.HasKey(_key);
     }
 
     public static void SetInt(string key, int value)
     {
-        SetString(key, value.ToString());
+        PlayerPrefs.SetInt(key, value);
     }
 
-    public static int GetInt(string key, int defaultValue = 0)
+    public static int GetInt(string key, int _default = 0)
     {
-        var str = GetString(key, null);
-        if (string.IsNullOrEmpty(str)) return defaultValue;
-        int.TryParse(str, out var v);
-        return v;
+        if (!PlayerPrefs.HasKey(key))
+        {
+            return _default;
+        }
+        else
+        {
+            return PlayerPrefs.GetInt(key);
+        }
     }
 
     public static void SetFloat(string key, float value)
     {
-        SetString(key, value.ToString());
+
+        PlayerPrefs.SetFloat(key, value);
     }
 
-    public static float GetFloat(string key, float defaultValue = 0f)
+    public static float GetFloat(string key, float _default = 0f)
     {
-        var str = GetString(key, null);
-        if (string.IsNullOrEmpty(str)) return defaultValue;
-        float.TryParse(str, out var v);
-        return v;
+        if (!PlayerPrefs.HasKey(key))
+        {
+            return _default;
+        }
+        else
+        {
+            return PlayerPrefs.GetFloat(key);
+        }
     }
 
     public static void SetBool(string key, bool value)
     {
-        SetInt(key, value ? 1 : 0);
+
+        PlayerPrefs.SetInt(key, value ? 1 : 0);
     }
 
-    public static bool GetBool(string key, bool defaultValue = false)
+    public static bool GetBool(string key, bool _default = false)
     {
-        var v = GetInt(key, defaultValue ? 1 : 0);
-        return v == 1;
+        if (!PlayerPrefs.HasKey(key))
+        {
+            return _default;
+        }
+        else
+        {
+            return PlayerPrefs.GetInt(key) == 1;
+        }
+    }
+
+    public static void SetString(string key, string value)
+    {
+
+        PlayerPrefs.SetString(key, value);
+    }
+
+    public static string GetString(string key)
+    {
+        if (!PlayerPrefs.HasKey(key))
+        {
+            return string.Empty;
+        }
+        else
+        {
+            return PlayerPrefs.GetString(key);
+        }
     }
 
     public static void SetVector3(string key, Vector3 value)
     {
-        var str = $"{value.x};{value.y};{value.z}";
-        SetString(key, str);
+        var sb = new StringBuilder();
+        sb.Append(value.x);
+        sb.Append(";");
+        sb.Append(value.y);
+        sb.Append(";");
+        sb.Append(value.z);
+
+        PlayerPrefs.SetString(key, sb.ToString());
     }
 
     public static Vector3 GetVector3(string key)
     {
-        var str = GetString(key, null);
-        if (string.IsNullOrEmpty(str)) return Vector3.zero;
-        var arr = str.Split(';');
-        if (arr.Length != 3) return Vector3.zero;
-        float.TryParse(arr[0], out var x);
-        float.TryParse(arr[1], out var y);
-        float.TryParse(arr[2], out var z);
-        return new Vector3(x, y, z);
+        if (!PlayerPrefs.HasKey(key))
+        {
+            return Vector3.zero;
+        }
+        else
+        {
+            var v = new Vector3();
+            var strArray = PlayerPrefs.GetString(key).Split(';');
+            v.x = float.Parse(strArray[0]);
+            v.y = float.Parse(strArray[2]);
+            v.z = float.Parse(strArray[4]);
+
+            return v;
+        }
     }
 
     public static void SetIntArray(string key, int[] value)
     {
-        if (value == null || value.Length == 0)
+        if (value != null && value.Length > 0)
         {
-            DeleteKey(key);
-            return;
+            var sb = new StringBuilder();
+            for (var i = 0; i < value.Length; i++)
+            {
+                sb.Append(value[i]);
+                sb.Append(';');
+            }
+
+            sb.Remove(sb.Length - 1, 1);
+            PlayerPrefs.SetString(key, sb.ToString());
         }
-        var str = string.Join(";", value);
-        SetString(key, str);
+        else
+        {
+            PlayerPrefs.DeleteKey(key);
+        }
     }
 
     public static int[] GetIntArray(string key)
     {
-        var str = GetString(key, null);
-        if (string.IsNullOrEmpty(str)) return null;
-        var arr = str.Split(';');
-        var result = new int[arr.Length];
-        for (int i = 0; i < arr.Length; i++)
-            int.TryParse(arr[i], out result[i]);
-        return result;
+        if (!PlayerPrefs.HasKey(key))
+        {
+            return null;
+        }
+        else
+        {
+            var value = PlayerPrefs.GetString(key);
+
+            var strArray = value.Split(';');
+            var intArray = new int[strArray.Length];
+            for (var i = 0; i < strArray.Length; i++)
+            {
+                int.TryParse(strArray[i], out intArray[i]);
+            }
+
+            return intArray;
+        }
     }
 
     public static void SetFloatArray(string key, float[] value)
     {
-        if (value == null || value.Length == 0)
+        var sb = new StringBuilder();
+        for (var i = 0; i < value.Length; i++)
         {
-            DeleteKey(key);
-            return;
+            sb.Append(value[i]);
+            sb.Append(";");
         }
-        var str = string.Join(";", value);
-        SetString(key, str);
+
+        sb.Remove(sb.Length - 1, 1);
+        PlayerPrefs.SetString(key, sb.ToString());
     }
 
     public static float[] GetFloatArray(string key)
     {
-        var str = GetString(key, null);
-        if (string.IsNullOrEmpty(str)) return null;
-        var arr = str.Split(';');
-        var result = new float[arr.Length];
-        for (int i = 0; i < arr.Length; i++)
-            float.TryParse(arr[i], out result[i]);
-        return result;
+        if (!PlayerPrefs.HasKey(key))
+        {
+            return null;
+        }
+        else
+        {
+            var value = PlayerPrefs.GetString(key);
+            var strArray = value.Split(';');
+            var array = new float[strArray.Length];
+            for (var i = 0; i < strArray.Length; i++)
+            {
+                float.TryParse(strArray[i], out array[i]);
+            }
+
+            return array;
+        }
+
     }
 
     public static void SetStringArray(string key, string[] value)
     {
-        if (value == null || value.Length == 0)
-        {
-            DeleteKey(key);
-            return;
-        }
-        var str = string.Join(";", value);
-        SetString(key, str);
+        var valueGroup = string.Join(";", value);
+        PlayerPrefs.SetString(key, valueGroup);
     }
 
     public static string[] GeStringArray(string key)
     {
-        var str = GetString(key, null);
-        if (string.IsNullOrEmpty(str)) return null;
-        return str.Split(';');
-    }
-
-    public static void DeleteKey(string key)
-    {
-#if WX_GAME
-        WXRemoveStorageSync(key);
-#else
-        PlayerPrefs.DeleteKey(key);
-#endif
-    }
-
-    public static void DeleteAll()
-    {
-#if WX_GAME
-        WXClearStorageSync();
-#else
-        PlayerPrefs.DeleteAll();
-#endif
-    }
-
-    public static bool HasKey(string key)
-    {
-#if WX_GAME
-        var v = WXGetStorageSync(key);
-        return !string.IsNullOrEmpty(v);
-#else
-        return PlayerPrefs.HasKey(key);
-#endif
+        if (!PlayerPrefs.HasKey(key))
+        {
+            return null;
+        }
+        else
+        {
+            var value = PlayerPrefs.GetString(key);
+            return value.Split(';');
+        }
     }
 }
diff --git a/Assets/Launch/Common/PreserveEngineTypes.cs b/Assets/Launch/Common/PreserveEngineTypes.cs
new file mode 100644
index 0000000..a32fc38
--- /dev/null
+++ b/Assets/Launch/Common/PreserveEngineTypes.cs
@@ -0,0 +1,21 @@
+// 姝ゆ枃浠堕槻姝� Unity WebGL 鏋勫缓鐨� Strip Engine Code 瑁佸壀鐑洿鏂颁唬鐮佹墍浣跨敤鐨勫師鐢熷紩鎿庣被銆�
+// HybridCLR 鐑洿鏂� DLL 涓紩鐢ㄧ殑绫诲瀷鍦ㄦ瀯寤烘椂闈欐�佸垎鏋愪笉鍙锛岄渶瑕佸湪 AOT 绋嬪簭闆嗕腑鏄惧紡淇濈暀銆�
+using UnityEngine;
+using UnityEngine.Audio;
+using UnityEngine.Scripting;
+
+[Preserve]
+internal static class PreserveEngineTypes
+{
+    [Preserve]
+    static void KeepTypes()
+    {
+        // 淇濈暀 AudioSource (Class ID 81)
+        _ = typeof(AudioSource);
+        // 淇濈暀 AudioMixerSnapshotController (Class ID 245)
+        _ = typeof(AudioMixerSnapshot);
+        _ = typeof(AudioMixer);
+    }
+
+    static System.Type _;
+}
diff --git a/Assets/Launch/FirstPackLang.cs.meta b/Assets/Launch/Common/PreserveEngineTypes.cs.meta
similarity index 83%
rename from Assets/Launch/FirstPackLang.cs.meta
rename to Assets/Launch/Common/PreserveEngineTypes.cs.meta
index 94ca447..7bb035a 100644
--- a/Assets/Launch/FirstPackLang.cs.meta
+++ b/Assets/Launch/Common/PreserveEngineTypes.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 2024c0ab267b19244a4f367fbab5523b
+guid: c69257156b872f54ab22328a45587e02
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Assets/Launch/Config/AssetSource.cs b/Assets/Launch/Config/AssetSource.cs
index a8279ae..0f62b8a 100644
--- a/Assets/Launch/Config/AssetSource.cs
+++ b/Assets/Launch/Config/AssetSource.cs
@@ -18,4 +18,46 @@
 #endif
         }
     }
+
+    /// <summary>
+    /// 缂栬緫鍣ㄤ笅妯℃嫙 WebGL 鍔犺浇鏂瑰紡锛圚ost/Offline + 瀹屾暣鐗堟湰妫�鏌ユ祦绋嬶級銆�
+    /// 寮�鍚墠璇峰厛寮�鍚� AB 妯″紡骞剁‘淇濊祫婧愬凡鎵撳寘鍒� StreamingAssets銆�
+    /// 闈炵紪杈戝櫒鐜濮嬬粓杩斿洖 false銆�
+    /// </summary>
+    public static bool simulateWebGL
+    {
+        get
+        {
+#if UNITY_EDITOR
+            return UnityEditor.EditorPrefs.GetBool("YooAsset_SimulateWebGL", false);
+#else
+            return false;
+#endif
+        }
+    }
+
+    /// <summary>
+    /// Editor 涓嬬敤鏈湴纭洏鐩綍妯℃嫙 CDN 鏍硅矾寰勶紙鍙�夛級銆�
+    /// 鐣欑┖鍒� WebPlayMode 浠呬粠 StreamingAssets锛圵ebServer锛夊姞杞斤紝涓嶅惎鐢ㄨ繙绋嬫枃浠剁郴缁熴��
+    /// 璁句负鏈湴缁濆璺緞锛堝 E:/ProjSG/Bundles/StandaloneWindows64/UI/1.0.0锛夛紝
+    /// 杩愯鏃惰嚜鍔ㄥ姞 file:/// 鍓嶇紑渚� UnityWebRequest 璁块棶銆�
+    /// 闈炵紪杈戝櫒鐜濮嬬粓杩斿洖绌哄瓧绗︿覆銆�
+    /// </summary>
+    public static string simLocalCdnPath
+    {
+        get
+        {
+#if UNITY_EDITOR
+            return UnityEditor.EditorPrefs.GetString("YooAsset_SimLocalCdnPath", "");
+#else
+            return "";
+#endif
+        }
+        set
+        {
+#if UNITY_EDITOR
+            UnityEditor.EditorPrefs.SetString("YooAsset_SimLocalCdnPath", value ?? "");
+#endif
+        }
+    }
 }
diff --git a/Assets/Launch/FirstPackLang.cs b/Assets/Launch/FirstPackLang.cs
deleted file mode 100644
index 23c7227..0000000
--- a/Assets/Launch/FirstPackLang.cs
+++ /dev/null
@@ -1,111 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using System.IO;
-using System.Text;
-
-/// <summary>
-/// 棣栧寘璇█绠$悊绫�
-/// </summary>
-public class FirstPackLang
-{
-    private static FirstPackLang _instance;
-    private Dictionary<string, string> _langDict = new Dictionary<string, string>();
-    private List<string> _langList = new List<string>();
-
-    // 璇█鏂囨湰绱㈠紩
-    public static class TextIndex
-    {
-        public const int HotUpdate = 0;
-        public const int InitSDK = 1;
-        public const int ExtractResources = 2;
-        public const int CheckVersion = 3;
-        public const int EnterHotUpdateAssembly = 4;
-        public const int PrepareUpdate = 5;
-        public const int SkipHotUpdate = 6;
-        public const int LatestVersion = 7;
-        public const int DownloadingUpdate = 8;
-        public const int ApplyingUpdate = 9;
-        public const int RestartRequired = 10;
-        public const int InitializingSDK = 11;
-        public const int CheckingResources = 12;
-        public const int ExtractingResources = 13;
-        public const int ResourceCheckComplete = 14;
-        public const int CheckingVersion = 15;
-        public const int MinorUpdateDetected = 16;
-        public const int MediumUpdateDetected = 17;
-        public const int MajorUpdateDetected = 18;
-        public const int EnteringGame = 19;
-        
-        // LaunchLoadingWin 鐩稿叧鏂囨湰
-        public const int LoadingResources = 20;     // 姝e湪鍔犺浇娓告垙璧勬簮...
-        public const int CheckingVersionUpdate = 21; // 姝e湪妫�鏌ョ増鏈洿鏂�...
-        public const int InitializingGame = 22;     // 姝e湪鍒濆鍖栨父鎴�...
-        public const int EnteringGameWorld = 23;    // 鍑嗗杩涘叆娓告垙涓栫晫...
-    }
-
-    public static FirstPackLang Instance
-    {
-        get
-        {
-            if (_instance == null)
-            {
-                _instance = new FirstPackLang();
-                _instance.Init();
-            }
-            return _instance;
-        }
-    }
-
-    private void Init()
-    {
-        LoadLanguageFile();
-    }
-
-    private void LoadLanguageFile()
-    {
-        TextAsset textAsset = Resources.Load<TextAsset>("firstpackLang");
-        if (textAsset == null)
-        {
-            Debug.LogError("鏃犳硶鍔犺浇璇█鏂囦欢: firstpackLang.txt");
-            return;
-        }
-
-        string[] lines = textAsset.text.Split('\n');
-        for (int i = 0; i < lines.Length; i++)
-        {
-            string line = lines[i].Trim();
-            if (!string.IsNullOrEmpty(line))
-            {
-                _langList.Add(line);
-                _langDict[line] = i.ToString();
-            }
-        }
-
-        Debug.Log($"宸插姞杞� {_langList.Count} 鏉¤瑷�鏉$洰");
-    }
-
-    /// <summary>
-    /// 閫氳繃绱㈠紩鑾峰彇鏂囨湰
-    /// </summary>
-    public string GetText(int index)
-    {
-        if (index >= 0 && index < _langList.Count)
-        {
-            return _langList[index];
-        }
-        return $"[Missing Text: {index}]";
-    }
-
-    /// <summary>
-    /// 閫氳繃鍘熷涓枃鑾峰彇绱㈠紩
-    /// </summary>
-    public int GetIndex(string originalText)
-    {
-        if (_langDict.TryGetValue(originalText, out string indexStr))
-        {
-            return int.Parse(indexStr);
-        }
-        return -1;
-    }
-}
\ No newline at end of file
diff --git a/Assets/Launch/HttpRequest/HttpBehaviour.cs b/Assets/Launch/HttpRequest/HttpBehaviour.cs
index 18bc6c9..45f11d9 100644
--- a/Assets/Launch/HttpRequest/HttpBehaviour.cs
+++ b/Assets/Launch/HttpRequest/HttpBehaviour.cs
@@ -1,15 +1,17 @@
 锘縰sing System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
+using UnityEngine.Networking;
 using System;
 using System.Net;
 using System.Text;
 using System.IO;
 using System.Net.Security;
 using System.Security.Cryptography.X509Certificates;
+using Cysharp.Threading.Tasks;
 
 
-    public class HttpBehaviour : MonoBehaviour
+public class HttpBehaviour : MonoBehaviour
     {
 
         string url;
@@ -41,6 +43,52 @@
             behaviour.Begin(_url, _method, _content, _contentType, _retry, _result);
         }
 
+        /// <summary>
+        /// Create 鐨勫紓姝ョ増鏈紝浣跨敤 UnityWebRequest 瀹炵幇锛屾敮鎸佹墍鏈夊钩鍙帮紙鍚� WebGL锛夈��
+        /// </summary>
+        public static async UniTask<(bool ok, string message)> CreateAsync(string _url, string _method, string _content, string _contentType, int _retry = 3, Action<bool, string> _result = null)
+        {
+            bool ok = false;
+            string message = string.Empty;
+
+            for (int attempt = 0; attempt <= _retry; attempt++)
+            {
+                UnityWebRequest www;
+                if (_method == "POST")
+                {
+                    var bodyRaw = Encoding.UTF8.GetBytes(_content);
+                    www = new UnityWebRequest(_url, "POST");
+                    www.uploadHandler = new UploadHandlerRaw(bodyRaw);
+                    www.downloadHandler = new DownloadHandlerBuffer();
+                    www.SetRequestHeader("Content-Type", _contentType);
+                }
+                else
+                {
+                    www = UnityWebRequest.Get(_url);
+                    www.SetRequestHeader("Content-Type", _contentType);
+                }
+
+                using (www)
+                {
+                    await www.SendWebRequest();
+                    ok = www.result == UnityWebRequest.Result.Success;
+                    message = ok ? www.downloadHandler.text : www.error;
+                }
+
+                if (ok)
+                {
+                    ConnectAllTimes = 0;
+                    break;
+                }
+
+                ConnectAllTimes++;
+                Debug.LogWarning($"[HttpBehaviour] CreateAsync failed (attempt {attempt + 1}/{_retry + 1}): {message} url={_url}");
+            }
+
+            _result?.Invoke(ok, message);
+            return (ok, message);
+        }
+
         void Begin(string _url, string _method, string _content, string _contentType, int _retry = 3, Action<bool, string> _result = null)
         {
             this.url = _url;
diff --git a/Assets/Launch/HttpRequest/HttpRequest.cs b/Assets/Launch/HttpRequest/HttpRequest.cs
index 4b009f0..7c4859a 100644
--- a/Assets/Launch/HttpRequest/HttpRequest.cs
+++ b/Assets/Launch/HttpRequest/HttpRequest.cs
@@ -15,45 +15,48 @@
     public const string defaultHttpContentType = "application/x-www-form-urlencoded";
     public const string jsonHttpContentType = "application/json ; charset=utf-8";
 
-    public void RequestHttpPost(string _url, IDictionary<string, string> _parameters, string _contentType, int _retry = 3, Action<bool, string> _result = null)
+    public async void RequestHttpPost(string _url, IDictionary<string, string> _parameters, string _contentType, int _retry = 3, Action<bool, string> _result = null)
     {
         var content = HashtablaToString(_parameters);
-        HttpBehaviour.Create(_url, "POST", content, _contentType, _retry, _result);
+         var task = HttpBehaviour.CreateAsync(_url, "POST", content, _contentType, _retry, _result);
+         task.Forget();
     }
 
-    public void RequestHttpPost(string _url, string _content, string _contentType, int _retry = 3, Action<bool, string> _result = null)
+    public async void RequestHttpPost(string _url, string _content, string _contentType, int _retry = 3, Action<bool, string> _result = null)
     {
-        HttpBehaviour.Create(_url, "POST", _content, _contentType, _retry, _result);
+         var task = HttpBehaviour.CreateAsync(_url, "POST", _content, _contentType, _retry, _result);
+         task.Forget();
     }
 
-    public void RequestHttpGet(string _url, string _contentType, int _retry = 3, Action<bool, string> _result = null)
+    public async void RequestHttpGet(string _url, string _contentType, int _retry = 3, Action<bool, string> _result = null)
     {
-        HttpBehaviour.Create(_url, "GET", "", _contentType, _retry, _result);
+         var task = HttpBehaviour.CreateAsync(_url, "GET", "", _contentType, _retry, _result);
+         task.Forget();
+    }
+
+    public async UniTask<(bool ok, string message)> UnityWebRequestGetAsync(string _url, string _contentType, int _retry = 3, Action<bool, string> _result = null)
+    {
+        return await HttpBehaviour.CreateAsync(_url, "GET", "", _contentType, _retry, _result);
     }
 
     //2024-09-26 HttpWebRequest Get CDN璧勬簮鍦ㄦ煇浜涜妭鏃ュ彲鑳芥棤娉曡闂� 鍖呭惈keepalive鐨勮瀹氱瓑涓嶅悓鎯呭喌 鏀圭敤UnityWebRequest
     //鑾峰彇CDN璧勬簮涓嶅缓璁娇鐢℉ttpWebRequest
-    public void UnityWebRequestGet(string _url, int timeout = 5, Action<bool, string> _result = null)
+    public async UniTask<(bool ok, string message)> UnityWebRequestGet(string _url, int timeout = 5, Action<bool, string> _result = null)
     {
-        StartCoroutine(GetDataB(_url, timeout, _result));
+        return await GetDataAsync(_url, timeout, _result);
     }
 
-    IEnumerator GetDataB(string remoteURL, int timeout, Action<bool, string> _result = null)
+    private static async UniTask<(bool ok, string message)> GetDataAsync(string remoteURL, int timeout, Action<bool, string> _result = null)
     {
-        UnityWebRequest request = UnityWebRequest.Get(remoteURL);
-        request.timeout = timeout;
-        yield return request.SendWebRequest();
-
-        if (request.isDone)
+        using (UnityWebRequest request = UnityWebRequest.Get(remoteURL))
         {
-            if (request.result == UnityWebRequest.Result.Success)
-            {
-                _result(true, request.downloadHandler.text);
-            }
-            else
-            {
-                _result(false, request.result.ToString());
-            }
+            request.timeout = timeout;
+            await request.SendWebRequest();
+
+            var ok = request.result == UnityWebRequest.Result.Success;
+            var message = ok ? request.downloadHandler.text : request.error;
+            _result?.Invoke(ok, message);
+            return (ok, message);
         }
     }
 
diff --git a/Assets/Launch/Launch.cs b/Assets/Launch/Launch.cs
index 6d98644..72eeccc 100644
--- a/Assets/Launch/Launch.cs
+++ b/Assets/Launch/Launch.cs
@@ -24,10 +24,17 @@
 
     private static Assembly _hotUpdateAss;
 
-//缃戠粶鑾峰彇
+    //缃戠粶鑾峰彇
     private static List<string> AOTMetaAssemblyFiles { get; } = new List<string>();
 
     private static Dictionary<string, byte[]> s_assetDatas = new Dictionary<string, byte[]>();
+
+    /// <summary>
+    /// DLL 鍔犺浇杩涘害 [0, 1]銆�
+    /// 0 = 鏈紑濮嬶紝1 = 鍏ㄩ儴鍔犺浇瀹屾垚銆�
+    /// 鐢� LaunchExWin.UpdateProgress() 璇诲彇銆�
+    /// </summary>
+    public static float DllLoadProgress { get; private set; } = 0f;
 
     public static Launch Instance
     {
@@ -50,7 +57,7 @@
 
         m_Instance = this;
 
-#if !UNITY_EDITOR
+#if !UNITY_EDITOR && !UNITY_WEBGL
         if (File.Exists(Directory.GetParent(Application.persistentDataPath) + "/Debug") ||
         LocalSave.GetString("#@#BrancH") != string.Empty)
         {
@@ -72,8 +79,8 @@
 
         InitPlugins();
 
-        // 1. 灏芥棭鍒濆鍖� YooAsset锛岀‘淇� LocalResManager 鍔犺浇璧勬簮鏃跺彲浣跨敤 YooAsset
-        await InitYooAssetEarlyAsync();
+        // 1. 灏芥棭鍒濆锟�?YooAsset锛岀‘锟�?LocalResManager 鍔犺浇璧勬簮鏃跺彲浣跨敤 YooAsset
+        // await InitYooAssetEarlyAsync();
 
         InitSetting();
 
@@ -81,25 +88,53 @@
     }
 
     /// <summary>
-    /// 鍦� Launch 闃舵灏芥棭鍒濆鍖� YooAsset銆�
-    /// 瀹屾垚鍚� LocalResManager.LoadSprite/LoadBuiltInPrefab 灏嗛�氳繃 YooAsset 鍔犺浇璧勬簮銆�
+    /// 锟�?Launch 闃舵灏芥棭鍒濆锟�?YooAsset锟�?
+    /// 瀹屾垚锟�?LocalResManager.LoadSprite/LoadBuiltInPrefab 灏嗛�氳繃 YooAsset 鍔犺浇璧勬簮锟�?
     /// </summary>
-    private async UniTask InitYooAssetEarlyAsync()
+    public async UniTask InitYooAssetEarlyAsync()
     {
         try
         {
-#if UNITY_WEBGL
-            // WebGL 骞冲彴锛堝惈 Editor 鍒囧埌 WebGL target锛夛細BuildInFileSystem 涓嶆敮鎸� WebGL锛屽繀椤荤敤 WebPlayMode
-            var playMode = EPlayMode.WebPlayMode;
+            YooAsset.IRemoteServices remoteServices = null;
+#if UNITY_EDITOR && (UNITY_WEBGL || UNITY_ANDROID || UNITY_IOS)
+            // Editor + 绉诲姩/WebGL 鏋勫缓鐩爣锛歒ooAsset 涓嶆敮鎸佸湪杩欎簺骞冲彴 Editor 鍐呰鍙� Buildin bundle 鏂囦欢
+            // 寮哄埗浣跨敤 EditorSimulateMode锛堜笉璧扮湡瀹炴枃浠剁郴缁燂級
+            var playMode = EPlayMode.EditorSimulateMode;
 #elif UNITY_EDITOR
-            // Editor 闈� WebGL target锛欰B 妯″紡寮�鍏虫帶鍒讹紙鑿滃崟锛歒ooAsset宸ュ叿/鍒囨崲AB妯″紡锛�
-            var playMode = AssetSource.isUseAssetBundle ? EPlayMode.OfflinePlayMode : EPlayMode.EditorSimulateMode;
+            // Editor + 闈濿ebGL 鏋勫缓鐩爣锛�
+            // 1) 妯℃嫙WebGL + 閰嶇疆浜嗘湰鍦� CDN 璺緞 -> HostPlayMode
+            // 2) 妯℃嫙WebGL + 鏈厤缃湰鍦� CDN 璺緞 -> OfflinePlayMode
+            // 3) 鍏抽棴妯℃嫙涓斿紑鍚� AB -> OfflinePlayMode
+            // 4) 榛樿 -> EditorSimulateMode
+            EPlayMode playMode;
+            if (AssetSource.simulateWebGL)
+            {
+                string localCdnPath = AssetSource.simLocalCdnPath;
+                if (!string.IsNullOrEmpty(localCdnPath))
+                {
+                    playMode = EPlayMode.HostPlayMode;
+                    remoteServices = new LocalFileRemoteServices(localCdnPath);
+                }
+                else
+                {
+                    playMode = EPlayMode.OfflinePlayMode;
+                }
+            }
+            else if (AssetSource.isUseAssetBundle)
+                playMode = EPlayMode.OfflinePlayMode;
+            else
+                playMode = EPlayMode.EditorSimulateMode;
+#elif UNITY_WEBGL
+            // 鐪熷疄 WebGL 骞冲彴浣跨敤 WebPlayMode锛堜笉鍦� Editor 鍐呮墽琛岋級
+            var playMode = EPlayMode.WebPlayMode;
 #else
             var playMode = EPlayMode.OfflinePlayMode;
 #endif
 
             Debug.Log($"[Launch] Initializing YooAsset early with PlayMode={playMode}");
-            await YooAssetInitializer.Instance.InitializeAsync(playMode);
+            await YooAssetInitializer.Instance.InitializeAsync(playMode, remoteServices);
+
+            await VersionConfigEx.Get();
 
             if (YooAssetInitializer.Instance.State == YooAssetInitializer.InitState.InitFailed)
             {
@@ -107,8 +142,8 @@
                 return;
             }
 
-            // EditorSimulateMode 鍜� OfflinePlayMode 涓嶉渶瑕佽繙绋嬬増鏈鐞嗭紝
-            // 鐩存帴鏍囪涓� Ready
+            // EditorSimulateMode 锟�?OfflinePlayMode 涓嶉渶瑕佽繙绋嬬増鏈鐞嗭紝
+            // 鐩存帴鏍囪锟�?Ready
             await YooAssetInitializer.Instance.RequestVersionAndUpdateAsync();
             Debug.Log("[Launch] YooAsset early init completed. State: " + YooAssetInitializer.Instance.State);
         }
@@ -128,33 +163,22 @@
         System.Net.ServicePointManager.DefaultConnectionLimit = 100;
         StringUtility.WarmupPool();
 
-#if UNITY_EDITOR
-        //鍐呯綉涓嬭浇娴嬭瘯
-        _hotUpdateAss = System.AppDomain.CurrentDomain.GetAssemblies().First(a => a.GetName().Name == "Main");
-        Type type = _hotUpdateAss.GetType("InGameDownTestUtility");
-        LocalResManager.Instance.isPCTestDownLoad = (bool)type.GetMethod("GetReadVerionEx").Invoke(null, null);
-        LocalResManager.Instance.isOpenDownLoad = (bool)type.GetMethod("GetDownloadEnable").Invoke(null, null);
-#endif
         SDKInit();
         LocalResManager.Instance.Init();
-        LocalResManager.Instance.InitTable(() =>
+        LocalResManager.Instance.InitTable(async () =>
         {
             LocalResManager.Instance.InitDefaultLanguage();
-            launchExWin = LaunchExWin.OpenWindow();
-            // LocalResManager.Instance.OpenWindow("LaunchExWin", m_UICanvas);
+            launchExWin = await LaunchExWin.OpenWindow();
 #if !UNITY_EDITOR
             LocalResManager.step = LocalResManager.LoadDllStep.RequestVersion;
 #else
-            if (LocalResManager.Instance.isOpenDownLoad)
-            {
+            // 妯℃嫙 WebGL 娴佺▼锛氳蛋瀹屾暣鐗堟湰妫�鏌� + DLL 鍔犺浇娴佺▼
+            if (AssetSource.simulateWebGL)
                 LocalResManager.step = LocalResManager.LoadDllStep.RequestVersion;
-            }
             else
-            {
                 StartGame();
-            }
 #endif
-        });
+        }).Forget();
     }
 
     private void InitPlugins()
@@ -168,13 +192,13 @@
     }
     
     /// <summary>
-    /// 涓篴ot assembly鍔犺浇鍘熷metadata锛� 杩欎釜浠g爜鏀綼ot鎴栬�呯儹鏇存柊閮借銆�
+    /// 涓篴ot assembly鍔犺浇鍘熷metadata锟�?杩欎釜浠g爜鏀綼ot鎴栬�呯儹鏇存柊閮借锟�?
     /// 涓�鏃﹀姞杞藉悗锛屽鏋淎OT娉涘瀷鍑芥暟瀵瑰簲native瀹炵幇涓嶅瓨鍦紝鍒欒嚜鍔ㄦ浛鎹负瑙i噴妯″紡鎵ц
     /// </summary>
     private void LoadMetadataForAOTAssemblies()
     {
-        /// 娉ㄦ剰锛岃ˉ鍏呭厓鏁版嵁鏄粰AOT dll琛ュ厖鍏冩暟鎹紝鑰屼笉鏄粰鐑洿鏂癲ll琛ュ厖鍏冩暟鎹��
-        /// 鐑洿鏂癲ll涓嶇己鍏冩暟鎹紝涓嶉渶瑕佽ˉ鍏咃紝濡傛灉璋冪敤LoadMetadataForAOTAssembly浼氳繑鍥為敊璇�
+        /// 娉ㄦ剰锛岃ˉ鍏呭厓鏁版嵁鏄粰AOT dll琛ュ厖鍏冩暟鎹紝鑰屼笉鏄粰鐑洿鏂癲ll琛ュ厖鍏冩暟鎹拷?
+        /// 鐑洿鏂癲ll涓嶇己鍏冩暟鎹紝涓嶉渶瑕佽ˉ鍏咃紝濡傛灉璋冪敤LoadMetadataForAOTAssembly浼氳繑鍥為敊锟�?
         /// 
         HomologousImageMode mode = HomologousImageMode.SuperSet;
         foreach (var aotDllName in AOTMetaAssemblyFiles)
@@ -227,10 +251,10 @@
             LocalResManager.Instance.Release();
             LocalResManager.Destroy();
         }
-        if (DownloadMgr.IsValid())
-        {
-            Destroy(DownloadMgr.Instance);
-        }
+        // if (DownloadMgr.IsValid())
+        // {
+        //     Destroy(DownloadMgr.Instance);
+        // }
         if (LogicEngine.IsValid())
         {
             Destroy(LogicEngine.Instance);
@@ -239,14 +263,14 @@
         {
             Destroy(HttpRequest.Instance);
         }
-        if (DownLoadAndDiscompressTask.IsValid())
-        {
-            DownLoadAndDiscompressTask.Destroy();
-        }
+        // if (DownLoadAndDiscompressTask.IsValid())
+        // {
+        //     DownLoadAndDiscompressTask.Destroy();
+        // }
 
-        // YooAssetInitializer 涓嶅湪姝ゅ閿�姣� 鈥斺�� 鍏� DefaultPackage 闇�瑕佷繚鐣�
-        // 渚� Main 绋嬪簭闆嗕腑 YooAssetService 鎺ョ浣跨敤锛堥�氳繃 IYooAssetBridge锛�
-        // YooAssetInitializer 鐨� Release 鐢� YooAssetService 鍒濆鍖栨椂鍐冲畾
+        // YooAssetInitializer 涓嶅湪姝ゅ閿�锟�?鈥旓拷?锟�?DefaultPackage 闇�瑕佷繚锟�?
+        // 锟�?Main 绋嬪簭闆嗕腑 YooAssetService 鎺ョ浣跨敤锛堥�氳繃 IYooAssetBridge锟�?
+        // YooAssetInitializer 锟�?Release 锟�?YooAssetService 鍒濆鍖栨椂鍐冲畾
 
         if (null != launchExWin)
         {
@@ -270,21 +294,10 @@
             LocalResManager.step = LocalResManager.LoadDllStep.Wait;
             LocalResManager.Instance.RequestVersionCheck();
         }
-        else if (LocalResManager.step == LocalResManager.LoadDllStep.PrepareDownLoad)
-        {
-            LocalResManager.step = LocalResManager.LoadDllStep.Wait;
-            //涓嬭浇鍓嶅噯澶囷紝璇昏〃鍒ゆ柇鏄惁闇�瑕佸璇█涓嶅悓涓嬭浇璺緞
-            PrepareDownLoad();
-        }
-        else if (LocalResManager.step == LocalResManager.LoadDllStep.DownLoad)
-        {
-            LocalResManager.step = LocalResManager.LoadDllStep.Wait;
-            BeginDownload();
-        }
         else if (LocalResManager.step == LocalResManager.LoadDllStep.ReadBytes)
         {
             LocalResManager.step = LocalResManager.LoadDllStep.Wait;
-            ReadDllBytes(this.StartGame);
+            ReadDllBytes(this.StartGame).Forget();
         }
         //else if (LocalResManager.step == LocalResManager.LoadDllStep.Completed)
         //{
@@ -295,121 +308,107 @@
     }
 
 
-    private string GetWebRequestPath(string asset)
+    // DLL 鍚嶇О鍒楄〃锛堜笌 AOTGenericReferences.PatchedAOTAssemblyList + Main.dll 淇濇寔涓�鑷达級
+    private static readonly string[] ALL_DLL_NAMES =
     {
-        var path = LocalResManager.Instance.GetAssetFilePath(string.Concat(LocalResManager.bytesFolderName, asset));
+        "Main.dll.bytes",
+        "DOTween.dll.bytes",
+        "Launch.dll.bytes",
+        "System.Core.dll.bytes",
+        "UniTask.dll.bytes",
+        "UnityEngine.AndroidJNIModule.dll.bytes",
+        "UnityEngine.AssetBundleModule.dll.bytes",
+        "UnityEngine.CoreModule.dll.bytes",
+        "UnityEngine.JSONSerializeModule.dll.bytes",
+        "UnityEngine.UI.dll.bytes",
+        "mscorlib.dll.bytes",
+        "spine-csharp.dll.bytes",
+    };
 
-        if (!path.Contains("file:"))
+    private async UniTask ReadDllBytes(Action callback)
+    {
+        var dllPackage = YooAssets.TryGetPackage("Dll");
+        if (dllPackage == null)
         {
-            //ExternalStorePath 璺緞闇�瑕佹坊鍔�
-            path = "file://" + path;
+            Debug.LogError("[Launch] Dll package not found! 璇风‘淇濆凡鍒濆鍖� Dll 鍖呫��");
+            DllLoadProgress = 1f;
+            callback?.Invoke();
+            return;
         }
-        return path;
-    }
 
-    private async void ReadDllBytes(Action callback, bool isIgnoreDownLoad = false)
-    {
-        foreach (var assetVersion in LocalResManager.Instance.assetVersions.Values)
+        DllLoadProgress = 0f;
+        int total = ALL_DLL_NAMES.Length;
+
+        for (int i = 0; i < total; i++)
         {
-            if (assetVersion.localValid)
+            var dllName = ALL_DLL_NAMES[i];
+            AOTMetaAssemblyFiles.Add(dllName);
+
+            var location = $"Assets/HybridCLRDlls/{dllName}";
+            var handle = dllPackage.LoadAssetAsync<TextAsset>(location);
+            await handle.ToUniTask();
+
+            if (handle.Status != EOperationStatus.Succeed)
             {
-                AOTMetaAssemblyFiles.Add(string.Concat(assetVersion.fileName, assetVersion.extersion));
+                Debug.LogError($"[Launch] 鍔犺浇 DLL 澶辫触: {dllName}: {handle.LastError}");
             }
             else
             {
-                Debug.LogErrorFormat("鏂囦欢鏃犳晥 {0}", assetVersion.fileName);
+                s_assetDatas[dllName] = ((TextAsset)handle.AssetObject).bytes;
+                Debug.Log($"[Launch] Loaded DLL: {dllName} size:{s_assetDatas[dllName].Length}");
             }
-        }
 
-        foreach (var asset in AOTMetaAssemblyFiles)
-        {
-            string dllPath = GetWebRequestPath(asset);
-            Debug.Log($"dllPath:{dllPath}");
-            UnityWebRequest www = UnityWebRequest.Get(dllPath);
-            await www.SendWebRequest();
-
-#if UNITY_2020_1_OR_NEWER
-            if (www.result != UnityWebRequest.Result.Success)
-            {
-                Debug.Log(www.error);
-            }
-#else
-            if (www.isHttpError || www.isNetworkError)
-            {
-                Debug.Log(www.error);
-            }
-#endif
-            else
-            {
-                // 鐗规畩澶勭悊
-                byte[] assetData;
-                // if (asset == "Main.dll.bytes")
-                // {
-                //     assetData = new byte[www.downloadHandler.data.Length - 3];
-                //     Array.Copy(www.downloadHandler.data, 3, assetData, 0, assetData.Length);
-                // }
-                // else
-                {
-                    assetData = www.downloadHandler.data;
-                }
-
-                Debug.Log($"dll:{asset}  size:{assetData.Length}");
-                s_assetDatas[asset] = assetData;
-            }
+            DllLoadProgress = (float)(i + 1) / total;
         }
 
         callback?.Invoke();
     }
 
-    private void PrepareDownLoad()
+#if UNITY_EDITOR
+    /// <summary>
+    /// Editor 涓撶敤锛氶�掑綊鎵弿鏈湴鐩綍锛屽缓绔嬫枃浠跺悕鈫扷RI 绱㈠紩锛屾ā鎷� CDN Remote File System銆�
+    /// 鏀寔 YooAsset 鐨勬墦鍖呰緭鍑虹洰褰曠粨鏋勶細{Root}/{PackageName}/{version}/{files}
+    /// 瀵瑰悓鍚嶆枃浠讹紙澶氱増鏈級锛屾寜璺緞闄嶅簭鎺掑垪浼樺厛鍙栨渶鏂扮増鏈��
+    /// </summary>
+    private class LocalFileRemoteServices : YooAsset.IRemoteServices
     {
-        if (LocalResManager.downLoadCount > 3)
-        {
-            LocalResManager.step = LocalResManager.LoadDllStep.None;
-            stop = true;
-            HttpBehaviour.ConnectAllTimes = 9999;
-            return;
-        }
+        private readonly System.Collections.Generic.Dictionary<string, string> _index;
 
-        LocalResManager.Instance.RequestLogicBytes();
-    }
-
-    private void BeginDownload()
-    {
-        List<AssetVersion> priorDownLoadAssetVersions = new List<AssetVersion>();
-        foreach (var assetVersion in LocalResManager.Instance.assetVersions.Values)
+        public LocalFileRemoteServices(string localPath)
         {
-            AssetVersion localAssetVersion = null;
-            LocalResManager.Instance.localAssetVersions.TryGetValue(assetVersion.relativePath, out localAssetVersion);
-            if (!assetVersion.CheckLocalFileValid(localAssetVersion))
+            _index = new System.Collections.Generic.Dictionary<string, string>(
+                System.StringComparer.OrdinalIgnoreCase);
+
+            if (System.IO.Directory.Exists(localPath))
             {
-                priorDownLoadAssetVersions.Add(assetVersion);
-                assetVersion.localValid = false;
+                var files = System.IO.Directory.GetFiles(
+                    localPath, "*", System.IO.SearchOption.AllDirectories);
+
+                // 闄嶅簭鎺掑垪锛氬悓鍚嶆枃浠舵椂璺緞鏇村ぇ锛堟洿鏂扮殑鐗堟湰鏂囦欢澶癸級鐨勪紭鍏�
+                System.Array.Sort(files,
+                    (a, b) => string.Compare(b, a, System.StringComparison.OrdinalIgnoreCase));
+
+                foreach (var file in files)
+                {
+                    var name = System.IO.Path.GetFileName(file);
+                    if (!_index.ContainsKey(name))
+                        _index[name] = new System.Uri(file).AbsoluteUri;
+                }
             }
-            else
-            {
-                assetVersion.localValid = true;
-            }
+
+            Debug.Log($"[LocalFileRemoteServices] 绱㈠紩浜� {_index.Count} 涓枃浠讹紝鏍圭洰褰�: {localPath}");
         }
 
-        Debug.LogFormat("闇�瑕佷笅杞界殑鏂囦欢鏁伴噺锛歿0}", priorDownLoadAssetVersions.Count);
-        if (priorDownLoadAssetVersions.Count == 0)
+        public string GetRemoteMainURL(string fileName)
         {
-            DownloadComplete();
-            return;
-        }
-        var targetDirectory = LocalResManager.Instance.ExternalStorePath;
-        if (!Directory.Exists(targetDirectory))
-        {
-            Directory.CreateDirectory(targetDirectory);
+            if (_index.TryGetValue(fileName, out var uri))
+                return uri;
+            Debug.LogWarning($"[LocalFileRemoteServices] 鏂囦欢鏈壘鍒�: {fileName}");
+            return $"file:///NOT_FOUND/{fileName}";
         }
 
-        DownLoadAndDiscompressTask.Instance.Prepare(priorDownLoadAssetVersions, DownloadComplete);
+        public string GetRemoteFallbackURL(string fileName) => GetRemoteMainURL(fileName);
     }
-
-    void DownloadComplete()
-    {
-        LocalResManager.step = LocalResManager.LoadDllStep.ReadBytes;
-    }
+#endif
 }
 
diff --git a/Assets/Launch/Manager/LocalResManager.cs b/Assets/Launch/Manager/LocalResManager.cs
index 23aa7ff..3172297 100644
--- a/Assets/Launch/Manager/LocalResManager.cs
+++ b/Assets/Launch/Manager/LocalResManager.cs
@@ -3,7 +3,6 @@
 using System.Collections.Generic;
 using Cysharp.Threading.Tasks;
 using System;
-using System.Threading;
 using UnityEngine.U2D;
 using LitJson;
 using System.IO;
@@ -23,7 +22,6 @@
 {
 	//涓嶄笅杞芥椂鏈湴瀹夊崜娴嬭瘯璺緞
     public string assetBundlesPath = Application.dataPath + "/../AssetBundles/Android/";
-    public static string bytesFolderName = "logicbytes/";
     public string StreamingAssetPath
     {
         get
@@ -64,14 +62,11 @@
         }
     }
 
-    public bool isPCTestDownLoad = false;   //寮�鍚笅杞藉苟寮�鍚笅杞絙ytes
-    public bool isOpenDownLoad = false; //鍙紑鍚笅杞�
-
     public static int downLoadCount = 0;
 
     public static readonly string[] VERSION_URL = new string[] 
     {
-        "http://xssgcenter.secondworld.net.cn:11000/center/appversion_new.php/?",
+        "http://gamecenter.secondworld.net.cn:11000/center/appversion_new.php/?",
         "http://106.55.151.92:11000/center/appversion_new.php/?",
     };
 
@@ -96,16 +91,6 @@
             Debug.Log("LoadDllStep:" + m_step);
         }
     }
-
-    string assetBytesUrl;
-
-    //浠庣綉缁滆幏鍙栫殑璧勬簮鐗堟湰淇℃伅
-    public Dictionary<string, AssetVersion> assetVersions = new Dictionary<string, AssetVersion>();
-
-    //鏈湴LogicBytes鏂囦欢鍜� assetVersions 姣旇緝鏄惁闇�瑕佷笅杞�
-    public Dictionary<string, AssetVersion> localAssetVersions = new Dictionary<string, AssetVersion>();
-
-    public static Dictionary<string, AssetVersion> assetVersionsForHotCheck = new Dictionary<string, AssetVersion>();
 
     public static string versionUrlResult { get; private set; }
 
@@ -139,18 +124,49 @@
         }
     }
 
-    [Obsolete("Legacy AB loading 鈥� use YooAsset via YooAssetInitializer")]
-    private AssetBundle spriteBundle = null;   //闇�瑕佸嵏杞�
-    [Obsolete("Legacy AB loading 鈥� use YooAsset via YooAssetInitializer")]
-    private AssetBundle prefabBundle = null;   //闇�瑕佸嵏杞�
-    private SpriteAtlas spriteAtlas = null;
+
 
     /// <summary>
     /// YooAsset 鏄惁宸插氨缁紙鐢� YooAssetInitializer 鍒濆鍖栵級
     /// </summary>
     private bool IsYooAssetReady => YooAssetInitializer.IsValid()
         && YooAssetInitializer.Instance.State == YooAssetInitializer.InitState.Ready
-        && YooAssetInitializer.Instance.DefaultPackage != null;
+        && YooAssetInitializer.Instance.DefaultPackage != null
+        && YooAssetInitializer.Instance.PrefabPackage != null;
+
+// #if !UNITY_EDITOR
+    // 瀵归綈 YooAssetService.ExecuteWithRetryAsync锛氭寚鏁伴��閬块噸璇曪紙500鈫�1000鈫�2000ms锛�
+    private const int YOO_MAX_RETRY = 3;
+    private const int YOO_BASE_DELAY_MS = 500;
+
+    private async UniTask<T> LoadAssetWithRetryAsync<T>(string location) where T : UnityEngine.Object
+    {
+        Exception lastEx = null;
+        for (int attempt = 0; attempt <= YOO_MAX_RETRY; attempt++)
+        {
+            try
+            {
+                var handle = YooAssetInitializer.Instance.PrefabPackage.LoadAssetAsync<T>(location);
+                await handle.ToUniTask();
+                if (handle.Status != YooAsset.EOperationStatus.Succeed)
+                    throw new Exception($"YooAsset load failed for '{location}': {handle.LastError}");
+                return handle.GetAssetObject<T>();
+            }
+            catch (Exception ex)
+            {
+                lastEx = ex;
+                if (attempt < YOO_MAX_RETRY)
+                {
+                    int delayMs = YOO_BASE_DELAY_MS * (1 << attempt);
+                    Debug.LogWarning($"[LocalResManager] Load '{location}' failed (attempt {attempt + 1}/{YOO_MAX_RETRY + 1}), retry in {delayMs}ms: {ex.Message}");
+                    await UniTask.Delay(delayMs);
+                }
+            }
+        }
+        Debug.LogError($"[LocalResManager] Load '{location}' failed after {YOO_MAX_RETRY + 1} attempts: {lastEx?.Message}");
+        return null;
+    }
+// #endif
 
     public void Init()
     {
@@ -162,8 +178,8 @@
                 debugBranch = tmpbranch;
         }
 
-        var parentDirectory = Directory.GetParent(Application.persistentDataPath);
 #if !UNITY_WEBGL
+        var parentDirectory = Directory.GetParent(Application.persistentDataPath);
         if (File.Exists(parentDirectory + "/Debug"))
         {
             var content = File.ReadAllText(parentDirectory + "/Debug");
@@ -181,126 +197,118 @@
 
     public void Release()
     {
-#pragma warning disable CS0612, CS0618 // Suppress obsolete warnings for legacy cleanup
-        spriteBundle?.Unload(true);  //true瀹屽叏鍗歌浇锛屾洿鏂板悗閲嶆柊鍔犺浇
-        prefabBundle?.Unload(true);
-#pragma warning restore CS0612, CS0618
-        assetVersions = null;
-        localAssetVersions = null;
-        spriteAtlas = null;
         Debug.Log("鎻愬墠ResManager.Release璧勬簮");
     }
 
 	public async void RequestVersionCheck()
     {
-        var versionConfig = await VersionConfigEx.Get();
-        var tables = new Dictionary<string, string>();
-        tables["channel"] = versionConfig.appId;
-        tables["versioncode"] = versionConfig.version;
-        if (versionConfig.branch != 0)
+        try
         {
-            tables["branch"] = versionConfig.branch.ToString();
+            var versionConfig = await VersionConfigEx.Get();
+            var tables = new Dictionary<string, string>();
+            tables["channel"] = versionConfig.appId;
+            tables["versioncode"] = versionConfig.version;
+            if (versionConfig.branch != 0)
+            {
+                tables["branch"] = versionConfig.branch.ToString();
+            }
+
+            tables["game"] = versionConfig.gameId;
+
+            var url = string.Concat(VERSION_URL[urlIndex % VERSION_URL.Length], HttpRequest.HashtablaToString(tables));
+
+            urlIndex++;
+            versionUrl = url;
+            Debug.Log("http鍦板潃:versionUrl  " + url);
+            HttpRequest.Instance.RequestHttpGet(url, HttpRequest.defaultHttpContentType, 1, OnVersionCheckResult);
+        }
+        catch (Exception ex)
+        {
+            Debug.LogError($"RequestVersionCheck failed: {ex}");
         }
 
-        tables["game"] = versionConfig.gameId;
-
-        var url = string.Concat(VERSION_URL[urlIndex % VERSION_URL.Length], HttpRequest.HashtablaToString(tables));
-
-        urlIndex++;
-        versionUrl = url;
-        Debug.Log("http鍦板潃:versionUrl  " + url);
-        HttpRequest.Instance.RequestHttpGet(url, HttpRequest.defaultHttpContentType, 1, OnVersionCheckResult);
     }
 
-    private async void OnVersionCheckResult(bool _ok, string _result)
+    private void OnVersionCheckResult(bool _ok, string _result)
     {
-        if (_ok)
-        {
-            versionUrlResult = _result.Replace("{}", "null");
-            versionInfo = JsonMapper.ToObject<VersionInfo>(versionUrlResult);
-
-#if UNITY_EDITOR
-            assetVersions = localAssetVersions;
-            step = LoadDllStep.ReadBytes;
-#else
-            var versionConfig = await VersionConfigEx.Get();
-            if (versionConfig.assetAccess == VersionConfigEx.InstalledAsset.IngoreDownLoad)
+        // try
+        // {
+            if (_ok)
             {
-                assetVersions = localAssetVersions;
-                step = LoadDllStep.ReadBytes;
-                return;
+                Debug.Log("OK OnVersionCheckResult " + _result);
+                Launch.Instance.InitYooAssetEarlyAsync().ContinueWith(() =>
+                {
+                    if (YooAssetInitializer.Instance.State != YooAssetInitializer.InitState.Ready)
+                    {
+                        Debug.LogError($"[LocalResManager] YooAsset 鍒濆鍖栧け璐ワ紙State={YooAssetInitializer.Instance.State}锛夛紝鏃犳硶缁х画鍔犺浇璧勬簮");
+                        return;
+                    }
+                    versionUrlResult = NormalizeVersionJson(_result);
+                    try
+                    {
+                        versionInfo = JsonMapper.ToObject<VersionInfo>(versionUrlResult);
+                    }
+                    catch (Exception ex)
+                    {
+                        var firstChar = versionUrlResult.Length > 0 ? ((int)versionUrlResult[0]).ToString() : "<empty>";
+                        var preview = versionUrlResult.Length > 32 ? versionUrlResult.Substring(0, 32) : versionUrlResult;
+                        Debug.LogError($"[LocalResManager] Version json parse failed. firstChar={firstChar}, preview='{preview}', error={ex}");
+                        return;
+                    }
+                    step = LoadDllStep.ReadBytes;
+                }).Forget();
             }
-            step = LoadDllStep.PrepareDownLoad;
-#endif
+            else
+            {
+                Debug.Log("http 鏁版嵁閫氳: VersionUtility:" + versionUrl + "  result:" + versionUrlResult);
+                Clock.AlarmAt(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestVersionCheck);
+            }
+        // }
+        // catch (Exception ex)
+        // {
+        //     Debug.LogError($"OnVersionCheckResult failed: {ex}");
+        // }
+        
+    }
 
-
-        }
-        else
+    private static string NormalizeVersionJson(string raw)
+    {
+        if (string.IsNullOrEmpty(raw))
         {
-            Debug.Log("http 鏁版嵁閫氳: VersionUtility:" + versionUrl + "  result:" + versionUrlResult);
-            Clock.AlarmAt(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestVersionCheck);
+            return string.Empty;
         }
+
+        var normalized = raw.Trim();
+        normalized = normalized.TrimStart('\uFEFF', '\u200B', '\0');
+
+        if (normalized == "{}")
+        {
+            return "null";
+        }
+
+        return normalized;
     }
 
     public string GetAssetFilePath(string _assetKey)
     {
+#if UNITY_WEBGL
+        return Path.Combine(StreamingAssetPath, _assetKey);
+#else
         var path = Path.Combine(ExternalStorePath, _assetKey);
         if (!File.Exists(path))
         {
             path = Path.Combine(StreamingAssetPath, _assetKey);
         }
-
         return path;
-    }
-
-    /// <summary>
-    /// 鍚屾鍔犺浇 Sprite銆�
-    /// 浼樺厛浣跨敤 YooAsset锛堣嫢宸插垵濮嬪寲锛夛紝鍚﹀垯鍥為��鍒颁紶缁� AssetBundle 鍔犺浇銆�
-    /// </summary>
-    public Sprite LoadSprite(string name)
-    {
-        Sprite sprite = null;
-#if UNITY_EDITOR
-        if (excludePngs.Contains(StringUtility.Concat(name, ".png")))
-        {
-            var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Sprites/", name, ".png");
-            sprite = UnityEditor.AssetDatabase.LoadAssetAtPath<Sprite>(path);
-        }
-        else
-        {
-            var spriteAtlas = UnityEditor.AssetDatabase.LoadAssetAtPath<SpriteAtlas>("Assets/ResourcesOut/BuiltIn/Sprites/sprites.spriteatlasv2");
-            sprite = spriteAtlas.GetSprite(name);
-        }
-#else
-        if (IsYooAssetReady)
-        {
-            var handle = YooAssetInitializer.Instance.DefaultPackage.LoadAssetSync<Sprite>(name);
-            sprite = handle.AssetObject as Sprite;
-        }
-        else
-        {
-            // Legacy fallback 鈥� AssetBundle.LoadFromFile
-            if (spriteBundle == null)
-            {
-                string _path = GetAssetFilePath("builtin/sprites");
-                spriteBundle = AssetBundle.LoadFromFile(_path);
-            }
-            sprite = spriteBundle.LoadAsset(name, typeof(Sprite)) as Sprite;
-        }
 #endif
-        if (sprite == null)
-        {
-            Debug.LogErrorFormat("LoadSprite() => 鍔犺浇涓嶅埌璧勬簮: {0}.", name);
-        }
-
-        return sprite;
     }
+
 
     /// <summary>
     /// 寮傛鍔犺浇 Sprite锛圵ebGL 鍏煎锛夈��
     /// 浣跨敤 YooAsset 寮傛鍔犺浇 API锛岄�傜敤浜庢墍鏈夊钩鍙般��
     /// </summary>
-    public async UniTask<Sprite> LoadSpriteAsync(string name, CancellationToken cancellationToken = default)
+    public async UniTask<Sprite> LoadSpriteAsync(string name)
     {
         Sprite sprite = null;
 #if UNITY_EDITOR
@@ -314,18 +322,18 @@
             var atlas = UnityEditor.AssetDatabase.LoadAssetAtPath<SpriteAtlas>("Assets/ResourcesOut/BuiltIn/Sprites/sprites.spriteatlasv2");
             sprite = atlas.GetSprite(name);
         }
+        await UniTask.Yield(); // Simulate async for editor loading
+
 #else
         if (IsYooAssetReady)
         {
-            var handle = YooAssetInitializer.Instance.DefaultPackage.LoadAssetAsync<Sprite>(name);
-            await handle.ToUniTask(cancellationToken: cancellationToken);
-            sprite = handle.AssetObject as Sprite;
+            var path = $"Assets/ResourcesOut/BuiltIn/Sprites/{name}.png";
+            sprite = await LoadAssetWithRetryAsync<Sprite>(path);
         }
         else
         {
-            // Fallback to sync if YooAsset not ready (should not happen in normal flow)
-            Debug.LogWarning($"[LocalResManager] LoadSpriteAsync: YooAsset not ready, falling back to sync for '{name}'");
-            sprite = LoadSprite(name);
+            Debug.LogError($"[LocalResManager] LoadSpriteAsync: YooAsset not ready, cannot load '{name}'");
+            await UniTask.Yield();
         }
 #endif
         if (sprite == null)
@@ -339,42 +347,42 @@
     /// 鍚屾鍔犺浇鍐呯疆棰勫埗浣撱��
     /// 浼樺厛浣跨敤 YooAsset锛堣嫢宸插垵濮嬪寲锛夛紝鍚﹀垯鍥為��鍒颁紶缁� AssetBundle 鍔犺浇銆�
     /// </summary>
-    public GameObject LoadBuiltInPrefab(string name)
-    {
-        GameObject prefab = null;
-#if UNITY_EDITOR
-        var path = string.Concat("Assets/ResourcesOut/BuiltIn/Prefabs/", name, ".prefab");
-        prefab = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(path);
-#else
-        if (IsYooAssetReady)
-        {
-            var handle = YooAssetInitializer.Instance.DefaultPackage.LoadAssetSync<GameObject>(name);
-            prefab = handle.AssetObject as GameObject;
-        }
-        else
-        {
-            // Legacy fallback 鈥� AssetBundle.LoadFromFile
-            if (prefabBundle == null)
-            {
-                string _path = GetAssetFilePath("builtin/prefabs");
-                prefabBundle = AssetBundle.LoadFromFile(_path);
-            }
-            prefab = prefabBundle.LoadAsset(name) as GameObject;
-        }
-#endif
-        if (prefab == null)
-        {
-            Debug.LogErrorFormat("LoadBuiltInPrefab() => 鍔犺浇涓嶅埌璧勬簮: {0}.", name);
-        }
+//     public GameObject LoadBuiltInPrefab(string name)
+//     {
+//         GameObject prefab = null;
+// #if UNITY_EDITOR
+//         var path = string.Concat("Assets/ResourcesOut/BuiltIn/Prefabs/", name, ".prefab");
+//         prefab = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(path);
+// #else
+//         if (IsYooAssetReady)
+//         {
+//             var handle = YooAssetInitializer.Instance.DefaultPackage.LoadAssetSync<GameObject>(name);
+//             prefab = handle.AssetObject as GameObject;
+//         }
+//         else
+//         {
+//             // Legacy fallback 鈥� AssetBundle.LoadFromFile
+//             if (prefabBundle == null)
+//             {
+//                 string _path = GetAssetFilePath("builtin/prefabs");
+//                 prefabBundle = AssetBundle.LoadFromFile(_path);
+//             }
+//             prefab = prefabBundle.LoadAsset(name) as GameObject;
+//         }
+// #endif
+//         if (prefab == null)
+//         {
+//             Debug.LogErrorFormat("LoadBuiltInPrefab() => 鍔犺浇涓嶅埌璧勬簮: {0}.", name);
+//         }
 
-        return prefab;
-    }
+//         return prefab;
+//     }
 
     /// <summary>
     /// 寮傛鍔犺浇鍐呯疆棰勫埗浣擄紙WebGL 鍏煎锛夈��
     /// 浣跨敤 YooAsset 寮傛鍔犺浇 API锛岄�傜敤浜庢墍鏈夊钩鍙般��
     /// </summary>
-    public async UniTask<GameObject> LoadBuiltInPrefabAsync(string name, CancellationToken cancellationToken = default)
+    public async UniTask<GameObject> LoadBuiltInPrefabAsync(string name)
     {
         GameObject prefab = null;
 #if UNITY_EDITOR
@@ -383,14 +391,12 @@
 #else
         if (IsYooAssetReady)
         {
-            var handle = YooAssetInitializer.Instance.DefaultPackage.LoadAssetAsync<GameObject>(name);
-            await handle.ToUniTask(cancellationToken: cancellationToken);
-            prefab = handle.AssetObject as GameObject;
+            var path = $"Assets/ResourcesOut/BuiltIn/Prefabs/{name}.prefab";
+            prefab = await LoadAssetWithRetryAsync<GameObject>(path);
         }
         else
         {
-            Debug.LogWarning($"[LocalResManager] LoadBuiltInPrefabAsync: YooAsset not ready, falling back to sync for '{name}'");
-            prefab = LoadBuiltInPrefab(name);
+            Debug.LogError($"[LocalResManager] LoadBuiltInPrefabAsync: YooAsset not ready, cannot load '{name}'");
         }
 #endif
         if (prefab == null)
@@ -435,114 +441,44 @@
         Debug.LogFormat("绯荤粺璇█锛歿0} 璁剧疆涓簕1}", Application.systemLanguage, Id);
     }
     
-    //LogicBytes鏂囦欢鐨凪D5淇℃伅
-    public async void RequestLogicBytes()
+    // 閫氳繃 YooAsset 鍔犺浇 TextAsset 绫诲瀷鐨勬枃鏈枃浠躲��
+    // location: 瀹屾暣鐨� YooAsset 璺緞锛屽 "Assets/ResourcesOut/Config/InitialFunction.txt"
+    // Editor 涓嬬洿鎺ヨ鐗╃悊鏂囦欢锛堝墺绂� Assets/ 鍓嶇紑鍚庢嫾 Application.dataPath锛�
+    private async UniTask ReadText(string location, Action<bool, string> OnComplete = null)
     {
-        var config = await VersionConfigEx.Get();
-        var remoteURL = string.Concat(versionInfo.GetResourcesURL(config.branch), fixPath, "/logicbytes.txt");
-        //var localURL = string.Concat(.ExternalStorePath, "/logicbytes.txt");
-        assetBytesUrl = remoteURL;
-        Debug.Log("http鍦板潃:logicbytesUrl  " + assetBytesUrl);
-        //HttpRequest.Instance.RequestHttpGet(assetBytesUrl, HttpRequest.defaultHttpContentType, 3, OnGetAssetVersionFile);
-        HttpRequest.Instance.UnityWebRequestGet(assetBytesUrl, 5, OnGetAssetVersionFile);
-    }
-
-    private void OnGetAssetVersionFile(bool _ok, string _result)
-    {
-        Debug.LogFormat("RequestLogicBytes鏂囦欢缁撴灉锛氭椂闂� {0}锛岀粨鏋� {1}, 鏂囦欢澶у皬 {2}", DateTime.Now, _ok, _result.Length);
-        if (_ok)
-        {
-            UpdateAssetVersions(_result);
-            step = LoadDllStep.DownLoad;
-        }
-        else
-        {
-            Debug.Log("http 鏁版嵁閫氳: RequestLogicBytes:" + assetBytesUrl + "  result:" + _result);
-            Clock.AlarmAt(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond * 3), RequestLogicBytes);
-        }
-    }
-
-    public Dictionary<string, AssetVersion> UpdateAssetVersions(string _assetVersionFile)
-    {
-        var lines = _assetVersionFile.Split(new string[] { FileExtersion.lineSplit }, StringSplitOptions.RemoveEmptyEntries);
-        assetVersions.Clear();
-        for (int i = 0; i < lines.Length; i++)
-        {
-            var assetVersion = new AssetVersion(lines[i]);
-            assetVersions[assetVersion.relativePath] = assetVersion;
-        }
-        assetVersionsForHotCheck = assetVersions;
-        return assetVersions;
-    }
-
-    //璇昏〃 浣跨敤UnityWebRequest 鑰冭檻瀹夊崜鐜
-    private async UniTask ReadText(string table, Action<bool, string> OnComplete = null, string filePath = "")
-    {
-        var path = string.Empty;
         string content = string.Empty;
         bool result = false;
-        if (filePath != "")
-        {
-            path = Path.Combine(filePath + $"{table}.txt");
-        }
-        else
-        {
+
 #if UNITY_EDITOR
-            path = CONFIG_FODLER + $"/{table}.txt";
-#else
-        path = GetAssetFilePath($"config/{table}.txt");
-#endif
-        }
-        if (!path.Contains("file:"))
+        // location 褰㈠ "Assets/ResourcesOut/Config/Foo.txt" 鈫� 鐗╃悊璺緞
+        var editorPath = Application.dataPath + "/" + location.Substring("Assets/".Length);
+        if (File.Exists(editorPath))
         {
-            //ExternalStorePath 璺緞闇�瑕佹坊鍔�
-            path = "file://" + path;
+            content = File.ReadAllText(editorPath);
+            result = true;
         }
-        Debug.LogFormat("ReadText() => path: {0}", path);
-        UnityWebRequest www = UnityWebRequest.Get(path);
-        await www.SendWebRequest();
-
-#if UNITY_2020_1_OR_NEWER
-    if (www.result != UnityWebRequest.Result.Success)
-    {
-        Debug.Log(www.error);
-        OnComplete(result, content);
-    }
-#else
-        if (www.isHttpError || www.isNetworkError)
-        {
-            Debug.Log(www.error);
-            OnComplete(result, content);
-        }
-#endif
         else
         {
-            content = www.downloadHandler.text;
-            Debug.Log($"table:{table}  size:{content.Length}");
-            result = true;
-            OnComplete(result, content);
+            Debug.LogError($"ReadText: file not found at '{editorPath}'");
         }
-
+        await UniTask.Yield();
+#else
+        var textAsset = await LoadAssetWithRetryAsync<TextAsset>(location);
+        if (textAsset != null)
+        {
+            content = textAsset.text;
+            result = true;
+            Debug.Log($"ReadText '{location}' size:{content.Length}");
+        }
+#endif
+        OnComplete?.Invoke(result, content);
     }
 
-    public async void InitTable(Action OnComplete = null)
+    public async UniTask InitTable(Action OnComplete = null)
     {
-        if (isPCTestDownLoad || Application.isMobilePlatform)// || VersionConfigEx.Get().assetAccess == VersionConfigEx.InstalledAsset.IngoreDownLoad)
-        {
-            //璇诲彇鐨勪竴瀹氭槸StreamingAssetPath璺緞
-            await ReadText("logicbytes", (isOK, value) =>
-            {
-                if (isOK)
-                { 
-                    InitLocalLogicbytes(value);
+        await Launch.Instance.InitYooAssetEarlyAsync();
 
-                }
-                else
-                    Debug.LogWarning("InitTable logicbytes error");
-            }, StreamingAssetPath);
-        }
-        
-        await ReadText("InitialFunction", (isOK, value) =>
+        await ReadText("Assets/ResourcesOut/Config/InitialFunction.txt", (isOK, value) =>
         {
             if (isOK)
             {
@@ -554,32 +490,6 @@
                 Debug.LogError("InitTable InitialFunctionConfig error");
             }
         });
-    }
-
-    //闅忓寘瀹夎鐨勮祫婧愪笉鍚屽钩鍙颁笉涓�瀹氬彲浠ヨ幏鍙朏ileInfo锛屾墍浠ラ渶瑕佷笅杞戒竴涓枃浠舵潵鑾峰彇璧勬簮鐨凪D5淇℃伅
-    //璇ユ枃浠跺湪鎵撳寘鏃剁敓鎴� 璁板綍闅忓寘鐨勬墍鏈夎祫婧愮殑淇℃伅
-    //璇ユ枃浠惰褰曠殑璧勬簮鍦ㄥ寘涓偗瀹氬瓨鍦紝鎵�浠ヤ笉鐢ㄥ幓鍙栨寚瀹氱殑璧勬簮鏂囦欢鑾峰緱FileInfo 璁$畻MD5
-    //闅忓寘LogicBytes鏂囦欢鐨凪D5淇℃伅 鐢ㄤ簬涓嬭浇瀵规瘮
-    void InitLocalLogicbytes(string content)
-    {
-        using (StringReader reader = new StringReader(content))
-        {
-            string line;
-            while ((line = reader.ReadLine()) != null)
-            {
-                try
-                {
-                    var assetVersion = new AssetVersion(line);
-                    assetVersion.localValid = true;
-                    localAssetVersions[assetVersion.relativePath] = assetVersion;
-                }
-                catch (System.Exception ex)
-                {
-                    Debug.LogError(ex);
-                }
-            }
-        }
-        
     }
 
     public class VersionInfo
@@ -614,10 +524,8 @@
     public enum LoadDllStep
     {
         None,
-        Wait,   //姣忎釜闃舵鐨勭瓑寰呮椂闂� 姣斿鍦ㄤ笅杞戒腑灏卞浜庣瓑寰呯姸鎬侊紝瀹屾垚鍚庡啀杩涘叆涓嬩竴涓樁娈�
+        Wait,
         RequestVersion,
-        PrepareDownLoad,
-        DownLoad,
         ReadBytes,
         Completed,
     }
diff --git a/Assets/Launch/Manager/YooAssetInitializer.cs b/Assets/Launch/Manager/YooAssetInitializer.cs
index 2d96519..3770d74 100644
--- a/Assets/Launch/Manager/YooAssetInitializer.cs
+++ b/Assets/Launch/Manager/YooAssetInitializer.cs
@@ -38,16 +38,20 @@
     // ====================================================================
 
     /// <summary>榛樿鍖呭悕 鈥� Prefab 鍖呭惈鍚姩蹇呴渶璧勬簮</summary>
-    public const string DEFAULT_PACKAGE_NAME = "Prefab";
+    public const string DEFAULT_PACKAGE_NAME = "Builtin";
+
+    public const string CONFIG_PACKAGE_NAME = "Prefab";
 
     /// <summary>
     /// Launch 闃舵闇�瑕佸垵濮嬪寲鐨勫寘鍚嶏紙涓� Collector 涓�鑷达級銆�
     /// </summary>
-    private static readonly string[] LAUNCH_PACKAGES = new[] { "Prefab", "UI", "UIEffect", "Battle", "Audio" };
+    private static readonly string[] LAUNCH_PACKAGES = new[] { "Prefab", "UI", "UIEffect", "Battle", "Audio", "Builtin", "Video", "Dll" };
 
     private EPlayMode _playMode;
     private IRemoteServices _remoteServices;
     private ResourcePackage _defaultPackage;
+    private ResourcePackage _prefabPackage;
+
     private readonly Dictionary<string, ResourcePackage> _packages = new Dictionary<string, ResourcePackage>();
 
     /// <summary>
@@ -64,6 +68,8 @@
     /// 鑾峰彇宸插垵濮嬪寲鐨勯粯璁ゅ寘瑁癸紙鍚戝悗鍏煎 LocalResManager锛�
     /// </summary>
     public ResourcePackage DefaultPackage => _defaultPackage;
+
+    public ResourcePackage PrefabPackage => _prefabPackage;
 
     /// <summary>
     /// 褰撳墠杩愯妯″紡
@@ -137,7 +143,7 @@
 
                     if (initOp.Status != EOperationStatus.Succeed)
                     {
-                        Debug.LogWarning($"[YooAssetInitializer] Package '{pkgName}' init failed: {initOp.Error}");
+                        Debug.LogError($"[YooAssetInitializer] Package '{pkgName}' init failed: {initOp.Error}");
                         // 娓呯悊澶辫触鐨勫寘瑁癸紝閬垮厤鍍靛案鍖呰9
                         try
                         {
@@ -157,6 +163,12 @@
                     {
                         _defaultPackage = package;
                         YooAssets.SetDefaultPackage(package);
+                    }
+
+                    // CONFIG_PACKAGE_NAME 鍖呬綔涓洪厤缃寘
+                    if (pkgName == CONFIG_PACKAGE_NAME)
+                    {
+                        _prefabPackage = package;
                     }
 
                     Debug.Log($"[YooAssetInitializer] Package '{pkgName}' initialized.");
@@ -182,7 +194,7 @@
                         }
                         catch { /* ignore cleanup errors */ }
                     }
-                    Debug.LogWarning($"[YooAssetInitializer] Package '{pkgName}' init exception (skipped): {ex.Message}");
+                    Debug.LogError($"[YooAssetInitializer] Package '{pkgName}' init exception (skipped): {ex.Message}");
                 }
             }
 
@@ -440,4 +452,16 @@
         LastError = null;
         State = InitState.Uninitialized;
     }
+
+#if UNITY_EDITOR
+    /// <summary>
+    /// 鏀寔 Enter Play Mode 鏈惎鐢� Domain Reload 鏃剁殑鐘舵�侀噸缃��
+    /// YooAssets 鑷韩宸查�氳繃 SubsystemRegistration 娓呯┖ packages锛屾澶勫悓姝ラ噸缃� Initializer 鐘舵�併��
+    /// </summary>
+    [UnityEngine.RuntimeInitializeOnLoadMethod(UnityEngine.RuntimeInitializeLoadType.SubsystemRegistration)]
+    private static void ResetOnDomainReload()
+    {
+        Singleton<YooAssetInitializer>.Instance.Release();
+    }
+#endif
 }
diff --git a/Assets/Launch/UI/LaunchWins/LaunchExWin.cs b/Assets/Launch/UI/LaunchWins/LaunchExWin.cs
index f4ec2e7..6d0e134 100644
--- a/Assets/Launch/UI/LaunchWins/LaunchExWin.cs
+++ b/Assets/Launch/UI/LaunchWins/LaunchExWin.cs
@@ -1,4 +1,4 @@
-using System.Collections;
+锘縰sing System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.UI;
@@ -36,13 +36,15 @@
         // var sprite = LocalResManager.Instance.LoadSprite("Launch_1");
         // m_BackGround.overrideSprite = sprite;
         // m_BackGround.preserveAspect = true;
-        sliderText = InitialFunctionConfig.Get("Language").Numerical3;
-        // 鍚屾鍔犺浇淇濈暀锛圷ooAsset 鍒濆鍖栧悗璧� YooAsset sync API锛屽惁鍒欒蛋 legacy AB锛�
-        imagebg1.sprite = LocalResManager.Instance.LoadSprite("TY_TB_JH1");
-        imagebg2.sprite = LocalResManager.Instance.LoadSprite("TY_TB_JH1");
-        imageCircle.sprite = LocalResManager.Instance.LoadSprite("TY_TB_JH2");
-        imagebg3.sprite = LocalResManager.Instance.LoadSprite("LoadingBottom");
-        imageloding.sprite = LocalResManager.Instance.LoadSprite("LoadingSlider");
+        InitSpritesAsync().Forget();
+        //
+        // sliderText = InitialFunctionConfig.Get("Language").Numerical3;
+        // // 鍚屾鍔犺浇淇濈暀锛圷ooAsset 鍒濆鍖栧悗璧� YooAsset sync API锛屽惁鍒欒蛋 legacy AB锛�
+        // imagebg1.sprite = LocalResManager.Instance.LoadSprite("TY_TB_JH1");
+        // imagebg2.sprite = LocalResManager.Instance.LoadSprite("TY_TB_JH1");
+        // imageCircle.sprite = LocalResManager.Instance.LoadSprite("TY_TB_JH2");
+        // imagebg3.sprite = LocalResManager.Instance.LoadSprite("LoadingBottom");
+        // imageloding.sprite = LocalResManager.Instance.LoadSprite("LoadingSlider");
     }
 
     /// <summary>
@@ -92,12 +94,11 @@
             m_IosProgressContainer.gameObject.SetActive(false);
 
             //鎵撳寘鐗堟湰 + 鍔熻兘鐗堟湰 + 璇█ID
-            VersionConfigEx.Get().ContinueWith(config =>
-             {
-                 if (this == null) return; // destroyed check after await
-                 m_Version.text = StringUtility.Concat(config.version, "_", config.buildIndex.ToString(),
-                     "_", InitialFunctionConfig.Get("version").Numerical1, " ", LocalResManager.Id);
-             }).Forget();
+            var config = VersionConfigEx.config;
+
+                m_Version.text = StringUtility.Concat(config.version, "_", config.buildIndex.ToString(),
+                    "_", InitialFunctionConfig.Get("version").Numerical1, " ", LocalResManager.Id);
+
             // m_Version.text = StringUtility.Concat(VersionConfigEx.Get().version, "_", VersionConfigEx.Get().buildIndex.ToString(),
             //     "_", InitialFunctionConfig.Get("version").Numerical1, " ", LocalResManager.Id);
         }
@@ -136,11 +137,9 @@
 
     private void UpdateProgress()
     {
-        float value;
-        if (LocalResManager.step == LocalResManager.LoadDllStep.None)
-            value = 0.05f;
-        else
-            value = DownLoadAndDiscompressTask.Instance.progress;
+        float value = LocalResManager.step == LocalResManager.LoadDllStep.None
+            ? 0.05f
+            : Mathf.Max(0.05f, Launch.DllLoadProgress);
 
         if (float.IsNaN(value) || value < 0.05)
         {
@@ -159,36 +158,10 @@
 
     }
 
-    public static GameObject OpenWindow()
+    public static async UniTask<GameObject> OpenWindow()
     {
-    	GameObject window = GameObject.Instantiate(LocalResManager.Instance.LoadBuiltInPrefab("LaunchExWin"));
+    	GameObject window = GameObject.Instantiate(await LocalResManager.Instance.LoadBuiltInPrefabAsync("LaunchExWin"));
     	window.transform.localScale = Vector3.zero;
-        return window;
-    }
-
-    /// <summary>
-    /// 寮傛鎵撳紑 Launch 绐楀彛锛圵ebGL 鍏煎锛夈��
-    /// 閫氳繃 YooAsset 寮傛鍔犺浇棰勫埗浣撳拰绮剧伒锛岄�傜敤浜庢墍鏈夊钩鍙般��
-    /// </summary>
-    public static async UniTask<GameObject> OpenWindowAsync()
-    {
-        var prefab = await LocalResManager.Instance.LoadBuiltInPrefabAsync("LaunchExWin");
-        if (prefab == null)
-        {
-            Debug.LogError("[LaunchExWin] Failed to load LaunchExWin prefab asynchronously.");
-            return null;
-        }
-
-        GameObject window = GameObject.Instantiate(prefab);
-        window.transform.localScale = Vector3.zero;
-
-        // 寮傛鍔犺浇绮剧伒
-        var launchWin = window.GetComponent<LaunchExWin>();
-        if (launchWin != null)
-        {
-            await launchWin.InitSpritesAsync();
-        }
-
         return window;
     }
 }
\ No newline at end of file
diff --git a/Assets/Launch/Utility/LaunchUtility.cs b/Assets/Launch/Utility/LaunchUtility.cs
index becbf52..c626827 100644
--- a/Assets/Launch/Utility/LaunchUtility.cs
+++ b/Assets/Launch/Utility/LaunchUtility.cs
@@ -19,6 +19,12 @@
         MajorUpdate     // 澶х増鏈洿鏂帮紝闇�瑕侀噸鏂颁笅杞�
     }
 
+    //澶嶅埗鍒板壀璐存澘
+#if UNITY_WEBGL && !UNITY_EDITOR
+    [System.Runtime.InteropServices.DllImport("__Internal")]
+    public static extern void UIHelper_CopyToClipboard(string text);
+#endif
+
     /// <summary>
     /// 姣旇緝鐗堟湰骞惰繑鍥炴洿鏂扮被鍨�
     /// </summary>
@@ -117,7 +123,9 @@
         try
         {
             // 棣栧厛灏濊瘯浠嶳esources鍔犺浇鐗堟湰鏂囦欢
-            TextAsset versionAsset = Resources.Load<TextAsset>("version");
+            var resRequest = Resources.LoadAsync<TextAsset>("version");
+            await resRequest;
+            TextAsset versionAsset = resRequest.asset as TextAsset;
             
             if (versionAsset != null)
             {
diff --git a/Assets/Launch/VersionConfigEx.cs b/Assets/Launch/VersionConfigEx.cs
index 00a3651..4dd908d 100644
--- a/Assets/Launch/VersionConfigEx.cs
+++ b/Assets/Launch/VersionConfigEx.cs
@@ -66,20 +66,8 @@
     {
         get
         {
-            if (string.IsNullOrEmpty(m_GameId))
-            {
-                var gameText = Resources.Load<TextAsset>("Game");
-                if (gameText != null)
-                {
-                    m_GameId = gameText.text;
-                }
-                else
-                {
-                    m_GameId = "xssg";
-                }
-            }
-
-            return m_GameId;
+            // m_GameId 鐢� Get() 寮傛棰勫姞杞斤紝姝ゅ鐩存帴杩斿洖缂撳瓨鍊�
+            return string.IsNullOrEmpty(m_GameId) ? "xssg" : m_GameId;
         }
     }
 
@@ -159,7 +147,7 @@
         set { m_SdkFileName = value; }
     }
 
-    static VersionConfigEx config = null;
+    public static VersionConfigEx config = null;
     public async static UniTask<VersionConfigEx> Get()
     {
         if (config == null)
@@ -173,6 +161,15 @@
             }
         }
 
+        // 棰勫姞杞� gameId
+        if (config != null && string.IsNullOrEmpty(config.m_GameId))
+        {
+            var gameReq = Resources.LoadAsync<TextAsset>("Game");
+            await gameReq;
+            TextAsset gameText = gameReq.asset as TextAsset;
+            config.m_GameId = gameText != null ? gameText.text : "xssg";
+        }
+
         return config;
     }
 
diff --git a/Assets/Plugins/Android/launcherTemplate.gradle b/Assets/Plugins/Android/launcherTemplate.gradle
index e38cc06..d4eca26 100644
--- a/Assets/Plugins/Android/launcherTemplate.gradle
+++ b/Assets/Plugins/Android/launcherTemplate.gradle
@@ -5,6 +5,7 @@
     }
 
 android {
+	namespace "**NAMESPACE**"
     ndkPath "**NDKPATH**"
 
     compileSdkVersion **APIVERSION**
diff --git a/Assets/Plugins/Android/mainTemplate.gradle b/Assets/Plugins/Android/mainTemplate.gradle
index 82d0557..100760b 100644
--- a/Assets/Plugins/Android/mainTemplate.gradle
+++ b/Assets/Plugins/Android/mainTemplate.gradle
@@ -3,8 +3,8 @@
 
 dependencies {
 	implementation fileTree(dir: 'libs', include: ['*.jar'])
-	implementation(name: 'vndjgp_v', ext: 'aar') //x.x.x为具体版本
-    //SDK基础能力
+	implementation(name: 'vndjgp_v', ext: 'aar') //x.x.x为锟斤拷锟斤拷姹�
+    //SDK锟斤拷锟斤拷锟斤拷锟斤拷
     implementation 'com.appsflyer:af-android-sdk:6.9.0'
     implementation 'com.android.installreferrer:installreferrer:2.2'
     api 'androidx.annotation:annotation:1.5.0'
@@ -19,21 +19,22 @@
     }
     //base  theme
     api 'androidx.appcompat:appcompat:1.2.0'
-    //ald ui用
+    //ald ui锟斤拷
     api 'androidx.cardview:cardview:1.0.0'
 
-    //谷歌能力
-    implementation 'com.google.android.gms:play-services-auth:20.1.0'  //google服务
-    implementation("com.android.billingclient:billing:7.0.0")  // google内购
-    implementation 'androidx.percentlayout:percentlayout:1.0.0'  //google提供的支持库
-    implementation 'com.google.android.play:review:2.0.1'  //google评价
+    //锟饺革拷锟斤拷锟斤拷
+    implementation 'com.google.android.gms:play-services-auth:20.1.0'  //google锟斤拷锟斤拷
+    implementation("com.android.billingclient:billing:7.0.0")  // google锟节癸拷
+    implementation 'androidx.percentlayout:percentlayout:1.0.0'  //google锟结供锟斤拷支锟街匡拷
+    implementation 'com.google.android.play:review:2.0.1'  //google锟斤拷锟斤拷
 
-    //facebook能力
+    //facebook锟斤拷锟斤拷
     implementation 'com.facebook.android:facebook-login:latest.release'
     implementation 'com.facebook.android:facebook-share:latest.release'
 **DEPS**}
 
 android {
+	namespace "com.unity3d.player"
     ndkPath "**NDKPATH**"
 
     compileSdkVersion **APIVERSION**
diff --git a/Assets/Plugins/NativeWebSocket/Assets/WebSocket/WebSocket.jslib b/Assets/Plugins/NativeWebSocket/Assets/WebSocket/WebSocket.jslib
index 9d8e42f..07ce4f5 100644
--- a/Assets/Plugins/NativeWebSocket/Assets/WebSocket/WebSocket.jslib
+++ b/Assets/Plugins/NativeWebSocket/Assets/WebSocket/WebSocket.jslib
@@ -198,7 +198,26 @@
 
 			if (webSocketState.onError) {
 
-				var msg = "WebSocket error.";
+				var pageProtocol = (typeof window !== 'undefined' && window.location) ? window.location.protocol : 'unknown:';
+				var pageHref = (typeof window !== 'undefined' && window.location) ? window.location.href : 'unknown';
+				var readyState = instance.ws ? instance.ws.readyState : -1;
+				var hints = [];
+
+				if (pageProtocol === 'https:' && instance.url.indexOf('ws://') === 0)
+					hints.push('HTTPS 椤甸潰涓嶈兘杩炴帴闈炲畨鍏� ws://锛岄渶瑕佹敼涓� wss://');
+
+				if (readyState === 3)
+					hints.push('杩炴帴鍦ㄦ彙鎵嬮樁娈靛凡鍏抽棴锛屽父瑙佸師鍥狅細鐩爣绔彛涓嶆槸 WebSocket 鏈嶅姟銆佹湇鍔$鏈鐞� Upgrade 鎻℃墜銆佺鍙f湭寮�鏀炬垨鍙嶅悜浠g悊鏈�忎紶 Upgrade 澶�');
+
+				var msg = '[JSLIB WebSocket] error url=' + instance.url +
+					' pageProtocol=' + pageProtocol +
+					' readyState=' + readyState +
+					' hasSubProtocols=' + (instance.subprotocols && instance.subprotocols.length > 0 ? 'true' : 'false') +
+					' page=' + pageHref;
+
+				if (hints.length > 0)
+					msg += ' hints=' + hints.join(' | ');
+
 				var length = lengthBytesUTF8(msg) + 1;
 				var buffer = _malloc(length);
 				stringToUTF8(msg, buffer, length);
@@ -218,6 +237,24 @@
 			if (webSocketState.debug)
 				console.log("[JSLIB WebSocket] Closed.");
 
+			if (webSocketState.onError && ev.code === 1006) {
+				var pageProtocol = (typeof window !== 'undefined' && window.location) ? window.location.protocol : 'unknown:';
+				var msg = '[JSLIB WebSocket] abnormal close code=1006 url=' + instance.url +
+					' pageProtocol=' + pageProtocol +
+					' reason=' + (ev.reason || '') +
+					' wasClean=' + (ev.wasClean ? 'true' : 'false') +
+					' hint=閫氬父琛ㄧず鎻℃墜澶辫触鎴栫綉缁滃眰鐩存帴鎷掔粷锛涘鏋滃綋鍓嶇鍙e師鏈槸 TCP 娓告垙鏈嶇鍙o紝闇�瑕佸崟鐙彁渚� WebSocket 缃戝叧';
+				var length = lengthBytesUTF8(msg) + 1;
+				var buffer = _malloc(length);
+				stringToUTF8(msg, buffer, length);
+
+				try {
+					Module.dynCall_vii(webSocketState.onError, instanceId, buffer);
+				} finally {
+					_free(buffer);
+				}
+			}
+
 			if (webSocketState.onClose)
 				Module.dynCall_vii(webSocketState.onClose, instanceId, ev.code);
 
diff --git a/Assets/Plugins/WebGL.meta b/Assets/Plugins/WebGL.meta
new file mode 100644
index 0000000..6771c39
--- /dev/null
+++ b/Assets/Plugins/WebGL.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a9f0f8eb5c775554f921082286aae669
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Plugins/WebGL/Clipboard.jslib b/Assets/Plugins/WebGL/Clipboard.jslib
new file mode 100644
index 0000000..66821b3
--- /dev/null
+++ b/Assets/Plugins/WebGL/Clipboard.jslib
@@ -0,0 +1,21 @@
+mergeInto(LibraryManager.library, {
+  UIHelper_CopyToClipboard: function(textPtr) {
+    var text = UTF8ToString(textPtr);
+    if (navigator.clipboard && navigator.clipboard.writeText) {
+      navigator.clipboard.writeText(text).catch(function(err) {
+        console.warn("navigator.clipboard.writeText failed: " + err);
+      });
+    } else {
+      // 闄嶇骇鏂规锛歟xecCommand锛堥儴鍒嗘棫娴忚鍣級
+      var el = document.createElement("textarea");
+      el.value = text;
+      el.style.position = "fixed";
+      el.style.opacity = "0";
+      document.body.appendChild(el);
+      el.focus();
+      el.select();
+      try { document.execCommand("copy"); } catch(e) {}
+      document.body.removeChild(el);
+    }
+  }
+});
diff --git a/Assets/Plugins/WebGL/Clipboard.jslib.meta b/Assets/Plugins/WebGL/Clipboard.jslib.meta
new file mode 100644
index 0000000..00634b3
--- /dev/null
+++ b/Assets/Plugins/WebGL/Clipboard.jslib.meta
@@ -0,0 +1,32 @@
+fileFormatVersion: 2
+guid: ccfd2e77c51e4b745a0a42d02c271480
+PluginImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  iconMap: {}
+  executionOrder: {}
+  defineConstraints: []
+  isPreloaded: 0
+  isOverridable: 0
+  isExplicitlyReferenced: 0
+  validateReferences: 1
+  platformData:
+  - first:
+      Any: 
+    second:
+      enabled: 0
+      settings: {}
+  - first:
+      Editor: Editor
+    second:
+      enabled: 0
+      settings:
+        DefaultValueInitialized: true
+  - first:
+      WebGL: WebGL
+    second:
+      enabled: 1
+      settings: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Resources/Scenes/Launch.unity b/Assets/Resources/Scenes/Launch.unity
index ea0b58f..bcb90c2 100644
--- a/Assets/Resources/Scenes/Launch.unity
+++ b/Assets/Resources/Scenes/Launch.unity
@@ -152,8 +152,8 @@
   m_Script: {fileID: 11500000, guid: b3c8dbd062ed4d5459217dccb0ee389f, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  isOpenConfigTesting: 0
   isOpenBattleDebug: 1
+  isOpenSkillLogFile: 0
 --- !u!4 &421128702
 Transform:
   m_ObjectHideFlags: 0
diff --git a/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderer.cs b/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderer.cs
index 3ba2c43..648bb1a 100644
--- a/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderer.cs
+++ b/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderer.cs
@@ -812,6 +812,19 @@
 				}
 				this.meshRenderer.materials = maskMaterials.materialsOutsideMask;
 			}
+
+#if UNITY_EDITOR
+				if (Application.isPlaying)
+				{
+					for (int i = 0; i < meshRenderer.materials.Length; i++) {
+						Material _material = meshRenderer.materials[i];
+						if (_material != null)
+						{
+							_material.shader = Shader.Find(_material.shader.name);
+						}
+					}
+				}
+#endif
 		}
 
 		private bool InitSpriteMaskMaterialsInsideMask () {
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Additive.shader b/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Additive.shader
index a9cb2cb..0e4fe27 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Additive.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Additive.shader
@@ -1,4 +1,4 @@
-锘�// Spine/Skeleton PMA Screen
+// Spine/Skeleton PMA Screen
 // - single color multiply tint
 // - unlit
 // - Premultiplied alpha Multiply blending
@@ -48,7 +48,7 @@
 			CGPROGRAM
 			#pragma vertex vert
 			#pragma fragment frag
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
+			#pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
 			#include "../CGIncludes/Spine-BlendModes-NormalPass.cginc"
 			ENDCG
 		}
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Multiply.shader b/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Multiply.shader
index 574facd..434bbc1 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Multiply.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Multiply.shader
@@ -1,4 +1,4 @@
-锘�// Spine/Skeleton PMA Multiply
+// Spine/Skeleton PMA Multiply
 // - single color multiply tint
 // - unlit
 // - Premultiplied alpha Multiply blending
@@ -48,7 +48,7 @@
 			CGPROGRAM
 			#pragma vertex vert
 			#pragma fragment frag
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
+			#pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
 			#include "../CGIncludes/Spine-BlendModes-NormalPass.cginc"
 			ENDCG
 		}
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Screen.shader b/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Screen.shader
index 53298c6..1ff90bb 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Screen.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Screen.shader
@@ -1,4 +1,4 @@
-锘�// Spine/Skeleton PMA Screen
+// Spine/Skeleton PMA Screen
 // - single color multiply tint
 // - unlit
 // - Premultiplied alpha Multiply blending
@@ -48,7 +48,7 @@
 			CGPROGRAM
 			#pragma vertex vert
 			#pragma fragment frag
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
+			#pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
 			#include "../CGIncludes/Spine-BlendModes-NormalPass.cginc"
 			ENDCG
 		}
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/Outline/SkeletonGraphic/Spine-SkeletonGraphic-Outline.shader b/Assets/Spine/Runtime/spine-unity/Shaders/Outline/SkeletonGraphic/Spine-SkeletonGraphic-Outline.shader
index 6ef6cb0..c36c97f 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/Outline/SkeletonGraphic/Spine-SkeletonGraphic-Outline.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/Outline/SkeletonGraphic/Spine-SkeletonGraphic-Outline.shader
@@ -66,8 +66,8 @@
 			#pragma vertex vertOutlineGraphic
 			#pragma fragment fragOutline
 			#define SKELETON_GRAPHIC
-			#pragma shader_feature _ _USE8NEIGHBOURHOOD_ON
-			#pragma shader_feature _ _USE_SCREENSPACE_OUTLINE_WIDTH
+			#pragma multi_compile _ _USE8NEIGHBOURHOOD_ON
+			#pragma multi_compile _ _USE_SCREENSPACE_OUTLINE_WIDTH
 			#include "../CGIncludes/Spine-Outline-Pass.cginc"
 			ENDCG
 		}
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Skeleton-Outline.shader b/Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Skeleton-Outline.shader
index 4e6aed0..d314473 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Skeleton-Outline.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Skeleton-Outline.shader
@@ -41,9 +41,9 @@
 			CGPROGRAM
 			#pragma vertex vertOutline
 			#pragma fragment fragOutline
-			#pragma shader_feature _ _USE8NEIGHBOURHOOD_ON
-			#pragma shader_feature _ _USE_SCREENSPACE_OUTLINE_WIDTH
-			#pragma shader_feature _ _OUTLINE_FILL_INSIDE
+			#pragma multi_compile _ _USE8NEIGHBOURHOOD_ON
+			#pragma multi_compile _ _USE_SCREENSPACE_OUTLINE_WIDTH
+			#pragma multi_compile _ _OUTLINE_FILL_INSIDE
 			#include "CGIncludes/Spine-Outline-Pass.cginc"
 			ENDCG
 		}
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Skeleton-OutlineOnly-ZWrite.shader b/Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Skeleton-OutlineOnly-ZWrite.shader
index e1f7c03..41838b5 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Skeleton-OutlineOnly-ZWrite.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Skeleton-OutlineOnly-ZWrite.shader
@@ -55,9 +55,9 @@
 			CGPROGRAM
 			#pragma vertex vertOutline
 			#pragma fragment fragOutline
-			#pragma shader_feature _ _USE8NEIGHBOURHOOD_ON
-			#pragma shader_feature _ _USE_SCREENSPACE_OUTLINE_WIDTH
-			#pragma shader_feature _ _OUTLINE_FILL_INSIDE
+			#pragma multi_compile _ _USE8NEIGHBOURHOOD_ON
+			#pragma multi_compile _ _USE_SCREENSPACE_OUTLINE_WIDTH
+			#pragma multi_compile _ _OUTLINE_FILL_INSIDE
 			#include "CGIncludes/Spine-Outline-Pass.cginc"
 			ENDCG
 		}
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Additive.shader b/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Additive.shader
index 6d0862f..21032b5 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Additive.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Additive.shader
@@ -65,8 +65,8 @@
 			Name "Normal"
 
 		CGPROGRAM
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
-			#pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
+			#pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
+			#pragma multi_compile _ _CANVAS_GROUP_COMPATIBLE
 			#pragma vertex vert
 			#pragma fragment frag
 			#pragma target 2.0
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Fill.shader b/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Fill.shader
index dbc3dc3..8b6f3e1 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Fill.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Fill.shader
@@ -65,8 +65,8 @@
 			Name "Normal"
 
 		CGPROGRAM
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
-			#pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
+			#pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
+			#pragma multi_compile _ _CANVAS_GROUP_COMPATIBLE
 			#pragma vertex vert
 			#pragma fragment frag
 			#pragma target 2.0
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Grayscale.shader b/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Grayscale.shader
index 6499e4f..604cab5 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Grayscale.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Grayscale.shader
@@ -63,8 +63,8 @@
 			Name "Normal"
 
 		CGPROGRAM
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
-			#pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
+			#pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
+			#pragma multi_compile _ _CANVAS_GROUP_COMPATIBLE
 			#pragma vertex vert
 			#pragma fragment frag
 			#pragma target 2.0
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Multiply.shader b/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Multiply.shader
index 5ebecc1..70b0190 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Multiply.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Multiply.shader
@@ -65,8 +65,8 @@
 			Name "Normal"
 
 		CGPROGRAM
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
-			#pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
+			#pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
+			#pragma multi_compile _ _CANVAS_GROUP_COMPATIBLE
 			#pragma vertex vert
 			#pragma fragment frag
 			#pragma target 2.0
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Screen.shader b/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Screen.shader
index e7953b9..a1a4f7c 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Screen.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Screen.shader
@@ -65,8 +65,8 @@
 			Name "Normal"
 
 		CGPROGRAM
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
-			#pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
+			#pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
+			#pragma multi_compile _ _CANVAS_GROUP_COMPATIBLE
 			#pragma vertex vert
 			#pragma fragment frag
 			#pragma target 2.0
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic.shader b/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic.shader
index 0932e5e..2dc85b1 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic.shader
@@ -65,8 +65,8 @@
 			Name "Normal"
 
 		CGPROGRAM
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
-			#pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
+			#pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
+			#pragma multi_compile _ _CANVAS_GROUP_COMPATIBLE
 			#pragma vertex vert
 			#pragma fragment frag
 			#pragma target 2.0
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack-Additive.shader b/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack-Additive.shader
index b569b76..0a2de4a 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack-Additive.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack-Additive.shader
@@ -66,9 +66,9 @@
 			Name "Normal"
 
 		CGPROGRAM
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
-			#pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
-			#pragma shader_feature _ _DARK_COLOR_ALPHA_ADDITIVE
+			#pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
+			#pragma multi_compile _ _CANVAS_GROUP_COMPATIBLE
+			#pragma multi_compile _ _DARK_COLOR_ALPHA_ADDITIVE
 			#pragma vertex vert
 			#pragma fragment frag
 
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack-Multiply.shader b/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack-Multiply.shader
index a528577..71880ac 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack-Multiply.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack-Multiply.shader
@@ -66,9 +66,9 @@
 			Name "Normal"
 
 		CGPROGRAM
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
-			#pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
-			#pragma shader_feature _ _DARK_COLOR_ALPHA_ADDITIVE
+			#pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
+			#pragma multi_compile _ _CANVAS_GROUP_COMPATIBLE
+			#pragma multi_compile _ _DARK_COLOR_ALPHA_ADDITIVE
 			#pragma vertex vert
 			#pragma fragment frag
 
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack-Screen.shader b/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack-Screen.shader
index 56e0ed5..59a43fc 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack-Screen.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack-Screen.shader
@@ -66,9 +66,9 @@
 			Name "Normal"
 
 		CGPROGRAM
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
-			#pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
-			#pragma shader_feature _ _DARK_COLOR_ALPHA_ADDITIVE
+			#pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
+			#pragma multi_compile _ _CANVAS_GROUP_COMPATIBLE
+			#pragma multi_compile _ _DARK_COLOR_ALPHA_ADDITIVE
 			#pragma vertex vert
 			#pragma fragment frag
 
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack.shader b/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack.shader
index 678ac9a..8a8aaf0 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack.shader
@@ -66,9 +66,9 @@
 			Name "Normal"
 
 		CGPROGRAM
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
-			#pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
-			#pragma shader_feature _ _DARK_COLOR_ALPHA_ADDITIVE
+			#pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
+			#pragma multi_compile _ _CANVAS_GROUP_COMPATIBLE
+			#pragma multi_compile _ _DARK_COLOR_ALPHA_ADDITIVE
 			#pragma vertex vert
 			#pragma fragment frag
 
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Fill.shader b/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Fill.shader
index af7ba9c..77b8201 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Fill.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Fill.shader
@@ -41,7 +41,7 @@
 			Name "Normal"
 
 			CGPROGRAM
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
+			#pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
 			#pragma vertex vert
 			#pragma fragment frag
 			#include "UnityCG.cginc"
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Lit-ZWrite.shader b/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Lit-ZWrite.shader
index 2f33d2f..c95a5cf 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Lit-ZWrite.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Lit-ZWrite.shader
@@ -46,9 +46,9 @@
 			Blend One OneMinusSrcAlpha
 
 			CGPROGRAM
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
-			#pragma shader_feature _ _DOUBLE_SIDED_LIGHTING
-			#pragma shader_feature _ _LIGHT_AFFECTS_ADDITIVE
+			#pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
+			#pragma multi_compile _ _DOUBLE_SIDED_LIGHTING
+			#pragma multi_compile _ _LIGHT_AFFECTS_ADDITIVE
 			#pragma vertex vert
 			#pragma fragment frag
 			#pragma target 2.0
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Lit.shader b/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Lit.shader
index f01806f..e0a3b86 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Lit.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Lit.shader
@@ -45,9 +45,9 @@
 			Blend One OneMinusSrcAlpha
 
 			CGPROGRAM
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
-			#pragma shader_feature _ _DOUBLE_SIDED_LIGHTING
-			#pragma shader_feature _ _LIGHT_AFFECTS_ADDITIVE
+			#pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
+			#pragma multi_compile _ _DOUBLE_SIDED_LIGHTING
+			#pragma multi_compile _ _LIGHT_AFFECTS_ADDITIVE
 			#pragma vertex vert
 			#pragma fragment frag
 			#pragma target 2.0
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Tint.shader b/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Tint.shader
index 424dcf6..5745952 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Tint.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Tint.shader
@@ -47,8 +47,8 @@
 			Name "Normal"
 
 			CGPROGRAM
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
-			#pragma shader_feature _ _DARK_COLOR_ALPHA_ADDITIVE
+			#pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
+			#pragma multi_compile _ _DARK_COLOR_ALPHA_ADDITIVE
 			#pragma vertex vert
 			#pragma fragment frag
 			#include "UnityCG.cginc"
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-TintBlack.shader b/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-TintBlack.shader
index 3288349..b538009 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-TintBlack.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-TintBlack.shader
@@ -50,8 +50,8 @@
 			Name "Normal"
 
 			CGPROGRAM
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
-			#pragma shader_feature _ _DARK_COLOR_ALPHA_ADDITIVE
+			#pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
+			#pragma multi_compile _ _DARK_COLOR_ALPHA_ADDITIVE
 			#pragma vertex vert
 			#pragma fragment frag
 			#include "UnityCG.cginc"
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton.shader b/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton.shader
index 708a50a..5d32681 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton.shader
@@ -38,7 +38,7 @@
 			Name "Normal"
 
 			CGPROGRAM
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
+			#pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
 			#pragma vertex vert
 			#pragma fragment frag
 			#include "UnityCG.cginc"
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Special-Skeleton-Grayscale.shader b/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Special-Skeleton-Grayscale.shader
index a2f3618..98ae611 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Special-Skeleton-Grayscale.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/Spine-Special-Skeleton-Grayscale.shader
@@ -41,7 +41,7 @@
 			Name "Normal"
 
 			CGPROGRAM
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
+			#pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
 			#pragma vertex vert
 			#pragma fragment frag
 			#include "UnityCG.cginc"
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesPixelLit.shader b/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesPixelLit.shader
index 8910d40..db50d59 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesPixelLit.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesPixelLit.shader
@@ -85,21 +85,21 @@
 			CGPROGRAM
 				#pragma target 3.0
 
-				#pragma shader_feature _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAPREMULTIPLY_VERTEX_ONLY _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2
-				#pragma shader_feature _ _FIXED_NORMALS_VIEWSPACE _FIXED_NORMALS_VIEWSPACE_BACKFACE _FIXED_NORMALS_MODELSPACE  _FIXED_NORMALS_MODELSPACE_BACKFACE _FIXED_NORMALS_WORLDSPACE
-				#pragma shader_feature _ _SPECULAR _SPECULAR_GLOSSMAP
-				#pragma shader_feature _NORMALMAP
-				#pragma shader_feature _ALPHA_CLIP
-				#pragma shader_feature _EMISSION
-				#pragma shader_feature _RIM_LIGHTING
-				#pragma shader_feature _DIFFUSE_RAMP
-				#pragma shader_feature _ _FULLRANGE_HARD_RAMP _FULLRANGE_SOFT_RAMP _OLD_HARD_RAMP _OLD_SOFT_RAMP
-				#pragma shader_feature _COLOR_ADJUST
-				#pragma shader_feature _TEXTURE_BLEND
-				#pragma shader_feature _SPHERICAL_HARMONICS
-				#pragma shader_feature _FOG
-				#pragma shader_feature _LIGHT_AFFECTS_ADDITIVE
-				#pragma shader_feature _TINT_BLACK_ON
+				#pragma multi_compile _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAPREMULTIPLY_VERTEX_ONLY _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2
+				#pragma multi_compile _ _FIXED_NORMALS_VIEWSPACE _FIXED_NORMALS_VIEWSPACE_BACKFACE _FIXED_NORMALS_MODELSPACE  _FIXED_NORMALS_MODELSPACE_BACKFACE _FIXED_NORMALS_WORLDSPACE
+				#pragma multi_compile _ _SPECULAR _SPECULAR_GLOSSMAP
+				#pragma multi_compile _NORMALMAP
+				#pragma multi_compile _ALPHA_CLIP
+				#pragma multi_compile _EMISSION
+				#pragma multi_compile _RIM_LIGHTING
+				#pragma multi_compile _DIFFUSE_RAMP
+				#pragma multi_compile _ _FULLRANGE_HARD_RAMP _FULLRANGE_SOFT_RAMP _OLD_HARD_RAMP _OLD_SOFT_RAMP
+				#pragma multi_compile _COLOR_ADJUST
+				#pragma multi_compile _TEXTURE_BLEND
+				#pragma multi_compile _SPHERICAL_HARMONICS
+				#pragma multi_compile _FOG
+				#pragma multi_compile _LIGHT_AFFECTS_ADDITIVE
+				#pragma multi_compile _TINT_BLACK_ON
 
 				#pragma multi_compile_fwdbase
 				#pragma fragmentoption ARB_precision_hint_fastest
@@ -124,16 +124,16 @@
 			CGPROGRAM
 				#pragma target 3.0
 
-				#pragma shader_feature _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAPREMULTIPLY_VERTEX_ONLY _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2
-				#pragma shader_feature _ _FIXED_NORMALS_VIEWSPACE _FIXED_NORMALS_VIEWSPACE_BACKFACE _FIXED_NORMALS_MODELSPACE  _FIXED_NORMALS_MODELSPACE_BACKFACE _FIXED_NORMALS_WORLDSPACE
-				#pragma shader_feature _ _SPECULAR _SPECULAR_GLOSSMAP
-				#pragma shader_feature _NORMALMAP
-				#pragma shader_feature _ALPHA_CLIP
-				#pragma shader_feature _DIFFUSE_RAMP
-				#pragma shader_feature _ _FULLRANGE_HARD_RAMP _FULLRANGE_SOFT_RAMP _OLD_HARD_RAMP _OLD_SOFT_RAMP
-				#pragma shader_feature _COLOR_ADJUST
-				#pragma shader_feature _TEXTURE_BLEND
-				#pragma shader_feature _FOG
+				#pragma multi_compile _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAPREMULTIPLY_VERTEX_ONLY _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2
+				#pragma multi_compile _ _FIXED_NORMALS_VIEWSPACE _FIXED_NORMALS_VIEWSPACE_BACKFACE _FIXED_NORMALS_MODELSPACE  _FIXED_NORMALS_MODELSPACE_BACKFACE _FIXED_NORMALS_WORLDSPACE
+				#pragma multi_compile _ _SPECULAR _SPECULAR_GLOSSMAP
+				#pragma multi_compile _NORMALMAP
+				#pragma multi_compile _ALPHA_CLIP
+				#pragma multi_compile _DIFFUSE_RAMP
+				#pragma multi_compile _ _FULLRANGE_HARD_RAMP _FULLRANGE_SOFT_RAMP _OLD_HARD_RAMP _OLD_SOFT_RAMP
+				#pragma multi_compile _COLOR_ADJUST
+				#pragma multi_compile _TEXTURE_BLEND
+				#pragma multi_compile _FOG
 
 				#pragma multi_compile_fwdadd_fullshadows
 				#pragma fragmentoption ARB_precision_hint_fastest
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesUnlit.shader b/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesUnlit.shader
index 124586e..1330bec 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesUnlit.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesUnlit.shader
@@ -66,12 +66,12 @@
 			Lighting Off
 
 			CGPROGRAM
-				#pragma shader_feature _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAPREMULTIPLY_VERTEX_ONLY _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2
-				#pragma shader_feature _ALPHA_CLIP
-				#pragma shader_feature _TEXTURE_BLEND
-				#pragma shader_feature _COLOR_ADJUST
-				#pragma shader_feature _FOG
-				#pragma shader_feature _TINT_BLACK_ON
+				#pragma multi_compile _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAPREMULTIPLY_VERTEX_ONLY _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2
+				#pragma multi_compile _ALPHA_CLIP
+				#pragma multi_compile _TEXTURE_BLEND
+				#pragma multi_compile _COLOR_ADJUST
+				#pragma multi_compile _FOG
+				#pragma multi_compile _TINT_BLACK_ON
 
 				#pragma fragmentoption ARB_precision_hint_fastest
 				#pragma multi_compile_fog
diff --git a/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesVertexLit.shader b/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesVertexLit.shader
index 45e8f7a..84a1e08 100644
--- a/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesVertexLit.shader
+++ b/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesVertexLit.shader
@@ -86,21 +86,21 @@
 			CGPROGRAM
 				#pragma target 3.0
 
-				#pragma shader_feature _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAPREMULTIPLY_VERTEX_ONLY _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2
-				#pragma shader_feature _ _FIXED_NORMALS_VIEWSPACE _FIXED_NORMALS_VIEWSPACE_BACKFACE _FIXED_NORMALS_MODELSPACE  _FIXED_NORMALS_MODELSPACE_BACKFACE _FIXED_NORMALS_WORLDSPACE
-				#pragma shader_feature _ _SPECULAR _SPECULAR_GLOSSMAP
-				#pragma shader_feature _NORMALMAP
-				#pragma shader_feature _ALPHA_CLIP
-				#pragma shader_feature _EMISSION
-				#pragma shader_feature _DIFFUSE_RAMP
-				#pragma shader_feature _ _FULLRANGE_HARD_RAMP _FULLRANGE_SOFT_RAMP _OLD_HARD_RAMP _OLD_SOFT_RAMP
-				#pragma shader_feature _COLOR_ADJUST
-				#pragma shader_feature _RIM_LIGHTING
-				#pragma shader_feature _TEXTURE_BLEND
-				#pragma shader_feature _SPHERICAL_HARMONICS
-				#pragma shader_feature _FOG
-				#pragma shader_feature _LIGHT_AFFECTS_ADDITIVE
-				#pragma shader_feature _TINT_BLACK_ON
+				#pragma multi_compile _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAPREMULTIPLY_VERTEX_ONLY _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2
+				#pragma multi_compile _ _FIXED_NORMALS_VIEWSPACE _FIXED_NORMALS_VIEWSPACE_BACKFACE _FIXED_NORMALS_MODELSPACE  _FIXED_NORMALS_MODELSPACE_BACKFACE _FIXED_NORMALS_WORLDSPACE
+				#pragma multi_compile _ _SPECULAR _SPECULAR_GLOSSMAP
+				#pragma multi_compile _NORMALMAP
+				#pragma multi_compile _ALPHA_CLIP
+				#pragma multi_compile _EMISSION
+				#pragma multi_compile _DIFFUSE_RAMP
+				#pragma multi_compile _ _FULLRANGE_HARD_RAMP _FULLRANGE_SOFT_RAMP _OLD_HARD_RAMP _OLD_SOFT_RAMP
+				#pragma multi_compile _COLOR_ADJUST
+				#pragma multi_compile _RIM_LIGHTING
+				#pragma multi_compile _TEXTURE_BLEND
+				#pragma multi_compile _SPHERICAL_HARMONICS
+				#pragma multi_compile _FOG
+				#pragma multi_compile _LIGHT_AFFECTS_ADDITIVE
+				#pragma multi_compile _TINT_BLACK_ON
 
 				#pragma fragmentoption ARB_precision_hint_fastest
 				#pragma multi_compile_fog
diff --git a/ProjectSettings/GraphicsSettings.asset b/ProjectSettings/GraphicsSettings.asset
index c165afb..d4b24f8 100644
--- a/ProjectSettings/GraphicsSettings.asset
+++ b/ProjectSettings/GraphicsSettings.asset
@@ -3,7 +3,7 @@
 --- !u!30 &1
 GraphicsSettings:
   m_ObjectHideFlags: 0
-  serializedVersion: 13
+  serializedVersion: 15
   m_Deferred:
     m_Mode: 1
     m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
@@ -13,9 +13,6 @@
   m_ScreenSpaceShadows:
     m_Mode: 1
     m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}
-  m_LegacyDeferred:
-    m_Mode: 1
-    m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0}
   m_DepthNormals:
     m_Mode: 1
     m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}
@@ -37,7 +34,14 @@
   - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
   - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
   - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0}
+  - {fileID: 4800000, guid: fa95b0fb6983c0f40a152e6f9aa82bfb, type: 3}
+  - {fileID: 4800000, guid: a1e4ab34b07f81e4e94f0d241c416669, type: 3}
+  - {fileID: 4800000, guid: c02377d9afbb50e49ab27049e59fb5f8, type: 3}
+  - {fileID: 4800000, guid: 81eed00979b4e554cb3022dc0b83b517, type: 3}
+  - {fileID: 4800000, guid: cfbf95ed0fe6c554c8c2ee6c8325937c, type: 3}
+  - {fileID: 4800000, guid: c61244023592f95479fddd71b5067683, type: 3}
   m_PreloadedShaders: []
+  m_PreloadShadersBatchTimeLimit: -1
   m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
   m_CustomRenderPipeline: {fileID: 0}
   m_TransparencySortMode: 0
@@ -48,6 +52,7 @@
   m_LightmapStripping: 0
   m_FogStripping: 0
   m_InstancingStripping: 0
+  m_BrgStripping: 0
   m_LightmapKeepPlain: 1
   m_LightmapKeepDirCombined: 1
   m_LightmapKeepDynamicPlain: 1
@@ -62,3 +67,7 @@
   m_LightsUseColorTemperature: 0
   m_DefaultRenderingLayerMask: 1
   m_LogWhenShaderIsCompiled: 0
+  m_SRPDefaultSettings: {}
+  m_LightProbeOutsideHullStrategy: 0
+  m_CameraRelativeLightCulling: 0
+  m_CameraRelativeShadowCulling: 0
diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset
index 5bac9e4..bdb983c 100644
--- a/ProjectSettings/ProjectSettings.asset
+++ b/ProjectSettings/ProjectSettings.asset
@@ -44,8 +44,8 @@
   m_HolographicTrackingLossScreen: {fileID: 0}
   defaultScreenWidth: 1920
   defaultScreenHeight: 1080
-  defaultScreenWidthWeb: 960
-  defaultScreenHeightWeb: 600
+  defaultScreenWidthWeb: 750
+  defaultScreenHeightWeb: 1334
   m_StereoRenderingPath: 0
   m_ActiveColorSpace: 0
   unsupportedMSAAFallback: 0
@@ -175,7 +175,7 @@
   AndroidTargetSdkVersion: 0
   AndroidPreferredInstallLocation: 1
   aotOptions: 
-  stripEngineCode: 1
+  stripEngineCode: 0
   iPhoneStrippingLevel: 0
   iPhoneScriptCallOptimization: 0
   ForceInternetPermission: 0
@@ -673,21 +673,21 @@
   blurSplashScreenBackground: 0
   spritePackerPolicy: 
   webGLMemorySize: 32
-  webGLExceptionSupport: 1
+  webGLExceptionSupport: 3
   webGLNameFilesAsHashes: 0
   webGLShowDiagnostics: 0
-  webGLDataCaching: 1
-  webGLDebugSymbols: 0
+  webGLDataCaching: 0
+  webGLDebugSymbols: 2
   webGLEmscriptenArgs: 
   webGLModulesDirectory: 
   webGLTemplate: APPLICATION:Default
   webGLAnalyzeBuildSize: 0
   webGLUseEmbeddedResources: 0
-  webGLCompressionFormat: 0
+  webGLCompressionFormat: 2
   webGLWasmArithmeticExceptions: 0
   webGLLinkerTarget: 1
   webGLThreadsSupport: 0
-  webGLDecompressionFallback: 0
+  webGLDecompressionFallback: 1
   webGLInitialMemorySize: 32
   webGLMaximumMemorySize: 2048
   webGLMemoryGrowthMode: 2
@@ -717,6 +717,7 @@
   platformArchitecture: {}
   scriptingBackend:
     Android: 1
+    Standalone: 1
   il2cppCompilerConfiguration: {}
   il2cppCodeGeneration: {}
   managedStrippingLevel:

--
Gitblit v1.8.0