From 16bea1d248f0010049bceaa562939297fa26b130 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期四, 25 七月 2024 15:27:21 +0800
Subject: [PATCH] Merge branch 'Dev-Branch-2024' into wjc

---
 SiriIntents/SiriIntents.csproj                                                     |    4 
 NunitTest-Android/Resources/mipmap-anydpi-v26/ic_launcher.xml                      |    6 
 DLL/Aliyun.Api.LogService.dll                                                      |    0 
 HDL-ON_iOS/HDL-ON_iOS.csproj                                                       |   30 
 HDL_ON/Common/AliyunLog/AliyunLogInvokeAsync.cs                                    |  173 
 NunitTest-Ios/packages.config                                                      |    6 
 HDL_ON/Common/ApiUtlis.cs                                                          |   93 
 NunitTest-Android/Resources/mipmap-xxxhdpi/ic_launcher_foreground.png              |    0 
 NunitTest-Ios/ApiPostTests.cs                                                      |   47 
 HDL_ON/HDL_ON.projitems                                                            |    3 
 NunitTest-Ios/Info.plist                                                           |   36 
 HDL_ON/Entity/Function/EmptyXmlFile.xml                                            | 1568 ++++++++
 HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs                               |    2 
 HDL_ON/Entity/Function/Sensor.cs                                                   |  139 
 HDL_ON/DAL/Server/NewApiRes.cs                                                     |    2 
 HDL_ON/Entity/Room.cs                                                              |    1 
 HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage_V2.cs                      |   35 
 NunitTest-Android/Resources/mipmap-anydpi-v26/ic_launcher_round.xml                |    6 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Light/LightScene/gp_all_on.png            |    0 
 HDL_ON/UI/UI2/3-Intelligence/Scene/CatchSceneAddPage.cs                            |    5 
 SiriIntents/Server/HttpUtil.cs                                                     |   10 
 HDL_ON/Entity/Function/Scene.cs                                                    |    2 
 HDL_ON/Common/Constant.cs                                                          |    4 
 HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs                            |   52 
 HDL_ON/DAL/DriverLayer/Control_Udp.cs                                              |   97 
 NunitTest-Android/Resources/mipmap-mdpi/ic_launcher_foreground.png                 |    0 
 NunitTest-Android/Resources/mipmap-xhdpi/ic_launcher_round.png                     |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Light/LightScene/gp_all_off.png           |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs                                    |   11 
 HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs                     |   13 
 HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockPage.cs                |   12 
 HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs                                              |    3 
 NunitTest-Android/Resources/values/strings.xml                                     |    4 
 HDL_ON/UI/UI2/FuntionControlView/HisenseTV /Send.cs                                |    2 
 NunitTest-Android/Properties/AssemblyInfo.cs                                       |   27 
 HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs                                            |   33 
 DLL/IOS/HDL.Shared.IOS.ScanQRCode.dll                                              |    0 
 HDL-ON_iOS/AppDelegate.cs                                                          |   22 
 NunitTest-Android/Resources/mipmap-hdpi/ic_launcher.png                            |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Light/LightScene/gp_all_on.png             |    0 
 NunitTest-Android/Resources/Resource.designer.cs                                   |  234 +
 NunitTest-Android/Resources/mipmap-mdpi/ic_launcher_round.png                      |    0 
 NunitTest-Android/Resources/mipmap-xxhdpi/ic_launcher_round.png                    |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs    |    3 
 HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/A_EnvironmentalDataCenter.cs |   44 
 HDL_ON/DAL/DriverLayer/Control.cs                                                  |   11 
 SiriIntentsUI/SiriIntentsUI.csproj                                                 |    6 
 HDL_APP_Project.sln                                                                |   28 
 NunitTest-Android/Resources/mipmap-xhdpi/ic_launcher.png                           |    0 
 NunitTest-Android/Resources/values/colors.xml                                      |    7 
 NunitTest-Android/Resources/values/ic_launcher_background.xml                      |    5 
 HDL_ON/Common/AliyunLog/AliyunLogClient.cs                                         |  160 
 NunitTest-Android/Resources/mipmap-hdpi/ic_launcher_round.png                      |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs                     |   57 
 HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs              |    2 
 HDL_ON/DAL/Server/HttpServerRequest.cs                                             |    2 
 NunitTest-Android/TestsSample.cs                                                   |   44 
 HDL-ON_Android/Properties/AndroidManifest.xml                                      |    2 
 HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/MechanicalArmPage.cs                 |    2 
 DLL/Android/HdlEzvizDroid.dll                                                      |    0 
 HDL_ON/DAL/Mqtt/MqttClient.cs                                                      |   31 
 NunitTest-Android/Resources/mipmap-mdpi/ic_launcher.png                            |    0 
 NunitTest-Android/Resources/mipmap-xxxhdpi/ic_launcher.png                         |    0 
 HDL-ON_Android/HDL-ON_Android.csproj                                               |   23 
 HDL-ON_iOS/Info.plist                                                              |    4 
 HDL_ON/Common/HDLCommon.cs                                                         |   46 
 HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs                         |    2 
 NunitTest-Android/NunitTest-Android.csproj                                         |  101 
 NunitTest-Ios/Main.cs                                                              |   20 
 HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFaceManagementPage.cs        |    4 
 HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs                           |   22 
 HDL_ON/UI/UI1-Login/LoginPage.cs                                                   |   95 
 NunitTest-Android/Resources/mipmap-hdpi/ic_launcher_foreground.png                 |    0 
 HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs                         |    1 
 HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs                     |    3 
 HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberPermissionPage.cs            |    2 
 HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs                                   |    4 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Light/LightScene/gp_all_off.png            |    0 
 HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs                               |   18 
 HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/CombinedDimmingListPage.cs          |    9 
 NunitTest-Ios/UnitTestAppDelegate.cs                                               |   46 
 NunitTest-Android/ApiPostTests.cs                                                  |   47 
 NunitTest-Android/MainActivity.cs                                                  |   24 
 HDL_ON/DAL/Server/HttpUtil.cs                                                      |   34 
 HDL_ON/DAL/DriverLayer/UdpSocket.cs                                                |   10 
 HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs                                          |    2 
 HDL_ON/UI/UI2/1-HomePage/HomePage.cs                                               |   17 
 HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs                     |    3 
 HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs         |   71 
 NunitTest-Android/Resources/mipmap-xxhdpi/ic_launcher_foreground.png               |    0 
 HDL-ON_iOS/Assets.xcassets/preview_stopplay_btn .imageset/Contents.json            |    1 
 NunitTest-Ios/NunitTest-Ios.csproj                                                 |  113 
 NunitTest-Ios/LaunchScreen.storyboard                                              |   27 
 HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs                            |   22 
 NunitTest-Android/Assets/AboutAssets.txt                                           |   19 
 HDL_ON/UI/MainPage.cs                                                              |   10 
 HDL_ON/UI/UI0-Stan/Logic/HdlMessageLogic.cs                                        |   17 
 NunitTest-Android/Resources/mipmap-xxxhdpi/ic_launcher_round.png                   |    0 
 HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs                     |    2 
 DLL/IOS/EZSDK.IOS.dll                                                              |    0 
 NunitTest-Android/Properties/AndroidManifest.xml                                   |    6 
 NunitTest-Android/Resources/AboutResources.txt                                     |   44 
 /dev/null                                                                          | 7316 --------------------------------------
 NunitTest-Ios/Entitlements.plist                                                   |    6 
 HDL_ON/DAL/Server/NewAPI.cs                                                        |    6 
 NunitTest-Android/Resources/mipmap-xxhdpi/ic_launcher.png                          |    0 
 NunitTest-Android/Resources/mipmap-xhdpi/ic_launcher_foreground.png                |    0 
 107 files changed, 3,608 insertions(+), 7,675 deletions(-)

diff --git a/DLL/Aliyun.Api.LogService.dll b/DLL/Aliyun.Api.LogService.dll
new file mode 100644
index 0000000..6021ab8
--- /dev/null
+++ b/DLL/Aliyun.Api.LogService.dll
Binary files differ
diff --git a/DLL/HdlEzvizDroid.dll b/DLL/Android/HdlEzvizDroid.dll
similarity index 91%
rename from DLL/HdlEzvizDroid.dll
rename to DLL/Android/HdlEzvizDroid.dll
index e59d056..0f2639a 100644
--- a/DLL/HdlEzvizDroid.dll
+++ b/DLL/Android/HdlEzvizDroid.dll
Binary files differ
diff --git a/DLL/IOS/EZSDK.IOS.dll b/DLL/IOS/EZSDK.IOS.dll
index 7ce30f9..ff649e0 100644
--- a/DLL/IOS/EZSDK.IOS.dll
+++ b/DLL/IOS/EZSDK.IOS.dll
Binary files differ
diff --git a/DLL/IOS/HDL.Shared.IOS.ScanQRCode.dll b/DLL/IOS/HDL.Shared.IOS.ScanQRCode.dll
index 8d81fa4..47131dd 100644
--- a/DLL/IOS/HDL.Shared.IOS.ScanQRCode.dll
+++ b/DLL/IOS/HDL.Shared.IOS.ScanQRCode.dll
Binary files differ
diff --git a/DLL/Shared.IOS-1.dll b/DLL/Shared.IOS-1.dll
deleted file mode 100644
index 77ca2c5..0000000
--- a/DLL/Shared.IOS-1.dll
+++ /dev/null
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Light/LightScene/gp_all_off.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Light/LightScene/gp_all_off.png
index 55fe174..4dd5fff 100644
--- a/HDL-ON_Android/Assets/Phone/FunctionIcon/Light/LightScene/gp_all_off.png
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Light/LightScene/gp_all_off.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Light/LightScene/gp_all_on.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Light/LightScene/gp_all_on.png
index 4dd5fff..55fe174 100644
--- a/HDL-ON_Android/Assets/Phone/FunctionIcon/Light/LightScene/gp_all_on.png
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Light/LightScene/gp_all_on.png
Binary files differ
diff --git a/HDL-ON_Android/HDL-ON_Android.csproj b/HDL-ON_Android/HDL-ON_Android.csproj
index a3706fa..8c3c5b0 100644
--- a/HDL-ON_Android/HDL-ON_Android.csproj
+++ b/HDL-ON_Android/HDL-ON_Android.csproj
@@ -164,9 +164,6 @@
     <Reference Include="UMSdkDroid">
       <HintPath>..\DLL\UMeng\UMSdkDroid.dll</HintPath>
     </Reference>
-    <Reference Include="Shared.Droid.HDLLinphone">
-      <HintPath>..\DLL\Linphone\Android\Shared.Droid.HDLLinphone.dll</HintPath>
-    </Reference>
     <Reference Include="Mono.Android.Export" />
     <Reference Include="ScanSdk">
       <HintPath>..\DLL\Scan\ScanSdk.dll</HintPath>
@@ -195,8 +192,14 @@
     <Reference Include="Shared.Droid">
       <HintPath>..\DLL\Android\Shared.Droid.dll</HintPath>
     </Reference>
+    <Reference Include="Shared.Droid.HDLLinphone">
+      <HintPath>..\DLL\Linphone\Android\Shared.Droid.HDLLinphone.dll</HintPath>
+    </Reference>
     <Reference Include="HdlEzvizDroid">
-      <HintPath>..\DLL\HdlEzvizDroid.dll</HintPath>
+      <HintPath>..\DLL\Android\HdlEzvizDroid.dll</HintPath>
+    </Reference>
+    <Reference Include="Aliyun.Api.LogService">
+      <HintPath>..\DLL\Aliyun.Api.LogService.dll</HintPath>
     </Reference>
   </ItemGroup>
   <ItemGroup>
@@ -973,6 +976,18 @@
     <PackageReference Include="Square.OkHttp3">
       <Version>3.14.4</Version>
     </PackageReference>
+    <PackageReference Include="Google.Protobuf">
+      <Version>3.5.1</Version>
+    </PackageReference>
+    <PackageReference Include="Microsoft.AspNet.WebApi.Client">
+      <Version>5.2.4</Version>
+    </PackageReference>
+    <PackageReference Include="Iconic.Zlib.Netstandard">
+      <Version>1.0.0</Version>
+    </PackageReference>
+    <PackageReference Include="lz4net">
+      <Version>1.0.15.93</Version>
+    </PackageReference>
   </ItemGroup>
   <ItemGroup>
     <AndroidAsset Include="Assets\Language.ini" />
diff --git a/HDL-ON_Android/Properties/AndroidManifest.xml b/HDL-ON_Android/Properties/AndroidManifest.xml
index 597ffce..2bd7bc3 100644
--- a/HDL-ON_Android/Properties/AndroidManifest.xml
+++ b/HDL-ON_Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="2.4.3" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools" android:versionCode="202401031">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="2.4.5" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools" android:versionCode="202405211">
 	<uses-sdk android:minSdkVersion="26" android:targetSdkVersion="29" />
 	<uses-permission android:name="android.permission.RECEIVE_SMS" />
 	<!--鍙嬬洘-->
diff --git a/HDL-ON_iOS/AppDelegate.cs b/HDL-ON_iOS/AppDelegate.cs
index 731a1c1..003de6d 100644
--- a/HDL-ON_iOS/AppDelegate.cs
+++ b/HDL-ON_iOS/AppDelegate.cs
@@ -268,16 +268,16 @@
         /// </summary>
         void SetCurrentLanguage()
         {
-            if (string.IsNullOrEmpty(OnAppConfig.Instance.SetLanguage))
-            {
+            //if (string.IsNullOrEmpty(OnAppConfig.Instance.SetLanguage))
+            //{
                 if (NSLocale.PreferredLanguages[0].Contains("zh-"))
                 {
                     Language.CurrentLanguage = "Chinese";
                 }
-                else if (NSLocale.PreferredLanguages[0].Contains("cs-"))
-                {
-                    Language.CurrentLanguage = "Czech";
-                }
+                //else if (NSLocale.PreferredLanguages[0].Contains("cs-"))
+                //{
+                //    Language.CurrentLanguage = "Czech";
+                //}
                 else if (NSLocale.PreferredLanguages[0].Contains("ru-"))
                 {
                     Language.CurrentLanguage = "russian";
@@ -297,11 +297,11 @@
                 {
                     Language.CurrentLanguage = "English";
                 }
-            }
-            else
-            {
-                Language.CurrentLanguage = OnAppConfig.Instance.SetLanguage;
-            }
+            //}
+            //else
+            //{
+            //    Language.CurrentLanguage = OnAppConfig.Instance.SetLanguage;
+            //}
         }
 
         public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/12422688.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/12422688.png
deleted file mode 100644
index b588e7a..0000000
--- a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/12422688.png
+++ /dev/null
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1792828.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1792828.png
deleted file mode 100644
index 3a7131a..0000000
--- a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1792828.png
+++ /dev/null
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/26881242.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/26881242.png
deleted file mode 100644
index a713003..0000000
--- a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/26881242.png
+++ /dev/null
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/8281792.png b/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/8281792.png
deleted file mode 100644
index 0e6e665..0000000
--- a/HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/8281792.png
+++ /dev/null
Binary files differ
diff --git a/HDL-ON_iOS/Assets.xcassets/preview_stopplay_btn .imageset/Contents.json b/HDL-ON_iOS/Assets.xcassets/preview_stopplay_btn .imageset/Contents.json
index 1958f48..d7aabbd 100644
--- a/HDL-ON_iOS/Assets.xcassets/preview_stopplay_btn .imageset/Contents.json
+++ b/HDL-ON_iOS/Assets.xcassets/preview_stopplay_btn .imageset/Contents.json
@@ -11,7 +11,6 @@
       "scale" : "2x"
     },
     {
-      "filename" : "preview_stopplay_btn @3x.png",
       "idiom" : "universal",
       "scale" : "3x"
     }
diff --git a/HDL-ON_iOS/HDL-ON_iOS.csproj b/HDL-ON_iOS/HDL-ON_iOS.csproj
index a7c966e..3747f4d 100644
--- a/HDL-ON_iOS/HDL-ON_iOS.csproj
+++ b/HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -30,6 +30,7 @@
         <CodesignProvision>OnPro2307291-Dev</CodesignProvision>
         <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
         <MtouchI18n>cjk</MtouchI18n>
+        <MtouchSdkVersion>17.5</MtouchSdkVersion>
     </PropertyGroup>
     <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
         <DebugType>none</DebugType>
@@ -55,12 +56,13 @@
         <CodesignKey>Apple Development: xuebiao huang (4P32GXQWWK)</CodesignKey>
         <MtouchDebug>true</MtouchDebug>
         <MtouchI18n>cjk</MtouchI18n>
-        <MtouchLink>None</MtouchLink>
+        <MtouchLink>SdkOnly</MtouchLink>
         <MtouchExtraArgs>-gcc_flags="-dead_strip -ObjC"</MtouchExtraArgs>
         <MtouchEnableSGenConc>false</MtouchEnableSGenConc>
 <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
 <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-<CodesignProvision>OnPro2307291-Dev</CodesignProvision>
+<CodesignProvision>0002-OnPro-240704-1-Dev</CodesignProvision>
+<MtouchSdkVersion>17.5</MtouchSdkVersion>
     </PropertyGroup>
     <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
         <DebugType>none</DebugType>
@@ -70,12 +72,13 @@
         <WarningLevel>4</WarningLevel>
         <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
         <MtouchArch>ARM64</MtouchArch>
-        <CodesignKey>Apple Development: xuebiao huang (4P32GXQWWK)</CodesignKey>
+        <CodesignKey>Apple Distribution: HDL Automation Co., Ltd (BVTA78PRYA)</CodesignKey>
         <MtouchLink>SdkOnly</MtouchLink>
         <MtouchExtraArgs>-gcc_flags="-dead_strip -ObjC"</MtouchExtraArgs>
         <MtouchI18n>cjk</MtouchI18n>
         <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-        <CodesignProvision>OnPro2307291-Dev</CodesignProvision>
+        <CodesignProvision>Automatic</CodesignProvision>
+        <MtouchSdkVersion>17.5</MtouchSdkVersion>
     </PropertyGroup>
     <ItemGroup>
         <Reference Include="System" />
@@ -119,6 +122,9 @@
         <Reference Include="Shared.IOS">
           <HintPath>..\DLL\Shared.IOS.dll</HintPath>
         </Reference>
+        <Reference Include="Aliyun.Api.LogService">
+          <HintPath>..\DLL\Aliyun.Api.LogService.dll</HintPath>
+        </Reference>
     </ItemGroup>
     <ItemGroup>
       <PackageReference Include="Newtonsoft.Json">
@@ -141,6 +147,18 @@
       </PackageReference>
       <PackageReference Include="Xamarin.iOS.SwiftRuntimeSupport">
         <Version>0.2.1</Version>
+      </PackageReference>
+      <PackageReference Include="Google.Protobuf">
+        <Version>3.5.1</Version>
+      </PackageReference>
+      <PackageReference Include="Microsoft.AspNet.WebApi.Client">
+        <Version>5.2.4</Version>
+      </PackageReference>
+      <PackageReference Include="Iconic.Zlib.Netstandard">
+        <Version>1.0.0</Version>
+      </PackageReference>
+      <PackageReference Include="lz4net">
+        <Version>1.0.15.93</Version>
       </PackageReference>
     </ItemGroup>
     <ItemGroup>
@@ -440,10 +458,6 @@
         <ImageAsset Include="Assets.xcassets\wifi_bg.imageset\wifi_bg.png" />
         <ImageAsset Include="Assets.xcassets\device_bg.imageset\Contents.json" />
         <ImageAsset Include="Assets.xcassets\device_bg.imageset\device_bg.png" />
-        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\12422688.png" />
-        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\8281792.png" />
-        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\26881242.png" />
-        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1792828.png" />
         <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\11252436.png" />
         <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\24361125.png" />
         <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640960.png" />
diff --git a/HDL-ON_iOS/Info.plist b/HDL-ON_iOS/Info.plist
index d8aee60..9837d4d 100644
--- a/HDL-ON_iOS/Info.plist
+++ b/HDL-ON_iOS/Info.plist
@@ -11,7 +11,7 @@
 	<key>CFBundleName</key>
 	<string>On Pro</string>
 	<key>CFBundleShortVersionString</key>
-	<string>2.4.3</string>
+	<string>2.4.8</string>
 	<key>CFBundleURLTypes</key>
 	<array>
 		<dict>
@@ -36,7 +36,7 @@
 		</dict>
 	</array>
 	<key>CFBundleVersion</key>
-	<string>2.4.3</string>
+	<string>2.4.8</string>
 	<key>LSApplicationQueriesSchemes</key>
 	<array>
 		<string>weixinULAPI</string>
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Light/LightScene/gp_all_off.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Light/LightScene/gp_all_off.png
index 55fe174..4dd5fff 100644
--- a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Light/LightScene/gp_all_off.png
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Light/LightScene/gp_all_off.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Light/LightScene/gp_all_on.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Light/LightScene/gp_all_on.png
index 4dd5fff..55fe174 100644
--- a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Light/LightScene/gp_all_on.png
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Light/LightScene/gp_all_on.png
Binary files differ
diff --git a/HDL-ON_iOS/mono_crash.6efc3ba32.0.json b/HDL-ON_iOS/mono_crash.6efc3ba32.0.json
deleted file mode 100644
index 5e0c690..0000000
--- a/HDL-ON_iOS/mono_crash.6efc3ba32.0.json
+++ /dev/null
@@ -1,384 +0,0 @@
-{
-  "protocol_version" : "0.0.6",
-  "configuration" : {
-    "version" : "(6.12.0.182) (2020-02/6051b710727)",
-    "tlc" : "normal",
-    "sigsgev" : "altstack",
-    "notifications" : "kqueue",
-    "architecture" : "amd64",
-    "disabled_features" : "none",
-    "smallconfig" : "disabled",
-    "bigarrays" : "disabled",
-    "softdebug" : "enabled",
-    "interpreter" : "enabled",
-    "llvm_support" : "0",
-    "suspend" : "hybrid"
-  },
-  "memory" : {
-    "Resident Size" : "213450752",
-    "Virtual Size" : "35264557056",
-    "minor_gc_time" : "4050407",
-    "major_gc_time" : "175543721",
-    "minor_gc_count" : "9",
-    "major_gc_count" : "1030",
-    "major_gc_time_concurrent" : "0"
- },
-  "threads" : [
- {
-    "is_managed" : true,
-    "offset_free_hash" : "0x6efc3ba32",
-    "offset_rich_hash" : "0x6efc3baac",
-    "crashed" : true,
-    "native_thread_id" : "0x70000d4da000",
-    "thread_info_addr" : "0x7fee5f808800",
-    "thread_name" : "Finalizer",
-    "ctx" : {
-      "IP" : "0x7ff813720189",
-      "SP" : "0x70000d4d9a60",
-      "BP" : "0x70000d4d9a60"
-  },
-    "managed_frames" : [
-  {
-      "is_managed" : "false",
-      "native_address" : "unregistered"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-      "token" : "0x00000",
-      "native_offset" : "0x0",
-      "filename" : "System.dll",
-      "sizeofimage" : "0x290000",
-      "timestamp" : "0x85731fb9",
-      "il_offset" : "0x0000c"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-      "token" : "0x600429c",
-      "native_offset" : "0x0",
-      "filename" : "System.dll",
-      "sizeofimage" : "0x290000",
-      "timestamp" : "0x85731fb9",
-      "il_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x60040a5",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x00003"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x60040a4",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-      "token" : "0x6002f52",
-      "native_offset" : "0x0",
-      "filename" : "System.dll",
-      "sizeofimage" : "0x290000",
-      "timestamp" : "0x85731fb9",
-      "il_offset" : "0x00041"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-      "token" : "0x6002f51",
-      "native_offset" : "0x0",
-      "filename" : "System.dll",
-      "sizeofimage" : "0x290000",
-      "timestamp" : "0x85731fb9",
-      "il_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x00000",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x0002a"
-   }
-
-  ],
-  "unmanaged_frames" : [
- {
-    "is_managed" : "false",
-    "native_address" : "0x1078b2756",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x107a4dfd5",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x107a4e64a",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x10791f907",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x1078b73ee",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x1079197b6",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x7ff813720189",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x7ff81e42d60f",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x7ff81e42bdcf",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x7ff81e42ce3c",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x7ff81e42b189",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x10ea0cdad",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-    "token" : "0x00000",
-    "native_offset" : "0x0",
-    "filename" : "System.dll",
-    "sizeofimage" : "0x290000",
-    "timestamp" : "0x85731fb9",
-    "il_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-    "token" : "0x600429c",
-    "native_offset" : "0x0",
-    "filename" : "System.dll",
-    "sizeofimage" : "0x290000",
-    "timestamp" : "0x85731fb9",
-    "il_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "(null)",
-    "token" : "0x00000",
-    "native_offset" : "0x0",
-    "filename" : "(null)",
-    "sizeofimage" : "0x0",
-    "timestamp" : "0x0",
-    "il_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "(null)",
-    "token" : "0x00000",
-    "native_offset" : "0x0",
-    "filename" : "(null)",
-    "sizeofimage" : "0x0",
-    "timestamp" : "0x0",
-    "il_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-    "token" : "0x6002f51",
-    "native_offset" : "0x0",
-    "filename" : "System.dll",
-    "sizeofimage" : "0x290000",
-    "timestamp" : "0x85731fb9",
-    "il_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-    "token" : "0x00000",
-    "native_offset" : "0x0",
-    "filename" : "mscorlib.dll",
-    "sizeofimage" : "0x472000",
-    "timestamp" : "0xe057582a",
-    "il_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x107a8e869",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x107aad9ac",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x107a90759",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x107a4ec1d",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x7ff81370d4e1",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x7ff813708f6b",
-    "native_offset" : "0x00000"
-  }
-
- ]
-},
-{
-  "is_managed" : false,
-  "offset_free_hash" : "0x0",
-  "offset_rich_hash" : "0x0",
-  "crashed" : false,
-  "native_thread_id" : "0x111f89600",
-  "thread_info_addr" : "0x7fee5e008600",
-  "thread_name" : "tid_103",
-  "ctx" : {
-    "IP" : "0x7ff8136d09be",
-    "SP" : "0x7ff7b86ff168",
-    "BP" : "0x7ff7b86ff1e0"
- },
-  "unmanaged_frames" : [
- {
-    "is_managed" : "false",
-    "native_address" : "0x1078b2756",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x107a4dfd5",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x107a4dd07",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x10791e840",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x7ff813722dfd",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x7ff7b86fedf0",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x107a8ec37",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x107814e1a",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x107877d16",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x107803b58",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x111f0e52e",
-    "native_offset" : "0x00000"
-  }
-
- ]
-}
-]
-}
\ No newline at end of file
diff --git a/HDL-ON_iOS/mono_crash.824c6d50c.0.json b/HDL-ON_iOS/mono_crash.824c6d50c.0.json
deleted file mode 100644
index c4e1f91..0000000
--- a/HDL-ON_iOS/mono_crash.824c6d50c.0.json
+++ /dev/null
@@ -1,406 +0,0 @@
-{
-  "protocol_version" : "0.0.6",
-  "configuration" : {
-    "version" : "(6.12.0.174) (2020-02/adf1bc4335d)",
-    "tlc" : "normal",
-    "sigsgev" : "altstack",
-    "notifications" : "kqueue",
-    "architecture" : "amd64",
-    "disabled_features" : "none",
-    "smallconfig" : "disabled",
-    "bigarrays" : "disabled",
-    "softdebug" : "enabled",
-    "interpreter" : "enabled",
-    "llvm_support" : "0",
-    "suspend" : "hybrid"
-  },
-  "memory" : {
-    "Resident Size" : "181948416",
-    "Virtual Size" : "36274827264",
-    "minor_gc_time" : "5825386",
-    "major_gc_time" : "297980436",
-    "minor_gc_count" : "11",
-    "major_gc_count" : "1669",
-    "major_gc_time_concurrent" : "0"
- },
-  "threads" : [
- {
-    "is_managed" : false,
-    "offset_free_hash" : "0x0",
-    "offset_rich_hash" : "0x0",
-    "crashed" : false,
-    "native_thread_id" : "0x11765a600",
-    "thread_info_addr" : "0x7fd13b015000",
-    "thread_name" : "tid_103",
-    "ctx" : {
-      "IP" : "0x7ff805bd19ce",
-      "SP" : "0x7ff7b6f54158",
-      "BP" : "0x7ff7b6f541d0"
-  },
-    "unmanaged_frames" : [
-  {
-      "is_managed" : "false",
-      "native_address" : "0x10905c776",
-      "native_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "false",
-      "native_address" : "0x1091f7fe5",
-      "native_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "false",
-      "native_address" : "0x1091f7d17",
-      "native_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "false",
-      "native_address" : "0x1090c8860",
-      "native_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "false",
-      "native_address" : "0x7ff805c23dfd",
-      "native_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "false",
-      "native_address" : "0x92",
-      "native_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "false",
-      "native_address" : "0x109238c47",
-      "native_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "false",
-      "native_address" : "0x108fbf0da",
-      "native_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "false",
-      "native_address" : "0x109021d36",
-      "native_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "false",
-      "native_address" : "0x108fade18",
-      "native_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "false",
-      "native_address" : "0x1175df51e",
-      "native_offset" : "0x00000"
-   }
-
-  ]
- },
- {
-    "is_managed" : true,
-    "offset_free_hash" : "0x824c6d50c",
-    "offset_rich_hash" : "0x824c6d599",
-    "crashed" : true,
-    "native_thread_id" : "0x700003e72000",
-    "thread_info_addr" : "0x7fd13b030800",
-    "thread_name" : "Finalizer",
-    "ctx" : {
-      "IP" : "0x7ff805c21189",
-      "SP" : "0x700003e71a30",
-      "BP" : "0x700003e71a30"
-  },
-    "managed_frames" : [
-  {
-      "is_managed" : "false",
-      "native_address" : "unregistered"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "81C889A3-FDAF-408A-ACAC-8A870695982B",
-      "token" : "0x00000",
-      "native_offset" : "0x0",
-      "filename" : "System.dll",
-      "sizeofimage" : "0x290000",
-      "timestamp" : "0xff396c70",
-      "il_offset" : "0x0000c"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "81C889A3-FDAF-408A-ACAC-8A870695982B",
-      "token" : "0x600429c",
-      "native_offset" : "0x0",
-      "filename" : "System.dll",
-      "sizeofimage" : "0x290000",
-      "timestamp" : "0xff396c70",
-      "il_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "0E2013AB-6B94-4E00-8349-D8DCD759AB4D",
-      "token" : "0x60040a5",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xf9ace8b0",
-      "il_offset" : "0x00003"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "0E2013AB-6B94-4E00-8349-D8DCD759AB4D",
-      "token" : "0x60040a4",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xf9ace8b0",
-      "il_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "81C889A3-FDAF-408A-ACAC-8A870695982B",
-      "token" : "0x6002f52",
-      "native_offset" : "0x0",
-      "filename" : "System.dll",
-      "sizeofimage" : "0x290000",
-      "timestamp" : "0xff396c70",
-      "il_offset" : "0x00041"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "81C889A3-FDAF-408A-ACAC-8A870695982B",
-      "token" : "0x6002f38",
-      "native_offset" : "0x0",
-      "filename" : "System.dll",
-      "sizeofimage" : "0x290000",
-      "timestamp" : "0xff396c70",
-      "il_offset" : "0x00013"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "81C889A3-FDAF-408A-ACAC-8A870695982B",
-      "token" : "0x6002f37",
-      "native_offset" : "0x0",
-      "filename" : "System.dll",
-      "sizeofimage" : "0x290000",
-      "timestamp" : "0xff396c70",
-      "il_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "0E2013AB-6B94-4E00-8349-D8DCD759AB4D",
-      "token" : "0x00000",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xf9ace8b0",
-      "il_offset" : "0x0002a"
-   }
-
-  ],
-  "unmanaged_frames" : [
- {
-    "is_managed" : "false",
-    "native_address" : "0x10905c776",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x1091f7fe5",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x1091f865a",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x1090c9927",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x10906140e",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x1090c37d6",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x7ff805c21189",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x7ff81090d60b",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x7ff81090be79",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x7ff81090ceb1",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x7ff81090b25c",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x110dbcdad",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "81C889A3-FDAF-408A-ACAC-8A870695982B",
-    "token" : "0x00000",
-    "native_offset" : "0x0",
-    "filename" : "System.dll",
-    "sizeofimage" : "0x290000",
-    "timestamp" : "0xff396c70",
-    "il_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "81C889A3-FDAF-408A-ACAC-8A870695982B",
-    "token" : "0x600429c",
-    "native_offset" : "0x0",
-    "filename" : "System.dll",
-    "sizeofimage" : "0x290000",
-    "timestamp" : "0xff396c70",
-    "il_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "(null)",
-    "token" : "0x00000",
-    "native_offset" : "0x0",
-    "filename" : "(null)",
-    "sizeofimage" : "0x0",
-    "timestamp" : "0x0",
-    "il_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "(null)",
-    "token" : "0x00000",
-    "native_offset" : "0x0",
-    "filename" : "(null)",
-    "sizeofimage" : "0x0",
-    "timestamp" : "0x0",
-    "il_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "81C889A3-FDAF-408A-ACAC-8A870695982B",
-    "token" : "0x6002f38",
-    "native_offset" : "0x0",
-    "filename" : "System.dll",
-    "sizeofimage" : "0x290000",
-    "timestamp" : "0xff396c70",
-    "il_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "81C889A3-FDAF-408A-ACAC-8A870695982B",
-    "token" : "0x6002f37",
-    "native_offset" : "0x0",
-    "filename" : "System.dll",
-    "sizeofimage" : "0x290000",
-    "timestamp" : "0xff396c70",
-    "il_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "0E2013AB-6B94-4E00-8349-D8DCD759AB4D",
-    "token" : "0x00000",
-    "native_offset" : "0x0",
-    "filename" : "mscorlib.dll",
-    "sizeofimage" : "0x472000",
-    "timestamp" : "0xf9ace8b0",
-    "il_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x109238879",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x1092579bc",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x10923a75c",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x1091f8c2d",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x7ff805c0e4e1",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x7ff805c09f6b",
-    "native_offset" : "0x00000"
-  }
-
- ]
-}
-]
-}
\ No newline at end of file
diff --git a/HDL-ON_iOS/mono_crash.824c6d50c.1.json b/HDL-ON_iOS/mono_crash.824c6d50c.1.json
deleted file mode 100644
index 62f39a3..0000000
--- a/HDL-ON_iOS/mono_crash.824c6d50c.1.json
+++ /dev/null
@@ -1,7316 +0,0 @@
-{
-  "protocol_version" : "0.0.6",
-  "configuration" : {
-    "version" : "(6.12.0.182) (2020-02/6051b710727)",
-    "tlc" : "normal",
-    "sigsgev" : "altstack",
-    "notifications" : "kqueue",
-    "architecture" : "amd64",
-    "disabled_features" : "none",
-    "smallconfig" : "disabled",
-    "bigarrays" : "disabled",
-    "softdebug" : "enabled",
-    "interpreter" : "enabled",
-    "llvm_support" : "0",
-    "suspend" : "hybrid"
-  },
-  "memory" : {
-    "Resident Size" : "232706048",
-    "Virtual Size" : "35346583552",
-    "minor_gc_time" : "3361436",
-    "major_gc_time" : "185925684",
-    "minor_gc_count" : "7",
-    "major_gc_count" : "1001",
-    "major_gc_time_concurrent" : "0"
- },
-  "threads" : [
- {
-    "is_managed" : false,
-    "offset_free_hash" : "0x0",
-    "offset_rich_hash" : "0x0",
-    "crashed" : false,
-    "native_thread_id" : "0x700013a73000",
-    "thread_info_addr" : "0x7fcf7a042600",
-    "thread_name" : "Thread Pool Worker",
-    "ctx" : {
-      "IP" : "0x7ff80cad79be",
-      "SP" : "0x700013a72e98",
-      "BP" : "0x700013a72f00"
-  },
-    "unmanaged_frames" : [
-  {
-      "is_managed" : "false",
-      "native_address" : "0x10a797756",
-      "native_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "false",
-      "native_address" : "0x10a932fd5",
-      "native_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "false",
-      "native_address" : "0x10a932d07",
-      "native_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "false",
-      "native_address" : "0x10a803840",
-      "native_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "false",
-      "native_address" : "0x7ff80cb29dfd",
-      "native_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "false",
-      "native_address" : "unregistered"
-   }
-,
-  {
-      "is_managed" : "false",
-      "native_address" : "0x10a933c1d",
-      "native_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "false",
-      "native_address" : "0x7ff80cb144e1",
-      "native_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "false",
-      "native_address" : "0x7ff80cb0ff6b",
-      "native_offset" : "0x00000"
-   }
-
-  ]
- },
- {
-    "is_managed" : true,
-    "offset_free_hash" : "0x25ffcc250b",
-    "offset_rich_hash" : "0x25ffcc473d",
-    "crashed" : false,
-    "native_thread_id" : "0x700014685000",
-    "thread_info_addr" : "0x7fcf78a5ba00",
-    "thread_name" : "RequestBuilder thread",
-    "ctx" : {
-      "IP" : "0x7ff80cada3da",
-      "SP" : "0x700014680f08",
-      "BP" : "0x700014680fb0"
-  },
-    "managed_frames" : [
-  {
-      "is_managed" : "false",
-      "native_address" : "unregistered"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x00000",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x6002056",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "872A4CB0-CFBD-47A3-BBBB-B3D0FE90A124",
-      "token" : "0x60004cc",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.Utilities.Core.dll",
-      "sizeofimage" : "0x5e000",
-      "timestamp" : "0xbd574b79",
-      "il_offset" : "0x0004c"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "872A4CB0-CFBD-47A3-BBBB-B3D0FE90A124",
-      "token" : "0x60004c9",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.Utilities.Core.dll",
-      "sizeofimage" : "0x5e000",
-      "timestamp" : "0xbd574b79",
-      "il_offset" : "0x00113"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "872A4CB0-CFBD-47A3-BBBB-B3D0FE90A124",
-      "token" : "0x60004db",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.Utilities.Core.dll",
-      "sizeofimage" : "0x5e000",
-      "timestamp" : "0xbd574b79",
-      "il_offset" : "0x00433"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "FB629B42-7B89-4D43-BCFA-6967E29E8F66",
-      "token" : "0x6000918",
-      "native_offset" : "0x0",
-      "filename" : "Xamarin.iOS.Tasks",
-      "sizeofimage" : "0x6a8000",
-      "timestamp" : "0x6284d586",
-      "il_offset" : "0x0003d"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "FB629B42-7B89-4D43-BCFA-6967E29E8F66",
-      "token" : "0x6000c16",
-      "native_offset" : "0x0",
-      "filename" : "Xamarin.iOS.Tasks",
-      "sizeofimage" : "0x6a8000",
-      "timestamp" : "0x6284d586",
-      "il_offset" : "0x0002a"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x6001619",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x00029"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x60024bd",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x002b9"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x6004627",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x0002c"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x6001495",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x00046"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x60024b8",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x00065"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x6004627",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x0002c"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x6001493",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x00046"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x60024b4",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x001f9"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x6004627",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x0002c"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x600148e",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x0003d"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x60024b2",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x0015c"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x6004627",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x0002c"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x600148d",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x0002c"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x60024b0",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x0018b"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x6004627",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x0002c"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x6001488",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x00061"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x60024ae",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x0005f"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x6004627",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x0002c"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x6001463",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x00046"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x60024ac",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x002b6"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x600461c",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x0002c"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x600145c",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x0003d"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x60024a6",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x00429"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x600461c",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x0002c"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x6001444",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x00024"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x60024a0",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x002bb"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x6004627",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x0002c"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x6001437",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x0004f"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x600249e",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x0031a"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x6004627",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x0002c"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x6001428",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x0001c"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x600249a",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x00029"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x600461c",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x0002c"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x600141f",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x0001c"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x6002498",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x0002c"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x600461c",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x0002c"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x600141e",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x00024"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x6001435",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x60022aa",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x0000f"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x60023a4",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x60023a7",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x6001ed3",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x00071"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x6001ed1",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x6002410",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x00034"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x60023a6",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x0004a"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x60024f1",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x00014"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-      "token" : "0x600248c",
-      "native_offset" : "0x0",
-      "filename" : "Microsoft.Build.dll",
-      "sizeofimage" : "0x202000",
-      "timestamp" : "0xac7b724b",
-      "il_offset" : "0x0001a"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x6001ed3",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x00071"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x6001ed1",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x00000"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x6001ed0",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x0002b"
-   }
-,
-  {
-      "is_managed" : "true",
-      "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-      "token" : "0x00000",
-      "native_offset" : "0x0",
-      "filename" : "mscorlib.dll",
-      "sizeofimage" : "0x472000",
-      "timestamp" : "0xe057582a",
-      "il_offset" : "0x0002a"
-   }
-
-  ],
-  "unmanaged_frames" : [
- {
-    "is_managed" : "false",
-    "native_address" : "0x10a797756",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x10a932fd5",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x10a932d07",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x10a803840",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x7ff80cb29dfd",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x7365442f65646561",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x10a9d9e20",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x10a941138",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x10a940cf2",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x10a92d20d",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "false",
-    "native_address" : "0x10a8c62d8",
-    "native_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-    "token" : "0x00000",
-    "native_offset" : "0x0",
-    "filename" : "mscorlib.dll",
-    "sizeofimage" : "0x472000",
-    "timestamp" : "0xe057582a",
-    "il_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "(null)",
-    "token" : "0x00000",
-    "native_offset" : "0x0",
-    "filename" : "(null)",
-    "sizeofimage" : "0x0",
-    "timestamp" : "0x0",
-    "il_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "(null)",
-    "token" : "0x00000",
-    "native_offset" : "0x0",
-    "filename" : "(null)",
-    "sizeofimage" : "0x0",
-    "timestamp" : "0x0",
-    "il_offset" : "0x00000"
-  }
-
- ]
-},
-{
-  "is_managed" : true,
-  "offset_free_hash" : "0x90c392be8",
-  "offset_rich_hash" : "0x90c392da0",
-  "crashed" : false,
-  "native_thread_id" : "0x700010965000",
-  "thread_info_addr" : "0x7fcf77b10a00",
-  "thread_name" : "Thread Pool Worker",
-  "ctx" : {
-    "IP" : "0x7ff80cad83aa",
-    "SP" : "0x700010964598",
-    "BP" : "0x7000109645f0"
- },
-  "managed_frames" : [
- {
-    "is_managed" : "false",
-    "native_address" : "unregistered"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-    "token" : "0x00000",
-    "native_offset" : "0x0",
-    "filename" : "mscorlib.dll",
-    "sizeofimage" : "0x472000",
-    "timestamp" : "0xe057582a",
-    "il_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-    "token" : "0x60022aa",
-    "native_offset" : "0x0",
-    "filename" : "mscorlib.dll",
-    "sizeofimage" : "0x472000",
-    "timestamp" : "0xe057582a",
-    "il_offset" : "0x0002b"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-    "token" : "0x60023a4",
-    "native_offset" : "0x0",
-    "filename" : "mscorlib.dll",
-    "sizeofimage" : "0x472000",
-    "timestamp" : "0xe057582a",
-    "il_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-    "token" : "0x60023a7",
-    "native_offset" : "0x0",
-    "filename" : "mscorlib.dll",
-    "sizeofimage" : "0x472000",
-    "timestamp" : "0xe057582a",
-    "il_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-    "token" : "0x6001ed3",
-    "native_offset" : "0x0",
-    "filename" : "mscorlib.dll",
-    "sizeofimage" : "0x472000",
-    "timestamp" : "0xe057582a",
-    "il_offset" : "0x00071"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-    "token" : "0x6001ed1",
-    "native_offset" : "0x0",
-    "filename" : "mscorlib.dll",
-    "sizeofimage" : "0x472000",
-    "timestamp" : "0xe057582a",
-    "il_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-    "token" : "0x6002410",
-    "native_offset" : "0x0",
-    "filename" : "mscorlib.dll",
-    "sizeofimage" : "0x472000",
-    "timestamp" : "0xe057582a",
-    "il_offset" : "0x00034"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-    "token" : "0x60023a6",
-    "native_offset" : "0x0",
-    "filename" : "mscorlib.dll",
-    "sizeofimage" : "0x472000",
-    "timestamp" : "0xe057582a",
-    "il_offset" : "0x0004a"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-    "token" : "0x60023a5",
-    "native_offset" : "0x0",
-    "filename" : "mscorlib.dll",
-    "sizeofimage" : "0x472000",
-    "timestamp" : "0xe057582a",
-    "il_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-    "token" : "0x6001fdf",
-    "native_offset" : "0x0",
-    "filename" : "mscorlib.dll",
-    "sizeofimage" : "0x472000",
-    "timestamp" : "0xe057582a",
-    "il_offset" : "0x00074"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-    "token" : "0x6001ff4",
-    "native_offset" : "0x0",
-    "filename" : "mscorlib.dll",
-    "sizeofimage" : "0x472000",
-    "timestamp" : "0xe057582a",
-    "il_offset" : "0x00000"
-  }
-,
- {
-    "is_managed" : "true",
-    "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-    "token" : "0x00000",
-    "native_offset" : "0x0",
-    "filename" : "mscorlib.dll",
-    "sizeofimage" : "0x472000",
-    "timestamp" : "0xe057582a",
-    "il_offset" : "0x0002a"
-  }
-
- ],
-"unmanaged_frames" : [
-{
-  "is_managed" : "false",
-  "native_address" : "0x10a797756",
-  "native_offset" : "0x00000"
- }
-,
-{
-  "is_managed" : "false",
-  "native_address" : "0x10a932fd5",
-  "native_offset" : "0x00000"
- }
-,
-{
-  "is_managed" : "false",
-  "native_address" : "0x10a932d07",
-  "native_offset" : "0x00000"
- }
-,
-{
-  "is_managed" : "false",
-  "native_address" : "0x10a803840",
-  "native_offset" : "0x00000"
- }
-,
-{
-  "is_managed" : "false",
-  "native_address" : "0x7ff80cb29dfd",
-  "native_offset" : "0x00000"
- }
-,
-{
-  "is_managed" : "false",
-  "native_address" : "0x10f4aa760",
-  "native_offset" : "0x00000"
- }
-,
-{
-  "is_managed" : "false",
-  "native_address" : "0x10a862702",
-  "native_offset" : "0x00000"
- }
-,
-{
-  "is_managed" : "false",
-  "native_address" : "0x10a8a3f6e",
-  "native_offset" : "0x00000"
- }
-,
-{
-  "is_managed" : "false",
-  "native_address" : "0x10a8b9e3f",
-  "native_offset" : "0x00000"
- }
-,
-{
-  "is_managed" : "true",
-  "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-  "token" : "0x00000",
-  "native_offset" : "0x0",
-  "filename" : "mscorlib.dll",
-  "sizeofimage" : "0x472000",
-  "timestamp" : "0xe057582a",
-  "il_offset" : "0x00000"
- }
-,
-{
-  "is_managed" : "true",
-  "guid" : "(null)",
-  "token" : "0x00000",
-  "native_offset" : "0x0",
-  "filename" : "(null)",
-  "sizeofimage" : "0x0",
-  "timestamp" : "0x0",
-  "il_offset" : "0x00000"
- }
-,
-{
-  "is_managed" : "true",
-  "guid" : "(null)",
-  "token" : "0x00000",
-  "native_offset" : "0x0",
-  "filename" : "(null)",
-  "sizeofimage" : "0x0",
-  "timestamp" : "0x0",
-  "il_offset" : "0x00000"
- }
-
-]
-},
-{
-"is_managed" : false,
-"offset_free_hash" : "0x0",
-"offset_rich_hash" : "0x0",
-"crashed" : false,
-"native_thread_id" : "0x700010f6e000",
-"thread_info_addr" : "0x7fcf77f26800",
-"thread_name" : "Thread Pool Worker",
-"ctx" : {
-  "IP" : "0x7ff80cad79be",
-  "SP" : "0x700010f6de98",
-  "BP" : "0x700010f6df00"
-},
-"unmanaged_frames" : [
-{
-  "is_managed" : "false",
-  "native_address" : "0x10a797756",
-  "native_offset" : "0x00000"
- }
-,
-{
-  "is_managed" : "false",
-  "native_address" : "0x10a932fd5",
-  "native_offset" : "0x00000"
- }
-,
-{
-  "is_managed" : "false",
-  "native_address" : "0x10a932d07",
-  "native_offset" : "0x00000"
- }
-,
-{
-  "is_managed" : "false",
-  "native_address" : "0x10a803840",
-  "native_offset" : "0x00000"
- }
-,
-{
-  "is_managed" : "false",
-  "native_address" : "0x7ff80cb29dfd",
-  "native_offset" : "0x00000"
- }
-,
-{
-  "is_managed" : "false",
-  "native_address" : "unregistered"
- }
-,
-{
-  "is_managed" : "false",
-  "native_address" : "0x10a933c1d",
-  "native_offset" : "0x00000"
- }
-,
-{
-  "is_managed" : "false",
-  "native_address" : "0x7ff80cb144e1",
-  "native_offset" : "0x00000"
- }
-,
-{
-  "is_managed" : "false",
-  "native_address" : "0x7ff80cb0ff6b",
-  "native_offset" : "0x00000"
- }
-
-]
-},
-{
-"is_managed" : true,
-"offset_free_hash" : "0x9e5ee43e7",
-"offset_rich_hash" : "0x9e5ee4668",
-"crashed" : false,
-"native_thread_id" : "0x700012452000",
-"thread_info_addr" : "0x7fcf78c02e00",
-"thread_name" : "RequestBuilder thread",
-"ctx" : {
-  "IP" : "0x7ff80cada3da",
-  "SP" : "0x700012451408",
-  "BP" : "0x7000124514b0"
-},
-"managed_frames" : [
-{
-  "is_managed" : "false",
-  "native_address" : "unregistered"
- }
-,
-{
-  "is_managed" : "true",
-  "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-  "token" : "0x00000",
-  "native_offset" : "0x0",
-  "filename" : "mscorlib.dll",
-  "sizeofimage" : "0x472000",
-  "timestamp" : "0xe057582a",
-  "il_offset" : "0x00000"
- }
-,
-{
-  "is_managed" : "true",
-  "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-  "token" : "0x6001f00",
-  "native_offset" : "0x0",
-  "filename" : "mscorlib.dll",
-  "sizeofimage" : "0x472000",
-  "timestamp" : "0xe057582a",
-  "il_offset" : "0x00000"
- }
-,
-{
-  "is_managed" : "true",
-  "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-  "token" : "0x6001e4f",
-  "native_offset" : "0x0",
-  "filename" : "mscorlib.dll",
-  "sizeofimage" : "0x472000",
-  "timestamp" : "0xe057582a",
-  "il_offset" : "0x000d9"
- }
-,
-{
-  "is_managed" : "true",
-  "guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-  "token" : "0x6003c49",
-  "native_offset" : "0x0",
-  "filename" : "System.dll",
-  "sizeofimage" : "0x290000",
-  "timestamp" : "0x85731fb9",
-  "il_offset" : "0x00067"
- }
-,
-{
-  "is_managed" : "true",
-  "guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-  "token" : "0x6004342",
-  "native_offset" : "0x0",
-  "filename" : "System.dll",
-  "sizeofimage" : "0x290000",
-  "timestamp" : "0x85731fb9",
-  "il_offset" : "0x0004d"
- }
-,
-{
-  "is_managed" : "true",
-  "guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-  "token" : "0x600248c",
-  "native_offset" : "0x0",
-  "filename" : "Microsoft.Build.dll",
-  "sizeofimage" : "0x202000",
-  "timestamp" : "0xac7b724b",
-  "il_offset" : "0x0002e"
- }
-,
-{
-  "is_managed" : "true",
-  "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-  "token" : "0x6001ed3",
-  "native_offset" : "0x0",
-  "filename" : "mscorlib.dll",
-  "sizeofimage" : "0x472000",
-  "timestamp" : "0xe057582a",
-  "il_offset" : "0x00071"
- }
-,
-{
-  "is_managed" : "true",
-  "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-  "token" : "0x6001ed1",
-  "native_offset" : "0x0",
-  "filename" : "mscorlib.dll",
-  "sizeofimage" : "0x472000",
-  "timestamp" : "0xe057582a",
-  "il_offset" : "0x00000"
- }
-,
-{
-  "is_managed" : "true",
-  "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-  "token" : "0x6001ed0",
-  "native_offset" : "0x0",
-  "filename" : "mscorlib.dll",
-  "sizeofimage" : "0x472000",
-  "timestamp" : "0xe057582a",
-  "il_offset" : "0x0002b"
- }
-,
-{
-  "is_managed" : "true",
-  "guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-  "token" : "0x00000",
-  "native_offset" : "0x0",
-  "filename" : "mscorlib.dll",
-  "sizeofimage" : "0x472000",
-  "timestamp" : "0xe057582a",
-  "il_offset" : "0x0002a"
- }
-
-],
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a8c5f34",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9d9e20",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9404d9",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9403a1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a976b2c",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a8c49c1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x6003c49",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x6004342",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-"token" : "0x600248c",
-"native_offset" : "0x0",
-"filename" : "Microsoft.Build.dll",
-"sizeofimage" : "0x202000",
-"timestamp" : "0xac7b724b",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a6f9332",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a908dd7",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a90f6d0",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c5d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : true,
-"offset_free_hash" : "0x701103c23",
-"offset_rich_hash" : "0x701103d02",
-"crashed" : false,
-"native_thread_id" : "0x700011577000",
-"thread_info_addr" : "0x7fcf77a0be00",
-"thread_name" : "tid_3b03",
-"ctx" : {
-"IP" : "0x7ff80cada3da",
-"SP" : "0x700011576818",
-"BP" : "0x7000115768c0"
-},
-"managed_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001f52",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00019"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "AB36E2E4-2911-4BA7-BB91-A983AA89906A",
-"token" : "0x6000206",
-"native_offset" : "0x0",
-"filename" : "MonoDevelop.MSBuildBuilder.exe",
-"sizeofimage" : "0x1c000",
-"timestamp" : "0xce37ae1a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed3",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00071"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed0",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002b"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002a"
-}
-
-],
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9d9e04",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9e53dd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a92bccd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a8c5939",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001f52",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a6f9332",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a908dd7",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a90f6d0",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c5d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : true,
-"offset_free_hash" : "0x1229ad157f",
-"offset_rich_hash" : "0x1229ad17e5",
-"crashed" : false,
-"native_thread_id" : "0x700012a5b000",
-"thread_info_addr" : "0x7fcf772e8600",
-"thread_name" : "tid_6007",
-"ctx" : {
-"IP" : "0x7ff80cada3da",
-"SP" : "0x700012a59d88",
-"BP" : "0x700012a59e30"
-},
-"managed_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "FE07070D-575E-40FD-9EF6-807FA5848A8E",
-"token" : "0x6000f7a",
-"native_offset" : "0x0",
-"filename" : "Microsoft.VisualStudio.Telemetry.dll",
-"sizeofimage" : "0xde000",
-"timestamp" : "0xfe3b09c5",
-"il_offset" : "0x0006e"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "FE07070D-575E-40FD-9EF6-807FA5848A8E",
-"token" : "0x6000f98",
-"native_offset" : "0x0",
-"filename" : "Microsoft.VisualStudio.Telemetry.dll",
-"sizeofimage" : "0xde000",
-"timestamp" : "0xfe3b09c5",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "FE07070D-575E-40FD-9EF6-807FA5848A8E",
-"token" : "0x6000fc1",
-"native_offset" : "0x0",
-"filename" : "Microsoft.VisualStudio.Telemetry.dll",
-"sizeofimage" : "0xde000",
-"timestamp" : "0xfe3b09c5",
-"il_offset" : "0x00034"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "FE07070D-575E-40FD-9EF6-807FA5848A8E",
-"token" : "0x60013fd",
-"native_offset" : "0x0",
-"filename" : "Microsoft.VisualStudio.Telemetry.dll",
-"sizeofimage" : "0xde000",
-"timestamp" : "0xfe3b09c5",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a8",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0000f"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a4",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a7",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed3",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00071"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6002410",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00034"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a6",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0004a"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed3",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00071"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed0",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002b"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002a"
-}
-
-],
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9d9e20",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9404d9",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9403a1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a940619",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a92d20d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a8c62d8",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "FE07070D-575E-40FD-9EF6-807FA5848A8E",
-"token" : "0x6000f98",
-"native_offset" : "0x0",
-"filename" : "Microsoft.VisualStudio.Telemetry.dll",
-"sizeofimage" : "0xde000",
-"timestamp" : "0xfe3b09c5",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "FE07070D-575E-40FD-9EF6-807FA5848A8E",
-"token" : "0x6000fc1",
-"native_offset" : "0x0",
-"filename" : "Microsoft.VisualStudio.Telemetry.dll",
-"sizeofimage" : "0xde000",
-"timestamp" : "0xfe3b09c5",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "FE07070D-575E-40FD-9EF6-807FA5848A8E",
-"token" : "0x60013fd",
-"native_offset" : "0x0",
-"filename" : "Microsoft.VisualStudio.Telemetry.dll",
-"sizeofimage" : "0xde000",
-"timestamp" : "0xfe3b09c5",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a8",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a7",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a6",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a6f9332",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a908dd7",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a90f6d0",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c5d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : false,
-"offset_free_hash" : "0x0",
-"offset_rich_hash" : "0x0",
-"crashed" : false,
-"native_thread_id" : "0x700011b80000",
-"thread_info_addr" : "0x7fcf771d2e00",
-"thread_name" : "Thread Pool Worker",
-"ctx" : {
-"IP" : "0x7ff80cad79be",
-"SP" : "0x700011b7fe98",
-"BP" : "0x700011b7ff00"
-},
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c1d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : true,
-"offset_free_hash" : "0x14f7e620f8",
-"offset_rich_hash" : "0x14f7e623f3",
-"crashed" : false,
-"native_thread_id" : "0x700013064000",
-"thread_info_addr" : "0x7fcf77653200",
-"thread_name" : "tid_8503",
-"ctx" : {
-"IP" : "0x7ff80cada3da",
-"SP" : "0x7000130631f8",
-"BP" : "0x7000130632a0"
-},
-"managed_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001f00",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001e4f",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x000d9"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001e4b",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "FE07070D-575E-40FD-9EF6-807FA5848A8E",
-"token" : "0x6000f7a",
-"native_offset" : "0x0",
-"filename" : "Microsoft.VisualStudio.Telemetry.dll",
-"sizeofimage" : "0xde000",
-"timestamp" : "0xfe3b09c5",
-"il_offset" : "0x0002a"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "FE07070D-575E-40FD-9EF6-807FA5848A8E",
-"token" : "0x6000f98",
-"native_offset" : "0x0",
-"filename" : "Microsoft.VisualStudio.Telemetry.dll",
-"sizeofimage" : "0xde000",
-"timestamp" : "0xfe3b09c5",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "FE07070D-575E-40FD-9EF6-807FA5848A8E",
-"token" : "0x6000fc1",
-"native_offset" : "0x0",
-"filename" : "Microsoft.VisualStudio.Telemetry.dll",
-"sizeofimage" : "0xde000",
-"timestamp" : "0xfe3b09c5",
-"il_offset" : "0x00034"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "FE07070D-575E-40FD-9EF6-807FA5848A8E",
-"token" : "0x60013fd",
-"native_offset" : "0x0",
-"filename" : "Microsoft.VisualStudio.Telemetry.dll",
-"sizeofimage" : "0xde000",
-"timestamp" : "0xfe3b09c5",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a8",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0000f"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a4",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a7",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed3",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00071"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6002410",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00034"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a6",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0004a"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed3",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00071"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed0",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002b"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002a"
-}
-
-],
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9d9e20",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9404d9",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9403a1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a976b2c",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a8c49c1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001e4b",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "FE07070D-575E-40FD-9EF6-807FA5848A8E",
-"token" : "0x6000f98",
-"native_offset" : "0x0",
-"filename" : "Microsoft.VisualStudio.Telemetry.dll",
-"sizeofimage" : "0xde000",
-"timestamp" : "0xfe3b09c5",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "FE07070D-575E-40FD-9EF6-807FA5848A8E",
-"token" : "0x6000fc1",
-"native_offset" : "0x0",
-"filename" : "Microsoft.VisualStudio.Telemetry.dll",
-"sizeofimage" : "0xde000",
-"timestamp" : "0xfe3b09c5",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "FE07070D-575E-40FD-9EF6-807FA5848A8E",
-"token" : "0x60013fd",
-"native_offset" : "0x0",
-"filename" : "Microsoft.VisualStudio.Telemetry.dll",
-"sizeofimage" : "0xde000",
-"timestamp" : "0xfe3b09c5",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a8",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a7",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a6",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a6f9332",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a908dd7",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a90f6d0",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c5d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : true,
-"offset_free_hash" : "0x824c6d50c",
-"offset_rich_hash" : "0x824c6d599",
-"crashed" : true,
-"native_thread_id" : "0x700010256000",
-"thread_info_addr" : "0x7fcf7700c800",
-"thread_name" : "Finalizer",
-"ctx" : {
-"IP" : "0x7ff80cb27189",
-"SP" : "0x700010255a30",
-"BP" : "0x700010255a30"
-},
-"managed_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x0000c"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x600429c",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60040a5",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00003"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60040a4",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x6002f52",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00041"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x6002f38",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00013"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x6002f37",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002a"
-}
-
-],
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a93364a",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a804907",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a79c3ee",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a7fe7b6",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb27189",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff81783460f",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff817832dcf",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff817833e3c",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff817832189",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x113d2adad",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x600429c",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x6002f38",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x6002f37",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a973869",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9929ac",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a975573",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c1d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : false,
-"offset_free_hash" : "0x0",
-"offset_rich_hash" : "0x0",
-"crashed" : false,
-"native_thread_id" : "0x700012189000",
-"thread_info_addr" : "0x7fcf7a050a00",
-"thread_name" : "Thread Pool Worker",
-"ctx" : {
-"IP" : "0x7ff80cad79be",
-"SP" : "0x700012188e98",
-"BP" : "0x700012188f00"
-},
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c1d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : false,
-"offset_free_hash" : "0x0",
-"offset_rich_hash" : "0x0",
-"crashed" : false,
-"native_thread_id" : "0x70001366d000",
-"thread_info_addr" : "0x7fcf796b4e00",
-"thread_name" : "Thread Pool Worker",
-"ctx" : {
-"IP" : "0x7ff80cad79be",
-"SP" : "0x70001366ce98",
-"BP" : "0x70001366cf00"
-},
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c1d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : false,
-"offset_free_hash" : "0x0",
-"offset_rich_hash" : "0x0",
-"crashed" : false,
-"native_thread_id" : "0x700013c76000",
-"thread_info_addr" : "0x7fcf78d10600",
-"thread_name" : "Thread Pool Worker",
-"ctx" : {
-"IP" : "0x7ff80cad79be",
-"SP" : "0x700013c75e98",
-"BP" : "0x700013c75f00"
-},
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c1d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : true,
-"offset_free_hash" : "0x4d6e37a08",
-"offset_rich_hash" : "0x4d6e37ace",
-"crashed" : false,
-"native_thread_id" : "0x70001055f000",
-"thread_info_addr" : "0x7fcf7711e200",
-"thread_name" : "Timer-Scheduler",
-"ctx" : {
-"IP" : "0x7ff80cada3da",
-"SP" : "0x70001055e0f8",
-"BP" : "0x70001055e1a0"
-},
-"managed_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed3",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00071"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed0",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002b"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002a"
-}
-
-],
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff84e27f000",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9d9e04",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9404d9",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9403a1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a940619",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a92d20d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a8c62d8",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a6f9332",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a908dd7",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a90f6d0",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c5d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : false,
-"offset_free_hash" : "0x0",
-"offset_rich_hash" : "0x0",
-"crashed" : false,
-"native_thread_id" : "0x70001427f000",
-"thread_info_addr" : "0x7fcf771ce600",
-"thread_name" : "Thread Pool Worker",
-"ctx" : {
-"IP" : "0x7ff80cad79be",
-"SP" : "0x70001427ee98",
-"BP" : "0x70001427ef00"
-},
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c1d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : true,
-"offset_free_hash" : "0xb46204056",
-"offset_rich_hash" : "0xb46204323",
-"crashed" : false,
-"native_thread_id" : "0x700010b68000",
-"thread_info_addr" : "0x7fcf78acf200",
-"thread_name" : "tid_6b47",
-"ctx" : {
-"IP" : "0x7ff80cada3da",
-"SP" : "0x700010b66b68",
-"BP" : "0x700010b66c10"
-},
-"managed_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-"token" : "0x6000d8e",
-"native_offset" : "0x0",
-"filename" : "Microsoft.Build.dll",
-"sizeofimage" : "0x202000",
-"timestamp" : "0xac7b724b",
-"il_offset" : "0x00053"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-"token" : "0x6000c96",
-"native_offset" : "0x0",
-"filename" : "Microsoft.Build.dll",
-"sizeofimage" : "0x202000",
-"timestamp" : "0xac7b724b",
-"il_offset" : "0x00008"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "AB36E2E4-2911-4BA7-BB91-A983AA89906A",
-"token" : "0x6000138",
-"native_offset" : "0x0",
-"filename" : "MonoDevelop.MSBuildBuilder.exe",
-"sizeofimage" : "0x1c000",
-"timestamp" : "0xce37ae1a",
-"il_offset" : "0x00057"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "AB36E2E4-2911-4BA7-BB91-A983AA89906A",
-"token" : "0x6000215",
-"native_offset" : "0x0",
-"filename" : "MonoDevelop.MSBuildBuilder.exe",
-"sizeofimage" : "0x1c000",
-"timestamp" : "0xce37ae1a",
-"il_offset" : "0x0013f"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "AB36E2E4-2911-4BA7-BB91-A983AA89906A",
-"token" : "0x60000c3",
-"native_offset" : "0x0",
-"filename" : "MonoDevelop.MSBuildBuilder.exe",
-"sizeofimage" : "0x1c000",
-"timestamp" : "0xce37ae1a",
-"il_offset" : "0x00016"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed3",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00071"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed0",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002b"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002a"
-}
-
-],
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x1149dc9c8",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9d9e20",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9404d9",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9403a1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a940619",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a92d20d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a8c62d8",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-"token" : "0x6000c96",
-"native_offset" : "0x0",
-"filename" : "Microsoft.Build.dll",
-"sizeofimage" : "0x202000",
-"timestamp" : "0xac7b724b",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "AB36E2E4-2911-4BA7-BB91-A983AA89906A",
-"token" : "0x6000138",
-"native_offset" : "0x0",
-"filename" : "MonoDevelop.MSBuildBuilder.exe",
-"sizeofimage" : "0x1c000",
-"timestamp" : "0xce37ae1a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "AB36E2E4-2911-4BA7-BB91-A983AA89906A",
-"token" : "0x6000215",
-"native_offset" : "0x0",
-"filename" : "MonoDevelop.MSBuildBuilder.exe",
-"sizeofimage" : "0x1c000",
-"timestamp" : "0xce37ae1a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "AB36E2E4-2911-4BA7-BB91-A983AA89906A",
-"token" : "0x60000c3",
-"native_offset" : "0x0",
-"filename" : "MonoDevelop.MSBuildBuilder.exe",
-"sizeofimage" : "0x1c000",
-"timestamp" : "0xce37ae1a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a6f9332",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a908dd7",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a90f6d0",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c5d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : true,
-"offset_free_hash" : "0xc33f99506",
-"offset_rich_hash" : "0xc33f99676",
-"crashed" : false,
-"native_thread_id" : "0x700011171000",
-"thread_info_addr" : "0x7fcf789f6200",
-"thread_name" : "tid_350f",
-"ctx" : {
-"IP" : "0x7ff80cadaefe",
-"SP" : "0x700011170688",
-"BP" : "0x7000111706f0"
-},
-"managed_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x6002752",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x0000c"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x6002745",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x0002e"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x6002748",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x0000d"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x600267d",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x0004d"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x600267e",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x0000a"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "AB36E2E4-2911-4BA7-BB91-A983AA89906A",
-"token" : "0x6000089",
-"native_offset" : "0x0",
-"filename" : "MonoDevelop.MSBuildBuilder.exe",
-"sizeofimage" : "0x1c000",
-"timestamp" : "0xce37ae1a",
-"il_offset" : "0x0000c"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed3",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00071"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed0",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002b"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002a"
-}
-
-],
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a85fa33",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a919235",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x6002752",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x6002745",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x6002748",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x600267d",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x600267e",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "AB36E2E4-2911-4BA7-BB91-A983AA89906A",
-"token" : "0x6000089",
-"native_offset" : "0x0",
-"filename" : "MonoDevelop.MSBuildBuilder.exe",
-"sizeofimage" : "0x1c000",
-"timestamp" : "0xce37ae1a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a6f9332",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a908dd7",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a90f6d0",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c5d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : true,
-"offset_free_hash" : "0x63e0004f4",
-"offset_rich_hash" : "0x63e00062b",
-"crashed" : false,
-"native_thread_id" : "0x700012655000",
-"thread_info_addr" : "0x7fcf77174c00",
-"thread_name" : "Thread Pool Worker",
-"ctx" : {
-"IP" : "0x7ff80cada3da",
-"SP" : "0x700012653f38",
-"BP" : "0x700012653fe0"
-},
-"managed_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ff9",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00007"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed3",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00071"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ff7",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00021"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001fdf",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00074"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ff4",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002a"
-}
-
-],
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x1144e3010",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9d9e04",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a941199",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a940cf2",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a92d20d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a8c62d8",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : false,
-"offset_free_hash" : "0x0",
-"offset_rich_hash" : "0x0",
-"crashed" : false,
-"native_thread_id" : "0x115c4a600",
-"thread_info_addr" : "0x7fcf78808200",
-"thread_name" : "tid_103",
-"ctx" : {
-"IP" : "0x7ff80cada3da",
-"SP" : "0x7ff7b5819a58",
-"BP" : "0x7ff7b5819b00"
-},
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7fcf779a4dd8",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9cddc0",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9e5ef1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a92fef4",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a92fc49",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a75cd0a",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a6e8b58",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x115bcf52e",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : true,
-"offset_free_hash" : "0x159ac38bd1",
-"offset_rich_hash" : "0x159ac38f7d",
-"crashed" : false,
-"native_thread_id" : "0x70001177a000",
-"thread_info_addr" : "0x7fcf78981e00",
-"thread_name" : "Thread Pool Worker",
-"ctx" : {
-"IP" : "0x7ff80cada3da",
-"SP" : "0x700011778708",
-"BP" : "0x7000117787b0"
-},
-"managed_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "AB36E2E4-2911-4BA7-BB91-A983AA89906A",
-"token" : "0x60000c2",
-"native_offset" : "0x0",
-"filename" : "MonoDevelop.MSBuildBuilder.exe",
-"sizeofimage" : "0x1c000",
-"timestamp" : "0xce37ae1a",
-"il_offset" : "0x000c8"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "AB36E2E4-2911-4BA7-BB91-A983AA89906A",
-"token" : "0x6000135",
-"native_offset" : "0x0",
-"filename" : "MonoDevelop.MSBuildBuilder.exe",
-"sizeofimage" : "0x1c000",
-"timestamp" : "0xce37ae1a",
-"il_offset" : "0x0006d"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "AB36E2E4-2911-4BA7-BB91-A983AA89906A",
-"token" : "0x60000b9",
-"native_offset" : "0x0",
-"filename" : "MonoDevelop.MSBuildBuilder.exe",
-"sizeofimage" : "0x1c000",
-"timestamp" : "0xce37ae1a",
-"il_offset" : "0x00068"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "AB36E2E4-2911-4BA7-BB91-A983AA89906A",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "MonoDevelop.MSBuildBuilder.exe",
-"sizeofimage" : "0x1c000",
-"timestamp" : "0xce37ae1a",
-"il_offset" : "0x0002a"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0000c"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6004cf3",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0006a"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60048d7",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "AB36E2E4-2911-4BA7-BB91-A983AA89906A",
-"token" : "0x6000060",
-"native_offset" : "0x0",
-"filename" : "MonoDevelop.MSBuildBuilder.exe",
-"sizeofimage" : "0x1c000",
-"timestamp" : "0xce37ae1a",
-"il_offset" : "0x00015"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "AB36E2E4-2911-4BA7-BB91-A983AA89906A",
-"token" : "0x60001f6",
-"native_offset" : "0x0",
-"filename" : "MonoDevelop.MSBuildBuilder.exe",
-"sizeofimage" : "0x1c000",
-"timestamp" : "0xce37ae1a",
-"il_offset" : "0x00023"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "AB36E2E4-2911-4BA7-BB91-A983AA89906A",
-"token" : "0x6000220",
-"native_offset" : "0x0",
-"filename" : "MonoDevelop.MSBuildBuilder.exe",
-"sizeofimage" : "0x1c000",
-"timestamp" : "0xce37ae1a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ff9",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00007"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed3",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00071"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ff7",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00021"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001fdf",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00074"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ff4",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002a"
-}
-
-],
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9d9e20",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9404d9",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9403a1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a940619",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a92d20d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a8c62d8",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "AB36E2E4-2911-4BA7-BB91-A983AA89906A",
-"token" : "0x6000135",
-"native_offset" : "0x0",
-"filename" : "MonoDevelop.MSBuildBuilder.exe",
-"sizeofimage" : "0x1c000",
-"timestamp" : "0xce37ae1a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "AB36E2E4-2911-4BA7-BB91-A983AA89906A",
-"token" : "0x60000b9",
-"native_offset" : "0x0",
-"filename" : "MonoDevelop.MSBuildBuilder.exe",
-"sizeofimage" : "0x1c000",
-"timestamp" : "0xce37ae1a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "AB36E2E4-2911-4BA7-BB91-A983AA89906A",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "MonoDevelop.MSBuildBuilder.exe",
-"sizeofimage" : "0x1c000",
-"timestamp" : "0xce37ae1a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a6f9332",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a908dd7",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9118c9",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a8aa9ed",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a8bd7b7",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6004cf3",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60048d7",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "AB36E2E4-2911-4BA7-BB91-A983AA89906A",
-"token" : "0x60001f6",
-"native_offset" : "0x0",
-"filename" : "MonoDevelop.MSBuildBuilder.exe",
-"sizeofimage" : "0x1c000",
-"timestamp" : "0xce37ae1a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "AB36E2E4-2911-4BA7-BB91-A983AA89906A",
-"token" : "0x6000220",
-"native_offset" : "0x0",
-"filename" : "MonoDevelop.MSBuildBuilder.exe",
-"sizeofimage" : "0x1c000",
-"timestamp" : "0xce37ae1a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ff9",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ff4",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a6f9332",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a90a7b2",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9366e8",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a86b368",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c1d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : true,
-"offset_free_hash" : "0xd5b192a1b",
-"offset_rich_hash" : "0xd5b192c03",
-"crashed" : false,
-"native_thread_id" : "0x700012c5e000",
-"thread_info_addr" : "0x7fcf77d9a200",
-"thread_name" : "tid_9b07",
-"ctx" : {
-"IP" : "0x7ff80cada3da",
-"SP" : "0x700012c5cf48",
-"BP" : "0x700012c5cff0"
-},
-"managed_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "FE07070D-575E-40FD-9EF6-807FA5848A8E",
-"token" : "0x6000f88",
-"native_offset" : "0x0",
-"filename" : "Microsoft.VisualStudio.Telemetry.dll",
-"sizeofimage" : "0xde000",
-"timestamp" : "0xfe3b09c5",
-"il_offset" : "0x00024"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a8",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0000f"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a4",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a7",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed3",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00071"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6002410",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00034"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a6",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0004a"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed3",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00071"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed0",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002b"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002a"
-}
-
-],
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9d9e04",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9404d9",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9403a1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a940619",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a92d20d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a8c62d8",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a8",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a7",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a6",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a6f9332",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a908dd7",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a90f6d0",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c5d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : false,
-"offset_free_hash" : "0x0",
-"offset_rich_hash" : "0x0",
-"crashed" : false,
-"native_thread_id" : "0x700011d83000",
-"thread_info_addr" : "0x7fcf78f6c200",
-"thread_name" : "Thread Pool Worker",
-"ctx" : {
-"IP" : "0x7ff80cad79be",
-"SP" : "0x700011d82e98",
-"BP" : "0x700011d82f00"
-},
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x1140bf930",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c1d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : true,
-"offset_free_hash" : "0xd5b192a1b",
-"offset_rich_hash" : "0xd5b192c03",
-"crashed" : false,
-"native_thread_id" : "0x700013267000",
-"thread_info_addr" : "0x7fcf77db6e00",
-"thread_name" : "tid_6d03",
-"ctx" : {
-"IP" : "0x7ff80cada3da",
-"SP" : "0x700013265f48",
-"BP" : "0x700013265ff0"
-},
-"managed_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "FE07070D-575E-40FD-9EF6-807FA5848A8E",
-"token" : "0x6000f88",
-"native_offset" : "0x0",
-"filename" : "Microsoft.VisualStudio.Telemetry.dll",
-"sizeofimage" : "0xde000",
-"timestamp" : "0xfe3b09c5",
-"il_offset" : "0x00024"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a8",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0000f"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a4",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a7",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed3",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00071"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6002410",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00034"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a6",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0004a"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed3",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00071"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed0",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002b"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002a"
-}
-
-],
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9d9e04",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9404d9",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9403a1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a940619",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a92d20d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a8c62d8",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a8",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a7",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a6",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a6f9332",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a908dd7",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a90f6d0",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c5d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : true,
-"offset_free_hash" : "0x90c392be8",
-"offset_rich_hash" : "0x90c392da0",
-"crashed" : false,
-"native_thread_id" : "0x700013870000",
-"thread_info_addr" : "0x7fcf771c4000",
-"thread_name" : "Thread Pool Worker",
-"ctx" : {
-"IP" : "0x7ff80cad83aa",
-"SP" : "0x70001386f598",
-"BP" : "0x70001386f5f0"
-},
-"managed_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60022aa",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002b"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a4",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a7",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed3",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00071"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6002410",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00034"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a6",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0004a"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x60023a5",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001fdf",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00074"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ff4",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002a"
-}
-
-],
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10f4953f0",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a862702",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a8a3f6e",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a8b9e3f",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : false,
-"offset_free_hash" : "0x0",
-"offset_rich_hash" : "0x0",
-"crashed" : false,
-"native_thread_id" : "0x700014482000",
-"thread_info_addr" : "0x7fcf78e42400",
-"thread_name" : "Thread Pool Worker",
-"ctx" : {
-"IP" : "0x7ff80cad79be",
-"SP" : "0x700014481e98",
-"BP" : "0x700014481f00"
-},
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c1d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : false,
-"offset_free_hash" : "0x0",
-"offset_rich_hash" : "0x0",
-"crashed" : false,
-"native_thread_id" : "0x700010762000",
-"thread_info_addr" : "0x7fcf77a9fc00",
-"thread_name" : "tid_7c43",
-"ctx" : {
-"IP" : "0x7ff80cada3da",
-"SP" : "0x700010761d58",
-"BP" : "0x700010761e00"
-},
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10aa481f5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9d9e04",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9e53dd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a86b062",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c1d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : false,
-"offset_free_hash" : "0x0",
-"offset_rich_hash" : "0x0",
-"crashed" : false,
-"native_thread_id" : "0x700010d6b000",
-"thread_info_addr" : "0x7fcf79120600",
-"thread_name" : "Thread Pool Worker",
-"ctx" : {
-"IP" : "0x7ff80cad79be",
-"SP" : "0x700010d6ae98",
-"BP" : "0x700010d6af00"
-},
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c1d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : true,
-"offset_free_hash" : "0x614cb2732",
-"offset_rich_hash" : "0x614cb283f",
-"crashed" : false,
-"native_thread_id" : "0x70001224f000",
-"thread_info_addr" : "0x7fcf77138400",
-"thread_name" : "In-proc Node (Default)",
-"ctx" : {
-"IP" : "0x7ff80cada3da",
-"SP" : "0x70001224e0e8",
-"BP" : "0x70001224e190"
-},
-"managed_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6002056",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-"token" : "0x600137c",
-"native_offset" : "0x0",
-"filename" : "Microsoft.Build.dll",
-"sizeofimage" : "0x202000",
-"timestamp" : "0xac7b724b",
-"il_offset" : "0x00047"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-"token" : "0x60015cd",
-"native_offset" : "0x0",
-"filename" : "Microsoft.Build.dll",
-"sizeofimage" : "0x202000",
-"timestamp" : "0xac7b724b",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed3",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00071"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed0",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002b"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002a"
-}
-
-],
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80c92f5a4",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9d9e20",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a941138",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a940cf2",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a92d20d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a8c62d8",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : false,
-"offset_free_hash" : "0x0",
-"offset_rich_hash" : "0x0",
-"crashed" : false,
-"native_thread_id" : "0x700011374000",
-"thread_info_addr" : "0x7fcf779c8600",
-"thread_name" : "Thread Pool I/O Selector",
-"ctx" : {
-"IP" : "0x7ff80cadfd4a",
-"SP" : "0x700011373c28",
-"BP" : "0x700011373de0"
-},
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x600003c2dc20",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a938823",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a938185",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c1d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : true,
-"offset_free_hash" : "0x5d9cd3368",
-"offset_rich_hash" : "0x5d9cd3468",
-"crashed" : false,
-"native_thread_id" : "0x700012858000",
-"thread_info_addr" : "0x7fcf78d37200",
-"thread_name" : "tid_9107",
-"ctx" : {
-"IP" : "0x7ff80cad796a",
-"SP" : "0x700012856b18",
-"BP" : "0x700012856b70"
-},
-"managed_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x6004477",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x0003a"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed3",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00071"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed0",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002b"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002a"
-}
-
-],
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x6e6f69746163696c",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cbdb34d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cbd99d8",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cbd8e1c",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cc60dcb",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x110c7e21c",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x6004477",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a6f9332",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a908dd7",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a90f6d0",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c5d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : false,
-"offset_free_hash" : "0x0",
-"offset_rich_hash" : "0x0",
-"crashed" : false,
-"native_thread_id" : "0x70001197d000",
-"thread_info_addr" : "0x7fcf7717ba00",
-"thread_name" : "Thread Pool Worker",
-"ctx" : {
-"IP" : "0x7ff80cad79be",
-"SP" : "0x70001197ce98",
-"BP" : "0x70001197cf00"
-},
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c1d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : true,
-"offset_free_hash" : "0x9e5ee43e7",
-"offset_rich_hash" : "0x9e5ee4668",
-"crashed" : false,
-"native_thread_id" : "0x700012e61000",
-"thread_info_addr" : "0x7fcf77def600",
-"thread_name" : "RequestBuilder thread",
-"ctx" : {
-"IP" : "0x7ff80cada3da",
-"SP" : "0x700012e60408",
-"BP" : "0x700012e604b0"
-},
-"managed_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001f00",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001e4f",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x000d9"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x6003c49",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00067"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x6004342",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x0004d"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-"token" : "0x600248c",
-"native_offset" : "0x0",
-"filename" : "Microsoft.Build.dll",
-"sizeofimage" : "0x202000",
-"timestamp" : "0xac7b724b",
-"il_offset" : "0x0002e"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed3",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00071"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed0",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002b"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x0002a"
-}
-
-],
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a8c5f34",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9d9e20",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9404d9",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a9403a1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a976b2c",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a8c49c1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x6003c49",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "5964C1F3-3A6B-4E45-985E-4259425270A7",
-"token" : "0x6004342",
-"native_offset" : "0x0",
-"filename" : "System.dll",
-"sizeofimage" : "0x290000",
-"timestamp" : "0x85731fb9",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "6F1AC64B-3624-4345-9AE7-E79676B4C67F",
-"token" : "0x600248c",
-"native_offset" : "0x0",
-"filename" : "Microsoft.Build.dll",
-"sizeofimage" : "0x202000",
-"timestamp" : "0xac7b724b",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "(null)",
-"token" : "0x00000",
-"native_offset" : "0x0",
-"filename" : "(null)",
-"sizeofimage" : "0x0",
-"timestamp" : "0x0",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "true",
-"guid" : "B27839CC-2DBA-4804-BAAC-F2F5CCE6DE32",
-"token" : "0x6001ed1",
-"native_offset" : "0x0",
-"filename" : "mscorlib.dll",
-"sizeofimage" : "0x472000",
-"timestamp" : "0xe057582a",
-"il_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a6f9332",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a908dd7",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a90f6d0",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c5d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : false,
-"offset_free_hash" : "0x0",
-"offset_rich_hash" : "0x0",
-"crashed" : false,
-"native_thread_id" : "0x700011f86000",
-"thread_info_addr" : "0x7fcf770ca800",
-"thread_name" : "Thread Pool Worker",
-"ctx" : {
-"IP" : "0x7ff80cad79be",
-"SP" : "0x700011f85e98",
-"BP" : "0x700011f85f00"
-},
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "unregistered"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c1d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-},
-{
-"is_managed" : false,
-"offset_free_hash" : "0x0",
-"offset_rich_hash" : "0x0",
-"crashed" : false,
-"native_thread_id" : "0x70001346a000",
-"thread_info_addr" : "0x7fcf78952800",
-"thread_name" : "Thread Pool Worker",
-"ctx" : {
-"IP" : "0x7ff80cad79be",
-"SP" : "0x700013469e98",
-"BP" : "0x700013469f00"
-},
-"unmanaged_frames" : [
-{
-"is_managed" : "false",
-"native_address" : "0x10a797756",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932fd5",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a932d07",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a803840",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb29dfd",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x3fd7e90e1462acc9",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x10a933c1d",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb144e1",
-"native_offset" : "0x00000"
-}
-,
-{
-"is_managed" : "false",
-"native_address" : "0x7ff80cb0ff6b",
-"native_offset" : "0x00000"
-}
-
-]
-}
-]
-}
\ No newline at end of file
diff --git a/HDL_APP_Project.sln b/HDL_APP_Project.sln
index a98de8e..75268d7 100644
--- a/HDL_APP_Project.sln
+++ b/HDL_APP_Project.sln
@@ -25,6 +25,10 @@
 		.editorconfig = .editorconfig
 	EndProjectSection
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NunitTest-Ios", "NunitTest-Ios\NunitTest-Ios.csproj", "{C70A6AA7-2FBA-4A37-9132-AD49BD037899}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NunitTest-Android", "NunitTest-Android\NunitTest-Android.csproj", "{7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}"
+EndProject
 Global
 	GlobalSection(SharedMSBuildProjectFiles) = preSolution
 		HDL_ON\HDL_ON.projitems*{09712674-2a38-407b-b1e2-560b2c352f9a}*SharedItemsImports = 4
@@ -138,6 +142,30 @@
 		{3A0E9FF9-56B6-4323-9AE6-2B22975E399B}.Release|iPhone.Build.0 = Release|Any CPU
 		{3A0E9FF9-56B6-4323-9AE6-2B22975E399B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
 		{3A0E9FF9-56B6-4323-9AE6-2B22975E399B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+		{C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Debug|Any CPU.ActiveCfg = Debug|iPhone
+		{C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Debug|Any CPU.Build.0 = Debug|iPhone
+		{C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Debug|iPhone.ActiveCfg = Debug|iPhone
+		{C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Debug|iPhone.Build.0 = Debug|iPhone
+		{C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
+		{C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
+		{C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
+		{C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Release|Any CPU.Build.0 = Release|iPhoneSimulator
+		{C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Release|iPhone.ActiveCfg = Release|iPhone
+		{C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Release|iPhone.Build.0 = Release|iPhone
+		{C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
+		{C70A6AA7-2FBA-4A37-9132-AD49BD037899}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
+		{7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+		{7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Debug|iPhone.Build.0 = Debug|Any CPU
+		{7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+		{7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+		{7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Release|Any CPU.Build.0 = Release|Any CPU
+		{7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Release|iPhone.ActiveCfg = Release|Any CPU
+		{7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Release|iPhone.Build.0 = Release|Any CPU
+		{7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff --git a/HDL_ON/Common/AliyunLog/AliyunLogClient.cs b/HDL_ON/Common/AliyunLog/AliyunLogClient.cs
new file mode 100644
index 0000000..02c0336
--- /dev/null
+++ b/HDL_ON/Common/AliyunLog/AliyunLogClient.cs
@@ -0,0 +1,160 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Threading;
+using System.Threading.Tasks;
+using Aliyun.Api.LogService;
+using Aliyun.Api.LogService.Domain.Log;
+using Aliyun.Api.LogService.Domain.LogStore.Index;
+using Aliyun.Api.LogService.Infrastructure.Protocol;
+
+namespace HDL_ON.Common.AliyunLog
+{
+	public class AliyunLogClient
+	{
+        // 鏃ュ織鏈嶅姟鐨勬湇鍔℃帴鍏ョ偣銆傛澶勪互鏉窞涓轰緥锛屽叾瀹冨湴鍩熻鏍规嵁瀹為檯鎯呭喌濉啓銆�
+        private static string endpoint = "cn-hangzhou.log.aliyuncs.com";
+        // 鏈ず渚嬩粠鐜鍙橀噺涓幏鍙朅ccessKey ID鍜孉ccessKey Secret銆�
+        private static string accessKeyId = "LTAI5tLzDxrtsFyi3xtK3YWt";
+        private static string accessKeySecret = "eX31JZrRAvC2wZWPiZU0SYhlfAUMoT";
+        // Project鍚嶇О銆�
+        private static string project = "hdl-onpro-log";
+        // Logstore鍚嶇О銆�
+        private static string logstore = "log";
+        // 鍒涘缓鏃ュ織鏈嶅姟Client銆�
+        private static ILogServiceClient client = BuildSimpleClient();
+
+        public static ILogServiceClient BuildSimpleClient()
+            => LogServiceClientBuilders.HttpBuilder
+                .Endpoint(endpoint, project)
+                .Credential(accessKeyId, accessKeySecret)
+                .Build();
+
+
+        public AliyunLogClient()
+		{
+        }
+
+
+        //// 鏋勫缓鏈�绠�鍗曠殑`ILogServiceClient`銆�
+        //public static ILogServiceClient BuildSimpleClient()
+        //    => LogServiceClientBuilders.HttpBuilder
+        //        // 鏈嶅姟鍏ュ彛<endpoint>鍙婇」鐩悕<projectName>
+        //        .Endpoint(endpoint, project)
+        //        // 璁块棶瀵嗛挜淇℃伅
+        //        .Credential(accessKeyId, accessKeySecret)
+        //        .Build();
+
+
+        //static async Task Main(string[] args)
+        //{
+        //    // 鍒涘缓Project銆�
+        //    var proRes = await client.CreateProjectAsync(project, "des");
+        //    check(proRes);
+        //    Console.WriteLine("Create project success");
+        //    Thread.Sleep(120 * 1000);
+
+        //    // 鍒涘缓Logstore銆�
+        //    var storeRes = await client.CreateLogStoreAsync(logstore, 3, 2);
+        //    check(storeRes);
+        //    Console.WriteLine("Create logstore success");
+        //    Thread.Sleep(10 * 1000);
+
+        //    // 涓篖ogstore鍒涘缓绱㈠紩銆�
+        //    var indRes = await client.CreateIndexAsync(logstore, new IndexLineInfo(new[] { ' ', ',' }));
+        //    check(indRes);
+        //    Console.WriteLine("Create Index success");
+        //    Thread.Sleep(60 * 1000);
+
+        //    // 鍚慙ogstore鍐欏叆鏁版嵁銆�
+        //    await PostLogs();
+        //    Console.WriteLine("Post logs success");
+        //    Thread.Sleep(3000);
+        //    // 鏌ヨ鏃ュ織銆�
+        //    await GetLogs();
+        //}
+
+        //public static async Task GetLogs()
+        //{
+        //    var logsRes = await client.GetLogsAsync(logstore, DateTimeOffset.UtcNow.AddMinutes(-1),
+        //        DateTimeOffset.UtcNow,
+        //        "test", "", 100, 0);
+        //    check(logsRes);
+        //    foreach (var log in logsRes.Result.Logs)
+        //    {
+        //        foreach (var key in log.Keys)
+        //        {
+        //            log.TryGetValue(key, out var value);
+        //            Console.WriteLine(key + " : " + value);
+        //        }
+
+        //        Console.WriteLine("======");
+        //    }
+        //}
+
+
+        /// <summary>
+        /// 鏃ュ織鎺ㄩ��
+        /// </summary>
+        /// <param name="topic">鎺ㄩ�佹爣棰�</param>
+        /// <param name="msg">鎺ㄩ�佷俊鎭�</param>
+        /// <returns></returns>
+        public static async Task PostLogs(string topic, string msg)
+        {
+            if (client == null)
+            {
+                client = BuildSimpleClient();
+            }
+
+            try
+            {
+                var pushObj = new LogGroupInfo
+                {
+                    Topic = topic,
+#if __ANDROID__
+                    Source = "Android",
+#else
+                    Source = "IOS",
+#endif
+                    LogTags = new Dictionary<string, string>
+                    {
+                        {"tag1", DateTime.Now.ToLongTimeString()},
+
+                    },
+                    Logs = new List<LogInfo>
+                    {
+                        new LogInfo
+                        {
+                            Time = DateTimeOffset.Now,
+                            Contents = new Dictionary<string, string>
+                            {
+                                {"id", DateTime.Now.Ticks.ToString()},
+                                {"homeid", Entity.DB_ResidenceData.Instance.CurrentRegion.id},
+                                {"userid", UserInfo.Current.ID},
+                                {"userName", UserInfo.Current.userName},
+                                {"server", DAL.Server.HttpUtil.GlobalRequestHttpsHost},
+                                {"message", msg},
+                            }
+                        }
+                    }
+                };
+                var response = await client.PostLogStoreLogsAsync(logstore, pushObj);
+                check(response);
+            }
+            catch (Exception ex)
+            {
+                MainPage.Log(ex.Message);
+            }
+        }
+
+
+        public static void check(IResponse res)
+        {
+            if (!res.IsSuccess)
+            {
+                MainPage.Log("鏃ュ織鎺ㄩ�佷笉鎴愬姛.");
+                //throw new ApplicationException(res.Error.ErrorMessage);
+            }
+        }
+    }
+}
+
diff --git a/HDL_ON/Common/AliyunLog/AliyunLogInvokeAsync.cs b/HDL_ON/Common/AliyunLog/AliyunLogInvokeAsync.cs
new file mode 100644
index 0000000..717d3dc
--- /dev/null
+++ b/HDL_ON/Common/AliyunLog/AliyunLogInvokeAsync.cs
@@ -0,0 +1,173 @@
+锘縰sing System;
+using System.Linq;
+using System.Threading.Tasks;
+using Aliyun.Api.LogService;
+using Aliyun.Api.LogService.Domain;
+using Aliyun.Api.LogService.Domain.Log;
+using Aliyun.Api.LogService.Infrastructure.Protocol;
+
+namespace HDL_ON.Common.AliyunLog
+{
+	public class AliyunLogInvokeAsync
+	{
+		public AliyunLogInvokeAsync()
+		{
+		}
+
+        /// <summary>
+        /// 鎵ц璇锋眰鏂规硶銆�
+        /// </summary>
+        public static async Task<GetLogsResult> Invoke(ILogServiceClient client)
+        {
+            var response = await client.GetLogsAsync
+            (
+                // 銆屽繀濉弬鏁般�嶄細鍦� Request 鏋勯�犲櫒涓垪鍑猴紝骞朵笖涓嶅彲set锛�
+                new GetLogsRequest("example-logstore", (Int32)DateTimeOffset.UtcNow.AddDays(-1).ToUnixTimeSeconds(), (Int32)DateTimeOffset.UtcNow.ToUnixTimeSeconds())
+                {
+                    // 銆屽彲閫夊弬鏁般�嶄笉浼氬湪 Request 鏋勯�犲櫒涓垪鍑猴紝鍙�氳繃setter璁剧疆銆�
+                    Offset = 1,
+                    Line = 100,
+                }
+            );
+
+            var result = response
+                // 姝ゆ柟娉曚細纭繚杩斿洖鐨勫搷搴斿け璐ユ椂鍊欐姏鍑篳LogServiceException`銆�
+                .EnsureSuccess()
+                // 姝ゅ鑾峰彇Result鏄畨鍏ㄧ殑銆�
+                .Result;
+
+            Console.WriteLine($"RequestId锛歿response.RequestId}");
+            Console.WriteLine($"鏃ュ織鎬绘暟锛歿result.Count}");
+            Console.WriteLine($"棣栨潯鏃ュ織锛歿result.Logs.FirstOrDefault()}");
+
+            return result;
+        }
+
+        /// <summary>
+        /// 鍦ㄨ皟鐢ㄦ椂鍙娇鐢ㄦ墿灞曟柟娉曪紝鎵╁睍鏂规硶浼氬皢绠�鍗曠殑璇锋眰瀵硅薄鐨勫睘鎬у睍寮�鍒版柟娉曞叆鍙備腑銆�
+        /// 浣跨敤鎵╁睍鏂规硶 `using Aliyun.Api.Log;` 鍗冲彲銆�
+        /// </summary>
+        public static async Task<GetLogsResult> InvokeUsingExtension(ILogServiceClient client)
+        {
+            var response = await client.GetLogsAsync
+            (
+                // 銆屽繀濉弬鏁般�嶄綔涓烘柟娉曠殑鏅�氬繀椤诲弬鏁�
+                "example-logstore",
+                DateTimeOffset.UtcNow.AddDays(-1),
+                DateTimeOffset.UtcNow,
+
+                // 銆屽彲閫夊弬鏁般�嶄綔涓烘柟娉曠殑鍙�夊弬鏁帮紝鍙�氳繃鍛藉悕鍙傛暟鏂瑰紡鎸囧畾
+                offset: 1,
+                line: 10
+            );
+
+            var result = response
+                // 姝ゆ柟娉曚細纭繚杩斿洖鐨勫搷搴斿け璐ユ椂鍊欐姏鍑篳LogServiceException`銆�
+                .EnsureSuccess()
+                // 姝ゅ鑾峰彇Result鏄畨鍏ㄧ殑銆�
+                .Result;
+
+            Console.WriteLine($"RequestId锛歿response.RequestId}");
+            Console.WriteLine($"鏃ュ織鎬绘暟锛歿result.Count}");
+            Console.WriteLine($"棣栨潯鏃ュ織锛歿result.Logs.FirstOrDefault()}");
+
+            return result;
+        }
+
+        /// <summary>
+        /// 澶勭悊鏈嶅姟鍣ㄨ繑鍥烇紙鍖呭惈鍦≧esponse涓級鐨勯敊璇��
+        /// </summary>
+        public static async Task<GetLogsResult> InvokeWithErrorHandling(ILogServiceClient client)
+        {
+            var response = await client.GetLogsAsync
+            (
+                // 銆屽繀濉弬鏁般�嶄綔涓烘柟娉曠殑鏅�氬繀椤诲弬鏁�
+                "example-logstore",
+                DateTimeOffset.UtcNow.AddDays(-1),
+                DateTimeOffset.UtcNow,
+
+                // 銆屽彲閫夊弬鏁般�嶄綔涓烘柟娉曠殑鍙�夊弬鏁帮紝鍙�氳繃鍛藉悕鍙傛暟鏂瑰紡鎸囧畾
+                offset: 1,
+                line: 10
+            );
+
+            GetLogsResult result;
+            // 灏濊瘯澶勭悊鍙鐞嗙殑閿欒銆�
+            if (!response.IsSuccess)
+            {
+                // 閿欒鐮�
+                var errorCode = response.Error.ErrorCode;
+                // 閿欒娑堟伅
+                var errorMessage = response.Error.ErrorMessage;
+
+                Console.WriteLine($"RequestId锛歿response.RequestId}");
+                Console.WriteLine($"閿欒鐮侊細{errorCode}");
+                Console.WriteLine($"閿欒淇℃伅锛歿errorMessage}");
+
+                // `ErrorCode`绫诲彲鏀寔涓庤嚜韬疄渚嬫垨瀛楃涓茶繘琛屽姣斻��
+                if (errorCode == ErrorCode.SignatureNotMatch /* SDK涓瀹氫箟鐨勯敊璇爜 */)
+                {
+                    // 鍦ㄨ繖閲屽鐞嗕笟鍔″彲澶勭悊鐨勯敊璇�傘�傘�傘�傘�傘��
+                    Console.WriteLine("Signature not match, {0}.", errorMessage);
+                }
+                else if (errorCode == "ParameterInvalid" /* 涓氬姟鐩稿叧鐗规畩鐨凷DK涓湭瀹氫箟鐨勯敊璇爜 */)
+                {
+                    // 鍦ㄨ繖閲屽鐞嗕笟鍔″彲澶勭悊鐨勯敊璇�傘�傘�傘�傘�傘��
+                    Console.WriteLine("Parameter invalid, {0}.", errorMessage);
+                }
+
+                // 浠讳綍澶勭悊涓嶅埌鐨勯敊璇鍔″繀鎶涘嚭寮傚父涓柇鍘熸祦绋嬶紝閬垮厤澶栭儴鑾峰彇鍒� null 鐨勭粨鏋滐紒
+                throw new Exception("杩欓噷鍙互鏄郴缁熺殑涓氬姟寮傚父銆�" + response.Error /* 鏈�濂藉甫涓婃湇鍔¤繑鍥炵殑閿欒淇℃伅浠ヤ究璋冭瘯 */);
+            }
+            else
+            {
+                // 姝ゅ鑾峰彇Result鏄畨鍏ㄧ殑銆�
+                result = response.Result;
+            }
+
+            Console.WriteLine($"RequestId锛歿response.RequestId}");
+            Console.WriteLine($"鏃ュ織鎬绘暟锛歿result.Count}");
+            Console.WriteLine($"棣栨潯鏃ュ織锛歿result.Logs.FirstOrDefault()}");
+
+            return result;
+        }
+
+        /// <summary>
+        /// 澶勭悊浠ュ紓甯稿舰寮忔姏鍑虹殑閿欒銆�
+        /// </summary>
+        public static async Task<GetLogsResult> InvokeWithExceptionHandling(ILogServiceClient client)
+        {
+            try
+            {
+                return await Invoke(client);
+            }
+            catch (LogServiceException e)
+            {
+                // 閿欒鐮�
+                var errorCode = e.ErrorCode;
+                // 閿欒娑堟伅
+                var errorMessage = e.ErrorMessage;
+
+                Console.WriteLine($"RequestId锛歿e.RequestId}");
+                Console.WriteLine($"閿欒鐮侊細{errorCode}");
+                Console.WriteLine($"閿欒淇℃伅锛歿errorMessage}");
+
+                // `ErrorCode`绫诲彲鏀寔涓庤嚜韬疄渚嬫垨瀛楃涓茶繘琛屽姣斻��
+                if (errorCode == ErrorCode.SignatureNotMatch /* SDK涓瀹氫箟鐨勯敊璇爜 */)
+                {
+                    // 鍦ㄨ繖閲屽鐞嗕笟鍔″彲澶勭悊鐨勯敊璇�傘�傘�傘�傘�傘��
+                    Console.WriteLine("Signature not match, {0}.", errorMessage);
+                }
+                else if (errorCode == "ParameterInvalid" /* 涓氬姟鐩稿叧鐗规畩鐨凷DK涓湭瀹氫箟鐨勯敊璇爜 */)
+                {
+                    // 鍦ㄨ繖閲屽鐞嗕笟鍔″彲澶勭悊鐨勯敊璇�傘�傘�傘�傘�傘��
+                    Console.WriteLine("Parameter invalid, {0}.", errorMessage);
+                }
+
+                // 浠讳綍澶勭悊涓嶅埌鐨勯敊璇鍔″繀鎶涘嚭寮傚父涓柇鍘熸祦绋嬶紝閬垮厤澶栭儴鑾峰彇鍒� null 鐨勭粨鏋滐紒
+                throw new Exception("杩欓噷鍙互鏄郴缁熺殑涓氬姟寮傚父銆�", e /* 鍦ㄨ嚜瀹氫箟鐨勫紓甯镐腑鏈�濂藉甫涓婃湇鍔¤繑鍥炵殑寮傚父浠ヤ究璋冭瘯 */);
+            }
+        }
+    }
+}
+
diff --git a/HDL_ON/Common/ApiUtlis.cs b/HDL_ON/Common/ApiUtlis.cs
index 96f5c7d..edc5d3a 100644
--- a/HDL_ON/Common/ApiUtlis.cs
+++ b/HDL_ON/Common/ApiUtlis.cs
@@ -72,12 +72,14 @@
         /// 涓嬭浇鏁版嵁瀹屾垚鏍囪
         /// </summary>
         public bool DownloadDataComplete = false;
+
+        public bool hadInternet = true;
         /// <summary>
         /// 涓嬭浇鏁版嵁
         /// </summary>
         public void DownloadData()
         {
-            if (MainPage.InternetStatus == 0 || MainPage.NoLoginMode)
+            if (MainPage.NoLoginMode)
             {
                 DownloadDataComplete = true;
                 return;
@@ -92,13 +94,84 @@
             var waitPage = new Loading();
             MainPage.BaseView.AddChidren(waitPage);
             waitPage.Start(Language.StringByID(StringId.PleaseWait));
+           
 
             string code = StateCode.SUCCESS;
 
             Inverter.Ins.H5Page = null;//閲嶇疆鍏変紡椤甸潰
-
             var downloadDataThread = new System.Threading.Thread(() =>
             {
+                try
+                {
+                    //澧炲姞3绉掍簯鏈嶅姟鍣ㄨ繛鎺ユ娴嬶紝杩炰笉涓婃湇鍔″櫒鐨勬椂鍊欎笉鍒锋柊鏁版嵁
+                    hadInternet = true;
+                    var dataList = new List<GlobalRegionListRes>();
+                    var requestJson = HttpUtil.GetSignRequestJson(new GetRegionListObj() { regionMark = HttpUtil.RegionMark });
+                    var revertObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_GlobalRegionList, requestJson, HttpUtil.GlobalRequestHttpsHost, "", 3);
+                    if (revertObj == null || revertObj.Code != StateCode.SUCCESS)
+                    {
+                        DownloadDataComplete = true;
+                        hadInternet = false;
+                        try
+                        {
+                            var spatialInfoDataBytes = FileUtlis.Files.ReadFile("SpatialInfoData");
+                            if (spatialInfoDataBytes != null)
+                            {
+                                var spatialInfoDataString = System.Text.Encoding.UTF8.GetString(spatialInfoDataBytes);
+                                if (spatialInfoDataString != null && !string.IsNullOrEmpty(spatialInfoDataString))
+                                {
+                                    var spatialInfoDataList = JsonConvert.DeserializeObject<List<SpatialInfo>>(spatialInfoDataString);
+                                    SpatialInfo.CurrentSpatial.UpdateSpatialList(spatialInfoDataList);
+                                }
+                            }
+                        }
+                        catch (Exception ex)
+                        {
+                            MainPage.Log($"{this.GetType()}:鍔犺浇缂撳瓨鎴块棿鏁版嵁寮傚父:{ex.Message}");
+                        }
+
+                        try
+                        {
+                            var fileList = Common.FileUtlis.Files.ReadFiles();
+                            foreach (var file in fileList)
+                            {
+                                FunctionList.List.IniFunctionList(file, true);
+                            }
+                            Room.CurrentSpatial.InitRoomListFunctions();
+                        }
+                        catch (Exception ex)
+                        {
+                            MainPage.Log($"{this.GetType()}:鍔犺浇缂撳瓨璁惧鏁版嵁寮傚父:{ex.Message}");
+                        }
+
+
+                        return;
+                    }
+                    else
+                    {
+                        hadInternet = true;
+                    }
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log($"Error锛氫笅杞芥暟鎹�1锛歿ex.Message}");
+                    DownloadDataComplete = true;
+                    return;
+                }
+                finally
+                {
+                    if (!hadInternet)
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            if (waitPage != null)
+                            {
+                                waitPage.Hide();
+                                waitPage.RemoveFromParent();
+                            }
+                        });
+                    }
+                }
                 MainPage.Log($"杩涘叆璇诲彇浜戠鏁版嵁绾跨▼");
                 //===================鍒锋柊Token=======================
                 code = Ins.HttpRequest.RefreshToken();
@@ -191,13 +264,25 @@
                     if (roomResult.Code == StateCode.SUCCESS)
                     {
                         MainPage.Log($"璇诲彇鎴块棿淇℃伅鎴愬姛");
-                        var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<SpatialApiPack>(roomResult.Data.ToString());
+                        var revData = JsonConvert.DeserializeObject<SpatialApiPack>(roomResult.Data.ToString());
                         if (revData == null)
                         {
                             revData = new SpatialApiPack();
                         }
                         {
                             SpatialInfo.CurrentSpatial.UpdateSpatialList(revData.list);
+                            new System.Threading.Thread(() =>
+                            {
+                                try
+                                {
+                                    var ssd = System.Text.Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(revData.list));
+                                    FileUtlis.Files.WriteFileByBytes("SpatialInfoData", ssd);
+                                }catch(Exception ex)
+                                {
+                                    MainPage.Log($"{this.GetType()}:淇濆瓨鎴块棿淇℃伅寮傚父锛歿ex.Message}");
+                                }
+                            })
+                            { IsBackground = true }.Start();
                         }
                     }
                     else
@@ -536,7 +621,7 @@
                         //======================瀹夐槻====================
                         GetSecurityList();
 
-                        //===================璇诲彇閫昏緫鍒楄〃==========================
+                        //===================璇诲彇閫昏緫鍒楄〃====================
                         Logic.LogicList.Clear();//涓婚〉涓嬫媺寮哄埗鍒锋柊鑷姩鍖栧垪琛�
                         MainView.GetLogicList();//璇诲彇鑷姩鍖栧垪琛�
                     })
diff --git a/HDL_ON/Common/Constant.cs b/HDL_ON/Common/Constant.cs
index 92b1527..c79c6f1 100644
--- a/HDL_ON/Common/Constant.cs
+++ b/HDL_ON/Common/Constant.cs
@@ -239,6 +239,10 @@
         /// 
         /// </summary>
         LOGIC,
+        /// <summary>
+        /// 缁勬帶
+        /// </summary>
+        GROUPCONTROL,
     }
 
     /// <summary>
diff --git a/HDL_ON/Common/HDLCommon.cs b/HDL_ON/Common/HDLCommon.cs
index 75dcc1b..d99e10b 100644
--- a/HDL_ON/Common/HDLCommon.cs
+++ b/HDL_ON/Common/HDLCommon.cs
@@ -312,28 +312,7 @@
 
                         //瀛楁鍏煎闂锛屽彧鑳界洿鎺ュ彇鍊间簡
                         var json = Newtonsoft.Json.Linq.JObject.Parse(jpushMessageInfo.expantContent);
-                        try
-                        {
-                            //var pushHomeId = json["homeId"];
-                            //if (pushHomeId == null || string.IsNullOrEmpty(pushHomeId.ToString())){
-                            //    Console.WriteLine("homeId is null");
-                            //    return;
-                            //}
-                            var pushTime = json["pushTime"];
-                            if(pushTime == null)
-                            {
-                                return;
-                            }
-                            if (!string.IsNullOrEmpty(pushTime.ToString()))
-                            {
-                                var pushDateTime = Utlis.UnixToDateTimeMS(Convert.ToInt64(pushTime));
-                                if (pushDateTime.AddSeconds(30) < DateTime.Now)
-                                {
-                                    return;
-                                }
-                            }
-                        }
-                        catch { }
+                       
 
                         //1.瑙嗗璁插巶瀹剁被鍨�
                         string interphoneTypeEnum = json["interphoneTypeEnum"].ToString();
@@ -372,6 +351,23 @@
                         }
                         else if (interphoneTypeEnum == InterphoneType.HDL.ToString())
                         {
+                            try
+                            {
+                                var pushTime = json["pushTime"];
+                                if (pushTime == null)
+                                {
+                                    return;
+                                }
+                                if (!string.IsNullOrEmpty(pushTime.ToString()))
+                                {
+                                    var pushDateTime = Utlis.UnixToDateTimeMS(Convert.ToInt64(pushTime));
+                                    if (pushDateTime.AddSeconds(30) < DateTime.Now)
+                                    {
+                                        return;
+                                    }
+                                }
+                            }
+                            catch { }
                             //HDL Linphone 鐙勮�愬厠
                             eSVideoInfo.HomeId = jpushMessageInfo.HomeId;
                             eSVideoInfo.callId = json["callId"].ToString();
@@ -776,7 +772,8 @@
                                         ((BaseActivity)Shared.Application.Activity).SetPermission(result =>
                                         {
                                             //2023骞�03鏈�29鏃�13:08:35 淇敼
-                                            Com.Videogo.Hdl.HDLEzvizSdk.Instance.Init(Application.Activity.Application, ezChildAccessToken, UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken, OnAppConfig.Instance.RequestHttpsHost, "1aa98a90489b4838b966b57018b4b04b", 1, DB_ResidenceData.Instance.CurrentRegion.id);
+                                            Com.Videogo.Hdl.HDLEzvizSdk.Instance.Init(Application.Activity.Application, ezChildAccessToken, UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken, OnAppConfig.Instance.RequestHttpsHost, "1aa98a90489b4838b966b57018b4b04b", 1, DB_ResidenceData.Instance.CurrentRegion.id,
+                                HttpUtil.APP_KEY, HttpUtil.SECRET_KEY);
                                             Com.Videogo.Hdl.HDLEzvizSdk.Instance.JumpToCameraListActivity(Shared.Application.Activity, list);
                                             //if (result)
                                             //{
@@ -806,7 +803,8 @@
                     }
                     else
                     {
-                        IMessageCommon.Current.ShowErrorInfoAlter(result.Code);
+                        if (result.Code != "-1")
+                            IMessageCommon.Current.ShowErrorInfoAlter(result.Code);
                     }
                 }
                 catch (Exception ex)
diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs
index 5195709..10b0a31 100644
--- a/HDL_ON/DAL/DriverLayer/Control.cs
+++ b/HDL_ON/DAL/DriverLayer/Control.cs
@@ -1617,6 +1617,17 @@
                             case SPK.MusicStandard:
                                 //UI.Music.MusicMain.mMusicMain.RefreshView(updateTemp);
                                 Console.WriteLine("闊充箰鎾斁鍣ㄦ樉绀虹姸鎬�=======" + revString);
+                                foreach (var music in UI.Music.A31MusicModel.A31MusicModelList)//姣忔鏀跺埌鏁版嵁閮借鏇存柊涓�涓嬫椂闂�
+                                {
+                                    if (music.functionMusic.sid == localFunction.sid)
+                                    {
+                                        music.LastDateTime = DateTime.Now;
+                                    }
+                                }
+                                if (UI.Music.A31MusicModel.Current != null)
+                                {
+                                    UI.Music.A31MusicModel.Current.LastDateTime = DateTime.Now;
+                                }
                                 //wjc
                                 break;
                             case SPK.Inverter:
diff --git a/HDL_ON/DAL/DriverLayer/Control_Udp.cs b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
index a98ad05..5f3e595 100644
--- a/HDL_ON/DAL/DriverLayer/Control_Udp.cs
+++ b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
@@ -393,8 +393,26 @@
                                 }
                             }
                             break;
-                        case SPK.OtherCommon:
-
+                        case SPK.OtherCommon://2024-02-01 15:19:28
+                            foreach (var attr in f.status)
+                            {
+                                if (attr.key == FunctionAttributeKey.OnOff)
+                                {
+                                    byte onOffValue = 0;
+                                    switch (attr.value)
+                                    {
+                                        case "on":
+                                            onOffValue = 0;
+                                            break;
+                                        case "off":
+                                            onOffValue = 255;
+                                            break;
+                                    }
+                                    ControlBytesSend(Command.SetCommonSwitch, f.localFunction.bus.SubnetID, f.localFunction.bus.DeviceID,
+                                        new byte[] { f.localFunction.bus.LoopId, onOffValue });
+                                    break;
+                                }
+                            }
                             break;
                     }
                 }
@@ -446,21 +464,24 @@
                 {
                     case SPK.LightCCT:
                         #region cct light
-                        byte b0 = 100;
-                        if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff))
+                        byte b0 = Convert.ToByte(function.lastBrightness);
+                        if (commandDictionary.ContainsKey(FunctionAttributeKey.Brightness))
                         {
-                            if (function.trait_on_off.curValue.ToString() == "off")
-                            {
-                                b0 = 0;
-                            }
-                            else
-                            {
-                                b0 = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness);
-                            }
+                            b0 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
                         }
                         else
                         {
-                            b0 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
+                            if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff))
+                            {
+                                if (function.trait_on_off.curValue.ToString() == "off")
+                                {
+                                    b0 = 0;
+                                }
+                                else
+                                {
+                                    b0 = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness);
+                                }
+                            }
                         }
                         var bytes0 = new byte[] { function.bus.LoopId,
                                             b0,
@@ -474,21 +495,24 @@
                         break;
                     case SPK.LightRGB:
                         #region rgb light
-                        byte b = 100;
-                        if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff))
+                        byte b = Convert.ToByte(function.lastBrightness);
+                        if (commandDictionary.ContainsKey(FunctionAttributeKey.Brightness))
                         {
-                            if (function.trait_on_off.curValue.ToString() == "off")
-                            {
-                                b = 0;
-                            }
-                            else
-                            {
-                                b = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness);
-                            }
+                            b = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
                         }
                         else
                         {
-                            b = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
+                            if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff))
+                            {
+                                if (function.trait_on_off.curValue.ToString() == "off")
+                                {
+                                    b = 0;
+                                }
+                                else
+                                {
+                                    b = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness);
+                                }
+                            }
                         }
                         var tempLight = new Light();
                         var bytes = new byte[] { function.bus.LoopId,
@@ -503,21 +527,24 @@
                         break;
                     case SPK.LightDimming:
                         #region dimming light
-                        byte b1 = 100;
-                        if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff))
+                        byte b1 = Convert.ToByte(function.lastBrightness);
+                        if (commandDictionary.ContainsKey(FunctionAttributeKey.Brightness))
                         {
-                            if (function.trait_on_off.curValue.ToString() == "off")
-                            {
-                                b1 = 0;
-                            }
-                            else
-                            {
-                                b1 = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness);
-                            }
+                            b1 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
                         }
                         else
                         {
-                            b1 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
+                            if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff))
+                            {
+                                if (function.trait_on_off.curValue.ToString() == "off")
+                                {
+                                    b1 = 0;
+                                }
+                                else
+                                {
+                                    b1 = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness);
+                                }
+                            }
                         }
                         ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] {
                                             function.bus.LoopId,
diff --git a/HDL_ON/DAL/DriverLayer/UdpSocket.cs b/HDL_ON/DAL/DriverLayer/UdpSocket.cs
index c4b37fd..f6f9c40 100644
--- a/HDL_ON/DAL/DriverLayer/UdpSocket.cs
+++ b/HDL_ON/DAL/DriverLayer/UdpSocket.cs
@@ -43,8 +43,14 @@
             if (Port == 0)
                 return;
 
-            busSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
-            busSocket.EnableBroadcast = true;
+            try
+            {
+                busSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
+                busSocket.EnableBroadcast = true;
+            }catch(Exception ex)
+            {
+                MainPage.Log("Socket 寮傚父 : " + ex.Message);
+            }
             try
             {
                 busSocket.Bind(new IPEndPoint(IPAddress.Any, Port));
diff --git a/HDL_ON/DAL/Mqtt/MqttClient.cs b/HDL_ON/DAL/Mqtt/MqttClient.cs
index 246c9b7..cea69ec 100644
--- a/HDL_ON/DAL/Mqtt/MqttClient.cs
+++ b/HDL_ON/DAL/Mqtt/MqttClient.cs
@@ -13,6 +13,8 @@
 using HDL_ON.UI;
 using HDL_ON.DAL.Server;
 using HDL_ON;
+using Newtonsoft.Json;
+using System.Collections.Generic;
 
 namespace HDL_ON.DAL.Mqtt
 {
@@ -159,6 +161,7 @@
         public static void InitState()
         {
             IfNeedReadAllDeviceStatus = true;
+            Common.ApiUtlis.Ins.hadInternet = true;
             StartCloudMqtt();
         }
 
@@ -338,7 +341,13 @@
         public static async Task StartCloudMqtt()
         {
             //娌℃湁缃戠粶鐨勭姸鎬佷笅灏濊瘯涓�涓嬭繛鎺qtt 锛屽畨鍗撶殑缃戠粶鐘舵�佸彉鍖栫洃鍚湁寮傚父锛屼慨鏀瑰簳灞傞夯鐑�
-            if (MainPage.InternetStatus == 0 && MainPage.LinkHdlMqttCount > 1)
+            if (MainPage.InternetStatus == 0 && MainPage.LinkHdlMqttCount > 1 )
+            {
+                return;
+            }
+
+
+            if (!Common.ApiUtlis.Ins.hadInternet)
             {
                 return;
             }
@@ -364,6 +373,26 @@
             await Task.Factory.StartNew((Func<Task>)(async () => {
                 try
                 {
+                    try
+                    {
+                        //澧炲姞3绉掍簯鏈嶅姟鍣ㄨ繛鎺ユ娴嬶紝杩炰笉涓婃湇鍔″櫒鐨勬椂鍊欎笉鍒锋柊鏁版嵁
+                        var dataList = new List<GlobalRegionListRes>();
+                        var requestJson = HttpUtil.GetSignRequestJson(new GetRegionListObj() { regionMark = HttpUtil.RegionMark });
+                        var revertObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_GlobalRegionList, requestJson, HttpUtil.GlobalRequestHttpsHost, "", 3);
+                        if (revertObj == null || revertObj.Code != StateCode.SUCCESS)
+                        {
+                            Common.ApiUtlis.Ins.hadInternet = false;
+                            return;
+                        }
+                        else
+                        {
+                            Common.ApiUtlis.Ins.hadInternet = true;
+                        }
+                    }
+                    catch
+                    {
+                    }
+
                     #region 鍒濆鍖栬繙绋婱qtt
                     RemoteMqttIsConnecting = true;
                     RemoteMqttClient = new MqttFactory().CreateMqttClient();
diff --git a/HDL_ON/DAL/Server/HttpServerRequest.cs b/HDL_ON/DAL/Server/HttpServerRequest.cs
index e8e9e59..731c865 100644
--- a/HDL_ON/DAL/Server/HttpServerRequest.cs
+++ b/HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -1538,7 +1538,7 @@
         }
 #endregion
 
-#region 鑾峰彇澶╂皵閮ㄥ垎
+        #region 鑾峰彇澶╂皵閮ㄥ垎
         /// <summary>
         /// 鑾峰彇鎸囧畾缁忕含搴︾殑鍩庡競淇℃伅澶╂皵淇℃伅
         /// </summary>
diff --git a/HDL_ON/DAL/Server/HttpUtil.cs b/HDL_ON/DAL/Server/HttpUtil.cs
index 0be5794..8cadb5d 100644
--- a/HDL_ON/DAL/Server/HttpUtil.cs
+++ b/HDL_ON/DAL/Server/HttpUtil.cs
@@ -19,13 +19,18 @@
         /// 鍏叡鍩熷悕灏辫繎瑙f瀽
         /// </summary>
         public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
-        //public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";
-        const string APP_KEY = "HDL-HOME-APP-TEST";
-        const string SECRET_KEY = "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss";
+        public const string APP_KEY = "HDL-HOME-APP";
+        public const string SECRET_KEY = "CPL345bn28gHnvi9G4tYbq3cTYkiHC";
 
-        //public const string GlobalRequestHttpsHost = "http://59.41.255.150:7777";//寮�鍙戠幆澧�
-        //const string APP_KEY = "CPEVRLRT";//寮�鍙戠幆澧傾PP_KEY
-        //const string SECRET_KEY = "CPEVRLSJCPEVRLSZ";//寮�鍙戠幆澧僑ECRET_KEY
+
+        //public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";
+        //public const string APP_KEY = "HDL-HOME-APP-TEST";
+        //public const string SECRET_KEY = "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss";
+
+
+        //public const string GlobalRequestHttpsHost = "http://59.41.255.150:7777";//mmmm
+        //const string APP_KEY = "CPEVRLRT";
+        //const string SECRET_KEY = "CPEVRLSJCPEVRLSZ";
         /// <summary>
         /// RegionMark
         /// </summary>
@@ -33,7 +38,7 @@
         /// <summary>
         /// 璇锋眰瓒呮椂鏃堕棿
         /// </summary>
-        public const int TIME_OUT = 15;
+        public const int TIME_OUT = 10;
         /// <summary>
         /// 鐗规畩鎺ュ彛璇锋眰瓒呮椂鏃堕棿
         /// </summary>
@@ -157,6 +162,11 @@
             {
                 return new ResponsePackNew() { Code = "0" ,Data = "" };
             }
+            if (!Common.ApiUtlis.Ins.hadInternet)
+            {
+                MainPage.Log("娌℃湁澶栫綉锛岀洿鎺ラ��鍑鸿姹�");
+                return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR, message = Language.StringByID(StringId.FailedRequestServer) };
+            }
             #region HttpWebRequest
             try
             {
@@ -209,7 +219,7 @@
                     }
                 }
                 IRestResponse response = client.Execute(request);
-                HDL_ON.Utlis.WriteLine("鍙戦��", requestFullUrl, response.Request.Body?.Value.ToString());
+                MainPage.Log("鍙戦��:"+ requestFullUrl, response.Request.Body?.Value.ToString());
                 if(apiPath == NewAPI.API_POST_Login)
                 {
                     var ddd = Newtonsoft.Json.JsonConvert.SerializeObject(response);
@@ -256,14 +266,14 @@
                         }
                         catch { }
                     }
-                    return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR };
+                    return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR, message = Language.StringByID(StringId.FailedRequestServer) };
                 }
 
             }
             catch (Exception ex)
             {
                 HDL_ON.Utlis.WriteLine(ex.Message);
-                return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR };
+                return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR ,message = Language.StringByID(StringId.FailedRequestServer) };
             }
 
             #endregion
@@ -498,14 +508,14 @@
                 else
                 {
                     HDL_ON.Utlis.WriteLine(response.Content);
-                    return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR };
+                    return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR, message = Language.StringByID(StringId.FailedRequestServer) };
                 }
 
             }
             catch (Exception ex)
             {
                 HDL_ON.Utlis.WriteLine(ex.Message);
-                return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR };
+                return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR, message = Language.StringByID(StringId.FailedRequestServer) };
             }
 
             #endregion
diff --git a/HDL_ON/DAL/Server/NewAPI.cs b/HDL_ON/DAL/Server/NewAPI.cs
index fbbad8b..1f6ae36 100644
--- a/HDL_ON/DAL/Server/NewAPI.cs
+++ b/HDL_ON/DAL/Server/NewAPI.cs
@@ -884,6 +884,12 @@
         /// </summary>
         public const string API_POST_VideoDevice_UpdateCallStatus = "/home-wisdom/platform/imou/updateCallStatus";
         /// <summary>
+        /// 鎷掓帴锛堟寕娈垫墍鏈夊懠鍙級
+        /// </summary>
+        public const string API_POST_VideoDevice_RejectCallIn = "/home-wisdom/platform/imou/updateCallStatus";
+
+        
+        /// <summary>
         /// 鑾峰彇閫氳瘽璁板綍
         /// </summary>
         public const string API_POST_FL_GetCallList = "/home-wisdom/platform/imou/listCallRecords";
diff --git a/HDL_ON/DAL/Server/NewApiRes.cs b/HDL_ON/DAL/Server/NewApiRes.cs
index ecf9da4..41a7f5e 100644
--- a/HDL_ON/DAL/Server/NewApiRes.cs
+++ b/HDL_ON/DAL/Server/NewApiRes.cs
@@ -1396,7 +1396,7 @@
         /// </summary>
         public string childAccountId;
         /// <summary>
-        /// 鍒嗕韩绫诲瀷 1.ROOM  2.DEVICE 3.SCENE
+        /// 鍒嗕韩绫诲瀷 1.ROOM  2.DEVICE 3.SCENE 4.DEVICE_GROUP_CONTROL
         /// </summary>
         public string shareType = "DEVICE";
     }
diff --git a/HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs b/HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs
index 88dfbdf..c7174a6 100644
--- a/HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs
+++ b/HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs
@@ -291,7 +291,8 @@
                         {
                             var ezChildAccessToken = result.Data.ToString();
 
-                            Com.Videogo.Hdl.HDLEzvizSdk.Instance.Init(Application.Activity.Application, ezChildAccessToken, UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken, OnAppConfig.Instance.RequestHttpsHost, "1aa98a90489b4838b966b57018b4b04b", 1, DB_ResidenceData.Instance.CurrentRegion.id);
+                            Com.Videogo.Hdl.HDLEzvizSdk.Instance.Init(Application.Activity.Application, ezChildAccessToken, UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken, OnAppConfig.Instance.RequestHttpsHost, "1aa98a90489b4838b966b57018b4b04b", 1, DB_ResidenceData.Instance.CurrentRegion.id,
+                                HttpUtil.APP_KEY, HttpUtil.SECRET_KEY);
 
                             Com.Videogo.Hdl.HDLEzvizSdk.Instance.JumpToEZRealPlayActivity(Application.Activity,
                                 mESVideoInfo.Lc_DeviceId, mESVideoInfo.DeviceSerial, mESVideoInfo.spk, mESVideoInfo.msgId);
diff --git a/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs b/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs
index d26ebf5..a7a7453 100644
--- a/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs
+++ b/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs
@@ -426,9 +426,39 @@
             { IsBackground = false }.Start();
 
         }
+        /// <summary>
+        /// 鎷掓帴锛堟寕娈垫墍鏈夊懠鍙級
+        /// </summary>
+        public void HDLRejectCallIn() {
+
+            if (CheckmHDLCallVideoInfoIsNullOrEmpty()) return;
+
+            new Thread(() =>
+            {
+                Dictionary<string, object> dic = new Dictionary<string, object>();
+                dic.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+                dic.Add("deviceId", mHDLCallVideoInfo.DeviceId);
+                dic.Add("interphoneType", "HDL");
+                dic.Add("callId", mHDLCallVideoInfo.CallId);//鍛煎彨id
+
+                var requestJson = HttpUtil.GetSignRequestJson(dic);
+                var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_VideoDevice_RejectCallIn, requestJson);
+                if (revertObj.Code == StateCode.SUCCESS)
+                {
+
+                }
+                else
+                {
+                    Utlis.WriteLine("POST 鏇存柊鐘舵�佸け璐� code: " + revertObj.Code);
+                }
+
+            })
+            { IsBackground = false }.Start();
+        }
+
         #endregion
 
-     
+
         #region 鈻�  --  璺宠浆鐩戞帶椤甸潰_______________________________
         /// <summary>
         /// 璺宠浆鐩戞帶椤甸潰
@@ -734,6 +764,7 @@
             {
                 //showToast("鎷掓帴");
                 hdlLinphone.HDLUpdateCallStatus(CallStatusType.REJECT, InterphoneType.HDL);
+                hdlLinphone.HDLRejectCallIn();
             }
 
             /// <summary>
diff --git a/HDL_ON/Entity/Function/EmptyXmlFile.xml b/HDL_ON/Entity/Function/EmptyXmlFile.xml
new file mode 100644
index 0000000..1ab2cfe
--- /dev/null
+++ b/HDL_ON/Entity/Function/EmptyXmlFile.xml
@@ -0,0 +1,1568 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<manifest
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:versionCode="202404121"
+    android:versionName="2.4.4"
+    android:compileSdkVersion="29"
+    android:compileSdkVersionCodename="10"
+    package="com.hdl.onpro"
+    platformBuildVersionCode="29"
+    platformBuildVersionName="10">
+
+    <uses-sdk
+        android:minSdkVersion="26"
+        android:targetSdkVersion="29" />
+
+    <uses-permission
+        android:name="android.permission.RECEIVE_SMS" />
+
+    <uses-permission
+        android:name="android.permission.USE_CREDENTIALS" />
+
+    <uses-permission
+        android:name="android.permission.FLASHLIGHT" />
+
+    <uses-permission
+        android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
+
+    <uses-permission
+        android:name="android.permission.CHANGE_WIFI_STATE" />
+
+    <uses-permission
+        android:name="android.permission.READ_SETTINGS" />
+
+    <uses-permission
+        android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
+
+    <uses-permission
+        android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
+
+    <uses-permission
+        android:name="android.permission.VIBRATE" />
+
+    <uses-permission
+        android:name="android.permission.CAMERA" />
+
+    <uses-feature
+        android:name="android.hardware.camera" />
+
+    <uses-feature
+        android:name="android.hardware.camera.autofocus" />
+
+    <uses-permission
+        android:name="android.permission.INTERNET" />
+
+    <uses-permission
+        android:name="android.permission.CHANGE_NETWORK_STATE" />
+
+    <uses-permission
+        android:name="android.permission.ACCESS_NETWORK_STATE" />
+
+    <uses-permission
+        android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+
+    <uses-permission
+        android:name="android.permission.RECORD_AUDIO" />
+
+    <uses-permission
+        android:name="android.permission.SYSTEM_ALERT_WINDOW" />
+
+    <uses-permission
+        android:name="android.permission.ACCESS_FINE_LOCATION" />
+
+    <uses-permission
+        android:name="android.permission.ACCESS_COARSE_LOCATION" />
+
+    <uses-permission
+        android:name="android.permission.READ_EXTERNAL_STORAGE" />
+
+    <uses-permission
+        android:name="android.permission.FOREGROUND_SERVICE" />
+
+    <uses-permission
+        android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
+
+    <permission
+        android:name="com.hdl.onpro.permission.JPUSH_MESSAGE"
+        android:protectionLevel="0x2" />
+
+    <uses-permission
+        android:name="com.hdl.onpro.permission.JPUSH_MESSAGE" />
+
+    <uses-permission
+        android:name="android.permission.RECEIVE_USER_PRESENT" />
+
+    <uses-permission
+        android:name="android.permission.READ_PHONE_STATE" />
+
+    <uses-permission
+        android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
+
+    <uses-permission
+        android:name="android.permission.ACCESS_WIFI_STATE" />
+
+    <uses-permission
+        android:name="android.permission.READ_LOGS" />
+
+    <application
+        android:theme="@ref/0x7f1000bf"
+        android:label="On Pro"
+        android:icon="@ref/0x7f080229"
+        android:name="crc64a361f3362083484c.Application"
+        android:debuggable="false"
+        android:allowBackup="true"
+        android:largeHeap="true"
+        android:extractNativeLibs="true"
+        android:networkSecurityConfig="@ref/0x7f120003"
+        android:requestLegacyExternalStorage="true">
+
+        <provider
+            android:name="android.support.v4.content.FileProvider"
+            android:exported="false"
+            android:authorities="com.hdl.onpro.fileProvider"
+            android:grantUriPermissions="true">
+
+            <meta-data
+                android:name="android.support.FILE_PROVIDER_PATHS"
+                android:resource="@ref/0x7f120000" />
+        </provider>
+
+        <provider
+            android:name="Shared.Droid.JPush.HmsContentProvider"
+            android:exported="false"
+            android:authorities="com.hdl.onpro.hmspushprovider" />
+
+        <service
+            android:name="cn.jpush.android.service.PushService"
+            android:enabled="true"
+            android:exported="false">
+
+            <intent-filter>
+
+                <action
+                    android:name="cn.jpush.android.intent.REGISTER" />
+
+                <action
+                    android:name="cn.jpush.android.intent.REPORT" />
+
+                <action
+                    android:name="cn.jpush.android.intent.PushService" />
+
+                <action
+                    android:name="cn.jpush.android.intent.PUSH_TIME" />
+            </intent-filter>
+        </service>
+
+        <provider
+            android:name="cn.jpush.android.service.DataProvider"
+            android:exported="true"
+            android:authorities="com.hdl.onpro.DataProvider" />
+
+        <service
+            android:name="cn.jpush.android.service.DaemonService"
+            android:enabled="false"
+            android:exported="true">
+
+            <intent-filter>
+
+                <action
+                    android:name="cn.jpush.android.intent.DaemonService" />
+
+                <category
+                    android:name="com.hdl.onpro" />
+            </intent-filter>
+        </service>
+
+        <provider
+            android:name="cn.jpush.android.service.DownloadProvider"
+            android:exported="true"
+            android:authorities="com.hdl.onpro.DownloadProvider" />
+
+        <receiver
+            android:name="cn.jpush.android.service.PushReceiver"
+            android:enabled="true">
+
+            <intent-filter
+                android:priority="1000">
+
+                <action
+                    android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />
+
+                <category
+                    android:name="com.hdl.onpro" />
+            </intent-filter>
+
+            <intent-filter>
+
+                <action
+                    android:name="android.intent.action.USER_PRESENT" />
+
+                <action
+                    android:name="android.net.conn.CONNECTIVITY_CHANGE" />
+            </intent-filter>
+
+            <intent-filter>
+
+                <action
+                    android:name="android.intent.action.PACKAGE_ADDED" />
+
+                <action
+                    android:name="android.intent.action.PACKAGE_REMOVED" />
+
+                <data
+                    android:scheme="package" />
+            </intent-filter>
+        </receiver>
+
+        <activity
+            android:theme="@ref/0x01030006"
+            android:name="cn.jpush.android.ui.PushActivity"
+            android:exported="false"
+            android:configChanges="0xa0">
+
+            <intent-filter>
+
+                <action
+                    android:name="cn.jpush.android.ui.PushActivity" />
+
+                <category
+                    android:name="android.intent.category.DEFAULT" />
+
+                <category
+                    android:name="com.hdl.onpro" />
+            </intent-filter>
+        </activity>
+
+        <activity
+            android:theme="@ref/0x7f1000be"
+            android:name="cn.jpush.android.ui.PopWinActivity"
+            android:exported="false"
+            android:configChanges="0xa0">
+
+            <intent-filter>
+
+                <category
+                    android:name="android.intent.category.DEFAULT" />
+
+                <category
+                    android:name="com.hdl.onpro" />
+            </intent-filter>
+        </activity>
+
+        <activity
+            android:theme="@ref/0x01030010"
+            android:name="cn.jpush.android.service.DActivity"
+            android:enabled="true"
+            android:exported="true"
+            android:taskAffinity="jpush.custom">
+
+            <intent-filter>
+
+                <action
+                    android:name="cn.jpush.android.intent.DActivity" />
+
+                <category
+                    android:name="com.hdl.onpro" />
+            </intent-filter>
+        </activity>
+
+        <receiver
+            android:name="cn.jpush.android.service.AlarmReceiver" />
+
+        <receiver
+            android:name="cn.jpush.android.service.SchedulerReceiver"
+            android:exported="false" />
+
+        <activity
+            android:theme="@ref/0x01030010"
+            android:name="cn.jpush.android.service.JNotifyActivity"
+            android:exported="true"
+            android:taskAffinity="jpush.custom">
+
+            <intent-filter>
+
+                <action
+                    android:name="cn.jpush.android.intent.JNotifyActivity" />
+
+                <category
+                    android:name="com.hdl.onpro" />
+            </intent-filter>
+        </activity>
+
+        <meta-data
+            android:name="JPUSH_CHANNEL"
+            android:value="developer-default" />
+
+        <meta-data
+            android:name="JPUSH_APPKEY"
+            android:value="cbd90743ac45cbca06c8118b" />
+
+        <meta-data
+            android:name="XIAOMI_APPKEY"
+            android:value="MI-5871892343860" />
+
+        <meta-data
+            android:name="XIAOMI_APPID"
+            android:value="MI-2882303761518923860" />
+
+        <meta-data
+            android:name="OPPO_APPKEY"
+            android:value="OP-e942dafe77cf4b9f868d5421d701655a" />
+
+        <meta-data
+            android:name="OPPO_APPID"
+            android:value="OP-30619979" />
+
+        <meta-data
+            android:name="OPPO_APPSECRET"
+            android:value="OP-11d511c42f654cafac99588322681003" />
+
+        <meta-data
+            android:name="com.amap.api.v2.apikey"
+            android:value="9901dd06e30b229efdd4c5bf5e076224" />
+
+        <receiver
+            android:name="com.hdl.onpro.JPushFirmBroadcast"
+            android:enabled="true"
+            android:exported="false">
+
+            <intent-filter>
+
+                <action
+                    android:name="com.hdl.onpro.jpush.firm.NOTIFICATION_OPENED" />
+
+                <category
+                    android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </receiver>
+
+        <activity
+            android:theme="@ref/0x01030010"
+            android:name="com.hdl.onpro.JPushOpenClickActivity"
+            android:enabled="true"
+            android:exported="true">
+
+            <intent-filter>
+
+                <action
+                    android:name="com.hdl.onpro.JPushOpenClickActivity" />
+
+                <action
+                    android:name="android.intent.action.VIEW" />
+
+                <category
+                    android:name="com.hdl.onpro" />
+
+                <category
+                    android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
+        <activity
+            android:theme="@ref/0x7f1000dd"
+            android:name="com.hdl.onpro.SplashActivity"
+            android:exported="true"
+            android:launchMode="2"
+            android:screenOrientation="1">
+
+            <intent-filter>
+
+                <action
+                    android:name="android.intent.action.MAIN" />
+
+                <category
+                    android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+
+            <intent-filter>
+
+                <action
+                    android:name="com.hdl.onpro.SplashActivity" />
+
+                <action
+                    android:name="android.intent.action.VIEW" />
+            </intent-filter>
+        </activity>
+
+        <receiver
+            android:name="crc64a361f3362083484c.JPushReceiver"
+            android:enabled="true"
+            android:exported="false">
+
+            <intent-filter>
+
+                <action
+                    android:name="cn.jpush.android.intent.RECEIVE_MESSAGE" />
+
+                <category
+                    android:name="com.hdl.onpro" />
+            </intent-filter>
+        </receiver>
+
+        <service
+            android:name="crc64a361f3362083484c.JPushService"
+            android:enabled="true"
+            android:exported="false"
+            android:process=":pushcore">
+
+            <intent-filter>
+
+                <action
+                    android:name="cn.jiguang.user.service.action" />
+            </intent-filter>
+        </service>
+
+        <activity
+            android:theme="@ref/0x7f1000c0"
+            android:label="VideoActivity"
+            android:name="crc64a361f3362083484c.VideoActivity"
+            android:launchMode="3"
+            android:screenOrientation="1"
+            android:configChanges="0x24b4"
+            android:windowSoftInputMode="0x10" />
+
+        <activity
+            android:theme="@ref/0x7f1000c0"
+            android:label="LeChengVideoActivity"
+            android:name="crc64a361f3362083484c.LeChengVideoActivity"
+            android:launchMode="3"
+            android:screenOrientation="1"
+            android:configChanges="0x24b4"
+            android:windowSoftInputMode="0x10" />
+
+        <activity
+            android:theme="@ref/0x7f1000c0"
+            android:label="WebviewActivity"
+            android:name="crc64a361f3362083484c.WebviewActivity" />
+
+        <activity
+            android:theme="@ref/0x7f1000c0"
+            android:label="AgreementActivity"
+            android:name="crc64a361f3362083484c.AgreementActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000c0"
+            android:label="CustomCaptureActivity"
+            android:name="crc64a361f3362083484c.CustomCaptureActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:label="ScanActivity"
+            android:name="crc64a361f3362083484c.ScanActivity" />
+
+        <activity
+            android:theme="@ref/0x01030007"
+            android:name="crc6468d826ada19e2599.CameraActivity" />
+
+        <activity
+            android:name="crc6468d826ada19e2599.BaseActivity"
+            android:launchMode="2"
+            android:screenOrientation="1"
+            android:configChanges="0x24b4"
+            android:windowSoftInputMode="0x10" />
+
+        <service
+            android:name="crc6468d826ada19e2599.GPSLocationService" />
+
+        <service
+            android:name="crc640a749fedc412b87d.MusicService" />
+
+        <service
+            android:name="crc64a98abb514ffad9f1.KeepAliveService" />
+
+        <activity
+            android:label="Scanner"
+            android:name="crc6480997b3ef81bf9b2.ZxingActivity"
+            android:configChanges="0x1a0" />
+
+        <provider
+            android:name="mono.MonoRuntimeProvider"
+            android:exported="false"
+            android:authorities="com.hdl.onpro.mono.MonoRuntimeProvider.__mono_init__"
+            android:initOrder="1999999999" />
+
+        <provider
+            android:name="mono.MonoRuntimeProvider_1"
+            android:exported="false"
+            android:process=":pushcore"
+            android:authorities="com.hdl.onpro.mono.MonoRuntimeProvider_1.__mono_init__"
+            android:initOrder="1999999998" />
+
+        <meta-data
+            android:name="android.support.VERSION"
+            android:value="26.1.0" />
+
+        <activity
+            android:theme="@ref/0x7f100009"
+            android:name="com.lechange.demo.ui.EnvGuideActivity"
+            android:launchMode="1"
+            android:screenOrientation="1"
+            android:configChanges="0x4a4" />
+
+        <activity
+            android:theme="@ref/0x7f100009"
+            android:name="com.lechange.demo.ui.DeviceListActivity"
+            android:exported="false"
+            android:launchMode="1"
+            android:screenOrientation="1"
+            android:configChanges="0x4a4" />
+
+        <activity
+            android:theme="@ref/0x7f100009"
+            android:name="com.lechange.demo.ui.DeviceDetailActivity"
+            android:exported="false"
+            android:launchMode="1"
+            android:screenOrientation="1"
+            android:configChanges="0x4a4" />
+
+        <activity
+            android:theme="@ref/0x7f100009"
+            android:name="com.lechange.demo.ui.DeviceOnlineMediaPlayActivity"
+            android:exported="false"
+            android:launchMode="1"
+            android:screenOrientation="1"
+            android:configChanges="0x4a4" />
+
+        <activity
+            android:theme="@ref/0x7f100009"
+            android:name="com.lechange.demo.ui.DeviceRecordListActivity"
+            android:exported="false"
+            android:launchMode="1"
+            android:screenOrientation="1"
+            android:configChanges="0x4a4" />
+
+        <activity
+            android:theme="@ref/0x7f100009"
+            android:name="com.lechange.demo.ui.DeviceRecordPlayActivity"
+            android:exported="false"
+            android:launchMode="1"
+            android:screenOrientation="1"
+            android:configChanges="0x4a4" />
+
+        <service
+            android:name="com.mm.android.deviceaddmodule.services.TimeFilterService" />
+
+        <receiver
+            android:name="com.mm.android.deviceaddmodule.receiver.SucceedClickReceiver" />
+
+        <receiver
+            android:name="com.mm.android.deviceaddmodule.receiver.TimeoutClickReceiver" />
+
+        <activity
+            android:theme="@ref/0x7f10000b"
+            android:label="@ref/0x7f0f02e7"
+            android:name="com.mm.android.deviceaddmodule.DeviceAddActivity"
+            android:exported="false"
+            android:screenOrientation="1"
+            android:configChanges="0x4a4"
+            android:windowSoftInputMode="0x22" />
+
+        <activity
+            android:theme="@ref/0x7f10000b"
+            android:name="com.mm.android.deviceaddmodule.device_wifi.DeviceWifiListActivity"
+            android:exported="false"
+            android:screenOrientation="1"
+            android:configChanges="0x4a4"
+            android:windowSoftInputMode="0x22" />
+
+        <activity
+            android:theme="@ref/0x7f10000b"
+            android:name="com.mm.android.deviceaddmodule.device_wifi.DeviceWifiPasswordActivity"
+            android:exported="false"
+            android:screenOrientation="1"
+            android:configChanges="0x4a4"
+            android:windowSoftInputMode="0x22" />
+
+        <activity
+            android:theme="@ref/0x7f10000b"
+            android:name="com.mm.android.deviceaddmodule.device_wifi.ErrorTipActivity"
+            android:exported="false"
+            android:screenOrientation="1"
+            android:configChanges="0x4a4"
+            android:windowSoftInputMode="0x22" />
+
+        <activity
+            android:theme="@ref/0x7f10000b"
+            android:name="com.mm.android.deviceaddmodule.device_wifi.HiddenWifiActivity"
+            android:exported="false"
+            android:screenOrientation="1"
+            android:configChanges="0x4a4"
+            android:windowSoftInputMode="0x22" />
+
+        <service
+            android:name="com.mm.android.deviceaddmodule.SeachDeviceService" />
+
+        <meta-data
+            android:name="meta-data4type"
+            android:value="@ref/0x7f0f0151" />
+
+        <meta-data
+            android:name="meta-data4host"
+            android:value="@ref/0x7f0f0248" />
+
+        <meta-data
+            android:name="meta-ishttps"
+            android:value="false" />
+
+        <provider
+            android:name="android.support.v4.content.FileProvider"
+            android:exported="false"
+            android:authorities="com.hdl.onpro.fileprovider"
+            android:grantUriPermissions="true">
+
+            <meta-data
+                android:name="android.support.FILE_PROVIDER_PATHS"
+                android:resource="@ref/0x7f120000" />
+        </provider>
+
+        <activity
+            android:theme="@ref/0x7f1001c9"
+            android:name="com.mm.android.deviceaddmodule.mobilecommon.base.ProgressActivity"
+            android:exported="false"
+            android:launchMode="3"
+            android:screenOrientation="1"
+            android:configChanges="0x4a4" />
+
+        <activity
+            android:name="com.widget.jlcountrycode.JLCountryCodeActivity" />
+
+        <activity
+            android:name="com.widget.jlcountrycode.JLSortSelectionActivity" />
+
+        <meta-data
+            android:name="android.arch.lifecycle.VERSION"
+            android:value="27.0.0-SNAPSHOT" />
+
+        <service
+            android:name="com.hdl.on.jpush.androidjpush.JPushService"
+            android:exported="false"
+            android:process=":pushcore">
+
+            <intent-filter>
+
+                <action
+                    android:name="cn.jiguang.user.service.action" />
+            </intent-filter>
+        </service>
+
+        <activity
+            android:theme="@ref/0x7f1000be"
+            android:name="cn.jpush.android.ui.PopWinActivity"
+            android:exported="true">
+
+            <intent-filter>
+
+                <category
+                    android:name="android.intent.category.DEFAULT" />
+
+                <action
+                    android:name="cn.jpush.android.ui.PopWinActivity" />
+
+                <category
+                    android:name="${JPUSH_PKGNAME}" />
+            </intent-filter>
+        </activity>
+
+        <activity
+            android:theme="@ref/0x01030006"
+            android:name="cn.jpush.android.ui.PushActivity"
+            android:exported="true"
+            android:configChanges="0xa0">
+
+            <intent-filter>
+
+                <action
+                    android:name="cn.jpush.android.ui.PushActivity" />
+
+                <category
+                    android:name="android.intent.category.DEFAULT" />
+
+                <category
+                    android:name="${JPUSH_PKGNAME}" />
+            </intent-filter>
+        </activity>
+
+        <provider
+            android:name="cn.jpush.android.service.DataProvider"
+            android:exported="false"
+            android:process=":pushcore"
+            android:authorities="${JPUSH_PKGNAME}.DataProvider" />
+
+        <provider
+            android:name="cn.jpush.android.service.DownloadProvider"
+            android:exported="true"
+            android:authorities="${JPUSH_PKGNAME}.DownloadProvider" />
+
+        <activity
+            android:theme="@ref/0x7f1000ba"
+            android:name="cn.jpush.android.service.JNotifyActivity"
+            android:exported="true"
+            android:taskAffinity="@string/0x29">
+
+            <intent-filter>
+
+                <action
+                    android:name="cn.jpush.android.intent.JNotifyActivity" />
+
+                <category
+                    android:name="android.intent.category.DEFAULT" />
+
+                <category
+                    android:name="com.hdl.onpro" />
+            </intent-filter>
+        </activity>
+
+        <activity
+            android:theme="@ref/0x7f1000ba"
+            android:name="cn.android.service.JTransitActivity"
+            android:exported="true"
+            android:taskAffinity="@string/0x29">
+
+            <intent-filter>
+
+                <action
+                    android:name="cn.android.service.JTransitActivity" />
+
+                <category
+                    android:name="android.intent.category.DEFAULT" />
+
+                <category
+                    android:name="com.hdl.onpro" />
+            </intent-filter>
+        </activity>
+
+        <receiver
+            android:name="cn.jpush.android.asus.AsusPushMessageReceiver"
+            android:exported="false" />
+
+        <service
+            android:name="cn.jpush.android.service.PushService"
+            android:enabled="true"
+            android:exported="false"
+            android:process=":pushcore">
+
+            <intent-filter>
+
+                <action
+                    android:name="cn.jpush.android.intent.REGISTER" />
+
+                <action
+                    android:name="cn.jpush.android.intent.REPORT" />
+
+                <action
+                    android:name="cn.jpush.android.intent.PushService" />
+
+                <action
+                    android:name="cn.jpush.android.intent.PUSH_TIME" />
+            </intent-filter>
+        </service>
+
+        <service
+            android:name="cn.jpush.android.service.DaemonService"
+            android:enabled="true"
+            android:exported="true">
+
+            <intent-filter>
+
+                <action
+                    android:name="cn.jpush.android.intent.DaemonService" />
+
+                <category
+                    android:name="${JPUSH_PKGNAME}" />
+            </intent-filter>
+        </service>
+
+        <activity
+            android:theme="@ref/0x01030010"
+            android:name="cn.jpush.android.service.DActivity"
+            android:enabled="true"
+            android:exported="true"
+            android:taskAffinity="@string/0x29">
+
+            <intent-filter>
+
+                <action
+                    android:name="cn.jpush.android.intent.DActivity" />
+
+                <category
+                    android:name="${JPUSH_PKGNAME}" />
+            </intent-filter>
+
+            <intent-filter>
+
+                <action
+                    android:name="cn.jpush.android.intent.DActivity" />
+
+                <category
+                    android:name="com.hdl.onpro" />
+            </intent-filter>
+        </activity>
+
+        <receiver
+            android:name="cn.jpush.android.service.PushReceiver"
+            android:enabled="true"
+            android:exported="false">
+
+            <intent-filter
+                android:priority="1000">
+
+                <action
+                    android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />
+
+                <category
+                    android:name="${JPUSH_PKGNAME}" />
+            </intent-filter>
+
+            <intent-filter>
+
+                <action
+                    android:name="android.net.conn.CONNECTIVITY_CHANGE" />
+            </intent-filter>
+        </receiver>
+
+        <receiver
+            android:name="cn.jpush.android.service.AlarmReceiver"
+            android:exported="false" />
+
+        <service
+            android:name="com.xiaomi.push.service.XMJobService"
+            android:permission="android.permission.BIND_JOB_SERVICE"
+            android:enabled="true"
+            android:exported="false"
+            android:process=":pushcore" />
+
+        <service
+            android:name="com.xiaomi.push.service.XMPushService"
+            android:enabled="true"
+            android:process=":pushcore" />
+
+        <service
+            android:name="com.xiaomi.mipush.sdk.PushMessageHandler"
+            android:enabled="true"
+            android:exported="true" />
+
+        <service
+            android:name="com.xiaomi.mipush.sdk.MessageHandleService"
+            android:enabled="true" />
+
+        <receiver
+            android:name="com.xiaomi.push.service.receivers.PingReceiver"
+            android:exported="false"
+            android:process=":pushcore">
+
+            <intent-filter>
+
+                <action
+                    android:name="com.xiaomi.push.PING_TIMER" />
+            </intent-filter>
+        </receiver>
+
+        <receiver
+            android:name="cn.jpush.android.service.PluginXiaomiPlatformsReceiver"
+            android:exported="true">
+
+            <intent-filter>
+
+                <action
+                    android:name="com.xiaomi.mipush.RECEIVE_MESSAGE" />
+            </intent-filter>
+
+            <intent-filter>
+
+                <action
+                    android:name="com.xiaomi.mipush.MESSAGE_ARRIVED" />
+            </intent-filter>
+
+            <intent-filter>
+
+                <action
+                    android:name="com.xiaomi.mipush.ERROR" />
+            </intent-filter>
+        </receiver>
+
+        <activity
+            android:theme="@ref/0x01030010"
+            android:name="com.xiaomi.mipush.sdk.NotificationClickedActivity"
+            android:enabled="true"
+            android:exported="true"
+            android:excludeFromRecents="true"
+            android:launchMode="3">
+
+            <meta-data
+                android:name="supportStyle"
+                android:value="scene|voip" />
+        </activity>
+
+        <service
+            android:name="cn.jpush.android.service.PluginHuaweiPlatformsService"
+            android:exported="false">
+
+            <intent-filter>
+
+                <action
+                    android:name="com.huawei.push.action.MESSAGING_EVENT" />
+            </intent-filter>
+        </service>
+
+        <receiver
+            android:name="cn.jpush.android.service.PluginMeizuPlatformsReceiver"
+            android:permission="com.meizu.flyme.permission.PUSH"
+            android:exported="true">
+
+            <intent-filter>
+
+                <action
+                    android:name="com.meizu.flyme.push.intent.MESSAGE" />
+
+                <action
+                    android:name="com.meizu.flyme.push.intent.REGISTER.FEEDBACK" />
+
+                <action
+                    android:name="com.meizu.flyme.push.intent.UNREGISTER.FEEDBACK" />
+
+                <action
+                    android:name="com.meizu.c2dm.intent.REGISTRATION" />
+
+                <action
+                    android:name="com.meizu.c2dm.intent.RECEIVE" />
+
+                <category
+                    android:name="com.hdl.onpro" />
+            </intent-filter>
+        </receiver>
+
+        <service
+            android:name="cn.jpush.android.service.PluginOppoPushService"
+            android:permission="com.coloros.mcs.permission.SEND_MCS_MESSAGE"
+            android:exported="true">
+
+            <intent-filter>
+
+                <action
+                    android:name="com.coloros.mcs.action.RECEIVE_MCS_MESSAGE" />
+            </intent-filter>
+        </service>
+
+        <service
+            android:name="com.heytap.msp.push.service.DataMessageCallbackService"
+            android:permission="com.heytap.mcs.permission.SEND_PUSH_MESSAGE"
+            android:exported="true">
+
+            <intent-filter>
+
+                <action
+                    android:name="com.heytap.mcs.action.RECEIVE_MCS_MESSAGE" />
+
+                <action
+                    android:name="com.heytap.msp.push.RECEIVE_MCS_MESSAGE" />
+            </intent-filter>
+        </service>
+
+        <receiver
+            android:name="cn.jpush.android.service.PluginVivoMessageReceiver"
+            android:exported="false">
+
+            <intent-filter>
+
+                <action
+                    android:name="com.vivo.pushclient.action.RECEIVE" />
+            </intent-filter>
+        </receiver>
+
+        <service
+            android:name="com.vivo.push.sdk.service.CommandClientService"
+            android:permission="com.push.permission.UPSTAGESERVICE"
+            android:exported="true" />
+
+        <activity
+            android:theme="@ref/0x01030010"
+            android:name="com.vivo.push.sdk.LinkProxyClientActivity"
+            android:exported="false"
+            android:screenOrientation="1" />
+
+        <meta-data
+            android:name="JPUSH_APPKEY"
+            android:value="cbd90743ac45cbca06c8118b" />
+
+        <meta-data
+            android:name="sdkVersion"
+            android:value="3100" />
+
+        <meta-data
+            android:name="sdk_version_vivo"
+            android:value="484" />
+
+        <meta-data
+            android:name="local_iv"
+            android:value="MzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsMzIsMzgsMzcsMzYsMzUsMzQsMzMsI0AzNCwzMiwzMywzNywzMywzNCwzMiwzMywzMywzMywzNCw0MSwzNSwzNSwzMiwzMiwjQDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDMyLDM4LDM3LDMzLDM1LDM0LDMzLCNAMzQsMzIsMzMsMzcsMzMsMzQsMzIsMzMsMzMsMzMsMzQsNDEsMzUsMzIsMzIsMzI" />
+
+        <receiver
+            android:name="com.huawei.hms.support.api.push.PushMsgReceiver"
+            android:permission="com.hdl.onpro.permission.PROCESS_PUSH_MSG"
+            android:exported="true"
+            android:directBootAware="true">
+
+            <intent-filter>
+
+                <action
+                    android:name="com.huawei.intent.action.PUSH_DELAY_NOTIFY" />
+
+                <action
+                    android:name="com.huawei.intent.action.PUSH" />
+            </intent-filter>
+        </receiver>
+
+        <receiver
+            android:name="com.huawei.hms.support.api.push.PushReceiver"
+            android:permission="com.hdl.onpro.permission.PROCESS_PUSH_MSG"
+            android:exported="true"
+            android:directBootAware="true">
+
+            <intent-filter>
+
+                <action
+                    android:name="com.huawei.android.push.intent.REGISTRATION" />
+
+                <action
+                    android:name="com.huawei.android.push.intent.RECEIVE" />
+            </intent-filter>
+        </receiver>
+
+        <service
+            android:name="com.huawei.hms.support.api.push.service.HmsMsgService"
+            android:enabled="true"
+            android:exported="true"
+            android:process=":pushservice"
+            android:directBootAware="true">
+
+            <intent-filter>
+
+                <action
+                    android:name="com.huawei.push.msg.NOTIFY_MSG" />
+
+                <action
+                    android:name="com.huawei.push.msg.PASSBY_MSG" />
+            </intent-filter>
+        </service>
+
+        <provider
+            android:name="com.huawei.hms.support.api.push.PushProvider"
+            android:readPermission="com.hdl.onpro.permission.PUSH_PROVIDER"
+            android:writePermission="com.hdl.onpro.permission.PUSH_WRITE_PROVIDER"
+            android:exported="true"
+            android:authorities="com.hdl.onpro.huawei.push.provider" />
+
+        <meta-data
+            android:name="com.huawei.hms.client.service.name:push"
+            android:value="push:6.5.0.300" />
+
+        <meta-data
+            android:name="com.huawei.hms.min_api_level:push:push"
+            android:value="1" />
+
+        <activity
+            android:name="com.huawei.hms.support.api.push.TransActivity"
+            android:exported="false" />
+
+        <meta-data
+            android:name="JPUSH_CHANNEL"
+            android:value="${JPUSH_CHANNEL}" />
+
+        <provider
+            android:name="com.huawei.hms.aaid.InitProvider"
+            android:exported="false"
+            android:authorities="com.hdl.onpro.aaidinitprovider"
+            android:initOrder="500" />
+
+        <meta-data
+            android:name="com.huawei.hms.client.service.name:opendevice"
+            android:value="opendevice:6.3.0.305" />
+
+        <meta-data
+            android:name="com.huawei.hms.min_api_level:opendevice:push"
+            android:value="1" />
+
+        <meta-data
+            android:name="com.huawei.hms.client.service.name:base"
+            android:value="base:6.5.0.300" />
+
+        <meta-data
+            android:name="com.huawei.hms.min_api_level:base:hmscore"
+            android:value="1" />
+
+        <meta-data
+            android:name="availableLoaded"
+            android:value="yes" />
+
+        <activity
+            android:theme="@ref/0x7f1000b0"
+            android:name="com.huawei.hms.activity.BridgeActivity"
+            android:exported="false"
+            android:excludeFromRecents="true"
+            android:screenOrientation="3"
+            android:configChanges="0x40002f84"
+            android:hardwareAccelerated="true">
+
+            <meta-data
+                android:name="hwc-theme"
+                android:value="androidhwext:style/Theme.Emui.Translucent" />
+        </activity>
+
+        <activity
+            android:name="com.huawei.hms.activity.EnableServiceActivity"
+            android:exported="false"
+            android:configChanges="0xda0" />
+
+        <provider
+            android:name="com.huawei.agconnect.core.provider.AGConnectInitializeProvider"
+            android:exported="false"
+            android:authorities="com.hdl.onpro.AGCInitializeProvider" />
+
+        <service
+            android:name="com.huawei.agconnect.core.ServiceDiscovery"
+            android:exported="false" />
+
+        <activity
+            android:theme="@ref/0x7f10000a"
+            android:name="com.zxing.qrcode.CaptureActivity"
+            android:exported="false"
+            android:screenOrientation="1"
+            android:configChanges="0x4a4" />
+
+        <activity
+            android:name="com.hdl.widget.cropimage.CheckPermissionsCropImageActivity" />
+
+        <activity
+            android:name="com.hdl.widget.cropimage.HDLCropImageActivity" />
+
+        <activity
+            android:name="com.hdl.widget.gdmapkit.GDGeoFenceRoundActivity" />
+
+        <activity
+            android:name="com.hdl.widget.gdmapkit.CheckPermissionsActivity" />
+
+        <activity
+            android:theme="@ref/0x7f1001cc"
+            android:name="com.journeyapps.barcodescanner.CaptureActivity"
+            android:clearTaskOnLaunch="true"
+            android:stateNotNeeded="true"
+            android:screenOrientation="6"
+            android:windowSoftInputMode="0x3" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.devicemgt.EzDefenceOptionActivity"
+            android:exported="true" />
+
+        <activity
+            android:theme="@ref/0x7f1000b7"
+            android:name="com.videogo.ui.lock.HistoryImageActivity" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.ezviz.demo.common.CollectDeviceInfoActivity" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.ezviz.demo.streamctrl.RtpStreamPlayActivity" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.ezviz.demo.common.MoreFeaturesEntranceActivity" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="ezviz.ezopensdk.preview.MultiScreenPreviewActivity" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:label="娴嬭瘯鐮佹祦"
+            android:name="com.ezviz.demo.streamctrl.OriginStreamControlActivity" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.MainActivity"
+            android:screenOrientation="1"
+            android:configChanges="0xa0" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="ezviz.ezopensdk.debug.TestActivityForFullSdk"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="ezviz.ezopensdk.add.AddDeviceToAccountActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.main.EzvizWebViewActivity"
+            android:screenOrientation="1"
+            android:configChanges="0xa0" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.remoteplayback.list.EZPlayBackListActivity"
+            android:screenOrientation="5"
+            android:configChanges="0x4a0" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.ui.cameralist.EZCameraListActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.ui.realplay.EZRealPlayActivity"
+            android:screenOrientation="1"
+            android:configChanges="0x4a0" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.ui.message.EZMessageImageActivity2"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.ui.message.EZMessageActivity2"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.ui.lock.TempPasswordActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.ui.lock.AddTempPasswordActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.ui.lock.AddUserActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.ui.lock.AddUseTimesActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.ui.lock.TempPasswordDetailActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.ui.lock.LockHistoryActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.ui.remoteplayback.EZRemotePlayBackActivity"
+            android:screenOrientation="1"
+            android:configChanges="0x4a0" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.devicemgt.EZDeviceSettingActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.devicemgt.ModifyDeviceNameActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.scan.main.CaptureActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.ui.devicelist.SeriesNumSearchActivity"
+            android:launchMode="2"
+            android:screenOrientation="1"
+            android:windowSoftInputMode="0x10" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.ui.devicelist.AutoWifiConnectingActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:label="@ref/0x7f0f0428"
+            android:name="com.videogo.devicemgt.EZUpgradeDeviceActivity" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.ui.LanDevice.LanDeviceActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.ui.LanDevice.LanDevicePlayActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.ui.LanDevice.LanDeviceActivateActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.SelectDeviceList"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.ui.ddns.EZDDNSListActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.OptionActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.videogo.SupportActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.ezviz.demo.videotalk.SafetyHatTalkActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.ezviz.demo.videotalk.WatchVideoTalkActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.ezviz.demo.videotalk.MultiTestActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="com.ezviz.demo.videotalk.MultiVideoTalkActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="ezviz.ezopensdkcommon.configwifi.ManualChooseConfigWifiWayActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="ezviz.ezopensdkcommon.configwifi.ManualInputDeviceHotspotInfoActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="ezviz.ezopensdkcommon.configwifi.AutoWifiPrepareStepOneActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="ezviz.ezopensdkcommon.configwifi.AutoWifiNetConfigActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="ezviz.ezopensdkcommon.configwifi.AutoWifiResetActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="ezviz.ezopensdkcommon.configwifi.ManualConnectDeviceHotspotActivity"
+            android:screenOrientation="1" />
+
+        <activity
+            android:theme="@ref/0x7f1000b8"
+            android:name="ezviz.ezopensdkcommon.configwifi.ConfigWifiExecutingActivity"
+            android:screenOrientation="1" />
+
+        <receiver
+            android:name="com.videogo.ui.cameralist.EZCameraListActivity$NotificationReceiver" />
+
+        <receiver
+            android:name="com.videogo.hdl.CloudBroadcast"
+            android:enabled="true"
+            android:exported="true">
+
+            <intent-filter>
+
+                <action
+                    android:name="hdl.link.broadcast.intent.action" />
+
+                <category
+                    android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </receiver>
+
+        <activity
+            android:name="com.hdl.hdllinphonesdk.activity.HDLLinphoneReverseCallActivity">
+
+            <intent-filter>
+
+                <action
+                    android:name="android.intent.action.MAIN" />
+            </intent-filter>
+        </activity>
+
+        <activity
+            android:name="com.hdl.hdllinphonesdk.activity.HDLLinphoneMonitorActivity" />
+
+        <activity
+            android:name="com.hdl.hdllinphonesdk.activity.HDLLinphoneIntercomActivity" />
+
+        <service
+            android:name="com.hdl.hdllinphonesdk.core.service.HDLLinphoneService" />
+
+        <service
+            android:name="com.tencent.tinker.lib.service.TinkerPatchService"
+            android:exported="false"
+            android:process=":patch" />
+
+        <service
+            android:name="com.tencent.tinker.lib.service.TinkerPatchService$InnerService"
+            android:exported="false"
+            android:process=":patch" />
+
+        <service
+            android:name="com.tencent.tinker.lib.service.DefaultTinkerResultService"
+            android:exported="false" />
+    </application>
+
+    <uses-permission
+        android:name="android.permission.USE_FINGERPRINT" />
+
+    <uses-permission
+        android:name="android.permission.USE_BIOMETRIC" />
+
+    <uses-permission
+        android:name="android.permission.BLUETOOTH" />
+
+    <uses-permission
+        android:name="android.permission.BLUETOOTH_ADMIN" />
+
+    <uses-permission
+        android:name="android.permission.POST_NOTIFICATIONS" />
+
+    <uses-permission
+        android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" />
+
+    <uses-permission
+        android:name="com.vivo.notification.permission.BADGE_ICON" />
+
+    <uses-permission
+        android:name="com.hihonor.android.launcher.permission.CHANGE_BADGE" />
+
+    <uses-permission
+        android:name="android.permission.GET_TASKS" />
+
+    <permission
+        android:name="com.hdl.onpro.permission.MIPUSH_RECEIVE"
+        android:protectionLevel="0x2" />
+
+    <uses-permission
+        android:name="com.hdl.onpro.permission.MIPUSH_RECEIVE" />
+
+    <uses-permission
+        android:name="com.coloros.mcs.permission.RECIEVE_MCS_MESSAGE" />
+
+    <uses-permission
+        android:name="com.heytap.mcs.permission.RECIEVE_MCS_MESSAGE" />
+
+    <permission
+        android:name="com.hdl.onpro.permission.PROCESS_PUSH_MSG"
+        android:protectionLevel="0x2" />
+
+    <permission
+        android:name="com.hdl.onpro.permission.PUSH_PROVIDER"
+        android:protectionLevel="0x2" />
+
+    <permission
+        android:name="com.hdl.onpro.permission.PUSH_WRITE_PROVIDER"
+        android:protectionLevel="0x2" />
+
+    <uses-permission
+        android:name="com.hdl.onpro.permission.PROCESS_PUSH_MSG" />
+
+    <uses-permission
+        android:name="com.hdl.onpro.permission.PUSH_PROVIDER" />
+
+    <uses-permission
+        android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
+
+    <uses-permission
+        android:name="android.permission.QUERY_ALL_PACKAGES" />
+
+    <queries>
+
+        <intent>
+
+            <action
+                android:name="com.huawei.hms.core.aidlservice" />
+        </intent>
+
+        <intent>
+
+            <action
+                android:name="com.huawei.hms.core" />
+        </intent>
+    </queries>
+
+    <uses-permission
+        android:name="android.permission.CHANGE_CONFIGURATION" />
+
+    <uses-permission
+        android:name="android.permission.WAKE_LOCK" />
+
+    <uses-permission
+        android:name="android.permission.WRITE_SETTINGS" />
+
+    <uses-feature
+        android:name="android.hardware.camera.front"
+        android:required="false" />
+
+    <uses-feature
+        android:name="android.hardware.camera.flash"
+        android:required="false" />
+
+    <uses-feature
+        android:name="android.hardware.screen.landscape"
+        android:required="false" />
+
+    <uses-feature
+        android:name="android.hardware.wifi"
+        android:required="false" />
+
+    <permission
+        android:name="com.hdl.onpro.push.sdk.permission.EZVIZ_MESSAGE"
+        android:protectionLevel="0x2" />
+
+    <permission
+        android:name="com.hdl.onpro.permission.C2D_MESSAGE"
+        android:protectionLevel="0x2" />
+
+    <uses-permission
+        android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
+
+    <uses-permission
+        android:name="com.hdl.onpro.push.sdk.permission.EZVIZ_MESSAGE" />
+
+    <uses-permission
+        android:name="com.hdl.onpro.permission.C2D_MESSAGE" />
+
+    <uses-permission
+        android:name="com.google.android.c2dm.permission.RECEIVE" />
+
+    <uses-permission
+        android:name="android.permission.GET_ACCOUNTS" />
+</manifest>
diff --git a/HDL_ON/Entity/Function/Scene.cs b/HDL_ON/Entity/Function/Scene.cs
index 1e92f33..9b57845 100644
--- a/HDL_ON/Entity/Function/Scene.cs
+++ b/HDL_ON/Entity/Function/Scene.cs
@@ -729,6 +729,7 @@
         /// <summary>
         /// 灞炴�х殑鍊煎垪琛�
         /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
         public List<string> valueList = new List<string>();
         /// <summary>
         /// 灞炴�у悕绉版樉绀烘枃鏈�
@@ -794,6 +795,7 @@
             return text;
         }
 
+        [Newtonsoft.Json.JsonIgnore]
         public string UintString = "";
 
         /// <summary>
diff --git a/HDL_ON/Entity/Function/Sensor.cs b/HDL_ON/Entity/Function/Sensor.cs
index 8a06e8b..1cf5bab 100644
--- a/HDL_ON/Entity/Function/Sensor.cs
+++ b/HDL_ON/Entity/Function/Sensor.cs
@@ -1,5 +1,7 @@
 锘縰sing System;
 using System.Collections.Generic;
+using Newtonsoft.Json.Linq;
+using Shared;
 
 namespace HDL_ON.Entity
 {
@@ -82,24 +84,29 @@
             function.SetAttrState(FunctionAttributeKey.Value, value);
         }
 
-        List<string> _intervalValue = new List<string>();
-
-        public void SetIntervalValue(List<string> intervalValue)
-        {
-            _intervalValue = intervalValue;
-        }
 
         /// <summary>
         /// 姣忎釜绛夌骇瀵瑰尯闂村��
         /// </summary>
-        public List<string> GetIntervalValue(string spk)
+        public List<string> GetIntervalValue(Function function)
         {
-            //if (_intervalValue.Count != 0)
-            //{
-            //    return _intervalValue;
-            //}
-            _intervalValue = new List<string>();
-            switch (spk)
+            List<string> _intervalValue = new List<string>();
+            if (function.attrKeyConfigs.Count > 0)
+            {
+                foreach (var attrKey in function.attrKeyConfigs)
+                {
+                    if (function.spk.Replace(".", "").Contains(attrKey.key.Replace(".", "")))
+                    {
+                        foreach (var info in attrKey.configs)
+                        {
+                            _intervalValue.Add(info.start + " ~ " + info.end);
+                        }
+                        return _intervalValue;
+                    }
+                }
+            }
+
+            switch (function.spk)
             {
                 case SPK.SensorPm25:
                     _intervalValue.Add("0 ~ 50");
@@ -155,7 +162,6 @@
 
             if (function.attrKeyConfigs.Count > 0)
             {
-
                 foreach (var attrKey in function.attrKeyConfigs)
                 {
                     if (function.spk.Replace(".", "").Contains(attrKey.key.Replace(".", "")))
@@ -175,7 +181,7 @@
                     unit = "掳C";
                     break;
                 case SPK.SensorTVOC:
-                    unit = "PPB";
+                    unit = "mg/m鲁";
                     break;
                 case SPK.SensorCO2:
                     unit = "PPM";
@@ -194,10 +200,25 @@
         /// <summary>
         /// 姣忎釜绛夌骇鐨勯鑹插��
         /// </summary>
-        public List<uint> GetLevelColorList(string spk)
+        public List<uint> GetLevelColorList(Function function)
         {
             var _levelColorList = new List<uint>();
-            switch (spk)
+            if (function.attrKeyConfigs.Count > 0)
+            {
+                foreach (var attrKey in function.attrKeyConfigs)
+                {
+                    if (function.spk.Replace(".", "").Contains(attrKey.key.Replace(".", "")))
+                    {
+                        foreach (var info in attrKey.configs)
+                        {
+                            _levelColorList.Add(Convert.ToUInt32(info.color, 16));
+                        }
+                        return _levelColorList;
+                    }
+                }
+            }
+
+            switch (function.spk)
             {
                 case SPK.SensorPm25:
                     _levelColorList.Add(0xFFADE764);
@@ -251,53 +272,69 @@
         /// <summary>
         /// 姣忎釜绛夌骇鐨勫悕绉�
         /// </summary>
-        public List<int> GetLevelTextList(string spk)
+        public List<string> GetLevelTextList(Function function)
         {
-            var _levelTextList = new List<int>();
-            switch (spk)
+            var _levelTextList = new List<string>();
+            if (function.attrKeyConfigs.Count > 0)
+            {
+                foreach (var attrKey in function.attrKeyConfigs)
+                {
+                    if (function.spk.Replace(".", "").Contains(attrKey.key.Replace(".", "")))
+                    {
+                        foreach (var info in attrKey.configs)
+                        {
+                            _levelTextList.Add(info.desc);
+                        }
+                        return _levelTextList;
+                    }
+                }
+            }
+
+
+            switch (function.spk)
             {
                 case SPK.SensorPm25:
                 case SPK.SensorPm10:
-                    _levelTextList.Add(StringId.Great);
-                    _levelTextList.Add(StringId.Good);
-                    _levelTextList.Add(StringId.MildPollution);
-                    _levelTextList.Add(StringId.HeavyPollution);
+                    _levelTextList.Add(Language.StringByID(StringId.Great));
+                    _levelTextList.Add(Language.StringByID(StringId.Good));
+                    _levelTextList.Add(Language.StringByID(StringId.MildPollution));
+                    _levelTextList.Add(Language.StringByID(StringId.HeavyPollution));
                     break;
                 case SPK.SensorCO2:
-                    _levelTextList.Add(StringId.SensorReferenceTipCO2Level1);
-                    _levelTextList.Add(StringId.SensorReferenceTipCO2Level2);
-                    _levelTextList.Add(StringId.SensorReferenceTipCO2Level3);
-                    _levelTextList.Add(StringId.SensorReferenceTipCO2Level4);
+                    _levelTextList.Add(Language.StringByID(StringId.SensorReferenceTipCO2Level1));
+                    _levelTextList.Add(Language.StringByID(StringId.SensorReferenceTipCO2Level2));
+                    _levelTextList.Add(Language.StringByID(StringId.SensorReferenceTipCO2Level3));
+                    _levelTextList.Add(Language.StringByID(StringId.SensorReferenceTipCO2Level4));
                     break;
                 case SPK.SensorTemperature:
-                    _levelTextList.Add(StringId.ExtremelyCold);
-                    _levelTextList.Add(StringId.Cold);
-                    _levelTextList.Add(StringId.SlightlyCold);
-                    _levelTextList.Add(StringId.Comfortable);
-                    _levelTextList.Add(StringId.TepidFever);
-                    _levelTextList.Add(StringId.Heat_SensorTip);
-                    _levelTextList.Add(StringId.ExtremeHeat);
+                    _levelTextList.Add(Language.StringByID(StringId.ExtremelyCold));
+                    _levelTextList.Add(Language.StringByID(StringId.Cold));
+                    _levelTextList.Add(Language.StringByID(StringId.SlightlyCold));
+                    _levelTextList.Add(Language.StringByID(StringId.Comfortable));
+                    _levelTextList.Add(Language.StringByID(StringId.TepidFever));
+                    _levelTextList.Add(Language.StringByID(StringId.Heat_SensorTip));
+                    _levelTextList.Add(Language.StringByID(StringId.ExtremeHeat));
                     break;
                 case SPK.SensorTVOC:
-                    _levelTextList.Add(StringId.SensorReferenceTVOCTipLevel1);
-                    _levelTextList.Add(StringId.SensorReferenceTVOCTipLevel2);
-                    _levelTextList.Add(StringId.SensorReferenceTVOCTipLevel3);
-                    _levelTextList.Add(StringId.SensorReferenceTVOCTipLevel4);
+                    _levelTextList.Add(Language.StringByID(StringId.SensorReferenceTVOCTipLevel1));
+                    _levelTextList.Add(Language.StringByID(StringId.SensorReferenceTVOCTipLevel2));
+                    _levelTextList.Add(Language.StringByID(StringId.SensorReferenceTVOCTipLevel3));
+                    _levelTextList.Add(Language.StringByID(StringId.SensorReferenceTVOCTipLevel4));
                     break;
                 case SPK.SensorHumidity:
-                    _levelTextList.Add(StringId.SensorReferenceHumidityTipLevel1);
-                    _levelTextList.Add(StringId.SensorReferenceHumidityTipLevel2);
-                    _levelTextList.Add(StringId.SensorReferenceHumidityTipLevel3);
+                    _levelTextList.Add(Language.StringByID(StringId.SensorReferenceHumidityTipLevel1));//娼箍
+                    _levelTextList.Add(Language.StringByID(StringId.SensorReferenceHumidityTipLevel2));
+                    _levelTextList.Add(Language.StringByID(StringId.SensorReferenceHumidityTipLevel3));//骞茬嚗
                     break;
                 case SPK.SensorHcho:
-                    _levelTextList.Add(StringId.Class_I_BuildingStandard);
-                    _levelTextList.Add(StringId.SecondaryBuildingStandard);
-                    _levelTextList.Add(StringId.ExceedingTheStandard);
+                    _levelTextList.Add(Language.StringByID(StringId.Class_I_BuildingStandard));
+                    _levelTextList.Add(Language.StringByID(StringId.SecondaryBuildingStandard));
+                    _levelTextList.Add(Language.StringByID(StringId.ExceedingTheStandard));
                     break;
                 default:
-                    _levelTextList.Add(99999999);
-                    _levelTextList.Add(99999999);
-                    _levelTextList.Add(99999999);
+                    _levelTextList.Add("");
+                    _levelTextList.Add("");
+                    _levelTextList.Add("");
                     break;
             }
             return _levelTextList;
@@ -390,7 +427,7 @@
                         }
                         foreach (var info in attrKey.configs)
                         {
-                            if ((Convert.ToDouble(info.start) < values) && (Convert.ToDouble(info.end) >= values))
+                            if ((Convert.ToDouble(info.start) <= values) && (Convert.ToDouble(info.end) >= values))
                             {
                                 return level;
                             }
@@ -468,6 +505,10 @@
                     else
                         level = 3;
                     break;
+                default:
+                    level = 1;
+                    break;
+
             }
             return level;
         }
diff --git a/HDL_ON/Entity/Room.cs b/HDL_ON/Entity/Room.cs
index 2606c6c..2516c3e 100644
--- a/HDL_ON/Entity/Room.cs
+++ b/HDL_ON/Entity/Room.cs
@@ -508,6 +508,7 @@
                 {
                     if (g.roomIds.Contains(roomId) && roomId != null)
                     {
+                        g.deviceId = g.userDeviceGroupControlId;
                         functions.Add(g);
                     }
                 }
diff --git a/HDL_ON/HDL_ON.projitems b/HDL_ON/HDL_ON.projitems
index 0e1d1cc..59a87d6 100644
--- a/HDL_ON/HDL_ON.projitems
+++ b/HDL_ON/HDL_ON.projitems
@@ -594,6 +594,8 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Constant.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SceneAutomationListChoosePage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SceneTargetTypeChoosePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\AliyunLog\AliyunLogClient.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\AliyunLog\AliyunLogInvokeAsync.cs" />
   </ItemGroup>
   <ItemGroup>
     <Folder Include="$(MSBuildThisFileDirectory)Entity\Device\" />
@@ -627,5 +629,6 @@
     <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Aks\CommonView\" />
     <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Aks\Entity\" />
     <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\HisenseTV \" />
+    <Folder Include="$(MSBuildThisFileDirectory)Common\AliyunLog\" />
   </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/HDL_ON/UI/MainPage.cs b/HDL_ON/UI/MainPage.cs
index 5685fc8..a73d76b 100644
--- a/HDL_ON/UI/MainPage.cs
+++ b/HDL_ON/UI/MainPage.cs
@@ -26,7 +26,7 @@
         /// <summary>
         /// 鐗堟湰鍙�
         /// </summary>
-        public static string VersionString = "2.4.3";
+        public static string VersionString = "2.4.8";
         ///// <summary>
         ///// 瀹㈡埛绔被鍨�
         ///// </summary>
@@ -650,6 +650,14 @@
 #if DEBUG
             Console.WriteLine($"{tag}-->{msg}");
 #endif
+            if (tag == "error")
+            {
+                new System.Threading.Thread(async () =>
+                {
+                    await Common.AliyunLog.AliyunLogClient.PostLogs("鑷畾涔塃rror鏃ュ織", msg);
+                })
+                { IsBackground = true }.Start();
+            }
         }
 
 
diff --git a/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs b/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
index bfedba6..f45fb41 100644
--- a/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
+++ b/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
@@ -169,7 +169,7 @@
                         break;
                     case SPK.MusicStandard:
                     case SPK.AvMusic:
-                        Music.A31MusicModel.Current = new Music.A31MusicModel { functionMusic = function };//褰撳墠鎾斁鍣�
+                        Music.A31MusicModel.Current = new Music.A31MusicModel { functionMusic = function ,LastDateTime = DateTime.Now};//褰撳墠鎾斁鍣�
                         var a31PlayMusicPage = new Music.A31PlayMusicPage();
                         MainPage.BasePageView.AddChidren(a31PlayMusicPage);
                         a31PlayMusicPage.Show();
diff --git a/HDL_ON/UI/UI0-Stan/Logic/HdlMessageLogic.cs b/HDL_ON/UI/UI0-Stan/Logic/HdlMessageLogic.cs
index 6a0f24c..110980b 100644
--- a/HDL_ON/UI/UI0-Stan/Logic/HdlMessageLogic.cs
+++ b/HDL_ON/UI/UI0-Stan/Logic/HdlMessageLogic.cs
@@ -89,7 +89,14 @@
                 form.AddForm(string.Empty);
                 form.SetTextContent(msg);
 
-            }, "ok");
+            }, "ok");
+
+            //涓婃姤鏃ュ織鏈嶅姟鍣�
+            new System.Threading.Thread(async () =>
+            {
+                await Common.AliyunLog.AliyunLogClient.PostLogs("App绋嬪簭閿欒", ex.Message + "\r\n" + ex.StackTrace);
+            })
+            { IsBackground = true }.Start();
         }
 
         /// <summary>
@@ -104,7 +111,13 @@
                 form.AddForm(string.Empty);
                 form.SetTextContent(msg);
 
-            }, "ok");
+            }, "ok");
+            //涓婃姤鏃ュ織鏈嶅姟鍣�
+            new System.Threading.Thread(async () =>
+            {
+                await Common.AliyunLog.AliyunLogClient.PostLogs("App绋嬪簭閿欒", msg);
+            })
+            { IsBackground = true }.Start();
         }
 
 
diff --git a/HDL_ON/UI/UI1-Login/LoginPage.cs b/HDL_ON/UI/UI1-Login/LoginPage.cs
index de1cf2e..0e921fe 100644
--- a/HDL_ON/UI/UI1-Login/LoginPage.cs
+++ b/HDL_ON/UI/UI1-Login/LoginPage.cs
@@ -294,98 +294,62 @@
                 //return;
                 if (b)
                 {
-                    //etAccount.Text = "1033326940@qq.com";
                     //etAccount.Text = "18022428438";//wjc
                     //etAccount.Text = "13602944661";//kx
-                    //etAccount.Text = "13226233133";//璞嗚眴
                     //etAccount.Text = "18316120654";//tujie
                     //etAccount.Text = "13450425807";//榛勭婧� knx椤圭洰
                     //etAccount.Text = "tf@smarttech.com.ua";
                     //etAccount.Text = "455740454@qq.com";
-                    //etAccount.Text = "18688565449";
-                    //etAccount.Text = "18570064522";
-                    //etAccount.Text = "18718417827";
-                    //etAccount.Text = "18188019284";
-                    //etAccount.Text = "13143792049";
                     //etAccount.Text = "13288623489";//缃楁檽涓�
-                    //etAccount.Text = "18244942707";
-                    //etAccount.Text = "13143792049";
-                    etAccount.Text = "18688414428";//澶╂渤3妤�
-                    //etAccount.Text = "13418062953";
-                    etAccount.Text = "13138683659";
-                    //etAccount.Text = "15217626103";
-                    //etAccount.Text = "18100573477";
-                    //etAccount.Text = "18321091245";
-                    //etAccount.Text = "13751916353";
-                    etAccount.Text = "13549566666";
-                    etAccount.Text = "13375012446";//娴嬭瘯鏈嶅姟鍣�
-                    etAccount.Text = "15855403939";
-                    etAccount.Text = "15006564444";
-                    etAccount.Text = "pjh@hdlchina.com.cn";
+                    //etAccount.Text = "18688414428";//澶╂渤3妤�
+                    //etAccount.Text = "pjh@hdlchina.com.cn";
                     //etAccount.Text = "12345678904";//2.0 娴嬭瘯  钀ょ煶
-                    etAccount.Text = "18316672920";
-                    etAccount.Text = "18244942707";
-                    etAccount.Text = "1272061968@qq.com";//涓囩鍩庡競涔嬪厜E鍖�8鏍�206
-                    etAccount.Text = "13533335801";
-                    etAccount.Text = "13682244600";
-                    etAccount.Text = "marketing@australindo.co.id";
-                    etAccount.Text = "support7@hdlautomation.com";
-                    etAccount.Text = "13922115008";//鍒樻��
-                    etAccount.Text = "1272061968@qq.com";
-                    etAccount.Text = "support7@hdlautomation.com";
-                    etAccount.Text = "info@hdlegypt.com";
+                    //etAccount.Text = "1272061968@qq.com";//涓囩鍩庡競涔嬪厜E鍖�8鏍�206
+                    //etAccount.Text = "marketing@australindo.co.id";
+                    //etAccount.Text = "13922115008";//鍒樻��
+                    //etAccount.Text = "support7@hdlautomation.com";
+                    etAccount.Text = "13336018868";
+                    etAccount.Text = "13435693712";
 
 
                 }
                 else
                 {
                     //etAccount.Text = "464027401@qq.com";//
-                    //etAccount.Text = "15217626103";//
-                    etAccount.Text = "13168123446";//鏄嗘槑閲戣寕椤圭洰锛屾柊椋庨棶棰�
+                    //etAccount.Text = "13168123446";//鏄嗘槑閲戣寕椤圭洰锛屾柊椋庨棶棰�
                     //etAccount.Text = "2949126848@qq.com";//闄堢惓
-                    etAccount.Text = "15014291819 ";
                     //etAccount.Text = "13676202754";//宸存灄鏈嶅姟鍣�
-                    //etAccount.Text = "13602944661";//kx
-                    //etAccount.Text = "18666455392";//13375012446//13602944661//tzy 18778381374
                     //etAccount.Text = "15971583093";//楂樿儨
                     //etAccount.Text = "15217626103";//鏄嗘槑閲戣寕椤圭洰
-                    //etAccount.Text = "18598273624";
-                    //etAccount.Text = "tf@smarttech.com.ua";
                     //etAccount.Text = "18814122445";//钁f辰鏂� 澶╂渤鍔炲叕瀹�
-                    //etAccount.Text = "18824864143";//"464027401@qq.com"; //"2791308028@qq.com";//13697499568
                     //etAccount.Text = "13430286286";//cwc
-                    //etAccount.Text = "13709260805";
                     //etAccount.Text = "support5@hdlchina.com.cn";
-                    //etAccount.Text = "13375012441";
-                    //etAccount.Text = "info@smartlife-ks.com";
                     //etAccount.Text = "551775569@qq.com";//wcf
                     etAccount.Text = "15626203746";
-                    //etAccount.Text = "zhangquansongjava@163.com";
-                    //etAccount.Text = "s.savinov@hdlautomation.ru";
 
                 }
                 b = !b;
                 etPassword.Text = "123456";
-                if(etAccount.Text == "info@hdlegypt.com")
+                if(etAccount.Text == "13336018868")
                 {
-                    etPassword.Text = "@Hdl2020";
+                    etPassword.Text = "zzy20020928";
                 }
-                else if(etAccount.Text == "18600200915")
+                else if(etAccount.Text == "13435693712")
                 {
-                    etPassword.Text = "ZJtiaoshi";
+                    etPassword.Text = "a123456";
                 }else if(etAccount.Text == "13288623489")
                 {
                     etPassword.Text = "luoxiaodong";
-                }else if(etAccount.Text == "18688414428")
+                }else if(etAccount.Text == "15014291819")
                 {
-                    etPassword.Text = "HDL1985000";
-                }else if (etAccount.Text == "15855403939")
+                    etPassword.Text = "hdl123456";
+                }else if (etAccount.Text == "15262988048")
                 {
-                    etPassword.Text = "yyr123456";
+                    etPassword.Text = "15262988048";
                 }
-                else if (etAccount.Text == "18100573477")
+                else if (etAccount.Text == "649362315@qq.com")
                 {
-                    etPassword.Text = "huang12345";
+                    etPassword.Text = "aa123456";
                 }else if(etAccount.Text == "dcai.assist@gmail.com")
                 {
                     etPassword.Text = "GraniteTileS57";
@@ -557,6 +521,7 @@
                 PlaceholderText = Language.StringByID(StringId.PlsEntryPassword),
                 SecureTextEntry = true,
                 TextAlignment = TextAlignment.CenterLeft,
+                
             };
             passwordView.AddChidren(etPassword);
 
@@ -1113,17 +1078,17 @@
                     new FunctionAttributes(){ key = AcstParent_AttrEnum.month_electricity.ToString(),curValue = "999",state = "999"},
                     new FunctionAttributes(){ key = AcstParent_AttrEnum.total_electricity.ToString(),curValue = "9999",state = "9999"},
                     new FunctionAttributes(){ key = AcstParent_AttrEnum.active_power.ToString(),curValue = "9999",state = "9999"},
-                    //new FunctionAttributes(){ key = AcstParent_AttrEnum.room_temp.ToString(),curValue = "26",state = "26"},
-                    //new FunctionAttributes(){ key = AcstParent_AttrEnum.room_humidity.ToString(),curValue = "66",state = "66"},
-                    //new FunctionAttributes(){ key = AcstParent_AttrEnum.co2.ToString(),curValue = "266",state = "266"},
-                    //new FunctionAttributes(){ key = AcstParent_AttrEnum.tvoc.ToString(),curValue = "666",state = "666"},
-                    //new FunctionAttributes(){ key = AcstParent_AttrEnum.pm25.ToString(),curValue = "36",state = "36"},
+                    new FunctionAttributes(){ key = AcstParent_AttrEnum.room_temp.ToString(),curValue = "26",state = "26"},
+                    new FunctionAttributes(){ key = AcstParent_AttrEnum.room_humidity.ToString(),curValue = "66",state = "66"},
+                    new FunctionAttributes(){ key = AcstParent_AttrEnum.co2.ToString(),curValue = "266",state = "266"},
+                    new FunctionAttributes(){ key = AcstParent_AttrEnum.tvoc.ToString(),curValue = "666",state = "666"},
+                    new FunctionAttributes(){ key = AcstParent_AttrEnum.pm25.ToString(),curValue = "36",state = "36"},
                 }
                 });
 
                 FunctionList.List.Functions.Add(new Function
                 {
-                    name = "娴嬭瘯-绌鸿皟绉戞妧绯荤粺瀛愭帶-1",
+                    name = "瀛愭帶-1",
                     spk = SPK.AcstSub,
                     sid = "0000001",
                     attributes = new List<FunctionAttributes>()
@@ -1136,7 +1101,7 @@
                 });
                 FunctionList.List.Functions.Add(new Function
                 {
-                    name = "娴嬭瘯-绌鸿皟绉戞妧绯荤粺瀛愭帶-2",
+                    name = "瀛愭帶-2",
                     spk = SPK.AcstSub,
                     sid = "0000002",
                     attributes = new List<FunctionAttributes>()
@@ -1149,7 +1114,7 @@
                 });
                 FunctionList.List.Functions.Add(new Function
                 {
-                    name = "娴嬭瘯-绌鸿皟绉戞妧绯荤粺瀛愭帶-3",
+                    name = "瀛愭帶-3",
                     spk = SPK.AcstSub,
                     sid = "0000003",
                     attributes = new List<FunctionAttributes>()
@@ -1162,7 +1127,7 @@
                 });
                 FunctionList.List.Functions.Add(new Function
                 {
-                    name = "娴嬭瘯-绌鸿皟绉戞妧绯荤粺瀛愭帶-4",
+                    name = "瀛愭帶-4",
                     spk = SPK.AcstSub,
                     sid = "0000004",
                     attributes = new List<FunctionAttributes>()
@@ -1175,7 +1140,7 @@
                 });
                 FunctionList.List.Functions.Add(new Function
                 {
-                    name = "娴嬭瘯-绌鸿皟绉戞妧绯荤粺瀛愭帶-5",
+                    name = "瀛愭帶-5",
                     spk = SPK.AcstSub,
                     sid = "0000005",
                     attributes = new List<FunctionAttributes>()
diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
index d3a4868..9c4f0e5 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -444,7 +444,7 @@
                     SelectedImagePath = "Collection/DefenseStatusIcon.png",
                     UnSelectedImagePath = "Collection/DisarmStatusIcon.png"
                 };
-                if (DB_ResidenceData.Instance.GatewayType == 1)
+                if (DB_ResidenceData.Instance.GatewayType == 1 && !DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
                 {
                         
                     topView.AddChidren(btnSecurityStatus);
@@ -502,6 +502,10 @@
                     UnSelectedImagePath = "Collection/MsgIcon.png",
                     SelectedImagePath = "Collection/MsgIconTip.png",
                 };
+                if(btnSecurityStatus.Parent == null)
+                {
+                    btnMsgIcon.X = Application.GetRealWidth(329);
+                }
                 topView.AddChidren(btnMsgIcon);
 
 
@@ -549,6 +553,17 @@
                 LoadContentView();
 
                 #endregion
+
+#if DEBUG
+                btnResidenceName.MouseUpEventHandler = (envent, ee) => {
+                    MainPage.Log("sss");
+                    new System.Threading.Thread(async() =>
+                    {
+                        await Common.AliyunLog.AliyunLogClient.PostLogs("鍛婅娴嬭瘯", "娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅娴嬭瘯淇℃伅");
+                    })
+                    { IsBackground = true }.Start();
+                };
+#endif
             }
             catch (Exception ex)
             {
diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
index da78089..59d643c 100644
--- a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
+++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
@@ -748,7 +748,7 @@
                     case ShowFunction.SecurityMonitoring:
                         if (!MainPage.NoLoginMode)
                         {
-                            if (OnAppConfig.Instance.RequestHttpsHost.Contains("bahrain"))
+                            if (OnAppConfig.Instance.RequestHttpsHost.Contains("bahrain") || !Common.ApiUtlis.Ins.hadInternet)
                             {
                                 functionCount = 0;
                             }
@@ -775,10 +775,16 @@
                         functionOnCount = FunctionList.List.GetAcstParentList().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
                         break;
                     case ShowFunction.VideoDoorLock:
-                        functionCount = FunctionList.List.GetVideoDoorLockList().Count;
-                        functionOnCount = FunctionList.List.GetAcstParentList().FindAll((obj) => obj.GetAttrState("status").ToString() == "open"
-                            || obj.GetAttrState("status").ToString() == "normal_open").Count;
-
+                        if (Common.ApiUtlis.Ins.hadInternet)
+                        {
+                            functionCount = FunctionList.List.GetVideoDoorLockList().Count;
+                            functionOnCount = FunctionList.List.GetAcstParentList().FindAll((obj) => obj.GetAttrState("status").ToString() == "open"
+                                || obj.GetAttrState("status").ToString() == "normal_open").Count;
+                        }
+                        else
+                        {
+                            functionCount = 0;
+                        }
                         break;
                     case ShowFunction.Aks:
                         functionCount = FunctionList.List.GetVideoControlsList().Count;
@@ -1479,7 +1485,7 @@
 
 //#if __Android__
                     //閫傞厤娌夋蹈寮忓鑸爮
-                    h5BasePage.Y = Application.GetRealHeight(20);
+                    h5BasePage.Y = Application.GetRealHeight(35);
                     h5BasePage.Height = Application.GetRealHeight(646);
 //#endif
                     MainPage.BasePageView.AddChidren(h5BasePage);
diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs
index 88447f3..7c6cfa8 100644
--- a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs
+++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs
@@ -231,6 +231,10 @@
                 };
                 foreach (var f in room.GetRoomFunctions(false))
                 {
+                    //if(f.spk == SPK.OtherCommon)
+                    //{
+                    //    continue;
+                    //}
                     if (f.trait_on_off.curValue.ToString() == "on")
                     {
                         btn.Visible = true;
@@ -385,6 +389,16 @@
                                         System.Threading.Thread.Sleep(sleepTime);
                                     }
                                     break;
+                                case ShowFunction.MechanicalArm:
+                                    foreach (var f in FunctionList.List.GetMechanicalArmList())
+                                    {
+                                        f.trait_on_off.curValue = onoff;
+                                        Dictionary<string, string> d = new Dictionary<string, string>();
+                                        d.Add(FunctionAttributeKey.OnOff, f.trait_on_off.curValue.ToString());
+                                        Control.Ins.SendWriteCommand(f, d);
+                                        System.Threading.Thread.Sleep(sleepTime);
+                                    }
+                                    break;
                             }
                         }
                         else
@@ -423,6 +437,14 @@
                                     }
                                     Control.Ins.SwtichFunctions(onoff == "on", eleList);
                                     break;
+                                case ShowFunction.MechanicalArm:
+                                    List<Function> meArmList = new List<Function>();
+                                    foreach (var f in FunctionList.List.GetMechanicalArmList())
+                                    {
+                                        meArmList.Add(f);
+                                    }
+                                    Control.Ins.SwtichFunctions(onoff == "on", meArmList);
+                                    break;
                             }
 
 
diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs b/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs
index e75b636..6a9bac7 100644
--- a/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs
+++ b/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs
@@ -86,16 +86,18 @@
 
             btnSwitch.MouseUpEventHandler = (sender, e) =>
             {
-                if (!function.isOnline())//绂荤嚎涓嶅厑璁告搷浣�
-                {
-                    new Tip()
-                    {
-                        CloseTime = 1,
-                        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
-                        Direction = AMPopTipDirection.None,
-                    }.Show(MainPage.BaseView);
-                    return;
-                }
+                //DriverLayer.Control.Ins.GatewayOnline_Cloud = false;
+                //DriverLayer.Control.Ins.GatewayOnline_Local = true;
+                //if (!function.isOnline())//绂荤嚎涓嶅厑璁告搷浣�
+                //{
+                //    new Tip()
+                //    {
+                //        CloseTime = 1,
+                //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+                //        Direction = AMPopTipDirection.None,
+                //    }.Show(MainPage.BaseView);
+                //    return;
+                //}
                 btnSwitch.IsSelected = !btnSwitch.IsSelected;
 
                 if(SPK.NotStatusSpkList.Contains( function.spk ))
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
index d1fc564..b2ebfb6 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
@@ -2951,7 +2951,8 @@
         {
             //鍥犱负璋冭瘯杞欢涓婁紶涓虹┖杩�;
             string intTimeValue = string.IsNullOrEmpty(strTimeValue) ? "0" : strTimeValue;
-            var timeValue = int.Parse(intTimeValue);
+            int timeValue = 0;
+            int.TryParse(intTimeValue,out timeValue);
             string state = "";
             var minutes = timeValue / 60;
             var seconds = timeValue % 60;
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
index a843941..8bf6a94 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
@@ -61,7 +61,14 @@
             {
                 return null;
             }
-            var dateList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<LogicIdData>>(responsePackNew.Data.ToString());
+            List<LogicIdData> dateList = new List<LogicIdData>();
+            try
+            {
+                dateList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<LogicIdData>>(responsePackNew.Data.ToString());
+            }catch (Exception ex)
+            {
+                MainPage.Log($"鑾峰彇閫昏緫ID鍒楄〃寮傚父锛歿ex.Message}");
+            }
             return dateList;
         }
         /// <summary>
@@ -572,7 +579,7 @@
         /// <param name="api_Url">璇锋眰鍦板潃(涓嶆槸缁濆鍦板潃)</param>
         /// <param name="tag">鏍囪->鎻忚堪鎺ュ彛(鑷畾涔�)</param>
         /// <returns></returns>
-        public ResponsePackNew RequestServerhomeId(object o, string api_Url, string tag,int mTimeout = 3)
+        public ResponsePackNew RequestServerhomeId(object o, string api_Url, string tag,int mTimeout = 8)
         {
             Log($"{DateTime.Now}->鍙戦��->{tag}", api_Url,o.ToString());
             var requestJson = HttpUtil.GetSignRequestJson(o);
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
index e8b86db..9a2e707 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
@@ -759,14 +759,40 @@
 
 
                         ///璁惧寤舵椂iewv
-                        DelayView(fLayout, volView.frameLayout.Bottom);
+                        var delayView = DelayView(fLayout, volView.frameLayout.Bottom);
+                        if (edit )
+                        {
+                            Output outputs = Logic.currlogic.output[index];
+                            var dicList = outputs.status.Find((obj) => obj.ContainsValue(FunctionAttributeKey.OnOff));
+                            if (dicList != null)
+                            {
+                                if (dicList.ContainsValue( "off") || dicList.ContainsValue("pause"))
+                                {
+                                    funTypeView.frameLayout.Visible = false;
+                                    volView.frameLayout.Visible = false;
+                                    delayView.frameLayout.Y = switchVie.frameLayout.Bottom;
+                                }
+                            }
+                        }
                         #endregion
                         #region 鐐瑰嚮浜嬩欢
                         ///寮�鍏崇偣鍑讳簨浠�
                         switchVie.btnClick.MouseUpEventHandler += (sender, e) =>
                         {
-
-                            SwitchViewMethod(device, switchVie.btnState, 2);
+                            SwitchViewMethod(device, switchVie.btnState, 2, (v) => {
+                                if (v == "on")
+                                {
+                                    funTypeView.frameLayout.Visible = true;
+                                    volView.frameLayout.Visible = true;
+                                    delayView.frameLayout.Y = volView.frameLayout.Bottom;
+                                }
+                                else
+                                {
+                                    funTypeView.frameLayout.Visible = false;
+                                    volView.frameLayout.Visible = false;
+                                    delayView.frameLayout.Y = switchVie.frameLayout.Bottom;
+                                }
+                            });
                         };
                         ///鎻愮ず璇煶鐐瑰嚮浜嬩欢
                         funTypeView.btnClick.MouseUpEventHandler += (sender, e) =>
@@ -1002,6 +1028,23 @@
                                     dicList.AddRange(diclist);//鍐嶆坊鍔犲叾瀹冨睘鎬�
                                     dicSateteList = dicList;//閲嶆柊璧嬪��
                                 }
+                                var onoffDic = dicSateteList.Find((obj) => obj.ContainsValue("on_off"));
+                                if (onoffDic != null)
+                                {
+                                    if (onoffDic.ContainsValue("off"))
+                                    {
+                                        for(int i =0;i<dicSateteList.Count;)
+                                        {
+                                            var d = dicSateteList[i];
+                                            if(!d.ContainsValue("on_off") || d.ContainsValue("delay"))
+                                            {
+                                                dicSateteList.Remove(d);
+                                                continue;
+                                            }
+                                            i++;
+                                        }
+                                    }
+                                }
                             }
                             break;
                         case SPK.GroupControl:
@@ -1052,7 +1095,7 @@
         /// </summary>
         /// <param name="fLayout">鐖舵帶浠�</param>
         /// <param name="bottomY">鍦ㄥ摢涓帶浠朵笅闈�</param>
-        private void DelayView(FrameLayout fLayout, int bottomY)
+        private LogicView.FunTypeView DelayView(FrameLayout fLayout, int bottomY)
         {
             LogicView.FunTypeView delayView = new LogicView.FunTypeView();
             delayView.frameLayout.Y = bottomY;
@@ -1072,6 +1115,7 @@
                     selectedState = "delay_" + strdelay;
                 });
             };
+            return delayView;
 
         }
 
@@ -1081,7 +1125,8 @@
         /// <param name="device"></param>
         /// <param name="button"></param>
         /// <param name="len">鏄剧ず閫夋嫨View鏁伴噺</param>
-        private void SwitchViewMethod(Entity.Function device, Button button, int len)
+        /// <param name="action">鐐瑰嚮鍥炶皟浜嬩欢锛岀敤鏉ョ粰闊充箰鍒锋柊鐣岄潰浣跨敤锛寃xr 2024-01-04 16:03:47</param>
+        private void SwitchViewMethod(Entity.Function device, Button button, int len,Action<string> action = null)
         {
             #region 鐣岄潰
             FrameLayout frame = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence };
@@ -1142,11 +1187,11 @@
 
                         }
                         break;
-
                 }
 
                 //鏁版嵁灏佽
                 AddDictionary(key, value);
+                action?.Invoke(value);
             });
             #endregion
         }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs b/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
index c5c07c0..4fdd6fa 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
@@ -727,6 +727,10 @@
         {
             btnAddIcon.MouseUpEventHandler = (sender, e) =>
             {
+                if (btnSecurityTitle != null && btnSecurityTitle.IsSelected)
+                {
+                    return;
+                }
                 if (!btnAutomationTitle.IsSelected)
                 {
                     //濡傛灉鏄垚鍛�
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/CatchSceneAddPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/CatchSceneAddPage.cs
index e8cc886..5024748 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/CatchSceneAddPage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/CatchSceneAddPage.cs
@@ -365,7 +365,10 @@
                             {
                                 if (MainPage.SceneSupportFunctionList.Contains(temp.spk))
                                 {
-                                    catchFunctionList.Add(temp);
+                                    if (catchFunctionList.Find((obj) => obj.sid == temp.sid && obj.spk == temp.spk) == null)
+                                    {
+                                        catchFunctionList.Add(temp);
+                                    }
                                 }
                             }
                         }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
index d6bcd74..6232dd0 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
@@ -32,7 +32,7 @@
             
             bodyView = this;
             scene = s;
-            sceneFunction = fc;//.localFunction.ConvertSceneFunction(); 
+            sceneFunction = fc.localFunction.ConvertSceneFunction(); 
             foreach (var ll in sceneFunction.status)
             {
                 try
@@ -248,6 +248,17 @@
 
                     if (sceneFunction.localFunction.spk == SPK.MusicStandard)
                     {
+                        for (var i = 0; i < sceneFunction.status.Count;)
+                        {
+                            var ddd = sceneFunction.status[i];
+                            if (string.IsNullOrEmpty(ddd.value))
+                            {
+                                sceneFunction.status.Remove(ddd);
+                                continue;
+                            }
+                            i++;
+                        }
+
                         if (sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.PlaylistName) == null)
                         {
                             if (isOnStatus)
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs
index 5fef359..3ae8804 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs
@@ -422,6 +422,7 @@
                         new PublicAssmebly().TipMsg(StringId.Tip, StringId.PlsEntryGroupName);
                         return;
                     }
+                    groupControl.name = name;
                     if (groupControlLightList.Count < 2)
                     {
                         new PublicAssmebly().TipMsg(StringId.Tip, StringId.PlsSelectMoreData);
@@ -429,7 +430,6 @@
                     }
                     if (isAdd)
                     {
-                        groupControl.name = name;
                         groupControl.sids.Clear();
                         foreach (var light in groupControlLightList)
                         {
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/CombinedDimmingListPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/CombinedDimmingListPage.cs
index 1c9c47a..b630a7e 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/CombinedDimmingListPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/CombinedDimmingListPage.cs
@@ -223,14 +223,13 @@
                                {
                                    Application.RunOnMainThread(() =>
                                    {
-                                           //groupControl.roomIds = newGC.roomIds;
-                                           //groupControl.uids = newGC.uids;
-                                           var localTemp = FunctionList.List.groupControls.Find((obj) => obj.deviceId == newGC.deviceId);
+                                       var localTemp = FunctionList.List.groupControls.Find((obj) => obj.deviceId == newGC.deviceId);
                                        localTemp.roomIds = newGC.roomIds;
                                        localTemp.uids = newGC.uids;
                                        localTemp.sids = newGC.sids;
-
-                                           btnFunctionLocationInfo.Text = newGC.GetUidListName();
+                                       localTemp.name = newGC.name;
+                                       btnFunctionLocationInfo.Text = newGC.GetUidListName();
+                                       btnFunctionName.Text = newGC.name;
                                    });
                                }
                            }
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFaceManagementPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFaceManagementPage.cs
index 8321a12..d1c133a 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFaceManagementPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFaceManagementPage.cs
@@ -193,12 +193,12 @@
                 };
                 btnMsg1.MouseUpEventHandler += (sender2, e2) =>
                 {
-                    string url = "https://developer.hdlcontrol.com/浜鸿劯淇℃伅閲囬泦鍗忚.html";
+                    string url = "https://developer.hdlcontrol.com/HDLFaceProtocol.html";
                     if (Language.CurrentLanguage != "Chinese")
                     {
                         url = "https://developer.hdlcontrol.com/Face information collection protocol.html";
                     }
-                    new WebViewDialog().LoadPage("浜鸿劯淇℃伅閲囬泦鍗忚", url);
+                    new WebViewDialog().LoadPage(Language.StringByID(StringId.GetFaceProtocol), url);
 
                     dialog.Close();
                 };
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs
index beb7360..2b6d410 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs
@@ -79,6 +79,7 @@
             this.funs_RoomAll.AddRange(funs_RoomAll);
             this.funs_Del = new List<ShareData>();
             this.refreshAction = refreshAction;
+            this.BackgroundColor = CSS_Color.BackgroundColor;
         }
 
         public void LoadPage(int tId)
@@ -240,7 +241,7 @@
         /// </summary>
         public string name;
         /// <summary>
-        /// 鍒嗕韩绫诲瀷 1.ROOM  2.DEVICE 3.SCENE
+        /// 鍒嗕韩绫诲瀷 1.ROOM  2.DEVICE 3.SCENE 4.DEVICE_GROUP_CONTROL
         /// </summary>
         public string shareType = ShareType.DEVICE.ToString();
     }
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberPermissionPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberPermissionPage.cs
index 0d70570..b154121 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberPermissionPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberPermissionPage.cs
@@ -315,7 +315,7 @@
                         roomFunctionOrSceneList.Add(new RoomData()
                         {
                             shareTypeId = fun.deviceId,
-                            shareType = ShareType.DEVICE.ToString(),
+                            shareType = fun.spk == SPK.GroupControl ? "DEVICE_GROUP_CONTROL" : ShareType.DEVICE.ToString(),
                             name = fun.name,
                         });
                     }
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
index f27995e..9995fae 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
@@ -225,7 +225,31 @@
                             var regionId = (string)btnHomeName.Tag;
                             dialog.Close();
                             LoadEvent_ChangeCurHome(home);
-                            LoadContentView();
+                            new System.Threading.Thread(() => {
+                                try
+                                {
+                                    while (true)
+                                    {
+                                        if (Common.ApiUtlis.Ins.DownloadDataComplete)
+                                        {
+                                            System.Threading.Thread.Sleep(100);
+                                        }
+                                        else
+                                        {
+                                            Application.RunOnMainThread(() =>
+                                            {
+                                                LoadContentView();
+                                            });
+                                            break;
+                                        }
+                                    }
+                                }
+                                catch { }
+                                {
+
+                                }
+                            }) { IsBackground = true }.Start();
+                            
                             HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.ChangeCurrHome(home);
                         };
                     }
@@ -409,7 +433,31 @@
                     var regionId = (string)btnHomeName.Tag;
                     dialog.Close();
                     LoadEvent_ChangeCurHome(home);
-                    LoadContentView();
+                    new System.Threading.Thread(() => {
+                        try
+                        {
+                            while (true)
+                            {
+                                if (Common.ApiUtlis.Ins.DownloadDataComplete)
+                                {
+                                    System.Threading.Thread.Sleep(100);
+                                }
+                                else
+                                {
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        LoadContentView();
+                                    });
+                                    break;
+                                }
+                            }
+                        }
+                        catch { }
+                        {
+
+                        }
+                    })
+                    { IsBackground = true }.Start();
                     HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.ChangeCurrHome(home);
                 };
             }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs
index f7d63d1..2dc3048 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs
@@ -446,7 +446,7 @@
                     d.Add(FunctionAttributeKey.Mode, m);
                     Control.Ins.SendWriteCommand(device, d);
                     dialog.Close();
-                    if (device.GetAttrState(FunctionAttributeKey.Mode) == "fan")
+                    if (device.GetAttrState(FunctionAttributeKey.Mode) == "fan" || device.GetAttrState(FunctionAttributeKey.Mode) == "dry")
                     {
 
                         setTempBar.IsClickable = false;
diff --git a/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/MechanicalArmPage.cs b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/MechanicalArmPage.cs
index ff748b3..d457f62 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/MechanicalArmPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/MechanicalArmPage.cs
@@ -154,7 +154,7 @@
                 {
                     var dic = new Dictionary<string, string>();
                     dic.Add(FunctionAttributeKey.OnOff, statu);
-                    Control.Ins.SendWriteCommand(this.device, dic, true);
+                    Control.Ins.SendWriteCommand(this.device, dic);
                     HdlThreadLogic.Current.RunMain(() =>
                     {
                         this.btnPictrue.CanClick = true;
diff --git a/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs b/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs
index e0bfecc..ca76ded 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs
@@ -174,6 +174,7 @@
                             inValue = "alarm";
                             break;
                         case SPK.SensorPir:
+                        case SPK.SensorPirHold:
                             inKey = "people_status";
                             break;
                         case SPK.SensorSmoke:
diff --git a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/A_EnvironmentalDataCenter.cs b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/A_EnvironmentalDataCenter.cs
index 2b41c7d..a416394 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/A_EnvironmentalDataCenter.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/A_EnvironmentalDataCenter.cs
@@ -497,7 +497,7 @@
                                 {
                                     if (view.Tag.ToString() == flag)
                                     {
-                                        view.UpdataStatus(flag,updateTemp.sid, sensorAttr.state);
+                                        view.UpdataStatus(flag,updateTemp, sensorAttr.state);
                                     }
                                 }
 
@@ -703,14 +703,12 @@
         List<Function> sensorList = new List<Function>();
         string imagePath = "";
         string iconPath = "";
-        string sensorSPK = "";
         Sensor sensorTemp = new Sensor();
         double assembleValues = 0.0;
 
         public SensorView(List<Function> showList, int index)//,,string spk,double value)
         {
             sensorList = showList;
-            sensorSPK = showList[0].spk;
             foreach (var s in showList)
             {
                 assembleValues += Convert.ToDouble(s.GetAttrState("value").Replace(",", "."));
@@ -721,7 +719,7 @@
             this.Width = Application.GetRealWidth(182);
             this.Height = Application.GetRealWidth(124);
             this.Y = Application.GetRealWidth(124 * (index / 2));
-            this.Tag = sensorSPK;
+            this.Tag = showList[0].spk;
 
             if (index % 2 != 0)
             {
@@ -729,7 +727,7 @@
             }
 
 
-            switch (sensorSPK)
+            switch (showList[0].spk)
             {
                 case SPK.SensorCO2:
                     imagePath = "FunctionIcon/EnvirSensor/Co2Bg.png";
@@ -794,11 +792,11 @@
             this.AddChidren(btnInfoIcon);
             btnInfoIcon.MouseUpEventHandler = (sender, e) =>
             {
-                LoadInfo(sensorSPK);
+                LoadInfo(sensor);
             };
 
-            var curLevel = sensorTemp.GetCurLevel(sensorSPK, assembleValues);
-            var levelTextList = sensorTemp.GetLevelTextList(sensorSPK);
+            var curLevel = sensorTemp.GetCurLevel(sensor);
+            var levelTextList = sensorTemp.GetLevelTextList(sensor);
             btnLevel = new Button()
             {
                 X = Application.GetRealWidth(25),
@@ -806,9 +804,9 @@
                 Width = Application.GetRealWidth(100),
                 Height = Application.GetRealWidth(32),
                 TextAlignment = TextAlignment.CenterLeft,
-                TextColor = sensorTemp.GetLevelColorList(sensorSPK)[curLevel - 1],
+                TextColor = sensorTemp.GetLevelColorList(sensor)[curLevel - 1],
                 TextSize = CSS_FontSize.SubheadingFontSize,
-                TextID = levelTextList[curLevel - 1],
+                Text = levelTextList[curLevel - 1],
                 Tag = "SensorLevel",
             };
             this.AddChidren(btnLevel);
@@ -853,10 +851,10 @@
         /// <summary>
         /// 鍔犺浇浼犳劅鍣ㄧ瓑绾х浉鍏充俊鎭�
         /// </summary>
-        void LoadInfo(string sensorSPK)
+        void LoadInfo(Function sensor)
         {
-            var levelColorList = sensorTemp.GetLevelColorList(sensorSPK);
-            var levelTextList = sensorTemp.GetLevelTextList(sensorSPK);
+            var levelColorList = sensorTemp.GetLevelColorList(sensor);
+            var levelTextList = sensorTemp.GetLevelTextList(sensor);
             Dialog dialog = new Dialog();
 
             FrameLayout dialogBodyView = new FrameLayout();
@@ -889,7 +887,7 @@
             };
             infoView.AddChidren(btnTitle);
 
-            switch (sensorSPK)
+            switch (sensor.spk)
             {
                 case SPK.SensorPm25:
                     btnTitle.Text = "PM2.5(ug/m鲁)";
@@ -898,7 +896,7 @@
                     btnTitle.Text = Language.StringByID(StringId.Temp) + "(掳C)";
                     break;
                 case SPK.SensorTVOC:
-                    btnTitle.Text = "TVOC(PPB)";
+                    btnTitle.Text = "TVOC(mg/m鲁)";
                     break;
                 case SPK.SensorCO2:
                     btnTitle.Text = "CO2(PPM)";
@@ -973,7 +971,7 @@
                     TextColor = CSS_Color.FirstLevelTitleColor,
                     TextSize = CSS_FontSize.TextFontSize,
                     IsBold = true,
-                    Text = sensorTemp.GetIntervalValue(sensorSPK)[index]
+                    Text = sensorTemp.GetIntervalValue(sensor)[index]
                 });
 
                 subInfoView.AddChidren(new Button()
@@ -984,7 +982,7 @@
                     TextColor = CSS_Color.FirstLevelTitleColor,
                     TextSize = CSS_FontSize.TextFontSize,
                     IsBold = true,
-                    TextID = levelTextList[index]
+                    Text = levelTextList[index]
                 });
 
                 subInfoView.AddChidren(new Button()
@@ -1019,13 +1017,13 @@
         /// 鏇存柊鐘舵��
         /// </summary>
         /// <param name="updateTemp"></param>
-        public void UpdataStatus(string spk ,string sid,string value)
+        public void UpdataStatus(string spk ,Function function,string value)
         {
             try
             {
-                if (spk == sensorSPK)
+                if (spk == function.spk)
                 {
-                    var temp = sensorList.Find((obj) => obj.sid == sid);
+                    var temp = sensorList.Find((obj) => obj.sid == function.sid);
                     if(temp!= null)
                     {
                         temp.SetAttrState("value", value);
@@ -1035,10 +1033,10 @@
 
                     btnSensorValues.Text = assembleValues.ToString();
 
-                    var curLevel = sensorTemp.GetCurLevel(sensorSPK, assembleValues);
+                    var curLevel = sensorTemp.GetCurLevel(function);
 
-                    btnLevel.TextID = sensorTemp.GetLevelTextList(sensorSPK)[curLevel- 1];
-                    btnLevel.TextColor = sensorTemp.GetLevelColorList(sensorSPK)[curLevel - 1];
+                    btnLevel.Text = sensorTemp.GetLevelTextList(temp)[curLevel- 1];
+                    btnLevel.TextColor = sensorTemp.GetLevelColorList(function)[curLevel - 1];
                 }
             }
             catch (Exception ex)
diff --git a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs
index 2f82535..07f386f 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs
@@ -1,5 +1,6 @@
 锘縰sing System;
 using System.Collections.Generic;
+using System.Reflection;
 using HDL_ON.DriverLayer;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
@@ -348,8 +349,8 @@
         /// </summary>
         void LoadSensorDiv(Function sensor,int index)
         {
-            var levelColorList = sensorTemp.GetLevelColorList(sensor.spk);
-            var levelTextList = sensorTemp.GetLevelTextList(sensor.spk);
+            var levelColorList = sensorTemp.GetLevelColorList(sensor);
+            var levelTextList = sensorTemp.GetLevelTextList(sensor);
             {
                 var sensorTag = sensor.spk + sensor.sid + sensor.deviceId;
                 FrameLayout sensorView = new FrameLayout()
@@ -511,8 +512,8 @@
                 }
                 else
                 {
-                    btnLevel.TextID = levelTextList[sensorTemp.GetCurLevel(sensor) - 1];
-                    btnLevel.TextColor = sensorTemp.GetLevelColorList(sensor.spk)[sensorTemp.GetCurLevel(sensor) - 1];
+                    btnLevel.Text = levelTextList[sensorTemp.GetCurLevel(sensor) - 1];
+                    btnLevel.TextColor = sensorTemp.GetLevelColorList(sensor)[sensorTemp.GetCurLevel(sensor) - 1];
                     btnSensorValues.Text = sensor.GetAttrState(FunctionAttributeKey.Value);
                 }
             }
@@ -524,34 +525,34 @@
         void LoadInfo(Function sensor)
         {
             List<uint> levelColorList = new List<uint>();
-            List<int> levelTextList = new List<int>();
-            List<string> levelText = new List<string>();
+            List<string> levelTextList = new List<string>();
+            //List<string> levelText = new List<string>();
             List<string> intervalList = new List<string>();
             var configs = sensor.GetAttrKeyConfigs(sensor.SpkClassification);
 
 
-            int i = 0;
-            foreach(var info in configs)
+            //int i = 0;
+            //foreach(var info in configs)
+            //{
+            //    foreach(var config in info.configs)
+            //    {
+            //        var color = Convert.ToUInt32(config.color,16);
+            //        var text = config.desc;
+            //        levelColorList.Add(color);
+            //        //levelText.Add(text);
+            //        levelTextList.Add(i++);
+            //        intervalList.Add(config.start + " ~ " + config.end);
+            //    }
+            //}
+            //if (levelColorList.Count == 0)
             {
-                foreach(var config in info.configs)
-                {
-                    var color = Convert.ToUInt32(config.color,16);
-                    var text = config.desc;
-                    levelColorList.Add(color);
-                    levelText.Add(text);
-                    levelTextList.Add(i++);
-                }
-            }
-            if (levelColorList.Count == 0)
-            {
-                levelColorList = sensorTemp.GetLevelColorList(sensor.spk);
-                levelTextList = sensorTemp.GetLevelTextList(sensor.spk);
-                intervalList = sensorTemp.GetIntervalValue(sensor.spk);
-
-                foreach (var iii in levelTextList)
-                {
-                    levelText.Add(Language.StringByID(iii));
-                }
+                levelColorList = sensorTemp.GetLevelColorList(sensor);
+                levelTextList = sensorTemp.GetLevelTextList(sensor);
+                intervalList = sensorTemp.GetIntervalValue(sensor);
+                //foreach (var iii in levelTextList)
+                //{
+                //    levelText.Add(Language.StringByID(iii));
+                //}
             }
             Dialog dialog = new Dialog();
 
@@ -597,7 +598,7 @@
                     btnTitle.Text = Language.StringByID(StringId.Temp) + "(掳C)";
                     break;
                 case SPK.SensorTVOC:
-                    btnTitle.Text = "TVOC(PPB)";
+                    btnTitle.Text = "TVOC(mg/m鲁)";
                     break;
                 case SPK.SensorCO2:
                     btnTitle.Text = "CO2(PPM)";
@@ -650,7 +651,7 @@
             });
             try
             {
-                for (int index = 0; index < levelText.Count; index++)
+                for (int index = 0; index < levelTextList.Count; index++)
                 {
                     //if(sensorTemp.GetIntervalValue(sensor.spk).Count >= index)
                     //{
@@ -678,7 +679,7 @@
                         TextColor = CSS_Color.FirstLevelTitleColor,
                         TextSize = CSS_FontSize.TextFontSize,
                         IsBold = true,
-                        Text = sensorTemp.GetIntervalValue(sensor.spk)[index]
+                        Text = intervalList[index]
                     });
 
                     subInfoView.AddChidren(new Button()
@@ -689,7 +690,7 @@
                         TextColor = CSS_Color.FirstLevelTitleColor,
                         TextSize = CSS_FontSize.TextFontSize,
                         IsBold = true,
-                        Text = levelText[index]
+                        Text = levelTextList[index]
                     });
 
                     subInfoView.AddChidren(new Button()
@@ -967,17 +968,17 @@
                                             {
                                                 if (updateTemp.spk != SPK.SensorLight)
                                                 {
-                                                    (btn as Button).TextID = bodyView.sensorTemp.GetLevelTextList(updateTemp.spk)[bodyView.sensorTemp.GetCurLevel(updateTemp) - 1];
-                                                    (btn as Button).TextColor = bodyView.sensorTemp.GetLevelColorList(updateTemp.spk)[bodyView.sensorTemp.GetCurLevel(updateTemp) - 1];
+                                                    (btn as Button).Text = bodyView.sensorTemp.GetLevelTextList(updateTemp)[bodyView.sensorTemp.GetCurLevel(updateTemp) - 1];
+                                                    (btn as Button).TextColor = bodyView.sensorTemp.GetLevelColorList(updateTemp)[bodyView.sensorTemp.GetCurLevel(updateTemp) - 1];
                                                 }
                                             }
                                         }
                                     }
                                     else if (btn.GetType() == typeof(ArcSeekBar))
                                     {
-                                        (btn as ArcSeekBar).ProgressBarColor = bodyView.sensorTemp.GetLevelColorList(updateTemp.spk)[bodyView.sensorTemp.GetCurLevel(updateTemp) - 1];
+                                        (btn as ArcSeekBar).ProgressBarColor = bodyView.sensorTemp.GetLevelColorList(updateTemp)[bodyView.sensorTemp.GetCurLevel(updateTemp) - 1];
 
-                                        (btn as ArcSeekBar).Progress = (96 / bodyView.sensorTemp.GetLevelColorList(updateTemp.spk).Count) * bodyView.sensorTemp.GetCurLevel(updateTemp);
+                                        (btn as ArcSeekBar).Progress = (96 / bodyView.sensorTemp.GetLevelColorList(updateTemp).Count) * bodyView.sensorTemp.GetCurLevel(updateTemp);
                                     }
                                 }
                             }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/HisenseTV /Send.cs b/HDL_ON/UI/UI2/FuntionControlView/HisenseTV /Send.cs
index 5cfa50d..f4873e7 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/HisenseTV /Send.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/HisenseTV /Send.cs
@@ -230,7 +230,7 @@
             {
                 if (TipType.flicker == tipType)
                 {
-                    if (responsePackNew == null)
+                    if (responsePackNew == null || responsePackNew.Code == "-1")
                     {
                         responsePackNew = new ResponsePackNew { message = "娌″洖澶�,璇风‘璁ょ綉缁滄槸鍚︽甯�.", Code = "-1", };
                     }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage_V2.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage_V2.cs
index 2837dd2..a8048f1 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage_V2.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage_V2.cs
@@ -97,9 +97,6 @@
             //    function.CollectFunction();
             //};
 
-
-           
-
             //鍥為��鍒锋柊淇℃伅浜嬩欢
             new TopViewDiv(bodyView, Language.StringByID(StringId.GroupControl)).LoadTopView_SettingIcon( () => {
                 var page = new AddGroupControlPage(function,
@@ -310,18 +307,26 @@
                 attrView.AddChidren(btnSwitchIcon);
 
                 btnSwitchIcon.MouseUpEventHandler = (sender, e) => {
+                    btnSwitchIcon.IsSelected = !btnSwitchIcon.IsSelected;
                     if (btnSwitchIcon.IsSelected)
-                    {
-                        var d = new Dictionary<string, string>();
-                        d.Add(FunctionAttributeKey.OnOff, "off");
-                        function.Control(d);
-                    }
-                    else
                     {
                         var d = new Dictionary<string, string>();
                         d.Add(FunctionAttributeKey.OnOff, "on");
                         function.Control(d);
                     }
+                    else
+                    {
+                        var d = new Dictionary<string, string>();
+                        d.Add(FunctionAttributeKey.OnOff, "off");
+                        function.Control(d);
+                    }
+                };
+
+                btnOn.MouseUpEventHandler += (sender, e) => {
+                    btnSwitchIcon.IsSelected = true;
+                };
+                btnOff.MouseUpEventHandler += (sender, e) => {
+                    btnSwitchIcon.IsSelected = false;
                 };
             }
 
@@ -835,8 +840,8 @@
 
             dimmerBar.OnProgressChangedEvent = (sender, e) =>
             {
-                btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100);
-                btnBrightnessText.Text = dimmerBar.Progress + "%";
+                //btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100);
+                //btnBrightnessText.Text = dimmerBar.Progress + "%";
                 return;
                 if (e == 0 && lastBrightness != 0)
                 {
@@ -1085,13 +1090,13 @@
 
             btnOn.MouseUpEventHandler += (sender, e) => {
                 dimmerBar.Progress = 100;
-                btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100);
-                btnBrightnessText.Text = dimmerBar.Progress + "%";
+                //btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100);
+                //btnBrightnessText.Text = dimmerBar.Progress + "%";
             };
             btnOff.MouseUpEventHandler += (sender, e) => {
                 dimmerBar.Progress = 0;
-                btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100);
-                btnBrightnessText.Text = dimmerBar.Progress + "%";
+                //btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100);
+                //btnBrightnessText.Text = dimmerBar.Progress + "%";
             };
 
 
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs
index f932a84..7a30610 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs
@@ -465,7 +465,7 @@
                             if (A31MusicModel.Current.functionMusic.GetAttrState(KeyProperty.on_off) == ValueProperty.on)
                             {
                                 //闊充箰鍦ㄦ挱鏀炬椂锛屽啀璁$畻鎾斁鏃堕棿(鐜板湪鏃堕棿=鍘熸潵鏃堕棿+1绉�)
-                                playSecond += (int)(DateTime.Now - A31MusicModel.Current.LastDateTime).TotalSeconds;
+                                //playSecond += (int)(DateTime.Now - A31MusicModel.Current.LastDateTime).TotalSeconds;
                                 playSecond += 1;//琛ㄧず鍔犱笂绛夊緟鐨勬椂闂�1s
                                 ///姝屾洸璁板綍鏆傛椂鏃堕棿鍐欏叆缂撳瓨锛�
                                 A31MusicModel.Current.functionMusic.SetAttrState(KeyProperty.playing_time, playSecond);
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs
index 0734e13..7ba3ab9 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs
@@ -325,7 +325,7 @@
         /// <param name="api_Url">璇锋眰鍦板潃(涓嶆槸缁濆鍦板潃)</param>
         /// <param name="tag">鏍囪->鎻忚堪鎺ュ彛(鑷畾涔�)</param>
         /// <returns></returns>
-        public ResponsePackNew RequestServerhomeId(object o, string api_Url, string tag, int mTimeout = 15)
+        public ResponsePackNew RequestServerhomeId(object o, string api_Url, string tag, int mTimeout = 10)
         {
             JObject jobject = JObject.Parse(Newtonsoft.Json.JsonConvert.SerializeObject(o));
             return UI2.Intelligence.Automation.Send.Current.RequestServerhomeId(jobject, api_Url, tag, mTimeout);
diff --git a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs
index 8f2ec34..e9393fd 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs
@@ -278,7 +278,8 @@
                         //EZSDK.IOS.EZSDK.Play(info);
 #else
 
-                            HDLEzvizSdk.Instance.Init(Application.Activity.Application, ezChildAccessToken, UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken, OnAppConfig.Instance.RequestHttpsHost, appKey, 1, DB_ResidenceData.Instance.CurrentRegion.id);
+                            HDLEzvizSdk.Instance.Init(Application.Activity.Application, ezChildAccessToken, UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken, OnAppConfig.Instance.RequestHttpsHost, appKey, 1, DB_ResidenceData.Instance.CurrentRegion.id,
+                                HttpUtil.APP_KEY, HttpUtil.SECRET_KEY);
 
 #endif
 
diff --git a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockPage.cs b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockPage.cs
index 1f4a5c5..d86a322 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockPage.cs
@@ -264,6 +264,7 @@
             rtvFL.GetImageButton().UnSelectedImagePath = "FunctionIcon/DoorLock/RTV.png";
             rtvFL.GetTextButton().TextID = StringId.shishishipin;
             
+            
             //涓存椂瀵嗙爜
             pswFL = new CustomFrameLayout(CustomFrameLayout.widthFrameLayout, CustomFrameLayout.heightFrameLayout);
             whiteFl.AddChidren(pswFL);
@@ -273,6 +274,11 @@
             pswFL.AddTextButtonView();
             pswFL.GetImageButton().UnSelectedImagePath = "FunctionIcon/DoorLock/OneOpenLock.png";
             pswFL.GetTextButton().TextID = StringId.linshimima1;
+            if (device.omodel.Contains("CS-DL30F-V100"))
+            {
+                rtvFL.Visible = rtvFL.Enable = false;
+                pswFL.X = Application.GetRealWidth(26);
+            }
 
             //鍘嗗彶璁板綍
             recordFL = new CustomFrameLayout(CustomFrameLayout.widthFrameLayout, CustomFrameLayout.heightFrameLayout);
@@ -642,11 +648,5 @@
             return false;
 
         }
-
-
-
-
     }
-
-
 }
diff --git a/NunitTest-Android/ApiPostTests.cs b/NunitTest-Android/ApiPostTests.cs
new file mode 100644
index 0000000..968fe5c
--- /dev/null
+++ b/NunitTest-Android/ApiPostTests.cs
@@ -0,0 +1,47 @@
+锘縰sing System;
+using System.Net;
+using System.Net.Http;
+using System.Text;
+using System.Threading.Tasks;
+using Newtonsoft.Json;
+using NUnit.Framework;
+
+namespace NunitTestIos
+{
+    [TestFixture]
+    public class ApiPostTests
+    {
+        private HttpClient client;
+        private const string apiUrl = "https://api.example.com/";
+
+        [SetUp]
+        public void Setup()
+        {
+            client = new HttpClient();
+            client.BaseAddress = new Uri(apiUrl);
+        }
+
+        [Test]
+        public async Task TestPostRequest()
+        {
+            // 鍑嗗 POST 鏁版嵁
+            var postData = new { key = "value" };
+            var json = JsonConvert.SerializeObject(postData);
+            var content = new StringContent(json, Encoding.UTF8, "application/json");
+
+            // 鍙戣捣 POST 璇锋眰
+            HttpResponseMessage response = await client.PostAsync("endpoint", content);
+
+            // 楠岃瘉鐘舵�佺爜
+            Assert.AreEqual(HttpStatusCode.Created, response.StatusCode);
+
+            // 楠岃瘉杩斿洖鐨勬暟鎹垨鍝嶅簲鍐呭
+            string responseBody = await response.Content.ReadAsStringAsync();
+            Assert.IsTrue(!string.IsNullOrEmpty(responseBody));
+            // 鍙互杩涗竴姝ラ獙璇佽繑鍥炵殑鏁版嵁鏄惁绗﹀悎棰勬湡
+        }
+
+    }
+
+}
+
diff --git a/NunitTest-Android/Assets/AboutAssets.txt b/NunitTest-Android/Assets/AboutAssets.txt
new file mode 100644
index 0000000..bac3270
--- /dev/null
+++ b/NunitTest-Android/Assets/AboutAssets.txt
@@ -0,0 +1,19 @@
+锘緼ny raw assets you want to be deployed with your application can be placed in
+this directory (and child directories) and given a Build Action of "AndroidAsset".
+
+These files will be deployed with your package and will be accessible using Android's
+AssetManager, like this:
+
+public class ReadAsset : Activity
+{
+    protected override void OnCreate (Bundle bundle)
+    {
+        base.OnCreate (bundle);
+
+        InputStream input = Assets.Open ("my_asset.txt");
+    }
+}
+
+Additionally, some Android functions will automatically load asset files:
+
+Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");
diff --git a/NunitTest-Android/MainActivity.cs b/NunitTest-Android/MainActivity.cs
new file mode 100644
index 0000000..d935128
--- /dev/null
+++ b/NunitTest-Android/MainActivity.cs
@@ -0,0 +1,24 @@
+锘縰sing System.Reflection;
+
+using Android.App;
+using Android.OS;
+using Xamarin.Android.NUnitLite;
+
+namespace NunitTest_Android
+{
+    [Activity(Label = "@string/app_name", MainLauncher = true)]
+    public class MainActivity : TestSuiteActivity
+    {
+        protected override void OnCreate(Bundle bundle)
+        {
+            // tests can be inside the main assembly
+            AddTest(Assembly.GetExecutingAssembly());
+            // or in any reference assemblies
+            // AddTest (typeof (Your.Library.TestClass).Assembly);
+
+            // Once you called base.OnCreate(), you cannot add more assemblies.
+            base.OnCreate(bundle);
+        }
+    }
+}
+
diff --git a/NunitTest-Android/NunitTest-Android.csproj b/NunitTest-Android/NunitTest-Android.csproj
new file mode 100644
index 0000000..31c0db1
--- /dev/null
+++ b/NunitTest-Android/NunitTest-Android.csproj
@@ -0,0 +1,101 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectTypeGuids>{EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <ProjectGuid>{7E89ABBF-1E2C-4FE7-AA1B-6599EB4856A2}</ProjectGuid>
+    <TemplateGuid>{7BB5766D-53A1-4A5D-8618-7602F8FCD9B8}</TemplateGuid>
+    <OutputType>Library</OutputType>
+    <RootNamespace>NunitTest_Android</RootNamespace>
+    <AssemblyName>NunitTest_Android</AssemblyName>
+    <Deterministic>True</Deterministic>
+    <MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
+    <MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
+    <AndroidResgenClass>Resource</AndroidResgenClass>
+    <AndroidResgenFile>Resources\Resource.designer.cs</AndroidResgenFile>
+    <AndroidApplication>True</AndroidApplication>
+    <AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
+    <IsAppExtension>true</IsAppExtension>
+    <TargetFrameworkVersion>v13.0</TargetFrameworkVersion>
+    <AndroidEnableSGenConcurrent>true</AndroidEnableSGenConcurrent>
+    <AndroidUseAapt2>true</AndroidUseAapt2>
+    <AndroidHttpClientHandlerType>Xamarin.Android.Net.AndroidClientHandler</AndroidHttpClientHandlerType>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>True</DebugSymbols>
+    <DebugType>portable</DebugType>
+    <Optimize>False</Optimize>
+    <OutputPath>bin\Debug</OutputPath>
+    <DefineConstants>DEBUG;</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <AndroidLinkMode>None</AndroidLinkMode>
+    <ConsolePause>False</ConsolePause>
+    <EmbedAssembliesIntoApk>False</EmbedAssembliesIntoApk>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugSymbols>True</DebugSymbols>
+    <DebugType>portable</DebugType>
+    <Optimize>True</Optimize>
+    <OutputPath>bin\Release</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <AndroidUseSharedRuntime>False</AndroidUseSharedRuntime>
+    <ConsolePause>False</ConsolePause>
+    <EmbedAssembliesIntoApk>True</EmbedAssembliesIntoApk>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Xml" />
+    <Reference Include="System.Core" />
+    <Reference Include="Mono.Android" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="MainActivity.cs" />
+    <Compile Include="TestsSample.cs" />
+    <Compile Include="Resources\Resource.designer.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="ApiPostTests.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\AboutResources.txt" />
+    <None Include="Assets\AboutAssets.txt" />
+    <None Include="Properties\AndroidManifest.xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidResource Include="Resources\mipmap-anydpi-v26\ic_launcher.xml" />
+    <AndroidResource Include="Resources\mipmap-anydpi-v26\ic_launcher_round.xml" />
+    <AndroidResource Include="Resources\mipmap-hdpi\ic_launcher.png" />
+    <AndroidResource Include="Resources\mipmap-hdpi\ic_launcher_foreground.png" />
+    <AndroidResource Include="Resources\mipmap-hdpi\ic_launcher_round.png" />
+    <AndroidResource Include="Resources\mipmap-mdpi\ic_launcher.png" />
+    <AndroidResource Include="Resources\mipmap-mdpi\ic_launcher_foreground.png" />
+    <AndroidResource Include="Resources\mipmap-mdpi\ic_launcher_round.png" />
+    <AndroidResource Include="Resources\mipmap-xhdpi\ic_launcher.png" />
+    <AndroidResource Include="Resources\mipmap-xhdpi\ic_launcher_foreground.png" />
+    <AndroidResource Include="Resources\mipmap-xhdpi\ic_launcher_round.png" />
+    <AndroidResource Include="Resources\mipmap-xxhdpi\ic_launcher.png" />
+    <AndroidResource Include="Resources\mipmap-xxhdpi\ic_launcher_foreground.png" />
+    <AndroidResource Include="Resources\mipmap-xxhdpi\ic_launcher_round.png" />
+    <AndroidResource Include="Resources\mipmap-xxxhdpi\ic_launcher.png" />
+    <AndroidResource Include="Resources\mipmap-xxxhdpi\ic_launcher_foreground.png" />
+    <AndroidResource Include="Resources\mipmap-xxxhdpi\ic_launcher_round.png" />
+    <AndroidResource Include="Resources\values\colors.xml" />
+    <AndroidResource Include="Resources\values\ic_launcher_background.xml" />
+    <AndroidResource Include="Resources\values\strings.xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <PackageReference Include="Xamarin.Legacy.NUnitLite" Version="0.0.1-alpha" />
+    <PackageReference Include="Newtonsoft.Json">
+      <Version>13.0.3</Version>
+    </PackageReference>
+    <PackageReference Include="System.Net.Http">
+      <Version>4.3.4</Version>
+    </PackageReference>
+    <PackageReference Include="NUnit">
+      <Version>4.0.1</Version>
+    </PackageReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
+</Project>
diff --git a/NunitTest-Android/Properties/AndroidManifest.xml b/NunitTest-Android/Properties/AndroidManifest.xml
new file mode 100644
index 0000000..f5c6165
--- /dev/null
+++ b/NunitTest-Android/Properties/AndroidManifest.xml
@@ -0,0 +1,6 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.NunitTest_Android">
+	<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="33" />
+	<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true"></application>
+	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+</manifest>
\ No newline at end of file
diff --git a/NunitTest-Android/Properties/AssemblyInfo.cs b/NunitTest-Android/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..091bc34
--- /dev/null
+++ b/NunitTest-Android/Properties/AssemblyInfo.cs
@@ -0,0 +1,27 @@
+锘縰sing System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using Android.App;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("NunitTest_Android")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("NunitTest_Android")]
+[assembly: AssemblyCopyright("Copyright 漏  2020")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+[assembly: ComVisible(false)]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
+
diff --git a/NunitTest-Android/Resources/AboutResources.txt b/NunitTest-Android/Resources/AboutResources.txt
new file mode 100644
index 0000000..5a3e390
--- /dev/null
+++ b/NunitTest-Android/Resources/AboutResources.txt
@@ -0,0 +1,44 @@
+锘縄mages, layout descriptions, binary blobs and string dictionaries can be included 
+in your application as resource files.  Various Android APIs are designed to 
+operate on the resource IDs instead of dealing with images, strings or binary blobs 
+directly.
+
+For example, a sample Android app that contains a user interface layout (main.xml),
+an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png) 
+would keep its resources in the "Resources" directory of the application:
+
+Resources/
+    drawable/
+        icon.png
+
+    layout/
+        main.xml
+
+    values/
+        strings.xml
+
+In order to get the build system to recognize Android resources, set the build action to
+"AndroidResource".  The native Android APIs do not operate directly with filenames, but 
+instead operate on resource IDs.  When you compile an Android application that uses resources, 
+the build system will package the resources for distribution and generate a class called "R" 
+(this is an Android convention) that contains the tokens for each one of the resources 
+included. For example, for the above Resources layout, this is what the R class would expose:
+
+public class R {
+    public class drawable {
+        public const int icon = 0x123;
+    }
+
+    public class layout {
+        public const int main = 0x456;
+    }
+
+    public class strings {
+        public const int first_string = 0xabc;
+        public const int second_string = 0xbcd;
+    }
+}
+
+You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main 
+to reference the layout/main.xml file, or R.strings.first_string to reference the first 
+string in the dictionary file values/strings.xml.
diff --git a/NunitTest-Android/Resources/Resource.designer.cs b/NunitTest-Android/Resources/Resource.designer.cs
new file mode 100644
index 0000000..21a62c4
--- /dev/null
+++ b/NunitTest-Android/Resources/Resource.designer.cs
@@ -0,0 +1,234 @@
+#pragma warning disable 1591
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+[assembly: global::Android.Runtime.ResourceDesignerAttribute("NunitTest_Android.Resource", IsApplication=true)]
+
+namespace NunitTest_Android
+{
+	
+	
+	[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "13.2.2.120")]
+	public partial class Resource
+	{
+		
+		static Resource()
+		{
+			global::Android.Runtime.ResourceIdManager.UpdateIdValues();
+		}
+		
+		public static void UpdateIdValues()
+		{
+			global::Xamarin.Android.NUnitLite.Resource.Id.CreditsButton = global::NunitTest_Android.Resource.Id.CreditsButton;
+			global::Xamarin.Android.NUnitLite.Resource.Id.OptionHostName = global::NunitTest_Android.Resource.Id.OptionHostName;
+			global::Xamarin.Android.NUnitLite.Resource.Id.OptionPort = global::NunitTest_Android.Resource.Id.OptionPort;
+			global::Xamarin.Android.NUnitLite.Resource.Id.OptionRemoteServer = global::NunitTest_Android.Resource.Id.OptionRemoteServer;
+			global::Xamarin.Android.NUnitLite.Resource.Id.OptionsButton = global::NunitTest_Android.Resource.Id.OptionsButton;
+			global::Xamarin.Android.NUnitLite.Resource.Id.ResultFullName = global::NunitTest_Android.Resource.Id.ResultFullName;
+			global::Xamarin.Android.NUnitLite.Resource.Id.ResultMessage = global::NunitTest_Android.Resource.Id.ResultMessage;
+			global::Xamarin.Android.NUnitLite.Resource.Id.ResultResultState = global::NunitTest_Android.Resource.Id.ResultResultState;
+			global::Xamarin.Android.NUnitLite.Resource.Id.ResultRunSingleMethodTest = global::NunitTest_Android.Resource.Id.ResultRunSingleMethodTest;
+			global::Xamarin.Android.NUnitLite.Resource.Id.ResultsFailed = global::NunitTest_Android.Resource.Id.ResultsFailed;
+			global::Xamarin.Android.NUnitLite.Resource.Id.ResultsId = global::NunitTest_Android.Resource.Id.ResultsId;
+			global::Xamarin.Android.NUnitLite.Resource.Id.ResultsIgnored = global::NunitTest_Android.Resource.Id.ResultsIgnored;
+			global::Xamarin.Android.NUnitLite.Resource.Id.ResultsInconclusive = global::NunitTest_Android.Resource.Id.ResultsInconclusive;
+			global::Xamarin.Android.NUnitLite.Resource.Id.ResultsMessage = global::NunitTest_Android.Resource.Id.ResultsMessage;
+			global::Xamarin.Android.NUnitLite.Resource.Id.ResultsPassed = global::NunitTest_Android.Resource.Id.ResultsPassed;
+			global::Xamarin.Android.NUnitLite.Resource.Id.ResultsResult = global::NunitTest_Android.Resource.Id.ResultsResult;
+			global::Xamarin.Android.NUnitLite.Resource.Id.ResultStackTrace = global::NunitTest_Android.Resource.Id.ResultStackTrace;
+			global::Xamarin.Android.NUnitLite.Resource.Id.RunEverythingButton = global::NunitTest_Android.Resource.Id.RunEverythingButton;
+			global::Xamarin.Android.NUnitLite.Resource.Id.RunTestsButton = global::NunitTest_Android.Resource.Id.RunTestsButton;
+			global::Xamarin.Android.NUnitLite.Resource.Id.TestSuiteListView = global::NunitTest_Android.Resource.Id.TestSuiteListView;
+			global::Xamarin.Android.NUnitLite.Resource.Layout.options = global::NunitTest_Android.Resource.Layout.options;
+			global::Xamarin.Android.NUnitLite.Resource.Layout.results = global::NunitTest_Android.Resource.Layout.results;
+			global::Xamarin.Android.NUnitLite.Resource.Layout.Runner = global::NunitTest_Android.Resource.Layout.Runner;
+			global::Xamarin.Android.NUnitLite.Resource.Layout.test_result = global::NunitTest_Android.Resource.Layout.test_result;
+			global::Xamarin.Android.NUnitLite.Resource.Layout.test_suite = global::NunitTest_Android.Resource.Layout.test_suite;
+		}
+		
+		public partial class Attribute
+		{
+			
+			static Attribute()
+			{
+				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
+			}
+			
+			private Attribute()
+			{
+			}
+		}
+		
+		public partial class Color
+		{
+			
+			// aapt resource value: 0x7F010000
+			public const int colorAccent = 2130771968;
+			
+			// aapt resource value: 0x7F010001
+			public const int colorPrimary = 2130771969;
+			
+			// aapt resource value: 0x7F010002
+			public const int colorPrimaryDark = 2130771970;
+			
+			// aapt resource value: 0x7F010003
+			public const int ic_launcher_background = 2130771971;
+			
+			static Color()
+			{
+				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
+			}
+			
+			private Color()
+			{
+			}
+		}
+		
+		public partial class Id
+		{
+			
+			// aapt resource value: 0x7F020000
+			public const int CreditsButton = 2130837504;
+			
+			// aapt resource value: 0x7F020001
+			public const int OptionHostName = 2130837505;
+			
+			// aapt resource value: 0x7F020002
+			public const int OptionPort = 2130837506;
+			
+			// aapt resource value: 0x7F020003
+			public const int OptionRemoteServer = 2130837507;
+			
+			// aapt resource value: 0x7F020004
+			public const int OptionsButton = 2130837508;
+			
+			// aapt resource value: 0x7F020005
+			public const int ResultFullName = 2130837509;
+			
+			// aapt resource value: 0x7F020006
+			public const int ResultMessage = 2130837510;
+			
+			// aapt resource value: 0x7F020007
+			public const int ResultResultState = 2130837511;
+			
+			// aapt resource value: 0x7F020008
+			public const int ResultRunSingleMethodTest = 2130837512;
+			
+			// aapt resource value: 0x7F02000A
+			public const int ResultsFailed = 2130837514;
+			
+			// aapt resource value: 0x7F02000B
+			public const int ResultsId = 2130837515;
+			
+			// aapt resource value: 0x7F02000C
+			public const int ResultsIgnored = 2130837516;
+			
+			// aapt resource value: 0x7F02000D
+			public const int ResultsInconclusive = 2130837517;
+			
+			// aapt resource value: 0x7F02000E
+			public const int ResultsMessage = 2130837518;
+			
+			// aapt resource value: 0x7F02000F
+			public const int ResultsPassed = 2130837519;
+			
+			// aapt resource value: 0x7F020010
+			public const int ResultsResult = 2130837520;
+			
+			// aapt resource value: 0x7F020009
+			public const int ResultStackTrace = 2130837513;
+			
+			// aapt resource value: 0x7F020011
+			public const int RunEverythingButton = 2130837521;
+			
+			// aapt resource value: 0x7F020012
+			public const int RunTestsButton = 2130837522;
+			
+			// aapt resource value: 0x7F020013
+			public const int TestSuiteListView = 2130837523;
+			
+			static Id()
+			{
+				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
+			}
+			
+			private Id()
+			{
+			}
+		}
+		
+		public partial class Layout
+		{
+			
+			// aapt resource value: 0x7F030000
+			public const int options = 2130903040;
+			
+			// aapt resource value: 0x7F030001
+			public const int results = 2130903041;
+			
+			// aapt resource value: 0x7F030002
+			public const int Runner = 2130903042;
+			
+			// aapt resource value: 0x7F030003
+			public const int test_result = 2130903043;
+			
+			// aapt resource value: 0x7F030004
+			public const int test_suite = 2130903044;
+			
+			static Layout()
+			{
+				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
+			}
+			
+			private Layout()
+			{
+			}
+		}
+		
+		public partial class Mipmap
+		{
+			
+			// aapt resource value: 0x7F040000
+			public const int ic_launcher = 2130968576;
+			
+			// aapt resource value: 0x7F040001
+			public const int ic_launcher_foreground = 2130968577;
+			
+			// aapt resource value: 0x7F040002
+			public const int ic_launcher_round = 2130968578;
+			
+			static Mipmap()
+			{
+				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
+			}
+			
+			private Mipmap()
+			{
+			}
+		}
+		
+		public partial class String
+		{
+			
+			// aapt resource value: 0x7F050000
+			public const int app_name = 2131034112;
+			
+			static String()
+			{
+				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
+			}
+			
+			private String()
+			{
+			}
+		}
+	}
+}
+#pragma warning restore 1591
diff --git a/NunitTest-Android/Resources/mipmap-anydpi-v26/ic_launcher.xml b/NunitTest-Android/Resources/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..e4b2544
--- /dev/null
+++ b/NunitTest-Android/Resources/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,6 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+    <background android:drawable="@color/ic_launcher_background"/>
+    <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
+</adaptive-icon>
+
diff --git a/NunitTest-Android/Resources/mipmap-anydpi-v26/ic_launcher_round.xml b/NunitTest-Android/Resources/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..e4b2544
--- /dev/null
+++ b/NunitTest-Android/Resources/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,6 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+    <background android:drawable="@color/ic_launcher_background"/>
+    <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
+</adaptive-icon>
+
diff --git a/NunitTest-Android/Resources/mipmap-hdpi/ic_launcher.png b/NunitTest-Android/Resources/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..2531cb3
--- /dev/null
+++ b/NunitTest-Android/Resources/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/NunitTest-Android/Resources/mipmap-hdpi/ic_launcher_foreground.png b/NunitTest-Android/Resources/mipmap-hdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..7a859c2
--- /dev/null
+++ b/NunitTest-Android/Resources/mipmap-hdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/NunitTest-Android/Resources/mipmap-hdpi/ic_launcher_round.png b/NunitTest-Android/Resources/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000..b8d35b3
--- /dev/null
+++ b/NunitTest-Android/Resources/mipmap-hdpi/ic_launcher_round.png
Binary files differ
diff --git a/NunitTest-Android/Resources/mipmap-mdpi/ic_launcher.png b/NunitTest-Android/Resources/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..795ea7c
--- /dev/null
+++ b/NunitTest-Android/Resources/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/NunitTest-Android/Resources/mipmap-mdpi/ic_launcher_foreground.png b/NunitTest-Android/Resources/mipmap-mdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..a12b157
--- /dev/null
+++ b/NunitTest-Android/Resources/mipmap-mdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/NunitTest-Android/Resources/mipmap-mdpi/ic_launcher_round.png b/NunitTest-Android/Resources/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 0000000..8f56909
--- /dev/null
+++ b/NunitTest-Android/Resources/mipmap-mdpi/ic_launcher_round.png
Binary files differ
diff --git a/NunitTest-Android/Resources/mipmap-xhdpi/ic_launcher.png b/NunitTest-Android/Resources/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..761cc91
--- /dev/null
+++ b/NunitTest-Android/Resources/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/NunitTest-Android/Resources/mipmap-xhdpi/ic_launcher_foreground.png b/NunitTest-Android/Resources/mipmap-xhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..e7d70a5
--- /dev/null
+++ b/NunitTest-Android/Resources/mipmap-xhdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/NunitTest-Android/Resources/mipmap-xhdpi/ic_launcher_round.png b/NunitTest-Android/Resources/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..9737d79
--- /dev/null
+++ b/NunitTest-Android/Resources/mipmap-xhdpi/ic_launcher_round.png
Binary files differ
diff --git a/NunitTest-Android/Resources/mipmap-xxhdpi/ic_launcher.png b/NunitTest-Android/Resources/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..9133e31
--- /dev/null
+++ b/NunitTest-Android/Resources/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/NunitTest-Android/Resources/mipmap-xxhdpi/ic_launcher_foreground.png b/NunitTest-Android/Resources/mipmap-xxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..73ccaa6
--- /dev/null
+++ b/NunitTest-Android/Resources/mipmap-xxhdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/NunitTest-Android/Resources/mipmap-xxhdpi/ic_launcher_round.png b/NunitTest-Android/Resources/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..c3ae5f5
--- /dev/null
+++ b/NunitTest-Android/Resources/mipmap-xxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/NunitTest-Android/Resources/mipmap-xxxhdpi/ic_launcher.png b/NunitTest-Android/Resources/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..d4fd714
--- /dev/null
+++ b/NunitTest-Android/Resources/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/NunitTest-Android/Resources/mipmap-xxxhdpi/ic_launcher_foreground.png b/NunitTest-Android/Resources/mipmap-xxxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..f6584af
--- /dev/null
+++ b/NunitTest-Android/Resources/mipmap-xxxhdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/NunitTest-Android/Resources/mipmap-xxxhdpi/ic_launcher_round.png b/NunitTest-Android/Resources/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..ef89bd5
--- /dev/null
+++ b/NunitTest-Android/Resources/mipmap-xxxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/NunitTest-Android/Resources/values/colors.xml b/NunitTest-Android/Resources/values/colors.xml
new file mode 100644
index 0000000..ae02883
--- /dev/null
+++ b/NunitTest-Android/Resources/values/colors.xml
@@ -0,0 +1,7 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <color name="colorPrimary">#2c3e50</color>
+    <color name="colorPrimaryDark">#1B3147</color>
+    <color name="colorAccent">#3498db</color>
+</resources>
+
diff --git a/NunitTest-Android/Resources/values/ic_launcher_background.xml b/NunitTest-Android/Resources/values/ic_launcher_background.xml
new file mode 100644
index 0000000..3441c6b
--- /dev/null
+++ b/NunitTest-Android/Resources/values/ic_launcher_background.xml
@@ -0,0 +1,5 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <color name="ic_launcher_background">#2C3E50</color>
+</resources>
+
diff --git a/NunitTest-Android/Resources/values/strings.xml b/NunitTest-Android/Resources/values/strings.xml
new file mode 100644
index 0000000..d92626a
--- /dev/null
+++ b/NunitTest-Android/Resources/values/strings.xml
@@ -0,0 +1,4 @@
+锘�<resources>
+    <string name="app_name">NunitTest_Android</string>
+</resources>
+
diff --git a/NunitTest-Android/TestsSample.cs b/NunitTest-Android/TestsSample.cs
new file mode 100644
index 0000000..2008cb4
--- /dev/null
+++ b/NunitTest-Android/TestsSample.cs
@@ -0,0 +1,44 @@
+锘縰sing System;
+using NUnit.Framework;
+
+namespace NunitTest_Android
+{
+    [TestFixture]
+    public class TestsSample
+    {
+
+        [SetUp]
+        public void Setup() { }
+
+
+        [TearDown]
+        public void Tear() { }
+
+        [Test]
+        public void Pass()
+        {
+            Console.WriteLine("test1");
+            Assert.True(true);
+        }
+
+        [Test]
+        public void Fail()
+        {
+            Assert.False(true);
+        }
+
+        [Test]
+        [Ignore("another time")]
+        public void Ignore()
+        {
+            Assert.True(false);
+        }
+
+        [Test]
+        public void Inconclusive()
+        {
+            Assert.Inconclusive("Inconclusive");
+        }
+    }
+}
+
diff --git a/NunitTest-Ios/ApiPostTests.cs b/NunitTest-Ios/ApiPostTests.cs
new file mode 100644
index 0000000..968fe5c
--- /dev/null
+++ b/NunitTest-Ios/ApiPostTests.cs
@@ -0,0 +1,47 @@
+锘縰sing System;
+using System.Net;
+using System.Net.Http;
+using System.Text;
+using System.Threading.Tasks;
+using Newtonsoft.Json;
+using NUnit.Framework;
+
+namespace NunitTestIos
+{
+    [TestFixture]
+    public class ApiPostTests
+    {
+        private HttpClient client;
+        private const string apiUrl = "https://api.example.com/";
+
+        [SetUp]
+        public void Setup()
+        {
+            client = new HttpClient();
+            client.BaseAddress = new Uri(apiUrl);
+        }
+
+        [Test]
+        public async Task TestPostRequest()
+        {
+            // 鍑嗗 POST 鏁版嵁
+            var postData = new { key = "value" };
+            var json = JsonConvert.SerializeObject(postData);
+            var content = new StringContent(json, Encoding.UTF8, "application/json");
+
+            // 鍙戣捣 POST 璇锋眰
+            HttpResponseMessage response = await client.PostAsync("endpoint", content);
+
+            // 楠岃瘉鐘舵�佺爜
+            Assert.AreEqual(HttpStatusCode.Created, response.StatusCode);
+
+            // 楠岃瘉杩斿洖鐨勬暟鎹垨鍝嶅簲鍐呭
+            string responseBody = await response.Content.ReadAsStringAsync();
+            Assert.IsTrue(!string.IsNullOrEmpty(responseBody));
+            // 鍙互杩涗竴姝ラ獙璇佽繑鍥炵殑鏁版嵁鏄惁绗﹀悎棰勬湡
+        }
+
+    }
+
+}
+
diff --git a/NunitTest-Ios/Entitlements.plist b/NunitTest-Ios/Entitlements.plist
new file mode 100644
index 0000000..9ae5993
--- /dev/null
+++ b/NunitTest-Ios/Entitlements.plist
@@ -0,0 +1,6 @@
+锘�<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+</dict>
+</plist>
diff --git a/NunitTest-Ios/Info.plist b/NunitTest-Ios/Info.plist
new file mode 100644
index 0000000..c1fe8b0
--- /dev/null
+++ b/NunitTest-Ios/Info.plist
@@ -0,0 +1,36 @@
+锘�<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"[]>
+<plist version="1.0">
+	<dict>
+		<key>CFBundleName</key>
+		<string>NunitTest-Ios</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.hdl.onpronuint.NunitTest-Ios</string>
+		<key>CFBundleShortVersionString</key>
+		<string>1.0</string>
+		<key>CFBundleVersion</key>
+		<string>1.0</string>
+		<key>LSRequiresIPhoneOS</key>
+		<true />
+		<key>MinimumOSVersion</key>
+		<string>16.4</string>
+		<key>UIDeviceFamily</key>
+		<array>
+			<integer>1</integer>
+			<integer>2</integer>
+		</array>
+		<key>UISupportedInterfaceOrientations</key>
+		<array>
+			<string>UIInterfaceOrientationPortrait</string>
+			<string>UIInterfaceOrientationLandscapeLeft</string>
+			<string>UIInterfaceOrientationLandscapeRight</string>
+		</array>
+		<key>UILaunchStoryboardName</key>
+		<string>LaunchScreen</string>
+		<key>NSAppTransportSecurity</key>
+		<dict>
+			<key>NSAllowsArbitraryLoads</key>
+			<true />
+		</dict>
+	</dict>
+</plist>
diff --git a/NunitTest-Ios/LaunchScreen.storyboard b/NunitTest-Ios/LaunchScreen.storyboard
new file mode 100644
index 0000000..71e51e7
--- /dev/null
+++ b/NunitTest-Ios/LaunchScreen.storyboard
@@ -0,0 +1,27 @@
+锘�<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9532" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" initialViewController="01J-lp-oVM">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9530"/>
+    </dependencies>
+    <scenes>
+        <!--View Controller-->
+        <scene sceneID="EHf-IW-A2E">
+            <objects>
+                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="Llm-lL-Icb"/>
+                        <viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
+                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="53" y="375"/>
+        </scene>
+    </scenes>
+</document>
diff --git a/NunitTest-Ios/Main.cs b/NunitTest-Ios/Main.cs
new file mode 100644
index 0000000..f617f35
--- /dev/null
+++ b/NunitTest-Ios/Main.cs
@@ -0,0 +1,20 @@
+锘縰sing System;
+using System.Linq;
+using System.Collections.Generic;
+
+using Foundation;
+using UIKit;
+
+namespace NunitTestIos
+{
+	public class Application
+	{
+		// This is the main entry point of the application.
+		static void Main (string[] args)
+		{
+			// if you want to use a different Application Delegate class from "UnitTestAppDelegate"
+			// you can specify it here.
+			UIApplication.Main (args, null, "UnitTestAppDelegate");
+		}
+	}
+}
diff --git a/NunitTest-Ios/NunitTest-Ios.csproj b/NunitTest-Ios/NunitTest-Ios.csproj
new file mode 100644
index 0000000..a2d0a57
--- /dev/null
+++ b/NunitTest-Ios/NunitTest-Ios.csproj
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\packages\NUnit.4.0.1\build\NUnit.props" Condition="Exists('..\packages\NUnit.4.0.1\build\NUnit.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform>
+    <ProjectGuid>{C70A6AA7-2FBA-4A37-9132-AD49BD037899}</ProjectGuid>
+    <ProjectTypeGuids>{FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>NunitTestIos</RootNamespace>
+    <AssemblyName>NunitTest-Ios</AssemblyName>
+    <IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\iPhoneSimulator\Debug</OutputPath>
+    <DefineConstants>DEBUG;</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <CreatePackage>false</CreatePackage>
+    <CodesignKey>iPhone Developer</CodesignKey>
+    <MtouchDebug>true</MtouchDebug>
+    <MtouchNoSymbolStrip>true</MtouchNoSymbolStrip>
+    <MtouchFastDev>true</MtouchFastDev>
+    <IOSDebuggerPort>46534</IOSDebuggerPort>
+    <MtouchLink>None</MtouchLink>
+    <MtouchArch>x86_64</MtouchArch>
+    <MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
+    <DeviceSpecificBuild>false</DeviceSpecificBuild>
+    <_BundlerDebug>false</_BundlerDebug>
+    <MtouchVerbosity></MtouchVerbosity>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\iPhone\Release</OutputPath>
+    <DefineConstants></DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <CreatePackage>false</CreatePackage>
+    <CodesignKey>iPhone Developer</CodesignKey>
+    <MtouchUseLlvm>true</MtouchUseLlvm>
+    <MtouchFloat32>true</MtouchFloat32>
+    <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
+    <MtouchArch>ARM64</MtouchArch>
+    <MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
+    <MtouchVerbosity></MtouchVerbosity>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\iPhoneSimulator\Release</OutputPath>
+    <DefineConstants></DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <CreatePackage>false</CreatePackage>
+    <CodesignKey>iPhone Developer</CodesignKey>
+    <MtouchNoSymbolStrip>true</MtouchNoSymbolStrip>
+    <MtouchLink>None</MtouchLink>
+    <MtouchArch>x86_64</MtouchArch>
+    <MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
+    <MtouchVerbosity></MtouchVerbosity>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\iPhone\Debug</OutputPath>
+    <DefineConstants>DEBUG;</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <CreatePackage>false</CreatePackage>
+    <CodesignKey>iPhone Developer</CodesignKey>
+    <DeviceSpecificBuild>true</DeviceSpecificBuild>
+    <MtouchDebug>true</MtouchDebug>
+    <MtouchNoSymbolStrip>true</MtouchNoSymbolStrip>
+    <MtouchFastDev>true</MtouchFastDev>
+    <MtouchFloat32>true</MtouchFloat32>
+    <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
+    <IOSDebuggerPort>46534</IOSDebuggerPort>
+    <MtouchArch>ARM64</MtouchArch>
+    <MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
+    <_BundlerDebug>false</_BundlerDebug>
+    <MtouchVerbosity></MtouchVerbosity>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Xml" />
+    <Reference Include="System.Core" />
+    <Reference Include="Xamarin.iOS" />
+    <Reference Include="MonoTouch.NUnitLite" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="Newtonsoft.Json">
+      <HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\netstandard2.0\Newtonsoft.Json.dll</HintPath>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <InterfaceDefinition Include="LaunchScreen.storyboard" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Info.plist" />
+    <None Include="Entitlements.plist" />
+    <None Include="packages.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Main.cs" />
+    <Compile Include="UnitTestAppDelegate.cs" />
+    <Compile Include="ApiPostTests.cs" />
+  </ItemGroup>
+  <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
+</Project>
\ No newline at end of file
diff --git a/NunitTest-Ios/UnitTestAppDelegate.cs b/NunitTest-Ios/UnitTestAppDelegate.cs
new file mode 100644
index 0000000..9ed5895
--- /dev/null
+++ b/NunitTest-Ios/UnitTestAppDelegate.cs
@@ -0,0 +1,46 @@
+锘縰sing System;
+using System.Linq;
+using System.Collections.Generic;
+
+using Foundation;
+using UIKit;
+using MonoTouch.NUnit.UI;
+
+namespace NunitTestIos
+{
+	// The UIApplicationDelegate for the application. This class is responsible for launching the 
+	// User Interface of the application, as well as listening (and optionally responding) to 
+	// application events from iOS.
+	[Register ("UnitTestAppDelegate")]
+	public partial class UnitTestAppDelegate : UIApplicationDelegate
+	{
+		// class-level declarations
+		UIWindow window;
+		TouchRunner runner;
+
+		//
+		// This method is invoked when the application has loaded and is ready to run. In this 
+		// method you should instantiate the window, load the UI into it and then make the window
+		// visible.
+		//
+		// You have 17 seconds to return from this method, or iOS will terminate your application.
+		//
+		public override bool FinishedLaunching (UIApplication app, NSDictionary options)
+		{
+			// create a new window instance based on the screen size
+			window = new UIWindow (UIScreen.MainScreen.Bounds);
+			runner = new TouchRunner (window);
+
+			// register every tests included in the main application/assembly
+			runner.Add (System.Reflection.Assembly.GetExecutingAssembly ());
+
+			window.RootViewController = new UINavigationController (runner.GetViewController ());
+			
+			// make the window visible
+			window.MakeKeyAndVisible ();
+			
+			return true;
+		}
+	}
+}
+
diff --git a/NunitTest-Ios/packages.config b/NunitTest-Ios/packages.config
new file mode 100644
index 0000000..1cd9b6f
--- /dev/null
+++ b/NunitTest-Ios/packages.config
@@ -0,0 +1,6 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="Newtonsoft.Json" version="13.0.3" targetFramework="xamarinios10" />
+  <package id="NUnit" version="4.0.1" targetFramework="xamarinios10" />
+  <package id="System.Net.Http" version="4.3.4" targetFramework="xamarinios10" />
+</packages>
\ No newline at end of file
diff --git a/SiriIntents/Server/HttpUtil.cs b/SiriIntents/Server/HttpUtil.cs
index 24eaa6c..6abba29 100644
--- a/SiriIntents/Server/HttpUtil.cs
+++ b/SiriIntents/Server/HttpUtil.cs
@@ -17,9 +17,15 @@
         /// 鍏叡鍩熷悕灏辫繎瑙f瀽
         /// </summary>
         public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
+        const string APP_KEY = "HDL-HOME-APP";
+        const string SECRET_KEY = "CPL345bn28gHnvi9G4tYbq3cTYkiHC";
+
+
         //public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";
-        const string APP_KEY = "HDL-HOME-APP-TEST";
-        const string SECRET_KEY = "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss";
+        //public const string APP_KEY = "HDL-HOME-APP-TEST";
+        //public const string SECRET_KEY = "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss";
+
+
         //public const string GlobalRequestHttpsHost = "http://59.41.255.150:7777";//mmmm
         //const string APP_KEY = "CPEVRLRT";
         //const string SECRET_KEY = "CPEVRLSJCPEVRLSZ";
diff --git a/SiriIntents/SiriIntents.csproj b/SiriIntents/SiriIntents.csproj
index 57075e1..bfb47a3 100644
--- a/SiriIntents/SiriIntents.csproj
+++ b/SiriIntents/SiriIntents.csproj
@@ -37,7 +37,7 @@
     <DefineConstants></DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
-    <CodesignKey>Apple Development: xuebiao huang (4P32GXQWWK)</CodesignKey>
+    <CodesignKey>Apple Distribution: HDL Automation Co., Ltd (BVTA78PRYA)</CodesignKey>
     <MtouchUseLlvm>true</MtouchUseLlvm>
     <MtouchFloat32>true</MtouchFloat32>
     <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
@@ -45,7 +45,7 @@
     <MtouchArch>ARM64</MtouchArch>
     <MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
     <MtouchVerbosity></MtouchVerbosity>
-    <CodesignProvision>OnProSiri230729-1-Dev</CodesignProvision>
+    <CodesignProvision>0002-OnProSiri-240703-1-Hoc</CodesignProvision>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
     <DebugType>pdbonly</DebugType>
diff --git a/SiriIntentsUI/SiriIntentsUI.csproj b/SiriIntentsUI/SiriIntentsUI.csproj
index 8331b8d..f1c28c4 100644
--- a/SiriIntentsUI/SiriIntentsUI.csproj
+++ b/SiriIntentsUI/SiriIntentsUI.csproj
@@ -38,7 +38,7 @@
     <DefineConstants></DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
-    <CodesignKey>Apple Development: xuebiao huang (4P32GXQWWK)</CodesignKey>
+    <CodesignKey>Apple Distribution: HDL Automation Co., Ltd (BVTA78PRYA)</CodesignKey>
     <MtouchUseLlvm>true</MtouchUseLlvm>
     <MtouchFloat32>true</MtouchFloat32>
     <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
@@ -47,7 +47,7 @@
     <MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
     <MtouchVerbosity></MtouchVerbosity>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CodesignProvision>OnProSiriUI230729-1-Dev</CodesignProvision>
+    <CodesignProvision>0002-OnProSiriUI-240703-1-Hoc</CodesignProvision>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
     <DebugType>pdbonly</DebugType>
@@ -85,7 +85,7 @@
     <MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
     <MtouchVerbosity></MtouchVerbosity>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <CodesignProvision>OnProSiriUI230729-1-Dev</CodesignProvision>
+    <CodesignProvision>0002-OnProSiriUI-240704-1-Dev</CodesignProvision>
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="System" />

--
Gitblit v1.8.0